trippest 生成单团财务表;

feature/pay
lyt 7 years ago
parent 63148e1f82
commit ac00813dac

@ -76,6 +76,7 @@ class TulanduoApi extends CI_Controller
*/
public function get_orderlist()
{
$order_number = $this->input->get_post("orderNum");
$startOrderDate = date('Y-m-d', strtotime("-2 days"));
$endOrderDate = date('Y-m-d');
$startTravelDate = date('Y-m-d');

@ -9,6 +9,7 @@ class Order_finance extends CI_Controller {
* * 获取拼团总人数, 价格人等
* * 分别计算每次拼团成本
* * * 写入report_tour
* * 写入核算管理CK_GroupInfo
* * 所有产品总成本
* * * 写入report_order
* END
@ -32,22 +33,81 @@ class Order_finance extends CI_Controller {
}
public function single_order_report($coli_sn=0)
{
$order_info = $this->OrderFinance_model->get_order_info($coli_sn);
if (empty($order_info)) {
return;
}
$report_order_exists = $this->OrderFinance_model->get_report_order($order_info->ordernumber);
if ( ! empty($report_order_exists)) {
return $this->output->set_content_type('application/json')->set_output(json_encode($report_order_exists));
}
return $this->generate_report($order_info);
}
/*!
* 单团财务表计算
* @date 2018-07-18
* @param integer $coli_sn 订单主表key
* @return [type] [description]
* 基本流程:
* * 获取拼团类别: PVT, 拼团
* * 获取拼团总人数, 价格人等
* * 分别计算每次拼团成本
* * * 写入report_tour
* * 所有产品总成本
* * * 写入核算管理CK_GroupInfo
* * * 写入单团财务表report_order
* END
*/
public function single_order_report($coli_sn=0)
public function generate_report($order_info=array())
{
$coli_sn = $order_info->COLI_SN;
/** 单团财务表 */
$report_order = array();
$report_order['OrderYJLR'] = 0; //预计利润
$report_order['basemoney'] = 0; // 总成本
$report_order['money'] = 0; // 总收入, 实收金额
$report_order['profitmoney'] = 0; // 利润
$report_order['adultnumber'] = 0;
$report_order['childnumber'] = 0;
$report_order['babynumber'] = 0;
$report_order['ordernumber'] = $order_info->ordernumber;
$report_order['TuanName'] = $order_info->TuanName;
$report_order['operater'] = $order_info->operater;
$report_order['Agenter'] = $order_info->Agenter;
$report_order['ChinaName'] = $order_info->ChinaName;
$report_order['country'] = $order_info->country;
$report_order['reservedate'] = $order_info->reservedate;
$report_order['guesttype'] = $order_info->guesttype;
$report_order['RO_GRI_SN'] = $report_order['RO_CGI_SN'] = $order_info->GRI_SN;
// $report_order['basemoney'] = $order_info->basemoney; // 总成本
// $report_order['OrderPrice'] = $order_info->OrderPrice; // 总报价
/** 订单支付信息 */
$order_payment = $this->OrderFinance_model->get_order_payment($coli_sn);
$report_order['paymodenew'] = 0;
$report_order['money'] = $order_payment->SSmoney;
$report_order['RO_PayDescribe'] = $order_payment->payTypeDesc;
$report_order['paydate'] = $order_payment->patDate;
$report_order['OrderPrice'] = $report_order['money'];
/** 订单人数 */
$person_num = $this->OrderFinance_model->get_order_person_num($coli_sn);
$report_order['adultnumber'] = $person_num->adult_num;
$report_order['childnumber'] = $person_num->child_num;
$ret = new stdClass();
/** 图兰朵产品: 取拼团实际成本 */
$ret->combine_cost = array();
$combineNo_arr = $this->OrderFinance_model->get_order_combineNo($coli_sn);
// $ret->x = $combineNo_arr;
$group_type_arr = array_unique(array_map(function($ele){return $ele->GCI_groupType;}, $combineNo_arr));
// $this->output->set_content_type('application/json')->set_output(json_encode($combineNo_arr));
// $this->output->set_content_type('application/json')->set_output(json_encode($group_type_arr));
$processed_code = array();
$processed_code = array(); // 已处理的产品编号
foreach ($combineNo_arr as $kc => $vc) {
if (empty($vc->GCI_combineNo)) {
continue;
}
if ($vc->GCI_groupType == 1) {
$ret->pvt = $pvt_cost = $this->pvt_basic($vc->GCI_combineNo, $coli_sn, $processed_code);
} else if ($vc->GCI_groupType == 2) {
@ -58,6 +118,115 @@ class Order_finance extends CI_Controller {
$tmp_cost = null;
}
}
/** 保存图兰朵包价线路产品的成本到report_tour */
// TODO
// pvt
$report_tour_pvt = array();
if ( ! empty($ret->pvt)) {
$report_tour_pvt['ordernumber'] = $ret->pvt->coli_id;
$report_tour_pvt['tourCode'] = $ret->pvt->PAG_Code;
$report_tour_pvt['tourname'] = $ret->pvt->pag_name;
$report_tour_pvt['tourtime'] = $ret->pvt->startdate;
$report_tour_pvt['tourRSd'] = $ret->pvt->adult_num;
$report_tour_pvt['tourRSx'] = $ret->pvt->child_num;
$report_tour_pvt['tourCostRsd'] = $ret->pvt->person_cost;
$report_tour_pvt['tourCostRSx'] = $ret->pvt->person_cost;
$report_tour_pvt['tourcost'] = $ret->pvt->cost_sum;
$report_tour_pvt['tourPrice'] = $this->OrderFinance_model->convert_to_RMB($ret->pvt->totalPrice);
$report_tour_pvt['tourProfit'] = ($report_tour_pvt['tourPrice']>0) ? bcsub($report_tour_pvt['tourPrice'], $report_tour_pvt['tourcost']) : 0;
$report_tour_pvt['tourProvide'] = $ret->pvt->vendor_name;
$report_tour_pvt['tourBZ'] = $ret->pvt->comment;
$report_tour_pvt['orderstats'] = 0;
// 成本详情
$report_tour_pvt['RPT_Car'] = $ret->pvt->cost_category['touristCarOperations'];
$report_tour_pvt['RPT_Meal'] = $ret->pvt->cost_category['restraurantOperations'];
$report_tour_pvt['RPT_Ticket'] = $ret->pvt->cost_category['sceneryOperations'];
$report_tour_pvt['RPT_Service'] = $ret->pvt->cost_category['guiderOperations'];
$report_tour_pvt['RPT_MealGrants'] = $ret->pvt->cost_category['guide_meal'];
$report_tour_pvt['RPT_Water'] = $ret->pvt->cost_category['water'];
$report_tour_pvt['RPT_Other'] = $ret->pvt->cost_category['otherCosts'];
$report_tour_pvt['RPT_Total'] = $ret->pvt->cost_sum;
$report_tour_pvt['RPT_PersonGrade'] = $ret->pvt->person_grade;
$ret->report_tour[] = $report_tour_pvt;
// 计算订单总成本
$report_order['basemoney'] = bcadd($report_order['basemoney'], $report_tour_pvt['tourcost']);
}
// 拼团
if ( ! empty($ret->combine_cost)) {
foreach ($ret->combine_cost as $kcc => $cost) {
$cost_c = array();
$cost_c['ordernumber'] = $cost->coli_id;
$cost_c['tourCode'] = implode(',', array_unique(array_map(function($ele){ return $ele->real_code; }, $cost->order_cost)));
$cost_c['tourname'] = $cost->pag_name;
$cost_c['tourtime'] = $cost->startdate;
$cost_c['tourRSd'] = $cost->order_cost[0]->adult_num;
$cost_c['tourRSx'] = $cost->order_cost[0]->child_num;
$cost_c['tourCostRsd'] = $cost->person_cost;
$cost_c['tourCostRSx'] = $cost->person_cost;
$cost_c['tourcost'] = $cost->order_cost[0]->order_cost_sum;
$cost_c_price = 0;
foreach ($cost->order_cost as $koc => $coc) {
if ($coc->PAG_code === $coc->real_code) {
$cost_c_price = bcadd($cost_c_price, $coc->totalPrice);
}
}
$cost_c['tourPrice'] = $this->OrderFinance_model->convert_to_RMB($cost_c_price);
$cost_c['tourProfit'] = ($cost_c['tourPrice']>0) ? bcsub($cost_c['tourPrice'], $cost_c['tourcost']) : 0;
$cost_c['tourProvide'] = $cost->vendor_name;
$cost_c['tourBZ'] = $cost->comment;
$cost_c['orderstats'] = 0;
// 成本详情
$cost_c['RPT_Car'] = $cost->cost_category['touristCarOperations'];
$cost_c['RPT_Meal'] = $cost->cost_category['restraurantOperations'];
$cost_c['RPT_Ticket'] = $cost->cost_category['sceneryOperations'];
$cost_c['RPT_Service'] = $cost->cost_category['guiderOperations'];
$cost_c['RPT_MealGrants'] = $cost->cost_category['guide_meal'];
$cost_c['RPT_Water'] = $cost->cost_category['water'];
$cost_c['RPT_Other'] = $cost->cost_category['otherCosts'];
$cost_c['RPT_Total'] = $cost->cost_sum;
$cost_c['RPT_PersonGrade'] = $cost->person_num;
$ret->report_tour[] = $cost_c;
// 计算订单总成本
$report_order['basemoney'] = bcadd($report_order['basemoney'], $cost_c['tourcost']);
}
}
/** 非图兰朵供应商的包价线路产品 */
$other_tour = $this->OrderFinance_model->get_order_detail($coli_sn, 'D', false);
if ( ! empty($other_tour)) {
$ret->others = $this->OrderFinance_model->insert_report_tour_others($coli_sn);
foreach ($ret->others as $kro => $vro) {
// $report_order['basemoney'] = bcadd($report_order['basemoney'], $vro->tourcost);
// test
$report_order['basemoney'] = bcadd($report_order['basemoney'], $vro->COLD_TotalCost);
}
}
/** 火车票预定 */
$train_detail = $this->OrderFinance_model->get_order_detail($coli_sn, '2');
if( ! empty($train_detail)) {
$ret->train = $this->OrderFinance_model->insert_report_train($coli_sn);
foreach ($ret->train as $krt => $vrt) {
// $report_order['basemoney'] = bcadd($report_order['basemoney'], $vrt->TotalCost);
// test
$report_order['basemoney'] = bcadd($report_order['basemoney'], $vrt->TotalCost);
}
}
/** 酒店预订 */
$hotel_detail = $this->OrderFinance_model->get_order_detail($coli_sn, 'A');
if ( ! empty($hotel_detail)) {
$ret->hotel = $this->OrderFinance_model->insert_report_hotel($coli_sn);
foreach ($ret->hotel as $krh => $vrh) {
// $report_order['basemoney'] = bcadd($report_order['basemoney'], $vrh->roomcost);
// test
$report_order['basemoney'] = bcadd($report_order['basemoney'], $vrh->COLD_TotalCost);
}
}
// 订单利润
$report_order['profitmoney'] = $report_order['OrderYJLR'] = bcsub($report_order['money'], $report_order['basemoney']);
$report_order['builddate'] = date('Y-m-d H:i:s');
$report_order['xh'] = $this->OrderFinance_model->get_report_order_xh(); //序号
$ret->report_order = $this->OrderFinance_model->insert_report_order($report_order);
// 核算管理
// 更新report_order RO_CGI_SN
$this->output->set_content_type('application/json')->set_output(json_encode($ret));
return;
}
@ -67,7 +236,6 @@ class Order_finance extends CI_Controller {
* @example 180426360,180516007U
* @date 2018-07-18
* @param string $combineNo
* @return [type] [description]
*/
public function combine_basic($combineNo="", $coli_sn=0)
{
@ -77,8 +245,7 @@ class Order_finance extends CI_Controller {
return null;
}
$ret->coli_sn = $coli_sn;
// $ret->s = $all_orders;
$all_pags = array_map(function($ele){ return $ele->PAG_Code;}, $all_orders);
$all_pags = array_map(function($ele){ return $ele->PAG_Code;}, $all_orders);
$all_pag = array_unique($all_pags);
$combine_pag_arr = array();
$pvt_code = $this->forbidden_combine();
@ -103,12 +270,13 @@ class Order_finance extends CI_Controller {
}
$extra_code_cold = array_merge($extra_code_cold, $extra_arr);
}
// 避免覆盖key
// 不直接merge,避免覆盖key
foreach ($extra_code_cold as $ke => $ve) {
$all_orders[] = $ve;
}
// 重新计算重复次数
$all_pags = array_map(function($ele){ return $ele->PAG_Code;}, $all_orders);
$all_pags = array_filter(array_map(function($ele){ return $ele->PAG_Code;}, $all_orders));
// $ret->s = $all_pags;
// 重复的产品号; 可混拼的产品
$repeat_code = array();
$code_count = array_count_values($all_pags);
@ -140,11 +308,8 @@ class Order_finance extends CI_Controller {
// $combine_pag_arr[] = array_diff($all_pag, $pvt_code); // 此处排除PVT租车产品
$combine_pag_arr[] = $all_pag;
}
// $ret->s = $all_pags;
// $ret->q = $combine_pag_arr;
$ret->combine_pags = my_array_unique($combine_pag_arr);
$ret->combine_pags = $ret->combine_pags[0]; // 这里用0是因为一个拼团应该只有一组或一个产品
// $ret->q = my_array_unique($combine_pag_arr);
$ret->person_num = 0;
$ret->PAG_Code = "";
$ret->order_cost = array();
@ -162,10 +327,14 @@ class Order_finance extends CI_Controller {
$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 = $vo->PAG_Code;
$tour_s->real_code = isset($vo->real_code) ? $vo->real_code : $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;
}
@ -203,9 +372,17 @@ class Order_finance extends CI_Controller {
}
$ret->coli_sn = $coli_sn;
$ret->coli_id = $all_orders[0]->coli_ID;
// 总报价
$ret->totalPrice = 0;
foreach ($all_orders as $kal => $val) {
$ret->totalPrice = bcadd($ret->totalPrice, $val->COLD_TotalPrice);
}
// 预定的产品数
$ret->tour_count = count(array_unique(array_map(function($ele) {return $ele->PAG_Code;}, $all_orders)));
$ret->person_num = $this->OrderFinance_model->get_order_person_num($coli_sn);
$person_num = $this->OrderFinance_model->get_order_person_num($coli_sn);
$ret->person_num = $person_num->person_num;
$ret->adult_num = $person_num->adult_num;
$ret->child_num = $person_num->child_num;
// $tour_s = new stdClass();
$combine_cost = $this->OrderFinance_model->get_combine_sumMoney($combineNo);
$ret->startdate = $all_orders[0]->COLD_StartDate;
@ -213,7 +390,7 @@ class Order_finance extends CI_Controller {
$ret->cost_category = $combine_cost->cost_category;
$ret->cost_sum = $combine_cost->cost_sum;
$ret->person_cost = bcdiv($ret->cost_sum, $ret->person_num);
$ret->comment = "PVT,共" . $ret->person_num . "人";// 150
$ret->comment = "PVT,共" . $ret->person_num . "人";// 150
$pag_sns = array_values(array_unique(array_map(function($ele) {return $ele->COLD_ServiceSN;}, $all_orders)));
$pags_info = $this->OrderFinance_model->get_pag_info(implode(',', $pag_sns));
$ret->PAG_Code = implode(",", array_values(array_unique(array_map(function($ele) {return $ele->PAG_Code;}, $pags_info)))); // TODO 限制50

@ -6,6 +6,48 @@ class OrderFinance_model extends CI_Model {
parent::__construct();
$this->load->helper('array');
$this->HT = $this->load->database('HT', TRUE);
bcscale(4);
}
public function get_order_info($coli_sn=0)
{
$sql = "SELECT
coli.COLI_SN,coli.COLI_ID as ordernumber,
coli.COLI_WebCode as Agenter,
coli.COLI_ApplyDate as reservedate
,coli.COLI_Cost as basemoney
,coli.COLI_Price*6.77 OrderPrice
-- ,dbo.ConvertToRMB('USD',ISNULL(coli.COLI_Price,0)) OrderPrice
,gri.GRI_SN ,gri.GRI_No as TuanName
,opi.OPI_Name as ChinaName,opi.OPI_SN as operater,opi.OPI_DEI_SN
-- ,GETDATE() as builddate
,gut.GUT_NationalityID,COI2_Country as country
,(
select top 1 BPE_GuestType
from BIZ_ConfirmLineDetail
inner join BIZ_BookPeopleList on BPL_COLD_SN=COLD_SN
inner join BIZ_BookPeople on BPE_SN=BPL_BPE_SN
where COLD_COLI_SN=coli.COLI_SN
) as guesttype
from BIZ_ConfirmLineInfo coli
inner join GRoupInfo gri on coli.COLI_GRI_SN=gri.GRI_SN and gri.DeleteFlag=0
inner join OperatorInfo opi on opi.OPI_SN=coli.COLI_OPI_ID
left join BIZ_GUEST gut on gut.GUT_SN=coli.COLI_GUT_SN
left join CountryInfo2 on COI2_COI_SN=gut.GUT_NationalityID and COI2_LGC=2
where coli.COLI_SN=$coli_sn ";
return $this->HT->query($sql)->row();
}
public function get_order_detail($coli_sn=0, $service_type='D', $tulanduo=null)
{
$vei_sql = ($tulanduo===null) ? "" : " AND COLD_PlanVEI_SN NOT IN (1343,29188,30548,30016) ";
$sql = "SELECT * from
BIZ_ConfirmLineDetail cold
where isnull(cold.DeleteFlag,0)=0 and COLD_ServiceType=?
and COLD_COLI_SN=$coli_sn
$vei_sql
";
return $this->HT->query($sql, array($service_type))->result();
}
/** 订单的所有拼团号 */
@ -31,7 +73,7 @@ class OrderFinance_model extends CI_Model {
,COLI_SN,coli_ID--,COLI_ApplyDate,COLI_GroupCode
,COLD_SN,cold.COLD_ServiceSN--,COLD_EndDate
,PAG_Code ,pag_sub.PAGS_CN_Title, cold.COLD_StartDate,PAG_DefaultVEI_SN
,COLD_PersonNum ,COLD_ChildNum , cold.COLD_StartDate,COLD_EndDate
,COLD_PersonNum ,COLD_ChildNum , cold.COLD_StartDate,COLD_EndDate, cold.COLD_TotalPrice
--,PAG_Title
from GroupCombineInfo gci
inner join BIZ_ConfirmLineInfo coli on gci.GCI_GRI_SN=COLI_GRI_SN
@ -80,12 +122,19 @@ class OrderFinance_model extends CI_Model {
/** 获取订单总人数 */
public function get_order_person_num($coli_sn=0)
{
$sql = "SELECT BPL_BPE_SN
$ret = new stdClass();
$sql = "SELECT BPL_BPE_SN,bp.BPE_GuestType
from BIZ_ConfirmLineDetail cold
inner join BIZ_BookPeopleList bpl on bpl.BPL_COLD_SN=cold.COLD_SN
inner join biz_bookpeople bp on bp.BPE_SN=bpl.BPL_BPE_SN
where cold.COLD_COLI_SN=$coli_sn
group by bpl.BPL_BPE_SN";
return $this->HT->query($sql)->num_rows();
group by bpl.BPL_BPE_SN,bp.BPE_GuestType";
$query = $this->HT->query($sql);
$ret->person_num = $query->num_rows();
$guest_type_cnt = array_count_values(array_map(function($ele) { return $ele->BPE_GuestType; }, $query->result()));
$ret->adult_num = $guest_type_cnt['1'];
$ret->child_num = $ret->person_num-$ret->adult_num;
return $ret;
}
/** 获取产品信息:产品名称,供应商等 */
@ -98,6 +147,226 @@ class OrderFinance_model extends CI_Model {
return $this->HT->query($sql)->result();
}
public function get_order_payment($coli_sn=0)
{
$ret = new stdClass();
$sql = "SELECT gai.GAI_SSDate,gai.GAI_SSJE,gai.GAI_Type
from BIZ_GroupAccountInfo gai
where gai.GAI_COLI_SN=$coli_sn and gai.DeleteFlag=0";
$payment = $this->HT->query($sql)->result();
$ret->SSmoney = 0;
$ret->patDate = "";
$ret->payType = "";
$ret->payTypeDesc = "";
if ( ! empty($payment)) {
foreach ($payment as $kp => $vp) {
$ret->SSmoney = bcadd($ret->SSmoney, $vp->GAI_SSJE);
}
$ret->patDate = $payment[0]->GAI_SSDate;
$ret->payType = $payment[0]->GAI_Type;
$ret->payTypeDesc = $this->HT
->query("SELECT SYC2_CodeDiscribe
FROM V_System_Code
WHERE SYC_Type=15 AND LGC_LGC=2
AND SYC_SN=?
", array($ret->payType))
->row()->SYC2_CodeDiscribe;
}
return $ret;
}
/** 图兰朵包价线路产品 */
public function insert_report_tour_tulanduo($report_tour_arr=array())
{
$this->HT2 = $this->load->database('INFO', TRUE); // test
foreach ($report_tour_arr as $krt => $vrt) {
$this->HT2->insert('tourmanager.dbo.Report_Tour', $vrt);
}
return TRUE;
}
/** 火车票 */
public function insert_report_train($coli_sn=0)
{
// INSERT INTO report_Train(
// OrderNumber,
// TrainNo,
// DepartureCity,
// ArrivalCity,
// DepartureDate,
// PassengerNo,
// adultPrice,
// TotalCost,
// TotalPrice,
// TrainProvide,
// TrainBZ,
// orderstats)
$sql = "SELECT
dbo.BIZ_ConfirmLineInfo.COLI_ID,
FlightsNo,
DepartureCity,
ArrivalCity,
left(convert(varchar,DepartureDate,120),10) as DepartureDate1,
isnull(COLD_PersonNum,0)+ISNULL(COLD_ChildNum,0) as PersonNum,
adultcost,
COLD_TotalCost as TotalCost,
COLD_TotalPrice*6.77 as TotalPrice, --test
VEI2_CompanyBN,
' ' as TrainBZ, -- test
-- case when dbo.GetBIZTrainVEIDebt(COLD_SN)='YES' then '挂账' else ' ' end as TrainBZ,
0 as stat
from BIZ_ConfirmLineDetail
inner join BIZ_ConfirmLineInfo on COLI_SN=COLD_COLI_SN
inner join BIZ_FlightsOrderInfo on FOI_COLD_SN = COLD_SN
left join VEndorInfo2 on COLD_PlanVEI_SN = VEI2_VEI_SN and VEI2_LGC = 2
where COLD_COLI_SN = $coli_sn
and isnull(BIZ_ConfirmLineDetail.DeleteFlag,0)=0
and COLD_ServiceType = '2' ";
return $this->HT->query($sql)->result();
// return $this->HT->query("SELECT top 1 * from tourmanager.dbo.report_Train inner join BIZ_ConfirmLineInfo on COLI_ID=OrderNumber WHERE COLI_SN=$coli_sn order by OrderID desc")->row();
}
/** 酒店 */
public function insert_report_hotel($coli_sn=0)
{
// INSERT INTO report_room( ordernumber, hotelName, cityName, hotelStar, roomtype, starttime, endtime, roomnumber, ExtraBedNumber, jianyeshu, jianyecost, ExtraBedCost, ExtraBedPrice, roomcost, roomprice, roomprofit, roomprovide, roombz, orderstats)
$sql = "
SELECT coli_id,
v2.VEI2_CompanyBN AS HotelName,
cityinfo2.CII2_Name AS cityname,
(SELECT SGC_ServiceGrade
FROM servicegradecode2
WHERE SGC2_LGC=2
AND SGC2_SGC_SN=Isnull(VEI_Grade,-1)) AS HStar,
(SELECT ROT2_TypeName
FROM roomtype2
WHERE ROT2_ROT_SN=ISNULL(COLD_ServiceSN2,-1)
AND ROT2_LGC=1) AS RoomType,
left(convert(varchar,COLD_StartDate,120),10) AS COLD_StartDate,
left(convert(varchar,COLD_EndDate,120),10) AS COLD_EndDate,
COLD_Count,
isnull(HOI_ExtraNum,0) AS HOI_ExtraNum,
COLD_DayCount=DATEDIFF(DAY,COLD_StartDate,COLD_EndDate),
COLD_TotalCost, -- test
-- COLD_TotalCost*1.0/dbo.ZeroToOne(DATEDIFF(DAY,COLD_StartDate,COLD_EndDate)),
0 as ExtraBedCost,
0 as ExtraBedPrice,
COLD_TotalCost,
COLD_TotalPrice*6.77 as COLD_TotalPrice,
(COLD_TotalPrice/1.03*6.77)-COLD_TotalCost as roomprofit,
VendorInfo2.VEI2_CompanyBN AS PlantVEI,
COLD_Describe,
0 as stat
FROM BIZ_ConfirmLineDetail
INNER JOIN BIZ_ConfirmLineInfo ON COLD_COLI_SN=COLI_SN
LEFT JOIN BIZ_HotelOrderInfo ON HOI_COLD_SN = COLD_SN
LEFT JOIN VEndorInfo2 ON COLD_PlanVEI_SN = VEI2_VEI_SN AND VEI2_LGC = 2
LEFT JOIN Vendorinfo2 AS V2 ON COLD_ServiceSN = V2.VEI2_VEI_SN AND V2.VEI2_LGC = 2
LEFT JOIN VendorInfo ON COLD_ServiceSN = VEI_SN
LEFT JOIN cityinfo2 ON vendorinfo.VEI_CII_Name=cityinfo2.CII2_CII_SN AND cityinfo2.CII2_LGC=2
WHERE COLD_COLI_SN = $coli_sn
AND BIZ_ConfirmLineDetail.DeleteFlag = 0
AND COLD_ServiceType = 'A'
";
return $this->HT->query($sql)->result();
// return $this->HT->query("SELECT top 1 * from tourmanager.dbo.report_room inner join BIZ_ConfirmLineInfo on COLI_ID=ordernumber WHERE COLI_SN=$coli_sn order by orderId desc")->row();
}
/** 非图兰朵供应商的包价线路产品 */
public function insert_report_tour_others($coli_sn=0)
{
// INSERT INTO report_tour(
// ordernumber,
// tourCode,
// tourname,
// tourtime,
// tourRSd,
// tourRSx,
// tourCostRsd,
// tourCostRSx,
// tourcost,
// tourPrice,
// tourProfit,
// tourProvide,
// tourBZ,
// orderstats)
$sql = "SELECT
dbo.BIZ_ConfirmLineInfo.COLI_ID,
dbo.BIZ_PackageInfo.PAG_Code,
dbo.BIZ_PackageInfo.PAG_Title,
SUBSTRING(CONVERT(varchar,dbo.BIZ_ConfirmLineDetail.COLD_StartDate, 120), 1, 10) AS COLD_StartDate,
dbo.BIZ_ConfirmLineDetail.COLD_PersonNum,
dbo.BIZ_ConfirmLineDetail.COLD_ChildNum,
--@AdultCost,
(select top 1 PKP_AdultCost
from BIZ_PackagePrice
where PKP_PAG_SN=COLD_ServiceSN
and PKP_VEI_SN=COLD_PlanVEI_SN
and PKP_PersonStart<=isnull(COLD_PersonNum,0)+isnull(COLD_ChildNum,0)
and PKP_PersonStop >=isnull(COLD_PersonNum,0)+isnull(COLD_ChildNum,0)
and PKP_ValidDate <= CONVERT(varchar(100),COLD_StartDate,23)
and PKP_InvalidDate >= CONVERT(varchar(100),COLD_StartDate,23)
ORDER BY PKP_PriceGrade
) as AdultCost,
--@ChildCost,
(select top 1 PKP_ChildCost
from BIZ_PackagePrice
where PKP_PAG_SN=COLD_ServiceSN
and PKP_VEI_SN=COLD_PlanVEI_SN
and PKP_PersonStart<=isnull(COLD_PersonNum,0)+isnull(COLD_ChildNum,0)
and PKP_PersonStop >=isnull(COLD_PersonNum,0)+isnull(COLD_ChildNum,0)
and PKP_ValidDate <= CONVERT(varchar(100),COLD_StartDate,23)
and PKP_InvalidDate >= CONVERT(varchar(100),COLD_StartDate,23)
ORDER BY PKP_PriceGrade
) as ChildCost,
dbo.BIZ_ConfirmLineDetail.COLD_TotalCost,
-- dbo.ConvertToRMB('USD',dbo.BIZ_ConfirmLineDetail.COLD_TotalPrice) COLD_TotalPrice,
-- dbo.ConvertToRMB('USD',dbo.BIZ_ConfirmLineDetail.COLD_TotalPrice)-dbo.BIZ_ConfirmLineDetail.COLD_TotalCost as COLD_Profit,
dbo.BIZ_ConfirmLineDetail.COLD_TotalPrice*6.77 COLD_TotalPrice,
(dbo.BIZ_ConfirmLineDetail.COLD_TotalPrice*6.77)-dbo.BIZ_ConfirmLineDetail.COLD_TotalCost as COLD_Profit,
isnull(dbo.VEndorInfo2.VEI2_CompanyBN,'.') as VEI2_CompanyN,
SUBSTRING(dbo.BIZ_ConfirmLineDetail.COLD_Describe,1,70) as COLD_Describe1,
0 as stat
FROM dbo.BIZ_ConfirmLineDetail
inner join BIZ_ConfirmLineInfo on COLI_SN=COLD_COLI_SN
LEFT OUTER JOIN dbo.VEndorInfo2 ON dbo.VEndorInfo2.VEI2_VEI_SN = dbo.BIZ_ConfirmLineDetail.COLD_PlanVEI_SN AND dbo.VEndorInfo2.VEI2_LGC = 2
INNER JOIN dbo.BIZ_PackageInfo ON dbo.BIZ_ConfirmLineDetail.COLD_ServiceSN = dbo.BIZ_PackageInfo.PAG_SN
WHERE (dbo.BIZ_ConfirmLineDetail.COLD_ServiceType='D')
AND (dbo.BIZ_ConfirmLineDetail.DeleteFlag = 0)
AND (dbo.BIZ_ConfirmLineDetail.COLD_COLI_SN=$coli_sn)
and dbo.BIZ_ConfirmLineDetail.COLD_PlanVEI_SN not in (1343,29188,30548,30016) ";
return $this->HT->query($sql)->result();
// return $this->HT->query("SELECT top 1 * from tourmanager.dbo.report_tour inner join BIZ_ConfirmLineInfo on COLI_ID=ordernumber WHERE COLI_SN=$coli_sn order by orderId desc")->row();
// $this->HT->query($sql);
return TRUE;
}
public function insert_report_order($report_order_arr=array())
{
$this->HT2 = $this->load->database('INFO', TRUE); // test
$this->HT2->insert('tourmanager.dbo.report_order', $report_order_arr);
return $this->HT2->query("SELECT top 1 * from tourmanager.dbo.report_order WHERE ordernumber=? order by orderID desc",array($report_order_arr['ordernumber']))->row();
// return TRUE;
}
public function get_report_order($coli_id=0)
{
$this->HT2 = $this->load->database('INFO', TRUE); // test
return $this->HT2->query("SELECT top 1 * from tourmanager.dbo.report_order WHERE ordernumber='$coli_id' order by orderID desc")->row();
}
public function convert_to_RMB($money=0, $fromCurrency='USD')
{
$this->HT2 = $this->load->database('INFO', TRUE); // test
// [dbo].[ConvertToRMB](@TargetCurrency varchar(6), @SourceMoney decimal(18,5))
return $this->HT2->query("SELECT tourmanager.dbo.[ConvertToRMB]('$fromCurrency',$money) as rmb ")->row()->rmb;
}
public function get_report_order_xh()
{
return $this->HT->query("SELECT MAX(xh)+1 as newxh from report_order")->row()->newxh;
}
}
/* End of file orderFinance_model.php */

Loading…
Cancel
Save