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 bool CambiaEstadoOrden(int OrdenId, EstadoOrden estado) { bool result = true; var orden = db.Orden.Where(o => o.OrdenId == OrdenId).FirstOrDefault(); if (orden != null) { //Realiza una acción dependiendo el estado switch (estado) { case EstadoOrden.Por_despachar: //Cambia estado de la orden orden.OrdenEstado = estado; db.Entry(orden).State = EntityState.Modified; db.SaveChanges(); break; case EstadoOrden.Despachado: if (!string.IsNullOrEmpty(orden.OrdenNroGuia)) { orden.OrdenEstado = estado; orden.OrdenFechaDespacho = DateTime.Today; db.Entry(orden).State = EntityState.Modified; 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.Ejecutado; db.Entry(gasto).State = EntityState.Modified; db.SaveChanges(); } //Actualiza estado de la actividad ActividadesController actCtrl = new ActividadesController(); actCtrl.CambiaEstadoActividad(orden.ActividadId, (int)EstadosActividades.Despachado); //var actividad = db.Actividad.Where(a => a.ActividadId == orden.ActividadId).FirstOrDefault(); //actividad.ActividadEstado = EstadosActividades.Despachado; //db.Entry(actividad).State = EntityState.Modified; //db.SaveChanges(); //regresa Movimiento List <Movimiento> movimientoList = db.Movimiento.Where(m => m.OrdenId == OrdenId).ToList(); MovimientosController movCtrl = new MovimientosController(); if (movimientoList.Count > 0) { movCtrl.RegresaMovimiento(movimientoList); } //Actualiza estado del movimiento foreach (var mov in movimientoList) { mov.MovimientoEstado = EstadoMovimiento.Ejecutado; db.Entry(mov).State = EntityState.Modified; db.SaveChanges(); } //Afecta Movimiento if (movimientoList.Count > 0) { movCtrl.AfectaMovimiento(movimientoList.FirstOrDefault().MovimientoId, movimientoList, trnMode.Update); } } else { result = false; } break; default: result = false; break; } //switch (estado) } //if (orden != null) return(result); }