public static CustomerProductInstanceDto ToDto(this CustomerProductInstance e, bool loadInners = true) { if (e == null) { return(null); } var res = new CustomerProductInstanceDto(); res.Id = e.Id; res.Description = e.Description; res.Name = e.Name; res.CostAmount = e.CostAmount; res.Discount = e.Discount; res.DiscountDescription = e.DiscountDescription; res.ExpirationDate = e.ExpirationDate; res.IdProductInstance = e.IdProductInstance; res.IdCustomer = e.IdCustomer; res.IdReversal = e.IdReversal; res.ReversalCredit = e.ReversalCredit; res.ReversalDate = e.ReversalDate; res.Price = e.Price; res.IdReceipt = e.IdReceipt; res.DiscountType = (DiscountType?)e.DiscountType; res.ProductInstance = e.ProductInstance.ToDto(loadInners); if (loadInners) { res.Customer = e.Customer.ToDto(); } if (e.PaymentStatus.HasValue) { res.PaymentStatus = (Models.PaymentStatus)e.PaymentStatus; } return(res); }
public async Task <PaymentReceiptDto> CreateFastInvoice(PaymentReceiptEditForFastInvoceDto data) { var editRecipt = new PaymentReceiptEditDto() { CostAmount = data.CostAmount, Description = data.Description, IdCustomer = data.IdCustomer, IssueDate = data.IssueDate, PaymentType = data.PaymentType, Name = data.Name }; var savedReceipt = await Save(editRecipt); var detailList = new List <PaymentReceiptDetailDto>(); foreach (var d in data.PaymentReceiptDetails) { var customerInstance = new CustomerProductInstanceDto(); if (d.CustomerProductInstance != null) { var editCustomerProduct = new CustomerProductInstanceEditDto() { CostAmount = d.CustomerProductInstance.CostAmount, Description = d.CustomerProductInstance.Description, Discount = d.CustomerProductInstance.Discount, DiscountDescription = d.CustomerProductInstance.DiscountDescription, DiscountType = d.CustomerProductInstance.DiscountType, ExpirationDate = d.CustomerProductInstance.ExpirationDate, IdCustomer = d.CustomerProductInstance.IdCustomer, IdProductInstance = d.CustomerProductInstance.IdProductInstance, IdReceipt = savedReceipt.Id, Name = d.CustomerProductInstance.Name, Price = d.CustomerProductInstance.Price, ReversalCredit = d.CustomerProductInstance.ReversalCredit, ReversalDate = d.CustomerProductInstance.ReversalDate, IdReversal = d.CustomerProductInstance.IdReversal }; customerInstance = await _customerInstanceProductService.Value.Save(editCustomerProduct); } var editReceiptDetail = new PaymentReceiptDetailEditDto() { CostAmount = d.CostAmount, Description = d.Description, IdReceipt = savedReceipt.Id, IdResource = customerInstance.Id != null && customerInstance.Id != Guid.Empty ? customerInstance.Id : d.IdResource, Name = d.Name, ProductAmount = d.ProductAmount, ReceiptDetailType = d.ReceiptDetailType }; await _receiptDetailService.Value.Save(editReceiptDetail); } var invoiceData = new InvoiceRequestData() { CustomerAddress = data.CustomerAddress, CustomerFiscalCode = data.CustomerFiscalCode, CustomerName = data.CustomerName, IdReceipt = savedReceipt.Id, Description = data.Description, Discount = data.Discount, DiscountDescription = data.DiscountDescription, DiscountType = data.DiscountType }; return(await GenerateInvoice(invoiceData)); }