Пример #1
0
 public bool guardarDB(ct_periodo_Info info)
 {
     try
     {
         using (Entities_contabilidad Context = new Entities_contabilidad())
         {
             ct_periodo Entity = new ct_periodo
             {
                 IdPeriodo    = info.IdPeriodo,
                 IdEmpresa    = info.IdEmpresa,
                 IdanioFiscal = info.IdanioFiscal,
                 pe_FechaIni  = info.pe_FechaIni.Date,
                 pe_FechaFin  = info.pe_FechaFin.Date,
                 pe_mes       = info.pe_mes,
                 pe_cerrado   = info.pe_cerrado_bool == true ? "S" : "N",
                 pe_estado    = info.pe_estado = "A"
             };
             Context.ct_periodo.Add(Entity);
             Context.SaveChanges();
         }
         return(true);
     }
     catch (Exception)
     {
         throw;
     }
 }
Пример #2
0
 public bool modificarDB(ct_periodo_Info info)
 {
     try
     {
         using (Entities_contabilidad Context = new Entities_contabilidad())
         {
             ct_periodo Entity = Context.ct_periodo.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdPeriodo == info.IdPeriodo);
             if (Entity == null)
             {
                 return(false);
             }
             Entity.IdPeriodo   = info.IdPeriodo;
             Entity.pe_mes      = info.pe_mes;
             Entity.pe_FechaFin = info.pe_FechaFin.Date;
             Entity.pe_FechaIni = info.pe_FechaIni.Date;
             Entity.pe_cerrado  = info.pe_cerrado_bool == true ? "S" : "N";
             Context.SaveChanges();
         }
         return(true);
     }
     catch (Exception)
     {
         throw;
     }
 }
