public ActionResult Edit(Orden orden, FormCollection form) { if (ModelState.IsValid) { //Modifica Cabecera de la orden db.Entry(orden).State = EntityState.Modified; db.SaveChanges(); //Modifica Items de la orden bool flagMod = ModificaOrdenItems(orden.OrdenId, form); if (flagMod) { //Afecta cantidad de Productos Inventariables en el Gasto //Reversa Movimiento de salida por la orden List <Movimiento> movimientoList = db.Movimiento.Where(m => m.OrdenId == orden.OrdenId).ToList(); MovimientosController movCtrl = new MovimientosController(); movCtrl.RegresaMovimiento(movimientoList); Seguridadcll seguridadcll = (Seguridadcll)Session["seguridad"]; // MovimientosController movCtrl = new MovimientosController(); movCtrl.CreaMovimientoXOrden(orden.OrdenId, trnMode.Update, seguridadcll); #region auditoria Seguridad.Seguridad seguridad = new Seguridad.Seguridad(); Auditoria auditoria = new Auditoria(); auditoria.AuditoriaFecha = System.DateTime.Now; auditoria.AuditoriaHora = System.DateTime.Now.TimeOfDay; auditoria.usuarioId = seguridadcll.Usuario.UsuarioId; auditoria.AuditoriaEvento = "Edit"; auditoria.AuditoriaDesc = "Se Modifico La Orden: " + orden.OrdenId; auditoria.ObjetoId = "Ordenes/Edit"; seguridad.insertAuditoria(auditoria); #endregion auditoria ////Modifica Cantidades del Movimiento //return RedirectToAction("CreaMovimientoXOrden", "Movimientos", new { OrdenId = orden.OrdenId, mode = trnMode.Update }); //Afecta cantidad de Productos Inventariables en el Gasto return(RedirectToAction("Index", GetReturnSearch())); } } db.Configuration.ProxyCreationEnabled = false; ViewBag.OrdenItems = db.OrdenItems.Where(o => o.OrdenId == orden.OrdenId).ToList(); return(View(orden)); }
public ActionResult DeleteConfirmed(int id) { //Reversar Movimientos List <Movimiento> movimientoList = db.Movimiento.Where(m => m.OrdenId == id).ToList(); MovimientosController movCtrl = new MovimientosController(); movCtrl.RegresaMovimiento(movimientoList); //Poner eliminado cada Movimiento foreach (var mov in movimientoList) { mov.MovimientoEstado = EstadoMovimiento.Eliminado; db.Entry(mov).State = EntityState.Modified; db.SaveChanges(); } //Cambiar estado de la orden a eliminado Orden orden = db.Orden.Find(id); orden.OrdenEstado = EstadoOrden.Eliminado; db.SaveChanges(); //Actualiza Estado del Gasto var GastoList = db.Gasto.Where(g => g.ActividadId == orden.ActividadId).ToList(); foreach (var gasto in GastoList) { gasto.GastoEstado = EstadoGasto.Eliminado; db.Entry(gasto).State = EntityState.Modified; db.SaveChanges(); } #region auditoria Seguridad.Seguridad seguridad = new Seguridad.Seguridad(); Auditoria auditoria = new Auditoria(); Seguridadcll seguridadcll = (Seguridadcll)Session["seguridad"]; auditoria.AuditoriaFecha = System.DateTime.Now; auditoria.AuditoriaHora = System.DateTime.Now.TimeOfDay; auditoria.usuarioId = seguridadcll.Usuario.UsuarioId; auditoria.AuditoriaEvento = "Delete"; auditoria.AuditoriaDesc = "Se cambio a estado eliminado la Orden: " + id; auditoria.ObjetoId = "Ordenes/Delete"; seguridad.insertAuditoria(auditoria); #endregion auditoria return(RedirectToAction("Index")); }
public ActionResult DeleteConfirmed(string[] ids) { try { TipoGasto tipoGasto = db.TipoGastos.Find(ids); db.TipoGastos.Remove(tipoGasto); db.SaveChanges(); //Auditoria Seguridad.Seguridad seguridad = new Seguridad.Seguridad(); Auditoria auditoria = new Auditoria(); Seguridadcll seguridadcll = (Seguridadcll)Session["seguridad"]; auditoria.AuditoriaFecha = System.DateTime.Now; auditoria.AuditoriaHora = System.DateTime.Now.TimeOfDay; auditoria.usuarioId = seguridadcll.Usuario.UsuarioId; auditoria.AuditoriaEvento = "Eliminar"; auditoria.AuditoriaDesc = "Eliminó TipoGasto: " + tipoGasto.TipoGastoID; auditoria.ObjetoId = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(); seguridad.insertAuditoria(auditoria); //Auditoria } catch (Exception e) { var tipoGastos = db.TipoGastos.Find(ids); if (tipoGastos == null) { ViewBag.Error = "Advertencia, Registro no encontrado o Invalido " + ids; } else { ViewBag.Error = e.ToString(); } } return(RedirectToAction("Index")); }
public dynamic CreaOrdenXActividad(int actividadId = 0, Seguridadcll seguridadcll = null) { int NroOrden = 0; var actividad = db.Actividad.Where(a => a.ActividadId == actividadId).FirstOrDefault(); //valida que exista la actividad if (actividad != null) { //valida que el estado sea autorizado if (actividad.ActividadEstado == EstadosActividades.Autorizado) { //Valida que no exista orden para esta actividad var ordenTemp = db.Orden.Where(o => o.ActividadId == actividadId && o.OrdenEstado != EstadoOrden.Eliminado) .FirstOrDefault(); if (ordenTemp == null) { var actividadItems = db.ActividadItem .Include(a => a.producto) .Where(ai => ai.ActividadId == actividadId && ai.producto.TipoProductoID == "1").ToList(); if (actividadItems.Count > 0) { //Obtiene numero de Orden(ultimo de la tabla + 1) Seguridad.Seguridad seguridad = new Seguridad.Seguridad(); NroOrden = seguridad.generaConsecutivo("Ordenes"); //Crear cabecera de la Orden Orden orden = new Orden(); orden.OrdenId = NroOrden; orden.ActividadId = actividad.ActividadId; orden.OrdenFecha = DateTime.Today; orden.OrdenFechaDespacho = DateTime.Today; orden.OrdenFechaModificacion = DateTime.Today; orden.OrdenNroGuia = ""; orden.OrdenComentario = actividad.ActividadTitulo; orden.UsuarioIdModifica = actividad.UsuarioIdElabora; orden.OrdenEstado = EstadoOrden.Abierta; db.Orden.Add(orden); db.SaveChanges(); //Crea Detalle de la orden int Linea = 1; foreach (var item in actividadItems) { var producto = db.Producto.Where(p => p.ProductoId == item.ProductoId).FirstOrDefault(); if (producto.TipoProductoID == "1") { OrdenItems ordenItems = new OrdenItems(); ordenItems.OrdenId = NroOrden; ordenItems.OrdenItemsLinea = Linea; ordenItems.ProductoId = item.ProductoId; ordenItems.OrdenItemsCant = item.ActividadItemCantidad; ordenItems.OrdenItemsCantConfirmada = 0; ordenItems.OrdenItemsVlr = item.ActividadItemPrecio ?? 0; ordenItems.CentroCostoID = item.CentroCostoID; db.OrdenItems.Add(ordenItems); Linea++; } }//foreach (var item in actividadItems) db.SaveChanges(); //MovimientosController movCtrl = new MovimientosController(); //int NroMovimiento = movCtrl.CreaMovimientoXOrden(NroOrden); #region auditoria Auditoria auditoria = new Auditoria(); //Seguridadcll seguridadcll = (Seguridadcll)Session["seguridad"]; auditoria.AuditoriaFecha = System.DateTime.Now; auditoria.AuditoriaHora = System.DateTime.Now.TimeOfDay; auditoria.usuarioId = seguridadcll.Usuario.UsuarioId; auditoria.AuditoriaEvento = "Create"; auditoria.AuditoriaDesc = "Se Creo la Orden: " + NroOrden; auditoria.ObjetoId = "Ordenes/CreaOrdenXActividad"; seguridad.insertAuditoria(auditoria); #endregion auditoria //Afecta cantidad de Productos Inventariables en el Gasto MovimientosController movCtrl = new MovimientosController(); movCtrl.CreaMovimientoXOrden(orden.OrdenId, trnMode.Insert, seguridadcll); //return RedirectToAction("CreaMovimientoXOrden", "Movimientos", new { OrdenId = orden.OrdenId, mode = trnMode.Insert }); } else { //Cambia estado de la actividad a despachada y el gasto tambien //Actualiza Estado del Gasto var GastoList = db.Gasto.Where(g => g.ActividadId == actividad.ActividadId).ToList(); foreach (var gasto in GastoList) { gasto.GastoEstado = EstadoGasto.Ejecutado; db.Entry(gasto).State = EntityState.Modified; db.SaveChanges(); }//foreach (var gasto in GastoList) //Actualiza estado de la actividad ActividadesController actCtrl = new ActividadesController(); actCtrl.CambiaEstadoActividad(actividad.ActividadId, (int)EstadosActividades.Despachado); //return RedirectToAction("Index", "Actividades"); }//if (actividadItems.Count > 0) } else { NroOrden = 0; }//if (ordenTemp == null) { } else { NroOrden = 0; }//if(actividad.ActividadEstado == EstadosActividades.Autorizado) } else { NroOrden = 0; }//if (actividad != null) return(NroOrden); }