public static void CopyFromEntity(DriverOrderDetailsDto odt, TeleOrder order) { odt.order_id = order.TeleOrdID; odt.order_type = OrdersServices.OrderType.OrderTelp.ToString(); odt.invoice_number = order.InvoiceNumber; odt.order_date = Common.ToDateFormat(order.OrderDate); odt.order_time = order.OrderTime.ToString(); if (order.TeleCustomers.Count > 0) { TeleCustomer cust = order.TeleCustomers.First(); odt.consumer_address = cust.Address; odt.consumer_mobile = cust.MobileNumber; odt.consumer_name = cust.CustomerName; } odt.grand_total = order.GrantTotal; odt.delivery_timeslot_id = order.DeliverySlotID ?? 0; }
public AddTeleOrderResponse AddTeleOrder(AddTeleOrderRequest request) { AddTeleOrderResponse response = new AddTeleOrderResponse(); try { AgentAdmin admin = AgentAdminServices.GetAuthAdmin(request.user_id, request.auth_token, response); if (admin == null) { return(response); } if (request.delivery_date <= DateTime.MinValue) { _orderService.MakeInvalidDeliveryDateFormat(response); return(response); } UpdateTeleOrderRequest(request); // To update request from mobile, Reason : not passing expected values from mobile TeleCustomer cons = new TeleCustomer(); cons.Address = request.customer_details.customer_address; cons.CustomerName = request.customer_details.customer_name; cons.MobileNumber = request.customer_details.customer_mobile; cons.StatusId = true; //cons.Latitude = request.customer_details.latitude; //cons.Longitude = request.customer_details.longitude; cons.CreatedBy = admin.AgadmID; cons.CreatedDate = DateTime.Now; TeleOrder ord = new TeleOrder(); PopulateOrder(ord, cons.TeleCustID, request, admin); AddProductsToOrder(ord, request.products); ord.DrvrID = request.driver_id; ord.DeliverySlotID = (short)request.time_slot_id; //ord.DeliveredDate = null; using (TeleOrderDao odao = new TeleOrderDao()) { if (request.has_exchange) { if (request.exchange == null) { _orderService.MakeInvalidExchangeInputResponse(response); return(response); } foreach (ExchangeDto exdto in request.exchange) { TeleOrderPrdocuctExchange opex = new TeleOrderPrdocuctExchange(); ProductExchange pxg = odao.FindProductExchangeById(exdto.exchange_id); if (pxg == null) { _orderService.MakeInvalidExchangeInputResponse(response); return(response); } opex.ProdID = pxg.ProdID; opex.ExchangePrice = exdto.exchange_price; opex.CreatedDate = DateTime.Now; opex.ExchangePromoPrice = exdto.exchange_promo_price * exdto.exchange_quantity; opex.ExchangeQuantity = exdto.exchange_quantity; opex.ExchangeWith = exdto.exchange_with; opex.StatusId = true;//TODO opex.SubTotal = exdto.exchange_price * exdto.exchange_quantity; //ord.GrandTotal -= (opex.ExchangePrice - opex.ExchangePromoPrice) * opex.ExchangeQuantity; var product = request.products.Where(p => p.product_id == pxg.ProdID).FirstOrDefault(); if (product == null) { //MakeInvalidExchangeInputResponse(response); response.code = 1; response.has_resource = 0; response.message = "Cannot find product with id " + pxg.ProdID + " in the products array"; return(response); } opex.TotalAmount = opex.SubTotal + opex.ExchangePromoPrice + (product.shipping_cost * exdto.exchange_quantity) + (product.shipping_promo * exdto.exchange_quantity); ord.TeleOrderPrdocuctExchanges.Add(opex); ord.ShippingCharge += (product.shipping_cost * exdto.exchange_quantity); ord.PromoShipping += (product.shipping_promo * exdto.exchange_quantity); ord.NumberOfProducts += exdto.exchange_quantity; ord.ExchangeSubTotal += opex.SubTotal; ord.PromoExchange += opex.ExchangePromoPrice; ord.GrantTotal += opex.TotalAmount; } } //cons.TeleOrder = ord; odao.Insert(ord); cons.TeleOrdID = ord.TeleOrdID; using (TeleOrderCustomerDao tcDao = new TeleOrderCustomerDao()) { tcDao.Insert(cons); } ord = odao.FindById(ord.TeleOrdID, true); TeleOrderHelper.CopyFromEntity(response, ord); response.code = 0; response.has_resource = 1; response.message = MessagesSource.GetMessage("add.tele.order"); } } catch (Exception ex) { response.MakeExceptionResponse(ex); } return(response); }
public static void CopyFromEntity(OrderInvoiceDto dto, TeleOrder order) { dto.order_id = order.TeleOrdID; dto.invoice_number = order.InvoiceNumber; dto.order_date = Common.ToDateFormat(order.OrderDate); if (order.TeleCustomers.Count > 0) { TeleCustomer cust = order.TeleCustomers.First(); dto.consumer_name = cust.CustomerName; dto.consumer_mobile = cust.MobileNumber; dto.consumer_address = cust.Address; } List <ProductsDto> pdtos = new List <ProductsDto>(); decimal sumPromoProduct = 0; decimal sumPromoShipping = 0; decimal sumPromoRefill = 0; decimal sumPromoExchange = 0; foreach (TeleOrderDetail det in order.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.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 (order.DeliveryType) { if (det.PromoProduct != Convert.ToDecimal(0)) { sumPromoShipping += det.PromoShipping ?? 0M; } if (det.RefillQuantity > 0) { sumPromoShipping += det.PromoShipping ?? 0M; } } sumPromoProduct += det.PromoProduct ?? 0M; sumPromoRefill += det.PromoRefill; dto.has_exchange = (order.TeleOrderPrdocuctExchanges.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.TeleOrderPrdocuctExchanges) { Pertamina.LPG.API.DTOs.Orders.ExchangeDto exDto = new Pertamina.LPG.API.DTOs.Orders.ExchangeDto(); TeleOrderHelper.CopyFromEntity(exDto, item); dto.exchange.Add(exDto); sumPromoExchange += exDto.exchange_promo_price; if (order.DeliveryType) { sumPromoShipping += det.PromoShipping ?? 0M; } } } } 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.GrantTotal; 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 void Insert(TeleCustomer cons) { _context.TeleCustomers.Add(cons); _context.SaveChanges(); }
public static void CopyFromEntity(ConfirmTeleOrderResponse response, TeleOrder order) { TeleOrderFullDetailsDto dto = new TeleOrderFullDetailsDto(); response.orders = dto; dto.order_id = order.TeleOrdID; dto.order_date = Common.ToDateFormat(order.OrderDate); dto.order_time = order.OrderTime; dto.delivery_date = Common.ToDateFormat(order.DeliveryDate ?? DateTime.MinValue); dto.delivery_time_slot = order.MDeliverySlot.SlotName; dto.invoice_number = order.InvoiceNumber; dto.order_status = order.StatusId; if (order.TeleCustomers.Count > 0) { TeleCustomer cust = order.TeleCustomers.First(); dto.consumer_name = cust.CustomerName; dto.consumer_mobile = cust.MobileNumber; dto.consumer_address = cust.Address; dto.consumer_location = null; } dto.driver = new DriverDetailsDto(); if (order.Driver != null) { dto.driver = new DriverDetailsDto(); CopyDriverFromEntity(dto.driver, order.Driver); } List <ProductsDto> pdtos = new List <ProductsDto>(); foreach (TeleOrderDetail det in order.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 ?? 0.0M; pdt.shipping_promo = det.PromoShipping ?? 0.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; pdt.grand_total = det.TotalAmount; pdtos.Add(pdt); } dto.grand_total = order.GrantTotal; dto.products = pdtos.ToArray(); dto.has_exchange = (order.TeleOrderPrdocuctExchanges.Count > 0 ? 1 : 0); if (dto.has_exchange == 1) { if (dto.exchange == null) { dto.exchange = new List <ExchangeDto>(); } foreach (var item in order.TeleOrderPrdocuctExchanges) { ExchangeDto exDto = new ExchangeDto(); CopyFromEntity(exDto, item); dto.exchange.Add(exDto); } } }