'簽約', // '2' => '二次款', // '3' => '貨抵工地', // '4' => '材料其他', // '5' => '試車完工', //安裝完畢 // '6' => '交車' //交車 // ]; $pay_kind = [ '1' => '簽約', '2' => '二次款', '3' => '貨抵工地', '4' => '材料其他', '5' => '試車完工', //安裝完畢 '6' => '交車' //交車 ]; $sql = "SELECT * FROM comCustomer WHERE BizPartnerId = :BizPartnerId "; $stmt = $connT8->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,CreatorId,CreateTime,BizPartnerTypeId) VALUES(:BizPartnerId,:BizPartnerName,1,'TW',:WorkTelNo,99999999,:TaxNo,:EnterpriseName,:ContactAddress,:CreatorId,:CreateTime,'10')"; // $sql = "INSERT INTO comBusinessPartner // (BizPartnerId,BizPartnerName,BusinessAttr,CountryId,WorkTelNo,BizToDate,TaxNo,EnterpriseName,ContactAddress,CreatorId,CreateTime,BizPartnerTypeId) // VALUES('$contractno','$partyA',1,'TW','$phone',99999999,'$vat', '$partyA','$partyAaddress','$user_id',$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', $partyA); //企業名稱 $stmt->bindParam(':ContactAddress', $partyAaddress); $stmt->bindParam(':CreatorId', $user_id); $stmt->bindParam(':CreateTime', $createTime); $stmt->execute(); $sql = "INSERT INTO comCustomer (OrgId,BizPartnerTypeId,ConditionId,CurrId,BizPartnerId,PersonId,CreatorId,IsInUsed,InvoiceAddress,CreateTime,InvoiceId)VALUES ('1000','10','0008','TWD',:BizPartnerId,:PersonId,:CreatorId,1,:InvoiceAddress,:CreateTime,'35')"; // $sql = "INSERT INTO comCustomer // (OrgId,BizPartnerTypeId,CurrId,BizPartnerId,PersonId,CreatorId,IsInUsed,InvoiceAddress,CreateTime,InvoiceId) // VALUES('1000','10','TWD','$contractno','$salesman','$user_id',1,'$partyAaddress','$createTime','35')"; $stmt = $connT8->prepare($sql); $stmt->bindParam(':BizPartnerId', $contractno); $stmt->bindParam(':PersonId', $salesman); $stmt->bindParam(':CreatorId', $user_id); $stmt->bindParam(':InvoiceAddress', $partyAaddress); $stmt->bindParam(':CreateTime', $createTime); $stmt->execute(); exit(); } else { // 若客戶資料不為空,更新該客戶資訊。 $sql = "UPDATE comCustomer SET PersonId=:PersonId, ConditionId='0008', CurrId='TWD', InvoiceAddress=:InvoiceAddress, LastOperatorId=:LastOperatorId, LastOperateTime=:LastOperateTime WHERE BizPartnerId=:BizPartnerId "; $stmt = $connT8->prepare($sql); $stmt->bindParam(':PersonId', $salesman); $stmt->bindParam(':InvoiceAddress', $partyAaddress); $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, 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', $partyA); $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', $partyA); $stmt->bindParam(':CreateTime', $createTime); $stmt->bindParam(':CreatorId', $user_id); $stmt->execute(); } $sql = "SELECT * FROM salSalesOrder WHERE BillNo = :BillNo"; $stmt = $connT8->prepare($sql); $stmt->bindParam(':BillNo', $contractno); $contractT8 = $stmt->fetch(PDO::FETCH_ASSOC); if (empty($contractT8)) { foreach ($elevators as $index => $elevator) { $count = 1; // 產品集成維護 $facility_no = $facilityno[$index]; $MaterialName = "$partyA($facility_no)"; $contract_arrival_a = $elevator['contract_arrival_date']; $sql = "SELECT * FROM comMaterial WHERE MaterialId = '$facility_no'"; $stmt = $connT8->prepare($sql); $stmt->execute(); $MaterialisIt = $stmt->fetch(PDO::FETCH_ASSOC); if (empty($MaterialisIt)) { $sql = "INSERT INTO comMaterial (FOrgid,MaterialId,MaterialTypeId,MaterialCategoryId,CreatorId,CreateTime,IsInUsed) VALUES ('1000',:MaterialId,'10','A',:CreatorId,:CreateTime,1)"; $stmt = $connT8->prepare($sql); $stmt->bindParam(':MaterialId', $facility_no); $stmt->bindParam(':CreatorId', $user_id); $stmt->bindParam(':CreateTime', $createTime); $stmt->execute(); $sql = "INSERT INTO comMaterialGroup (MaterialTypeId,MaterialId,MaterialName,MaterialCategoryId,IsInUsed,UnitId,CreatorId,CreateTime) VALUES ('10',:MaterialId,:MaterialName,'A',1,'SET',:CreatorId,:CreateTime)"; $stmt = $connT8->prepare($sql); $stmt->bindParam(':MaterialId', $facility_no); $stmt->bindParam(':MaterialName', $MaterialName); $stmt->bindParam(':CreatorId', $user_id); $stmt->bindParam(':CreateTime', $createTime); $stmt->execute(); $sql = "INSERT INTO comMaterialPurchases (Orgid,MaterialTypeId,MaterialId,CurrId,SUnitId,TaxId,CreatorId,CreateTime) VALUES ('1000','10',:MaterialId,'TWD','SET','ST005',:CreatorId,:CreateTime)"; $stmt = $connT8->prepare($sql); $stmt->bindParam(':MaterialId', $facility_no); $stmt->bindParam(':CreatorId', $user_id); $stmt->bindParam(':CreateTime', $createTime); $stmt->execute(); $sql = "INSERT INTO plsMaterialPlanData (PlanRangeId,MaterialId,FOrgId,MaterialTypeId,CreatorId,CreateTime,DefaultDemandOrg) VALUES (1000,:MaterialId,1000,10,:CreatorId,:CreateTime,1000) "; $stmt = $connT8->prepare($sql); $stmt->bindParam(':MaterialId', $facility_no); $stmt->bindParam(':CreatorId', $user_id); $stmt->bindParam(':CreateTime', $createTime); $stmt->execute(); $sql = "INSERT INTO comMaterialSales (OrgId,MAterialTypeId,MaterialId,CurrId,SUnitId,SupplyOrgId,CreatorId,CreateTime,IsInUsed) VALUES (1000,10,:MaterialId,'TWD','SET',1000,:CreatorId,:CreateTime,1) "; $stmt = $connT8->prepare($sql); $stmt->bindParam(':MaterialId', $facility_no); $stmt->bindParam(':CreatorId', $user_id); $stmt->bindParam(':CreateTime', $createTime); $stmt->execute(); } // 階段收款資訊 $salOrderStagePay_row = []; $equipment_total = 0; $install_total = 0; $equipment_total = $pay_arr['equipment_total']; $install_total = $pay_arr['install_total']; $count_a = 0; $count_month = 1; foreach ($pay_arr['elevotor_pay_detail'] as $key => $detail) { if ($detail['pay_kind'] == 3) { $PlanPayDate = $contract_arrival_a; } else if ($detail['pay_kind'] > 3) { $PlanPayDate = date("Y-m-d", strtotime($contract_arrival_a . '+' . $count_month . ' month')); $count_month++; } else { $PlanPayDate = $signing_date; $count_a++; if ($count_a == 1) { $PlanPayDate = date("Y-m-d", strtotime($signing_date . '+' . $count_a . ' month')); } } $contract_arrival_date = intval(str_replace("-", '', $PlanPayDate)); //貨到工地日 $PayStage = $pay_kind[$detail['pay_kind']]; $PlanPercentage = intval($detail['pay_scale']) / 100; $rows = [ "PayStage" => "$PayStage", //收款階段 "PlanPercentage" => $PlanPercentage, //計劃收款比例(%) "PlanPayAmt" => $detail['pay_amount'], //計劃收款金額 "PlanPayDate" => $contract_arrival_date, //計劃收款日期 1.第一筆都是簽約日 "BillNo" => "$contractno", "RowCode" => $key + 1, "RowNo" => $key + 1, "UnWriteOffOAmount" => $detail['pay_amount'] //未核銷金額 ]; $salOrderStagePay_row[] = $rows; } // 設備 $row1 = [ "TaxId" => "ST005", "RequirementDate" => $signing_date, //出貨日期 "ConsignmentDate" => $signing_date, //發貨日期 "BillNo" => "$contractno", //合約號 "RowCode" => $count, //全部筆數排列 "ItemType" => 1, "MaterialId" => "A40001", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) "SUnitId" => "SET", "SQuantity" => 1, //交易數量 "SPrice" => $equipment_total, //交易價格 "CU_MaterialId" => $facility_no ]; $count++; // 安裝 $row2 = [ "TaxId" => "ST005", "RequirementDate" => $signing_date, //出貨日期 "ConsignmentDate" => $signing_date, //發貨日期 "BillNo" => "$contractno", //合約號 "RowCode" => $count, //全部筆數排列 "ItemType" => 1, "MaterialId" => "A40008", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) "SUnitId" => "SET", "SQuantity" => 1, //交易數量 "SPrice" => $install_total, //交易價格 "CU_MaterialId" => $facility_no ]; $count++; // 產品(作番) $row3 = [ "TaxId" => "ST005", "RequirementDate" => $signing_date, //出貨日期 "ConsignmentDate" => $signing_date, //發貨日期 "BillNo" => "$contractno", //合約號 "RowCode" => $count, //全部筆數排列 "ItemType" => 0, "MaterialId" => "$facility_no", //1.設備(A40001)、2.安裝(A4008)、3.作番號(作番) "SUnitId" => "SET", "SQuantity" => 1, //交易數量 "SPrice" => 0, //交易價格 "CU_MaterialId" => $facility_no // 歸屬作番號 ]; $count++; $SubOrder_row[] = $row1; $SubOrder_row[] = $row2; $SubOrder_row[] = $row3; $count++; } $MainSalesOrder_row = [ "BillNo" => "$contractno", //合約單號 "BillDate" => $signing_date, //簽約日期 "TypeId" => "SO", // "FOrgId" => "1000", "OrgId" => "1000", "ModeId" => "M", // T汰改 M新梯 "BizPartnerId" => "$contractno", //客戶代碼 "CurrId" => "TWD", "CurrOAmount" => 1, "CurrLAmount" => 1, "PersonId" => "$salesman", //業務人員 "DueToId" => "$contractno", //債務方 "TradeConditionId" => "", "TaxId" => "ST005", "CreditorCompId" => "1001", "CreditorOrgId" => "1000", "CreatorId" => "$user_id" // "CompId" => "1001", // "CreditorCurrOAmount" => 1, // "CreditorCurrLAmount" => 1 ]; $MainSalesOrder = [ "name" => "MainSalesOrder", 'rows' => [$MainSalesOrder_row] ]; $SubOrder = [ "name" => "SubOrder", "rows" => $SubOrder_row ]; $salOrderStagePay = [ "name" => "salOrderStagePay", "rows" => $salOrderStagePay_row ]; $API_body = []; $API_body[] = $MainSalesOrder; $API_body[] = $SubOrder; $API_body[] = $salOrderStagePay; echo "
"; print_r(json_encode($API_body, JSON_UNESCAPED_UNICODE)); echo ""; // $api_url = 'http://10.10.145.2:880/twWebAPI/V1/SALSALESORDER/PostERPData'; //正式區 $api_url = "http://60.244.87.101:880/twWebAPI/V1/SALSALESORDER/PostERPData"; //測試區 $result = T8salIncomeApply($API_body, $api_url); echo "
"; print_r($result); echo ""; if (!empty($result) && ($result['Status'] == 'Fails' || $result['Status'] == 'Error')) { $Error_msg = $result['ErrorMsg']; echo ""; exit(); // echo $result['ErrorMsg']; // echo ""; } } else { echo '資料已新增過,請洽資訊人員'; // exit(); } // $connT8->commit(); // } catch (PDOException $e) { // $connT8->rollback(); // header("HTTP/1.1 500 Internal Server Error"); // die('Error!:' . $e->getMessage()); // } }