public ConfirmPickupOrderResponse ConfirmPickupOrder(ConfirmPickupOrderRequest request) { ConfirmPickupOrderResponse response = new ConfirmPickupOrderResponse(); try { if (!AgentAdminServices.CheckAdmin(request.user_id, request.auth_token, response)) { return(response); } using (TeleOrderDao dao = new TeleOrderDao()) { TeleOrder order = dao.FindById(request.order_id, true); order.StatusId = OrdersServices.ID_ORDER_CLOSED; string invNo = InvoiceService.GenerateInvoiceNumber(order.AgentAdmin.AgenID); order.InvoiceNumber = invNo; dao.Update(order); dao.Update(order); OrderPickupHelper.CopyFromEntity(response, order); response.code = 0; response.has_resource = 1; response.message = MessagesSource.GetMessage("cnfrm.pickup.order"); } } catch (Exception ex) { response.MakeExceptionResponse(ex); } return(response); }
public PlaceOrderPickupResponse PlacePickupOrder(PlaceOrderPickupRequest request) { PlaceOrderPickupResponse response = new PlaceOrderPickupResponse(); try { AgentAdmin admin = AgentAdminServices.GetAuthAdmin(request.user_id, request.auth_token, response); if (admin == null) { return(response); } UpdatePickupOrderRequest(request); // To update request from mobile, Reason : not passing expected values from mobile TeleOrder ord = new TeleOrder(); PopulateOrder(ord); ord.AgadmID = admin.AgadmID; ord.CreatedBy = admin.AgadmID; ord.UpdatedBy = admin.AgadmID; AddProductsToOrder(ord, request.products); using (TeleOrderDao dao = new TeleOrderDao()) { if (request.has_exchange) { if (request.exchange == null) { MakeInvalidExchangeInputResponse(response); return(response); } foreach (ExchangeDto item in request.exchange) { ProductExchange pxg = dao.FindProductExchangeById(item.exchange_id); TeleOrderPrdocuctExchange opex = new TeleOrderPrdocuctExchange(); if (pxg == null) { MakeInvalidExchangeInputResponse(response); return(response); } opex.ProdID = pxg.ProdID; opex.ExchangePrice = item.exchange_price; opex.CreatedDate = DateTime.Now; opex.ExchangePromoPrice = item.exchange_promo_price * item.exchange_quantity; opex.ExchangeQuantity = item.exchange_quantity; opex.ExchangeWith = item.exchange_with; opex.StatusId = true;//TODO //ord.GrantTotal -= (opex.ExchangePrice - opex.ExchangePromoPrice) * opex.ExchangeQuantity; //opex.TeleOrder = ord; opex.SubTotal = item.exchange_price * item.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; ord.TeleOrderPrdocuctExchanges.Add(opex); //ord.ShippingCharge += (product.shipping_cost * item.exchange_quantity); //ord.PromoShipping += (product.shipping_promo * item.exchange_quantity); ord.NumberOfProducts += item.exchange_quantity; ord.ExchangeSubTotal += opex.SubTotal; ord.PromoExchange += opex.ExchangePromoPrice; ord.GrantTotal += opex.TotalAmount; } } int agId = admin.AgenID; lock (InvoiceService.monitor) { ord.InvoiceNumber = InvoiceService.GenerateInvoiceNumber(agId); dao.Insert(ord); } OrderPickupHelper.CopyFromEntity(response, ord); response.code = 0; response.has_resource = 1; response.message = MessagesSource.GetMessage("place.pickup.order"); } } catch (Exception ex) { response.MakeExceptionResponse(ex); } return(response); }