public static object RegistroOrden(String clientes, String productos, String descripcion, String cantidad, String precio, String estado) { Object objReturn = new Object(); BaseEntity objBase = new BaseEntity(); try { #region Obtener Cliente JavaScriptSerializer sr = new JavaScriptSerializer(); List <String> lstClientesString = sr.Deserialize <List <String> >(clientes); List <Int32> lstClientesInt = new List <Int32>(); if (lstClientesString.Count > 0) { if (lstClientesString[0].Equals("multiselect-all")) { lstClientesString.RemoveAt(0); } lstClientesInt = lstClientesString.Select(Int32.Parse).ToList(); } else { lstClientesInt.Insert(0, 0); } #endregion #region Obtener Producto JavaScriptSerializer srp = new JavaScriptSerializer(); List <String> lstProductString = srp.Deserialize <List <String> >(productos); List <Int32> lstProductsInt = new List <Int32>(); if (lstProductString.Count > 0) { if (lstProductString[0].Equals("multiselect-all")) { lstProductString.RemoveAt(0); } lstProductsInt = lstProductString.Select(Int32.Parse).ToList(); } else { lstProductsInt.Insert(0, 0); } #endregion Int32 CustomerId = (lstClientesInt.Count > 0) ? lstClientesInt[0] : 0; Int32 ProductId = (lstProductsInt.Count > 0) ? lstProductsInt[0] : 0; Decimal UnitPrice = Convert.ToDecimal(precio); Int32 Quantity = Convert.ToInt32(cantidad); Byte Status = Convert.ToByte(estado); AppResource obj = ResourceBL.Instance.AppResource_GetByID(ref objBase, ProductId); if (objBase.Errors.Count == 0) { if (obj != null) { OrderHeader orderHeader = new OrderHeader(); obj.NameResource = Config.Impremtawendomain + obj.NameResource; OrderDetail Detalle = new OrderDetail(); Detalle.Product = obj; Detalle.ProductId = ProductId; Detalle.Product.UnitPrice = UnitPrice; Detalle.Quantity = Quantity; Detalle.CreatedBy = CustomerId; Detalle.UpdatedBy = CustomerId; Detalle.Status = (Status == 1) ? Convert.ToByte(EnumStatus.Enabled) : Convert.ToByte(0); orderHeader.IsCotization = 1; orderHeader.Description = descripcion; orderHeader.ListOrderDetail.Add(Detalle); Detalle.CalculateTotalPricexProduct(); orderHeader.CalculateTotals(); orderHeader.Customer = new Customer(); orderHeader.Customer.CustomerId = CustomerId; tBaseDetailOrderList objListDetail = new tBaseDetailOrderList(); for (int i = 0; i < orderHeader.ListOrderDetail.Count; i++) { objListDetail.Add(new tBaseDetailOrder() { ProductId = orderHeader.ListOrderDetail[i].Product.Id, Price = orderHeader.ListOrderDetail[i].Product.UnitPrice, Quantity = orderHeader.ListOrderDetail[i].Quantity, CreatedBy = orderHeader.Customer.CustomerId, UpdatedBy = orderHeader.Customer.CustomerId, Status = Convert.ToByte(EnumStatus.Disabled) }); } Boolean success = OrderBL.Instance.Insertar_Pedido(ref objBase, ref orderHeader, objListDetail); if (success) { String UrlPaymentOrder = String.Format("{0}?ordid={1}", Config.impremtawendomainReview, HttpUtility.UrlEncode(Encryption.Encrypt(Convert.ToString(orderHeader.OrderId)))); objReturn = new { Result = "Ok", Msg = "Orden Registrada correctamente.", UrlPaymentOrder = UrlPaymentOrder }; } else { objReturn = new { Result = "NoOk", Msg = "No se pudo registrar la Orden.", }; } } } else { objReturn = new { Result = "NoOk", Msg = "No se pudo registrar la Orden.", }; } } catch (Exception exception) { objReturn = new { Result = "NoOk", Msg = "No se pudo registrar la Orden.", }; } return(objReturn); }
public static Object CartProduct_UpdateQuantity(dynamic data) { String Ok = "Ok"; String NoOk = "NoOk"; Object objReturn = new { Result = NoOk }; try { String ProductId = data["ProductId"]; String Quantity = data["ProductQuantity"]; List <Object> lstItemsCount = new List <Object>(); if (!Int32.TryParse(ProductId, out int productid) || productid < 0) { return(objReturn = new { Result = NoOk, Message = "Producto Incorrecto." }); } if (!Int32.TryParse(Quantity, out int quantity) || quantity < 0) { return(objReturn = new { Result = NoOk, Message = "Cantidad Incorrecta." }); } OrderHeader ObjOrderHeader = BaseSession.SsOrderxCore; var ProductExist = ObjOrderHeader.ListOrderDetail.Any(p => p.Product.ID == productid); if (!ProductExist && ProductId != "00") { objReturn = new { Result = NoOk, Msg = "El producto no se encuentra agregado.", OrderHeader = "" }; } else { OrderDetail DetailSelect = new OrderDetail(); for (int i = 0; i < ObjOrderHeader.ListOrderDetail.Count; i++) { if (ObjOrderHeader.ListOrderDetail[i].Product.ID == productid) { ObjOrderHeader.ListOrderDetail[i].Quantity = quantity; ObjOrderHeader.CalculateTotalPricexProduct(ObjOrderHeader.ListOrderDetail[i]); DetailSelect = ObjOrderHeader.ListOrderDetail[i]; } } //Remover toda la tabla if (quantity == 0 && ProductId == "00") { ObjOrderHeader.ListOrderDetail = null; } //Remove producto seleccionado if (quantity == 0 && ProductId != "00") { ObjOrderHeader.ListOrderDetail.Remove(ObjOrderHeader.ListOrderDetail.Single(p => p.Product.ID == productid)); } ObjOrderHeader.CalculateTotals(); lstItemsCount.Add(ObjOrderHeader.ListOrderDetail); BaseSession.SsOrderxCore = ObjOrderHeader; DetailSelect.ProductId = Convert.ToInt32(ProductId); Object OrderHeader = new { Ordertotal = ObjOrderHeader.Ordertotal, SubTotal = ObjOrderHeader.SubTotal, DeliveryTotal = ObjOrderHeader.DeliveryTotal, CustomerId = ObjOrderHeader.Customer == null ? 0 : ObjOrderHeader.Customer.ID, CustomerName = ObjOrderHeader.Customer == null ? "" : ObjOrderHeader.Customer.FullName, Detail = DetailSelect, lstItemsCount = lstItemsCount }; JavaScriptSerializer serializer = new JavaScriptSerializer(); String sJSON = serializer.Serialize(OrderHeader); objReturn = new { Result = Ok, Msg = "Cantidad actualizada correctamente.", OrderHeader = sJSON.ToString() }; } } catch (Exception ex) { objReturn = new { Result = NoOk, Msg = "Ocurrio un problema actualizando la cantidad." }; } return(objReturn); }
public static Object AddProduct(dynamic objProd) { Object objReturn = new { Result = "NoOk" }; BaseEntity objBase = new BaseEntity(); try { Products obj = null; String ProductId = Encryption.Decrypt(HttpUtility.UrlDecode(objProd["ProductId"])); obj = ProductBL.Instance.Products_GetList_ById_Ecommerce(ref objBase, Convert.ToInt32(ProductId)); if (objBase.Errors.Count == 0) { if (obj != null) { obj.NameResource = Config.ProductDomainRuta + obj.NameResource; OrderHeader orderHeader = BaseSession.SsOrderxCore; var ProductExist = orderHeader.ListOrderDetail.Any(p => p.Product.ID == obj.ID); if (ProductExist) { objReturn = new { Result = "NoOk", Msg = "El producto ya se encuentra agregado.", Value = -1 }; } else { OrderDetail Detalle = new OrderDetail() { Product = obj, Quantity = 1, }; orderHeader.ListOrderDetail.Add(Detalle); Detalle.CalculateTotalPricexProduct(); orderHeader.CalculateTotals(); if (orderHeader != null && orderHeader.ListOrderDetail != null && orderHeader.ListOrderDetail.Count > 0) { List <Object> lstDetail = new List <Object>(); for (int i = 0; i < orderHeader.ListOrderDetail.Count; i++) { Object objProduct = new { ProductId = orderHeader.ListOrderDetail[i].Product.ID, ProductName = orderHeader.ListOrderDetail[i].Product.Name, Category = orderHeader.ListOrderDetail[i].Product.category.Name, UnitPrice = orderHeader.ListOrderDetail[i].Product.UnitPrice, NameResource = orderHeader.ListOrderDetail[i].Product.NameResource }; Object Detail = new { Product = objProduct, Quantity = orderHeader.ListOrderDetail[i].Quantity, TotalPrice = orderHeader.ListOrderDetail[i].Totalprice, }; lstDetail.Add(Detail); } Object OrderHeader = new { Ordertotal = orderHeader.Ordertotal, SubTotal = orderHeader.SubTotal, DeliveryTotal = orderHeader.DeliveryTotal, CustomerId = orderHeader.Customer == null ? 0 : orderHeader.Customer.ID, CustomerName = orderHeader.Customer == null ? "" : orderHeader.Customer.FullName, Detail = lstDetail }; JavaScriptSerializer serializer = new JavaScriptSerializer(); String sJSON = serializer.Serialize(OrderHeader); BaseSession.SsOrderxCore = orderHeader; objReturn = new { Result = "Ok", Msg = "Agregado correctamente.", ListProductToCartHeader = sJSON.ToString() }; } } } else { objReturn = new { Result = "NoOk", Msg = "No se pudo agregar el producto." }; } } else { objReturn = new { Result = "NoOk", Msg = "Ocurrio un problema agregando el producto." }; } } catch (Exception ex) { objReturn = new { Result = "NoOk", Msg = "Ocurrio un problema agregando el producto." }; } return(objReturn); }