'; // print_r($elevators); // echo ''; // exit; $files = !empty($_FILES['files']) ? $_FILES['files'] : null; $files_id = null; $fail_arr = []; if (empty($contractno)) $fail_arr[] = '合約號為必填'; if (empty($customer)) $fail_arr[] = '客戶名稱為必填'; if (empty($manager)) $fail_arr[] = '負責人為必填'; if (empty($vat)) $fail_arr[] = '統編/身分證為必填'; if (empty($case_name)) $fail_arr[] = '案名為必填'; if (empty($linkman)) $fail_arr[] = '聯絡人為必填'; if (empty($lm_tel)) $fail_arr[] = '聯絡人電話為必填'; if (empty($address)) $fail_arr[] = '地址為必填'; if (empty($salesman)) $fail_arr[] = '營業員為必填'; if (empty($qc)) $fail_arr[] = '請選擇QC或官檢'; if (count($fail_arr) > 0) { header("HTTP/1.1 422 Unprocessable Entity"); echo json_encode($fail_arr); exit(); } //create facility table $createFacilityNo = new CreateFacilityNo(); $dailyNecessities = [ 'MAE100' => 'X', 'MAM200' => 'W', 'MAH100' => 'H', 'MAQ100' => 'Z', 'MAF100' => 'F', 'MAZ100' => 'B', ]; $arr = []; // 建立作番號 foreach ($elevators_detail_arr as $elevator) { // $spec = explode('-', $elevator['item_spec']); $arr[] = $dailyNecessities[$elevator['spec']]; } $facilityno = $createFacilityNo->makeMFacilityNo('M', $arr, intval($elevators_nums)); echo '
';
    print_r($facilityno);
    echo '
