Не удается правильно сохранить счет на qb онлайн

Я могу создать счет-фактуру в quickbook онлайн, но когда я проверяю счет-фактуру quickbook онлайн, он создает списки товаров, но цена и описание отсутствуют. Что я делаю неправильно.

          invoice.AlternateId = new NameValue[] { new NameValue() { Name = "InvoiceID", Value = service.InvoiceId } };

                InvoiceHeader Header = new InvoiceHeader();
                Header.DocNumber = service.InvoiceId;
                Header.TxnDate = service.ServiceDate;
                Header.TxnDateSpecified = true;
                Header.Msg = service.Note.ToString();
                Header.Note = service.Note.ToString();

                Header.CustomerId = new IdType() { idDomain = idDomainEnum.QBO, Value = service.CustomerNumberOnline };
                Header.Currency = currencyCode.USD;
                Header.ShipDate = service.ServiceDate;
                Header.ShipDateSpecified = true;


                //Print and Email Option fields
                if (EmailPrintOption == "Both")
                {
                    Header.ToBeEmailed = true;
                    Header.ToBeEmailedSpecified = true;
                    Header.ToBePrinted = true;
                    Header.ToBePrintedSpecified = true;
                }
                else if (EmailPrintOption == "print")
                {
                    Header.ToBePrinted = true;
                    Header.ToBePrintedSpecified = true;
                }
                else if (EmailPrintOption == "email")
                {
                    Header.ToBeEmailed = true;
                    Header.ToBeEmailedSpecified = true;
                }
                else
                {
                    Header.ToBeEmailed = false;
                    Header.ToBeEmailedSpecified = false;
                    Header.ToBePrinted = false;
                    Header.ToBePrintedSpecified = false;

                }

                PhysicalAddress BillAddress = new PhysicalAddress();
                BillAddress.Line1 = service.SoldToAddress;
                BillAddress.City = service.SoldToCity;
                BillAddress.CountrySubDivisionCode = service.SoldToState;
                BillAddress.PostalCode = service.SoldToZip;
                BillAddress.Tag = new string[] { "Billing" };
                Header.BillAddr = BillAddress;

                PhysicalAddress ShipAddress = new PhysicalAddress();
                ShipAddress.Line1 = service.JobJocationAddress;
                ShipAddress.City = service.JobLocationCity;
                ShipAddress.CountrySubDivisionCode = service.JobLocationState;
                ShipAddress.PostalCode = service.JobLocationZip;
                BillAddress.Tag = new string[] { "Shipping" };
                Header.ShipAddr = ShipAddress;

                decimal discount;
                if (decimal.TryParse(service.Discount, out discount))
                {
                    Header.ItemElementName = ItemChoiceType2.DiscountAmt;
                    Header.Item = -1 * discount;  //discount must be negative
                }

                InvoiceLine[] InvoiceLines = new InvoiceLine[TaskOnlineIDs.Count];
                object[] intuitItems = new object[TaskOnlineIDs.Count];
                for (int i = 0; i < InvoiceLines.Length; i++)
                {
                    InvoiceLines[i] = new InvoiceLine();
                    InvoiceLines[i].ItemsElementName = new Intuit.Ipp.Data.Qbo.ItemsChoiceType2[]
                            {
                                Intuit.Ipp.Data.Qbo.ItemsChoiceType2.ItemId
                            };
                    InvoiceLines[i].Items = new object[] {
                        new IdType(){idDomain=idDomainEnum.QBO, Value=TaskOnlineIDs[i]}   
                    };
                }
                invoice.Line = InvoiceLines; 

                Header.SalesTermName = service.PaymentType;
                Header.SalesRepName = service.TechName;
                Header.PONumber = service.PurchaseOrder;
                invoice.Header = Header;

Что я здесь упускаю?? Вот что происходит, когда я добавляю строки счета-фактуры в счет-фактуру, по умолчанию количество каждого элемента устанавливается равным «0», поэтому, когда я пытаюсь добавить скидку прагматично, это дает мне ошибку скидки больше, чем промежуточный итог, который является правильным. Но мой вопрос в том, почему мне нужно явно добавлять стоимость для каждого элемента, если я уже определил их ранее. Мы должны добавить только itemId, а остальное QB должен вычислить.


person A.T.    schedule 11.10.2013    source источник
comment
очень плохо спроектированный API   -  person A.T.    schedule 11.10.2013
comment
Возможно, вы захотите посмотреть: stackoverflow.com/questions/19098798/ stackoverflow.com/questions/19289571/   -  person nimisha shrivastava    schedule 11.10.2013
comment
Вы ссылаетесь на существующий товар в счете-фактуре. Вы не можете создать элемент в счете-фактуре   -  person nimisha shrivastava    schedule 11.10.2013
comment
да, я не хочу создавать новый элемент в счете-фактуре, я уже синхронизировал элемент там, пожалуйста, предложите мне, как я могу ссылаться на эти синхронизированные элементы при создании счета-фактуры? я думаю, что когда я передаю идентификатор онлайн-элемента, он должен ссылаться на этот уже сохраненный элемент и должен отображать его описание и цену.   -  person A.T.    schedule 14.10.2013