|
@ -8,17 +8,83 @@ use PhpOffice\PhpSpreadsheet\Writer\Xlsx as xls; |
|
|
use PhpOffice\PhpSpreadsheet\Reader\Xlsx; |
|
|
use PhpOffice\PhpSpreadsheet\Reader\Xlsx; |
|
|
|
|
|
|
|
|
$arrayData = []; |
|
|
$arrayData = []; |
|
|
$sql = "SELECT |
|
|
echo "合約號,部門,經理,營業員,簽約款,二次款,貨抵工地款,安裝款,試車款,交車款,取得許可證約交款,取得許可函後6個月約交款,狀態</br>"; |
|
|
|
|
|
|
|
|
|
|
|
// $T8_array = mysqli_fetch_all($T8_array, MYSQLI_ASSOC); |
|
|
|
|
|
|
|
|
|
|
|
// $sql_depid = "SELECT department_id, name from department"; |
|
|
|
|
|
// $dept_query = mysqli_query($link, $sql_depid); |
|
|
|
|
|
// $deptype = mysqli_fetch_all($dept_query, MYSQLI_ASSOC); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$sql_contract = "SELECT a.BillNo, a.PayStage, a.PlanPayAmt FROM salOrderStagePay AS a |
|
|
|
|
|
LEFT JOIN salSalesOrder AS s on a.BillNo = s.BillNo WHERE s.ModeId = 'M' AND (s.CurrentState=2 OR s.CurrentState=4) "; |
|
|
|
|
|
$contract = $conn->query($sql_contract); |
|
|
|
|
|
foreach ($contract as $cont) { |
|
|
|
|
|
// print_r($cont); |
|
|
|
|
|
// echo "<br>"; |
|
|
|
|
|
$BillNo = $cont['BillNo']; |
|
|
|
|
|
$PayStage = $cont['PayStage']; |
|
|
|
|
|
$PayAmount = $cont['PlanPayAmt']; |
|
|
|
|
|
|
|
|
|
|
|
if (isset($arrayData[$BillNo])) { |
|
|
|
|
|
if (stristr($PayStage, '二次款') || stristr($PayStage, '出貨前') || stristr($PayStage, '簽約後') || stristr($PayStage, '簽訂後') || stristr($PayStage, '建照核發時') || stristr($PayStage, '簽約60')) { |
|
|
|
|
|
$arrayData[$BillNo][5] = $PayAmount; |
|
|
|
|
|
} elseif ($PayStage == '簽約' || stristr($PayStage, '簽定') || stristr($PayStage, '簽訂') || stristr($PayStage, '訂金')) { |
|
|
|
|
|
$arrayData[$BillNo][4] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '貨抵工地') || stristr($PayStage, '貨底工地')) { |
|
|
|
|
|
$arrayData[$BillNo][6] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '安裝')) { |
|
|
|
|
|
$arrayData[$BillNo][7] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '試車')) { |
|
|
|
|
|
$arrayData[$BillNo][8] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '交車') || stristr($PayStage, '完工') || stristr($PayStage, '驗收')) { |
|
|
|
|
|
$arrayData[$BillNo][9] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '取得合格函') || stristr($PayStage, '取得許可函')) { |
|
|
|
|
|
$arrayData[$BillNo][10] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '得合格函後6個月') || stristr($PayStage, '核可函取得後6個月')) { |
|
|
|
|
|
$arrayData[$BillNo][11] = $PayAmount; |
|
|
|
|
|
} else { |
|
|
|
|
|
$arrayData[$BillNo][12] = $PayAmount; |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
$arrayData[$BillNo] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; |
|
|
|
|
|
if (stristr($PayStage, '二次款') || stristr($PayStage, '出貨前') || stristr($PayStage, '簽約後') || stristr($PayStage, '簽訂後') || stristr($PayStage, '建照核發時') || stristr($PayStage, '簽約60')) { |
|
|
|
|
|
$arrayData[$BillNo][5] = $PayAmount; |
|
|
|
|
|
} elseif ($PayStage == '簽約' || stristr($PayStage, '簽定') || stristr($PayStage, '簽訂') || stristr($PayStage, '訂金')) { |
|
|
|
|
|
$arrayData[$BillNo][4] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '貨抵工地') || stristr($PayStage, '貨底工地')) { |
|
|
|
|
|
$arrayData[$BillNo][6] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '安裝')) { |
|
|
|
|
|
$arrayData[$BillNo][7] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '試車')) { |
|
|
|
|
|
$arrayData[$BillNo][8] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '交車') || stristr($PayStage, '完工') || stristr($PayStage, '驗收')) { |
|
|
|
|
|
$arrayData[$BillNo][9] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '取得合格函') || stristr($PayStage, '取得許可函')) { |
|
|
|
|
|
$arrayData[$BillNo][10] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '得合格函後6個月') || stristr($PayStage, '核可函取得後6個月')) { |
|
|
|
|
|
$arrayData[$BillNo][11] = $PayAmount; |
|
|
|
|
|
} else { |
|
|
|
|
|
$arrayData[$BillNo][12] = $PayAmount; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
foreach ($arrayData as $key => $value) { |
|
|
|
|
|
$sql = "SELECT |
|
|
tmp2.*, |
|
|
tmp2.*, |
|
|
d.name AS depart_name |
|
|
d.name AS depart_name |
|
|
FROM( |
|
|
FROM( |
|
|
SELECT |
|
|
SELECT |
|
|
a.manager, |
|
|
a.manager, |
|
|
|
|
|
a2.name as manager_name, |
|
|
a.name, |
|
|
a.name, |
|
|
a.department_id, |
|
|
a.department_id, |
|
|
w.salesid, |
|
|
w.salesid, |
|
|
w.contractno, |
|
|
w.contractno, |
|
|
w.facilityno, |
|
|
w.facilityno, |
|
|
|
|
|
w.estimated_shipping_date, |
|
|
|
|
|
w.actual_tofactory_date, |
|
|
w.real_arrival_date, |
|
|
w.real_arrival_date, |
|
|
w.install_end_date, |
|
|
w.install_end_date, |
|
|
w.tryrun_end_date, |
|
|
w.tryrun_end_date, |
|
@ -28,7 +94,8 @@ left join account AS a |
|
|
ON w.salesid = a.accountid |
|
|
ON w.salesid = a.accountid |
|
|
left join account AS a2 |
|
|
left join account AS a2 |
|
|
ON a2.accountid = a.manager |
|
|
ON a2.accountid = a.manager |
|
|
where w.status = '1' |
|
|
where w.status = '1' AND w.contractno='" . $key . "'" . " |
|
|
|
|
|
|
|
|
)AS tmp2 |
|
|
)AS tmp2 |
|
|
left join ( |
|
|
left join ( |
|
|
SELECT DISTINCT |
|
|
SELECT DISTINCT |
|
@ -38,84 +105,28 @@ FROM department |
|
|
|
|
|
|
|
|
) AS d |
|
|
) AS d |
|
|
ON d.department_id = tmp2.department_id"; |
|
|
ON d.department_id = tmp2.department_id"; |
|
|
|
|
|
$facitities = ""; |
|
|
|
|
|
|
|
|
$wipwhole_array = mysqli_query($link, $sql); |
|
|
$wipwhole_array = mysqli_query($link, $sql); |
|
|
// $T8_array = mysqli_fetch_all($T8_array, MYSQLI_ASSOC); |
|
|
foreach ($wipwhole_array as $wip) { |
|
|
foreach ($wipwhole_array as $wip) { |
|
|
$value[0] = $wip['depart_name']; |
|
|
// print_r($wip); |
|
|
$value[1] = $wip['manager_name']; |
|
|
// echo "<br>"; |
|
|
$value[2] = $wip['name']; |
|
|
} |
|
|
if ($wip['delivery_date'] != NULL) { |
|
|
echo "<br>"; |
|
|
$facitities .= $wip['facilityno'] . "(" . $wip['delivery_date'] . "已移交);\n"; |
|
|
// $sql_depid = "SELECT department_id, name from department"; |
|
|
} elseif ($wip['tryrun_end_date'] != NULL) { |
|
|
// $dept_query = mysqli_query($link, $sql_depid); |
|
|
$facitities .= $wip['facilityno'] . "(" . $wip['tryrun_end_date'] . "試車完畢);\n"; |
|
|
// $deptype = mysqli_fetch_all($dept_query, MYSQLI_ASSOC); |
|
|
} elseif ($wip['install_end_date'] != NULL) { |
|
|
|
|
|
$facitities .= $wip['facilityno'] . "(" . $wip['install_end_date'] . "安裝完畢);\n"; |
|
|
|
|
|
} elseif ($wip['real_arrival_date'] != NULL) { |
|
|
$sql_contract = "SELECT a.BillNo, a.PayStage, a.PlanPayAmt FROM salOrderStagePay AS a |
|
|
$facitities .= $wip['facilityno'] . "(".$wip['real_arrival_date'] . "貨抵工地);\n"; |
|
|
LEFT JOIN salSalesOrder AS s on a.BillNo = s.BillNo WHERE s.ModeId = 'M'"; |
|
|
} elseif ($wip['actual_tofactory_date'] != NULL) { |
|
|
$contract = $conn->query($sql_contract); |
|
|
$facitities .= $wip['facilityno'] . "(" . $wip['actual_tofactory_date'] . "實際到觀音日);\n"; |
|
|
foreach ($contract as $cont) { |
|
|
}elseif ($wip['estimated_shipping_date'] != NULL) { |
|
|
// print_r($cont); |
|
|
$facitities .= $wip['facilityno'] . "(" . $wip['estimated_shipping_date'] . "預計到港);\n"; |
|
|
// echo "<br>"; |
|
|
}else { |
|
|
$BillNo = $cont['BillNo']; |
|
|
$facitities .= $wip['facilityno'] . "(預計到港日待確認);\n"; |
|
|
$PayStage = $cont['PayStage']; |
|
|
|
|
|
$PayAmount = $cont['PlanPayAmt']; |
|
|
|
|
|
|
|
|
|
|
|
if (isset($arrayData[$BillNo])) { |
|
|
|
|
|
if ($PayStage == '簽約' || stristr($PayStage, '簽定') || stristr($PayStage, '簽訂') || stristr($PayStage, '訂金')) { |
|
|
|
|
|
$arrayData[$BillNo][0] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '二次款') || stristr($PayStage, '出貨前') || stristr($PayStage, '簽約後') || stristr($PayStage, '簽訂後') || stristr($PayStage, '建照核發時')) { |
|
|
|
|
|
$arrayData[$BillNo][1] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '貨抵工地')||stristr($PayStage, '貨底工地')) { |
|
|
|
|
|
$arrayData[$BillNo][2] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '安裝')) { |
|
|
|
|
|
$arrayData[$BillNo][3] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '試車')) { |
|
|
|
|
|
$arrayData[$BillNo][4] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '交車') || stristr($PayStage, '完工') || stristr($PayStage, '驗收')) { |
|
|
|
|
|
$arrayData[$BillNo][5] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '取得合格函') || stristr($PayStage, '取得許可函')) { |
|
|
|
|
|
$arrayData[$BillNo][6] = $PayAmount; |
|
|
|
|
|
} elseif (stristr($PayStage, '得合格函後6個月') || stristr($PayStage, '核可函取得後6個月')) { |
|
|
|
|
|
$arrayData[$BillNo][7] = $PayAmount; |
|
|
|
|
|
}else{ |
|
|
|
|
|
$arrayData[$BillNo][8] = $PayAmount; |
|
|
|
|
|
} |
|
|
} |
|
|
} else { |
|
|
|
|
|
|
|
|
|
|
|
$arrayData[$BillNo] = [0, 0, 0, 0, 0, 0, 0, 0]; |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
echo $key . "," . $value[0] . "," . $value[1] . "," . $value[2] . "," . $value[4] . "," . $value[5] . "," . $value[6] . "," . $value[7] . "," . $value[8] . "," . $value[9] . "," . $value[10] . "," . $value[11] . ",". $facitities . "<br>"; |
|
|
// echo "<br>"."--------------------------------"."<br>"; |
|
|
|
|
|
|
|
|
|
|
|
// array_push($arrayData,$payment); |
|
|
|
|
|
// print_r($payment); |
|
|
|
|
|
// echo "<br>---------------------------<br>"; |
|
|
|
|
|
} |
|
|
} |
|
|
foreach ($arrayData as $key => $value) { |
|
|
|
|
|
print_r($key); |
|
|
|
|
|
echo "<br>"; |
|
|
|
|
|
print_r($value); |
|
|
|
|
|
echo "<br>-----------------------------<br>"; |
|
|
|
|
|
} |
|
|
|
|
|
echo "<br>###########################<br>"; |
|
|
|
|
|
|
|
|
|
|
|
//產生excel |
|
|
|
|
|
// $spreadsheet = new Spreadsheet(); |
|
|
|
|
|
// $sheet = $spreadsheet->getActiveSheet(); |
|
|
|
|
|
// $colArr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', |
|
|
|
|
|
// 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', |
|
|
|
|
|
// 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', |
|
|
|
|
|
// 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', |
|
|
|
|
|
// 'AW', 'AX', 'AY', 'AZ', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', |
|
|
|
|
|
// 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO']; |
|
|
|
|
|
// $colTitleArr = ['合約號','付款階段','付款金額']; |
|
|
|
|
|
// $sheet->setTitle('預收款清單'); |
|
|
|
|
|
// for ($i = 0; $i <count($colArr); $i++){ |
|
|
|
|
|
// $sheet->setCellValue($colArr[$i].'1', $colTitleArr[$i]); |
|
|
|
|
|
// } |
|
|
|
|
|
// $i=2; |
|
|
|
|
|
// for ($j=0; $j <count($payment); $j++){ |
|
|
|
|
|
// $sheet->setCellValue($colArr[$j].$i, $payment[$j][$i]); |
|
|
|
|
|
// $i++; |
|
|
|
|
|
// } |
|
|
|
|
|