From b979e2fd6da3b67ca3733a5f7ec09f52716ffde8 Mon Sep 17 00:00:00 2001 From: Cheng Date: Mon, 11 Mar 2024 20:51:21 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=B0=E6=A2=AF=E6=B1=B0=E6=94=B9?= =?UTF-8?q?=E5=90=88=E7=B4=84=E7=B0=BD=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../elevator_new/elevator_new_deal_bonus.php | 422 ++++++++------ .../elevator_new_deal_bonus_v1_0_1.php | 30 +- .../elevator_new_deal_bonus_v2_0_1.php | 304 ++++++---- ...evator_new_deal_bonus_v2_0_examination.php | 92 +-- wms/contract/api/getContractData.php | 46 +- wms/contract/api/getFacilityNo.php | 48 +- wms/contract/api/newElevatorBonus.php | 162 ++++++ wms/contract/api/newElevatorT8.php | 369 ++++++++++++ wms/contract/api/postContractData.php | 379 ++++++------- wms/contract/api/postNewContractData.php | 526 +----------------- wms/contract/api/test copy.json | 150 +++-- wms/contract/conn.php | 3 +- wms/contract/contract-input.php | 10 +- wms/contract/contract-renovate-input.php | 247 ++++++++ wms/contract/js/alpine.js | 70 ++- 15 files changed, 1789 insertions(+), 1069 deletions(-) create mode 100644 wms/contract/api/newElevatorBonus.php create mode 100644 wms/contract/api/newElevatorT8.php create mode 100644 wms/contract/contract-renovate-input.php diff --git a/wms/bonus/elevator_new/elevator_new_deal_bonus.php b/wms/bonus/elevator_new/elevator_new_deal_bonus.php index 7138e787..fdcf8764 100644 --- a/wms/bonus/elevator_new/elevator_new_deal_bonus.php +++ b/wms/bonus/elevator_new/elevator_new_deal_bonus.php @@ -1,112 +1,165 @@ = 1.0): - $sales_bonus = $elevator_knockdown_price * 0.02; - break; - case ($discount >= 0.9 and $discount < 1.0): - $sales_bonus = $elevator_knockdown_price * 0.018; - break; - case ($discount >= 0.75 and $discount < 0.9): - $sales_bonus = $elevator_knockdown_price * 0.015; - break; - case ($discount < 0.75): - $sales_bonus = $elevator_knockdown_price * 0.008; - break; - }; - break; - - #小電梯(dumbwaiter)、平台梯(flatbase)、強驅(positive_drive) - case ($elevator_type == "dumbwaiter" or $elevator_type == "flatbase" or $elevator_type == "positive_drive"): - switch ($discount) { - case ($discount >= 1.0): - $sales_bonus = $elevator_knockdown_price * 0.02; - break; - case ($discount >= 0.9 and $discount < 1.0): - $sales_bonus = $elevator_knockdown_price * 0.018; - break; - case ($discount >= 0.72 and $discount < 0.9): - $sales_bonus = $elevator_knockdown_price * 0.015; - break; - case ($discount < 0.72): - $sales_bonus = $elevator_knockdown_price * 0.008; - break; - }; - break; - }; - #區域經理提成獎金($region_manager_bonus) - $region_manager_bonus = 600; - break; - }; - - #營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20% - array_push($bonus_array, [ - "bonus_type" => "1-訂金段", #獎金名稱 - "bonus_receiver" => $sales_id, #發放人員 - "bonus_amount" => round($sales_bonus * 0.2), #金額 - "payment_schedul_due" => "deposit", #訂金已收款20% - "payment_schedul_regulation" => "訂金已收款20%,發放總獎金20%" #發放規定 - ]); - #營銷人員銷售獎金水庫-----出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50% - array_push($bonus_array, [ - "bonus_type" => "1-出貨款段", #獎金名稱 - "bonus_receiver" => $sales_id, #發放人員 - "bonus_amount" => round($sales_bonus * 0.5), #金額 - "payment_schedul_due" => "shipping", #訂金已收款20% - "payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%" #發放規定 - ]); + #合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer) + switch ($contract_type) { + case "strategy_customer": + #契約員獎金($sales_bonus) + $sales_bonus = $pay_amount * 0.007; + #地區經理提成獎金($region_manager_bonus) + $region_manager_bonus = 400; + break; - #營銷人員銷售獎金水庫-----驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30% - array_push($bonus_array, [ - "bonus_type" => "1-驗收款段", #獎金名稱 - "bonus_receiver" => $sales_id, #發放人員 - "bonus_amount" => round($sales_bonus * 0.3), #金額 - "payment_schedul_due" => "acceptance", #訂金已收款20% - "payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%" #發放規定 - ]); + case "general_customer": + switch ($elevator_type) { + #客梯(passenger)、貨梯(cargo) + case ($elevator_type == "passenger" or $elevator_type == "cargo"): + switch ($discount) { + case ($discount >= 1.0): + $sales_bonus = $pay_amount * 0.02; + break; + case ($discount >= 0.9 and $discount < 1.0): + $sales_bonus = $pay_amount * 0.018; + break; + case ($discount >= 0.75 and $discount < 0.9): + $sales_bonus = $pay_amount * 0.015; + break; + case ($discount < 0.75): + $sales_bonus = $pay_amount * 0.008; + break; + }; + break; - #區域經理提成獎金水庫-----訂金已收款100%,發放總獎金50% - array_push($bonus_array, [ - "bonus_type" => "2-訂金段", #獎金名稱 - "bonus_receiver" => $region_manger_id, #發放人員 - "bonus_amount" => round($region_manager_bonus * 0.5), #金額 - "payment_schedul_due" => "deposit", #訂金已收款100% - "payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定 - ]); + #小電梯(dumbwaiter)、平台梯(flatbase)、強驅(positive_drive) + case ($elevator_type == "dumbwaiter" or $elevator_type == "flatbase" or $elevator_type == "positive_drive"): + switch ($discount) { + case ($discount >= 1.0): + $sales_bonus = $pay_amount * 0.02; + break; + case ($discount >= 0.9 and $discount < 1.0): + $sales_bonus = $pay_amount * 0.018; + break; + case ($discount >= 0.72 and $discount < 0.9): + $sales_bonus = $pay_amount * 0.015; + break; + case ($discount < 0.72): + $sales_bonus = $pay_amount * 0.008; + break; + }; + break; + }; + #區域經理提成獎金($region_manager_bonus) + $region_manager_bonus = 600; + break; + }; + $sales_bonus = round($sales_bonus); + $pay_scale = $elevator_pay_kind['pay_scale']; + switch ($elevator_pay_kind['pay_kind']) { + //訂金 + case '1': + #營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20% + array_push($bonus_array, [ + "bonus_type" => "4", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "deposit", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); - #區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50% - array_push($bonus_array, [ - "bonus_type" => "2-貨到工地款段", #獎金名稱 - "bonus_receiver" => $region_manger_id, #發放人員 - "bonus_amount" => round($region_manager_bonus * 0.5), #金額 - "payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100% - "payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定 - ]); + #區域經理提成獎金水庫-----訂金已收款100%,發放總獎金50% + array_push($bonus_array, [ + "bonus_type" => "11", #獎金名稱 + "bonus_receiver" => $region_manger_id, #發放人員 + "bonus_amount" => round($region_manager_bonus * 0.5), #金額 + "payment_schedul_due" => "deposit", #訂金已收款100% + "payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定 + ]); + break; + //二次 + case '2': + #營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20% + array_push($bonus_array, [ + "bonus_type" => "5", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => round($sales_bonus), #金額 + "payment_schedul_due" => "twice", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + //貨抵工地 + case '3': + array_push($bonus_array, [ + "bonus_type" => "6", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "shipping", #訂金已收款20% + "payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + #區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50% + array_push($bonus_array, [ + "bonus_type" => "12", #獎金名稱 + "bonus_receiver" => $region_manger_id, #發放人員 + "bonus_amount" => round($region_manager_bonus * 0.5), #金額 + "payment_schedul_due" => "shipping", #貨到工地款(含)之前所有款項已收款100% + "payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定 + ]); + // 材料其他 + case '4': + array_push($bonus_array, [ + "bonus_type" => "7", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "other", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + //安裝完畢 + case '5': + array_push($bonus_array, [ + "bonus_type" => "8", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "installed", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + //驗收 + case '6': + array_push($bonus_array, [ + "bonus_type" => "9", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "acceptance", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + //安裝其他 + case '7': + array_push($bonus_array, [ + "bonus_type" => "10", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "installOther", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + } - $result_array = [ - "ver" => $ver, #獎金版本 - "result_status" => "success", #計算結果 - "bonus_array" => $bonus_array #獎金水庫 - ]; + $result_array = [ + "ver" => $ver, #獎金版本 + "result_status" => "success", #計算結果 + "bonus_array" => $bonus_array #獎金水庫 + ]; + } } else { array_push($bonus_array, [ "bonus_type" => "error", #獎金名稱 @@ -125,79 +178,126 @@ function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $ele return $result_array; }; - -function elevator_new_deal_bonus_v1_0($ver, $contract_type, $elevator_knockdown_price, $sales_id, $region_manger_id) +function elevator_new_deal_bonus_v1_0($ver, $contract_type, $elevator_pay_kind, $sales_id, $region_manger_id) { $bonus_array = []; if ($ver == "1.0") { #合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer) - switch ($contract_type) { - case "strategy_customer": - #契約員獎金($sales_bonus) - $sales_bonus = $elevator_knockdown_price * 0.007; - #地區經理經理獎金($region_manager_bonus) - $region_manager_bonus = 400; - break; - - case "general_customer": - #契約員獎金($sales_bonus) - $sales_bonus = $elevator_knockdown_price * 0.015; - #區域經理獎金($region_manager_bonus) - $region_manager_bonus = 600; - break; - }; - - #營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20% - array_push($bonus_array, [ - "bonus_type" => "1-訂金段", #獎金名稱 - "bonus_receiver" => $sales_id, #發放人員 - "bonus_amount" => round($sales_bonus * 0.2), #金額 - "payment_schedul_due" => "deposit", #訂金已收款20% - "payment_schedul_regulation" => "訂金已收款20%,發放總獎金20%" #發放規定 - ]); + foreach ($elevator_pay_kind as $elevator_pay_kind) { + $elevator_pay_kind['pay_amount'] = round($elevator_pay_kind['pay_amount'] / 1.05); + switch ($contract_type) { + case "strategy_customer": + #契約員獎金($sales_bonus) + $sales_bonus = $elevator_pay_kind['pay_amount'] * 0.007; + #地區經理經理獎金($region_manager_bonus) + $region_manager_bonus = 400; + break; - #營銷人員銷售獎金水庫-----出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50% - array_push($bonus_array, [ - "bonus_type" => "1-出貨款段", #獎金名稱 - "bonus_receiver" => $sales_id, #發放人員 - "bonus_amount" => round($sales_bonus * 0.5), #金額 - "payment_schedul_due" => "shipping", #訂金已收款20% - "payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%" #發放規定 - ]); + case "general_customer": + #契約員獎金($sales_bonus) + $sales_bonus = $elevator_pay_kind['pay_amount'] * 0.015; + #區域經理獎金($region_manager_bonus) + $region_manager_bonus = 600; + break; + }; + $pay_scale = $elevator_pay_kind['pay_scale']; - #營銷人員銷售獎金水庫-----驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30% - array_push($bonus_array, [ - "bonus_type" => "1-驗收款段", #獎金名稱 - "bonus_receiver" => $sales_id, #發放人員 - "bonus_amount" => round($sales_bonus * 0.3), #金額 - "payment_schedul_due" => "acceptance", #訂金已收款20% - "payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%" #發放規定 - ]); + switch ($elevator_pay_kind['pay_kind']) { + // 訂金 + case '1': + array_push($bonus_array, [ + "bonus_type" => "4", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "deposit", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); - #區域經理獎金水庫-----訂金已收款100%,發放總獎金50% - array_push($bonus_array, [ - "bonus_type" => "2-訂金段", #獎金名稱 - "bonus_receiver" => $region_manger_id, #發放人員 - "bonus_amount" => round($region_manager_bonus * 0.5), #金額 - "payment_schedul_due" => "deposit", #訂金已收款100% - "payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定 - ]); + array_push($bonus_array, [ + "bonus_type" => "11", #獎金名稱 + "bonus_receiver" => $region_manger_id, #發放人員 + "bonus_amount" => round($region_manager_bonus * 0.5), #金額 + "payment_schedul_due" => "deposit", #訂金已收款100% + "payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定 + ]); + break; + // 二次款 + case '2': + array_push($bonus_array, [ + "bonus_type" => "5", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "twice", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + // 貨抵工地 + case '3': + array_push($bonus_array, [ + "bonus_type" => "6", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "shipping", #訂金已收款20% + "payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); - #區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50% - array_push($bonus_array, [ - "bonus_type" => "2-貨到工地款段", #獎金名稱 - "bonus_receiver" => $region_manger_id, #發放人員 - "bonus_amount" => round($region_manager_bonus * 0.5), #金額 - "payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100% - "payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定 - ]); + array_push($bonus_array, [ + "bonus_type" => "12", #獎金名稱 + "bonus_receiver" => $region_manger_id, #發放人員 + "bonus_amount" => round($region_manager_bonus * 0.5), #金額 + "payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100% + "payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定 + ]); + break; + // 材料其他 + case '4': + array_push($bonus_array, [ + "bonus_type" => "7", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "other", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + //安裝完畢 + case '5': + array_push($bonus_array, [ + "bonus_type" => "8", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "installed", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + //驗收 + case '6': + array_push($bonus_array, [ + "bonus_type" => "9", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "acceptance", #訂金已收款20% + "payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + //安裝其他 + case '7': + array_push($bonus_array, [ + "bonus_type" => "10", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "installOther", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + } - $result_array = [ - "ver" => $ver, #獎金版本 - "result_status" => "success", #計算結果 - "bonus_array" => $bonus_array #獎金水庫 - ]; + $result_array = [ + "ver" => $ver, #獎金版本 + "result_status" => "success", #計算結果 + "bonus_array" => $bonus_array #獎金水庫 + ]; + } } else { array_push($bonus_array, [ "bonus_type" => "error", #獎金名稱 diff --git a/wms/bonus/elevator_new/elevator_new_deal_bonus_v1_0_1.php b/wms/bonus/elevator_new/elevator_new_deal_bonus_v1_0_1.php index c639fe48..77753530 100644 --- a/wms/bonus/elevator_new/elevator_new_deal_bonus_v1_0_1.php +++ b/wms/bonus/elevator_new/elevator_new_deal_bonus_v1_0_1.php @@ -59,6 +59,7 @@ function elevator_new_deal_bonus_v1_0($ver, $contract_type, $elevator_pay_kind, #合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer) foreach ($elevator_pay_kind as $elevator_pay_kind) { + $elevator_pay_kind['pay_amount'] = round($elevator_pay_kind['pay_amount'] / 1.05); switch ($contract_type) { case "strategy_customer": #契約員獎金($sales_bonus) @@ -79,10 +80,10 @@ function elevator_new_deal_bonus_v1_0($ver, $contract_type, $elevator_pay_kind, // print_r($pay_scale); // echo ""; switch ($elevator_pay_kind['pay_kind']) { - + // 訂金 case '1': array_push($bonus_array, [ - "bonus_type" => "營銷人員銷售獎金-訂金段", #獎金名稱 + "bonus_type" => "4", #獎金名稱 "bonus_receiver" => $sales_id, #發放人員 "bonus_amount" => $sales_bonus, #金額 "payment_schedul_due" => "deposit", #訂金已收款20% @@ -90,25 +91,27 @@ function elevator_new_deal_bonus_v1_0($ver, $contract_type, $elevator_pay_kind, ]); array_push($bonus_array, [ - "bonus_type" => "區域經理提成獎金-訂金段", #獎金名稱 + "bonus_type" => "11", #獎金名稱 "bonus_receiver" => $region_manger_id, #發放人員 "bonus_amount" => round($region_manager_bonus * 0.5), #金額 "payment_schedul_due" => "deposit", #訂金已收款100% "payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定 ]); break; + // 二次款 case '2': array_push($bonus_array, [ - "bonus_type" => "營銷人員銷售獎金-二次段", #獎金名稱 + "bonus_type" => "5", #獎金名稱 "bonus_receiver" => $sales_id, #發放人員 "bonus_amount" => $sales_bonus, #金額 "payment_schedul_due" => "twice", #訂金已收款20% "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 ]); break; + // 貨抵工地 case '3': array_push($bonus_array, [ - "bonus_type" => "營銷人員銷售獎金-貨到工地款段", #獎金名稱 + "bonus_type" => "6", #獎金名稱 "bonus_receiver" => $sales_id, #發放人員 "bonus_amount" => $sales_bonus, #金額 "payment_schedul_due" => "shipping", #訂金已收款20% @@ -116,46 +119,47 @@ function elevator_new_deal_bonus_v1_0($ver, $contract_type, $elevator_pay_kind, ]); array_push($bonus_array, [ - "bonus_type" => "區域經理提成獎金-貨到工地款段", #獎金名稱 + "bonus_type" => "12", #獎金名稱 "bonus_receiver" => $region_manger_id, #發放人員 "bonus_amount" => round($region_manager_bonus * 0.5), #金額 "payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100% "payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定 ]); break; - + // 材料其他 case '4': array_push($bonus_array, [ - "bonus_type" => "營銷人員銷售獎金-材料其他段", #獎金名稱 + "bonus_type" => "7", #獎金名稱 "bonus_receiver" => $sales_id, #發放人員 "bonus_amount" => $sales_bonus, #金額 "payment_schedul_due" => "other", #訂金已收款20% "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 ]); break; - + //安裝完畢 case '5': array_push($bonus_array, [ - "bonus_type" => "營銷人員銷售獎金-安裝完畢段", #獎金名稱 + "bonus_type" => "8", #獎金名稱 "bonus_receiver" => $sales_id, #發放人員 "bonus_amount" => $sales_bonus, #金額 "payment_schedul_due" => "installed", #訂金已收款20% "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 ]); break; + //驗收 case '6': array_push($bonus_array, [ - "bonus_type" => "營銷人員銷售獎金-驗收款段", #獎金名稱 + "bonus_type" => "9", #獎金名稱 "bonus_receiver" => $sales_id, #發放人員 "bonus_amount" => $sales_bonus, #金額 "payment_schedul_due" => "acceptance", #訂金已收款20% "payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 ]); break; - + //安裝其他 case '7': array_push($bonus_array, [ - "bonus_type" => "營銷人員銷售獎金-安裝其他段", #獎金名稱 + "bonus_type" => "10", #獎金名稱 "bonus_receiver" => $sales_id, #發放人員 "bonus_amount" => $sales_bonus, #金額 "payment_schedul_due" => "installOther", #訂金已收款20% diff --git a/wms/bonus/elevator_new/elevator_new_deal_bonus_v2_0_1.php b/wms/bonus/elevator_new/elevator_new_deal_bonus_v2_0_1.php index a63b72a8..3aadeae7 100644 --- a/wms/bonus/elevator_new/elevator_new_deal_bonus_v2_0_1.php +++ b/wms/bonus/elevator_new/elevator_new_deal_bonus_v2_0_1.php @@ -33,119 +33,225 @@ result_array[ "$bonus_array"=>$bonus_array #所有獎金水庫 ]; + +$elevator_pay_kind[] + ex : + [ + + ] */ -function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $elevator_list_price, $elevator_knockdown_price, $sales_id, $region_manger_id) +function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $elevator_list_price, $elevator_knockdown_price, $elevator_pay_kind, $sales_id, $region_manger_id) { $bonus_array = []; if ($ver == "2.0") { - $elevator_knockdown_price = round($elevator_knockdown_price / 1.05); //不含稅 $discount = round($elevator_knockdown_price / $elevator_list_price, 3); #銷售點數,取到小數點第三位。 + // echo "
";
+		// print_r($elevator_pay_kind);
+		// echo "
"; + foreach ($elevator_pay_kind as $elevator_pay_kind) { + // 單次款項的種類 + // $pay_amount = round($elevator_pay_kind['pay_amount'] / 1.05); //不含稅 + $pay_amount = $elevator_pay_kind['pay_amount']; //不含稅 - #合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer) - switch ($contract_type) { - case "strategy_customer": - #契約員獎金($sales_bonus) - $sales_bonus = $elevator_knockdown_price * 0.007; - #地區經理提成獎金($region_manager_bonus) - $region_manager_bonus = 400; - break; - - case "general_customer": - switch ($elevator_type) { - #客梯(passenger)、貨梯(cargo) - case ($elevator_type == "passenger" or $elevator_type == "cargo"): - switch ($discount) { - case ($discount >= 1.0): - $sales_bonus = $elevator_knockdown_price * 0.02; - break; - case ($discount >= 0.9 and $discount < 1.0): - $sales_bonus = $elevator_knockdown_price * 0.018; - break; - case ($discount >= 0.75 and $discount < 0.9): - $sales_bonus = $elevator_knockdown_price * 0.015; - break; - case ($discount < 0.75): - $sales_bonus = $elevator_knockdown_price * 0.008; - break; - }; - break; - - #小電梯(dumbwaiter)、平台梯(flatbase)、強驅(positive_drive) - case ($elevator_type == "dumbwaiter" or $elevator_type == "flatbase" or $elevator_type == "positive_drive"): - switch ($discount) { - case ($discount >= 1.0): - $sales_bonus = $elevator_knockdown_price * 0.02; - break; - case ($discount >= 0.9 and $discount < 1.0): - $sales_bonus = $elevator_knockdown_price * 0.018; - break; - case ($discount >= 0.72 and $discount < 0.9): - $sales_bonus = $elevator_knockdown_price * 0.015; - break; - case ($discount < 0.72): - $sales_bonus = $elevator_knockdown_price * 0.008; - break; - }; - break; - }; - #區域經理提成獎金($region_manager_bonus) - $region_manager_bonus = 600; - break; - }; - - #營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20% - array_push($bonus_array, [ - "bonus_type" => "營銷人員銷售獎金-訂金段", #獎金名稱 - "bonus_receiver" => $sales_id, #發放人員 - "bonus_amount" => round($sales_bonus * 0.2), #金額 - "payment_schedul_due" => "deposit", #訂金已收款20% - "payment_schedul_regulation" => "訂金已收款20%,發放總獎金20%" #發放規定 - ]); - #營銷人員銷售獎金水庫-----出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50% - array_push($bonus_array, [ - "bonus_type" => "營銷人員銷售獎金-出貨款段", #獎金名稱 - "bonus_receiver" => $sales_id, #發放人員 - "bonus_amount" => round($sales_bonus * 0.5), #金額 - "payment_schedul_due" => "shipping", #訂金已收款20% - "payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%" #發放規定 - ]); + #合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer) + switch ($contract_type) { + case "strategy_customer": + #契約員獎金($sales_bonus) + $sales_bonus = $pay_amount * 0.007; + #地區經理提成獎金($region_manager_bonus) + $region_manager_bonus = 400; + break; - #營銷人員銷售獎金水庫-----驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30% - array_push($bonus_array, [ - "bonus_type" => "營銷人員銷售獎金-驗收款段", #獎金名稱 - "bonus_receiver" => $sales_id, #發放人員 - "bonus_amount" => round($sales_bonus * 0.3), #金額 - "payment_schedul_due" => "acceptance", #訂金已收款20% - "payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%" #發放規定 - ]); + case "general_customer": + switch ($elevator_type) { + #客梯(passenger)、貨梯(cargo) + case ($elevator_type == "passenger" or $elevator_type == "cargo"): + switch ($discount) { + case ($discount >= 1.0): + $sales_bonus = $pay_amount * 0.02; + break; + case ($discount >= 0.9 and $discount < 1.0): + $sales_bonus = $pay_amount * 0.018; + break; + case ($discount >= 0.75 and $discount < 0.9): + $sales_bonus = $pay_amount * 0.015; + break; + case ($discount < 0.75): + $sales_bonus = $pay_amount * 0.008; + break; + }; + break; - #區域經理提成獎金水庫-----訂金已收款100%,發放總獎金50% - array_push($bonus_array, [ - "bonus_type" => "區域經理提成獎金-訂金段", #獎金名稱 - "bonus_receiver" => $region_manger_id, #發放人員 - "bonus_amount" => round($region_manager_bonus * 0.5), #金額 - "payment_schedul_due" => "deposit", #訂金已收款100% - "payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定 - ]); + #小電梯(dumbwaiter)、平台梯(flatbase)、強驅(positive_drive) + case ($elevator_type == "dumbwaiter" or $elevator_type == "flatbase" or $elevator_type == "positive_drive"): + switch ($discount) { + case ($discount >= 1.0): + $sales_bonus = $pay_amount * 0.02; + break; + case ($discount >= 0.9 and $discount < 1.0): + $sales_bonus = $pay_amount * 0.018; + break; + case ($discount >= 0.72 and $discount < 0.9): + $sales_bonus = $pay_amount * 0.015; + break; + case ($discount < 0.72): + $sales_bonus = $pay_amount * 0.008; + break; + }; + break; + }; + #區域經理提成獎金($region_manager_bonus) + $region_manager_bonus = 600; + break; + }; + $sales_bonus = round($sales_bonus); + $pay_scale = $elevator_pay_kind['pay_scale']; + switch ($elevator_pay_kind['pay_kind']) { + //訂金 + case '1': + #營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20% + array_push($bonus_array, [ + "bonus_type" => "4", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "deposit", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); - #區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50% - array_push($bonus_array, [ - "bonus_type" => "區域經理提成獎金-貨到工地款段", #獎金名稱 - "bonus_receiver" => $region_manger_id, #發放人員 - "bonus_amount" => round($region_manager_bonus * 0.5), #金額 - "payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100% - "payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定 - ]); + #區域經理提成獎金水庫-----訂金已收款100%,發放總獎金50% + array_push($bonus_array, [ + "bonus_type" => "11", #獎金名稱 + "bonus_receiver" => $region_manger_id, #發放人員 + "bonus_amount" => round($region_manager_bonus * 0.5), #金額 + "payment_schedul_due" => "deposit", #訂金已收款100% + "payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定 + ]); + break; + //二次 + case '2': + #營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20% + array_push($bonus_array, [ + "bonus_type" => "5", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => round($sales_bonus), #金額 + "payment_schedul_due" => "twice", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + //貨抵工地 + case '3': + array_push($bonus_array, [ + "bonus_type" => "6", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "shipping", #訂金已收款20% + "payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + #區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50% + array_push($bonus_array, [ + "bonus_type" => "12", #獎金名稱 + "bonus_receiver" => $region_manger_id, #發放人員 + "bonus_amount" => round($region_manager_bonus * 0.5), #金額 + "payment_schedul_due" => "shipping", #貨到工地款(含)之前所有款項已收款100% + "payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定 + ]); + // 材料其他 + case '4': + array_push($bonus_array, [ + "bonus_type" => "7", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "other", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + //安裝完畢 + case '5': + array_push($bonus_array, [ + "bonus_type" => "8", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "installed", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + //驗收 + case '6': + array_push($bonus_array, [ + "bonus_type" => "9", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "acceptance", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + //安裝其他 + case '7': + array_push($bonus_array, [ + "bonus_type" => "10", #獎金名稱 + "bonus_receiver" => $sales_id, #發放人員 + "bonus_amount" => $sales_bonus, #金額 + "payment_schedul_due" => "installOther", #訂金已收款20% + "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 + ]); + break; + } - $result_array = [ - "ver" => $ver, #獎金版本 - "result_status" => "success", #計算結果 - "bonus_array" => $bonus_array #獎金水庫 - ]; + // #營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20% + // array_push($bonus_array, [ + // "bonus_type" => "營銷人員銷售獎金-訂金段", #獎金名稱 + // "bonus_receiver" => $sales_id, #發放人員 + // "bonus_amount" => round($sales_bonus), #金額 + // "payment_schedul_due" => "deposit", #訂金已收款20% + // "payment_schedul_regulation" => "訂金已收款20%,發放總獎金20%" #發放規定 + // ]); + + // #營銷人員銷售獎金水庫-----出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50% + // array_push($bonus_array, [ + // "bonus_type" => "營銷人員銷售獎金-出貨款段", #獎金名稱 + // "bonus_receiver" => $sales_id, #發放人員 + // "bonus_amount" => round($sales_bonus * 0.5), #金額 + // "payment_schedul_due" => "shipping", #訂金已收款20% + // "payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%" #發放規定 + // ]); + + // #營銷人員銷售獎金水庫-----驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30% + // array_push($bonus_array, [ + // "bonus_type" => "營銷人員銷售獎金-驗收款段", #獎金名稱 + // "bonus_receiver" => $sales_id, #發放人員 + // "bonus_amount" => round($sales_bonus * 0.3), #金額 + // "payment_schedul_due" => "acceptance", #訂金已收款20% + // "payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%" #發放規定 + // ]); + + // #區域經理提成獎金水庫-----訂金已收款100%,發放總獎金50% + // array_push($bonus_array, [ + // "bonus_type" => "區域經理提成獎金-訂金段", #獎金名稱 + // "bonus_receiver" => $region_manger_id, #發放人員 + // "bonus_amount" => round($region_manager_bonus * 0.5), #金額 + // "payment_schedul_due" => "deposit", #訂金已收款100% + // "payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定 + // ]); + + // #區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50% + // array_push($bonus_array, [ + // "bonus_type" => "區域經理提成獎金-貨到工地款段", #獎金名稱 + // "bonus_receiver" => $region_manger_id, #發放人員 + // "bonus_amount" => round($region_manager_bonus * 0.5), #金額 + // "payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100% + // "payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定 + // ]); + + $result_array = [ + "ver" => $ver, #獎金版本 + "result_status" => "success", #計算結果 + "bonus_array" => $bonus_array #獎金水庫 + ]; + } } else { array_push($bonus_array, [ "bonus_type" => "error", #獎金名稱 diff --git a/wms/bonus/elevator_new/elevator_new_deal_bonus_v2_0_examination.php b/wms/bonus/elevator_new/elevator_new_deal_bonus_v2_0_examination.php index 600d4071..ba98e25f 100644 --- a/wms/bonus/elevator_new/elevator_new_deal_bonus_v2_0_examination.php +++ b/wms/bonus/elevator_new/elevator_new_deal_bonus_v2_0_examination.php @@ -34,10 +34,31 @@ result_array[ */ -require_once("elevator_new_deal_bonus_v2_0.php"); +require_once("elevator_new_deal_bonus_v2_0_1.php"); #$ver, $contract_type, $elevator_type, $elevator_list_price, $elevator_knockdown_price, $sales_id, $region_manger_id - +$pay_kind_arr = [ + [ + "pay_kind" => '1', + "pay_scale" => 20, + "pay_amount" => 0 + ], + [ + "pay_kind" => '3', + "pay_scale" => 50, + "pay_amount" => 0 + ], + [ + "pay_kind" => '5', + "pay_scale" => 20, + "pay_amount" => 0 + ], + [ + "pay_kind" => '6', + "pay_scale" => 10, + "pay_amount" => 0 + ] +]; #獎金測試 $examination_array = [ #錯誤版本 @@ -55,50 +76,59 @@ $examination_array = [ ["2.0", "strategy_customer", "dumbwaiter", 1000000, 900000, "M0001", "M0003"], #戰略客戶、小電梯、銷售點數90% ["2.0", "strategy_customer", "dumbwaiter", 1000000, 720000, "M0001", "M0003"], #戰略客戶、小電梯、銷售點數75% ["2.0", "strategy_customer", "dumbwaiter", 1000000, 600000, "M0001", "M0003"], #戰略客戶、小電梯、銷售點數60% - ["2.0", "strategy_customer", "flatbase", 1000000, 1000000, "M0001", "M0003"], #戰略客戶、平台梯、銷售點數100% - ["2.0", "strategy_customer", "flatbase", 1000000, 900000, "M0001", "M0003"], #戰略客戶、平台梯、銷售點數90% - ["2.0", "strategy_customer", "flatbase", 1000000, 720000, "M0001", "M0003"], #戰略客戶、平台梯、銷售點數75% - ["2.0", "strategy_customer", "flatbase", 1000000, 600000, "M0001", "M0003"], #戰略客戶、平台梯、銷售點數60% - ["2.0", "strategy_customer", "positive_drive", 1000000, 1000000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數100% - ["2.0", "strategy_customer", "positive_drive", 1000000, 900000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數90% - ["2.0", "strategy_customer", "positive_drive", 1000000, 720000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數75% - ["2.0", "strategy_customer", "positive_drive", 1000000, 600000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數60% + // ["2.0", "strategy_customer", "flatbase", 1000000, 1000000, "M0001", "M0003"], #戰略客戶、平台梯、銷售點數100% + // ["2.0", "strategy_customer", "flatbase", 1000000, 900000, "M0001", "M0003"], #戰略客戶、平台梯、銷售點數90% + // ["2.0", "strategy_customer", "flatbase", 1000000, 720000, "M0001", "M0003"], #戰略客戶、平台梯、銷售點數75% + // ["2.0", "strategy_customer", "flatbase", 1000000, 600000, "M0001", "M0003"], #戰略客戶、平台梯、銷售點數60% + // ["2.0", "strategy_customer", "positive_drive", 1000000, 1000000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數100% + // ["2.0", "strategy_customer", "positive_drive", 1000000, 900000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數90% + // ["2.0", "strategy_customer", "positive_drive", 1000000, 720000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數75% + // ["2.0", "strategy_customer", "positive_drive", 1000000, 600000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數60% - #一般客戶(general_customer) - ["2.0", "general_customer", "passenger", 1000000, 1000000, "M0001", "M0003"], #一般客戶、客梯、銷售點數100% - ["2.0", "general_customer", "passenger", 1000000, 900000, "M0001", "M0003"], #一般客戶、客梯、銷售點數90% - ["2.0", "general_customer", "passenger", 1000000, 750000, "M0001", "M0003"], #一般客戶、客梯、銷售點數75% - ["2.0", "general_customer", "passenger", 1000000, 600000, "M0001", "M0003"], #一般客戶、客梯、銷售點數60% - ["2.0", "general_customer", "cargo", 1000000, 1000000, "M0001", "M0003"], #一般客戶、貨梯、銷售點數100% - ["2.0", "general_customer", "cargo", 1000000, 900000, "M0001", "M0003"], #一般客戶、貨梯、銷售點數90% - ["2.0", "general_customer", "cargo", 1000000, 750000, "M0001", "M0003"], #一般客戶、貨梯、銷售點數75% - ["2.0", "general_customer", "cargo", 1000000, 600000, "M0001", "M0003"], #一般客戶、貨梯、銷售點數60% - ["2.0", "general_customer", "dumbwaiter", 1000000, 1000000, "M0001", "M0003"], #一般客戶、小電梯、銷售點數100% - ["2.0", "general_customer", "dumbwaiter", 1000000, 900000, "M0001", "M0003"], #一般客戶、小電梯、銷售點數90% - ["2.0", "general_customer", "dumbwaiter", 1000000, 720000, "M0001", "M0003"], #一般客戶、小電梯、銷售點數75% - ["2.0", "general_customer", "dumbwaiter", 1000000, 600000, "M0001", "M0003"], #一般客戶、小電梯、銷售點數60% - ["2.0", "general_customer", "flatbase", 1000000, 1000000, "M0001", "M0003"], #一般客戶、平台梯、銷售點數100% - ["2.0", "general_customer", "flatbase", 1000000, 900000, "M0001", "M0003"], #一般客戶、平台梯、銷售點數90% - ["2.0", "general_customer", "flatbase", 1000000, 720000, "M0001", "M0003"], #一般客戶、平台梯、銷售點數75% - ["2.0", "general_customer", "flatbase", 1000000, 600000, "M0001", "M0003"], #一般客戶、平台梯、銷售點數60% - ["2.0", "general_customer", "positive_drive", 1000000, 1000000, "M0001", "M0003"], #一般客戶、強驅、銷售點數100% - ["2.0", "general_customer", "positive_drive", 1000000, 900000, "M0001", "M0003"], #一般客戶、強驅、銷售點數90% - ["2.0", "general_customer", "positive_drive", 1000000, 720000, "M0001", "M0003"], #一般客戶、強驅、銷售點數75% - ["2.0", "general_customer", "positive_drive", 1000000, 600000, "M0001", "M0003"] #一般客戶、強驅、銷售點數60% + // #一般客戶(general_customer) + // ["2.0", "general_customer", "passenger", 1000000, 1000000, "M0001", "M0003"], #一般客戶、客梯、銷售點數100% + // ["2.0", "general_customer", "passenger", 1000000, 900000, "M0001", "M0003"], #一般客戶、客梯、銷售點數90% + // ["2.0", "general_customer", "passenger", 1000000, 750000, "M0001", "M0003"], #一般客戶、客梯、銷售點數75% + // ["2.0", "general_customer", "passenger", 1000000, 600000, "M0001", "M0003"], #一般客戶、客梯、銷售點數60% + // ["2.0", "general_customer", "cargo", 1000000, 1000000, "M0001", "M0003"], #一般客戶、貨梯、銷售點數100% + // ["2.0", "general_customer", "cargo", 1000000, 900000, "M0001", "M0003"], #一般客戶、貨梯、銷售點數90% + // ["2.0", "general_customer", "cargo", 1000000, 750000, "M0001", "M0003"], #一般客戶、貨梯、銷售點數75% + // ["2.0", "general_customer", "cargo", 1000000, 600000, "M0001", "M0003"], #一般客戶、貨梯、銷售點數60% + // ["2.0", "general_customer", "dumbwaiter", 1000000, 1000000, "M0001", "M0003"], #一般客戶、小電梯、銷售點數100% + // ["2.0", "general_customer", "dumbwaiter", 1000000, 900000, "M0001", "M0003"], #一般客戶、小電梯、銷售點數90% + // ["2.0", "general_customer", "dumbwaiter", 1000000, 720000, "M0001", "M0003"], #一般客戶、小電梯、銷售點數75% + // ["2.0", "general_customer", "dumbwaiter", 1000000, 600000, "M0001", "M0003"], #一般客戶、小電梯、銷售點數60% + // ["2.0", "general_customer", "flatbase", 1000000, 1000000, "M0001", "M0003"], #一般客戶、平台梯、銷售點數100% + // ["2.0", "general_customer", "flatbase", 1000000, 900000, "M0001", "M0003"], #一般客戶、平台梯、銷售點數90% + // ["2.0", "general_customer", "flatbase", 1000000, 720000, "M0001", "M0003"], #一般客戶、平台梯、銷售點數75% + // ["2.0", "general_customer", "flatbase", 1000000, 600000, "M0001", "M0003"], #一般客戶、平台梯、銷售點數60% + // ["2.0", "general_customer", "positive_drive", 1000000, 1000000, "M0001", "M0003"], #一般客戶、強驅、銷售點數100% + // ["2.0", "general_customer", "positive_drive", 1000000, 900000, "M0001", "M0003"], #一般客戶、強驅、銷售點數90% + // ["2.0", "general_customer", "positive_drive", 1000000, 720000, "M0001", "M0003"], #一般客戶、強驅、銷售點數75% + // ["2.0", "general_customer", "positive_drive", 1000000, 600000, "M0001", "M0003"] #一般客戶、強驅、銷售點數60% ]; for ($i = 0; $i < count($examination_array); $i++) { + $arr = []; + foreach ($pay_kind_arr as $key => $pay_kind) { + $pay_kind['pay_amount'] = $examination_array[$i][4] * $pay_kind['pay_scale'] / 100; + array_push($arr, $pay_kind); + } $result = elevator_new_deal_bonus_v2_0( $examination_array[$i][0], $examination_array[$i][1], $examination_array[$i][2], $examination_array[$i][3], $examination_array[$i][4], + $arr, $examination_array[$i][5], $examination_array[$i][6] ); + echo "
";
+	print_r($result);
+	echo "
"; $customer = [ 'strategy_customer' => '戰略客戶', 'general_customer' => '一般客戶' diff --git a/wms/contract/api/getContractData.php b/wms/contract/api/getContractData.php index 60519045..9624bb51 100644 --- a/wms/contract/api/getContractData.php +++ b/wms/contract/api/getContractData.php @@ -91,10 +91,10 @@ if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['cont $pay_arr['equipment_total'] += $pay['pay_amount']; if ($pay['pay_scale'] > 0) { $elevotor_pay_detail = [ - 'kind' => $pay['pay_kind'], + 'pay_kind' => $pay['pay_kind'], 'pay_scale' => $pay['pay_scale'], 'pay_period' => $pay['pay_period'], - 'amount' => $pay['pay_amount'] + 'pay_amount' => $pay['pay_amount'] ]; // $elevotor_pay_detail['pay_scale'] = $pay['pay_scale']; // $pay_arr['elevotor_pay_detail']['kind'] = $pay['pay_kind']; @@ -108,18 +108,12 @@ if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['cont if ($pay['pay_scale'] > 0) { $a = $pay['pay_kind']; $elevotor_pay_detail = [ - 'kind' => "$a", + 'pay_kind' => "$a", 'pay_scale' => $pay['pay_scale'], 'pay_period' => $pay['pay_period'], - 'amount' => $pay['pay_amount'] + 'pay_amount' => $pay['pay_amount'] ]; array_push($pay_arr['elevotor_pay_detail'], $elevotor_pay_detail); - - // $elevotor_pay_detail[] = $pay['pay_kind']; - // $pay_arr['elevotor_pay_detail']['kind'] = $pay['pay_kind']; - // $pay_arr['elevotor_pay_detail']['pay_scale'] = $pay['pay_scale']; - // $pay_arr['elevotor_pay_detail']['pay_period'] = $pay['pay_period']; - // $pay_arr['elevotor_pay_detail']['amount'] = $pay['pay_amount']; } } } @@ -212,6 +206,38 @@ if (isset($_GET['contractno']) && $_GET['contractno'] != '' && isset($_GET['cont } } + +if (isset($_GET['contract_no']) && $_GET['contract_no'] != '' && isset($_GET['contracttype']) && $_GET['contracttype'] == 't') { + $contract_no = $_GET['contract_no']; + try { + $sql = "SELECT * FROM pricereview_main AS a + WHERE a.kind='汰改' AND a.contract_no = :contract_no AND a.status='YY' + "; + $stmt = $conn->prepare($sql); + $stmt->bindParam(':contract_no', $contract_no); + $stmt->execute(); + $contract = $stmt->fetch(PDO::FETCH_ASSOC); + $id = $contract['id']; + + + $sql = "SELECT * FROM pricerview_pay WHERE mid =:id"; + $stmt = $conn->prepare($sql); + $stmt->bindParam(':id', $id); + $stmt->execute(); + $result = $stmt->fetch(PDO::FETCH_ASSOC); + $pay_kind = []; + foreach ($result as $result) { + $pay_kind[] = $result; + } + $contract['pay_kind'] = $pay_kind; + echo $contract; + header('Content-Type: application/json'); + } catch (PDOException $e) { + die("ERROR!!!: " . $e->getMessage()); + } +} + + if (!empty($_GET['contracttype']) && $_GET['contracttype'] == 'accountManger' && !empty($_GET['salesman'])) { try { $salesman = $_GET['salesman']; diff --git a/wms/contract/api/getFacilityNo.php b/wms/contract/api/getFacilityNo.php index b4d0928f..044d42cd 100644 --- a/wms/contract/api/getFacilityNo.php +++ b/wms/contract/api/getFacilityNo.php @@ -49,6 +49,21 @@ class CreateFacilityNo } } + function connectionT8DB() + { + try { + $connT8 = new PDO("sqlsrv:Server=220.130.203.251;Database=T8TEST", "M0225", "IFFBU1E="); + if ($connT8) { + $connT8->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + } + // $connT8->exec('SET CHARACTER SET utf8mb4'); + return $connT8; + //如果連接錯誤,將抛出一個PDOException異常對象 + } catch (PDOException $e) { + //如果連結資料庫失敗則顯示錯誤訊並停止本頁的工作 + die("ERROR!!!: " . $e->getMessage()); + } + } /** * 結束資料庫連線 */ @@ -381,11 +396,16 @@ class CreateFacilityNo function checkFacilityRepeatStatus($facility_no) { + include_once('../conn.php'); + // worksite wipwholestatus // 檢查 substring 後五碼 if (gettype($facility_no) == "string") { $pdo = $this->connectionDB(); $pdo->exec('SET CHARACTER SET utf8mb4'); + $connT8 = $this->connectionDB(); + // $connT8->exec('SET CHARACTER SET utf8mb4'); + $sth = $pdo->prepare('SELECT * FROM `worksite` WHERE `facilityno` = ?'); $sth->bindValue(1, $facility_no); $sth->execute(); @@ -393,29 +413,49 @@ class CreateFacilityNo return true; } $facility_no = substr($facility_no, -5); - echo $facility_no; $pdo = $this->connectionDB(); $pdo->exec('SET CHARACTER SET utf8mb4'); - $sth = $pdo->prepare("SELECT * FROM `wipwholestatus` WHERE `facilityno` LIKE '%?'"); + $sth = $pdo->prepare("SELECT * FROM `wipwholestatus` WHERE `facilityno` LIKE ? "); $sth->bindValue(1, '%' . $facility_no . '%'); $sth->execute(); if ($sth->rowCount() == 0) { return true; } + $sql = "SELECT * FROM comMaterial WHERE MaterialId like '%$facility_no%'"; + $stmt = $connT8->prepare($sql); + $stmt->execute(); + $count = $stmt->rowCount(); + echo $count; + if ($count == 0) { + return true; + } + + return false; } if (gettype($facility_no) == "array") { $pdo = $this->connectionDB(); $pdo->exec('SET CHARACTER SET utf8mb4'); + $connT8 = $this->connectionT8DB(); + // $connT8->exec('SET CHARACTER SET utf8mb4'); $status = true; foreach ($facility_no as $row) { $sth = $pdo->prepare('SELECT * FROM `worksite` WHERE `facilityno` = ?'); $sth->bindValue(1, $row); $sth->execute(); - if ($sth->rowCount() !== 0) + if ($sth->rowCount() !== 0) { $status = false; - + } + $sql = "SELECT * FROM comMaterial WHERE MaterialId like '%$row%' "; + echo $sql; + $stmt = $connT8->prepare($sql); + $stmt->execute(); + $count = $stmt->rowCount(); + echo $count; + if ($count != 0) { + $status = false; + } $row = substr($row, -5); $pdo = $this->connectionDB(); $pdo->exec('SET CHARACTER SET utf8mb4'); diff --git a/wms/contract/api/newElevatorBonus.php b/wms/contract/api/newElevatorBonus.php new file mode 100644 index 00000000..1dc4f1a0 --- /dev/null +++ b/wms/contract/api/newElevatorBonus.php @@ -0,0 +1,162 @@ + 'passenger', //小機房 + 'MAM200' => 'passenger', //無機房 + 'MAH100' => 'dumbwaiter', //小電梯 + 'MAQ100' => 'positive_drive', //強趨梯 + 'MAF100' => 'cargo', //貨梯 + 'MAP100' => 'flatbase', // 平台踢 + ]; + $contractType = [ + '1' => 'strategy_customer', + '2' => 'general_customer' + ]; + $signing_date = $data['signing_date']; + $bonus_v1_0_date = '2024-01-02'; + $bonus_v2_0_date = '2024-01-03'; + $contract_type = $data['contract_type']; + $total = $data['price_total']; + $type = $contractType[$contract_type]; //戰略客戶 or 一般客戶 + // $elevator_knockdown_price = $data['price_total']; //受價總額 + $elevators = json_decode($data['elevators_detail_arr'], true); + $contract_no = $data['contractno']; + $salesman = $data['salesman']; + $manager = $data['manager']; + $contract_kind = 1; + $pay_arr = !empty($data['pay_arr']) ? json_decode($data['pay_arr'], true) : []; //電梯 + $create_id = $data['user_id']; + $create_at = date("Y-m-d H:i:s"); + $status = 1; + + + + + + $result_bonus = []; + $result_bonus_arr = []; + if ($signing_date <= $bonus_v1_0_date) { + $ver = '1.0'; + foreach ($elevators as $key => $elevator) { + $other_price = !empty($elevator['option_other_price']) ? $elevator['option_other_price'] : 0; + $elevator_knockdown_price = $elevator['elevator_price']; // 單台電梯售價 + $elevator_list_price = $other_price + $elevator['option_price'] + $elevator['elevator_price']; //牌價 + $result_bonus = elevator_new_deal_bonus_v1_0($ver, $type, $pay_arr['elevotor_pay_detail'], $salesman, $manager); + $facility_no = $facilityno[$key]; + $bonus_json = [ + 'contract_type' => $type, + 'total' => $elevator_list_price, + 'fee_per_st' => $elevator_knockdown_price + ]; + echo "
";
+                print_r($result_bonus);
+                echo "
"; + if (!empty($result_bonus)) { + if ($result_bonus['result_status'] != "error") { + foreach ($result_bonus['bonus_array'] as $i => $result) { + // $bonus_type = explode('-', $result['bonus_type']); + $pay_man_type = $result['bonus_type']; //發放類別 + // $bonus_kind = $bonus_type[1]; + $amount = round($result['bonus_amount']); //獎金水庫 + $bonus_receiver = $result['bonus_receiver']; //發放人員 + $bonus_json['payment_schedul_due'] = $result['payment_schedul_due']; + $bonus_json['payment_schedul_regulation'] = $result['payment_schedul_regulation']; + $bonus_json['bonus_kind'] = $result['payment_schedul_due']; + $a = json_encode($bonus_json, JSON_UNESCAPED_UNICODE); + $sql = "INSERT INTO bonus + (bonus_type,bonus_verson,contract_no,contract_type,facility_no,amount,receiver,status,bonus_json,create_id,create_at) VALUES + ($pay_man_type,'$ver','$contract_no',$contract_kind,'$facility_no',$amount,'$bonus_receiver',$status,'$a','$create_id','$create_at') + "; + $stmt = $conn->prepare($sql); + $stmt->execute(); + } + } else { + $status = 0; + } + } else { + $status = 0; + } + } + + if ($status == 0) { + $response = [ + "status" => "2", + "data" => "create_bonus_error" + ]; + } else { + $response = [ + "status" => "1", + "data" => "Success" + ]; + } + return $response; + } else if ($signing_date >= $bonus_v2_0_date) { + $ver = '2.0'; + foreach ($elevators as $key => $elevator) { + $option_other_price = !empty($elevator['option_other_price']) ? intval($elevator['option_other_price']) : 0; + $elevator_type = $dailyNecessities[$elevator['spec']]; + $elevator_list_price = $option_other_price + $elevator['option_price'] + $elevator['elevator_price']; + $elevator_knockdown_price = $elevator['elevator_price']; + $commission_fee = $elevator['commission_fee']; + $result_bonus = elevator_new_deal_bonus_v2_0( + $ver, + $type, + $elevator_type, + $elevator_list_price, + $elevator_knockdown_price, + $pay_arr['elevotor_pay_detail'], + $salesman, + $manager + ); + $facility_no = $facilityno[$key]; + $bonus_json = [ + 'contract_type' => $type, + 'total' => $elevator_list_price, + 'fee_per_st' => $elevator_knockdown_price + ]; + if (!empty($result_bonus)) { + if ($result_bonus['result_status'] != "error") { + foreach ($result_bonus['bonus_array'] as $i => $result) { + // $bonus_type = explode('-', $result['bonus_type']); + $pay_man_type = $result['bonus_type']; //發放類別 + $amount = $result['bonus_amount']; //獎金水庫 + $bonus_receiver = $result['bonus_receiver']; //發放人員 + $bonus_json['payment_schedul_due'] = $result['payment_schedul_due']; + $bonus_json['payment_schedul_regulation'] = $result['payment_schedul_regulation']; + $bonus_json['bonus_kind'] = $result['payment_schedul_due']; + $a = json_encode($bonus_json, JSON_UNESCAPED_UNICODE); + $sql = "INSERT INTO bonus + (bonus_type,bonus_verson,contract_no,contract_type,facility_no,amount,receiver,status,bonus_json,create_id,create_at) VALUES + ($pay_man_type,'$ver','$contract_no',$contract_kind,'$facility_no',$amount,'$bonus_receiver',$status,'$a','$create_id','$create_at') + "; + $stmt = $conn->prepare($sql); + $stmt->execute(); + } + } else { + $status = 0; + } + } else { + $status = 0; + } + } + if ($status == 0) { + $response = [ + "status" => "2", + "data" => "create_bonus_error" + ]; + } else { + $response = [ + "status" => "1", + "data" => "Success" + ]; + } + } + return $response; + } catch (PDOException $e) { + header("HTTP/1.1 500 Internal Server Error"); + die('Error!:' . $e->getMessage()); + } +} diff --git a/wms/contract/api/newElevatorT8.php b/wms/contract/api/newElevatorT8.php new file mode 100644 index 00000000..1e06dab8 --- /dev/null +++ b/wms/contract/api/newElevatorT8.php @@ -0,0 +1,369 @@ + '簽約', + // '2' => '二次款', + // '3' => '貨抵工地', + // '4' => '材料其他', + // '5' => '試車完工', //安裝完畢 + // '6' => '交車' //交車 + // ]; + + $pay_kind = [ + '1' => '簽約', + '2' => '二次款', + '3' => '貨抵工地', + '4' => '材料其他', + '5' => '試車完工', //安裝完畢 + '6' => '交車' //交車 + ]; + + $sql = "SELECT * FROM comCustomer + WHERE BizPartnerId = :BizPartnerId + "; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':BizPartnerId', $contractno); + $stmt->execute(); + $result = $stmt->fetch(PDO::FETCH_ASSOC); + + // 新增客戶 table + if (empty($result)) { + // 若 客戶資料為空,新增一筆到 comCustomer + // 新增客戶資料 + + $sql = "INSERT INTO comBusinessPartner + (BizPartnerId,BizPartnerName,BusinessAttr,CountryId,WorkTelNo,BizToDate,TaxNo,EnterpriseName,ContactAddress,CreatorId,CreateTime,BizPartnerTypeId) + VALUES(:BizPartnerId,:BizPartnerName,1,'TW',:WorkTelNo,99999999,:TaxNo,:EnterpriseName,:ContactAddress,:CreatorId,:CreateTime,'10')"; + // $sql = "INSERT INTO comBusinessPartner + // (BizPartnerId,BizPartnerName,BusinessAttr,CountryId,WorkTelNo,BizToDate,TaxNo,EnterpriseName,ContactAddress,CreatorId,CreateTime,BizPartnerTypeId) + // VALUES('$contractno','$partyA',1,'TW','$phone',99999999,'$vat', '$partyA','$partyAaddress','$user_id',$createTime,'10')"; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':BizPartnerId', $contractno); + $stmt->bindParam(':BizPartnerName', $partyA); //客戶名稱 + $stmt->bindParam(':WorkTelNo', $phone); + $stmt->bindParam(':TaxNo', $vat); + $stmt->bindParam(':EnterpriseName', $partyA); //企業名稱 + $stmt->bindParam(':ContactAddress', $partyAaddress); + $stmt->bindParam(':CreatorId', $user_id); + $stmt->bindParam(':CreateTime', $createTime); + $stmt->execute(); + + + $sql = "INSERT INTO comCustomer + (OrgId,BizPartnerTypeId,ConditionId,CurrId,BizPartnerId,PersonId,CreatorId,IsInUsed,InvoiceAddress,CreateTime,InvoiceId)VALUES + ('1000','10','0008','TWD',:BizPartnerId,:PersonId,:CreatorId,1,:InvoiceAddress,:CreateTime,'35')"; + // $sql = "INSERT INTO comCustomer + // (OrgId,BizPartnerTypeId,CurrId,BizPartnerId,PersonId,CreatorId,IsInUsed,InvoiceAddress,CreateTime,InvoiceId) + // VALUES('1000','10','TWD','$contractno','$salesman','$user_id',1,'$partyAaddress','$createTime','35')"; + $stmt = $connT8->prepare($sql); + + $stmt->bindParam(':BizPartnerId', $contractno); + $stmt->bindParam(':PersonId', $salesman); + $stmt->bindParam(':CreatorId', $user_id); + $stmt->bindParam(':InvoiceAddress', $partyAaddress); + $stmt->bindParam(':CreateTime', $createTime); + $stmt->execute(); + exit(); + } else { + // 若客戶資料不為空,更新該客戶資訊。 + $sql = "UPDATE comCustomer SET + PersonId=:PersonId, + ConditionId='0008', + CurrId='TWD', + InvoiceAddress=:InvoiceAddress, + LastOperatorId=:LastOperatorId, + LastOperateTime=:LastOperateTime + WHERE BizPartnerId=:BizPartnerId + "; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':PersonId', $salesman); + $stmt->bindParam(':InvoiceAddress', $partyAaddress); + $stmt->bindParam(':LastOperatorId', $user_id); + $stmt->bindParam(':LastOperateTime', $createTime); + $stmt->bindParam(':BizPartnerId', $contractno); + $stmt->execute(); + + + $sql = "UPDATE comBusinessPartner SET + BizPartnerName=:BizPartnerName, + WorkTelNo=:WorkTelNo, + TaxNo=:TaxNo, + EnterpriseName=:EnterpriseName, + ContactAddress=:ContactAddress, + LastOperatorId=:LastOperatorId, + LastOperateTime=:LastOperateTime + WHERE BizPartnerId = :BizPartnerId + "; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':BizPartnerName', $partyA); + $stmt->bindParam(':WorkTelNo', $phone); + $stmt->bindParam(':TaxNo', $vat); + $stmt->bindParam(':EnterpriseName', $partyA); + $stmt->bindParam(':ContactAddress', $partyAaddress); + // $stmt->bindParam(':EMail', $email); + $stmt->bindParam(':LastOperatorId', $user_id); + $stmt->bindParam(':LastOperateTime', $createTime); + $stmt->bindParam(':BizPartnerId', $contractno); + $stmt->execute(); + } + + $sql = "SELECT * FROM comProject WHERE ProjectId = :ProjectId"; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':ProjectId', $contractno); + $stmt->execute(); + $resultProject = $stmt->fetchAll(PDO::FETCH_ASSOC); + if (empty($resultProject)) { + //新增於 comProject。合約 table + $sql = "INSERT INTO comProject(ProjectId,ProjectName,TypeId,CreateTime,CreatorId,IsInUsed) + VALUES(:ProjectId,:ProjectName,'C0',:CreateTime,:CreatorId,1)"; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':ProjectId', $contractno); + $stmt->bindParam(':ProjectName', $partyA); + $stmt->bindParam(':CreateTime', $createTime); + $stmt->bindParam(':CreatorId', $user_id); + $stmt->execute(); + } + $sql = "SELECT * FROM salSalesOrder WHERE BillNo = :BillNo"; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':BillNo', $contractno); + $contractT8 = $stmt->fetch(PDO::FETCH_ASSOC); + if (empty($contractT8)) { + + foreach ($elevators as $index => $elevator) { + + $count = 1; + // 產品集成維護 + $facility_no = $facilityno[$index]; + $MaterialName = "$partyA($facility_no)"; + $contract_arrival_a = $elevator['contract_arrival_date']; + + $sql = "SELECT * FROM comMaterial WHERE MaterialId = '$facility_no'"; + $stmt = $connT8->prepare($sql); + $stmt->execute(); + $MaterialisIt = $stmt->fetch(PDO::FETCH_ASSOC); + if (empty($MaterialisIt)) { + $sql = "INSERT INTO comMaterial + (FOrgid,MaterialId,MaterialTypeId,MaterialCategoryId,CreatorId,CreateTime,IsInUsed) + VALUES ('1000',:MaterialId,'10','A',:CreatorId,:CreateTime,1)"; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':MaterialId', $facility_no); + $stmt->bindParam(':CreatorId', $user_id); + $stmt->bindParam(':CreateTime', $createTime); + $stmt->execute(); + $sql = "INSERT INTO comMaterialGroup + (MaterialTypeId,MaterialId,MaterialName,MaterialCategoryId,IsInUsed,UnitId,CreatorId,CreateTime) + VALUES ('10',:MaterialId,:MaterialName,'A',1,'SET',:CreatorId,:CreateTime)"; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':MaterialId', $facility_no); + $stmt->bindParam(':MaterialName', $MaterialName); + $stmt->bindParam(':CreatorId', $user_id); + $stmt->bindParam(':CreateTime', $createTime); + $stmt->execute(); + + $sql = "INSERT INTO comMaterialPurchases + (Orgid,MaterialTypeId,MaterialId,CurrId,SUnitId,TaxId,CreatorId,CreateTime) + VALUES ('1000','10',:MaterialId,'TWD','SET','ST005',:CreatorId,:CreateTime)"; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':MaterialId', $facility_no); + $stmt->bindParam(':CreatorId', $user_id); + $stmt->bindParam(':CreateTime', $createTime); + $stmt->execute(); + + $sql = "INSERT INTO plsMaterialPlanData + (PlanRangeId,MaterialId,FOrgId,MaterialTypeId,CreatorId,CreateTime,DefaultDemandOrg) VALUES + (1000,:MaterialId,1000,10,:CreatorId,:CreateTime,1000) + "; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':MaterialId', $facility_no); + $stmt->bindParam(':CreatorId', $user_id); + $stmt->bindParam(':CreateTime', $createTime); + $stmt->execute(); + + $sql = "INSERT INTO comMaterialSales + (OrgId,MAterialTypeId,MaterialId,CurrId,SUnitId,SupplyOrgId,CreatorId,CreateTime,IsInUsed) VALUES + (1000,10,:MaterialId,'TWD','SET',1000,:CreatorId,:CreateTime,1) + "; + $stmt = $connT8->prepare($sql); + $stmt->bindParam(':MaterialId', $facility_no); + $stmt->bindParam(':CreatorId', $user_id); + $stmt->bindParam(':CreateTime', $createTime); + $stmt->execute(); + } + // 階段收款資訊 + $salOrderStagePay_row = []; + $equipment_total = 0; + $install_total = 0; + $equipment_total = $pay_arr['equipment_total']; + $install_total = $pay_arr['install_total']; + $count_a = 0; + $count_month = 1; + foreach ($pay_arr['elevotor_pay_detail'] as $key => $detail) { + if ($detail['pay_kind'] == 3) { + $PlanPayDate = $contract_arrival_a; + } else if ($detail['pay_kind'] > 3) { + $PlanPayDate = date("Y-m-d", strtotime($contract_arrival_a . '+' . $count_month . ' month')); + $count_month++; + } else { + $PlanPayDate = $signing_date; + $count_a++; + if ($count_a == 1) { + $PlanPayDate = date("Y-m-d", strtotime($signing_date . '+' . $count_a . ' month')); + } + } + + $contract_arrival_date = intval(str_replace("-", '', $PlanPayDate)); //貨到工地日 + + $PayStage = $pay_kind[$detail['pay_kind']]; + $PlanPercentage = intval($detail['pay_scale']) / 100; + $rows = [ + "PayStage" => "$PayStage", //收款階段 + "PlanPercentage" => $PlanPercentage, //計劃收款比例(%) + "PlanPayAmt" => $detail['pay_amount'], //計劃收款金額 + "PlanPayDate" => $contract_arrival_date, //計劃收款日期 1.第一筆都是簽約日 + "BillNo" => "$contractno", + "RowCode" => $key + 1, + "RowNo" => $key + 1, + "UnWriteOffOAmount" => $detail['pay_amount'] //未核銷金額 + ]; + $salOrderStagePay_row[] = $rows; + } + + // 設備 + $row1 = [ + "TaxId" => "ST005", + "RequirementDate" => $signing_date, //出貨日期 + "ConsignmentDate" => $signing_date, //發貨日期 + "BillNo" => "$contractno", //合約號 + "RowCode" => $count, //全部筆數排列 + "ItemType" => 1, + "MaterialId" => "A40001", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) + "SUnitId" => "SET", + "SQuantity" => 1, //交易數量 + "SPrice" => $equipment_total, //交易價格 + "CU_MaterialId" => $facility_no + ]; + $count++; + // 安裝 + $row2 = [ + "TaxId" => "ST005", + "RequirementDate" => $signing_date, //出貨日期 + "ConsignmentDate" => $signing_date, //發貨日期 + "BillNo" => "$contractno", //合約號 + "RowCode" => $count, //全部筆數排列 + "ItemType" => 1, + "MaterialId" => "A40008", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) + "SUnitId" => "SET", + "SQuantity" => 1, //交易數量 + "SPrice" => $install_total, //交易價格 + "CU_MaterialId" => $facility_no + ]; + $count++; + // 產品(作番) + $row3 = [ + "TaxId" => "ST005", + "RequirementDate" => $signing_date, //出貨日期 + "ConsignmentDate" => $signing_date, //發貨日期 + "BillNo" => "$contractno", //合約號 + "RowCode" => $count, //全部筆數排列 + "ItemType" => 0, + "MaterialId" => "$facility_no", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) + "SUnitId" => "SET", + "SQuantity" => 1, //交易數量 + "SPrice" => 0, //交易價格 + "CU_MaterialId" => $facility_no // 歸屬作番號 + ]; + $count++; + $SubOrder_row[] = $row1; + $SubOrder_row[] = $row2; + $SubOrder_row[] = $row3; + $count++; + } + $MainSalesOrder_row = [ + "BillNo" => "$contractno", //合約單號 + "BillDate" => $signing_date, //簽約日期 + "TypeId" => "SO", // + "FOrgId" => "1000", + "OrgId" => "1000", + "ModeId" => "M", // T汰改 M新梯 + "BizPartnerId" => "$contractno", //客戶代碼 + "CurrId" => "TWD", + "CurrOAmount" => 1, + "CurrLAmount" => 1, + "PersonId" => "$salesman", //業務人員 + "DueToId" => "$contractno", //債務方 + "TradeConditionId" => "", + "TaxId" => "ST005", + "CreditorCompId" => "1001", + "CreditorOrgId" => "1000", + "CreatorId" => "$user_id" + // "CompId" => "1001", + // "CreditorCurrOAmount" => 1, + // "CreditorCurrLAmount" => 1 + ]; + $MainSalesOrder = [ + "name" => "MainSalesOrder", + 'rows' => [$MainSalesOrder_row] + ]; + $SubOrder = [ + "name" => "SubOrder", + "rows" => $SubOrder_row + ]; + $salOrderStagePay = [ + "name" => "salOrderStagePay", + "rows" => $salOrderStagePay_row + ]; + + $API_body = []; + $API_body[] = $MainSalesOrder; + $API_body[] = $SubOrder; + $API_body[] = $salOrderStagePay; + echo "
";
+        print_r(json_encode($API_body, JSON_UNESCAPED_UNICODE));
+        echo "
"; + + // $api_url = 'http://10.10.145.2:880/twWebAPI/V1/SALSALESORDER/PostERPData'; //正式區 + $api_url = "http://60.244.87.101:880/twWebAPI/V1/SALSALESORDER/PostERPData"; //測試區 + + $result = T8salIncomeApply($API_body, $api_url); + echo "
";
+        print_r($result);
+        echo "
"; + if (!empty($result) && ($result['Status'] == 'Fails' || $result['Status'] == 'Error')) { + $Error_msg = $result['ErrorMsg']; + echo ""; + exit(); + // echo $result['ErrorMsg']; + // echo ""; + } + } else { + echo '資料已新增過,請洽資訊人員'; + // exit(); + } + // $connT8->commit(); + // } catch (PDOException $e) { + // $connT8->rollback(); + // header("HTTP/1.1 500 Internal Server Error"); + // die('Error!:' . $e->getMessage()); + // } +} diff --git a/wms/contract/api/postContractData.php b/wms/contract/api/postContractData.php index 296d7144..328e5e89 100644 --- a/wms/contract/api/postContractData.php +++ b/wms/contract/api/postContractData.php @@ -1,7 +1,6 @@ makeBFacilityNo("T", $facility_arr, (int)$num); + echo json_encode($facilityno); + // exit(); // if ($user_id == 'M0225') { // echo '
';
@@ -79,7 +79,7 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
         //     exit();
         // }
         $fail_arr = [];
