diff --git a/webht/third_party/trippestOrderSync/controllers/vendor_money.php b/webht/third_party/trippestOrderSync/controllers/vendor_money.php index f08b332a..72c85bdf 100644 --- a/webht/third_party/trippestOrderSync/controllers/vendor_money.php +++ b/webht/third_party/trippestOrderSync/controllers/vendor_money.php @@ -9,33 +9,61 @@ class Vendor_money extends CI_Controller { $this->load->helper('array'); $this->load->model('Vendor_money_model', 'money_model'); mb_regex_encoding("UTF-8"); - bcscale(4); + bcscale(2); } - public function index() + public function settlement() { + $data['default_date1'] = date('Y-m-01', strtotime("last month")); + $data['default_date2'] = date('Y-m-d', mktime(0,0,0,date('m'),1,date('Y'))-1); + $this->load->view('vendor_money_sum', $data); } - public function settlement() + public function index() { - // $start_date = $this->input->post("start_date"); - // $end_date = $this->input->post("end_date"); - // if ($end_date == null) { - // $end_date = date("Y-m-d H:i:s", strtotime("+1 month", strtotime($start_date))-1); - // } - // $vendors = $this->input->post("vendors"); - // test - $start_date = "2018-10-01"; - $end_date = "2018-10-31 23:59:59"; - $vendors = "1343,29188"; - // end test + $date_range = $this->input->post("date_range"); + preg_match_all('/\d{4}\-\d{2}\-\d{2}/', $date_range, $date_range_arr); + if (empty($date_range_arr[0])) { + return $this->settlement(); + } + $start_date = $date_range_arr[0][0]; + $end_date =$date_range_arr[0][1]; + if ($end_date == null) { + $end_date = date("Y-m-d H:i:s", strtotime("+1 month", strtotime($start_date))-1); + } + $vendors = $this->input->post("vendors"); $vendor_sourcetype = $this->trippest->vendor_sourcetype(); $result = array( - "trippest_order_vendor_money" => array() + "default_date1" => $start_date + ,"default_date2" => $end_date + ,"trippest_order_vendor_money" => array() ,"transfer_sum" => 0 + /** 列总计 */ + ,"col_sum" => array( + "trippest" => array( + "sum_trippest_cost" => 0 + ,"sum_vendor_cost" => 0 + ,"sum_trippest_sum" => 0 + ,"sum_vendor_sum" => 0 + ,"sum_profit" => 0 + ,"sum_trippest_profit" => 0 + ,"sum_vendor_profit" => 0 + ,"sum_payout" => 0 + ), + "vendor" => array( + "sum_trippest_cost" => 0 + ,"sum_vendor_cost" => 0 + ,"sum_trippest_sum" => 0 + ,"sum_vendor_sum" => 0 + ,"sum_profit" => 0 + ,"sum_trippest_profit" => 0 + ,"sum_vendor_profit" => 0 + ,"sum_payout" => 0 + ) + ) ); /** 团款 */ - foreach (explode(",", $vendors) as $key => $vendor) { + foreach ($vendors as $key => $vendor) { $sourcetype = $vendor_sourcetype[strval($vendor)]["sourcetype"]; $opi_summoney = $this->money_model->checked_group_list($vendor, $sourcetype, $start_date, $end_date); $ret = array( @@ -48,8 +76,7 @@ class Vendor_money extends CI_Controller { array( "trippest_sum" => 0, "vendor_sum" => 0, - "transfer_sum" => 0, - "trippest_order_vendor_money" => null + "transfer_sum" => 0 ) ); // 按照海纳的算法 @@ -79,8 +106,53 @@ class Vendor_money extends CI_Controller { $result["money"][strval($vendor)] = $ret; $result["money"][strval($vendor)]["vendor_code"] = $vendor; $result["money"][strval($vendor)]["vendor_name"] = $vendor_sourcetype[strval($vendor)]["vendor_name"]; + /** 团款合计 */ + $result['col_sum']['trippest']['sum_trippest_sum'] = bcadd($result['col_sum']['trippest']['sum_trippest_sum'], $ret["trippest"]['trippest_sum']); + $result['col_sum']['trippest']['sum_vendor_sum'] = bcadd($result['col_sum']['trippest']['sum_vendor_sum'], $ret["trippest"]['vendor_sum']); + $result['col_sum']['vendor']['sum_trippest_sum'] = bcadd($result['col_sum']['vendor']['sum_trippest_sum'], $ret["vendor"]['trippest_sum']); + $result['col_sum']['vendor']['sum_vendor_sum'] = bcadd($result['col_sum']['vendor']['sum_vendor_sum'], $ret["vendor"]['vendor_sum']); } /** 成本 */ + $vendors_cost = $this->money_model->vendor_cost(implode(',', $vendors), $start_date, $end_date); + foreach ($result['money'] as $km => &$vm) { + $vm['vendor_cost'] = $vm['trippest_cost'] = 0; + foreach ($vendors_cost as $kvc => $vvc) { + if (strval($vm['vendor_code']) === strval($vvc['vendor_code'])) { + $vm['vendor_cost'] = $vvc['vendor_cost']; + } + } + // 成本总计 + $result['col_sum']['trippest']['sum_trippest_cost'] = $result['col_sum']['vendor']['sum_trippest_cost'] = bcadd($result['col_sum']['trippest']['sum_trippest_cost'], $vm['trippest_cost']); + $result['col_sum']['trippest']['sum_vendor_cost'] = $result['col_sum']['vendor']['sum_vendor_cost'] = bcadd($result['col_sum']['trippest']['sum_vendor_cost'], $vm['vendor_cost']); + } + foreach ($result['money'] as $kmi => &$vmi) { + /** 利润 */ + $vmi['trippest']['total_profit'] = bcsub( + bcadd($vmi['trippest']['trippest_sum'], $vmi['trippest']['vendor_sum']), + bcadd($vmi['trippest_cost'], $vmi['vendor_cost'])); + $vmi['vendor']['total_profit'] = bcsub( + bcadd($vmi['vendor']['trippest_sum'], $vmi['vendor']['vendor_sum']), + bcadd($vmi['trippest_cost'], $vmi['vendor_cost'])); + /** 利润分成 */ + $vmi['trippest']['vendor_profit'] = bcmul($vmi['trippest']['total_profit'], $vendor_sourcetype[strval($vmi['vendor_code'])]["profit_rate"]); + $vmi['trippest']['trippest_profit'] = bcmul($vmi['trippest']['total_profit'], bcsub(1, $vendor_sourcetype[strval($vmi['vendor_code'])]["profit_rate"]) ); + $vmi['vendor']['vendor_profit'] = bcmul($vmi['vendor']['total_profit'], $vendor_sourcetype[strval($vmi['vendor_code'])]["profit_rate"]); + $vmi['vendor']['trippest_profit'] = bcmul($vmi['vendor']['total_profit'], bcsub(1, $vendor_sourcetype[strval($vmi['vendor_code'])]["profit_rate"]) ); + /** Trippest应付地接 */ + $vmi['trippest']['payout'] = bcsub(bcadd($vmi['vendor_cost'], $vmi['trippest']['vendor_profit'] ), $vmi['trippest']['vendor_sum']); + $vmi['vendor']['payout'] = bcsub(bcadd($vmi['vendor_cost'], $vmi['vendor']['vendor_profit'] ), $vmi['vendor']['vendor_sum']); + + /** 利润总计 */ + $result['col_sum']['trippest']['sum_profit'] = bcadd($result['col_sum']['trippest']['sum_profit'], $vmi['trippest']['total_profit']); + $result['col_sum']['trippest']['sum_trippest_profit'] = bcadd($result['col_sum']['trippest']['sum_trippest_profit'], $vmi['trippest']['trippest_profit']); + $result['col_sum']['trippest']['sum_vendor_profit'] = bcadd($result['col_sum']['trippest']['sum_vendor_profit'], $vmi['trippest']['vendor_profit']); + $result['col_sum']['vendor']['sum_profit'] = bcadd($result['col_sum']['vendor']['sum_profit'], $vmi['vendor']['total_profit']); + $result['col_sum']['vendor']['sum_trippest_profit'] = bcadd($result['col_sum']['vendor']['sum_trippest_profit'], $vmi['vendor']['trippest_profit']); + $result['col_sum']['vendor']['sum_vendor_profit'] = bcadd($result['col_sum']['vendor']['sum_vendor_profit'], $vmi['vendor']['vendor_profit']); + /** 应付总计 */ + $result['col_sum']['trippest']['sum_payout'] = bcadd($result['col_sum']['trippest']['sum_payout'], $vmi['trippest']['payout']); + $result['col_sum']['vendor']['sum_payout'] = bcadd($result['col_sum']['vendor']['sum_payout'], $vmi['vendor']['payout']); + } // return $this->output->set_content_type('application/json')->set_output(json_encode($result)); $this->load->view('vendor_money_sum', $result); return ; diff --git a/webht/third_party/trippestOrderSync/libraries/trippest.php b/webht/third_party/trippestOrderSync/libraries/trippest.php index 808089b4..d52ed3dd 100644 --- a/webht/third_party/trippestOrderSync/libraries/trippest.php +++ b/webht/third_party/trippestOrderSync/libraries/trippest.php @@ -81,21 +81,25 @@ class Trippest "1343" => array( "sourcetype" => "32090" ,"vendor_name" => "北京图兰朵" + ,"profit_rate" => 0.4 ) // 上海图兰朵 ,"29188" => array( "sourcetype" => "32112" ,"vendor_name" => "上海图兰朵" + ,"profit_rate" => 0.4 ) // 西安图兰朵 ,"30548" => array( "sourcetype" => "32116" ,"vendor_name" => "西安图兰朵" + ,"profit_rate" => 0.4 ) // 桂林地接 ,"628" => array( "sourcetype" => "32122" ,"vendor_name" => "桂林地接" + ,"profit_rate" => 0.4 ) ); } diff --git a/webht/third_party/trippestOrderSync/models/vendor_money_model.php b/webht/third_party/trippestOrderSync/models/vendor_money_model.php index 94692648..9345ac0d 100644 --- a/webht/third_party/trippestOrderSync/models/vendor_money_model.php +++ b/webht/third_party/trippestOrderSync/models/vendor_money_model.php @@ -113,11 +113,34 @@ class Vendor_money_model extends CI_Model { ) ORDER BY cgi.CGI_ArriveDate "; $query = $this->HT->query($sql); -// log_message('error',$sql); -// log_message('error',var_export($query->result_array(), 1)); return $query->result_array(); } + public function vendor_cost($vendor_str, $start_date, $end_date) + { + $sql = "SELECT group_cost.GCI_VEI_SN vendor_code, + SUM(group_cost.cost) vendor_cost + FROM + (SELECT DISTINCT gci.GCI_combineNo, + (SELECT SUM(CONVERT(float, gcod.GCOD_sumMoney)) + FROM GroupCombineOperationDetail gcod + WHERE gcod.GCOD_GCI_combineNo=GCI_combineNo + AND gcod.GCOD_operationType <> 'otherReceives' ) AS cost , + GCI_VEI_SN + FROM GroupCombineInfo gci + WHERE 1=1 + AND GCI_VEI_SN IN ($vendor_str) + AND EXISTS + ( SELECT 1 + FROM CK_GroupInfo + WHERE CGI_Checked=1 + AND CGI_GRI_SN=GCI_GRI_SN + AND CGI_ArriveDate BETWEEN '$start_date' AND '$end_date') + ) AS group_cost + GROUP BY group_cost.GCI_VEI_SN"; + $query = $this->HT->query($sql); + return $query->result_array(); + } } diff --git a/webht/third_party/trippestOrderSync/views/vendor_money_sum.php b/webht/third_party/trippestOrderSync/views/vendor_money_sum.php index c5868696..651da1d7 100644 --- a/webht/third_party/trippestOrderSync/views/vendor_money_sum.php +++ b/webht/third_party/trippestOrderSync/views/vendor_money_sum.php @@ -6,7 +6,7 @@
-