public static CustomerProductInstance ToEntity(this CustomerProductInstanceEditDto e) { if (e == null) { return(null); } var res = new CustomerProductInstance(); 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.IdReceipt = e.IdReceipt; res.Price = e.Price; res.DiscountType = (int?)e.DiscountType; return(res); }
public async Task <ActionResult <CustomerProductInstanceDto> > Put([FromBody] CustomerProductInstanceEditDto value) { if (value.Id == Guid.Empty) { throw new Exception("Unable to edit a CustomerProductInstance without ID"); } var res = await _service.Save(value); return(res); }
public async Task <CustomerProductInstanceDto> Save(CustomerProductInstanceEditDto itemToEdit) { CustomerProductInstance res; if (itemToEdit.Id != Guid.Empty) { _logger.LogDebug($"Calling Update CustomerProductInstance for id=[{itemToEdit.Id}]"); //edit res = await this.GetInner(itemToEdit.Id); if (res == null) { throw new NotFoundException($"CustomerProductInstance with id={itemToEdit.Id} not exists!"); } res.CostAmount = itemToEdit.CostAmount; res.Description = itemToEdit.Description; res.Discount = itemToEdit.Discount; res.DiscountDescription = itemToEdit.DiscountDescription; res.ExpirationDate = itemToEdit.ExpirationDate; res.Price = itemToEdit.Price; res.IdReceipt = itemToEdit.IdReceipt; res.DiscountType = (int?)itemToEdit.DiscountType; _dbCtx.CustomerProductInstances.Update(res); _dbCtx.SaveChanges(); } else { //insert res = itemToEdit.ToEntity(); res.PaymentStatus = dal.Entities.PaymentStatus.None; res.Id = Guid.NewGuid(); _logger.LogDebug($"Calling Insert CustomerProductInstance for id=[{res.Id}] (temp id, not created yet!)"); await _dbCtx.CustomerProductInstances.AddAsync(res); _dbCtx.SaveChanges(); } return(res.ToDto()); }
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)); }
public async Task <ActionResult <CustomerProductInstanceDto> > Post([FromBody] CustomerProductInstanceEditDto value) { var res = await _service.Save(value); return(res); }