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

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

@ -143,9 +143,14 @@ class TulanduoApi extends CI_Controller
// set GCI_SN
$this->Orders_model->get_SN_by_vendorOrderId($vo['orderId'], $tmpv); // 查询订单是否已经录入过
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
$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) {
/** GRoupInfo */
@ -262,7 +267,8 @@ class TulanduoApi extends CI_Controller
$getInfo_byGroupCode = null;
$getInfo_byGroupCodeArr = array();
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);
}
$duplicate = false;
@ -674,9 +680,14 @@ class TulanduoApi extends CI_Controller
$this->Orders_model->BIZ_COLI_SN = null;
$this->Orders_model->GRI_SN = null;
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
$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 */
/** GRoupInfo */

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

@ -129,6 +129,7 @@ function analysis_groupCode($groupCode)
$real_groupCode .= "-";
$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++) {
if (strlen($tmp_groupCode[$i]) > 4) {
$real_groupCode .= "-";
@ -136,7 +137,8 @@ function analysis_groupCode($groupCode)
}
}
$real_groupCode = trim_str(trim($real_groupCode));
return $real_groupCode;
$ret["all"] = $real_groupCode;
return $ret;
}
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)
{
$sql = "SELECT top 1 ordernumber from report_tour where ordernumber=? and tourCode=? and tourBz=? ";
$num_rows = $this->HT->query($sql, array($coli_id, $tourCode, $tourBz))->num_rows();
$sql = "SELECT top 10 ordernumber from report_tour where ordernumber=? and tourCode=? ";
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;
}
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())
{
foreach ($report_tour_arr as $krt => $vrt) {
$tourBz_tmp = "";
if ($this->report_tour_exists($vrt['ordernumber'], $vrt['tourCode'], $vrt['tourBZ']) === TRUE) {
$where = " ordernumber='" . $vrt['ordernumber'] . "' AND tourCode='" . $vrt['tourCode'] . "' ";
$where .= " AND tourBZ='" . $vrt['tourBZ'] . "' ";
$update_sql = $this->HT->update_string('tourmanager.dbo.Report_Tour', $vrt, $where);
$this->HT->query($update_sql);
} else {
$tourBz_tmp = mb_ereg_replace('[^a-zA-Z0-9\-\[\]]', '', strstr($vrt['tourBZ'], ",", true));
$tourBz_tmp = str_replace("[", "[[]", $tourBz_tmp);
$where .= " AND (tourBZ like '%" . $this->HT->escape_like_str($tourBz_tmp) . "%'
OR tourBZ='') ";
$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;
}

Loading…
Cancel
Save