Cheng 1 year ago
parent
commit
c3b3e282f0
  1. 96
      wms/account-receivable-renovate-index.php
  2. 435
      wms/account-receivable-repair-index.php
  3. 2
      wms/excel/import.php

96
wms/account-receivable-renovate-index.php

@ -59,10 +59,6 @@ SELECT * FROM account_received ";
// 設定權限:看到自己的/下屬的,資訊處跟財會處可以看全部的 // 設定權限:看到自己的/下屬的,資訊處跟財會處可以看全部的
if ((in_array($user_id, array('M0060', 'M0175'))) || (in_array(accountidToDepartId($user_id), array('220', '210')))) { if ((in_array($user_id, array('M0060', 'M0175'))) || (in_array(accountidToDepartId($user_id), array('220', '210')))) {
} else { } else {
<<<<<<< HEAD
// $sql_received .= " AND (PersonId = '$user_id'";
=======
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
$sql_opening .= " OR person_id = '$user_id'"; $sql_opening .= " OR person_id = '$user_id'";
$sql_contractNumber .= " AND (PersonId = '$user_id'"; $sql_contractNumber .= " AND (PersonId = '$user_id'";
if (count($follower) > 0) { if (count($follower) > 0) {
@ -72,10 +68,6 @@ if ((in_array($user_id, array('M0060', 'M0175'))) || (in_array(accountidToDepart
$sql_contractNumber .= " OR PersonId IN $column_str)"; $sql_contractNumber .= " OR PersonId IN $column_str)";
$sql_opening .= " OR person_id IN $column_str)"; $sql_opening .= " OR person_id IN $column_str)";
} else { } else {
<<<<<<< HEAD
// $sql_received .= ")";
=======
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
$sql_opening .= ")"; $sql_opening .= ")";
$sql_contractNumber .= ")"; $sql_contractNumber .= ")";
}; };
@ -386,77 +378,46 @@ foreach ($arrayData as &$value) {
switch ($facility['PayStage'][$stage]['name']) { switch ($facility['PayStage'][$stage]['name']) {
case (stristr($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'])) { if (isset($wipwhole_status[$fakey]['tryrun_end_date']) && $wipwhole_status[$fakey]['tryrun_end_date'] !== NULL && !empty($wipwhole_status[$fakey]['tryrun_end_date'])) {
<<<<<<< HEAD
$haveNumber = (int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT);
=======
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['tryrun_end_date']))); $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['tryrun_end_date'])));
} }
break; break;
case (stristr($facility['PayStage'][$stage]['name'], '完工')): 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'])) { if (isset($wipwhole_status[$fakey]['delivery_date']) && $wipwhole_status[$fakey]['delivery_date'] !== NULL && !empty($wipwhole_status[$fakey]['delivery_date'])) {
<<<<<<< HEAD
$haveNumber = (int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT);
=======
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date']))); $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date'])));
} }
break; break;
case (stristr($facility['PayStage'][$stage]['name'], '尾款')): 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'])) { if (isset($wipwhole_status[$fakey]['delivery_date']) && $wipwhole_status[$fakey]['delivery_date'] !== NULL && !empty($wipwhole_status[$fakey]['delivery_date'])) {
<<<<<<< HEAD
$haveNumber = (int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT);
=======
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date']))); $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date'])));
} }
break; break;
case (stristr($facility['PayStage'][$stage]['name'], '交車')): 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'])) { if (isset($wipwhole_status[$fakey]['delivery_date']) && $wipwhole_status[$fakey]['delivery_date'] !== NULL && !empty($wipwhole_status[$fakey]['delivery_date'])) {
<<<<<<< HEAD
$haveNumber = (int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT);
=======
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date']))); $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date'])));
} }
break; break;
case (stristr($facility['PayStage'][$stage]['name'], '驗收')): 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'])) { if (isset($wipwhole_status[$fakey]['delivery_date']) && $wipwhole_status[$fakey]['delivery_date'] !== NULL && !empty($wipwhole_status[$fakey]['delivery_date'])) {
<<<<<<< HEAD
$haveNumber = (int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT);
=======
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date']))); $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['delivery_date'])));
} }
break; break;
case (stristr($facility['PayStage'][$stage]['name'], '安裝')): 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'])) { if (isset($wipwhole_status[$fakey]['install_end_date']) && $wipwhole_status[$fakey]['install_end_date'] !== NULL && !empty($wipwhole_status[$fakey]['install_end_date'])) {
<<<<<<< HEAD
$haveNumber = (int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT);
=======
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['install_end_date']))); $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['install_end_date'])));
} }
break; break;
case (stristr($facility['PayStage'][$stage]['name'], '貨抵工地')): 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'])) { if (isset($wipwhole_status[$fakey]['real_arrival_date']) && $wipwhole_status[$fakey]['real_arrival_date'] !== NULL && !empty($wipwhole_status[$fakey]['real_arrival_date'])) {
<<<<<<< HEAD
$haveNumber = (int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT);
$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);
=======
$haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1; $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']))); $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'])) { } 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; $haveNumber = ((int) filter_var(str_replace('-', '', $facility['PayStage'][$stage]['name']), FILTER_SANITIZE_NUMBER_INT)) - 1;
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
$facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['real_contract_arrival_date']))); $facility['PayStage'][$stage]['PlanPayDate'] = date("Ymd", strtotime("+ $haveNumber months", strtotime($wipwhole_status[$fakey]['real_contract_arrival_date'])));
} }
break; break;
@ -550,35 +511,6 @@ foreach ($final_paystage as $key => &$payStage) {
} }
} }
<<<<<<< HEAD
// foreach ($arrayData as &$value) {
// if (is_iterable($value['facility'])) {
// foreach ($value['facility'] as $fakey => &$facility) {
// // foreach ($facility['PayStage'] as $index => &$payStage) {
// // // $payStage['sequenceNumber'] = $allPayStages[$value[10]][$index]['sequenceNumber'];
// // echo $index." => ";
// // print_r($payStage);
// // echo "<br>";
// // }
// echo $fakey." => ";
// print_r($facility);
// echo "<br>";
// }
// }
// print_r($value);
// echo "---------------------<br>";
// }
// foreach ($final_paystage as $key => $payStage) {
// echo $key . "<br>";
// for ($sequence = 1; $sequence <= count($payStage); $sequence++) {
// print_r($payStage[$sequence]);
// echo "<br>";
// }
// echo "---------------------<br>";
// }
// exit();
=======
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
// 0 部門id 1 部門名稱 2 經理名稱 3 營業員id 4 營業員名稱 5 客戶名稱 6 抬頭 7 統編 8 通訊地址 9 T8單據日期 10 合約號 // 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 通訊地址 // 0 合約號 1 作番號 2 部門id 3 部門名稱 4 經理名稱 5 營業員id 6 營業員名稱 7 客戶名稱 8 抬頭 9 統編 10 通訊地址
// 11 收款階段名稱 12 應收日期 13 收款金額 14 已開金額 15 已收金額 16 催收次數 // 11 收款階段名稱 12 應收日期 13 收款金額 14 已開金額 15 已收金額 16 催收次數
@ -587,10 +519,6 @@ $today = strtotime(date('Ymt'));
foreach ($arrayData as $key => $value) { foreach ($arrayData as $key => $value) {
if (isset($final_paystage[$key])) { if (isset($final_paystage[$key])) {
for ($sequence = 1; $sequence <= count($final_paystage[$key]); $sequence++) { for ($sequence = 1; $sequence <= count($final_paystage[$key]); $sequence++) {
<<<<<<< HEAD
$keyname = $key . $final_paystage[$key][$sequence]['sequenceNumber'];
=======
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
$value[4] = (isset($value[4]) && !empty($value[4])) ? $value[4] : '--'; $value[4] = (isset($value[4]) && !empty($value[4])) ? $value[4] : '--';
$value[5] = (isset($value[5]) && !empty($value[5])) ? $value[5] : '--'; $value[5] = (isset($value[5]) && !empty($value[5])) ? $value[5] : '--';
$value[6] = (isset($value[6]) && !empty($value[6])) ? $value[6] : '--'; $value[6] = (isset($value[6]) && !empty($value[6])) ? $value[6] : '--';
@ -599,23 +527,16 @@ foreach ($arrayData as $key => $value) {
$value[11] = (isset($value[11]) && !empty($value[11])) ? $value[11] : '--'; $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])) : '--'; $value[12] = (isset($value[12]) && !empty($value[12])) ? date('Y/m/d', strtotime($value[12])) : '--';
$thisPayStage = $final_paystage[$key][$sequence]; $thisPayStage = $final_paystage[$key][$sequence];
<<<<<<< HEAD
$havetopay = ($today >= $thisPayStage['PlanPayDate']) ? "V" : "--";
=======
$keyname = $key . "/" . $final_paystage[$key][$sequence]['facilityno'] . "/" . $value[5]; $keyname = $key . "/" . $final_paystage[$key][$sequence]['facilityno'] . "/" . $value[5];
$havetopay = ($today >= strtotime($thisPayStage['PlanPayDate'])) ? "V" : "--"; $havetopay = ($today >= strtotime($thisPayStage['PlanPayDate'])) ? "V" : "--";
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
switch ($havetopay) { switch ($havetopay) {
case "V": case "V":
$unInvoiceAmount = $thisPayStage['PayAmount'] - $thisPayStage['InvoiceAmount']; $unInvoiceAmount = $thisPayStage['PayAmount'] - $thisPayStage['InvoiceAmount'];
$unReceivedAmount = $thisPayStage['PayAmount'] - $thisPayStage['receivedAmount']; $unReceivedAmount = $thisPayStage['PayAmount'] - $thisPayStage['receivedAmount'];
break; break;
default: default:
<<<<<<< HEAD
=======
$unInvoiceAmount = 0; $unInvoiceAmount = 0;
$unReceivedAmount = 0; $unReceivedAmount = 0;
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
break; break;
} }
$excel_aray[$keyname] = [ $excel_aray[$keyname] = [
@ -689,11 +610,6 @@ $total_data = json_encode($excel_aray);
<h3><strong>合約 (汰改)統整資訊</strong></h3> <h3><strong>合約 (汰改)統整資訊</strong></h3>
</div> </div>
</div> </div>
<<<<<<< HEAD
<div style="overflow-x:auto;">
<table id="table_index" class="table table-striped table-bordered" style="width:100%">
=======
<?php <?php
include "./footer.php"; include "./footer.php";
?> ?>
@ -703,7 +619,6 @@ include "./footer.php";
</div> </div>
<div style="width: 98%; margin:1%;" style="overflow-x:auto;"> <div style="width: 98%; margin:1%;" style="overflow-x:auto;">
<table class="table table-striped table-bordered" style="width:100%"> <table class="table table-striped table-bordered" style="width:100%">
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
<thead> <thead>
<tr> <tr>
<th style='text-align:center;vertical-align: middle;width:120px'>合約號</th> <th style='text-align:center;vertical-align: middle;width:120px'>合約號</th>
@ -724,13 +639,8 @@ include "./footer.php";
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<<<<<<< HEAD
<?php foreach ($excel_aray as $row) { ?>
<tr>
=======
<?php foreach ($excel_aray as $key => $row) { ?> <?php foreach ($excel_aray as $key => $row) { ?>
<tr class="data-row" style="display: '';" id="<?= $key; ?>"> <tr class="data-row" style="display: '';" id="<?= $key; ?>">
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
<td><?= $row[0]; ?></td> <td><?= $row[0]; ?></td>
<td><?= $row[1]; ?></td> <td><?= $row[1]; ?></td>
<td><?= $row[2] . "<br>" . $row[3]; ?></td> <td><?= $row[2] . "<br>" . $row[3]; ?></td>
@ -753,8 +663,6 @@ include "./footer.php";
</div> </div>
<script> <script>
<<<<<<< HEAD
=======
function searchData() { function searchData() {
var searchTerm = document.getElementById('search').value.toLowerCase(); var searchTerm = document.getElementById('search').value.toLowerCase();
var rows = document.getElementsByClassName('data-row'); var rows = document.getElementsByClassName('data-row');
@ -770,7 +678,6 @@ include "./footer.php";
} }
} }
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
function downloadData() { function downloadData() {
var xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
var url = window.location.origin + "/wms/account-receivable-renovate-excel.php?type=all&<?= $token_link ?>"; var url = window.location.origin + "/wms/account-receivable-renovate-excel.php?type=all&<?= $token_link ?>";
@ -794,12 +701,9 @@ include "./footer.php";
})); }));
} }
<<<<<<< HEAD
=======
function check(searchname) { function check(searchname) {
console.log(searchname); console.log(searchname);
} }
>>>>>>> ea503fbee65cc2bb5ce9442e618db9c6878a09cb
</script> </script>

435
wms/account-receivable-repair-index.php

@ -15,23 +15,89 @@ $average_A40002 = 0;
$average_A40009 = 0; $average_A40009 = 0;
$average_A40010 = 0; $average_A40010 = 0;
/* 比較應收日期
@param $a array
@param $b array
return int */
function comparePlanPayDate($a, $b)
{
return strtotime($a['PlanPayDate']) - strtotime($b['PlanPayDate']);
}
// 查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;
}
$follower = find_follow($user_id); $follower = find_follow($user_id);
$arrayData = []; $arrayData = array();
$receivable_array = []; $receivable_array = [];
// T8所有合約號 // T8所有合約號
$sql_contractNumber = "SELECT Distinct BillNo FROM salSalesOrder WHERE TypeId = 'SP' AND (CurrentState=2 OR CurrentState=4) "; $sql_contractNumber = "SELECT MainAll.* ,
Person.PersonName,
Dept.DeptName FROM
(SELECT
Main.BillNo,
Main.BillDate,
Main.BizPartnerId,
Biz.ShortName,
Biz.BizPartnerName,
Biz.ContactAddress,
Main.OAmountWithTax,
Main.PersonId,
Main.DeptId,
Main.TypeId,
Main.CurrentState
FROM salSalesOrder AS Main
LEFT JOIN comBusinessPartner AS Biz ON Biz.BizPartnerId = Main.BizPartnerId) AS MainAll
LEFT JOIN comGroupPerson AS Person ON MainAll.PersonId= Person.PersonId
LEFT JOIN comDepartment AS Dept ON MainAll.DeptId= Dept.DeptId
WHERE MainAll.TypeId = 'SP' AND (MainAll.CurrentState=2 OR MainAll.CurrentState=4) ";
if ((in_array($user_id, array('M0008', 'M0012'))) || (in_array(accountidToDepartId($user_id), array('220', '210', '501')))) {
} else {
$sql_contractNumber .= " AND (MainAll.PersonId = '$user_id'";
if (count($follower) > 0) {
$column_str = "('$user_id'" . ",'";
$column_str .= implode("','", $follower);
$column_str .= "')";
$sql_contractNumber .= " OR MainAll.PersonId IN $column_str)";
} else {
$sql_contractNumber .= ")";
};
}
$contractNumbers = array();
$query_contract_number = $conn->query($sql_contractNumber);
if (is_iterable($query_contract_number)) {
foreach ($query_contract_number as $contract_numbers) {
array_push($contractNumbers, $contract_numbers['BillNo']);
$arrayData[$contract_numbers['BillNo']]['BillNo'] = $contract_numbers['BillNo'];
$arrayData[$contract_numbers['BillNo']]['BillDate'] = $contract_numbers['BillDate'];
$arrayData[$contract_numbers['BillNo']]['CustomerId'] = $contract_numbers['BizPartnerId'];
$arrayData[$contract_numbers['BillNo']]['CustomerAddress'] = $contract_numbers['ContactAddress'];
$arrayData[$contract_numbers['BillNo']]['OAmountWithTax'] = $contract_numbers['OAmountWithTax'];
$arrayData[$contract_numbers['BillNo']]['PersonId'] = $contract_numbers['PersonId'];
$arrayData[$contract_numbers['BillNo']]['DeptId'] = $contract_numbers['DeptId'];
$arrayData[$contract_numbers['BillNo']]['PersonName'] = $contract_numbers['PersonName'];
$arrayData[$contract_numbers['BillNo']]['DeptName'] = $contract_numbers['DeptName'];
$arrayData[$contract_numbers['BillNo']]['ShortName'] = $contract_numbers['ShortName'];
$arrayData[$contract_numbers['BillNo']]['ManagerId'] = $find_manager[$contract_numbers['PersonId']]['manager'];
$arrayData[$contract_numbers['BillNo']]['ManagerName'] = $find_manager[$contract_numbers['PersonId']]['manager_name'];
}
$str_numbers = "('" . implode("','", $contractNumbers) . "')";
}
// T8發票 (有專案的發票) // T8發票 (有專案的發票)
$sql_invoice = "SELECT DISTINCT $sql_invoice = "SELECT Detail.BillNo AS InvoiceBillNo, Detail.MaterialId, Detail.LAmountWithTax, Main.InvoiceNo, CheckAll.FromSalSalesOrder AS BillNo FROM arSellInvoiceMaterial AS Detail
a.InvoiceNo, a.InvoiceTime,a.OAmountWithTax,a.InvoiceState, LEFT JOIN arSellInvoice AS Main ON Detail.BillNo=Main.BillNo
b.FromSalSalesOrder LEFT JOIN (
FROM arSellInvoice as a SELECT CheckDetail.BillNo, CheckDetail.FromSalSalesOrder FROM arCheckBillDetail AS CheckDetail ) AS CheckAll ON CheckAll.BillNo= Detail.FromBillNo
LEFT JOIN (SELECT CH.FromSalSalesOrder, SE.* FROM arSellInvoiceMaterial AS SE WHERE Detail.ItemType=0";
LEFT JOIN arCheckBillDetail AS CH ON SE.FromBillNo=CH.BillNo) as b
ON a.BillNo=b.BillNo
WHERE DATALENGTH(b.FromSalSalesOrder)>0
ORDER BY InvoiceTime ASC";
// T8核銷 // T8核銷
$sql_received = "SELECT $sql_received = "SELECT
@ -53,43 +119,76 @@ ON a.BillNo=c.BillNo
WHERE DATALENGTH(c.OrderBillNo) >0"; WHERE DATALENGTH(c.OrderBillNo) >0";
// 期初收款資訊 //T8 銷售訂單 階段收款計畫
$sql_opening = " $sql_paystage = "SELECT * from salOrderStagePay";
SELECT * FROM account_received "; if (isset($str_numbers)) {
// 設定權限:看到自己的/下屬的,資訊處跟財會處可以看全部的 $sql_paystage .= " WHERE BillNo IN $str_numbers ";
if ((in_array($user_id, array('M0060', 'M0175'))) || (in_array(accountidToDepartId($user_id), array('220', '210')))) { $sql_invoice .= " AND CheckAll.FromSalSalesOrder IN $str_numbers ";
} 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(); $PayStage = $conn->query($sql_paystage);
$query_contract_number = $conn->query($sql_contractNumber); $received_array = $conn->query($sql_received);
foreach ($query_contract_number as $contract_numbers) { $invoice_data = $conn->query($sql_invoice);
echo $contract_numbers['BillNo'];
echo "<br>"; $allPayStages = array();
array_push($contractNumbers, $contract_numbers['BillNo']); foreach ($PayStage as $stage) {
$str_numbers = "('" . implode("','", $contractNumbers) . "')"; $allPayStages[$stage['BillNo']][$stage['PayStage']]['PlanPayAmt'] = $stage['PlanPayAmt'];
$allPayStages[$stage['BillNo']][$stage['PayStage']]['PlanPayDate'] = $stage['PlanPayDate'];
} }
//T8 銷售訂單 階段收款計畫 foreach ($allPayStages as $paykey => $pay) {
$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, uasort($allPayStages[$paykey], 'comparePlanPayDate');
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 ";
} }
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) {
if (isset($arrayData[$key])) {
$arrayData[$key]['PayStage'][$pstage['sequenceNumber']] = $pstage;
}
}
}
}
foreach ($invoice_data as $inv) {
if (isset($arrayData[$inv['BillNo']])) {
if(isset($arrayData[$inv['BillNo']]['invoice']['total'])) {
$arrayData[$inv['BillNo']]['invoice']['total'] += $inv['LAmountWithTax'];
} else {
$arrayData[$inv['BillNo']]['invoice']['total'] = $inv['LAmountWithTax'];
}
if (isset($arrayData[$inv['BillNo']]['invoice'][$inv['InvoiceNo']])) {
$arrayData[$inv['BillNo']]['invoice'][$inv['InvoiceNo']] += $inv['LAmountWithTax'];
} else {
$arrayData[$inv['BillNo']]['invoice'][$inv['InvoiceNo']] = $inv['LAmountWithTax'];
}
}
}
foreach($arrayData as $key => &$value){
echo $key."<br>";
echo "<br>-------<br>";
if(isset($value['invoice'])){
foreach($value['invoice'] as $invkey => $invvalue){
echo $invkey."<br>";
echo $invvalue."<br>";
}
}
echo "<br>---------------------------<br>";
}
exit();
// T8 銷售訂單 作番金額 // T8 銷售訂單 作番金額
$sql_contract_budget = "SELECT A.BillNo,A.MaterialId, A.OAmountWithTax,A.CU_MaterialId FROM salSalesOrderDetail AS A $sql_contract_budget = "SELECT A.BillNo,A.MaterialId, A.OAmountWithTax,A.CU_MaterialId FROM salSalesOrderDetail AS A
@ -98,9 +197,8 @@ WHERE B.ModeId='T' AND A.ItemType=1 ";
if (isset($str_numbers)) { if (isset($str_numbers)) {
$sql_contract_budget .= "AND A.BillNo IN $str_numbers "; $sql_contract_budget .= "AND A.BillNo IN $str_numbers ";
} }
$contract = $conn->query($sql_contract);
$contract_data = array(); $contract_data = array();
$manager_list = array();
// 將T8合約收款階段資料依據款別分類放進arraData裡 // 將T8合約收款階段資料依據款別分類放進arraData裡
foreach ($contract as $cont) { foreach ($contract as $cont) {
$BillNo = $cont['BillNo']; $BillNo = $cont['BillNo'];
@ -114,10 +212,6 @@ foreach ($contract as $cont) {
$ContactAddress = $cont['ContactAddress']; $ContactAddress = $cont['ContactAddress'];
$RowNo = $cont['RowNo']; $RowNo = $cont['RowNo'];
$salesId = $cont['PersonId']; $salesId = $cont['PersonId'];
if (!in_array($salesId, $manager_list)) {
array_push($manager_list, $salesId);
}
//['type'] A:比照新梯、B:純分期、C:其他 //['type'] A:比照新梯、B:純分期、C:其他
//['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 min 最早應收月份 max 最晚應收月份 ['second'] 0 二次款名 1 二次款金額 2 收款日期 ['arrive'] 0 貨抵工地款名稱 1 貨抵工地款金額 2 貨抵工地收款日期 ['install'] 0 安裝款名 1 安裝金額 2 安裝收款日期 //['sign'] 0 款項名稱 1 簽約金額 2 簽約日期 3 應收金額 min 最早應收月份 max 最晚應收月份 ['second'] 0 二次款名 1 二次款金額 2 收款日期 ['arrive'] 0 貨抵工地款名稱 1 貨抵工地款金額 2 貨抵工地收款日期 ['install'] 0 安裝款名 1 安裝金額 2 安裝收款日期
@ -160,20 +254,10 @@ foreach ($contract as $cont) {
$arrayData[$BillNo]['PayStage'][$RowNo]['type'] = "C"; $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); $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 // 將T8銷售訂單明細 每個作番金額存入arrayData
$contract_budget = array(); $contract_budget = array();
foreach ($contract_budget_data as $cont) { foreach ($contract_budget_data as $cont) {
@ -186,11 +270,24 @@ foreach ($contract_budget_data as $cont) {
$arrayData[$BillNo][11] = $find_manager[$salesid]['manager']; $arrayData[$BillNo][11] = $find_manager[$salesid]['manager'];
} }
$arrayData[$BillNo]['total_budget'] += $cont['OAmountWithTax']; $arrayData[$BillNo]['total_budget'] += $cont['OAmountWithTax'];
$sum_total_budget += $cont['OAmountWithTax'];
$arrayData[$BillNo][$cont['MaterialId']] += $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']])) { if (isset($arrayData[$BillNo]['facility'][$cont['CU_MaterialId']])) {
$arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['total_budget'] += $cont['OAmountWithTax']; $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['total_budget'] += $cont['OAmountWithTax'];
$arrayData[$BillNo]['facility'][$cont['CU_MaterialId']][$cont['MaterialId']] += $cont['OAmountWithTax']; $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']][$cont['MaterialId']] += $cont['OAmountWithTax'];
} else { } else {
$sum_facility += 1;
$arrayData[$BillNo]['total_facility_num'] += 1; $arrayData[$BillNo]['total_facility_num'] += 1;
$arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['total_budget'] = $cont['OAmountWithTax']; $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']]['A40002'] = $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['A40009'] = $arrayData[$BillNo]['facility'][$cont['CU_MaterialId']]['A40010'] = 0;
@ -237,21 +334,164 @@ function get_contract_ratio($facility_no, $contract_budget_billno)
return $ratio; return $ratio;
} }
/* 比較應收日期
@param $a array
@param $b array
return int */
function comparePlanPayDate($a, $b)
{
return strtotime($a['PlanPayDate']) - strtotime($b['PlanPayDate']);
}
//取作番大日程作番與時程 進arrayData //取作番大日程作番與時程 進arrayData
// real_contract_arrival_date 預計出貨日 // real_contract_arrival_date 預計出貨日
// real_arrival_date 實際出貨日 // real_arrival_date 實際出貨日
$today = strtotime(date('Ymd')); $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) { foreach ($allPayStages as $paykey => $pay) {
uasort($allPayStages[$paykey], 'comparePlanPayDate'); uasort($allPayStages[$paykey], 'comparePlanPayDate');
} }
@ -367,7 +607,18 @@ foreach ($arrayData as $key => $value) {
} }
} }
$total_data = json_encode($excel_aray); $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 . "<br>";
print_r($data);
echo "<br>-----------------------------<br>";
}
exit();
?> ?>
<style> <style>
table { table {
@ -422,8 +673,52 @@ $total_data = json_encode($excel_aray);
</div> </div>
<div class="container"> <div class="container">
<div class="text-center" style="margin-bottom: 20px;"> <div class="text-center" style="margin-bottom: 20px;">
<h3><strong>合約 (修理)統整資訊</strong></h3> <h3><strong>合約 (汰改)統整資訊</strong></h3>
</div>
<form class="form-horizontal">
<div class="form-group">
<div class="col-md-3">
<label for="sum_total_budget">合約總金額</label>
<input type="text" class="form-control" id="sum_total_budget" name="sum_total_budget" value="<?= number_format($sum_total_budget) ?>" disabled>
</div>
<div class="col-md-3">
<label for="sum_A40002">M1總金額</label>
<input type="text" class="form-control" id="sum_A40002" name="sum_A40002" value="<?= number_format($sum_A40002) ?>" disabled>
</div>
<div class="col-md-3">
<label for="sum_A40009">設備總金額</label>
<input type="text" class="form-control" id="sum_A40009" name="sum_A40009" value="<?= number_format($sum_A40009) ?>" disabled>
</div>
<div class="col-md-3">
<label for="sum_A40010">安裝總金額</label>
<input type="text" class="form-control" id="sum_A40010" name="sum_A40010" value="<?= number_format($sum_A40010) ?>" disabled>
</div>
</div>
<div class="form-group">
<div class="col-md-6">
<label for="sum_facility">總台數</label>
<input type="text" class="form-control" id="sum_facility" name="sum_facility" value="<?= number_format($sum_facility) ?>" disabled>
</div>
</div>
<div class="form-group">
<div class="col-md-3">
<label for="average_budget">平均金額</label>
<input type="text" class="form-control" id="average_budget" name="average_budget" value="<?= number_format($average_budget) ?>" disabled>
</div>
<div class="col-md-3">
<label for="average_A40002">M1平均金額</label>
<input type="text" class="form-control" id="average_A40002" name="average_A40002" value="<?= number_format($average_A40002) ?>" disabled>
</div>
<div class="col-md-3">
<label for="average_A40009">設備平均金額</label>
<input type="text" class="form-control" id="average_A40009" name="average_A40009" value="<?= number_format($average_A40009) ?>" disabled>
</div>
<div class="col-md-3">
<label for="average_A40010">安裝平均金額</label>
<input type="text" class="form-control" id="average_A40010" name="average_A40010" value="<?= number_format($average_A40010) ?>" disabled>
</div>
</div> </div>
</form>
</div> </div>
<?php <?php
include "./footer.php"; include "./footer.php";

2
wms/excel/import.php

@ -1,5 +1,6 @@
<?php <?php
require 'vendor/autoload.php'; require 'vendor/autoload.php';
namespace PhpOffice\PhpSpreadsheet; namespace PhpOffice\PhpSpreadsheet;
use PhpOffice\PhpSpreadsheet\Reader\IReader; use PhpOffice\PhpSpreadsheet\Reader\IReader;
@ -54,6 +55,7 @@ abstract class IOFactory
return new $className(); return new $className();
} }
}
$object = new IOFactory(); $object = new IOFactory();
$spreadsheet = $object::createReader('Xlsx')->load('1.xlsx'); $spreadsheet = $object::createReader('Xlsx')->load('1.xlsx');
echo "success"; echo "success";
Loading…
Cancel
Save