2016-09-21 3 views
0

PHP API를 사용하여 QB에서 송장을 생성합니다. 은 https://github.com/consolibyte/quickbooks-php/blob/master/docs/partner_platform/example_app_ipp_v3/example_invoice_add.php#L21의 예와 같이 $Line->setDetailType('SalesItemLineDetail');을 추가해야합니다.QuickBooks API - query SalesItemLineDetail

는 그런 다음 setItemRef가 하드 8.

지금은 이름으로 SalesItemLineDetail를 검색하고 심판을 얻으려면 코딩되어

$SalesItemLineDetail = new QuickBooks_IPP_Object_SalesItemLineDetail(); 
$SalesItemLineDetail->setItemRef('8'); 
$SalesItemLineDetail->setUnitPrice(20 * 0.516129); 
$SalesItemLineDetail->setQty(1.00000); 

주를 설정합니다.

그냥
$pref->query($Context, $realm, "SELECT * FROM SalesItemLineDetail"); 

은 일반적으로 우리가 서비스 query을, 내가 노력 모두를 얻을 수 있는지 여부를 확인합니다. 내 경우에는 $pref입니다.

나는 시도했다, InvoiceService, SalesOrderService, PreferencesService, ItemService 그러나 나는 어떤 결과도 얻고 있지 않다.

InvoiceProduct/Service을 찾고 Ref. 사전

+0

어떤 도움이 필요합니까? 어떠한 제안? 어떤 아이디어? – masterFly

답변

0

알아낼 수 있습니다!

우리가 필요한 것은 ItemService입니다. 이게 내가 한 일이야.

$ItemService = new \QuickBooks_IPP_Service_Item(); 
$response = $ItemService->query($Context, $realm, "SELECT * FROM Item where Name = 'Services'"); 

$response에서 ID를 얻습니다. 따라서 ID를 하드 코딩 할 필요가 없습니다.

희망이 있으면이 문제가있는 사용자에게 도움이 될 수 있습니다.

0

에서

덕분에 당신은 SalesLineItemDetail으로 검색 할 수 없습니다. Intuit는 그것을 지원하지 않습니다.

for ($i = 0; $i < $num_lines; $i++) 
{ 
    $Line = $Invoice->getLine($i); 

    if ($Line->getDetailType() == 'SalesItemLineDetail') 
    { 
     $Detail = $Line->getSalesItemLineDetail(); 
     $item_id = $Detail->getItemRef(); 

    } 
} 
: 데이터를 얻기 위해 개별 항목을 통해

$list = $InvoiceService->query($Context, $realm, "SELECT *, Line.* FROM Invoice WHERE Id = '5' "); 

그리고 루프 : 당신은 그냥 기존 송장 내 ItemRef을 찾기 위해 노력하는 경우

, 첫 번째 송장 조회 할 수 있습니다

+0

'$ Line-> setDetailType ('SalesItemLineDetail'); '을 지정하지 않고 송장 행을 만드는 방법이 있습니까? 도와주세요! – masterFly

+0

'DetailType'을 지정해야합니다 (반드시 'SalesItemLineDetail' 일 필요는 없습니다). 설명서를 읽었습니까? –

관련 문제