Ejemplo n.º 1
0
 public ActionResult Nuevo()
 {
     #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
     pro_Fabricacion_Info model = new pro_Fabricacion_Info
     {
         IdEmpresa            = Convert.ToInt32(SessionFixed.IdEmpresa),
         Fecha                = DateTime.Now,
         FechaIni             = DateTime.Now.Date.AddMonths(-1),
         FechaFin             = DateTime.Now.Date,
         IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession),
         LstDet               = new List <pro_FabricacionDet_Info>(),
         egr_IdSucursal       = Convert.ToInt32(SessionFixed.IdSucursal),
         ing_IdSucursal       = Convert.ToInt32(SessionFixed.IdSucursal),
     };
     List_det.set_list(model.LstDet, model.IdTransaccionSession);
     List_Fac.set_list_fac(model.LstDet, model.IdTransaccionSession);
     cargar_combos(model.IdEmpresa);
     return(View(model));
 }
Ejemplo n.º 2
0
        private bool Validar(pro_Fabricacion_Info i_validar, ref string msg)
        {
            #region ValidarStock

            var lst_validar = i_validar.LstDet.GroupBy(q => new { q.IdProducto, q.pr_descripcion, q.tp_ManejaInven, q.se_distribuye }).Select(q => new in_Producto_Stock_Info
            {
                IdEmpresa      = i_validar.IdEmpresa,
                IdSucursal     = i_validar.egr_IdSucursal,
                IdBodega       = i_validar.egr_IdBodega,
                IdProducto     = q.Key.IdProducto,
                pr_descripcion = q.Key.pr_descripcion,
                tp_manejaInven = q.Key.tp_ManejaInven,
                SeDestribuye   = q.Key.se_distribuye,

                Cantidad         = q.Sum(v => v.Cantidad),
                CantidadAnterior = q.Sum(v => v.CantidadAnterior),
            }).ToList();

            if (!bus_producto.validar_stock(lst_validar, ref msg))
            {
                return(false);
            }
            #endregion

            return(true);
        }
Ejemplo n.º 3
0
        private in_Ing_Egr_Inven_Info GenerarMoviInven(pro_Fabricacion_Info info, string Signo)
        {
            try
            {
                using (Entities_inventario db = new Entities_inventario())
                {
                    var motivo = db.in_Motivo_Inven.Where(q => q.IdEmpresa == info.IdEmpresa && q.Genera_Movi_Inven == "S" && q.Tipo_Ing_Egr == (Signo == "+" ? "ING":"EGR")).FirstOrDefault();
                    if (motivo == null)
                    {
                        return(null);
                    }

                    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.ing_IdMovi_inven_tipo : info.egr_IdMovi_inven_tipo),
                        IdNumMovi                = Convert.ToInt32(Signo == "+" ? info.ing_IdNumMovi : info.egr_IdNumMovi),
                        lst_in_Ing_Egr_Inven_det = new List <in_Ing_Egr_Inven_det_Info>(),
                        IdSucursal               = Signo == "+" ? info.ing_IdSucursal : info.egr_IdSucursal,
                        IdBodega                 = Signo == "+" ? info.ing_IdBodega : info.ing_IdBodega
                    };
                    int secuencia = 1;
                    foreach (var item in info.LstDet)
                    {
                        var producto = db.in_Producto.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdProducto == item.IdProducto).FirstOrDefault();
                        if (producto == null)
                        {
                            return(null);
                        }

                        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.ing_IdMovi_inven_tipo : info.egr_IdMovi_inven_tipo),
                            IdNumMovi                    = Convert.ToInt32(Signo == "+" ? info.ing_IdNumMovi : info.egr_IdNumMovi),
                            Secuencia                    = secuencia++,
                            IdProducto                   = item.IdProducto,
                            dm_cantidad                  = item.Cantidad * (Signo == "-" ? -1 : 1),
                            dm_cantidad_sinConversion    = item.Cantidad * (Signo == "-" ? -1 : 1),
                            mv_costo                     = 0,
                            mv_costo_sinConversion       = 0,
                            IdUnidadMedida               = producto.IdUnidadMedida_Consumo,
                            IdUnidadMedida_sinConversion = producto.IdUnidadMedida_Consumo,
                        });
                    }
                    return(movi);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 4
0
 public ActionResult Anular(pro_Fabricacion_Info model)
 {
     model.IdUsuarioAnulacion = Session["IdUsuario"].ToString();
     if (!bus_fabricacion.AnularDB(model))
     {
         cargar_combos(model.IdEmpresa);
         return(View(model));
     }
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 5
0
 public ActionResult Anular(pro_Fabricacion_Info model)
 {
     model.IdUsuarioAnulacion = SessionFixed.IdUsuario;
     if (!bus_fabricacion.AnularDB(model))
     {
         cargar_combos(model);
         return(View(model));
     }
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 6
0
 public ActionResult Modificar(pro_Fabricacion_Info model)
 {
     model.IdUsuarioModificacion = Session["IdUsuario"].ToString();
     model.LstDet = List_det.get_list(model.IdTransaccionSession);
     if (!bus_fabricacion.ModificarDB(model))
     {
         cargar_combos(model.IdEmpresa);
         return(View(model));
     }
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 7
0
 public ActionResult Nuevo(pro_Fabricacion_Info model)
 {
     model.IdUsuarioCreacion = SessionFixed.IdUsuario;
     model.LstDet            = List_det.get_list(model.IdTransaccionSession);
     if (!bus_fabricacion.GuardarDB(model))
     {
         cargar_combos(model);
         return(View(model));
     }
     return(RedirectToAction("Index"));
 }
 public bool AnularDB(pro_Fabricacion_Info info)
 {
     try
     {
         return(odata.AnularDB(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
Ejemplo n.º 9
0
        private void cargar_combos(pro_Fabricacion_Info model)
        {
            var lst_sucursal = bus_sucursal.GetList(model.IdEmpresa, SessionFixed.IdUsuario, false);

            ViewBag.lst_sucursal = lst_sucursal;

            var lst_bodega_ing = bus_bodega.get_list(model.IdEmpresa, model.ing_IdSucursal, false);

            ViewBag.lst_bodega_ing = lst_bodega_ing;

            var lst_bodega_egr = bus_bodega.get_list(model.IdEmpresa, model.egr_IdSucursal, false);

            ViewBag.lst_bodega_egr = lst_bodega_egr;
        }
Ejemplo n.º 10
0
 public ActionResult Anular(int IdEmpresa = 0, decimal IdFabricacion = 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
     pro_Fabricacion_Info model = bus_fabricacion.GetInfo(IdEmpresa, IdFabricacion);
     if (model == null)
     {
         return(RedirectToAction("Index"));
     }
     model.IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession);
     model.LstDet = bus_fabricacion_det.GetList(IdEmpresa, IdFabricacion);
     List_det.set_list(model.LstDet, model.IdTransaccionSession);
     cargar_combos(IdEmpresa);
     return(View(model));
 }
Ejemplo n.º 11
0
        public pro_Fabricacion_Info GetInfo(int IdEmpresa, decimal IdFabricacion)
        {
            try
            {
                pro_Fabricacion_Info info = new pro_Fabricacion_Info();
                using (Entities_produccion Context = new Entities_produccion())
                {
                    pro_Fabricacion Entity = Context.pro_Fabricacion.Where(q => q.IdEmpresa == IdEmpresa && q.IdFabricacion == IdFabricacion).FirstOrDefault();
                    if (Entity == null)
                    {
                        return(null);
                    }

                    info = new pro_Fabricacion_Info
                    {
                        IdEmpresa             = Entity.IdEmpresa,
                        egr_IdSucursal        = Entity.egr_IdSucursal,
                        ing_IdSucursal        = Entity.ing_IdSucursal,
                        Estado                = Entity.Estado,
                        egr_IdBodega          = Entity.egr_IdBodega,
                        egr_IdMovi_inven_tipo = Entity.egr_IdMovi_inven_tipo,
                        egr_IdNumMovi         = Entity.egr_IdNumMovi,
                        Fecha                 = Entity.Fecha,
                        IdFabricacion         = Entity.IdFabricacion,
                        ing_IdBodega          = Entity.ing_IdBodega,
                        ing_IdMovi_inven_tipo = Entity.ing_IdMovi_inven_tipo,
                        Observacion           = Entity.Observacion,
                        ing_IdNumMovi         = Entity.ing_IdNumMovi
                    };
                }
                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 12
0
        public bool AnularDB(pro_Fabricacion_Info info)
        {
            try
            {
                using (Entities_produccion Context = new Entities_produccion())
                {
                    pro_Fabricacion Entity = Context.pro_Fabricacion.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdFabricacion == info.IdFabricacion).FirstOrDefault();
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.Estado = false;

                    Entity.IdUsuarioAnulacion = info.IdUsuarioAnulacion;
                    Entity.FechaAnulacion     = DateTime.Now;
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 13
0
        public bool ModificarDB(pro_Fabricacion_Info info)
        {
            try
            {
                using (Entities_produccion Context = new Entities_produccion())
                {
                    #region Cab&Det

                    pro_Fabricacion Entity = Context.pro_Fabricacion.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdFabricacion == info.IdFabricacion).FirstOrDefault();
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.egr_IdSucursal        = info.egr_IdSucursal;
                    Entity.ing_IdSucursal        = info.ing_IdSucursal;
                    Entity.egr_IdBodega          = info.egr_IdBodega;
                    Entity.egr_IdMovi_inven_tipo = info.egr_IdMovi_inven_tipo;
                    Entity.egr_IdNumMovi         = info.egr_IdNumMovi;
                    Entity.Fecha                 = info.Fecha;
                    Entity.ing_IdBodega          = info.ing_IdBodega;
                    Entity.ing_IdMovi_inven_tipo = info.ing_IdMovi_inven_tipo;
                    Entity.Observacion           = info.Observacion;
                    Entity.ing_IdNumMovi         = info.ing_IdNumMovi;

                    Entity.IdUsuarioModificacion = info.IdUsuarioModificacion;
                    Entity.FechaModificacion     = DateTime.Now;

                    var detalle = Context.pro_FabricacionDet.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdFabricacion == info.IdFabricacion);
                    Context.pro_FabricacionDet.RemoveRange(detalle);
                    if (info.LstDet.Count() > 0)
                    {
                        foreach (var item in info.LstDet)
                        {
                            Context.pro_FabricacionDet.Add(new pro_FabricacionDet
                            {
                                IdEmpresa         = info.IdEmpresa,
                                IdFabricacion     = info.IdFabricacion,
                                IdProducto        = item.IdProducto,
                                Cantidad          = item.Cantidad,
                                Costo             = item.Costo,
                                RealizaMovimiento = item.RealizaMovimiento,
                                Secuencia         = item.Secuencia,
                                Signo             = item.Signo,
                                IdUnidadMedida    = item.IdUnidadMedida
                            });
                        }
                    }
                    #endregion
                    #region MOV

                    if (info.Cerrar)
                    {
                        Entities_inventario   dbi     = new Entities_inventario();
                        in_Ing_Egr_Inven_Data odata_i = new in_Ing_Egr_Inven_Data();
                        var parametro = dbi.in_parametro.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                        if (parametro == null)
                        {
                            return(true);
                        }
                        #region EGR

                        info.egr_IdMovi_inven_tipo = parametro.IdMovi_inven_tipo_elaboracion_egr;
                        var movi_egr = GenerarMoviInven(info, "-");
                        if (movi_egr == null)
                        {
                            return(true);
                        }

                        if (info.egr_IdNumMovi == null && odata_i.guardarDB(movi_egr, "-"))
                        {
                            info.egr_IdNumMovi = movi_egr.IdNumMovi;

                            Entity.egr_IdMovi_inven_tipo = info.egr_IdMovi_inven_tipo;
                            Entity.egr_IdNumMovi         = info.egr_IdNumMovi;
                            Context.SaveChanges();
                        }
                        #endregion
                        #region ING
                        info.ing_IdMovi_inven_tipo = parametro.IdMovi_inven_tipo_elaboracion_ing;
                        var movi_ing = GenerarMoviInven(info, "+");
                        if (movi_ing == null)
                        {
                            return(true);
                        }
                        if (info.ing_IdNumMovi == null && odata_i.guardarDB(movi_ing, "+"))
                        {
                            info.ing_IdNumMovi = movi_ing.IdNumMovi;

                            Entity.ing_IdMovi_inven_tipo = info.ing_IdMovi_inven_tipo;
                            Entity.ing_IdNumMovi         = info.ing_IdNumMovi;
                            Context.SaveChanges();
                        }
                        #endregion
                    }
                    #endregion
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 14
0
        public bool GuardarDB(pro_Fabricacion_Info info)
        {
            try
            {
                using (Entities_produccion Context = new Entities_produccion())
                {
                    #region FAB
                    #region CAB
                    Context.pro_Fabricacion.Add(new pro_Fabricacion
                    {
                        IdEmpresa             = info.IdEmpresa,
                        IdFabricacion         = info.IdFabricacion = GetId(info.IdEmpresa),
                        egr_IdSucursal        = info.egr_IdSucursal,
                        ing_IdSucursal        = info.ing_IdSucursal,
                        Estado                = true,
                        egr_IdBodega          = info.egr_IdBodega,
                        egr_IdMovi_inven_tipo = info.egr_IdMovi_inven_tipo,
                        egr_IdNumMovi         = info.egr_IdNumMovi,
                        Fecha                 = info.Fecha,
                        ing_IdBodega          = info.ing_IdBodega,
                        ing_IdMovi_inven_tipo = info.ing_IdMovi_inven_tipo,
                        Observacion           = info.Observacion,
                        ing_IdNumMovi         = info.ing_IdNumMovi,

                        IdUsuarioCreacion = info.IdUsuarioCreacion,
                        FechaCreacion     = DateTime.Now
                    });
                    #endregion
                    #region DET
                    if (info.LstDet.Count() > 0)
                    {
                        foreach (var item in info.LstDet)
                        {
                            Context.pro_FabricacionDet.Add(new pro_FabricacionDet
                            {
                                IdEmpresa         = info.IdEmpresa,
                                IdFabricacion     = info.IdFabricacion,
                                IdProducto        = item.IdProducto,
                                Cantidad          = item.Cantidad,
                                Costo             = item.Costo,
                                RealizaMovimiento = item.RealizaMovimiento,
                                Secuencia         = item.Secuencia,
                                Signo             = item.Signo,
                                IdUnidadMedida    = item.IdUnidadMedida
                            });
                        }
                    }
                    Context.SaveChanges();
                    #endregion
                    #endregion
                    #region MOV

                    if (info.Cerrar)
                    {
                        Entities_inventario   dbi     = new Entities_inventario();
                        in_Ing_Egr_Inven_Data odata_i = new in_Ing_Egr_Inven_Data();
                        var parametro = dbi.in_parametro.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                        if (parametro == null)
                        {
                            return(true);
                        }
                        #region EGR

                        info.egr_IdMovi_inven_tipo = parametro.IdMovi_inven_tipo_elaboracion_egr;
                        var movi_egr = GenerarMoviInven(info, "-", parametro.IdMotivo_Inv_elaboracion_egr);
                        if (movi_egr == null)
                        {
                            return(true);
                        }

                        if (info.egr_IdNumMovi == null && odata_i.guardarDB(movi_egr, "-"))
                        {
                            info.egr_IdNumMovi = movi_egr.IdNumMovi;

                            var Entity = Context.pro_Fabricacion.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdFabricacion == info.IdFabricacion).FirstOrDefault();

                            if (Entity == null)
                            {
                                return(true);
                            }
                            Entity.egr_IdMovi_inven_tipo = info.egr_IdMovi_inven_tipo;
                            Entity.egr_IdNumMovi         = info.egr_IdNumMovi;
                            Context.SaveChanges();
                        }
                        #endregion
                        #region ING
                        info.ing_IdMovi_inven_tipo = parametro.IdMovi_inven_tipo_elaboracion_ing;
                        var movi_ing = GenerarMoviInven(info, "+", parametro.IdMotivo_Inv_elaboracion_ing);
                        if (movi_ing == null)
                        {
                            return(true);
                        }
                        if (info.ing_IdNumMovi == null && odata_i.guardarDB(movi_ing, "+"))
                        {
                            info.ing_IdNumMovi = movi_ing.IdNumMovi;
                            var Entity = Context.pro_Fabricacion.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdFabricacion == info.IdFabricacion).FirstOrDefault();
                            if (Entity == null)
                            {
                                return(true);
                            }
                            Entity.ing_IdMovi_inven_tipo = info.ing_IdMovi_inven_tipo;
                            Entity.ing_IdNumMovi         = info.ing_IdNumMovi;
                            Context.SaveChanges();
                        }
                        #endregion
                    }
                    Context.Dispose();
                    #endregion
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }