Twinfield выдает ошибку, когда я пытался создать новый счет

Я хочу создать счет-фактуру для стороннего программного обеспечения для выставления счетов, т. Е. Twinfield из API. Я даю весь параметр в соответствии с его библиотекой, документом и вызовом из API, но он выдаст ошибку.

{"success": false, "error": "Код товара не найден. Невозможно изменить описание строки товара." }

API - это php-twinfield.

Код приведен ниже.

public function saveInvoice($values)
{
    try 
    {
        $user = $values['user'];
        $password = $values['password'];
        $organization = $values['organisation'];
        $officecode = $values['officecode'];
        $connection = new \PhpTwinfield\Secure\WebservicesAuthentication($user, $password, $organization);
        $customerApiConnector = new \PhpTwinfield\ApiConnectors\CustomerApiConnector($connection);
        $office   = Office::fromCode($officecode);
        $customer = $customerApiConnector->get('1008',$office);

        $InvoiceApiConnector = new \PhpTwinfield\ApiConnectors\InvoiceApiConnector($connection);
        //class invoiceline object 
        $line = new \PhpTwinfield\InvoiceLine();
        $line
            ->setArticle(2)
            ->setQuantity(2)
            ->setValueExcl(100)
            ->setUnits(1)
            ->setVatCode('VH')
            ->setUnitsPriceExcl(100)
            ->setDim1(8020)
            ->setDescription("Testinvoice anand")
            ->setAllowDiscountOrPremium(false);
        //class invoice object
        $invoice = new \PhpTwinfield\Invoice();
        $invoice
            ->setCustomer($customer)
            ->setBank('BNK')
            ->setDueDate(\Carbon\Carbon::now()->addMonth())
            ->setPeriod('2018/12')
            ->setCurrency('EUR')
            ->setStatus('concept')
            ->setInvoiceDate('20180606')
            ->addLine($line)
            ->setPaymentMethod('cash')
            ->setInvoiceType('FACTUUR');

        $result = $InvoiceApiConnector->send($invoice);
        print_r($result);
        //$jsonResponse = JsonResponse::success($result);
    }

    catch (SoapFault $e)
    {
        $jsonResponse = empty($e->getMessage()) ? JsonResponse::error(class_basename($e)) : JsonResponse::error($e->getMessage());
    }
    //return $jsonResponse;
}

если изменить в этой строке $line->setArticle(0), ошибка будет такой.

{"success": false, "error": "ResponseException"}

0 ответов

Другие вопросы по тегам