You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

112 lines
3.5 KiB

<?php
#error_reporting(E_ALL);
#ini_set('display_errors', "On");
ob_start();
require_once "../database.php";
$yyyymm = '';
$bank_no = '';
$customer_id = '';
$customer_name = '';
$kind = '';
$pay_date = '';
$amount_payable = '';
$start_date_payable = '';
$end_date_payable = '';
$creater = '';
#excel字段與mysql表字段映射
$excel_field_mapping = [
'E5' => "bank_no",
'E7' => "start_date_payable",
'L7' => "end_date_payable",
#下面为列表
'A12' => "pay_account",
'G12' => "customer_id",
'M12' => "customer_name",
'P12' => "kind",
'R12' => "pay_date",
'T12' => "amount_payable",
'X12' => "pay_status"
//18 => "enter_dtae",
];
if ($_SERVER["REQUEST_METHOD"] == "POST") {
include "../header.php";
// 载入db.php来连结资料库
require_once "../database.php";
require_once '../PHPExcel/PHPExcel.php';
require_once '../PHPExcel/IOFactory.php';
$file_name = $_FILES["file"]["name"];
$temp_file_name = $_FILES["file"]["tmp_name"];
$target_dir = "../inv-uploads/";
//if (is_dir($target_dir) || @mkdir($target_dir, '0777'));
$target_file = strtolower($target_dir . strtotime("now") . "." . pathinfo($file_name, PATHINFO_EXTENSION));
$EXTENSION = pathinfo($target_file, PATHINFO_EXTENSION);
if (move_uploaded_file($temp_file_name, $target_file)) {
if ($EXTENSION == 'xls') {
$objReader = PHPExcel_IOFactory::createReader('Excel5'); //支持xls
} else {
$objReader = PHPExcel_IOFactory::createReader('Excel2007'); //支持xlsx是
}
$objPHPExcel = $objReader->load($target_file); //读取上传到服务器的文件
$sheet = $objPHPExcel->getSheet(0); //拿到第一个sheet数据
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
$highestColumn = PHPExcel_Cell::columnIndexFromString($highestColumn); // 转换字母为对应的统计数字;
$excelArray = array();
for ($row = 12; $row < $highestRow - 3; $row += 3) {
$data = [];
foreach ($excel_field_mapping as $key => $val) {
//if ($_val == "") return;
$_key = strlen($key) == 3 ? (substr($key, 0, 1) . $row) : $key;
$value = $sheet->getCell($_key)->getValue();
$_key2 = strlen($key) == 3 ? (substr($key, 0, 1) . '12') : $key;
$data[$excel_field_mapping[$_key2]] = (empty($value) || $value == '') ? 'null' : "'" . $value . "'"; //读取excel数据到数组
}
$data['yyyymm'] = $_POST['yyyymm'];
$data['form_key'] = $_POST['form_key'];
$db_query1 = 'insert into paid_customer_detail(' . implode(array_keys($data), ',') . ') values (' . implode(array_values($data), ',') . ')';
// echo $db_query1;
mysqli_query($link, $db_query1);
}
#从ec_purchase_order找出客户和合计金额等于销账单中客户和合计金额的记录
#将ec_purchase_order的id复制给paid_customer_detail 的ec_id栏位
$sql_update_ec_id = "UPDATE appwms.paid_customer_detail a
SET ec_id = (
SELECT
b.id
FROM
ec_purchase_order b
WHERE
b.id NOT IN (
SELECT
c.ec_id
FROM
appwms.paid_customer_detail c
WHERE
c.ec_id IS NOT NULL
)
AND a.customer_id= substring(b.customerid, 2)
AND a.amount_payable = b.summary_price
order by b.enter_date asc limit 0,1
) where a.form_key ='" . $_POST['form_key'] . "'
";
mysqli_query($link, $sql_update_ec_id);
if (mysqli_affected_rows($link) > 0) {
$success_in++;
} elseif (mysqli_affected_rows($link) == 0) {
$fail_in++;
var_dump($data[$excel_field_mapping[$column]]);
}
mysqli_close($link);
}
}
header("location: paid_customer_detail.php");
die();