Example #1
0
        public InvoiceRequest CreateInvoice(InvoiceRequest invoiceRequest)
        {
            using (var scope = _context.CreateScope())
            {
                var db = scope.ServiceProvider.GetRequiredService <InvoiceContext>();
                //add customer
                var newCustomer = new DataAccess.Models.Customer()
                {
                    Name   = invoiceRequest.CustomerDetails.CustomerName,
                    Streat = invoiceRequest.CustomerDetails.ShippingDetails.Streat,
                    State  = invoiceRequest.CustomerDetails.ShippingDetails.State,
                    City   = invoiceRequest.CustomerDetails.ShippingDetails.City,
                    Phone  = invoiceRequest.CustomerDetails.ShippingDetails.Phone,
                };
                db.Customer.Add(newCustomer);
                db.SaveChanges();
                var randumNumber = new Random();
                //add products
                var invoice = new InvoiceDetails()
                {
                    InvoiceNumber = invoiceRequest.CompanyID.ToString() + "-" + "DDYY" + randumNumber.Next().ToString(),
                    CompanyId     = invoiceRequest.CompanyID,
                    Date          = invoiceRequest.InvoiceDate,
                    CustomerId    = newCustomer.Id,
                };
                db.InvoiceDetails.Add(invoice);
                db.SaveChanges();
                foreach (var product in invoiceRequest.ProductDetails)
                {
                    var newProduct = new DataAccess.Models.Product()
                    {
                        price = product.Price,
                        Name  = product.Name
                    };
                    db.Product.Add(newProduct);
                    db.SaveChanges();
                    var newOrder = new OrderDetails()
                    {
                        ProuductId = newProduct.Id,
                        InvoiceId  = invoice.Id,
                        Quantity   = product.Quantity
                    };
                    db.OrderDetails.Add(newOrder);
                    db.SaveChanges();
                }

                invoiceRequest.InvoiceId = invoice.Id;
                return(invoiceRequest);
            }
        }
Example #2
0
        public static ProductDto ToDto(this DataAccess.Models.Product item)
        {
            ProductDto dto = null;

            if (item != null)
            {
                dto = new ProductDto
                {
                    Id                       = item.Id,
                    Name                     = item.Name,
                    DepositBuyDate           = item.DepositBuyDate,
                    BuyingPrice              = item.BuyingPrice.HasValue ? item.BuyingPrice.Value : 0.0m,
                    Item                     = item.Item.ToBasicDto() as ItemDto,
                    ProductType              = item.ProductType.ToBasicDto() as ProductTypeDto,
                    PaperReference           = item.PaperReference.ToBasicDto() as PaperReferenceDto,
                    City                     = item.City.ToDto(),
                    StockLocation            = item.StockLocation,
                    Rating                   = item.Rating.ToDto(),
                    Customer                 = item.Customer.ToDto(),
                    Operator                 = item.CreateOperator.ToDto(),
                    Brands                   = item.Brands.ToList().ToDto(),
                    Categories               = item.Categories.ToList().ToDto(),
                    Models                   = item.Models.ToList().ToDto(),
                    Sold                     = item.Sold,
                    SellingPrice             = item.SellPrice.HasValue ? item.SellPrice.Value : 0.0m,
                    SellingOperator          = item.SellingOperator.ToDto(),
                    State                    = item.State.ToDto(),
                    Buyer                    = item.ProductBuyer.ToDto(),
                    Mecanic                  = item.Mecanic.HasValue && item.Mecanic.Value,
                    SellingDate              = item.SellingDate.HasValue ? item.SellingDate.Value : Constants.DEFAULT_DATE,
                    CardIdentificationNumber = item.CarIdentificationNumber,
                    HasComplaint             = item.HasComplaint.HasValue && item.HasComplaint.Value,
                    ComplaintOperator        = item.ComplaintOperator.ToDto(),
                    ComplaintDate            = item.ComplaintDate.HasValue ? item.ComplaintDate.Value : Constants.DEFAULT_DATE,
                    IsReturn                 = item.IsReturn.HasValue && item.IsReturn.Value,
                    ReturnDate               = item.ReturnDate.HasValue ? item.ReturnDate.Value : Constants.DEFAULT_DATE,
                    ReturnOperator           = item.ReturnOperator.ToDto(),
                    IsReplace                = item.IsReplace.HasValue && item.IsReplace.Value,
                    ReplacementOperator      = item.ReplaceOperator.ToDto(),
                    ReplaceDate              = item.ReplaceDate.HasValue ? item.ReplaceDate.Value : Constants.DEFAULT_DATE,
                    ReplaceProductId         = item.ReplacedProductId.HasValue ? item.ReplacedProductId.Value : 0,
                    IsReimbursed             = item.IsReimbursed.HasValue && item.IsReimbursed.Value,
                    IsAvailable              = item.IsAvailable.HasValue && item.IsAvailable.Value,
                    RequestNumber            = item.RequestNumber,
                    RequestDate              = item.RequestDate.HasValue ? item.RequestDate.Value : Constants.DEFAULT_DATE,
                    RequestOperator          = item.RequestOperator.ToDto(),
                    HasOrder                 = item.HasOrder.HasValue && item.HasOrder.Value,
                    OrderNumber              = item.OrderNumber,
                    OrderDate                = item.OrderDate.HasValue ? item.OrderDate.Value : Constants.DEFAULT_DATE,
                    OrderOperator            = item.OrderOperator.ToDto(),
                    OrderCustomer            = item.OrderCustomer.ToDto(),
                    OrderSellingPrice        = item.OrderSellingPrice.HasValue ? item.OrderSellingPrice.Value : 0.0m,
                    AdvancePaymentAmount     = item.AdvancePaymentAmount.HasValue ? item.AdvancePaymentAmount.Value : 0.0m,
                    EstimatedDeliveryDate    = item.EstimatedDeliveryDate.HasValue ? item.EstimatedDeliveryDate.Value : Constants.DEFAULT_DATE,
                    FinalDate                = item.FinalDate.HasValue ? item.FinalDate.Value : Constants.DEFAULT_DATE,
                    BalanceAmount            = item.BalanceAmount.HasValue ? item.BalanceAmount.Value : 0.0m
                };
            }

            return(dto);
        }