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()); }
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; }
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)); }
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;"> </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 }); } }