예제 #1
0
        private void BuildInvoiceAddRq(IMsgSetRequest requestMsgSet)
        {
            IInvoiceAdd invoiceAddRq = requestMsgSet.AppendInvoiceAddRq();

            invoiceAddRq.CustomerRef.FullName.SetValue("City");
            invoiceAddRq.Other.SetValue("12345");
            invoiceAddRq.TxnDate.SetValue(DateTime.Now);

            IORInvoiceLineAdd oRInvoiceLineAddList     = invoiceAddRq.ORInvoiceLineAddList.Append();
            string            orInvoiceListElementType = "InvoiceLineAdd";

            if (orInvoiceListElementType == "InvoiceLineAdd")
            {
                // oRInvoiceLineAddList.InvoiceLineAdd.ItemRef.FullName.SetValue("Storage");
                oRInvoiceLineAddList.InvoiceLineAdd.Desc.SetValue("January Storage");
                // oRInvoiceLineAddList.InvoiceLineAdd.Quantity.SetValue(2);
                // oRInvoiceLineAddList.InvoiceLineAdd.Amount.SetValue(9.99);
                // oRInvoiceLineAddList.InvoiceLineAdd.UnitOfMeasure.SetValue("each");
                //  oRInvoiceLineAddList.InvoiceLineAdd.ORRatePriceLevel.Rate.SetValue(9.99);
            }

            // Add blank line
            var invLine3 = invoiceAddRq.ORInvoiceLineAddList.Append();
            var line3    = invLine3.InvoiceLineAdd;

            line3.Desc.SetEmpty();



            IORInvoiceLineAdd oRInvoiceLineAddList2 = invoiceAddRq.ORInvoiceLineAddList.Append();
            var invoiceLineAdd2 = oRInvoiceLineAddList2.InvoiceLineAdd;

            if (orInvoiceListElementType == "InvoiceLineAdd")
            {
                invoiceLineAdd2.ItemRef.FullName.SetValue("Storage");
                invoiceLineAdd2.Desc.SetValue("Test Transaction Item");
                invoiceLineAdd2.Quantity.SetValue(2);
                // oRInvoiceLineAddList.InvoiceLineAdd.Amount.SetValue(9.99);
                // oRInvoiceLineAddList.InvoiceLineAdd.UnitOfMeasure.SetValue("each");
                invoiceLineAdd2.ORRatePriceLevel.Rate.SetValue(9.99);
            }
            //invoiceAddRq.IncludeRetElementList.Add("ab");



            Console.WriteLine(requestMsgSet.ToXMLString());
        }
예제 #2
0
        protected override void Action(QBSessionManager sessionManager, IMsgSetRequest request)
        {
            // Add the request to the message set request object
            IInvoiceAdd invoiceAdd = request.AppendInvoiceAddRq();

            invoiceAdd.CustomerRef.FullName.SetValue(Invoice.CustomerName);

            foreach (var item in Invoice.Items)
            {
                IInvoiceLineAdd invoiceLineAdd = invoiceAdd.ORInvoiceLineAddList.Append().InvoiceLineAdd;
                invoiceLineAdd.ItemRef.FullName.SetValue(item.ItemName);
                invoiceLineAdd.Desc.SetValue(item.Description);
                var price = (double)item.Price;
                invoiceLineAdd.ORRatePriceLevel.Rate.SetValue(price);
                invoiceLineAdd.Quantity.SetValue(Convert.ToDouble(1));
                invoiceLineAdd.Amount.SetValue(price);
            }
            var       responseMsgSet = sessionManager.DoRequests(request);
            IResponse response       = responseMsgSet.ResponseList.GetAt(0);

            StatusCode = response.StatusCode;
        }
예제 #3
0
        public string createInvoice(Invoice invoice)
        {
            requestMsgSet.ClearRequests();

            IInvoiceAdd InvoiceAddRq = requestMsgSet.AppendInvoiceAddRq();

            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)
            {
                IORInvoiceLineAdd ORInvoiceLineAddListElement1 = InvoiceAddRq.ORInvoiceLineAddList.Append();


                ORInvoiceLineAddListElement1.InvoiceLineAdd.ItemRef.FullName.SetValue(item.Item);


                ORInvoiceLineAddListElement1.InvoiceLineAdd.Desc.SetValue(item.Desc);
                ORInvoiceLineAddListElement1.InvoiceLineAdd.Quantity.SetValue(item.Quantity);



                if (item.ClassRef != null)
                {
                    ORInvoiceLineAddListElement1.InvoiceLineAdd.ClassRef.FullName.SetValue(item.ClassRef);
                }
                ORInvoiceLineAddListElement1.InvoiceLineAdd.Amount.SetValue(item.Amount);
                if (item.SalesTaxCodeRef != null)
                {
                    ORInvoiceLineAddListElement1.InvoiceLineAdd.SalesTaxCodeRef.FullName.SetValue(item.SalesTaxCodeRef);
                }
            }
            //Send the request and get the response from QuickBooks
            IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet);

            return(WalkInvoiceAddRs(responseMsgSet));
        }
