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