/// <summary> /// Delete Object From AjaxJQuery /// </summary> /// <param name="id">PK Value</param> /// <returns></returns> public ActionResult DeleteItem(int id) { try { CotizacionDetalle ItemDetail = db.CotizacionDetalle.Find(id); if (ItemDetail != null) { var Cotizacion = db.Cotizacion.Include(c => c.Items).Where(c => c.CotizacionID == ItemDetail.CotizacionID).FirstOrDefault(); if (Cotizacion != null) { Cotizacion.Valor = Cotizacion.Valor - ItemDetail.ValTotal; db.Entry(Cotizacion).State = EntityState.Modified; db.CotizacionDetalle.Remove(ItemDetail); db.SaveChanges(); return(new JsonResult { Data = new { Success = true }, ContentEncoding = System.Text.Encoding.UTF8, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } } return(new JsonResult { Data = new { Message = "Por favor inténtelo de nuevo", Success = false }, ContentEncoding = System.Text.Encoding.UTF8, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } catch (Exception eX) { // // Log Exception eX // return(new JsonResult { Data = new { Message = "Error ejecutando la acción de eliminar. Por favor inténtelo de nuevo.", Success = false }, ContentEncoding = System.Text.Encoding.UTF8, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } }
public List <CotizacionDetalle> ObtenerDetalleCotizacion(int id_cotizacion_venta) { List <CotizacionDetalle> Listado = null; CotizacionDetalle Entidad = null; SqlDataReader lector; conexion.Open(); string query = "Sp_Obtener_Detalle_Cotizacion_Venta"; SqlCommand comando = new SqlCommand(query, conexion); comando.CommandType = CommandType.StoredProcedure; comando.Parameters.AddWithValue("@id_cotizacion_venta", id_cotizacion_venta); lector = comando.ExecuteReader(); if (lector.HasRows) { Listado = new List <CotizacionDetalle>(); while (lector.Read()) { Entidad = new CotizacionDetalle(); Entidad.descripcion_pro_ser = lector["descripcion_pro_ser"].ToString(); Entidad.codigo = lector["codigo"].ToString(); Entidad.precio = lector["precio"].ToString(); Entidad.unidad_medida = lector["unidad_medida"].ToString(); Entidad.cantidad = lector["n_cantidad"].ToString(); Listado.Add(Entidad); } } //Despues, cerramos la conexion! conexion.Close(); //Retorna el listao lleno de datos return(Listado); }
public ActionResult SaveProduct(CotizacionViewModel Model) { DbContextTransaction Transaction = null; try { if (Model != null) { if (!Model.IsSaved) { Transaction = db.Database.BeginTransaction(); Cotizacion NewModel = new Cotizacion(); NewModel.Fecha = Helpers.DateHelper.GetColombiaDateTime(); NewModel.ClienteID = Model.CliID; NewModel.EmpresaID = Model.EmpID; NewModel.VendedorID = Model.VenID; if (Model.OpoID > 0) { NewModel.OportunidadID = Model.OpoID; } var Consecutivo = db.CotizacionConsecutivo.Where(cc => cc.EmpresaID == Model.EmpID).FirstOrDefault(); if (Consecutivo == null) { Consecutivo = new CotizacionConsecutivo() { EmpresaID = Model.EmpID, ValorConsecutivo = 0 }; db.CotizacionConsecutivo.Add(Consecutivo); db.SaveChanges(); } NewModel.NumberID = (Consecutivo.ValorConsecutivo + 1).ToString("0000"); NewModel.Valor = (Model.Can * Model.ValUn); NewModel.IsSaved = true; Consecutivo.ValorConsecutivo = Consecutivo.ValorConsecutivo + 1; db.SaveChanges(); db.Cotizacion.Add(NewModel); db.SaveChanges(); CotizacionDetalle NewItemModel = new CotizacionDetalle() { CotizacionID = NewModel.CotizacionID, Cotizacion = NewModel, ProductoID = Model.ProID, Cantidad = Model.Can, ValUnitario = Model.ValUn, ValTotal = Model.Can * Model.ValUn, }; db.CotizacionDetalle.Add(NewItemModel); db.SaveChanges(); AddActivityTo(NewModel); Transaction.Commit(); return(new JsonResult { Data = new { CotID = NewModel.CotizacionID, Success = true }, ContentEncoding = System.Text.Encoding.UTF8, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } else { var ProductExist = db.CotizacionDetalle.Where(cd => cd.ProductoID == Model.ProID).Any(); if (ProductExist) { return(new JsonResult { Data = new { Message = "Este producto ya fue agregado al detalle de la cotización. Seleccione otro producto.", Success = false }, ContentEncoding = System.Text.Encoding.UTF8, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } var CotizacionSaved = db.Cotizacion.Where(c => c.CotizacionID == Model.CotID).FirstOrDefault(); var Producto = db.Productos.Where(p => p.ProductoID == Model.ProID).FirstOrDefault(); if (CotizacionSaved != null && Producto != null) { CotizacionDetalle NewItemModel = new CotizacionDetalle() { CotizacionID = Model.CotID, Cotizacion = CotizacionSaved, ProductoID = Model.ProID, Cantidad = Model.Can, ValUnitario = Model.ValUn, ValTotal = Model.Can * Model.ValUn, }; CotizacionSaved.Valor = CotizacionSaved.Valor + NewItemModel.ValTotal; db.Entry(CotizacionSaved).State = EntityState.Modified; db.CotizacionDetalle.Add(NewItemModel); db.SaveChanges(); string Actions = $"<td><a class=\"fa fa-pencil-square-o\" href=\"#\" title=\"Editar\" onclick=\"EditRecord({NewItemModel.ItemID}); return false;\" ></a> | <a class=\"fa fa-trash-o\" href=\"#\" data-backdrop=\"static\" data-href=\"Petición [email protected]\" data-pkid=\"@item.ItemID\" data-toggle=\"modal\" data-target=\"#confirm-delete\" title=\"Eliminar\"></a></td>"; string MessageVal = $"<tr id=\"(del{NewItemModel.ItemID})\"><td>{Producto.ProductoID}</td><td>{Producto.Codigo}</td><td>{Producto.NombreProducto}</td><td>{Producto.Especificaciones}</td><td align=\"right\">{Model.Can.ToString("C2")}</td><td align=\"right\">{Model.ValUn.ToString("C2")}</td><td align=\"right\">{NewItemModel.ValTotal.ToString("C2")}</td>{Actions}</tr>"; return(new JsonResult { Data = new { Message = MessageVal, Success = true }, ContentEncoding = System.Text.Encoding.UTF8, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } } } return(new JsonResult { Data = new { Message = "Los datos no se reconocen correctamente. Por favor inténtelo de nuevo.", Success = false }, ContentEncoding = System.Text.Encoding.UTF8, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } catch (Exception eX) { if (Transaction != null) { Transaction.Rollback(); } // // Log Exception eX // return(new JsonResult { Data = new { Message = "Error ejecutando la acción. Por favor inténtelo de nuevo.", Success = false }, ContentEncoding = System.Text.Encoding.UTF8, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } }