Esempio n. 1
0
        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);
        }
Esempio n. 2
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));
        }