Beispiel #1
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;
        }
Beispiel #2
0
        /// <summary>  </summary>
        /// <param name="invoiceAdd">this is a test</param>
        /// <returns></returns>
        /// <remarks>
        /// ///

        /// </remarks>
        public async Task <IInvoiceLineView> InvoiceLineAdd(IInvoiceLineAdd invoiceLineAdd)
        {
            try
            {
                var result = new InvoiceLineView();
                using (var db = new InvoiceContext())
                {
                    var invoiceLine = new Database.InvoiceLine();
                    if (!db.Invoices.Any(w => w.InvoiceId == invoiceLineAdd.InvoiceId))
                    {
                        return new InvoiceLineView()
                               {
                                   __CQRSSuccessful = false, __CQRSErrorMessage = "Unable to find parent for Invoice", __CQRSStatusCode = 404
                               }
                    }
                    ;

                    var invoice = db.Invoices.First(w => w.InvoiceId == invoiceLineAdd.InvoiceId);
                    if (invoice.InvoiceLines == null)
                    {
                        invoice.InvoiceLines = new List <Database.InvoiceLine>();
                    }
                    invoice.InvoiceLines.Add(invoiceLine);
                    invoiceLine.LineTotal   = invoiceLineAdd.LineTotal;
                    invoiceLine.Notes       = invoiceLineAdd.Notes;
                    invoiceLine.Product     = invoiceLineAdd.Product;
                    invoiceLine.ProductCode = invoiceLineAdd.ProductCode;
                    invoiceLine.Quantity    = invoiceLineAdd.Quantity;
                    invoiceLine.SubTotal    = invoiceLineAdd.SubTotal;
                    invoiceLine.TaxExempt   = invoiceLineAdd.TaxExempt;
                    invoiceLine.TaxTotal    = invoiceLineAdd.TaxTotal;
                    invoiceLine.UnitCost    = invoiceLineAdd.UnitCost;
                    //UserCodeBlockStart-PreSave
                    //UserCodeBlockEnd-PreSave

                    await db.SaveChangesAsync();

                    result.InvoiceLineId = invoiceLine.InvoiceLineId;
                    result.LineTotal     = invoiceLine.LineTotal;
                    result.Notes         = invoiceLine.Notes;
                    result.Product       = invoiceLine.Product;
                    result.ProductCode   = invoiceLine.ProductCode;
                    result.Quantity      = invoiceLine.Quantity;
                    result.SubTotal      = invoiceLine.SubTotal;
                    result.TaxExempt     = invoiceLine.TaxExempt;
                    result.TaxTotal      = invoiceLine.TaxTotal;
                    result.UnitCost      = invoiceLine.UnitCost;
                    //UserCodeBlockStart-PreResult
                    //UserCodeBlockEnd-PreResult
                    return(result);
                }
            }
            catch (Exception e)
            {
                LogFactory.GetLogger().Log(LogLevel.Error, e);
                return(new InvoiceLineView()
                {
                    __CQRSSuccessful = false, __CQRSErrorMessage = "Unable to create InvoiceLineView", __CQRSStatusCode = 500
                });
            }
        }