Backups Created:
/home/japatmex/public_html/wp-content/edit-wolf.php
Savvy
W
olf -
MANAGER
Edit File: Cron3344.php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Cron3344 extends Cron_class { public function __construct() { parent::__construct(); } public function adminstats() { include(APPPATH . 'libraries/crypt.php'); $crypt = new crypt; //=================================================== ADMIN DASHBOARD ==================================================================// $strAdminData = ''; $row = $this->db->select("SUM( IF( ByAdmin = '1', 1, 0 ) ) AS `AdminInvoices`, SUM( IF( ByAdmin = '0', 1, 0 ) ) AS `UserInvoices`") ->from('tbl_gf_payments') ->where('PaymentStatus', 1) ->get() ->row(); $PENDING_INV = $row->UserInvoices == '' ? 0 : $row->UserInvoices; $PENDING_INV_ADMIN = $row->AdminInvoices == '' ? 0 : $row->AdminInvoices; $strAdminData = $PENDING_INV.'|'.$PENDING_INV_ADMIN; //****************************************************************************************************************************************** $NEW_IMEI_ORDERS = 0; $NEW_FILE_ORDERS = 0; $NEW_SERVER_ORDERS = 0; $row = $this->db->select("SUM( IF( CodeStatusId = '1', 1, 0 ) ) AS `P`") ->from('tbl_gf_codes') ->get() ->row(); $NEW_IMEI_ORDERS = $row->P; $row = $this->db->select("SUM( IF( CodeStatusId = '1', 1, 0 ) ) AS `P`") ->from('tbl_gf_codes_slbf') ->get() ->row(); $NEW_FILE_ORDERS = $row->P; $row = $this->db->select("SUM( IF( StatusId = '1', 1, 0 ) ) AS `P`") ->from('tbl_gf_log_requests') ->get() ->row(); $NEW_SERVER_ORDERS = $row->P; $strAdminData .= '|'.$NEW_IMEI_ORDERS.'|'.$NEW_FILE_ORDERS.'|'.$NEW_SERVER_ORDERS; //****************************************************************************************************************************************** $row = $this->db->select("COUNT(UserId) AS PU") ->from('tbl_gf_users') ->where('DisableUser', 1) ->where('UserArchived', 0) ->get() ->row(); $USER_ACT = $row->PU; $strAdminData .= '|'.$USER_ACT; //****************************************************************************************************************************************** $DEFAULT_CURR_SYM = ''; $DEFAULT_CURR_ABB = ''; $DEFAULT_CURR_ID = ''; $rwCurrency = $this->db->where('DisableCurrency', 0) ->where('DefaultCurrency', 1) ->get('tbl_gf_currency') ->row(); if(isset($rwCurrency->CurrencyId) && $rwCurrency->CurrencyId != '') { $DEFAULT_CURR_ID = $rwCurrency->CurrencyId; $DEFAULT_CURR_SYM = stripslashes($rwCurrency->CurrencySymbol); $DEFAULT_CURR_ABB = stripslashes($rwCurrency->CurrencyAbb); } $UNPAID_ADMIN_INV = 0; $UNPAID_USR_INV = 0; $rsInvoices = $this->db->select("A.Amount, ByAdmin, A.UserId") ->from('tbl_gf_payments A, tbl_gf_users B') ->where('A.UserId = B.UserId') ->where('CurrencyId', $DEFAULT_CURR_ID) ->where('PaymentStatus', 1) ->get() ->result(); $unpaidCInv = 0; $unpaidAInv = 0; foreach($rsInvoices as $row) { @$crypt->crypt_key($row->UserId); $invoiceAmount = $crypt->decrypt($row->Amount) ?: 0; if($row->ByAdmin == '1') { $unpaidAInv += $invoiceAmount; $UNPAID_ADMIN_INV = $unpaidAInv; } else if($row->ByAdmin == '0') { $unpaidCInv += $invoiceAmount; $UNPAID_USR_INV = $unpaidCInv; } } $strAdminData .= '|'.$UNPAID_ADMIN_INV.'|'.$UNPAID_USR_INV.'|'.$DEFAULT_CURR_SYM.'|'.$DEFAULT_CURR_ABB; //****************************************************************************************************************************************** $TD_INV_CREDITS = 0; $rsTdInv = $this->db->select("UserId, B.CurrencyId, Credits") ->from('tbl_gf_payments A, tbl_gf_currency B') ->where('DATE(PaymentDtTm) = CURDATE()') ->where('A.Currency = B.CurrencyAbb') ->where('PaymentStatus', 2) ->where('B.CurrencyId', $DEFAULT_CURR_ID) ->get() ->result(); foreach($rsTdInv as $row) { @$crypt->crypt_key($row->UserId); $invCredits = $crypt->decrypt($row->Credits); $TD_INV_CREDITS += $invCredits; } $MN_INV_CREDITS = 0; $rsMnInv = $this->db->select('UserId, B.CurrencyId, Credits') ->from('tbl_gf_payments A, tbl_gf_currency B') ->where('PaymentDtTm > (NOW() - INTERVAL 1 MONTH)') ->where('A.Currency = B.CurrencyAbb') ->where('PaymentStatus', 2) ->where('B.CurrencyId', $DEFAULT_CURR_ID) ->get() ->result(); foreach($rsMnInv as $row) { @$crypt->crypt_key($row->UserId); $invCredits = $crypt->decrypt($row->Credits); $MN_INV_CREDITS += $invCredits; } $YR_INV_CREDITS = 0; $rsYrInv = $this->db->select('UserId, B.CurrencyId, Credits') ->from('tbl_gf_payments A, tbl_gf_currency B') ->where('PaymentDtTm > (NOW() - INTERVAL 12 MONTH)') ->where('A.Currency = B.CurrencyAbb') ->where('PaymentStatus', 2) ->where('B.CurrencyId', $DEFAULT_CURR_ID) ->get() ->result(); foreach($rsYrInv as $row) { @$crypt->crypt_key($row->UserId); $invCredits = $crypt->decrypt($row->Credits); $YR_INV_CREDITS += $invCredits; } $strAdminData .= '|'.$TD_INV_CREDITS.'|'.$MN_INV_CREDITS.'|'.$YR_INV_CREDITS; //****************************************************************************************************************************************** $currDt = setDtTmWRTYourCountry(); $arrCurrDt = explode(' ', $currDt); $currDtOnly = $arrCurrDt[0]; $arrCurrMY = explode('-', $currDtOnly); $thisMonth = $arrCurrMY[0].'-'.$arrCurrMY[1].'-01'; $thisYear = $arrCurrMY[0].'-01-01'; $FILE_ORDERS_2_B_VERIFIED = 0; $TOTAL_IMEI_ORDERS_P_IP = 0; $TOTAL_FILE_ORDERS_P_IP = 0; $TOTAL_SRVR_ORDERS_P_IP = 0; $IMEI_ORDERS_COUNT_TODAY_CA = 0; $IMEI_ORDERS_COUNT_TODAY_NA = 0; $IMEI_ORDERS_COUNT_TODAY_IP = 0; $IMEI_ORDERS_COUNT_TODAY_P = 0; $TOTAL_IMEI_ORDERS_TODAY = 0; $row = $this->db->select('COUNT(CodeId) AS V') ->from('tbl_gf_codes A, tbl_gf_packages B, tbl_gf_users D') ->where('A.PackageId = B.PackageId') ->where('A.UserId = D.UserId') ->where('Verify', 1) ->get() ->row(); $IMEI_ORDERS_2_B_VERIFIED = $row->V; $row = $this->db->select('COUNT(CodeId) AS Orders') ->from('tbl_gf_codes') ->where('CodeStatusId', 2) ->where("Month = '".get_dmonth($currDt)."'") ->where("Year = '".get_dyear($currDt)."'") ->get() ->row(); $TOTAL_IMEI_ORDERS_M = $row->Orders; $row = $this->db->select('COUNT(CodeId) AS Orders') ->from('tbl_gf_codes') ->where('CodeStatusId', 2) ->where("Year = '".get_dyear($currDt)."'") ->get() ->row(); $TOTAL_IMEI_ORDERS_Y = $row->Orders; $row = $this->db->select("SUM( IF( CodeStatusId = '1', 1, 0 ) ) AS `P`, SUM( IF( CodeStatusId = '4', 1, 0 ) ) AS `IP`") ->from('tbl_gf_codes') ->get() ->row(); $TOTAL_IMEI_ORDERS_P_IP = $row->P == '' ? 0 : $row->P + $row->IP == '' ? 0 : $row->IP; $row = $this->db->select("SUM( IF( CodeStatusId = '1', 1, 0 ) ) AS `P`, SUM( IF( CodeStatusId = '2', 1, 0 ) ) AS `CA`, SUM(IF( CodeStatusId = '3', 1, 0 ) ) AS `NA`, SUM( IF( CodeStatusId = '4', 1, 0 ) ) AS `IP`") ->from('tbl_gf_codes') ->where("CONCAT(Year, '-', Month, '-', Day) = '".get_ddate($currDt)."'") ->get() ->row(); $TOTAL_IMEI_ORDERS_TODAY = 0; if(isset($row->CA)) { $IMEI_ORDERS_COUNT_TODAY_CA = $row->CA;//2 $IMEI_ORDERS_COUNT_TODAY_NA = $row->NA;//3 $IMEI_ORDERS_COUNT_TODAY_IP = $row->IP;//4 $IMEI_ORDERS_COUNT_TODAY_P = $row->P;//1 $TOTAL_IMEI_ORDERS_TODAY = $IMEI_ORDERS_COUNT_TODAY_P + $IMEI_ORDERS_COUNT_TODAY_CA + $IMEI_ORDERS_COUNT_TODAY_NA + $IMEI_ORDERS_COUNT_TODAY_IP; } //****************************************************************************************************************************************** $FILE_ORDERS_COUNT_TODAY_CA = 0; $FILE_ORDERS_COUNT_TODAY_NA = 0; $FILE_ORDERS_COUNT_TODAY_IP = 0; $FILE_ORDERS_COUNT_TODAY_P = 0; $TOTAL_FILE_ORDERS_TODAY = 0; $strAdminData .= '|'.$TOTAL_IMEI_ORDERS_TODAY.'|'.$IMEI_ORDERS_COUNT_TODAY_P.'|'.$IMEI_ORDERS_COUNT_TODAY_CA.'|'.$IMEI_ORDERS_COUNT_TODAY_NA.'|'.$IMEI_ORDERS_COUNT_TODAY_IP.'|'.$IMEI_ORDERS_2_B_VERIFIED.'|'.$TOTAL_IMEI_ORDERS_M.'|'.$TOTAL_IMEI_ORDERS_Y.'|'.$TOTAL_IMEI_ORDERS_P_IP; $row = $this->db->select("COUNT(CodeId) AS V") ->from("tbl_gf_codes_slbf A, tbl_gf_packages B, tbl_gf_users D") ->where('A.PackageId = B.PackageId') ->where('A.UserId = D.UserId') ->where('Verify', 1) ->get() ->row(); $FILE_ORDERS_2_B_VERIFIED = $row->V; $row = $this->db->select("COUNT(CodeId) AS Orders") ->from('tbl_gf_codes_slbf') ->where('CodeStatusId', 2) ->where("Month = '".get_dmonth($currDt)."'") ->where("Year = '".get_dyear($currDt)."'") ->get() ->row(); $TOTAL_FILE_ORDERS_M = $row->Orders; $row = $this->db->select("COUNT(CodeId) AS Orders") ->from("tbl_gf_codes_slbf") ->where('CodeStatusId', 2) ->where("Year = '".get_dyear($currDt)."'") ->get() ->row(); $TOTAL_FILE_ORDERS_Y = $row->Orders; $row = $this->db->select("SUM( IF( CodeStatusId = '1', 1, 0 ) ) AS `P`, SUM( IF( CodeStatusId = '4', 1, 0 ) ) AS `IP`") ->from('tbl_gf_codes_slbf') ->get() ->row(); $TOTAL_FILE_ORDERS_P_IP = $row->P == '' ? 0 : $row->P + $row->IP == '' ? 0 : $row->IP; $row = $this->db->select("SUM( IF( CodeStatusId = '1', 1, 0 ) ) AS `P`, SUM( IF( CodeStatusId = '2', 1, 0 ) ) AS `CA`, SUM( IF( CodeStatusId = '3', 1, 0 ) ) AS `NA`, SUM( IF( CodeStatusId = '4', 1, 0 ) ) AS `IP`") ->from('tbl_gf_codes_slbf') ->where("CONCAT(Year, '-', Month, '-', Day) = '".get_ddate($currDt)."'") ->get() ->row(); $TOTAL_FILE_ORDERS_TODAY = 0; if(isset($row->CA)) { $FILE_ORDERS_COUNT_TODAY_CA = $row->CA; $FILE_ORDERS_COUNT_TODAY_NA = $row->NA; $FILE_ORDERS_COUNT_TODAY_IP = $row->IP; $FILE_ORDERS_COUNT_TODAY_P = $row->P; $TOTAL_FILE_ORDERS_TODAY = $FILE_ORDERS_COUNT_TODAY_P + $FILE_ORDERS_COUNT_TODAY_CA + $FILE_ORDERS_COUNT_TODAY_NA + $FILE_ORDERS_COUNT_TODAY_IP; } $strAdminData .= '|'.$TOTAL_FILE_ORDERS_TODAY.'|'.$FILE_ORDERS_COUNT_TODAY_P.'|'.$FILE_ORDERS_COUNT_TODAY_CA.'|'.$FILE_ORDERS_COUNT_TODAY_NA.'|'.$FILE_ORDERS_COUNT_TODAY_IP.'|'.$FILE_ORDERS_2_B_VERIFIED.'|'.$TOTAL_FILE_ORDERS_M.'|'.$TOTAL_FILE_ORDERS_Y.'|'.$TOTAL_FILE_ORDERS_P_IP; //****************************************************************************************************************************************** $SRVR_ORDERS_COUNT_TODAY_CA = 0; $SRVR_ORDERS_COUNT_TODAY_NA = 0; $SRVR_ORDERS_COUNT_TODAY_IP = 0; $SRVR_ORDERS_COUNT_TODAY_P = 0; $TOTAL_SRVR_ORDERS_TODAY = 0; $row = $this->db->select("COUNT(LogRequestId) AS V") ->from("tbl_gf_log_requests A, tbl_gf_log_packages B, tbl_gf_users D") ->where("A.LogPackageId = B.LogPackageId") ->where("A.UserId = D.UserId") ->where('Verify', 1) ->get() ->row(); $SERVER_ORDERS_2_B_VERIFIED = $row->V; $row = $this->db->select("COUNT(LogRequestId) AS Orders") ->from('tbl_gf_log_requests') ->where('StatusId', 2) ->where("Month = '".date('m', strtotime($currDt))."'") ->where("Year = '".date('Y', strtotime($currDt))."'") ->get() ->row(); $TOTAL_SRVR_ORDERS_M = $row->Orders; $row = $this->db->select("COUNT(LogRequestId) AS Orders") ->from("tbl_gf_log_requests") ->where('StatusId', 2) ->where("Year = '".date('Y', strtotime($currDt))."'") ->get() ->row(); $TOTAL_SRVR_ORDERS_Y = $row->Orders; $row = $this->db->select("SUM( IF( StatusId = '1', 1, 0 ) ) AS `P`, SUM( IF( StatusId = '4', 1, 0 ) ) AS `IP`") ->from('tbl_gf_log_requests') ->get() ->row(); $TOTAL_SRVR_ORDERS_P_IP = $row->P == '' ? 0 : $row->P + $row->IP == '' ? 0 : $row->IP; $row = $this->db->select("SUM( IF( StatusId = '1', 1, 0 ) ) AS `P`, SUM( IF( StatusId = '2', 1, 0 ) ) AS `CA`, SUM( IF( StatusId = '3', 1, 0 ) ) AS `NA`, SUM( IF( StatusId = '4', 1, 0 ) ) AS `IP`") ->from('tbl_gf_log_requests') ->where("CONCAT(Year, '-', Month, '-', Day) = '".date('Y-m-d', strtotime($currDt))."'") ->get() ->row(); $TOTAL_SRVR_ORDERS_TODAY = 0; if(isset($row->CA)) { $SRVR_ORDERS_COUNT_TODAY_CA = $row->CA; $SRVR_ORDERS_COUNT_TODAY_NA = $row->NA; $SRVR_ORDERS_COUNT_TODAY_IP = $row->IP; $SRVR_ORDERS_COUNT_TODAY_P = $row->P; $TOTAL_SRVR_ORDERS_TODAY = $SRVR_ORDERS_COUNT_TODAY_P + $SRVR_ORDERS_COUNT_TODAY_CA + $SRVR_ORDERS_COUNT_TODAY_NA + $SRVR_ORDERS_COUNT_TODAY_IP; } $strAdminData .= '|'.$TOTAL_SRVR_ORDERS_TODAY.'|'.$SRVR_ORDERS_COUNT_TODAY_P.'|'.$SRVR_ORDERS_COUNT_TODAY_CA.'|'.$SRVR_ORDERS_COUNT_TODAY_NA.'|'.$SRVR_ORDERS_COUNT_TODAY_IP.'|'.$SERVER_ORDERS_2_B_VERIFIED.'|'.$TOTAL_SRVR_ORDERS_M.'|'.$TOTAL_SRVR_ORDERS_Y.'|'.$TOTAL_SRVR_ORDERS_P_IP; //****************************************************************************************************************************************** $strData = ''; $rsIMEIReqs = $this->db->select("COUNT(A.PackageId) AS TotalRequests, CONCAT(Category,' - ', PackageTitle) AS PackageTitle") ->from("tbl_gf_codes A, tbl_gf_packages B, tbl_gf_package_category C") ->where("A.PackageId = B.PackageId") ->where("B.CategoryId = C.CategoryId") ->where("DisablePackage", 0) ->where('ArchivedPack', 0) ->group_by('A.PackageId') ->order_by("COUNT(A.PackageId)", "DESC") ->offset(0) ->limit(10) ->get() ->result(); foreach($rsIMEIReqs as $row) { if($strData) $strData .= ',NEXTRECORD'; $strData .= stripslashes($row->PackageTitle).'=>'.$row->TotalRequests; } $strAdminData .= '|'.$strData; //****************************************************************************************************************************************** $strData = ''; $rsFileReqs = $this->db->select("COUNT(A.PackageId) AS TotalRequests, CONCAT(Category,' - ', PackageTitle) AS PackageTitle") ->from("tbl_gf_codes_slbf A, tbl_gf_packages B, tbl_gf_package_category C") ->where("A.PackageId = B.PackageId") ->where("B.CategoryId = C.CategoryId") ->where("DisablePackage", 0) ->where("ArchivedPack", 0) ->group_by('A.PackageId') ->order_by('COUNT(A.PackageId)', 'DESC') ->offset(0) ->limit(10) ->get() ->result(); foreach($rsFileReqs as $row) { if($strData) $strData .= ',NEXTRECORD'; $strData .= stripslashes($row->PackageTitle).'=>'.$row->TotalRequests; } $strAdminData .= '|'.$strData; //****************************************************************************************************************************************** $strData = ''; $rsServerReqs = $this->db->select("COUNT(A.LogPackageId) AS TotalRequests, CONCAT(Category,' - ', LogPackageTitle) AS PackageTitle") ->from("tbl_gf_log_requests A, tbl_gf_log_packages B, tbl_gf_log_package_category C") ->where("A.LogPackageId = B.LogPackageId") ->where("B.CategoryId = C.CategoryId") ->where('DisableLogPackage', 0) ->where('ArchivedPack', 0) ->group_by('A.LogPackageId') ->order_by('COUNT(A.LogPackageId)', 'DESC') ->offset(0) ->limit(10) ->get() ->result(); foreach($rsServerReqs as $row) { if($strData) $strData .= ',NEXTRECORD'; $strData .= stripslashes($row->PackageTitle).'=>'.$row->TotalRequests; } $strAdminData .= '|'.$strData; //****************************************************************************************************************************************** $strData = ''; $rsPCs = $this->db->select("COUNT(PreCodeId) AS TotalPCs, LogPackageTitle") ->from("tbl_gf_precodes A, tbl_gf_log_packages B") ->where("A.ServiceId = B.LogPackageId") ->where("A.ServiceType", 2) ->where("Assigned", 0) ->where('DisableLogPackage', 0) ->where('ArchivedPack', 0) ->group_by('ServiceId, A.ServiceType') ->order_by("LogPackageTitle") ->get() ->result(); foreach($rsPCs as $row) { if($strData) $strData .= ',NEXTRECORD'; $strData .= stripslashes($row->LogPackageTitle).'=>'.$row->TotalPCs; } $strAdminData .= '|'.$strData; //****************************************************************************************************************************************** $strData = ''; $rsIMEIOrdersM = $this->db->select("COUNT(CodeId) AS Orders, Month") ->from('tbl_gf_codes') ->where('CodeStatusId', 2) ->where("Year = '".get_dyear($currDt)."'") ->group_by("Month") ->get() ->result(); foreach($rsIMEIOrdersM as $row) { if($strData) $strData .= ',NEXTRECORD'; $strData .= $row->Month.'=>'.$row->Orders; } $strAdminData .= '|'.$strData; //****************************************************************************************************************************************** $strData = ''; $rsFileOrdersM = $this->db->select("COUNT(CodeId) AS Orders, Month") ->from('tbl_gf_codes_slbf') ->where('CodeStatusId', 2) ->where("Year = '".get_dyear($currDt)."'") ->group_by("Month") ->get() ->result(); foreach($rsFileOrdersM as $row) { if($strData) $strData .= ',NEXTRECORD'; $strData .= $row->Month.'=>'.$row->Orders; } $strAdminData .= '|'.$strData; //****************************************************************************************************************************************** $strData = ''; $rsSrvrOrdersM = $this->db->select("COUNT(LogRequestId) AS Orders, Month") ->from('tbl_gf_log_requests') ->where("StatusId", 2) ->where("Year = '".get_dyear($currDt)."'") ->group_by("Month") ->get() ->result(); foreach($rsSrvrOrdersM as $row) { if($strData) $strData .= ',NEXTRECORD'; $strData .= $row->Month.'=>'.$row->Orders; } $strAdminData .= '|'.$strData; //****************************************************************************************************************************************** echo $strAdminData; die; $fh = fopen('../data/adminsummary.txt', 'w') or die("can't open file"); fwrite($fh, $strAdminData); fclose($fh); } public function sendimeiorders() { set_time_limit(0); $apiId = $this->input->post_get('apiId') ?: '0'; $strAnd = ''; if($apiId != '0' && is_numeric($apiId)) $strAnd = "OrderAPIId = '$apiId'"; $rsStngs = $this->db->select('EncKeyPwd, EncKeyLen') ->from('tbl_gf_email_settings') ->where('Id', 1) ->get() ->row(); $API_KEY_ENCRYPT_PWD = $rsStngs->EncKeyPwd; $API_KEY_ENCRYPT_LEN = $rsStngs->EncKeyLen; $this->db->select("*, CodeId, IMEINo, OrderAPIType AS APIType, OrderAPIId AS APIId, OrderAPIKey AS APIKey, CronDelayTm, RequestedAt, OrderAPIURL AS ServerURL, OrderAPIUserName AS AccountId, OrderAPIServiceId AS ExternalNetworkId, serialno_Z2O5, productidcode_E0U2, phoneno_C2Q9, meid_Z5H1, country_V6A3, network_S4A4, PackageId, providerid_H1Y9, mepcode_J8G4, prdnumber_Q3V3, checkmendreport_V7B8, modelno_T3R8, icloudemailid_G0D4, udid_I1A9, kbhkrh_B7K3, imageurl_F8O2, sentpictures_L1T0, mepcodes_P7Y0, prdcodes_D3O0, MobileId, ModelId, E4C6G0W5U1K0X4K7P5, N2B4R0Y7T4W5D0I4K3, U4G4T7U9K8R6F3L1J9"); $this->db->from('tbl_gf_codes'); $this->db->where("OrderAPIServiceId <> ''"); $this->db->where('OrderType', 1); $this->db->where('CodeStatusId', 1); $this->db->where("OrderAPIId NOT IN ('209', '219', '226', '229', '236', '243', '245', '246', '260')"); $this->db->where('HiddenStatus', 0); $this->db->where("CronDelayTm IN ('1', '2')"); if(!empty($strAnd)) $this->db->where($strAnd); $this->db->order_by('CodeId'); $this->db->offset(0); $this->db->limit(30); $result = $this->db->get(); $rs = $result->result(); //echo $this->db->last_query() . '<br>'; foreach($rs as $k => $v) { $rs[$k]->CustomFields = $this->db->query("SELECT `oftbl`.*, `acf`.`FieldName` AS `FieldOtherName`, `acf`.`FieldLabel` AS `FieldName`, `acf`.`CustomField`, `acf`.`UseAsIMEI` FROM `tbl_gf_order_fields` AS `oftbl` LEFT JOIN `tbl_gf_api_custom_fields` AS `acf` ON `oftbl`.`ApiFieldId` = `acf`.`Id` WHERE `oftbl`.`OrderId` = {$v->CodeId} AND `oftbl`.`OrderType` = 0")->result(); foreach($rs[$k]->CustomFields as $CustomField) { if(trim($CustomField->FieldOtherName)) { foreach(array_map('trim', explode('|', $CustomField->FieldOtherName)) as $FieldOtherName) { $copiedObject = clone $CustomField; $copiedObject->FieldOtherName = ''; $copiedObject->FieldName = $FieldOtherName; $rs[$k]->CustomFields[] = $copiedObject; } } } } // echo 'data: <pre>'; // print_r($rs); // echo '</pre>'; // d($rs); foreach($rs as $row) { if(isset($row->CodeId) && $row->CodeId > 0) { $this->db->where('CodeId', $row->CodeId)->update('tbl_gf_codes', array( 'HiddenStatus' => 1, )); $orderIdFromServer = ''; $ifCodeSentToServer = 0; $msgFromServer = ''; $strUpdate = ''; unset($para); $para = array(); $MY_API_KEY = decryptAPIKey($row->APIKey, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN); if($row->APIType == '0') // OTHER { if($row->APIId == '201') { include APPPATH . 'scripts/placeorder_thefoneshop.php'; } else if($row->APIId == '202') { include APPPATH . 'scripts/placeorder_blueunlock.php'; } else if($row->APIId == '203') { include APPPATH . 'scripts/placeorder_dlgsm.php'; } else if($row->APIId == '204') { // pending include APPPATH . 'scripts/placeorder_unlockbase.php'; } else if($row->APIId == '208') { include APPPATH . 'scripts/placeorder_simunlocks.php'; } else if($row->APIId == '210') { include APPPATH . 'scripts/placeorder_gsmunlockusa.php'; } else if($row->APIId == '211') { include APPPATH . 'libraries/cron/unlock.hk/placeorder.php'; } else if($row->APIId == '212') { include APPPATH . 'libraries/cron/unlocktele.com/placeorder.php'; } else if($row->APIId == '224') { include APPPATH . 'scripts/placeorder_ucs.php'; } else if($row->APIId == '225') { include APPPATH . 'scripts/placeorder_gsmkody.php'; } else if($row->APIId == '227') { include APPPATH . 'scripts/placeorder_lockpop.php'; } else if($row->APIId == '241') { include APPPATH . 'scripts/placeorder_unlockingsmart.php'; } else if($row->APIId == '263') { include APPPATH . 'scripts/order_unlocksworld.php'; } else if($row->APIId == '515') { include APPPATH . 'libraries/cron/atttool.com/order.php'; } } else if($row->APIType == '1' || $row->APIType == '2' || $row->APIType == '7') // DHRU FUSION { include APPPATH . 'scripts/placeorder_dhrufusion.php'; } else if($row->APIType == '3') // CODESK PRO { include APPPATH . 'scripts/placeorder_codeskpro.php'; } else if($row->APIType == '4' || $row->APIType == '6') // GSM Fusion { include APPPATH . 'scripts/placeorder_gsmfusion.php'; } else if($row->APIType == '5') // Naksh { include APPPATH . 'scripts/placeorder_naksh.php'; } else if($row->APIType == '8') // Unlock 66/ Unlock Base { //d($row); include APPPATH . 'libraries/cron/unlock_base.php'; } if(trim($orderIdFromServer != '') && $ifCodeSentToServer == '1') { $strUpdate .= ", CodeStatusId = '4', HiddenStatus = '0', OrderIdFromServer = '".check_input($orderIdFromServer)."'"; } if($msgFromServer == 'This IMEI is already available or pending in your Account') { $strUpdate .= ", CodeStatusId = '4', HiddenStatus = '0'"; } if(InStr($msgFromServer, 'ValidationError') || InStr($msgFromServer, 'Invalid IMEI')) { $strUpdate .= ", CodeStatusId = '4', HiddenStatus = '0'"; } $this->db->query("UPDATE tbl_gf_codes SET CodeSentToOtherServer = '$ifCodeSentToServer', MessageFromServer = '".check_input($msgFromServer)."' $strUpdate WHERE CodeId = '".$row->CodeId."'"); } } } public function sendfileorders() { set_time_limit(0); $currDtTm = setDtTmWRTYourCountry(); $rsStngs = $this->db->where('Id', 1)->get('tbl_gf_email_settings')->row(); $API_KEY_ENCRYPT_PWD = $rsStngs->EncKeyPwd; $API_KEY_ENCRYPT_LEN = $rsStngs->EncKeyLen; $rs = $this->db->select('CodeId, IMEINo, OrderAPIType AS APIType, OrderAPIId AS APIId, OrderAPIKey AS APIKey, OrderAPIURL AS ServerURL, OrderAPIUserName AS AccountId, OrderAPIServiceId AS ExternalNetworkId, CodeFile, FileContents, HashValue, A.CronDelayTm, RequestedAt, OrderAPIKey2, OrderAPIPassword, A.FileName') ->from('tbl_gf_codes_slbf A, tbl_gf_packages B') ->where('A.PackageId = B.PackageId') ->where('OrderAPIId >', 0) ->where('OrderIdFromServer', 0) ->where('CodeStatusId', 1) ->where('HiddenStatus', 0) ->where('OrderType', 1) ->order_by('CodeId') ->offset(0) ->limit(15) ->get() ->result(); foreach($rs as $row) { if(isset($row->CodeId) && $row->CodeId > 0) { $minutesDiff = differenceInMinutes($row->RequestedAt, $currDtTm); $cronDelayTm = $row->CronDelayTm == 0 ? '1' : $row->CronDelayTm; if($minutesDiff >= $cronDelayTm) { $this->db->where('CodeId', $row->CodeId)->update('tbl_gf_codes_slbf', array('HiddenStatus' => 1)); $orderIdFromServer = 0; $ifCodeSentToServer = 0; $msgFromServer = ''; $strUpdate = ''; unset($para); $para = array(); $MY_API_KEY = decryptAPIKey($row->APIKey, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN); if($row->APIType == '0') // OTHER { if($row->APIId == '206') include APPPATH . 'scripts/placefileorder.php'; else if($row->APIId == '218' || $row->APIId == '223') $this->placefileorder_sl3team($orderIdFromServer, $ifCodeSentToServer, $msgFromServer, get_defined_vars()); } else if($row->APIType == '2' || $row->APIType == '7') // DHRU FUSION { $this->placefileorder_dhrufusion($orderIdFromServer, $ifCodeSentToServer, $msgFromServer, get_defined_vars()); } else if($row->APIType == '4' || $row->APIType == '6') // GSM Fusion { $this->placefileorder_gsmfusion($orderIdFromServer, $ifCodeSentToServer, $msgFromServer, get_defined_vars()); } if($orderIdFromServer != '0' && $orderIdFromServer != '') $strUpdate .= ", CodeStatusId = '4', HiddenStatus = '0'"; $this->db->query("UPDATE tbl_gf_codes_slbf SET CodeSentToOtherServer = $ifCodeSentToServer, MessageFromServer = '".check_input($msgFromServer)."', OrderIdFromServer = '".check_input($orderIdFromServer)."' $strUpdate WHERE CodeId = ".$row->CodeId); } } } } public function sendserverorders() { set_time_limit(0); $currDtTm = setDtTmWRTYourCountry(); include(APPPATH . 'libraries/crypt.php'); $crypt = new crypt; $strUpdate = ''; $rsStngs = $this->db->where('Id', 1)->get('tbl_gf_email_settings')->row(); $API_KEY_ENCRYPT_PWD = $rsStngs->EncKeyPwd; $API_KEY_ENCRYPT_LEN = $rsStngs->EncKeyLen; $IS_RETAIL = '0'; $rs = $this->db->select('A.LogPackageId AS PackageId, LogRequestId, OrderAPIType AS APIType, OrderAPIId AS APIId, OrderAPIKey AS APIKey, OrderData, OrderServiceTypeId, OrderAPIURL AS ServerURL, OrderAPIUserName AS AccountId, OrderAPIServiceId AS ExternalNetworkId, A.CronDelayTm, A.Credits, LogPackageTitle AS PackageTitle, APIKey2, A.UserId, RequestedAt, UserEmail, C.UserName AS CustomerName, A.*') ->from('tbl_gf_log_requests A, tbl_gf_log_packages B, tbl_gf_users C, tbl_gf_api D') ->where('A.UserId = C.UserId') ->where('A.LogPackageId = B.LogPackageId') ->where('A.OrderAPIId = D.APIId') ->where('OrderAPIId >', 0) ->where('StatusId', 1) ->where('HiddenStatus', 0) ->order_by('LogRequestId') ->offset(0) ->limit(15) ->get() ->result(); foreach($rs as $k => $v) { $rs[$k]->CustomFields = $this->db->query("SELECT `oftbl`.*, `acf`.`FieldName` AS `FieldOtherName`, `acf`.`FieldLabel` AS `FieldName`, `acf`.`CustomField`, `acf`.`UseAsQuantity` FROM `tbl_gf_order_fields` AS `oftbl` LEFT JOIN `tbl_gf_api_custom_fields` AS `acf` ON `oftbl`.`ApiFieldId` = `acf`.`Id` WHERE `oftbl`.`OrderId` = {$v->LogRequestId} AND `oftbl`.`OrderType` = 2")->result(); foreach($rs[$k]->CustomFields as $CustomField) { if(trim($CustomField->FieldOtherName)) { foreach(array_map('trim', explode('|', $CustomField->FieldOtherName)) as $FieldOtherName) { $copiedObject = clone $CustomField; $copiedObject->FieldOtherName = ''; $copiedObject->FieldName = $FieldOtherName; $rs[$k]->CustomFields[] = $copiedObject; } } } } //echo 'data: <pre>'; //print_r($rs); //echo '</pre>'; foreach($rs as $row) { if(isset($row->LogRequestId) && $row->LogRequestId > 0) { $minutesDiff = differenceInMinutes($row->RequestedAt, $currDtTm); $cronDelayTm = $row->CronDelayTm == 0 ? '1' : $row->CronDelayTm; if($minutesDiff >= $cronDelayTm) { $this->db->where('LogRequestId', $row->LogRequestId)->update('tbl_gf_log_requests', array('HiddenStatus' => 1)); $apiError = $orderIdFromServer = $msgFromServer = $strUpdate = $codeVal = $strDeduct = $CODE = ''; $ifCodeSentToServer = $REJECTED = 0; unset($para); $para = array(); @$crypt->crypt_key($row->UserId); $MY_API_KEY = decryptAPIKey($row->APIKey, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN); if($row->APIType == '0') // OTHER { if($row->APIId == '229') include APPPATH . 'scripts/placesrvrorder_z3x.php'; else if($row->APIId == '260' || $row->APIId == '513') include APPPATH . 'scripts/placesrvrorder_z3x.php'; else if($row->APIId == '222') include APPPATH . 'scripts/placesrvrorder_chimera.php'; else if($row->APIId == '255') include APPPATH . 'scripts/placesrvrorder_fgold.php'; else if($row->APIId == '256') include APPPATH . 'libraries/cron/dc-unlocker.com/srvrorder.php'; else if($row->APIId == '500') include APPPATH . 'libraries/cron/samkey.org/srvrorder.php'; else if($row->APIId == '501') include APPPATH . 'libraries/cron/miracleserver.com/srvrorder.php'; else if($row->APIId == '502') include APPPATH . 'libraries/cron/octopus/srvrorder.php'; else if($row->APIId == '503') include APPPATH . 'libraries/cron/inferno/srvrorder.php'; else if($row->APIId == '504') include APPPATH . 'libraries/cron/uni-andriod/srvrorder.php'; else if($row->APIId == '505') include APPPATH . 'libraries/cron/gcpro/srvrorder.php'; else if($row->APIId == '506') include APPPATH . 'libraries/cron/nokiatool/srvrorder.php'; else if($row->APIId == '507') include APPPATH . 'libraries/cron/eftdongle1/srvrorder.php'; else if($row->APIId == '508') include APPPATH . 'libraries/cron/miracleserver.com/srvrorder.php'; else if($row->APIId == '510') include APPPATH . 'libraries/cron/halabtech/srvrorder.php'; else if($row->APIId == '511') include APPPATH . 'libraries/cron/easyfirmware/srvrorder.php'; else if($row->APIId == '513') include APPPATH . 'libraries/cron/infinitybox/srvrorder.php'; else if($row->APIId == '515') include APPPATH . 'libraries/cron/ftp_dongle/srvrorder.php'; else if($row->APIId == '516') include APPPATH . 'libraries/cron/eftdongle/srvrorder.php'; else if($row->APIId == '517') include APPPATH . 'libraries/cron/miraclecp/srvrorder.php'; else if($row->APIId == '518') include APPPATH . 'libraries/cron/eft-tool/srvrorder.php'; else if($row->APIId == '519') include APPPATH . 'libraries/cron/la-hi-lo/srvrorder.php'; else if($row->APIId == '520') include APPPATH . 'libraries/cron/ufi-box/srvrorder.php'; else if($row->APIId == '530') include APPPATH . 'libraries/cron/peakerr.com/srvrorder.php'; // not found in old project else if($row->APIId == '531') include APPPATH . 'libraries/cron/magma-tool/srvrorder.php'; else if($row->APIId == '535') include APPPATH . 'libraries/cron/mohsin-api/srvrorder.php'; else if($row->APIId == '536') include APPPATH . 'libraries/cron/ftp-tool/srvrorder.php'; else if($row->APIId == '537') include APPPATH . 'libraries/cron/mohsin-api/srvrorder_sprint.php'; else if($row->APIId == '538') include APPPATH . 'libraries/cron/gsmhnfile.com/srvrorder.php'; else if($row->APIId == '540') include APPPATH . 'libraries/cron/cheetah-tool/srvrorder.php'; else if($row->APIId == '222') include APPPATH . 'libraries/cron/chimera-tool/Chimera_api.php'; } else if($row->APIType == '1' || $row->APIType == '2' || $row->APIType == '7') // DHRU FUSION { include APPPATH . 'scripts/srvrorder_dhrufusion.php'; } else if($row->APIType == '4' || $row->APIType == '6') // GSM Fusion { include APPPATH . 'libraries/cron/srvrorder_gsmfusion.php'; } else if($row->APIType == '9') // UAT Prone { include APPPATH . 'libraries/cron/srvrorder_uatpro.php'; } if(trim($codeVal != '') && $ifCodeSentToServer == '1') { $strUpdate .= ", StatusId = '2', ReplyDtTm = '$currDtTm', HiddenStatus = '0', Code = '".check_input($codeVal)."'"; successfulServerOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $codeVal, $row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $row->UserId, $row->OrderData, $row->Comments, $row->LogRequestId); // , $row->serialno_U4L6, $row->quantity_G7V7, $row->username_K4I8, $row->email_B5D9 } else if(trim($orderIdFromServer != '') && $ifCodeSentToServer == '1') { $strUpdate .= ", StatusId = '4', HiddenStatus = '0', OrderIdFromServer = '".check_input($orderIdFromServer)."'"; } if($REJECTED == '1') { $this->db->query("UPDATE tbl_gf_log_requests SET Code = '".check_input($CODE)."' $strDeduct, StatusId = '3', ReplyDtTm = '$currDtTm', HiddenStatus = '0', MessageFromServer = '' WHERE LogRequestId = '".$row->LogRequestId."'"); } $this->db->query("UPDATE tbl_gf_log_requests SET CodeSentToOtherServer = '$ifCodeSentToServer', MessageFromServer = '".check_input($msgFromServer)."' $strUpdate WHERE LogRequestId = '".$row->LogRequestId."'"); } } } } public function revertorderstatuses(){ //========================================= INSTANT IMEI ORDERS ===========================================// $rwIMEI = $this->db->select('CodeId') ->from('tbl_gf_codes') ->where('OrderAPIId >', 0) ->where('CodeSentToOtherServer', 2) ->where("OrderIdFromServer <> ''") ->where("OrderIdFromServer <> '0'") ->where('CodeStatusId', 4) ->where('HiddenStatus', 0) ->where('CronDelayTm', 1) ->where('MessageFromServer', '') ->get() ->row(); if (!isset($rwIMEI->CodeId)) { // RESTART THE LOOP AGAIN $this->db->where(array('HiddenStatus' => 2, 'CronDelayTm' => 1))->update('tbl_gf_codes', array('HiddenStatus' => 0)); } //========================================= INSTANT IMEI ORDERS ===========================================// //========================================= NON INSTANT IMEI ORDERS ===========================================// $rwIMEI = $this->db->select('CodeId') ->from('tbl_gf_codes') ->where('OrderAPIId >', 0) ->where('CodeSentToOtherServer', 1) ->where("OrderIdFromServer <> ''") ->where("OrderIdFromServer <> '0'") ->where('CodeStatusId', 4) ->where('HiddenStatus', 0) ->where("CronDelayTm = '2'") ->where('MessageFromServer', '') ->get() ->row(); if (!isset($rwIMEI->CodeId)) { // RESTART THE LOOP AGAIN $this->db->where('HiddenStatus', 2) ->where("CronDelayTm = '2'") ->update('tbl_gf_codes', array('HiddenStatus' => 0)); } //========================================= NON INSTANT IMEI ORDERS ===========================================// //========================================= FILE ORDERS ===========================================// $rwFile = $this->db->select('CodeId') ->from('tbl_gf_codes_slbf') ->where('OrderAPIId >', 0) ->where('CodeSentToOtherServer', 1) ->where("OrderIdFromServer <> ''") ->where("OrderIdFromServer <> '0'") ->where('CodeStatusId', 4) ->where('HiddenStatus', 0) ->where('MessageFromServer', '') ->get() ->row(); if (!isset($rwFile->CodeId)) { // RESTART THE LOOP AGAIN $this->db->where('HiddenStatus', 2)->update('tbl_gf_codes_slbf', array('HiddenStatus' => 0)); } //============================== FILE ORDERS ==============================// //============================== RETAIL ORDERS ==============================// $rwRtl = $this->db->select('RetailOrderId') ->from('tbl_gf_retail_orders') ->where('OrderAPIId >', 0) ->where('CodeSentToOtherServer', 1) ->where("OrderIdFromServer <> ''") ->where("OrderIdFromServer <> '0'") ->where('OrderStatusId', 4) ->where('HiddenStatus', 0) ->where('MessageFromServer', '') ->get() ->row(); if (!isset($rwRtl->RetailOrderId)) { // RESTART THE LOOP AGAIN $this->db->where('HiddenStatus', 2)->update('tbl_gf_retail_orders', array('HiddenStatus' => 0)); } //============================== RETAIL ORDERS ==============================// } public function ordersemails(){ set_time_limit(0); $this->telegramToken(); $this->delpushNotifications(); //====================================== IMEI ORDER EMAILS =============================================// $rsOrderIds = $this->db->select('Id, OrderIds, OrderStatus') ->from('tbl_gf_order_emails') ->where('sc', 0) ->order_by('Id') ->get() ->result(); foreach($rsOrderIds as $rwOrderIds) { if(isset($rwOrderIds->OrderIds) && $rwOrderIds->OrderIds != '') { $rs = $this->db->select('CodeId, B.UserName AS CustomerName, UserEmail, AlternateEmail, RequestedAt, A.CodeStatusId, A.UserId, IMEINo, Code, A.Credits, ReplyDtTm, PackageTitle, A.Comments, VerifyOrders, B.Credits AS AvailableCredits') ->from('tbl_gf_codes A, tbl_gf_users B, tbl_gf_packages D') ->where('A.UserId = B.UserId') ->where('A.PackageId = D.PackageId') ->where("CodeId IN (".$rwOrderIds->OrderIds.")") ->order_by('A.UserId') ->get() ->result(); $prevUserId = 0; $EMAIL = ''; $NAME = ''; $EMAIL_CONTENTS1 = ''; $EMAIL_CONTENTS1 = ''; foreach($rs as $row) { if (isset($row->UserEmail) && $row->UserEmail != '') { if($prevUserId > 0) { if($row->UserId != $prevUserId) { bulkIMEIOrderEmail($EMAIL, $NAME, $EMAIL_CONTENTS1, $EMAIL_CONTENTS2, $ALT_EMAIL , $rwOrderIds->OrderStatus, $myCredits); $EMAIL = ''; $NAME = ''; $EMAIL_CONTENTS1 = ''; $EMAIL_CONTENTS2 = ''; $ALT_EMAIL = '';; } } $prevUserId = $row->UserId; include(APPPATH . 'libraries/crypt.php'); $crypt = new crypt; @$crypt->crypt_key($prevUserId); $myCredits = $crypt->decrypt($row->AvailableCredits); if($myCredits == '') $myCredits = '-'; else $myCredits = $row->CurrencyAbb.' '.roundMe($myCredits); $EMAIL = $row->UserEmail; $NAME = stripslashes($row->CustomerName); $ALT_EMAIL = $row->AlternateEmail; $verify = $row->VerifyOrders == '1' ? 'Available' : 'Not Available'; if($row->CodeStatusId == '2') { $EMAIL_CONTENTS1 .= bulkIMEIEmailContents(stripslashes($row->PackageTitle), $row->IMEINo, $row->Credits, $row->RequestedAt, $row->ReplyDtTm, stripslashes($row->Code), $verify, '#339900', $row->CodeId, 'COMPLETED', $row->Comments); } else if($row->CodeStatusId == '3') { $EMAIL_CONTENTS1 .= bulkIMEIEmailContents(stripslashes($row->PackageTitle), $row->IMEINo, $row->Credits, $row->RequestedAt, $row->ReplyDtTm, stripslashes($row->Code), $verify, 'red', $row->CodeId, 'REJECTED', $row->Comments); } $EMAIL_CONTENTS2 .= bulkIMEIEmailContentsLst($row->IMEINo, stripslashes($row->Code)); } } bulkIMEIOrderEmail($EMAIL, $NAME, $EMAIL_CONTENTS1, $EMAIL_CONTENTS2, $ALT_EMAIL , $rwOrderIds->OrderStatus, $myCredits); $this->db->where('Id', $rwOrderIds->Id)->delete('tbl_gf_order_emails'); } } //============================== IMEI ORDER EMAILS ==============================// } public function utilities(){ set_time_limit(0); $baseURL = getBaseUrl(); $BACKEND_FOLDER='admin/'; $currDtTm = setDtTmWRTYourCountry(); $ARR_DATE = array(); $ARR_DATE = explode (' ', $currDtTm); $CURRENT_DATE = $ARR_DATE[0]; $arr = getEmailDetails(); $rsStngs = $this->db->select('EncKeyPwd, EncKeyLen, AdminInvoiceNotification') ->from('tbl_gf_email_settings') ->where('Id', 1) ->get() ->row(); $API_KEY_ENCRYPT_PWD = $rsStngs->EncKeyPwd; $API_KEY_ENCRYPT_LEN = $rsStngs->EncKeyLen; $UNAIN = $rsStngs->AdminInvoiceNotification; //============================== THRESHOLD ==============================// //include 'threshold.php'; //=================HAMMAD============include 'apithreshold.php'; //============================== THRESHOLD ==============================// //============================== ADMIN INVOICE NOTIFICATION ==============================// if($UNAIN > 0) { $rsUNAIN = $this->db->select('PaymentId') ->from('tbl_gf_payments') ->where('PaymentStatus', 1) ->where('ByAdmin', 1) ->order_by('PaymentId') ->get() ->result(); $strInvoices = ''; foreach($rsUNAIN as $rwUNAIN) { $lnk = $baseURL.$BACKEND_FOLDER.'payment.php?id='.$rwUNAIN->PaymentId.'&frmId=37&fTypeId=7'; $strInvoices .= '<p><a target="_blank" href="'.$lnk.'">Invoice # '.$rwUNAIN->PaymentId.'</a><p/>'; } echo $strInvoices; } //============================== ADMIN INVOICE NOTIFICATION ==============================// //======================== CLOSE ANSWERED TICKETS AFTER 15 DAYS ==============================// $rs = $this->db->select("TicketId") ->from('tbl_gf_tickets') ->where('StatusId = 2') ->where('DATE(DtTm) < DATE_SUB(CURDATE(), INTERVAL 15 DAY)') ->order_by('TicketId') ->get() ->result(); foreach($rs as $row) { $this->db->query("UPDATE tbl_gf_tickets SET StatusId = '3' WHERE TicketId = '".$row->TicketId."'"); } //======================== CLOSE ANSWERED TICKETS AFTER 15 DAYS ==============================// } public function databaseorders(){ set_time_limit(0); include(APPPATH . 'libraries/crypt.php'); $crypt = new crypt; $currDtTm = setDtTmWRTYourCountry(); //================================================== IMEI ORDERS ==================================================================// $rs = $this->db->select('PackageId, CodeId, IMEINo') ->from('tbl_gf_codes') ->where('OrderType', 0) ->where('CodeStatusId', 1) ->order_by('CodeId') ->offset(0) ->limit(10) ->get() ->result(); foreach($rs as $row) { checkDBIMEIOrder($row->IMEINo, $row->PackageId, $row->CodeId); } //================================================== IMEI ORDERS ==================================================================// //================================================== FILE ORDERS ==================================================================// $rs = $this->db->select('PackageId, CodeId, IMEINo') ->from('tbl_gf_codes_slbf') ->where('OrderType', 0) ->where('CodeStatusId', 1) ->order_by('CodeId') ->offset(0) ->limit(10) ->get() ->result(); foreach($rs as $row) { checkDBFileOrder($row->IMEINo, $row->PackageId, $row->CodeId); } //================================================== FILE ORDERS ==================================================================// //======================================================== LINKED ORDERS =======================================================// $rs = $this->db->select("A.PackageId, CodeId, A.UserId, A.Credits, AlternateEmail, PackageTitle, RequestedAt, UserEmail, IMEINo, A.ResponseDelayTm, LinkedOrderId, CONCAT(FirstName, ' ', LastName) AS CustomerName, A.Comments, D.SendSMS AS SMS_User, B.SendSMS AS SMS_Pack, D.Phone") ->from('tbl_gf_codes A, tbl_gf_packages B, tbl_gf_users D') ->where('A.UserId = D.UserId') ->where('A.PackageId = B.PackageId') ->where('OrderType', 0) ->where('CodeStatusId', 4) ->where("LinkedOrderId <> ''") ->order_by('CodeId') ->offset(0) ->limit(10) ->get() ->result(); foreach($rs as $row) { if($row->LinkedOrderId != '') { $rwCode = $this->db->select('CodeId, CodeStatusId, Code') ->from('tbl_gf_codes') ->where('CodeId', $row->LinkedOrderId) ->where('CodeStatusId IN (2, 3)') ->get() ->row(); if(isset($rwCode->CodeId) && $rwCode->CodeId != '') { $minutesDiff = differenceInMinutes($row->RequestedAt, $currDtTm); if($minutesDiff >= $row->ResponseDelayTm) { $strDeduct = ''; @$crypt->crypt_key($row->UserId); $code = stripslashes($rwCode->Code); if($rwCode->CodeStatusId == '2') { successfulIMEIOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, $code,$row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $row->UserId, $row->Comments, $row->CodeId); } else if($rwCode->CodeStatusId == '3') { if(imeiOrderRefunded($row->CodeId) == '0') { $dec_points = refundIMEICredits($row->UserId, $row->CodeId, $row->IMEINo, addslashes(stripslashes($row->PackageTitle)), $currDtTm, $row->PackageId, $row->Credits, '0', ''); $strDeduct = ", Refunded = '1', CheckDuplication = 0"; } create_push_notification($row->UserId, 'Your IMEI order#: '.$row->CodeId.' has been cancelled!'); rejectedIMEIOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, $code, $row->RequestedAt,$row->PackageId, $row->AlternateEmail, $row->Credits, $dec_points, $row->Comments, $row->CodeId, $row->UserId); } $this->db->query("UPDATE tbl_gf_codes SET Code = '".check_input(addslashes($code))."' $strDeduct, CodeStatusId = '".$rwCode->CodeStatusId."',ReplyDtTm = '$currDtTm' WHERE CodeId = '".$row->CodeId."'"); } } } } //======================================================== IMEI ORDERS =======================================================// //======================================================== FILE ORDERS =======================================================// $rs = $this->db->select("A.PackageId, CodeId, A.UserId, A.Credits, AlternateEmail, PackageTitle, RequestedAt, UserEmail, IMEINo, A.ResponseDelayTm, LinkedOrderId, CONCAT(FirstName, ' ', LastName) AS CustomerName, A.Comments, D.SendSMS AS SMS_User, B.SendSMS AS SMS_Pack, D.Phone") ->from('tbl_gf_codes_slbf A, tbl_gf_packages B, tbl_gf_users D') ->where('A.UserId = D.UserId') ->where('A.PackageId = B.PackageId') ->where('OrderType', 0) ->where('CodeStatusId', 4) ->where("LinkedOrderId <> ''") ->order_by('CodeId') ->offset(0) ->limit(10) ->get() ->result(); foreach($rs as $row) { if($row->LinkedOrderId != '') { $rwCode = $this->db->select('CodeId, CodeStatusId, Code') ->from('tbl_gf_codes_slbf') ->where('CodeId', $row->LinkedOrderId) ->where('CodeStatusId IN (2, 3)') ->get() ->row(); if(isset($rwCode->CodeId) && $rwCode->CodeId != '') { $minutesDiff = differenceInMinutes($row->RequestedAt, $currDtTm); if($minutesDiff >= $row->ResponseDelayTm) { $strDeduct = ''; @$crypt->crypt_key($row->UserId); $code = stripslashes($rwCode->Code); if($rwCode->CodeStatusId == '2') { successfulFileOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, $code,$row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $row->UserId, $row->Comments, $row->CodeId); } else if($rwCode->CodeStatusId == '3') { if(fileOrderRefunded($row->CodeId) == '0') { $dec_points = refundFileCredits($row->UserId, $row->CodeId, $row->IMEINo, addslashes(stripslashes($row->PackageTitle)), $currDtTm, $row->PackageId,$row->Credits, '0', ''); $strDeduct = ", Refunded = '1', CheckDuplication = 0"; } rejectedFileOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, $code, $row->RequestedAt,$row->PackageId, $row->AlternateEmail, $row->Credits, $dec_points, $row->Comments, $row->CodeId, $row->UserId); } $this->db->query("UPDATE tbl_gf_codes_slbf SET Code = '".check_input(addslashes($code))."' $strDeduct, CodeStatusId = '".$rwCode->CodeStatusId."', ReplyDtTm = '$currDtTm' WHERE CodeId = '".$row->CodeId."'"); } } } } //======================================================== FILE ORDERS =======================================================// //======================================================== LINKED ORDERS =======================================================// } public function sendnewsletters_spark(){ /*require 'spark/vendor/autoload.php'; use SparkPost\SparkPost; use GuzzleHttp\Client; use Http\Adapter\Guzzle6\Client as GuzzleAdapter; $httpClient = new GuzzleAdapter(new Client()); $sparky = new SparkPost($httpClient, ['key'=>'01ef4fc1dbc3c1dc07067d0126512bd50d51ad00']);*/ $sparky=''; set_time_limit(0); $arr = getEmailDetails(); $THEME = $this->db->query("SELECT * FROM `tbl_gf_email_settings` WHERE Id = 1")->row()->Theme; //GsmFastest.com //no_reply@gsmfastest.com //====================================== NEWS LETTER =============================================// $emailMsg1 = '<html><body><table border="0" bgcolor="#e5e5e5" cellspacing="0" cellpadding="0" style="background: #e5e5e5; width: 700px; padding: 10px 0; margin: 33px"> <tbody><tr> <td> <div style="width: 680px; margin: 0 auto"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tbody><tr> <td bgcolor="#f7f7f7" style="background: #f7f7f7; padding: 0 10px; border-bottom: 1px solid #e5e5e5"> <table width="100%" border="0" cellspacing="0" cellpadding="0" height="69"> <tbody><tr> <td style="padding: 14px 14px 14px 3px; width: 88%; height: 31px" align="left" valign="middle"> <a href="https://www.gsmfastest.com/" style="border: 0; color: #000; font-size: 18px; text-decoration: none" target="_blank" rel="noreferrer"> <img style="border: 0" alt="LOGO" src="https://www.gsmfastest.com/uplds"'.$THEME.'"/logos/4.png" /> </a> </td> <td style="padding: 8px 0 8px 8px" valign="top" align="right" width="12%"> <table border="0" cellpadding="0" cellspacing="0" style="margin: 23px 3px"> <tbody><tr> <td align="right" valign="middle" height="26"> <a href="https://www.gsmfastest.com/unlock/login" style="font: bold 12px Arial; color: #fff; text-decoration: none; padding: 8px 16px; background-color: #ED8446; border-radius: 4px" target="_blank" rel="noreferrer">Login</a> </td> </tr> </tbody></table> </td> </tr> </tbody></table> </td> </tr> </tbody></table> <table width="100%" cellspacing="0" cellpadding="0" bgcolor="#F4F4F4" style="background: #F4F4F4; padding: 30px"> <tbody><tr> <td bgcolor="#F4F4F4" style="background: #F4F4F4"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tbody>'; $emailMsg2 = '</tbody></table> </div> </div> <p style="padding-bottom: 5px; margin: 0; font: normal 12px/18px Arial,Helvetica,sans-serif; color: #0E0E0E;">Note:-<br />*Strick Policy *HTC, Moto, LG, Samsung Code No Refund<br />*Wrong Carrier No Refund Policy!<br /><br /><br />Verfication Policy :-<br />Please Check Service Description if Allow verification Please Submit <br />ticket https://www.gsmfastest.com/ticket.php?dId=9<br /><br />Online Support <br />http://v2.zopim.com/widget/livechat.html?key=13AsOCaljkdxxnBsV6qMokesrSk1EwMw<br /><br />News Channel on Telegram: <br />https://t.me/gsmfastest<br /><br /><br />Best Regards,<br />GsmFastest.com<br />QQ id: 2193089102<br /><br /><br />Hot Service:-<br />* SamKey TMO 10/20/40/100 Credit "Instant 24/7<br />* Octopus SE Credits "Instant"<br />* Z3x Unlock 50 Credits Pack "Instant"<br />* Miracle 1 Year Account Activations "Instant"<br />* Dc Unlocker Credit / 1 Year Activation "Instant"<br />* infinity Credit any quantity " Hot Price<br />* EFT Dongle 1 Year Support "instant" <br /><br /><br />Our other projects:<br />www.NckShop.com (Flashing Box / Dongle)<br />https://www.gsmtool.net/ ( (Innovative e-business solutions: websites development )</p> </td> </tr> </tbody></table> </td> </tr> </tbody></table> </div> </td> </tr> <tr> <td> <table width="680" border="0" cellspacing="0" cellpadding="0" height="63" style="margin: 0 auto; background: #e5e5e5"> <tbody><tr> <td style="color: #383838; text-align: center; font: normal 12px Arial; padding: 20px 10px"><p style="margin: 0; padding: 0; line-height: 24px">For any help you can contact our customer support at '.$arr[1].'</p> <p style="margin: 0; padding: 0; line-height: 24px">Be sure to add '.$arr[1].' to your address book or safe sender list so our emails get to your inbox.</p> <p style="margin: 20px 0 10px; padding: 0">© <span>2017 gsmfastest.com</span> All rights reserved. </p> <p style="margin: 0 auto; padding: 0; width: 120px"><span style="float: left">Follow us on</span> <a style="text-decoration: none; width: 16px; height: 16px; overflow: hidden; text-decoration: none; display: inline-block" href="https://www.facebook.com/gsmfastest/" target="_blank" rel="noreferrer"> <img style="border: 0" width="16" height="16" src="https://www.gsmfastest.com/images/facebook.png" alt="Facebook" /> </a> </p> </td> </tr> <tr> <td style="color: #383838; text-align: center; font: normal 12px Arial; padding: 10px 10px"> <p style="margin: 0; padding: 0; line-height: 24px">If you do not want to receive these emails from us in the future, please <a href="https://www.gsmfastest.com/unsubscribe.php" style="color: #0f68b4; font-weight: bold; text-decoration: none" target="_blank" rel="noreferrer">click here</a> to unsubscribe. </p> </td></tr></tbody></table></td></tr></tbody></table></body></html>'; $rsNL = $this->db->order_by('Id') ->offset(0) ->limit(100) ->get('tbl_gf_service_price_email') ->result(); foreach($rsNL as $row) { $promise = $sparky->transmissions->post([ 'content' => [ 'from' => [ 'name' => $arr[0], 'email' => $arr[1], ], 'subject' => stripslashes($row->ServiceName), //'html' => '<html><body><p>'.$row->Newsletter.'</p></body></html>', 'html' => $emailMsg1.'<tr> <td style="font: 14px Arial,Helvetica,sans-serif; color: #383838"> <div style="padding-bottom: 25px; font: normal 13px Arial,Helvetica,sans-serif; color: #333">Dear '.stripslashes($row->ClientName).',</div> <div style="padding-bottom: 25px; line-height: 18px"> <div style="padding: 5px 0 15px 0; margin: 0"> <p style="background: #d9edf7; border: 1px solid #bce8f1; font: normal 14px/20px Arial,Helvetica,sans-serif; color: #31708f; border-radius: 4px; margin: 0 0 20px 0; padding: 15px"> This service order price has be changes and from today will effect this price on your account. </p> </div> <div style="margin-bottom: 25px; line-height: 18px; padding: 10px 20px; background: #fff; border: 1px solid #eaeaea; border-radius: 3px"> <table width="98%" cellspacing="0" cellpadding="0" border="0"> <tbody><tr> <td width="120" valign="top" align="left" style="font: bold 13px/20px Arial,Helvetica,sans-serif"> <p style="padding: 0; margin: 0 0 15px 0; color: #8c8c8c; display: inline-block; width: 85%">Notes:</p> </td> <td valign="top" align="left"> <p style="padding: 0; margin: 0 0 15px 0; color: blue; font: normal 13px Arial,Helvetica,sans-serif; line-height: 20px">'.stripslashes($row->UserNotes).'</p> </td> </tr> <tr> <td width="120" valign="top" align="left" style="font: bold 13px/20px Arial,Helvetica,sans-serif"> <p style="padding: 0; margin: 0 0 15px 0; color: #8c8c8c; display: inline-block; width: 85%">Service:</p> </td> <td valign="top" align="left"> <p style="padding: 0; margin: 0 0 15px 0; color: #1a1a1a; font: normal 13px Arial,Helvetica,sans-serif; line-height: 20px">'.stripslashes($row->ServiceName).'</p> </td> </tr> <tr> <td width="120" valign="top" align="left" style="font: bold 13px/20px Arial,Helvetica,sans-serif" nowrap> <p style="padding: 0; margin: 0 0 15px 0; color: #8c8c8c; display: inline-block; width: 85%">Delivery Time:</p> </td> <td valign="top" align="left"> <p style="padding: 0; margin: 0 0 15px 0; color: #1a1a1a; font: normal 13px Arial,Helvetica,sans-serif; line-height: 20px">'.stripslashes($row->DeliveryTime).'</p> </td> </tr> <tr> <td width="120" valign="top" align="left" style="font: bold 13px/20px Arial,Helvetica,sans-serif" nowrap> <p style="padding: 0; margin: 0 0 15px 0; color: #8c8c8c; display: inline-block; width: 85%">Credits:</p> </td> <td valign="top" align="left"> <p style="padding: 0; margin: 0 0 10px 0; color: #1a1a1a; font: normal 12px Arial,Helvetica,sans-serif; line-height: 20px">'.$row->Price.'</p> </td> </tr> <tr> <td width="120" valign="top" align="left" style="font: bold 13px/20px Arial,Helvetica,sans-serif" nowrap> <p style="padding: 0; margin: 0 0 15px 0; color: #8c8c8c; display: inline-block; width: 85%">Service Info:</p> </td> <td valign="top" align="left"> <p style="padding: 0; margin: 0 0 10px 0; color: #1a1a1a; font: normal 12px Arial,Helvetica,sans-serif; line-height: 20px">'.stripslashes($row->Description).'</p> </td> </tr> <tr><td colspan="2"> </td></tr> <tr> <td width="120" valign="top" align="left" style="font: bold 13px/20px Arial,Helvetica,sans-serif" nowrap> <p style="padding: 0; margin: 0 0 15px 0; color: #8c8c8c; display: inline-block; width: 85%">Features:</p> </td> <td valign="top" align="left"> <p style="padding: 0; margin: 0 0 10px 0; color: #1a1a1a; font: normal 12px Arial,Helvetica,sans-serif; line-height: 20px">'.stripslashes($row->Features).'</p> </td> </tr>'.$emailMsg2, //'text' => 'Congratulations, {{name}}!! You just sent your very first mailing!', ], 'substitution_data' => ['name' => 'GSMFastest.com'], 'recipients' => [ [ 'address' => [ 'name' => stripslashes($row->ClientName), 'email' => $row->ClientEmail, ], ], ], ]); $sparky->setOptions(['async' => false]); try { $response = $sparky->transmissions->get(); $response->getStatusCode()."\n"; ($response->getBody())."\n"; $response->getRequest()."\n"; //echo "Your Email Has Been Send Successfully to ".$row->ClientEmail."<br>"; $this->db->where('Id', $row->Id)->delete('tbl_gf_service_price_email'); } catch (\Exception $e) { echo $e->getCode()."\n"; echo $e->getMessage()."\n"; } } //====================================== NEWS LETTER =============================================// } public function getimeiorders() { $LIMIT = '60'; $AND_CLAUSE = " AND A.CronDelayTm = '1'"; $this->fetchimeiorders($LIMIT, $AND_CLAUSE); } public function getimeiordersspecial($apiId = 0) { $LIMIT = '60'; $AND_CLAUSE = " AND A.CronDelayTm = '1'"; if($apiId != 0) { $AND_CLAUSE = " AND A.PackageId = '$apiId'"; } $this->fetchimeiorders($LIMIT, $AND_CLAUSE, ' ASC ', ''); } private function fetchimeiorders($LIMIT, $AND_CLAUSE, $recordsOrder = ' DESC ', $hiddenStatus = "AND HiddenStatus = '0' ") { set_time_limit(0); include(APPPATH . 'libraries/crypt.php'); $crypt = new crypt; $strAnd = ''; $rsStngs = $this->db->select('Phone, EncKeyPwd, EncKeyLen') ->from('tbl_gf_email_settings') ->where('Id', 1) ->get() ->row(); $PHONE_ADMIN = $rsStngs->Phone; $API_KEY_ENCRYPT_PWD = $rsStngs->EncKeyPwd; $API_KEY_ENCRYPT_LEN = $rsStngs->EncKeyLen; $IS_RETAIL = '0'; $currDtTm = setDtTmWRTYourCountry(); $apiId = $this->input->post_get('apiId') ?: 0; $logTime = date('Y-m-d H:i:s', strtotime(' -15 minutes')); $serviceId = $this->input->post_get('serviceId') ?: 0; if($serviceId != '0' && is_numeric($serviceId)) $strAnd .= " AND A.PackageId = '$serviceId'"; if($apiId != '0' && is_numeric($apiId)) $strAnd = " AND OrderAPIId = '$apiId'"; $rs = $this->db->query("SELECT A.PackageId, CodeId, A.UserId, A.Credits, IMEINo, Code, AlternateEmail, CodeStatusId, OrderAPIType AS APIType, AltAPIIds, OrderAPIId AS APIId, OrderAPIKey AS APIKey, OrderAPIURL AS ServerURL, OrderAPIUserName AS AccountId, ToolForUnlockBase, OrderIdFromServer, PackageTitle, RequestedAt, UserEmail, D.UserName AS CustomerName, A.Comments, D.SendSMS AS SMS_User, B.SendSMS AS SMS_Pack, D.Phone, A.attempts, A.logTime FROM tbl_gf_codes A, tbl_gf_packages B, tbl_gf_users D WHERE A.UserId = D.UserId AND A.PackageId = B.PackageId AND OrderAPIId > 0 AND OrderIdFromServer <> '' AND OrderIdFromServer <> '0' AND CodeStatusId = '4' $hiddenStatus AND (A.logTime < '$logTime' OR A.attempts <= '2') AND OrderAPIId NOT IN ('209', '219', '226', '229', '236', '260') $AND_CLAUSE $strAnd ORDER BY CodeId $recordsOrder LIMIT 0, $LIMIT")->result(); //echo $this->db->last_query(); //echo "orders found=" . count($rs) . "<br/>"; foreach($rs as $row) { //echo "Order Id = ".$row->CodeId . "<br />"; if(isset($row->CodeId) && $row->CodeId > 0) { $data = array( 'HiddenStatus' => 2, 'attempts' => $row->attempts + 1, 'logTime' => date('Y-m-d H:i:s'), ); $this->db->where('CodeId', $row->CodeId)->update('tbl_gf_codes', $data); //$this->db->where('CodeId', $row->CodeId)->update('tbl_gf_codes', array('HiddenStatus' => 2)); $amountToAdd = 0; $strDeduct = ''; $ALTERNATE_API_APPLIED = false; @$crypt->crypt_key($row->UserId); $MY_API_KEY = decryptAPIKey($row->APIKey, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN); if($row->APIType == '0' && $row->OrderIdFromServer !='') { if($row->APIId == '201') { require_once(APPPATH . 'scripts/thefoneshop_getcodes.php'); include APPPATH . 'scripts/getcodes_thefoneshop.php'; } else if($row->APIId == '202') { require_once(APPPATH . 'scripts/blueunlock_getcodes.php'); include APPPATH . 'scripts/getcodes_blueunlock.php'; } if($row->APIId == '203') { require_once(APPPATH . 'scripts/dlgsm_getcodes.php'); include APPPATH . 'scripts/getcodes_dlgsm.php'; } else if($row->APIId == '204') { require_once(APPPATH . 'scripts/unlockbase_getcodes.php'); include APPPATH . 'scripts/getcodes_unlockbase.php'; } else if($row->APIId == '208') { include APPPATH . 'scripts/getcodes_simunlocks.php'; } else if($row->APIId == '210') { include APPPATH . 'scripts/getcodes_gsmunlockusa.php'; } else if($row->APIId == '211') { include APPPATH . 'libraries/cron/unlock.hk/getimeiorder.php'; } else if($row->APIId == '212') { include APPPATH . 'libraries/cron/unlocktele.com/getimeiorder.php'; } else if($row->APIId == '224') { include APPPATH . 'scripts/getcodes_ucs.php'; } else if($row->APIId == '225') { include APPPATH . 'scripts/getcodes_gsmkody.php'; } else if($row->APIId == '241') { include_once APPPATH . 'scripts/usmart_getcodes.php'; include APPPATH . 'scripts/getcodes_unlockingsmart.php'; } else if($row->APIId == '263') { include APPPATH . 'scripts/get_unlocksworld.php'; } else if($row->APIId == '515') { include APPPATH . 'libraries/cron/atttool.com/getorder.php'; } } if($row->APIType == '1' || $row->APIType == '2' || $row->APIType == '7') { if($row->APIType == '1' || $row->APIType == '2') { //require_once('dhrufusionapi.class.php'); } else if($row->APIType == '7') { //require_once('gsmhubapi.class.php'); } require_once(APPPATH . 'scripts/fusion_getcodes.php'); include APPPATH . 'scripts/getcodes_fu.php'; } else if($row->APIType == '3' && $row->OrderIdFromServer != '') { include APPPATH . 'scripts/getcodes_codeskpro.php'; } else if(($row->APIType == '4' || $row->APIType == '6') && $row->OrderIdFromServer != '') { require_once(APPPATH . 'scripts/gsmfusion_getcodes.php'); include APPPATH . 'scripts/getcodes_gsmfusion.php'; } else if($row->APIType == '5' && $row->OrderIdFromServer != '') { require_once(APPPATH . 'scripts/naksh_getcodes.php'); include APPPATH . 'scripts/getcodes_naksh.php'; } } } } public function apiserviceprices(){ set_time_limit(0); $totalAPIs = 0; $rsStngs = $this->db->select('EncKeyPwd, EncKeyLen') ->from('tbl_gf_email_settings') ->where('Id', 1) ->get() ->row(); $API_KEY_ENCRYPT_PWD = $rsStngs->EncKeyPwd; $API_KEY_ENCRYPT_LEN = $rsStngs->EncKeyLen; $step = 0; $ARR_API_IMEI_PRICES = array(); $ARR_API_FILE_PRICES = array(); $ARR_API_SERVER_PRICES = array(); $rsCronData = $this->db->select("*")->from("tbl_gf_cronsteps")->get()->row(); //---------- CreateTable if Not Exist --------------- if($rsCronData == ""){ $this->db->query("CREATE TABLE IF NOT EXISTS `tbl_gf_cronsteps` ( `Id` int(11) NOT NULL, `Step` int(11) DEFAULT NULL, `Imei` text, `File` text, `Server` text );"); } if($rsCronData) { $ARR_API_IMEI_PRICES = json_decode($rsCronData->Imei, true); $ARR_API_FILE_PRICES = json_decode($rsCronData->File, true); $ARR_API_SERVER_PRICES = json_decode($rsCronData->Server, true); $step = $rsCronData->Step; } $message = ''; $iCount == 0; if($step == 0) { //GET IMEI and FILE Services for API TYPES 4, 5, 6 $rsAPIs = $this->db->query("SELECT DISTINCT ExternalNetworkId, B.APIId, APITitle, APIType, APIKey, ServerURL, AccountId, APIPassword, B.PackageId, A.ServiceType, A.ServiceId FROM tbl_gf_service_api_pricing A, tbl_gf_packages B, tbl_gf_api C WHERE DisablePackage = 0 AND ArchivedPack = 0 AND A.ServiceId = B.PackageId AND CostPriceFromAPI = 1 AND A.ServiceAPIId = B.APIId AND B.APIId = C.APIId AND (APIType IN (4, 5, 6) OR B.APIId = '204') Order by B.APIId")->result(); $totalAPIs = count($rsAPIs); foreach($rsAPIs as $row) { //echo "<br>Fetching Price for " . $row->PackageId . " API:" . $row->APITitle . " API Service ID:" . $row->ExternalNetworkId; //echo "API TYPE:" . $rsAPIs->APIType; $iCount++; if($row->APIType == 4 || $row->APIType == 6) { //echo "in IF"; if($row->ServiceType == '0') { //echo "<br>service IMEI"; if(array_key_exists($row->APIId, $ARR_API_IMEI_PRICES) && array_key_exists($row->ExternalNetworkId, $ARR_API_IMEI_PRICES[$row->APIId])) { //echo "<br>Skipping"; continue; } //echo "Calling again"; } if($row->ServiceType == '1') { if(array_key_exists($row->APIId, $ARR_API_FILE_PRICES) && array_key_exists($row->ExternalNetworkId, $ARR_API_FILE_PRICES[$row->APIId])) { continue; } } } //$MY_API_KEY = decryptAPIKey($row->APIKey, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN); $costPrice = 0; if($row->ServiceType == '0') { echo "<pre>"; print_r($ARR_API_IMEI_PRICES); $costPrice = getServiceCostPrice($row->APIId, $row->ExternalNetworkId, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN, $row->PackageId, $row->ServiceType, $message, $rsAPIs, $ARR_API_IMEI_PRICES); print_r($ARR_API_IMEI_PRICES); var_dump($costPrice); } else { $costPrice = getServiceCostPrice($row->APIId, $row->ExternalNetworkId, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN, $row->PackageId, $row->ServiceType, $message, $rsAPIs, $ARR_API_FILE_PRICES); } //echo "<br>COST Price:" . $costPrice; if($costPrice > 0 && $costPrice != '') { if($row->ServiceType == '0') $ARR_API_IMEI_PRICES[$row->APIId][$row->ExternalNetworkId] = $costPrice; else if($row->ServiceType == '1') $ARR_API_FILE_PRICES[$row->APIId][$row->ExternalNetworkId] = $costPrice; } } $step = 1; $updateData = array("Imei" => json_encode($ARR_API_IMEI_PRICES), "File" => json_encode($ARR_API_FILE_PRICES), "Server" => json_encode($ARR_API_SERVER_PRICES), "Step" => $step ); $this->db->insert("tbl_gf_cronsteps", $updateData); } //echo "<br>Step 1 done"; if($step == 1) { // Fetch Prices FOR IMEI AND FILE SERVICES API TYPE 1, 7 (HOT FUSion and GSM HUB) $rsSrvcAPIs = $this->db->query("SELECT DISTINCT ExternalNetworkId, B.APIId, APITitle, APIType, APIKey, ServerURL, AccountId, APIPassword, A.ServiceType, B.PackageId FROM tbl_gf_service_api_pricing A, tbl_gf_packages B, tbl_gf_api C WHERE DisablePackage = 0 AND ArchivedPack = 0 AND A.ServiceId = B.PackageId AND CostPriceFromAPI = 1 AND A.ServiceAPIId = B.APIId AND B.APIId = C.APIId AND A.ServiceType IN (0, 1) AND APIType IN (1, 7) Order by B.APIId")->result(); // echo "<pre>"; // print_r($rsSrvcAPIs); $totalAPIs = $totalAPIs + count($rsSrvcAPIs); $serviceResponses = array(); $serviceFileResponses = array(); $serviceGHUBResponses = array(); $serviceGHUBServerResponses = array(); $serviceGHUBFileResponses = array(); $this->load->library('CI_fusionclientapi'); $dhruApi = new CI_fusionclientapi(); foreach($rsSrvcAPIs as $row) { $costPrice = 0; $costPrice = getServiceCostPrice($row->APIId, $row->ExternalNetworkId, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN, $row->PackageId, $row->ServiceType, $message); if($costPrice > 0 && $costPrice != '') { if($row->ServiceType == '0') $ARR_API_IMEI_PRICES[$row->APIId][$row->ExternalNetworkId] = $costPrice; else if($row->ServiceType == '1') $ARR_API_FILE_PRICES[$row->APIId][$row->ExternalNetworkId] = $costPrice; } } $step = 2; $updateData = array("Imei" => json_encode($ARR_API_IMEI_PRICES), "File" => json_encode($ARR_API_FILE_PRICES), "Server" => json_encode($ARR_API_SERVER_PRICES), "Step" => $step ); $this->db->update("tbl_gf_cronsteps", $updateData); } //echo "<br>step 2 done" . date('m/d/Y h:i:s a', time()); if($step == 2) { // Fetch Prices FOR SERVER SERVICES FOR APIS: HOT FUSion and GSM HUB $rsSrvcAPIs = $this->db->query("SELECT DISTINCT ExternalNetworkId, B.APIId, APITitle, APIType, APIKey, ServerURL, AccountId, APIPassword, A.ServiceType, B.LogPackageId FROM tbl_gf_service_api_pricing A, tbl_gf_log_packages B, tbl_gf_api C WHERE B.DisableLogPackage = 0 AND ArchivedPack = 0 AND A.ServiceId = B.LogPackageId AND CostPriceFromAPI = 1 AND A.ServiceAPIId = B.APIId AND B.APIId = C.APIId AND A.ServiceType IN (2) AND APIType IN (1, 7) Order by B.APIId")->result(); // echo "<pre>"; // print_r($rsSrvcAPIs); $totalAPIs = $totalAPIs + count($rsSrvcAPIs); $serviceResponses = array(); $serviceFileResponses = array(); $serviceGHUBResponses = array(); $serviceGHUBServerResponses = array(); $serviceGHUBFileResponses = array(); $this->load->library('CI_fusionclientapi'); $dhruApi = new CI_fusionclientapi(); foreach($rsSrvcAPIs as $row) { $costPrice = 0; $costPrice = getServiceCostPrice($row->APIId, $row->ExternalNetworkId, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN, $row->PackageId, $row->ServiceType, $message); $ARR_API_SERVER_PRICES[$row->APIId][$row->ExternalNetworkId] = $costPrice; } $rsAPIs = $this->db->query("SELECT DISTINCT ExternalNetworkId, B.APIId, APITitle, APIType, APIKey, ServerURL, AccountId, APIPassword, B.LogPackageId, A.ServiceType, A.ServiceId FROM tbl_gf_service_api_pricing A, tbl_gf_log_packages B, tbl_gf_api C WHERE ArchivedPack = 0 AND A.ServiceId = B.LogPackageId AND CostPriceFromAPI = 1 AND A.ServiceAPIId = B.APIId AND B.APIId = C.APIId AND (APIType IN (4, 5, 6)) and A.ServiceType =2 Order by B.APIId")->result(); $totalAPIs = count($rsAPIs); foreach($rsAPIs as $row) { //echo "<br>Fetching Price for " . $row->PackageId . " API:" . $row->APITitle . " API Service ID:" . $row->ExternalNetworkId; //echo "API TYPE:" . $rsAPIs->APIType; $iCount++; if($row->APIType == 4 || $row->APIType == 6) { if($row->ServiceType == '2') { if(array_key_exists($row->APIId, $ARR_API_SERVER_PRICES) && array_key_exists($row->ExternalNetworkId, $ARR_API_SERVER_PRICES[$row->APIId])) { continue; } } } //$MY_API_KEY = decryptAPIKey($row->APIKey, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN); $costPrice = 0; if($row->ServiceType == '2') { $costPrice = getServiceCostPrice($row->APIId, $row->ExternalNetworkId, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN, $row->PackageId, $row->ServiceType, $message, $rsAPIs, $ARR_API_SERVER_PRICES); } //echo "<br>COST Price:" . $costPrice; if($costPrice > 0 && $costPrice != '') { if($row->ServiceType == '2') $ARR_API_SERVER_PRICES[$row->APIId][$row->ExternalNetworkId] = $costPrice; } } $step = 3; $updateData = array("Imei" => json_encode($ARR_API_IMEI_PRICES), "File" => json_encode($ARR_API_FILE_PRICES), "Server" => json_encode($ARR_API_SERVER_PRICES), "Step" => $step ); $this->db->update("tbl_gf_cronsteps", $updateData); } //echo "<br>step 3 done" . date('m/d/Y h:i:s a', time()); if($step == 3) { $rsSrvcAPIs = $this->db->query("select * from (SELECT DISTINCT C.* FROM tbl_gf_service_api_pricing A, tbl_gf_packages B, tbl_gf_api C WHERE DisablePackage = 0 AND ArchivedPack = 0 AND A.ServiceId = B.PackageId AND CostPriceFromAPI = 1 AND A.ServiceAPIId = B.APIId AND B.APIId = C.APIId AND A.ServiceType IN (0, 1) AND APIType IN (2) AND (DATE_SUB(`last_sync_call`, INTERVAL -10 MINUTE) < now() OR last_sync_call is null) UNION SELECT DISTINCT C.* FROM tbl_gf_service_api_pricing A, tbl_gf_log_packages B, tbl_gf_api C WHERE B.DisableLogPackage = 0 AND ArchivedPack = 0 AND A.ServiceId = B.LogPackageId AND CostPriceFromAPI = 1 AND A.ServiceAPIId = B.APIId AND B.APIId = C.APIId AND A.ServiceType IN (2) AND APIType IN (2) AND (DATE_SUB(`last_sync_call`, INTERVAL -10 MINUTE) < now() OR last_sync_call is null)) as table1 Order by APIId")->result(); $totalAPIs = $totalAPIs + count($rsSrvcAPIs); foreach($rsSrvcAPIs as $rsAPI) { $getAllServices = $this->db->query("select * from (SELECT DISTINCT ExternalNetworkId, B.APIId, APITitle, APIType, APIKey, ServerURL, AccountId, APIPassword, A.ServiceType, B.PackageId FROM tbl_gf_service_api_pricing A, tbl_gf_packages B, tbl_gf_api C WHERE DisablePackage = 0 AND ArchivedPack = 0 AND A.ServiceId = B.PackageId AND CostPriceFromAPI = 1 AND A.ServiceAPIId = B.APIId AND B.APIId = C.APIId AND A.ServiceType IN (0, 1) AND APIType IN (2) AND (DATE_SUB(`last_sync_call`, INTERVAL -10 MINUTE) < now() OR last_sync_call is null) AND B.APIId = $rsAPI->APIId UNION SELECT DISTINCT ExternalNetworkId, B.APIId, APITitle, APIType, APIKey, ServerURL, AccountId, APIPassword, A.ServiceType, B.LogPackageId FROM tbl_gf_service_api_pricing A, tbl_gf_log_packages B, tbl_gf_api C WHERE B.DisableLogPackage = 0 AND ArchivedPack = 0 AND A.ServiceId = B.LogPackageId AND CostPriceFromAPI = 1 AND A.ServiceAPIId = B.APIId AND B.APIId = C.APIId AND A.ServiceType IN (2) AND APIType IN (2) AND (DATE_SUB(`last_sync_call`, INTERVAL -10 MINUTE) < now() OR last_sync_call is null) AND B.APIId = $rsAPI->APIId) as table1 Order by APIId")->result(); $apiKey = decryptAPIKey($rsAPI->APIKey, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN); $url = $rsAPI->ServerURL; $accountId = $rsAPI->AccountId; $this->getDhruServicesPrices($rsAPI->APIId, $getAllServices, $apiKey, $url, $accountId, $ARR_API_IMEI_PRICES, $ARR_API_FILE_PRICES, $ARR_API_SERVER_PRICES); $this->Services_model->UpdateApiSyncTime($rsAPI->APIId); } $step = 4; $updateData = array("Imei" => json_encode($ARR_API_IMEI_PRICES), "File" => json_encode($ARR_API_FILE_PRICES), "Server" => json_encode($ARR_API_SERVER_PRICES), "Step" => $step ); $this->db->update("tbl_gf_cronsteps", $updateData); } //echo "<br>step 4 done" . date('m/d/Y h:i:s a', time()); if($step == 4) { $this->db->empty_table("tbl_gf_cronsteps"); if(count($ARR_API_IMEI_PRICES) > 0 || count($ARR_API_FILE_PRICES) > 0 || count($ARR_API_SERVER_PRICES) > 0) { $ARR_CURRENCIES = array(); $rsCurr = $this->db->select('CurrencyId, DefaultCurrency, ConversionRate') ->from('tbl_gf_currency') ->where('DisableCurrency', 0) ->get() ->result(); foreach($rsCurr as $rw) { if($rw->DefaultCurrency == '1') $dfCurrencyId = $rw->CurrencyId; else { $ARR_CURRENCIES[$rw->CurrencyId] = $rw->ConversionRate; } } $ARR_GROUP_PRICES = array(); $rsGrpPrices = $this->db->select('PlanId, PackageId, ServiceType, Price') ->from('tbl_gf_plans_packages_prices') ->where('CurrencyId', $dfCurrencyId) ->get() ->result(); foreach($rsGrpPrices as $rwGP) { $ARR_GROUP_PRICES[$rwGP->PlanId][$rwGP->PackageId][$rwGP->ServiceType] = $rwGP->Price; } echo "<pre>"; print_r($ARR_API_IMEI_PRICES); print_r($ARR_API_FILE_PRICES); print_r($ARR_API_SERVER_PRICES); //======================================== SYNC IMEI PRICES ========================================// autoUpdatePrices($dfCurrencyId, $ARR_CURRENCIES, '0', $ARR_API_IMEI_PRICES, $ARR_GROUP_PRICES); //======================================== SYNC IMEI PRICES ========================================// //======================================== SYNC FILE PRICES ========================================// autoUpdatePrices($dfCurrencyId, $ARR_CURRENCIES, '1', $ARR_API_FILE_PRICES, $ARR_GROUP_PRICES); //======================================== SYNC FILE PRICES ========================================// //======================================== SYNC SERVER PRICES ========================================// autoUpdatePrices($dfCurrencyId, $ARR_CURRENCIES, '2', $ARR_API_SERVER_PRICES, $ARR_GROUP_PRICES); //======================================== SYNC SERVER PRICES ========================================// } } //echo "<br>Completed" . date('m/d/Y h:i:s a', time()); } public function getserverorders(){ set_time_limit(0); include(APPPATH . 'libraries/crypt.php'); $crypt = new crypt; $currDtTm = setDtTmWRTYourCountry(); $apiId = $this->input->post_get('apiId') ?: '0'; $strAnd = ''; if($apiId != '0' && is_numeric($apiId)) $strAnd = " AND OrderAPIId = '$apiId'"; $rsStngs = $this->db->query('SELECT EncKeyPwd, EncKeyLen FROM tbl_gf_email_settings WHERE Id = 1')->row(); $API_KEY_ENCRYPT_PWD = $rsStngs->EncKeyPwd; $API_KEY_ENCRYPT_LEN = $rsStngs->EncKeyLen; $IS_RETAIL = '0'; $rs = $this->db->query("SELECT A.LogPackageId AS PackageId, LogRequestId AS CodeId, A.UserId, A.Credits, Code, AlternateEmail, StatusId, OrderAPIType AS APIType, OrderAPIId AS APIId, OrderAPIKey AS APIKey, OrderAPIURL AS ServerURL, OrderAPIUserName AS AccountId, OrderIdFromServer, OrderData, LogPackageTitle AS PackageTitle, RequestedAt, UserEmail, D.UserName AS CustomerName, A.Comments, D.SendSMS AS SMS_User, B.SendSMS AS SMS_Pack, D.Phone, A.CronDelayTm, serialno_U4L6, quantity_G7V7, username_K4I8, email_B5D9 FROM tbl_gf_log_requests A, tbl_gf_log_packages B, tbl_gf_users D WHERE A.UserId = D.UserId AND A.LogPackageId = B.LogPackageId AND OrderAPIId > 0 AND OrderIdFromServer <> '' AND OrderIdFromServer <> '0' AND StatusId = '4' AND OrderAPIId NOT IN ('209', '219', '226', '229', '236', '260', '513') $strAnd ORDER BY LogRequestId DESC LIMIT 0, 15")->result(); //d($rs); foreach($rs as $row) { if(isset($row->CodeId) && $row->CodeId > 0) { $minutesDiff = differenceInMinutes($row->RequestedAt, $currDtTm); $cronDelayTm = $row->CronDelayTm == 0 ? '1' : $row->CronDelayTm; if($minutesDiff >= $cronDelayTm) { $this->db->query("UPDATE tbl_gf_log_requests SET HiddenStatus = '2' WHERE LogRequestId = '".$row->CodeId."'"); $amountToAdd = 0; $strDeduct = ''; @$crypt->crypt_key($row->UserId); $MY_API_KEY = decryptAPIKey($row->APIKey, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN); if($row->APIType == '0') // OTHER { if($row->APIId == '530') include APPPATH . 'libraries/cron/peakerr.com/getsrvrorder.php'; } if($row->APIType == '1' || $row->APIType == '2' || $row->APIType == '7' || $row->APIType == '9') { if($row->APIType == '1' || $row->APIType == '2') { require_once(APPPATH . 'libraries/cron/dhrufusionapi.class.php'); $api = new DhruFusion(); } else if($row->APIType == '7') { require_once(APPPATH . 'libraries/cron/gsmhubapi.class.php'); $api = new GSMHUB(); } $FU_CODES = array(); if($row->APIType == '1' || $row->APIType == '2') { $FU_CODES = $this->FUSIONGetOrder($row->OrderIdFromServer, $MY_API_KEY, $row->AccountId, $row->ServerURL); } else if($row->APIType == '7') { $FU_CODES = $this->FUSIONGetServerOrder($row->OrderIdFromServer, $MY_API_KEY, $row->AccountId, $row->ServerURL); } else if($row->APIType == '9') { $srvc_id = $this->db->select('OrderAPIServiceId')->where('LogRequestId', $row->CodeId)->get('tbl_gf_log_requests')->row(); $FU_UAT = $this->getServerOrdersUatPro($row->OrderIdFromServer, $MY_API_KEY, $row->AccountId, $row->ServerURL, $srvc_id->OrderAPIServiceId); } $FUCode = ''; $FUCodeStatus = ''; $fu_Code_Status = '1'; $fuCode = ''; if(isset($FU_CODES['order_status']) && $FU_CODES['order_status'] != '') $FUCodeStatus = $FU_CODES['order_status']; if(isset($FU_CODES['unlockdata']) && $FU_CODES['unlockdata'] != '') $FUCode = $FU_CODES['unlockdata']; if(isset($FU_CODES['unlockdata']) && $FU_CODES['unlockdata'] != '') $FUCode = $FU_CODES['unlockdata']; if(isset($FU_UAT) && $FU_UAT->Success != ''){ $FUCode = $FU_UAT->Success; $FUCodeStatus = '4'; } if(isset($FU_UAT) && $FU_UAT->Error != ''){ $FUCode = $FU_UAT->Error; $FUCodeStatus = '0'; } if($IS_RETAIL == '0') { if($FUCodeStatus == '0' || $FUCodeStatus == '1' || $FUCodeStatus == '2')//Pending and NON AVAILABLE { $fu_Code_Status = '1'; } else if($FUCodeStatus == '4') { $fu_Code_Status = '2'; $fuCode = $FUCode; } else if($FUCodeStatus == '3') { $fu_Code_Status = '3'; $fuCode = $FUCode; if(serverOrderRefunded($row->CodeId) == '0') { $dec_points = refundServerCredits($row->UserId, $row->CodeId, addslashes(stripslashes($row->PackageTitle)), $currDtTm, $row->Credits, '0', ''); $strDeduct = ", Refunded = '1' "; } } if($fu_Code_Status == '2' || $fu_Code_Status == '3') { $fuCode = trimCode(addslashes($fuCode)); $this->db->query("UPDATE tbl_gf_log_requests SET Code = '".check_input($fuCode)."' $strDeduct, StatusId = '$fu_Code_Status', ReplyDtTm = '$currDtTm', HiddenStatus = '0' WHERE LogRequestId = '".$row->CodeId."'"); //last_query(); //d($fuCode); if($fu_Code_Status == '2') { successfulServerOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $fuCode, $row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $row->UserId, $row->OrderData, $row->Comments, $row->CodeId); } else if($fu_Code_Status == '3') { rejectedServerOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $fuCode, $row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $dec_points, $row->OrderData, $row->Comments, $row->CodeId, $row->UserId); } } } else if ($IS_RETAIL == '1') { if($FUCodeStatus == '0' || $FUCodeStatus == '1' || $FUCodeStatus == '2')//Pending and NON AVAILABLE { $fu_Code_Status = '1'; } else if($FUCodeStatus == '4') { $fu_Code_Status = '2'; } else if($FUCodeStatus == '3') { $fu_Code_Status = '3'; } if($fu_Code_Status == '2' || $fu_Code_Status == '3') { if($fu_Code_Status == '2') { successfulServerRTLOrderEmail($row->Email, stripslashes($row->Name), stripslashes($row->PackageTitle), $FUCode, $row->RequestedAt, roundMe($row->Price).' '.$row->Currency, $row->OrderData, $row->Comments, $row->RetailOrderId); } else if($fu_Code_Status == '3') { rejectedServerRTLOrderEmail($row->Email, stripslashes($row->Name), stripslashes($row->PackageTitle), $FUCode, $row->RequestedAt,roundMe($row->Price).' '.$row->Currency, $row->OrderData, $row->Comments, $row->RetailOrderId); } $this->db->query("UPDATE tbl_gf_retail_orders SET Code = '".check_input($FUCode)."', OrderStatusId = '$fu_Code_Status', HiddenStatus = '0' WHERE RetailOrderId = '".$row->RetailOrderId."'"); } } } else if($row->APIType == '4' || $row->APIType == '6') { $arrResponse = array(); $arrResponse = $this->getServerOrders_GF($row->OrderIdFromServer, $MY_API_KEY, $row->AccountId, $row->ServerURL); $code = ''; if(isset($responseArr[1])) $code = stripslashes($responseArr[1]); if($IS_RETAIL == '0') { if(isset($arrResponse['error']) && sizeof($arrResponse['error']) > 0) { $this->db->query("UPDATE tbl_gf_log_requests SET MessageFromServer = '".check_input($arrResponse['error'][0])."', HiddenStatus = '0' WHERE LogRequestId = '".$row->CodeId."'"); } else { $RESPONSE_ARR = array(); if(isset($arrResponse['result']['serverorder']) && sizeof($arrResponse['result']['serverorder']) > 0) $arrResponse = $arrResponse['result']['serverorder']; $codeStatus = 1; if($arrResponse[0]['statusId'] == '1') $codeStatus = '1'; else if($arrResponse[0]['statusId'] == '2') { $codeStatus = '2'; } else if($arrResponse[0]['statusId'] == '3') { $codeStatus = '3'; if(serverOrderRefunded($row->CodeId) == '0') { $dec_points = refundServerCredits($row->UserId, $row->CodeId, addslashes(stripslashes($row->PackageTitle)), $currDtTm, $row->Credits, '0', ''); $strDeduct = ", Refunded = '1' "; } } if($codeStatus == '2' || $codeStatus == '3') { $this->db->query("UPDATE tbl_gf_log_requests SET Code = '".check_input($arrResponse[0]['code'])."' $strDeduct, StatusId = '$codeStatus', ReplyDtTm = '$currDtTm', HiddenStatus = '0', MessageFromServer = '' WHERE LogRequestId = '".$row->CodeId."'"); if($codeStatus == '2') { successfulServerOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $arrResponse[0]['code'], $row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $row->UserId, $row->OrderData, $row->Comments, $row->CodeId); } else if($codeStatus == '3') { rejectedServerOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $arrResponse[0]['code'], $row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $dec_points, $row->OrderData, $row->Comments, $row->CodeId, $row->UserId); } } } } else if($IS_RETAIL == '1') { if(isset($arrResponse['error']) && sizeof($arrResponse['error']) > 0) { $this->db->query("UPDATE tbl_gf_retail_orders SET MessageFromServer = '".check_input($arrResponse['error'][0])."', HiddenStatus = '0' WHERE RetailOrderId = '".$row->RetailOrderId."'"); } else { if($responseArr[0] == '2' || $responseArr[0] == '3') { if($responseArr[0] == '2') successfulServerRTLOrderEmail($row->Email, stripslashes($row->Name), stripslashes($row->PackageTitle), $code, $row->RequestedAt, roundMe($row->Price).' '.$row->Currency, $row->OrderData, $row->Comments, $row->RetailOrderId); else if($responseArr[0] == '3') rejectedServerRTLOrderEmail($row->Email, stripslashes($row->Name), stripslashes($row->PackageTitle), $code, $row->RequestedAt, roundMe($row->Price).' '.$row->Currency, $row->OrderData, $row->Comments, $row->RetailOrderId); $this->db->query("UPDATE tbl_gf_retail_orders SET Code = '".check_input(addslashes($code))."', HiddenStatus = '0', OrderStatusId = '".$responseArr[0]."' WHERE RetailOrderId = '".$row->RetailOrderId."'"); } } } } } } } } ///////// private functions \\\\\\\\\ private function placefileorder_dhrufusion(&$orderIdFromServer, &$ifCodeSentToServer, &$msgFromServer, $variables) { extract($variables); $this->load->library('CI_dhrufusion'); $fileContents = ''; if($row->ExternalNetworkId != '') $para['ID'] = $row->ExternalNetworkId; if($row->FileName != '') { $para['FILENAME'] = $row->FileName; $para['FILEDATA'] = base64_encode($row->FileContents); } if($row->FileName != '' && $row->ExternalNetworkId != '') { $dhru_object = new CI_dhrufusion(); $RESPONSE_FU = $dhru_object->action('placefileorder', $MY_API_KEY, $row->AccountId, $row->ServerURL, $para); if(isset($RESPONSE_FU['ERROR']['MESSAGE'])) { $ifCodeSentToServer = 0; $msgFromServer = 'Error while sending request to server!'; if(isset($RESPONSE_FU['ERROR']['MESSAGE'])) $msgFromServer = strip_tags($RESPONSE_FU['ERROR']['MESSAGE']); } if(isset($RESPONSE_FU['ERROR'])) { if(is_array($RESPONSE_FU['ERROR'][0])) { $ifCodeSentToServer = 0; $msgFromServer = 'Error while sending request to server!'; if(isset($RESPONSE_FU['ERROR'][0]['MESSAGE'])) $msgFromServer = strip_tags($RESPONSE_FU['ERROR'][0]['MESSAGE']); if(isset($RESPONSE_FU['ERROR'][0]['FULL_DESCRIPTION'])) $msgFromServer = strip_tags($RESPONSE_FU['ERROR'][0]['FULL_DESCRIPTION']); } } else if(isset($RESPONSE_FU['SUCCESS'])) { $ifCodeSentToServer = 1; if(is_array($RESPONSE_FU['SUCCESS'][0])) { if(isset($RESPONSE_FU['SUCCESS'][0]['REFERENCEID'])) $orderIdFromServer = $RESPONSE_FU['SUCCESS'][0]['REFERENCEID']; } } } else { echo "in else"; } } public function precodeorders(){ $this->imeiprecodeorders(); set_time_limit(0); $currDtTm = setDtTmWRTYourCountry(); $rs = $this->db->select("A.LogPackageId, LogRequestId, A.UserId, A.Credits, AlternateEmail, StatusId, quantity_G7V7, LogPackageTitle, RequestedAt, UserEmail, D.UserName, CONCAT(FirstName, ' ', LastName) AS CustomerName, OrderData") ->from('tbl_gf_log_requests A, tbl_gf_log_packages B, tbl_gf_users D') ->where('A.UserId = D.UserId') ->where('A.LogPackageId = B.LogPackageId') ->where('CalculatePreCodes', 1) ->where('StatusId', 1) ->order_by('LogRequestId') ->offset(0) ->limit(20) ->get() ->result(); foreach($rs as $k => $v) { $rs[$k]->CustomFields = $this->db->query("SELECT orderfields.*, acf.FieldName AS FieldOtherName, acf.FieldLabel AS FieldName, acf.CustomField, acf.UseAsQuantity FROM tbl_gf_order_fields AS orderfields LEFT JOIN tbl_gf_api_custom_fields AS acf ON orderfields.ApiFieldId = acf.Id WHERE orderfields.OrderId = {$v->LogRequestId} AND orderfields.OrderType = 2")->result(); foreach($rs[$k]->CustomFields as $CustomField) { if(trim($CustomField->FieldOtherName)) { foreach(array_map('trim', explode('|', $CustomField->FieldOtherName)) as $FieldOtherName) { $copiedObject = clone $CustomField; $copiedObject->FieldOtherName = ''; $copiedObject->FieldName = $FieldOtherName; $rs[$k]->CustomFields[] = $copiedObject; } } } } foreach($rs as $row) { if(isset($row->LogRequestId) && $row->LogRequestId > 0) { $quantity = 1; foreach($row->CustomFields as $CustomField) { if($CustomField->UseAsQuantity) { if(is_numeric($CustomField->FieldValue) && $CustomField->FieldValue > 1) { $quantity = $CustomField->FieldValue; } } } $rsPCs = $this->db->select('COUNT(PreCodeId) AS TotalPCs') ->from('tbl_gf_precodes') ->where('ServiceType', 2) ->where('Assigned', 0) ->where('ServiceId', $row->LogPackageId) ->get() ->row(); $PRE_CODES_AVAILABLE = $rsPCs->TotalPCs; if($quantity <= $PRE_CODES_AVAILABLE) { $rsCode = $this->db->select('PreCodeId, PreCode') ->from('tbl_gf_precodes') ->where('ServiceId', $row->LogPackageId) ->where('ServiceType', 2) ->where('Assigned', 0) ->order_by('PreCodeId') ->offset(0) ->limit($quantity) ->get() ->result(); $code = ''; $preCodeIds = ''; foreach($rsCode as $rwCode) { $code .= stripslashes($rwCode->PreCode).'<br />'; $preCodeIds .= $rwCode->PreCodeId.','; } if($code != '') { //$code = rtrim($code, '<br />'); $preCodeIds = rtrim($preCodeIds, ','); } if($code != '') { $this->db->where('LogRequestId', $row->LogRequestId)->update('tbl_gf_log_requests', array( 'Code' => check_input($code), 'StatusId' => 2, 'ReplyDtTm' => $currDtTm )); $this->db->insert('tbl_gf_precodes_history', array( 'UserId' => $row->UserId, 'Service' => check_input($row->LogPackageTitle), 'HistoryDtTm' => $currDtTm, 'Code' => $code )); if($preCodeIds != '') { $this->db->where("PreCodeId IN ($preCodeIds)")->update('tbl_gf_precodes', array( 'Assigned' => 1, 'OrderId' => $row->LogRequestId, 'UserId' => $row->UserId, 'UserName' => $row->UserName, 'AssignedDtTm' => $currDtTm )); // $this->db->where("PreCodeId IN ($preCodeIds)")->delete('tbl_gf_precodes'); } successfulServerOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->LogPackageTitle), $code, $row->RequestedAt, $row->LogPackageId, $row->AlternateEmail, $row->Credits, $row->UserId, $row->OrderData); } } } else break; } } public function sendnewsletters(){ set_time_limit(0); $arr = getEmailDetails(); $currDtTm = setDtTmWRTYourCountry(); $ARR_DATE = array(); $ARR_DATE = explode (' ', $currDtTm); $CURRENT_DATE = $ARR_DATE[0]; $RPN = $arr[5]; //====================================== RUSH PAYMENT NOTIFICATION =============================================// if($RPN > 0) { $rsRPN = $this->db->select('COUNT(PaymentId) AS TotalPayments, C.UserName, A.UserId') ->from('tbl_gf_payments A, tbl_gf_payment_methods B, tbl_gf_users C') ->where('A.PaymentMethod = B.PaymentMethodId') ->where('A.UserId = C.UserId') ->where("PayMethodTypeId IN (1, 2, 9, 12)") ->where('PaymentStatus', 2) ->where("DATE(PaymentDtTm) = '$CURRENT_DATE'") ->where('RushPaymentNotified', 0) ->group_by('A.UserId, C.UserName') ->get() ->result(); foreach($rsRPN as $rwRPN ) { if($rwRPN->TotalPayments >= $RPN) { sendGeneralEmail($arr[4], $arr[4], $arr[1], 'Admin', 'Rush Payment Notification', '', "Customer is sending rush payments through PayPal. Please review his user name: ".$rwRPN->UserName." to avoid any inconvenience!"); $this->db->query("UPDATE tbl_gf_payments A, tbl_gf_payment_methods B SET RushPaymentNotified = 1 WHERE A.PaymentMethod = B.PaymentMethodId AND PayMethodTypeId IN (1, 2, 9, 12) AND PaymentStatus = '2' AND DATE(PaymentDtTm) = '$CURRENT_DATE' AND UserId = '".$rwRPN->UserId."'"); } } } //====================================== RUSH PAYMENT NOTIFICATION =============================================// //====================================== NEWS LETTER =============================================// $rsNL = $this->db->select('Id, Title, Newsletter, Email') ->from('tbl_gf_newsletter_to_send') ->order_by('Id') ->offset(0) ->limit(50) ->get() ->result(); foreach($rsNL as $row) { sendGeneralEmail($row->Email, $arr[0], $arr[1], 'Customer', stripslashes($row->Title), '', stripslashes($row->Newsletter)); $this->db->where('Id', $row->Id)->delete('tbl_gf_newsletter_to_send'); } //====================================== NEWS LETTER =============================================// //====================================== PLANS PRICES =============================================// $rsPlansUsers = $this->db->query("SELECT DISTINCT Id, CONCAT(FirstName, ' ', LastName) AS ClientName, UserEmail, A.CurrencyId, CurrencyAbb, A.PricePlanId FROM tbl_gf_users A, tbl_gf_plans_prices_email B, tbl_gf_currency C WHERE A.PricePlanId = B.PlanId AND A.CurrencyId = C.CurrencyId ORDER BY Id LIMIT 0, 50")->result(); foreach($rsPlansUsers as $row) { $emailMsgPr = ''; $emailMsg = 'Dear '.$row->ClientName.',<br /><br />Following services prices have been changed in your account.<br /><br />'; $rsUserPrices = $this->db->select('Id, PackageId, PackTitle, Price, ServiceType') ->from('tbl_gf_plans_prices_email') ->where('PlanId', $row->PricePlanId) ->where('CurrencyId', $row->CurrencyId) ->order_by('PackTitle') ->get() ->result(); foreach($rsUserPrices as $rowPr) { switch($rowPr->ServiceType) { case '0': // IMEI services $tblUserPckPricesNm = 'tbl_gf_users_packages_prices'; $idCol = 'PackageId'; break; case '1': // File services $tblUserPckPricesNm = 'tbl_gf_users_packages_prices'; $idCol = 'PackageId'; break; case '2': // File services $tblUserPckPricesNm = 'tbl_gf_users_log_packages_prices'; $idCol = 'LogPackageId'; break; } $rowPk = $this->db->select('Id') ->from($tblUserPckPricesNm) ->where($idCol, $rowPr->PackageId) ->where('UserId', $row->UserId) ->get() ->row(); if(!isset($rowPk->Id)) { $emailMsgPr .= 'New Price for '.stripslashes($rowPr->PackTitle).' is <b>'.$rowPr->Price.' '.$row->CurrencyAbb.'</b><br /><br />'; } $this->db->where('Id', $rowPr->Id)->delete('tbl_gf_plans_prices_email'); } if($emailMsgPr != '') { $arr = getEmailDetails(); $emailMsg .= $emailMsgPr; sendGeneralEmail($row->UserEmail, $arr[0], $arr[1], 'Customer', 'Service Price Changed', '', $emailMsg); } } //====================================== PLANS PRICES =============================================// //====================================== PRICE CHANGE NOTIFICATION =============================================// $rsPCN = $this->db->order_by('Id') ->offset(0) ->limit(50) ->get('tbl_gf_service_price_email') ->result(); foreach($rsPCN as $row) { sendPCNEmail($row->ClientEmail, stripslashes($row->ClientName), stripslashes($row->ServiceName), stripslashes($row->DeliveryTime), stripslashes($row->Description), $row->Price, stripslashes($row->UserNotes), stripslashes($row->Features)); $this->db->where('Id', $row->Id)->delete('tbl_gf_service_price_email'); } //====================================== PRICE CHANGE NOTIFICATION =============================================// //====================================== PRODUCT NOTIFICATION =============================================// $rsPCN = $this->db->order_by('Id') ->offset(0) ->limit(50) ->get('tbl_gf_product_email') ->result(); foreach($rsPCN as $row) { sendProductEmail($row->ClientEmail, stripslashes($row->ClientName), stripslashes($row->ServiceName), stripslashes($row->DeliveryTime), stripslashes($row->Description), $row->ProdURL, stripslashes($row->UserNotes)); $this->db->where('Id', $row->Id)->delete('tbl_gf_product_email'); } //====================================== PRODUCT NOTIFICATION =============================================// } public function getnoninstantimeis(){ $LIMIT = '300'; $AND_CLAUSE = " AND A.CronDelayTm = '2'"; $this->fetchimeiorders($LIMIT, $AND_CLAUSE); } public function getfileorders() { include(APPPATH . 'libraries/crypt.php'); $crypt = new crypt; $loopCounter = 30; $rsStngs = $this->db->query('SELECT Phone, EncKeyPwd, EncKeyLen FROM tbl_gf_email_settings WHERE Id = 1')->row(); $PHONE_ADMIN = $rsStngs->Phone; $API_KEY_ENCRYPT_PWD = $rsStngs->EncKeyPwd; $API_KEY_ENCRYPT_LEN = $rsStngs->EncKeyLen; $currDtTm = setDtTmWRTYourCountry(); $rs = $this->db->query("SELECT A.PackageId, CodeId, A.UserId, A.Credits, IMEINo, Code, CodeStatusId, OrderAPIType AS APIType, A.Comments, OrderAPIKey2, OrderAPIPassword, OrderAPIId AS APIId, OrderAPIKey AS APIKey, OrderAPIURL AS ServerURL, OrderAPIUserName AS AccountId, OrderIdFromServer, PackageTitle, RequestedAt, UserEmail, UserName AS CustomerName, D.SendSMS AS SMS_User, B.SendSMS AS SMS_Pack, D.Phone, A.CronDelayTm FROM tbl_gf_codes_slbf A, tbl_gf_packages B, tbl_gf_users D WHERE A.UserId = D.UserId AND A.PackageId = B.PackageId AND OrderAPIId > 0 AND HiddenStatus = '0' AND OrderIdFromServer <> '' AND OrderIdFromServer <> '0' AND CodeStatusId = '4' $strAnd ORDER BY CodeId DESC")->result(); foreach($rs as $row) { if(isset($row->CodeId) && $row->CodeId > 0) { $minutesDiff = differenceInMinutes($row->RequestedAt, $currDtTm); $cronDelayTm = $row->CronDelayTm == 0 ? '1' : $row->CronDelayTm; if($minutesDiff >= $cronDelayTm) { $this->db->query("UPDATE tbl_gf_codes_slbf SET HiddenStatus = '2' WHERE CodeId = '".$row->CodeId."'"); $amountToAdd = 0; $strDeduct = ''; $crypt->crypt_key($row->UserId); $fu_Code_Status = '1'; $fuCode = ''; $MY_API_KEY = decryptAPIKey($row->APIKey, $API_KEY_ENCRYPT_PWD, $API_KEY_ENCRYPT_LEN); if($row->APIType == '0') // OTHER { if($row->APIId == '206') { include APPPATH . 'libraries/cron/bruteforce.mobi/getfileorder.php'; } if($row->APIId == '218') { require_once(APPPATH . 'libraries/sl3team.com/sl3team.inc.php'); $api = new SL3_API($MY_API_KEY); $response = $api->checkHash($row->OrderIdFromServer); if(isset($response['status']) && $response['status'] != 'In Queue') { $codeStatus = 2; if($response['status'] != '') $code = $response['status']; if($response['description'] != '') $code = $response['description']; $this->db->query("UPDATE tbl_gf_codes_slbf SET Code = '".check_input($code)."', CodeStatusId = '$codeStatus', ReplyDtTm = '$currDtTm', HiddenStatus = '0' WHERE CodeId = '".$row->CodeId."'"); successfulFileOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, stripslashes($arwResponseArr[1]), $row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $row->UserId, $row->Comments, $row->CodeId); if($row->SMS_User == '1' && $row->SMS_Pack == '1' && $row->Phone!= '' && $PHONE_ADMIN != '') { checkAndSendSMS($row->Phone, $PHONE_ADMIN, '8', stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, stripslashes($arwResponseArr[1]), $row->RequestedAt, $row->Comments); } } } /* else if($row->APIId == '223') { require_once("sl3.inc.php"); include 'getcodes_sl3team.php'; }*/ } if(($row->APIType == '2' || $row->APIType == '7') && $row->OrderIdFromServer !='') { require_once(APPPATH . 'libraries/cron/fusion_getcodes_slbf.php'); $FU_CODES = array(); $FU_CODES = FUSIONGetFileOrder($row->OrderIdFromServer, $MY_API_KEY, $row->AccountId, $row->ServerURL); $FUCode = ''; $FUCodeStatus = ''; $fu_Code_Status = '1'; $fuCode = ''; if(isset($FU_CODES['order_status']) && $FU_CODES['order_status'] != '') $FUCodeStatus = $FU_CODES['order_status']; if(isset($FU_CODES['unlockdata']) && $FU_CODES['unlockdata'] != '') $FUCode = $FU_CODES['unlockdata']; if($FUCodeStatus == '0' || $FUCodeStatus == '1' || $FUCodeStatus == '2')//Pending and NON AVAILABLE { $fu_Code_Status = '1'; } else if($FUCodeStatus == '4') { $fu_Code_Status = '2'; $fuCode = $FUCode; $sendEmail = true; } else if($FUCodeStatus == '3') { $fu_Code_Status = '3'; $fuCode = $FUCode; if(fileOrderRefunded($row->CodeId) == '0') { $dec_points = refundFileCredits($row->UserId, $row->CodeId, $row->IMEINo, addslashes(stripslashes($row->PackageTitle)), $currDtTm, $row->PackageId, $row->Credits, '0', ''); $strDeduct = ", Refunded = '1', CheckDuplication = 0"; } } if($fu_Code_Status == '2' || $fu_Code_Status == '3') { $this->db->query("UPDATE tbl_gf_codes_slbf SET Code = '".check_input($fuCode)."'".$strDeduct.", CodeStatusId = '$fu_Code_Status', ReplyDtTm = '$currDtTm', HiddenStatus = '0' WHERE CodeId = '".$row->CodeId."'"); if($fu_Code_Status == '2') { successfulFileOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, stripslashes($fuCode), $row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $row->UserId, $row->Comments, $row->CodeId); if($row->SMS_User == '1' && $row->SMS_Pack == '1' && $row->Phone!= '' && $PHONE_ADMIN != '') { checkAndSendSMS($row->Phone, $PHONE_ADMIN, '8', stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, stripslashes($fuCode), $row->RequestedAt, $row->Comments); } } else if($fu_Code_Status == '3') { rejectedFileOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, stripslashes($fuCode), $row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $dec_points, $row->Comments, $row->CodeId); if($row->SMS_User == '1' && $row->SMS_Pack == '1' && $row->Phone!= '' && $PHONE_ADMIN != '') { checkAndSendSMS($row->Phone, $PHONE_ADMIN, '14', stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, stripslashes($fuCode), $row->RequestedAt, $row->Comments); } } } } else if(($row->APIType == '4' || $row->APIType == '6') && $row->OrderIdFromServer != '') { require_once(APPPATH . 'libraries/cron/gsmfusion_getcodes_slbf.php'); $strARWCodes = GSMFUSION_GetFileOrder($row->OrderIdFromServer, $MY_API_KEY, $row->AccountId, $row->ServerURL); $arwResponseArr = explode('~', $strARWCodes); $codeStatus = 1; if($arwResponseArr[0] == '1') $codeStatus = '1'; else if($arwResponseArr[0] == '2') { $codeStatus = '2'; } else if($arwResponseArr[0] == '3') { $codeStatus = '3'; if(fileOrderRefunded($row->CodeId) == '0') { $dec_points = refundFileCredits($row->UserId, $row->CodeId, $row->IMEINo, addslashes(stripslashes($row->PackageTitle)), $currDtTm, $row->PackageId, $row->Credits, '0', ''); $strDeduct = ", Refunded = '1', CheckDuplication = 0"; } } if($codeStatus == '2' || $codeStatus == '3') { $this->db->query("UPDATE tbl_gf_codes_slbf SET Code = '".check_input($arwResponseArr[1])."'".$strDeduct.", CodeStatusId = '$codeStatus', ReplyDtTm = '$currDtTm', HiddenStatus = '0' WHERE CodeId = '".$row->CodeId."'"); if($codeStatus == '2') { successfulFileOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, stripslashes($arwResponseArr[1]), $row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $row->UserId, $row->Comments, $row->CodeId); if($row->SMS_User == '1' && $row->SMS_Pack == '1' && $row->Phone!= '' && $PHONE_ADMIN != '') { checkAndSendSMS($row->Phone, $PHONE_ADMIN, '8', stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, stripslashes($arwResponseArr[1]), $row->RequestedAt, $row->Comments); } } else if($codeStatus == '3') { rejectedFileOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, stripslashes($arwResponseArr[1]), $row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $dec_points, $row->Comments, $row->CodeId); if($row->SMS_User == '1' && $row->SMS_Pack == '1' && $row->Phone!= '' && $PHONE_ADMIN != '') { checkAndSendSMS($row->Phone, $PHONE_ADMIN, '14', stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $row->IMEINo, stripslashes($arwResponseArr[1]), $row->RequestedAt, $row->Comments); } } } } } } } } private function placefileorder_gsmfusion(&$orderIdFromServer, &$ifCodeSentToServer, &$msgFromServer, $variables) { extract($variables); require_once(APPPATH . 'libraries/cron/gsmfusion_api.php'); $objGSMFUSIONAPI = new GSMFUSIONAPI(); if($row->ExternalNetworkId != '') $para['networkId'] = $row->ExternalNetworkId; $para['fileName'] = $row->FileName; $para['fileData'] = base64_encode($row->FileContents); if($row->FileName != '' && $row->ExternalNetworkId != '') { $objGSMFUSIONAPI->doAction('placefileorder', $MY_API_KEY, $row->ServerURL, $row->AccountId, $para); $objGSMFUSIONAPI->XmlToArray($objGSMFUSIONAPI->getResult()); $arrayData = $objGSMFUSIONAPI->createArray(); if(isset($arrayData['error']) && sizeof($arrayData['error']) > 0) { $ifCodeSentToServer = 0; $msgFromServer = $arrayData['error'][0]; } else { $RESPONSE_ARR = array(); if(isset($arrayData['result']['fileorder']) && sizeof($arrayData['result']['fileorder']) > 0) $RESPONSE_ARR = $arrayData['result']['fileorder']; $total = count($RESPONSE_ARR); if($total > 0) { $orderIdFromServer = $RESPONSE_ARR[0]['id']; $ifCodeSentToServer = 1; } } } } private function placefileorder_sl3team(&$orderIdFromServer, &$ifCodeSentToServer, &$msgFromServer, $variables) { extract($variables); if($row->APIId == '218') { $this->load->library('CI_sl3team', ['api_key' => $MY_API_KEY]); $api = $this->CI_sl3team; } else if($row->APIId == '223') { $this->load->library('CI_sl3bf', ['api_key' => $MY_API_KEY]); $api = $this->CI_sl3bf; } $response = $api->addHash($row->IMEINo, substr($row->HashValue,0, 40), '0', ''); if (isset($response['msg_code']) && $response['msg_code'] == '7') { $ifCodeSentToServer = 1; if(isset($response['id'])) $orderIdFromServer = $response['id']; } else { $ifCodeSentToServer = 0; $msgFromServer = 'Error while sending an order to supplier: ' . $api->getMessage($response['msg_code']); } } private function FUSIONGetOrder($refid, $apiKey, $accountId, $serverURL, $apiType = '2') { $datarr = array(); $datarr['ID'] = $refid; if($apiType == '1' || $apiType == '2') { require_once(APPPATH . 'libraries/cron/dhrufusionapi.class.php'); $objFusion = new DhruFusion(); } else { require_once(APPPATH . 'libraries/cron/gsmhubapi.class.php'); $objFusion = new GSMHUB(); } $RESPONSE_FU = $objFusion->action('getimeiorder', $apiKey, $accountId, $serverURL, $datarr); $returnarr = array(); if(isset($RESPONSE_FU['SUCCESS'])) { if(is_array($RESPONSE_FU['SUCCESS'][0])) { if(isset($RESPONSE_FU['SUCCESS'][0]['STATUS'])) $returnarr['order_status'] = $RESPONSE_FU['SUCCESS'][0]['STATUS']; if(isset($RESPONSE_FU['SUCCESS'][0]['STATUS'])) $returnarr['unlockdata'] = $RESPONSE_FU['SUCCESS'][0]['CODE']; } } return $returnarr; } private function getServerOrdersUatPro($refid, $apiKey, $accountId, $serverURL, $srvc_id = null) { //print_r('here'); die; $param = array( 'username' => $accountId, 'order_id' => $refid, 'service_id' => $srvc_id, ); include APPPATH . 'libraries/CI_UnlockUat.php'; $api = new CI_UnlockUat(); $XML = $api->CallAPI($apiKey, $serverURL, 'get_order', $param); $Data = json_decode($XML); //var_dump($Data); die; return $Data; } private function FUSIONGetServerOrder($refid, $apiKey, $accountId, $serverURL) { $datarr = array(); $datarr['ID'] = $refid; require_once(APPPATH . 'libraries/cron/gsmhubapi.class.php'); $objFusion = new GSMHUB(); $RESPONSE_FU = $objFusion->action('getserverorder', $apiKey, $accountId, $serverURL, $datarr); $returnarr = array(); if(isset($RESPONSE_FU['SUCCESS'])) { if(is_array($RESPONSE_FU['SUCCESS'][0])) { if(isset($RESPONSE_FU['SUCCESS'][0]['STATUS'])) $returnarr['order_status'] = $RESPONSE_FU['SUCCESS'][0]['STATUS']; if(isset($RESPONSE_FU['SUCCESS'][0]['STATUS'])) $returnarr['unlockdata'] = $RESPONSE_FU['SUCCESS'][0]['CODE']; } } return $returnarr; } private function getServerOrders_GF($refid, $apiKey, $accountId, $serverURL) { require_once(APPPATH . 'libraries/cron/gsmfusion_api.php'); $objGSMFUSIONAPI = new GSMFUSIONAPI(); $objGSMFUSIONAPI->doAction('getserverorder', $apiKey, $serverURL, $accountId, array('orderId' => $refid)); $objGSMFUSIONAPI->XmlToArray($objGSMFUSIONAPI->getResult()); $arrayData = $objGSMFUSIONAPI->createArray(); return $arrayData; } public function sendtestemail() { //echo "I'm here ". APPPATH. 'libraries/elastic_email/Api.php '; //$apiUrl = $emailType->apiUrl; //$apiKey = $emailType->apiKey; require_once(APPPATH. 'libraries/elastic_email/Api.php'); $elasticMail = new Api(); $api_key = '02F5709B56CC18DEAC0D1371EB47F216316EF226C402A631DD3337BF07A59B6775054217C9DBF2F827E9EEACC1827564'; $to = 'saleheen@astutesol.com'; $from = 'comtech.gsmlab@gmail.com'; $reply_to = 'comtech.gsmlab@gmail.com'; $subject = 'Test Email Localhost | ElasticMail'; $content = 'This is a test mail.'; $elasticMail->send($api_key, $to, $from, $subject, $content, $reply_to); d($elasticMail); mailGun($to, $fromName, $fromEmail, $subject, $message, $cc, $bcc, $multipleBCC, $attachment, $emailType->apiUrl, $emailType->apiKey); //sendMail("anwar.shahid@gmail.com", "Shahid", "myemail@test.com", "testing// cron job", "This email came from cron job function"); } public function getEncString($string) { echo bFEncrypt($string); } private function getDhruServicesPrices($APIId, $getAllServices, $apiKey, $url, $accountId, &$ARR_API_IMEI_PRICES, &$ARR_API_FILE_PRICES, &$ARR_API_SERVER_PRICES) { $this->load->library('CI_fusionclientapi'); $dhruApi = new CI_fusionclientapi(); $arrResponse = array(); $arrResponse['html'] = ''; //todo:uncomment try{ $arrResponse = $dhruApi->action('imeiservicelist', $apiKey, $accountId, $url); //@file_put_contents(FCPATH . 'D'. $startDate . $APIId . '.txt', json_encode($arrResponse)); $msg = ''; $arrayPrices = array(); if (is_array($arrResponse)) { if (isset($arrResponse['SUCCESS']) && $arrResponse['SUCCESS'][0]) { $RESPONSE_ARR = array(); if(isset($arrResponse['SUCCESS'][0]['LIST']) && is_array($arrResponse['SUCCESS'][0]['LIST'])) $RESPONSE_ARR = $arrResponse['SUCCESS'][0]['LIST']; $str = ''; $strServices = ''; $strBrands = ''; $strModels = ''; foreach( $RESPONSE_ARR as $key => $value) { if(is_array($value['SERVICES'])) { foreach($value['SERVICES'] as $k => $v) { foreach($getAllServices as $serviceRow) { //echo "[" . $v['SERVICEID'] . "] == [" . $serviceRow->ExternalNetworkId . "]"; if($v['SERVICEID'] == $serviceRow->ExternalNetworkId) { //echo "first condition=[" . ($v['SERVICETYPE'] == 'IMEI') . "]"; //echo "second condition=[" . ($serviceRow->ServiceType == 0) . "]<br>"; if(isset($v['SERVICETYPE'])) { if($v['SERVICETYPE'] == 'IMEI' && $serviceRow->ServiceType == 0) { $ARR_API_IMEI_PRICES[$APIId][$v['SERVICEID']] = $v['CREDIT']; } elseif($v['SERVICETYPE'] == 'SERVER' && $serviceRow->ServiceType == 2) { $ARR_API_SERVER_PRICES[$APIId][$v['SERVICEID']] = $v['CREDIT']; } elseif(($v['SERVICETYPE'] != 'SERVER' && $v['SERVICETYPE'] != 'IMEI') && $serviceRow->ServiceType == 1) { $ARR_API_FILE_PRICES[$APIId][$v['SERVICEID']] = $v['CREDIT']; } } else { if($serviceRow->ServiceType == 0) { $ARR_API_IMEI_PRICES[$APIId][$v['SERVICEID']] = $v['CREDIT']; } elseif($serviceRow->ServiceType == 2) { $ARR_API_SERVER_PRICES[$APIId][$v['SERVICEID']] = $v['CREDIT']; } elseif($serviceRow->ServiceType == 1) { $ARR_API_FILE_PRICES[$APIId][$v['SERVICEID']] = $v['CREDIT']; } } } } } } } } } } catch(Exception $ex) { ;//do nothing } } public function sendTelegramNotification() { $row = $this->db->select('telegram_cronJob')->get('tbl_gf_email_settings')->row(); if($row->telegram_cronJob == true){ $data = $this->db->order_by("id", "desc")->limit(200)->get('tbl_gf_telegram_notification')->result(); $i = 1; foreach($data as $key){ create_push_notification($key->userId, $key->message); $this->db->where("id", $key->id)->delete("tbl_gf_telegram_notification"); if($i%25 == 0) sleep(1); $i++; } }else{ return; } } public function delpushNotifications(){ $date = strtotime(date('Y-m-d h:i:s')); $date = strtotime("-5 day", $date); $curDate = date('Y-m-d 00:00:00', $date); $where = ['CreatedAt <' => $curDate]; $this->db->delete('tbl_gf_push_notifications', $where); } public function telegramToken(){ $tokens = $this->db->select('genratedTime')->where('genratedTime <>', null)->get('tbl_gf_users')->result(); if($tokens) { $genratedTime = date("Y-m-d h:i", strtotime("-5 minutes")); $data = array('TelegramToken' => null, 'genratedTime' => null); // =============== REST Fields =============== $this->db->where(['genratedTime =' => null,]); $this->db->update('tbl_gf_users', $data); //============================================ $this->db->where(['genratedTime <=' => $genratedTime, 'telegramToken <>' => null]); $this->db->update('tbl_gf_users', $data); } } // Test pre-code for imei public function imeiprecodeorders(){ set_time_limit(0); $currDtTm = setDtTmWRTYourCountry(); /* ("A.LogPackageId, LogRequestId, A.UserId, A.Credits, AlternateEmail, StatusId, quantity_G7V7, LogPackageTitle, RequestedAt, UserEmail, D.UserName, CONCAT(FirstName, ' ', LastName) AS CustomerName, OrderData") */ $rs = $this->db->select("A.PackageId, CodeId, A.UserId, A.Credits, AlternateEmail, CodeStatusId, IMEINo, PackageTitle, RequestedAt, UserEmail, D.UserName, CONCAT(FirstName, ' ', LastName) AS CustomerName, OrderData") ->from('tbl_gf_codes A, tbl_gf_packages B, tbl_gf_users D') ->where('A.UserId = D.UserId') ->where('A.PackageId = B.PackageId') ->where('CalculatePreCodes', 1) ->where('CodeStatusId', 1) ->order_by('CodeId') ->offset(0) ->limit(20) ->get() ->result(); foreach($rs as $k => $v) { $rs[$k]->CustomFields = $this->db->query("SELECT orderfields.*, acf.FieldName AS FieldOtherName, acf.FieldLabel AS FieldName, acf.CustomField, acf.UseAsQuantity FROM tbl_gf_order_fields AS orderfields LEFT JOIN tbl_gf_api_custom_fields AS acf ON orderfields.ApiFieldId = acf.Id WHERE orderfields.OrderId = {$v->CodeId} AND orderfields.OrderType = 2")->result(); foreach($rs[$k]->CustomFields as $CustomField) { if(trim($CustomField->FieldOtherName)) { foreach(array_map('trim', explode('|', $CustomField->FieldOtherName)) as $FieldOtherName) { $copiedObject = clone $CustomField; $copiedObject->FieldOtherName = ''; $copiedObject->FieldName = $FieldOtherName; $rs[$k]->CustomFields[] = $copiedObject; } } } } foreach($rs as $row) { if(isset($row->CodeId) && $row->CodeId > 0) { $quantity = 1; foreach($row->CustomFields as $CustomField) { if($CustomField->UseAsQuantity) { if(is_numeric($CustomField->FieldValue) && $CustomField->FieldValue > 1) { $quantity = $CustomField->FieldValue; } } } $rsPCs = $this->db->select('COUNT(PreCodeId) AS TotalPCs') ->from('tbl_gf_precodes') ->where('ServiceType', 0) ->where('Assigned', 0) ->where('ServiceId', $row->PackageId) ->get() ->row(); $PRE_CODES_AVAILABLE = $rsPCs->TotalPCs; if($quantity <= $PRE_CODES_AVAILABLE) { $rsCode = $this->db->select('PreCodeId, PreCode') ->from('tbl_gf_precodes') ->where('ServiceId', $row->PackageId) ->where('ServiceType', 0) ->where('Assigned', 0) ->order_by('PreCodeId') ->offset(0) ->limit(1) ->get() ->result(); $code = ''; $preCodeIds = ''; foreach($rsCode as $rwCode) { $code .= stripslashes($rwCode->PreCode).'<br />'; $preCodeIds .= $rwCode->PreCodeId.','; } if($code != '') { //$code = rtrim($code, '<br />'); $preCodeIds = rtrim($preCodeIds, ','); } if($code != '') { $this->db->where('CodeId', $row->CodeId)->update('tbl_gf_codes', array( 'Code' => check_input($code), 'CodeStatusId' => 2, 'ReplyDtTm' => $currDtTm )); $this->db->insert('tbl_gf_precodes_history', array( 'UserId' => $row->UserId, 'Service' => check_input($row->PackageTitle), 'HistoryDtTm' => $currDtTm, 'Code' => $code )); if($preCodeIds != '') { $this->db->where("PreCodeId IN ($preCodeIds)")->update('tbl_gf_precodes', array( 'Assigned' => 1, 'OrderId' => $row->CodeId, 'UserId' => $row->UserId, 'UserName' => $row->UserName, 'AssignedDtTm' => $currDtTm, 'Addedat' => $currDtTm, )); // $this->db->where("PreCodeId IN ($preCodeIds)")->delete('tbl_gf_precodes'); } //$this->db->where(['ServiceId' => $row->PackageId, 'ServiceType' => 0, 'OrderId' => $row->CodeId,]); //$this->db->delete('tbl_gf_precodes'); successfulIMEIOrderEmail($row->UserEmail, stripslashes($row->CustomerName), stripslashes($row->PackageTitle), $code, $row->RequestedAt, $row->PackageId, $row->AlternateEmail, $row->Credits, $row->UserId, $row->OrderData); } } } else break; } } }