Beispiel #1
0
        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));
        }
Beispiel #2
0
        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"));
        }
Beispiel #3
0
        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);
        }