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 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"));
        }
Beispiel #4
0
        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);
        }