修改同步的团号解析规则, 避免图兰朵修改团号导致同步产生重复订单; 财务表的report_tour重复问题

feature/trippest
lyt 7 years ago
parent d982e1ef1c
commit 5a5c399cc3

@ -143,9 +143,14 @@ class TulanduoApi extends CI_Controller
// set GCI_SN // set GCI_SN
$this->Orders_model->get_SN_by_vendorOrderId($vo['orderId'], $tmpv); // 查询订单是否已经录入过 $this->Orders_model->get_SN_by_vendorOrderId($vo['orderId'], $tmpv); // 查询订单是否已经录入过
if ($this->Orders_model->BIZ_COLI_SN === null) { if ($this->Orders_model->BIZ_COLI_SN === null) {
$real_groupCode = analysis_groupCode($vo['agcOrderNo']); $real_groupCode_info = analysis_groupCode($vo['agcOrderNo']);
$real_groupCode = $real_groupCode_info["cut"];
// set BIZ_COLI_SN, GRI_SN at Orders_model // set BIZ_COLI_SN, GRI_SN at Orders_model
$this->Orders_model->get_SN_by_groupCode($real_groupCode, $vo['orderId']); $group_info = $this->Orders_model->get_SN_by_groupCode($real_groupCode, $vo['orderId']);
if (empty($group_info)) {
$real_groupCode = $real_groupCode_info["all"];
$group_info = $this->Orders_model->get_SN_by_groupCode($real_groupCode, $vo['orderId']);
}
} }
if ($this->Orders_model->GRI_SN === null) { if ($this->Orders_model->GRI_SN === null) {
/** GRoupInfo */ /** GRoupInfo */
@ -262,7 +267,8 @@ class TulanduoApi extends CI_Controller
$getInfo_byGroupCode = null; $getInfo_byGroupCode = null;
$getInfo_byGroupCodeArr = array(); $getInfo_byGroupCodeArr = array();
if (isset($detail_jsonResp->orderDetail->agcOrderNo) && $detail_jsonResp->orderDetail->agcOrderNo != "") { if (isset($detail_jsonResp->orderDetail->agcOrderNo) && $detail_jsonResp->orderDetail->agcOrderNo != "") {
$real_groupCode = analysis_groupCode($detail_jsonResp->orderDetail->agcOrderNo); $real_groupCode_info = analysis_groupCode($detail_jsonResp->orderDetail->agcOrderNo);
$real_groupCode = $real_groupCode_info['cut'];
$getInfo_byGroupCodeArr = $this->Orders_model->get_order_by_groupcode($real_groupCode); $getInfo_byGroupCodeArr = $this->Orders_model->get_order_by_groupcode($real_groupCode);
} }
$duplicate = false; $duplicate = false;
@ -674,9 +680,14 @@ class TulanduoApi extends CI_Controller
$this->Orders_model->BIZ_COLI_SN = null; $this->Orders_model->BIZ_COLI_SN = null;
$this->Orders_model->GRI_SN = null; $this->Orders_model->GRI_SN = null;
if ( isset($vo['agcOrderNo']) && $vo['agcOrderNo'] != "") { if ( isset($vo['agcOrderNo']) && $vo['agcOrderNo'] != "") {
$real_groupCode = analysis_groupCode($vo['agcOrderNo']); $real_groupCode_info = analysis_groupCode($vo['agcOrderNo']);
$real_groupCode = $real_groupCode_info["cut"];
// check BIZ_COLI_SN,GRI_SN // check BIZ_COLI_SN,GRI_SN
$this->Orders_model->get_SN_by_groupCode($real_groupCode, $vo['orderId']); $group_info = $this->Orders_model->get_SN_by_groupCode($real_groupCode, $vo['orderId']);
if (empty($group_info)) {
$real_groupCode = $real_groupCode_info["all"];
$group_info = $this->Orders_model->get_SN_by_groupCode($real_groupCode, $vo['orderId']);
}
} }
/** INSERT */ /** INSERT */
/** GRoupInfo */ /** GRoupInfo */

@ -34,7 +34,8 @@ class Api extends CI_Controller {
} }
$ret['status'] = 1; $ret['status'] = 1;
$ret['msg'] = ""; $ret['msg'] = "";
$ret['group_number'] = analysis_groupCode($order_project[0]->COLI_GroupCode); $group_number_info = analysis_groupCode($order_project[0]->COLI_GroupCode);
$ret['group_number'] = $group_number_info["cut"];
$all_combine_no = array_unique(array_map(function($ele) $all_combine_no = array_unique(array_map(function($ele)
{ {
return $ele->GCI_combineNo; return $ele->GCI_combineNo;
@ -166,8 +167,8 @@ class Api extends CI_Controller {
/** 外联信息 */ /** 外联信息 */
$raw_opi_id = 0; $raw_opi_id = 0;
if (intval($order_project[0]->COLI_OPI_ID) === 435) { if (intval($order_project[0]->COLI_OPI_ID) === 435) {
$real_code = analysis_groupCode($ret['group_number']); $real_code_info = analysis_groupCode($ret['group_number']);
$raw_opi_id = $this->Orders_model->get_gri_opi_id($real_code); $raw_opi_id = $this->Orders_model->get_gri_opi_id($real_code_info['cut']);
} else { } else {
$raw_opi_id = $order_project[0]->COLI_OPI_ID; $raw_opi_id = $order_project[0]->COLI_OPI_ID;
} }

@ -129,6 +129,7 @@ function analysis_groupCode($groupCode)
$real_groupCode .= "-"; $real_groupCode .= "-";
$real_groupCode .= mb_strstr($tmp_groupCode[1], "", true)!==false ? mb_strstr($tmp_groupCode[1], "", true) : $tmp_groupCode[1]; $real_groupCode .= mb_strstr($tmp_groupCode[1], "", true)!==false ? mb_strstr($tmp_groupCode[1], "", true) : $tmp_groupCode[1];
} }
$ret["cut"] = trim_str(trim($real_groupCode));
for ($i=2; $i < count($tmp_groupCode); $i++) { for ($i=2; $i < count($tmp_groupCode); $i++) {
if (strlen($tmp_groupCode[$i]) > 4) { if (strlen($tmp_groupCode[$i]) > 4) {
$real_groupCode .= "-"; $real_groupCode .= "-";
@ -136,7 +137,8 @@ function analysis_groupCode($groupCode)
} }
} }
$real_groupCode = trim_str(trim($real_groupCode)); $real_groupCode = trim_str(trim($real_groupCode));
return $real_groupCode; $ret["all"] = $real_groupCode;
return $ret;
} }
function trim_str($groupCode) function trim_str($groupCode)
{ {

@ -209,8 +209,14 @@ class OrderFinance_model extends CI_Model {
/** 判断各种项目的报表是否已存在 */ /** 判断各种项目的报表是否已存在 */
public function report_tour_exists($coli_id=null, $tourCode=null, $tourBz=null) public function report_tour_exists($coli_id=null, $tourCode=null, $tourBz=null)
{ {
$sql = "SELECT top 1 ordernumber from report_tour where ordernumber=? and tourCode=? and tourBz=? "; $sql = "SELECT top 10 ordernumber from report_tour where ordernumber=? and tourCode=? ";
$num_rows = $this->HT->query($sql, array($coli_id, $tourCode, $tourBz))->num_rows(); if ($tourBz) {
$tourBz = mb_ereg_replace('[^a-zA-Z0-9\-\[\]]', '', strstr($tourBz, ",", true));
$tourBz = str_replace("[", "[[]", $tourBz);
$sql .= " and (tourBz like '%" . $this->HT->escape_like_str($tourBz) . "%'
OR tourBz='') ";
}
$num_rows = $this->HT->query($sql, array($coli_id, $tourCode))->num_rows();
return $num_rows>0; return $num_rows>0;
} }
public function report_train_exists($coli_id=null, $TrainNo=null) public function report_train_exists($coli_id=null, $TrainNo=null)
@ -236,14 +242,20 @@ class OrderFinance_model extends CI_Model {
public function insert_report_tour_tulanduo($report_tour_arr=array()) public function insert_report_tour_tulanduo($report_tour_arr=array())
{ {
foreach ($report_tour_arr as $krt => $vrt) { foreach ($report_tour_arr as $krt => $vrt) {
$tourBz_tmp = "";
if ($this->report_tour_exists($vrt['ordernumber'], $vrt['tourCode'], $vrt['tourBZ']) === TRUE) { if ($this->report_tour_exists($vrt['ordernumber'], $vrt['tourCode'], $vrt['tourBZ']) === TRUE) {
$where = " ordernumber='" . $vrt['ordernumber'] . "' AND tourCode='" . $vrt['tourCode'] . "' "; $where = " ordernumber='" . $vrt['ordernumber'] . "' AND tourCode='" . $vrt['tourCode'] . "' ";
$where .= " AND tourBZ='" . $vrt['tourBZ'] . "' "; $tourBz_tmp = mb_ereg_replace('[^a-zA-Z0-9\-\[\]]', '', strstr($vrt['tourBZ'], ",", true));
$update_sql = $this->HT->update_string('tourmanager.dbo.Report_Tour', $vrt, $where); $tourBz_tmp = str_replace("[", "[[]", $tourBz_tmp);
$this->HT->query($update_sql); $where .= " AND (tourBZ like '%" . $this->HT->escape_like_str($tourBz_tmp) . "%'
} else { OR tourBZ='') ";
$this->HT->insert('tourmanager.dbo.Report_Tour', $vrt); $delete_sql = "DELETE FROM tourmanager.dbo.Report_Tour where " . $where;
// $update_sql = $this->HT->update_string('tourmanager.dbo.Report_Tour', $vrt, $where);
$this->HT->query($delete_sql);
} }
// else {
$this->HT->insert('tourmanager.dbo.Report_Tour', $vrt);
// }
} }
return TRUE; return TRUE;
} }

Loading…
Cancel
Save