Example #1
9
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);
                }
            }
        }
    }
}
Example #2
0
    }
    //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}'");
                }
            }
        }
    }
}