From ea503fbee65cc2bb5ce9442e618db9c6878a09cb Mon Sep 17 00:00:00 2001 From: Ellin Date: Thu, 1 Feb 2024 17:47:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E6=B1=BA=E8=B2=BB=E7=94=A8=E5=A0=B1?= =?UTF-8?q?=E9=8A=B7=E5=96=AEbug;=20=E6=96=B0=E5=A2=9E=E6=B1=B0=E6=94=B9?= =?UTF-8?q?=E6=87=89=E6=94=B6=E5=B8=B3=E6=AC=BEing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ve-submit.php => T8-purReceive-submit.php} | 176 ++-- ...hase-submit.php => T8-purchase-submit.php} | 176 ++-- wms/T8_Authorization.php | 8 +- wms/T8_Authorization_from_bpm.php | 6 +- wms/WriteOff.xlsx | Bin 8774 -> 8779 bytes wms/account-receivable-renovate-index-ing.php | 773 ++++++++++++++++++ wms/account-receivable-renovate-index.php | 11 +- wms/rib01-check.php | 3 +- wms/rib01-edit.php | 22 +- wms/rib01-index.php | 150 ++-- wms/rib02-edit.php | 107 ++- wms/rib02-submit.php | 18 +- 12 files changed, 1122 insertions(+), 328 deletions(-) rename wms/{rib02-purReceive-submit.php => T8-purReceive-submit.php} (96%) rename wms/{rib02-purchase-submit.php => T8-purchase-submit.php} (97%) create mode 100644 wms/account-receivable-renovate-index-ing.php diff --git a/wms/rib02-purReceive-submit.php b/wms/T8-purReceive-submit.php similarity index 96% rename from wms/rib02-purReceive-submit.php rename to wms/T8-purReceive-submit.php index ba87bc27..aa917201 100644 --- a/wms/rib02-purReceive-submit.php +++ b/wms/T8-purReceive-submit.php @@ -1,89 +1,89 @@ - - \ No newline at end of file diff --git a/wms/rib02-purchase-submit.php b/wms/T8-purchase-submit.php similarity index 97% rename from wms/rib02-purchase-submit.php rename to wms/T8-purchase-submit.php index 13f042fa..216b4906 100644 --- a/wms/rib02-purchase-submit.php +++ b/wms/T8-purchase-submit.php @@ -1,89 +1,89 @@ - - \ No newline at end of file diff --git a/wms/T8_Authorization.php b/wms/T8_Authorization.php index a1a756ce..dce65c91 100644 --- a/wms/T8_Authorization.php +++ b/wms/T8_Authorization.php @@ -14,12 +14,13 @@ $sign = hash_hmac('SHA256', $data, 'B2D6395D2883E26C', false); var validation = ""; // var corsurl = 'http://cors-anywhere.herokuapp.com/'; // var apiurl = 'http://60.244.87.101:880//twWebAPI/GetAuth'; - var apiurl = 'https://erp.masada.com.tw:780/twWebAPI/GetAuth' + // var apiurl = 'https://erp.masada.com.tw:780/twWebAPI/GetAuth' headerParam = { UserId: 'M0000', Pwd: 'M012290493119', TimestampUTC: , - Sign: '' + Sign: '', + GroupId: 'TEST', }; obj = { type: 'get', @@ -30,7 +31,7 @@ $sign = hash_hmac('SHA256', $data, 'B2D6395D2883E26C', false); success: function(res) { validation = res.Data['CHI_Authorization']; console.log(validation); - // console.log(res); + console.log(res); // console.log() // window.parent.postMessage(validation,'http://localhost:3000'); // window.parent.postMessage(validation,'https://masada.com.tw'); @@ -40,4 +41,5 @@ $sign = hash_hmac('SHA256', $data, 'B2D6395D2883E26C', false); jQuery.ajax(obj); // return jQuery.ajax(obj); } + get_Auth(); \ No newline at end of file diff --git a/wms/T8_Authorization_from_bpm.php b/wms/T8_Authorization_from_bpm.php index 3e8708b2..7c206023 100644 --- a/wms/T8_Authorization_from_bpm.php +++ b/wms/T8_Authorization_from_bpm.php @@ -24,11 +24,13 @@ function get_Auth($user_id = "M0000", $user_password = "M012290493119") // $apiurl = 'http://10.10.145.2:880//twWebAPI/GetAuth'; // $apiurl = 'https://erp.masada.com.tw:780/twWebAPI/GetAuth'; + //GroupId : TEST測試區 ; MASADA正式區 $headerParam = [ "UserId: $user_id", "Pwd: $user_password", "TimestampUTC: $now", - "Sign: $sign" + "Sign: $sign", + "GroupId: TEST" ]; $ch = curl_init(); @@ -51,4 +53,4 @@ function get_Auth($user_id = "M0000", $user_password = "M012290493119") curl_close($ch); } // $data = []; -// get_Auth(); +get_Auth(); diff --git a/wms/WriteOff.xlsx b/wms/WriteOff.xlsx index 614072914604d42981872e8404de724932e0c9ac..6bb1cd8270b10a3d868964cda5509a0bb1db6346 100644 GIT binary patch delta 2825 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 delta 2750 zcmZ9Oc{CJUAIHa*RQ4tN%rKVhWGIqkhDI@jvSiCrG#-y_UR&nDFxDouZy&51#$|q;g;f9m0GtG*2jXv& zxYC$de*yU!6W4EQVwU(#<19VDshI8YZ@S37$j150;b6Z~XwM7)*br1WB``>&sDb#a z!DpE(WqOnYlD8Zj93WFX5l4L(2-x6{@_>{LJiy2IuR>AR0aTiv2b=X_5jbjYjV0*L`9wq6(~zV^Qfj)pe7 z&^y#UKTU>+_~gw}0Wvb1F&LOAZo7yD@z~=Y z%+o0BtDMe=N);!qT34q2{0weHBpc=Xwo$L4YP;>iwA9VD&#Y4!ZdRC&L4}LW} zyR|OvVz}r5hfB5mc~p*9^7QI2-uD+8#jEe~c7c(LmPbs$Nt4M&i^7INT^ zxZot?;sPvNF16~VbwnG%pPpU+n(CW3*{(|hEoDt5nXq+Ze3e-u_ugyeG<-DIoEY2j!JQMtU*6YLb(hrzUV8sq> zvowp8A~fXZd{Pz*iTv=Hj)ws!&S|UiP1Tv`limM5mHRQ0Ke3 zm`m^9=bFF8w&wNew>e-qNWloQRg3oP8`Aiw!Jf#CMVY8TRtJm9xWwmsOB!!z`wks> zJNvn@j#^5t6Ei&-^&;(fHvM_V!J}Mwy3qGHv5||ove)`Ui4I`7exWcVUe1E$xk{1r z!;-ms99uXmhBFdi^|3`v83C65GOTq$ud*Kr*}2LXe@faxnqX?u(B5sI@;r@P4G10+ zI&YnXL#xE}St9#4xLtqxi;q~?>5Q+oE?>CE=h!B$#d2ejX>Mb;)6?`ycbo$-I4g{e z`1~TPz9mO1S&`M9n-rBamZ)U&GflEH#=}-`6)w^4;ZdJ{^59M>Dio_#wCg0zT^*(8 zyUR1Y`Ju+1wY)gqo3P?jaeyA3Zn*r( zxlmjwd^Dm+{6gz;n>E+Obl`Iv{?pH_l^Zs~euyezRe^kop&+GFCDCG)?i46!bAnF`MI zy$aNB9gdPGu)9-HIWZ_6x>T(p1onwH`IXsxK{>$#nQRo|fc~38(jDcF{pZ<&7xSd+ z@fp__Yd5-^g)9Sezj6=AnaX;cmEVv6Lc6h}W33?bu!Qx}C}vsmTF>$%fG- zwAh*|jUkFzVt4{2%MT#L%6-Y5Srf&5wiW#r>ZAEHmcq%Nztox&ZX-_)BoqqZ*;l16% zWUcFvhdc=- za@a6tH-k&BUs6jge_UM;&$3BG3r8zck@8-!>lltl`P3?23vOSVT&I(H0as{j{7RY5 zZ&*(o-N#vsNjaz)D55a<{HfJSBe~qdVFbIDLwQp1xXsZfRo5YpN>;I!=oNQZ-oesD zn-+;MS&7Nm3PdUnJm<+b!qGbdQK%b+94nt8ta@sSReTu-o=KOKe5vR9NetqaLE$48 zMboFSgf!WkU?={#A+92Ga1RxxF#K}5k#94sAunj!H8 zy4wGKE9(IeUoPH>Ezj57ez3{oE*Mr)n{mio)4Zop0`Ii^z;A0t!TlV=-OI08V8A&bR2dZ{wV(;HPNh0$(O zjbJ%+iQ=EzW=e#QTs@56;nko}7MbiS>6mt>p!CmGmwKdBP?jon>wl z3CtUu8XuAkg%3A>rw#kmCrwOL+~k}1@Thge;~mx^0Vrn|_R^dyD^k-oo8eEzxMknZ=S!9~TWBmp0^{d*1$-?;)OF8Zt)jN< z_4Mx_GX1+R?-0r)HviX+gaXOXV*mp6j=>oSJq98Wb_}yXo!=Ue?lCxm^#1S1R|@*= zngxk6JtZ(e;>SvHuqcxmK^rUy`loIsXgX!7hXV diff --git a/wms/account-receivable-renovate-index-ing.php b/wms/account-receivable-renovate-index-ing.php new file mode 100644 index 00000000..dc2ba4ae --- /dev/null +++ b/wms/account-receivable-renovate-index-ing.php @@ -0,0 +1,773 @@ +0 +ORDER BY InvoiceTime ASC"; + +// T8核銷 +$sql_received = "SELECT +a.BillNo, a.WriteOffBizPartnerId,a.PayWriteOffOAmount, +b.FromBillDate AS ReceivedDate,b.CurrWOFeeOAmt AS Fee, +c.OrderBillNo, c.checkBillNo, c.InvoiceNo, c.BillDate AS CheckBillDate +FROM arWriteOffBill AS a +LEFT JOIN arWriteOffBillRec AS b ON a.BillNo=b.BillNo +LEFT JOIN + (SELECT temp1.*,arWriteOffBillDetail.* FROM arWriteOffBillDetail + LEFT JOIN + (SELECT + arCheckBill.BillNo AS checkBillNo, arCheckBill.BillDate,arCheckBillInvInfo.InvoiceNo + FROM arCheckBill + LEFT JOIN arCheckBillInvInfo + ON arCheckBill.InvoiceBillNo=arCheckBillInvInfo.InvoiceBillNo) AS temp1 + ON temp1.checkBillNo = arWriteOffBillDetail.FromBillNo) AS c +ON a.BillNo=c.BillNo +WHERE DATALENGTH(c.OrderBillNo) >0"; + + +// 期初收款資訊 +$sql_opening = " +SELECT * FROM account_received "; +// 設定權限:看到自己的/下屬的,資訊處跟財會處可以看全部的 +if ((in_array($user_id, array('M0060', 'M0175'))) || (in_array(accountidToDepartId($user_id), array('220', '210')))) { +} else { + $sql_opening .= " OR person_id = '$user_id'"; + $sql_contractNumber .= " AND (PersonId = '$user_id'"; + if (count($follower) > 0) { + $column_str = "('$user_id'" . ",'"; + $column_str .= implode("','", $follower); + $column_str .= "')"; + $sql_contractNumber .= " OR PersonId IN $column_str)"; + $sql_opening .= " OR person_id IN $column_str)"; + } else { + $sql_opening .= ")"; + $sql_contractNumber .= ")"; + }; +} + +$contractNumbers = array(); +$query_contract_number = $conn->query($sql_contractNumber); +foreach ($query_contract_number as $contract_numbers) { + array_push($contractNumbers, $contract_numbers['BillNo']); + $str_numbers = "('" . implode("','", $contractNumbers) . "')"; +} +//作番大日程 +$sql = "SELECT +tmp2.*, +d.name AS depart_name +FROM( +SELECT + a.manager, + a2.name as manager_name, + a.name, + a.department_id, + w.salesid, + w.contractno, + w.facilityno, + w.estimated_shipping_date, + w.real_contract_arrival_date, +w.actual_tofactory_date, + w.real_arrival_date, + w.install_end_date, + w.tryrun_end_date, + w.official_check_date, + w.delivery_date +from wipwholestatus AS w +left join account AS a +ON w.salesid = a.accountid +left join account AS a2 +ON a2.accountid = a.manager +where w.status = '1' AND w.contract_type='B' +)AS tmp2 +left join ( +SELECT DISTINCT + department_id, + name +FROM department + +) AS d +ON d.department_id = tmp2.department_id"; + +//T8 銷售訂單 階段收款計畫 +$sql_contract = "SELECT a.BillNo,s.BillDate, a.RowNo, a.PayStage, a.PlanPayAmt, a.PlanPayDate,s.BizPartnerId,c.BizPartnerName, s.PersonId, s.DeptId, s.DeptName, +c.EnterpriseName, c.TaxNo, c.ContactAddress FROM salOrderStagePay AS a +LEFT JOIN (SELECT O.*, DE.DeptName FROM salSalesOrder AS O LEFT JOIN comDepartment AS DE ON O.DeptId=DE.DeptId) AS s on a.BillNo = s.BillNo +LEFT JOIN comBusinessPartner AS c ON s.BizPartnerId=c.BizPartnerId "; +if (isset($str_numbers)) { + $sql_contract .= "WHERE s.BillNo IN $str_numbers "; +} + + +// T8 銷售訂單 作番金額 +$sql_contract_budget = "SELECT A.BillNo,A.MaterialId, A.OAmountWithTax,A.CU_MaterialId FROM salSalesOrderDetail AS A +LEFT JOIN salSalesOrder AS B ON A.BillNo=B.BillNo +WHERE B.ModeId='T' AND A.ItemType=1 "; +if (isset($str_numbers)) { + $sql_contract_budget .= "AND A.BillNo IN $str_numbers "; +} +$contract = $conn->query($sql_contract); +$contract_data = array(); +// 將T8合約收款階段資料依據款別分類放進arraData裡 +foreach ($contract as $cont) { + $BillNo = $cont['BillNo']; + $BillDate = $cont['BillDate']; + $PayStage = $cont['PayStage']; + $PlanPayDate = $cont['PlanPayDate']; + $PayAmount = $cont['PlanPayAmt']; + $partnerName = $cont['BizPartnerName']; + $EnterpriseName = $cont['EnterpriseName']; + $TaxNo = $cont['TaxNo']; + $ContactAddress = $cont['ContactAddress']; + $RowNo = $cont['RowNo']; + $salesId = $cont['PersonId']; + + //['type'] A:比照新梯、B:純分期、C:其他 + //['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 min 最早應收月份 max 最晚應收月份 ['second'] 0 二次款名 1 二次款金額 2 收款日期 ['arrive'] 0 貨抵工地款名稱 1 貨抵工地款金額 2 貨抵工地收款日期 ['install'] 0 安裝款名 1 安裝金額 2 安裝收款日期 + //['tryrun'] 0 試車款名 1試車金額 2 試車收款日期 ['check'] 0 官檢款名 1 官檢金額 2 官檢收款日期 ['delivery'] 0 交車款名 1 交車金額 2 交車收款日期 ['final'] 0 尾款名 1 尾款金額 2 尾款收款日期 + //['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數 + if (!(isset($arrayData[$BillNo]))) { + // 0 部門id 1 部門名稱 2 經理名稱 3 營業員id 4 營業員名稱 5 客戶名稱 6 抬頭 7 統編 8 通訊地址 9 T8單據日期 10 合約號 + $arrayData[$BillNo] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + $arrayData[$BillNo][0] = $cont['DeptId']; + $arrayData[$BillNo][1] = $cont['DeptName']; + $arrayData[$BillNo][3] = $salesId; + $arrayData[$BillNo][5] = $partnerName; + $arrayData[$BillNo][6] = $EnterpriseName; + $arrayData[$BillNo][7] = $TaxNo; + $arrayData[$BillNo][8] = $ContactAddress; + $arrayData[$BillNo][9] = $BillDate; + $arrayData[$BillNo][10] = $BillNo; + $arrayData[$BillNo]['total_budget'] = 0; + $arrayData[$BillNo]['invoice'] = array(); + $arrayData[$BillNo]['received_budget'] = 0; + $arrayData[$BillNo]['invoice_budget'] = 0; + $arrayData[$BillNo]['A40002'] = $arrayData[$BillNo]['A40009'] = $arrayData[$BillNo]['A40010'] = 0; + $arrayData[$BillNo]['total_facility_num'] = 0; + } + $arrayData[$BillNo]['PayStage'][$RowNo]['type'] = 0; + $arrayData[$BillNo]['PayStage'][$RowNo]['name'] = $PayStage; + $arrayData[$BillNo]['PayStage'][$RowNo]['PlanPayDate'] = $PlanPayDate; + $arrayData[$BillNo]['PayStage'][$RowNo]['PayAmount'] = $PayAmount; + // 判斷type + $wipStage = ['簽約', '訂金', '貨抵工地', '完工', '試車', '安裝', '驗收', '完工', '交車', '尾款', '合約']; + foreach ($wipStage as $wipstage) { + if (strpos($PayStage, $wipstage) !== false) { + $arrayData[$BillNo]['PayStage'][$RowNo]['type'] = "A"; + } + } + $haveNumber = (int) filter_var(str_replace('-', '', $PayStage), FILTER_SANITIZE_NUMBER_INT); + if ($haveNumber > 0 && $arrayData[$BillNo]['PayStage'][$RowNo]['type'] === 0) { + $arrayData[$BillNo]['PayStage'][$RowNo]['type'] = "B"; + } elseif ($haveNumber > 0 && $arrayData[$BillNo]['PayStage'][$RowNo]['type'] == 'A') { + $arrayData[$BillNo]['PayStage'][$RowNo]['type'] = "C"; + } +} +$received_array = $conn->query($sql_received); +$opening_data = mysqli_query($link, $sql_opening); +$invoice_data = $conn->query($sql_invoice); +$contract_budget_data = $conn->query($sql_contract_budget); + +// 查WMS 契約員主管 +$sql_manager = "SELECT A.accountid, A.name, A.manager, B.name AS manager_name FROM account AS A +LEFT JOIN account AS B ON A.manager = B.accountid "; +$managers = mysqli_query($link, $sql_manager); + +$find_manager = array(); +foreach ($managers as $manager) { + $find_manager[$manager['accountid']] = $manager; +} +// 將T8銷售訂單明細 每個作番金額存入arrayData +$contract_budget = array(); +foreach ($contract_budget_data as $cont) { + $BillNo = $cont['BillNo']; + if (isset($arrayData[$BillNo])) { + $salesid = $arrayData[$BillNo][3]; + if (isset($find_manager[$salesid])) { + $arrayData[$BillNo][2] = $find_manager[$salesid]['manager_name']; + $arrayData[$BillNo][4] = $find_manager[$salesid]['name']; + $arrayData[$BillNo][11] = $find_manager[$salesid]['manager']; + } + $arrayData[$BillNo]['total_budget'] += $cont['OAmountWithTax']; + $sum_total_budget += $cont['OAmountWithTax']; + $arrayData[$BillNo][$cont['MaterialId']] += $cont['OAmountWithTax']; + switch ($cont['MaterialId']) { + case "A40002": + $sum_A40002 += $cont['OAmountWithTax']; + break; + case "A40009": + $sum_A40009 += $cont['OAmountWithTax']; + break; + case "A40010": + $sum_A40010 += $cont['OAmountWithTax']; + break; + } + if (isset($arrayData[$BillNo]['facility'][$cont['CU_MaterialId']])) { + $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['total_budget'] += $cont['OAmountWithTax']; + $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']][$cont['MaterialId']] += $cont['OAmountWithTax']; + } else { + $sum_facility += 1; + $arrayData[$BillNo]['total_facility_num'] += 1; + $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['total_budget'] = $cont['OAmountWithTax']; + $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['A40002'] = $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['A40009'] = $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['A40010'] = 0; + $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']][$cont['MaterialId']] = $cont['OAmountWithTax']; + } + } + if (isset($contract_budget[$cont['BillNo']])) { + $contract_budget[$cont['BillNo']]['total'] += $cont['OAmountWithTax']; + } else { + $contract_budget[$cont['BillNo']]['total'] = $cont['OAmountWithTax']; + } + if (isset($contract_budget[$cont['BillNo']][$cont['MaterialId']])) { + $contract_budget[$cont['BillNo']][$cont['MaterialId']] += $cont['OAmountWithTax']; + } else { + $contract_budget[$cont['BillNo']][$cont['MaterialId']] = $cont['OAmountWithTax']; + } + + if (isset($contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']])) { + $contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']]['total'] += $cont['OAmountWithTax']; + $contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']][$cont['MaterialId']] += $cont['OAmountWithTax']; + } else { + $contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']]['total'] = $cont['OAmountWithTax']; + $contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']]['A40002'] = 0; + $contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']]['A40009'] = 0; + $contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']]['A40010'] = 0; + $contract_budget[$cont['BillNo']]['facility'][$cont['CU_MaterialId']][$cont['MaterialId']] = $cont['OAmountWithTax']; + }; +} + +/*計算作番佔合約的金額比例 +@param $facility_no string => 作番號 +@param $contract_budget_billno array => $contract_budget[合約號] +return float */ +function get_contract_ratio($facility_no, $contract_budget_billno) +{ + $ratio = 0; + if (isset($contract_budget_billno['facility'][$facility_no])) { + if (empty($contract_budget_billno['total'])) { + } else { + + $ratio += $contract_budget_billno['facility'][$facility_no]['total'] / $contract_budget_billno['total']; + } + } + return $ratio; +} + +/* 比較應收日期 +@param $a array +@param $b array +return int */ +function comparePlanPayDate($a, $b) +{ + return strtotime($a['PlanPayDate']) - strtotime($b['PlanPayDate']); +} + +//取作番大日程作番與時程 進arrayData +// real_contract_arrival_date 預計出貨日 +// real_arrival_date 實際出貨日 +$today = strtotime(date('Ymd')); +$wipwhole_array = mysqli_query($link, $sql); +$wipwhole_status = array(); +foreach ($wipwhole_array as $wip) { + //[合約號]['facility'] [作番號][款別]0 款項名稱 1 合約金額 2 應收日期 3 應收金額 4 已收金額 5 催收金額 6 催收次數 + if (isset($arrayData[$wip['contractno']])) { + // 整理合約資料 + // $arrayData[$wip['contractno']][0] = $wip['department_id'];; + // $arrayData[$wip['contractno']][1] = $wip['depart_name']; + // $arrayData[$wip['contractno']][2] = $wip['manager_name']; + // $arrayData[$wip['contractno']][3] = $wip['salesid']; + // $arrayData[$wip['contractno']][4] = $wip['name']; + $arrayData[$wip['contractno']][10] = $wip['contractno']; + $arrayData[$wip['contractno']]['A40002'] = (isset($contract_budget[$wip['contractno']]['A40002']) && !is_null($contract_budget[$wip['contractno']]['A40002'])) ? $contract_budget[$wip['contractno']]['A40002'] : 0; + $arrayData[$wip['contractno']]['A40009'] = (isset($contract_budget[$wip['contractno']]['A40009']) && !is_null($contract_budget[$wip['contractno']]['A40009'])) ? $contract_budget[$wip['contractno']]['A40009'] : 0; + + // [合約號]['facility'][作番號]['no'] + $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['no'] = $wip['facilityno']; + $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['status'] = ""; + $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['total_budget'] = 0; + $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['receivable_budget'] = 0; + $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['collect_budget'] = 0; + $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['A40002'] = (isset($contract_budget[$wip['contractno']][$wip['facilityno']]['A40002']) && !is_null($contract_budget[$wip['contractno']][$wip['facilityno']]['A40002'])) ? $contract_budget[$wip['contractno']][$wip['facilityno']]['A40002'] : 0; + $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['A40009'] = (isset($contract_budget[$wip['contractno']][$wip['facilityno']]['A40009']) && !is_null($contract_budget[$wip['contractno']][$wip['facilityno']]['A40009'])) ? $contract_budget[$wip['contractno']][$wip['facilityno']]['A40009'] : 0; + $arrayData[$wip['contractno']]['facility'][$wip['facilityno']]['A40010'] = (isset($contract_budget[$wip['contractno']][$wip['facilityno']]['A40010']) && !is_null($contract_budget[$wip['contractno']][$wip['facilityno']]['A40010'])) ? $contract_budget[$wip['contractno']][$wip['facilityno']]['A40010'] : 0; + } + $wipwhole_status[$wip['facilityno']] = $wip; +} + +// 整理arrayData[合約]['PayStage']進 (新增) arrayData[合約]['facility'][作番號][PayStage] +$sign_array = ['訂金', '簽約', '合約']; +// 將所有facility的paystage放入一個array以便計算順序 +$allPayStages = []; +foreach ($arrayData as &$value) { + if (isset($value['facility']) && is_iterable($value['facility'])) { + foreach ($value['facility'] as $fakey => &$facility) { + if (isset($contract_budget[$value[10]])) { + $ratio = get_contract_ratio($fakey, $contract_budget[$value[10]]); + for ($stage = 1; $stage < (count($value['PayStage']) + 1); $stage++) { + $facility['PayStage'][$stage] = $value['PayStage'][$stage]; + $facility['PayStage'][$stage]['facilityno'] = $fakey; + //算每個作番的金額 + $facility['PayStage'][$stage]['PayAmount'] = $value['PayStage'][$stage]['PayAmount'] * $ratio; + //算每個作番每個收款階段的收款時間 + switch ($facility['PayStage'][$stage]['type']) { + case "A": + switch ($facility['PayStage'][$stage]['name']) { + case (stristr($facility['PayStage'][$stage]['name'], '試車')): + if (isset($wipwhole_status[$fakey]['tryrun_end_date']) && $wipwhole_status[$fakey]['tryrun_end_date'] !== NULL && !empty($wipwhole_status[$fakey]['tryrun_end_date'])) { + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['tryrun_end_date'])); + } + break; + case (stristr($facility['PayStage'][$stage]['name'], '完工')): + if (isset($wipwhole_status[$fakey]['delivery_date']) && $wipwhole_status[$fakey]['delivery_date'] !== NULL && !empty($wipwhole_status[$fakey]['delivery_date'])) { + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['delivery_date'])); + } + break; + case (stristr($facility['PayStage'][$stage]['name'], '尾款')): + if (isset($wipwhole_status[$fakey]['delivery_date']) && $wipwhole_status[$fakey]['delivery_date'] !== NULL && !empty($wipwhole_status[$fakey]['delivery_date'])) { + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['delivery_date'])); + } + break; + case (stristr($facility['PayStage'][$stage]['name'], '交車')): + if (isset($wipwhole_status[$fakey]['delivery_date']) && $wipwhole_status[$fakey]['delivery_date'] !== NULL && !empty($wipwhole_status[$fakey]['delivery_date'])) { + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['delivery_date'])); + } + break; + case (stristr($facility['PayStage'][$stage]['name'], '驗收')): + if (isset($wipwhole_status[$fakey]['delivery_date']) && $wipwhole_status[$fakey]['delivery_date'] !== NULL && !empty($wipwhole_status[$fakey]['delivery_date'])) { + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['delivery_date'])); + } + break; + case (stristr($facility['PayStage'][$stage]['name'], '安裝')): + if (isset($wipwhole_status[$fakey]['install_end_date']) && $wipwhole_status[$fakey]['install_end_date'] !== NULL && !empty($wipwhole_status[$fakey]['install_end_date'])) { + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['install_end_date'])); + } + break; + case (stristr($facility['PayStage'][$stage]['name'], '貨抵工地')): + if (isset($wipwhole_status[$fakey]['real_arrival_date']) && $wipwhole_status[$fakey]['real_arrival_date'] !== NULL && !empty($wipwhole_status[$fakey]['real_arrival_date'])) { + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['real_arrival_date'])); + } elseif (isset($wipwhole_status[$fakey]['real_contract_arrival_date']) && $wipwhole_status[$fakey]['real_contract_arrival_date'] !== NULL && !empty($wipwhole_status[$fakey]['real_contract_arrival_date'])) { + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime($wipwhole_status[$fakey]['real_contract_arrival_date'])); + } + break; + default: + break; + }; + + case "B": + + break; + case "C": + switch ($facility['PayStage'][$stage]['name']) { + case (stristr($facility['PayStage'][$stage]['name'], '試車')): + if (isset($wipwhole_status[$fakey]['tryrun_end_date']) && $wipwhole_status[$fakey]['tryrun_end_date'] !== NULL && !empty($wipwhole_status[$fakey]['tryrun_end_date'])) { + $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['tryrun_end_date']))); + } + break; + case (stristr($facility['PayStage'][$stage]['name'], '完工')): + if (isset($wipwhole_status[$fakey]['delivery_date']) && $wipwhole_status[$fakey]['delivery_date'] !== NULL && !empty($wipwhole_status[$fakey]['delivery_date'])) { + $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date']))); + } + break; + case (stristr($facility['PayStage'][$stage]['name'], '尾款')): + if (isset($wipwhole_status[$fakey]['delivery_date']) && $wipwhole_status[$fakey]['delivery_date'] !== NULL && !empty($wipwhole_status[$fakey]['delivery_date'])) { + $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date']))); + } + break; + case (stristr($facility['PayStage'][$stage]['name'], '交車')): + if (isset($wipwhole_status[$fakey]['delivery_date']) && $wipwhole_status[$fakey]['delivery_date'] !== NULL && !empty($wipwhole_status[$fakey]['delivery_date'])) { + $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date']))); + } + break; + case (stristr($facility['PayStage'][$stage]['name'], '驗收')): + if (isset($wipwhole_status[$fakey]['delivery_date']) && $wipwhole_status[$fakey]['delivery_date'] !== NULL && !empty($wipwhole_status[$fakey]['delivery_date'])) { + $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date']))); + } + break; + case (stristr($facility['PayStage'][$stage]['name'], '安裝')): + if (isset($wipwhole_status[$fakey]['install_end_date']) && $wipwhole_status[$fakey]['install_end_date'] !== NULL && !empty($wipwhole_status[$fakey]['install_end_date'])) { + $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['install_end_date']))); + } + break; + case (stristr($facility['PayStage'][$stage]['name'], '貨抵工地')): + if (isset($wipwhole_status[$fakey]['real_arrival_date']) && $wipwhole_status[$fakey]['real_arrival_date'] !== NULL && !empty($wipwhole_status[$fakey]['real_arrival_date'])) { + $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['real_arrival_date']))); + } elseif (isset($wipwhole_status[$fakey]['real_contract_arrival_date']) && $wipwhole_status[$fakey]['real_contract_arrival_date'] !== NULL && !empty($wipwhole_status[$fakey]['real_contract_arrival_date'])) { + $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; + $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['real_contract_arrival_date']))); + } + break; + default: + break; + }; + default: + break; + } + } + if (isset($allPayStages[$value[10]])) { + $allPayStages[$value[10]] = array_merge($allPayStages[$value[10]], $facility['PayStage']); + } else { + $allPayStages[$value[10]] = $facility['PayStage']; + } + } + } + } +} +foreach ($allPayStages as $paykey => $pay) { + uasort($allPayStages[$paykey], 'comparePlanPayDate'); +} + +foreach ($allPayStages as &$payStage) { + $sequenceNumber = 1; + foreach ($payStage as $tk => &$pstage) { + $pstage['sequenceNumber'] = $sequenceNumber; + $sequenceNumber += 1; + } +} +// 整理好的收款階段 +$final_paystage = array(); +foreach ($allPayStages as $key => &$payStage) { + if (is_iterable($payStage)) { + foreach ($payStage as $key2 => $pstage) { + $final_paystage[$key][$pstage['sequenceNumber']] = $pstage; + } + } +} + +// [invoice][發票號碼][0 發票日期, 1 發票金額, 2 發票狀態, 3 收款日期, 4 收款金額, 5 手續費, 6 核銷單號] +foreach ($invoice_data as $invoice) { + if (isset($arrayData[$invoice['FromSalSalesOrder']])) { + $arrayData[$invoice['FromSalSalesOrder']]['invoice_budget'] += intval($invoice['OAmountWithTax']); + $arrayData[$invoice['FromSalSalesOrder']]['invoice'][$invoice['InvoiceNo']] = [date("Ymd", strtotime($invoice['InvoiceTime'])), $invoice['OAmountWithTax'], $invoice['InvoiceState']]; + } +} + +// 把核銷單的內容補到發票資料中 +foreach ($received_array as $received) { + $BillNo = $received['OrderBillNo']; + if (isset($arrayData[$BillNo])) { + if (isset($arrayData[$BillNo]['invoice'][$received['InvoiceNo']])) { + $arrayData[$BillNo]['received_budget'] += $received['PayWriteOffOAmount']; + array_push($arrayData[$BillNo]['invoice'][$received['InvoiceNo']], date($received['ReceivedDate']), $received['PayWriteOffOAmount'], $received['Fee'], $received['BillNo']); + } + } +} +// $final_paystage ['type'] ['PlanPayDate'] ['PayAmount'] ['facilityno'] ['sequenceNumber'] ['name'] ['InvoiceAmount'] ['receivedAmount'] +foreach ($final_paystage as $key => &$payStage) { + if (isset($arrayData[$key]['invoice_budget']) && isset($arrayData[$key]['received_budget'])) { + $tmpInvoice = $arrayData[$key]['invoice_budget']; + $tmpReceived = $arrayData[$key]['received_budget']; + for ($sequence = 1; $sequence <= count($payStage); $sequence++) { + $collect_month = collect_month(strtotime($payStage[$sequence]['PlanPayDate'])); + if ($tmpInvoice > $payStage[$sequence]['PayAmount']) { + $payStage[$sequence]['InvoiceAmount'] = $payStage[$sequence]['PayAmount']; + $tmpInvoice -= $payStage[$sequence]['PayAmount']; + } else { + $payStage[$sequence]['InvoiceAmount'] = $tmpInvoice; + $tmpInvoice = 0; + } + + if ($tmpReceived > $payStage[$sequence]['PayAmount']) { + + $payStage[$sequence]['receivedAmount'] = $payStage[$sequence]['PayAmount']; + $tmpReceived -= $payStage[$sequence]['PayAmount']; + } else { + $payStage[$sequence]['receivedAmount'] = $tmpReceived; + $tmpReceived = 0; + } + if ($collect_month > 0) { + // $arrayData[$key]['facility'][$payStage[$sequence]['facilityno']]['receivable_budget']+=$payStage[$sequence]['PayAmount']; + } + if ($collect_month > 0 && $payStage[$sequence]['PayAmount'] > $payStage[$sequence]['receivedAmount']) { + $payStage[$sequence]['collect_month'] = $collect_month; + } else { + $payStage[$sequence]['collect_month'] = 0; + } + } + } +} + +// 0 部門id 1 部門名稱 2 經理名稱 3 營業員id 4 營業員名稱 5 客戶名稱 6 抬頭 7 統編 8 通訊地址 9 T8單據日期 10 合約號 +// 0 合約號 1 作番號 2 部門id 3 部門名稱 4 經理名稱 5 營業員id 6 營業員名稱 7 客戶名稱 8 抬頭 9 統編 10 通訊地址 +// 11 收款階段名稱 12 應收日期 13 收款金額 14 已開金額 15 已收金額 16 催收次數 +$excel_aray = array(); +$today = strtotime(date('Ymt')); +foreach ($arrayData as $key => $value) { + if (isset($final_paystage[$key])) { + for ($sequence = 1; $sequence <= count($final_paystage[$key]); $sequence++) { + $value[4] = (isset($value[4]) && !empty($value[4])) ? $value[4] : '--'; + $value[5] = (isset($value[5]) && !empty($value[5])) ? $value[5] : '--'; + $value[6] = (isset($value[6]) && !empty($value[6])) ? $value[6] : '--'; + $value[7] = (isset($value[7]) && !empty($value[7])) ? $value[7] : '--'; + $value[8] = (isset($value[8]) && !empty($value[8])) ? $value[8] : '--'; + $value[11] = (isset($value[11]) && !empty($value[11])) ? $value[11] : '--'; + $value[12] = (isset($value[12]) && !empty($value[12])) ? date('Y/m/d', strtotime($value[12])) : '--'; + $thisPayStage = $final_paystage[$key][$sequence]; + $keyname = $key . "/" . $final_paystage[$key][$sequence]['facilityno'] . "/" . $value[5]; + $havetopay = ($today >= strtotime($thisPayStage['PlanPayDate'])) ? "V" : "--"; + switch ($havetopay) { + case "V": + $unInvoiceAmount = $thisPayStage['PayAmount'] - $thisPayStage['InvoiceAmount']; + $unReceivedAmount = $thisPayStage['PayAmount'] - $thisPayStage['receivedAmount']; + break; + default: + $unInvoiceAmount = 0; + $unReceivedAmount = 0; + break; + } + $excel_aray[$keyname] = [ + $value[10], $thisPayStage['facilityno'], $value[0], $value[1], $value[11], $value[2], $value[3], $value[4], $value[5], $value[6], $value[7], $value[8], + $thisPayStage['name'], $thisPayStage['PlanPayDate'], $havetopay, + number_format(round($thisPayStage['PayAmount'])), + number_format(round($thisPayStage['InvoiceAmount'])), number_format(round($unInvoiceAmount)), + number_format(round($thisPayStage['receivedAmount'])), number_format(round($unReceivedAmount)), + number_format(round($thisPayStage['collect_month'])) + + ]; + } + } +} +$total_data = json_encode($excel_aray); +//計算總作番數、金額、A40002、A40009、A40010金額與平均 +$average_budget = round($sum_total_budget / $sum_facility); +$average_A40002 = round($sum_A40002 / $sum_facility); +$average_A40009 = round($sum_A40009 / $sum_facility); +$average_A40010 = round($sum_A40010 / $sum_facility); + +foreach($arrayData as $key=> $data){ + echo $key."
"; + print_r($data); + echo "
-----------------------------
"; +} +exit(); +?> + + +
+
+ +
+
+
+
+

