45 changed files with 3539 additions and 1222 deletions
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -0,0 +1,236 @@ |
|||||
|
<?php |
||||
|
/* |
||||
|
獎金辦法 1.0_1 說明,需要查看合約收入的款項去發放該款項的獎金 |
||||
|
|
||||
|
|
||||
|
函數用法與參數 |
||||
|
【1.輸入參數:】 |
||||
|
獎金版本($ver):1.0 |
||||
|
合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer) |
||||
|
1.0 作番賣價($elevator_knockdown_price):電梯的合約最後成交價 |
||||
|
1.0_1 作番賣價($elevator_knockdown_price) : 電梯合約價格收款階段比例金額 |
||||
|
|
||||
|
營業員員工號($sales_id) |
||||
|
區域經理員工號($region_manger_id) |
||||
|
|
||||
|
【2.函數中的變數說明】 |
||||
|
營業員獎金($sales_bonus) |
||||
|
區域經理獎金($region_manager_bonus) |
||||
|
獎金預計發放階段($payment_schedule_due):deposit(訂金)、shipping(出貨款)、deliveried(貨到工地款)、acceptance(驗收款) |
||||
|
獎金預計發放規定($payment_schedule_regulation):訂金收齊、出貨款收齊、貨到工地款收齊、驗收款收齊 |
||||
|
計算結果($result_status):success, error |
||||
|
獎金水庫(bonus_array)[ |
||||
|
bonus_type:獎金名稱, |
||||
|
bonus_receiver:發放人員, |
||||
|
bonus_amount:金額, |
||||
|
payment_schedul_due:預計發放階段 |
||||
|
payment_schedul_regulation, 發放規定 |
||||
|
] |
||||
|
|
||||
|
【3.輸出數據】 |
||||
|
result_array[ |
||||
|
"ver"=>$ver, #獎金版本 |
||||
|
"result_status"=>"success", #計算結果 |
||||
|
"$bonus_array"=>$bonus_array #所有獎金水庫 |
||||
|
]; |
||||
|
|
||||
|
*/ |
||||
|
|
||||
|
/* paykind_arr =[ |
||||
|
[ |
||||
|
pay_kind -- 1=訂金、2=二次款、3=貨到工地款、4=材料其他、5=安裝完畢、6=驗收款、7=其他安裝款 |
||||
|
pay_scale -- 百分比 |
||||
|
pay_amount -- 金額 |
||||
|
], |
||||
|
[ |
||||
|
|
||||
|
] |
||||
|
] |
||||
|
*/ |
||||
|
|
||||
|
function elevator_new_deal_bonus_v1_0($ver, $contract_type, $elevator_pay_kind, $sales_id, $region_manger_id) |
||||
|
{ |
||||
|
// echo "<pre>"; |
||||
|
// print_r($elevator_pay_kind); |
||||
|
// echo "</pre>"; |
||||
|
// exit; |
||||
|
$bonus_array = []; |
||||
|
if ($ver == "1.0") { |
||||
|
|
||||
|
#合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer) |
||||
|
foreach ($elevator_pay_kind as $elevator_pay_kind) { |
||||
|
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; |
||||
|
|
||||
|
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']; |
||||
|
// echo "<pre>"; |
||||
|
// print_r($pay_scale); |
||||
|
// echo "</pre>"; |
||||
|
switch ($elevator_pay_kind['pay_kind']) { |
||||
|
|
||||
|
case '1': |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "營銷人員銷售獎金-訂金段", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => $sales_bonus, #金額 |
||||
|
"payment_schedul_due" => "deposit", #訂金已收款20% |
||||
|
"payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
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%" #發放規定 |
||||
|
]); |
||||
|
break; |
||||
|
case '2': |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "營銷人員銷售獎金-二次段", #獎金名稱 |
||||
|
"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_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => $sales_bonus, #金額 |
||||
|
"payment_schedul_due" => "shipping", #訂金已收款20% |
||||
|
"payment_schedul_regulation" => "出貨前期所有款項已收齊,且出貨款已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
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%" #發放規定 |
||||
|
]); |
||||
|
break; |
||||
|
|
||||
|
case '4': |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "營銷人員銷售獎金-材料其他段", #獎金名稱 |
||||
|
"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_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_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_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => $sales_bonus, #金額 |
||||
|
"payment_schedul_due" => "installOther", #訂金已收款20% |
||||
|
"payment_schedul_regulation" => "訂金已收款$pay_scale%,發放總獎金$pay_scale%" #發放規定 |
||||
|
]); |
||||
|
break; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
#營銷人員銷售獎金水庫-----訂金已收款20%,發放總獎金20% |
||||
|
// array_push($bonus_array, [ |
||||
|
// "bonus_type" => "營銷人員銷售獎金-訂金段", #獎金名稱 |
||||
|
// "bonus_receiver" => $sales_id, #發放人員 |
||||
|
// "bonus_amount" => round($sales_bonus * 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%" #發放規定 |
||||
|
// ]); |
||||
|
|
||||
|
#營銷人員銷售獎金水庫-----驗收前期所有款項已收齊,且驗收款已收款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", #獎金名稱 |
||||
|
"bonus_receiver" => "error", #發放人員 |
||||
|
"bonus_amount" => 0, #金額 |
||||
|
"payment_schedul_due" => "9999-1-1", #預計發放時間 |
||||
|
"payment_schedul_regulation" => "error" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
$result_array = [ |
||||
|
"ver" => $ver, #獎金版本 |
||||
|
"result_status" => "error", #計算結果 |
||||
|
"bonus_array" => $bonus_array #獎金水庫 |
||||
|
]; |
||||
|
}; |
||||
|
|
||||
|
return $result_array; |
||||
|
}; |
@ -0,0 +1,166 @@ |
|||||
|
<?php |
||||
|
/* |
||||
|
獎金辦法 2.0_1 說明,需要查看合約收入的款項去發放該款項的獎金 |
||||
|
函數用法與參數 |
||||
|
【1.輸入參數:】 |
||||
|
獎金版本($ver):2.0 |
||||
|
合約總類($contract_type):戰略客戶(strategy_customer)、一般客戶(general_customer) |
||||
|
作番機種($elevator_type):客梯(passenger)、貨梯(cargo)、小電梯(dumbwaiter)、平台梯(flatbase)、強驅(positive_drive) |
||||
|
作番表價($elevator_list_price):該電梯的合約發佈(標準)價+Option價格+與其他電梯共同分擔的費用貨價格 |
||||
|
作番賣價($elevator_knockdown_price):電梯的合約最後成交價 |
||||
|
營業員員工號($sales_id) |
||||
|
區域經理員工號($region_manger_id) |
||||
|
|
||||
|
【2.函數中的變數說明】 |
||||
|
// 銷售點數($discount):作番賣價($elevator_knockdown_price) 除以 作番表價($elevator_list_price) |
||||
|
營業員獎金($sales_bonus) |
||||
|
區域經理提成獎金($region_manager_bonus) |
||||
|
獎金預計發放階段($payment_schedule_due):deposit(訂金)、shipping(出貨款)、deliveried(貨到工地款)、acceptance(驗收款) |
||||
|
獎金預計發放規定($payment_schedule_regulation):訂金收齊、出貨款收齊、驗收款收齊 |
||||
|
計算結果($result_status):success, error |
||||
|
獎金水庫(bonus_array)[ |
||||
|
bonus_type:獎金名稱, |
||||
|
bonus_receiver:發放人員, |
||||
|
bonus_amount:金額, |
||||
|
payment_schedul_due:預計發放階段 |
||||
|
payment_schedul_regulation, 發放規定 |
||||
|
] |
||||
|
|
||||
|
【3.輸出數據】 |
||||
|
result_array[ |
||||
|
"ver"=>$ver, #獎金版本 |
||||
|
"result_status"=>"success", #計算結果 |
||||
|
"$bonus_array"=>$bonus_array #所有獎金水庫 |
||||
|
]; |
||||
|
|
||||
|
*/ |
||||
|
|
||||
|
|
||||
|
|
||||
|
function elevator_new_deal_bonus_v2_0($ver, $contract_type, $elevator_type, $elevator_list_price, $elevator_knockdown_price, $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); #銷售點數,取到小數點第三位。 |
||||
|
|
||||
|
#合約總類($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%" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
#營銷人員銷售獎金水庫-----驗收前期所有款項已收齊,且驗收款已收款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", #獎金名稱 |
||||
|
"bonus_receiver" => "error", #發放人員 |
||||
|
"bonus_amount" => 0, #金額 |
||||
|
"payment_schedul_due" => "9999-1-1", #預計發放時間 |
||||
|
"payment_schedul_regulation" => "error" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
$result_array = [ |
||||
|
"ver" => $ver, #獎金版本 |
||||
|
"result_status" => "error", #計算結果 |
||||
|
"bonus_array" => $bonus_array #獎金水庫 |
||||
|
]; |
||||
|
}; |
||||
|
|
||||
|
return $result_array; |
||||
|
}; |
@ -0,0 +1,748 @@ |
|||||
|
<?php |
||||
|
## 3/31 前套用 2.0 版本 |
||||
|
function maintenance_contract_bonus_v2_0($ver, $contract_type, $contract_years, $discount, $fee_per_st, $receivable_date_due, $sales_id, $region_manger_id, $regular_contract_manger_id = '') |
||||
|
{ |
||||
|
$bonus_array = []; |
||||
|
if ($ver == "2.0") { |
||||
|
|
||||
|
#契約總類($contract_type):新簽約(new)、免保轉有費(free_to_charge)、續簽約(原價或僅契約金額異動)(renew_priceissue) |
||||
|
switch ($contract_type) { |
||||
|
case "new": |
||||
|
#契約員獎金($sales_bonus) |
||||
|
switch ($fee_per_st) { |
||||
|
case ($fee_per_st <= 3000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.6; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3001 and $fee_per_st <= 3499): |
||||
|
$sales_bonus = ($fee_per_st) * 0.7; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3500 and $fee_per_st <= 3999): |
||||
|
$sales_bonus = ($fee_per_st) * 0.8; |
||||
|
break; |
||||
|
case ($fee_per_st >= 4000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.9; |
||||
|
break; |
||||
|
}; |
||||
|
#地區經理經理獎金($region_manager_bonus) |
||||
|
$region_manager_bonus = 170; |
||||
|
#專任契約經理獎金($regular_contract_manger_bonus) |
||||
|
if (($regular_contract_manger_id) != '') { |
||||
|
$regular_contract_manger_bonus = 100; |
||||
|
} |
||||
|
break; |
||||
|
|
||||
|
case "free_to_charge": |
||||
|
switch ($fee_per_st) { |
||||
|
case ($fee_per_st <= 3000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.3; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3001 and $fee_per_st <= 3499): |
||||
|
$sales_bonus = ($fee_per_st) * 0.35; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3500 and $fee_per_st <= 3999): |
||||
|
$sales_bonus = ($fee_per_st) * 0.4; |
||||
|
break; |
||||
|
case ($fee_per_st >= 4000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.5; |
||||
|
break; |
||||
|
}; |
||||
|
#地區經理經理獎金($region_manager_bonus) |
||||
|
$region_manager_bonus = 100; |
||||
|
#專任契約經理獎金($regular_contract_manger_bonus) |
||||
|
if (($regular_contract_manger_id) != '') { |
||||
|
$regular_contract_manger_bonus = 100; |
||||
|
} |
||||
|
break; |
||||
|
|
||||
|
case "renew_priceissue": |
||||
|
switch ($fee_per_st) { |
||||
|
case ($fee_per_st <= 3000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.25; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3001 and $fee_per_st <= 3499): |
||||
|
$sales_bonus = ($fee_per_st) * 0.3; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3500 and $fee_per_st <= 3999): |
||||
|
$sales_bonus = ($fee_per_st) * 0.35; |
||||
|
break; |
||||
|
case ($fee_per_st >= 4000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.4; |
||||
|
break; |
||||
|
}; |
||||
|
#地區經理經理獎金($region_manager_bonus) |
||||
|
$region_manager_bonus = 100; |
||||
|
#專任契約經理獎金($regular_contract_manger_bonus) |
||||
|
if (($regular_contract_manger_id) != '') { |
||||
|
$regular_contract_manger_bonus = 100; |
||||
|
} |
||||
|
break; |
||||
|
}; |
||||
|
|
||||
|
#合約折扣率($discount):大於80%以上(含)(above_80)、60-79%(含)以上(60_to_79)、折扣率59% (含)以下(below_59) |
||||
|
switch ($discount) { |
||||
|
case ($discount < 0.6): |
||||
|
$sales_bonus = $sales_bonus * 0.7; |
||||
|
break; |
||||
|
case ($discount >= 0.6 and $discount < 0.8): |
||||
|
$sales_bonus = $sales_bonus * 0.8; |
||||
|
break; |
||||
|
case ($discount >= 0.8): |
||||
|
$sales_bonus = $sales_bonus * 1.0; |
||||
|
break; |
||||
|
}; |
||||
|
|
||||
|
#簽約年數($contract_years):1年(1),超過1年(above) |
||||
|
|
||||
|
switch ($contract_years) { |
||||
|
case $contract_years == "one": |
||||
|
#契約員獎金 |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($sales_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +1 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
#地區經理經理獎金 |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "2", #獎金名稱 |
||||
|
"bonus_receiver" => $region_manger_id, #發放人員 |
||||
|
"bonus_amount" => round($region_manager_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +1 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
#專任契約經理獎金 |
||||
|
if (($regular_contract_manger_id) != '') { |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "3", #獎金名稱 |
||||
|
"bonus_receiver" => $regular_contract_manger_id, #發放人員 |
||||
|
"bonus_amount" => round($regular_contract_manger_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +1 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
$result_array = [ |
||||
|
"ver" => $ver, #獎金版本 |
||||
|
"result_status" => "success", #計算結果 |
||||
|
"bonus_array" => $bonus_array #獎金水庫 |
||||
|
]; |
||||
|
break; |
||||
|
|
||||
|
case $contract_years == "above_two": |
||||
|
/*** 以下第1年獎金 ***/ |
||||
|
#契約員獎金 |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($sales_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +1 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
#地區經理經理獎金 |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "2", #獎金名稱 |
||||
|
"bonus_receiver" => $region_manger_id, #發放人員 |
||||
|
"bonus_amount" => round($region_manager_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +1 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
#專任契約經理獎金 |
||||
|
if (($regular_contract_manger_id) != '') { |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "3", #獎金名稱 |
||||
|
"bonus_receiver" => $regular_contract_manger_id, #發放人員 |
||||
|
"bonus_amount" => round($regular_contract_manger_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +1 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
/*** 以上第1年獎金 ***/ |
||||
|
|
||||
|
/*** 以下第2年獎金 ***/ |
||||
|
#第2年契約員獎金 |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($sales_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +13 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
#第2年地區經理經理獎金 |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "2", #獎金名稱 |
||||
|
"bonus_receiver" => $region_manger_id, #發放人員 |
||||
|
"bonus_amount" => round($region_manager_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +13 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
#第2年專任契約經理獎金 |
||||
|
if (($regular_contract_manger_id) != '') { |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "3", #獎金名稱 |
||||
|
"bonus_receiver" => $regular_contract_manger_id, #發放人員 |
||||
|
"bonus_amount" => round($regular_contract_manger_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +13 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "合約簽回及保養款項收回的次月一次性發" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
/*** 以上第2年獎金 ***/ |
||||
|
|
||||
|
$result_array = [ |
||||
|
"ver" => $ver, #獎金版本 |
||||
|
"result_status" => "success", #計算結果 |
||||
|
"bonus_array" => $bonus_array #獎金水庫 |
||||
|
]; |
||||
|
break; |
||||
|
} |
||||
|
} else { |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "error", #獎金名稱 |
||||
|
"bonus_receiver" => "error", #發放人員 |
||||
|
"bonus_amount" => 0, #金額 |
||||
|
"pay_day_due" => "9999-1-1", #預計發放時間 |
||||
|
"bonus_regulation" => "error" #發放規定 |
||||
|
]); |
||||
|
$result_array = [ |
||||
|
"ver" => $ver, #獎金版本 |
||||
|
"result_status" => "error", #計算結果 |
||||
|
"bonus_array" => $bonus_array #獎金水庫 |
||||
|
]; |
||||
|
} |
||||
|
|
||||
|
return $result_array; |
||||
|
}; |
||||
|
|
||||
|
## 4/1 後套用 2.1 版本 |
||||
|
function 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 = '') |
||||
|
{ |
||||
|
// $fee_per_st = round($fee_per_st); |
||||
|
$bonus_array = []; |
||||
|
if ($ver == "2.1") { |
||||
|
$discount = round(($fee_per_st - $commission_fee) / $elevator_list_price, 2); |
||||
|
// $discount = ($fee_per_st - $commission_fee) / $elevator_list_price; |
||||
|
|
||||
|
#契約總類($contract_type):新簽約(new)、免保轉有費(free_to_charge)、續簽約(原價或僅契約金額異動)(renew_priceissue) |
||||
|
switch ($contract_type) { |
||||
|
case "new": |
||||
|
#契約員獎金($sales_bonus) |
||||
|
#合約折扣率($discount):大於80%以上(含)(above_80)、60-79%(含)以上(60_to_79)、折扣率59% (含)以下(below_59) |
||||
|
switch ($discount) { |
||||
|
case ($discount >= 0.8): |
||||
|
switch ($fee_per_st) { |
||||
|
case ($fee_per_st < 3000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.6; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3000 and $fee_per_st <= 3499): |
||||
|
$sales_bonus = ($fee_per_st) * 0.7; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3500 and $fee_per_st <= 3999): |
||||
|
$sales_bonus = ($fee_per_st) * 0.8; |
||||
|
break; |
||||
|
case ($fee_per_st >= 4000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.9; |
||||
|
break; |
||||
|
}; |
||||
|
break; |
||||
|
case ($discount >= 0.6 and $discount < 0.8): |
||||
|
switch ($fee_per_st) { |
||||
|
case ($fee_per_st < 3000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.48; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3000 and $fee_per_st <= 3499): |
||||
|
$sales_bonus = ($fee_per_st) * 0.56; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3500 and $fee_per_st <= 3999): |
||||
|
$sales_bonus = ($fee_per_st) * 0.64; |
||||
|
break; |
||||
|
case ($fee_per_st >= 4000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.72; |
||||
|
break; |
||||
|
}; |
||||
|
break; |
||||
|
case ($discount < 0.6): |
||||
|
switch ($fee_per_st) { |
||||
|
case ($fee_per_st < 3000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.42; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3000 and $fee_per_st <= 3499): |
||||
|
$sales_bonus = ($fee_per_st) * 0.49; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3500 and $fee_per_st <= 3999): |
||||
|
$sales_bonus = ($fee_per_st) * 0.56; |
||||
|
break; |
||||
|
case ($fee_per_st >= 4000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.63; |
||||
|
break; |
||||
|
}; |
||||
|
break; |
||||
|
}; |
||||
|
|
||||
|
#地區處長獎金($region_director_bonus) |
||||
|
$region_director_bonus = 170; |
||||
|
#專任契約經理獎金($regular_contract_manger_bonus) |
||||
|
$regular_contract_manger_bonus = 300; |
||||
|
break; |
||||
|
|
||||
|
case "free_to_charge": |
||||
|
switch ($fee_per_st) { |
||||
|
case ($fee_per_st < 3000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.3; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3000 and $fee_per_st <= 3499): |
||||
|
$sales_bonus = ($fee_per_st) * 0.35; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3500 and $fee_per_st <= 3999): |
||||
|
$sales_bonus = ($fee_per_st) * 0.4; |
||||
|
break; |
||||
|
case ($fee_per_st >= 4000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.45; |
||||
|
break; |
||||
|
}; |
||||
|
#地區處長獎金($region_director_bonus) |
||||
|
$region_director_bonus = 170; |
||||
|
#專任契約經理獎金($regular_contract_manger_bonus) |
||||
|
$regular_contract_manger_bonus = 300; |
||||
|
break; |
||||
|
|
||||
|
case "renew_priceissue": |
||||
|
switch ($fee_per_st) { |
||||
|
case ($fee_per_st < 3000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.25; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3000 and $fee_per_st <= 3499): |
||||
|
$sales_bonus = ($fee_per_st) * 0.3; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3500 and $fee_per_st <= 3999): |
||||
|
$sales_bonus = ($fee_per_st) * 0.35; |
||||
|
break; |
||||
|
case ($fee_per_st >= 4000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.4; |
||||
|
break; |
||||
|
}; |
||||
|
#地區處長獎金($region_director_bonus) |
||||
|
$region_director_bonus = 170; |
||||
|
#專任契約經理獎金($regular_contract_manger_bonus) |
||||
|
$regular_contract_manger_bonus = 300; |
||||
|
break; |
||||
|
}; |
||||
|
|
||||
|
#地區處長獎金 |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "2", #獎金名稱 |
||||
|
"bonus_receiver" => $region_director_id, #發放人員 |
||||
|
"bonus_amount" => round($region_director_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +1 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "第1次款項收回後,次月發放" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
#專任契約經理獎金 |
||||
|
if ($regular_contract_manger_id != '') { |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "3", #獎金名稱 |
||||
|
"bonus_receiver" => $regular_contract_manger_id, #發放人員 |
||||
|
"bonus_amount" => round($regular_contract_manger_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +1 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "第1次款項收回後,次月發放" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
|
||||
|
#契約員獎金 |
||||
|
switch ($payment_period) { |
||||
|
#年付 |
||||
|
case "annually": |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($sales_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +1 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "每月收款後,按收款比率次月發放" #發放規定 |
||||
|
]); |
||||
|
break; |
||||
|
|
||||
|
#半年付 |
||||
|
case "semiannually": |
||||
|
$payment_ratio_due_array = array(0.5, 0.5); |
||||
|
$payday_due_array = array(1, 7); |
||||
|
for ($i = 0; $i < count($payment_ratio_due_array); $i++) { |
||||
|
if ($i < count($payment_ratio_due_array) - 1) { |
||||
|
$current_bonus = round($sales_bonus * $payment_ratio_due_array[$i]); #金額 |
||||
|
} else { |
||||
|
$current_bonus = round($sales_bonus - $i * round($sales_bonus * $payment_ratio_due_array[$i])); #最後一次金額 |
||||
|
}; |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($current_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +$payday_due_array[$i] months")), #預計發放時間 |
||||
|
"bonus_regulation" => "每月收款後,按收款比率次月發放" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
break; |
||||
|
|
||||
|
#季付 |
||||
|
case "quarterly": |
||||
|
$payment_ratio_due_array = array(0.25, 0.25, 0.25, 0.25); |
||||
|
$payday_due_array = array(1, 4, 7, 10); |
||||
|
for ($i = 0; $i < count($payment_ratio_due_array); $i++) { |
||||
|
if ($i < count($payment_ratio_due_array) - 1) { |
||||
|
$current_bonus = round($sales_bonus * $payment_ratio_due_array[$i]); #金額 |
||||
|
} else { |
||||
|
$current_bonus = round($sales_bonus - $i * round($sales_bonus * $payment_ratio_due_array[$i])); #最後一次金額 |
||||
|
}; |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($current_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +$payday_due_array[$i] months")), #預計發放時間 |
||||
|
"bonus_regulation" => "每月收款後,按收款比率次月發放" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
break; |
||||
|
|
||||
|
#2月1次 |
||||
|
case "bimonthly": |
||||
|
$payment_ratio_due_array = array(); |
||||
|
for ($i = 0; $i < 6; $i++) { |
||||
|
array_push($payment_ratio_due_array, 1 / 6); |
||||
|
} |
||||
|
$payday_due_array = array(1, 3, 5, 7, 9, 11); |
||||
|
for ($i = 0; $i < count($payment_ratio_due_array); $i++) { |
||||
|
if ($i < count($payment_ratio_due_array) - 1) { |
||||
|
$current_bonus = round($sales_bonus * $payment_ratio_due_array[$i]); #金額 |
||||
|
} else { |
||||
|
$current_bonus = round($sales_bonus - $i * round($sales_bonus * $payment_ratio_due_array[$i])); #最後一次金額 |
||||
|
}; |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($current_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +$payday_due_array[$i] months")), #預計發放時間 |
||||
|
"bonus_regulation" => "每月收款後,按收款比率次月發放" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
break; |
||||
|
|
||||
|
#月付 |
||||
|
case "monthly": |
||||
|
$payment_ratio_due_array = array(); |
||||
|
// $payment_ratio_due_array = array(); |
||||
|
for ($i = 0; $i < 12; $i++) { |
||||
|
array_push($payment_ratio_due_array, 1 / 12); |
||||
|
} |
||||
|
|
||||
|
$payday_due_array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); |
||||
|
for ($i = 0; $i < count($payment_ratio_due_array); $i++) { |
||||
|
if ($i < count($payment_ratio_due_array) - 1) { |
||||
|
$current_bonus = round($sales_bonus * $payment_ratio_due_array[$i]); #金額 |
||||
|
} else { |
||||
|
$current_bonus = round($sales_bonus - $i * round($sales_bonus * $payment_ratio_due_array[$i])); #最後一次金額 |
||||
|
}; |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($current_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +$payday_due_array[$i] months")), #預計發放時間 |
||||
|
"bonus_regulation" => "每月收款後,按收款比率次月發放" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
break; |
||||
|
} |
||||
|
|
||||
|
$result_array = [ |
||||
|
"ver" => $ver, #獎金版本 |
||||
|
"result_status" => "success", #計算結果 |
||||
|
"bonus_array" => $bonus_array #獎金水庫 |
||||
|
]; |
||||
|
} else { |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "error", #獎金名稱 |
||||
|
"bonus_receiver" => "error", #發放人員 |
||||
|
"bonus_amount" => 0, #金額 |
||||
|
"pay_day_due" => "9999-1-1", #預計發放時間 |
||||
|
"bonus_regulation" => "error" #發放規定 |
||||
|
]); |
||||
|
$result_array = [ |
||||
|
"ver" => $ver, #獎金版本 |
||||
|
"result_status" => "error", #計算結果 |
||||
|
"bonus_array" => $bonus_array #獎金水庫 |
||||
|
]; |
||||
|
} |
||||
|
|
||||
|
return $result_array; |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
## 五年以上長約 |
||||
|
function maintenance_longterm_contract_m1_free_charge_bonus_v2_1($ver, $contract_type, $payment_period, $payment_period_amount, $elevator_list_price, $fee_per_st, $commission_fee, $receivable_date_due, $sales_id, $region_director_id, $regular_contract_manger_id = '') |
||||
|
{ |
||||
|
$bonus_array = []; |
||||
|
if ($ver == "2.1") { |
||||
|
$discount = ($fee_per_st - $commission_fee) / $elevator_list_price; |
||||
|
#契約總類($contract_type):簽長約並免費送M1 (longcontract_m1_free_charge) |
||||
|
switch ($contract_type) { |
||||
|
case "longcontract_m1_free_charge": |
||||
|
#契約員獎金($sales_bonus) |
||||
|
#合約折扣率($discount):大於80%以上(含)(above_80)、60-79%(含)以上(60_to_79)、折扣率59% (含)以下(below_59) |
||||
|
switch ($discount) { |
||||
|
case ($discount >= 0.8): |
||||
|
switch ($fee_per_st) { |
||||
|
case ($fee_per_st < 3000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.6; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3000 and $fee_per_st < 4000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.7; |
||||
|
break; |
||||
|
case ($fee_per_st >= 4000 and $fee_per_st < 5000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.8; |
||||
|
break; |
||||
|
case ($fee_per_st >= 5000 and $fee_per_st < 6000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.9; |
||||
|
break; |
||||
|
case ($fee_per_st >= 6000): |
||||
|
$sales_bonus = ($fee_per_st) * 1.0; |
||||
|
break; |
||||
|
}; |
||||
|
break; |
||||
|
case ($discount >= 0.6 and $discount < 0.8): |
||||
|
switch ($fee_per_st) { |
||||
|
case ($fee_per_st < 3000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.42; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3000 and $fee_per_st <= 4000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.49; |
||||
|
break; |
||||
|
case ($fee_per_st >= 4000 and $fee_per_st < 5000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.56; |
||||
|
break; |
||||
|
case ($fee_per_st >= 5000 and $fee_per_st < 6000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.63; |
||||
|
break; |
||||
|
case ($fee_per_st >= 6000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.7; |
||||
|
break; |
||||
|
}; |
||||
|
break; |
||||
|
case ($discount < 0.6): |
||||
|
switch ($fee_per_st) { |
||||
|
case ($fee_per_st < 3000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.3; |
||||
|
break; |
||||
|
case ($fee_per_st >= 3000 and $fee_per_st < 4000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.35; |
||||
|
break; |
||||
|
case ($fee_per_st >= 4000 and $fee_per_st < 5000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.4; |
||||
|
break; |
||||
|
case ($fee_per_st >= 5000 and $fee_per_st < 6000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.45; |
||||
|
break; |
||||
|
case ($fee_per_st >= 6000): |
||||
|
$sales_bonus = ($fee_per_st) * 0.5; |
||||
|
break; |
||||
|
}; |
||||
|
break; |
||||
|
}; |
||||
|
|
||||
|
#地區處長獎金($region_director_bonus) |
||||
|
$region_director_bonus = 170; |
||||
|
#專任契約經理獎金($regular_contract_manger_bonus) |
||||
|
$regular_contract_manger_bonus = 300; |
||||
|
break; |
||||
|
}; |
||||
|
#付款方式$payment_period: 每月支付(monthly), 2月1次(bimonthly), 季付(quarterly), 半年付(semiannually), 年付(annually) |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "2", #獎金名稱 |
||||
|
"bonus_receiver" => $region_director_id, #發放人員 |
||||
|
"bonus_amount" => round($region_director_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +12 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "訂金收回後次月發放" #發放規定 |
||||
|
]); |
||||
|
|
||||
|
#專任契約經理獎金 |
||||
|
if ($regular_contract_manger_id != '') { |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "3", #獎金名稱 |
||||
|
"bonus_receiver" => $regular_contract_manger_id, #發放人員 |
||||
|
"bonus_amount" => round($regular_contract_manger_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +12 months")), #預計發放時間 |
||||
|
"bonus_regulation" => "訂金收回後次月發放" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
|
||||
|
#地區處長獎金、專任契約經理、契約員獎金 |
||||
|
switch ($payment_period) { |
||||
|
#簽長約免費贈送控制系統,因屬於公司特殊政策,所以無汰改獎金,合約期內每月領取契約獎金 |
||||
|
#總支付期數$payment_period_amount: 總支付期數,依規定5年約至少60期, |
||||
|
#年繳 |
||||
|
case 'annually': |
||||
|
$payment_ratio_due_array = array(); |
||||
|
$a = $payment_period_amount / 12; |
||||
|
for ($i = 0; $i < $a; $i++) { |
||||
|
array_push($payment_ratio_due_array, 1 / $a); |
||||
|
} |
||||
|
|
||||
|
$payday_due_array = array(); |
||||
|
for ($i = 0; $i < $a; $i++) { |
||||
|
array_push($payday_due_array, $i + 1); |
||||
|
} |
||||
|
|
||||
|
for ($i = 0; $i < count($payment_ratio_due_array); $i++) { |
||||
|
if ($i < count($payment_ratio_due_array) - 1) { |
||||
|
$current_bonus = round($sales_bonus * $payment_ratio_due_array[$i]); #金額 |
||||
|
} else { |
||||
|
$current_bonus = round($sales_bonus - $i * round($sales_bonus * $payment_ratio_due_array[$i])); #最後一次金額 |
||||
|
}; |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($current_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +$payday_due_array[$i] year")), #預計發放時間 |
||||
|
"bonus_regulation" => "每次收款後,按收款比率次月發放" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
|
||||
|
break; |
||||
|
#半年繳 |
||||
|
case 'semiannually': |
||||
|
$payment_ratio_due_array = array(); |
||||
|
$a = $payment_period_amount / 6; |
||||
|
for ($i = 0; $i < $a; $i++) { |
||||
|
array_push($payment_ratio_due_array, 1 / $a); |
||||
|
} |
||||
|
|
||||
|
$payday_due_array = array(); |
||||
|
for ($i = 0; $i < $a; $i++) { |
||||
|
array_push($payday_due_array, ($i + 1) * 6); |
||||
|
} |
||||
|
|
||||
|
for ($i = 0; $i < count($payment_ratio_due_array); $i++) { |
||||
|
if ($i < count($payment_ratio_due_array) - 1) { |
||||
|
$current_bonus = round($sales_bonus * $payment_ratio_due_array[$i]); #金額 |
||||
|
} else { |
||||
|
$current_bonus = round($sales_bonus - $i * round($sales_bonus * $payment_ratio_due_array[$i])); #最後一次金額 |
||||
|
}; |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($current_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +$payday_due_array[$i] months")), #預計發放時間 |
||||
|
"bonus_regulation" => "每次收款後,按收款比率次月發放" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
break; |
||||
|
#季繳 |
||||
|
case 'quarterly': |
||||
|
$a = $payment_period_amount / 3; |
||||
|
$payment_ratio_due_array = array(); |
||||
|
for ($i = 0; $i < $a; $i++) { |
||||
|
array_push($payment_ratio_due_array, 1 / $a); |
||||
|
} |
||||
|
|
||||
|
$payday_due_array = array(); |
||||
|
for ($i = 0; $i < $a; $i++) { |
||||
|
array_push($payday_due_array, ($i + 1) * 4); |
||||
|
} |
||||
|
|
||||
|
for ($i = 0; $i < count($payment_ratio_due_array); $i++) { |
||||
|
if ($i < count($payment_ratio_due_array) - 1) { |
||||
|
$current_bonus = round($sales_bonus * $payment_ratio_due_array[$i]); #金額 |
||||
|
} else { |
||||
|
$current_bonus = round($sales_bonus - $i * round($sales_bonus * $payment_ratio_due_array[$i])); #最後一次金額 |
||||
|
}; |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($current_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +$payday_due_array[$i] months")), #預計發放時間 |
||||
|
"bonus_regulation" => "每月收款後,按收款比率次月發放" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
break; |
||||
|
#雙月繳 |
||||
|
case 'bimonthly': |
||||
|
$a = $payment_period_amount / 2; |
||||
|
$payment_ratio_due_array = array(); |
||||
|
for ($i = 0; $i < $a; $i++) { |
||||
|
array_push($payment_ratio_due_array, 1 / $a); |
||||
|
} |
||||
|
|
||||
|
$payday_due_array = array(); |
||||
|
for ($i = 0; $i < $a; $i++) { |
||||
|
array_push($payday_due_array, ($i + 1) * 2); |
||||
|
} |
||||
|
|
||||
|
for ($i = 0; $i < count($payment_ratio_due_array); $i++) { |
||||
|
if ($i < count($payment_ratio_due_array) - 1) { |
||||
|
$current_bonus = round($sales_bonus * $payment_ratio_due_array[$i]); #金額 |
||||
|
} else { |
||||
|
$current_bonus = round($sales_bonus - $i * round($sales_bonus * $payment_ratio_due_array[$i])); #最後一次金額 |
||||
|
}; |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($current_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +$payday_due_array[$i] months")), #預計發放時間 |
||||
|
"bonus_regulation" => "每月收款後,按收款比率次月發放" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
break; |
||||
|
break; |
||||
|
#月繳 |
||||
|
case 'monthly': |
||||
|
|
||||
|
#產生契約員每個月的獎金應發比例 |
||||
|
$payment_ratio_due_array = array(); |
||||
|
for ($i = 0; $i < $payment_period_amount; $i++) { |
||||
|
array_push($payment_ratio_due_array, 1 / $payment_period_amount); |
||||
|
} |
||||
|
|
||||
|
$payday_due_array = array(); |
||||
|
for ($i = 0; $i < $payment_period_amount; $i++) { |
||||
|
array_push($payday_due_array, $i + 1); |
||||
|
} |
||||
|
|
||||
|
for ($i = 0; $i < count($payment_ratio_due_array); $i++) { |
||||
|
if ($i < count($payment_ratio_due_array) - 1) { |
||||
|
$current_bonus = round($sales_bonus * $payment_ratio_due_array[$i]); #金額 |
||||
|
} else { |
||||
|
$current_bonus = round($sales_bonus - $i * round($sales_bonus * $payment_ratio_due_array[$i])); #最後一次金額 |
||||
|
}; |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "1", #獎金名稱 |
||||
|
"bonus_receiver" => $sales_id, #發放人員 |
||||
|
"bonus_amount" => round($current_bonus), #金額 |
||||
|
"pay_day_due" => date("Y-m-d", strtotime("$receivable_date_due +$payday_due_array[$i] months")), #預計發放時間 |
||||
|
"bonus_regulation" => "每月收款後,按收款比率次月發放" #發放規定 |
||||
|
]); |
||||
|
} |
||||
|
break; |
||||
|
} |
||||
|
|
||||
|
$result_array = [ |
||||
|
"ver" => $ver, #獎金版本 |
||||
|
"result_status" => "success", #計算結果 |
||||
|
"bonus_array" => $bonus_array #獎金水庫 |
||||
|
]; |
||||
|
} else { |
||||
|
array_push($bonus_array, [ |
||||
|
"bonus_type" => "error", #獎金名稱 |
||||
|
"bonus_receiver" => "error", #發放人員 |
||||
|
"bonus_amount" => 0, #金額 |
||||
|
"pay_day_due" => "9999-1-1", #預計發放時間 |
||||
|
"bonus_regulation" => "error" #發放規定 |
||||
|
]); |
||||
|
$result_array = [ |
||||
|
"ver" => $ver, #獎金版本 |
||||
|
"result_status" => "error", #計算結果 |
||||
|
"bonus_array" => $bonus_array #獎金水庫 |
||||
|
]; |
||||
|
} |
||||
|
|
||||
|
return $result_array; |
||||
|
}; |
@ -0,0 +1,38 @@ |
|||||
|
<?php |
||||
|
require_once("../T8_Authorization_from_bpm.php"); |
||||
|
|
||||
|
function T8salIncomeApply($data, $api_url) |
||||
|
{ |
||||
|
|
||||
|
$validation = get_Auth(); |
||||
|
|
||||
|
$header = [ |
||||
|
"CHI_Authorization :" . $validation, |
||||
|
"GroupId:TEST" |
||||
|
]; |
||||
|
$ch = curl_init(); |
||||
|
curl_setopt($ch, CURLOPT_URL, $api_url); // 设置请求的URL |
||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); |
||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); |
||||
|
curl_setopt($ch, CURLOPT_POST, 1); // 使用 POST |
||||
|
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data, JSON_UNESCAPED_UNICODE)); |
||||
|
$response = curl_exec($ch); |
||||
|
|
||||
|
if ($response === false) { |
||||
|
echo 'Curl error: ' . curl_error($ch); |
||||
|
} else { |
||||
|
$result = json_decode($response, true); |
||||
|
// 若 API 傳入失敗。 |
||||
|
if ($result['Status'] == 'Erroe') { |
||||
|
echo 'API傳入失敗,' . $result['ErrorMsg']; |
||||
|
return $result; |
||||
|
} else { |
||||
|
// print_r($result); |
||||
|
return $result; |
||||
|
} |
||||
|
return $result; |
||||
|
} |
||||
|
|
||||
|
curl_close($ch); |
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
<?php |
||||
|
|
||||
|
require_once('../../mkt/conn.php'); |
||||
|
|
||||
|
$accountid = $_GET['user_id']; |
||||
|
if($accountid == "---"){ |
||||
|
echo "---"; |
||||
|
exit; |
||||
|
} |
||||
|
$sql_str = "SELECT name FROM account WHERE accountid = :accountid"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':accountid', $accountid); |
||||
|
$stmt->execute(); |
||||
|
$user = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
echo $user['name']; |
@ -0,0 +1,484 @@ |
|||||
|
<?php |
||||
|
require_once "../../mkt/conn.php"; |
||||
|
date_default_timezone_set('Asia/Taipei'); |
||||
|
|
||||
|
$vol_no = $_POST['vol_no']; |
||||
|
$apply_key = $_POST['apply_key']; |
||||
|
$customer = $_POST['customer']; |
||||
|
$address = $_POST['address']; |
||||
|
$case_name = $_POST['case_name']; |
||||
|
$brand = $_POST['brand']; |
||||
|
$num = $_POST['num']; |
||||
|
$salesman = $_POST['salesman']; |
||||
|
$contract_begin_date = $_POST['contract_begin_date']; |
||||
|
$contract_end_date = $_POST['contract_end_date']; |
||||
|
$contract_kind = $_POST['contract_kind']; |
||||
|
$progress_remark = $_POST['progress_status']; |
||||
|
$serviceFee = $_POST['serviceFee']; |
||||
|
$penalty = $_POST['penalty']; |
||||
|
$deposit_rate = $_POST['deposit_rate']; |
||||
|
$keep_rate = $_POST['keep_rate']; |
||||
|
$warranty_rate = $_POST['warranty_rate']; |
||||
|
$remark = $_POST['remark']; |
||||
|
$creater = $_POST['creater']; |
||||
|
$pay_method = $_POST['pay_method']; |
||||
|
$status = $_POST['status']; |
||||
|
$elevators = json_decode($_POST['elevators'], true); |
||||
|
$otherOptions = json_decode($_POST['otherOptions'], true); |
||||
|
$payment_kind = $_POST['pay_method']; |
||||
|
$current_date = date("Y-M-d H:i:s"); |
||||
|
|
||||
|
$total_price = $_POST['total_price']; |
||||
|
$total_sale_price = $_POST['total_sale_price']; |
||||
|
|
||||
|
$sql_str = "SELECT status FROM con_maintance_examine_apply WHERE (vol_no, apply_key) = (:vol_no, :apply_key) "; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':vol_no', $vol_no); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->execute(); |
||||
|
$contract = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
|
||||
|
|
||||
|
$conn->beginTransaction(); |
||||
|
try{ |
||||
|
if(!$contract){ |
||||
|
$sql_str = "INSERT INTO con_maintance_examine_apply (apply_key, vol_no, customer, address, case_name ,brand, num, salesman, maintain_kind, contract_begin_date, contract_end_date, contract_kind, payment_kind, progress_remark, service_fee, total_price, total_sale_price, penalty, deposit_rate, keep_rate, warranty_rate, memo, status, creater, create_at) |
||||
|
VALUES (:apply_key, :vol_no, :customer, :address, :case_name ,:brand, :num, :salesman, :maintain_kind, :contract_begin_date, :contract_end_date, :contract_kind, :payment_kind, :progress_remark, :service_fee, :total_price, :total_sale_price, :penalty, :deposit_rate, :keep_rate, :warranty_rate, :memo, :status, :creater, :create_at)"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->bindParam(':vol_no', $vol_no); |
||||
|
$stmt->bindParam(':customer', $customer); |
||||
|
$stmt->bindParam(':address', $address); |
||||
|
$stmt->bindParam(':case_name', $case_name); |
||||
|
$stmt->bindParam(':brand', $brand); |
||||
|
$stmt->bindParam(':num', $num); |
||||
|
$stmt->bindParam(':salesman', $salesman); |
||||
|
$stmt->bindParam(':maintain_kind', $maintain_kind); |
||||
|
$stmt->bindParam(':contract_begin_date', $contract_begin_date); |
||||
|
$stmt->bindParam(':contract_end_date', $contract_end_date); |
||||
|
$stmt->bindParam(':contract_kind', $contract_kind); |
||||
|
$stmt->bindParam(':payment_kind', $payment_kind); |
||||
|
$stmt->bindParam(':progress_remark', $progress_remark); |
||||
|
$stmt->bindParam(':service_fee', $serviceFee); |
||||
|
$stmt->bindParam(':total_price', $total_price); |
||||
|
$stmt->bindParam(':total_sale_price', $total_sale_price); |
||||
|
$stmt->bindParam(':penalty', $penalty); |
||||
|
$stmt->bindParam(':deposit_rate', $deposit_rate); |
||||
|
$stmt->bindParam(':keep_rate', $keep_rate); |
||||
|
$stmt->bindParam(':warranty_rate', $warranty_rate); |
||||
|
$stmt->bindParam(':memo', $remark); |
||||
|
$stmt->bindParam(':status', $status); |
||||
|
$stmt->bindParam(':creater', $creater); |
||||
|
$stmt->bindParam(':create_at', $current_date); |
||||
|
$stmt->execute(); |
||||
|
|
||||
|
$sql_str = "INSERT INTO con_maintance_examine_clear (apply_key, item_no, register_code, elevator_brand, elevator_kind, spec, weight, speed, stop, floors, persons, elevator_num, useful_years, last_check_date, speed_governors_check_expense, maintain_times, is_m1_bundle, maintain_months, maintain_period, maintain_method, stand_price, contract_price, sold_price, commission_expense, management_expense, annual_survey_expense, service_expense, cmstatus, updated_at, creater, created_at) |
||||
|
VALUES (:apply_key, :item_no, :register_code, :elevator_brand, :elevator_kind, :spec, :weight, :speed, :stop, :floors, :persons, :elevator_num, :useful_years, :last_check_date, :speed_governors_check_expense, :maintain_times, :is_m1_bundle, :maintain_months, :maintain_period, :maintain_method, :stand_price, :contract_price, :sold_price, :commission_expense, :management_expense, :annual_survey_expense, :service_expense, :cmstatus, :updated_at, :creater, :created_at) "; |
||||
|
|
||||
|
foreach($elevators as $elevator){ |
||||
|
if(empty($elevator['permitNumber'])) $register_code = "A"; |
||||
|
|
||||
|
if($elevator['spec'] == "MAE100") $elevator_kind = "A"; |
||||
|
if($elevator['spec'] == "MAF100") $elevator_kind = "B"; |
||||
|
if($elevator['spec'] == "MAM200") $elevator_kind = "D"; |
||||
|
if($elevator['spec'] == "MAH100") $elevator_kind = "E"; |
||||
|
|
||||
|
$speed_governors_check_expense = null; |
||||
|
$maintain_times = 1; |
||||
|
$commission_expense = null; |
||||
|
$management_expense = null; |
||||
|
$service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee; |
||||
|
$cmstatus = "Y"; |
||||
|
$cycle = (int)$elevator['cycle']; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->bindParam(':item_no', $elevator['id']); |
||||
|
$stmt->bindParam(':register_code', $register_code); |
||||
|
$stmt->bindParam(':elevator_brand', $elevator['brand']); |
||||
|
$stmt->bindParam(':elevator_kind', $elevator_kind); |
||||
|
$stmt->bindParam(':spec', $elevator['spec']); |
||||
|
$stmt->bindParam(':weight', $elevator['weight']); |
||||
|
$stmt->bindParam(':speed', $elevator['speed']); |
||||
|
$stmt->bindParam(':stop', $elevator['stop']); |
||||
|
$stmt->bindParam(':floors', $elevator['stop']); |
||||
|
$stmt->bindParam(':persons', $elevator['person']); |
||||
|
$stmt->bindParam(':elevator_num', $elevator['qty']); |
||||
|
$stmt->bindParam(':useful_years', $elevator['checkYear']); |
||||
|
$stmt->bindParam(':last_check_date', $elevator['lastDate']); |
||||
|
$stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense); |
||||
|
$stmt->bindParam(':maintain_times', $maintain_times); |
||||
|
$stmt->bindParam(':is_m1_bundle', $elevator['m1']); |
||||
|
$stmt->bindParam(':maintain_months', $elevator['months']); |
||||
|
$stmt->bindParam(':maintain_period', $cycle); |
||||
|
$stmt->bindParam(':maintain_method', $elevator['method']); |
||||
|
$stmt->bindParam(':stand_price', $elevator['price']); |
||||
|
$stmt->bindParam(':contract_price', $elevator['sale_price']); |
||||
|
$stmt->bindParam(':sold_price', $elevator['sale_price']); |
||||
|
$stmt->bindParam(':commission_expense', $elevator['commission_expense']); |
||||
|
$stmt->bindParam(':management_expense', $elevator['management_expense']); |
||||
|
$stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']); |
||||
|
$stmt->bindParam(':service_expense', $elevator['service_expense']); |
||||
|
$stmt->bindParam(':cmstatus', $cmstatus); |
||||
|
$stmt->bindParam(':updated_at', $updated_at); |
||||
|
$stmt->bindParam(':creater', $creater); |
||||
|
$stmt->bindParam(':created_at', $current_date); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
|
||||
|
$sql_str = "INSERT INTO pricereview_maintain_item (mid, price_id, item_no, item_group, item_spec, option_relate_spec, item_unit_price, item_qty, item_price_bp, memo) |
||||
|
VALUES (:mid, :price_id, :item_no, :item_group, :item_spec, :option_relate_spec, :item_unit_price, :item_qty, :item_price_bp, :memo)"; |
||||
|
|
||||
|
foreach($otherOptions as $option){ |
||||
|
$item_price_bp = $option['price']*$option['num']; |
||||
|
$option_relate_spec = (count($option['toElevator']) > 0) ? $option['toElevator'][0]['id'] : null; |
||||
|
$item_group = "E"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':mid', $apply_key); |
||||
|
$stmt->bindParam(':price_id', $option['pr_no']); |
||||
|
$stmt->bindParam(':item_no', $option['id']); |
||||
|
$stmt->bindParam(':item_group', $item_group); |
||||
|
$stmt->bindParam(':item_spec', $option['name']); |
||||
|
$stmt->bindParam(':option_relate_spec', $option_relate_spec); |
||||
|
$stmt->bindParam(':item_unit_price', $option['price']); |
||||
|
$stmt->bindParam(':item_qty', $option['num']); |
||||
|
$stmt->bindParam(':item_price_bp', $item_price_bp); |
||||
|
$stmt->bindParam(':memo', $option['memo']); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
}else{ |
||||
|
$sql_str = "UPDATE con_maintance_examine_apply SET |
||||
|
case_name=:case_name, |
||||
|
num=:num, |
||||
|
maintain_kind=:maintain_kind, |
||||
|
contract_kind=:contract_kind, |
||||
|
payment_kind=:payment_kind, |
||||
|
contract_begin_date=:contract_begin_date, |
||||
|
contract_end_date=:contract_end_date, |
||||
|
service_fee=:service_fee, |
||||
|
total_price=:total_price, |
||||
|
total_sale_price=:total_sale_price, |
||||
|
penalty=:penalty, |
||||
|
deposit_rate=:deposit_rate, |
||||
|
keep_rate=:keep_rate, |
||||
|
warranty_rate=:warranty_rate, |
||||
|
memo=:memo, |
||||
|
brand=:brand, |
||||
|
status=:status, |
||||
|
updated_at=:updated_at, |
||||
|
progress_remark=:progress_remark |
||||
|
WHERE apply_key=:apply_key AND vol_no=:vol_no"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->bindParam(':vol_no', $vol_no); |
||||
|
$stmt->bindParam(':case_name', $case_name); |
||||
|
$stmt->bindParam(':num', $num); |
||||
|
$stmt->bindParam(':maintain_kind', $maintain_kind); |
||||
|
$stmt->bindParam(':contract_begin_date', $contract_begin_date); |
||||
|
$stmt->bindParam(':contract_end_date', $contract_end_date); |
||||
|
$stmt->bindParam(':contract_kind', $contract_kind); |
||||
|
$stmt->bindParam(':payment_kind', $payment_kind); |
||||
|
$stmt->bindParam(':progress_remark', $progress_remark); |
||||
|
$stmt->bindParam(':service_fee', $serviceFee); |
||||
|
$stmt->bindParam(':total_price', $total_price); |
||||
|
$stmt->bindParam(':total_sale_price', $total_sale_price); |
||||
|
$stmt->bindParam(':penalty', $penalty); |
||||
|
$stmt->bindParam(':deposit_rate', $deposit_rate); |
||||
|
$stmt->bindParam(':keep_rate', $keep_rate); |
||||
|
$stmt->bindParam(':warranty_rate', $warranty_rate); |
||||
|
$stmt->bindParam(':memo', $remark); |
||||
|
$stmt->bindParam(':brand', $brand); |
||||
|
$stmt->bindParam(':status', $status); |
||||
|
$stmt->bindParam(':updated_at', $current_date); |
||||
|
$stmt->execute(); |
||||
|
|
||||
|
//整機單價 |
||||
|
$sql_str = "SELECT * FROM con_maintance_examine_clear WHERE (apply_key, cmstatus) = (:apply_key, 'Y')"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->execute(); |
||||
|
$oldElevators = $stmt->fetchAll(PDO::FETCH_ASSOC); |
||||
|
|
||||
|
$oldItemsNo = (array)array_column($oldElevators, 'item_no'); |
||||
|
$newItemsNo = (array)array_column($elevators, 'id'); |
||||
|
$onlyInOldIds = array_values(array_diff($oldItemsNo, $newItemsNo)); // 只有舊的有,新傳入的沒有,所以刪除(delete) |
||||
|
$onlyInNewIds = array_values(array_diff($newItemsNo, $oldItemsNo)); //只有新傳入的有,舊的沒有,所以新增(insert) |
||||
|
$inBothIds = array_values(array_intersect($oldItemsNo, $newItemsNo)); //舊的跟新的都有,所以要更新(update) |
||||
|
|
||||
|
foreach($onlyInOldIds as $oldIdx){ |
||||
|
// $sql_str = "DELETE FROM con_maintance_examine_clear WHERE apply_key=:apply_key AND item_no=:item_no"; |
||||
|
$sql_str = "UPDATE con_maintance_examine_clear SET cmstatus = 'D' WHERE apply_key=:apply_key AND item_no=:item_no"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->bindParam(':item_no', $oldIdx); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
foreach($onlyInNewIds as $newidx){ |
||||
|
$sql_str = "INSERT INTO con_maintance_examine_clear (apply_key, item_no, register_code, elevator_brand, elevator_kind, spec, weight, speed, stop, floors, persons, elevator_num, useful_years, last_check_date, speed_governors_check_expense, maintain_times, is_m1_bundle, maintain_months, maintain_period, maintain_method, stand_price, contract_price, sold_price, commission_expense, management_expense, annual_survey_expense, service_expense, cmstatus, updated_at, creater, created_at) |
||||
|
VALUES (:apply_key, :item_no, :register_code, :elevator_brand, :elevator_kind, :spec, :weight, :speed, :stop, :floors, :persons, :elevator_num, :useful_years, :last_check_date, :speed_governors_check_expense, :maintain_times, :is_m1_bundle, :maintain_months, :maintain_period, :maintain_method, :stand_price, :contract_price, :sold_price, :commission_expense, :management_expense, :annual_survey_expense, :service_expense, :cmstatus, :updated_at, :creater, :created_at) "; |
||||
|
$elevator = array_values(array_filter($elevators, fn($el)=> $el['id'] == $newidx))[0]; |
||||
|
$register_code = empty($elevator['permitNumber']) ? "A" : $elevator['permitNumber']; |
||||
|
if($elevator['spec'] == "MAE100") $elevator_kind = "A"; |
||||
|
if($elevator['spec'] == "MAF100") $elevator_kind = "B"; |
||||
|
if($elevator['spec'] == "MAM200") $elevator_kind = "D"; |
||||
|
if($elevator['spec'] == "MAH100") $elevator_kind = "E"; |
||||
|
|
||||
|
$speed_governors_check_expense = null; |
||||
|
$maintain_times = 1; |
||||
|
$commission_expense = null; |
||||
|
$management_expense = null; |
||||
|
$service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee; |
||||
|
$cmstatus = "Y"; |
||||
|
$cycle = (int)$elevator['cycle']; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->bindParam(':item_no', $elevator['id']); |
||||
|
$stmt->bindParam(':register_code', $register_code); |
||||
|
$stmt->bindParam(':elevator_brand', $elevator['brand']); |
||||
|
$stmt->bindParam(':elevator_kind', $elevator_kind); |
||||
|
$stmt->bindParam(':spec', $elevator['spec']); |
||||
|
$stmt->bindParam(':weight', $elevator['weight']); |
||||
|
$stmt->bindParam(':speed', $elevator['speed']); |
||||
|
$stmt->bindParam(':stop', $elevator['stop']); |
||||
|
$stmt->bindParam(':floors', $elevator['stop']); |
||||
|
$stmt->bindParam(':persons', $elevator['person']); |
||||
|
$stmt->bindParam(':elevator_num', $elevator['qty']); |
||||
|
$stmt->bindParam(':useful_years', $elevator['checkYear']); |
||||
|
$stmt->bindParam(':last_check_date', $elevator['lastDate']); |
||||
|
$stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense); |
||||
|
$stmt->bindParam(':maintain_times', $maintain_times); |
||||
|
$stmt->bindParam(':is_m1_bundle', $elevator['m1']); |
||||
|
$stmt->bindParam(':maintain_months', $elevator['months']); |
||||
|
$stmt->bindParam(':maintain_period', $cycle); |
||||
|
$stmt->bindParam(':maintain_method', $elevator['method']); |
||||
|
$stmt->bindParam(':stand_price', $elevator['price']); |
||||
|
$stmt->bindParam(':contract_price', $elevator['sale_price']); |
||||
|
$stmt->bindParam(':sold_price', $elevator['sale_price']); |
||||
|
$stmt->bindParam(':commission_expense', $elevator['commission_expense']); |
||||
|
$stmt->bindParam(':management_expense', $elevator['management_expense']); |
||||
|
$stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']); |
||||
|
$stmt->bindParam(':service_expense', $elevator['service_expense']); |
||||
|
$stmt->bindParam(':cmstatus', $cmstatus); |
||||
|
$stmt->bindParam(':updated_at', $updated_at); |
||||
|
$stmt->bindParam(':creater', $creater); |
||||
|
$stmt->bindParam(':created_at', $current_date); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
foreach($inBothIds as $bothidx){ |
||||
|
$sql_str = "UPDATE con_maintance_examine_clear SET |
||||
|
register_code=:register_code, |
||||
|
elevator_brand=:elevator_brand, |
||||
|
elevator_kind=:elevator_kind, |
||||
|
spec=:spec, |
||||
|
weight=:weight, |
||||
|
speed=:speed, |
||||
|
stop=:stop, |
||||
|
floors=:floors, |
||||
|
persons=:persons, |
||||
|
elevator_num=:elevator_num, |
||||
|
useful_years=:useful_years, |
||||
|
last_check_date=:last_check_date, |
||||
|
speed_governors_check_expense=:speed_governors_check_expense, |
||||
|
maintain_times=:maintain_times, |
||||
|
is_m1_bundle=:is_m1_bundle, |
||||
|
maintain_months=:maintain_months, |
||||
|
maintain_period=:maintain_period, |
||||
|
maintain_method=:maintain_method, |
||||
|
stand_price=:stand_price, |
||||
|
contract_price=:contract_price, |
||||
|
sold_price=:sold_price, |
||||
|
commission_expense=:commission_expense, |
||||
|
management_expense=:management_expense, |
||||
|
annual_survey_expense=:annual_survey_expense, |
||||
|
service_expense=:service_expense, |
||||
|
cmstatus=:cmstatus, |
||||
|
updated_at=:updated_at |
||||
|
WHERE (apply_key, item_no) = (:apply_key, :item_no)"; |
||||
|
|
||||
|
$elevator = array_values(array_filter($elevators, fn($el)=> $el['id'] == $bothidx))[0]; |
||||
|
$register_code = empty($elevator['permitNumber']) ? "A" : $elevator['permitNumber']; |
||||
|
if($elevator['spec'] == "MAE100") $elevator_kind = "A"; |
||||
|
if($elevator['spec'] == "MAF100") $elevator_kind = "B"; |
||||
|
if($elevator['spec'] == "MAM200") $elevator_kind = "D"; |
||||
|
if($elevator['spec'] == "MAH100") $elevator_kind = "E"; |
||||
|
|
||||
|
$speed_governors_check_expense = null; |
||||
|
$maintain_times = 1; |
||||
|
$commission_expense = null; |
||||
|
$management_expense = null; |
||||
|
$service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee; |
||||
|
$cmstatus = "Y"; |
||||
|
$cycle = (int)$elevator['cycle']; |
||||
|
|
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->bindParam(':register_code', $register_code); |
||||
|
$stmt->bindParam(':elevator_brand', $elevator['brand']); |
||||
|
$stmt->bindParam(':elevator_kind', $elevator_kind); |
||||
|
$stmt->bindParam(':spec', $elevator['spec']); |
||||
|
$stmt->bindParam(':weight', $elevator['weight']); |
||||
|
$stmt->bindParam(':speed', $elevator['speed']); |
||||
|
$stmt->bindParam(':stop', $elevator['stop']); |
||||
|
$stmt->bindParam(':floors', $elevator['stop']); |
||||
|
$stmt->bindParam(':persons', $elevator['person']); |
||||
|
$stmt->bindParam(':elevator_num', $elevator['qty']); |
||||
|
$stmt->bindParam(':useful_years', $elevator['checkYear']); |
||||
|
$stmt->bindParam(':last_check_date', $elevator['lastDate']); |
||||
|
$stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense); |
||||
|
$stmt->bindParam(':maintain_times', $maintain_times); |
||||
|
$stmt->bindParam(':is_m1_bundle', $elevator['m1']); |
||||
|
$stmt->bindParam(':maintain_months', $elevator['months']); |
||||
|
$stmt->bindParam(':maintain_period', $cycle); |
||||
|
$stmt->bindParam(':maintain_method', $elevator['method']); |
||||
|
$stmt->bindParam(':stand_price', $elevator['price']); |
||||
|
$stmt->bindParam(':contract_price', $elevator['sale_price']); |
||||
|
$stmt->bindParam(':sold_price', $elevator['sale_price']); |
||||
|
$stmt->bindParam(':commission_expense', $elevator['commission_expense']); |
||||
|
$stmt->bindParam(':management_expense', $elevator['management_expense']); |
||||
|
$stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']); |
||||
|
$stmt->bindParam(':service_expense', $elevator['service_expense']); |
||||
|
$stmt->bindParam(':cmstatus', $cmstatus); |
||||
|
$stmt->bindParam(':updated_at', $updated_at); |
||||
|
|
||||
|
$stmt->bindParam(':item_no', $bothidx); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
|
||||
|
//除外項目 |
||||
|
$sql_str = "SELECT * FROM pricereview_maintain_item WHERE (mid, item_group) = (:apply_key, 'E')"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->execute(); |
||||
|
$item_other_options = $stmt->fetchAll(PDO::FETCH_ASSOC); |
||||
|
$oldOtherOptionsNo = (array)array_column($item_other_options, 'item_no'); |
||||
|
$newOtherOptioinNo = (array)array_column($otherOptions, 'id'); |
||||
|
|
||||
|
$onlyInOtherOptionOldIds = array_values(array_diff($oldOtherOptionsNo, $newOtherOptioinNo)); |
||||
|
$onlyInOtherOptionNewIds = array_values(array_diff($newOtherOptioinNo, $oldOtherOptionsNo)); |
||||
|
$inBothOtherOptionIds = array_values(array_intersect($oldOtherOptionsNo, $newOtherOptioinNo)); |
||||
|
|
||||
|
foreach($onlyInOtherOptionOldIds as $oldotheroptionidx){ |
||||
|
$sql_str = "DELETE FROM pricereview_maintain_item WHERE (mid, item_no, item_group) = (:apply_key, :item_no, 'E')"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->bindParam(':item_no', $oldotheroptionidx); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
|
||||
|
foreach($onlyInOtherOptionNewIds as $newotheroptionidx){ |
||||
|
$option = array_values(array_filter($otherOptions, fn($el)=> $el['id'] == $newotheroptionidx))[0]; |
||||
|
|
||||
|
$sql_str = "INSERT INTO pricereview_maintain_item (mid, price_id, item_no, item_group, item_spec, option_relate_spec, item_unit_price, item_qty, item_price_bp, memo) |
||||
|
VALUES (:mid, :price_id, :item_no, :item_group, :item_spec, :option_relate_spec, :item_unit_price, :item_qty, :item_price_bp, :memo)"; |
||||
|
|
||||
|
$item_price_bp = $option['price']*$option['num']; |
||||
|
$option_relate_spec = (count($option['toElevator']) > 0) ? $option['toElevator'][0]['id'] : null; |
||||
|
$item_group = "E"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':mid', $apply_key); |
||||
|
$stmt->bindParam(':price_id', $option['pr_no']); |
||||
|
$stmt->bindParam(':item_no', $option['id']); |
||||
|
$stmt->bindParam(':item_group', $item_group); |
||||
|
$stmt->bindParam(':item_spec', $option['name']); |
||||
|
$stmt->bindParam(':option_relate_spec', $option_relate_spec); |
||||
|
$stmt->bindParam(':item_unit_price', $option['price']); |
||||
|
$stmt->bindParam(':item_qty', $option['num']); |
||||
|
$stmt->bindParam(':item_price_bp', $item_price_bp); |
||||
|
$stmt->bindParam(':memo', $option['memo']); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
foreach($inBothOtherOptionIds as $bothotheroptionidx){ |
||||
|
$option = array_values(array_filter($otherOptions, fn($el)=> $el['id'] == $bothotheroptionidx))[0]; |
||||
|
|
||||
|
$sql_str = "UPDATE pricereview_maintain_item SET item_spec=:item_spec, price_id=:price_id, option_relate_spec=:option_relate_spec, item_unit_price = :item_unit_price, item_qty = :item_qty, item_price_bp = :item_price_bp, memo = :memo |
||||
|
WHERE (mid, item_no, item_group) = (:apply_key, :item_no, :item_group)"; |
||||
|
|
||||
|
$item_group = "E"; |
||||
|
$item_price_bp = $option['price']*$option['num']; |
||||
|
$option_relate_spec = (count($option['toElevator']) > 0) ? $option['toElevator'][0]['id'] : null; |
||||
|
|
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->bindParam(':item_no', $option['id']); |
||||
|
$stmt->bindParam(':price_id', $option['pr_no']); |
||||
|
$stmt->bindParam(':item_group', $item_group); |
||||
|
$stmt->bindParam(':item_spec', $option['name']); |
||||
|
$stmt->bindParam(':option_relate_spec', $option_relate_spec); |
||||
|
$stmt->bindParam(':item_unit_price', $option['price']); |
||||
|
$stmt->bindParam(':item_qty', $option['num']); |
||||
|
$stmt->bindParam(':item_price_bp', $item_price_bp); |
||||
|
$stmt->bindParam(':memo', $option['memo']); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
} |
||||
|
if($status == "YS"){ |
||||
|
$sql_str = "SELECT * FROM account WHERE accountid = :accountid"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':accountid', $creater); |
||||
|
$stmt->execute(); |
||||
|
$account = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
$manager = $account['manager']; |
||||
|
$sign1 = $manager . ",,"; |
||||
|
$sign2 = "M0012,,"; |
||||
|
$sign3 = "M0008,,"; |
||||
|
|
||||
|
$sign_total = 3; |
||||
|
//服務費大於0 或是 價率低於0.8送至總經理(M0006) |
||||
|
if(false && ($serviceFee > 0 || ($total_sale_price / $total_price) < 0.8)){ |
||||
|
$sign4 = "M0006,,"; |
||||
|
$sign_total = 4; |
||||
|
} |
||||
|
|
||||
|
$sql_str = "INSERT INTO pricereview_maintain_sign (mid, sign1, sign1_note, sign2, sign2_note, sign3, sign3_note, sign4, sign4_note, sign_total, created_at, created_by) |
||||
|
VALUES (:mid, :sign1, :sign1_note, :sign2, :sign2_note, :sign3, :sign3_note, :sign4, :sign4_note, :sign_total, :created_at, :created_by)"; |
||||
|
|
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':mid', $apply_key); |
||||
|
$stmt->bindParam(':sign1', $sign1); |
||||
|
$stmt->bindParam(':sign1_note', $sign1_note); |
||||
|
$stmt->bindParam(':sign2', $sign2); |
||||
|
$stmt->bindParam(':sign2_note', $sign2_note); |
||||
|
$stmt->bindParam(':sign3', $sign3); |
||||
|
$stmt->bindParam(':sign3_note', $sign3_note); |
||||
|
$stmt->bindParam(':sign4', $sign4); |
||||
|
$stmt->bindParam(':sign4_note', $sign4_note); |
||||
|
$stmt->bindParam(':sign_total', $sign_total); |
||||
|
$stmt->bindParam(':created_at', $current_date); |
||||
|
$stmt->bindParam(':created_by', $creater); |
||||
|
$stmt->execute(); |
||||
|
|
||||
|
include_once "./postFlow.php"; |
||||
|
$form_key = null; |
||||
|
$createFlow = createFlow($apply_key, $manager, "A", "保養", $form_key); |
||||
|
|
||||
|
include_once "./postSystemNotice.php"; |
||||
|
$sql_str = "SELECT * FROM con_maintance_examine_apply WHERE apply_key = :apply_key ORDER BY create_at DESC LIMIT 1"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->execute(); |
||||
|
$contract = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
$kind = 1; |
||||
|
$related_id = $apply_key; |
||||
|
$title = "保養價審待簽通知(".$vol_no."," .$customer. ")"; |
||||
|
$content = "待簽核"; |
||||
|
$content = "合約號:".$vol_no . "<br>"; |
||||
|
$content .= "客戶名稱:" . $customer . "<br>"; |
||||
|
$content .= "案件名稱:" . $case_name . "<br>"; |
||||
|
$content .= "時間" . $current_date; |
||||
|
// $content .= "<a href='./mkt/pricreviewCheck.php?id=".$mid.">前往查看</a>"; |
||||
|
$havaread = null; |
||||
|
$permissions = [$manager]; |
||||
|
$creater = "system"; |
||||
|
$create_at = $current_date; |
||||
|
$url = "cont/pricereviewCheck.php?id=" . $apply_key; |
||||
|
sendSystemNotice($kind, $related_id, $title, $content, $havaread, $permissions, $creater, $create_at, $url); |
||||
|
} |
||||
|
echo "success"; |
||||
|
$conn->commit(); |
||||
|
|
||||
|
} catch (PDOException $e) { |
||||
|
$conn->rollBack(); |
||||
|
echo $e->getMessage(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
@ -0,0 +1,58 @@ |
|||||
|
<?php |
||||
|
require_once("../../mkt/conn.php"); |
||||
|
function createFlow($mid, $current_assigner, $flow_code, $ekind, $form_key=null){ |
||||
|
global $conn; |
||||
|
$form_id = $mid; |
||||
|
$seq = 0; |
||||
|
$system_id = "prm"; |
||||
|
if($ekind == "新梯") $flow_id = "prm01"; |
||||
|
if($ekind == "汰改") $flow_id = "prm02"; |
||||
|
if($ekind == "保養") $flow_id = "prm03"; |
||||
|
|
||||
|
if($form_key == null){ |
||||
|
$sql_str = "SELECT appwms.nextval('form_key') form_key"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->execute(); |
||||
|
$result = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
$form_key = $result['form_key']; |
||||
|
$seq = 0; |
||||
|
|
||||
|
$sql_str = "INSERT INTO flow (system_id, flow_id, form_id, form_key, flow_code) |
||||
|
VALUES (:system_id, :flow_id, :form_id, :form_key, :flow_code)"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':system_id', $system_id); |
||||
|
$stmt->bindParam(':flow_id', $flow_id); |
||||
|
$stmt->bindParam(':form_id', $form_id); |
||||
|
$stmt->bindParam(':form_key', $form_key); |
||||
|
$stmt->bindParam(':flow_code', $flow_code); |
||||
|
$stmt->execute(); |
||||
|
}else{ |
||||
|
$sql_str = "UPDATE flow SET flow_code = :flow_code WHERE form_key = :form_key"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':form_key', $form_key); |
||||
|
$stmt->bindParam(':flow_code', $flow_code); |
||||
|
$stmt->execute(); |
||||
|
|
||||
|
$sql_str = "SELECT MAX(seq) AS max_seq FROM subflow WHERE form_key = :form_key"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':form_key', $form_key); |
||||
|
$stmt->execute(); |
||||
|
$result = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
$seq = $result['max_seq']; |
||||
|
$seq ++; |
||||
|
} |
||||
|
|
||||
|
$created_at = date("Y-m-d H:i:s"); |
||||
|
$sql_str = "INSERT INTO subflow (form_key, seq, current_assigner, update_date,create_date) |
||||
|
VALUES (:form_key, :seq, :current_assigner, :update_date,:create_date)"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':form_key', $form_key); |
||||
|
$stmt->bindParam(':seq', $seq); |
||||
|
$stmt->bindParam(':current_assigner', $current_assigner); |
||||
|
$stmt->bindParam(':update_date', $created_at); |
||||
|
$stmt->bindParam(':create_date', $created_at); |
||||
|
$stmt->execute(); |
||||
|
|
||||
|
|
||||
|
return $form_key; |
||||
|
} |
@ -0,0 +1,20 @@ |
|||||
|
<?php |
||||
|
require_once("../../mkt/conn.php"); |
||||
|
function sendSystemNotice($kind, $related_id, $title, $content, $haveread, $permissions, $creater, $create_at, $url){ |
||||
|
global $conn; |
||||
|
$sql_str = "INSERT INTO notice (kind, related_id, title, content, haveread, permission, url, creater, create_at) |
||||
|
VALUES (:kind, :related_id, :title, :content, :haveread, :permission, :url,:creater, :create_at)"; |
||||
|
foreach($permissions as $permission){ |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':kind', $kind); |
||||
|
$stmt->bindParam(':related_id', $related_id); |
||||
|
$stmt->bindParam(':title', $title); |
||||
|
$stmt->bindParam(':content', $content); |
||||
|
$stmt->bindParam(':haveread', $haveread); |
||||
|
$stmt->bindParam(':permission', $permission); |
||||
|
$stmt->bindParam(':url', $url); |
||||
|
$stmt->bindParam(':creater', $creater); |
||||
|
$stmt->bindParam(':create_at', $create_at); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
} |
@ -1,115 +1,43 @@ |
|||||
[ |
[ |
||||
{ |
{ |
||||
"name": "MainSalesOrder", |
"apply_key": "11111111", |
||||
"rows": [ |
"register_code": "B32510261185", |
||||
{ |
"elevator_brand": "1", |
||||
"BillNo": "M24020076", |
"elevator_kind": "E", |
||||
"BillDate": 20240320, |
"spec": "MAH100", |
||||
"TypeId": "SO", |
"weight": "450", |
||||
"FOrgId": "1000", |
"speed": "45.00", |
||||
"OrgId": "1000", |
"stop": "3", |
||||
"ModeId": "M", |
"floors": "3", |
||||
"BizPartnerId": "M24020076", |
"persons": "6", |
||||
"CurrId": "TWD", |
"elevator_num": "0", |
||||
"CurrOAmount": 1, |
"useful_years": "106", |
||||
"CurrLAmount": 1, |
"last_check_date": "1", |
||||
"PersonId": "M0073", |
"speed_governors_check_expense": "0", |
||||
"DueToId": "M24020076", |
"maintain_times": "1", |
||||
"TradeConditionId": "", |
"is_m1_bundle": "N", |
||||
"TaxId": "ST005", |
"maintainance": "B", |
||||
"CreditorCompId": "1001", |
"maintain_months": "12", |
||||
"CreditorOrgId": "1000", |
"maintain_period": "1", |
||||
"CreatorId": "M0225" |
"stand_price": "1250.00", |
||||
} |
"contract_price": "1250.00", |
||||
] |
"sold_price": 1250, |
||||
}, |
"commission_expense": null, |
||||
{ |
"management_expense": null, |
||||
"name": "SubOrder", |
"annual_survey_expense": "0.00", |
||||
"rows": [ |
"service_expense": 0, |
||||
{ |
"cmstatus": "Y", |
||||
"TaxId": "ST005", |
"updated_at": null, |
||||
"RequirementDate": 20240320, |
"creater": null, |
||||
"ConsignmentDate": 20240320, |
"created_at": "2024-02-26 15:24:23", |
||||
"BillNo": "M24020076", |
"discount": 100, |
||||
"RowCode": 1, |
"latitude": "112", |
||||
"ItemType": 1, |
"longitude": "11", |
||||
"MaterialId": "A40001", |
"takecertificatedate": "112", |
||||
"SUnitId": "SET", |
"opendoor": "2PCO", |
||||
"SQuantity": 1, |
"useful_date": "113-01-01", |
||||
"SPrice": 910000, |
"bonus_verson": "2.0", |
||||
"CU_MaterialId": "4MW00001" |
"manager": "M0029", |
||||
}, |
"regular_contract_manger_id": "M0054" |
||||
{ |
|
||||
"TaxId": "ST005", |
|
||||
"RequirementDate": 20240320, |
|
||||
"ConsignmentDate": 20240320, |
|
||||
"BillNo": "M24020076", |
|
||||
"RowCode": 2, |
|
||||
"ItemType": 1, |
|
||||
"MaterialId": "A40008", |
|
||||
"SUnitId": "SET", |
|
||||
"SQuantity": 1, |
|
||||
"SPrice": 390000, |
|
||||
"CU_MaterialId": "4MW00001" |
|
||||
}, |
|
||||
{ |
|
||||
"TaxId": "ST005", |
|
||||
"RequirementDate": 20240320, |
|
||||
"ConsignmentDate": 20240320, |
|
||||
"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": 20240420, |
|
||||
"BillNo": "M24020076", |
|
||||
"RowCode": 1, |
|
||||
"RowNo": 1, |
|
||||
"UnWriteOffOAmount": 260000 |
|
||||
}, |
|
||||
{ |
|
||||
"PayStage": "貨抵工地", |
|
||||
"PlanPercentage": 0.5, |
|
||||
"PlanPayAmt": 650000, |
|
||||
"PlanPayDate": 20241220, |
|
||||
"BillNo": "M24020076", |
|
||||
"RowCode": 2, |
|
||||
"RowNo": 2, |
|
||||
"UnWriteOffOAmount": 650000 |
|
||||
}, |
|
||||
{ |
|
||||
"PayStage": "試車完工", |
|
||||
"PlanPercentage": 0.2, |
|
||||
"PlanPayAmt": 260000, |
|
||||
"PlanPayDate": 20250120, |
|
||||
"BillNo": "M24020076", |
|
||||
"RowCode": 3, |
|
||||
"RowNo": 3, |
|
||||
"UnWriteOffOAmount": 260000 |
|
||||
}, |
|
||||
{ |
|
||||
"PayStage": "交車", |
|
||||
"PlanPercentage": 0.1, |
|
||||
"PlanPayAmt": 130000, |
|
||||
"PlanPayDate": 20250220, |
|
||||
"BillNo": "M24020076", |
|
||||
"RowCode": 4, |
|
||||
"RowNo": 4, |
|
||||
"UnWriteOffOAmount": 130000 |
|
||||
} |
|
||||
] |
|
||||
} |
} |
||||
] |
] |
@ -1,258 +0,0 @@ |
|||||
<?php |
|
||||
|
|
||||
// { |
|
||||
// "BillNo": "Z001", //合約單號 |
|
||||
// "BillDate": 20210420, //簽約日期 |
|
||||
// "TypeId": "SO", // |
|
||||
// "FOrgId": "1000", |
|
||||
// "OrgId": "1000", |
|
||||
// "ModeId": "T", // T汰改 M新梯 |
|
||||
// "BizPartnerId": "M0225", //創建人ID |
|
||||
// "CurrId": "TWD", |
|
||||
// "CurrOAmount": 1, |
|
||||
// "CurrLAmount": 1, |
|
||||
// "PersonId": "M0225", //業務人員 |
|
||||
// "DueToId": "512", //業務部門 |
|
||||
// "TradeConditionId": "", |
|
||||
// "TaxId": "ST005", |
|
||||
// "CreditorCompId": "1000", |
|
||||
// "CreditorOrgId": "1000", |
|
||||
// "CreditorCurrOAmount": 1, |
|
||||
// "CreditorCurrLAmount": 1, |
|
||||
// "CompId": "1000" |
|
||||
// } |
|
||||
// ] |
|
||||
// }, |
|
||||
// { |
|
||||
// //salSalesOrderDetail |
|
||||
// "name": "SubOrder", |
|
||||
// "rows": [ |
|
||||
// { |
|
||||
// "SupplyCompId": "1001", |
|
||||
// "SupplyOrgId": "1000", |
|
||||
// "TaxId": "ST005", |
|
||||
// "RequirementDate": 20210420, //出貨日期 |
|
||||
// "ConsignmentDate": 20210420, //發貨日期 |
|
||||
// "DispatchCompId": "1001", |
|
||||
// "DispatchOrgId": "1000", |
|
||||
// "BillNo": "Z001", //合約號 |
|
||||
// "RowCode": 1, //全部筆數排列 |
|
||||
// "ItemType": 0, |
|
||||
// "MaterialId": "Z001", //作番號 |
|
||||
// "SUnitId": "SET", |
|
||||
// "SQuantity": 1, //交易數量 |
|
||||
// "SPrice": 1 //交易價格 |
|
||||
// } |
|
||||
// ] |
|
||||
// }, |
|
||||
// { |
|
||||
// "name": "salOrderStagePay", |
|
||||
// "rows": [ |
|
||||
// { |
|
||||
// "BillNo": "", |
|
||||
// "RowCode": "", |
|
||||
// "RowNo": "", |
|
||||
// "PayStage": "ST003", //收款階段 |
|
||||
// "PlanPercentage": "Z001", //計劃收款比例(%) |
|
||||
// "PlanPayAmt": 1, //計劃收款金額 |
|
||||
// "PlanPayDate": 1, //計劃收款日期 1.第一筆都是簽約日 |
|
||||
// "UnWriteOffOAmount": 1 //未核銷金額 |
|
||||
// } |
|
||||
// ] |
|
||||
// } |
|
||||
// ] |
|
||||
require_once("../../T8_Authorization_from_bpm.php"); |
|
||||
|
|
||||
$api_url = "https://erp.masada.com.tw:780/twWebAPI/V1/SALSALESORDER/PostERPData"; |
|
||||
|
|
||||
$validation = get_Auth(); |
|
||||
$header = [ |
|
||||
"CHI_Authorization :" . $validation, |
|
||||
"GroupId:MASADA" |
|
||||
]; |
|
||||
$url = "https://erp.masada.com.tw:780/twWebAPI/V1/GLFEEWRITEOFF/DeleteERPData?pkValue=1000,M24020076"; |
|
||||
|
|
||||
$ch = curl_init(); |
|
||||
curl_setopt($ch, CURLOPT_URL, $url); |
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); |
|
||||
|
|
||||
$response = curl_exec($ch); |
|
||||
if ($response === false) { |
|
||||
echo 'Curl error: ' . curl_error($ch); |
|
||||
} else { |
|
||||
$result = json_decode($response, true); |
|
||||
// 若 API 傳入失敗。 |
|
||||
if ($result['Status'] == 'Erroe') { |
|
||||
echo 'API傳入失敗,' . $result['ErrorMsg']; |
|
||||
print_r($result); |
|
||||
} else { |
|
||||
// print_r($result); |
|
||||
print_r($result); |
|
||||
} |
|
||||
print_r($result); |
|
||||
} |
|
||||
|
|
||||
curl_close($ch); |
|
||||
exit(); |
|
||||
$contract_no = "M24020003"; |
|
||||
// $contract_no = "M24010109"; |
|
||||
$MainSalesOrder_row = [ |
|
||||
"BillNo" => "$contract_no", //合約單號 |
|
||||
"BillDate" => 20210420, //簽約日期 |
|
||||
"TypeId" => "SO", // |
|
||||
"FOrgId" => "1000", |
|
||||
"OrgId" => "1000", |
|
||||
"ModeId" => "M", // T汰改 M新梯 |
|
||||
"BizPartnerId" => "$contract_no", //客戶代碼 |
|
||||
"CurrId" => "TWD", |
|
||||
"CurrOAmount" => 1, |
|
||||
"CurrLAmount" => 1, |
|
||||
"PersonId" => "M0177", //業務人員 |
|
||||
"DueToId" => "$contract_no", //債務方 |
|
||||
"TradeConditionId" => "", |
|
||||
"TaxId" => "ST005", |
|
||||
"CreditorCompId" => "1001", |
|
||||
"CreditorOrgId" => "1000", |
|
||||
"CreatorId" => "M0225" |
|
||||
|
|
||||
]; |
|
||||
// //salSalesOrderDetail |
|
||||
// $SubOrder_row = []; |
|
||||
for ($i = 0; $i < 3; $i++) { |
|
||||
if ($i == 0) { |
|
||||
$row = [ |
|
||||
// "SupplyCompId" => "1001", |
|
||||
// "SupplyOrgId" => "1000", |
|
||||
"TaxId" => "ST005", |
|
||||
"RequirementDate" => 20210420, //出貨日期 |
|
||||
"ConsignmentDate" => 20210420, //發貨日期 |
|
||||
// "DispatchCompId" => "1001", |
|
||||
// "DispatchOrgId" => "1000", |
|
||||
"BillNo" => "$contract_no", //合約號 |
|
||||
"RowCode" => $i, //全部筆數排列 |
|
||||
"ItemType" => 1, |
|
||||
"MaterialId" => "A40001", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) |
|
||||
"SUnitId" => "SET", |
|
||||
"SQuantity" => 1, //交易數量 |
|
||||
"SPrice" => 100000 //交易價格 |
|
||||
]; |
|
||||
} |
|
||||
if ($i == 1) { |
|
||||
$row = [ |
|
||||
// "SupplyCompId" => "1001", |
|
||||
// "SupplyOrgId" => "1000", |
|
||||
"TaxId" => "ST005", |
|
||||
"RequirementDate" => 20210420, //出貨日期 |
|
||||
"ConsignmentDate" => 20210420, //發貨日期 |
|
||||
// "DispatchCompId" => "1001", |
|
||||
// "DispatchOrgId" => "1000", |
|
||||
"BillNo" => "$contract_no", //合約號 |
|
||||
"RowCode" => $i, //全部筆數排列 |
|
||||
"ItemType" => 1, |
|
||||
"MaterialId" => "A40008", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) |
|
||||
"SUnitId" => "SET", |
|
||||
"SQuantity" => 1, //交易數量 |
|
||||
"SPrice" => 650000 //交易價格 |
|
||||
]; |
|
||||
} |
|
||||
if ($i == 2) { |
|
||||
$row = [ |
|
||||
"TaxId" => "ST005", |
|
||||
"RequirementDate" => 20210420, //出貨日期 |
|
||||
"ConsignmentDate" => 20210420, //發貨日期 |
|
||||
"BillNo" => "$contract_no", //合約號 |
|
||||
"RowCode" => $i, //全部筆數排列 |
|
||||
"ItemType" => 0, |
|
||||
"MaterialId" => "4MH00669", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) |
|
||||
"SUnitId" => "SET", |
|
||||
"SQuantity" => 1, //交易數量 |
|
||||
"SPrice" => 0 //交易價格 |
|
||||
]; |
|
||||
} |
|
||||
$SubOrder_row[] = $row; |
|
||||
} |
|
||||
|
|
||||
|
|
||||
$salOrderStagePay_row = []; |
|
||||
$roww = [ |
|
||||
"PayStage" => "簽約", //收款階段 |
|
||||
"PlanPercentage" => 0.5, //計劃收款比例(%) |
|
||||
"PlanPayAmt" => 375000, //計劃收款金額 |
|
||||
"PlanPayDate" => 20240101, //計劃收款日期 1.第一筆都是簽約日 |
|
||||
"BillNo" => "$contract_no", |
|
||||
"RowCode" => 1, |
|
||||
"RowNo" => 1, |
|
||||
"UnWriteOffOAmount" => 375000 //未核銷金額 |
|
||||
]; |
|
||||
$roww2 = [ |
|
||||
"PayStage" => "貨抵工地", |
|
||||
"PlanPercentage" => 0.5, |
|
||||
"PlanPayAmt" => 375000, |
|
||||
"PlanPayDate" => 20240101, |
|
||||
"BillNo" => "$contract_no", |
|
||||
"RowCode" => 2, |
|
||||
"RowNo" => 2, |
|
||||
"UnWriteOffOAmount" => 375000 |
|
||||
]; |
|
||||
$salOrderStagePay_row[] = $roww; |
|
||||
$salOrderStagePay_row[] = $roww2; |
|
||||
|
|
||||
|
|
||||
$MainSalesOrder = [ |
|
||||
"name" => "MainSalesOrder", |
|
||||
'rows' => [$MainSalesOrder_row] |
|
||||
]; |
|
||||
$SubOrder = [ |
|
||||
"name" => "SubOrder", |
|
||||
"rows" => $SubOrder_row |
|
||||
]; |
|
||||
$salOrderStagePay = [ |
|
||||
"name" => "salOrderStagePay", |
|
||||
"rows" => $salOrderStagePay_row |
|
||||
]; |
|
||||
|
|
||||
$APIbody = []; |
|
||||
$APIbody[] = $MainSalesOrder; |
|
||||
$APIbody[] = $SubOrder; |
|
||||
$APIbody[] = $salOrderStagePay; |
|
||||
// $data = file_get_contents('test copy.json'); |
|
||||
// $arr = json_decode($data, true); |
|
||||
// echo "<pre>"; |
|
||||
// print_r($data); |
|
||||
// echo "</pre>"; |
|
||||
|
|
||||
echo "<pre>"; |
|
||||
print_r(json_encode($APIbody, JSON_UNESCAPED_UNICODE)); |
|
||||
echo "</pre>"; |
|
||||
// exit(); |
|
||||
|
|
||||
$header = [ |
|
||||
"CHI_Authorization :" . $validation, |
|
||||
"GroupId:TEST" |
|
||||
]; |
|
||||
$ch = curl_init(); |
|
||||
curl_setopt($ch, CURLOPT_URL, $api_url); // 设置请求的URL |
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); |
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); |
|
||||
curl_setopt($ch, CURLOPT_POST, 1); // 使用 POST |
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($APIbody, JSON_UNESCAPED_UNICODE)); |
|
||||
$response = curl_exec($ch); |
|
||||
|
|
||||
if ($response === false) { |
|
||||
echo 'Curl error: ' . curl_error($ch); |
|
||||
} else { |
|
||||
$result = json_decode($response, true); |
|
||||
// 若 API 傳入失敗。 |
|
||||
if ($result['Status'] == 'Erroe') { |
|
||||
echo 'API傳入失敗,' . $result['ErrorMsg']; |
|
||||
print_r($result); |
|
||||
} else { |
|
||||
// print_r($result); |
|
||||
print_r($result); |
|
||||
} |
|
||||
print_r($result); |
|
||||
} |
|
||||
|
|
||||
curl_close($ch); |
|
@ -0,0 +1,10 @@ |
|||||
|
<?php |
||||
|
include_once("../conn.php"); |
||||
|
$sql = "SELECT * FROM pricereview_pay WHERE mid = '441'"; |
||||
|
$stmt = $conn->prepare($sql); |
||||
|
$stmt->execute(); |
||||
|
$pay_kind = $stmt->fetchAll(PDO::FETCH_ASSOC); |
||||
|
|
||||
|
echo "<pre>"; |
||||
|
print_r($pay_kind); |
||||
|
echo "</pre>"; |
@ -0,0 +1,66 @@ |
|||||
|
<?php |
||||
|
include "header.php"; |
||||
|
include_once "./contract/conn.php"; |
||||
|
|
||||
|
if (isset($_POST['update'])) { |
||||
|
function user_input($data) |
||||
|
{ |
||||
|
$data1 = trim($data); |
||||
|
$data2 = stripslashes($data1); |
||||
|
$data3 = htmlspecialchars($data2); |
||||
|
return $data3; |
||||
|
} |
||||
|
|
||||
|
$id = $_POST['id']; |
||||
|
$sql = "SELECT * FROM schedule WHERE id = '$id'"; |
||||
|
$stmt = $conn->prepare($sql); |
||||
|
$stmt->execute(); |
||||
|
$checkRepaireIsit = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
if (!empty($checkRepaireIsit)) { |
||||
|
echo "<script type ='text/JavaScript'>"; |
||||
|
echo "alert('此單號已經有保養人員');"; |
||||
|
echo "location.href='schedule-index.php?function_name=schedule&" . $token_link . "';"; |
||||
|
echo "</script>"; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
$contractno = user_input($_POST["contractno"]); |
||||
|
$facilityno = user_input($_POST["facilityno"]); |
||||
|
$repairerid = user_input($_POST["repairerid"]); |
||||
|
|
||||
|
|
||||
|
$creater = user_input($_POST["creater"]); |
||||
|
$create_at = date('Y/m/d H:i:s'); |
||||
|
|
||||
|
$sql = "SELECT name FROM account WHERE accountid = '$repairerid'"; |
||||
|
$stmt = $conn->prepare($sql); |
||||
|
$stmt->execute(); |
||||
|
$account = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
|
||||
|
$repairername = $account['name']; |
||||
|
|
||||
|
|
||||
|
$db_query = "UPDATE schedule set |
||||
|
repairerid = '$repairerid', |
||||
|
repairername = '$repairername', |
||||
|
updater = '$creater', |
||||
|
update_at = '$create_at' WHERE contractno='$contractno' AND facilityno='$facilityno'"; |
||||
|
|
||||
|
$stmt = $conn->prepare($db_query); |
||||
|
$stmt->execute(); |
||||
|
$affected = $stmt->rowCount(); |
||||
|
|
||||
|
if ($affected > 0) { |
||||
|
echo "<script type ='text/JavaScript'>"; |
||||
|
echo "alert('update成功');"; |
||||
|
echo "location.href='schedule-index.php?function_name=schedule&" . $token_link . "';"; |
||||
|
echo "</script>"; |
||||
|
} elseif ($affected == 0) { |
||||
|
echo "<script type ='text/JavaScript'>"; |
||||
|
echo "alert('無新增資料');"; |
||||
|
echo "location.href='schedule-index.php?function_name=schedule&" . $token_link . "';"; |
||||
|
echo "</script>"; |
||||
|
} else { |
||||
|
echo "{$db_query} 語法執行失敗,錯誤訊息SSS: "; |
||||
|
} |
||||
|
} |
@ -0,0 +1,192 @@ |
|||||
|
<?php |
||||
|
include "header.php"; |
||||
|
include_once "./contract/conn.php"; |
||||
|
|
||||
|
$id = isset($_GET['id']) ? $_GET['id'] : die('ERROR: Record ID not found.'); |
||||
|
|
||||
|
$data = array(); |
||||
|
// sql語法存在變數中 |
||||
|
$db_query = "SELECT * FROM schedule WHERE id=$id"; |
||||
|
|
||||
|
// 用mysqli_query方法執行(sql語法)將結果存在變數中 |
||||
|
$data = mysqli_query($link, $db_query); |
||||
|
|
||||
|
|
||||
|
$sql = "SELECT * FROM account WHERE accounttype = 'B' "; |
||||
|
$stmt = $conn->prepare($sql); |
||||
|
$stmt->execute(); |
||||
|
$repaire = $stmt->fetchAll(PDO::FETCH_ASSOC); |
||||
|
|
||||
|
/* |
||||
|
|
||||
|
include "inc/record_update.php"; |
||||
|
|
||||
|
try { |
||||
|
// 設置一個空陣列來放資料 |
||||
|
$data = array(); |
||||
|
// sql語法存在變數中 |
||||
|
$db_query = "SELECT * FROM expert WHERE id=$id"; |
||||
|
|
||||
|
// 用mysqli_query方法執行(sql語法)將結果存在變數中 |
||||
|
$data = mysqli_query($link,$db_query); |
||||
|
}catch (Exception $e) { |
||||
|
echo 'Caught exception: ', $e->getMessage(), "\n"; |
||||
|
} |
||||
|
*/ |
||||
|
foreach ($data as $data) : |
||||
|
?> |
||||
|
|
||||
|
<div class="container"> |
||||
|
<form class="form-inline" method="post" action="schedule-setting-repaire-update.php" enctype="multipart/form-data"> |
||||
|
<input type="hidden" name="id" value="<?php echo $id; ?>"> |
||||
|
|
||||
|
<div> |
||||
|
<label for="contractno">合約號</label> |
||||
|
<input type="text" name="contractno" id="contractno" value="<?php echo $data['contractno']; ?>" disabled> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<label for="facilityno">作番號</label> |
||||
|
<input type="text" name="facilityno" id="facilityno" value="<?php echo $data['facilityno']; ?>" disabled> |
||||
|
</div> |
||||
|
<!-- |
||||
|
<div> |
||||
|
<label for="combono">保養套餐編號</label> |
||||
|
<input type="text" name="combono" id="combono" value="<?php echo $data['combono']; ?>"> |
||||
|
</div> --> |
||||
|
|
||||
|
<div> |
||||
|
<label for="repairerid">保養人員工號</label> |
||||
|
<select name="repairerid" id="repairerid"> |
||||
|
<option value=""></option> |
||||
|
<?php |
||||
|
foreach ($repaire as $repaire) { |
||||
|
?> |
||||
|
<option value="<?= $repaire['accountid'] ?>"><?php echo $repaire['accountid'] . '---' . $repaire['name'] ?></option> |
||||
|
<?php |
||||
|
} |
||||
|
?> |
||||
|
</select> |
||||
|
</div> |
||||
|
<!-- |
||||
|
<div> |
||||
|
<label for="repairername">保養人員姓名</label> |
||||
|
<input type="text" name="repairername" id="repairername" value="<?php echo $data['repairername']; ?>"> |
||||
|
</div> --> |
||||
|
<!-- |
||||
|
<div> |
||||
|
<label for="duedate">應保養日期</label> |
||||
|
<input type="text" name="duedate" id="duedate" value="<?php echo $data['duedate']; ?>"> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<label for="actualdate">實際保養日期</label> |
||||
|
<input type="text" name="actualdate" id="actualdate" data-date-format="yyyy-mm-dd" value="<?php echo $data['actualdate']; ?>"> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<label for="item">保養項目編號</label> |
||||
|
<input type="text" name="item" id="item" value="<?php echo $data['item']; ?>"> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<label for="item_detail">保養項目內容</label> |
||||
|
<input type="text" name="item_detail" id="item_detail" value="<?php echo $data['item_detail']; ?>"> |
||||
|
</div> --> |
||||
|
|
||||
|
<!-- <div> |
||||
|
<label for="result">保養結果</label> |
||||
|
<input type="text" name="result" id="result" value="<?php echo $data['result']; ?>"> |
||||
|
</div> --> |
||||
|
|
||||
|
<!-- |
||||
|
<div> |
||||
|
<label for="evidences">上傳照片</label> |
||||
|
<input type="text" name="evidences" id="evidences" > |
||||
|
</div> |
||||
|
--> |
||||
|
|
||||
|
<!-- <div> |
||||
|
<label for="descriptons">說明</label> |
||||
|
<input type="text" name="descriptons" id="descriptons" value="<?php echo $data['descriptons']; ?>"> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<label for="customer_login_id">客戶評價登入帳號</label> |
||||
|
<input type="text" name="customer_login_id" id="customer_login_id" value="<?php echo $data['customer_login_id']; ?>"> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<label for="customer_login_name">客戶姓名</label> |
||||
|
<input type="text" name="customer_login_name" id="customer_login_name" value="<?php echo $data['customer_login_name']; ?>"> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<label for="stars">保養品質/評價等級(1-5星)</label> |
||||
|
<input type="text" name="stars" id="stars" onkeyup="if(value<0)value=0;if(value>5)value=5;value=value.replace(/^\D*(\d*(?:\.\d)?).*$/g, '$1')" value="<?php echo $data['stars_c1']; ?>"> |
||||
|
</div> |
||||
|
<div> |
||||
|
<label for="stars2">服務態度/評價等級(1-5星)</label> |
||||
|
<input type="text" name="stars2" id="stars2" onkeyup="if(value<0)value=0;if(value>5)value=5;value=value.replace(/^\D*(\d*(?:\.\d)?).*$/g, '$1')" value="<?php echo $data['stars_c2']; ?>"> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<label for="details">內容</label> |
||||
|
<input type="text" name="details" id="details" value="<?php echo $data['details']; ?>"> |
||||
|
</div> --> |
||||
|
<!-- |
||||
|
<div> |
||||
|
<label for="customer_signature">簽名檔</label> |
||||
|
<input type="text" name="customer_signature" id="customer_signature" value="<?php echo $data['customer_signature']; ?>"> |
||||
|
</div> |
||||
|
--> |
||||
|
<div> |
||||
|
<label for="creater">建檔人</label> |
||||
|
<input type="text" name="creater" id="creater" value="<?php echo $data['creater']; ?>" readonly> |
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
<div> |
||||
|
<br> |
||||
|
<button type="submit" name="update">確認</button> |
||||
|
<!-- <button onclick="updateRepaire(<?= $data['contractno'] ?>,<?= $data['facilityno'] ?>,<?= $user_id ?>)" style="text-align: right;">更新此作番保養人員</button> --> |
||||
|
</div> |
||||
|
<input type="hidden" name="token" value="<?php echo $token; ?>"> |
||||
|
<input type="hidden" name="reqaire" id="reqaire" value=""> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
|
||||
|
<?php |
||||
|
|
||||
|
endforeach; |
||||
|
|
||||
|
include "footer.php"; |
||||
|
// include_once "./bonus/api/postSchedule.php" |
||||
|
?> |
||||
|
<script src="./contract-repair/js/axios/axios.min.js"></script> |
||||
|
|
||||
|
<script> |
||||
|
document.getElementById('repairerid').onchange = function() { |
||||
|
var repaireridValue = this.value; |
||||
|
// 根據選擇的值做相應的處理 |
||||
|
document.getElementById('reqaire').value = repaireridValue; |
||||
|
console.log(repaireridValue); |
||||
|
}; |
||||
|
// function updateRepaire(contractno, facilityno, user_id) { |
||||
|
|
||||
|
|
||||
|
// const form = new FormData(); |
||||
|
// form.append("contractno", contractno); |
||||
|
// form.append("facilityno", facilityno); |
||||
|
// form.append("user_id", user_id) |
||||
|
// axios.post('./bonus/api/postSchedule.php', form).then((res) => { |
||||
|
// if (res.data == 'Success') { |
||||
|
// alert('更新成功'); |
||||
|
// location.reload(); |
||||
|
// } |
||||
|
// }).catch((err) => { |
||||
|
|
||||
|
// }) |
||||
|
// } |
||||
|
</script> |
Loading…
Reference in new issue