6 changed files with 831 additions and 13 deletions
@ -0,0 +1,308 @@ |
|||
<?php |
|||
include "header.php"; |
|||
include "css/view/wipwhole-index.php"; |
|||
|
|||
// 設置一個空陣列來放資料 |
|||
$data = array(); |
|||
$contractno = empty($_POST['contractno']) ? null : $_POST['contractno']; |
|||
$department_id = accountidToDepartId($user_id); |
|||
// $contractno = getContractnoDetails($link, $user_id, $department_id, $contractno); |
|||
|
|||
|
|||
$sql = " |
|||
SELECT TOP 1000 |
|||
sso_tmp.BillNo, |
|||
sso_tmp.BillDate, |
|||
sso_tmp.PersonId, --負責業務人 |
|||
sso_tmp.SumOAmountWithTax, |
|||
cgp.PersonName, |
|||
cd.DeptName, |
|||
sso_tmp.BizPartnerId, |
|||
sso_tmp.fsso_status, -- 發票狀態 |
|||
CASE |
|||
WHEN awob_tmp.status IS NOT NULL THEN 'true' |
|||
ELSE 'false' |
|||
END AS awob_status, -- 收款狀態 |
|||
sso_tmp.BizPartnerName |
|||
FROM ( |
|||
SELECT |
|||
sso.BillNo, |
|||
sso.BillDate, |
|||
sso.PersonId, --負責業務人 |
|||
ssod.SumOAmountWithTax, |
|||
sso.BizPartnerId, |
|||
'true' AS fsso_status, |
|||
cbp.BizPartnerName |
|||
FROM salSalesOrder AS sso |
|||
LEFT JOIN ( |
|||
SELECT |
|||
BillNo, |
|||
SUM(OAmountWithTax) SumOAmountWithTax |
|||
FROM salSalesOrderDetail |
|||
GROUP BY BillNo |
|||
)AS ssod ON sso.BillNo = ssod.BillNo |
|||
LEFT JOIN comBusinessPartner AS cbp |
|||
ON sso.BizPartnerId = cbp.BizPartnerId |
|||
WHERE sso.BillNo IN |
|||
( |
|||
SELECT FromSalSalesOrder |
|||
FROM arCheckBillDetail |
|||
) |
|||
AND sso.TypeId = 'SP' |
|||
|
|||
UNION |
|||
|
|||
SELECT |
|||
sso.BillNo, |
|||
sso.BillDate, |
|||
sso.PersonId, --負責業務人, |
|||
ssod.SumOAmountWithTax, |
|||
sso.BizPartnerId, |
|||
'false' AS fsso_status, |
|||
cbp.BizPartnerName |
|||
FROM salSalesOrder AS sso |
|||
LEFT JOIN ( |
|||
SELECT |
|||
BillNo, |
|||
SUM(OAmountWithTax) SumOAmountWithTax |
|||
FROM salSalesOrderDetail |
|||
GROUP BY BillNo |
|||
)AS ssod ON sso.BillNo = ssod.BillNo |
|||
LEFT JOIN comBusinessPartner AS cbp |
|||
ON sso.BizPartnerId = cbp.BizPartnerId |
|||
WHERE sso.BillNo NOT IN |
|||
( |
|||
SELECT FromSalSalesOrder |
|||
FROM arCheckBillDetail |
|||
) |
|||
AND sso.TypeId = 'SP' |
|||
)AS sso_tmp |
|||
LEFT JOIN ( |
|||
SELECT DISTINCT |
|||
c.OrderBillNo, |
|||
'1' AS status |
|||
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 |
|||
)AS awob_tmp |
|||
ON sso_tmp.BillNo = awob_tmp.OrderBillNo |
|||
LEFT JOIN comPerson AS cp -- 員工主檔 |
|||
ON sso_tmp.PersonId = cp.PersonId |
|||
LEFT JOIN comGroupPerson AS cgp |
|||
ON cp. PersonId = cgp.PersonId |
|||
LEFT JOIN comDepartment AS cd -- 部門主檔 |
|||
ON cp.DeptId = cd.DeptId |
|||
WHERE 1=1 |
|||
"; |
|||
$sql .= !empty($contractno) ? " AND sso_tmp.BillNo = '$contractno' " : ""; |
|||
|
|||
// echo "<pre>"; |
|||
// echo $sql; |
|||
// echo "</pre>"; |
|||
// exit; |
|||
|
|||
// $sql .= !empty($contractno) ? " AND sso_tmp.BillNo IN ($contractno)" : ""; |
|||
$data = $conn->query($sql); |
|||
|
|||
function checkCollectMonth($row) |
|||
{ |
|||
$BillDate = $row['BillDate']; |
|||
if (collect_month(strtotime($BillDate)) >= 3) { |
|||
return "<span class='text-danger'>" . collect_month(strtotime($BillDate)) . "</span>"; |
|||
} else { |
|||
return "<span class=''>" . collect_month(strtotime($BillDate)) . "</span>"; |
|||
} |
|||
} |
|||
|
|||
function getFixDetails($conn, $row) |
|||
{ |
|||
$BillNo = $row['BillNo']; |
|||
$sql = " |
|||
SELECT |
|||
ssod.MaterialId, |
|||
cmg.MaterialName, |
|||
ssod.OAmountWithTax |
|||
FROM salSalesOrder AS sso |
|||
LEFT JOIN salSalesOrderDetail AS ssod |
|||
ON sso.BillNo = ssod.BillNo |
|||
LEFT JOIN comMaterialGroup AS cmg |
|||
ON ssod.MaterialId = cmg.MaterialId |
|||
WHERE sso.BillNo = '$BillNo' |
|||
"; |
|||
$data = $conn->query($sql); |
|||
$str = ""; |
|||
foreach ($data as $row) { |
|||
$str .= $row['MaterialId'] . "_"; |
|||
$str .= $row['MaterialName'] . ":"; |
|||
$str .= number_format(intval($row['OAmountWithTax'])) . "<br/>"; |
|||
} |
|||
return $str; |
|||
} |
|||
|
|||
?> |
|||
|
|||
|
|||
<?php if ($user_auth & 2) { ?> |
|||
<!-- <p> |
|||
<a href="board-create.php?function_name=board&<?php echo $token_link; ?>" class="btn btn-info btn-sm"> |
|||
<span class="glyphicon glyphicon-plus"></span> |
|||
</a> |
|||
</p> --> |
|||
<?php |
|||
} |
|||
if ($data) : |
|||
?> |
|||
|
|||
<style> |
|||
table { |
|||
table-layout: fixed; |
|||
width: 100%; |
|||
} |
|||
|
|||
td { |
|||
word-wrap: break-word; |
|||
} |
|||
|
|||
img { |
|||
width: 125px; |
|||
} |
|||
|
|||
.width_style_1 { |
|||
width: 125px; |
|||
} |
|||
|
|||
table { |
|||
width: 100%; |
|||
} |
|||
|
|||
#table_index_filter { |
|||
float: right; |
|||
} |
|||
|
|||
#table_index_paginate { |
|||
float: right; |
|||
} |
|||
|
|||
label { |
|||
display: inline-flex; |
|||
margin-bottom: .5rem; |
|||
margin-top: .5rem; |
|||
|
|||
} |
|||
</style> |
|||
|
|||
<div style="overflow-x:auto;"> |
|||
<form id='myForm' method='post' action='fix_contract_payment_status.php?<?= $token_link ?>'> |
|||
<table class='table query-table table-striped table-bordered display compact' style='width:98%;text-align:center;margin:0 auto'> |
|||
<thead> |
|||
<tr> |
|||
<td colspan="5"> |
|||
<h3 style='text-align:center'>修理-應收款項明細</h3> |
|||
</td> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<tr> |
|||
<th style='text-align:center;vertical-align: middle;'>單據號</th> |
|||
<td style='text-align:center;vertical-align: middle;'> |
|||
<input type="text" class='form-control' id='contractno' name='contractno' value=""> |
|||
</td> |
|||
<td style='text-align:left;vertical-align: middle;'> |
|||
<button type="submit" style='text-align:center; margin:0 auto' class="btn btn-primary btn-sm">查詢</button> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</form> |
|||
</div> |
|||
|
|||
<div style="overflow-x:auto;"> |
|||
<table id="table_index" class="table table-striped table-bordered" style="width:100%"> |
|||
<thead> |
|||
<tr> |
|||
<th style='text-align:center;vertical-align: middle;width:120px;'>營業人員/契約人員</th> |
|||
<th style='text-align:center;vertical-align: middle;width:120px;'>部門</th> |
|||
<th style='text-align:center;vertical-align: middle;width:120px;'>單據號</th> |
|||
<th style='text-align:center;vertical-align: middle;width:120px;'>客戶名稱</th> |
|||
<th style='text-align:center;vertical-align: middle;width:80px;'>單據日期</th> |
|||
<th style='text-align:center;vertical-align: middle;width:50px;'>催收次數</th> |
|||
<th style='text-align:center;vertical-align: middle;width:120px;'>金額</th> |
|||
<th style='text-align:center;vertical-align: middle;width:120px;'>發票狀態</th> |
|||
<th style='text-align:center;vertical-align: middle;width:120px;'>收款狀態</th> |
|||
<th style='text-align:center;vertical-align: middle;width:250px;'>修理明細</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<?php foreach ($data as $row) { ?> |
|||
<tr> |
|||
<td> |
|||
<?php |
|||
echo $row['PersonId']; |
|||
echo "<br/>"; |
|||
echo $row['PersonName']; |
|||
?> |
|||
</td> |
|||
<td> |
|||
<?php echo $row['DeptName']; ?> |
|||
</td> |
|||
<td> |
|||
<?php echo $row['BillNo']; ?> |
|||
</td> |
|||
<td> |
|||
<?php echo $row['BizPartnerName']; ?> |
|||
</td> |
|||
<td> |
|||
<?php echo date('Y/m/d', strtotime($row['BillDate'])); ?> |
|||
</td> |
|||
<td> |
|||
<?php echo $row['awob_status'] == 'true' ? '0' : checkCollectMonth($row); ?> |
|||
</td> |
|||
<td> |
|||
<?php echo number_format(intval($row['SumOAmountWithTax']), 0, '', ','); ?> |
|||
</td> |
|||
<td> |
|||
<?php echo $row['fsso_status'] == 'true' |
|||
? '<span class="text-primary">已開發票</span>' |
|||
: '<span class="text-danger">未開發票</span>'; ?> |
|||
</td> |
|||
<td> |
|||
<?php echo $row['awob_status'] == 'true' |
|||
? '<span class="text-primary">已收款</span>' |
|||
: '<span class="text-danger">未收款</span>'; ?> |
|||
</td> |
|||
<td style='text-align:left;'> |
|||
<?php |
|||
echo getFixDetails($conn, $row); |
|||
?> |
|||
</td> |
|||
</tr> |
|||
<?php } ?> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
<script> |
|||
$(function() { |
|||
document.getElementById('loadingOverlay').classList.add('hidden'); |
|||
}) |
|||
</script> |
|||
<?php |
|||
|
|||
else : |
|||
echo "<h2>There is no record!</h2>"; |
|||
endif; |
|||
|
|||
#代表結束連線 |
|||
mysqli_close($link); |
|||
|
|||
include "footer.php"; |
|||
?> |
@ -0,0 +1,181 @@ |
|||
<?php |
|||
include "header.php"; |
|||
include "css/view/wipwhole-index.php"; |
|||
?> |
|||
<style> |
|||
table { |
|||
table-layout: fixed; |
|||
width: 100%; |
|||
} |
|||
|
|||
td { |
|||
word-wrap: break-word; |
|||
} |
|||
|
|||
img { |
|||
width: 125px; |
|||
} |
|||
|
|||
.width_style_1 { |
|||
width: 125px; |
|||
} |
|||
|
|||
table { |
|||
width: 100%; |
|||
} |
|||
|
|||
#table_index_filter { |
|||
float: right; |
|||
} |
|||
|
|||
#table_index_paginate { |
|||
float: right; |
|||
} |
|||
|
|||
label { |
|||
display: inline-flex; |
|||
margin-bottom: .5rem; |
|||
margin-top: .5rem; |
|||
|
|||
} |
|||
</style> |
|||
|
|||
<div style="overflow-x:auto;"> |
|||
<form id='myForm' method='post' action='maintainance_contract_payment_status.php?<?= $token_link ?>'> |
|||
<table class='table query-table table-striped table-bordered display compact' style='width:98%;text-align:center;margin:0 auto'> |
|||
<thead> |
|||
<tr> |
|||
<td colspan="5"> |
|||
<h3 style='text-align:center'>保養合約-應收款項明細</h3> |
|||
</td> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<tr> |
|||
<th style='text-align:center;vertical-align: middle;'>合約號</th> |
|||
<td style='text-align:center;vertical-align: middle;'> |
|||
<input type="text" class='form-control' id='contractno' name='contractno' value=""> |
|||
</td> |
|||
<td style='text-align:left;vertical-align: middle;'> |
|||
<button type="button" id='serch_btn' onclick='drawDatatable()' style='text-align:center; margin:0 auto' class="btn btn-primary btn-sm">查詢</button> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</form> |
|||
</div> |
|||
|
|||
<div style="overflow-x:auto;"> |
|||
<table id="table_index2" class="table table-striped table-bordered" style="width:100%"> |
|||
<thead> |
|||
<tr> |
|||
<th style='text-align:center;vertical-align: middle;'>營業人員/契約人員</th> |
|||
<th style='text-align:center;vertical-align: middle;'>部門</th> |
|||
<th style='text-align:center;vertical-align: middle;'>合約號</th> |
|||
<th style='text-align:center;vertical-align: middle;width:50px;'>標示號</th> |
|||
<th style='text-align:center;vertical-align: middle;'>電梯編號</th> |
|||
<th style='text-align:center;vertical-align: middle;'>客戶名稱</th> |
|||
<th style='text-align:center;vertical-align: middle;'>預計請款日</th> |
|||
<th style='text-align:center;vertical-align: middle;width:50px;'>催收次數</th> |
|||
<th style='text-align:center;vertical-align: middle;'>應收申請單狀態</th> |
|||
<th style='text-align:center;vertical-align: middle;'>請款金額(未轉應收)</th> |
|||
<th style='text-align:center;vertical-align: middle;'>請款金額(已轉應收)</th> |
|||
<th style='text-align:center;vertical-align: middle;'>應收申請單號</th> |
|||
<th style='text-align:center;vertical-align: middle;'>發票狀態</th> |
|||
<th style='text-align:center;vertical-align: middle;width:50px;'>發票單標示號</th> |
|||
<th style='text-align:center;vertical-align: middle;'>發票單號</th> |
|||
<th style='text-align:center;vertical-align: middle;'>發票明細</th> |
|||
<th style='text-align:center;vertical-align: middle;width:80px;'>發票金額</th> |
|||
<th style='text-align:center;vertical-align: middle;width:120px;'>發票號碼</th> |
|||
<th style='text-align:center;vertical-align: middle;'>核銷</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
|
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
|
|||
<?php |
|||
include "footer.php"; |
|||
?> |
|||
|
|||
<script> |
|||
function drawDatatable() { |
|||
$('#table_index2').DataTable().destroy(); |
|||
$('#table_index2').DataTable({ |
|||
"serverSide": true, |
|||
"ajax": { |
|||
"url": "maintainance_contract_payment_status_modal.php", |
|||
"type": "POST", |
|||
"dataType": "json", |
|||
"data": { |
|||
"user_id": "<?php echo $user_id; ?>", |
|||
"contractno": $("#contractno").val(), |
|||
}, |
|||
}, |
|||
"columns": [{ |
|||
"data": "PersonId" |
|||
}, |
|||
{ |
|||
"data": "DeptName" |
|||
}, |
|||
{ |
|||
"data": "BillNo" |
|||
}, |
|||
{ |
|||
"data": "RowNo" |
|||
}, |
|||
{ |
|||
"data": "CU_MaterialId" |
|||
}, |
|||
{ |
|||
"data": "BizPartnerName" |
|||
}, |
|||
{ |
|||
"data": "CU_EstPayDate" |
|||
}, |
|||
{ |
|||
"data": "checkCollectMonth" |
|||
}, |
|||
{ |
|||
"data": "checkArCheckBillStatus" |
|||
}, |
|||
{ |
|||
"data": "UnTransCheckBLAmtWTax" |
|||
}, |
|||
{ |
|||
"data": "HadTransCheckBLAmtWTax" |
|||
}, |
|||
{ |
|||
"data": "BillNo2" |
|||
}, |
|||
{ |
|||
"data": "arSellInvoiceMaterial" |
|||
}, |
|||
{ |
|||
"data": "RowCode2" |
|||
}, |
|||
{ |
|||
"data": "BillNo3" |
|||
}, |
|||
{ |
|||
"data": "InvoiceName" |
|||
}, |
|||
{ |
|||
"data": "OAmountWithTax" |
|||
}, |
|||
{ |
|||
"data": "InvoiceNo" |
|||
}, |
|||
{ |
|||
"data": "checkArWriteOffBill" |
|||
} |
|||
] |
|||
}); |
|||
} |
|||
|
|||
$(document).ready(function() { |
|||
drawDatatable(); |
|||
}); |
|||
</script> |
@ -0,0 +1,325 @@ |
|||
<?php |
|||
include "database.php"; |
|||
include "fun_global.php"; |
|||
|
|||
function getContractnoDetails($link, $user_id, $department_id, $contractno = null) |
|||
{ |
|||
$sql = " |
|||
SELECT |
|||
c.contractno |
|||
FROM contract AS c |
|||
LEFT JOIN con_maintance_examine_apply AS cmea |
|||
ON c.contractno = cmea.vol_no |
|||
WHERE 1 = 1 |
|||
"; |
|||
|
|||
if (!in_array($department_id, ['210', '220', '240'])) { |
|||
$sql .= " AND cmea.salesman IN (" . getAccountids($link, $user_id) . ")"; |
|||
} |
|||
|
|||
if (!empty($contractno)) { |
|||
$sql .= " |
|||
AND c.contractno = '$contractno' |
|||
"; |
|||
} |
|||
$result = mysqli_query($link, $sql); |
|||
$data = []; |
|||
foreach ($result as $row) { |
|||
array_push($data, $row['contractno']); |
|||
} |
|||
return "'" . implode("','", $data) . "'"; |
|||
} |
|||
|
|||
function getSalesmanNo($link, $contractno) |
|||
{ |
|||
$sql = " |
|||
SELECT |
|||
cmea.salesman |
|||
FROM contract AS c |
|||
LEFT JOIN con_maintance_examine_apply AS cmea |
|||
ON c.contractno = cmea.vol_no |
|||
WHERE 1 = 1 |
|||
AND c.contractno IN ('$contractno') |
|||
"; |
|||
$result = mysqli_query($link, $sql); |
|||
$data = []; |
|||
foreach ($result as $row) |
|||
return $row['salesman']; |
|||
return ""; |
|||
} |
|||
function getSalesmanName($link, $contractno) |
|||
{ |
|||
$sql = " |
|||
SELECT |
|||
a.name |
|||
FROM contract AS c |
|||
LEFT JOIN con_maintance_examine_apply AS cmea |
|||
ON c.contractno = cmea.vol_no |
|||
LEFT JOIN account AS a |
|||
ON cmea.salesman = a.accountid |
|||
WHERE 1 = 1 |
|||
AND c.contractno IN ('$contractno') |
|||
"; |
|||
$result = mysqli_query($link, $sql); |
|||
$data = []; |
|||
foreach ($result as $row) |
|||
return $row['name']; |
|||
return ""; |
|||
} |
|||
|
|||
function getAccountids($link, $user_id) |
|||
{ |
|||
$sql = " |
|||
SELECT |
|||
accountid |
|||
FROM account |
|||
WHERE 1 = 1 |
|||
AND (accountid = '$user_id' |
|||
OR accountid IN ( |
|||
SELECT |
|||
accountid |
|||
FROM account |
|||
WHERE 1 = 1 |
|||
AND manager = '$user_id' |
|||
AND accounttype IN ('B','E','M','W') |
|||
) |
|||
) |
|||
"; |
|||
$result = mysqli_query($link, $sql); |
|||
$data = []; |
|||
foreach ($result as $row) { |
|||
array_push($data, $row['accountid']); |
|||
} |
|||
return "'" . implode("','", $data) . "'"; |
|||
} |
|||
|
|||
function checkArCheckBillStatus($row) |
|||
{ |
|||
$CU_EstPayDate = $row['CU_EstPayDate']; |
|||
$BillNo2 = $row['BillNo2']; |
|||
if (substr($CU_EstPayDate, 0, 6) <= date("Ym")) { |
|||
if (empty($BillNo2)) { |
|||
return "<span class='text-danger'>未轉應收確認單</span>"; |
|||
} else { |
|||
return "<span class='text-primary'>已轉應收確認單</span>"; |
|||
} |
|||
} else { |
|||
return "時間未到"; |
|||
} |
|||
} |
|||
|
|||
function arSellInvoiceMaterial($row) |
|||
{ |
|||
|
|||
$CU_EstPayDate = $row['CU_EstPayDate']; |
|||
$InvoiceName = $row['InvoiceName']; |
|||
|
|||
if (substr($CU_EstPayDate, 0, 6) <= date("Ym")) { |
|||
if (empty($InvoiceName)) { |
|||
return "<span class='text-danger'>未開發票</span>"; |
|||
} else { |
|||
return "<span class='text-primary'>已開發票</span>"; |
|||
} |
|||
} else { |
|||
return "時間未到"; |
|||
} |
|||
} |
|||
|
|||
function checkCollectMonth($row) |
|||
{ |
|||
$CU_EstPayDate = $row['CU_EstPayDate']; |
|||
if (collect_month(strtotime($CU_EstPayDate)) >= 3) { |
|||
return "<span class='text-danger'>" . collect_month(strtotime($CU_EstPayDate)) . "</span>"; |
|||
} else { |
|||
return "<span class=''>" . collect_month(strtotime($CU_EstPayDate)) . "</span>"; |
|||
} |
|||
} |
|||
|
|||
function checkArWriteOffBill($conn, $row) |
|||
{ |
|||
$BillNo = $row['BillNo2']; |
|||
|
|||
$sql = " |
|||
SELECT |
|||
* |
|||
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 c.checkBillNo = '$BillNo' |
|||
"; |
|||
|
|||
$del = $conn->query($sql); |
|||
$i = 0; |
|||
foreach ($del as $row) |
|||
$i++; |
|||
if (empty($i)) { |
|||
return "<span class='text-danger'>未收款</span>"; |
|||
} else { |
|||
return "<span class='text-primary'>已收款</span>"; |
|||
} |
|||
} |
|||
|
|||
function getAllCount($conn, $sql) |
|||
{ |
|||
$result = $conn->query($sql); |
|||
$count = 0; |
|||
foreach ($result as $row) { |
|||
$count++; |
|||
} |
|||
return $count; |
|||
} |
|||
|
|||
// 設置一個空陣列來放資料 |
|||
$data = array(); |
|||
|
|||
$columns = array( |
|||
'PersonId', |
|||
'DeptName', |
|||
'BillNo', |
|||
'RowNo', |
|||
'CU_MaterialId', |
|||
'BizPartnerName', |
|||
'CU_EstPayDate', |
|||
// 'checkCollectMonth', |
|||
// 'checkArCheckBillStatus', |
|||
'UnTransCheckBLAmtWTax', |
|||
'HadTransCheckBLAmtWTax', |
|||
'BillNo2', |
|||
'arSellInvoiceMaterial', |
|||
'RowCode2', |
|||
'BillNo3', |
|||
'InvoiceName', |
|||
'OAmountWithTax', |
|||
'InvoiceNo', |
|||
'checkArWriteOffBill' |
|||
); |
|||
|
|||
$user_id = empty($_POST['user_id']) ? null : $_POST['user_id']; |
|||
$department_id = accountidToDepartId($user_id); |
|||
$contractno = empty($_POST['contractno']) ? '' : getContractnoDetails($link, $user_id, $department_id, $_POST['contractno']); |
|||
$draw = $_POST['draw']; |
|||
$start = $_POST['start']; |
|||
$length = $_POST['length']; |
|||
$order_column = $_POST['order'][0]['column']; |
|||
$order_dir = $_POST['order'][0]['dir']; |
|||
|
|||
$sql = " |
|||
SELECT |
|||
siam.PersonId, |
|||
cd.DeptName, |
|||
cbp.BizPartnerName, |
|||
siamd.RowNo, |
|||
siamd.RowCode, |
|||
siam.BillNo, |
|||
siamd.CU_EstPayDate, |
|||
siamd.UnTransCheckBLAmtWTax , |
|||
siamd.HadTransCheckBLAmtWTax, |
|||
siamd.CU_MaterialId, |
|||
acb_tmp.BillNo2, |
|||
acb_tmp.RowCode2, |
|||
asim.BillNo AS BillNo3, |
|||
asim.InvoiceName, |
|||
asim.OAmountWithTax, |
|||
asi.InvoiceNo |
|||
FROM salIncomeApplyMaster AS siam -- 收入申請單 |
|||
LEFT JOIN salIncomeApplyDetail AS siamd -- 收入申請單明細 |
|||
ON siam.BillNo = siamd.BillNo |
|||
LEFT JOIN comPerson AS cp -- 員工主檔 |
|||
ON siam.PersonId = cp.PersonId |
|||
LEFT JOIN comDepartment AS cd -- 部門主檔 |
|||
ON cp.DeptId = cd.DeptId |
|||
LEFT JOIN ( |
|||
SELECT |
|||
acbd.FromRowCode, |
|||
acb.FromBillNo, |
|||
acbd.BillNo AS BillNo2, |
|||
acbd.RowCode AS RowCode2 |
|||
FROM arCheckBill AS acb -- 應收確認單 |
|||
LEFT JOIN arCheckBillDetail AS acbd -- 應收確認單明細 |
|||
ON acb.BillNo = acbd.BillNo |
|||
WHERE 1 = 1 |
|||
AND acb.TypeId = 'RVS' |
|||
"; |
|||
$sql .= !empty($contractno) ? " AND acb.FromBillNo IN ($contractno) " : ""; |
|||
$sql .= " |
|||
) AS acb_tmp |
|||
ON siamd.RowNo = acb_tmp.FromRowCode |
|||
AND siamd.BillNo = acb_tmp.FromBillNo |
|||
LEFT JOIN arSellInvoiceMaterial AS asim -- 買賣發票明細 |
|||
ON asim.FromBillNo = acb_tmp.BillNo2 |
|||
AND asim.RowCode = acb_tmp.RowCode2 |
|||
LEFT JOIN arSellInvoice AS asi |
|||
ON asim.BillNo = asi.BillNo |
|||
LEFT JOIN comBusinessPartner AS cbp |
|||
ON siam.BizPartnerId = cbp.BizPartnerId |
|||
WHERE 1 = 1 |
|||
"; |
|||
$sql .= !empty($contractno) ? " AND siam.BillNo IN ($contractno)" : ""; |
|||
if (!empty($_POST['search']['value'])) { |
|||
|
|||
$sql .= " |
|||
AND ( |
|||
siam.PersonId LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR cd.DeptName LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR cbp.BizPartnerName LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR siam.BillNo LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR siamd.CU_MaterialId LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR asi.InvoiceNo LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR asim.InvoiceName LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR siamd.CU_EstPayDate LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR siamd.UnTransCheckBLAmtWTax LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR siamd.HadTransCheckBLAmtWTax LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR acb_tmp.BillNo2 LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR asim.OAmountWithTax LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR siamd.RowNo LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR siamd.RowCode LIKE '%" . $_POST['search']['value'] . "%' |
|||
OR acb_tmp.RowCode2 LIKE '%" . $_POST['search']['value'] . "%' |
|||
) |
|||
"; |
|||
} |
|||
$count = getAllCount($conn, $sql); |
|||
$sql .= " ORDER BY " . $columns[$order_column] . " " . $order_dir; |
|||
$sql .= " OFFSET $start ROWS FETCH NEXT $length ROWS ONLY "; |
|||
|
|||
$result = $conn->query($sql); |
|||
$data = []; |
|||
|
|||
foreach ($result as $row) { |
|||
$tmp = []; |
|||
$tmp['PersonId'] = $row['PersonId'] . "<br/>" . accountidToName($row['PersonId']); |
|||
$tmp['DeptName'] = $row['DeptName']; |
|||
$tmp['BillNo'] = $row['BillNo']; |
|||
$tmp['RowNo'] = $row['RowNo']; |
|||
$tmp['CU_MaterialId'] = $row['CU_MaterialId']; |
|||
$tmp['BizPartnerName'] = $row['BizPartnerName']; |
|||
$tmp['CU_EstPayDate'] = date('Y/m/d', strtotime($row['CU_EstPayDate'])); |
|||
$tmp['checkCollectMonth'] = checkCollectMonth($row); |
|||
$tmp['checkArCheckBillStatus'] = checkArCheckBillStatus($row); |
|||
$tmp['UnTransCheckBLAmtWTax'] = number_format(intval($row['UnTransCheckBLAmtWTax']), 0, '', ','); |
|||
$tmp['HadTransCheckBLAmtWTax'] = number_format(intval($row['HadTransCheckBLAmtWTax']), 0, '', ','); |
|||
$tmp['BillNo2'] = $row['BillNo2']; |
|||
$tmp['arSellInvoiceMaterial'] = arSellInvoiceMaterial($row); |
|||
$tmp['RowCode2'] = $row['RowCode2']; |
|||
$tmp['BillNo3'] = $row['BillNo3']; |
|||
$tmp['InvoiceName'] = $row['InvoiceName']; |
|||
$tmp['OAmountWithTax'] = number_format(intval($row['OAmountWithTax']), 0, '', ','); |
|||
$tmp['InvoiceNo'] = $row['InvoiceNo']; |
|||
$tmp['checkArWriteOffBill'] = checkArWriteOffBill($conn, $row); |
|||
array_push($data, $tmp); |
|||
} |
|||
|
|||
echo json_encode(array( |
|||
"draw" => intval($draw), |
|||
"recordsTotal" => $count, |
|||
"recordsFiltered" => $count, |
|||
"data" => $data |
|||
), JSON_UNESCAPED_UNICODE); |
Loading…
Reference in new issue