@ -0,0 +1,50 @@ |
|||||
|
<?php |
||||
|
|
||||
|
function get_Auth($groupId='TEST',$accountId='M0122',$password='90493119') |
||||
|
{ |
||||
|
$user_id = $accountId; |
||||
|
$user_password = $password; |
||||
|
$api_key = "A21181F1EE4966D3"; |
||||
|
$GroupId = $groupId; |
||||
|
|
||||
|
// 伺服器時間扣兩分鐘會比較穩定 |
||||
|
// $now = gmdate("YmdHis"); |
||||
|
$now = gmdate("YmdHis", strtotime("-2 minutes")); |
||||
|
|
||||
|
$data = "$user_id." . $now; |
||||
|
$sign = hash_hmac('SHA256', $data, $api_key, false); |
||||
|
|
||||
|
// 各種API連線網址 |
||||
|
// $apiurl = 'https://erp.masada.com.tw:780/twWebAPI/GetAuth'; |
||||
|
$apiurl = 'http://60.244.87.101:880//twWebAPI/GetAuth'; |
||||
|
// $apiurl = 'http://10.10.145.2:880//twWebAPI/GetAuth'; |
||||
|
// $apiurl = 'https://erp.masada.com.tw:780/twWebAPI/GetAuth'; |
||||
|
|
||||
|
$headerParam = [ |
||||
|
"UserId: $user_id", |
||||
|
"Pwd: $user_password", |
||||
|
"TimestampUTC: $now", |
||||
|
"Sign: $sign", |
||||
|
"GroupId: $GroupId" |
||||
|
]; |
||||
|
|
||||
|
$ch = curl_init(); |
||||
|
curl_setopt($ch, CURLOPT_URL, $apiurl); |
||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerParam); |
||||
|
|
||||
|
$response = curl_exec($ch); |
||||
|
if ($response === false) { |
||||
|
echo 'Curl error: ' . curl_error($ch); |
||||
|
} else { |
||||
|
$result = json_decode($response, true); |
||||
|
if ($result['Status'] == 'Success') |
||||
|
return $result['Data']['CHI_Authorization']; |
||||
|
if ($result['Status'] == 'Error') |
||||
|
return $result['ErrorMsg']; |
||||
|
|
||||
|
print_r($result); |
||||
|
} |
||||
|
|
||||
|
curl_close($ch); |
||||
|
} |
@ -1,446 +1,30 @@ |
|||||
<?php |
<script defer src="./contract/js/alpinejs/cdn.min.js"></script> |
||||
// $today = date('Ym01', strtotime('-1 month',strtotime(date('Ym01')))); |
<style> |
||||
// $yesterday = date("Ym01", strtotime('-1 month',strtotime(date('2023-11-17')))); |
.opacity-0 { opacity: 0; } |
||||
// echo "today: " . $today . "<br>"; |
.opacity-100 { opacity: 1; } |
||||
// echo "yesterday: " . $yesterday . "<br>"; |
.transition-slow { transition-duration: 300ms; } |
||||
// echo $today-$yesterday; |
.transition-medium { transition-duration: 200ms; } |
||||
// echo "<br>"; |
.transition-faster { transition-duration: 100ms; } |
||||
// $test = date('Ymd', $today-$yesterday); |
.scale-90 { transform: scale(0.9); } |
||||
// echo $test; |
.scale-100 { transform: scale(1); } |
||||
|
.ease-in { transition-timing-function: cubic-bezier(0.4, 0, 1, 1); } |
||||
include './header.php'; |
.ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } |
||||
// $sql = "SELECT |
</style> |
||||
// salOrderStagePay.BillNo, |
|
||||
// salOrderStagePay.PayStage |
<div x-data="{ items: ['foo', 'bar'] }"> |
||||
// FROM salOrderStagePay |
<input type="checkbox" x-model="items" value="foo"> |
||||
// LEFT JOIN salSalesOrder |
<input type="checkbox" x-model="items" value="bar"> |
||||
// ON salSalesOrder.BillNo = salOrderStagePay.BillNo WHERE salSalesOrder.ModeId = 'M' AND (salSalesOrder.CurrentState=2 OR salSalesOrder.CurrentState=4) "; |
<input type="checkbox" x-model="items" value="baz"> |
||||
// $query = $conn->query($sql); |
|
||||
// $contracts = array(); |
<button @click="items = ['bar', 'bob']">hey</button> |
||||
// foreach ($query as $row) { |
|
||||
// if (!array_key_exists($row['BillNo'], $contracts)) { |
<template x-for="item in items" :key="item"> |
||||
// $contracts[$row['BillNo']] = [$row['BillNo'], $row['PayStage']]; |
<div x-text="item" |
||||
// }else{ |
x-transition:enter-start="opacity-0 scale-90" |
||||
// array_push($contracts[$row['BillNo']], $row['PayStage']); |
x-transition:enter="ease-out transition-medium" |
||||
// } |
x-transition:enter-end="opacity-100 scale-100" |
||||
// } |
x-transition:leave-start="opacity-100 scale-100" |
||||
// foreach($contracts as $contract){ |
x-transition:leave="ease-in transition-faster" |
||||
// foreach($contract as $con){ |
x-transition:leave-end="opacity-0 scale-90"></div> |
||||
// echo $con.";"; |
</template> |
||||
// } |
</div> |
||||
// echo "<br>"; |
|
||||
// } |
|
||||
|
|
||||
//只有一個作番的銷售訂單 |
|
||||
// $sql = "select salSalesOrderDetail.BillNo,count(salSalesOrderDetail.MaterialId) AS number from salSalesOrderDetail |
|
||||
// LEFT JOIN salSalesOrder ON salSalesOrder.BillNo=salSalesOrderDetail.BillNo |
|
||||
// where salSalesOrderDetail.ItemType=0 AND salSalesOrder.ModeId='M' |
|
||||
// group by salSalesOrderDetail.BillNo ORDER BY number"; |
|
||||
// $query = $conn->query($sql); |
|
||||
// foreach($query as $row){ |
|
||||
// if($row['number']==1){ |
|
||||
// echo $row['BillNo']."<br>"; |
|
||||
// } |
|
||||
// } |
|
||||
|
|
||||
|
|
||||
// 找出已工收的作番 但沒在T8銷售訂單上出現的作番 |
|
||||
// $material_array = "('2MH00028', '3MH00123', '2MH00026', '3MW00067', '3MH00124', '3MH00121', |
|
||||
// '3MH00122', '2MW00027', '3MH00297', '2MW00001', '3MH00111', '3MW00190', |
|
||||
// '3MW00118', '3MH00093', '3MH00002', '3MW00024', '3MH00130', '3MH00196', |
|
||||
// '3MW00119', '3MH00205', '3MH00259', '3MW00159', '3MW00243', '3MH00351', |
|
||||
// '3MH00352', '2MX00015', '3MH00353', '3MH00298', '3MH00113', '3MH00036', |
|
||||
// '3MH00206', '3MH00179', '3MH00180', '3MH00181', '3MW00350', '3MH00053', |
|
||||
// '3MH00054', '3MH00178', '3MH00296', '2MH00047', '3MW00114', '3MH00282', |
|
||||
// '2MH00048', '3MH00609', '3MH00148', '3MH00354', '3MX00021', '3MW00210', |
|
||||
// '3MH00184', '3MH00185', '3MH00283', '3MW00209', '3MH00182', '3MH00183', |
|
||||
// '3MH00189', '3MH00512', '3MH00355', '3MH00286', '3MH00511', '2MX00008', |
|
||||
// '2MX00014', '3MH00244', '3MH00555', '3MH00450', '3MW00211', '3MH00177', |
|
||||
// '2MX00009', '2MX00012', '3MW00139', '3MH00540', '3MH00504', '3MH00360', |
|
||||
// '3MH00301', '3MX00020', '2MX00013')"; |
|
||||
// $material_array2 = array( |
|
||||
// '2MH00028', '3MH00123', '2MH00026', '3MW00067', '3MH00124', '3MH00121', |
|
||||
// '3MH00122', '2MW00027', '3MH00297', '2MW00001', '3MH00111', '3MW00190', |
|
||||
// '3MW00118', '3MH00093', '3MH00002', '3MW00024', '3MH00130', '3MH00196', |
|
||||
// '3MW00119', '3MH00205', '3MH00259', '3MW00159', '3MW00243', '3MH00351', |
|
||||
// '3MH00352', '2MX00015', '3MH00353', '3MH00298', '3MH00113', '3MH00036', |
|
||||
// '3MH00206', '3MH00179', '3MH00180', '3MH00181', '3MW00350', '3MH00053', |
|
||||
// '3MH00054', '3MH00178', '3MH00296', '2MH00047', '3MW00114', '3MH00282', |
|
||||
// '2MH00048', '3MH00609', '3MH00148', '3MH00354', '3MX00021', '3MW00210', |
|
||||
// '3MH00184', '3MH00185', '3MH00283', '3MW00209', '3MH00182', '3MH00183', |
|
||||
// '3MH00189', '3MH00512', '3MH00355', '3MH00286', '3MH00511', '2MX00008', |
|
||||
// '2MX00014', '3MH00244', '3MH00555', '3MH00450', '3MW00211', '3MH00177', |
|
||||
// '2MX00009', '2MX00012', '3MW00139', '3MH00540', '3MH00504', '3MH00360', |
|
||||
// '3MH00301', '3MX00020', '2MX00013' |
|
||||
// ); |
|
||||
|
|
||||
|
|
||||
//找出已工收 在採購單上有的作番 |
|
||||
// $sql_purBill = "SELECT * FROM purBillOrderDetail WHERE MaterialId IN ('2MH00028P','3MH00123P','2MH00026P','3MW00067P','3MH00124P','3MH00121P','3MH00122P','2MW00027P','3MH00297P','2MW00001P','3MH00111P','3MW00190P','3MW00118P','3MH00093P','3MH00002P','3MW00024P','3MH00130P','3MH00196P','3MW00119P','3MH00205P','3MH00259P','3MW00159P','3MW00243P','3MH00351P','3MH00352P','2MX00015P','3MH00353P','3MH00298P','3MH00113P','3MH00036P','3MH00206P','3MH00179P','3MH00180P','3MH00181P','3MW00350P','3MH00053P','3MH00054P','3MH00178P','3MH00296P','2MH00047P','3MW00114P','3MH00282P','2MH00048P','3MH00609P','3MH00148P','3MH00354P','3MX00021P','3MW00210P','3MH00184P','3MH00185P','3MH00283P','3MW00209P','3MH00182P','3MH00183P','3MH00189P','3MH00512P','3MH00355P','3MH00286P','3MH00511P','2MX00008P','2MX00014P','3MH00244P','3MH00555P','3MH00450P','3MW00211P','3MH00177P','2MX00009P','2MX00012P','3MW00139P','3MH00540P','3MH00504P','3MH00360P','3MH00301P','3MX00020P','2MX00013P')"; |
|
||||
// $query_purBill = $conn->query($sql_purBill); |
|
||||
// foreach ($query_purBill as $row) { |
|
||||
// echo substr($row['MaterialId'],0,-1) . ";" . $row['BillNo'] . "<br>"; |
|
||||
// } |
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
// $find_array = array(); |
|
||||
// $sql_Bill = "SELECT * FROM salSalesOrderDetail |
|
||||
// WHERE MaterialId |
|
||||
// IN $material_array"; |
|
||||
// $query = $conn->query($sql_Bill); |
|
||||
// foreach ($query as $row) { |
|
||||
// echo $row['MaterialId'] . ","; |
|
||||
// if (($key = array_search($row['MaterialId'], $material_array2)) !== false) { |
|
||||
// unset($material_array2[$key]); |
|
||||
// } |
|
||||
// } |
|
||||
// echo "<br><br>"; |
|
||||
// foreach ($material_array2 as $material) { |
|
||||
// echo $material . ","; |
|
||||
// } |
|
||||
|
|
||||
//-------------------------沒有3MH00540-------------------------------------------- |
|
||||
|
|
||||
|
|
||||
//找已工收 已發貨的作番 |
|
||||
// $sql_out_warehouse = "SELECT B.MaterialId FROM stkWareHouseIn AS A LEFT JOIN stkWareHouseInDetail AS B ON A.BillNo=B.BillNo WHERE A.IOProperty = 0 AND B.MaterialId IN $material_array"; |
|
||||
// $query_out_warehouse = $conn->query($sql_out_warehouse); |
|
||||
// foreach ($query_out_warehouse as $row) { |
|
||||
// echo $row['MaterialId'] . "<br>"; |
|
||||
// } |
|
||||
|
|
||||
|
|
||||
// 已工收 有庫存的作番 |
|
||||
// $sql_in_warehouse = "SELECT MaterialId, Quantity FROM stkWareHouseAccountDetail WHERE MaterialId IN $material_array AND Quantity >0"; |
|
||||
// $query_in_warehouse = $conn->query($sql_in_warehouse); |
|
||||
// foreach ($query_in_warehouse as $row) { |
|
||||
// echo $row['MaterialId'].", ".$row['Quantity'] . "<br>"; |
|
||||
// if (($key = array_search($row['MaterialId'], $material_array2)) !== false) { |
|
||||
// unset($material_array2[$key]); |
|
||||
// } |
|
||||
// } |
|
||||
// echo "<br><br>"; |
|
||||
// foreach ($material_array2 as $material) { |
|
||||
// echo $material . "<br>"; |
|
||||
// } |
|
||||
|
|
||||
|
|
||||
//已工收 有組裝單 |
|
||||
// $sql_assemble = "SELECT * FROM stkAssyMast WHERE MaterialId IN $material_array"; |
|
||||
// $query_assemble = $conn->query($sql_assemble); |
|
||||
// foreach ($query_assemble as $row) { |
|
||||
// echo $row['MaterialId'] . "<br>"; |
|
||||
// } |
|
||||
|
|
||||
//已工收 P有庫存 |
|
||||
// $sql_p_in_warehouse = "SELECT MaterialId, Quantity FROM stkWareHouseAccountDetail WHERE MaterialId IN |
|
||||
// ('2MH00028P','3MH00123P','2MH00026P','3MW00067P','3MH00124P','3MH00121P','3MH00122P', |
|
||||
// '2MW00027P','3MH00297P','2MW00001P','3MH00111P','3MW00190P','3MW00118P','3MH00093P', |
|
||||
// '3MH00002P','3MW00024P','3MH00130P','3MH00196P','3MW00119P','3MH00205P','3MH00259P', |
|
||||
// '3MW00159P','3MW00243P','3MH00351P','3MH00352P','2MX00015P','3MH00353P','3MH00298P', |
|
||||
// '3MH00113P','3MH00036P','3MH00206P','3MH00179P','3MH00180P','3MH00181P','3MW00350P', |
|
||||
// '3MH00053P','3MH00054P','3MH00178P','3MH00296P','2MH00047P','3MW00114P','3MH00282P', |
|
||||
// '2MH00048P','3MH00609P','3MH00148P','3MH00354P','3MX00021P','3MW00210P','3MH00184P', |
|
||||
// '3MH00185P','3MH00283P','3MW00209P','3MH00182P','3MH00183P','3MH00189P','3MH00512P', |
|
||||
// '3MH00355P','3MH00286P','3MH00511P','2MX00008P','2MX00014P','3MH00244P','3MH00555P', |
|
||||
// '3MH00450P','3MW00211P','3MH00177P','2MX00009P','2MX00012P','3MW00139P','3MH00540P', |
|
||||
// '3MH00504P','3MH00360P','3MH00301P','3MX00020P','2MX00013P') AND Quantity >0"; |
|
||||
// $query_p_in_warehouse = $conn->query($sql_p_in_warehouse); |
|
||||
// foreach ($query_p_in_warehouse as $row) { |
|
||||
// echo substr($row['MaterialId'],0,-1). "<br>"; |
|
||||
// } |
|
||||
|
|
||||
//------------------------------------------------------------------------------------------------------------------------------ |
|
||||
$finished_array = array('2MH00028', '3MH00123', '2MH00026', '3MW00067', '3MH00124', '3MH00121', '3MH00122', '2MW00027', '3MH00297'); |
|
||||
$finished = "('2MH00028','3MH00123','2MH00026','3MW00067','3MH00124','3MH00121','3MH00122','2MW00027','3MH00297')"; |
|
||||
//有向普來特富下單的作番 |
|
||||
// $sql_all = "SELECT `contractno`,`facilityno`,`custom` FROM `wipwholestatus` |
|
||||
// WHERE (prattford_order_date IS NOT NULL) |
|
||||
// AND facilityno NOT IN ('2MH00028','3MH00123','2MH00026','3MW00067','3MH00124','3MH00121','3MH00122','2MW00027','3MH00297') |
|
||||
// AND contract_type='A'"; |
|
||||
// $query_all = mysqli_query($link, $sql_all); |
|
||||
// $facilities = mysqli_fetch_all($query_all, MYSQLI_ASSOC); |
|
||||
// foreach ($facilities as $key => $value) { |
|
||||
// // echo $value['contractno'] . ";" . $value['facilityno']. ";" . $value['custom'] . "<br>"; |
|
||||
// echo $value['contractno'] ."<br>"; |
|
||||
// } |
|
||||
$all = "('2MW00001','2MW00002','2MW00003','2MW00004','2MW00005','2MX00006','2MX00007','2MX00008','2MX00009','2MX00010','2MX00011','2MX00012','2MX00013','2MX00014','2MX00015', |
|
||||
'2MX00016','2MX00017','2MX00018','2MX00019','2MX00020','2MX00021','2MX00022','2MX00023','2MX00024','2MX00025','2MW00038','2MX00044','2MH00046','2MH00047','2MH00048','3MH00002', |
|
||||
'3MX00003','3MX00004','3MX00005','3MX00006','3MX00007','3MX00008','3MX00009','3MX00010','3MX00011','3MX00012','3MX00013','3MX00014','3MX00015','3MX00016','3MX00017','3MX00018', |
|
||||
'3MX00019','3MX00020','3MX00021','3MX00022','3MH00023','3MW00024','3MH00025','3MX00026','3MH00027','3MH00028','3MH00029','3MH00030','3MH00031','3MH00032','3MH00033','3MH00034', |
|
||||
'3MH00035','3MH00036','3MX00037','3MF00038','3MH00039','3MH00040','3MH00041','3MH00042','3MH00043','3MH00044','3MH00045','3MH00046','3MH00047','3MX00048','3MH00049','3MW00050', |
|
||||
'3MW00051','3MW00052','3MH00053','3MX00924','3MH00054','3MH00055','3MH00056','3MH00057','3MH00058','3MH00059','3MH00060','3MH00061','3MH00062','3MH00063','3MH00064','3MX00065', |
|
||||
'3MH00066','3MX00068','3MX00069','3MX00070','3MX00071','3MX00072','3MX00073','3MX00074','3MX00075','3MH00076','3MH00077','3MX00078','3MX00079','3MX00080','3MX00081','3MX00082', |
|
||||
'3MX00083','3MX00084','3MX00085','3MX00086','3MX00087','3MX00088','3MX00089','3MX00090','3MX00091','3MX00092','3MH00093','3MH00094','3MH00095','3MH00096','3MH00097','3MH00098', |
|
||||
'3MH00099','3MH00100','3MH00101','3MH00102','3MH00103','3MH00104','3MH00105','3MH00106','3MH00107','3MW00108','3MX00109','3MW00110','3MH00111','3MH00112','3MH00113','3MW00114', |
|
||||
'3MH00115','3MH00116','3MW00117','3MW00118','3MW00119','3MH00120','3MH00125','3MH00126','3MH00127','3MW00128','3MW00129','3MH00130','3MH00131','3MX00132','3MX00133','3MX00134', |
|
||||
'3MX00135','3MX00136','3MX00137','3MX00138','3MW00139','3MX00141','3MX00142','3MX00144','3MX00147','3MX00140','3MX00143','3MX00145','3MX00146','3MH00148','3MH00149','3MH00150', |
|
||||
'3MH00151','3MH00152','3MH00153','3MW00154','3MW00155','3MH00156','3MH00157','3MH00158','3MW00159','3MW00160','3MW00161','3MW00162','3MW00163','3MW00164','3MW00165','3MW00166', |
|
||||
'3MW00167','3MW00168','3MW00169','3MW00170','3MW00171','3MH00172','3MH00173','3MH00174','3MH00175','3MX00176','3MH00177','3MH00178','3MH00179','3MH00180','3MH00181','3MH00182', |
|
||||
'3MH00183','3MH00184','3MH00185','3MH00186','3MH00187','3MH00188','3MH00189','3MW00190','3MX00191','3MX00192','3MX00193','3MH00194','3MH00195','3MH00196','3MH00197','3MW00198', |
|
||||
'3MW00199','3MW00200','3MX00201','3MH00202','3MX00203','3MX00204','3MH00205','3MH00206','3MH00207','3MH00208','3MW00209','3MW00210','3MW00211','3MW00212','3MW00213','3MW00214', |
|
||||
'3MW00215','3MH00216','3MW00217','3MX00218','3MX00219','3MX00220','3MX00221','3MX00222','3MX00223','3MX00224','3MX00225','3MX00226','3MX00227','3MX00228','3MX00229','3MX00230', |
|
||||
'3MX00231','3MX00232','3MX00233','3MX00234','3MX00235','3MX00236','3MX00237','3MX00238','3MX00239','3MX00240','3MX00241','3MH00242','3MW00243','3MH00244','3MH00245','3MH00246', |
|
||||
'3MH00247','3MW00248','3MW00249','3MH00250','3MH00251','3MH00252','3MW00253','3MP00254','3MH00255','3MW00256','3MX00257','3MW00258','3MH00259','3MW00260','3MW00261','3MH00262', |
|
||||
'3MH00263','3MH00264','3MH00265','3MH00281','3MH00280','3MW00279','3MW00278','3MW00277','3MW00276','3MW00275','3MW00274','3MH00273','3MH00272','3MH00271','3MH00270','3MH00268', |
|
||||
'3MH00269','3MH00266','3MW00267','3MH00282','3MH00283','3MH00284','3MH00285','3MH00286','3MX00287','3MX00288','3MX00289','3MX00290','3MX00291','3MW00292','3MH00293','3MH00294', |
|
||||
'3MX00295','3MH00296','3MH00298','3MH00299','3MW00300','3MH00301','3MH00302','3MH00303','3MH00304','3MH00305','3MH00306','3MH00307','3MH00308','3MH00309','3MX00310','3MW00311', |
|
||||
'3MH00312','3MH00313','3MX00314','3MX00324','3MX00325','3MX00334','3MX00335','3MX00315','3MX00318','3MX00319','3MX00322','3MX00326','3MX00329','3MX00331','3MX00332','3MX00316', |
|
||||
'3MX00317','3MX00320','3MX00321','3MX00327','3MX00328','3MX00330','3MX00333','3MW00323','3MW00336','3MH00337','3MH00338','3MH00339','3MH00340','3MH00341','3MH00342','3MH00343', |
|
||||
'3MH00344','3MH00345','3MH00346','3MH00347','3MH00348','3MH00349','3MW00350','3MH00351','3MH00352','3MH00353','3MH00354','3MH00355','3MH00356','3MH00357','3MH00358','3MH00359', |
|
||||
'3MH00360','3MH00361','3MH00362','3MH00363','3MH00364','3MH00365','3MH00366','3MH00367','3MH00368','3MW00369','3MP00370','3MH00371','3MX00372','3MX00373','3MX00374','3MX00375', |
|
||||
'3MW00376','3MH00377','3MH00378','3MH00379','3MH00380','3MH00381','3MH00382','3MH00383','3MH00384','3MH00385','3MH00386','3MH00387','3MH00388','3MH00389','3MH00393','3MH00394', |
|
||||
'3MH00395','3MH00396','3MH00397','3MH00398','3MH00399','3MH00400','3MH00401','3MH00402','3MH00403','3MX00404','3MX00405','3MX00406','3MH00407','3MH00408','3MH00409','3MH00410', |
|
||||
'3MH00411','3MH00412','3MW00413','3MW00414','3MW00415','3MH00416','3MH00417','3MH00418','3MW00419','3MH00420','3MH00421','3MH00422','3MH00423','3MH00424','3MH00425','3MH00426', |
|
||||
'3MH00427','3MH00428','3MH00429','3MX00430','3MX00431','3MX00432','3MX00433','3MX00434','3MX00435','3MX00436','3MX00437','3MX00438','3MX00439','3MX00440','3MX00441','3MX00442', |
|
||||
'3MX00443','3MX00444','3MH00445','3MX00448','3MH00449','3MH00450','3MW00451','3MX00452','3MW00453','3MH00454','3MH00455','3MH00456','3MH00457','3MH00458','3MH00459','3MH00460', |
|
||||
'3MH00461','3MH00462','3MH00463','3MH00464','3MH00465','3MH00466','3MH00467','3MH00468','3MH00469','3MH00470','3MH00471','3MH00472','3MH00473','3MH00474','3MH00475','3MH00476', |
|
||||
'3MH00477','3MH00478','3MH00479','3MH00480','3MH00481','3MH00482','3MX00483','3MH00484','3MH00485','3MH00486','3MX00487','3MX00488','3MW00489','3MW00490','3MH00491','3MH00492', |
|
||||
'3MH00493','3MH00494','3MH00495','3MH00496','3MH00497','3MH00498','3MH00499','3MW00500','3MX00501','3MX00502','3MH00503','3MH00554','3MH00540','3MX00551','3MX00552','3MH00504', |
|
||||
'3MW00505','3MW00506','3MH00507','3MH00508','3MW00509','3MX00510','3MH00511','3MH00512','3MH00513','3MW00514','3MW00515','3MH00516','3MH00517','3MH00518','3MH00519','3MH00520', |
|
||||
'3MH00521','3MH00522','3MH00523','3MH00524','3MH00525','3MH00526','3MH00527','3MH00528','3MH00529','3MH00530','3MH00531','3MH00532','3MX00533','3MH00534','3MH00535','3MX00536', |
|
||||
'3MX00537','3MH00538','3MH00539','3MW00824','3MH00541','3MW00542','3MX00543','3MH00544','3MH00545','3MH00546','3MH00547','3MX00548','3MX00559','3MH00550','3MH00555','3MH00557', |
|
||||
'3MH00556','3MX00549','3MW00558','3MH00560','3MH00561','3MH00562','3MH00563','3MH00564','3MH00565','3MH00566','3MH00567','3MH00568','3MH00569','3MH00570','3MH00571','3MH00572', |
|
||||
'3MH00573','3MH00574','3MH00575','3MH00576','3MH00577','3MH00578','3MW00579','3MW00580','3MH00581','3MH00582','3MH00583','3MH00584','3MH00585','3MH00586','3MH00587','3MH00588', |
|
||||
'3MH00589','3MH00590','3MH00591','3MH00592','3MH00593','3MH00594','3MX00595','3MH00596','3MX00597','3MX00598','3MX00599','3MX00600','3MX00601','3MX00602','3MX00604','3MX00603', |
|
||||
'3MX00605','3MX00606','3MX00607','3MX00608','3MH00609','3MH00610','3MH00611','3MW00613','3MW00612','3MX00614','3MX00615','3MW00616','3MH00617','3MH00618','3MX00619','3MH00620', |
|
||||
'3MH00621','3MH00622','3MH00623','3MH00624','3MH00625','3MH00626','3MH00627','3MX00628','3MX00629','3MX00630','3MX00631','3MX00632','3MX00633','3MX00634','3MX00635','3MX00636', |
|
||||
'3MX00637','3MX00638','3MH00639','3MH00640','3MH00641','3MH00642','3MH00643','3MH00644','3MH00645','3MH00646','3MH00647','3MH00648','3MH00649','3MH00650','3MH00651','3MH00652', |
|
||||
'3MH00653','3MH00654','3MH00655','3MH00656','3MH00657','3MH00658','3MH00659','3MH00660','3MW00695','3MH00661','3MW00662','3MX00663','3MX00664','3MX00665','3MX00666','3MX00667', |
|
||||
'3MX00668','3MX00669','3MX00670','3MX00671','3MX00672','3MX00673','3MX00674','3MX00675','3MX00676','3MX00677','3MX00678','3MX00679','3MX00680','3MH00681','3MH00682','3MH00683', |
|
||||
'3MH00684','3MH00685','3MH00686','3MH00687','3MH00688','3MH00689','3MH00690','3MW00691','3MW00692','3MH00693','3MW00694','3MW00697','3MW00698','3MW00699','3MW00696','3MW00702', |
|
||||
'3MW00703','3MH00704','3MH00705','3MH00706','3MH00707','3MH00708','3MH00709','3MH00710','3MH00711','3MH00712','3MH00713','3MH00714','3MH00715','3MH00716','3MH00717','3MH00718', |
|
||||
'3MH00719','3MH00720','3MH00721','3MH00722','3MH00723','3MH00724','3MH00725','3MH00726','3MH00727','3MH00728','3MX00729','3MX00730','3MX00731','3MX00732','3MH00733','3MH00734', |
|
||||
'3MH00735','3MH00736','3MH00737','3MW00739','3MX00770','3MX00771','3MX00446','3MX00447','3MH00772','3MX00740','3MX00741','3MX00742','3MX00743','3MX00744','3MX00745','3MX00746', |
|
||||
'3MX00747','3MX00748','3MX00749','3MH00738','3MH00768','3MX00775','3MH00774','3MP00773','3MH00779','3MH00777','3MH00778','3MH00793','3MH00794','3MH00795','3MH00796','3MH00790', |
|
||||
'3MH00791','3MH00789','3MX00776','3MH00797','3MH00787','3MH00792','3MW00805','3MW00806','3MH00807','3MH00808','3MX00809','3MX00810','3MX00811','3MX00812','3MH00813','3MH00864', |
|
||||
'3MW00863','3MH00813','3MH00814','3MX00815','3MW00818','3MW00819','3MW00821','3MW00822','3MW00823','3MW00825','3MW00826','3MW00827','3MW00828','3MW00829','3MW00830','3MW00820', |
|
||||
'3MW00831','3MH00817','3MH00816','3MX00758','3MX00760','3MX00759','3MX00761','3MH00832','3MW00841','3MW00842','3MW00843','3MW00844','3MH00833','3MH00834','3MH00835','3MH00836', |
|
||||
'3MH00837','3MH00838','3MH00839','3MH00840','3MW00845','3MW00846','3MW00847','3MH00848','3MH00849','3MH00850','3MH00851','3MH00852','3MH00853','3MH00854','3MW00855','3MW00856', |
|
||||
'3MW00857','3MW00858','3MX00859','3MX00860','3MX00750','3MX00752','3MX00754','3MX00757','3MX00751','3MX00753','3MX00755','3MX00756','3MX00766','3MX00767','3MW00788','3MP00865', |
|
||||
'3MH00866','3MH00867','3MH00868','3MH00869','3MH00870','3MH00871','3MH00872','3MH00873','3MX00874','3MX00875','3MX00876','3MX00877','3MX00762','3MX00765','3MX00763','3MX00764', |
|
||||
'3MX00861','3MX00862','3MX00878','3MH00879','3MH00880','3MH00881','3MH00882','3MH00926','3MH00874','3MH00875','3MH00876','3MH00877','3MH00878','3MH00883','3MH00884','3MW00886', |
|
||||
'3MX00919','3MX00920','3MX00921','3MX00922','3MX00915','3MX00916','3MX00917','3MX00918','3MX00911','3MX00912','3MX00913','3MX00914','3MX00905','3MX00906','3MX00907','3MX00908', |
|
||||
'3MX00909','3MX00910','3MX00903','3MX00904','3MX00897','3MX00900','3MX00901','3MX00898','3MX00899','3MX00902','3MX00893','3MX00894','3MX00895','3MX00896','3MX00887','3MX00888', |
|
||||
'3MX00889','3MX00890','3MX00891','3MX00892','3MH00885','3MH00923','3MW00925','3MW00927','3MH00928','3MH00929','3MH00930','3MH00931','3MH00932','3MH00933','3MX00934','3MX00935', |
|
||||
'3MP00936','3MP00937','3MH00938','3MW00939','3MW00940','3MH00941','3MH00942','3MH00943','3MH00944','3MH00945','3MH00946','3MH00947','3MH00948','3MH00949','3MH00950','3MH00951', |
|
||||
'3MH00952','3MH00953','3MH00954','3MH00955','3MH00956','3MH00957','3MW00958','3MW00959','3MW00960','3MQ00961','3MH00962','3MW00963','3MH00964','3MW00965','3MP00966','3MH00967', |
|
||||
'3MX00968','3MX00969','3MH00970','3MH00970','3MH00971','3MH00972','3MH00973','3MH00974','3MH00975','3MH00976','3MH00977','3MH00978','3MX00979','3MX00980','3MX00983','3MX00984', |
|
||||
'3MX00981','3MX00982','3MX00985','3MX00986','3MX00987','3MX00988','3MX00989','3MX00990','3MX00991','3MX00992','3MX00993','3MX00994','3MX00995','3MX00996','3MX00999','3MX01000', |
|
||||
'3MX01003','3MX01005','3MX01006','3MX00997','3MX00998','3MX01001','3MX01002','3MX01004','3MX01007','3MX01008','3MX01011','3MX01012','3MX01015','3MX01016','3MX01009','3MX01010', |
|
||||
'3MX01013','3MX01014','3MX01017','3MH01018','3MH01019','3MH01020','3MQ01021','3MP01022','3MH01023','3MX01024','3MX01025','3MX01026','3MX01027','3MW01028','3MH01029','3MH01030', |
|
||||
'3MH01031','3MP01032','3MH01033','3MH01034','3MW01035','3MP01036','3MX01037','3MX01038','3MX01039','3MX01040','3MX01041','3MX01042','3MH01043','3MH01044','3MH01045','3MH01046', |
|
||||
'3MH01047','3MH01048','3MX00775','3MX00776')"; |
|
||||
$P_all = " |
|
||||
('2MW00001P','2MW00002P','2MW00003P','2MW00004P','2MW00005P','2MX00006P','2MX00007P','2MX00008P','2MX00009P','2MX00010P','2MX00011P','2MX00012P','2MX00013P','2MX00014P','2MX00015P', |
|
||||
'2MX00016P','2MX00017P','2MX00018P','2MX00019P','2MX00020P','2MX00021P','2MX00022P','2MX00023P','2MX00024P','2MX00025P','2MW00038P','2MX00044P','2MH00046P','2MH00047P','2MH00048P', |
|
||||
'3MH00002P','3MX00003P','3MX00004P','3MX00005P','3MX00006P','3MX00007P','3MX00008P','3MX00009P','3MX00010P','3MX00011P','3MX00012P','3MX00013P','3MX00014P','3MX00015P','3MX00016P', |
|
||||
'3MX00017P','3MX00018P','3MX00019P','3MX00020P','3MX00021P','3MX00022P','3MH00023P','3MW00024P','3MH00025P','3MX00026P','3MH00027P','3MH00028P','3MH00029P','3MH00030P','3MH00031P', |
|
||||
'3MH00032P','3MH00033P','3MH00034P','3MH00035P','3MH00036P','3MX00037P','3MF00038P','3MH00039P','3MH00040P','3MH00041P','3MH00042P','3MH00043P','3MH00044P','3MH00045P','3MH00046P', |
|
||||
'3MH00047P','3MX00048P','3MH00049P','3MW00050P','3MW00051P','3MW00052P','3MH00053P','3MX00924P','3MH00054P','3MH00055P','3MH00056P','3MH00057P','3MH00058P','3MH00059P','3MH00060P', |
|
||||
'3MH00061P','3MH00062P','3MH00063P','3MH00064P','3MX00065P','3MH00066P','3MX00068P','3MX00069P','3MX00070P','3MX00071P','3MX00072P','3MX00073P','3MX00074P','3MX00075P','3MH00076P', |
|
||||
'3MH00077P','3MX00078P','3MX00079P','3MX00080P','3MX00081P','3MX00082P','3MX00083P','3MX00084P','3MX00085P','3MX00086P','3MX00087P','3MX00088P','3MX00089P','3MX00090P','3MX00091P', |
|
||||
'3MX00092P','3MH00093P','3MH00094P','3MH00095P','3MH00096P','3MH00097P','3MH00098P','3MH00099P','3MH00100P','3MH00101P','3MH00102P','3MH00103P','3MH00104P','3MH00105P','3MH00106P', |
|
||||
'3MH00107P','3MW00108P','3MX00109P','3MW00110P','3MH00111P','3MH00112P','3MH00113P','3MW00114P','3MH00115P','3MH00116P','3MW00117P','3MW00118P','3MW00119P','3MH00120P','3MH00125P', |
|
||||
'3MH00126P','3MH00127P','3MW00128P','3MW00129P','3MH00130P','3MH00131P','3MX00132P','3MX00133P','3MX00134P','3MX00135P','3MX00136P','3MX00137P','3MX00138P','3MW00139P','3MX00141P', |
|
||||
'3MX00142P','3MX00144P','3MX00147P','3MX00140P','3MX00143P','3MX00145P','3MX00146P','3MH00148P','3MH00149P','3MH00150P','3MH00151P','3MH00152P','3MH00153P','3MW00154P','3MW00155P', |
|
||||
'3MH00156P','3MH00157P','3MH00158P','3MW00159P','3MW00160P','3MW00161P','3MW00162P','3MW00163P','3MW00164P','3MW00165P','3MW00166P','3MW00167P','3MW00168P','3MW00169P','3MW00170P', |
|
||||
'3MW00171P','3MH00172P','3MH00173P','3MH00174P','3MH00175P','3MX00176P','3MH00177P','3MH00178P','3MH00179P','3MH00180P','3MH00181P','3MH00182P','3MH00183P','3MH00184P','3MH00185P', |
|
||||
'3MH00186P','3MH00187P','3MH00188P','3MH00189P','3MW00190P','3MX00191P','3MX00192P','3MX00193P','3MH00194P','3MH00195P','3MH00196P','3MH00197P','3MW00198P','3MW00199P','3MW00200P', |
|
||||
'3MX00201P','3MH00202P','3MX00203P','3MX00204P','3MH00205P','3MH00206P','3MH00207P','3MH00208P','3MW00209P','3MW00210P','3MW00211P','3MW00212P','3MW00213P','3MW00214P','3MW00215P', |
|
||||
'3MH00216P','3MW00217P','3MX00218P','3MX00219P','3MX00220P','3MX00221P','3MX00222P','3MX00223P','3MX00224P','3MX00225P','3MX00226P','3MX00227P','3MX00228P','3MX00229P','3MX00230P', |
|
||||
'3MX00231P','3MX00232P','3MX00233P','3MX00234P','3MX00235P','3MX00236P','3MX00237P','3MX00238P','3MX00239P','3MX00240P','3MX00241P','3MH00242P','3MW00243P','3MH00244P','3MH00245P', |
|
||||
'3MH00246P','3MH00247P','3MW00248P','3MW00249P','3MH00250P','3MH00251P','3MH00252P','3MW00253P','3MP00254P','3MH00255P','3MW00256P','3MX00257P','3MW00258P','3MH00259P','3MW00260P', |
|
||||
'3MW00261P','3MH00262P','3MH00263P','3MH00264P','3MH00265P','3MH00281P','3MH00280P','3MW00279P','3MW00278P','3MW00277P','3MW00276P','3MW00275P','3MW00274P','3MH00273P','3MH00272P', |
|
||||
'3MH00271P','3MH00270P','3MH00268P','3MH00269P','3MH00266P','3MW00267P','3MH00282P','3MH00283P','3MH00284P','3MH00285P','3MH00286P','3MX00287P','3MX00288P','3MX00289P','3MX00290P', |
|
||||
'3MX00291P','3MW00292P','3MH00293P','3MH00294P','3MX00295P','3MH00296P','3MH00298P','3MH00299P','3MW00300P','3MH00301P','3MH00302P','3MH00303P','3MH00304P','3MH00305P','3MH00306P', |
|
||||
'3MH00307P','3MH00308P','3MH00309P','3MX00310P','3MW00311P','3MH00312P','3MH00313P','3MX00314P','3MX00324P','3MX00325P','3MX00334P','3MX00335P','3MX00315P','3MX00318P','3MX00319P', |
|
||||
'3MX00322P','3MX00326P','3MX00329P','3MX00331P','3MX00332P','3MX00316P','3MX00317P','3MX00320P','3MX00321P','3MX00327P','3MX00328P','3MX00330P','3MX00333P','3MW00323P','3MW00336P', |
|
||||
'3MH00337P','3MH00338P','3MH00339P','3MH00340P','3MH00341P','3MH00342P','3MH00343P','3MH00344P','3MH00345P','3MH00346P','3MH00347P','3MH00348P','3MH00349P','3MW00350P','3MH00351P', |
|
||||
'3MH00352P','3MH00353P','3MH00354P','3MH00355P','3MH00356P','3MH00357P','3MH00358P','3MH00359P','3MH00360P','3MH00361P','3MH00362P','3MH00363P','3MH00364P','3MH00365P','3MH00366P', |
|
||||
'3MH00367P','3MH00368P','3MW00369P','3MP00370P','3MH00371P','3MX00372P','3MX00373P','3MX00374P','3MX00375P','3MW00376P','3MH00377P','3MH00378P','3MH00379P','3MH00380P','3MH00381P', |
|
||||
'3MH00382P','3MH00383P','3MH00384P','3MH00385P','3MH00386P','3MH00387P','3MH00388P','3MH00389P','3MH00393P','3MH00394P','3MH00395P','3MH00396P','3MH00397P','3MH00398P','3MH00399P', |
|
||||
'3MH00400P','3MH00401P','3MH00402P','3MH00403P','3MX00404P','3MX00405P','3MX00406P','3MH00407P','3MH00408P','3MH00409P','3MH00410P','3MH00411P','3MH00412P','3MW00413P','3MW00414P', |
|
||||
'3MW00415P','3MH00416P','3MH00417P','3MH00418P','3MW00419P','3MH00420P','3MH00421P','3MH00422P','3MH00423P','3MH00424P','3MH00425P','3MH00426P','3MH00427P','3MH00428P','3MH00429P', |
|
||||
'3MX00430P','3MX00431P','3MX00432P','3MX00433P','3MX00434P','3MX00435P','3MX00436P','3MX00437P','3MX00438P','3MX00439P','3MX00440P','3MX00441P','3MX00442P','3MX00443P','3MX00444P', |
|
||||
'3MH00445P','3MX00448P','3MH00449P','3MH00450P','3MW00451P','3MX00452P','3MW00453P','3MH00454P','3MH00455P','3MH00456P','3MH00457P','3MH00458P','3MH00459P','3MH00460P','3MH00461P', |
|
||||
'3MH00462P','3MH00463P','3MH00464P','3MH00465P','3MH00466P','3MH00467P','3MH00468P','3MH00469P','3MH00470P','3MH00471P','3MH00472P','3MH00473P','3MH00474P','3MH00475P','3MH00476P', |
|
||||
'3MH00477P','3MH00478P','3MH00479P','3MH00480P','3MH00481P','3MH00482P','3MX00483P','3MH00484P','3MH00485P','3MH00486P','3MX00487P','3MX00488P','3MW00489P','3MW00490P','3MH00491P', |
|
||||
'3MH00492P','3MH00493P','3MH00494P','3MH00495P','3MH00496P','3MH00497P','3MH00498P','3MH00499P','3MW00500P','3MX00501P','3MX00502P','3MH00503P','3MH00554P','3MH00540P','3MX00551P', |
|
||||
'3MX00552P','3MH00504P','3MW00505P','3MW00506P','3MH00507P','3MH00508P','3MW00509P','3MX00510P','3MH00511P','3MH00512P','3MH00513P','3MW00514P','3MW00515P','3MH00516P','3MH00517P', |
|
||||
'3MH00518P','3MH00519P','3MH00520P','3MH00521P','3MH00522P','3MH00523P','3MH00524P','3MH00525P','3MH00526P','3MH00527P','3MH00528P','3MH00529P','3MH00530P','3MH00531P','3MH00532P', |
|
||||
'3MX00533P','3MH00534P','3MH00535P','3MX00536P','3MX00537P','3MH00538P','3MH00539P','3MW00824P','3MH00541P','3MW00542P','3MX00543P','3MH00544P','3MH00545P','3MH00546P','3MH00547P', |
|
||||
'3MX00548P','3MX00559P','3MH00550P','3MH00555P','3MH00557P','3MH00556P','3MX00549P','3MW00558P','3MH00560P','3MH00561P','3MH00562P','3MH00563P','3MH00564P','3MH00565P','3MH00566P', |
|
||||
'3MH00567P','3MH00568P','3MH00569P','3MH00570P','3MH00571P','3MH00572P','3MH00573P','3MH00574P','3MH00575P','3MH00576P','3MH00577P','3MH00578P','3MW00579P','3MW00580P','3MH00581P', |
|
||||
'3MH00582P','3MH00583P','3MH00584P','3MH00585P','3MH00586P','3MH00587P','3MH00588P','3MH00589P','3MH00590P','3MH00591P','3MH00592P','3MH00593P','3MH00594P','3MX00595P','3MH00596P', |
|
||||
'3MX00597P','3MX00598P','3MX00599P','3MX00600P','3MX00601P','3MX00602P','3MX00604P','3MX00603P','3MX00605P','3MX00606P','3MX00607P','3MX00608P','3MH00609P','3MH00610P','3MH00611P', |
|
||||
'3MW00613P','3MW00612P','3MX00614P','3MX00615P','3MW00616P','3MH00617P','3MH00618P','3MX00619P','3MH00620P','3MH00621P','3MH00622P','3MH00623P','3MH00624P','3MH00625P','3MH00626P', |
|
||||
'3MH00627P','3MX00628P','3MX00629P','3MX00630P','3MX00631P','3MX00632P','3MX00633P','3MX00634P','3MX00635P','3MX00636P','3MX00637P','3MX00638P','3MH00639P','3MH00640P','3MH00641P', |
|
||||
'3MH00642P','3MH00643P','3MH00644P','3MH00645P','3MH00646P','3MH00647P','3MH00648P','3MH00649P','3MH00650P','3MH00651P','3MH00652P','3MH00653P','3MH00654P','3MH00655P','3MH00656P', |
|
||||
'3MH00657P','3MH00658P','3MH00659P','3MH00660P','3MW00695P','3MH00661P','3MW00662P','3MX00663P','3MX00664P','3MX00665P','3MX00666P','3MX00667P','3MX00668P','3MX00669P','3MX00670P', |
|
||||
'3MX00671P','3MX00672P','3MX00673P','3MX00674P','3MX00675P','3MX00676P','3MX00677P','3MX00678P','3MX00679P','3MX00680P','3MH00681P','3MH00682P','3MH00683P','3MH00684P','3MH00685P', |
|
||||
'3MH00686P','3MH00687P','3MH00688P','3MH00689P','3MH00690P','3MW00691P','3MW00692P','3MH00693P','3MW00694P','3MW00697P','3MW00698P','3MW00699P','3MW00696P','3MW00702P','3MW00703P', |
|
||||
'3MH00704P','3MH00705P','3MH00706P','3MH00707P','3MH00708P','3MH00709P','3MH00710P','3MH00711P','3MH00712P','3MH00713P','3MH00714P','3MH00715P','3MH00716P','3MH00717P','3MH00718P', |
|
||||
'3MH00719P','3MH00720P','3MH00721P','3MH00722P','3MH00723P','3MH00724P','3MH00725P','3MH00726P','3MH00727P','3MH00728P','3MX00729P','3MX00730P','3MX00731P','3MX00732P','3MH00733P', |
|
||||
'3MH00734P','3MH00735P','3MH00736P','3MH00737P','3MW00739P','3MX00770P','3MX00771P','3MX00446P','3MX00447P','3MH00772P','3MX00740P','3MX00741P','3MX00742P','3MX00743P','3MX00744P', |
|
||||
'3MX00745P','3MX00746P','3MX00747P','3MX00748P','3MX00749P','3MH00738P','3MH00768P','3MX00775P','3MH00774P','3MP00773P','3MH00779P','3MH00777P','3MH00778P','3MH00793P','3MH00794P', |
|
||||
'3MH00795P','3MH00796P','3MH00790P','3MH00791P','3MH00789P','3MX00776P','3MH00797P','3MH00787P','3MH00792P','3MW00805P','3MW00806P','3MH00807P','3MH00808P','3MX00809P','3MX00810P', |
|
||||
'3MX00811P','3MX00812P','3MH00813P','3MH00864P','3MW00863P','3MH00813P','3MH00814P','3MX00815P','3MW00818P','3MW00819P','3MW00821P','3MW00822P','3MW00823P','3MW00825P','3MW00826P', |
|
||||
'3MW00827P','3MW00828P','3MW00829P','3MW00830P','3MW00820P','3MW00831P','3MH00817P','3MH00816P','3MX00758P','3MX00760P','3MX00759P','3MX00761P','3MH00832P','3MW00841P','3MW00842P', |
|
||||
'3MW00843P','3MW00844P','3MH00833P','3MH00834P','3MH00835P','3MH00836P','3MH00837P','3MH00838P','3MH00839P','3MH00840P','3MW00845P','3MW00846P','3MW00847P','3MH00848P','3MH00849P', |
|
||||
'3MH00850P','3MH00851P','3MH00852P','3MH00853P','3MH00854P','3MW00855P','3MW00856P','3MW00857P','3MW00858P','3MX00859P','3MX00860P','3MX00750P','3MX00752P','3MX00754P','3MX00757P', |
|
||||
'3MX00751P','3MX00753P','3MX00755P','3MX00756P','3MX00766P','3MX00767P','3MW00788P','3MP00865P','3MH00866P','3MH00867P','3MH00868P','3MH00869P','3MH00870P','3MH00871P','3MH00872P', |
|
||||
'3MH00873P','3MX00874P','3MX00875P','3MX00876P','3MX00877P','3MX00762P','3MX00765P','3MX00763P','3MX00764P','3MX00861P','3MX00862P','3MX00878P','3MH00879P','3MH00880P','3MH00881P', |
|
||||
'3MH00882P','3MH00926P','3MH00874P','3MH00875P','3MH00876P','3MH00877P','3MH00878P','3MH00883P','3MH00884P','3MW00886P','3MX00919P','3MX00920P','3MX00921P','3MX00922P','3MX00915P', |
|
||||
'3MX00916P','3MX00917P','3MX00918P','3MX00911P','3MX00912P','3MX00913P','3MX00914P','3MX00905P','3MX00906P','3MX00907P','3MX00908P','3MX00909P','3MX00910P','3MX00903P','3MX00904P', |
|
||||
'3MX00897P','3MX00900P','3MX00901P','3MX00898P','3MX00899P','3MX00902P','3MX00893P','3MX00894P','3MX00895P','3MX00896P','3MX00887P','3MX00888P','3MX00889P','3MX00890P','3MX00891P', |
|
||||
'3MX00892P','3MH00885P','3MH00923P','3MW00925P','3MW00927P','3MH00928P','3MH00929P','3MH00930P','3MH00931P','3MH00932P','3MH00933P','3MX00934P','3MX00935P','3MP00936P','3MP00937P', |
|
||||
'3MH00938P','3MW00939P','3MW00940P','3MH00941P','3MH00942P','3MH00943P','3MH00944P','3MH00945P','3MH00946P','3MH00947P','3MH00948P','3MH00949P','3MH00950P','3MH00951P','3MH00952P', |
|
||||
'3MH00953P','3MH00954P','3MH00955P','3MH00956P','3MH00957P','3MW00958P','3MW00959P','3MW00960P','3MQ00961P','3MH00962P','3MW00963P','3MH00964P','3MW00965P','3MP00966P','3MH00967P', |
|
||||
'3MX00968P','3MX00969P','3MH00970P','3MH00970P','3MH00971P','3MH00972P','3MH00973P','3MH00974P','3MH00975P','3MH00976P','3MH00977P','3MH00978P','3MX00979P','3MX00980P','3MX00983P', |
|
||||
'3MX00984P','3MX00981P','3MX00982P','3MX00985P','3MX00986P','3MX00987P','3MX00988P','3MX00989P','3MX00990P','3MX00991P','3MX00992P','3MX00993P','3MX00994P','3MX00995P','3MX00996P', |
|
||||
'3MX00999P','3MX01000P','3MX01003P','3MX01005P','3MX01006P','3MX00997P','3MX00998P','3MX01001P','3MX01002P','3MX01004P','3MX01007P','3MX01008P','3MX01011P','3MX01012P','3MX01015P', |
|
||||
'3MX01016P','3MX01009P','3MX01010P','3MX01013P','3MX01014P','3MX01017P','3MH01018P','3MH01019P','3MH01020P','3MQ01021P','3MP01022P','3MH01023P','3MX01024P','3MX01025P','3MX01026P', |
|
||||
'3MX01027P','3MW01028P','3MH01029P','3MH01030P','3MH01031P','3MP01032P','3MH01033P','3MH01034P','3MW01035P','3MP01036P','3MX01037P','3MX01038P','3MX01039P','3MX01040P','3MX01041P', |
|
||||
'3MX01042P','3MH01043P','3MH01044P','3MH01045P','3MH01046P','3MH01047P','3MH01048P','3MX00775P','3MX00776P') |
|
||||
"; |
|
||||
//已發貨 |
|
||||
// $sql_out_warehouse = "SELECT B.MaterialId FROM stkWareHouseIn AS A |
|
||||
// LEFT JOIN stkWareHouseInDetail AS B ON A.BillNo=B.BillNo |
|
||||
// WHERE A.IOProperty = 0 |
|
||||
// AND B.MaterialId IN $all |
|
||||
// AND B.ItemType =0"; |
|
||||
// $query_out_warehouse = $conn->query($sql_out_warehouse); |
|
||||
// foreach ($query_out_warehouse as $row) { |
|
||||
// echo $row['MaterialId'] . "<br>"; |
|
||||
// } |
|
||||
|
|
||||
//有庫存與多少 |
|
||||
// $sql_in_warehouse = "SELECT MaterialId, Quantity FROM stkWareHouseAccountDetail WHERE MaterialId IN $all AND Quantity >0"; |
|
||||
// $query_in_warehouse = $conn->query($sql_in_warehouse); |
|
||||
// foreach ($query_in_warehouse as $row) { |
|
||||
// echo $row['MaterialId'] . ", " . $row['Quantity'] . "<br>"; |
|
||||
// } |
|
||||
|
|
||||
//有無組裝申請單 |
|
||||
// $sql_assemble = "SELECT * FROM stkAssyMast WHERE MaterialId IN $all"; |
|
||||
// $query_assemble = $conn->query($sql_assemble); |
|
||||
// foreach ($query_assemble as $row) { |
|
||||
// echo $row['MaterialId'].";" .$row['BillNo']. "<br>"; |
|
||||
// } |
|
||||
|
|
||||
//p 有庫存 |
|
||||
// $sql_p_in_warehouse = "SELECT MaterialId, Quantity FROM stkWareHouseAccountDetail WHERE MaterialId IN $P_all AND Quantity >0"; |
|
||||
// $query_p_in_warehouse = $conn->query($sql_p_in_warehouse); |
|
||||
// foreach ($query_p_in_warehouse as $row) { |
|
||||
// echo substr($row['MaterialId'],0,-1).";".$row['Quantity']."<br>"; |
|
||||
// } |
|
||||
|
|
||||
//P 收貨單號 |
|
||||
// $sql_reveive = "SELECT BillNo, MaterialId, ReceivingSQty FROM purReceivingOrderDetail WHERE MaterialId IN $P_all"; |
|
||||
// $query_reveive = $conn->query($sql_reveive); |
|
||||
// foreach ($query_reveive as $row) { |
|
||||
// echo substr($row['MaterialId'],0,-1) . ";".$row['BillNo'] .";". $row['ReceivingSQty'] . "<br>"; |
|
||||
// } |
|
||||
|
|
||||
|
|
||||
// P 採購單號 |
|
||||
// $sql_purBill = "SELECT * FROM purBillOrderDetail WHERE MaterialId IN $P_all"; |
|
||||
// $query_purBill = $conn->query($sql_purBill); |
|
||||
// foreach ($query_purBill as $row) { |
|
||||
// echo substr($row['MaterialId'],0,-1) . ";" . $row['BillNo'] . "<br>"; |
|
||||
// } |
|
||||
|
|
||||
//貨抵工地的作番 |
|
||||
|
|
||||
// $sql_arrive = "SELECT `contractno`,`facilityno`,`real_arrival_date` FROM `wipwholestatus` |
|
||||
// WHERE (real_arrival_date IS NOT NULL) AND (real_arrival_date !='') |
|
||||
// AND facilityno IN $all |
|
||||
// AND contract_type='A'"; |
|
||||
// $query_arrive = mysqli_query($link, $sql_arrive); |
|
||||
// foreach ($query_arrive as $key => $value) { |
|
||||
// echo $value['facilityno']. ";" . $value['real_arrival_date'] . "<br>"; |
|
||||
// } |
|
||||
|
|
||||
//實際到貨日期 |
|
||||
// $sql_arrive = "SELECT `contractno`,`facilityno`,`actual_tofactory_date` FROM `wipwholestatus` |
|
||||
// WHERE (actual_tofactory_date IS NOT NULL) AND (actual_tofactory_date !='') |
|
||||
// AND facilityno IN $all |
|
||||
// AND contract_type='A'"; |
|
||||
// $query_arrive = mysqli_query($link, $sql_arrive); |
|
||||
// foreach ($query_arrive as $key => $value) { |
|
||||
// echo $value['facilityno']. ";" . $value['actual_tofactory_date'] . "<br>"; |
|
||||
// } |
|
||||
|
|
||||
// $sql_paystage = "SELECT A.PayStage, A.BillNo FROM salOrderStagePay AS A |
|
||||
// LEFT JOIN salSalesOrder AS s on a.BillNo = s.BillNo WHERE s.ModeId = 'T' AND (s.CurrentState=2 OR s.CurrentState=4)"; |
|
||||
// $query_paystage = $conn->query($sql_paystage); |
|
||||
// foreach($query_paystage as $key => $value) { |
|
||||
// echo $value['PayStage'] .";".$value['BillNo']. "<br>"; |
|
||||
// } |
|
||||
|
|
||||
// $sql = "SELECT A.BillNo,B.CU_MaterialId, B.ProjectId FROM salSalesOrder AS A |
|
||||
// LEFT JOIN salSalesOrderDetail AS B ON A.BillNo=B.BillNo |
|
||||
// WHERE A.ModeId='T' AND B.ItemType=0 AND A.BillNo != B.ProjectId AND A.CurrentState=4"; |
|
||||
// $query = $conn->query($sql); |
|
||||
// foreach($query as $key => $value) { |
|
||||
// echo $value['BillNo'] .";".$value['CU_MaterialId'].";".$value['ProjectId']. "<br>"; |
|
||||
// } |
|
||||
|
|
||||
|
|
||||
// 發貨單 沒有ProjectId的資料 |
|
||||
// $sql = "SELECT DISTINCT salDispatchListMaster.BillNo, salDispatchListMaster.ModeId,salDispatchListMaster.BillDate FROM salDispatchListDetail |
|
||||
// LEFT JOIN salDispatchListMaster ON salDispatchListMaster.BillNo=salDispatchListDetail.BillNo |
|
||||
// WHERE salDispatchListDetail.ItemType=0 AND LEN(salDispatchListDetail.ProjectId)=0"; |
|
||||
// $query = $conn->query($sql); |
|
||||
// foreach($query as $key => $value) { |
|
||||
// switch($value['ModeId']) { |
|
||||
// case 'B': |
|
||||
// $mode = '保養'; |
|
||||
// break; |
|
||||
// case 'T': |
|
||||
// $mode = '汰改'; |
|
||||
// break; |
|
||||
// case 'M': |
|
||||
// $mode = '新梯'; |
|
||||
// break; |
|
||||
// case 'Z': |
|
||||
// $mode = '維修'; |
|
||||
// break; |
|
||||
// } |
|
||||
// echo $value['BillNo'] .";".$mode.";".$value['BillDate']. "<br>"; |
|
||||
// } |
|
||||
|
|
||||
// 銷售訂單 沒有ProjectId的資料 |
|
||||
// $sql = "SELECT Main.*, comBusinessPartner.BizPartnerName, salDispatchListMaster.BillNo AS DispBillNo , salDispatchListMaster.BillDate AS DispBillDate FROM |
|
||||
// (SELECT DISTINCT salSalesOrder.BillNo,salSalesOrder.BizPartnerId, salSalesOrder.TypeId, salSalesOrder.ModeId, salSalesOrderDetail.ProjectId, salSalesOrderDetail.CU_MaterialId FROM salSalesOrderDetail |
|
||||
// LEFT JOIN salSalesOrder ON salSalesOrder.BillNo= salSalesOrderDetail.BillNo |
|
||||
// WHERE (LEN(salSalesOrderDetail.ProjectId)=0 AND salSalesOrderDetail.ItemType=0) OR LEN(salSalesOrderDetail.CU_MaterialId)=0 ) AS Main |
|
||||
// LEFT JOIN comBusinessPartner ON comBusinessPartner.BizPartnerId = Main.BizPartnerId |
|
||||
// LEFT JOIN salDispatchListMaster ON salDispatchListMaster.FromBillNo= Main.BillNo |
|
||||
// WHERE salDispatchListMaster.BillDate >20231031 OR salDispatchListMaster.BillDate IS NULL"; |
|
||||
// $query = $conn->query($sql); |
|
||||
// foreach ($query as $key => $value) { |
|
||||
// $mode = ''; |
|
||||
// switch ($value['ModeId']) { |
|
||||
// case 'B': |
|
||||
// $mode = '保養'; |
|
||||
// break; |
|
||||
// case 'T': |
|
||||
// $mode = '汰改'; |
|
||||
// break; |
|
||||
// case 'M': |
|
||||
// $mode = '新梯'; |
|
||||
// break; |
|
||||
// case 'Z': |
|
||||
// $mode = '維修'; |
|
||||
// break; |
|
||||
// } |
|
||||
// echo $value['BillNo'] . ";" . $mode . ";" . $value['BizPartnerId'] .";".$value['BizPartnerName'].";".$value['ProjectId']. ";".$value['CU_MaterialId']. ";".$value['DispBillNo'].";" . $value['DispBillDate'] ."<br>"; |
|
||||
// } |
|
||||
|
|
||||
$sql = "SELECT salOrderStagePay.BillNo, salOrderStagePay.PayStage FROM salOrderStagePay LEFT JOIN salSalesOrder ON salSalesOrder.BillNo = salOrderStagePay.BillNo WHERE salSalesOrder.ModeId = 'M' |
|
||||
ORDER BY salOrderStagePay.BillNo, salOrderStagePay.PayStage"; |
|
||||
$query = mysqli_query($link, $sql); |
|
@ -0,0 +1,106 @@ |
|||||
|
body { |
||||
|
background-color: #aaa; |
||||
|
padding: 150px; |
||||
|
} |
||||
|
|
||||
|
* { |
||||
|
margin: 0; |
||||
|
padding: 0; |
||||
|
box-sizing: border-box !important; |
||||
|
} |
||||
|
|
||||
|
.select3 { |
||||
|
position: relative; |
||||
|
} |
||||
|
.select3 > .input { |
||||
|
width: 250px; |
||||
|
padding: 12px 15px; |
||||
|
border-radius: 10px; |
||||
|
background-color: #fff; |
||||
|
font-size: 13px; |
||||
|
cursor: pointer; |
||||
|
position: relative; |
||||
|
} |
||||
|
.select3 > .input > i { |
||||
|
position: absolute; |
||||
|
top: 50%; |
||||
|
right: 8px; |
||||
|
transform: translateY(-50%); |
||||
|
font-size: 12px; |
||||
|
} |
||||
|
.select3 > .select { |
||||
|
display: none; |
||||
|
position: absolute; |
||||
|
top: 44px; |
||||
|
left: 0; |
||||
|
width: 250px; |
||||
|
padding: 16px 10px; |
||||
|
background-color: #fff; |
||||
|
border-radius: 10px; |
||||
|
box-sizing: border-box !important; |
||||
|
overflow: hidden; |
||||
|
animation: fadein 0.085s linear; |
||||
|
} |
||||
|
.select3 > .select > input[type=text] { |
||||
|
outline: none; |
||||
|
border: 1px #999 solid; |
||||
|
width: 100%; |
||||
|
border-radius: 4px; |
||||
|
height: 31px; |
||||
|
padding: 12px; |
||||
|
margin-bottom: 3px; |
||||
|
} |
||||
|
.select3 > .select > .options { |
||||
|
overflow-y: scroll; |
||||
|
max-height: 205px; |
||||
|
height: auto; |
||||
|
} |
||||
|
.select3 > .select > .options::-webkit-scrollbar { |
||||
|
width: 7px; |
||||
|
} |
||||
|
.select3 > .select > .options::-webkit-scrollbar-track { |
||||
|
background-color: transparent; |
||||
|
background-size: 10px 10px; |
||||
|
} |
||||
|
.select3 > .select > .options::-webkit-scrollbar-thumb { |
||||
|
background: #aaa; |
||||
|
border-radius: 5px; |
||||
|
} |
||||
|
.select3 > .select > .options > label { |
||||
|
width: 100%; |
||||
|
display: block; |
||||
|
padding: 10px; |
||||
|
cursor: pointer; |
||||
|
border-bottom: 1px #ccc solid; |
||||
|
transition: 0.2s; |
||||
|
} |
||||
|
.select3 > .select > .options > label:hover { |
||||
|
transform: scale(1.05); |
||||
|
} |
||||
|
.select3 > .select > .options > label.check { |
||||
|
background-color: #5BC0DE; |
||||
|
color: #fff; |
||||
|
animation: check 0.1s linear; |
||||
|
} |
||||
|
|
||||
|
@keyframes fadein { |
||||
|
0% { |
||||
|
opacity: 0; |
||||
|
} |
||||
|
100% { |
||||
|
opacity: 1; |
||||
|
} |
||||
|
} |
||||
|
@keyframes check { |
||||
|
0% { |
||||
|
transform: translateX(0px); |
||||
|
background-color: rgba(91, 192, 222, 0); |
||||
|
} |
||||
|
0% { |
||||
|
transform: translateX(180px); |
||||
|
} |
||||
|
100% { |
||||
|
transform: translateX(0px); |
||||
|
background-color: rgb(91, 192, 222); |
||||
|
} |
||||
|
}/*# sourceMappingURL=select3.css.map */ |
@ -0,0 +1 @@ |
|||||
|
{"version":3,"sources":["select3.scss","select3.css"],"names":[],"mappings":"AAAA;EACI,sBAAA;EACA,cAAA;ACCJ;;ADCA;EACI,SAAA;EACA,UAAA;EACA,iCAAA;ACEJ;;ADAA;EACI,kBAAA;ACGJ;ADFI;EACI,YAAA;EACA,kBAAA;EACA,mBAAA;EACA,sBAAA;EAEA,eAAA;EACA,eAAA;EACA,kBAAA;ACGR;ADFQ;EACI,kBAAA;EACA,QAAA;EACA,UAAA;EACA,2BAAA;EACA,eAAA;ACIZ;ADDI;EACI,aAAA;EACA,kBAAA;EACA,SAAA;EACA,OAAA;EACA,YAAA;EACA,kBAAA;EACA,sBAAA;EACA,mBAAA;EACA,iCAAA;EACA,gBAAA;EACA,+BAAA;ACGR;ADFQ;EACI,aAAA;EACA,sBAAA;EACA,WAAA;EACA,kBAAA;EACA,YAAA;EACA,aAAA;EACC,kBAAA;ACIb;ADDQ;EACI,kBAAA;EACA,iBAAA;EACA,YAAA;ACGZ;ADFY;EACI,UAAA;ACIhB;ADFY;EACI,6BAAA;EACA,0BAAA;ACIhB;ADFY;EACI,gBAAA;EACA,kBAAA;ACIhB;ADAY;EACI,WAAA;EACA,cAAA;EACA,aAAA;EACA,eAAA;EACA,6BAAA;EACA,gBAAA;ACEhB;ADDgB;EACI,sBAAA;ACGpB;ADDgB;EACI,yBAAA;EACA,WAAA;EACA,4BAAA;ACGpB;;ADKA;EACI;IACI,UAAA;ECFN;EDIE;IACI,UAAA;ECFN;AACF;ADKA;EACI;IACI,0BAAA;IACA,uCAAA;ECHN;EDKE;IACI,4BAAA;ECHN;EDKE;IACI,0BAAA;IACA,mCAAA;ECHN;AACF","file":"select3.css"} |
@ -0,0 +1,88 @@ |
|||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" /> |
||||
|
<style> |
||||
|
|
||||
|
</style> |
||||
|
<link rel="stylesheet" href="select3.css"> |
||||
|
<div class="select3"> |
||||
|
<div class="input"> |
||||
|
<span>請選擇</span> |
||||
|
<i class="fa-solid fa-chevron-down"></i> |
||||
|
</div> |
||||
|
<div class="select"> |
||||
|
<input type="text" /> |
||||
|
<div class="options"> |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<script> |
||||
|
const select3 =document.querySelector('.select3'); |
||||
|
const inputArr = [{ |
||||
|
value:'123', |
||||
|
name:'123', |
||||
|
check:false, |
||||
|
}, |
||||
|
{ |
||||
|
value:'456', |
||||
|
name:'456', |
||||
|
check:false, |
||||
|
}, |
||||
|
{ |
||||
|
value:'789', |
||||
|
name:'789', |
||||
|
check:false, |
||||
|
}, |
||||
|
{ |
||||
|
value:'111', |
||||
|
name:'111', |
||||
|
check:false, |
||||
|
}, |
||||
|
{ |
||||
|
value:'555', |
||||
|
name:'555', |
||||
|
check:false, |
||||
|
}, |
||||
|
{ |
||||
|
value:'989', |
||||
|
name:'989', |
||||
|
check:false, |
||||
|
}, |
||||
|
{ |
||||
|
value:'000', |
||||
|
name:'000', |
||||
|
check:false, |
||||
|
}]; |
||||
|
const result = []; |
||||
|
const showSelect = (e)=>{ |
||||
|
console.log(e.target); |
||||
|
if(e.target.parentNode.querySelector('.select').style.display == 'block'){ |
||||
|
e.target.parentNode.querySelector('.select').style.display = "none" |
||||
|
}else{ |
||||
|
e.target.parentNode.querySelector('.select').style.display = "block" |
||||
|
} |
||||
|
} |
||||
|
let html =""; |
||||
|
select3.querySelector('.input').addEventListener('click', showSelect) |
||||
|
|
||||
|
inputArr.forEach(item=>{ |
||||
|
html += `<label class="option"> |
||||
|
<span>${item.name}</span> |
||||
|
</label>` |
||||
|
}) |
||||
|
console.log(select3.querySelector('.options')); |
||||
|
const options = select3.querySelector('.options'); |
||||
|
options.innerHTML = html; |
||||
|
|
||||
|
for(let i=0;i<options.querySelectorAll('.option').length;i++){ |
||||
|
options.querySelectorAll('.option')[i].addEventListener('click', checkFn) |
||||
|
} |
||||
|
|
||||
|
function checkFn(e){ |
||||
|
console.log(e.target); |
||||
|
e.target.classList.add('check') |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
</script> |
@ -0,0 +1,110 @@ |
|||||
|
body{ |
||||
|
background-color: #aaa; |
||||
|
padding: 150px; |
||||
|
} |
||||
|
*{ |
||||
|
margin:0; |
||||
|
padding: 0; |
||||
|
box-sizing: border-box !important; |
||||
|
} |
||||
|
.select3{ |
||||
|
position: relative; |
||||
|
>.input { |
||||
|
width: 250px; |
||||
|
padding: 12px 15px; |
||||
|
border-radius: 10px; |
||||
|
background-color: #fff; |
||||
|
|
||||
|
font-size: 13px; |
||||
|
cursor: pointer; |
||||
|
position: relative; |
||||
|
>i{ |
||||
|
position: absolute; |
||||
|
top: 50%; |
||||
|
right:8px; |
||||
|
transform: translateY(-50%); |
||||
|
font-size: 12px; |
||||
|
} |
||||
|
} |
||||
|
>.select{ |
||||
|
display: none; |
||||
|
position: absolute; |
||||
|
top: 44px;; |
||||
|
left:0; |
||||
|
width:250px; |
||||
|
padding: 16px 10px; |
||||
|
background-color: #fff; |
||||
|
border-radius: 10px; |
||||
|
box-sizing: border-box !important; |
||||
|
overflow: hidden; |
||||
|
animation: fadein .085s linear; |
||||
|
>input[type='text']{ |
||||
|
outline: none; |
||||
|
border:1px #999 solid; |
||||
|
width: 100%; |
||||
|
border-radius: 4px; |
||||
|
height: 31px; |
||||
|
padding: 12px ; |
||||
|
margin-bottom: 3px; |
||||
|
|
||||
|
} |
||||
|
>.options{ |
||||
|
overflow-y: scroll; |
||||
|
max-height: 205px; |
||||
|
height:auto; |
||||
|
&::-webkit-scrollbar { |
||||
|
width: 7px; |
||||
|
} |
||||
|
&::-webkit-scrollbar-track { |
||||
|
background-color: transparent; |
||||
|
background-size: 10px 10px; |
||||
|
} |
||||
|
&::-webkit-scrollbar-thumb { |
||||
|
background: #aaa; |
||||
|
border-radius: 5px; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
>label{ |
||||
|
width:100%; |
||||
|
display: block; |
||||
|
padding: 10px; |
||||
|
cursor: pointer; |
||||
|
border-bottom: 1px #ccc solid; |
||||
|
transition: .2s; |
||||
|
&:hover{ |
||||
|
transform: scale(1.05); |
||||
|
} |
||||
|
&.check{ |
||||
|
background-color:#5BC0DE; |
||||
|
color:#fff; |
||||
|
animation: check .1s linear; |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
@keyframes fadein { |
||||
|
0%{ |
||||
|
opacity: 0; |
||||
|
} |
||||
|
100%{ |
||||
|
opacity: 1; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@keyframes check { |
||||
|
0%{ |
||||
|
transform: translateX(0px); |
||||
|
background-color:rgba(91, 192, 222,0); |
||||
|
} |
||||
|
0%{ |
||||
|
transform: translateX(180px); |
||||
|
} |
||||
|
100%{ |
||||
|
transform: translateX(0px); |
||||
|
background-color:rgba(91, 192, 222,1); |
||||
|
} |
||||
|
} |
@ -1,42 +1,52 @@ |
|||||
<?php |
<?php |
||||
|
|
||||
require_once "../../mkt/conn.php"; |
require_once "../../mkt/conn.php"; |
||||
|
try{ |
||||
$spec = $_GET['spec'] ?? ''; |
$spec = $_GET['spec'] ?? ''; |
||||
$person = $_GET['person'] ?? ''; |
$person = $_GET['person'] ?? ''; |
||||
$stop = $_GET['stop'] ?? ''; |
$stop = $_GET['stop'] ?? ''; |
||||
$weight = $_GET['weight'] ?? ''; |
$weight = $_GET['weight'] ?? ''; |
||||
$speed = $_GET['speed'] ?? ''; |
$speed = $_GET['speed'] ?? ''; |
||||
$m1 = $_GET['m1'] ?? ''; |
$m1 = $_GET['m1'] ?? ''; |
||||
$method = $_GET['method'] ?? ''; |
$method = $_GET['method'] ?? ''; |
||||
$cycle = $_GET['cycle'] ?? ''; |
$cycle = $_GET['cycle'] ?? ''; |
||||
$elevator_type = match($spec){ |
$specArr = [ |
||||
"MAE100" => "A", |
"MAE100" => "A", |
||||
"MAF100" => "B", |
"MAF100" => "B", |
||||
"MAM200" => "D", |
"MAM200" => "D", |
||||
"MAH100" => "E", |
"MAH100" => "E", |
||||
}; |
""=>"" |
||||
$sql_str = "SELECT * FROM maintain_standard_option |
]; |
||||
WHERE elevator_type=:elevator_type AND min_speed<=:speed AND max_speed>=:speed AND min_persons <= :person AND max_persons >= :person AND is_m1_bundle=:m1 |
// $elevator_type = match($spec){ |
||||
ORDER bY id DESC"; |
// "MAE100" => "A", |
||||
$stmt = $conn->prepare($sql_str); |
// "MAF100" => "B", |
||||
$stmt->bindParam(':elevator_type', $elevator_type); |
// "MAM200" => "D", |
||||
$stmt->bindParam(':person', $person); |
// "MAH100" => "E", |
||||
$stmt->bindParam(':speed', $speed); |
// }; |
||||
$stmt->bindParam(':m1', $m1); |
$elevator_type = $specArr[$spec]; |
||||
$stmt->execute(); |
$sql_str = "SELECT * FROM maintain_standard_option |
||||
$result = $stmt->fetch(PDO::FETCH_ASSOC); |
WHERE elevator_type=:elevator_type AND min_speed<=:speed AND max_speed>=:speed AND min_persons <= :person AND max_persons >= :person AND is_m1_bundle=:m1 |
||||
if(!$result){ |
ORDER bY id DESC"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':elevator_type', $elevator_type); |
||||
|
$stmt->bindParam(':person', $person); |
||||
|
$stmt->bindParam(':speed', $speed); |
||||
|
$stmt->bindParam(':m1', $m1); |
||||
|
$stmt->execute(); |
||||
|
$result = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
if(!$result){ |
||||
echo 0; |
echo 0; |
||||
exit; |
exit; |
||||
} |
} |
||||
$differ = $stop > $result['max_floors'] ? $result['max_floors'] - $result['min_floors'] : ($stop - $result['min_floors']); |
$differ = $stop > $result['max_floors'] ? $result['max_floors'] - $result['min_floors'] : ($stop - $result['min_floors']); |
||||
$price = $result['base_price'] + $differ * $result['floors_price'] +$result['m1_bundle_fee']; |
$price = $result['base_price'] + $differ * $result['floors_price'] +$result['m1_bundle_fee']; |
||||
if($cycle == 2){ |
if($cycle == 2){ |
||||
$price += $price * $result['maintenance_fee_coefficient']; |
$price += $price * $result['maintenance_fee_coefficient']; |
||||
} |
} |
||||
if($method == "A"){ |
if($method == "A"){ |
||||
$price += $result['all_inclusive_fee']; |
$price += $result['all_inclusive_fee']; |
||||
} |
} |
||||
|
|
||||
echo $price; |
echo $price; |
||||
|
}catch(PDOException $e){ |
||||
|
echo $e->getMessage(); |
||||
|
} |
@ -0,0 +1,761 @@ |
|||||
|
<?php |
||||
|
## 3/31 前套用 2.0 版本 |
||||
|
|
||||
|
$ver = isset($_GET['ver']) ? $_GET['ver'] : null; |
||||
|
$contract_type = isset($_GET['contract_type']) ? trim($_GET['contract_type']) : null; // 请注意删除可能的尾随空格 |
||||
|
$contract_years = isset($_GET['contract_years']) ? $_GET['contract_years'] : null; |
||||
|
$discount = isset($_GET['discount']) ? $_GET['discount'] : null; |
||||
|
$fee_per_st = isset($_GET['fee_per_st']) ? $_GET['fee_per_st'] : null; |
||||
|
$receivable_date_due = isset($_GET['receivable_date_due']) ? $_GET['receivable_date_due'] : null; |
||||
|
$sales_id = isset($_GET['sales_id']) ? $_GET['sales_id'] : null; |
||||
|
$region_manager_id = isset($_GET['region_manager_id']) ? $_GET['region_manager_id'] : null; |
||||
|
$regular_contract_manager_id = isset($_GET['regular_contract_manager_id']) ? $_GET['regular_contract_manager_id'] : null; |
||||
|
|
||||
|
$bonus = maintenance_contract_bonus_v2_0($ver, $contract_type, $contract_years, $discount, $fee_per_st, $receivable_date_due, $sales_id, $region_manager_id, $regular_contract_manager_id); |
||||
|
echo json_encode($bonus); |
||||
|
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,127 @@ |
|||||
|
<?php |
||||
|
|
||||
|
require_once('../../mkt/conn.php'); |
||||
|
date_default_timezone_set("Asia/Taipei"); |
||||
|
|
||||
|
$sign = $_POST['sign']; |
||||
|
$mid = $_POST['mid']; |
||||
|
$result = $_POST['result']; |
||||
|
$reviewcomment = $_POST['reviewcomment']; |
||||
|
$sign_id = $_POST['currentSignId']; |
||||
|
$token = $_POST['token']; |
||||
|
$form_key = $_POST['form_key']; |
||||
|
$signOff = ''; |
||||
|
$updated_at = date("Y-m-d H:i:s"); |
||||
|
|
||||
|
if($result == 'YY' ){ |
||||
|
$signOff = 'YY'; |
||||
|
}elseif($result == 'YN'){ |
||||
|
$signOff = 'N'; |
||||
|
}elseif($result == 'YS'){ |
||||
|
$signOff = 'Y'; |
||||
|
} |
||||
|
try{ |
||||
|
$user_id = $_POST['user_id']; |
||||
|
$sign_result = $user_id . "," . $signOff . "," . date("Y-m-d H:i:s"); |
||||
|
$sql_str = "UPDATE pricereview_maintain_sign SET sign{$sign}=:sign, sign{$sign}_note = :reviewcomment WHERE mid = :mid AND id = :sign_id"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':sign', $sign_result); |
||||
|
$stmt->bindParam(':mid', $mid); |
||||
|
$stmt->bindParam(':reviewcomment', $reviewcomment); |
||||
|
$stmt->bindParam(':sign_id', $sign_id); |
||||
|
$stmt->execute(); |
||||
|
|
||||
|
if($sign == 3){ |
||||
|
$sql_str = "UPDATE con_maintance_examine_apply SET status=:status, updated_at=:updated_at WHERE apply_key = :apply_key "; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':status', $result); |
||||
|
$stmt->bindParam(':apply_key', $mid); |
||||
|
$stmt->bindParam(':updated_at', $updated_at); |
||||
|
$stmt->execute(); |
||||
|
}else{ |
||||
|
$sql_str = "UPDATE con_maintance_examine_apply SET status=:status WHERE apply_key = :apply_key "; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':status', $result); |
||||
|
$stmt->bindParam(':apply_key', $mid); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
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', $mid); |
||||
|
$stmt->execute(); |
||||
|
$contract = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
$ekind = "保養"; |
||||
|
|
||||
|
$sql_str = "SELECT * FROM pricereview_maintain_sign WHERE mid = :mid AND id = :sign_id"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':mid', $mid); |
||||
|
$stmt->bindParam(':sign_id', $sign_id); |
||||
|
$stmt->execute(); |
||||
|
$currentsign = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
$permissions = []; |
||||
|
$content = ""; |
||||
|
$url = "cont/pricereviewCheck.php?apply_key=" . $mid; |
||||
|
if($signOff == "YY"){ |
||||
|
if($currentsign['sign1']!=NULL){ $permissions[] = explode(",", $currentsign['sign1'])[0] ; } |
||||
|
if($currentsign['sign2']!=NULL){ $permissions[] = explode(",", $currentsign['sign2'])[0] ; } |
||||
|
if($currentsign['sign3']!=NULL){ $permissions[] = explode(",", $currentsign['sign3'])[0] ; } |
||||
|
if($currentsign['sign4']!=NULL){ $permissions[] = explode(",", $currentsign['sign4'])[0] ; } |
||||
|
$permissions[] = $contract['salesman']; |
||||
|
$title = $ekind . "價審結案通知(".$contract['vol_no']."," .$contract['customer']. ")"; |
||||
|
$content = "狀態:結案同意<br>"; |
||||
|
$current_assigner = "00000"; |
||||
|
}elseif($signOff == "Y"){ |
||||
|
if($sign == 1 || $sign == 2 || $sign == 3){ |
||||
|
$signer = $currentsign['sign'.($sign+1)]; |
||||
|
if($signer == NULL){ |
||||
|
$signer = $currentsign['sign'.($sign+2)]; |
||||
|
} |
||||
|
$permissions[] = explode(",", $signer)[0]; |
||||
|
$current_assigner = explode(",", $signer)[0]; |
||||
|
$title = $ekind . "價審待簽通知(".$contract['vol_no']."," .$contract['customer']. ")"; |
||||
|
$content = "狀態:待簽核<br>"; |
||||
|
} |
||||
|
}elseif($signOff == "N"){ |
||||
|
$signer = $contract['salesman']; |
||||
|
$permissions[] = $signer; |
||||
|
$title = $ekind . "價審退回通知(".$contract['vol_no']."," .$contract['customer']. ")"; |
||||
|
$content = "狀態:退回<br>"; |
||||
|
$url = "cont/pricereviewCreate.php?vol_no=" . $vol_no; |
||||
|
$current_assigner = "00000"; |
||||
|
} |
||||
|
|
||||
|
$kind = 1; |
||||
|
$related_id = $mid; |
||||
|
$content .= "合約號:".$contract['vol_no'] . "<br>"; |
||||
|
$content .= "客戶名稱:" . $contract['customer'] . "<br>"; |
||||
|
$content .= "案件名稱:" . $contract['case_name'] . "<br>"; |
||||
|
$content .= "時間" . date("Y-m-d H:i:s"); |
||||
|
// $content .= "<a href='./mkt/pricreviewCheck.php?id=".$mid.">前往查看</a>"; |
||||
|
$havaread = null; |
||||
|
$creater = "system"; |
||||
|
$create_at = date("Y-m-d H:i:s"); |
||||
|
sendSystemNotice($kind, $related_id, $title, $content, $havaread, $permissions, $creater, $create_at, $url); |
||||
|
|
||||
|
//待簽通知 |
||||
|
if($form_key == null){ |
||||
|
$sql_str = "SELECT form_key FROM flow WHERE form_id = :form_id AND system_id = 'prm' AND flow_id='prm04'"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':form_id', $mid); |
||||
|
$stmt->execute(); |
||||
|
$form_key = $stmt->fetch(PDO::FETCH_ASSOC)['form_key']; |
||||
|
} |
||||
|
include_once "./postFlow.php"; |
||||
|
if($signOff == "YY") $flow_code = "Z"; |
||||
|
if($signOff == "Y") $flow_code = "B"; |
||||
|
if($signOff == "N") $flow_code = "A"; |
||||
|
if($form_key == null){ |
||||
|
throw new PDOException("form_key 不存在!"); |
||||
|
} |
||||
|
createFlow($mid, $current_assigner, $flow_code, $ekind, $form_key); |
||||
|
echo 1; |
||||
|
}catch(PDOException $e){ |
||||
|
echo $e->getMessage(); |
||||
|
} |
@ -0,0 +1,49 @@ |
|||||
|
<?php |
||||
|
$envFile = __DIR__ . '/.env'; // .env 文件的路径 |
||||
|
|
||||
|
if (file_exists($envFile)) { |
||||
|
$lines = file($envFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); |
||||
|
if ($lines !== false) { |
||||
|
foreach ($lines as $line) { |
||||
|
list($key, $value) = explode('=', $line, 2); |
||||
|
$key = trim($key); |
||||
|
$value = trim($value); |
||||
|
// 设置环境变量 |
||||
|
putenv("$key=$value"); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
$db_hostname = getenv('DB_HOST'); //資料庫主機名稱 |
||||
|
$db_username = getenv('DB_USERNAME'); //登入資料庫的管理者的帳號 |
||||
|
$db_password = getenv('DB_PASSWORD'); //登入密碼 |
||||
|
$db_name = getenv('DB_DATABASE'); //使用的資料庫 |
||||
|
$db_charset = 'utf8'; //設定字元編碼 |
||||
|
|
||||
|
|
||||
|
$db_hostname = 'localhost'; //資料庫主機名稱 |
||||
|
$db_username = 'root'; //登入資料庫的管理者的帳號 |
||||
|
$db_password = ''; //登入密碼 |
||||
|
$db_name = 'appwms'; //使用的資料庫 |
||||
|
$db_charset = 'utf8'; //設定字元編碼 |
||||
|
//建立PDO的指定工作 |
||||
|
$dsn = "mysql:host=$db_hostname;dbname=$db_name;charset=$db_charset"; |
||||
|
|
||||
|
try{ |
||||
|
//使用PDO連接到MySQL資料庫,建立PDO物件 |
||||
|
$conn = new PDO($dsn, $db_username, $db_password); |
||||
|
|
||||
|
//當錯誤發生時會將錯誤資訊放到一個類物件裡(PDOException) |
||||
|
//PDO異常處理,PDO::ATTR_ERRMODE,有以下三種值的設定 |
||||
|
//PDO::ERRMODE_SILENT: 預設模式,不主動報錯,需要以$conn->errorInfo()的形式獲取錯誤資訊 |
||||
|
//PDO::ERRMODE_WARNING: 引發 E_WARNING 錯誤,主動報錯 |
||||
|
//PDO::ERRMODE_EXCEPTION: 主動抛出 exceptions 異常,需要以try{}cath(){}輸出錯誤資訊。 |
||||
|
//設定主動以警告的形式報錯 |
||||
|
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); |
||||
|
//如果連接錯誤,將抛出一個PDOException異常對象 |
||||
|
} |
||||
|
catch ( PDOException $e ){ |
||||
|
//如果連結資料庫失敗則顯示錯誤訊並停止本頁的工作 |
||||
|
die("ERROR!!!: ". $e->getMessage()); |
||||
|
} |
||||
|
|
||||
|
//$conn = null; //關閉資料庫的連線 |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 256 KiB |
After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 614 KiB |
After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 27 KiB |
@ -1,4 +1,678 @@ |
|||||
<?php |
<?php |
||||
|
|
||||
include_once "../header.php"; |
include_once "../header.php"; |
||||
require_once('../mkt/conn.php'); |
require_once('../mkt/conn.php'); |
||||
|
|
||||
|
$apply_key = null; |
||||
|
$form_key = null; |
||||
|
if(isset($_GET['apply_key']) && $_GET['apply_key'] != ""){ |
||||
|
$apply_key = $_GET['apply_key']; |
||||
|
}elseif(isset($_GET['form_key']) && $_GET['form_key'] != ""){ |
||||
|
$form_key = $_GET['form_key']; |
||||
|
$sql_str = "SELECT form_id FROM flow WHERE form_key = :form_key"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':form_key', $form_key); |
||||
|
$stmt->execute(); |
||||
|
$flow = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
$apply_key = $flow['form_id']; |
||||
|
|
||||
|
} |
||||
|
if(!isset($_GET['apply_key']) && !isset($_GET['form_key'])){ |
||||
|
echo "找不到此紀錄。"; |
||||
|
exit; |
||||
|
} |
||||
|
|
||||
|
$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); |
||||
|
if(!$contract){ |
||||
|
echo "找不到此紀錄!"; |
||||
|
exit; |
||||
|
} |
||||
|
|
||||
|
$sql_str = "SELECT * FROM con_maintance_examine_clear WHERE (apply_key, cmstatus) = (:apply_key, 'Y') ORDER BY created_at ASC"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->execute(); |
||||
|
$elevators = $stmt->fetchAll(PDO::FETCH_ASSOC); |
||||
|
|
||||
|
$sql_str = "SELECT * FROM pricereview_maintain_item WHERE (mid, item_group) = (:apply_key, 'E') ORDER BY item_no ASC"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->execute(); |
||||
|
$otherOptions = $stmt->fetchAll(PDO::FETCH_ASSOC); |
||||
|
|
||||
|
|
||||
|
$contract_begin_date = new DateTime($contract['contract_begin_date']); |
||||
|
$contract_end_date = new DateTime($contract['contract_end_date']); |
||||
|
// 計算差異 |
||||
|
$interval = $contract_begin_date->diff($contract_end_date); |
||||
|
// 獲取總月數 |
||||
|
$contract_months = $interval->m + 12 * $interval->y + 1; |
||||
|
if($contract_months <= 0){ $contract_months = 1;} |
||||
|
|
||||
|
$sql_str = "SELECT * FROM pricereview_maintain_sign WHERE mid = :apply_key ORDER BY id ASC"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->execute(); |
||||
|
$sign_all = $stmt->fetchAll(PDO::FETCH_ASSOC); |
||||
|
$sign = $sign_all ? $sign_all[count($sign_all)-1] : []; |
||||
|
$currentSigner = ''; |
||||
|
$currentSign = 0; |
||||
|
$currentSignId = $sign['id'] ?? ''; |
||||
|
$historySign = []; |
||||
|
if($sign_all){ |
||||
|
foreach($sign_all as $key=>$sign_item){ |
||||
|
if($key == count($sign_all)-1){ |
||||
|
break; |
||||
|
} |
||||
|
$signer1 = getSignerName(explode(",", $sign_item['sign1'])[0]); |
||||
|
$sign1_result = explode(",", $sign_item['sign1'])[1]; |
||||
|
$sign1_date = explode(",", $sign_item['sign1'])[2]; |
||||
|
$sign1_note = $sign_item['sign1_note']; |
||||
|
if($sign1_result == "Y"){ |
||||
|
$sign1_result = "同意"; |
||||
|
}elseif($sign1_result == "YY"){ |
||||
|
$sign1_result = "結案同意"; |
||||
|
}elseif($sign1_result == "N"){ |
||||
|
$sign1_result = "不同意"; |
||||
|
}else{ |
||||
|
$sign1_result = "---"; |
||||
|
} |
||||
|
if(!empty($sign_item['sign2'])){ |
||||
|
$signer2 = getSignerName(explode(",", $sign_item['sign2'])[0]); |
||||
|
$sign2_result = explode(",", $sign_item['sign2'])[1]; |
||||
|
$sign2_note = $sign_item['sign2_note']; |
||||
|
$sign2_date = explode(",", $sign_item['sign2'])[2]; |
||||
|
if($sign2_result == "Y"){ |
||||
|
$sign2_result = "同意"; |
||||
|
}elseif($sign2_result == "YY"){ |
||||
|
$sign2_result = "結案同意"; |
||||
|
}elseif($sign2_result == "N"){ |
||||
|
$sign2_result = "不同意"; |
||||
|
}else{ |
||||
|
$sign2_result = "---"; |
||||
|
} |
||||
|
}else{ |
||||
|
$signer2 = "---"; |
||||
|
$sign2_result = "---"; |
||||
|
$sign2_note = "---"; |
||||
|
$sign2_date = "---"; |
||||
|
$sign2_result = "---"; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
$signer3 = getSignerName(explode(",", $sign_item['sign3'])[0]); |
||||
|
$sign3_result = explode(",", $sign_item['sign3'])[1]; |
||||
|
$sign3_note = $sign_item['sign3_note']; |
||||
|
$sign3_date = explode(",", $sign_item['sign3'])[2]; |
||||
|
if($sign3_result == "Y"){ |
||||
|
$sign3_result = "同意"; |
||||
|
}elseif($sign3_result == "YY"){ |
||||
|
$sign3_result = "結案同意"; |
||||
|
}elseif($sign3_result == "N"){ |
||||
|
$sign3_result = "不同意"; |
||||
|
}else{ |
||||
|
$sign3_result = "---"; |
||||
|
} |
||||
|
if(!empty($sign_item['sign4'])){ |
||||
|
$signer4 = getSignerName(explode(",", $sign_item['sign4'])[0]); |
||||
|
$sign4_result = explode(",", $sign_item['sign4'])[1]; |
||||
|
$sign4_note = $sign_item['sign4_note']; |
||||
|
$sign4_date = explode(",", $sign_item['sign4'])[2]; |
||||
|
if($sign4_result == "Y"){ |
||||
|
$sign4_result = "同意"; |
||||
|
}elseif($sign4_result == "YY"){ |
||||
|
$sign4_result = "結案同意"; |
||||
|
}elseif($sign4_result == "N"){ |
||||
|
$sign4_result = "不同意"; |
||||
|
}else{ |
||||
|
$sign4_result = "---"; |
||||
|
} |
||||
|
}else{ |
||||
|
$signer4 = "---"; |
||||
|
$sign4_result = "---"; |
||||
|
$sign4_note = "---"; |
||||
|
$sign4_date = "---"; |
||||
|
$sign4_result = "---"; |
||||
|
} |
||||
|
|
||||
|
$historySign[] = [ |
||||
|
'signer1'=>$signer1, |
||||
|
'sign1_result'=> $sign1_result, |
||||
|
'sign1_note'=>$sign1_note, |
||||
|
'sign1_date'=>$sign1_date, |
||||
|
'signer2'=>$signer2, |
||||
|
'sign2_result'=> $sign2_result, |
||||
|
'sign2_note'=>$sign2_note, |
||||
|
'sign2_date'=>$sign2_date, |
||||
|
'signer3'=>$signer3, |
||||
|
'sign3_result'=> $sign3_result, |
||||
|
'sign3_note'=>$sign3_note, |
||||
|
'sign3_date'=>$sign3_date, |
||||
|
'signer4'=>$signer4, |
||||
|
'sign4_result'=> $sign4_result, |
||||
|
'sign4_note'=>$sign4_note, |
||||
|
'sign4_date'=>$sign4_date, |
||||
|
]; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
if($sign){ |
||||
|
// Y:已同意 N:不同意 W:待簽 |
||||
|
// sign1 => 處長, sign2 => 業務承辦人, sign3 => 協理, sign4 => 總經理 |
||||
|
if($sign['sign1'] == NULL || $sign['sign1'] ==''){ |
||||
|
$sign1 = NULL; |
||||
|
}else{ |
||||
|
if( explode(",", $sign['sign1'])[1] != ''){ |
||||
|
$sign1 = explode(",", $sign['sign1'])[1] == 'Y' ? 'Y' : 'N'; |
||||
|
}else{ |
||||
|
$sign1 = 'W'; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if($sign['sign2'] == NULL || $sign['sign2'] ==''){ |
||||
|
$sign2 = NULL; |
||||
|
}else{ |
||||
|
if( explode(",", $sign['sign2'])[1] != ''){ |
||||
|
$sign2 = explode(",", $sign['sign2'])[1] == 'Y' ? 'Y' : 'N'; |
||||
|
}else{ |
||||
|
$sign2 = 'W'; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if($sign['sign3'] == NULL || $sign['sign3'] ==''){ |
||||
|
$sign3 = NULL; |
||||
|
}else{ |
||||
|
if( explode(",", $sign['sign3'])[1] != ''){ |
||||
|
// $sign3 = explode(",", $sign['sign3'])[1] == 'Y' ? 'Y' : 'N'; |
||||
|
if(explode(",", $sign['sign3'])[1] == 'YY') $sign3 = 'YY'; |
||||
|
if(explode(",", $sign['sign3'])[1] == 'Y') $sign3 = 'Y'; |
||||
|
if(explode(",", $sign['sign3'])[1] == 'N') $sign3 = 'N'; |
||||
|
}else{ |
||||
|
$sign3 = 'W'; |
||||
|
} |
||||
|
} |
||||
|
if($sign['sign4'] == NULL || $sign['sign4'] ==''){ |
||||
|
$sign4 = NULL; |
||||
|
}else{ |
||||
|
if( explode(",", $sign['sign4'])[1] != ''){ |
||||
|
// $sign4 = explode(",", $sign['sign4'])[1] == 'Y' ? 'Y' : 'N'; |
||||
|
if(explode(",", $sign['sign4'])[1] == 'YY') $sign4 = 'YY'; |
||||
|
if(explode(",", $sign['sign4'])[1] == 'Y') $sign4 = 'Y'; |
||||
|
if(explode(",", $sign['sign4'])[1] == 'N') $sign4 = 'N'; |
||||
|
}else{ |
||||
|
$sign4 = 'W'; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if($sign1 == 'W'){ |
||||
|
$currentSigner = explode(",", $sign['sign1'])[0]; |
||||
|
$currentSign = 1; |
||||
|
}elseif($sign2 == 'W'){ |
||||
|
$currentSigner = explode(",", $sign['sign2'])[0]; |
||||
|
$currentSign = 2; |
||||
|
}elseif($sign3 == 'W'){ |
||||
|
$currentSigner = explode(",", $sign['sign3'])[0]; |
||||
|
$currentSign = 3; |
||||
|
}elseif($sign4 == 'W'){ |
||||
|
$currentSigner = explode(",", $sign['sign4'])[0]; |
||||
|
$currentSign = 4; |
||||
|
} |
||||
|
}else{ |
||||
|
$sign1 = NULL; |
||||
|
$sign2 = NULL; |
||||
|
$sign3 = NULL; |
||||
|
$sign4 = NULL; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
$permissions = false; |
||||
|
//開啟工務權限 |
||||
|
if($user_id == "M0174" || $user_id == "M0008" || $user_id == "M0012" || $user_id == "M0007"){ |
||||
|
$permissions = true; |
||||
|
} |
||||
|
function getSignerName($signer){ |
||||
|
if($signer == null || $signer == '') return "---"; |
||||
|
global $conn; |
||||
|
$sql_str = "SELECT name FROM account WHERE accountid = :signer"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':signer', $signer); |
||||
|
$stmt->execute(); |
||||
|
$signer = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
return $signer['name']; |
||||
|
} |
||||
|
?> |
||||
|
|
||||
|
<link rel="stylesheet" href="./css/pricereview.css"> |
||||
|
<script src="./js/axios.min.js" integrity="sha512-aoTNnqZcT8B4AmeCFmiSnDlc4Nj/KPaZyB5G7JnOnUEkdNpCZs1LCankiYi01sLTyWy+m2P+W4XM+BuQ3Q4/Dg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> |
||||
|
<script defer src="./js/alpinejs/cdn.min.js"></script> |
||||
|
<script src="./js/pricereviewAlpine.js"></script> |
||||
|
|
||||
|
<div id="pricereviewCheck" x-data=pricereviewCheck> |
||||
|
<div class="container"> |
||||
|
<table class="table customerinfo-table" > |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<th>價審單號</th> |
||||
|
<th>卷號</th> |
||||
|
<th>營業員</th> |
||||
|
<th>客戶名稱</th> |
||||
|
<th>牌價總額(A)</th> |
||||
|
<th>售價總額(B)</th> |
||||
|
<th >破價總額(B-A)</th> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><input type="text" class="form-control" x-model="apply_key" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="contractno" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="salesman" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="customer" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="Number(total_price).toLocaleString()" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="Number(total_sale_price).toLocaleString()" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="(total_sale_price - total_price).toLocaleString()" disabled /></td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
<table class="table mi-table" border=1> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th colspan=5>整機單價</th> |
||||
|
<?php if($permissions): ?> |
||||
|
<th colspan=4>業務部作業區</th> |
||||
|
<?php endif; ?> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th>項次</th> |
||||
|
<th>規格</th> |
||||
|
<th>單價(月)</th> |
||||
|
<th>保養月數</th> |
||||
|
<th>總價</th> |
||||
|
<?php if($permissions): ?> |
||||
|
<th>成本(月)</th> |
||||
|
<th>售價(月)</th> |
||||
|
<th>利潤(月)</th> |
||||
|
<th>利潤率(%)</th> |
||||
|
<?php endif; ?> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<template x-for="elevator in elevators"> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td x-html="'<b>' + elevator.item_no + '</b>'"></td> |
||||
|
<td > <a href="javascript:;" x-text="elevator.spec + '-' + elevator.persons + '*' + elevator.stop + '-' + elevator.speed"></a></td> |
||||
|
<td><input type="text" class="form-control" x-model="Number(elevator.stand_price).toLocaleString()" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="elevator.maintain_months" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="Number(elevator.stand_price * elevator.maintain_months).toLocaleString()" disabled /></td> |
||||
|
<?php if($permissions): ?> |
||||
|
<td> |
||||
|
<input x-show="true" type="text" class="form-control" x-model="Number(elevator.stand_price).toLocaleString()"> |
||||
|
</td> |
||||
|
<td><input type="text" class="form-control" x-model="(Number(elevator.contract_price)).toLocaleString()" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="(Number(elevator.contract_price) - Number(elevator.stand_price)).toLocaleString()" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="((Number(elevator.contract_price) - Number(elevator.stand_price) ) / Number(elevator.stand_price) * 100).toFixed(1) + '%'" disabled /></td> |
||||
|
<?php endif; ?> |
||||
|
</tr> |
||||
|
<?php if($permissions): ?> |
||||
|
<tr> |
||||
|
<td colspan=5> |
||||
|
<div class="mi-info"> |
||||
|
<span>電梯資訊</span> |
||||
|
<ul> |
||||
|
<li x-html="'電梯許可證號:<b>' + elevator.register_code + '</b>'"></li> |
||||
|
<li x-html="'電梯廠牌<b>:' + elevator.elevator_brand + '</b>'"></li> |
||||
|
<li x-html="'停數<b>:' + elevator.stop + '</b>'"></li> |
||||
|
<li x-html="'人乘<b>:' + elevator.persons + '</b>'"></li> |
||||
|
<li x-html="'速度<b>:' + elevator.speed + '</b>'"></li> |
||||
|
<li x-html="'載重<b>:' + elevator.weight + '</b>'"></li> |
||||
|
<li x-html="'保養方式<b>:' + elevator.maintain_method + '</b>'"></li> |
||||
|
<li x-html="'保養週期<b>:' + elevator.maintain_period + '</b>'"></li> |
||||
|
<li x-html="elevator.is_m1_bundle=='Y' ? '贈送M1::<b>是</b>' : '贈送M1::<b>否</b>'"></li> |
||||
|
<li x-html="'年檢費用<b>:' + elevator.annual_survey_expense.toLocaleString() + '</b>'"></li> |
||||
|
<li x-html="'檢測費用<b>:' + elevator.inspection_fee.toLocaleString() + '</b>'"></li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
</td> |
||||
|
<td colspan=4 style="max-width:400px"> |
||||
|
<div class="mi-info"> |
||||
|
<span>電梯規格</span> |
||||
|
<ul> |
||||
|
<li x-html="elevator.spec + '*'+elevator.maintain_months+':<b>' + (elevator.stand_price*elevator.maintain_months).toLocaleString() + '</b>'"></li> |
||||
|
</ul> |
||||
|
<span>附加項目</span> |
||||
|
<ul> |
||||
|
<template x-for="option in elevator.otherOptions"> |
||||
|
<li x-html="option.item_spec + (option.option_memo ? ('(' + option.option_memo + ')') : '') + '*' + option.item_qty + ':<b>' + (option.mi * option.item_qty).toLocaleString() + '</b>'"></li> |
||||
|
</template> |
||||
|
</ul> |
||||
|
<p x-html="'以上合計:<b>' + Math.round(Number(elevator.otherOptionsTotalPrice) + Number(elevator.stand_price*elevator.maintain_months)).toLocaleString() + '</b>'"></p> |
||||
|
</div> |
||||
|
|
||||
|
</td> |
||||
|
</tr> |
||||
|
<?php endif ;?> |
||||
|
|
||||
|
</tbody> |
||||
|
</template> |
||||
|
<tr> |
||||
|
<td colspan=4>小計</td> |
||||
|
<td><input type="text" class="form-control" x-model="elevators_total_price.toLocaleString()" disabled></td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
<table class="table mi-table" border=1> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th colspan=8>除外項目</th> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th>項次</th> |
||||
|
<th>詢價單號</th> |
||||
|
<th>名稱</th> |
||||
|
<th>單價</th> |
||||
|
<th>數量</th> |
||||
|
<th>複價</th> |
||||
|
<th>所屬電梯項次</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
<template x-for="option in otherOptions"> |
||||
|
<tr> |
||||
|
<td x-html="'<b>' + option.item_no + '</b>'"></td> |
||||
|
<td x-text="option.price_id"></td> |
||||
|
<td><input type="text" class="form-control" x-model="option.item_spec" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="Number(option.item_unit_price).toLocaleString()" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="option.item_qty" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="(option.item_unit_price * option.item_qty).toLocaleString()" disabled /></td> |
||||
|
<td x-text="option.option_relate_spec"></td> |
||||
|
</tr> |
||||
|
</template> |
||||
|
<template x-if="otherOptions.length > 0"> |
||||
|
<tr> |
||||
|
<td colspan=5>小計</td> |
||||
|
<td > |
||||
|
<input type="text" x-model="otherOptionsTotalPrice.toLocaleString()" disabled class="form-control"> |
||||
|
</td> |
||||
|
<td colspan=3></td> |
||||
|
</tr> |
||||
|
</template> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
<table class="table mi-table" border=1 style="width:800px"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th style="width:100px">付款方式</th> |
||||
|
<th>金額(次)</th> |
||||
|
<th>付款次數</th> |
||||
|
<th>總付款金額</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td x-text="payment_kind"></td> |
||||
|
<td><input type="text" class="form-control" x-model="single_amount.amount_times.toLocaleString()" disabled /></td> |
||||
|
<td><input type="text" class="form-control" :value="single_amount.pay_times.toLocaleString()" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="total_sale_price.toLocaleString()" disabled /></td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
<table class="table customerinfo-table" > |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<th>卷號</th> |
||||
|
<th>營業員</th> |
||||
|
<th>客戶名稱</th> |
||||
|
<th>案件名稱</th> |
||||
|
<th colspan="2">地址</th> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><input type="text" class="form-control" x-model="contractno" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="salesman" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="customer" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="case_name" disabled /></td> |
||||
|
<td colspan="2"><input type="text" class="form-control" x-model="address" disabled /></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th>牌價總額(A)</th> |
||||
|
<th>售價總額(B)</th> |
||||
|
<th>破價總額(B-A)</th> |
||||
|
<th>總台數</th> |
||||
|
<th>服務費(介紹費)</th> |
||||
|
<th>價率%(B/A)</th> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><input type="text" class="form-control" x-model="Number(total_price).toLocaleString()" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="Number(total_sale_price).toLocaleString()" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="(total_sale_price - total_price).toLocaleString()" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="elevators.length" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="service_fee.toLocaleString()" disabled /></td> |
||||
|
<td><input type="text" class="form-control" x-model="Math.round(total_sale_price/total_price * 1000)/10" disabled /></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th>合約開始日</th> |
||||
|
<th>合約結束日</th> |
||||
|
<th></th> |
||||
|
<th></th> |
||||
|
<th></th> |
||||
|
<th></th> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><input type="date" disabled class="form-control" x-model="contract_begin_date" /></td> |
||||
|
<td><input type="date" disabled class="form-control" x-model="contract_end_date" /></td> |
||||
|
<td></td> |
||||
|
<td></td> |
||||
|
<td></td> |
||||
|
<td></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th>罰則</th> |
||||
|
<th>訂金保證金(函)%</th> |
||||
|
<th>履約保證金(函)%</th> |
||||
|
<th>保固保證金(函)%</th> |
||||
|
<th></th> |
||||
|
<th></th> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><input type="text" disabled class="form-control" x-model="penalty"></td> |
||||
|
<td><input type="text" disabled class="form-control" x-model="deposit_rate"></td> |
||||
|
<td><input type="text" disabled class="form-control" x-model="keep_rate"></td> |
||||
|
<td><input type="text" disabled class="form-control" x-model="warranty_rate"></td> |
||||
|
<td></td> |
||||
|
<td></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th colspan="6">特記事項</th> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td colspan="6"> |
||||
|
<textarea name="" id="" cols="30" rows="5" class="form-control" x-model="memo" disabled></textarea> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
|
||||
|
<table class="table" style="width:700px"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th style="width:150px">審核</th> |
||||
|
<th style="width:100px">審核人</th> |
||||
|
<th>結果</th> |
||||
|
<th>意見</th> |
||||
|
<th>時間</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td>區經理</td> |
||||
|
<td x-text="sign1"></td> |
||||
|
<td> |
||||
|
<?php |
||||
|
if($sign1 == 'Y'){ |
||||
|
echo "同意"; |
||||
|
}elseif($sign1 == 'N'){ |
||||
|
echo "不同意"; |
||||
|
}elseif($sign1 == 'W'){ |
||||
|
echo "待簽核"; |
||||
|
}else{ |
||||
|
echo "---"; |
||||
|
} |
||||
|
?> |
||||
|
</td> |
||||
|
<td><?php echo isset($sign['sign1_note']) ? $sign['sign1_note'] : "" ?></td> |
||||
|
<td><?php echo isset($sign['sign1']) ? explode(',', $sign['sign1'])[2] : "---" ?></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td x-text="'服務助理'"></td> |
||||
|
<td x-text="sign2"></td> |
||||
|
<td> |
||||
|
<?php |
||||
|
if($sign2 == 'Y'){ |
||||
|
echo "同意"; |
||||
|
}elseif($sign2 == 'N'){ |
||||
|
echo "不同意"; |
||||
|
}elseif($sign2 == 'W' && $contract['status'] == 'YS'){ |
||||
|
echo "待簽核"; |
||||
|
}else{ |
||||
|
echo "---"; |
||||
|
} |
||||
|
?> |
||||
|
</td> |
||||
|
<td><?php echo (isset($sign['sign2']) && $sign['sign2']!=NULL) ? $sign['sign2_note'] : '---'?></td> |
||||
|
<td><?php echo (isset($sign['sign2']) && $sign['sign2']!=NULL) ? explode(',', $sign['sign2'])[2] : '---' ?></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td x-text="'服務副總'"></td> |
||||
|
<td x-text="sign3"></td> |
||||
|
<td> |
||||
|
<?php |
||||
|
if($sign3 == 'Y'){ |
||||
|
echo "同意"; |
||||
|
}elseif($sign3 == 'YY'){ |
||||
|
echo "結案同意"; |
||||
|
}elseif($sign3 == 'N'){ |
||||
|
echo "不同意"; |
||||
|
}elseif($sign3 == 'W' && $contract['status'] == 'YS'){ |
||||
|
echo "待簽核"; |
||||
|
}else{ |
||||
|
echo "---"; |
||||
|
} |
||||
|
?> |
||||
|
</td> |
||||
|
<td><?php echo (isset($sign['sign3']) && $sign['sign3']!=NULL) ? $sign['sign3_note'] : '---'?></td> |
||||
|
<td><?php echo (isset($sign['sign3']) && $sign['sign3']!=NULL) ? explode(',', $sign['sign3'])[2] : '---' ?></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>總經理</td> |
||||
|
<td x-text="sign4"></td> |
||||
|
<td> |
||||
|
<?php |
||||
|
if($contract['status'] == 'YY'){ |
||||
|
if($sign3 == 'YY'){ |
||||
|
echo "---"; |
||||
|
}elseif($sign3 == 'Y' && $sign4 == 'YY'){ |
||||
|
echo "結案同意"; |
||||
|
} |
||||
|
}else{ |
||||
|
if($sign4 == 'Y' && $contract['status'] == 'YY'){ |
||||
|
echo "同意"; |
||||
|
}elseif($sign4 == 'N' && $contract['status'] == 'YN'){ |
||||
|
echo "不同意"; |
||||
|
}elseif($sign4 == 'W' && $contract['status'] == 'YS' ){ |
||||
|
echo "待簽核"; |
||||
|
}else{ |
||||
|
echo "---"; |
||||
|
} |
||||
|
} |
||||
|
?> |
||||
|
</td> |
||||
|
<td><?php echo (isset($sign['sign4']) && $sign['sign4']!=NULL) ? $sign['sign4_note'] : '---'?></td> |
||||
|
<td><?php echo (isset($sign['sign4']) && $sign['sign4']!=NULL) ? explode(',', $sign['sign4'])[2] : '---' ?></td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
<table class="table" style="width:700px"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>審核意見</th> |
||||
|
<th>批示售價</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td> |
||||
|
<textarea name="" <?php if($currentSigner != $user_id) echo "disabled" ?> class="form-control" id="" cols="40" rows="5" x-model="reviewcomment"></textarea> |
||||
|
</td> |
||||
|
<td> |
||||
|
<input type="text" class="form-control" disabled /> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
<div> |
||||
|
<button class="btn btn-primary" @click="window.history.go(-1)">回上頁</button> |
||||
|
<?php if($contract['status'] == "YS"){ ?> |
||||
|
<?php if($currentSigner == "M0006" && $user_id == "M0008"): ?> |
||||
|
<button class="btn btn-primary" @click="check(<?php echo $currentSign; ?>, 'YN', 'M0006')">總經理權限(退回)</button> |
||||
|
<?php endif; ?> |
||||
|
<?php if($currentSigner == $user_id): ?> |
||||
|
<button class="btn btn-primary" @click="check(<?php echo $currentSign; ?>, 'YN')">不同意(退回)</button> |
||||
|
<?php if($sign1=='W' || ($sign1=='Y' && $sign2 =='W') || ($sign1 == 'Y' && ($sign2 == 'Y' || $sign2 == NULL) && $sign3 == 'W' && $sign4 == 'W')): ?> |
||||
|
<button class="btn btn-primary" @click="check(<?php echo $currentSign; ?>, 'YS')">同意(上呈)</button> |
||||
|
<?php endif ; ?> |
||||
|
<?php if(($sign3 == 'W' && $sign2 == 'Y') || ($sign3 == 'W' && $sign2 == null && $sign1 == 'Y') || ($sign3 == 'Y' && $sign4 == 'W') ): ?> |
||||
|
<button class="btn btn-primary" @click="check(<?php echo $currentSign; ?>, 'YY')">同意(結案)</button> |
||||
|
<?php endif ; ?> |
||||
|
<?php endif; ?> |
||||
|
<?php } ?> |
||||
|
<?php if($contract['attatch1']!=null): ?> |
||||
|
<a class="btn btn-primary" href="./<?php echo $contract['attatch1']; ?>" download="<?php echo $contract['vol_no'] . "報價單"; ?>">下載報價單</a> |
||||
|
<?php else: ?> |
||||
|
<a href="javascript:;" class="btn btn-primary" @click="alert('營業員未上傳報價單!')">下載報價單</a> |
||||
|
<?php endif; ?> |
||||
|
|
||||
|
<?php if($contract['attatch2']!=null): ?> |
||||
|
<a class="btn btn-primary" href="./<?php echo $contract['attatch2']; ?>" download="<?php echo $contract['vol_no'] . "合約用印申請表"; ?>">下載合約用印申請表</a> |
||||
|
<?php else: ?> |
||||
|
<a href="javascript:;" style="width:180px" class="btn btn-primary" @click="alert('營業員未上傳合約用印申請表!')">下載合約用印申請表</a> |
||||
|
<?php endif; ?> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<script> |
||||
|
|
||||
|
const apply_key = '<?php echo $contract['apply_key']; ?>'; |
||||
|
const vol_no = '<?php echo $contract['vol_no']; ?>'; |
||||
|
const salesman = '<?php echo $contract['salesman']; ?>'; |
||||
|
const customer = '<?php echo $contract['customer']; ?>'; |
||||
|
const total_price = '<?php echo $contract['total_price']; ?>'; |
||||
|
const total_sale_price = '<?php echo $contract['total_sale_price']; ?>'; |
||||
|
const elevators = [...<?php echo json_encode($elevators) ?>]; |
||||
|
const otherOptions = [...<?php echo json_encode($otherOptions) ?>]; |
||||
|
const payment_kind = '<?php echo $contract['payment_kind']; ?>'; |
||||
|
const case_name = '<?php echo $contract['case_name']; ?>'; |
||||
|
const address = '<?php echo $contract['address']; ?>'; |
||||
|
const service_fee = '<?php echo $contract['service_fee']; ?>'; |
||||
|
const memo = `<?php echo $contract['memo']; ?>`; |
||||
|
const maintain_months = '<?php echo $contract_months; ?>'; |
||||
|
|
||||
|
const penalty = '<?php echo $contract['penalty']; ?>'; |
||||
|
const deposit_rate = '<?php echo $contract['deposit_rate']; ?>'; |
||||
|
const keep_rate = '<?php echo $contract['keep_rate']; ?>'; |
||||
|
const warranty_rate = '<?php echo $contract['warranty_rate']; ?>'; |
||||
|
const contract_begin_date = '<?php echo $contract['contract_begin_date']; ?>'; |
||||
|
const contract_end_date = '<?php echo $contract['contract_end_date']; ?>'; |
||||
|
|
||||
|
const sign1 = '<?php echo ($sign) ? explode(',', $sign['sign1'])[0] : "---" ?>'; |
||||
|
const sign2 = '<?php echo ($sign) ? explode(',', $sign['sign2'])[0] : "---" ?>'; |
||||
|
const sign3 = '<?php echo ($sign) ? explode(',', $sign['sign3'])[0] : "---" ?>'; |
||||
|
const sign4 = '<?php echo ($sign) ? explode(',', $sign['sign4'])[0] : "---" ?>'; |
||||
|
|
||||
|
const currentSignId = '<?php echo $currentSignId; ?>'; |
||||
|
const token = '<?php echo $para = "function_name=pricereview&" . $token_link;; ?>'; |
||||
|
const form_key = '<?php echo $form_key; ?>'; |
||||
|
const user_id = '<?php echo $user_id; ?>'; |
||||
|
|
||||
|
</script> |
@ -0,0 +1,162 @@ |
|||||
|
<?php |
||||
|
function BounsCount($data, $conn, $facilityno) |
||||
|
{ |
||||
|
try { |
||||
|
require_once("../../bonus/elevator_new/elevator_new_deal_bonus.php"); |
||||
|
$dailyNecessities = [ |
||||
|
'MAE100' => 'passenger', //小機房 |
||||
|
'MAM200' => 'passenger', //無機房 |
||||
|
'MAH100' => 'dumbwaiter', //小電梯 |
||||
|
'MAQ100' => 'positive_drive', //強趨梯 |
||||
|
'MAF100' => 'cargo', //貨梯 |
||||
|
'MAP100' => 'flatbase', // 平台踢 |
||||
|
]; |
||||
|
$contractType = [ |
||||
|
'1' => 'strategy_customer', |
||||
|
'2' => 'general_customer' |
||||
|
]; |
||||
|
$signing_date = $data['signing_date']; |
||||
|
$bonus_v1_0_date = '2024-01-02'; |
||||
|
$bonus_v2_0_date = '2024-01-03'; |
||||
|
$contract_type = $data['contract_type']; |
||||
|
$total = $data['price_total']; |
||||
|
$type = $contractType[$contract_type]; //戰略客戶 or 一般客戶 |
||||
|
// $elevator_knockdown_price = $data['price_total']; //受價總額 |
||||
|
$elevators = json_decode($data['elevators_detail_arr'], true); |
||||
|
$contract_no = $data['contractno']; |
||||
|
$salesman = $data['salesman']; |
||||
|
$manager = $data['manager']; |
||||
|
$contract_kind = 1; |
||||
|
$pay_arr = !empty($data['pay_arr']) ? json_decode($data['pay_arr'], true) : []; //電梯 |
||||
|
$create_id = $data['user_id']; |
||||
|
$create_at = date("Y-m-d H:i:s"); |
||||
|
$status = 1; |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
$result_bonus = []; |
||||
|
$result_bonus_arr = []; |
||||
|
if ($signing_date <= $bonus_v1_0_date) { |
||||
|
$ver = '1.0'; |
||||
|
foreach ($elevators as $key => $elevator) { |
||||
|
$other_price = !empty($elevator['option_other_price']) ? $elevator['option_other_price'] : 0; |
||||
|
$elevator_knockdown_price = $elevator['elevator_price']; // 單台電梯售價 |
||||
|
$elevator_list_price = $other_price + $elevator['option_price'] + $elevator['elevator_price']; //牌價 |
||||
|
$result_bonus = elevator_new_deal_bonus_v1_0($ver, $type, $pay_arr['elevotor_pay_detail'], $salesman, $manager); |
||||
|
$facility_no = $facilityno[$key]; |
||||
|
$bonus_json = [ |
||||
|
'contract_type' => $type, |
||||
|
'total' => $elevator_list_price, |
||||
|
'fee_per_st' => $elevator_knockdown_price |
||||
|
]; |
||||
|
echo "<pre>"; |
||||
|
print_r($result_bonus); |
||||
|
echo "</pre>"; |
||||
|
if (!empty($result_bonus)) { |
||||
|
if ($result_bonus['result_status'] != "error") { |
||||
|
foreach ($result_bonus['bonus_array'] as $i => $result) { |
||||
|
// $bonus_type = explode('-', $result['bonus_type']); |
||||
|
$pay_man_type = $result['bonus_type']; //發放類別 |
||||
|
// $bonus_kind = $bonus_type[1]; |
||||
|
$amount = round($result['bonus_amount']); //獎金水庫 |
||||
|
$bonus_receiver = $result['bonus_receiver']; //發放人員 |
||||
|
$bonus_json['payment_schedul_due'] = $result['payment_schedul_due']; |
||||
|
$bonus_json['payment_schedul_regulation'] = $result['payment_schedul_regulation']; |
||||
|
$bonus_json['bonus_kind'] = $result['payment_schedul_due']; |
||||
|
$a = json_encode($bonus_json, JSON_UNESCAPED_UNICODE); |
||||
|
$sql = "INSERT INTO bonus |
||||
|
(bonus_type,bonus_verson,contract_no,contract_type,facility_no,amount,receiver,status,bonus_json,create_id,create_at) VALUES |
||||
|
($pay_man_type,'$ver','$contract_no',$contract_kind,'$facility_no',$amount,'$bonus_receiver',$status,'$a','$create_id','$create_at') |
||||
|
"; |
||||
|
$stmt = $conn->prepare($sql); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
} else { |
||||
|
$status = 0; |
||||
|
} |
||||
|
} else { |
||||
|
$status = 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if ($status == 0) { |
||||
|
$response = [ |
||||
|
"status" => "2", |
||||
|
"data" => "create_bonus_error" |
||||
|
]; |
||||
|
} else { |
||||
|
$response = [ |
||||
|
"status" => "1", |
||||
|
"data" => "Success" |
||||
|
]; |
||||
|
} |
||||
|
return $response; |
||||
|
} else if ($signing_date >= $bonus_v2_0_date) { |
||||
|
$ver = '2.0'; |
||||
|
foreach ($elevators as $key => $elevator) { |
||||
|
$option_other_price = !empty($elevator['option_other_price']) ? intval($elevator['option_other_price']) : 0; |
||||
|
$elevator_type = $dailyNecessities[$elevator['spec']]; |
||||
|
$elevator_list_price = $option_other_price + $elevator['option_price'] + $elevator['elevator_price']; |
||||
|
$elevator_knockdown_price = $elevator['elevator_price']; |
||||
|
$commission_fee = $elevator['commission_fee']; |
||||
|
$result_bonus = elevator_new_deal_bonus_v2_0( |
||||
|
$ver, |
||||
|
$type, |
||||
|
$elevator_type, |
||||
|
$elevator_list_price, |
||||
|
$elevator_knockdown_price, |
||||
|
$pay_arr['elevotor_pay_detail'], |
||||
|
$salesman, |
||||
|
$manager |
||||
|
); |
||||
|
$facility_no = $facilityno[$key]; |
||||
|
$bonus_json = [ |
||||
|
'contract_type' => $type, |
||||
|
'total' => $elevator_list_price, |
||||
|
'fee_per_st' => $elevator_knockdown_price |
||||
|
]; |
||||
|
if (!empty($result_bonus)) { |
||||
|
if ($result_bonus['result_status'] != "error") { |
||||
|
foreach ($result_bonus['bonus_array'] as $i => $result) { |
||||
|
// $bonus_type = explode('-', $result['bonus_type']); |
||||
|
$pay_man_type = $result['bonus_type']; //發放類別 |
||||
|
$amount = $result['bonus_amount']; //獎金水庫 |
||||
|
$bonus_receiver = $result['bonus_receiver']; //發放人員 |
||||
|
$bonus_json['payment_schedul_due'] = $result['payment_schedul_due']; |
||||
|
$bonus_json['payment_schedul_regulation'] = $result['payment_schedul_regulation']; |
||||
|
$bonus_json['bonus_kind'] = $result['payment_schedul_due']; |
||||
|
$a = json_encode($bonus_json, JSON_UNESCAPED_UNICODE); |
||||
|
$sql = "INSERT INTO bonus |
||||
|
(bonus_type,bonus_verson,contract_no,contract_type,facility_no,amount,receiver,status,bonus_json,create_id,create_at) VALUES |
||||
|
($pay_man_type,'$ver','$contract_no',$contract_kind,'$facility_no',$amount,'$bonus_receiver',$status,'$a','$create_id','$create_at') |
||||
|
"; |
||||
|
$stmt = $conn->prepare($sql); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
} else { |
||||
|
$status = 0; |
||||
|
} |
||||
|
} else { |
||||
|
$status = 0; |
||||
|
} |
||||
|
} |
||||
|
if ($status == 0) { |
||||
|
$response = [ |
||||
|
"status" => "2", |
||||
|
"data" => "create_bonus_error" |
||||
|
]; |
||||
|
} else { |
||||
|
$response = [ |
||||
|
"status" => "1", |
||||
|
"data" => "Success" |
||||
|
]; |
||||
|
} |
||||
|
} |
||||
|
return $response; |
||||
|
} catch (PDOException $e) { |
||||
|
header("HTTP/1.1 500 Internal Server Error"); |
||||
|
die('Error!:' . $e->getMessage()); |
||||
|
} |
||||
|
} |
@ -0,0 +1,374 @@ |
|||||
|
<?php |
||||
|
function T8Insert($data, $facilityno, $connT8) |
||||
|
{ |
||||
|
// try { |
||||
|
// 引入銷售訂單 API |
||||
|
require_once("./T8API.php"); |
||||
|
|
||||
|
$contractno = $data['contractno']; |
||||
|
$partyA = $data['customer']; |
||||
|
$phone = $data['lm_tel']; |
||||
|
$vat = $data['vat']; |
||||
|
$partyAaddress = $data['address']; |
||||
|
$user_id = $data['user_id']; |
||||
|
$salesman = $data['salesman']; |
||||
|
$createAt = date("Y-m-dH-i-s"); |
||||
|
|
||||
|
|
||||
|
$elevators = !empty($data['elevators_detail_arr']) ? json_decode($data['elevators_detail_arr'], true) : []; //電梯 |
||||
|
$pay_arr = !empty($data['pay_arr']) ? json_decode($data['pay_arr'], true) : []; //電梯 |
||||
|
|
||||
|
$createTime = str_replace('-', '', $createAt); |
||||
|
$signing_date = intval(str_replace("-", '', $data['signing_date'])); //簽訂日期 |
||||
|
// echo |
||||
|
// $pay_kind = [ |
||||
|
// '1' => '簽約', |
||||
|
// '2' => '二次款', |
||||
|
// '3' => '貨抵工地', |
||||
|
// '4' => '材料其他', |
||||
|
// '5' => '試車完工', //安裝完畢 |
||||
|
// '6' => '交車' //交車 |
||||
|
// ]; |
||||
|
|
||||
|
$pay_kind = [ |
||||
|
'1' => '簽約', |
||||
|
'2' => '二次款', |
||||
|
'3' => '貨抵工地', |
||||
|
'4' => '材料其他', |
||||
|
'5' => '試車完工', //安裝完畢 |
||||
|
'6' => '交車' //交車 |
||||
|
]; |
||||
|
|
||||
|
$sql = "SELECT * FROM comCustomer |
||||
|
WHERE BizPartnerId = :BizPartnerId |
||||
|
"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->bindParam(':BizPartnerId', $contractno); |
||||
|
$stmt->execute(); |
||||
|
$result = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
|
||||
|
// 新增客戶 table |
||||
|
if (empty($result)) { |
||||
|
// 若 客戶資料為空,新增一筆到 comCustomer |
||||
|
// 新增客戶資料 |
||||
|
|
||||
|
$sql = "INSERT INTO comBusinessPartner |
||||
|
(BizPartnerId,BizPartnerName,BusinessAttr,CountryId,WorkTelNo,BizToDate,TaxNo,EnterpriseName,ContactAddress,CreatorId,CreateTime,BizPartnerTypeId) |
||||
|
VALUES(:BizPartnerId,:BizPartnerName,1,'TW',:WorkTelNo,99999999,:TaxNo,:EnterpriseName,:ContactAddress,:CreatorId,:CreateTime,'10')"; |
||||
|
// $sql = "INSERT INTO comBusinessPartner |
||||
|
// (BizPartnerId,BizPartnerName,BusinessAttr,CountryId,WorkTelNo,BizToDate,TaxNo,EnterpriseName,ContactAddress,CreatorId,CreateTime,BizPartnerTypeId) |
||||
|
// VALUES('$contractno','$partyA',1,'TW','$phone',99999999,'$vat', '$partyA','$partyAaddress','$user_id',$createTime,'10')"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->bindParam(':BizPartnerId', $contractno); |
||||
|
$stmt->bindParam(':BizPartnerName', $partyA); //客戶名稱 |
||||
|
$stmt->bindParam(':WorkTelNo', $phone); |
||||
|
$stmt->bindParam(':TaxNo', $vat); |
||||
|
$stmt->bindParam(':EnterpriseName', $partyA); //企業名稱 |
||||
|
$stmt->bindParam(':ContactAddress', $partyAaddress); |
||||
|
$stmt->bindParam(':CreatorId', $user_id); |
||||
|
$stmt->bindParam(':CreateTime', $createTime); |
||||
|
$stmt->execute(); |
||||
|
|
||||
|
|
||||
|
$sql = "INSERT INTO comCustomer |
||||
|
(OrgId,BizPartnerTypeId,ConditionId,CurrId,BizPartnerId,PersonId,CreatorId,IsInUsed,InvoiceAddress,CreateTime,InvoiceId)VALUES |
||||
|
('1000','10','0008','TWD',:BizPartnerId,:PersonId,:CreatorId,1,:InvoiceAddress,:CreateTime,'35')"; |
||||
|
// $sql = "INSERT INTO comCustomer |
||||
|
// (OrgId,BizPartnerTypeId,CurrId,BizPartnerId,PersonId,CreatorId,IsInUsed,InvoiceAddress,CreateTime,InvoiceId) |
||||
|
// VALUES('1000','10','TWD','$contractno','$salesman','$user_id',1,'$partyAaddress','$createTime','35')"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
|
||||
|
$stmt->bindParam(':BizPartnerId', $contractno); |
||||
|
$stmt->bindParam(':PersonId', $salesman); |
||||
|
$stmt->bindParam(':CreatorId', $user_id); |
||||
|
$stmt->bindParam(':InvoiceAddress', $partyAaddress); |
||||
|
$stmt->bindParam(':CreateTime', $createTime); |
||||
|
$stmt->execute(); |
||||
|
exit(); |
||||
|
} else { |
||||
|
// 若客戶資料不為空,更新該客戶資訊。 |
||||
|
$sql = "UPDATE comCustomer SET |
||||
|
PersonId=:PersonId, |
||||
|
ConditionId='0008', |
||||
|
CurrId='TWD', |
||||
|
InvoiceAddress=:InvoiceAddress, |
||||
|
LastOperatorId=:LastOperatorId, |
||||
|
LastOperateTime=:LastOperateTime |
||||
|
WHERE BizPartnerId=:BizPartnerId |
||||
|
"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->bindParam(':PersonId', $salesman); |
||||
|
$stmt->bindParam(':InvoiceAddress', $partyAaddress); |
||||
|
$stmt->bindParam(':LastOperatorId', $user_id); |
||||
|
$stmt->bindParam(':LastOperateTime', $createTime); |
||||
|
$stmt->bindParam(':BizPartnerId', $contractno); |
||||
|
$stmt->execute(); |
||||
|
|
||||
|
|
||||
|
$sql = "UPDATE comBusinessPartner SET |
||||
|
BizPartnerName=:BizPartnerName, |
||||
|
WorkTelNo=:WorkTelNo, |
||||
|
TaxNo=:TaxNo, |
||||
|
EnterpriseName=:EnterpriseName, |
||||
|
ContactAddress=:ContactAddress, |
||||
|
LastOperatorId=:LastOperatorId, |
||||
|
LastOperateTime=:LastOperateTime |
||||
|
WHERE BizPartnerId = :BizPartnerId |
||||
|
"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->bindParam(':BizPartnerName', $partyA); |
||||
|
$stmt->bindParam(':WorkTelNo', $phone); |
||||
|
$stmt->bindParam(':TaxNo', $vat); |
||||
|
$stmt->bindParam(':EnterpriseName', $partyA); |
||||
|
$stmt->bindParam(':ContactAddress', $partyAaddress); |
||||
|
// $stmt->bindParam(':EMail', $email); |
||||
|
$stmt->bindParam(':LastOperatorId', $user_id); |
||||
|
$stmt->bindParam(':LastOperateTime', $createTime); |
||||
|
$stmt->bindParam(':BizPartnerId', $contractno); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
|
||||
|
$sql = "SELECT * FROM comProject WHERE ProjectId = :ProjectId"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->bindParam(':ProjectId', $contractno); |
||||
|
$stmt->execute(); |
||||
|
$resultProject = $stmt->fetchAll(PDO::FETCH_ASSOC); |
||||
|
if (empty($resultProject)) { |
||||
|
//新增於 comProject。合約 table |
||||
|
$sql = "INSERT INTO comProject(ProjectId,ProjectName,TypeId,CreateTime,CreatorId,IsInUsed) |
||||
|
VALUES(:ProjectId,:ProjectName,'C0',:CreateTime,:CreatorId,1)"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->bindParam(':ProjectId', $contractno); |
||||
|
$stmt->bindParam(':ProjectName', $partyA); |
||||
|
$stmt->bindParam(':CreateTime', $createTime); |
||||
|
$stmt->bindParam(':CreatorId', $user_id); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
$sql = "SELECT * FROM salSalesOrder WHERE BillNo = :BillNo"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->bindParam(':BillNo', $contractno); |
||||
|
$contractT8 = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
if (empty($contractT8)) { |
||||
|
|
||||
|
foreach ($elevators as $index => $elevator) { |
||||
|
|
||||
|
$count = 1; |
||||
|
// 產品集成維護 |
||||
|
$facility_no = $facilityno[$index]; |
||||
|
$MaterialName = "$partyA($facility_no)"; |
||||
|
$contract_arrival_a = $elevator['contract_arrival_date']; |
||||
|
|
||||
|
$sql = "SELECT * FROM comMaterial WHERE MaterialId = '$facility_no'"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->execute(); |
||||
|
$MaterialisIt = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
if (empty($MaterialisIt)) { |
||||
|
$sql = "INSERT INTO comMaterial |
||||
|
(FOrgid,MaterialId,MaterialTypeId,MaterialCategoryId,CreatorId,CreateTime,IsInUsed) |
||||
|
VALUES ('1000',:MaterialId,'10','A',:CreatorId,:CreateTime,1)"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->bindParam(':MaterialId', $facility_no); |
||||
|
$stmt->bindParam(':CreatorId', $user_id); |
||||
|
$stmt->bindParam(':CreateTime', $createTime); |
||||
|
$stmt->execute(); |
||||
|
$sql = "INSERT INTO comMaterialGroup |
||||
|
(MaterialTypeId,MaterialId,MaterialName,MaterialCategoryId,IsInUsed,UnitId,CreatorId,CreateTime) |
||||
|
VALUES ('10',:MaterialId,:MaterialName,'A',1,'SET',:CreatorId,:CreateTime)"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->bindParam(':MaterialId', $facility_no); |
||||
|
$stmt->bindParam(':MaterialName', $MaterialName); |
||||
|
$stmt->bindParam(':CreatorId', $user_id); |
||||
|
$stmt->bindParam(':CreateTime', $createTime); |
||||
|
$stmt->execute(); |
||||
|
|
||||
|
$sql = "INSERT INTO comMaterialPurchases |
||||
|
(Orgid,MaterialTypeId,MaterialId,CurrId,SUnitId,TaxId,CreatorId,CreateTime) |
||||
|
VALUES ('1000','10',:MaterialId,'TWD','SET','ST005',:CreatorId,:CreateTime)"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->bindParam(':MaterialId', $facility_no); |
||||
|
$stmt->bindParam(':CreatorId', $user_id); |
||||
|
$stmt->bindParam(':CreateTime', $createTime); |
||||
|
$stmt->execute(); |
||||
|
|
||||
|
$sql = "INSERT INTO plsMaterialPlanData |
||||
|
(PlanRangeId,MaterialId,FOrgId,MaterialTypeId,CreatorId,CreateTime,DefaultDemandOrg) VALUES |
||||
|
(1000,:MaterialId,1000,10,:CreatorId,:CreateTime,1000) |
||||
|
"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->bindParam(':MaterialId', $facility_no); |
||||
|
$stmt->bindParam(':CreatorId', $user_id); |
||||
|
$stmt->bindParam(':CreateTime', $createTime); |
||||
|
$stmt->execute(); |
||||
|
|
||||
|
$sql = "INSERT INTO comMaterialSales |
||||
|
(OrgId,MAterialTypeId,MaterialId,CurrId,SUnitId,SupplyOrgId,CreatorId,CreateTime,IsInUsed) VALUES |
||||
|
(1000,10,:MaterialId,'TWD','SET',1000,:CreatorId,:CreateTime,1) |
||||
|
"; |
||||
|
$stmt = $connT8->prepare($sql); |
||||
|
$stmt->bindParam(':MaterialId', $facility_no); |
||||
|
$stmt->bindParam(':CreatorId', $user_id); |
||||
|
$stmt->bindParam(':CreateTime', $createTime); |
||||
|
$stmt->execute(); |
||||
|
} |
||||
|
// 階段收款資訊 |
||||
|
$salOrderStagePay_row = []; |
||||
|
$equipment_total = 0; |
||||
|
$install_total = 0; |
||||
|
$equipment_total = $pay_arr['equipment_total']; |
||||
|
$install_total = $pay_arr['install_total']; |
||||
|
$count_a = 0; |
||||
|
$count_month = 1; |
||||
|
foreach ($pay_arr['elevotor_pay_detail'] as $key => $detail) { |
||||
|
if ($detail['pay_kind'] == 3) { |
||||
|
$PlanPayDate = $contract_arrival_a; |
||||
|
} else if ($detail['pay_kind'] > 3) { |
||||
|
$PlanPayDate = date("Y-m-d", strtotime($contract_arrival_a . '+' . $count_month . ' month')); |
||||
|
$count_month++; |
||||
|
} else { |
||||
|
$PlanPayDate = $signing_date; |
||||
|
$count_a++; |
||||
|
if ($count_a == 1) { |
||||
|
$PlanPayDate = date("Y-m-d", strtotime($signing_date . '+' . $count_a . ' month')); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
$contract_arrival_date = intval(str_replace("-", '', $PlanPayDate)); //貨到工地日 |
||||
|
|
||||
|
$PayStage = $pay_kind[$detail['pay_kind']]; |
||||
|
$PlanPercentage = intval($detail['pay_scale']) / 100; |
||||
|
$rows = [ |
||||
|
"PayStage" => "$PayStage", //收款階段 |
||||
|
"PlanPercentage" => $PlanPercentage, //計劃收款比例(%) |
||||
|
"PlanPayAmt" => $detail['pay_amount'], //計劃收款金額 |
||||
|
"PlanPayDate" => $contract_arrival_date, //計劃收款日期 1.第一筆都是簽約日 |
||||
|
"BillNo" => "$contractno", |
||||
|
"RowCode" => $key + 1, |
||||
|
"RowNo" => $key + 1, |
||||
|
"UnWriteOffOAmount" => $detail['pay_amount'] //未核銷金額 |
||||
|
]; |
||||
|
$salOrderStagePay_row[] = $rows; |
||||
|
} |
||||
|
|
||||
|
// 設備 |
||||
|
$row1 = [ |
||||
|
"TaxId" => "ST005", |
||||
|
"RequirementDate" => $signing_date, //出貨日期 |
||||
|
"ConsignmentDate" => $signing_date, //發貨日期 |
||||
|
"BillNo" => "$contractno", //合約號 |
||||
|
"RowCode" => $count, //全部筆數排列 |
||||
|
"ItemType" => 1, |
||||
|
"MaterialId" => "A40001", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) |
||||
|
"SUnitId" => "SET", |
||||
|
"SQuantity" => 1, //交易數量 |
||||
|
"SPrice" => $equipment_total, //交易價格 |
||||
|
"CU_MaterialId" => $facility_no |
||||
|
]; |
||||
|
$count++; |
||||
|
// 安裝 |
||||
|
$row2 = [ |
||||
|
"TaxId" => "ST005", |
||||
|
"RequirementDate" => $signing_date, //出貨日期 |
||||
|
"ConsignmentDate" => $signing_date, //發貨日期 |
||||
|
"BillNo" => "$contractno", //合約號 |
||||
|
"RowCode" => $count, //全部筆數排列 |
||||
|
"ItemType" => 1, |
||||
|
"MaterialId" => "A40008", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) |
||||
|
"SUnitId" => "SET", |
||||
|
"SQuantity" => 1, //交易數量 |
||||
|
"SPrice" => $install_total, //交易價格 |
||||
|
"CU_MaterialId" => $facility_no |
||||
|
]; |
||||
|
$count++; |
||||
|
// 產品(作番) |
||||
|
$row3 = [ |
||||
|
"TaxId" => "ST005", |
||||
|
"RequirementDate" => $signing_date, //出貨日期 |
||||
|
"ConsignmentDate" => $signing_date, //發貨日期 |
||||
|
"BillNo" => "$contractno", //合約號 |
||||
|
"RowCode" => $count, //全部筆數排列 |
||||
|
"ItemType" => 0, |
||||
|
"MaterialId" => "$facility_no", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) |
||||
|
"SUnitId" => "SET", |
||||
|
"SQuantity" => 1, //交易數量 |
||||
|
"SPrice" => 0, //交易價格 |
||||
|
"CU_MaterialId" => $facility_no // 歸屬作番號 |
||||
|
]; |
||||
|
$count++; |
||||
|
$SubOrder_row[] = $row1; |
||||
|
$SubOrder_row[] = $row2; |
||||
|
$SubOrder_row[] = $row3; |
||||
|
$count++; |
||||
|
} |
||||
|
$MainSalesOrder_row = [ |
||||
|
"BillNo" => "$contractno", //合約單號 |
||||
|
"BillDate" => $signing_date, //簽約日期 |
||||
|
"TypeId" => "SO", // |
||||
|
"FOrgId" => "1000", |
||||
|
"OrgId" => "1000", |
||||
|
"ModeId" => "M", // T汰改 M新梯 |
||||
|
"BizPartnerId" => "$contractno", //客戶代碼 |
||||
|
"CurrId" => "TWD", |
||||
|
"CurrOAmount" => 1, |
||||
|
"CurrLAmount" => 1, |
||||
|
"PersonId" => "$salesman", //業務人員 |
||||
|
"DueToId" => "$contractno", //債務方 |
||||
|
"TradeConditionId" => "", |
||||
|
"TaxId" => "ST005", |
||||
|
"CreditorCompId" => "1001", |
||||
|
"CreditorOrgId" => "1000", |
||||
|
"CreatorId" => "$user_id" |
||||
|
// "CompId" => "1001", |
||||
|
// "CreditorCurrOAmount" => 1, |
||||
|
// "CreditorCurrLAmount" => 1 |
||||
|
]; |
||||
|
$MainSalesOrder = [ |
||||
|
"name" => "MainSalesOrder", |
||||
|
'rows' => [$MainSalesOrder_row] |
||||
|
]; |
||||
|
$SubOrder = [ |
||||
|
"name" => "SubOrder", |
||||
|
"rows" => $SubOrder_row |
||||
|
]; |
||||
|
$salOrderStagePay = [ |
||||
|
"name" => "salOrderStagePay", |
||||
|
"rows" => $salOrderStagePay_row |
||||
|
]; |
||||
|
|
||||
|
$API_body = []; |
||||
|
$API_body[] = $MainSalesOrder; |
||||
|
$API_body[] = $SubOrder; |
||||
|
$API_body[] = $salOrderStagePay; |
||||
|
if ($user_id == 'M0225') { |
||||
|
echo "<pre>"; |
||||
|
print_r(json_encode($API_body, JSON_UNESCAPED_UNICODE)); |
||||
|
echo "</pre>"; |
||||
|
} |
||||
|
|
||||
|
// $api_url = 'http://10.10.145.2:880/twWebAPI/V1/SALSALESORDER/PostERPData'; //正式區 |
||||
|
$api_url = "http://60.244.87.101:880/twWebAPI/V1/SALSALESORDER/PostERPData"; //測試區 |
||||
|
|
||||
|
$result = T8salIncomeApply($API_body, $api_url); |
||||
|
if ($user_id == 'M0225') { |
||||
|
echo "<pre>"; |
||||
|
print_r($result); |
||||
|
echo "</pre>"; |
||||
|
} |
||||
|
if (!empty($result) && ($result['Status'] == 'Fails' || $result['Status'] == 'Error')) { |
||||
|
$Error_msg = $result['ErrorMsg']; |
||||
|
// echo "<script>alert('$Error_msg')</script>"; |
||||
|
// exit(); |
||||
|
// echo $result['ErrorMsg']; |
||||
|
// echo "</script>"; |
||||
|
echo $Error_msg; |
||||
|
} |
||||
|
} else { |
||||
|
echo '資料已新增過,請洽資訊人員'; |
||||
|
// exit(); |
||||
|
} |
||||
|
// $connT8->commit(); |
||||
|
// } catch (PDOException $e) { |
||||
|
// $connT8->rollback(); |
||||
|
// header("HTTP/1.1 500 Internal Server Error"); |
||||
|
// die('Error!:' . $e->getMessage()); |
||||
|
// } |
||||
|
} |
@ -0,0 +1,4 @@ |
|||||
|
<?php |
||||
|
echo "<pre>"; |
||||
|
print_r($_POST); |
||||
|
echo "</pre>"; |
@ -1,43 +1,115 @@ |
|||||
[ |
[ |
||||
{ |
{ |
||||
"apply_key": "11111111", |
"name": "MainSalesOrder", |
||||
"register_code": "B32510261185", |
"rows": [ |
||||
"elevator_brand": "1", |
{ |
||||
"elevator_kind": "E", |
"BillNo": "M24020076", |
||||
"spec": "MAH100", |
"BillDate": 20240306, |
||||
"weight": "450", |
"TypeId": "SO", |
||||
"speed": "45.00", |
"FOrgId": "1000", |
||||
"stop": "3", |
"OrgId": "1000", |
||||
"floors": "3", |
"ModeId": "M", |
||||
"persons": "6", |
"BizPartnerId": "M24020076", |
||||
"elevator_num": "0", |
"CurrId": "TWD", |
||||
"useful_years": "106", |
"CurrOAmount": 1, |
||||
"last_check_date": "1", |
"CurrLAmount": 1, |
||||
"speed_governors_check_expense": "0", |
"PersonId": "M0073", |
||||
"maintain_times": "1", |
"DueToId": "M24020076", |
||||
"is_m1_bundle": "N", |
"TradeConditionId": "", |
||||
"maintainance": "B", |
"TaxId": "ST005", |
||||
"maintain_months": "12", |
"CreditorCompId": "1001", |
||||
"maintain_period": "1", |
"CreditorOrgId": "1000", |
||||
"stand_price": "1250.00", |
"CreatorId": "M0225" |
||||
"contract_price": "1250.00", |
} |
||||
"sold_price": 1250, |
] |
||||
"commission_expense": null, |
}, |
||||
"management_expense": null, |
{ |
||||
"annual_survey_expense": "0.00", |
"name": "SubOrder", |
||||
"service_expense": 0, |
"rows": [ |
||||
"cmstatus": "Y", |
{ |
||||
"updated_at": null, |
"TaxId": "ST005", |
||||
"creater": null, |
"RequirementDate": 20240306, |
||||
"created_at": "2024-02-26 15:24:23", |
"ConsignmentDate": 20240306, |
||||
"discount": 100, |
"BillNo": "M24020076", |
||||
"latitude": "112", |
"RowCode": 1, |
||||
"longitude": "11", |
"ItemType": 1, |
||||
"takecertificatedate": "112", |
"MaterialId": "A40001", |
||||
"opendoor": "2PCO", |
"SUnitId": "SET", |
||||
"useful_date": "113-01-01", |
"SQuantity": 1, |
||||
"bonus_verson": "2.0", |
"SPrice": 910000, |
||||
"manager": "M0029", |
"CU_MaterialId": "4MW00001" |
||||
"regular_contract_manger_id": "M0054" |
}, |
||||
|
{ |
||||
|
"TaxId": "ST005", |
||||
|
"RequirementDate": 20240306, |
||||
|
"ConsignmentDate": 20240306, |
||||
|
"BillNo": "M24020076", |
||||
|
"RowCode": 2, |
||||
|
"ItemType": 1, |
||||
|
"MaterialId": "A40008", |
||||
|
"SUnitId": "SET", |
||||
|
"SQuantity": 1, |
||||
|
"SPrice": 390000, |
||||
|
"CU_MaterialId": "4MW00001" |
||||
|
}, |
||||
|
{ |
||||
|
"TaxId": "ST005", |
||||
|
"RequirementDate": 20240306, |
||||
|
"ConsignmentDate": 20240306, |
||||
|
"BillNo": "M24020076", |
||||
|
"RowCode": 3, |
||||
|
"ItemType": 0, |
||||
|
"MaterialId": "4MW00001", |
||||
|
"SUnitId": "SET", |
||||
|
"SQuantity": 1, |
||||
|
"SPrice": 0, |
||||
|
"CU_MaterialId": "4MW00001" |
||||
|
} |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "salOrderStagePay", |
||||
|
"rows": [ |
||||
|
{ |
||||
|
"PayStage": "簽約", |
||||
|
"PlanPercentage": 0.2, |
||||
|
"PlanPayAmt": 260000, |
||||
|
"PlanPayDate": 20240406, |
||||
|
"BillNo": "M24020076", |
||||
|
"RowCode": 1, |
||||
|
"RowNo": 1, |
||||
|
"UnWriteOffOAmount": 260000 |
||||
|
}, |
||||
|
{ |
||||
|
"PayStage": "貨抵工地", |
||||
|
"PlanPercentage": 0.5, |
||||
|
"PlanPayAmt": 650000, |
||||
|
"PlanPayDate": 20240306, |
||||
|
"BillNo": "M24020076", |
||||
|
"RowCode": 2, |
||||
|
"RowNo": 2, |
||||
|
"UnWriteOffOAmount": 650000 |
||||
|
}, |
||||
|
{ |
||||
|
"PayStage": "試車完工", |
||||
|
"PlanPercentage": 0.2, |
||||
|
"PlanPayAmt": 260000, |
||||
|
"PlanPayDate": 20240306, |
||||
|
"BillNo": "M24020076", |
||||
|
"RowCode": 3, |
||||
|
"RowNo": 3, |
||||
|
"UnWriteOffOAmount": 260000 |
||||
|
}, |
||||
|
{ |
||||
|
"PayStage": "交車", |
||||
|
"PlanPercentage": 0.1, |
||||
|
"PlanPayAmt": 130000, |
||||
|
"PlanPayDate": 20240306, |
||||
|
"BillNo": "M24020076", |
||||
|
"RowCode": 4, |
||||
|
"RowNo": 4, |
||||
|
"UnWriteOffOAmount": 130000 |
||||
|
} |
||||
|
] |
||||
} |
} |
||||
] |
] |
@ -0,0 +1,471 @@ |
|||||
|
<?php |
||||
|
include('../header.php'); |
||||
|
require_once('./conn.php'); |
||||
|
$accounttype = "M"; |
||||
|
$sql_str = "SELECT accountid, name FROM account WHERE accounttype = :accounttype ORDER BY accountid"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(":accounttype", $accounttype); |
||||
|
$stmt->execute(); |
||||
|
$persons = $stmt->fetchAll(PDO::FETCH_ASSOC); |
||||
|
$persons = array_map(function ($person) { |
||||
|
return [ |
||||
|
'view' => $person['name'] . '-' . $person['accountid'], |
||||
|
'value' => $person['accountid'], |
||||
|
'name' => $person['name'] |
||||
|
]; |
||||
|
}, $persons); |
||||
|
?> |
||||
|
|
||||
|
<link rel="stylesheet" href="./styles/style.css"> |
||||
|
<link rel="stylesheet" href="./semantic/dist/semantic.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA==" crossorigin="anonymous" referrerpolicy="no-referrer" /> |
||||
|
<script src="./js/alpine.js"></script> |
||||
|
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" /> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script> |
||||
|
<script defer src="./js/alpinejs/cdn.min.js"></script> |
||||
|
<script src="./js/axios/axios.min.js"></script> |
||||
|
<script src="./js/jquery/jquery-3.1.1.min.js"></script> |
||||
|
<!-- <script src="./semantic/dist/semantic.min.js"></script> --> |
||||
|
|
||||
|
<div class="renovate_input" x-data="renovateInput"> |
||||
|
<div class="form" method="post" id="form" enctype="multipart/form-data"> |
||||
|
<input type="hidden" name="form_name" value="main_form"> |
||||
|
<div> |
||||
|
<table class="table table-borderd query-table table-striped table-bordered display compact" style="width:99%; margin-left:.5%"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<td colspan="8"> |
||||
|
<h3 style="text-align:center">汰改合約入力</h3> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<template x-if="step==1"> |
||||
|
<tbody style="font-weight:bolder; margin:botton 20px"> |
||||
|
<tr> |
||||
|
<td style="vertical-align:middle;">合約號</td> |
||||
|
<td colspan="6"> |
||||
|
<input type="text" class="form-control" @keyup="nextStepKeyupFn($event)" name="contract_no" x-model="data.contract_no"> |
||||
|
</td> |
||||
|
<td colspan="1" style="vertical-align:middle"></td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</template> |
||||
|
|
||||
|
<template x-if="step==2"> |
||||
|
<tbody style="font-weight:bolder; margin:botton 20px" x-show="step==2"> |
||||
|
<tr> |
||||
|
<td colspan="7" style="vertical-align:middle;border-right:0px;"> |
||||
|
<h4>業務確認項</h4> |
||||
|
</td> |
||||
|
<td class="text-right" style="border-left:0px"> |
||||
|
<button type="button" id="btn_back" class="btn btn-default" onclick="location.reload()">返回</button> |
||||
|
<button type="button" id="btn_close" class="btn btn-default" onclick="window.close()">關閉</button> |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td style="vertical-align: middle">客戶名稱</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" name="" x-model="data.customer"> |
||||
|
<p class="alerttext" x-show="data.customer==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> |
||||
|
</td> |
||||
|
<td style="vertical-align:middle">電梯數量</td> |
||||
|
<td> |
||||
|
<input type="text" class="form-control disabled_select" name="num" x-model="data.nums" disabled> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">統一編號/身分證</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" name="" x-model="data.vat"> |
||||
|
<p class="alerttext" x-show="data.vat==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">營業員</td> |
||||
|
<td style="vertical-align: middle"> |
||||
|
<div class="ui form"> |
||||
|
<select class="salesman" id="salesman" x-model="data.salesman"> |
||||
|
<option value="">請選擇營業員</option> |
||||
|
<?php foreach ($persons as $person) : ?> |
||||
|
<option value="<?php echo $person['value']; ?>"><?php echo $person['view']; ?></option> |
||||
|
<?php endforeach ?> |
||||
|
</select> |
||||
|
</div> |
||||
|
<p class="alerttext" x-show="data.salesman==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td style="vertical-align: middle">負責人</td> |
||||
|
<td> |
||||
|
<input type="text" class="form-control disabled_select" name="" x-model="data.main_linkman"> |
||||
|
<p class="alerttext" x-show="data.main_linkman==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">聯繫人</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" name="" x-model="data.linkman"> |
||||
|
<p class="alerttext" x-show="data.linkman==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">聯繫人電話</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" name="" x-model="data.lm_tel"> |
||||
|
<p class="alerttext" x-show="data.lm_tel==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">案件名稱</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" name="" x-model="data.case_name"> |
||||
|
<p class="alerttext" x-show="data.case_name==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td style="vertical-align: middle">合約簽訂日期</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="date" name="" x-model="data.signing_date"> |
||||
|
<p class="alerttext" x-show="data.signing_date==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">客戶類型</td> |
||||
|
<td> |
||||
|
<select name="contract_type" id="contract_type" x-model="data.contract_type"> |
||||
|
<option value="">請選擇</option> |
||||
|
<option value="1">戰略客戶</option> |
||||
|
<option value="2">一般客戶</option> |
||||
|
</select> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">附件上傳</td> |
||||
|
<td colspan="3"> |
||||
|
<input type="file" name="file[]" multiple draggable="true" @change="uploadFiles($event)" /> |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td style="vertical-align: middle">區域</td> |
||||
|
<td> |
||||
|
<select id="area_no" name="area_no" x-model="data.area_no"> |
||||
|
<option value="">請選擇</option> |
||||
|
<option value="N">北區</option> |
||||
|
<option value="Y">宜蘭</option> |
||||
|
<option value="T">桃園</option> |
||||
|
<option value="C">中區</option> |
||||
|
<option value="K">南區</option> |
||||
|
</select> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</template> |
||||
|
<!-- 客戶款別分別如何分期 --> |
||||
|
|
||||
|
<template x-if="step==4"> |
||||
|
<tbody style="font-weight:bolder; margin:botton 20px" x-show="step==4"> |
||||
|
<div> |
||||
|
<tr> |
||||
|
<td colspan='8' style="vertical-align:middle ">款別分期</td> |
||||
|
|
||||
|
</tr> |
||||
|
<tr> |
||||
|
<!-- <td colspan='1'>付款辦法</td> --> |
||||
|
<td colspan='1'>款別</td> |
||||
|
<td colspan='1'>比例%</td> |
||||
|
<td colspan='1'>金額</td> |
||||
|
<td colspan='1'>繳款方式(月)</td> |
||||
|
<td colspan="4"></td> |
||||
|
|
||||
|
</tr> |
||||
|
|
||||
|
|
||||
|
<tr> |
||||
|
<!-- <td rowspan="3">材料</td> --> |
||||
|
<td>1、訂金</td> |
||||
|
<td> |
||||
|
<input type="text" x-model='data.scale[0]' disabled> |
||||
|
</td> |
||||
|
<td colspan="1"> |
||||
|
<input type="text" x-model="data.amount[0]" disabled> |
||||
|
</td> |
||||
|
<td> |
||||
|
<!-- <select x-model=data.paykind[0] @change="totalFn()"> |
||||
|
<template x-for="pay in data.payarr" :key="pay"> |
||||
|
<option x-text="pay" :disabled="data.amount[0] == 0"></option> |
||||
|
</template> --> |
||||
|
<input type="text" x-model="data.paykind[0]" :disabled="data.amount[0] == 0" @input="totalFn()"> |
||||
|
</select> |
||||
|
</td> |
||||
|
<td colspan="4"></td> |
||||
|
|
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>2、二次款</td> |
||||
|
<td> |
||||
|
<input type="text" x-model='data.scale[1]' disabled> |
||||
|
</td> |
||||
|
<td colspan="1"> |
||||
|
<input type="text" x-model="data.amount[1]" disabled> |
||||
|
</td> |
||||
|
<td> |
||||
|
<!-- <select x-model=data.paykind[1] @change="totalFn()"> |
||||
|
<template x-for="pay in data.payarr" :key="pay"> |
||||
|
<option x-text="pay" :disabled="data.amount[1] == 0"></option> |
||||
|
</template> |
||||
|
</select> --> |
||||
|
<input type="text" x-model="data.paykind[1]" :disabled="data.amount[1] == 0" @input="totalFn()"> |
||||
|
|
||||
|
</td> |
||||
|
<td colspan="4"></td> |
||||
|
|
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>3、貨到工地款</td> |
||||
|
<td> |
||||
|
<input type="text" x-model='data.scale[2]' disabled> |
||||
|
</td> |
||||
|
<td colspan="1"> |
||||
|
<input type="text" x-model="data.amount[2]" disabled> |
||||
|
</td> |
||||
|
<td> |
||||
|
<!-- <select x-model=data.paykind[2] @change="totalFn()"> |
||||
|
<template x-for="pay in data.payarr" :key="pay"> |
||||
|
<option x-text="pay" :disabled="data.amount[2] == 0"></option> |
||||
|
</template> |
||||
|
</select> --> |
||||
|
<input type="text" x-model="data.paykind[2]" :disabled="data.amount[2] == 0" @input="totalFn()"> |
||||
|
|
||||
|
</td> |
||||
|
<td colspan="4"></td> |
||||
|
|
||||
|
</tr> |
||||
|
|
||||
|
|
||||
|
<tr> |
||||
|
<!-- <td rowspan="3">安裝</td> --> |
||||
|
<td>5、安裝完畢款</td> |
||||
|
<td> |
||||
|
<input type="text" x-model='data.scale[4]' disabled> |
||||
|
</td> |
||||
|
<td colspan="1"> |
||||
|
<input type="text" x-model="data.amount[4]" disabled> |
||||
|
</td> |
||||
|
<td> |
||||
|
<!-- <select x-model=data.paykind[4] @change="totalFn()" :disabled="data.amount[4] == 0"> |
||||
|
<template x-for="pay in data.payarr" :key="pay"> |
||||
|
<option x-text="pay"></option> |
||||
|
</template> |
||||
|
</select> --> |
||||
|
<input type="text" x-model="data.paykind[4]" :disabled="data.amount[4] == 0" @input="totalFn()"> |
||||
|
</td> |
||||
|
<td colspan="4"></td> |
||||
|
|
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>6、驗收款</td> |
||||
|
<td> |
||||
|
<input type="text" x-model="data.scale[5]" disabled> |
||||
|
</td> |
||||
|
<td colspan="1"> |
||||
|
<input type="text" x-model="data.amount[5]" disabled> |
||||
|
</td> |
||||
|
<td> |
||||
|
<!-- <select x-model=data.paykind[5] @change="totalFn()" :disabled="data.amount[5] == 0"> |
||||
|
<template x-for="pay in data.payarr" :key="pay"> |
||||
|
<option x-text="pay"></option> |
||||
|
</template> |
||||
|
</select> --> |
||||
|
<input type="text" x-model="data.paykind[5]" :disabled="data.amount[5] == 0" @input="totalFn()"> |
||||
|
|
||||
|
</td> |
||||
|
<td colspan="4"></td> |
||||
|
|
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>7、其他</td> |
||||
|
<td> |
||||
|
<input type="text" x-model='data.scale[6]' disabled> |
||||
|
</td> |
||||
|
<td colspan="1"> |
||||
|
<input type="text" x-model="data.amount[6]" disabled> |
||||
|
</td> |
||||
|
<td> |
||||
|
<!-- <select x-model=data.paykind[6] @change=" totalFn()" :disabled="data.amount[6] == 0"> |
||||
|
<template x-for="pay in data.payarr" :key="pay"> |
||||
|
<option :value="pay" x-text="pay"></option> |
||||
|
</template> |
||||
|
</select> --> |
||||
|
<input type="text" x-model="data.paykind[6]" :disabled="data.amount[6] == 0" x-on:input="console.log(data.paykind[6])"> |
||||
|
</td> |
||||
|
<td colspan="4"></td> |
||||
|
|
||||
|
</tr> |
||||
|
|
||||
|
<tr> |
||||
|
<td colspan="1">合計</td> |
||||
|
<td> |
||||
|
<input type="text" x-model="data.total_scale" disabled> |
||||
|
</td> |
||||
|
<td colspan="1"> |
||||
|
<input type="text" x-model="data.total_amount" disabled> |
||||
|
</td> |
||||
|
<td> |
||||
|
<input type="text" x-model="data.total_month" disabled> |
||||
|
</td> |
||||
|
<td colspan="4"></td> |
||||
|
</tr> |
||||
|
|
||||
|
</div> |
||||
|
</tbody> |
||||
|
</template> |
||||
|
|
||||
|
|
||||
|
<template x-if="step == 3"> |
||||
|
<template x-for="(elevator, idx) in data.elevators_detail_arr" :key="idx"> |
||||
|
<tbody style="font-weight: bolder;margin-bottom: 20px" x-show="step==3"> |
||||
|
<tr> |
||||
|
<td colspan=8> |
||||
|
<p x-text="'電梯' + Number(idx+1)"></p> |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td style="vertical-align: middle">電梯型號</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" x-model="elevator.spec" disabled> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">開門方式</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" x-model="elevator.item_op" disabled> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">電梯載重</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" x-model="elevator.item_weight" disabled> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">電梯人乘</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" x-model="elevator.person" disabled> |
||||
|
</td> |
||||
|
|
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td style="vertical-align: middle">電梯速度</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" x-model="elevator.speed" disabled> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">電梯樓停</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" x-model="elevator.floor" disabled> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">電梯樓層</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" x-model="elevator.floor"> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">合約交期(到工地)</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="date" x-model="elevator.contract_arrival_date"> |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td style="vertical-align: middle">QC和官檢</td> |
||||
|
<td> |
||||
|
<select class="" id="qc" x-model="elevator.qc"> |
||||
|
<option value="">請選擇QC或官檢</option> |
||||
|
<option value="Q">只需QC</option> |
||||
|
<option value="O">只需官檢</option> |
||||
|
<option value="QO">QC和官檢</option> |
||||
|
</select> |
||||
|
<p class="alerttext" x-show="data.qc==''"><i class="fa-solid fa-circle-xmark"></i>未填寫</p> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">工地負責人</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" x-model="elevator.manage"> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">工務部門負責人</td> |
||||
|
<td style="vertical-align: middle"> |
||||
|
<select class="form-control " id="warehouseid" name="warehouseid" x-model="elevator.warehouseid"> |
||||
|
<option value="">未選擇</option> |
||||
|
<optgroup label="北區"> |
||||
|
<option value="M0041">張潘榮(桃竹以北)</option> |
||||
|
<option value="M0150">羅盛騰(桃竹)</option> |
||||
|
<option value="M0040">吳宗紘</option> |
||||
|
</optgroup> |
||||
|
<optgroup label="中區"> |
||||
|
<option value="M0198">廖堉勝</option> |
||||
|
<option value="M0158">劉子睿(新梯)</option> |
||||
|
<option value="M0161">鄭永典(汰改)</option> |
||||
|
<option value="M0159">孫仲凱</option> |
||||
|
<option value="M0202">徐錦潤</option> |
||||
|
<option value="M0113">林瑋隆</option> |
||||
|
</optgroup> |
||||
|
<optgroup label="南區"> |
||||
|
<option value="M0078">許益連</option> |
||||
|
<option value="M0102">鄭存邑(高屏、台東)</option> |
||||
|
<option value="M0187">田祖豪(台南、嘉義)</option> |
||||
|
<option value="M0077">鍾玉龍</option> |
||||
|
</optgroup> |
||||
|
<optgroup label="宜蘭"> |
||||
|
<option value="M0087">高培軒</option> |
||||
|
</optgroup> |
||||
|
</select> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">汰改種類</td> |
||||
|
<td style="vertical-align: middle"> |
||||
|
<!-- <select multiple x-model="elevator.selectedOptions"> |
||||
|
<template x-for="option in data.options"> |
||||
|
<option x-text="option" :value="option"></option> |
||||
|
</template> |
||||
|
</select> |
||||
|
<p>選擇的選項: <span x-text="elevator.selectedOptions.join(', ')"></span></p> --> |
||||
|
|
||||
|
<select x-model="elevator.selectedItems" :id="'renovate_type'+idx" name="renovate_type[]" x-on:change="cons()"> |
||||
|
<option value="M1">M1</option> |
||||
|
<option value="M2">M2</option> |
||||
|
<option value="M3">M3</option> |
||||
|
<option value="M4">M4</option> |
||||
|
<option value="MA">MA</option> |
||||
|
</select> |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td style="vertical-align: middle">現場地址</td> |
||||
|
<td colspan="3"> |
||||
|
<input class="form-control disabled_select" type="text" x-model="data.address"> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">經度</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" x-model="elevator.latitude"> |
||||
|
</td> |
||||
|
<td style="vertical-align: middle">緯度</td> |
||||
|
<td> |
||||
|
<input class="form-control disabled_select" type="text" x-model="elevator.longitude"> |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td></td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</template> |
||||
|
</template> |
||||
|
</table> |
||||
|
|
||||
|
<button x-show="step==4" @click="save()" type="button" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading"> |
||||
|
<template x-if="!isLoading"> |
||||
|
<span>存檔</span> |
||||
|
</template> |
||||
|
<template x-if="isLoading"> |
||||
|
<span class="loader"></span> |
||||
|
</template> |
||||
|
</button> |
||||
|
|
||||
|
<button x-show="step<=3" @click="nextStepFn()" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading"> |
||||
|
<template x-if="!isLoading"> |
||||
|
<span>下一步</span> |
||||
|
</template> |
||||
|
<template x-if="isLoading"> |
||||
|
<span class="loader"></span> |
||||
|
</template> |
||||
|
</button> |
||||
|
|
||||
|
<button x-show="step>1" @click="preStepFn()" class="btn btn-primary btn-lg pull-right savebutton" :disabled="isLoading"> |
||||
|
<template x-if="!isLoading"> |
||||
|
<span>上一步</span> |
||||
|
</template> |
||||
|
<template x-if="isLoading"> |
||||
|
<span class="loaders"></span> |
||||
|
</template> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" /> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script> |
||||
|
<script type="text/javascript"> |
||||
|
const user_id = '<?= $user_id ?>'; |
||||
|
</script> |
@ -0,0 +1,49 @@ |
|||||
|
<?php |
||||
|
include "./header.php"; |
||||
|
include "T8_Authorization_curl.php"; |
||||
|
|
||||
|
$account_id = "M0122"; |
||||
|
$password = "90493119"; |
||||
|
$GroupId = 'TEST'; |
||||
|
$validation = get_Auth($GroupId,$account_id,$password); |
||||
|
// print_r(get_purchaseApply($conn, '123')); |
||||
|
$sql_purchaseApply = "SELECT * FROM purCharge"; |
||||
|
$result = get_purchaseApply($conn, $sql_purchaseApply); |
||||
|
print_r($result); |
||||
|
|
||||
|
function get_purchaseApply($conn){ |
||||
|
$sql_purchaseApply = "SELECT * FROM purCharge"; |
||||
|
$query_purchaseApply = $conn -> prepare($sql_purchaseApply); |
||||
|
$query_purchaseApply -> execute(); |
||||
|
$result = $query_purchaseApply -> fetchAll(); |
||||
|
return $result; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
// print_r(get_purchase_apply($validation,$GroupId,"S230300001-14")); |
||||
|
//費用申請單API 不能用 |
||||
|
function get_purchase_apply($validation,$GroupId,$BillNo){ |
||||
|
$apiurl = "http://60.244.87.101:880//twWebAPI/V1/PURFEEAPPLY/GetERPData?pkValue=$BillNo"; |
||||
|
// echo $apiurl . "\n"; |
||||
|
$headerParam = [ |
||||
|
'CHI_Authorization: ' . $validation, |
||||
|
'GroupId:'.$GroupId |
||||
|
]; |
||||
|
$ch = curl_init(); |
||||
|
curl_setopt($ch, CURLOPT_URL, $apiurl); |
||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerParam); |
||||
|
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); |
||||
|
|
||||
|
$response = curl_exec($ch); |
||||
|
if ($response === false) { |
||||
|
echo 'Curl error: ' . curl_error($ch); |
||||
|
} else { |
||||
|
$result = json_decode($response, true); |
||||
|
print_r($result); |
||||
|
} |
||||
|
|
||||
|
curl_close($ch); |
||||
|
} |
@ -0,0 +1,36 @@ |
|||||
|
<?php |
||||
|
include "./header.php"; |
||||
|
include "T8_Authorization_curl.php"; |
||||
|
|
||||
|
$account_id = "M0122"; |
||||
|
$password = "90493119"; |
||||
|
$GroupId = 'TEST'; |
||||
|
$validation = get_Auth(); |
||||
|
|
||||
|
// print_r(get_purchase_apply($validation,$GroupId,"S230300001-14")); |
||||
|
|
||||
|
//費用申請單API 不能用 |
||||
|
function get_purchase_apply($validation,$GroupId,$BillNo){ |
||||
|
$apiurl = "http://60.244.87.101:880//twWebAPI/V1/PURFEEAPPLY/GetERPData?pkValue=$BillNo"; |
||||
|
// echo $apiurl . "\n"; |
||||
|
$headerParam = [ |
||||
|
'CHI_Authorization: ' . $validation, |
||||
|
'GroupId:'.$GroupId |
||||
|
]; |
||||
|
$ch = curl_init(); |
||||
|
curl_setopt($ch, CURLOPT_URL, $apiurl); |
||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerParam); |
||||
|
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); |
||||
|
|
||||
|
$response = curl_exec($ch); |
||||
|
if ($response === false) { |
||||
|
echo 'Curl error: ' . curl_error($ch); |
||||
|
} else { |
||||
|
$result = json_decode($response, true); |
||||
|
print_r($result); |
||||
|
} |
||||
|
|
||||
|
curl_close($ch); |
||||
|
} |
||||
|
|