生成财务表: 批量和单个订单分开调用, 订单重新生成时取最新的成本明细

feature/trippest
lyt 7 years ago
parent 65172fa43f
commit 23b5243652

@ -32,6 +32,9 @@ class Order_finance extends CI_Controller {
}
// 重新生成账单
// HT批量按钮调用
// 仅读取成本信息计算
public function single_order_report($coli_sn=0)
{
$order_info = $this->OrderFinance_model->get_order_info($coli_sn);
@ -45,6 +48,18 @@ class Order_finance extends CI_Controller {
return $this->generate_report($order_info);
}
// 重新生成账单
// HT单团财务表页面调用, 先刷新一次成本
public function single_order_report_refresh($coli_sn=0)
{
// 刷新成本
$controller_name = "TulanduoApi";
require_once($controller_name . '.php');
$vendor_class = new $controller_name();
$ret = $vendor_class->insert_HT_order_operation($coli_sn);
$this->single_order_report($coli_sn);
}
/*!
* 单团财务表计算
* @date 2018-07-18
@ -261,15 +276,17 @@ class Order_finance extends CI_Controller {
if (empty($all_orders)) {
return null;
}
$ret->coli_sn = $coli_sn;
$payment_currency = "USD";
$currency_rate = 1;
$order_payment = $this->OrderFinance_model->get_order_payment($coli_sn, TRUE);
foreach ($order_payment as $kp => $vp) {
if ($vp->GAI_SQJE > 0) {
$payment_currency = trim($vp->GAI_SQJECurrency);
$currency_rate = bcdiv($vp->GAI_SSJE, $vp->GAI_SQJE);
break;
if ($coli_sn !== NULL) {
$ret->coli_sn = $coli_sn;
$payment_currency = "USD";
$currency_rate = 1;
$order_payment = $this->OrderFinance_model->get_order_payment($coli_sn, TRUE);
foreach ($order_payment as $kp => $vp) {
if ($vp->GAI_SQJE > 0) {
$payment_currency = trim($vp->GAI_SQJECurrency);
$currency_rate = bcdiv($vp->GAI_SSJE, $vp->GAI_SQJE);
break;
}
}
}
$all_pags = array_map(function($ele){ return mb_strtoupper($ele->PAG_Code);}, $all_orders);
@ -355,33 +372,36 @@ class Order_finance extends CI_Controller {
$pag_sns[] = $vo->COLD_ServiceSN;
// 整团单拼时, 避免重复计算人数
// 订单人数不重复计
// 总人等
if ( ! in_array(mb_strtoupper($vo->PAG_Code), $pvt_code) && ! in_array($vo->COLI_SN, $unique_coli)) {
$unique_coli[] = $vo->COLI_SN;
$ret->person_num += $vo->COLD_PersonNum + $vo->COLD_ChildNum;
}
$ret->startdate = $vo->COLD_StartDate;
$tour_s = new stdClass();
if ($vo->COLI_SN == $coli_sn) {
$tour_s->COLD_SN = $vo->COLD_SN;
$tour_s->person_num = $vo->COLD_PersonNum + $vo->COLD_ChildNum;
$tour_s->adult_num = $vo->COLD_PersonNum;
$tour_s->child_num = $vo->COLD_ChildNum;
$tour_s->PAG_code = mb_strtoupper($vo->PAG_Code);
// $tour_s->real_code = isset($vo->real_code) ? $vo->real_code : $vo->PAG_Code;
$tour_s->real_code = isset($vo->real_code)&&in_array($vo->real_code, $ret->combine_pags) ? $vo->real_code : mb_strtoupper($vo->PAG_Code);
$tour_s->real_pag_sn = isset($vo->real_pag_sn) ? $vo->real_pag_sn : $vo->COLD_ServiceSN;
$tour_s->totalPrice = $vo->COLD_TotalPrice;
$ret->order_cost[] = $tour_s;
$ret->coli_id = $vo->coli_ID;
}
// 预定产品的团款转换人民币, 写入财务表产品的备注
// 补充的产品不算
if ( ! isset($vo->real_pag_sn) && $vo->COLI_SN == $coli_sn) {
$vo->COLD_TotalPrice = $vo->COLD_TotalPrice===NULL ? 0 : $vo->COLD_TotalPrice;
if ($payment_currency == "USD" ) {
$ret->totalPrice_RMB = bcadd($ret->totalPrice_RMB, bcmul($vo->COLD_TotalPrice, $currency_rate));
} else {
$ret->totalPrice_RMB = bcadd($ret->totalPrice_RMB, $this->OrderFinance_model->convert_to_RMB($vo->COLD_TotalPrice, 'USD'));
if ($coli_sn !== NULL) {
$tour_s = new stdClass();
if ($vo->COLI_SN == $coli_sn) {
$tour_s->COLD_SN = $vo->COLD_SN;
$tour_s->person_num = $vo->COLD_PersonNum + $vo->COLD_ChildNum;
$tour_s->adult_num = $vo->COLD_PersonNum;
$tour_s->child_num = $vo->COLD_ChildNum;
$tour_s->PAG_code = mb_strtoupper($vo->PAG_Code);
// $tour_s->real_code = isset($vo->real_code) ? $vo->real_code : $vo->PAG_Code;
$tour_s->real_code = isset($vo->real_code)&&in_array($vo->real_code, $ret->combine_pags) ? $vo->real_code : mb_strtoupper($vo->PAG_Code);
$tour_s->real_pag_sn = isset($vo->real_pag_sn) ? $vo->real_pag_sn : $vo->COLD_ServiceSN;
$tour_s->totalPrice = $vo->COLD_TotalPrice;
$ret->order_cost[] = $tour_s;
$ret->coli_id = $vo->coli_ID;
}
// 预定产品的团款转换人民币, 写入财务表产品的备注
// 补充的产品不算
if ( ! isset($vo->real_pag_sn) && $vo->COLI_SN == $coli_sn) {
$vo->COLD_TotalPrice = $vo->COLD_TotalPrice===NULL ? 0 : $vo->COLD_TotalPrice;
if ($payment_currency == "USD" ) {
$ret->totalPrice_RMB = bcadd($ret->totalPrice_RMB, bcmul($vo->COLD_TotalPrice, $currency_rate));
} else {
$ret->totalPrice_RMB = bcadd($ret->totalPrice_RMB, $this->OrderFinance_model->convert_to_RMB($vo->COLD_TotalPrice, 'USD'));
}
}
}
}
@ -515,7 +535,7 @@ class Order_finance extends CI_Controller {
{
return array(
"BJALC-209",
"BJSIC-16",
// "BJSIC-16",
"SHSIC-45",
"XASIC-16"
);

Loading…
Cancel
Save