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;
 }
Example #4
0
 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();
             }
         }
     }
 }