Пример #3
0
        public ct_periodo_Info get_info(int IdEmpresa, int IdPeriodo)
        {
            try
            {
                ct_periodo_Info info = new ct_periodo_Info();

                using (Entities_contabilidad Context = new Entities_contabilidad())
                {
                    ct_periodo Entity = Context.ct_periodo.FirstOrDefault(q => q.IdEmpresa == IdEmpresa && q.IdPeriodo == IdPeriodo);
                    if (Entity == null)
                    {
                        return(null);
                    }
                    info = new ct_periodo_Info
                    {
                        IdPeriodo       = Entity.IdPeriodo,
                        IdEmpresa       = Entity.IdEmpresa,
                        IdanioFiscal    = Entity.IdanioFiscal,
                        pe_FechaIni     = Entity.pe_FechaIni,
                        pe_FechaFin     = Entity.pe_FechaFin,
                        pe_mes          = Entity.pe_mes,
                        pe_cerrado_bool = Entity.pe_cerrado == "S" ? true : false,
                        pe_estado       = Entity.pe_estado
                    };
                }
                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #4
0
        public List <Af_Depreciacion_Det_Info> get_list_a_depreciar(int IdEmpresa, int IdPeriodo, string IdUsuario)
        {
            try
            {
                List <Af_Depreciacion_Det_Info> Lista;

                DateTime Fecha_ini = DateTime.Now;
                DateTime fecha_fin = DateTime.Now;

                using (Entities_contabilidad Context = new Entities_contabilidad())
                {
                    ct_periodo e_periodo = Context.ct_periodo.Where(q => q.IdPeriodo == IdPeriodo && q.IdEmpresa == IdEmpresa).FirstOrDefault();
                    if (e_periodo == null)
                    {
                        return(new List <Af_Depreciacion_Det_Info>());
                    }
                    Fecha_ini = e_periodo.pe_FechaIni.Date;
                    fecha_fin = e_periodo.pe_FechaFin.Date;
                }

                using (Entities_activo_fijo Context = new Entities_activo_fijo())
                {
                    Lista = (from q in Context.spACTF_activos_a_depreciar(IdEmpresa, Fecha_ini, fecha_fin, IdUsuario)
                             select new Af_Depreciacion_Det_Info
                    {
                        IdEmpresa = q.IdEmpresa,
                        IdActivoFijo = q.IdActivoFijo,
                        Af_Nombre = q.Af_Nombre,
                        CodActivoFijo = q.CodActivoFijo,
                        nom_tipo = q.nom_tipo,
                        nom_categoria = q.nom_categoria,
                        Valor_Depreciacion = q.Af_valor_depreciacion,
                        Valor_Depre_Acum = q.Af_depreciacion_acum,
                        Valor_Compra = q.Af_costo_compra,
                        IdCtaCble_Activo = q.IdCtaCble_Activo,
                        IdCtaCble_Dep_Acum = q.IdCtaCble_Dep_Acum,
                        IdCtaCble_Gastos_Depre = q.IdCtaCble_Gastos_Depre
                    }).ToList();
                }

                return(Lista);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #5
0
        public Boolean GrabarDB(ct_Periodo_Info info, ref string MensajeError)
        {
            try
            {
                using (EntitiesDBConta context = new EntitiesDBConta())
                {
                    EntitiesDBConta EDB = new EntitiesDBConta();
                    var             Q   = from per in EDB.ct_periodo
                                          where per.IdPeriodo == info.IdPeriodo && per.IdEmpresa == info.IdEmpresa
                                          select per;

                    if (Q.ToList().Count == 0)
                    {
                        var address = new ct_periodo();
                        address.IdEmpresa    = info.IdEmpresa;
                        address.IdPeriodo    = Convert.ToInt32(info.IdPeriodo);
                        address.IdanioFiscal = Convert.ToInt32(info.IdanioFiscal);
                        address.pe_mes       = Convert.ToByte(info.pe_mes);
                        address.pe_FechaIni  = Convert.ToDateTime(info.pe_FechaIni.ToShortDateString());
                        address.pe_FechaFin  = Convert.ToDateTime(info.pe_FechaFin.ToShortDateString());
                        address.pe_estado    = info.pe_estado;
                        address.pe_cerrado   = info.pe_cerrado;
                        context.ct_periodo.Add(address);
                        context.SaveChanges();
                    }
                    else
                    {
                        return(false);
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "",
                                                                                          "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                mensaje = ex.ToString();
                throw new Exception(ex.ToString());
            }
        }
Пример #6
0
        public bool anularDB(ct_periodo_Info info)
        {
            try
            {
                using (Entities_contabilidad Context = new Entities_contabilidad())
                {
                    ct_periodo Entity = Context.ct_periodo.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdPeriodo == info.IdPeriodo);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.pe_estado = info.pe_estado = "I";

                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #7
0
        public bool ValidarFechaTransaccion(int IdEmpresa, DateTime Fecha, cl_enumeradores.eModulo Modulo, ref string mensaje)
        {
            Entities_contabilidad db_conta   = new Entities_contabilidad();
            Entities_general      db_general = new Entities_general();

            try
            {
                Fecha = Fecha.Date;
                int Periodo = Convert.ToInt32(Fecha.ToString("yyyyMM"));

                var empresa = db_general.tb_empresa.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                if (empresa != null)
                {
                    if (empresa.em_fechaInicioActividad > Fecha.Date)
                    {
                        mensaje = "La fecha de la transacción es menor al inicio de actividades de la empresa en el sistema FIXED ERP: " + Fecha.Date.ToString("dd/MM/yyyy");
                        return(false);
                    }
                }

                ct_periodo per = db_conta.ct_periodo.Where(q => q.IdEmpresa == IdEmpresa && q.IdPeriodo == Periodo).FirstOrDefault();

                if (per == null)
                {
                    mensaje = "El periodo " + Periodo + " de la transacción no se encuentra registrado.";
                    return(false);
                }

                if (per.pe_cerrado == "S")
                {
                    mensaje = "El periodo " + Periodo + " se encuentra cerrado.";
                    return(false);
                }

                switch (Modulo)
                {
                case cl_enumeradores.eModulo.INV:
                    using (Entities_inventario db = new Entities_inventario())
                    {
                        var param = db.in_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de inventario";
                            return(false);
                        }

                        /*
                         * if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                         * {
                         *  mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de importación";
                         *  return false;
                         * }
                         */
                    }
                    break;

                case cl_enumeradores.eModulo.FAC:
                    using (Entities_facturacion db = new Entities_facturacion())
                    {
                        var param = db.fa_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de facturación";
                            return(false);
                        }
                        if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                        {
                            mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de facturación";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.COM:
                    using (Entities_compras db = new Entities_compras())
                    {
                        var param = db.com_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de compras";
                            return(false);
                        }
                        if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                        {
                            mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de compras";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.ACF:
                    using (Entities_activo_fijo db = new Entities_activo_fijo())
                    {
                        var param = db.Af_Parametros.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de activo fijo";
                            return(false);
                        }
                        if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                        {
                            mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de activo fijo";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.RRHH:
                    using (Entities_rrhh db = new Entities_rrhh())
                    {
                    }
                    break;

                case cl_enumeradores.eModulo.IMP:
                    using (Entities_importacion db = new Entities_importacion())
                    {
                        var param = db.imp_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de importación";
                            return(false);
                        }

                        /*
                         * if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                         * {
                         *  mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de importación";
                         *  return false;
                         * }
                         */
                    }
                    break;

                case cl_enumeradores.eModulo.CONTA:
                    using (Entities_contabilidad db = new Entities_contabilidad())
                    {
                        var param = db.ct_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de contabilidad";
                            return(false);
                        }
                        if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                        {
                            mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de contabilidad";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.CAJA:
                    using (Entities_caja db = new Entities_caja())
                    {
                        var param = db.caj_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de caja";
                            return(false);
                        }
                        if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                        {
                            mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de caja";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.BANCO:
                    using (Entities_banco db = new Entities_banco())
                    {
                        var param = db.ba_parametros.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de bancos";
                            return(false);
                        }
                        if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                        {
                            mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de bancos";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.CXC:
                    using (Entities_cuentas_por_cobrar db = new Entities_cuentas_por_cobrar())
                    {
                        var param = db.cxc_Parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de cuentas por cobrar";
                            return(false);
                        }
                        if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                        {
                            mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de cuentas por cobrar";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.CXP:
                    using (Entities_cuentas_por_pagar db = new Entities_cuentas_por_pagar())
                    {
                        var param = db.cp_parametros.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de cuentas por pagar";
                            return(false);
                        }
                        if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                        {
                            mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de cuentas por pagar";
                            return(false);
                        }
                    }
                    break;
                }

                db_general.Dispose();
                db_conta.Dispose();
                return(true);
            }
            catch (Exception)
            {
                db_conta.Dispose();
                db_general.Dispose();
                throw;
            }
        }
Пример #8
0
        public bool modificarDB(ct_periodo_Info info)
        {
            try
            {
                using (Entities_contabilidad Context = new Entities_contabilidad())
                {
                    ct_periodo Entity = Context.ct_periodo.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdPeriodo == info.IdPeriodo);
                    if (Entity == null)
                    {
                        return(false);
                    }

                    Entity.pe_FechaFin = info.pe_FechaFin.Date;
                    Entity.pe_FechaIni = info.pe_FechaIni.Date;
                    Entity.pe_cerrado  = info.pe_cerrado_bool == true ? "S" : "N";

                    var lst_det = Context.ct_periodo_x_tb_modulo.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdPeriodo == info.IdPeriodo).ToList();
                    Context.ct_periodo_x_tb_modulo.RemoveRange(lst_det);

                    if (info.pe_cerrado_bool == true)
                    {
                        List <tb_modulo_Info> lst_modulo = data_modulo.get_list();

                        if (lst_modulo.Count() > 0)
                        {
                            foreach (var item in lst_modulo)
                            {
                                Context.ct_periodo_x_tb_modulo.Add(new ct_periodo_x_tb_modulo
                                {
                                    IdEmpresa        = info.IdEmpresa,
                                    IdPeriodo        = info.IdPeriodo,
                                    IdModulo         = item.CodModulo,
                                    IdUsuario        = info.IdUsuario,
                                    FechaTransac     = DateTime.Now,
                                    IdUsuarioUltModi = info.IdUsuario,
                                    FechaUltModi     = DateTime.Now
                                });
                            }
                        }
                    }
                    else
                    {
                        if (info.lst_periodo_x_modulo.Count() > 0)
                        {
                            foreach (var item in info.lst_periodo_x_modulo)
                            {
                                Context.ct_periodo_x_tb_modulo.Add(new ct_periodo_x_tb_modulo
                                {
                                    IdEmpresa        = info.IdEmpresa,
                                    IdPeriodo        = info.IdPeriodo,
                                    IdModulo         = item.IdModulo,
                                    IdUsuario        = info.IdUsuario,
                                    FechaTransac     = DateTime.Now,
                                    IdUsuarioUltModi = item.IdUsuarioUltModi,
                                    FechaUltModi     = DateTime.Now,
                                });
                            }
                        }
                    }

                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #9
0
        public bool guardarMasivoDB(ct_periodo_Info info_general)
        {
            try
            {
                using (Entities_contabilidad Context = new Entities_contabilidad())
                {
                    foreach (var info in info_general.lst_periodo)
                    {
                        ct_periodo Entity = new ct_periodo
                        {
                            IdPeriodo    = info.IdPeriodo,
                            IdEmpresa    = info.IdEmpresa,
                            IdanioFiscal = info.IdanioFiscal,
                            pe_FechaIni  = info.pe_FechaIni.Date,
                            pe_FechaFin  = info.pe_FechaFin.Date,
                            pe_mes       = info.pe_mes,
                            pe_cerrado   = info.pe_cerrado_bool == true ? "S" : "N",
                            pe_estado    = info.pe_estado = "A"
                        };

                        if (info.pe_cerrado_bool == true)
                        {
                            List <tb_modulo_Info> lst_modulo = data_modulo.get_list();

                            if (lst_modulo.Count() > 0)
                            {
                                foreach (var item in lst_modulo)
                                {
                                    Context.ct_periodo_x_tb_modulo.Add(new ct_periodo_x_tb_modulo
                                    {
                                        IdEmpresa    = info.IdEmpresa,
                                        IdPeriodo    = info.IdPeriodo,
                                        IdModulo     = item.CodModulo,
                                        IdUsuario    = info.IdUsuario,
                                        FechaTransac = DateTime.Now
                                    });
                                }
                            }
                        }
                        else
                        {
                            if (info_general.lst_periodo_x_modulo.Count() > 0)
                            {
                                foreach (var item in info_general.lst_periodo_x_modulo)
                                {
                                    Context.ct_periodo_x_tb_modulo.Add(new ct_periodo_x_tb_modulo
                                    {
                                        IdEmpresa    = info.IdEmpresa,
                                        IdPeriodo    = info.IdPeriodo,
                                        IdModulo     = item.IdModulo,
                                        IdUsuario    = info.IdUsuario,
                                        FechaTransac = DateTime.Now
                                    });
                                }
                            }
                        }

                        Context.ct_periodo.Add(Entity);
                    }

                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #10
0
        public bool ValidarFechaTransaccion(int IdEmpresa, DateTime Fecha, cl_enumeradores.eModulo Modulo, int IdSucursal, ref string mensaje)
        {
            Entities_contabilidad db_conta   = new Entities_contabilidad();
            Entities_general      db_general = new Entities_general();

            try
            {
                Fecha = Fecha.Date;
                int    Periodo = Convert.ToInt32(Fecha.ToString("yyyyMM"));
                string sModulo = Modulo.ToString();
                ct_CierrePorModuloPorSucursal CierreModulo = new ct_CierrePorModuloPorSucursal();
                var empresa = db_general.tb_empresa.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                if (empresa != null)
                {
                    if (empresa.em_fechaInicioActividad > Fecha.Date)
                    {
                        mensaje = "La fecha de la transacción es menor al inicio de actividades de la empresa en el sistema FIXED ERP: " + Fecha.Date.ToString("dd/MM/yyyy");
                        return(false);
                    }
                }

                ct_periodo per = db_conta.ct_periodo.Where(q => q.IdEmpresa == IdEmpresa && q.IdPeriodo == Periodo).FirstOrDefault();

                if (per == null)
                {
                    mensaje = "El periodo " + Periodo + " de la transacción no se encuentra registrado.";
                    return(false);
                }

                if (per.pe_cerrado == "S")
                {
                    mensaje = "El periodo " + Periodo + " se encuentra cerrado.";
                    return(false);
                }

                switch (Modulo)
                {
                case cl_enumeradores.eModulo.INV:
                    using (Entities_inventario db = new Entities_inventario())
                    {
                        var param = db.in_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de inventario";
                            return(false);
                        }

                        /*
                         * if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                         * {
                         *  mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de importación";
                         *  return false;
                         * }
                         */
                        var FechaFutura = DateTime.Now.AddDays((param == null ? 0 : param.DiasTransaccionesAFuturo));
                        var FechaPasada = DateTime.Now.AddDays(-(param == null ? 0 : (param.DiasTransaccionesAPasado == null ? 99999 : Convert.ToInt32(param.DiasTransaccionesAPasado))));

                        if (!(Fecha >= FechaPasada && Fecha <= FechaFutura))
                        {
                            mensaje = "La fecha de la transacción no está permitida por los parámetros del módulo de inventario";
                            return(false);
                        }
                    }
                    CierreModulo = db_conta.ct_CierrePorModuloPorSucursal.Where(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.CodModulo == "INV" && q.Cerrado).OrderByDescending(q => q.FechaFin).FirstOrDefault();
                    if (CierreModulo != null)
                    {
                        if (Fecha.Date <= CierreModulo.FechaFin)
                        {
                            mensaje = "El periodo de la transacción se encuentra cerrado para el módulo de inventario";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.FAC:
                    using (Entities_facturacion db = new Entities_facturacion())
                    {
                        var param = db.fa_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de facturación";
                            return(false);
                        }

                        var FechaFutura = DateTime.Now.AddDays((param == null ? 0 : param.DiasTransaccionesAFuturo));
                        var FechaPasada = DateTime.Now.AddDays(-(param == null ? 0 : (param.DiasTransaccionesAPasado == null ? 99999 : Convert.ToInt32(param.DiasTransaccionesAPasado))));

                        if (!(Fecha >= FechaPasada && Fecha <= FechaFutura))
                        {
                            mensaje = "La fecha de la transacción no está permitida por los parámetros del módulo de facturación";
                            return(false);
                        }

                        if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                        {
                            mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de facturación";
                            return(false);
                        }
                    }
                    CierreModulo = db_conta.ct_CierrePorModuloPorSucursal.Where(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.CodModulo == "FAC" && q.Cerrado).OrderByDescending(q => q.FechaFin).FirstOrDefault();
                    if (CierreModulo != null)
                    {
                        if (Fecha.Date <= CierreModulo.FechaFin)
                        {
                            mensaje = "El periodo de la transacción se encuentra cerrado para el módulo de facturación";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.COM:
                    using (Entities_compras db = new Entities_compras())
                    {
                        var param = db.com_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de compras";
                            return(false);
                        }

                        /*
                         * var FechaFutura = DateTime.Now.AddDays((param == null ? 0 : param.DiasTransaccionesAFuturo));
                         * var FechaPasada = DateTime.Now.AddDays(-(param == null ? 0 : (param.DiasTransaccionesAPasado == null ? 99999 : Convert.ToInt32(param.DiasTransaccionesAPasado))));
                         *
                         * if (!(Fecha >= FechaPasada && Fecha <= FechaFutura))
                         * {
                         *  mensaje = "La fecha de la transacción no está permitida por los parámetros del módulo de compras";
                         *  return false;
                         * }
                         *
                         * if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                         * {
                         *  mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de compras";
                         *  return false;
                         * }
                         */
                    }
                    CierreModulo = db_conta.ct_CierrePorModuloPorSucursal.Where(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.CodModulo == "COMP" && q.Cerrado).OrderByDescending(q => q.FechaFin).FirstOrDefault();
                    if (CierreModulo != null)
                    {
                        if (Fecha.Date <= CierreModulo.FechaFin)
                        {
                            mensaje = "El periodo de la transacción se encuentra cerrado para el módulo de compras";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.ACF:
                    using (Entities_activo_fijo db = new Entities_activo_fijo())
                    {
                        var param = db.Af_Parametros.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de activo fijo";
                            return(false);
                        }

                        /*
                         * var FechaFutura = DateTime.Now.AddDays((param == null ? 0 : param.DiasTransaccionesAFuturo));
                         * var FechaPasada = DateTime.Now.AddDays(-(param == null ? 0 : (param.DiasTransaccionesAPasado == null ? 99999 : Convert.ToInt32(param.DiasTransaccionesAPasado))));
                         *
                         * if (!(Fecha >= FechaPasada && Fecha <= FechaFutura))
                         * {
                         *  mensaje = "La fecha de la transacción no está permitida por los parámetros del módulo de activo fijo";
                         *  return false;
                         * }
                         *
                         * if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                         * {
                         *  mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de activo fijo";
                         *  return false;
                         * }
                         */
                    }
                    CierreModulo = db_conta.ct_CierrePorModuloPorSucursal.Where(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.CodModulo == "ACTF" && q.Cerrado).OrderByDescending(q => q.FechaFin).FirstOrDefault();
                    if (CierreModulo != null)
                    {
                        if (Fecha.Date <= CierreModulo.FechaFin)
                        {
                            mensaje = "El periodo de la transacción se encuentra cerrado para el módulo de activo fijo";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.RRHH:
                    using (Entities_rrhh db = new Entities_rrhh())
                    {
                        var param = db.ro_Parametros.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de importación";
                            return(false);
                        }

                        /*
                         * var FechaFutura = DateTime.Now.AddDays((param == null ? 0 : (param.DiasTransaccionesAFuturo==null ? 0 : Convert.ToInt32(param.DiasTransaccionesAPasado))));
                         * var FechaPasada = DateTime.Now.AddDays(-(param == null ? 0 : (param.DiasTransaccionesAPasado == null ? 99999 : Convert.ToInt32(param.DiasTransaccionesAPasado))));
                         *
                         * if (!(Fecha >= FechaPasada && Fecha <= FechaFutura))
                         * {
                         *  mensaje = "La fecha de la transacción no está permitida por los parámetros del módulo de recursos humanos";
                         *  return false;
                         * }
                         */
                    }
                    CierreModulo = db_conta.ct_CierrePorModuloPorSucursal.Where(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.CodModulo == "ROL" && q.Cerrado).OrderByDescending(q => q.FechaFin).FirstOrDefault();
                    if (CierreModulo != null)
                    {
                        if (Fecha.Date <= CierreModulo.FechaFin)
                        {
                            mensaje = "El periodo de la transacción se encuentra cerrado para el módulo de recursos humanos";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.IMP:
                    using (Entities_importacion db = new Entities_importacion())
                    {
                        var param = db.imp_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de importación";
                            return(false);
                        }

                        /*
                         * var FechaFutura = DateTime.Now.AddDays((param == null ? 0 : (param.DiasTransaccionesAFuturo == null ? 0 : Convert.ToInt32(param.DiasTransaccionesAFuturo))));
                         * var FechaPasada = DateTime.Now.AddDays(-(param == null ? 0 : (param.DiasTransaccionesAPasado == null ? 99999 : Convert.ToInt32(param.DiasTransaccionesAPasado))));
                         *
                         * if (!(Fecha >= FechaPasada && Fecha <= FechaFutura))
                         * {
                         *  mensaje = "La fecha de la transacción no está permitida por los parámetros del módulo de importación";
                         *  return false;
                         * }
                         *
                         * /*
                         * if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                         * {
                         *  mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de importación";
                         *  return false;
                         * }
                         */
                    }
                    break;

                case cl_enumeradores.eModulo.CONTA:
                    using (Entities_contabilidad db = new Entities_contabilidad())
                    {
                        var param = db.ct_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de contabilidad";
                            return(false);
                        }

                        /*
                         * var FechaFutura = DateTime.Now.AddDays((param == null ? 0 : param.DiasTransaccionesAFuturo));
                         * var FechaPasada = DateTime.Now.AddDays(-(param == null ? 0 : (param.DiasTransaccionesAPasado == null ? 99999 : Convert.ToInt32(param.DiasTransaccionesAPasado))));
                         *
                         * if (!(Fecha >= FechaPasada && Fecha <= FechaFutura))
                         * {
                         *  mensaje = "La fecha de la transacción no está permitida por los parámetros del módulo de contabilidad";
                         *  return false;
                         * }
                         *
                         * if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                         * {
                         *  mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de contabilidad";
                         *  return false;
                         * }
                         */
                    }
                    CierreModulo = db_conta.ct_CierrePorModuloPorSucursal.Where(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.CodModulo == "CONTA" && q.Cerrado).OrderByDescending(q => q.FechaFin).FirstOrDefault();
                    if (CierreModulo != null)
                    {
                        if (Fecha.Date <= CierreModulo.FechaFin)
                        {
                            mensaje = "El periodo de la transacción se encuentra cerrado para el módulo de contabilidad";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.CAJA:
                    using (Entities_caja db = new Entities_caja())
                    {
                        var param = db.caj_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de caja";
                            return(false);
                        }

                        /*
                         * var FechaFutura = DateTime.Now.AddDays((param == null ? 0 : param.DiasTransaccionesAFuturo));
                         * var FechaPasada = DateTime.Now.AddDays(-(param == null ? 0 : (param.DiasTransaccionesAPasado == null ? 99999 : Convert.ToInt32(param.DiasTransaccionesAPasado))));
                         *
                         * if (!(Fecha >= FechaPasada && Fecha <= FechaFutura))
                         * {
                         *  mensaje = "La fecha de la transacción no está permitida por los parámetros del módulo de caja";
                         *  return false;
                         * }
                         *
                         * if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                         * {
                         *  mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de caja";
                         *  return false;
                         * }
                         */
                    }
                    CierreModulo = db_conta.ct_CierrePorModuloPorSucursal.Where(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.CodModulo == "CAJ" && q.Cerrado).OrderByDescending(q => q.FechaFin).FirstOrDefault();
                    if (CierreModulo != null)
                    {
                        if (Fecha.Date <= CierreModulo.FechaFin)
                        {
                            mensaje = "El periodo de la transacción se encuentra cerrado para el módulo de caja";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.BANCO:
                    using (Entities_banco db = new Entities_banco())
                    {
                        var param = db.ba_parametros.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de bancos";
                            return(false);
                        }

                        /*
                         * var FechaFutura = DateTime.Now.AddDays((param == null ? 0 : param.DiasTransaccionesAFuturo));
                         * var FechaPasada = DateTime.Now.AddDays(-(param == null ? 0 : (param.DiasTransaccionesAPasado == null ? 99999 : Convert.ToInt32(param.DiasTransaccionesAPasado))));
                         *
                         * if (!(Fecha >= FechaPasada && Fecha <= FechaFutura))
                         * {
                         *  mensaje = "La fecha de la transacción no está permitida por los parámetros del módulo de bancos";
                         *  return false;
                         * }
                         *
                         * if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                         * {
                         *  mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de bancos";
                         *  return false;
                         * }
                         */
                    }
                    CierreModulo = db_conta.ct_CierrePorModuloPorSucursal.Where(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.CodModulo == "BAN" && q.Cerrado).OrderByDescending(q => q.FechaFin).FirstOrDefault();
                    if (CierreModulo != null)
                    {
                        if (Fecha.Date <= CierreModulo.FechaFin)
                        {
                            mensaje = "El periodo de la transacción se encuentra cerrado para el módulo de bancos";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.CXC:
                    using (Entities_cuentas_por_cobrar db = new Entities_cuentas_por_cobrar())
                    {
                        var param = db.cxc_Parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de cuentas por cobrar";
                            return(false);
                        }

                        /*
                         * var FechaFutura = DateTime.Now.AddDays((param == null ? 0 : param.DiasTransaccionesAFuturo));
                         * var FechaPasada = DateTime.Now.AddDays(-(param == null ? 0 : (param.DiasTransaccionesAPasado == null ? 99999 : Convert.ToInt32(param.DiasTransaccionesAPasado))));
                         *
                         * if (!(Fecha >= FechaPasada && Fecha <= FechaFutura))
                         * {
                         *  mensaje = "La fecha de la transacción no está permitida por los parámetros del módulo de cuentas por cobrar";
                         *  return false;
                         * }
                         *
                         * if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                         * {
                         *  mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de cuentas por cobrar";
                         *  return false;
                         * }
                         */
                    }
                    CierreModulo = db_conta.ct_CierrePorModuloPorSucursal.Where(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.CodModulo == "CXC" && q.Cerrado).OrderByDescending(q => q.FechaFin).FirstOrDefault();
                    if (CierreModulo != null)
                    {
                        if (Fecha.Date <= CierreModulo.FechaFin)
                        {
                            mensaje = "El periodo de la transacción se encuentra cerrado para el módulo de cuentas por cobrar";
                            return(false);
                        }
                    }
                    break;

                case cl_enumeradores.eModulo.CXP:
                    using (Entities_cuentas_por_pagar db = new Entities_cuentas_por_pagar())
                    {
                        var param = db.cp_parametros.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                        if (param == null)
                        {
                            mensaje = "No existen parámetros para el módulo de cuentas por pagar";
                            return(false);
                        }

                        /*
                         * var FechaFutura = DateTime.Now.AddDays((param == null ? 0 : param.DiasTransaccionesAFuturo));
                         * var FechaPasada = DateTime.Now.AddDays(-(param == null ? 0 : (param.DiasTransaccionesAPasado == null ? 99999 : Convert.ToInt32(param.DiasTransaccionesAPasado))));
                         *
                         * if (!(Fecha >= FechaPasada && Fecha <= FechaFutura))
                         * {
                         *  mensaje = "La fecha de la transacción no está permitida por los parámetros del módulo de cuentas por pagar";
                         *  return false;
                         * }
                         *
                         * if (param.DiasTransaccionesAFuturo > 0 && DateTime.Now.Date.AddDays(param.DiasTransaccionesAFuturo) < Fecha)
                         * {
                         *  mensaje = "La fecha de la transacción es superior a la fecha permitida por los parámetros del módulo de cuentas por pagar";
                         *  return false;
                         * }
                         */
                    }
                    CierreModulo = db_conta.ct_CierrePorModuloPorSucursal.Where(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.CodModulo == "CXP" && q.Cerrado).OrderByDescending(q => q.FechaFin).FirstOrDefault();
                    if (CierreModulo != null)
                    {
                        if (Fecha.Date <= CierreModulo.FechaFin)
                        {
                            mensaje = "El periodo de la transacción se encuentra cerrado para el módulo de cuentas por pagar";
                            return(false);
                        }
                    }
                    break;
                }

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