예제 #4
0
 private void initializeObjects()
 {
     invoiceAdd = qBSession.getRequestMsgSet().AppendInvoiceAddRq();
 }
        /// <summary> Add a new invoice to the database </summary>
        /// <param name="invoiceAdd">this is a test</param>
        /// <returns></returns>
        /// <remarks>
        /// ///<div class="Section0"><p style="text-align:left;page-break-inside:auto;page-break-after:auto;page-break-before:avoid;margin-top:0pt;margin-bottom:0pt;margin-left:0pt;text-indent:0pt;margin-right:0pt;"><span lang="en-US" style="color:#000000;font-family:Times New Roman;font-size:12pt;text-transform:none;font-weight:normal;font-style:normal;font-variant:normal;">When creating a new invoice first call this command to create an invoice in the system.</span></p>
///<p style="text-align:left;page-break-inside:auto;page-break-after:auto;page-break-before:avoid;line-height:normal;margin-top:0pt;margin-bottom:0pt;margin-left:0pt;text-indent:0pt;margin-right:0pt;"><span style="color:#000000;font-family:Times New Roman;font-size:12pt;text-transform:none;font-weight:normal;font-style:normal;font-variant:normal;">&#xa0;</span></p>
///<p style="text-align:left;page-break-inside:auto;page-break-after:auto;page-break-before:avoid;margin-top:0pt;margin-bottom:0pt;margin-left:0pt;text-indent:0pt;margin-right:0pt;"><span lang="en-US" style="color:#000000;font-family:Times New Roman;font-size:12pt;text-transform:none;font-weight:normal;font-style:normal;font-variant:normal;">Then once the invoice has been created, Invoices Lines can be added to it</span></p>
///</div>

        /// </remarks>
        public async Task <IInvoiceView> InvoiceAdd(IInvoiceAdd invoiceAdd)
        {
            try
            {
                var result = new InvoiceView();
                using (var db = new InvoiceContext())
                {
                    var invoice = new Database.Invoice();
                    if (!db.Customers.Any(w => w.CustomerId == invoiceAdd.CustomerId))
                    {
                        return new InvoiceView()
                               {
                                   __CQRSSuccessful = false, __CQRSErrorMessage = "Unable to find parent for Customer", __CQRSStatusCode = 404
                               }
                    }
                    ;

                    var customer = db.Customers.First(w => w.CustomerId == invoiceAdd.CustomerId);
                    if (customer.Invoices == null)
                    {
                        customer.Invoices = new List <Database.Invoice>();
                    }
                    customer.Invoices.Add(invoice);
                    invoice.CreatedDate        = invoiceAdd.CreatedDate;
                    invoice.DueDate            = invoiceAdd.DueDate;
                    invoice.EmailTo            = invoiceAdd.EmailTo;
                    invoice.OrderedBy          = invoiceAdd.OrderedBy;
                    invoice.PaymentDetails     = invoiceAdd.PaymentDetails;
                    invoice.PurchaseOrderRef   = invoiceAdd.PurchaseOrderRef;
                    invoice.TermsAndConditions = invoiceAdd.TermsAndConditions;
                    //UserCodeBlockStart-PreSave
                    var next       = new CounterNextCommand();
                    var nextResult = await next.CounterNext(new CounterNext()
                    {
                        Name = "Invoice"
                    });

                    invoice.InvoiceNo = nextResult.Value;
                    //UserCodeBlockEnd-PreSave

                    await db.SaveChangesAsync();

                    result.CreatedDate      = invoice.CreatedDate;
                    result.DueDate          = invoice.DueDate;
                    result.EmailTo          = invoice.EmailTo;
                    result.GrandTotal       = invoice.GrandTotal;
                    result.InvoiceEmailed   = invoice.InvoiceEmailed;
                    result.InvoiceId        = invoice.InvoiceId;
                    result.InvoiceNo        = invoice.InvoiceNo;
                    result.OrderedBy        = invoice.OrderedBy;
                    result.PaidAmount       = invoice.PaidAmount;
                    result.PaidDate         = invoice.PaidDate;
                    result.PaidTax          = invoice.PaidTax;
                    result.PaymentDetails   = invoice.PaymentDetails;
                    result.PurchaseOrderRef = invoice.PurchaseOrderRef;
                    result.SubTotal         = invoice.SubTotal;
                    result.Tax = invoice.TaxTotal;
                    result.TermsAndConditions = invoice.TermsAndConditions;
                    return(result);
                }
            }
            catch (Exception e)
            {
                LogFactory.GetLogger().Log(LogLevel.Error, e);
                return(new InvoiceView()
                {
                    __CQRSSuccessful = false, __CQRSErrorMessage = "Unable to create InvoiceView", __CQRSStatusCode = 500
                });
            }
        }