public ct_CierrePorModuloPorSucursal_Info GetInfo(int IdEmpresa, int IdCierre) { try { ct_CierrePorModuloPorSucursal_Info info = new ct_CierrePorModuloPorSucursal_Info(); using (Entities_contabilidad Context = new Entities_contabilidad()) { ct_CierrePorModuloPorSucursal Entity = Context.ct_CierrePorModuloPorSucursal.Where(q => q.IdCierre == IdCierre && q.IdEmpresa == IdEmpresa).FirstOrDefault(); if (Entity == null) { return(null); } info = new ct_CierrePorModuloPorSucursal_Info { IdEmpresa = Entity.IdEmpresa, IdSucursal = Entity.IdSucursal, IdCierre = Entity.IdCierre, CodModulo = Entity.CodModulo, FechaIni = Entity.FechaIni, FechaFin = Entity.FechaFin, Cerrado = Entity.Cerrado }; } return(info); } catch (Exception) { throw; } }
public bool ModificarBD(ct_CierrePorModuloPorSucursal_Info info) { try { using (Entities_contabilidad db = new Entities_contabilidad()) { ct_CierrePorModuloPorSucursal entity = db.ct_CierrePorModuloPorSucursal.Where(q => q.IdCierre == info.IdCierre && q.IdEmpresa == info.IdEmpresa).FirstOrDefault(); if (entity == null) { return(false); } entity.IdEmpresa = info.IdEmpresa; entity.IdSucursal = info.IdSucursal; entity.IdCierre = info.IdCierre; entity.CodModulo = info.CodModulo; entity.FechaIni = info.FechaIni; entity.FechaFin = info.FechaFin; entity.Cerrado = info.Cerrado; db.SaveChanges(); } return(true); } catch (Exception) { throw; } }
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; * } */ 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); } 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); } 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); } 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()) { } 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); } /* * 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); } } 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); } 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); } 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); } 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); } 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; } }