-        // if ($contractno === '') return $fail_arr[] = '合約號為必填';
+        if ($contractno === '') return $fail_arr[] = '合約號為必填';
         if ($total_price == '')  $fail_arr[] = '合約總價為必填';
         if ($salesman == '')  $fail_arr[] = '營業員為必填';
         if ($contract_begin_date == '')  $fail_arr[] = '合約開始時間為必填';
@@ -108,11 +108,10 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
             echo json_encode($fail_arr, JSON_UNESCAPED_UNICODE);
             exit();
         }
-        exit();
-        T8insert($_POST, $facilityno, $depId, $connT8);
-        exit();
+        // T8insert($_POST, $facilityno, $depId, $connT8);
         /// 獎金計算
         $aaa = bonusCreate($_POST, $facilityno, $conn);
+        exit();
         if (!empty($aaa) && $aaa['status'] == 2) {
             header("HTTP/1.1 422 Unprocessable Entity");
             echo $aaa['data'];
@@ -292,7 +291,7 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
             }
 
 
-            // $regular_contract_manger_id = $elevators[$idx]['regular_contract_manger_id'];
+            $regular_contract_manger_id = $elevators[$idx]['regular_contract_manger_id'];
             // $sql = "SELECT * FROM account WHERE accountid = '' ";
             $sql = "SELECT * FROM account WHERE accountid = '$maintance_manager' ";
             $stmt = $conn->prepare($sql);
@@ -306,17 +305,15 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
             //         南部 : M0077
             // 保養組長之後調整
             $mail_title = "保養計畫 : 合約號:" . $contractno . "作番號:" . $no . "-請安排此作番的保養人員";
-            $mail_content = "保養計畫 : 合約號:" . $contractno . "作番號:" . $no . "-請安排此作番的保養人員  點我";
+            $mail_content = "保養計畫 : 合約號:" . $contractno . "作番號:" . $no . "-請安排此作番的保養人員  點我";
             // exit();
             $mail->sendx(
                 $mail_title,
                 $mail_content,
                 [
-                    // [$user_id, $user_detail['email']],
+                    [$user_id, $user_detail['email']],
                     // [$maintance_manager, $maintance_manager_detail['email']],
-                    // ['M0012', 'Yingying@masada.com.tw']
-                    // [$regular_contract_manger_id, $regular_contract_manger_mail['mail']],
-                    ['M0225', 'lkmd555@masada.com.tw']
+                    // ['M0225', 'lkmd555@masada.com.tw']
                     // ['M0012', 'Yingying@masada.com.tw']
                 ],
                 "永佳捷科技"
@@ -400,10 +397,17 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
         } else {
             $files = null;
         }
-        $sql_str = "INSERT INTO contract_b_signed_back (contract_no, contract_type, company, customer_no, salesperson, contract_start_date, contract_end_date, total_price,payType, customer_phone, customer_email, repairman, contact_person, contact_address, contact_phone, contact_email, elevators_number, area, address, files_id, bonus, max_bonus, created_at, created_by,signing_date) 
-                VALUES (:contract_no, :contract_type, :company, :customer_no, :salesperson, :contract_start_date, :contract_end_date, :total_price, :payType ,:customer_phone, :customer_email, :repairman, :contact_person, :contact_address, :contact_phone, :contact_email, :elevators_number, :area, :address, :files_id, :bonus, :max_bonus, :created_at, :created_by,:signing_date)";
+        $kind = [
+            'new' => '1',
+            'free_to_charge' => '2',
+            'renew_priceissue' => '3',
+            'longcontract_m1_free_charge' => '4'
+        ];
+        $sql_str = "INSERT INTO contract_b_signed_back (contract_no,contract_kind, contract_type, company, customer_no, salesperson, contract_start_date, contract_end_date, total_price,payType, customer_phone, customer_email, maintance_manager, contact_person, contact_address, contact_phone, contact_email, elevators_number, area, address, files_id, created_at, created_by,signing_date) 
+                VALUES (:contract_no, :contract_type,:contract_kind, :company, :customer_no, :salesperson, :contract_start_date, :contract_end_date, :total_price, :payType ,:customer_phone, :customer_email, :maintance_manager, :contact_person, :contact_address, :contact_phone, :contact_email, :elevators_number, :area, :address, :files_id, :created_at, :created_by,:signing_date)";
         $stmt = $conn->prepare($sql_str);
         $stmt->bindParam(":contract_no", $contractno);
+        $stmt->bindParam(":contract_kind", $kind[$contract_type]);
         $stmt->bindParam(":contract_type", $contract_type);
         $stmt->bindParam(":company", $company);
         $stmt->bindParam(":customer_no", $customer_no);
@@ -413,8 +417,7 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
         $stmt->bindParam(":total_price", $total_price);
         $stmt->bindParam(":customer_phone", $customer_phone);
         $stmt->bindParam(":customer_email", $customer_email);
-        $stmt->bindParam(":repairman", $repairman);
-        // $stmt->bindParam(":cycle", $cycle); // 保養頻率在做番上,這邊不 insert。
+        $stmt->bindParam(":maintance_manager", $maintance_manager);
         $stmt->bindParam(":contact_person", $contact_person);
         $stmt->bindParam(":contact_address", $contact_address);
         $stmt->bindParam(":contact_phone", $contact_phone);
@@ -423,13 +426,13 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
         $stmt->bindParam(":area", $area);
         $stmt->bindParam(":address", $address);
         $stmt->bindParam(":files_id", $files_id);
-        $stmt->bindParam(":bonus", $bonus);
-        $stmt->bindParam(":max_bonus", $max_bonus);
         $stmt->bindParam(":created_at", $created_at);
         $stmt->bindParam(":created_by", $user_id);
         $stmt->bindParam(':payType', $payType);
         $stmt->bindParam(':signing_date', $signing_date);
-
+        // $stmt->bindParam(":cycle", $cycle); // 保養頻率在做番上,這邊不 insert。
+        // $stmt->bindParam(":bonus", $bonus);
+        // $stmt->bindParam(":max_bonus", $max_bonus);
         $stmt->execute();
 
         // T8insert($_POST, $facilityno);
@@ -471,6 +474,7 @@ function T8insert($data, $facilityno, $depId, $connT8)
     $invoice = !empty($_POST['invoice']) ? $_POST['invoice'] : '';
     $invoice_address = !empty($_POST['invoice_address']) ? $_POST['invoice_address'] : '';
     $total_price = !empty($_POST['total_price']) ? intval($_POST['total_price']) : 0;
+
     // $email = !empty($data['email']) ? $data['email'] : null;
     // $partyAaddress = !empty($data['partyAaddress']) ? $data['partyAaddress'] : null; // 業務聯絡人地址
     // $num = !empty($data['num']) ? $data['num'] : null; // 電梯數量
@@ -566,6 +570,7 @@ function T8insert($data, $facilityno, $depId, $connT8)
     // echo '
';
     // print_r($elevators['maintainance']);
     // echo '
'; + foreach ($elevators as $index => $elevator) { $maintainance_type = $elevator['maintainance']; if ($maintainance_type == 'A') { @@ -581,16 +586,17 @@ function T8insert($data, $facilityno, $depId, $connT8) $stmt->bindParam(':ProjectId', $contractno); $stmt->execute(); $resultProject = $stmt->fetchAll(PDO::FETCH_ASSOC); + if (empty($resultProject)) { //新增於 comProject。合約 table - $sql = "INSERT INTO comProject(ProjectId,ProjectName,TypeId,ValidityFromDate,ValidityToDate,CreateTime,CreatorId,IsInUsed) - VALUES(:ProjectId,:ProjectName,:TypeId,:ValidityFromDate,:ValidityToDate,:CreateTime,:CreatorId,1)"; + $sql = "INSERT INTO comProject(ProjectId,ProjectName,TypeId,CreateTime,CreatorId,IsInUsed) + VALUES(:ProjectId,:ProjectName,:TypeId,:CreateTime,:CreatorId,1)"; $stmt = $connT8->prepare($sql); $stmt->bindParam(':ProjectId', $contractno); $stmt->bindParam(':ProjectName', $customer); $stmt->bindParam(':TypeId', $type); - $stmt->bindParam(':ValidityFromDate', $beginDate); - $stmt->bindParam(':ValidityToDate', $endDate); + // $stmt->bindParam(':ValidityFromDate', $beginDate); + // $stmt->bindParam(':ValidityToDate', $endDate); $stmt->bindParam(':CreateTime', $createTime); $stmt->bindParam(':CreatorId', $user_id); $stmt->execute(); @@ -598,7 +604,6 @@ function T8insert($data, $facilityno, $depId, $connT8) $row = 0; // // 新增電梯數 foreach ($elevators as $index => $elevator) { - $facility_no = $facilityno[$index]; $sql = "INSERT INTO comMaterial (FOrgid,MaterialId,MaterialTypeId,MaterialCategoryId,CreatorId,CreateTime) @@ -638,14 +643,11 @@ function T8insert($data, $facilityno, $depId, $connT8) ]; // 幾年 // $SQuantityYear = $elevator['maintain_months'] / 12; - // 單台電梯契約報價 $price_of_month = intval($elevator['sold_price']); - print_r($price_of_month); - exit; + //分幾期 () => 總共保養月 / 分期月 $SQuantitya = $elevator['maintain_months'] / $IncomeId[$payType]; $SQuantity = $IncomeId[$payType]; - $date_1 = getNext25thDate($contract_begin_date); // 依每台電梯去加入各個的付款項 @@ -673,11 +675,13 @@ function T8insert($data, $facilityno, $depId, $connT8) } } $count_rows_data = COUNT($salIncomeApplyDetail_rows); - $T8total = $price_of_month * $count_rows_data; + $T8total = $price_of_month * $elevator['maintain_months']; // echo "
";
-    // print_r($salIncomeApplyDetail_rows);
+    // print_r($T8total);
     // echo "
"; + // exit; if ($T8total != $total_price) { + echo '1'; $difference = $T8total - $total_price; $salIncomeApplyDetail_rows[$count_rows_data - 1]['SPrice'] = $salIncomeApplyDetail_rows[$count_rows_data - 1]['SPrice'] - $difference; } @@ -706,7 +710,8 @@ function T8insert($data, $facilityno, $depId, $connT8) "DeptId" => "$depId", "IsPriceWithTax" => 1, "CU_ContractStart" => intval($beginDate), - "CU_ContractEnd" => intval($endDate) + "CU_ContractEnd" => intval($endDate), + "AddrId" => "$invoice_address" ]; $salIncomeApplyMaster = [ @@ -724,14 +729,12 @@ function T8insert($data, $facilityno, $depId, $connT8) echo '
';
     print_r(json_encode($API_body));
     echo '
'; - // exit(); // $api_url = 'http://10.10.145.2:880/twWebAPI/V1/SALINCOMEAPPLY/PostERPData'; //正式區 $api_url = "http://60.244.87.101:880/twWebAPI/V1/SALINCOMEAPPLY/PostERPData"; //測試區 $result = T8salIncomeApply($API_body, $api_url); // echo '
';
     // print_r($result);
     // echo '
'; - // exit(); if ($result['Status'] == 'Error' || $result['Status'] == 'Fails') { http_response_code(404); die('Error!:' . $result['ErrorMsg']); @@ -741,143 +744,142 @@ function T8insert($data, $facilityno, $depId, $connT8) function bonusCreate($data, $facilityno, $conn) { - try { - - require_once("../../bonus/maintance/maintaenance_contract_bonus.php"); - // require_once("../../bonus/other/maintenance_longterm_contract_m1_free_charge_bonus_v2_1_1.php"); - - $elevators = !empty($_POST['elevators']) ? json_decode($_POST['elevators'], true) : []; - $contract_begin_date = !empty($data['contract_begin_date']) ? $data['contract_begin_date'] : ''; - $salesman = !empty($data['salesman']) ? $data['salesman'] : ''; - $payType = !empty($data['payType']) ? $data['payType'] : ''; - $contract_type = $data['contract_type']; //合約類別 - $status = 1; - $bonus_json = []; - $create_id = $data['user_id']; - $create_at = date('Y-m-d H:i:s'); - $contract_no = !empty($data['contractno']) ? $data['contractno'] : ''; - $contract_kind = 3; - - $payment = [ - 'A40006' => 'annually', //年繳 - 'A40007' => 'quarterly', //季繳 - 'A40004' => 'bimonthly', // 雙月繳 - 'A40005' => 'semiannually', // 半年繳 - 'A40003' => 'monthly' //月繳 - ]; + // try { + + require_once("../../bonus/maintance/maintaenance_contract_bonus.php"); + // require_once("../../bonus/other/maintenance_longterm_contract_m1_free_charge_bonus_v2_1_1.php"); + + $elevators = !empty($_POST['elevators']) ? json_decode($_POST['elevators'], true) : []; + $contract_begin_date = !empty($data['contract_begin_date']) ? $data['contract_begin_date'] : ''; + $salesman = !empty($data['salesman']) ? $data['salesman'] : ''; + $payType = !empty($data['payType']) ? $data['payType'] : ''; + $contract_type = $data['contract_type']; //合約類別 + $status = 1; + $bonus_json = []; + $create_id = $data['user_id']; + $create_at = date('Y-m-d H:i:s'); + $contract_no = !empty($data['contractno']) ? $data['contractno'] : ''; + $contract_kind = 3; + + $payment = [ + 'A40006' => 'annually', //年繳 + 'A40007' => 'quarterly', //季繳 + 'A40004' => 'bimonthly', // 雙月繳 + 'A40005' => 'semiannually', // 半年繳 + 'A40003' => 'monthly' //月繳 + ]; - $fail_arr = []; - $payDay = getNext25thDate($contract_begin_date); - foreach ($elevators as $key => $elevator) { - $facility_no = $facilityno[$key]; - $ver = $elevator['bonus_verson']; //獎金版本 - $payment_period = $payment[$payType]; //付款方式 - $elevator_list_price = !empty(($elevator['stand_price'])) ? intval($elevator['stand_price']) : ''; //牌價 - $fee_per_st = !empty($elevator['sold_price']) ? intval(round($elevator['sold_price'] / 1.05, 2)) : ''; //作翻契約金額 (不含稅) - $commission_fee = !empty($elevator['service_expense']) ? $elevator['service_expense'] : ''; //服務費(月/台) - $receivable_date_due = $payDay; //第一筆保養款項收回日 - $sales_id = $salesman; //營業人員 - $discount = $elevator['discount'] / 100; - $region_director_id = $elevator['manager']; - $regular_contract_manger_id = !empty($elevator['regular_contract_manger_id']) ? $elevator['regular_contract_manger_id'] : ''; - $maintain_months = intval($elevator['maintain_months']); - $years = $maintain_months / 12; - // echo $years; - if ($maintain_months == '') $fail_arr[] = "保養月費為必填"; - if ($fee_per_st == '') $fail_arr[] = "契約金額為必填"; - if ($elevator_list_price == '') $fail_arr[] = "牌價為必填"; - if ($region_director_id == '') $fail_arr[] = '區處長為必填'; - if ($sales_id == '') $fail_arr[] = "契約人為必填"; - - if (COUNT($fail_arr) > 0) { - return $fail_arr; - break; - } - $renew_priceissue_bonus = []; - // $years = ($maintain_months % 12) == 0 ? $maintain_months / 12 : ''; - ///////////////////////////////// - // 如果保養合約 大於一年 2.0版本 - // if (!empty($maintain_months)) { - // if ($ver == '2.1') { - // if ($maintain_months > 12 && $contract_type == 'new') { - // // 第一年為 "新簽約" - // $results = maintenance_contract_bonus_v2_1( - // $ver, - // $contract_type, - // $payment_period, - // $elevator_list_price, - // $fee_per_st, - // $commission_fee, - // $receivable_date_due, - // $sales_id, - // $region_director_id, - // $regular_contract_manger_id - // ); - // for ($i = 1; $i <= $years - 1; $i++) { - // $contract_type = 'renew_priceissue'; - // $receivable_date_due_renew = date("Y-m-d", strtotime("$receivable_date_due + $i year")); - // // 第二年以上改 "續約" - // $renew_priceissue_bonus[] = maintenance_contract_bonus_v2_1( - // $ver, - // $contract_type, - // $payment_period, - // $elevator_list_price, - // $fee_per_st, - // $commission_fee, - // $receivable_date_due_renew, - // $sales_id, - // $region_director_id, - // $regular_contract_manger_id - // ); - // } - // } else if ($maintain_months > 12 && $contract_type == 'renew_priceissue') { - // // 超過一年的 "續約" - // for ($i = 0; $i < $years; $i++) { - // $contract_type = 'renew_priceissue'; - // $renew_priceissue_bonus[] = maintenance_contract_bonus_v2_1( - // $ver, - // $contract_type, - // $payment_period, - // $elevator_list_price, - // $fee_per_st, - // $commission_fee, - // $receivable_date_due, - // $sales_id, - // $region_director_id, - // $regular_contract_manger_id - // ); - // } - // } else if ($maintain_months >= 60 && $contract_type = 'longcontract_m1_free_charge') { - // // 五年以上長約 - // $results = maintenance_longterm_contract_m1_free_charge_bonus_v2_1( - // $ver, - // $contract_type, - // $payment_period, - // $maintain_months, - // $elevator_list_price, - // $fee_per_st, - // $commission_fee, - // $receivable_date_due, - // $sales_id, - // $region_director_id, - // $regular_contract_manger_id - // ); - // } else { - // $results = maintenance_contract_bonus_v2_1( - // $ver, - // $contract_type, - // $payment_period, - // $elevator_list_price, - // $fee_per_st, - // $commission_fee, - // $receivable_date_due, - // $sales_id, - // $region_director_id, - // $regular_contract_manger_id - // ); - // } - // } else - if ($ver == '2.0') { + $fail_arr = []; + $payDay = getNext25thDate($contract_begin_date); + foreach ($elevators as $key => $elevator) { + $facility_no = $facilityno[$key]; + $ver = $elevator['bonus_verson']; //獎金版本 + $payment_period = $payment[$payType]; //付款方式 + $elevator_list_price = !empty(($elevator['stand_price'])) ? intval($elevator['stand_price']) : 0; //牌價 + $fee_per_st = !empty($elevator['sold_price']) ? intval(round($elevator['sold_price'] / 1.05, 2)) : 0; //作翻契約金額 (不含稅) + $commission_fee = !empty($elevator['service_expense']) ? intval($elevator['service_expense']) : 0; //服務費(月/台) + $receivable_date_due = $payDay; //第一筆保養款項收回日 + $sales_id = $salesman; //營業人員 + $discount = $elevator['discount'] / 100; + $region_director_id = $elevator['manager']; + $regular_contract_manger_id = !empty($elevator['regular_contract_manger_id']) ? $elevator['regular_contract_manger_id'] : ''; + $maintain_months = intval($elevator['maintain_months']); + $years = $maintain_months / 12; + // echo $years; + if ($maintain_months == '') $fail_arr[] = "保養月費為必填"; + if ($fee_per_st == '') $fail_arr[] = "契約金額為必填"; + if ($elevator_list_price == '') $fail_arr[] = "牌價為必填"; + if ($region_director_id == '') $fail_arr[] = '區處長為必填'; + if ($sales_id == '') $fail_arr[] = "契約人為必填"; + + if (COUNT($fail_arr) > 0) { + return $fail_arr; + break; + } + $renew_priceissue_bonus = []; + $years = ($maintain_months % 12) == 0 ? $maintain_months / 12 : ''; + /////////////////////////////// + // 如果保養合約 大於一年 2.0版本 + if (!empty($maintain_months)) { + if ($ver == '2.1') { + if ($maintain_months > 12 && $contract_type == 'new') { + // 第一年為 "新簽約" + $results = maintenance_contract_bonus_v2_1( + $ver, + $contract_type, + $payment_period, + $elevator_list_price, + $fee_per_st, + $commission_fee, + $receivable_date_due, + $sales_id, + $region_director_id, + $regular_contract_manger_id + ); + for ($i = 1; $i <= $years - 1; $i++) { + $contract_type = 'renew_priceissue'; + $receivable_date_due_renew = date("Y-m-d", strtotime("$receivable_date_due + $i year")); + // 第二年以上改 "續約" + $renew_priceissue_bonus[] = maintenance_contract_bonus_v2_1( + $ver, + $contract_type, + $payment_period, + $elevator_list_price, + $fee_per_st, + $commission_fee, + $receivable_date_due_renew, + $sales_id, + $region_director_id, + $regular_contract_manger_id + ); + } + } else if ($maintain_months > 12 && $contract_type == 'renew_priceissue') { + // 超過一年的 "續約" + for ($i = 0; $i < $years; $i++) { + $contract_type = 'renew_priceissue'; + $renew_priceissue_bonus[] = maintenance_contract_bonus_v2_1( + $ver, + $contract_type, + $payment_period, + $elevator_list_price, + $fee_per_st, + $commission_fee, + $receivable_date_due, + $sales_id, + $region_director_id, + $regular_contract_manger_id + ); + } + } else if ($maintain_months >= 60 && $contract_type = 'longcontract_m1_free_charge') { + // 五年以上長約 + $results = maintenance_longterm_contract_m1_free_charge_bonus_v2_1( + $ver, + $contract_type, + $payment_period, + $maintain_months, + $elevator_list_price, + $fee_per_st, + $commission_fee, + $receivable_date_due, + $sales_id, + $region_director_id, + $regular_contract_manger_id + ); + } else { + $results = maintenance_contract_bonus_v2_1( + $ver, + $contract_type, + $payment_period, + $elevator_list_price, + $fee_per_st, + $commission_fee, + $receivable_date_due, + $sales_id, + $region_director_id, + $regular_contract_manger_id + ); + } + } else if ($ver == '2.0') { $contract_years = $years > 2 ? 'above_two' : 'one'; // echo $contract_years; @@ -896,9 +898,9 @@ function bonusCreate($data, $facilityno, $conn) } // } ///////////////////////////////// - // echo "
";
-            // print_r($results);
-            // echo "
"; + echo "
";
+            print_r($results);
+            echo "
"; ///////////////////////////////// $bonus_json = [ 'contract_type' => $contract_type, @@ -943,26 +945,27 @@ function bonusCreate($data, $facilityno, $conn) $stmt->execute(); } } + $request = [ + "status" => "1", + "data" => "Success" + ]; + } else { + $request = [ + "status" => "2", + "data" => "create_bonus_error" + ]; } - $request = [ - "status" => "1", - "data" => "Success" - ]; - } else { - $request = [ - "status" => "2", - "data" => "create_bonus_error" - ]; } - // exit(); } - return $request; - // exit(); - } catch (PDOException $e) { - http_response_code(404); - echo $e->getMessage(); - die('Error!:' . $e->getMessage()); } + return $request; + // exit(); + // } catch (PDOException $e) { + // http_response_code(404); + // echo $e->getMessage(); + // die('Error!:' . $e->getMessage()); + // } + } // 計算保養開始日期的當月25號 diff --git a/wms/contract/api/postNewContractData.php b/wms/contract/api/postNewContractData.php index 359cbbb0..d52f6bb3 100644 --- a/wms/contract/api/postNewContractData.php +++ b/wms/contract/api/postNewContractData.php @@ -8,6 +8,8 @@ require_once("../conn.php"); include_once("./getFacilityNo.php"); include_once("./getComboNo.php"); include_once("./upload_chk.php"); +include_once("./newElevatorBonus.php"); +include_once("./newElevatorT8.php"); ini_set('date.timezone', 'Asia/Taipei'); @@ -33,10 +35,8 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c $area_no = $_POST['area_no']; $elevators = json_decode($_POST['elevators'], JSON_UNESCAPED_UNICODE); $elevators_detail_arr = json_decode($_POST['elevators_detail_arr'], JSON_UNESCAPED_UNICODE); - // echo "
";
-  // print_r($elevators_detail_arr);
-  // echo "
"; - // exit(); + + $files = !empty($_FILES['files']) ? $_FILES['files'] : null; $files_id = null; @@ -44,13 +44,14 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c if (empty($contractno)) $fail_arr[] = '合約號為必填'; if (empty($customer)) $fail_arr[] = '客戶名稱為必填'; if (empty($manager)) $fail_arr[] = '負責人為必填'; - // if (empty($vat)) $fail_arr[] = '統編/身分證為必填'; if (empty($case_name)) $fail_arr[] = '案名為必填'; if (empty($linkman)) $fail_arr[] = '聯絡人為必填'; if (empty($lm_tel)) $fail_arr[] = '聯絡人電話為必填'; if (empty($address)) $fail_arr[] = '地址為必填'; if (empty($salesman)) $fail_arr[] = '營業員為必填'; // if (empty($elevators_detail_arr['qc'])) $fail_arr[] = '請選擇QC或官檢'; + // if (empty($vat)) $fail_arr[] = '統編/身分證為必填'; + if (count($fail_arr) > 0) { header("HTTP/1.1 422 Unprocessable Entity"); echo json_encode($fail_arr, JSON_UNESCAPED_UNICODE); @@ -76,7 +77,10 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c echo json_encode($facilityno); // $bonus_result = BounsCount($_POST, $conn, $facilityno); - + // echo "
";
+  // print_r($bonus_result);
+  // echo "
"; + // exit(); // if (!empty($bonus_result) && $bonus_result['status'] == "2") { // $fail_arr[] = '獎金計算錯誤,請再檢查或連繫資訊人員'; // // header("HTTP/1.1 422 Unprocessable Entity"); @@ -85,7 +89,7 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c // } T8Insert($_POST, $facilityno, $connT8); - // exit(); + exit(); try { $conn->beginTransaction(); @@ -296,515 +300,7 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c } } -function T8Insert($data, $facilityno, $connT8) -{ - // try { - // 引入銷售訂單 API - require_once("./T8API.php"); - - $contractno = $data['contractno']; - $partyA = $data['customer']; - $phone = $data['lm_tel']; - $vat = $data['vat']; - $partyAaddress = $data['address']; - $user_id = $data['user_id']; - $salesman = $data['salesman']; - $createAt = date("Y-m-dH-i-s"); - - - $elevators = !empty($data['elevators_detail_arr']) ? json_decode($data['elevators_detail_arr'], true) : []; //電梯 - $pay_arr = !empty($data['pay_arr']) ? json_decode($data['pay_arr'], true) : []; //電梯 - - $createTime = str_replace('-', '', $createAt); - $signing_date = intval(str_replace("-", '', $data['signing_date'])); //簽訂日期 - // echo - // $pay_kind = [ - // '1' => '簽約', - // '2' => '二次款', - // '3' => '貨抵工地', - // '4' => '材料其他', - // '5' => '試車完工', //安裝完畢 - // '6' => '交車' //交車 - // ]; - - $pay_kind = [ - '1' => '簽約', - '2' => '二次款', - '3' => '貨抵工地', - '4' => '材料其他', - '5' => '試車完工', //安裝完畢 - '6' => '交車' //交車 - ]; - - $sql = "SELECT * FROM comCustomer - WHERE BizPartnerId = :BizPartnerId - "; - $stmt = $connT8->prepare($sql); - $stmt->bindParam(':BizPartnerId', $contractno); - $stmt->execute(); - $result = $stmt->fetch(PDO::FETCH_ASSOC); - - // 新增客戶 table - if (empty($result)) { - // 若 客戶資料為空,新增一筆到 comCustomer - // 新增客戶資料 - - $sql = "INSERT INTO comBusinessPartner - (BizPartnerId,BizPartnerName,BusinessAttr,CountryId,WorkTelNo,BizToDate,TaxNo,EnterpriseName,ContactAddress,CreatorId,CreateTime,BizPartnerTypeId) - VALUES(:BizPartnerId,:BizPartnerName,1,'TW',:WorkTelNo,99999999,:TaxNo,:EnterpriseName,:ContactAddress,:CreatorId,:CreateTime,'10')"; - // $sql = "INSERT INTO comBusinessPartner - // (BizPartnerId,BizPartnerName,BusinessAttr,CountryId,WorkTelNo,BizToDate,TaxNo,EnterpriseName,ContactAddress,CreatorId,CreateTime,BizPartnerTypeId) - // VALUES('$contractno','$partyA',1,'TW','$phone',99999999,'$vat', '$partyA','$partyAaddress','$user_id',$createTime,'10')"; - $stmt = $connT8->prepare($sql); - $stmt->bindParam(':BizPartnerId', $contractno); - $stmt->bindParam(':BizPartnerName', $partyA); //客戶名稱 - $stmt->bindParam(':WorkTelNo', $phone); - $stmt->bindParam(':TaxNo', $vat); - $stmt->bindParam(':EnterpriseName', $partyA); //企業名稱 - $stmt->bindParam(':ContactAddress', $partyAaddress); - $stmt->bindParam(':CreatorId', $user_id); - $stmt->bindParam(':CreateTime', $createTime); - $stmt->execute(); - - - $sql = "INSERT INTO comCustomer - (OrgId,BizPartnerTypeId,ConditionId,CurrId,BizPartnerId,PersonId,CreatorId,IsInUsed,InvoiceAddress,CreateTime,InvoiceId)VALUES - ('1000','10','0008','TWD',:BizPartnerId,:PersonId,:CreatorId,1,:InvoiceAddress,:CreateTime,'35')"; - // $sql = "INSERT INTO comCustomer - // (OrgId,BizPartnerTypeId,CurrId,BizPartnerId,PersonId,CreatorId,IsInUsed,InvoiceAddress,CreateTime,InvoiceId) - // VALUES('1000','10','TWD','$contractno','$salesman','$user_id',1,'$partyAaddress','$createTime','35')"; - $stmt = $connT8->prepare($sql); - - $stmt->bindParam(':BizPartnerId', $contractno); - $stmt->bindParam(':PersonId', $salesman); - $stmt->bindParam(':CreatorId', $user_id); - $stmt->bindParam(':InvoiceAddress', $partyAaddress); - $stmt->bindParam(':CreateTime', $createTime); - $stmt->execute(); - } else { - // 若客戶資料不為空,更新該客戶資訊。 - $sql = "UPDATE comCustomer SET - PersonId=:PersonId, - ConditionId='0008', - CurrId='TWD', - InvoiceAddress=:InvoiceAddress, - LastOperatorId=:LastOperatorId, - LastOperateTime=:LastOperateTime - WHERE BizPartnerId=:BizPartnerId - "; - $stmt = $connT8->prepare($sql); - $stmt->bindParam(':PersonId', $salesman); - $stmt->bindParam(':InvoiceAddress', $partyAaddress); - $stmt->bindParam(':LastOperatorId', $user_id); - $stmt->bindParam(':LastOperateTime', $createTime); - $stmt->bindParam(':BizPartnerId', $contractno); - $stmt->execute(); - - - $sql = "UPDATE comBusinessPartner SET - BizPartnerName=:BizPartnerName, - WorkTelNo=:WorkTelNo, - TaxNo=:TaxNo, - EnterpriseName=:EnterpriseName, - ContactAddress=:ContactAddress, - LastOperatorId=:LastOperatorId, - LastOperateTime=:LastOperateTime - WHERE BizPartnerId = :BizPartnerId - "; - $stmt = $connT8->prepare($sql); - $stmt->bindParam(':BizPartnerName', $partyA); - $stmt->bindParam(':WorkTelNo', $phone); - $stmt->bindParam(':TaxNo', $vat); - $stmt->bindParam(':EnterpriseName', $partyA); - $stmt->bindParam(':ContactAddress', $partyAaddress); - // $stmt->bindParam(':EMail', $email); - $stmt->bindParam(':LastOperatorId', $user_id); - $stmt->bindParam(':LastOperateTime', $createTime); - $stmt->bindParam(':BizPartnerId', $contractno); - $stmt->execute(); - } - - $sql = "SELECT * FROM comProject WHERE ProjectId = :ProjectId"; - $stmt = $connT8->prepare($sql); - $stmt->bindParam(':ProjectId', $contractno); - $stmt->execute(); - $resultProject = $stmt->fetchAll(PDO::FETCH_ASSOC); - if (empty($resultProject)) { - //新增於 comProject。合約 table - $sql = "INSERT INTO comProject(ProjectId,ProjectName,TypeId,CreateTime,CreatorId,IsInUsed) - VALUES(:ProjectId,:ProjectName,'C0',:CreateTime,:CreatorId,1)"; - $stmt = $connT8->prepare($sql); - $stmt->bindParam(':ProjectId', $contractno); - $stmt->bindParam(':ProjectName', $partyA); - $stmt->bindParam(':CreateTime', $createTime); - $stmt->bindParam(':CreatorId', $user_id); - $stmt->execute(); - } - $sql = "SELECT * FROM salSalesOrder WHERE BillNo = :BillNo"; - $stmt = $connT8->prepare($sql); - $stmt->bindParam(':BillNo', $contractno); - $contractT8 = $stmt->fetch(PDO::FETCH_ASSOC); - if (empty($contractT8)) { - - foreach ($elevators as $index => $elevator) { - - $count = 1; - // 產品集成維護 - $facility_no = $facilityno[$index]; - $MaterialName = "$partyA($facility_no)"; - $contract_arrival_a = $elevator['contract_arrival_date']; - $sql = "SELECT * FROM comMaterial WHERE MaterialId = '$facility_no'"; - $stmt = $connT8->prepare($sql); - $stmt->execute(); - $MaterialisIt = $stmt->fetch(PDO::FETCH_ASSOC); - if (empty($MaterialisIt)) { - $sql = "INSERT INTO comMaterial - (FOrgid,MaterialId,MaterialTypeId,MaterialCategoryId,CreatorId,CreateTime,IsInUsed) - VALUES ('1000',:MaterialId,'10','A',:CreatorId,:CreateTime,1)"; - $stmt = $connT8->prepare($sql); - $stmt->bindParam(':MaterialId', $facility_no); - $stmt->bindParam(':CreatorId', $user_id); - $stmt->bindParam(':CreateTime', $createTime); - $stmt->execute(); - $sql = "INSERT INTO comMaterialGroup - (MaterialTypeId,MaterialId,MaterialName,MaterialCategoryId,IsInUsed,UnitId,CreatorId,CreateTime) - VALUES ('10',:MaterialId,:MaterialName,'A',1,'SET',:CreatorId,:CreateTime)"; - $stmt = $connT8->prepare($sql); - $stmt->bindParam(':MaterialId', $facility_no); - $stmt->bindParam(':MaterialName', $MaterialName); - $stmt->bindParam(':CreatorId', $user_id); - $stmt->bindParam(':CreateTime', $createTime); - $stmt->execute(); - - $sql = "INSERT INTO comMaterialPurchases - (Orgid,MaterialTypeId,MaterialId,CurrId,SUnitId,TaxId,CreatorId,CreateTime) - VALUES ('1000','10',:MaterialId,'TWD','SET','ST005',:CreatorId,:CreateTime)"; - $stmt = $connT8->prepare($sql); - $stmt->bindParam(':MaterialId', $facility_no); - $stmt->bindParam(':CreatorId', $user_id); - $stmt->bindParam(':CreateTime', $createTime); - $stmt->execute(); - - $sql = "INSERT INTO plsMaterialPlanData - (PlanRangeId,MaterialId,FOrgId,MaterialTypeId,CreatorId,CreateTime,DefaultDemandOrg) VALUES - (1000,:MaterialId,1000,10,:CreatorId,:CreateTime,1000) - "; - $stmt = $connT8->prepare($sql); - $stmt->bindParam(':MaterialId', $facility_no); - $stmt->bindParam(':CreatorId', $user_id); - $stmt->bindParam(':CreateTime', $createTime); - $stmt->execute(); - - $sql = "INSERT INTO comMaterialSales - (OrgId,MAterialTypeId,MaterialId,CurrId,SUnitId,SupplyOrgId,CreatorId,CreateTime,IsInUsed) VALUES - (1000,10,:MaterialId,'TWD','SET',1000,:CreatorId,:CreateTime,1) - "; - $stmt = $connT8->prepare($sql); - $stmt->bindParam(':MaterialId', $facility_no); - $stmt->bindParam(':CreatorId', $user_id); - $stmt->bindParam(':CreateTime', $createTime); - $stmt->execute(); - } - // 階段收款資訊 - $salOrderStagePay_row = []; - $equipment_total = 0; - $install_total = 0; - $equipment_total = $pay_arr['equipment_total']; - $install_total = $pay_arr['install_total']; - $count_a = 0; - $count_month = 1; - foreach ($pay_arr['elevotor_pay_detail'] as $key => $detail) { - if ($detail['kind'] == 3) { - $PlanPayDate = $contract_arrival_a; - } else if ($detail['kind'] > 3) { - $PlanPayDate = date("Y-m-d", strtotime($contract_arrival_a . '+' . $count_month . ' month')); - $count_month++; - } else { - $PlanPayDate = $signing_date; - $count_a++; - if ($count_a == 1) { - $PlanPayDate = date("Y-m-d", strtotime($signing_date . '+' . $count_a . ' month')); - } - } - - $contract_arrival_date = intval(str_replace("-", '', $PlanPayDate)); //貨到工地日 - - $PayStage = $pay_kind[$detail['kind']]; - $PlanPercentage = intval($detail['pay_scale']) / 100; - $rows = [ - "PayStage" => "$PayStage", //收款階段 - "PlanPercentage" => $PlanPercentage, //計劃收款比例(%) - "PlanPayAmt" => $detail['amount'], //計劃收款金額 - "PlanPayDate" => $contract_arrival_date, //計劃收款日期 1.第一筆都是簽約日 - "BillNo" => "$contractno", - "RowCode" => $key + 1, - "RowNo" => $key + 1, - "UnWriteOffOAmount" => $detail['amount'] //未核銷金額 - ]; - $salOrderStagePay_row[] = $rows; - } - - // 設備 - $row1 = [ - "TaxId" => "ST005", - "RequirementDate" => $signing_date, //出貨日期 - "ConsignmentDate" => $signing_date, //發貨日期 - "BillNo" => "$contractno", //合約號 - "RowCode" => $count, //全部筆數排列 - "ItemType" => 1, - "MaterialId" => "A40001", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) - "SUnitId" => "SET", - "SQuantity" => 1, //交易數量 - "SPrice" => $equipment_total, //交易價格 - "CU_MaterialId" => $facility_no - ]; - $count++; - // 安裝 - $row2 = [ - "TaxId" => "ST005", - "RequirementDate" => $signing_date, //出貨日期 - "ConsignmentDate" => $signing_date, //發貨日期 - "BillNo" => "$contractno", //合約號 - "RowCode" => $count, //全部筆數排列 - "ItemType" => 1, - "MaterialId" => "A40008", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) - "SUnitId" => "SET", - "SQuantity" => 1, //交易數量 - "SPrice" => $install_total, //交易價格 - "CU_MaterialId" => $facility_no - ]; - $count++; - // 產品(作番) - $row3 = [ - "TaxId" => "ST005", - "RequirementDate" => $signing_date, //出貨日期 - "ConsignmentDate" => $signing_date, //發貨日期 - "BillNo" => "$contractno", //合約號 - "RowCode" => $count, //全部筆數排列 - "ItemType" => 0, - "MaterialId" => "$facility_no", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) - "SUnitId" => "SET", - "SQuantity" => 1, //交易數量 - "SPrice" => 0, //交易價格 - "CU_MaterialId" => $facility_no // 歸屬作番號 - ]; - $count++; - $SubOrder_row[] = $row1; - $SubOrder_row[] = $row2; - $SubOrder_row[] = $row3; - $count++; - } - $MainSalesOrder_row = [ - "BillNo" => "$contractno", //合約單號 - "BillDate" => $signing_date, //簽約日期 - "TypeId" => "SO", // - "FOrgId" => "1000", - "OrgId" => "1000", - "ModeId" => "M", // T汰改 M新梯 - "BizPartnerId" => "$contractno", //客戶代碼 - "CurrId" => "TWD", - "CurrOAmount" => 1, - "CurrLAmount" => 1, - "PersonId" => "$salesman", //業務人員 - "DueToId" => "$contractno", //債務方 - "TradeConditionId" => "", - "TaxId" => "ST005", - "CreditorCompId" => "1001", - "CreditorOrgId" => "1000", - "CreatorId" => "$user_id" - // "CompId" => "1001", - // "CreditorCurrOAmount" => 1, - // "CreditorCurrLAmount" => 1 - ]; - $MainSalesOrder = [ - "name" => "MainSalesOrder", - 'rows' => [$MainSalesOrder_row] - ]; - $SubOrder = [ - "name" => "SubOrder", - "rows" => $SubOrder_row - ]; - $salOrderStagePay = [ - "name" => "salOrderStagePay", - "rows" => $salOrderStagePay_row - ]; - - $API_body = []; - $API_body[] = $MainSalesOrder; - $API_body[] = $SubOrder; - $API_body[] = $salOrderStagePay; - echo "
";
-    print_r(json_encode($API_body, JSON_UNESCAPED_UNICODE));
-    echo "
"; - // $api_url = "https://erp.masada.com.tw:780/twWebAPI/V1/SALSALESORDER/PostERPData"; - // $api_url = "http://127.0.0.1:880/twWebAPI/V1/SALSALESORDER/PostERPData"; - $api_url = 'http://10.10.145.2:880/twWebAPI/V1/SALSALESORDER/PostERPData'; - - $result = T8salIncomeApply($API_body, $api_url); - echo "
";
-    print_r($result);
-    echo "
"; - if (!empty($result) && ($result['Status'] == 'Fails' || $result['Status'] == 'Error')) { - echo $result['ErrorMsg']; - } - } else { - echo '資料已新增過,請洽資訊人員'; - // exit(); - } - $connT8->commit(); - // } catch (PDOException $e) { - // $connT8->rollback(); - // header("HTTP/1.1 500 Internal Server Error"); - // die('Error!:' . $e->getMessage()); - // } -} - - -function BounsCount($data, $conn, $facilityno) -{ - try { - require_once("../../bonus/elevator_new/elevator_new_deal_bonus.php"); - $dailyNecessities = [ - 'MAE100' => 'passenger', //小機房 - 'MAM200' => 'passenger', //無機房 - 'MAH100' => 'dumbwaiter', //小電梯 - 'MAQ100' => 'positive_drive', //強趨梯 - 'MAF100' => 'cargo', //貨梯 - 'MAP100' => 'flatbase', // 平台踢 - ]; - $contractType = [ - '1' => 'strategy_customer', - '2' => 'general_customer' - ]; - $signing_date = $data['signing_date']; - $bonus_v1_0_date = '2024-01-02'; - $bonus_v2_0_date = '2024-01-03'; - $contract_type = $data['contract_type']; - $total = $data['price_total']; - $type = $contractType[$contract_type]; //戰略客戶 or 一般客戶 - // $elevator_knockdown_price = $data['price_total']; //受價總額 - $elevators = json_decode($data['elevators_detail_arr'], true); - $contract_no = $data['contractno']; - $salesman = $data['salesman']; - $manager = $data['manager']; - $contract_kind = 1; - $create_id = $data['user_id']; - $create_at = date("Y-m-d H:i:s"); - $status = 1; - - - - - - $result_bonus = []; - $result_bonus_arr = []; - if ($signing_date <= $bonus_v1_0_date) { - $ver = '1.0'; - foreach ($elevators as $key => $elevator) { - - $elevator_knockdown_price = $elevator['elevator_price']; // 單台電梯售價 - $elevator_list_price = $elevator['option_other_price'] + $elevator['option_price'] + $elevator['elevator_price']; //牌價 - $result_bonus = elevator_new_deal_bonus_v1_0($ver, $type, $elevator_knockdown_price, $salesman, $manager); - $facility_no = $facilityno[$key]; - $bonus_json = [ - 'contract_type' => $type, - 'total' => $elevator_list_price, - 'fee_per_st' => $elevator_knockdown_price - ]; - if (!empty($result_bonus)) { - if ($result_bonus['result_status'] != "error") { - foreach ($result_bonus['bonus_array'] as $i => $result) { - $bonus_type = explode('-', $result['bonus_type']); - $pay_man_type = $bonus_type[0]; //發放類別 - $bonus_kind = $bonus_type[1]; - $amount = $result['bonus_amount']; //獎金水庫 - $bonus_receiver = $result['bonus_receiver']; //發放人員 - $bonus_json['payment_schedul_due'] = $result['payment_schedul_due']; - $bonus_json['payment_schedul_regulation'] = $result['payment_schedul_regulation']; - $bonus_json['bonus_kind'] = $bonus_kind; - $a = json_encode($bonus_json, JSON_UNESCAPED_UNICODE); - $sql = "INSERT INTO bonus - (bonus_type,bonus_verson,contract_no,contract_type,facility_no,amount,receiver,status,bonus_json,create_id,create_at) VALUES - ($pay_man_type,'$ver','$contract_no',$contract_kind,'$facility_no',$amount,'$bonus_receiver',$status,'$a','$create_id','$create_at') - "; - $stmt = $conn->prepare($sql); - $stmt->execute(); - } - $request = [ - "status" => "1", - "data" => "Success" - ]; - return $request; - } - $request = [ - "status" => "2", - "data" => "create_bonus_error" - ]; - return $request; - } - } - } else if ($signing_date >= $bonus_v2_0_date) { - $ver = '2.0'; - foreach ($elevators as $key => $elevator) { - $option_other_price = !empty($elevator['option_other_price']) ? intval($elevator['option_other_price']) : 0; - $elevator_type = $dailyNecessities[$elevator['spec']]; - $elevator_list_price = $option_other_price + $elevator['option_price'] + $elevator['elevator_price']; - $elevator_knockdown_price = $elevator['elevator_price']; - $commission_fee = $elevator['commission_fee']; - $result_bonus = elevator_new_deal_bonus_v2_0( - $ver, - $type, - $elevator_type, - $elevator_list_price, - $elevator_knockdown_price, - $salesman, - $manager - ); - $facility_no = $facilityno[$key]; - $bonus_json = [ - 'contract_type' => $type, - 'total' => $elevator_list_price, - 'fee_per_st' => $elevator_knockdown_price - ]; - if (!empty($result_bonus)) { - if ($result_bonus['result_status'] != "error") { - foreach ($result_bonus['bonus_array'] as $i => $result) { - $bonus_type = explode('-', $result['bonus_type']); - $pay_man_type = $bonus_type[0]; //發放類別 - $bonus_kind = $bonus_type[1]; - $amount = $result['bonus_amount']; //獎金水庫 - $bonus_receiver = $result['bonus_receiver']; //發放人員 - $bonus_json['payment_schedul_due'] = $result['payment_schedul_due']; - $bonus_json['payment_schedul_regulation'] = $result['payment_schedul_regulation']; - $bonus_json['bonus_kind'] = $bonus_kind; - $a = json_encode($bonus_json, JSON_UNESCAPED_UNICODE); - $sql = "INSERT INTO bonus - (bonus_type,bonus_verson,contract_no,contract_type,facility_no,amount,receiver,status,bonus_json,create_id,create_at) VALUES - ($pay_man_type,'$ver','$contract_no',$contract_kind,'$facility_no',$amount,'$bonus_receiver',$status,'$a','$create_id','$create_at') - "; - $stmt = $conn->prepare($sql); - $stmt->execute(); - } - } - $request = [ - "status" => "1", - "data" => "Success" - ]; - } else { - $request = [ - "status" => "2", - "data" => "create_bonus_error" - ]; - } - } - } - return $request; - } catch (PDOException $e) { - header("HTTP/1.1 500 Internal Server Error"); - die('Error!:' . $e->getMessage()); - } -} function do_wws_assign1($user_id, $form_id, $flow_code, $conn) { diff --git a/wms/contract/api/test copy.json b/wms/contract/api/test copy.json index 7ef01c22..e5a503b1 100644 --- a/wms/contract/api/test copy.json +++ b/wms/contract/api/test copy.json @@ -1,43 +1,115 @@ [ { - "apply_key": "11111111", - "register_code": "B32510261185", - "elevator_brand": "1", - "elevator_kind": "E", - "spec": "MAH100", - "weight": "450", - "speed": "45.00", - "stop": "3", - "floors": "3", - "persons": "6", - "elevator_num": "0", - "useful_years": "106", - "last_check_date": "1", - "speed_governors_check_expense": "0", - "maintain_times": "1", - "is_m1_bundle": "N", - "maintainance": "B", - "maintain_months": "12", - "maintain_period": "1", - "stand_price": "1250.00", - "contract_price": "1250.00", - "sold_price": 1250, - "commission_expense": null, - "management_expense": null, - "annual_survey_expense": "0.00", - "service_expense": 0, - "cmstatus": "Y", - "updated_at": null, - "creater": null, - "created_at": "2024-02-26 15:24:23", - "discount": 100, - "latitude": "112", - "longitude": "11", - "takecertificatedate": "112", - "opendoor": "2PCO", - "useful_date": "113-01-01", - "bonus_verson": "2.0", - "manager": "M0029", - "regular_contract_manger_id": "M0054" + "name": "MainSalesOrder", + "rows": [ + { + "BillNo": "M24020076", + "BillDate": 20240306, + "TypeId": "SO", + "FOrgId": "1000", + "OrgId": "1000", + "ModeId": "M", + "BizPartnerId": "M24020076", + "CurrId": "TWD", + "CurrOAmount": 1, + "CurrLAmount": 1, + "PersonId": "M0073", + "DueToId": "M24020076", + "TradeConditionId": "", + "TaxId": "ST005", + "CreditorCompId": "1001", + "CreditorOrgId": "1000", + "CreatorId": "M0225" + } + ] + }, + { + "name": "SubOrder", + "rows": [ + { + "TaxId": "ST005", + "RequirementDate": 20240306, + "ConsignmentDate": 20240306, + "BillNo": "M24020076", + "RowCode": 1, + "ItemType": 1, + "MaterialId": "A40001", + "SUnitId": "SET", + "SQuantity": 1, + "SPrice": 910000, + "CU_MaterialId": "4MW00001" + }, + { + "TaxId": "ST005", + "RequirementDate": 20240306, + "ConsignmentDate": 20240306, + "BillNo": "M24020076", + "RowCode": 2, + "ItemType": 1, + "MaterialId": "A40008", + "SUnitId": "SET", + "SQuantity": 1, + "SPrice": 390000, + "CU_MaterialId": "4MW00001" + }, + { + "TaxId": "ST005", + "RequirementDate": 20240306, + "ConsignmentDate": 20240306, + "BillNo": "M24020076", + "RowCode": 3, + "ItemType": 0, + "MaterialId": "4MW00001", + "SUnitId": "SET", + "SQuantity": 1, + "SPrice": 0, + "CU_MaterialId": "4MW00001" + } + ] + }, + { + "name": "salOrderStagePay", + "rows": [ + { + "PayStage": "簽約", + "PlanPercentage": 0.2, + "PlanPayAmt": 260000, + "PlanPayDate": 20240406, + "BillNo": "M24020076", + "RowCode": 1, + "RowNo": 1, + "UnWriteOffOAmount": 260000 + }, + { + "PayStage": "貨抵工地", + "PlanPercentage": 0.5, + "PlanPayAmt": 650000, + "PlanPayDate": 20240306, + "BillNo": "M24020076", + "RowCode": 2, + "RowNo": 2, + "UnWriteOffOAmount": 650000 + }, + { + "PayStage": "試車完工", + "PlanPercentage": 0.2, + "PlanPayAmt": 260000, + "PlanPayDate": 20240306, + "BillNo": "M24020076", + "RowCode": 3, + "RowNo": 3, + "UnWriteOffOAmount": 260000 + }, + { + "PayStage": "交車", + "PlanPercentage": 0.1, + "PlanPayAmt": 130000, + "PlanPayDate": 20240306, + "BillNo": "M24020076", + "RowCode": 4, + "RowNo": 4, + "UnWriteOffOAmount": 130000 + } + ] } ] \ No newline at end of file diff --git a/wms/contract/conn.php b/wms/contract/conn.php index 5ac49515..3c94b8d1 100644 --- a/wms/contract/conn.php +++ b/wms/contract/conn.php @@ -34,11 +34,10 @@ try { //設定主動以警告的形式報錯 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - $connT8 = new PDO("sqlsrv:Server=220.130.203.251;Database=T8TEST", "M0225", "IFFBU1E="); // $connT8 = new PDO("sqlsrv:Server=10.10.145.2;Database=T8MASADA", "masada", "@m222222"); // $connT8 = new PDO("sqlsrv:Server=220.130.203.251;Database=T8MASADA", "masada", "@m222222"); - + $connT8 = new PDO("sqlsrv:Server=220.130.203.251;Database=T8TEST", "M0225", "IFFBU1E="); if ($connT8) { $connT8->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } diff --git a/wms/contract/contract-input.php b/wms/contract/contract-input.php index 48d61379..0c5d4eb2 100644 --- a/wms/contract/contract-input.php +++ b/wms/contract/contract-input.php @@ -119,7 +119,7 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC); 簽約日 - +

