コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        public async Task <ActionResult <CustomerProductInstanceDto> > Post([FromBody] CustomerProductInstanceEditDto value)
        {
            var res = await _service.Save(value);

            return(res);
        }