public static OrderInvoiceDto GetOrderInvoiceOrReciept(int user_id, OrdersServices.OrderType order_type, int order_id, bool isConReceipt)
        {
            OrderInvoiceDto response = new OrderInvoiceDto();

            if (order_type == OrdersServices.OrderType.OrderApp)
            {
                using (OrderDao dao = new OrderDao())
                {
                    //Order ord = (isConReceipt ? dao.GetConsumerOrder(user_id, order_id) : dao.GetAgentOrder(user_id, order_id));
                    Order           ord = dao.GetDriverOrder(user_id, order_id);
                    OrderInvoiceDto dto = new OrderInvoiceDto();
                    DriverHelper.CopyFromEntity(dto, ord);
                    response = dto;
                }
            }
            else if (order_type == OrdersServices.OrderType.OrderTelp)
            {
                using (TeleOrderDao dao = new TeleOrderDao())
                {
                    TeleOrder       ord = dao.GetDriverOrder(user_id, order_id);
                    OrderInvoiceDto dto = new OrderInvoiceDto();
                    DriverHelper.CopyFromEntity(dto, ord);
                    response = dto;
                }
            }
            return(response);
        }
Exemple #2
0
        public async Task <bool> NewOrder(OrderInvoiceDto order)
        {
            if (order == null || order.OrderedItems.Count == 0 || !ValidConfigStrings())
            {
                return(false);
            }
            HttpClient httpClient = await _handler.GetClient(staffAuthUrl, invoiceApi, invoiceScope);

            if (httpClient != null)
            {
                if ((await httpClient.PostAsJsonAsync <OrderInvoiceDto>(invoiceUri, order)).IsSuccessStatusCode)
                {
                    return(true);
                }
            }
            return(false);
        }
Exemple #3
0
 private void SetupOrder()
 {
     order = new OrderInvoiceDto
     {
         CustomerId   = 1,
         OrderId      = 1,
         OrderDate    = new DateTime(),
         Total        = 9.99,
         OrderedItems = new List <InvoiceItemDto>
         {
             new InvoiceItemDto {
                 OrderId = 1, ProductId = 1, Quantity = 1, Price = 1, Name = "Product Name"
             },
             new InvoiceItemDto {
                 OrderId = 2, ProductId = 2, Quantity = 2, Price = 2, Name = "Another Product Name"
             }
         }
     };
 }
Exemple #4
0
        public static void CopyFromEntity(OrderInvoiceDto dto, Order order)
        {
            dto.order_id          = order.OrdrID;
            dto.invoice_number    = order.InvoiceNumber;
            dto.consumer_name     = order.Consumer.Name;
            dto.consumer_mobile   = order.Consumer.PhoneNumber;
            dto.consumer_address  = order.ConsumerAddress.Address;
            dto.consumer_location = order.ConsumerAddress.RegionName;
            dto.order_date        = Common.ToDateFormat(order.OrderDate);
            List <ProductsDto> pdtos            = new List <ProductsDto>();
            decimal            sumPromoProduct  = 0;
            decimal            sumPromoShipping = 0;
            decimal            sumPromoRefill   = 0;
            decimal            sumPromoExchange = 0;

            foreach (OrderDetail det in order.OrderDetails)
            {
                ProductsDto pdt = new ProductsDto();
                pdt.product_id      = det.Product.ProdID;
                pdt.product_name    = det.Product.ProductName;
                pdt.product_promo   = det.PromoProduct;
                pdt.quantity        = det.Quantity;
                pdt.shipping_cost   = det.ShippingCharge;
                pdt.shipping_promo  = det.PromoShipping;
                pdt.sub_total       = det.SubTotal;
                pdt.unit_price      = det.UnitPrice;
                pdt.refill_price    = det.RefillPrice;
                pdt.refill_promo    = det.PromoRefill;
                pdt.refill_quantity = det.RefillQuantity;
                pdtos.Add(pdt);

                if (det.PromoProduct != Convert.ToDecimal(0))
                {
                    sumPromoShipping += det.PromoShipping;
                }
                if (det.RefillQuantity > 0)
                {
                    sumPromoShipping += det.PromoShipping;
                }
                sumPromoProduct += det.PromoProduct;
                sumPromoRefill  += det.PromoRefill;
                dto.has_exchange = (order.OrderPrdocuctExchanges.Count > 0 ? 1 : 0);
                if (dto.has_exchange == 1)
                {
                    if (dto.exchange == null)
                    {
                        dto.exchange = new List <Pertamina.LPG.API.DTOs.Orders.ExchangeDto>();
                    }
                    foreach (var item in order.OrderPrdocuctExchanges)
                    {
                        Pertamina.LPG.API.DTOs.Orders.ExchangeDto exDto = new Pertamina.LPG.API.DTOs.Orders.ExchangeDto();
                        OrdersHelper.CopyFromEntity(exDto, item);
                        dto.exchange.Add(exDto);
                        sumPromoExchange += exDto.exchange_promo_price;
                        sumPromoShipping += det.PromoShipping;
                    }
                }
            }
            dto.agency_id       = order.AgentAdmin.Agency.AgenID;
            dto.agency_name     = order.AgentAdmin.Agency.AgencyName;
            dto.agency_address  = order.AgentAdmin.Agency.MRegion.RegionName;
            dto.agency_location = order.AgentAdmin.Agency.MRegion.RegionName;
            //dto.agency_address = order.AgentAdmin.Agency.Region;
            //dto.agency_location = order.AgentAdmin.Agency.Region;
            dto.grand_total = order.GrandTotal;

            dto.grand_discount            = (Math.Abs(sumPromoProduct) + Math.Abs(sumPromoShipping) + Math.Abs(sumPromoRefill) + Math.Abs(sumPromoExchange)) * -1;
            dto.grand_total_with_discount = dto.grand_total + Math.Abs(dto.grand_discount);
            dto.products = pdtos.ToArray();
        }
        public static void CopyFromEntity(OrderInvoiceDto dto, TeleOrder teleOrder)
        {
            dto.order_id       = teleOrder.TeleOrdID;
            dto.invoice_number = teleOrder.InvoiceNumber;
            dto.order_date     = Common.ToDateFormat(teleOrder.OrderDate);
            dto.order_time     = teleOrder.OrderTime;
            if (teleOrder.TeleCustomers.Count > 0)
            {
                TeleCustomer cust = teleOrder.TeleCustomers.First();
                dto.consumer_name    = cust.CustomerName;
                dto.consumer_mobile  = cust.MobileNumber;
                dto.consumer_address = cust.Address;
            }
            decimal            sumPromoProduct  = 0;
            decimal            sumPromoShipping = 0;
            decimal            sumPromoRefill   = 0;
            decimal            sumPromoExchange = 0;
            List <ProductsDto> pdtos            = new List <ProductsDto>();

            foreach (TeleOrderDetail det in teleOrder.TeleOrderDetails)
            {
                ProductsDto pdt = new ProductsDto();
                pdt.product_id      = det.Product.ProdID;
                pdt.product_name    = det.Product.ProductName;
                pdt.product_promo   = det.PromoProduct ?? 0.0M;
                pdt.quantity        = det.Quantity;
                pdt.shipping_cost   = det.ShippingCharge ?? 0M;
                pdt.shipping_promo  = det.PromoShipping ?? 0M;
                pdt.refill_price    = det.RefillPrice;
                pdt.refill_promo    = det.PromoRefill;
                pdt.refill_quantity = det.RefillQuantity;
                pdt.sub_total       = det.SubTotal;
                pdt.unit_price      = det.UnitPrice;
                pdtos.Add(pdt);

                if (teleOrder.DeliveryType)
                {
                    if (det.Quantity > 0)
                    {
                        sumPromoShipping += (det.PromoShipping * det.Quantity) ?? 0.0M;
                    }
                    if (det.RefillQuantity > 0)
                    {
                        sumPromoShipping += (det.PromoShipping * det.RefillQuantity) ?? 0.0M;
                    }
                }
                sumPromoProduct += det.PromoProduct ?? 0.0M;
                sumPromoRefill  += det.PromoRefill;

                dto.has_exchange = (teleOrder.TeleOrderPrdocuctExchanges.Count > 0 ? 1 : 0);
                if (dto.has_exchange == 1)
                {
                    if (dto.exchange == null)
                    {
                        dto.exchange = new List <ExchangeDto>();
                    }
                    foreach (var item in teleOrder.TeleOrderPrdocuctExchanges)
                    {
                        if (item.ProdID == det.ProdID)
                        {
                            ExchangeDto exDto = new ExchangeDto();
                            CopyFromEntity(exDto, item);
                            dto.exchange.Add(exDto);
                            sumPromoExchange += item.ExchangePromoPrice;
                            if (teleOrder.DeliveryType)
                            {
                                sumPromoShipping += (det.PromoShipping * item.ExchangeQuantity) ?? 0.0M;
                            }
                        }
                    }
                }
            }
            dto.agency_id       = teleOrder.AgentAdmin.Agency.AgenID;
            dto.agency_name     = teleOrder.AgentAdmin.Agency.AgencyName;
            dto.agency_address  = teleOrder.AgentAdmin.Agency.MRegion.RegionName;
            dto.agency_location = teleOrder.AgentAdmin.Agency.MRegion.RegionName;
            //dto.agency_address = teleOrder.AgentAdmin.Agency.Region;
            //dto.agency_location = teleOrder.AgentAdmin.Agency.Region;
            dto.grand_total = teleOrder.GrantTotal;

            dto.grand_discount            = (Math.Abs(sumPromoProduct) + (teleOrder.DeliveryType ? Math.Abs(sumPromoShipping) : 0) + Math.Abs(sumPromoRefill) + Math.Abs(sumPromoExchange)) * -1;
            dto.grand_total_with_discount = dto.grand_total + Math.Abs(dto.grand_discount);
            dto.products = pdtos.ToArray();
        }
 public async Task <bool> NewOrder(OrderInvoiceDto order)
 {
     Order = order;
     return(Succeeds);
 }