public static function calculateTarget($total_sales) { $bk = new BonusKomisi(); $arrBk = $bk->getWhere("bk_id> {$total_sales} LIMIT 0,1"); $bk = $arrBk[0]; // pr($arrBk); $ret['nr'] = $bk->bk_id - $total_sales; $sisanya = ($bk->bk_id - $total_sales) * 1000000 + $bk->bk_bonus_paid; $ret['total'] = $sisanya; // pr($ret); return $ret; }
public static function fillBK() { $bk = new BonusKomisi(); $bk->truncate(); $bonus6 = 3000000; $bonus12 = 3000000; $bonus24 = 6000000; $paid = 0; $bonus = 0; for ($x = 6; $x < 2000; $x = $x + 6) { $bk = new BonusKomisi(); $bk->bk_id = $x; $bk->bk_bonus = floor($x / 6) * $bonus6 + floor($x / 12) * $bonus12 + floor($x / 24) * $bonus24; $bk->bk_bonus_paid = $bk->bk_bonus - $bonus; $paid += $bk->bk_bonus_paid; $bk->bk_komisi_paid = $paid; $bk->save(); $bonus = floor($x / 6) * $bonus6 + floor($x / 12) * $bonus12 + floor($x / 24) * $bonus24; } }
public static function payoutWS($acc) { $agent_id = $acc->admin_id; $mon = isset($_GET['mon']) ? addslashes($_GET['mon']) : date("n"); $y = isset($_GET['y']) ? addslashes($_GET['y']) : date("Y"); $json['acc_id'] = $acc->admin_id; $json['mon'] = $mon; $json['y'] = $y; $arr = AppearSales::getPayoutArray($acc->admin_id, $mon, $y); foreach ($arr['pertama'] as $tt) { $app = new AppAccount(); $app->getByID($tt->komisi_app_id); $acc = new Account(); $acc->getByID($tt->komisi_app_client_id); $paket = new Paket(); $paket->getByID($tt->komisi_paket_id); $earn = array(); $earn['order_id'] = $tt->komisi_order_id; $earn['komisi_app_date'] = $tt->komisi_app_date; $earn['app_name'] = $app->app_name; $earn['app_id'] = $app->app_id; $earn['client_name'] = $acc->admin_nama_depan; $earn['paket_id'] = $paket->paket_id; $earn['paket_name'] = $paket->paket_name; // $earn['komisi_tingtong'] = $tt->komisi_ting_tong; // $earn['komisi_tingtong_date'] = $tt->komisi_tingtong_date; $earn['komisi_bagi_pertama_value'] = $tt->komisi_bagi_pertama_value; $earn['komisi_bagi_pertama_date'] = date("F Y", strtotime($tt->komisi_bagi_pertama_date)); $earn['komisi_bagi_kedua_value'] = $tt->komisi_bagi_kedua_value; $earn['komisi_bagi_kedua_date'] = date("F Y", strtotime($tt->komisi_bagi_kedua_date)); $earn['total_komisi'] = $tt->komisi_value; $json['payout']['first'][] = $earn; } foreach ($arr['kedua'] as $tt) { $app = new AppAccount(); $app->getByID($tt->komisi_app_id); $acc = new Account(); $acc->getByID($tt->komisi_app_client_id); $paket = new Paket(); $paket->getByID($tt->komisi_paket_id); $earn = array(); $earn['order_id'] = $tt->komisi_order_id; $earn['komisi_app_date'] = $tt->komisi_app_date; $earn['app_name'] = $app->app_name; $earn['app_id'] = $app->app_id; $earn['client_name'] = $acc->admin_nama_depan; $earn['paket_id'] = $paket->paket_id; $earn['paket_name'] = $paket->paket_name; // $earn['komisi_tingtong'] = $tt->komisi_ting_tong; // $earn['komisi_tingtong_date'] = $tt->komisi_tingtong_date; $earn['komisi_bagi_pertama_value'] = $tt->komisi_bagi_pertama_value; $earn['komisi_bagi_pertama_date'] = date("F Y", strtotime($tt->komisi_bagi_pertama_date)); $earn['komisi_bagi_kedua_value'] = $tt->komisi_bagi_kedua_value; $earn['komisi_bagi_kedua_date'] = date("F Y", strtotime($tt->komisi_bagi_kedua_date)); $earn['total_komisi'] = $tt->komisi_value; $json['payout']['kedua'][] = $earn; } foreach ($arr['bonus'] as $tt) { $app = new BonusKomisi(); $app->getByID($tt->bagi_bk_id); $acc = new Account(); $acc->getByID($tt->bagi_acc_id); $earn = array(); $earn['bonus_name'] = "Bonus " . $tt->bagi_bk_id; $earn['bonus_date'] = $tt->bagi_date_acquire; $earn['bonus_value'] = $tt->bagi_value; $json['payout']['bonus'][] = $earn; } $json['payout_total'] = AppearSales::calculatePayout($agent_id, $mon, $y)['total']; $json['status_code'] = 1; $json['status_message'] = "Success"; echo json_encode($json); die; }
function testvp() { $str = 'O:22:"Veritrans_Notification":1:{s:8:"response";O:8:"stdClass":14:{s:11:"status_code";s:3:"200";s:14:"status_message";s:26:"Success, transaction found";s:14:"transaction_id";s:36:"a293ec21-9572-4333-9a41-640a6789b713";s:11:"masked_card";s:11:"518323-9790";s:8:"order_id";s:10:"1084599542";s:12:"gross_amount";s:8:"10000.00";s:12:"payment_type";s:11:"credit_card";s:16:"transaction_time";s:19:"2016-02-17 15:20:37";s:18:"transaction_status";s:10:"settlement";s:12:"fraud_status";s:6:"accept";s:13:"approval_code";s:6:"T08489";s:13:"signature_key";s:128:"12a2c1d52cdd03326727b1ee0cc8a9f658146dbaedac46490f269183291885772e5a31a121c94ebde9f501733c8e7802cf74c3bb839ad687188456c3bf0d45e0";s:4:"bank";s:3:"bni";s:3:"eci";s:2:"02";}} ||| {"status_code":"200","status_message":"Veritrans payment notification","transaction_id":"a293ec21-9572-4333-9a41-640a6789b713","masked_card":"518323-9790","order_id":"1084599542","gross_amount":"10000.00","payment_type":"credit_card","transaction_time":"2016-02-17 15:20:37","transaction_status":"settlement","fraud_status":"accept","approval_code":"T08489","signature_key":"12a2c1d52cdd03326727b1ee0cc8a9f658146dbaedac46490f269183291885772e5a31a121c94ebde9f501733c8e7802cf74c3bb839ad687188456c3bf0d45e0","bank":"bni","eci":"02"}'; $exp = explode(" ||| ", $str); $obj = unserialize($exp[0]); pr($obj); pr($exp[1]); $vp = new VpData(); $vp->printColumlistAsAttributes(); $tt = new VpTransaction(); $tt->printColumlistAsAttributes(); $km = new KomisiModel(); $km->printColumlistAsAttributes(); $bk = new BonusKomisi(); BonusKomisi::fillBK(); $bg = new EmailLog(); $bg->printColumlistAsAttributes(); }
public static function log($app, $vpt) { if ($app->app_active != 1) { die("App harus active utk dapat komisi"); } $acc = new Account(); $acc->getByID($app->app_client_id); // AppAccount::checkOwnership($app); if ($acc->admin_marketer != "") { $arrAcc = $acc->getWhere("admin_username = '******' LIMIT 0,1"); if (count($arrAcc) > 0) { $marketer = $arrAcc[0]; } else { //set default marketer to 7 /elroy $marketer = new Account(); $marketer->getByID(Efiwebsetting::getData("Default_Agent_ID")); } } else { //set default marketer to 7 /elroy $marketer = new Account(); $marketer->getByID(Efiwebsetting::getData("Default_Agent_ID")); } $paket = new Paket(); $paket->getByID($app->app_paket_id); $komisi = new KomisiModel(); $komisi->komisi_acc_id = $marketer->admin_id; $komisi->komisi_app_client_id = $app->app_client_id; $komisi->komisi_app_date = leap_mysqldate(); $komisi->komisi_app_id = $app->app_id; $komisi->komisi_paket_id = $paket->paket_id; $komisi->komisi_value = $paket->paket_komisi; $komisi->komisi_status = 0; //blm dibayarkan $komisi->komisi_sisa = $paket->paket_komisi; $komisi->komisi_order_id = $vpt->order_id; $komisi->komisi_bagi_pertama_value = $paket->paket_komisi_satu; $komisi->komisi_bagi_kedua_value = $paket->paket_komisi_dua; //langsung save datenya saja sehingga gampang $pay1_date = getFirstDayOfNextMonth(date("n", strtotime($komisi->komisi_app_date)), date("Y", strtotime($komisi->komisi_app_date))); $pay2_date = getFirstDayOfNext4Month(date("n", strtotime($komisi->komisi_app_date)), date("Y", strtotime($komisi->komisi_app_date))); if ($paket->paket_id != 1) { $komisi->komisi_bagi_pertama_date = $pay1_date; $komisi->komisi_bagi_kedua_date = $pay2_date; } $succ = $komisi->save(); if ($succ) { $isPending = 0; if ($paket->paket_id == 1) { $isPending = 1; } //email dpt komisi $dpt = new DataEmail(); $dpt->dapatKomisi($marketer->admin_email, $paket->paket_komisi, $isPending, $acc->admin_nama_depan, $marketer->admin_isAgent); //tambah counter paket //atau ambil counter paket disini if ($paket->paket_id == 1) { //free //check sudah ada brp paid yang sudah dibayar dll //cek apa bisa tingtong self::checkTingTongFree($app, $marketer, $succ, $paket, $acc, "free"); $komisi = new KomisiModel(); $nr = $komisi->getJumlah("komisi_acc_id = '{$marketer->admin_id}' AND komisi_paket_id = 1"); $marketer->admin_total_free_sales = $nr; $marketer->load = 1; $marketer->save(); } else { //pakai BagiKomisi //cek apa bisa di tingtong self::checkTingTongFree($app, $marketer, $succ, $paket, $acc, "paid"); $komisi = new KomisiModel(); $nr = $komisi->getJumlah("komisi_acc_id = '{$marketer->admin_id}' AND (komisi_paket_id = 2 OR komisi_paket_id = 3)"); $marketer->admin_total_paid_sales = $nr; $marketer->load = 1; $marketer->save(); //cek sudah kena kelipatan 6 blom $bonus = new BonusKomisi(); $bonus->getByID($nr); if ($bonus->bk_bonus_paid != "" && $bonus->bk_bonus_paid > 0) { //masukan ke bonus $bagiKomisi = new BagiKomisi(); $bagiKomisi->bagi_id = $marketer->admin_id . "_" . $nr; $bagiKomisi->bagi_acc_id = $marketer->admin_id; $bagiKomisi->bagi_bk_id = $nr; $bagiKomisi->bagi_date_acquire = leap_mysqldate(); $bagiKomisi->bagi_status = 0; //unpaid $bagiKomisi->bagi_value = $bonus->bk_bonus_paid; $bagiKomisi->save(); } } } }