Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
此代码不会每次使用Quickbooks ConsoleByte PHP开发工具包时都保存行项目_Php_Quickbooks Online - Fatal编程技术网

此代码不会每次使用Quickbooks ConsoleByte PHP开发工具包时都保存行项目

此代码不会每次使用Quickbooks ConsoleByte PHP开发工具包时都保存行项目,php,quickbooks-online,Php,Quickbooks Online,我在Quickbooks中有标记为00001到00020的行项目 对于基本的“计划”行,我的第一个发票行总是在月初。然后,当我单击日历日期时,输入最多10个字段值,然后按“提交”,一个javascript例程触发并调用此附加脚本 如果我在POST var中传递一个非零的数字qty,它将导致在现有发票上创建一个行项目,并将结果作为json返回,该json是用“echo json_encode(array('result'=>'success')”创建的,类似于这样的内容 有时有效,有时无效 我一定

我在Quickbooks中有标记为00001到00020的行项目

对于基本的“计划”行,我的第一个发票行总是在月初。然后,当我单击日历日期时,输入最多10个字段值,然后按“提交”,一个javascript例程触发并调用此附加脚本

如果我在POST var中传递一个非零的数字qty,它将导致在现有发票上创建一个行项目,并将结果作为json返回,该json是用“echo json_encode(array('result'=>'success')”创建的,类似于这样的内容

有时有效,有时无效

我一定是在某个地方出了业务逻辑错误……我太累了,不能再思考了。我的大脑受伤了

有人能在我尝试做的事情中看到明显的编码“失礼”吗?我对Quickbooks PHP相当陌生

代码如下:

<?php
//header('Access-Control-Allow-Origin: *');
//header('Content-type: application/json');
$debug = FALSE;

session_start();
include "config.php";



$I00001=0;
$I00002=0;
$I00003=0;
$I00004=0;
$I00005=0;
$I00006=0;
$I00007=0;
$I00008=0;
$I00009=0;
$I00010=0;
$I00020=0;


if (isset($_POST['I00001'])) { $I00001= intval($_POST['I00001']); } else { header('Content-type: application/json; charset=UTF-8'); echo  json_encode(array("result"=>"POST['I00001'] not set!")); die();};
if (isset($_POST['I00002'])) { $I00002= intval($_POST['I00002']); } else { header('Content-type: application/json; charset=UTF-8'); echo  json_encode(array("result"=>"POST['I00002'] not set!")); die();};
if (isset($_POST['I00003'])) { $I00003= intval($_POST['I00003']); } else { header('Content-type: application/json; charset=UTF-8'); echo  json_encode(array("result"=>"POST['I00003'] not set!")); die();};
if (isset($_POST['I00004'])) { $I00004= intval($_POST['I00004']); } else { header('Content-type: application/json; charset=UTF-8'); echo  json_encode(array("result"=>"POST['I00004'] not set!")); die();};
if (isset($_POST['I00005'])) { $I00005= intval($_POST['I00005']); } else { header('Content-type: application/json; charset=UTF-8'); echo  json_encode(array("result"=>"POST['I00005'] not set!")); die();};
if (isset($_POST['I00006'])) { $I00006= intval($_POST['I00006']); } else { header('Content-type: application/json; charset=UTF-8'); echo  json_encode(array("result"=>"POST['I00006'] not set!")); die();};
if (isset($_POST['I00007'])) { $I00007= intval($_POST['I00007']); } else { header('Content-type: application/json; charset=UTF-8'); echo  json_encode(array("result"=>"POST['I00007'] not set!")); die();};
if (isset($_POST['I00008'])) { $I00008= intval($_POST['I00008']); } else { header('Content-type: application/json; charset=UTF-8'); echo  json_encode(array("result"=>"POST['I00008'] not set!")); die();};
if (isset($_POST['I00009'])) { $I00009= intval($_POST['I00009']); } else { header('Content-type: application/json; charset=UTF-8'); echo  json_encode(array("result"=>"POST['I00009'] not set!")); die();};
if (isset($_POST['I00010'])) { $I00010= intval($_POST['I00010']); } else { header('Content-type: application/json; charset=UTF-8'); echo  json_encode(array("result"=>"POST['I00010'] not set!")); die();};
if (isset($_POST['I00020'])) { $I00020= intval($_POST['I00020']); } else { header('Content-type: application/json; charset=UTF-8'); echo  json_encode(array("result"=>"POST['I00011'] not set!")); die();};

$InvoiceDate = urldecode($_POST['InvoiceDate']);
$dateOfWaybills = urldecode($_POST['dateOfWaybills']);
$customerName = urldecode($_POST['customerName']); 


/*

$dateOfWaybills='2018-05-01';
$customerName='HolyHandGrenadeOfAntioch';
$invoiceDate='2018-05-01';
$dateOfWaybills = urldecode($dateOfWaybills);
$customerName = urldecode($customerName); 

//echo  $customerName;



$I00001=3;
$I00002=0;
$I00003=0;
$I00004=0;
$I00005=0;
$I00006=0;
$I00007=0;
$I00008=0;

*/


setlocale(LC_MONETARY, 'en_CA'); //Canadian dollar

$CustomerService = new QuickBooks_IPP_Service_Customer();
$customer = new QuickBooks_IPP_Object_Customer();

$cqry = "SELECT * FROM Customer WHERE FullyQualifiedName = '".$customerName."'";
$customer = $CustomerService->query($Context, $realm, $cqry);

if ($customer) {
  foreach ($customer as $Customer) {
    $CustomerRef = $Customer->getId();
  }
}
else
{
 echo  json_encode(array('error : no customer ($cqry)'=>$CustomerService->lastError()));
 die();
}


$InvoiceService = new QuickBooks_IPP_Service_Invoice(); // to search for the invoice dated first of the month for customer customerName
$ItemService = new QuickBooks_IPP_Service_Item();

$c1 = str_replace('{','',$CustomerRef);
$c2 = str_replace('}', '', $c1);
$customerId = str_replace('-','',$c2);



$Invoice = new QuickBooks_IPP_Object_Invoice();         // to create the invoice (object)
$InvoiceService = new QuickBooks_IPP_Service_Invoice(); // to save the invoice (methods)

//All invoices are dated on the 1st of the month.


$qry = "SELECT * FROM Invoice WHERE DocNumber = '".$customerId.".".$InvoiceDate."'";


$invoices = $InvoiceService->query($Context, $realm, $qry);

if (!($invoices)) {

$qryResult = array();
$qryResult['result'] = $invoices[0];
die();

} else {


$Invoice = $invoices[0];
$theIdOfThisInvoice = $Invoice->getId();

}


    $TaxCodeService = new QuickBooks_IPP_Service_TaxCode();
    $taxcodes = $TaxCodeService->query($Context, $realm, "SELECT * FROM TaxCode WHERE name = 'GST'");
    $this_tax_code = "";
    if ($taxcodes) {
       foreach ($taxcodes as $TaxCode) { 
         $taxCode = $TaxCode->getId();
       }
    }



// Which Billable Item (Service) 

if ($I00001 != 0) { 
  $itemRef = '00001';
  $quantity = intval($I00001);
// Lookup item $itemRef
$qry_itemRef = "SELECT * FROM Item WHERE Name = '" . $itemRef . "'";
$ItemService = new QuickBooks_IPP_Service_Item();
$mook = $ItemService->query($Context, $realm, $qry_itemRef);

// it's really the first list item
$mook = $mook[0];
$name = $itemRef;

  $customerRef = QuickBooks_IPP_IDS::usableIDType($customerId);
  $SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
 // Which Billable Item (Service) 

  $SalesItemLineDetail->setItemRef($mook->getId());
  $SalesItemLineDetail->setCustomerRef($customerRef);
  $SalesItemLineDetail->setUnitPrice(floatval($mook->getUnitPrice() ));
  $SalesItemLineDetail->setQty($quantity);
  $SalesItemLineDetail->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $SalesItemLineDetail->setTaxCodeRef($taxCode);
  $SalesItemLineDetail->setServiceDate($dateOfWaybills);

  $Line1 = new QuickBooks_IPP_Object_Line();
  $Line1->addSalesItemLineDetail($SalesItemLineDetail);
  $Line1->setDetailType('SalesItemLineDetail');
  $Line1->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $Line1->setDescription($mook->getDescription());
  $Line1->setCustomerRef($customerRef);
  $Invoice->addline($Line1);

if ($debug == TRUE) {
  print_r($Invoice);
 }
}

if ($I00002 != 0) { 
  $itemRef = '00002';
  $quantity = intval($I00002);
// Lookup item $itemRef
$qry_itemRef = "SELECT * FROM Item WHERE Name = '" . $itemRef . "'";
$ItemService = new QuickBooks_IPP_Service_Item();
$mook = $ItemService->query($Context, $realm, $qry_itemRef);

// it's really the first list item
$mook = $mook[0];

  $name = $itemRef;

  $customerRef = QuickBooks_IPP_IDS::usableIDType($customerId);
  $SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
 // Which Billable Item (Service) 

  $SalesItemLineDetail->setItemRef($mook->getId());
  $SalesItemLineDetail->setCustomerRef($customerRef);
  $SalesItemLineDetail->setUnitPrice(floatval($mook->getUnitPrice() ));
  $SalesItemLineDetail->setQty($quantity);
  $SalesItemLineDetail->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $SalesItemLineDetail->setTaxCodeRef($taxCode);
  $SalesItemLineDetail->setServiceDate($dateOfWaybills);

  $Line2 = new QuickBooks_IPP_Object_Line();
  $Line2->addSalesItemLineDetail($SalesItemLineDetail);
  $Line2->setDetailType('SalesItemLineDetail');
  $Line2->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $Line2->setDescription($mook->getDescription());
  $Line2->setCustomerRef($customerRef);
  // Keep adding lines onto invoice
  $Invoice->addline($Line2);
 }

if ($I00003 != 0) { 
  $itemRef = '00003';
  $quantity = intval($I00003);
// Lookup item $itemRef
$qry_itemRef = "SELECT * FROM Item WHERE Name = '" . $itemRef . "'";
$ItemService = new QuickBooks_IPP_Service_Item();
$mook = $ItemService->query($Context, $realm, $qry_itemRef);

// it's really the first list item
$mook = $mook[0];

  $name = $itemRef;

  $customerRef = QuickBooks_IPP_IDS::usableIDType($customerId);

  $SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
 // Which Billable Item (Service) 

  $SalesItemLineDetail->setItemRef($mook->getId());
  $SalesItemLineDetail->setCustomerRef($customerRef);
  $SalesItemLineDetail->setUnitPrice(floatval($mook->getUnitPrice() ));
  $SalesItemLineDetail->setQty($quantity);
  $SalesItemLineDetail->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $SalesItemLineDetail->setTaxCodeRef($taxCode);
  $SalesItemLineDetail->setServiceDate($dateOfWaybills);

  $Line3 = new QuickBooks_IPP_Object_Line();
  $Line3->addSalesItemLineDetail($SalesItemLineDetail);
  $Line3->setDetailType('SalesItemLineDetail');
  $Line3->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $Line3->setDescription($mook->getDescription());
  $Line3->setCustomerRef($customerRef);
  // Keep adding lines onto invoice
  $Invoice->addline($Line3);
 }

if ($I00004 != 0) { 
  $itemRef = '00004';
  $quantity = intval($I00004);
// Lookup item $itemRef
$qry_itemRef = "SELECT * FROM Item WHERE Name = '" . $itemRef . "'";
$ItemService = new QuickBooks_IPP_Service_Item();
$mook = $ItemService->query($Context, $realm, $qry_itemRef);

// it's really the first list item
$mook = $mook[0];

  $name = $itemRef;

  $customerRef = QuickBooks_IPP_IDS::usableIDType($customerId);

  $SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
 // Which Billable Item (Service) 

  $SalesItemLineDetail->setItemRef($mook->getId());
  $SalesItemLineDetail->setCustomerRef($customerRef);
  $SalesItemLineDetail->setUnitPrice(floatval($mook->getUnitPrice() ));
  $SalesItemLineDetail->setQty($quantity);
  $SalesItemLineDetail->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $SalesItemLineDetail->setTaxCodeRef($taxCode);
  $SalesItemLineDetail->setServiceDate($dateOfWaybills);

  $Line4 = new QuickBooks_IPP_Object_Line();
  $Line4->addSalesItemLineDetail($SalesItemLineDetail);
  $Line4->setDetailType('SalesItemLineDetail');
  $Line4->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $Line4->setDescription($mook->getDescription());
  $Line4->setCustomerRef($customerRef);
  // Keep adding lines onto invoice
  $Invoice->addline($Line4);
 }

if ($I00005 != 0) { 
  $itemRef = '00005';
  $quantity = intval($I00005);
// Lookup item $itemRef
$qry_itemRef = "SELECT * FROM Item WHERE Name = '" . $itemRef . "'";
$ItemService = new QuickBooks_IPP_Service_Item();
$mook = $ItemService->query($Context, $realm, $qry_itemRef);

// it's really the first list item
$mook = $mook[0];

  $name = $itemRef;

  $customerRef = QuickBooks_IPP_IDS::usableIDType($customerId);

  $SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
 // Which Billable Item (Service) 

  $SalesItemLineDetail->setItemRef($mook->getId());
  $SalesItemLineDetail->setCustomerRef($customerRef);
  $SalesItemLineDetail->setUnitPrice(floatval($mook->getUnitPrice() ));
  $SalesItemLineDetail->setQty($quantity);
  $SalesItemLineDetail->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $SalesItemLineDetail->setTaxCodeRef($taxCode);
  $SalesItemLineDetail->setServiceDate($dateOfWaybills);

  $Line5 = new QuickBooks_IPP_Object_Line();
  $Line5->addSalesItemLineDetail($SalesItemLineDetail);
  $Line5->setDetailType('SalesItemLineDetail');
  $Line5->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $Line5->setDescription($mook->getDescription());
  $Line5->setCustomerRef($customerRef);  


  // Keep adding lines onto invoice
  $Invoice->addline($Line5);

 }

if ($I00006 != 0) { 
  $itemRef = '00006';
  $quantity = intval($I00006);
// Lookup item $itemRef
$qry_itemRef = "SELECT * FROM Item WHERE Name = '" . $itemRef . "'";
$ItemService = new QuickBooks_IPP_Service_Item();
$mook = $ItemService->query($Context, $realm, $qry_itemRef);

// it's really the first list item
$mook = $mook[0];

  $name = $itemRef;

  $customerRef = QuickBooks_IPP_IDS::usableIDType($customerId);

  $SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
 // Which Billable Item (Service) 

  $SalesItemLineDetail->setItemRef($mook->getId());
  $SalesItemLineDetail->setCustomerRef($customerRef);
  $SalesItemLineDetail->setUnitPrice(floatval($mook->getUnitPrice() ));
  $SalesItemLineDetail->setQty($quantity);
  $SalesItemLineDetail->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $SalesItemLineDetail->setTaxCodeRef($taxCode);
  $SalesItemLineDetail->setServiceDate($dateOfWaybills);

  $Line6 = new QuickBooks_IPP_Object_Line();
  $Line6->addSalesItemLineDetail($SalesItemLineDetail);
  $Line6->setDetailType('SalesItemLineDetail');
  $Line6->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $Line6->setDescription($mook->getDescription());
  $Line6->setCustomerRef($customerRef);

  // Keep adding lines onto invoice
  $Invoice->addline($Line6);

 }

if ($I00007 != 0) { 
  $itemRef = '00007';
  $quantity = intval($I00007);
// Lookup item $itemRef
$qry_itemRef = "SELECT * FROM Item WHERE Name = '" . $itemRef . "'";
$ItemService = new QuickBooks_IPP_Service_Item();
$mook = $ItemService->query($Context, $realm, $qry_itemRef);

// it's really the first list item
$mook = $mook[0];

  $name = $itemRef;

  $customerRef = QuickBooks_IPP_IDS::usableIDType($customerId);

  $SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
 // Which Billable Item (Service) 

  $SalesItemLineDetail->setItemRef($mook->getId());
  $SalesItemLineDetail->setCustomerRef($customerRef);
  $SalesItemLineDetail->setUnitPrice(floatval($mook->getUnitPrice() ));
  $SalesItemLineDetail->setQty($quantity);
  $SalesItemLineDetail->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $SalesItemLineDetail->setTaxCodeRef($taxCode);
  $SalesItemLineDetail->setServiceDate($dateOfWaybills);

  $Line7 = new QuickBooks_IPP_Object_Line();
  $Line7->addSalesItemLineDetail($SalesItemLineDetail);
  $Line7->setDetailType('SalesItemLineDetail');
  $Line7->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $Line7->setDescription($mook->getDescription());
  $Line7->setCustomerRef($customerRef);
  // Keep adding lines onto invoice
  $Invoice->addline($Line7);

 }

if ($I00008 != 0) { 
  $itemRef = '00008';
  $quantity = intval($I00008);
// Lookup item $itemRef
$qry_itemRef = "SELECT * FROM Item WHERE Name = '" . $itemRef . "'";
$ItemService = new QuickBooks_IPP_Service_Item();
$mook = $ItemService->query($Context, $realm, $qry_itemRef);

// it's really the first list item
$mook = $mook[0];

  $name = $itemRef;

  $customerRef = QuickBooks_IPP_IDS::usableIDType($customerId);

  $SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
 // Which Billable Item (Service) 

  $SalesItemLineDetail->setItemRef($mook->getId());
  $SalesItemLineDetail->setCustomerRef($customerRef);
  $SalesItemLineDetail->setUnitPrice(floatval($mook->getUnitPrice() ));
  $SalesItemLineDetail->setQty($quantity);
  $SalesItemLineDetail->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $SalesItemLineDetail->setTaxCodeRef($taxCode);
  $SalesItemLineDetail->setServiceDate($dateOfWaybills);

  $Line8 = new QuickBooks_IPP_Object_Line();
  $Line8->addSalesItemLineDetail($SalesItemLineDetail);
  $Line8->setDetailType('SalesItemLineDetail');
  $Line8->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $Line8->setDescription($mook->getDescription());
  $Line8->setCustomerRef($customerRef);
  // Keep adding lines onto invoice
  $Invoice->addline($Line8);

 }

if ($I00009 != 0) { 
  $itemRef = '00009';
  $quantity = intval($I00009);
// Lookup item $itemRef
$qry_itemRef = "SELECT * FROM Item WHERE Name = '" . $itemRef . "'";
$ItemService = new QuickBooks_IPP_Service_Item();
$mook = $ItemService->query($Context, $realm, $qry_itemRef);

// it's really the first list item
$mook = $mook[0];

  $name = $itemRef;

  $customerRef = QuickBooks_IPP_IDS::usableIDType($customerId);

  $SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
 // Which Billable Item (Service) 

  $SalesItemLineDetail->setItemRef($mook->getId());
  $SalesItemLineDetail->setCustomerRef($customerRef);
  $SalesItemLineDetail->setUnitPrice(floatval($mook->getUnitPrice() ));
  $SalesItemLineDetail->setQty($quantity);
  $SalesItemLineDetail->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $SalesItemLineDetail->setTaxCodeRef($taxCode);
  $SalesItemLineDetail->setServiceDate($dateOfWaybills);

  $Line9 = new QuickBooks_IPP_Object_Line();
  $Line9->addSalesItemLineDetail($SalesItemLineDetail);
  $Line9->setDetailType('SalesItemLineDetail');
  $Line9->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $Line9->setDescription($mook->getDescription());
  $Line9->setCustomerRef($customerRef);
  // Keep adding lines onto invoice
  $Invoice->addline($Line9);

 }
 if ($I00010 != 0) { 
  $itemRef = '00010';
  $quantity = intval($I00010);
// Lookup item $itemRef
$qry_itemRef = "SELECT * FROM Item WHERE Name = '" . $itemRef . "'";
$ItemService = new QuickBooks_IPP_Service_Item();
$mook = $ItemService->query($Context, $realm, $qry_itemRef);

// it's really the first list item
$mook = $mook[0];

  $name = $itemRef;

  $customerRef = QuickBooks_IPP_IDS::usableIDType($customerId);

  $SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
 // Which Billable Item (Service) 

  $SalesItemLineDetail->setItemRef($mook->getId());
  $SalesItemLineDetail->setCustomerRef($customerRef);
  $SalesItemLineDetail->setUnitPrice(floatval($mook->getUnitPrice() ));
  $SalesItemLineDetail->setQty($quantity);
  $SalesItemLineDetail->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $SalesItemLineDetail->setTaxCodeRef($taxCode);
  $SalesItemLineDetail->setServiceDate($dateOfWaybills);

  $Line10 = new QuickBooks_IPP_Object_Line();
  $Line10->addSalesItemLineDetail($SalesItemLineDetail);
  $Line10->setDetailType('SalesItemLineDetail');
  $Line10->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $Line10->setDescription($mook->getDescription());
  $Line10->setCustomerRef($customerRef);
  // Keep adding lines onto invoice
  $Invoice->addline($Line10);

 }
 if ($I00020 != 0) { 
  $itemRef = '00020';
  $quantity = intval($I00020);
// Lookup item $itemRef
$qry_itemRef = "SELECT * FROM Item WHERE Name = '" . $itemRef . "'";
$ItemService = new QuickBooks_IPP_Service_Item();
$mook = $ItemService->query($Context, $realm, $qry_itemRef);

// it's really the first list item
$mook = $mook[0];

  $name = $itemRef;

  $customerRef = $customerId;

  $SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail();
 // Which Billable Item (Service) 

  $SalesItemLineDetail->setItemRef($mook->getId());
  $SalesItemLineDetail->setCustomerRef($customerRef);
  $SalesItemLineDetail->setUnitPrice(floatval($mook->getUnitPrice() ));
  $SalesItemLineDetail->setQty($quantity);
  $SalesItemLineDetail->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $SalesItemLineDetail->setTaxCodeRef($taxCode);
  $SalesItemLineDetail->setServiceDate($dateOfWaybills);

  $Line20 = new QuickBooks_IPP_Object_Line();
  $Line20->addSalesItemLineDetail($SalesItemLineDetail);
  $Line20->setDetailType('SalesItemLineDetail');
  $Line20->setAmount(floatval($mook->getUnitPrice() * $quantity));
  $Line20->setDescription($mook->getDescription());
  $Line20->setCustomerRef($customerRef);
  // Keep adding lines onto invoice
  $Invoice->addline($Line20);

 }

if ($resp = $InvoiceService->update($Context, $realm, $theIdOfThisInvoice, $Invoice))
{
   header('Content-Type: application/json; charset=UTF-8');
   echo  json_encode(array("result" => $IPP->lastResponse()));
   die();
} else {
   header('Content-Type: application/json; charset=UTF-8');
   $result = $IPP->lastRequest." : ".$IPP->lastResponse();
   echo  json_encode(array("error" => $result));
   die();
}


?>

我知道这可能会导致你的大脑受伤的原因。你可能应该尝试创建一个日志,因为这既可以帮助你调试,也可以帮助其他人帮助你。在保持你提到的不一致行为的同时,是否可以删除这些代码?我支持这一点——你需要添加一些日志记录,并明确找出哪里出了问题。这听起来与QuickBooks并没有太大关系,只是听起来您需要进行一些调试,并查看Chrome网络选项卡,看看哪里出了问题,哪里出了问题。@Zev-答案是否定的。代码以原子方式执行此操作: