public ActionResult Nuevo(int IdEmpresa = 0)
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion
            in_parametro_Info i_param = bus_in_param.get_info(IdEmpresa);
            if (i_param == null)
            {
                return(RedirectToAction("Index"));
            }

            in_Ajuste_Info model = new in_Ajuste_Info
            {
                IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession),
                IdSucursal           = Convert.ToInt32(SessionFixed.IdSucursal),
                IdEmpresa            = IdEmpresa,
                Fecha             = DateTime.Now,
                IdCatalogo_Estado = i_param.IdCatalogoEstadoAjuste
            };

            ListaDetalle.set_list(new List <in_AjusteDet_Info>(), model.IdTransaccionSession);
            cargar_combos(model);

            return(View(model));
        }
Пример #2
0
 public in_Ajuste_Info get_info(int IdEmpresa, int IdSucursal, decimal IdAjuste)
 {
     try
     {
         in_Ajuste_Info info = new in_Ajuste_Info();
         using (Entities_inventario Context = new Entities_inventario())
         {
             in_Ajuste Entity = Context.in_Ajuste.FirstOrDefault(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.IdAjuste == IdAjuste);
             if (Entity == null)
             {
                 return(null);
             }
             info = new in_Ajuste_Info
             {
                 IdEmpresa             = Entity.IdEmpresa,
                 IdSucursal            = Entity.IdSucursal,
                 IdAjuste              = Entity.IdAjuste,
                 IdBodega              = Entity.IdBodega,
                 IdMovi_inven_tipo_ing = Entity.IdMovi_inven_tipo_ing,
                 IdMovi_inven_tipo_egr = Entity.IdMovi_inven_tipo_egr,
                 IdNumMovi_ing         = Entity.IdNumMovi_ing,
                 IdNumMovi_egr         = Entity.IdNumMovi_egr,
                 IdCatalogo_Estado     = Entity.IdCatalogo_Estado,
                 Fecha       = Entity.Fecha,
                 Observacion = Entity.Observacion,
                 Estado      = Entity.Estado
             };
         }
         return(info);
     }
     catch (Exception)
     {
         throw;
     }
 }
        public ActionResult EditingDelete(int Secuencia)
        {
            ListaDetalle.DeleteRow(Secuencia, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            in_Ajuste_Info model = new in_Ajuste_Info();

            model.lst_detalle = ListaDetalle.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            cargar_combos_detalle();
            return(PartialView("_GridViewPartial_ajuste_fisico_det", model.lst_detalle));
        }
Пример #4
0
 public bool anularDB(in_Ajuste_Info info)
 {
     try
     {
         return(odata.anularDB(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
Пример #5
0
 public bool modificarDB(in_Ajuste_Info info)
 {
     try
     {
         return(odata.modificarDB(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
Пример #6
0
        private in_Ing_Egr_Inven_Info GenerarMoviInven(in_Ajuste_Info info, string Signo, int?IdMotivo_inv)
        {
            try
            {
                using (Entities_inventario db = new Entities_inventario())
                {
                    in_Ing_Egr_Inven_Info movi = new in_Ing_Egr_Inven_Info
                    {
                        IdEmpresa                = info.IdEmpresa,
                        cm_fecha                 = info.Fecha.Date,
                        Estado                   = "A",
                        signo                    = Signo,
                        IdUsuario                = info.IdUsuarioCreacion,
                        IdUsuarioUltModi         = info.IdUsuarioModificacion,
                        IdMovi_inven_tipo        = Convert.ToInt32(Signo == "+" ? info.IdMovi_inven_tipo_ing : info.IdMovi_inven_tipo_egr),
                        IdNumMovi                = Convert.ToInt32(Signo == "+" ? info.IdNumMovi_ing : info.IdNumMovi_egr),
                        lst_in_Ing_Egr_Inven_det = new List <in_Ing_Egr_Inven_det_Info>(),
                        IdSucursal               = info.IdSucursal,
                        IdBodega                 = info.IdBodega,
                        cm_observacion           = info.Observacion,
                        IdMotivo_Inv             = IdMotivo_inv
                    };

                    int secuencia = 1;
                    foreach (var item in info.lst_movimiento)
                    {
                        movi.lst_in_Ing_Egr_Inven_det.Add(new in_Ing_Egr_Inven_det_Info
                        {
                            IdEmpresa                    = movi.IdEmpresa,
                            IdSucursal                   = movi.IdSucursal,
                            IdBodega                     = Convert.ToInt32(movi.IdBodega),
                            IdMovi_inven_tipo            = Convert.ToInt32(Signo == "+" ? info.IdMovi_inven_tipo_ing : info.IdMovi_inven_tipo_egr),
                            IdNumMovi                    = Convert.ToInt32(Signo == "+" ? info.IdNumMovi_ing : info.IdNumMovi_egr),
                            Secuencia                    = secuencia++,
                            IdProducto                   = item.IdProducto,
                            dm_cantidad                  = item.Ajuste,
                            dm_cantidad_sinConversion    = item.Ajuste,
                            mv_costo                     = item.Costo,
                            mv_costo_sinConversion       = item.Costo,
                            dm_observacion               = info.Observacion,
                            IdUnidadMedida               = item.IdUnidadMedida,
                            IdUnidadMedida_sinConversion = item.IdUnidadMedida,
                        });
                    }
                    return(movi);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        private bool validar(in_Ajuste_Info i_validar, ref string msg)
        {
            if (i_validar.lst_detalle.Count == 0)
            {
                mensaje = "Debe ingresar al menos un producto";
                return(false);
            }

            if (!bus_periodo.ValidarFechaTransaccion(i_validar.IdEmpresa, i_validar.Fecha, cl_enumeradores.eModulo.INV, i_validar.IdSucursal, ref msg))
            {
                return(false);
            }
            return(true);
        }
Пример #8
0
        public bool anularDB(in_Ajuste_Info info)
        {
            try
            {
                using (Entities_inventario Context = new Entities_inventario())
                {
                    in_Ajuste Entity = Context.in_Ajuste.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdAjuste == info.IdAjuste);
                    if (Entity == null)
                    {
                        return(false);
                    }

                    Entity.Estado             = info.Estado;
                    Entity.MotivoAnulacion    = info.MotivoAnulacion;
                    Entity.IdUsuarioAnulacion = info.IdUsuarioAnulacion;
                    Entity.FechaAnulacion     = DateTime.Now;

                    in_Ing_Egr_Inven Entity_Ingreso = Context.in_Ing_Egr_Inven.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdSucursal == info.IdSucursal && q.IdMovi_inven_tipo == info.IdMovi_inven_tipo_ing && q.IdNumMovi == info.IdNumMovi_ing);
                    if (Entity_Ingreso == null)
                    {
                        return(false);
                    }

                    Entity_Ingreso.Estado          = "I";
                    Entity_Ingreso.MotivoAnulacion = info.MotivoAnulacion;
                    Entity_Ingreso.IdusuarioUltAnu = info.IdUsuarioAnulacion;
                    Entity_Ingreso.Fecha_UltAnu    = DateTime.Now;

                    in_Ing_Egr_Inven Entity_Egreso = Context.in_Ing_Egr_Inven.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdSucursal == info.IdSucursal && q.IdMovi_inven_tipo == info.IdMovi_inven_tipo_egr && q.IdNumMovi == info.IdNumMovi_egr);
                    if (Entity_Egreso == null)
                    {
                        return(false);
                    }

                    Entity_Egreso.Estado          = "I";
                    Entity_Egreso.MotivoAnulacion = info.MotivoAnulacion;
                    Entity_Egreso.IdusuarioUltAnu = info.IdUsuarioAnulacion;
                    Entity_Egreso.Fecha_UltAnu    = DateTime.Now;

                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public ActionResult Anular(int IdEmpresa = 0, int IdSucursal = 0, decimal IdAjuste = 0)
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion
            #region Permisos
            seg_Menu_x_Empresa_x_Usuario_Info info = bus_permisos.get_list_menu_accion(Convert.ToInt32(SessionFixed.IdEmpresa), SessionFixed.IdUsuario, "Inventario", "AjusteFisicoInventario", "Index");
            if (!info.Anular)
            {
                return(RedirectToAction("Index"));
            }
            #endregion
            in_Ajuste_Info model = bus_ajuste.get_info(IdEmpresa, IdSucursal, IdAjuste);
            if (model == null)
            {
                return(RedirectToAction("Index"));
            }

            model.lst_detalle = bus_ajuste_det.get_list(IdEmpresa, IdAjuste);

            foreach (var item in model.lst_detalle)
            {
                in_Producto_Info info_producto = bus_producto.get_info(model.IdEmpresa, item.IdProducto);
                item.pr_descripcion = info_producto.pr_descripcion;
            }

            model.IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession);
            ListaDetalle.set_list(model.lst_detalle, model.IdTransaccionSession);
            cargar_combos(model);

            #region Validacion Periodo
            ViewBag.MostrarBoton = true;
            if (!bus_periodo.ValidarFechaTransaccion(IdEmpresa, model.Fecha, cl_enumeradores.eModulo.INV, model.IdSucursal, ref mensaje))
            {
                ViewBag.mensaje      = mensaje;
                ViewBag.MostrarBoton = false;
            }
            #endregion

            return(View(model));
        }
        public ActionResult Anular(in_Ajuste_Info model)
        {
            model.Estado             = false;
            model.IdUsuarioAnulacion = SessionFixed.IdUsuario;
            model.lst_detalle        = ListaDetalle.get_list(model.IdTransaccionSession);

            if (!validar(model, ref mensaje))
            {
                cargar_combos(model);
                ViewBag.mensaje = mensaje;
                return(View(model));
            }

            if (!bus_ajuste.anularDB(model))
            {
                cargar_combos(model);
                return(View(model));
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult Modificar(in_Ajuste_Info model)
        {
            model.IdUsuarioModificacion = SessionFixed.IdUsuario;
            model.lst_detalle           = ListaDetalle.get_list(model.IdTransaccionSession);

            if (!validar(model, ref mensaje))
            {
                cargar_combos(model);
                ViewBag.mensaje = mensaje;
                return(View(model));
            }

            if (!bus_ajuste.modificarDB(model))
            {
                cargar_combos(model);
                return(View(model));
            }

            return(RedirectToAction("Modificar", new { IdEmpresa = model.IdEmpresa, IdSucursal = model.IdSucursal, IdAjuste = model.IdAjuste, Exito = true }));
        }
        private void cargar_combos(in_Ajuste_Info model)
        {
            var lst_estado = bus_catalogo.get_list(Convert.ToInt32(cl_enumeradores.eTipoCatalogoInventario.EST_APROB), false);

            ViewBag.lst_estado = lst_estado;

            tb_sucursal_Bus bus_sucursal = new tb_sucursal_Bus();
            var             lst_sucursal = bus_sucursal.GetList(model.IdEmpresa, SessionFixed.IdUsuario, false);

            ViewBag.lst_sucursal = lst_sucursal;

            tb_bodega_Bus bus_bodega = new tb_bodega_Bus();
            var           lst_bodega = bus_bodega.get_list(model.IdEmpresa, model.IdSucursal, false);

            ViewBag.lst_bodega = lst_bodega;

            in_UnidadMedida_Bus bus_unidad = new in_UnidadMedida_Bus();
            var lst_unidad = bus_unidad.get_list(false);

            ViewBag.lst_unidad = lst_unidad;
        }
        public ActionResult Nuevo(in_Ajuste_Info model)
        {
            model.lst_detalle = ListaDetalle.get_list(model.IdTransaccionSession);

            if (!validar(model, ref mensaje))
            {
                SessionFixed.IdTransaccionSessionActual = model.IdTransaccionSession.ToString();
                cargar_combos(model);
                ViewBag.mensaje = mensaje;
                return(View(model));
            }
            model.IdUsuarioCreacion = SessionFixed.IdUsuario;
            model.Estado            = true;

            if (!bus_ajuste.guardarDB(model))
            {
                SessionFixed.IdTransaccionSessionActual = model.IdTransaccionSession.ToString();
                cargar_combos(model);
                return(View(model));
            }

            return(RedirectToAction("Consultar", new { IdEmpresa = model.IdEmpresa, IdSucursal = model.IdSucursal, IdAjuste = model.IdAjuste, Exito = true }));
        }
Пример #14
0
        public bool modificarDB(in_Ajuste_Info info)
        {
            try
            {
                using (Entities_inventario Context = new Entities_inventario())
                {
                    int secuencia = 1;
                    in_parametro_Info info_parametro = data_parametro.get_info(info.IdEmpresa);
                    in_Ajuste         Entity         = Context.in_Ajuste.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdAjuste == info.IdAjuste);

                    if (Entity == null)
                    {
                        return(false);
                    }

                    Entity.IdEmpresa             = info.IdEmpresa;
                    Entity.IdSucursal            = info.IdSucursal;
                    Entity.IdAjuste              = info.IdAjuste;
                    Entity.IdBodega              = info.IdBodega;
                    Entity.IdMovi_inven_tipo_ing = info.IdMovi_inven_tipo_ing;
                    Entity.IdMovi_inven_tipo_egr = info.IdMovi_inven_tipo_egr;
                    Entity.IdNumMovi_ing         = info.IdNumMovi_ing;
                    Entity.IdNumMovi_egr         = info.IdNumMovi_egr;
                    Entity.IdCatalogo_Estado     = info.IdCatalogo_Estado;
                    Entity.Fecha                 = info.Fecha;
                    Entity.Observacion           = info.Observacion;
                    Entity.IdUsuarioModificacion = info.IdUsuarioModificacion;
                    Entity.FechaModificacion     = DateTime.Now;

                    var detalle = Context.in_AjusteDet.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdAjuste == info.IdAjuste);
                    Context.in_AjusteDet.RemoveRange(detalle);

                    if (info.lst_detalle.Count() > 0)
                    {
                        foreach (var item in info.lst_detalle)
                        {
                            Context.in_AjusteDet.Add(new in_AjusteDet
                            {
                                IdEmpresa      = info.IdEmpresa,
                                IdAjuste       = info.IdAjuste,
                                Secuencia      = item.Secuencia = secuencia,
                                IdProducto     = item.IdProducto,
                                IdUnidadMedida = item.IdUnidadMedida,
                                StockFisico    = item.StockFisico,
                                StockSistema   = item.StockSistema,
                                Ajuste         = item.Ajuste,
                                Costo          = item.Costo
                            });

                            secuencia++;
                        }
                    }

                    Context.SaveChanges();

                    #region Movimiento Inventario
                    Entities_inventario   dbi            = new Entities_inventario();
                    in_Ing_Egr_Inven_Data odata_i        = new in_Ing_Egr_Inven_Data();
                    int IdMovi_inven_tipo                = 0;
                    List <in_AjusteDet_Info> lst_ingreso = info.lst_detalle.Where(q => q.Ajuste > 0).ToList();
                    List <in_AjusteDet_Info> lst_egreso  = info.lst_detalle.Where(q => q.Ajuste < 0).ToList();

                    if (info_parametro == null)
                    {
                        return(false);
                    }

                    if (info.IdCatalogo_Estado == "APRO")
                    {
                        if (lst_ingreso.Count() > 0)
                        {
                            in_Ing_Egr_Inven_Info info_movi = new in_Ing_Egr_Inven_Info();
                            IdMovi_inven_tipo   = info_parametro.IdMovi_inven_tipo_ajuste_ing ?? 0;
                            info.lst_movimiento = lst_ingreso;

                            info_movi = GenerarMoviInven(info, "+", info_parametro.IdMotivo_Inv_ajuste_ing);
                            if (info_movi == null)
                            {
                                return(true);
                            }

                            if (info.IdNumMovi_ing == null && odata_i.guardarDB(info_movi, "+"))
                            {
                                info.IdNumMovi_ing   = info_movi.IdNumMovi;
                                Entity.IdNumMovi_ing = info.IdNumMovi_ing;

                                Context.SaveChanges();
                            }
                        }

                        if (lst_egreso.Count() > 0)
                        {
                            in_Ing_Egr_Inven_Info info_movi = new in_Ing_Egr_Inven_Info();
                            IdMovi_inven_tipo   = info_parametro.IdMovi_inven_tipo_ajuste_ing ?? 0;
                            info.lst_movimiento = lst_egreso;

                            info_movi = GenerarMoviInven(info, "-", info_parametro.IdMotivo_Inv_ajuste_egr);
                            if (info_movi == null)
                            {
                                return(true);
                            }

                            if (info.IdNumMovi_egr == null && odata_i.guardarDB(info_movi, "-"))
                            {
                                info.IdNumMovi_egr   = info_movi.IdNumMovi;
                                Entity.IdNumMovi_egr = info.IdNumMovi_egr;

                                Context.SaveChanges();
                            }
                        }
                    }
                    #endregion
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #15
0
        public bool guardarDB(in_Ajuste_Info info)
        {
            try
            {
                using (Entities_inventario Context = new Entities_inventario())
                {
                    int secuencia = 1;
                    in_parametro_Info info_parametro = data_parametro.get_info(info.IdEmpresa);

                    in_Ajuste Entity = new in_Ajuste
                    {
                        IdEmpresa             = info.IdEmpresa,
                        IdSucursal            = info.IdSucursal,
                        IdAjuste              = info.IdAjuste = get_id(info.IdEmpresa),
                        IdBodega              = info.IdBodega,
                        IdMovi_inven_tipo_ing = info.IdMovi_inven_tipo_ing = info_parametro.IdMovi_inven_tipo_ajuste_ing,
                        IdMovi_inven_tipo_egr = info.IdMovi_inven_tipo_egr = info_parametro.IdMovi_inven_tipo_ajuste_egr,
                        IdNumMovi_ing         = info.IdNumMovi_ing,
                        IdNumMovi_egr         = info.IdNumMovi_egr,
                        IdCatalogo_Estado     = info.IdCatalogo_Estado,
                        Fecha             = info.Fecha,
                        Observacion       = info.Observacion,
                        Estado            = info.Estado,
                        IdUsuarioCreacion = info.IdUsuarioCreacion,
                        FechaCreacion     = DateTime.Now
                    };

                    Context.in_Ajuste.Add(Entity);

                    foreach (var item in info.lst_detalle)
                    {
                        in_AjusteDet entity_det = new in_AjusteDet
                        {
                            IdEmpresa      = info.IdEmpresa,
                            IdAjuste       = info.IdAjuste,
                            Secuencia      = item.Secuencia = secuencia,
                            IdProducto     = item.IdProducto,
                            IdUnidadMedida = item.IdUnidadMedida,
                            StockFisico    = item.StockFisico,
                            StockSistema   = item.StockSistema,
                            Ajuste         = item.Ajuste,
                            Costo          = item.Costo
                        };
                        secuencia++;
                        Context.in_AjusteDet.Add(entity_det);
                    }

                    Context.SaveChanges();

                    #region Movimiento Inventario
                    Entities_inventario   dbi            = new Entities_inventario();
                    in_Ing_Egr_Inven_Data odata_i        = new in_Ing_Egr_Inven_Data();
                    int IdMovi_inven_tipo                = 0;
                    List <in_AjusteDet_Info> lst_ingreso = info.lst_detalle.Where(q => q.Ajuste > 0).ToList();
                    List <in_AjusteDet_Info> lst_egreso  = info.lst_detalle.Where(q => q.Ajuste < 0).ToList();

                    if (info_parametro == null)
                    {
                        return(false);
                    }

                    if (info.IdCatalogo_Estado == "APRO")
                    {
                        if (lst_ingreso.Count() > 0)
                        {
                            in_Ing_Egr_Inven_Info info_movi = new in_Ing_Egr_Inven_Info();
                            IdMovi_inven_tipo   = info_parametro.IdMovi_inven_tipo_ajuste_ing ?? 0;
                            info.lst_movimiento = lst_ingreso;

                            info_movi = GenerarMoviInven(info, "+", info_parametro.IdMotivo_Inv_ajuste_ing);
                            if (info_movi == null)
                            {
                                return(true);
                            }

                            if (info.IdNumMovi_ing == null && odata_i.guardarDB(info_movi, "+"))
                            {
                                info.IdNumMovi_ing   = info_movi.IdNumMovi;
                                Entity.IdNumMovi_ing = info.IdNumMovi_ing;

                                Context.SaveChanges();
                            }
                        }

                        if (lst_egreso.Count() > 0)
                        {
                            in_Ing_Egr_Inven_Info info_movi = new in_Ing_Egr_Inven_Info();
                            IdMovi_inven_tipo   = info_parametro.IdMovi_inven_tipo_ajuste_ing ?? 0;
                            info.lst_movimiento = lst_egreso;

                            info_movi = GenerarMoviInven(info, "-", info_parametro.IdMotivo_Inv_ajuste_egr);
                            if (info_movi == null)
                            {
                                return(true);
                            }

                            if (info.IdNumMovi_egr == null && odata_i.guardarDB(info_movi, "-"))
                            {
                                info.IdNumMovi_egr   = info_movi.IdNumMovi;
                                Entity.IdNumMovi_egr = info.IdNumMovi_egr;

                                Context.SaveChanges();
                            }
                        }
                    }
                    #endregion

                    Context.Dispose();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }