Browse Source

新梯汰改合約簽回

main
Cheng 1 year ago
parent
commit
b979e2fd6d
  1. 230
      wms/bonus/elevator_new/elevator_new_deal_bonus.php
  2. 30
      wms/bonus/elevator_new/elevator_new_deal_bonus_v1_0_1.php
  3. 180
      wms/bonus/elevator_new/elevator_new_deal_bonus_v2_0_1.php
  4. 92
      wms/bonus/elevator_new/elevator_new_deal_bonus_v2_0_examination.php
  5. 46
      wms/contract/api/getContractData.php
  6. 48
      wms/contract/api/getFacilityNo.php
  7. 162
      wms/contract/api/newElevatorBonus.php
  8. 369
      wms/contract/api/newElevatorT8.php
  9. 263
      wms/contract/api/postContractData.php
  10. 526
      wms/contract/api/postNewContractData.php
  11. 150
      wms/contract/api/test copy.json
  12. 3
      wms/contract/conn.php
  13. 8
      wms/contract/contract-input.php
  14. 247
      wms/contract/contract-renovate-input.php
  15. 70
      wms/contract/js/alpine.js

230
wms/bonus/elevator_new/elevator_new_deal_bonus.php

@ -1,15 +1,20 @@
<?php <?php
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 = []; $bonus_array = [];
if ($ver == "2.0") { if ($ver == "2.0") {
$discount = round($elevator_knockdown_price / $elevator_list_price, 3); #銷售點數,取到小數點第三位。 $discount = round($elevator_knockdown_price / $elevator_list_price, 3); #銷售點數,取到小數點第三位。
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) #合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer)
switch ($contract_type) { switch ($contract_type) {
case "strategy_customer": case "strategy_customer":
#契約員獎金($sales_bonus) #契約員獎金($sales_bonus)
$sales_bonus = $elevator_knockdown_price * 0.007; $sales_bonus = $pay_amount * 0.007;
#地區經理提成獎金($region_manager_bonus) #地區經理提成獎金($region_manager_bonus)
$region_manager_bonus = 400; $region_manager_bonus = 400;
break; break;
@ -20,16 +25,16 @@ function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $ele
case ($elevator_type == "passenger" or $elevator_type == "cargo"): case ($elevator_type == "passenger" or $elevator_type == "cargo"):
switch ($discount) { switch ($discount) {
case ($discount >= 1.0): case ($discount >= 1.0):
$sales_bonus = $elevator_knockdown_price * 0.02; $sales_bonus = $pay_amount * 0.02;
break; break;
case ($discount >= 0.9 and $discount < 1.0): case ($discount >= 0.9 and $discount < 1.0):
$sales_bonus = $elevator_knockdown_price * 0.018; $sales_bonus = $pay_amount * 0.018;
break; break;
case ($discount >= 0.75 and $discount < 0.9): case ($discount >= 0.75 and $discount < 0.9):
$sales_bonus = $elevator_knockdown_price * 0.015; $sales_bonus = $pay_amount * 0.015;
break; break;
case ($discount < 0.75): case ($discount < 0.75):
$sales_bonus = $elevator_knockdown_price * 0.008; $sales_bonus = $pay_amount * 0.008;
break; break;
}; };
break; break;
@ -38,16 +43,16 @@ function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $ele
case ($elevator_type == "dumbwaiter" or $elevator_type == "flatbase" or $elevator_type == "positive_drive"): case ($elevator_type == "dumbwaiter" or $elevator_type == "flatbase" or $elevator_type == "positive_drive"):
switch ($discount) { switch ($discount) {
case ($discount >= 1.0): case ($discount >= 1.0):
$sales_bonus = $elevator_knockdown_price * 0.02; $sales_bonus = $pay_amount * 0.02;
break; break;
case ($discount >= 0.9 and $discount < 1.0): case ($discount >= 0.9 and $discount < 1.0):
$sales_bonus = $elevator_knockdown_price * 0.018; $sales_bonus = $pay_amount * 0.018;
break; break;
case ($discount >= 0.72 and $discount < 0.9): case ($discount >= 0.72 and $discount < 0.9):
$sales_bonus = $elevator_knockdown_price * 0.015; $sales_bonus = $pay_amount * 0.015;
break; break;
case ($discount < 0.72): case ($discount < 0.72):
$sales_bonus = $elevator_knockdown_price * 0.008; $sales_bonus = $pay_amount * 0.008;
break; break;
}; };
break; break;
@ -56,57 +61,105 @@ function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $ele
$region_manager_bonus = 600; $region_manager_bonus = 600;
break; break;
}; };
$sales_bonus = round($sales_bonus);
$pay_scale = $elevator_pay_kind['pay_scale'];
switch ($elevator_pay_kind['pay_kind']) {
//訂金
case '1':
#營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20% #營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20%
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "1-訂金段", #獎金名稱 "bonus_type" => "4", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員 "bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => round($sales_bonus * 0.2), #金額 "bonus_amount" => $sales_bonus, #金額
"payment_schedul_due" => "deposit", #訂金已收款20% "payment_schedul_due" => "deposit", #訂金已收款20%
"payment_schedul_regulation" => "訂金已收款20%,發放總獎金20%" #發放規定 "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定
]);
#營銷人員銷售獎金水庫-----出貨前期所有款項已收齊,且出貨款已收款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%" #發放規定
]);
#營銷人員銷售獎金水庫-----驗收前期所有款項已收齊,且驗收款已收款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%" #發放規定
]); ]);
#區域經理提成獎金水庫-----訂金已收款100%,發放總獎金50% #區域經理提成獎金水庫-----訂金已收款100%,發放總獎金50%
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "2-訂金段", #獎金名稱 "bonus_type" => "11", #獎金名稱
"bonus_receiver" => $region_manger_id, #發放人員 "bonus_receiver" => $region_manger_id, #發放人員
"bonus_amount" => round($region_manager_bonus * 0.5), #金額 "bonus_amount" => round($region_manager_bonus * 0.5), #金額
"payment_schedul_due" => "deposit", #訂金已收款100% "payment_schedul_due" => "deposit", #訂金已收款100%
"payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定 "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% #區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50%
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "2-貨到工地款段", #獎金名稱 "bonus_type" => "12", #獎金名稱
"bonus_receiver" => $region_manger_id, #發放人員 "bonus_receiver" => $region_manger_id, #發放人員
"bonus_amount" => round($region_manager_bonus * 0.5), #金額 "bonus_amount" => round($region_manager_bonus * 0.5), #金額
"payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100% "payment_schedul_due" => "shipping", #貨到工地款(含)之前所有款項已收款100%
"payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定 "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 = [ $result_array = [
"ver" => $ver, #獎金版本 "ver" => $ver, #獎金版本
"result_status" => "success", #計算結果 "result_status" => "success", #計算結果
"bonus_array" => $bonus_array #獎金水庫 "bonus_array" => $bonus_array #獎金水庫
]; ];
}
} else { } else {
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "error", #獎金名稱 "bonus_type" => "error", #獎金名稱
@ -125,79 +178,126 @@ function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $ele
return $result_array; return $result_array;
}; };
function elevator_new_deal_bonus_v1_0($ver, $contract_type, $elevator_pay_kind, $sales_id, $region_manger_id)
function elevator_new_deal_bonus_v1_0($ver, $contract_type, $elevator_knockdown_price, $sales_id, $region_manger_id)
{ {
$bonus_array = []; $bonus_array = [];
if ($ver == "1.0") { if ($ver == "1.0") {
#合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer) #合約總類($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) { switch ($contract_type) {
case "strategy_customer": case "strategy_customer":
#契約員獎金($sales_bonus) #契約員獎金($sales_bonus)
$sales_bonus = $elevator_knockdown_price * 0.007; $sales_bonus = $elevator_pay_kind['pay_amount'] * 0.007;
#地區經理經理獎金($region_manager_bonus) #地區經理經理獎金($region_manager_bonus)
$region_manager_bonus = 400; $region_manager_bonus = 400;
break; break;
case "general_customer": case "general_customer":
#契約員獎金($sales_bonus) #契約員獎金($sales_bonus)
$sales_bonus = $elevator_knockdown_price * 0.015; $sales_bonus = $elevator_pay_kind['pay_amount'] * 0.015;
#區域經理獎金($region_manager_bonus) #區域經理獎金($region_manager_bonus)
$region_manager_bonus = 600; $region_manager_bonus = 600;
break; break;
}; };
$pay_scale = $elevator_pay_kind['pay_scale'];
#營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20% switch ($elevator_pay_kind['pay_kind']) {
// 訂金
case '1':
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "1-訂金段", #獎金名稱 "bonus_type" => "4", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員 "bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => round($sales_bonus * 0.2), #金額 "bonus_amount" => $sales_bonus, #金額
"payment_schedul_due" => "deposit", #訂金已收款20% "payment_schedul_due" => "deposit", #訂金已收款20%
"payment_schedul_regulation" => "訂金已收款20%,發放總獎金20%" #發放規定 "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定
]); ]);
#營銷人員銷售獎金水庫-----出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "1-出貨款段", #獎金名稱 "bonus_type" => "11", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員 "bonus_receiver" => $region_manger_id, #發放人員
"bonus_amount" => round($sales_bonus * 0.5), #金額 "bonus_amount" => round($region_manager_bonus * 0.5), #金額
"payment_schedul_due" => "shipping", #訂金已收款20% "payment_schedul_due" => "deposit", #訂金已收款100%
"payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款50%,發放總獎金50%" #發放規定 "payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定
]); ]);
break;
#營銷人員銷售獎金水庫-----驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30% // 二次款
case '2':
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "1-驗收款段", #獎金名稱 "bonus_type" => "5", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員 "bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => round($sales_bonus * 0.3), #金額 "bonus_amount" => $sales_bonus, #金額
"payment_schedul_due" => "acceptance", #訂金已收款20% "payment_schedul_due" => "twice", #訂金已收款20%
"payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款30%,發放總獎金30%" #發放規定 "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定
]); ]);
break;
#區域經理獎金水庫-----訂金已收款100%,發放總獎金50% // 貨抵工地
case '3':
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "2-訂金段", #獎金名稱 "bonus_type" => "6", #獎金名稱
"bonus_receiver" => $region_manger_id, #發放人員 "bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => round($region_manager_bonus * 0.5), #金額 "bonus_amount" => $sales_bonus, #金額
"payment_schedul_due" => "deposit", #訂金已收款100% "payment_schedul_due" => "shipping", #訂金已收款20%
"payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定 "payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定
]); ]);
#區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50%
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "2-貨到工地款段", #獎金名稱 "bonus_type" => "12", #獎金名稱
"bonus_receiver" => $region_manger_id, #發放人員 "bonus_receiver" => $region_manger_id, #發放人員
"bonus_amount" => round($region_manager_bonus * 0.5), #金額 "bonus_amount" => round($region_manager_bonus * 0.5), #金額
"payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100% "payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100%
"payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定 "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 = [ $result_array = [
"ver" => $ver, #獎金版本 "ver" => $ver, #獎金版本
"result_status" => "success", #計算結果 "result_status" => "success", #計算結果
"bonus_array" => $bonus_array #獎金水庫 "bonus_array" => $bonus_array #獎金水庫
]; ];
}
} else { } else {
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "error", #獎金名稱 "bonus_type" => "error", #獎金名稱

30
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) #合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer)
foreach ($elevator_pay_kind as $elevator_pay_kind) { foreach ($elevator_pay_kind as $elevator_pay_kind) {
$elevator_pay_kind['pay_amount'] = round($elevator_pay_kind['pay_amount'] / 1.05);
switch ($contract_type) { switch ($contract_type) {
case "strategy_customer": case "strategy_customer":
#契約員獎金($sales_bonus) #契約員獎金($sales_bonus)
@ -79,10 +80,10 @@ function elevator_new_deal_bonus_v1_0($ver, $contract_type, $elevator_pay_kind,
// print_r($pay_scale); // print_r($pay_scale);
// echo "</pre>"; // echo "</pre>";
switch ($elevator_pay_kind['pay_kind']) { switch ($elevator_pay_kind['pay_kind']) {
// 訂金
case '1': case '1':
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-訂金段", #獎金名稱 "bonus_type" => "4", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員 "bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => $sales_bonus, #金額 "bonus_amount" => $sales_bonus, #金額
"payment_schedul_due" => "deposit", #訂金已收款20% "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, [ array_push($bonus_array, [
"bonus_type" => "區域經理提成獎金-訂金段", #獎金名稱 "bonus_type" => "11", #獎金名稱
"bonus_receiver" => $region_manger_id, #發放人員 "bonus_receiver" => $region_manger_id, #發放人員
"bonus_amount" => round($region_manager_bonus * 0.5), #金額 "bonus_amount" => round($region_manager_bonus * 0.5), #金額
"payment_schedul_due" => "deposit", #訂金已收款100% "payment_schedul_due" => "deposit", #訂金已收款100%
"payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定 "payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定
]); ]);
break; break;
// 二次款
case '2': case '2':
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-二次段", #獎金名稱 "bonus_type" => "5", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員 "bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => $sales_bonus, #金額 "bonus_amount" => $sales_bonus, #金額
"payment_schedul_due" => "twice", #訂金已收款20% "payment_schedul_due" => "twice", #訂金已收款20%
"payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定
]); ]);
break; break;
// 貨抵工地
case '3': case '3':
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-貨到工地款段", #獎金名稱 "bonus_type" => "6", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員 "bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => $sales_bonus, #金額 "bonus_amount" => $sales_bonus, #金額
"payment_schedul_due" => "shipping", #訂金已收款20% "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, [ array_push($bonus_array, [
"bonus_type" => "區域經理提成獎金-貨到工地款段", #獎金名稱 "bonus_type" => "12", #獎金名稱
"bonus_receiver" => $region_manger_id, #發放人員 "bonus_receiver" => $region_manger_id, #發放人員
"bonus_amount" => round($region_manager_bonus * 0.5), #金額 "bonus_amount" => round($region_manager_bonus * 0.5), #金額
"payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100% "payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100%
"payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定 "payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定
]); ]);
break; break;
// 材料其他
case '4': case '4':
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-材料其他段", #獎金名稱 "bonus_type" => "7", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員 "bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => $sales_bonus, #金額 "bonus_amount" => $sales_bonus, #金額
"payment_schedul_due" => "other", #訂金已收款20% "payment_schedul_due" => "other", #訂金已收款20%
"payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定
]); ]);
break; break;
//安裝完畢
case '5': case '5':
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-安裝完畢段", #獎金名稱 "bonus_type" => "8", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員 "bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => $sales_bonus, #金額 "bonus_amount" => $sales_bonus, #金額
"payment_schedul_due" => "installed", #訂金已收款20% "payment_schedul_due" => "installed", #訂金已收款20%
"payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定
]); ]);
break; break;
//驗收
case '6': case '6':
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-驗收款段", #獎金名稱 "bonus_type" => "9", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員 "bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => $sales_bonus, #金額 "bonus_amount" => $sales_bonus, #金額
"payment_schedul_due" => "acceptance", #訂金已收款20% "payment_schedul_due" => "acceptance", #訂金已收款20%
"payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 "payment_schedul_regulation" => "驗收前期所有款項已收齊,且驗收款已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定
]); ]);
break; break;
//安裝其他
case '7': case '7':
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-安裝其他段", #獎金名稱 "bonus_type" => "10", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員 "bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => $sales_bonus, #金額 "bonus_amount" => $sales_bonus, #金額
"payment_schedul_due" => "installOther", #訂金已收款20% "payment_schedul_due" => "installOther", #訂金已收款20%