未填寫

合約開始時間 @@ -134,7 +134,7 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC); - 契約成交價 + 契約成交價(月)

未填寫

@@ -143,8 +143,8 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC); 發票抬頭 - - + + 統一編號/身分證 @@ -217,7 +217,7 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC); 保養經理 - diff --git a/wms/contract/contract-renovate-input.php b/wms/contract/contract-renovate-input.php new file mode 100644 index 00000000..44f1f5be --- /dev/null +++ b/wms/contract/contract-renovate-input.php @@ -0,0 +1,247 @@ +prepare($sql); +// $stmt->bindParam(':depart_no', $depart_no); +$stmt->execute(); +$contractSalesman = $stmt->fetchAll(PDO::FETCH_ASSOC); +// echo '
';
+// print_r($contractSalesman);
+// echo '
'; +?> + + + + + + + + + + +
+
+ +
+ + + + + + + + +
+

汰改合約入力

+
+ + + + + + +
+
+
\ No newline at end of file diff --git a/wms/contract/js/alpine.js b/wms/contract/js/alpine.js index e9d84276..f94fcb91 100644 --- a/wms/contract/js/alpine.js +++ b/wms/contract/js/alpine.js @@ -841,7 +841,7 @@ const contractNewInput = () => { this.getContractDate(); } else if (this.step == 2) { if (this.data.nums <= 0) return alert('請填寫電梯數量!') - checkInput(); + // checkInput(); this.getElevatorsData(); } else if (this.step == 3) { this.getElevatorsData(); @@ -1227,7 +1227,6 @@ const contractInput = () => { form.append('phone', this.data.phone); form.append('email', this.data.email); form.append('mworker', this.data.mworker); - // form.append('mcycle', this.data.mcycle); form.append('salesman', this.data.salesman); form.append('contract_begin_date', this.data.contract_begin_date); form.append('contract_end_date', this.data.contract_end_date); @@ -1248,6 +1247,8 @@ const contractInput = () => { form.append('contract_type', this.data.contract_type); form.append('signing_date', this.data.signing_date); form.append('maintance_manager', this.data.maintance_manager); + form.append('invoice', this.data.invoice); + form.append('invoice_address', this.data.invoice_address); // 如果有附件檔案,可以逐一加入 for (var i = 0; i < this.data.files.length; i++) { @@ -1603,5 +1604,70 @@ const contractNewApply = () => { this.data.originfiles = this.data.originfiles.filter(file => file.id != id) } + } +} + +const renovateInput = () => { + return { + data: { + contract_no: '', + customer: '', + salesman: '', + address: '', + paykind: [0, 0, 0, 0, 0, 0, 0], + payarr: ['', 1, 2, 6, 12], + total: 0, + // paykindTotal: this.total(), + }, + step: 1, + isLoading: false, + nextStepFn() { + if (this.step == 1) { + if (this.data.contract_no == '') return alert('請輸入合約號'); + this.isLoading = true; + this.getContractData(); + } else if (this.step == 2) { + console.log('1111'); + } + // this.step = 3; + }, + // 計算總共分期月數 + totalFn() { + let total = 0 + for (let i = 0; i < this.data.paykind.length; i++) { + if (this.data.paykind[i] != '0') { + total += Number(this.data.paykind[i]); + + } + } + // console.log(123); + this.data.total = total; + }, + nextStepKeyupFn(e) { + if (e.keyCode != 13) return + if (this.step == 1) { + this.getContractData(); + // console.log(this.step); + } + }, + preStepFn() { + this.step -= 1; + console.log(this.step); + }, + getContractData() { + axios.get('../api/getContractData.php?contracttype=t&contract_no=' + this.data.contract_no, (res) => { + console.log(res.data); + }) + }, + save() { + + }, + getContractData() { + this.step = 2; + this.isLoading = false; + console.log(this.step); + + } + } } \ No newline at end of file From 7fefbe6d126820ad955fb549d3a6f013dfff0f2a Mon Sep 17 00:00:00 2001 From: Cheng Date: Tue, 12 Mar 2024 09:08:42 +0800 Subject: [PATCH 2/4] 0312 --- wms/contract/api/newElevatorT8.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/wms/contract/api/newElevatorT8.php b/wms/contract/api/newElevatorT8.php index 1e06dab8..86b1e0f3 100644 --- a/wms/contract/api/newElevatorT8.php +++ b/wms/contract/api/newElevatorT8.php @@ -338,17 +338,21 @@ function T8Insert($data, $facilityno, $connT8) $API_body[] = $MainSalesOrder; $API_body[] = $SubOrder; $API_body[] = $salOrderStagePay; - echo "
";
-        print_r(json_encode($API_body, JSON_UNESCAPED_UNICODE));
-        echo "
"; + if ($user_id == 'M0225') { + echo "
";
+            print_r(json_encode($API_body, JSON_UNESCAPED_UNICODE));
+            echo "
"; + } // $api_url = 'http://10.10.145.2:880/twWebAPI/V1/SALSALESORDER/PostERPData'; //正式區 $api_url = "http://60.244.87.101:880/twWebAPI/V1/SALSALESORDER/PostERPData"; //測試區 $result = T8salIncomeApply($API_body, $api_url); - echo "
";
-        print_r($result);
-        echo "
"; + if ($user_id == 'M0225') { + echo "
";
+            print_r($result);
+            echo "
"; + } if (!empty($result) && ($result['Status'] == 'Fails' || $result['Status'] == 'Error')) { $Error_msg = $result['ErrorMsg']; echo ""; From 4ee0aa02f34b3cc60d993a7f0dfc9b6cf497223e Mon Sep 17 00:00:00 2001 From: Ellin Date: Tue, 12 Mar 2024 17:38:16 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=87=89=E6=94=B6=E5=B8=B3=E6=AC=BE=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=97=E5=8D=B0=E6=A0=BC=E5=BC=8F=E8=88=87?= =?UTF-8?q?=E5=90=88=E7=B4=84=E6=9C=80=E9=AB=98=E5=82=AC=E6=94=B6=E6=AC=A1?= =?UTF-8?q?=E6=95=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 + wms/account-receivable-contract.xlsx | Bin 9050 -> 9010 bytes wms/account-receivable-excel.php | 88 ++++------ wms/account-receivable-maintainance-index.php | 162 +++++++++-------- wms/account-receivable-new-index.php | 73 ++++---- wms/account-receivable-renovate-index.php | 166 ++++++++++-------- wms/account-receivable-renovate.xlsx | Bin 47369 -> 27657 bytes 7 files changed, 263 insertions(+), 229 deletions(-) diff --git a/.gitignore b/.gitignore index 44e45c2f..39c6cbea 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,6 @@ wms/chinese.php phpinfo.php wms/account_receivable_sql_file.sql wms/account_receivable_maintainance_sql.sql +wms/account-receivable-contract.xlsx +wms/account-receivable-maintainance.xlsx +wms/account_receivable_renovate_sql.sql diff --git a/wms/account-receivable-contract.xlsx b/wms/account-receivable-contract.xlsx index 571e77f75b0eb2f4b684a9a05e51d8b406fb104a..503566a8b2fc7105b1b04517d71962909d786d34 100644 GIT binary patch delta 4353 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 HBZB@9Q#UE( delta 4371 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 diff --git a/wms/account-receivable-excel.php b/wms/account-receivable-excel.php index 17ea668d..39af3bb4 100644 --- a/wms/account-receivable-excel.php +++ b/wms/account-receivable-excel.php @@ -36,7 +36,7 @@ if ($type == 'newContract') { '尾款催收金額', '尾款催收次數' ]; - file_put_contents('account-receivable.txt', json_encode($Bill, JSON_UNESCAPED_UNICODE)); + // file_put_contents('account-receivable.txt', json_encode($Bill, JSON_UNESCAPED_UNICODE)); $sheet->fromArray($colomnHeader, NULL, 'A2'); $rowIndex = 3; foreach ($Bill as $key => $value) { @@ -59,79 +59,61 @@ if ($type == 'newContract') { } $writer = new Xlsx($spreadsheet); $excelFileName = 'account-receivable-contract.xlsx'; - $writer->save($excelFileName); -} elseif ($type == 'facility') { +} elseif ($type == 'maintainance') { + $sheet->mergeCells('A1:H1'); + $sheet->setTitle('保養催收統整'); + $sheet->setCellValue('A1', '保養催收統整'); + $sheet->getStyle('A1')->getFont()->setBold(true); + $sheet->getStyle('A1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); + $sheet->getStyle('A1')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER); + $sheet->getStyle('A1')->getFont()->setSize(14); + $sheet->getRowDimension('1')->setRowHeight(38); $colomnHeader = [ - 'T8單據日期', '作番號', '合約號', '部門', '經理', '營業員', '客戶名稱', '統一編號', '聯絡地址', '抬頭', - '訂金名稱', '訂金合約金額', '訂金應收日期', '訂金目前應收金額', '訂金已開金額', '訂金未開金額', '訂金已收金額', '訂金催收金額', '訂金催收次數', - '二次款名稱', '二次款合約金額', '二次款應收日期', '二次款目前應收金額', '二次款已開金額', '二次款未開金額', '二次款已收金額', '二次款催收金額', '二次款催收次數', - '貨抵工地款名稱', '貨抵工地款合約金額', '貨抵工地款應收日期', '貨抵工地款目前應收金額', '貨抵工地款已開金額', '貨抵工地款未開金額', '貨抵工地款已收金額', '貨抵工地款催收金額', '貨抵工地款催收次數', - '安裝款名稱', '安裝款合約金額', '安裝款應收日期', '安裝款目前應收金額', '安裝款已開金額', '安裝款未開金額', '安裝款已收金額', '安裝款催收金額', '安裝款催收次數', - '試車款名稱', '試車款合約金額', '試車款應收日期', '試車款目前應收金額', '試車款已開金額', '試車款未開金額', '試車款已收金額', '試車款催收金額', '試車款催收次數', - '官檢款名稱', '官檢款合約金額', '官檢款應收日期', '官檢款目前應收金額', '官檢款已開金額', '官檢款未開金額', '官檢款已收金額', '官檢款催收金額', '官檢款催收次數', - '交車款名稱', '交車款合約金額', '交車款應收日期', '交車款目前應收金額', '交車款已開金額', '交車款未開金額', '交車款已收金額', '交車款催收金額', '交車款催收次數', - '尾款名稱', '尾款金額', '尾款應收日期', '尾款應收金額', '尾款已開金額', '尾款未開金額', '尾款已收金額', '尾款催收金額', '尾款催收次數', - '作番狀態', '合約-設備金額', '合約-安裝金額', '作番合約總金額', '作番總應收金額' + '合約號','序號','作番號','部門','契約員','客戶','金額','催收次數' ]; - $sheet->fromArray($colomnHeader, NULL, 'A1'); - $rowIndex = 2; + + // file_put_contents('account-receivable.txt', json_encode($Bill, JSON_UNESCAPED_UNICODE)); + $sheet->fromArray($colomnHeader, NULL, 'A2'); + $rowIndex = 3; foreach ($Bill as $key => $value) { $sheet->fromArray($value, NULL, 'A' . $rowIndex); $column = [ - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ', - 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BK' + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H' ]; - foreach ($column as $col) { - $sheet->getColumnDimension($col)->setAutoSize(true); - } - $rowIndex++; } $writer = new Xlsx($spreadsheet); - $excelFileName = 'account-receivable-facility.xlsx'; - $writer->save($excelFileName); -} else { + $excelFileName = 'account-receivable-contract.xlsx'; + +}elseif ($type == 'renovate') { + $sheet->mergeCells('A1:K1'); + $sheet->setTitle('汰改催收統整'); + $sheet->setCellValue('A1', '汰改催收統整'); + $sheet->getStyle('A1')->getFont()->setBold(true); + $sheet->getStyle('A1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); + $sheet->getStyle('A1')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER); + $sheet->getStyle('A1')->getFont()->setSize(14); + $sheet->getRowDimension('1')->setRowHeight(38); $colomnHeader = [ - 'T8單據日期', '合約號', '部門', '經理', '營業員', '客戶名稱', '統一編號', '聯絡地址', '抬頭', - '訂金', '訂金目前應收', '訂金已開票金額', '訂金未開票金額', '訂金已收金額', '訂金催收金額', '訂金最大催收次數', '訂金最小催收次數', - '二次款', '二次款目前應收', '二次款已開票金額', '二次款未開票金額', '二次款已收金額', '二次款催收金額', '二次款最大催收次數', '二次款最小催收次數', - '貨抵工地款', '貨抵工地款目前應收', '貨抵工地款已開票金額', '貨抵工地款未開票金額', '貨抵工地款已收金額', '貨抵工地款催收金額', '貨抵工地款最大催收次數', '貨抵工地款最小催收次數', - '安裝款', '安裝款目前應收', '安裝款已開票金額', '安裝款未開票金額', '安裝款已收金額', '安裝款催收金額', '安裝款最大催收次數', '安裝款最小催收次數', - '試車款', '試車款目前應收', '試車款已開票金額', '試車款未開票金額', '試車款已收金額', '試車款催收金額', '試車款最大催收次數', '試車款最小催收次數', - '官檢款', '官檢款目前應收', '官檢款已開票金額', '官檢款未開票金額', '官檢款已收金額', '官檢款催收金額', '官檢款最大催收次數', '官檢款最小催收次數', - '交車款', '交車款目前應收', '交車款已開票金額', '交車款未開票金額', '交車款已收金額', '交車款催收金額', '交車款最大催收次數', '交車款最小催收次數', - '尾款', '尾款目前應收', '尾款已開票金額', '尾款未開票金額', '尾款已收金額', '尾款催收金額', '尾款最大催收次數', '尾款最小催收次數', - '合約設備金額', '合約安裝金額', '合約總金額', '目前應收', '已開發票金額', '已收金額', '作番總數', '作番狀態' + '合約號','作番號','部門','營業員','客戶','收款階段名稱','應收日期','金額','已收金額','催收金額','催收次數' ]; - $sheet->fromArray($colomnHeader, NULL, 'A1'); - $rowIndex = 2; + // file_put_contents('account-receivable.txt', json_encode($Bill, JSON_UNESCAPED_UNICODE)); + $sheet->fromArray($colomnHeader, NULL, 'A2'); + $rowIndex = 3; foreach ($Bill as $key => $value) { + $sheet->fromArray($value, NULL, 'A' . $rowIndex); $column = [ - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ', - 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BS', 'BT', 'BU', 'BV', 'BW', 'BX', 'BY', 'BZ', - 'CA', 'CB', 'CC', 'CD' + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H','I','J','K' ]; - foreach ($column as $col) { - if ($col == 'CC') { - $sheet->getColumnDimension('CC')->setWidth(40); - $sheet->getStyle('CC')->getAlignment()->setWrapText(true); - } else { - $sheet->getColumnDimension($col)->setAutoSize(true); - } - } - - $rowIndex++; } $writer = new Xlsx($spreadsheet); - $excelFileName = 'account-receivable-test.xlsx'; - $writer->save($excelFileName); + $excelFileName = 'account-receivable-renovate.xlsx'; } +$writer->save($excelFileName); echo $excelFileName; ?> +

應收帳款(保養)

@@ -347,17 +368,17 @@ include "./footer.php"; 合約號 - 序號 - 作番號 - 部門 + 序號 + 作番號 + 部門 契約員 - 客戶名稱 + 客戶名稱 應收日期 是否應收 款別金額 - 是否收齊 + 是否收齊 催收次數 @@ -372,13 +393,13 @@ include "./footer.php"; " . $row['PersonName']; ?> " . $row['BizPartnerName']; ?> - + - - + + @@ -400,29 +421,6 @@ include "./footer.php"; } } } - // function downloadData() { - // var xhr = new XMLHttpRequest(); - // var url = window.location.origin + "/wms/account-receivable-renovate-excel.php?type=all&"; - // xhr.open('POST', url, true); - // xhr.setRequestHeader('Content-Type', 'application/json'); - // xhr.onreadystatechange = function() { - // if (xhr.readyState === 4 && xhr.status === 200) { - // var file_path = xhr.responseText; - // var link = document.createElement('a'); - // var name = "汰改應收帳款" + "" + ".xlsx"; - // link.setAttribute('href', window.location.origin + "/wms/account-receivable-renovate.xlsx"); - // link.setAttribute('download', name); - // link.style.display = 'none'; - // document.body.appendChild(link); - // link.click(); - // document.body.removeChild(link); - // } - // } - // xhr.send(JSON.stringify({ - // Bill: - // })); - - // } function searchFront(area) { var term = 'search_' + area; @@ -510,8 +508,28 @@ include "./footer.php"; } } - function check(searchname) { - console.log(searchname); + function downloadData() { + var BillData = ; + var filename = "保養催收帳款" + "" + ".xlsx"; + var xhr = new XMLHttpRequest(); + var url = window.location.origin + "/wms/account-receivable-excel.php?type=maintainance&"; + xhr.open('POST', url, true); + xhr.setRequestHeader('Content-Type', 'application/json'); + xhr.onreadystatechange = function() { + if (xhr.readyState === 4 && xhr.status === 200) { + var link = document.createElement('a'); + link.setAttribute('href', window.location.origin + "/wms/account-receivable-contract.xlsx"); + link.setAttribute('download', filename); + link.style.display = 'none'; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } + } + xhr.send(JSON.stringify({ + Bill: BillData + })); + } \ No newline at end of file diff --git a/wms/account-receivable-new-index.php b/wms/account-receivable-new-index.php index 712c8647..4c7e38b9 100644 --- a/wms/account-receivable-new-index.php +++ b/wms/account-receivable-new-index.php @@ -794,7 +794,6 @@ foreach ($final_paystage as $key => &$value) { } } - //合約資料填回arrayData foreach ($final_paystage as $key => $value) { for ($sequence = 1; $sequence <= count($value); $sequence++) { @@ -811,9 +810,6 @@ foreach ($final_paystage as $key => $value) { $arvalue['receivable_budget'] += $value[$sequence]['PlanPayAmt']; $arrayData[$key]['receivable_budget'] += $value[$sequence]['PlanPayAmt']; } - // else { - // $arvalue['receivable_budget'] = 0; - // } if ($arvalue['collect_month'] < $value[$sequence]['collect_month']) { $arvalue['collect_month'] = $value[$sequence]['collect_month']; } @@ -837,7 +833,7 @@ foreach ($final_paystage as $key => $value) { $sum_received_budget += $value[$sequence]['received_budget']; $sum_invoice_budget += $value[$sequence]['invoice_budget']; } - if ($value[$sequence]['collect_month'] > $arrayData[$key]['collect_month']) { + if ((round($arvalue['receivable_budget'] - $arvalue['received_budget']) >2)&&($value[$sequence]['collect_month'] > $arrayData[$key]['collect_month'])) { $arrayData[$key]['collect_month'] = $value[$sequence]['collect_month']; } } @@ -914,34 +910,34 @@ foreach ($arrayData as $key => &$value) { $excel_contract_all_array[$key][5] = $excel_contract_array[$key][19]; $excel_contract_all_array[$key][6] = $excel_contract_array[$key][20]; $excel_contract_all_array[$key][7] = $excel_contract_array[$key][17]; - $total_collect_budget += $excel_contract_all_array[$key][6]; - $total_collect_facility += $excel_contract_all_array[$key][4]; + $total_collect_budget += $excel_contract_all_array[$key][7]; + $total_collect_facility += $excel_contract_all_array[$key][5]; $isBoga = 0; if (stristr($value['PayStage'][1]['PayStage'], '寶佳')) { $isBoga = 1; $excel_contract_boga_array[$key] = array_fill(0, 24, ''); $excel_contract_boga_array[$key][0] = $excel_contract_array[$key][0]; $excel_contract_boga_array[$key][1] = $excel_contract_array[$key][3]; - $excel_contract_boga_array[$key][2] = $excel_contract_array[$key][8]; - $excel_contract_boga_array[$key][3] = $excel_contract_array[$key][11]; - $excel_contract_boga_array[$key][4] = $excel_contract_array[$key][19]; - $excel_contract_boga_array[$key][5] = $excel_contract_array[$key][20]; - $excel_contract_boga_array[$key][6] = $excel_contract_array[$key][17]; - $excel_contract_boga_array[$key][7] = $excel_contract_array[$key][18]; - $boga_collect_budget += $excel_contract_boga_array[$key][6]; - $boga_collect_facility += $excel_contract_boga_array[$key][4]; + $excel_contract_boga_array[$key][2] = $excel_contract_array[$key][6]; + $excel_contract_boga_array[$key][3] = $excel_contract_array[$key][8]; + $excel_contract_boga_array[$key][4] = $excel_contract_array[$key][11]; + $excel_contract_boga_array[$key][5] = $excel_contract_array[$key][19]; + $excel_contract_boga_array[$key][6] = $excel_contract_array[$key][20]; + $excel_contract_boga_array[$key][7] = $excel_contract_array[$key][17]; + $boga_collect_budget += $excel_contract_boga_array[$key][7]; + $boga_collect_facility += $excel_contract_boga_array[$key][5]; } else { $excel_contract_noboga_array[$key] = array_fill(0, 24, ''); $excel_contract_noboga_array[$key][0] = $excel_contract_array[$key][0]; $excel_contract_noboga_array[$key][1] = $excel_contract_array[$key][3]; - $excel_contract_noboga_array[$key][2] = $excel_contract_array[$key][8]; - $excel_contract_noboga_array[$key][3] = $excel_contract_array[$key][11]; - $excel_contract_noboga_array[$key][4] = $excel_contract_array[$key][19]; - $excel_contract_noboga_array[$key][5] = $excel_contract_array[$key][20]; - $excel_contract_noboga_array[$key][6] = $excel_contract_array[$key][17]; - $excel_contract_noboga_array[$key][7] = $excel_contract_array[$key][18]; - $noboga_collect_budget += $excel_contract_noboga_array[$key][6]; - $noboga_collect_facility += $excel_contract_noboga_array[$key][4]; + $excel_contract_noboga_array[$key][2] = $excel_contract_array[$key][6]; + $excel_contract_noboga_array[$key][3] = $excel_contract_array[$key][8]; + $excel_contract_noboga_array[$key][4] = $excel_contract_array[$key][11]; + $excel_contract_noboga_array[$key][5] = $excel_contract_array[$key][19]; + $excel_contract_noboga_array[$key][6] = $excel_contract_array[$key][20]; + $excel_contract_noboga_array[$key][7] = $excel_contract_array[$key][17]; + $noboga_collect_budget += $excel_contract_noboga_array[$key][7]; + $noboga_collect_facility += $excel_contract_noboga_array[$key][5]; } } @@ -1138,9 +1134,9 @@ foreach ($arrayData as $key => &$value) { } } // $excel_contract_all_array['last']= $excel_contract_boga_array['last'] = $excel_contract_noboga_array['last'] = array_fill(0, 23, ''); -$excel_contract_all_array['last']= ['合計', '', '', '', $total_collect_facility, '', $total_collect_budget, '', $total_sign_collect_budget, '', $total_second_collect_budget, '', $total_arrival_collect_budget, '', $total_install_collect_budget, '', $total_tryrun_collect_budget, '', $total_check_collect_budget, '', $total_delivery_collect_budget, '', $total_final_collect_budget, '']; -$excel_contract_boga_array['last']= ['合計', '', '', '', $boga_collect_facility, '', $boga_collect_budget, '', $boga_sign_collect_budget, '', $boga_second_collect_budget, '', $boga_arrival_collect_budget, '', $boga_install_collect_budget, '', $boga_tryrun_collect_budget, '', $boga_check_collect_budget, '', $boga_delivery_collect_budget, '', $boga_final_collect_budget, '']; -$excel_contract_noboga_array['last']= ['合計', '', '', '', $noboga_collect_facility, '', $noboga_collect_budget, '', $noboga_sign_collect_budget, '', $noboga_second_collect_budget, '', $noboga_arrival_collect_budget, '', $noboga_install_collect_budget, '', $noboga_tryrun_collect_budget, '', $noboga_check_collect_budget, '', $noboga_delivery_collect_budget, '', $noboga_final_collect_budget, '']; +$excel_contract_all_array['last']= ['合計', '', '', '','', $total_collect_facility, '', $total_collect_budget, $total_sign_collect_budget, '', $total_second_collect_budget, '', $total_arrival_collect_budget, '', $total_install_collect_budget, '', $total_tryrun_collect_budget, '', $total_check_collect_budget, '', $total_delivery_collect_budget, '', $total_final_collect_budget, '']; +$excel_contract_boga_array['last']= ['合計', '', '', '','', $boga_collect_facility, '', $boga_collect_budget, $boga_sign_collect_budget, '', $boga_second_collect_budget, '', $boga_arrival_collect_budget, '', $boga_install_collect_budget, '', $boga_tryrun_collect_budget, '', $boga_check_collect_budget, '', $boga_delivery_collect_budget, '', $boga_final_collect_budget, '']; +$excel_contract_noboga_array['last']= ['合計', '', '', '','', $noboga_collect_facility, '', $noboga_collect_budget, $noboga_sign_collect_budget, '', $noboga_second_collect_budget, '', $noboga_arrival_collect_budget, '', $noboga_install_collect_budget, '', $noboga_tryrun_collect_budget, '', $noboga_check_collect_budget, '', $noboga_delivery_collect_budget, '', $noboga_final_collect_budget, '']; // print_r($excel_contract_array['M230064']); // echo "
---------------------------------------------------------
"; @@ -1342,7 +1338,7 @@ $testtotal = 0;
- +
@@ -1362,9 +1358,9 @@ $testtotal = 0; 合約催收次數 - + ≤ 催收次數 ≤ - + @@ -1416,7 +1412,10 @@ $testtotal = 0; - +
+ + +
@@ -1603,6 +1602,20 @@ include "./footer.php"; "; - exit(); + // echo ""; + // exit(); // echo $result['ErrorMsg']; // echo ""; + echo $Error_msg; } } else { echo '資料已新增過,請洽資訊人員'; diff --git a/wms/contract/api/postRenovateContractData.php b/wms/contract/api/postRenovateContractData.php new file mode 100644 index 00000000..352e8f77 --- /dev/null +++ b/wms/contract/api/postRenovateContractData.php @@ -0,0 +1,4 @@ +"; +print_r($_POST); +echo ""; diff --git a/wms/contract/contract-renovate-input.php b/wms/contract/contract-renovate-input.php index 44f1f5be..f965dc75 100644 --- a/wms/contract/contract-renovate-input.php +++ b/wms/contract/contract-renovate-input.php @@ -1,24 +1,31 @@ prepare($sql); -// $stmt->bindParam(':depart_no', $depart_no); +$accounttype = "M"; +$sql_str = "SELECT accountid, name FROM account WHERE accounttype = :accounttype ORDER BY accountid"; +$stmt = $conn->prepare($sql_str); +$stmt->bindParam(":accounttype", $accounttype); $stmt->execute(); -$contractSalesman = $stmt->fetchAll(PDO::FETCH_ASSOC); -// echo '
';
-// print_r($contractSalesman);
-// echo '
'; +$persons = $stmt->fetchAll(PDO::FETCH_ASSOC); +$persons = array_map(function ($person) { + return [ + 'view' => $person['name'] . '-' . $person['accountid'], + 'value' => $person['accountid'], + 'name' => $person['name'] + ]; +}, $persons); ?> + + - +
@@ -43,8 +50,9 @@ $contractSalesman = $stmt->fetchAll(PDO::FETCH_ASSOC); - --> + +
+ - + + - + + - + - + + - + + - + + - + - + + + + + +
2、二次款 - + - + + - + --> + +
3、貨到工地款 - + - + + - + --> + +
安裝 5、安裝完畢款 - + - + + - + --> +
6、驗收款 - + - + + - + --> + +
7、其他 - + - + + - + --> +
合計合計 - + - + + - +
- -
- \ No newline at end of file + + + + \ No newline at end of file diff --git a/wms/contract/js/alpine.js b/wms/contract/js/alpine.js index 7de02def..b3d57efc 100644 --- a/wms/contract/js/alpine.js +++ b/wms/contract/js/alpine.js @@ -808,7 +808,11 @@ const contractDownload = () => { const contractNewInput = () => { return { - init() { }, + init() { + // nextTick(() => { + // $('#renovate_type').select2(); + // }); + }, data: { contractno: 'M24020076', customer: '', @@ -828,7 +832,7 @@ const contractNewInput = () => { pay_arr: [], //電梯付款種類 nums: 0, //電梯數量 area_no: 'T', - contract_arrival_date: '' + contract_arrival_date: '', }, fail_arr: [], step: 1, @@ -1039,7 +1043,8 @@ const contractInput = () => { contract_type: 'new', signing_date: '', token: token, - maintance_manager: '' + maintance_manager: '', + // bonus_verson: 2.1, // manager: '', // regular_contract_manger_id: '', @@ -1609,14 +1614,41 @@ const contractNewApply = () => { const renovateInput = () => { return { + // init() { + // this.initSelect2(); + // }, + // initSelect2() { + // console.log(123); + // $('#renovate_type').select2(); + // }, data: { - contract_no: '', + contract_no: 'T24030025', customer: '', salesman: '', + main_linkman: '', //負責人 + linkman: '', + lm_tel: '', + vat: '', + case_name: '', address: '', - paykind: [0, 0, 0, 0, 0, 0, 0], + area_no: '', + manager: '', + price_total: '', //合約總價 + files: [], + contract_type: '1', + signing_date: '', + elevators: [], //電梯總類 + elevators_detail_arr: [], // 電梯台數 Array payarr: ['', 1, 2, 6, 12], - total: 0, + paykind: [0, 0, 0, 0, 0, 0, 0], //電梯付款種類的分期方式 + scale: [0, 0, 0, 0, 0, 0, 0], + amount: [0, 0, 0, 0, 0, 0, 0], + pay_arr: [], // 電梯付款種類 + total_month: 0, + total_scale: 0, + total_amount: 0, + // disable: false + // options: ['Option 1', 'Option 2', 'Option 3'] // paykindTotal: this.total(), }, step: 1, @@ -1627,22 +1659,116 @@ const renovateInput = () => { this.isLoading = true; this.getContractData(); } else if (this.step == 2) { - console.log('1111'); + if (this.data.nums <= 0) return alert('請填寫電梯數量!') + this.getElevatorsData(); + } else if (this.step == 3) { + this.totalFn(); + this.checkDisableStatus(); + this.step = 4; } // this.step = 3; }, + getContractData() { + axios.get('./api/getContractData.php?contracttype=t&contractno=' + this.data.contract_no).then(res => { + console.log(res.data); + if (!res.data) { + this.step = 2; + this.isLoading = false; + return; + } + this.data.pay_arr = res.data.pay_arr; + for (let i = 0; i < this.data.pay_arr['elevotor_pay_detail'].length; i++) { + let kind = this.data.pay_arr['elevotor_pay_detail'][i].pay_kind - 1; + let amount = this.data.pay_arr['elevotor_pay_detail'][i].pay_amount; + let scale = this.data.pay_arr['elevotor_pay_detail'][i].pay_scale; + console.log(kind); + this.data.amount[kind] = amount; + this.data.scale[kind] = scale; + } + this.data.customer = res.data.company + this.data.main_linkman = res.data.manager + this.data.vat = res.data.uscc + this.data.case_name = res.data.case_name + this.data.linkman = res.data.linkman + this.data.lm_tel = res.data.lm_tel + this.data.address = res.data.address + this.data.salesman = res.data.person + // this.data.qc = res.data.qc; + this.data.price_total = res.data.price_total; + this.data.elevators = res.data.elevators; + this.data.elevators_detail_arr = res.data.elevators_detail_arr; + this.data.nums = res.data.nums; + this.data.contract_arrival_date = res.data.facilitok_date; + this.step = 2; + this.isLoading = false; + }).catch(err => { + console.log(err); + this.isLoading = false; + }) + }, + getElevatorsData() { + if (this.step == 2) { + for (let i = 0; i < this.data.nums; i++) { + // this.initSelect2(i); + // console.log(this.data.elevators_detail_arr[i]); + this.data.elevators_detail_arr[i].warehouseid = ''; // 公務部門負責人 + this.data.elevators_detail_arr[i].latitude = ''; // 經度 + this.data.elevators_detail_arr[i].longitude = ''; // 緯度 + this.data.elevators_detail_arr[i].manage = ''; // 工地負責人 + this.data.elevators_detail_arr[i].qc = 'QO'; // QC和官檢 + this.data.elevators_detail_arr[i].contract_arrival_date = this.data.contract_arrival_date; //合約交期(到工地) + this.data.elevators_detail_arr[i].selectedItems = ''; + // this.data.elevators_detail_arr[i].area_no = ''; //區域 + } + this.step = 3; + this.isLoading = false; + } else if (this.step == 3) { + console.log(this.data.elevators_detail_arr); + // this.step = 4; + // this.isLoading = false; + } + }, + cons() { + console.log(this.data.elevators_detail_arr); + }, // 計算總共分期月數 totalFn() { - let total = 0 + let total_month = 0 for (let i = 0; i < this.data.paykind.length; i++) { if (this.data.paykind[i] != '0') { - total += Number(this.data.paykind[i]); + total_month += Number(this.data.paykind[i]); + } + } + this.data.total_month = total_month; + + let total_scale = 0 + for (let i = 0; i < this.data.scale.length; i++) { + if (this.data.scale[i] != '0') { + total_scale += Number(this.data.scale[i]); + } + } + let total_amount = 0 + for (let i = 0; i < this.data.scale.length; i++) { + if (this.data.scale[i] != '0') { + total_amount += Number(this.data.amount[i]); } } // console.log(123); - this.data.total = total; + this.data.total_month = total_month; + this.data.total_scale = total_scale; + this.data.total_amount = total_amount; + }, + checkDisableStatus() { + for (let i = 0; i < this.data.amount.length; i++) { + if (this.data.amount[i] == 0) { + this.data.disable = true; + } + } }, + // initSelect2(idx) { + // this.data.elevators_detail_arr[idx].selectedItems = $('#renovate_type' + idx).select2().val(); + // }, nextStepKeyupFn(e) { if (e.keyCode != 13) return if (this.step == 1) { @@ -1654,20 +1780,32 @@ const renovateInput = () => { this.step -= 1; console.log(this.step); }, - getContractData() { - axios.get('../api/getContractData.php?contracttype=t&contract_no=' + this.data.contract_no, (res) => { - console.log(res.data); - }) - }, save() { + console.log(this.data); + const form = new FormData(); + form.append('contractno', this.data.contract_no); + form.append('customer', this.data.customer); + form.append('manager', this.data.main_linkman); + form.append('vat', this.data.vat); + form.append('area_no', this.data.area_no); + form.append('case_name', this.data.case_name); + form.append('linkman', this.data.linkman); + form.append('lm_tel', this.data.lm_tel); + form.append('address', this.data.address); + form.append('salesman', this.data.salesman); + form.append('signing_date', this.data.signing_date); + form.append('nums', this.data.nums); + form.append('price_total', this.data.price_total); + form.append('contract_type', this.data.contract_type); + form.append('elevators_detail_arr', JSON.stringify(this.data.elevators_detail_arr)); + form.append('elevators', JSON.stringify(this.data.elevators)); + form.append('pay_arr', JSON.stringify(this.data.pay_arr)); + form.append('scale', JSON.stringify(this.data.scale)); + form.append('contracttype', 'm'); + form.append('user_id', user_id); + axios.post('./api/postRenovateContractData.php', form).then(res => { - }, - getContractData() { - this.step = 2; - this.isLoading = false; - console.log(this.step); - + }) } - } } \ No newline at end of file