2016-09-21 2 views
0

Ich erstelle eine Rechnung in QB mit PHP API. DetailType wurde benötigt, so dass ich $Line->setDetailType('SalesItemLineDetail'); wie im Beispiel aus https://github.com/consolibyte/quickbooks-php/blob/master/docs/partner_platform/example_app_ipp_v3/example_invoice_add.php#L21 hinzufüge.QuickBooks API - Abfrage SalesItemLineDetail

Dann setzt er

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

Beachten Sie, dass setItemRef schwer 8.

Jetzt wollen codiert ich einen SalesItemLineDetail nach Namen suchen und den Referee zu bekommen.

Nur um zu sehen, ob ich alles versucht, ich bekommen kann,

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

Normalerweise tun wir query mit einem Service. In meinem Fall ist das $pref.

Ich habe versucht, InvoiceService, SalesOrderService, PreferencesService, ItemService aber ich bin kein Ergebnis bekommen.

Bitte helfen Sie mir, eine Product/Service in einem Invoice namentlich zu finden und seine ref.

Vielen Dank im Voraus

+0

Irgendwelche Hilfe? Irgendein Vorschlag? Irgendeine Idee? – masterFly

Antwort

0

Ich finde es heraus!

Was wir brauchen, ist die ItemService. So habe ich es gemacht.

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

von der $response Ich bekomme die ID. Damit ich keine ID fest codieren muss.

Ich hoffe, dies könnte jedem helfen, der dieses Problem hat.

0

Sie können SalesLineItemDetail nicht suchen. Intuit unterstützt es nicht.

Wenn Sie versuchen, nur eine ItemRef innerhalb einer bestehenden Rechnung zu finden, können Sie für die Rechnung abfragen zuerst:

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

Und dann Schleife durch die Positionen der Daten zu erhalten:

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

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

    } 
} 
+0

Gibt es eine Möglichkeit, eine Rechnungszeile zu erstellen, ohne '$ Line-> setDetailType ('SalesItemLineDetail') anzugeben;'? Bitte helfen Sie! – masterFly

+0

Sie müssen einen 'DetailType' angeben (obwohl es nicht unbedingt' SalesItemLineDetail' sein muss). Hast du die Dokumentation gelesen? –

Verwandte Themen