public function agentUpgrade_exec($data) { $userData = user::getUserData("agent_id", $data['agent_id']); $agent_id = $data['agent_id']; $payment_data = array(); $payment_data['agent_id'] = $agent_id; $payment_data['payment_for'] = "[UPGRADE] " . $data['payment_for']; $payment_data['payment_date'] = $data['payment_date']; $payment_data['payment_time'] = $data['payment_time']; $payment_data['from_acc'] = $data['from_acc']; $payment_data['to_acc'] = $data['to_acc']; $payment_data['payment_type'] = $data['payment_type']; $payment_data['ref'] = $data['ref']; $payment_data['payment_price'] = $data['payment_price']; $payment_data['amount'] = $data['payment_price']; $payment_data['payment_bal'] = 0; $payment_data['date_submit'] = $data['date_submit']; $payment_data['auth_datetime'] = $data['date_submit']; $payment_data['remarks'] = $data['remarks']; $payment_data['status'] = 2; $upgrade_data = array(); $upgrade_data['ads_pin_limit'] = $data['ads_pin_limit']; $upgrade_data['available_pin'] = $data['ads_pin_limit'] + $userData['available_pin']; $upgrade_data['acc_type'] = $data['acc_type']; $upgrade_data['payment'] = 2; $response_array = array(); $error = array(); $curr_acc_type = $userData['acc_type']; switch ($data['acc_type']) { case "aa": if ($curr_acc_type == "aa" or $curr_acc_type == "ad" or $curr_acc_type == "ed" or $curr_acc_type == "ep") { $error['msg'] = "<b>Account To Upgrade</b> must be higher then current account.)"; } break; case "ad": if ($curr_acc_type == "ad" or $curr_acc_type == "ed" or $curr_acc_type == "ep") { $error['msg'] = "<b>Account To Upgrade</b> must be higher then current account.)"; } break; case "ed": if ($curr_acc_type == "ed" or $curr_acc_type == "ep") { $error['msg'] = "<b>Account To Upgrade</b> must be higher then current account.)"; } break; default: break; } if (count($error) != 0) { $response_array['r'] = "false"; $response_array['msg'] = $error['msg']; } else { // Insert payment upgrade foreach ($payment_data as $key => $value) { if ($value == "") { $payment_data[$key] = NULL; } } $r_payment = $this->db->insert("user_payment", $payment_data); // Upgrade agent account foreach ($upgrade_data as $key => $value) { if ($value == "") { $upgrade_data[$key] = NULL; } } $r_upgrade = $this->db->update("user_accounts", $upgrade_data, "agent_id = {$agent_id}"); // Generate Commission $commData = array(); $commData['agent_id'] = $data['agent_id']; $commData['acc_type'] = $data['acc_type']; $commData['date'] = $data['payment_date']; $r_pdi = commission::generatePDICommission($commData, TRUE); $r_gdi = commission::generateGDICommission($commData, TRUE); $r_gai = commission::generateGAICommission($commData, TRUE); // TODO: Generate email for upgraded agent $response_array['r'] = "true"; $response_array['msg'] = BASE_PATH . "management/upgradeResult?agent_id={$agent_id}&payment={$r_payment}&upgrade={$r_upgrade}&pdi={$r_pdi}&gdi={$r_gdi}&gai={$r_gai}"; } return $response_array; }
/** * * @param type $data (agent_id, acc_type, date) * @param type $upgrade (default: false) * @return type */ public static function generateAPRCommission($data) { $agent_id = $data['agent_id']; $db = new database(DBTYPE, DBHOST, DBNAME, DBUSER, DBPASS); $userdata = $db->select("user_accounts", "ads_pin, acc_type, username", "agent_id = {$agent_id}", "fetch"); $commission_data = $db->select("commissions_type", "*", "code = 'apr'", "fetch"); $idata = array(); $idata['agent_id'] = $userdata['ads_pin']; $idata['ads_pin'] = $userdata['ads_pin']; $accDetails = user::getAccType($data['acc_type']); $username = $userdata['username']; $acc_typeLabel = $accDetails['label']; $idata['subject'] = $commission_data['subject'] . " <b>{$username} - {$acc_typeLabel}</b>"; $idata['from'] = $agent_id; $idata['type'] = $commission_data['code']; $idata['amount'] = 1200; $dateProcess = $data['date']; $idata['date_release'] = date("Y-m-d H:i:s", mktime(0, 0, 0, date("m", strtotime($dateProcess)), date("t", strtotime($dateProcess)), date("Y", strtotime($dateProcess)))); $idata['date'] = $dateProcess; $idata['remarks'] = NULL; $idata['f'] = 0; $r = commission::addCommission($idata); return $r; }