@ -36,24 +36,15 @@ class Vendor_money extends CI_Controller {
}
}
$vendors = $this->input->post("vendors");
$vendors = $this->input->post("vendors");
$vendor_sourcetype = $this->trippest->vendor_sourcetype();
$vendor_sourcetype = $this->trippest->vendor_sourcetype();
// 不同地接社但是拼团号相同
$final_table = $this->money_model->checked_group_list(0, 0, $start_date, $end_date, implode(',', $vendors));
$actual_vendor_duplicate_combineno = $this->money_model->get_duplicate_vei_combineno($start_date, $end_date, implode(",", $vendors));
$duplicate_coli_sn = array_filter(array_column($actual_vendor_duplicate_combineno, 'COLI_SN'));
if ($download_vendor !== null) {
if ($download_vendor !== null) {
$vendors = array($download_vendor);
$vendors = array($download_vendor);
$sourcetype = $vendor_sourcetype[strval($download_vendor)]["sourcetype"];
$sourcetype = $vendor_sourcetype[strval($download_vendor)]["sourcetype"];
$vendor_name = $vendor_sourcetype[strval($download_vendor)]["vendor_name"];
$vendor_name = $vendor_sourcetype[strval($download_vendor)]["vendor_name"];
$vendor_data = $this->money_model->group_detail_list($download_vendor, $sourcetype, $start_date, $end_date, implode(',', $vendors), implode(',', $duplicate_coli_sn));
$vendor_data = array_filter($final_table, function ($row) use ($download_vendor)
foreach ($actual_vendor_duplicate_combineno as $kad => $vad) {
{
if ($vad['vendor1'] == $download_vendor) {
return $row['vendor']==$download_vendor;
$tmp['haina_income'] = $vad['trippest_sum'];
});
$tmp['vendor_income'] = $vad['vendor_sum'];
$tmp['GRI_No'] = $vad['gri_no'];
$tmp['group_vendor_cost'] = $vad['report_cost'];
$vendor_data[] = $tmp;
$tmp = array();
}
}
$file_name = str_replace(" ", "_", $date_range) . "_" . $vendor_name;
$file_name = str_replace(" ", "_", $date_range) . "_" . $vendor_name;
return $this->download_output($vendor_data, $file_name);
return $this->download_output($vendor_data, $file_name);
}
}
@ -78,17 +69,6 @@ class Vendor_money extends CI_Controller {
,"sum_payout" => 0
,"sum_payout" => 0
,"sum_other" => 0
,"sum_other" => 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
// ,"sum_other" => 0
// ),
"sync" => array(
"sync" => array(
"sum_trippest_cost" => 0
"sum_trippest_cost" => 0
,"sum_vendor_cost" => 0
,"sum_vendor_cost" => 0
@ -112,28 +92,21 @@ class Vendor_money extends CI_Controller {
$all_price_cost = $this->money_model->get_sync_price_cost($start_date, $end_date, implode(',', $vendors));
$all_price_cost = $this->money_model->get_sync_price_cost($start_date, $end_date, implode(',', $vendors));
$unique_sync_groupno = array();
$unique_sync_groupno = array();
$dumplicate_groupno = array();
$dumplicate_groupno = array();
/** 团款 */
/** 汇总计算 */
foreach ($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, implode(',', $vendors), implode(",", $duplicate_coli_sn));
$ret = array(
$ret = array(
"trippest_cost" => 0,
"vendor_cost" => 0,
"trippest" =>
"trippest" =>
array(
array(
"trippest_sum" => 0,
"trippest_sum" => 0,
"vendor_sum" => 0,
"vendor_sum" => 0,
"other_sum_cost" => 0,
"other_sum_cost" => 0,
"other_sum" => 0,
"other_sum" => 0,
"other_vendor_sum" => 0
"other_vendor_sum" => 0,
"trippest_cost" => 0,
"vendor_cost" => 0
),
),
// "vendor" =>
// array(
// "trippest_sum" => 0,
// "vendor_sum" => 0,
// "transfer_sum" => 0,
// "other_sum_cost" => 0,
// "other_sum" => 0,
// "other_vendor_sum" => 0
// ),
"sync" =>
"sync" =>
array(
array(
"price_sum" => 0,
"price_sum" => 0,
@ -146,24 +119,19 @@ class Vendor_money extends CI_Controller {
"other_vendor_sum" => 0
"other_vendor_sum" => 0
)
)
);
);
foreach ($actual_vendor_duplicate_combineno as $kad => $vad) {
foreach ($final_table as $line => $row) {
if ($vad['vendor1'] == $vendor) {
if ($row['vendor'] == $vendor) {
$opi_summoney[] = $vad;
$ret['trippest']['trippest_sum'] = bcadd($ret['trippest']['trippest_sum'], $row['haina_receipt']);
}
$ret['trippest']['vendor_sum'] = bcadd($ret['trippest']['vendor_sum'], $row['vendor_receipt']);
}
$ret['trippest']['vendor_cost'] = bcadd($ret['trippest']['vendor_cost'], $row['group_vendor_cost']);
// 按照海纳的算法
$ret['trippest']['other_sum'] = bcadd($ret['trippest']['other_sum'], $row['other_price_RMB']);
foreach ($opi_summoney as $key => $opi_money) {
$ret['trippest']['other_sum_cost'] = bcadd($ret['trippest']['other_sum_cost'], $row['other_cost_RMB']);
if (floatval($opi_money['vendor_sum']) > 0) {
$ret['trippest']['other_vendor_sum'] = bcadd($ret['trippest']['other_vendor_sum'], $row['other_vendorprice_RMB']);
$ret["trippest"]['vendor_sum'] = bcadd(floatval($ret["trippest"]['vendor_sum']), floatval($opi_money['vendor_sum'])) ;
}
$ret['vendor_cost'] = bcadd($ret['vendor_cost'], $row['group_vendor_cost']);
if (floatval($opi_money['trippest_sum']) > 0) {
$ret["trippest"]['trippest_sum'] = bcadd(floatval($ret["trippest"]['trippest_sum']), floatval($opi_money['trippest_sum'])) ;
}
}
$ret['trippest']['other_sum'] = bcadd($ret['trippest']['other_sum'], $opi_money['other_price_sum']);
$ret['trippest']['other_sum_cost'] = bcadd($ret['trippest']['other_sum_cost'], $opi_money['other_cost_sum']);
$ret["trippest"]['trippest_sum'] = bcsub($ret["trippest"]['trippest_sum'], $opi_money['other_price_sum']);
$ret['trippest']['other_vendor_sum'] = bcadd($ret['trippest']['other_vendor_sum'], $opi_money['other_vendorprice_RMB_sum']);
}
}
/** 计算同步的数据 */
foreach ($all_price_cost as $ks => $sync) {
foreach ($all_price_cost as $ks => $sync) {
if ($sync['vendor_code'] != $vendor ) {
if ($sync['vendor_code'] != $vendor ) {
continue;
continue;
@ -175,28 +143,7 @@ class Vendor_money extends CI_Controller {
$unique_sync_groupno[] = $sync['GCI_combineNo'];
$unique_sync_groupno[] = $sync['GCI_combineNo'];
$ret['sync']['price_sum'] = bcadd($ret['sync']['price_sum'], $sync['receive_price']);
$ret['sync']['price_sum'] = bcadd($ret['sync']['price_sum'], $sync['receive_price']);
$ret['sync']['cost_sum'] = bcadd($ret['sync']['cost_sum'], $sync['cost']);
$ret['sync']['cost_sum'] = bcadd($ret['sync']['cost_sum'], $sync['cost']);
// $ret['sync']['vendor_sum'] = bcadd(floatval($ret["sync"]['vendor_sum']), floatval($sync['agency_receive_price'])) ;
// $ret["sync"]['trippest_sum'] = bcadd(floatval($ret["sync"]['trippest_sum']), bcsub(floatval($sync['receive_price']),floatval($sync['agency_receive_price']))) ;
}
}
// 按照图兰朵算法: Trippest自营订单的代收算在海纳收款
// foreach ($opi_summoney as $kv => $opi_money_v) {
// if (strval($opi_money_v['COLI_OPI_ID']) === '435') {
// $ret["vendor"]['vendor_sum'] = bcadd(floatval($ret["vendor"]['vendor_sum']), floatval($opi_money_v['vendor_sum'])) ;
// } else {
// $ret["vendor"]['trippest_sum'] = bcadd(floatval($ret["vendor"]['trippest_sum']), floatval($opi_money_v['trippest_sum'])) ;
// $ret["vendor"]['trippest_sum'] = bcadd(floatval($ret["vendor"]['trippest_sum']), floatval($opi_money_v['vendor_sum'])) ;
// }
// $ret['vendor']['other_sum'] = bcadd($ret['vendor']['other_sum'], $opi_money_v['other_price_sum']);
// $ret['vendor']['other_sum_cost'] = bcadd($ret['vendor']['other_sum_cost'], $opi_money_v['other_cost_sum']);
// $ret["vendor"]['trippest_sum'] = bcsub($ret["vendor"]['trippest_sum'], $opi_money_v['other_price_sum']);
// $ret['vendor']['other_vendor_sum'] = bcadd($ret['vendor']['other_vendor_sum'], $opi_money['other_vendorprice_RMB_sum']);
// }
// $ret["vendor"]["transfer_sum"] = bcsub($ret["vendor"]['vendor_sum'], $ret["trippest"]['vendor_sum']);
// if ($ret["vendor"]["transfer_sum"] != 0) {
// $result['transfer_sum'] = bcadd($result['transfer_sum'], $ret["vendor"]["transfer_sum"]);
// $result['trippest_order_vendor_money'] = array_merge($result['trippest_order_vendor_money'], $this->money_model->trippest_order_with_vendormoney($vendor, $sourcetype, $start_date, $end_date));
// }
$result["money"][strval($vendor)] = $ret;
$result["money"][strval($vendor)] = $ret;
$result["money"][strval($vendor)]["vendor_code"] = $vendor;
$result["money"][strval($vendor)]["vendor_code"] = $vendor;
$result["money"][strval($vendor)]["vendor_name"] = $vendor_sourcetype[strval($vendor)]["vendor_name"];
$result["money"][strval($vendor)]["vendor_name"] = $vendor_sourcetype[strval($vendor)]["vendor_name"];
@ -209,69 +156,37 @@ class Vendor_money extends CI_Controller {
$result['col_sum']['sync']['sum_price_sum'] = bcadd($result['col_sum']['sync']['sum_price_sum'], $ret["sync"]['price_sum']);
$result['col_sum']['sync']['sum_price_sum'] = bcadd($result['col_sum']['sync']['sum_price_sum'], $ret["sync"]['price_sum']);
$result['col_sum']['sync']['sum_cost_sum'] = bcadd($result['col_sum']['sync']['sum_cost_sum'], $ret["sync"]['cost_sum']);
$result['col_sum']['sync']['sum_cost_sum'] = bcadd($result['col_sum']['sync']['sum_cost_sum'], $ret["sync"]['cost_sum']);
// $result['col_sum']['sync']['sum_trippest_sum'] = bcadd($result['col_sum']['sync']['sum_trippest_sum'], $ret["sync"]['trippest_sum']);
// $result['col_sum']['sync']['sum_vendor_sum'] = bcadd($result['col_sum']['sync']['sum_vendor_sum'],$ret['sync']['vendor_sum']);
// $result['col_sum']['vendor']['sum_trippest_sum'] = bcadd(
// bcadd($result['col_sum']['vendor']['sum_trippest_sum'], $ret["vendor"]['trippest_sum'])
// ,$ret['vendor']['other_sum']);
// $result['col_sum']['vendor']['sum_vendor_sum'] = bcadd($result['col_sum']['vendor']['sum_vendor_sum'], $ret["vendor"]['vendor_sum']);
// $result['col_sum']['vendor']['sum_other'] = bcadd($result['col_sum']['vendor']['sum_other'], $ret['vendor']['other_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'];
}
}
foreach ($actual_vendor_duplicate_combineno as $kdc => $vdc) {
if (strval($vm['vendor_code']) === strval($vdc['vendor1'])) {
$vm['vendor_cost'] += $vdc['pure_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_trippest_cost'] = $result['col_sum']['vendor']['sum_trippest_cost'] = bcadd($result['col_sum']['trippest']['sum_trippest_cost'], $ret['trippest_cost']);
$result['col_sum']['trippest']['sum_vendor_cost'] = $result['col_sum']['vendor']['sum_vendor_cost'] = bcadd(
$result['col_sum']['trippest']['sum_vendor_cost'] = $result['col_sum']['vendor']['sum_vendor_cost'] = bcadd(
bcadd($result['col_sum']['trippest']['sum_vendor_cost'], $vm ['vendor_cost'])
bcadd($result['col_sum']['trippest']['sum_vendor_cost'], $ret['vendor_cost'])
,$vm ['trippest']['other_sum_cost']);
,$ret['trippest']['other_sum_cost']);
}
}
foreach ($result['money'] as $kmi => & $vmi) {
foreach ($result['money'] as $kmi => & $vmi) {
/** 利润 */
/** 利润 */
$vmi['trippest']['total_profit'] = bcsub(
$vmi['trippest']['total_profit'] = bcsub(
bcadd(bcadd($vmi['trippest']['trippest_sum'], $vmi['trippest']['vendor_sum']),$vmi['trippest']['other_sum']),
bcadd(bcadd($vmi['trippest']['trippest_sum'], $vmi['trippest']['vendor_sum']),$vmi['trippest']['other_sum']),
bcadd(bcadd($vmi['trippest_cost'], $vmi['vendor_cost']),$vmi['trippest']['other_sum_cost']));
bcadd(bcadd($vmi['trippest_cost'], $vmi['vendor_cost']),$vmi['trippest']['other_sum_cost']));
// $vmi['vendor']['total_profit'] = bcsub(
// bcadd(bcadd($vmi['vendor']['trippest_sum'], $vmi['vendor']['vendor_sum']),$vmi['vendor']['other_sum']),
// bcadd(bcadd($vmi['trippest_cost'], $vmi['vendor_cost']),$vmi['vendor']['other_sum_cost']));
/** 利润分成 */
/** 利润分成 */
$vmi['trippest']['vendor_profit'] = bcmul($vmi['trippest']['total_profit'], $vendor_sourcetype[strval($vmi['vendor_code'])]["profit_rate"]);
$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['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应付地接 */
/** Trippest应付地接 */
$vmi['trippest']['payout'] = bcsub(bcadd($vmi['vendor_cost'], $vmi['trippest']['vendor_profit'] ), $vmi['trippest']['vendor_sum']);
$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_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_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']['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']['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']);
}
}
// 财务表成本和实际成本不相等
// 财务表成本和实际成本不相等
$result['diff_cost'] = $this->money_model->report_tour_diff($start_date, $end_date, implode(',', $vendors));
$result['diff_cost'] = $this->money_model->report_tour_diff($start_date, $end_date, implode(',', $vendors));
$this->load->view('vendor_money_sum', $result);
return $this->load->view('vendor_money_sum', $result);
return ;
// return $this->output->set_content_type('application/json')->set_output(json_encode($result));
;
}
}
public function download_output($export_list, $file_name)
public function download_output($export_list, $file_name)
@ -310,11 +225,11 @@ class Vendor_money extends CI_Controller {
->SetCellValue('A'.$rowCount, ($rowCount-1))
->SetCellValue('A'.$rowCount, ($rowCount-1))
// ->SetCellValue('A'.$rowCount, $row->pn_sn)
// ->SetCellValue('A'.$rowCount, $row->pn_sn)
->setCellValueExplicit('B'.$rowCount, $row['GRI_No'],PHPExcel_Cell_DataType::TYPE_STRING)
->setCellValueExplicit('B'.$rowCount, $row['GRI_No'],PHPExcel_Cell_DataType::TYPE_STRING)
->setCellValue('C'.$rowCount, number_format($row['haina_income '], 2, ".", ""))
->setCellValue('C'.$rowCount, number_format($row['haina_receipt '], 2, ".", ""))
->setCellValue('D'.$rowCount, number_format($row['vendor_income '], 2, ".", ""))
->setCellValue('D'.$rowCount, number_format($row['vendor_receipt '], 2, ".", ""))
->SetCellValue('E'.$rowCount, 0)
->SetCellValue('E'.$rowCount, 0)
->SetCellValue('F'.$rowCount, $row['group_vendor_cost'])
->SetCellValue('F'.$rowCount, $row['group_vendor_cost'])
->setCellValue('G'.$rowCount, bcsub(bcadd($row['vendor_income'],$row['haina_income ']),$row['group_vendor_cost']))
->setCellValue('G'.$rowCount, bcsub(bcadd($row['vendor_receipt'],$row['haina_receipt ']),$row['group_vendor_cost']))
;
;
$rowCount++;
$rowCount++;
}
}