Exemplo n.º 1
0
        public bool cancelInvoice(Invoice invoice, Customer customer)
        {
            IInvoiceMod modify = qBSession.getRequestMsgSet().AppendInvoiceModRq();

            modify.CustomerRef.ListID.SetValue(customer.QBId);
            modify.TxnID.SetValue(invoice.QBId);
            modify.EditSequence.SetValue(invoice.EditSequence);
            modify.IsPending.SetValue(true);
            return(qBSession.executeQuery());
        }
Exemplo n.º 2
0
        public string BuildUpdateInvoiceRq(Invoice invoice)
        {
            requestMsgSet.ClearRequests();

            IInvoiceMod InvoiceAddRq = requestMsgSet.AppendInvoiceModRq();

            //For Update we need TxnID and Edit Sequence
            InvoiceAddRq.TxnID.SetValue(invoice.TxnID);
            InvoiceAddRq.EditSequence.SetValue(invoice.EditSequence);

            InvoiceAddRq.CustomerRef.FullName.SetValue(invoice.CustomerName);
            if (invoice.ClassRef != null)
            {
                InvoiceAddRq.ClassRef.FullName.SetValue(invoice.ClassRef);
            }
            if (invoice.BillAddress1 != null)
            {
                InvoiceAddRq.BillAddress.Addr1.SetValue(invoice.BillAddress1);
            }
            if (invoice.City != null)
            {
                InvoiceAddRq.BillAddress.City.SetValue(invoice.City);
            }
            if (invoice.State != null)
            {
                InvoiceAddRq.BillAddress.State.SetValue(invoice.State);
            }
            if (invoice.State != null)
            {
                InvoiceAddRq.BillAddress.PostalCode.SetValue(invoice.PostalCode);
            }
            if (invoice.Country != null)
            {
                InvoiceAddRq.BillAddress.Country.SetValue(invoice.Country);
            }
            if (invoice.ShipAddress != null)
            {
                InvoiceAddRq.ShipAddress.Addr1.SetValue(invoice.ShipAddress);
            }
            if (invoice.Ship_City != null)
            {
                InvoiceAddRq.ShipAddress.City.SetValue(invoice.Ship_City);
            }
            if (invoice.Ship_State != null)
            {
                InvoiceAddRq.ShipAddress.State.SetValue(invoice.Ship_State);
            }
            if (invoice.Ship_PostalCode != null)
            {
                InvoiceAddRq.ShipAddress.PostalCode.SetValue(invoice.PostalCode);
            }
            if (invoice.Ship_Country != null)
            {
                InvoiceAddRq.ShipAddress.Country.SetValue(invoice.Country);
            }
            if (invoice.DueDate >= DateTime.Now)
            {
                InvoiceAddRq.DueDate.SetValue(invoice.DueDate);
            }
            if (invoice.ShipDate >= DateTime.Now)
            {
                InvoiceAddRq.ShipDate.SetValue(invoice.ShipDate);
            }
            InvoiceAddRq.Memo.SetValue(invoice.Memo);
            if (invoice.CustomerMsg != "")
            {
                InvoiceAddRq.CustomerMsgRef.FullName.SetValue(invoice.CustomerMsg);
            }

            if (invoice.Terms != "")
            {
                InvoiceAddRq.TermsRef.FullName.SetValue(invoice.Terms);
            }
            InvoiceAddRq.IsToBePrinted.SetValue(invoice.isPrinted);
            //istobeemail is supported in qbxml version 6.0 and greater
            if (Manager.MjrVersion >= 6)
            {
                InvoiceAddRq.IsToBeEmailed.SetValue(invoice.IsEmail);
            }
            if (invoice.CustomerTaxCode != null && invoice.CustomerTaxCode != "")
            {
                InvoiceAddRq.CustomerSalesTaxCodeRef.FullName.SetValue(invoice.CustomerTaxCode);
            }
            if (invoice.TxnNumber != null && invoice.TxnNumber != "")
            {
                InvoiceAddRq.ItemSalesTaxRef.FullName.SetValue(invoice.TxnNumber);
            }
            foreach (InvoiceLineItem item in invoice.lineitem)
            {
                IORInvoiceLineMod ORInvoiceLineAddListElement1 = InvoiceAddRq.ORInvoiceLineModList.Append();

                //TxnID
                ORInvoiceLineAddListElement1.InvoiceLineMod.TxnLineID.SetValue(item.TxnLineID);
                ORInvoiceLineAddListElement1.InvoiceLineMod.ItemRef.FullName.SetValue(item.Item);
                ORInvoiceLineAddListElement1.InvoiceLineMod.Desc.SetValue(item.Desc);
                ORInvoiceLineAddListElement1.InvoiceLineMod.Quantity.SetValue(item.Quantity);
                if (item.ClassRef != null)
                {
                    ORInvoiceLineAddListElement1.InvoiceLineMod.ClassRef.FullName.SetValue(item.ClassRef);
                }
                ORInvoiceLineAddListElement1.InvoiceLineMod.Amount.SetValue(item.Amount);
                if (item.Rate != null)
                {
                    ORInvoiceLineAddListElement1.InvoiceLineMod.ORRatePriceLevel.Rate.SetValue(item.Rate.Value);
                }
                if (item.SalesTaxCodeRef != null)
                {
                    ORInvoiceLineAddListElement1.InvoiceLineMod.SalesTaxCodeRef.FullName.SetValue(item.SalesTaxCodeRef);
                }
            }
            //Send the request and get the response from QuickBooks
            IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet);

            return(WalkInvoiceAddRs(responseMsgSet));
        }