合約 (汰改)統整資訊

+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + $row) { ?> + + + + + + + + + + + + + + + + + + + +
合約號作番號部門主管契約員客戶名稱收款階段應收日期是否應收應收金額已開金額未開金額已收金額催收金額催收次數
" . $row[3]; ?>" . $row[5]; ?>" . $row[7]; ?>
+
+ + \ No newline at end of file diff --git a/wms/account-receivable-renovate-index.php b/wms/account-receivable-renovate-index.php index 5b2929dd..a4f2f82e 100644 --- a/wms/account-receivable-renovate-index.php +++ b/wms/account-receivable-renovate-index.php @@ -53,16 +53,12 @@ ON a.BillNo=c.BillNo WHERE DATALENGTH(c.OrderBillNo) >0"; - -//ORDER BY contractno - // 期初收款資訊 $sql_opening = " SELECT * FROM account_received "; // 設定權限:看到自己的/下屬的,資訊處跟財會處可以看全部的 if ((in_array($user_id, array('M0060', 'M0175'))) || (in_array(accountidToDepartId($user_id), array('220', '210')))) { } else { - // $sql_received .= " AND (PersonId = '$user_id'"; $sql_opening .= " OR person_id = '$user_id'"; $sql_contractNumber .= " AND (PersonId = '$user_id'"; if (count($follower) > 0) { @@ -70,15 +66,10 @@ if ((in_array($user_id, array('M0060', 'M0175'))) || (in_array(accountidToDepart $column_str .= implode("','", $follower); $column_str .= "')"; $sql_contractNumber .= " OR PersonId IN $column_str)"; - // $sql_contract .= " OR s.PersonId IN $column_str)"; - // $sql_received .= " OR PersonId IN $column_str)"; $sql_opening .= " OR person_id IN $column_str)"; - // $sql_contract_budget .= " OR PersonId IN $column_str )ORDER BY BillNo, CU_MaterialId"; } else { - // $sql_received .= ")"; $sql_opening .= ")"; $sql_contractNumber .= ")"; - // $sql_contract_budget .= ")"; }; } @@ -626,7 +617,7 @@ include "./footer.php"; -
+
diff --git a/wms/rib01-check.php b/wms/rib01-check.php index 6ef49006..9332ec24 100644 --- a/wms/rib01-check.php +++ b/wms/rib01-check.php @@ -358,7 +358,8 @@ $feetype = mysqli_fetch_all($feetype_query, MYSQLI_ASSOC); - + diff --git a/wms/rib01-edit.php b/wms/rib01-edit.php index e916daaf..cb02acf0 100644 --- a/wms/rib01-edit.php +++ b/wms/rib01-edit.php @@ -159,11 +159,13 @@ if ($pay_data) { @@ -187,12 +189,14 @@ if ($pay_data) { echo "disabled"; } ?>> $value) { + if (is_iterable($member)) { + foreach ($member as $key => $value) { ?> - - + + diff --git a/wms/rib01-index.php b/wms/rib01-index.php index c4dd0f49..517ec992 100644 --- a/wms/rib01-index.php +++ b/wms/rib01-index.php @@ -105,81 +105,87 @@ if ($data) : - - - - - - - - - - - - - - + + + + + + + + + + + + - - + + + + + + + + + + + + + + +

+ + +
- -

- - - - - - - - + +

+ +

+ + + - - - - - - - - - - - - - - - - - - - - -

-
diff --git a/wms/rib02-edit.php b/wms/rib02-edit.php index 8b490e75..43ba5fdd 100644 --- a/wms/rib02-edit.php +++ b/wms/rib02-edit.php @@ -17,10 +17,12 @@ $member = array(); $sql_mydept = "SELECT UserId, Username FROM capMembership"; $deptmem = $conn->query($sql_mydept); -foreach ($deptmem as $mem) { - $userid = $mem['UserId']; - $username = $mem['Username']; - $member["$userid"] = [$username]; +if (is_iterable($deptmem)) { + foreach ($deptmem as $mem) { + $userid = $mem['UserId']; + $username = $mem['Username']; + $member["$userid"] = [$username]; + } }; $sql_dept = "SELECT DeptId, PersonId FROM comPerson WHERE DeptId!='0001'"; $allpeople = $conn->query($sql_dept); @@ -61,10 +63,11 @@ $rib_id = $ribsub['rib_id']; $sql_invoiceNo = "SELECT DISTINCT InvoiceNo FROM rib_sub WHERE rib_id !== $rib_id"; $invoiceNo = mysqli_query($link, $sql_invoiceNo); $invoiceNo_array = array(); -foreach ($invoiceNo as $invoice) { - array_push($invoiceNo_array, $invoice['InvoiceNo']); +if (is_iterable($invoiceNo)) { + foreach ($invoiceNo as $invoice) { + array_push($invoiceNo_array, $invoice['InvoiceNo']); + } } - $BizJSON = json_encode($BusinessPartner); $InvoiceJSON = json_encode($invoiceNo_array); $sql_Project = "SELECT * FROM comProject"; @@ -105,11 +108,13 @@ $materials = $conn->query($sql_Material);
@@ -171,11 +176,13 @@ $materials = $conn->query($sql_Material); @@ -188,12 +195,14 @@ $materials = $conn->query($sql_Material); @@ -207,11 +216,13 @@ $materials = $conn->query($sql_Material); @@ -224,12 +235,14 @@ $materials = $conn->query($sql_Material); @@ -240,12 +253,14 @@ $materials = $conn->query($sql_Material); @@ -285,11 +300,13 @@ $materials = $conn->query($sql_Material); @@ -694,11 +711,13 @@ $materials = $conn->query($sql_Material); window.open('rib02-invoice.php', '新視窗的名稱', config = 'height=600, width=600'); } - function checkInvoice(){ + + function checkInvoice() { var invoiceArray = ; - if($.inArray($("#InvoiceNo").val().replace("-", ""),invoiceArray) !== -1) { + if ($.inArray($("#InvoiceNo").val().replace("-", ""), invoiceArray) !== -1) { alert("此發票已報銷過"); - $("#InvoiceNo").val('');} + $("#InvoiceNo").val(''); + } } function changeWriteOffId(SelectedDept) { diff --git a/wms/rib02-submit.php b/wms/rib02-submit.php index c561cd61..ba23422b 100644 --- a/wms/rib02-submit.php +++ b/wms/rib02-submit.php @@ -50,7 +50,7 @@ $OAmount = $CurrId == "TWD" ? round($_POST['OAmount']) : round($_POST['OAmount'] $TaxId = $_POST['TaxId']; $IsCounteract = $_POST['IsCounteract']; $InvoiceId = $_POST['InvoiceId']; -$VoucherCount = empty($_POST['VoucherCount']) ? 1 : $_POST['VoucherCount']; +$VoucherCount = isset($_POST['VoucherCount']) ? $_POST['VoucherCount']:0; $VoucherType = isset($_POST['VoucherType']) ? $_POST['VoucherType'] : 0; $InvoiceNo = empty($_POST['InvoiceNo']) ? " " : (in_array(str_replace("-", "", $_POST['InvoiceNo']), $invoiceNo_array) ? " " : str_replace("-", "", $_POST['InvoiceNo'])); @@ -106,12 +106,11 @@ if ($submit == "add") { $SQL1 = "INSERT INTO rib_sub (`RowCode`,`rib_id`,`RowNo`,`FeeDate`,`FeeTypeId`,`WriteOffType`, `BizOrgId`,`WriteOffId`,`FeeOrgId`,`FeeDeptId`,`FeeCompanyId`,`UnitId`,`Quantity`, `Price`,`OAmount`,`FeeNoteShow`,`CurrId`,`SupplyOrgId`,`CurrOAmount`,`FromSourceTag`,`TaxId`,`IsCounteract`,`InvoiceId`,`TaxRate`,`CreatorId`,`TaxNo`,`OTax`,`LTax`, - `OAmountUnWithTax`,`LAmountUnWithTax`,`LAmount`"; + `OAmountUnWithTax`,`LAmountUnWithTax`,`LAmount`,`VoucherCount`"; $SQL1 .= isset($CurrLAmount) ? ",`CurrentLAmount`" : ""; $SQL1 .= empty($ProjectId) ? "" : ",`ProjectId`"; $SQL1 .= isset($FeeTypeGen) ? ",`FeeTypeGen`" : ""; $SQL1 .= empty($CU_MaterialId) ? "" : ",`CU_MaterialId`"; - $SQL1 .= empty($VoucherCount) ? "" : ",`VoucherCount`"; $SQL1 .= isset($VoucherType) ? ",`VoucherType`" : ""; $SQL1 .= empty($InvoiceNo) ? "" : ",`InvoiceNo`"; $SQL1 .= empty($comSupplierName) ? "" : ",`comSupplierName`"; @@ -120,12 +119,11 @@ if ($submit == "add") { $SQL2 = ") VALUES ($RowCode, $rib_id, $RowCode,$FeeDate,'$FeeTypeId',2, '1000','$WriteOffId','1000','$FeeDeptId','1000','$UnitId',$Quantity, $Price,$OAmount,'$FeeNoteShow','$CurrId','1000',1,0,'$TaxId',$IsCounteract,'$InvoiceId',$TaxRate,'$user_id','$TaxNo',$OTax,$LTax, - $OAmountUnWithTax,$LAmountUnWithTax,$LAmount"; + $OAmountUnWithTax,$LAmountUnWithTax,$LAmount,$VoucherCount"; $SQL2 .= isset($CurrLAmount) ? "," . $CurrLAmount : ""; $SQL2 .= empty($ProjectId) ? "" : ",'" . $ProjectId . "'"; $SQL2 .= isset($FeeTypeGen) ? "," . $FeeTypeGen : ""; $SQL2 .= empty($CU_MaterialId) ? "" : ",'" . $CU_MaterialId . "'"; - $SQL2 .= empty($VoucherCount) ? "" : "," . $VoucherCount; $SQL2 .= isset($VoucherType) ? "," . $VoucherType : ""; $SQL2 .= empty($InvoiceNo) ? "" : ",'" . $InvoiceNo . "'"; $SQL2 .= empty($comSupplierName) ? "" : ",'" . $comSupplierName . "'"; @@ -134,11 +132,10 @@ if ($submit == "add") { } else { $SQL1 = "INSERT INTO rib_sub (`RowCode`,`rib_id`,`RowNo`,`FeeDate`,`FeeTypeId`,`WriteOffType`, `BizOrgId`,`WriteOffId`,`FeeOrgId`,`FeeDeptId`,`FeeCompanyId`,`UnitId`,`Quantity`, - `Price`,`OAmount`,`FeeNoteShow`,`CurrId`,`SupplyOrgId`,`CurrOAmount`,`FromSourceTag`,`TaxId`,`IsCounteract`,`InvoiceId`,`TaxRate`,`CreatorId`,`TaxNo`"; + `Price`,`OAmount`,`FeeNoteShow`,`CurrId`,`SupplyOrgId`,`CurrOAmount`,`FromSourceTag`,`TaxId`,`IsCounteract`,`InvoiceId`,`TaxRate`,`CreatorId`,`TaxNo`,`VoucherCount`"; $SQL1 .= empty($ProjectId) ? "" : ",`ProjectId`"; $SQL1 .= isset($FeeTypeGen) ? ",`FeeTypeGen`" : ""; $SQL1 .= empty($CU_MaterialId) ? "" : ",`CU_MaterialId`"; - $SQL1 .= empty($VoucherCount) ? "" : ",`VoucherCount`"; $SQL1 .= isset($VoucherType) ? ",`VoucherType`" : ""; $SQL1 .= empty($InvoiceNo) ? "" : ",`InvoiceNo`"; $SQL1 .= empty($comSupplierName) ? "" : ",`comSupplierName`"; @@ -146,11 +143,10 @@ if ($submit == "add") { $SQL2 = ") VALUES ($RowCode, $rib_id, $RowCode,$FeeDate,'$FeeTypeId',2, '1000','$WriteOffId','1000','$FeeDeptId','1000','$UnitId',$Quantity, - $Price,$OAmount,'$FeeNoteShow','$CurrId','1000',1,0,'$TaxId',$IsCounteract,'$InvoiceId',$TaxRate,'$user_id','$TaxNo'"; + $Price,$OAmount,'$FeeNoteShow','$CurrId','1000',1,0,'$TaxId',$IsCounteract,'$InvoiceId',$TaxRate,'$user_id','$TaxNo',$VoucherCount"; $SQL2 .= empty($ProjectId) ? "" : ",'" . $ProjectId . "'"; $SQL2 .= isset($FeeTypeGen) ? "," . $FeeTypeGen : ""; $SQL2 .= empty($CU_MaterialId) ? "" : ",'" . $CU_MaterialId . "'"; - $SQL2 .= empty($VoucherCount) ? "" : "," . $VoucherCount; $SQL2 .= isset($VoucherType) ? "," . $VoucherType : ""; $SQL2 .= empty($InvoiceNo) ? "" : ",'" . $InvoiceNo . "'"; $SQL2 .= empty($comSupplierName) ? "" : ",'" . $comSupplierName . "'"; @@ -177,11 +173,11 @@ if ($submit == "add") {