'; exit(); $conn->beginTransaction(); $sql_str = "SELECT accountid, name FROM account WHERE accountid = :accountid ORDER BY create_at DESC"; $stmt = $conn->prepare($sql_str); $stmt->bindParam(":accountid", $salesman); $stmt->execute(); $saleman = $stmt->fetch(PDO::FETCH_ASSOC); $salesman_name = $saleman['name']; if (!empty($files)) { $englisharr = range('a', 'z'); $files = $_FILES['files']; $newfiles = []; foreach ($files as $file) { $i = 0; //新陣列的索引編號 foreach ($file as $key => $val) { $newfiles[$i]['name'] = $files['name'][$key]; $newfiles[$i]['type'] = $files['type'][$key]; $newfiles[$i]['tmp_name'] = $files['tmp_name'][$key]; $newfiles[$i]['error'] = $files['error'][$key]; $newfiles[$i]['size'] = $files['size'][$key]; $i++; } //foreach 第2層 end } $max_size = 4096 * 4096; //設定允許上傳檔案容量的最大值(1M) $allow_ext = array('jpeg', 'jpg', 'png', 'JPG', 'JPEG', 'PNG', 'GIF'); //設定允許上傳檔案的類型 $path = '../images/contracts/'; if (!file_exists($path)) { mkdir($path); } $msg_result = ''; //負責接收所有檔案檢測後的回傳訊息 $datetime = (string)date('YmdHis'); $files_id = 'm' . $datetime; // 保養=>b + 日期時間 foreach ($newfiles as $key => $file) { $randNum = rand(1000, 9999); $randEnglish = $englisharr[rand(0, 25)]; $file_name = 'm' . (string)date('YmdHis') . $randNum . $randEnglish . $randNum . $file['name']; $msg = upload_chk($file, $path, $max_size, $allow_ext, $file_name); if ($msg == 1) { $msg = '檔案傳送成功!'; $sql_str = "INSERT INTO contract_back_files (files_id, file_name, file_mime, file_size, created_at, created_by) VALUES (:files_id, :file_name, :file_mime, :file_size, :created_at, :created_by)"; $stmt = $conn->prepare($sql_str); $stmt->bindParam(':files_id', $files_id); $stmt->bindParam(':file_name', $file_name); $stmt->bindParam(':file_mime', $file['type']); $stmt->bindParam(':file_size', $file['size']); $stmt->bindParam(':created_at', $created_at); $stmt->bindParam(':created_by', $created_by); $stmt->execute(); } else { throw new PDOException('檔案上傳失敗:' . $msg); } $msg_result .= '第' . ($key + 1) . '個上傳檔案的結果:' . $msg . '
'; $src_name = $path . $file['name']; if (file_exists($src_name)) { //副檔名 $extname = pathinfo($src_name, PATHINFO_EXTENSION); //主檔名 $basename = basename($src_name, '.' . $extname); } } } else { $files = null; } $sql_str = "INSERT INTO contract_m_signed_back (contract_no, customer, manager, vat, case_name, linkman, lm_tel, address, salesman, salesman_name, files_id, created_at, created_by, qc_official_type) VALUES (:contract_no, :customer, :manager, :vat, :case_name, :linkman, :lm_tel, :address, :salesman, :salesman_name, :files_id, :created_at, :created_by, :qc)"; $stmt = $conn->prepare($sql_str); $stmt->bindParam(":contract_no", $contractno); $stmt->bindParam(":customer", $customer); $stmt->bindParam(":manager", $manager); $stmt->bindParam(":vat", $vat); $stmt->bindParam(":case_name", $case_name); $stmt->bindParam(":linkman", $linkman); $stmt->bindParam(":lm_tel", $lm_tel); $stmt->bindParam(":address", $address); $stmt->bindParam(":salesman", $salesman); $stmt->bindParam(":salesman_name", $salesman_name); $stmt->bindParam(":files_id", $files_id); $stmt->bindParam(":created_at", $created_at); $stmt->bindParam(":created_by", $created_by); $stmt->bindParam(":qc", $qc); $stmt->execute(); $result = $conn->commit(); if ($result) { header("HTTP/1.1 201 Created"); } } catch (PDOException $e) { $conn->rollback(); header("HTTP/1.1 500 Internal Server Error"); die('Error!:' . $e->getMessage()); } } function T8Insert($data) { require_once("../connt8.php"); $contractno = $data['contractno']; $partyA = $data['customer']; $phone = $data['lm_tel']; $vat = $data['vat']; $partyAaddress = $data['address']; $user_id = $data['user_id']; $salesman = $data['salesman']; $createAt = date("Y-m-dH-i-s"); $elevators[] = $data['elevators']; $createTime = str_replace('-', '', $createAt); $connT8->beginTransaction(); $sql = "SELECT * FROM comCustomer WHERE BizPartnerId = :BizPartnerId"; $stmt = $conn->prepare($sql); $stmt->bindParam(':BizPartnerId', $contractno); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); // 新增客戶 table if (empty($result)) { // 若 客戶資料為空,新增一筆到 comCustomer // 新增客戶資料 $sql = "INSERT INTO comBusinessPartner (BizPartnerId,BizPartnerName,BusinessAttr,CountryId,WorkTelNo,BizToDate,TaxNo,EnterpriseName,ContactAddress,EMail,CreatorId,CreateTime,BizPartnerTypeId) VALUES(:BizPartnerId,:BizPartnerName,1,'TW',:WorkTelNo,99999999,:TaxNo,:EnterpriseName,:ContactAddress,:EMail,:CreatorId,:CreateTime,'10')"; $stmt = $connT8->prepare($sql); $stmt->bindParam(':BizPartnerId', $contractno); $stmt->bindParam(':BizPartnerName', $partyA); //客戶名稱 $stmt->bindParam(':WorkTelNo', $phone); $stmt->bindParam(':TaxNo', $vat); // $stmt->bindParam(':EnterpriseName', $customer); //企業名稱 $stmt->bindParam(':ContactAddress', $partyAaddress); $stmt->bindParam(':EMail', $email); $stmt->bindParam(':CreatorId', $user_id); $stmt->bindParam(':CreateTime', $createTime); $stmt->execute(); $sql = "INSERT INTO comCustomer (OrgId,BizPartnerTypeId,CurrId,BizPartnerId,PersonId,CreatorId,IsInUsed,InvoiceAddress,CreateTime,InvoiceId) VALUES('1000','10','TWD',:BizPartnerId,:PersonId,:CreatorId,1,:InvoiceAddress,:CreateTime,'35')"; $stmt = $connT8->prepare($sql); $stmt->bindParam(':BizPartnerId', $contractno); $stmt->bindParam(':PersonId', $salesman); $stmt->bindParam(':CreatorId', $user_id); $stmt->bindParam(':InvoiceAddress', $address); $stmt->bindParam(':CreateTime', $createTime); $stmt->execute(); } else { // // 若客戶資料不為空,更新該客戶資訊。 $sql = "UPDATE comCustomer SET PersonId=:PersonId, InvoiceAddress=:InvoiceAddress, LastOperatorId=:LastOperatorId, LastOperateTime=:LastOperateTime WHERE BizPartnerId=:BizPartnerId "; $stmt = $connT8->prepare($sql); $stmt->bindParam(':PersonId', $salesman); $stmt->bindParam(':InvoiceAddress', $address); $stmt->bindParam(':LastOperatorId', $user_id); $stmt->bindParam(':LastOperateTime', $createTime); $stmt->bindParam(':BizPartnerId', $contractno); $stmt->execute(); $sql = "UPDATE comBusinessPartner SET BizPartnerName=:BizPartnerName, WorkTelNo=:WorkTelNo, TaxNo=:TaxNo, EnterpriseName=:EnterpriseName, ContactAddress=:ContactAddress, EMail=:EMail, LastOperatorId=:LastOperatorId, LastOperateTime=:LastOperateTime WHERE BizPartnerId = :BizPartnerId "; $stmt = $connT8->prepare($sql); $stmt->bindParam(':BizPartnerName', $partyA); $stmt->bindParam(':WorkTelNo', $phone); $stmt->bindParam(':TaxNo', $vat); $stmt->bindParam(':EnterpriseName', $customer); $stmt->bindParam(':ContactAddress', $partyAaddress); $stmt->bindParam(':EMail', $email); $stmt->bindParam(':LastOperatorId', $user_id); $stmt->bindParam(':LastOperateTime', $createTime); $stmt->bindParam(':BizPartnerId', $contractno); $stmt->execute(); } $sql = "SELECT * FROM comProject WHERE ProjectId = :ProjectId"; $stmt = $connT8->prepare($sql); $stmt->bindParam(':ProjectId', $contractno); $stmt->execute(); $resultProject = $stmt->fetchAll(PDO::FETCH_ASSOC); if (empty($resultProject)) { //新增於 comProject。合約 table $sql = "INSERT INTO comProject(ProjectId,ProjectName,TypeId,CreateTime,CreatorId,IsInUsed) VALUES(:ProjectId,:ProjectName,'C0',:CreateTime,:CreatorId,1)"; $stmt = $connT8->prepare($sql); $stmt->bindParam(':ProjectId', $contractno); $stmt->bindParam(':ProjectName', $customer); $stmt->bindParam(':CreateTime', $createTime); $stmt->bindParam(':CreatorId', $user_id); $stmt->execute(); } } function BounsCount($data, $conn) { // echo '
';
  // print_r($data);
  // echo '
'; // exit; require_once("../../bonus/elevator_new/elevator_new_deal_bonus.php"); $signing_date = $data['signing_date']; $bonus_v1_0_date = '2024-01-02'; $bonus_v2_0_date = '2024-01-03'; $contractType = [ '1' => 'strategy_customer', '2' => 'general_customer' ]; $contract_type = $data['contract_type']; $type = $contractType[$contract_type]; //戰略客戶 or 一般客戶 $elevator_knockdown_price = $data['price_total']; //受價總額 $salesman = $data['salesman']; $manager = $data['manager']; $result_bonus = []; if ($signing_date <= $bonus_v1_0_date) { $ver = '1.0'; $result_bonus = elevator_new_deal_bonus_v1_0($ver, $type, $elevator_knockdown_price, $salesman, $manager); } else if ($signing_date >= $bonus_v2_0_date) { $ver = '2.0'; // $result_bonus = elevator_new_deal_bonus_v2_0($ver,$contract_type,); } echo '
';
  print_r($result_bonus);
  echo '
'; exit(); try { } catch (PDOException $e) { header("HTTP/1.1 500 Internal Server Error"); die('Error!:' . $e->getMessage()); } }