function goEnrolments() { $progroup = db::runQuery("select * from process_group where process_status = '2'", 0, 1); if ($progroup) { foreach ($progroup as $pgr) { $supressInvoiceEmail = "0"; $generateInvoice = "true"; $archiveINvoice = "true"; $Continue = true; //Check if we already have an invoice (Usually due to a failed payment needing to be come back through). $enrCheck = db::runQuery("select * from |process_group| where processgroupID = '{$processgroup}'"); if ($enrCheck) { $enrCheckcur = $enrCheck[0]; if (!$enrCheckcur['GroupInvoiceID'] == "") { db::insertQuery("update |process_group| set process_status = '4' where processgroupID = '{$processgroup}'"); continue; } } if ($pgr['campaign_code'] == "") { $campaignCode = false; $campaignDetails = false; $campaignID = 0; $campaignName = false; $allowOfflinePayments = false; $forceOfflinePayments = false; $dontInvoiceUser = false; $addressToInvoice = false; $contactIDtoInvoice = false; $sendAWFANotice = false; $autoLockandCloseInvoice = true; } else { $campaignCode = $pgr['campaign_code']; $campaignDetails = getCampaignDetails($campaignCode); $campaignID = $campaignDetails['ID']; $campaignName = $campaignDetails['campaignName']; $allowOfflinePayments = $campaignDetails['allowOfflinePayments']; $forceOfflinePayments = $campaignDetails['forceOfflinePayments']; $dontInvoiceUser = $campaignDetails['dontInvoiceUser']; $addressToInvoice = $campaignDetails['addressToInvoice']; $contactIDtoInvoice = $campaignDetails['contactIDtoInvoice']; $sendAWFANotice = $campaignDetails['awfaSendInvoiceNotification']; $autoLockandCloseInvoice = $campaignDetails['awfaAutoLockandCloseInvoice']; if ($autoLockandCloseInvoice == 0) { $autoLockandCloseInvoice = false; } if ($autoLockandCloseInvoice == 1) { $autoLockandCloseInvoice = true; } if ($forceOfflinePayments) { $forceOfflinePayments = true; } else { $forceOfflinePayments = false; } if ($contactIDtoInvoice == "") { $contactIDtoInvoice = false; } } $courseID = $pgr['eventID']; $courseDetails = getEventDetails($courseID); $processgroup = db::esc($pgr['processgroupID']); $contactIDtoInvoice = db::esc($contactIDtoInvoice); $allowOfflinePayments = db::esc($allowOfflinePayments); $forceOfflinePayments = db::esc($forceOfflinePayments); $dontInvoiceUser = db::esc($dontInvoiceUser); $addressToInvoice = db::esc($addressToInvoice); //Create Multi Enrolment $trainees = db::runQuery("select * from process_trainee where processgroupID = '{$processgroup}'"); $primaryContact = ""; $courseInstanceID = ""; $processgroup = ""; $costperperson = $courseDetails['cost']; $subt = getDiscountPrice($campaignCode, $costperperson); $costperperson = $subt; if (!$costperperson == $subt) { $hasdiscount = true; } else { $hasdiscount = false; } echo $costperperson . " ---<br>"; $totalCostCal = 0; if ($trainees) { $contactList = ""; foreach ($trainees as $trn) { if ($contactList == "") { $contactList = $contactList . $trn['contactID']; $primaryContact = $trn['contactID']; $courseInstanceID = $trn['eventID']; $processgroup = $trn['processgroupID']; $processgroup = $trn['processgroupID']; $costperperson = $costperperson; } else { $contactList = $contactList . "," . $trn['contactID']; } $totalCostCal = $totalCostCal + $costperperson; } if ($contactIDtoInvoice != false) { $primaryContact = $contactIDtoInvoice; } $totalCostCal = db::esc($totalCostCal); $primaryContact = db::esc($primaryContact); db::insertQuery("update process_group set totalcost = '{$totalCostCal}', process_status = '3', primaryContactID = '{$primaryContact}', allowOfflinePayments = '{$allowOfflinePayments}', forceOfflinePayments = '{$forceOfflinePayments}', dontInvoiceUser = '******', addressToInvoice = '{$addressToInvoice}', contactIDtoInvoice = '{$contactIDtoInvoice}' where processgroupID = '{$processgroup}'"); //$supressInvoiceEmail = "false"; if ($autoLockandCloseInvoice) { $lockInvoiceItems = "false"; $supressInvoiceEmail = "true"; $generateInvoice = "true"; $archiveINvoice = "false"; } else { $lockInvoiceItems = "true"; $supressInvoiceEmail = "false"; $generateInvoice = "true"; $archiveINvoice = "true"; } if ($hasdiscount) { $supressInvoiceEmail = "true"; //20151211 - AJ - Fix for invoices not auto archiving when they should $lockInvoiceItems = "false"; $supressInvoiceEmail = "true"; $generateInvoice = "true"; $archiveINvoice = "false"; } else { $supressInvoiceEmail = "false"; //20151211 - AJ _ Fix for invoices not auto archiving when the should $lockInvoiceItems = "true"; $supressInvoiceEmail = "false"; $generateInvoice = "true"; $archiveINvoice = "true"; } $enrollVars = array('contactID' => $contactList, 'instanceID' => $courseInstanceID, 'payerID' => $primaryContact, 'type' => 'w', 'generateInvoice' => $generateInvoice, 'suppressEmail' => $supressInvoiceEmail, 'archiveInvoice' => $archiveINvoice, 'lockInvoiceItems' => $lockInvoiceItems); $enrollNow = axcelerate_multienroll($enrollVars, $processgroup); ob_start(); echo "Axcelerate Multi Enrol\n"; var_dump($enrollNow); echo "\n\nvars:\n\n"; var_dump($enrollVars); $extrans_dump = ob_get_clean(); dlog($extrans_dump, false, $processgroup); if (isset($enrollNow->error)) { $enrollIsError = true; $trans['message'] = $enrollNow->MESSAGES; dlog("Enrol-Enrolment: Axcelerate returned error: {$processgroup} - " . $trans['message'], false, $processgroup); markGroupError($processgroup, $trans['message']); die; } $groupInvoiceID = ""; $totalCost = 0; foreach ($enrollNow as $student) { $InvoiceID = db::esc($student->INVOICEID); $ContactID = db::esc($student->CONTACTID); $LearnerID = db::esc($student->LEARNERID); $Amount = db::esc($student->AMOUNT); $totalCost = $totalCost + $student->AMOUNT; if ($ContactID == "") { markGroupError($processgroup, ""); } $groupInvoiceID = $InvoiceID; if (!$sendAWFANotice == "") { //Send a manual invoice flag $sendManualInvoice = "1"; $sendAWFANotice = db::esc($sendAWFANotice); } else { $sendManualInvoice = "0"; } db::insertQuery("update process_trainee set learnerID = '{$LearnerID}', invoiceID = '{$InvoiceID}', sendManualInvoice = '{$sendManualInvoice}', manualInvoiceTo = '{$sendAWFANotice}' where contactID = '{$ContactID}' and processgroupID = '{$processgroup}'"); } if ($forceOfflinePayments == true) { db::insertQuery("update process_group set GroupInvoiceID = '{$groupInvoiceID}', process_status = '4', payment_type = 'offline', primaryContactID = '{$primaryContact}' where processgroupID = '{$processgroup}'"); } else { db::insertQuery("update process_group set GroupInvoiceID = '{$groupInvoiceID}', process_status = '4', primaryContactID = '{$primaryContact}' where processgroupID = '{$processgroup}'"); } if ($sendManualInvoice == "1") { sendManualInvoice($processgroup); } } } } }
} //dlog("Course instance closed ($instanceID) by $userName","courseQuickClose"); header('Content-Type: application/json'); echo removeBlockQuotes(json_encode($coparr)); } if ($app == "getCourseLocations") { //$inputDataArr = explode("_",$inputData); //$IDACount = count($inputDataArr); if (isset($_GET['defaultLocation'])) { $defaultLocation = $_GET['defaultLocation']; } else { $defaultLocation = false; } if (isset($_GET['campaign'])) { $campaignCode = $_GET['campaign']; $campaignDetails = getCampaignDetails($campaignCode); } else { $campaignCode = false; $campaignDetails = false; } //State Only //$state = db::esc($inputDataArr[0]); if ($campaignDetails) { if ($campaignDetails['restrictCourses'] || $campaignDetails['restrictCourses'] == "1") { //var_dump($campaignDetails); $couponID = $campaignDetails['ID']; $locations = db::runQuery("select locations.* from locations inner join coupon_locationRestriction on coupon_locationRestriction.locationID = locations.ID where locationState <> '' and mergeWithID = '0' and coupon_locationRestriction.couponID = '{$couponID}' order by locationState asc, LocationName asc"); //var_dump($locations); //$locations = db::runQuery("select * from locations where locationState = '$state' and mergeWithID = '0' order by LocationName asc"); } else { $locations = db::runQuery("select * from locations where locationState <> '' and mergeWithID = '0' order by locationState asc, LocationName asc");
function goEnrolments() { $progroup = db::runQuery("select * from process_group where process_status = '2'"); if ($progroup) { foreach ($progroup as $pgr) { $supressInvoiceEmail = "0"; $generateInvoice = "true"; $archiveINvoice = "true"; if ($pgr['campaign_code'] == "") { $campaignCode = false; $campaignDetails = false; $campaignID = 0; $campaignName = false; $allowOfflinePayments = false; $forceOfflinePayments = false; $dontInvoiceUser = false; $addressToInvoice = false; $contactIDtoInvoice = false; } else { $campaignCode = $pgr['campaign_code']; $campaignDetails = getCampaignDetails($campaignCode); $campaignID = $campaignDetails['ID']; $campaignName = $campaignDetails['campaignName']; $allowOfflinePayments = $campaignDetails['allowOfflinePayments']; $forceOfflinePayments = $campaignDetails['forceOfflinePayments']; $dontInvoiceUser = $campaignDetails['dontInvoiceUser']; $addressToInvoice = $campaignDetails['addressToInvoice']; $contactIDtoInvoice = $campaignDetails['contactIDtoInvoice']; if ($forceOfflinePayments) { $forceOfflinePayments = true; } else { $forceOfflinePayments = false; } if ($contactIDtoInvoice == "") { $contactIDtoInvoice = false; } } $courseID = $pgr['eventID']; $courseDetails = getEventDetails($courseID); //var_dump($courseDetails); if ($campaignDetails) { //Course Details $courseCostTotal = intval($courseDetails['cost']); $totalAttend = $pgr['total_trainee']; $courseCostTotal = $courseCostTotal * $totalAttend; if ($campaignDetails['discountType'] == 1) { //Percent Discount $courseCostTotal = $courseCostTotal - $courseCostTotal * ("0." . $campaignDetails['discountAmount']); $manualInvoiceEmailPrice = $courseCostTotal; $customPriceOption = false; $sendManualInvoice = false; } else { if ($campaignDetails['discountType'] == 2) { //Custom Price Override - Location $customPriceOption = 2; $courseCostTotal = courseCustomPriceLookup($customPriceOption, $courseID, $courseCostTotal, $campaignCode); $manualInvoiceEmailPrice = $courseCostTotal; $dontInvoiceUser = true; $sendManualInvoice = true; } else { if ($campaignDetails['discountType'] == 3) { //Custom Price Override - Course $customPriceOption = 3; $courseCostTotal = courseCustomPriceLookup($customPriceOption, $courseID, $courseCostTotal, $campaignCode); //return errorBackResponse($courseCostTotal." - ".$courseID); $manualInvoiceEmailPrice = $courseCostTotal; $dontInvoiceUser = true; $sendManualInvoice = true; } else { //Dollor Amount Discount $courseCostTotal = $courseCostTotal - $campaignDetails['discountAmount']; $manualInvoiceEmailPrice = $courseCostTotal; $customPriceOption = false; $sendManualInvoice = false; } } } //return errorBackResponse("Disc Type: ".$campaignDetails['discountType']); } else { //Course Details $courseCostTotal = intval($courseDetails['cost']); $totalAttend = $pgr['total_trainee']; $courseCostTotal = $courseCostTotal * $totalAttend; $manualInvoiceEmailPrice = $courseCostTotal; } $processgroup = db::esc($pgr['processgroupID']); $contactIDtoInvoice = db::esc($contactIDtoInvoice); $allowOfflinePayments = db::esc($allowOfflinePayments); $forceOfflinePayments = db::esc($forceOfflinePayments); $dontInvoiceUser = db::esc($dontInvoiceUser); $addressToInvoice = db::esc($addressToInvoice); db::insertQuery("update process_group set process_status = '3', primaryContactID = '{$contactIDtoInvoice}', allowOfflinePayments = '{$allowOfflinePayments}', forceOfflinePayments = '{$forceOfflinePayments}', dontInvoiceUser = '******', addressToInvoice = '{$addressToInvoice}', contactIDtoInvoice = '{$contactIDtoInvoice}' where processgroupID = '{$processgroup}'"); //Create Multi Enrolment $trainees = db::runQuery("select * from process_trainee where processgroupID = '{$processgroup}'"); $primaryContact = ""; $courseInstanceID = ""; $processgroup = ""; $costperperson = $courseDetails['cost']; if ($trainees) { $contactList = ""; foreach ($trainees as $trn) { if ($contactList == "") { $contactList = $contactList . $trn['contactID']; $primaryContact = $trn['contactID']; $courseInstanceID = $trn['eventID']; $processgroup = $trn['processgroupID']; $processgroup = $trn['processgroupID']; $costperperson = $trn['cost']; } else { $contactList = $contactList . "," . $trn['contactID']; } } if ($contactIDtoInvoice != false) { $primaryContact = $contactIDtoInvoice; } //contact IDS in list 55555,111211,515456 $supressInvoiceEmail = true; //$generateInvoice = true; $archiveINvoice = false; //$contactInvoiceID = '236951'; $enrollVars = array('contactID' => $contactList, 'instanceID' => $courseInstanceID, 'invoiceID' => $contactInvoiceID, 'payerID' => $primaryContact, 'type' => 'w'); $enrollNow = axcelerate_multienroll($enrollVars, $processgroup); $contactListarr = explode(",", $contactList); $totalCost = 0; foreach ($contactListarr as $contact) { $enrollVarsupdate = array('contactID' => $contact, 'instanceID' => $courseInstanceID, 'payerID' => $primaryContact, 'type' => 'w', 'cost' => $costperperson); $enrollNowupdate = axcelerate_multienrollupdate($enrollVarsupdate, $processgroup); var_dump($enrollNowupdate); $totalCost = $totalCost + $costperperson; } if (isset($enrollNow->error)) { $enrollIsError = true; $trans['message'] = $enrollNow->MESSAGES; dlog("Enrol-Enrolment: Axcelerate returned error: {$processgroup} - " . $trans['message']); markGroupError($processgroup, ""); die; } $groupInvoiceID = ""; $totalCost = 0; foreach ($enrollNow as $student) { $InvoiceID = db::esc($student->INVOICEID); $ContactID = db::esc($student->CONTACTID); $LearnerID = db::esc($student->LEARNERID); $Amount = db::esc($student->AMOUNT); $totalCost = $totalCost + $student->AMOUNT; $groupInvoiceID = $InvoiceID; db::insertQuery("update process_trainee set learnerID = '{$LearnerID}', invoiceID = '{$InvoiceID}' where contactID = '{$ContactID}' and processgroupID = '{$processgroup}'"); } if ($forceOfflinePayments == true) { db::insertQuery("update process_group set GroupInvoiceID = '{$groupInvoiceID}', process_status = '4', totalcost = '{$courseCostTotal}', payment_type = 'offline', primaryContactID = '{$primaryContact}' where processgroupID = '{$processgroup}'"); } else { db::insertQuery("update process_group set GroupInvoiceID = '{$groupInvoiceID}', process_status = '4', totalcost = '{$courseCostTotal}', primaryContactID = '{$primaryContact}' where processgroupID = '{$processgroup}'"); } } } } }