180
wms/bonus/elevator_new/elevator_new_deal_bonus_v2_0_1.php

@ -33,22 +33,35 @@ result_array[
"$bonus_array"=>$bonus_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 = []; $bonus_array = [];
if ($ver == "2.0") { if ($ver == "2.0") {
$elevator_knockdown_price = round($elevator_knockdown_price / 1.05); //不含稅
$discount = round($elevator_knockdown_price / $elevator_list_price, 3); #銷售點數,取到小數點第三位。 $discount = round($elevator_knockdown_price / $elevator_list_price, 3); #銷售點數,取到小數點第三位。
// echo "<pre>";
// print_r($elevator_pay_kind);
// echo "</pre>";
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) #合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer)
switch ($contract_type) { switch ($contract_type) {
case "strategy_customer": case "strategy_customer":
#契約員獎金($sales_bonus) #契約員獎金($sales_bonus)
$sales_bonus = $elevator_knockdown_price * 0.007; $sales_bonus = $pay_amount * 0.007;
#地區經理提成獎金($region_manager_bonus) #地區經理提成獎金($region_manager_bonus)
$region_manager_bonus = 400; $region_manager_bonus = 400;
break; break;
@ -59,16 +72,16 @@ function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $ele
case ($elevator_type == "passenger" or $elevator_type == "cargo"): case ($elevator_type == "passenger" or $elevator_type == "cargo"):
switch ($discount) { switch ($discount) {
case ($discount >= 1.0): case ($discount >= 1.0):
$sales_bonus = $elevator_knockdown_price * 0.02; $sales_bonus = $pay_amount * 0.02;
break; break;
case ($discount >= 0.9 and $discount < 1.0): case ($discount >= 0.9 and $discount < 1.0):
$sales_bonus = $elevator_knockdown_price * 0.018; $sales_bonus = $pay_amount * 0.018;
break; break;
case ($discount >= 0.75 and $discount < 0.9): case ($discount >= 0.75 and $discount < 0.9):
$sales_bonus = $elevator_knockdown_price * 0.015; $sales_bonus = $pay_amount * 0.015;
break; break;
case ($discount < 0.75): case ($discount < 0.75):
$sales_bonus = $elevator_knockdown_price * 0.008; $sales_bonus = $pay_amount * 0.008;
break; break;
}; };
break; break;
@ -77,16 +90,16 @@ function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $ele
case ($elevator_type == "dumbwaiter" or $elevator_type == "flatbase" or $elevator_type == "positive_drive"): case ($elevator_type == "dumbwaiter" or $elevator_type == "flatbase" or $elevator_type == "positive_drive"):
switch ($discount) { switch ($discount) {
case ($discount >= 1.0): case ($discount >= 1.0):
$sales_bonus = $elevator_knockdown_price * 0.02; $sales_bonus = $pay_amount * 0.02;
break; break;
case ($discount >= 0.9 and $discount < 1.0): case ($discount >= 0.9 and $discount < 1.0):
$sales_bonus = $elevator_knockdown_price * 0.018; $sales_bonus = $pay_amount * 0.018;
break; break;
case ($discount >= 0.72 and $discount < 0.9): case ($discount >= 0.72 and $discount < 0.9):
$sales_bonus = $elevator_knockdown_price * 0.015; $sales_bonus = $pay_amount * 0.015;
break; break;
case ($discount < 0.72): case ($discount < 0.72):
$sales_bonus = $elevator_knockdown_price * 0.008; $sales_bonus = $pay_amount * 0.008;
break; break;
}; };
break; break;
@ -95,57 +108,150 @@ function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $ele
$region_manager_bonus = 600; $region_manager_bonus = 600;
break; break;
}; };
$sales_bonus = round($sales_bonus);
$pay_scale = $elevator_pay_kind['pay_scale'];
switch ($elevator_pay_kind['pay_kind']) {
//訂金
case '1':
#營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20% #營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20%
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "營銷人員銷售獎金-訂金段", #獎金名稱 "bonus_type" => "4", #獎金名稱
"bonus_receiver" => $sales_id, #發放人員 "bonus_receiver" => $sales_id, #發放人員
"bonus_amount" => round($sales_bonus * 0.2), #金額 "bonus_amount" => $sales_bonus, #金額
"payment_schedul_due" => "deposit", #訂金已收款20% "payment_schedul_due" => "deposit", #訂金已收款20%
"payment_schedul_regulation" => "訂金已收款20%,發放總獎金20%" #發放規定 "payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定
]);
#營銷人員銷售獎金水庫-----出貨前期所有款項已收齊,且出貨款已收款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% #區域經理提成獎金水庫-----訂金已收款100%,發放總獎金50%
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "區域經理提成獎金-訂金段", #獎金名稱 "bonus_type" => "11", #獎金名稱
"bonus_receiver" => $region_manger_id, #發放人員 "bonus_receiver" => $region_manger_id, #發放人員
"bonus_amount" => round($region_manager_bonus * 0.5), #金額 "bonus_amount" => round($region_manager_bonus * 0.5), #金額
"payment_schedul_due" => "deposit", #訂金已收款100% "payment_schedul_due" => "deposit", #訂金已收款100%
"payment_schedul_regulation" => "訂金已收款100%,發放總獎金50%" #發放規定 "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% #區域經理獎金水庫-----貨到工地款(含)之前所有款項已收款100%,發放總獎金50%
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "區域經理提成獎金-貨到工地款段", #獎金名稱 "bonus_type" => "12", #獎金名稱
"bonus_receiver" => $region_manger_id, #發放人員 "bonus_receiver" => $region_manger_id, #發放人員
"bonus_amount" => round($region_manager_bonus * 0.5), #金額 "bonus_amount" => round($region_manager_bonus * 0.5), #金額
"payment_schedul_due" => "deliveried", #貨到工地款(含)之前所有款項已收款100% "payment_schedul_due" => "shipping", #貨到工地款(含)之前所有款項已收款100%
"payment_schedul_regulation" => "貨到工地款(含)之前所有款項已收款100%,發放總獎金50%" #發放規定 "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;
}
// #營銷人員銷售獎金水庫-----訂金已收款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 = [ $result_array = [
"ver" => $ver, #獎金版本 "ver" => $ver, #獎金版本
"result_status" => "success", #計算結果 "result_status" => "success", #計算結果
"bonus_array" => $bonus_array #獎金水庫 "bonus_array" => $bonus_array #獎金水庫
]; ];
}
} else { } else {
array_push($bonus_array, [ array_push($bonus_array, [
"bonus_type" => "error", #獎金名稱 "bonus_type" => "error", #獎金名稱

92
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 #$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 = [ $examination_array = [
#錯誤版本 #錯誤版本
@ -55,50 +76,59 @@ $examination_array = [
["2.0", "strategy_customer", "dumbwaiter", 1000000, 900000, "M0001", "M0003"], #戰略客戶、小電梯、銷售點數90% ["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, 720000, "M0001", "M0003"], #戰略客戶、小電梯、銷售點數75%
["2.0", "strategy_customer", "dumbwaiter", 1000000, 600000, "M0001", "M0003"], #戰略客戶、小電梯、銷售點數60% ["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, 1000000, "M0001", "M0003"], #戰略客戶、平台梯、銷售點數100%
["2.0", "strategy_customer", "flatbase", 1000000, 900000, "M0001", "M0003"], #戰略客戶、平台梯、銷售點數90% // ["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, 720000, "M0001", "M0003"], #戰略客戶、平台梯、銷售點數75%
["2.0", "strategy_customer", "flatbase", 1000000, 600000, "M0001", "M0003"], #戰略客戶、平台梯、銷售點數60% // ["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, 1000000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數100%
["2.0", "strategy_customer", "positive_drive", 1000000, 900000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數90% // ["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, 720000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數75%
["2.0", "strategy_customer", "positive_drive", 1000000, 600000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數60% // ["2.0", "strategy_customer", "positive_drive", 1000000, 600000, "M0001", "M0003"], #戰略客戶、強驅、銷售點數60%
#一般客戶(general_customer) // #一般客戶(general_customer)
["2.0", "general_customer", "passenger", 1000000, 1000000, "M0001", "M0003"], #一般客戶、客梯、銷售點數100% // ["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, 900000, "M0001", "M0003"], #一般客戶、客梯、銷售點數90%
["2.0", "general_customer", "passenger", 1000000, 750000, "M0001", "M0003"], #一般客戶、客梯、銷售點數75% // ["2.0", "general_customer", "passenger", 1000000, 750000, "M0001", "M0003"], #一般客戶、客梯、銷售點數75%
["2.0", "general_customer", "passenger", 1000000, 600000, "M0001", "M0003"], #一般客戶、客梯、銷售點數60% // ["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, 1000000, "M0001", "M0003"], #一般客戶、貨梯、銷售點數100%
["2.0", "general_customer", "cargo", 1000000, 900000, "M0001", "M0003"], #一般客戶、貨梯、銷售點數90% // ["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, 750000, "M0001", "M0003"], #一般客戶、貨梯、銷售點數75%
["2.0", "general_customer", "cargo", 1000000, 600000, "M0001", "M0003"], #一般客戶、貨梯、銷售點數60% // ["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, 1000000, "M0001", "M0003"], #一般客戶、小電梯、銷售點數100%
["2.0", "general_customer", "dumbwaiter", 1000000, 900000, "M0001", "M0003"], #一般客戶、小電梯、銷售點數90% // ["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, 720000, "M0001", "M0003"], #一般客戶、小電梯、銷售點數75%
["2.0", "general_customer", "dumbwaiter", 1000000, 600000, "M0001", "M0003"], #一般客戶、小電梯、銷售點數60% // ["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, 1000000, "M0001", "M0003"], #一般客戶、平台梯、銷售點數100%
["2.0", "general_customer", "flatbase", 1000000, 900000, "M0001", "M0003"], #一般客戶、平台梯、銷售點數90% // ["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, 720000, "M0001", "M0003"], #一般客戶、平台梯、銷售點數75%
["2.0", "general_customer", "flatbase", 1000000, 600000, "M0001", "M0003"], #一般客戶、平台梯、銷售點數60% // ["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, 1000000, "M0001", "M0003"], #一般客戶、強驅、銷售點數100%
["2.0", "general_customer", "positive_drive", 1000000, 900000, "M0001", "M0003"], #一般客戶、強驅、銷售點數90% // ["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, 720000, "M0001", "M0003"], #一般客戶、強驅、銷售點數75%
["2.0", "general_customer", "positive_drive", 1000000, 600000, "M0001", "M0003"] #一般客戶、強驅、銷售點數60% // ["2.0", "general_customer", "positive_drive", 1000000, 600000, "M0001", "M0003"] #一般客戶、強驅、銷售點數60%
]; ];
for ($i = 0; $i < count($examination_array); $i++) { 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( $result = elevator_new_deal_bonus_v2_0(
$examination_array[$i][0], $examination_array[$i][0],
$examination_array[$i][1], $examination_array[$i][1],
$examination_array[$i][2], $examination_array[$i][2],
$examination_array[$i][3], $examination_array[$i][3],
$examination_array[$i][4], $examination_array[$i][4],
$arr,
$examination_array[$i][5], $examination_array[$i][5],
$examination_array[$i][6] $examination_array[$i][6]
); );
echo "<pre>";
print_r($result);
echo "</pre>";
$customer = [ $customer = [
'strategy_customer' => '戰略客戶', 'strategy_customer' => '戰略客戶',
'general_customer' => '一般客戶' 'general_customer' => '一般客戶'

46
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']; $pay_arr['equipment_total'] += $pay['pay_amount'];
if ($pay['pay_scale'] > 0) { if ($pay['pay_scale'] > 0) {
$elevotor_pay_detail = [ $elevotor_pay_detail = [
'kind' => $pay['pay_kind'], 'pay_kind' => $pay['pay_kind'],
'pay_scale' => $pay['pay_scale'], 'pay_scale' => $pay['pay_scale'],
'pay_period' => $pay['pay_period'], 'pay_period' => $pay['pay_period'],
'amount' => $pay['pay_amount'] 'pay_amount' => $pay['pay_amount']
]; ];
// $elevotor_pay_detail['pay_scale'] = $pay['pay_scale']; // $elevotor_pay_detail['pay_scale'] = $pay['pay_scale'];
// $pay_arr['elevotor_pay_detail']['kind'] = $pay['pay_kind']; // $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) { if ($pay['pay_scale'] > 0) {
$a = $pay['pay_kind']; $a = $pay['pay_kind'];
$elevotor_pay_detail = [ $elevotor_pay_detail = [
'kind' => "$a", 'pay_kind' => "$a",
'pay_scale' => $pay['pay_scale'], 'pay_scale' => $pay['pay_scale'],
'pay_period' => $pay['pay_period'], 'pay_period' => $pay['pay_period'],
'amount' => $pay['pay_amount'] 'pay_amount' => $pay['pay_amount']
]; ];
array_push($pay_arr['elevotor_pay_detail'], $elevotor_pay_detail); 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'])) { if (!empty($_GET['contracttype']) && $_GET['contracttype'] == 'accountManger' && !empty($_GET['salesman'])) {
try { try {
$salesman = $_GET['salesman']; $salesman = $_GET['salesman'];

48
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) function checkFacilityRepeatStatus($facility_no)
{ {
include_once('../conn.php');
// worksite wipwholestatus // worksite wipwholestatus
// 檢查 substring 後五碼 // 檢查 substring 後五碼
if (gettype($facility_no) == "string") { if (gettype($facility_no) == "string") {
$pdo = $this->connectionDB(); $pdo = $this->connectionDB();
$pdo->exec('SET CHARACTER SET utf8mb4'); $pdo->exec('SET CHARACTER SET utf8mb4');
$connT8 = $this->connectionDB();
// $connT8->exec('SET CHARACTER SET utf8mb4');
$sth = $pdo->prepare('SELECT * FROM `worksite` WHERE `facilityno` = ?'); $sth = $pdo->prepare('SELECT * FROM `worksite` WHERE `facilityno` = ?');
$sth->bindValue(1, $facility_no); $sth->bindValue(1, $facility_no);
$sth->execute(); $sth->execute();
@ -393,29 +413,49 @@ class CreateFacilityNo
return true; return true;
} }
$facility_no = substr($facility_no, -5); $facility_no = substr($facility_no, -5);
echo $facility_no;
$pdo = $this->connectionDB(); $pdo = $this->connectionDB();
$pdo->exec('SET CHARACTER SET utf8mb4'); $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->bindValue(1, '%' . $facility_no . '%');
$sth->execute(); $sth->execute();
if ($sth->rowCount() == 0) { if ($sth->rowCount() == 0) {
return true; 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; return false;
} }
if (gettype($facility_no) == "array") { if (gettype($facility_no) == "array") {
$pdo = $this->connectionDB(); $pdo = $this->connectionDB();
$pdo->exec('SET CHARACTER SET utf8mb4'); $pdo->exec('SET CHARACTER SET utf8mb4');
$connT8 = $this->connectionT8DB();
// $connT8->exec('SET CHARACTER SET utf8mb4');
$status = true; $status = true;
foreach ($facility_no as $row) { foreach ($facility_no as $row) {
$sth = $pdo->prepare('SELECT * FROM `worksite` WHERE `facilityno` = ?'); $sth = $pdo->prepare('SELECT * FROM `worksite` WHERE `facilityno` = ?');
$sth->bindValue(1, $row); $sth->bindValue(1, $row);
$sth->execute(); $sth->execute();
if ($sth->rowCount() !== 0) if ($sth->rowCount() !== 0) {
$status = false; $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); $row = substr($row, -5);
$pdo = $this->connectionDB(); $pdo = $this->connectionDB();
$pdo->exec('SET CHARACTER SET utf8mb4'); $pdo->exec('SET CHARACTER SET utf8mb4');

162
wms/contract/api/newElevatorBonus.php

@ -0,0 +1,162 @@
<?php
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;
$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 "<pre>";
print_r($result_bonus);
echo "</pre>";
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());
}
}

369
wms/contract/api/newElevatorT8.php

@ -0,0 +1,369 @@
<?php
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();
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 "<pre>";
print_r(json_encode($API_body, JSON_UNESCAPED_UNICODE));
echo "</pre>";
// $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 "<pre>";
print_r($result);
echo "</pre>";
if (!empty($result) && ($result['Status'] == 'Fails' || $result['Status'] == 'Error')) {
$Error_msg = $result['ErrorMsg'];
echo "<script>alert('$Error_msg')</script>";
exit();
// echo $result['ErrorMsg'];
// echo "</script>";
}
} else {
echo '資料已新增過,請洽資訊人員';
// exit();
}
// $connT8->commit();
// } catch (PDOException $e) {
// $connT8->rollback();
// header("HTTP/1.1 500 Internal Server Error");
// die('Error!:' . $e->getMessage());
// }
}

263
wms/contract/api/postContractData.php

@ -1,7 +1,6 @@
<?php <?php
header("Content-Type: text/html; charset=utf-8"); header("Content-Type: text/html; charset=utf-8");
require_once("../conn.php"); require_once("../conn.php");
// require_once("../connt8.php");
include_once("./getFacilityNo.php"); include_once("./getFacilityNo.php");
include_once("./getComboNo.php"); include_once("./getComboNo.php");
include_once("./upload_chk.php"); include_once("./upload_chk.php");
@ -68,9 +67,10 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
foreach ($elevators as $elevator) { foreach ($elevators as $elevator) {
$facility_arr[] = $dailyNecessities[$elevator['spec']]; $facility_arr[] = $dailyNecessities[$elevator['spec']];
} }
// echo json_encode($facility_arr);
// 電梯做番號 // 電梯做番號
$facilityno = $createFacilityNo->makeBFacilityNo("T", $facility_arr, (int)$num); $facilityno = $createFacilityNo->makeBFacilityNo("T", $facility_arr, (int)$num);
echo json_encode($facilityno);
// exit(); // exit();
// if ($user_id == 'M0225') { // if ($user_id == 'M0225') {
// echo '<pre>'; // echo '<pre>';
@ -79,7 +79,7 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
// exit(); // exit();
// } // }
$fail_arr = []; $fail_arr = [];
// if ($contractno === '') return $fail_arr[] = '合約號為必填'; if ($contractno === '') return $fail_arr[] = '合約號為必填';
if ($total_price == '') $fail_arr[] = '合約總價為必填'; if ($total_price == '') $fail_arr[] = '合約總價為必填';
if ($salesman == '') $fail_arr[] = '營業員為必填'; if ($salesman == '') $fail_arr[] = '營業員為必填';
if ($contract_begin_date == '') $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); echo json_encode($fail_arr, JSON_UNESCAPED_UNICODE);
exit(); exit();
} }
exit(); // T8insert($_POST, $facilityno, $depId, $connT8);
T8insert($_POST, $facilityno, $depId, $connT8);
exit();
/// 獎金計算 /// 獎金計算
$aaa = bonusCreate($_POST, $facilityno, $conn); $aaa = bonusCreate($_POST, $facilityno, $conn);
exit();
if (!empty($aaa) && $aaa['status'] == 2) { if (!empty($aaa) && $aaa['status'] == 2) {
header("HTTP/1.1 422 Unprocessable Entity"); header("HTTP/1.1 422 Unprocessable Entity");
echo $aaa['data']; 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 = '' ";
$sql = "SELECT * FROM account WHERE accountid = '$maintance_manager' "; $sql = "SELECT * FROM account WHERE accountid = '$maintance_manager' ";
$stmt = $conn->prepare($sql); $stmt = $conn->prepare($sql);
@ -306,17 +305,15 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
// 南部 : M0077 // 南部 : M0077
// 保養組長之後調整 // 保養組長之後調整
$mail_title = "保養計畫 : 合約號:" . $contractno . "作番號:" . $no . "-請安排此作番的保養人員"; $mail_title = "保養計畫 : 合約號:" . $contractno . "作番號:" . $no . "-請安排此作番的保養人員";
$mail_content = "保養計畫 : 合約號:" . $contractno . "作番號:" . $no . "-請安排此作番的保養人員 <a href='https://www.masada.com.tw/wms/schedule-index.php?contractno=$contractno&facilityno=$no&token=$token'>點我</a>"; $mail_content = "保養計畫 : 合約號:" . $contractno . "作番號:" . $no . "-請安排此作番的保養人員 <a href='https://www.masada.com.tw/wms/schedule-index.php?check=1&contractno=$contractno&facilityno=$no&token=$token'>點我</a>";
// exit(); // exit();
$mail->sendx( $mail->sendx(
$mail_title, $mail_title,
$mail_content, $mail_content,
[ [
// [$user_id, $user_detail['email']], [$user_id, $user_detail['email']],
// [$maintance_manager, $maintance_manager_detail['email']], // [$maintance_manager, $maintance_manager_detail['email']],
// ['M0012', 'Yingying@masada.com.tw'] // ['M0225', 'lkmd555@masada.com.tw']
// [$regular_contract_manger_id, $regular_contract_manger_mail['mail']],
['M0225', 'lkmd555@masada.com.tw']
// ['M0012', 'Yingying@masada.com.tw'] // ['M0012', 'Yingying@masada.com.tw']
], ],
"永佳捷科技" "永佳捷科技"
@ -400,10 +397,17 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
} else { } else {
$files = null; $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) $kind = [
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)"; '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 = $conn->prepare($sql_str);
$stmt->bindParam(":contract_no", $contractno); $stmt->bindParam(":contract_no", $contractno);
$stmt->bindParam(":contract_kind", $kind[$contract_type]);
$stmt->bindParam(":contract_type", $contract_type); $stmt->bindParam(":contract_type", $contract_type);
$stmt->bindParam(":company", $company); $stmt->bindParam(":company", $company);
$stmt->bindParam(":customer_no", $customer_no); $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(":total_price", $total_price);
$stmt->bindParam(":customer_phone", $customer_phone); $stmt->bindParam(":customer_phone", $customer_phone);
$stmt->bindParam(":customer_email", $customer_email); $stmt->bindParam(":customer_email", $customer_email);
$stmt->bindParam(":repairman", $repairman); $stmt->bindParam(":maintance_manager", $maintance_manager);
// $stmt->bindParam(":cycle", $cycle); // 保養頻率在做番上,這邊不 insert。
$stmt->bindParam(":contact_person", $contact_person); $stmt->bindParam(":contact_person", $contact_person);
$stmt->bindParam(":contact_address", $contact_address); $stmt->bindParam(":contact_address", $contact_address);
$stmt->bindParam(":contact_phone", $contact_phone); $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(":area", $area);
$stmt->bindParam(":address", $address); $stmt->bindParam(":address", $address);
$stmt->bindParam(":files_id", $files_id); $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_at", $created_at);
$stmt->bindParam(":created_by", $user_id); $stmt->bindParam(":created_by", $user_id);
$stmt->bindParam(':payType', $payType); $stmt->bindParam(':payType', $payType);
$stmt->bindParam(':signing_date', $signing_date); $stmt->bindParam(':signing_date', $signing_date);
// $stmt->bindParam(":cycle", $cycle); // 保養頻率在做番上,這邊不 insert。
// $stmt->bindParam(":bonus", $bonus);
// $stmt->bindParam(":max_bonus", $max_bonus);
$stmt->execute(); $stmt->execute();
// T8insert($_POST, $facilityno); // T8insert($_POST, $facilityno);
@ -471,6 +474,7 @@ function T8insert($data, $facilityno, $depId, $connT8)
$invoice = !empty($_POST['invoice']) ? $_POST['invoice'] : ''; $invoice = !empty($_POST['invoice']) ? $_POST['invoice'] : '';
$invoice_address = !empty($_POST['invoice_address']) ? $_POST['invoice_address'] : ''; $invoice_address = !empty($_POST['invoice_address']) ? $_POST['invoice_address'] : '';
$total_price = !empty($_POST['total_price']) ? intval($_POST['total_price']) : 0; $total_price = !empty($_POST['total_price']) ? intval($_POST['total_price']) : 0;
// $email = !empty($data['email']) ? $data['email'] : null; // $email = !empty($data['email']) ? $data['email'] : null;
// $partyAaddress = !empty($data['partyAaddress']) ? $data['partyAaddress'] : null; // 業務聯絡人地址 // $partyAaddress = !empty($data['partyAaddress']) ? $data['partyAaddress'] : null; // 業務聯絡人地址
// $num = !empty($data['num']) ? $data['num'] : null; // 電梯數量 // $num = !empty($data['num']) ? $data['num'] : null; // 電梯數量
@ -566,6 +570,7 @@ function T8insert($data, $facilityno, $depId, $connT8)
// echo '<pre>'; // echo '<pre>';
// print_r($elevators['maintainance']); // print_r($elevators['maintainance']);
// echo '</pre>'; // echo '</pre>';
foreach ($elevators as $index => $elevator) { foreach ($elevators as $index => $elevator) {
$maintainance_type = $elevator['maintainance']; $maintainance_type = $elevator['maintainance'];
if ($maintainance_type == 'A') { if ($maintainance_type == 'A') {
@ -581,16 +586,17 @@ function T8insert($data, $facilityno, $depId, $connT8)
$stmt->bindParam(':ProjectId', $contractno); $stmt->bindParam(':ProjectId', $contractno);
$stmt->execute(); $stmt->execute();
$resultProject = $stmt->fetchAll(PDO::FETCH_ASSOC); $resultProject = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (empty($resultProject)) { if (empty($resultProject)) {
//新增於 comProject。合約 table //新增於 comProject。合約 table
$sql = "INSERT INTO comProject(ProjectId,ProjectName,TypeId,ValidityFromDate,ValidityToDate,CreateTime,CreatorId,IsInUsed) $sql = "INSERT INTO comProject(ProjectId,ProjectName,TypeId,CreateTime,CreatorId,IsInUsed)
VALUES(:ProjectId,:ProjectName,:TypeId,:ValidityFromDate,:ValidityToDate,:CreateTime,:CreatorId,1)"; VALUES(:ProjectId,:ProjectName,:TypeId,:CreateTime,:CreatorId,1)";
$stmt = $connT8->prepare($sql); $stmt = $connT8->prepare($sql);
$stmt->bindParam(':ProjectId', $contractno); $stmt->bindParam(':ProjectId', $contractno);
$stmt->bindParam(':ProjectName', $customer); $stmt->bindParam(':ProjectName', $customer);
$stmt->bindParam(':TypeId', $type); $stmt->bindParam(':TypeId', $type);
$stmt->bindParam(':ValidityFromDate', $beginDate); // $stmt->bindParam(':ValidityFromDate', $beginDate);
$stmt->bindParam(':ValidityToDate', $endDate); // $stmt->bindParam(':ValidityToDate', $endDate);
$stmt->bindParam(':CreateTime', $createTime); $stmt->bindParam(':CreateTime', $createTime);
$stmt->bindParam(':CreatorId', $user_id); $stmt->bindParam(':CreatorId', $user_id);
$stmt->execute(); $stmt->execute();
@ -598,7 +604,6 @@ function T8insert($data, $facilityno, $depId, $connT8)
$row = 0; $row = 0;
// // 新增電梯數 // // 新增電梯數
foreach ($elevators as $index => $elevator) { foreach ($elevators as $index => $elevator) {
$facility_no = $facilityno[$index]; $facility_no = $facilityno[$index];
$sql = "INSERT INTO comMaterial $sql = "INSERT INTO comMaterial
(FOrgid,MaterialId,MaterialTypeId,MaterialCategoryId,CreatorId,CreateTime) (FOrgid,MaterialId,MaterialTypeId,MaterialCategoryId,CreatorId,CreateTime)
@ -638,14 +643,11 @@ function T8insert($data, $facilityno, $depId, $connT8)
]; ];
// 幾年 // 幾年
// $SQuantityYear = $elevator['maintain_months'] / 12; // $SQuantityYear = $elevator['maintain_months'] / 12;
// 單台電梯契約報價
$price_of_month = intval($elevator['sold_price']); $price_of_month = intval($elevator['sold_price']);
print_r($price_of_month);
exit;
//分幾期 () => 總共保養月 / 分期月 //分幾期 () => 總共保養月 / 分期月
$SQuantitya = $elevator['maintain_months'] / $IncomeId[$payType]; $SQuantitya = $elevator['maintain_months'] / $IncomeId[$payType];
$SQuantity = $IncomeId[$payType]; $SQuantity = $IncomeId[$payType];
$date_1 = getNext25thDate($contract_begin_date); $date_1 = getNext25thDate($contract_begin_date);
// 依每台電梯去加入各個的付款項 // 依每台電梯去加入各個的付款項
@ -673,11 +675,13 @@ function T8insert($data, $facilityno, $depId, $connT8)
} }
} }
$count_rows_data = COUNT($salIncomeApplyDetail_rows); $count_rows_data = COUNT($salIncomeApplyDetail_rows);
$T8total = $price_of_month * $count_rows_data; $T8total = $price_of_month * $elevator['maintain_months'];
// echo "<pre>"; // echo "<pre>";
// print_r($salIncomeApplyDetail_rows); // print_r($T8total);
// echo "</pre>"; // echo "</pre>";
// exit;
if ($T8total != $total_price) { if ($T8total != $total_price) {
echo '1';
$difference = $T8total - $total_price; $difference = $T8total - $total_price;
$salIncomeApplyDetail_rows[$count_rows_data - 1]['SPrice'] = $salIncomeApplyDetail_rows[$count_rows_data - 1]['SPrice'] - $difference; $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", "DeptId" => "$depId",
"IsPriceWithTax" => 1, "IsPriceWithTax" => 1,
"CU_ContractStart" => intval($beginDate), "CU_ContractStart" => intval($beginDate),
"CU_ContractEnd" => intval($endDate) "CU_ContractEnd" => intval($endDate),
"AddrId" => "$invoice_address"
]; ];
$salIncomeApplyMaster = [ $salIncomeApplyMaster = [
@ -724,14 +729,12 @@ function T8insert($data, $facilityno, $depId, $connT8)
echo '<pre>'; echo '<pre>';
print_r(json_encode($API_body)); print_r(json_encode($API_body));
echo '</pre>'; echo '</pre>';
// exit();
// $api_url = 'http://10.10.145.2:880/twWebAPI/V1/SALINCOMEAPPLY/PostERPData'; //正式區 // $api_url = 'http://10.10.145.2:880/twWebAPI/V1/SALINCOMEAPPLY/PostERPData'; //正式區
$api_url = "http://60.244.87.101:880/twWebAPI/V1/SALINCOMEAPPLY/PostERPData"; //測試區 $api_url = "http://60.244.87.101:880/twWebAPI/V1/SALINCOMEAPPLY/PostERPData"; //測試區
$result = T8salIncomeApply($API_body, $api_url); $result = T8salIncomeApply($API_body, $api_url);
// echo '<pre>'; // echo '<pre>';
// print_r($result); // print_r($result);
// echo '</pre>'; // echo '</pre>';
// exit();
if ($result['Status'] == 'Error' || $result['Status'] == 'Fails') { if ($result['Status'] == 'Error' || $result['Status'] == 'Fails') {
http_response_code(404); http_response_code(404);
die('Error!:' . $result['ErrorMsg']); die('Error!:' . $result['ErrorMsg']);
@ -741,7 +744,7 @@ function T8insert($data, $facilityno, $depId, $connT8)
function bonusCreate($data, $facilityno, $conn) function bonusCreate($data, $facilityno, $conn)
{ {
try { // try {
require_once("../../bonus/maintance/maintaenance_contract_bonus.php"); require_once("../../bonus/maintance/maintaenance_contract_bonus.php");
// require_once("../../bonus/other/maintenance_longterm_contract_m1_free_charge_bonus_v2_1_1.php"); // require_once("../../bonus/other/maintenance_longterm_contract_m1_free_charge_bonus_v2_1_1.php");
@ -772,9 +775,9 @@ function bonusCreate($data, $facilityno, $conn)
$facility_no = $facilityno[$key]; $facility_no = $facilityno[$key];
$ver = $elevator['bonus_verson']; //獎金版本 $ver = $elevator['bonus_verson']; //獎金版本
$payment_period = $payment[$payType]; //付款方式 $payment_period = $payment[$payType]; //付款方式
$elevator_list_price = !empty(($elevator['stand_price'])) ? intval($elevator['stand_price']) : ''; //牌價 $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)) : ''; //作翻契約金額 (不含稅) $fee_per_st = !empty($elevator['sold_price']) ? intval(round($elevator['sold_price'] / 1.05, 2)) : 0; //作翻契約金額 (不含稅)
$commission_fee = !empty($elevator['service_expense']) ? $elevator['service_expense'] : ''; //服務費(月/台) $commission_fee = !empty($elevator['service_expense']) ? intval($elevator['service_expense']) : 0; //服務費(月/台)
$receivable_date_due = $payDay; //第一筆保養款項收回日 $receivable_date_due = $payDay; //第一筆保養款項收回日
$sales_id = $salesman; //營業人員 $sales_id = $salesman; //營業人員
$discount = $elevator['discount'] / 100; $discount = $elevator['discount'] / 100;
@ -794,90 +797,89 @@ function bonusCreate($data, $facilityno, $conn)
break; break;
} }
$renew_priceissue_bonus = []; $renew_priceissue_bonus = [];
// $years = ($maintain_months % 12) == 0 ? $maintain_months / 12 : ''; $years = ($maintain_months % 12) == 0 ? $maintain_months / 12 : '';
///////////////////////////////// ///////////////////////////////
// 如果保養合約 大於一年 2.0版本 // 如果保養合約 大於一年 2.0版本
// if (!empty($maintain_months)) { if (!empty($maintain_months)) {
// if ($ver == '2.1') { if ($ver == '2.1') {
// if ($maintain_months > 12 && $contract_type == 'new') { if ($maintain_months > 12 && $contract_type == 'new') {
// // 第一年為 "新簽約" // 第一年為 "新簽約"
// $results = maintenance_contract_bonus_v2_1( $results = maintenance_contract_bonus_v2_1(
// $ver, $ver,
// $contract_type, $contract_type,
// $payment_period, $payment_period,
// $elevator_list_price, $elevator_list_price,
// $fee_per_st, $fee_per_st,
// $commission_fee, $commission_fee,
// $receivable_date_due, $receivable_date_due,
// $sales_id, $sales_id,
// $region_director_id, $region_director_id,
// $regular_contract_manger_id $regular_contract_manger_id
// ); );
// for ($i = 1; $i <= $years - 1; $i++) { for ($i = 1; $i <= $years - 1; $i++) {
// $contract_type = 'renew_priceissue'; $contract_type = 'renew_priceissue';
// $receivable_date_due_renew = date("Y-m-d", strtotime("$receivable_date_due + $i year")); $receivable_date_due_renew = date("Y-m-d", strtotime("$receivable_date_due + $i year"));
// // 第二年以上改 "續約" // 第二年以上改 "續約"
// $renew_priceissue_bonus[] = maintenance_contract_bonus_v2_1( $renew_priceissue_bonus[] = maintenance_contract_bonus_v2_1(
// $ver, $ver,
// $contract_type, $contract_type,
// $payment_period, $payment_period,
// $elevator_list_price, $elevator_list_price,
// $fee_per_st, $fee_per_st,
// $commission_fee, $commission_fee,
// $receivable_date_due_renew, $receivable_date_due_renew,
// $sales_id, $sales_id,
// $region_director_id, $region_director_id,
// $regular_contract_manger_id $regular_contract_manger_id
// ); );
// } }
// } else if ($maintain_months > 12 && $contract_type == 'renew_priceissue') { } else if ($maintain_months > 12 && $contract_type == 'renew_priceissue') {
// // 超過一年的 "續約" // 超過一年的 "續約"
// for ($i = 0; $i < $years; $i++) { for ($i = 0; $i < $years; $i++) {
// $contract_type = 'renew_priceissue'; $contract_type = 'renew_priceissue';
// $renew_priceissue_bonus[] = maintenance_contract_bonus_v2_1( $renew_priceissue_bonus[] = maintenance_contract_bonus_v2_1(
// $ver, $ver,
// $contract_type, $contract_type,
// $payment_period, $payment_period,
// $elevator_list_price, $elevator_list_price,
// $fee_per_st, $fee_per_st,
// $commission_fee, $commission_fee,
// $receivable_date_due, $receivable_date_due,
// $sales_id, $sales_id,
// $region_director_id, $region_director_id,
// $regular_contract_manger_id $regular_contract_manger_id
// ); );
// } }
// } else if ($maintain_months >= 60 && $contract_type = 'longcontract_m1_free_charge') { } else if ($maintain_months >= 60 && $contract_type = 'longcontract_m1_free_charge') {
// // 五年以上長約 // 五年以上長約
// $results = maintenance_longterm_contract_m1_free_charge_bonus_v2_1( $results = maintenance_longterm_contract_m1_free_charge_bonus_v2_1(
// $ver, $ver,
// $contract_type, $contract_type,
// $payment_period, $payment_period,
// $maintain_months, $maintain_months,
// $elevator_list_price, $elevator_list_price,
// $fee_per_st, $fee_per_st,
// $commission_fee, $commission_fee,
// $receivable_date_due, $receivable_date_due,
// $sales_id, $sales_id,
// $region_director_id, $region_director_id,
// $regular_contract_manger_id $regular_contract_manger_id
// ); );
// } else { } else {
// $results = maintenance_contract_bonus_v2_1( $results = maintenance_contract_bonus_v2_1(
// $ver, $ver,
// $contract_type, $contract_type,
// $payment_period, $payment_period,
// $elevator_list_price, $elevator_list_price,
// $fee_per_st, $fee_per_st,
// $commission_fee, $commission_fee,
// $receivable_date_due, $receivable_date_due,
// $sales_id, $sales_id,
// $region_director_id, $region_director_id,
// $regular_contract_manger_id $regular_contract_manger_id
// ); );
// } }
// } else } else if ($ver == '2.0') {
if ($ver == '2.0') {
$contract_years = $years > 2 ? 'above_two' : 'one'; $contract_years = $years > 2 ? 'above_two' : 'one';
// echo $contract_years; // echo $contract_years;
@ -896,9 +898,9 @@ function bonusCreate($data, $facilityno, $conn)
} }
// } // }
///////////////////////////////// /////////////////////////////////
// echo "<pre>"; echo "<pre>";
// print_r($results); print_r($results);
// echo "</pre>"; echo "</pre>";
///////////////////////////////// /////////////////////////////////
$bonus_json = [ $bonus_json = [
'contract_type' => $contract_type, 'contract_type' => $contract_type,
@ -943,7 +945,6 @@ function bonusCreate($data, $facilityno, $conn)
$stmt->execute(); $stmt->execute();
} }
} }
}
$request = [ $request = [
"status" => "1", "status" => "1",
"data" => "Success" "data" => "Success"
@ -954,15 +955,17 @@ function bonusCreate($data, $facilityno, $conn)
"data" => "create_bonus_error" "data" => "create_bonus_error"
]; ];
} }
// exit(); }
}
} }
return $request; return $request;
// exit(); // exit();
} catch (PDOException $e) { // } catch (PDOException $e) {
http_response_code(404); // http_response_code(404);
echo $e->getMessage(); // echo $e->getMessage();
die('Error!:' . $e->getMessage()); // die('Error!:' . $e->getMessage());
} // }
} }
// 計算保養開始日期的當月25號 // 計算保養開始日期的當月25號

526
wms/contract/api/postNewContractData.php

@ -8,6 +8,8 @@ require_once("../conn.php");
include_once("./getFacilityNo.php"); include_once("./getFacilityNo.php");
include_once("./getComboNo.php"); include_once("./getComboNo.php");
include_once("./upload_chk.php"); include_once("./upload_chk.php");
include_once("./newElevatorBonus.php");
include_once("./newElevatorT8.php");
ini_set('date.timezone', 'Asia/Taipei'); ini_set('date.timezone', 'Asia/Taipei');
@ -33,10 +35,8 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
$area_no = $_POST['area_no']; $area_no = $_POST['area_no'];
$elevators = json_decode($_POST['elevators'], JSON_UNESCAPED_UNICODE); $elevators = json_decode($_POST['elevators'], JSON_UNESCAPED_UNICODE);
$elevators_detail_arr = json_decode($_POST['elevators_detail_arr'], JSON_UNESCAPED_UNICODE); $elevators_detail_arr = json_decode($_POST['elevators_detail_arr'], JSON_UNESCAPED_UNICODE);
// echo "<pre>";
// print_r($elevators_detail_arr);
// echo "</pre>";
// exit();
$files = !empty($_FILES['files']) ? $_FILES['files'] : null; $files = !empty($_FILES['files']) ? $_FILES['files'] : null;
$files_id = null; $files_id = null;
@ -44,13 +44,14 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
if (empty($contractno)) $fail_arr[] = '合約號為必填'; if (empty($contractno)) $fail_arr[] = '合約號為必填';
if (empty($customer)) $fail_arr[] = '客戶名稱為必填'; if (empty($customer)) $fail_arr[] = '客戶名稱為必填';
if (empty($manager)) $fail_arr[] = '負責人為必填'; if (empty($manager)) $fail_arr[] = '負責人為必填';
// if (empty($vat)) $fail_arr[] = '統編/身分證為必填';
if (empty($case_name)) $fail_arr[] = '案名為必填'; if (empty($case_name)) $fail_arr[] = '案名為必填';
if (empty($linkman)) $fail_arr[] = '聯絡人為必填'; if (empty($linkman)) $fail_arr[] = '聯絡人為必填';
if (empty($lm_tel)) $fail_arr[] = '聯絡人電話為必填'; if (empty($lm_tel)) $fail_arr[] = '聯絡人電話為必填';
if (empty($address)) $fail_arr[] = '地址為必填'; if (empty($address)) $fail_arr[] = '地址為必填';
if (empty($salesman)) $fail_arr[] = '營業員為必填'; if (empty($salesman)) $fail_arr[] = '營業員為必填';
// if (empty($elevators_detail_arr['qc'])) $fail_arr[] = '請選擇QC或官檢'; // if (empty($elevators_detail_arr['qc'])) $fail_arr[] = '請選擇QC或官檢';
// if (empty($vat)) $fail_arr[] = '統編/身分證為必填';
if (count($fail_arr) > 0) { if (count($fail_arr) > 0) {
header("HTTP/1.1 422 Unprocessable Entity"); header("HTTP/1.1 422 Unprocessable Entity");
echo json_encode($fail_arr, JSON_UNESCAPED_UNICODE); 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); echo json_encode($facilityno);
// $bonus_result = BounsCount($_POST, $conn, $facilityno); // $bonus_result = BounsCount($_POST, $conn, $facilityno);
// echo "<pre>";
// print_r($bonus_result);
// echo "</pre>";
// exit();
// if (!empty($bonus_result) && $bonus_result['status'] == "2") { // if (!empty($bonus_result) && $bonus_result['status'] == "2") {
// $fail_arr[] = '獎金計算錯誤,請再檢查或連繫資訊人員'; // $fail_arr[] = '獎金計算錯誤,請再檢查或連繫資訊人員';
// // header("HTTP/1.1 422 Unprocessable Entity"); // // header("HTTP/1.1 422 Unprocessable Entity");
@ -85,7 +89,7 @@ if (isset($_POST["contractno"]) && $_POST["contractno"] != "" && isset($_POST['c
// } // }
T8Insert($_POST, $facilityno, $connT8); T8Insert($_POST, $facilityno, $connT8);
// exit(); exit();
try { try {
$conn->beginTransaction(); $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 "<pre>";
print_r(json_encode($API_body, JSON_UNESCAPED_UNICODE));
echo "</pre>";
// $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 "<pre>";
print_r($result);
echo "</pre>";
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) function do_wws_assign1($user_id, $form_id, $flow_code, $conn)
{ {

150
wms/contract/api/test copy.json

@ -1,43 +1,115 @@
[ [
{ {
"apply_key": "11111111", "name": "MainSalesOrder",
"register_code": "B32510261185", "rows": [
"elevator_brand": "1", {
"elevator_kind": "E", "BillNo": "M24020076",
"spec": "MAH100", "BillDate": 20240306,
"weight": "450", "TypeId": "SO",
"speed": "45.00", "FOrgId": "1000",
"stop": "3", "OrgId": "1000",
"floors": "3", "ModeId": "M",
"persons": "6", "BizPartnerId": "M24020076",
"elevator_num": "0", "CurrId": "TWD",
"useful_years": "106", "CurrOAmount": 1,
"last_check_date": "1", "CurrLAmount": 1,
"speed_governors_check_expense": "0", "PersonId": "M0073",
"maintain_times": "1", "DueToId": "M24020076",
"is_m1_bundle": "N", "TradeConditionId": "",
"maintainance": "B", "TaxId": "ST005",
"maintain_months": "12", "CreditorCompId": "1001",
"maintain_period": "1", "CreditorOrgId": "1000",
"stand_price": "1250.00", "CreatorId": "M0225"
"contract_price": "1250.00", }
"sold_price": 1250, ]
"commission_expense": null, },
"management_expense": null, {
"annual_survey_expense": "0.00", "name": "SubOrder",
"service_expense": 0, "rows": [
"cmstatus": "Y", {
"updated_at": null, "TaxId": "ST005",
"creater": null, "RequirementDate": 20240306,
"created_at": "2024-02-26 15:24:23", "ConsignmentDate": 20240306,
"discount": 100, "BillNo": "M24020076",
"latitude": "112", "RowCode": 1,
"longitude": "11", "ItemType": 1,
"takecertificatedate": "112", "MaterialId": "A40001",
"opendoor": "2PCO", "SUnitId": "SET",
"useful_date": "113-01-01", "SQuantity": 1,
"bonus_verson": "2.0", "SPrice": 910000,
"manager": "M0029", "CU_MaterialId": "4MW00001"
"regular_contract_manger_id": "M0054" },
{
"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
}
]
} }
] ]

3
wms/contract/conn.php

@ -34,11 +34,10 @@ try {
//設定主動以警告的形式報錯 //設定主動以警告的形式報錯
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $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=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=T8MASADA", "masada", "@m222222");
$connT8 = new PDO("sqlsrv:Server=220.130.203.251;Database=T8TEST", "M0225", "IFFBU1E=");
if ($connT8) { if ($connT8) {
$connT8->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $connT8->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} }

8
wms/contract/contract-input.php

@ -119,7 +119,7 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC);
<tr> <tr>
<td style="vertical-align: middle">簽約日</td> <td style="vertical-align: middle">簽約日</td>
<td> <td>
<input class="form-control disabled_select" type="date" name="end_date" x-model="data.signing_date"> <input class="form-control disabled_select" type="date" name="end_date" x-model="data.signing_date" @change="console.log($event.target.value)">
<p class="alerttext" x-show="data.signing_date==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> <p class="alerttext" x-show="data.signing_date==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
</td> </td>
<td style="vertical-align: middle">合約開始時間</td> <td style="vertical-align: middle">合約開始時間</td>
@ -134,7 +134,7 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC);
</td> </td>
<td style="vertical-align: middle">契約成交價</td> <td style="vertical-align: middle">契約成交價(月)</td>
<td> <td>
<input class="form-control disabled_select" type="number" name="tel" x-model="data.total_price" :disabled="data.disabled"> <input class="form-control disabled_select" type="number" name="tel" x-model="data.total_price" :disabled="data.disabled">
<p class="alerttext" x-show="data.total_price==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> <p class="alerttext" x-show="data.total_price==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p>
@ -143,7 +143,7 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC);
<tr> <tr>
<td style="vertical-align: middle">發票抬頭</td> <td style="vertical-align: middle">發票抬頭</td>
<td> <td>
<input class="form-control disabled_select" type="text" name="uscc" x-model="data.invoice"> <input class="form-control disabled_select" type="text" name="uscc" x-model="data.invoice" @change="console.log($event.target.value)">
<!-- <p class=" alerttext" x-show="data.invoice==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> --> <!-- <p class=" alerttext" x-show="data.invoice==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> -->
</td> </td>
<td style="vertical-align: middle">統一編號/身分證</td> <td style="vertical-align: middle">統一編號/身分證</td>
@ -217,7 +217,7 @@ $contractpersons = $stmt->fetchAll(PDO::FETCH_ASSOC);
<td style="vertical-align: middle">保養經理</td> <td style="vertical-align: middle">保養經理</td>
<td> <td>
<select class="ui search dropdown" name="repairer_name" x-model="data.maintance_manager"> <select class="ui search dropdown" name="maintance_manager" x-model="data.maintance_manager">
<option value="">選擇保養經理</option> <option value="">選擇保養經理</option>
<option value="M0090">M0090--顏慶豪(北北基)</option> <option value="M0090">M0090--顏慶豪(北北基)</option>
<option value="M0223">M0223--鄭登元(桃竹)</option> <option value="M0223">M0223--鄭登元(桃竹)</option>

247
wms/contract/contract-renovate-input.php

@ -0,0 +1,247 @@
<?php
include('../header.php');
require_once('./conn.php');
$sql = "SELECT * FROM employee WHERE depart_no IN ('320','311','312','313','314','315','511','512','513','514','515') ";
$stmt = $conn->prepare($sql);
// $stmt->bindParam(':depart_no', $depart_no);
$stmt->execute();
$contractSalesman = $stmt->fetchAll(PDO::FETCH_ASSOC);
// echo '<pre>';
// print_r($contractSalesman);
// echo '</pre>';
?>
<link rel="stylesheet" href="./styles/style.css">
<link rel="stylesheet" href="./semantic/dist/semantic.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="./js/alpine.js"></script>
<script defer src="./js/alpinejs/cdn.min.js"></script>
<script src="./js/axios/axios.min.js"></script>
<script src="./js/jquery/jquery-3.1.1.min.js"></script>
<script src="./semantic/dist/semantic.min.js"></script>
<div class="renovate_input" x-data="renovateInput">
<div class="form" method="post" id="form" enctype="multipart/form-data">
<input type="hidden" name="form_name" value="main_form">
<div>
<table class="table table-borderd query-table table-striped table-bordered display compact" style="width:99%; margin-left:.5%">
<thead>
<tr>
<td colspan="8">
<h3 style="text-align:center">汰改合約入力</h3>
</td>
</tr>
</thead>
<template x-if="step==1">
<tbody style="font-weight:bolder; margin:botton 20px">
<tr>
<td style="vertical-align:middle;">合約號</td>
<td colspan="6">
<input type="text" class="form-control" @keyup="nextStepKeyupFn($event)" name="contract_no" x-model="data.contract_no">
</td>
<td colspan="1" style="vertical-align:middle"></td>
</tr>
</tbody>
</template>
<template x-if="step==1">
<tbody style="font-weight:bolder; margin:botton 20px" x-show="step==1">
<tr>
<td colspan="7" style="vertical-align:middle;border-right:0px;">
<h4>業務確認項</h4>
</td>
<td class="text-right" style="border-left:0px">
<button type="button" id="btn_back" class="btn btn-default" onclick="location.reload()">返回</button>
<button type="button" id="btn_close" class="btn btn-default" onclick="window.close()">關閉</button>
</td>
</tr>
<tr>
<td style="vertical-align:middle">立約人</td>
<td>
<input type="text" x-model="data.customer">
</td>
<td style="vertical-align:middle">營業員</td>
<td>
<!-- <input x-show="data.salesman" type="text" x-model="data.salesman" name="promiser"> -->
<select x-model="data.salesman" class="ui fluid search dropdown" name="salesman">
<option value="">------</option>
<?php foreach ($contractSalesman as $salesman) : ?>
<option value="<?= $salesman['employee_no'] ?>"><?= $salesman['employee_no'] ?>--<?= $salesman['name'] ?></option>
<?php endforeach; ?>
</select>
</td>
<td style="vertical-align:middle">地址</td>
<td>
<input type="text" x-model="data.address">
</td>
<td></td>
</tr>
<!-- 客戶款別分別如何分期 -->
<div>
<tr>
<td colspan='8' style="vertical-align:middle ">款別分期</td>
</tr>
<tr>
<td colspan='1'>付款辦法</td>
<td colspan='1'>款別</td>
<td colspan='1'>比例%</td>
<td colspan='2'>金額</td>
<td colspan='1'>繳款方式(月)</td>
</tr>
<tr>
<td rowspan="3">材料</td>
<td>1、訂金</td>
<td>
<input type="text">
</td>
<td colspan="2">
<input type="text">
</td>
<td>
<select x-model=data.paykind[0] @change="totalFn()">
<template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> -->
<option x-text="pay"></option>
</template>
</select>
</td>
</tr>
<tr>
<td>2、二次款</td>
<td>
<input type="text">
</td>
<td colspan="2">
<input type="text">
</td>
<td>
<select x-model=data.paykind[1] @change="totalFn()">
<template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> -->
<option x-text="pay"></option>
</template>
</select>
</td>
</tr>
<tr>
<td>3、貨到工地款</td>
<td>
<input type="text">
</td>
<td colspan="2">
<input type="text">
</td>
<td>
<select x-model=data.paykind[2] @change="totalFn()">
<template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> -->
<option x-text="pay"></option>
</template>
</select>
</td>
</tr>
<tr>
<td rowspan="3">安裝</td>
<td>5、安裝完畢款</td>
<td>
<input type="text">
</td>
<td colspan="2">
<input type="text">
</td>
<td>
<select x-model=data.paykind[4] @change="totalFn()">
<template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> -->
<option x-text="pay"></option>
</template>
</select>
</td>
</tr>
<tr>
<td>6、驗收款</td>
<td>
<input type="text">
</td>
<td colspan="2">
<input type="text">
</td>
<td>
<select x-model=data.paykind[5] @change="totalFn()">
<template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> -->
<option x-text="pay"></option>
</template>
</select>
</td>
</tr>
<tr>
<td>7、其他</td>
<td>
<input type="text">
</td>
<td colspan="2">
<input type="text">
</td>
<td>
<select x-model=data.paykind[6] @change="totalFn()">
<template x-for="pay in data.payarr" :key="pay">
<!-- <option value=""></option> -->
<option :value="pay" x-text="pay"></option>
</template>
</select>
</td>
</tr>
<tr>
<td colspan="2">合計</td>
<td>
<input type="text" disabled>
</td>
<td colspan="2">
<input type="text" disabled>
</td>
<td>
<input type="text" x-model="data.total" disabled>
</td>
</tr>
</div>
</tbody>
</template>
</table>
<button x-show="step==3" @click="save()" type="button" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading">
<template x-if="!isLoading">
<span>存檔</span>
</template>
<template x-if="isLoading">
<span class="loader"></span>
</template>
</button>
<button x-show="step<2" @click="nextStepFn()" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading">
<template x-if="!isLoading">
<span>下一步</span>
</template>
<template x-if="isLoading">
<span class="loader"></span>
</template>
</button>
<button x-show="step>1" @click="preStepFn()" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading">
<template x-if="!isLoading">
<span>上一步</span>
</template>
<template x-if="isLoading">
<span class="loaders"></span>
</template>
</button>
</div>
</div>
</div>

70
wms/contract/js/alpine.js

@ -841,7 +841,7 @@ const contractNewInput = () => {
this.getContractDate(); this.getContractDate();
} else if (this.step == 2) { } else if (this.step == 2) {
if (this.data.nums <= 0) return alert('請填寫電梯數量!') if (this.data.nums <= 0) return alert('請填寫電梯數量!')
checkInput(); // checkInput();
this.getElevatorsData(); this.getElevatorsData();
} else if (this.step == 3) { } else if (this.step == 3) {
this.getElevatorsData(); this.getElevatorsData();
@ -1227,7 +1227,6 @@ const contractInput = () => {
form.append('phone', this.data.phone); form.append('phone', this.data.phone);
form.append('email', this.data.email); form.append('email', this.data.email);
form.append('mworker', this.data.mworker); form.append('mworker', this.data.mworker);
// form.append('mcycle', this.data.mcycle);
form.append('salesman', this.data.salesman); form.append('salesman', this.data.salesman);
form.append('contract_begin_date', this.data.contract_begin_date); form.append('contract_begin_date', this.data.contract_begin_date);
form.append('contract_end_date', this.data.contract_end_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('contract_type', this.data.contract_type);
form.append('signing_date', this.data.signing_date); form.append('signing_date', this.data.signing_date);
form.append('maintance_manager', this.data.maintance_manager); 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++) { for (var i = 0; i < this.data.files.length; i++) {
@ -1605,3 +1606,68 @@ const contractNewApply = () => {
} }
} }
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);
}
}
}
Loading…
Cancel
Save