Example #1
0
        public ro_Parametros_Info get_info(int IdEmpresa)
        {
            try
            {
                ro_Parametros_Info info = new ro_Parametros_Info();

                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_Parametros q = Context.ro_Parametros.FirstOrDefault(v => v.IdEmpresa == IdEmpresa);
                    if (q == null)
                    {
                        return(info);
                    }

                    info = new ro_Parametros_Info
                    {
                        IdEmpresa = q.IdEmpresa,
                        IdTipoCbte_AsientoSueldoXPagar = q.IdTipoCbte_AsientoSueldoXPagar,
                        Genera_op_por_acta_finiquito   = q.Genera_op_por_acta_finiquito,
                        Genera_op_por_liq_vacaciones   = q.Genera_op_por_liq_vacaciones,
                        Genera_op_por_prestamos        = q.Genera_op_por_prestamos,
                        genera_op_x_pago           = q.genera_op_x_pago,
                        Genera_op_x_pago_x_empleao = q.Genera_op_x_pago_x_empleao,
                        IdTipo_op_acta_finiquito   = q.IdTipo_op_acta_finiquito,
                        IdTipo_op_sueldo_por_pagar = q.IdTipo_op_sueldo_por_pagar,
                        IdTipo_op_prestamos        = q.IdTipo_op_prestamos,
                        IdTipo_op_vacaciones       = q.IdTipo_op_vacaciones,
                        Sueldo_basico                   = q.Sueldo_basico,
                        Porcentaje_aporte_patr          = q.Porcentaje_aporte_patr,
                        Porcentaje_aporte_pers          = q.Porcentaje_aporte_pers,
                        IdRubro_acta_finiquito          = q.IdRubro_acta_finiquito,
                        EstadoCreacionPrestamos         = q.EstadoCreacionPrestamos,
                        Porcentaje_anticipo             = q.Porcentaje_anticipo,
                        IdNomina_General                = q.IdNomina_General,
                        IdNomina_TipoLiqui_PagoUtilidad = q.IdNomina_TipoLiqui_PagoUtilidad
                    };
                }

                return(info);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public ro_Parametros_Info get_info(int IdEmpresa)
        {
            try
            {
                ro_Parametros_Info info = new ro_Parametros_Info();

                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_Parametros q = Context.ro_Parametros.FirstOrDefault(v => v.IdEmpresa == IdEmpresa);
                    if (q == null)
                    {
                        return(null);
                    }

                    info = new ro_Parametros_Info
                    {
                        IdEmpresa = q.IdEmpresa,
                        IdTipoCbte_AsientoSueldoXPagar      = q.IdTipoCbte_AsientoSueldoXPagar,
                        GeneraOP_PagoPrestamos              = q.GeneraOP_PagoPrestamos,
                        IdTipoOP_PagoPrestamos              = q.IdTipoOP_PagoPrestamos,
                        IdFormaOP_PagoPrestamos             = q.IdFormaOP_PagoPrestamos,
                        GeneraOP_LiquidacionVacaciones      = q.GeneraOP_LiquidacionVacaciones,
                        IdTipoOP_LiquidacionVacaciones      = q.IdTipoOP_LiquidacionVacaciones,
                        IdTipoFlujoOP_LiquidacionVacaciones = q.IdTipoFlujoOP_LiquidacionVacaciones,
                        IdFormaOP_LiquidacionVacaciones     = q.IdFormaOP_LiquidacionVacaciones,
                        DescuentaIESS_LiquidacionVacaciones = q.DescuentaIESS_LiquidacionVacaciones,
                        cta_contable_IESS_Vacaciones        = q.cta_contable_IESS_Vacaciones,
                        GeneraOP_ActaFiniquito              = q.GeneraOP_ActaFiniquito,
                        IdTipoOP_ActaFiniquito              = q.IdTipoOP_ActaFiniquito,
                        IdFormaPagoOP_ActaFiniquito         = q.IdFormaPagoOP_ActaFiniquito,
                        Sueldo_basico          = q.Sueldo_basico,
                        Porcentaje_aporte_patr = q.Porcentaje_aporte_patr,
                        Porcentaje_aporte_pers = q.Porcentaje_aporte_pers,
                        IdRubro_acta_finiquito = q.IdRubro_acta_finiquito,
                        Descripcion            = "Parametrización contable"
                    };
                }

                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #3
0
        public bool modificarDB(ro_Parametros_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_Parametros Entity = Context.ro_Parametros.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.IdTipoCbte_AsientoSueldoXPagar = Convert.ToInt32(info.IdTipoCbte_AsientoSueldoXPagar);
                    Entity.Genera_op_por_acta_finiquito   = info.Genera_op_por_acta_finiquito;
                    Entity.Genera_op_por_liq_vacaciones   = info.Genera_op_por_liq_vacaciones;
                    Entity.Genera_op_por_prestamos        = info.Genera_op_por_prestamos;
                    Entity.genera_op_x_pago           = info.genera_op_x_pago;
                    Entity.Genera_op_x_pago_x_empleao = info.Genera_op_x_pago_x_empleao;
                    Entity.IdTipo_op_acta_finiquito   = info.IdTipo_op_acta_finiquito;
                    Entity.IdTipo_op_prestamos        = info.IdTipo_op_prestamos;
                    Entity.IdTipo_op_sueldo_por_pagar = info.IdTipo_op_sueldo_por_pagar;
                    Entity.IdTipo_op_vacaciones       = info.IdTipo_op_vacaciones;
                    Entity.Sueldo_basico                   = info.Sueldo_basico;
                    Entity.Porcentaje_aporte_pers          = info.Porcentaje_aporte_pers;
                    Entity.Porcentaje_aporte_patr          = info.Porcentaje_aporte_patr;
                    Entity.IdRubro_acta_finiquito          = info.IdRubro_acta_finiquito;
                    Entity.genera_op_x_pago                = info.genera_op_x_pago;
                    Entity.Genera_op_x_pago_x_empleao      = info.Genera_op_x_pago_x_empleao;
                    Entity.EstadoCreacionPrestamos         = info.EstadoCreacionPrestamos;
                    Entity.Porcentaje_anticipo             = info.Porcentaje_anticipo;
                    Entity.IdNomina_General                = info.IdNomina_General;
                    Entity.IdNomina_TipoLiqui_PagoUtilidad = info.IdNomina_TipoLiqui_PagoUtilidad;
                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public bool modificarDB(ro_Parametros_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_Parametros Entity = Context.ro_Parametros.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.IdTipoCbte_AsientoSueldoXPagar      = info.IdTipoCbte_AsientoSueldoXPagar;
                    Entity.GeneraOP_PagoPrestamos              = info.GeneraOP_PagoPrestamos;
                    Entity.IdTipoOP_PagoPrestamos              = info.IdTipoOP_PagoPrestamos;
                    Entity.IdFormaOP_PagoPrestamos             = info.IdFormaOP_PagoPrestamos;
                    Entity.GeneraOP_LiquidacionVacaciones      = info.GeneraOP_LiquidacionVacaciones;
                    Entity.IdTipoOP_LiquidacionVacaciones      = info.IdTipoOP_LiquidacionVacaciones;
                    Entity.IdTipoFlujoOP_LiquidacionVacaciones = info.IdTipoFlujoOP_LiquidacionVacaciones;
                    Entity.IdFormaOP_LiquidacionVacaciones     = info.IdFormaOP_LiquidacionVacaciones;
                    Entity.DescuentaIESS_LiquidacionVacaciones = info.DescuentaIESS_LiquidacionVacaciones;
                    Entity.cta_contable_IESS_Vacaciones        = info.cta_contable_IESS_Vacaciones;
                    Entity.GeneraOP_ActaFiniquito              = info.GeneraOP_ActaFiniquito;
                    Entity.IdTipoOP_ActaFiniquito              = info.IdTipoOP_ActaFiniquito;
                    Entity.IdFormaPagoOP_ActaFiniquito         = info.IdFormaPagoOP_ActaFiniquito;
                    Entity.Sueldo_basico              = info.Sueldo_basico;
                    Entity.Porcentaje_aporte_pers     = info.Porcentaje_aporte_pers;
                    Entity.Porcentaje_aporte_patr     = info.Porcentaje_aporte_patr;
                    Entity.IdRubro_acta_finiquito     = info.IdRubro_acta_finiquito;
                    Entity.genera_op_x_pago           = info.genera_op_x_pago;
                    Entity.Genera_op_x_pago_x_empleao = info.Genera_op_x_pago_x_empleao;
                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public bool guardarDB(ro_Parametros_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_Parametros Entity = new ro_Parametros
                    {
                        IdEmpresa = info.IdEmpresa,
                        IdTipoCbte_AsientoSueldoXPagar = info.IdTipoCbte_AsientoSueldoXPagar,

                        GeneraOP_PagoPrestamos              = info.GeneraOP_PagoPrestamos,
                        IdTipoOP_PagoPrestamos              = info.IdTipoOP_PagoPrestamos,
                        IdFormaOP_PagoPrestamos             = info.IdFormaOP_PagoPrestamos,
                        GeneraOP_LiquidacionVacaciones      = info.GeneraOP_LiquidacionVacaciones,
                        IdTipoOP_LiquidacionVacaciones      = info.IdTipoOP_LiquidacionVacaciones,
                        IdTipoFlujoOP_LiquidacionVacaciones = info.IdTipoFlujoOP_LiquidacionVacaciones,
                        IdFormaOP_LiquidacionVacaciones     = info.IdFormaOP_LiquidacionVacaciones,
                        DescuentaIESS_LiquidacionVacaciones = info.DescuentaIESS_LiquidacionVacaciones,
                        cta_contable_IESS_Vacaciones        = info.cta_contable_IESS_Vacaciones,
                        GeneraOP_ActaFiniquito              = info.GeneraOP_ActaFiniquito,
                        IdTipoOP_ActaFiniquito              = info.IdTipoOP_ActaFiniquito,
                        IdFormaPagoOP_ActaFiniquito         = info.IdFormaPagoOP_ActaFiniquito,
                        Sueldo_basico              = info.Sueldo_basico,
                        Porcentaje_aporte_patr     = info.Porcentaje_aporte_patr,
                        Porcentaje_aporte_pers     = info.Porcentaje_aporte_pers,
                        IdRubro_acta_finiquito     = info.IdRubro_acta_finiquito,
                        genera_op_x_pago           = info.genera_op_x_pago,
                        Genera_op_x_pago_x_empleao = info.Genera_op_x_pago_x_empleao
                    };
                    Context.ro_Parametros.Add(Entity);
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #6
0
 public bool guardarDB(ro_Parametros_Info info)
 {
     try
     {
         using (Entities_rrhh Context = new Entities_rrhh())
         {
             ro_Parametros Entity = new ro_Parametros
             {
                 IdEmpresa = info.IdEmpresa,
                 IdTipoCbte_AsientoSueldoXPagar = Convert.ToInt32(info.IdTipoCbte_AsientoSueldoXPagar),
                 Genera_op_por_acta_finiquito   = info.Genera_op_por_acta_finiquito,
                 Genera_op_por_liq_vacaciones   = info.Genera_op_por_liq_vacaciones,
                 Genera_op_por_prestamos        = info.Genera_op_por_prestamos,
                 genera_op_x_pago           = info.genera_op_x_pago,
                 Genera_op_x_pago_x_empleao = info.Genera_op_x_pago_x_empleao,
                 IdTipo_op_acta_finiquito   = info.IdTipo_op_acta_finiquito,
                 IdTipo_op_sueldo_por_pagar = info.IdTipo_op_sueldo_por_pagar,
                 IdTipo_op_prestamos        = info.IdTipo_op_prestamos,
                 IdTipo_op_vacaciones       = info.IdTipo_op_vacaciones,
                 Sueldo_basico                   = info.Sueldo_basico,
                 Porcentaje_aporte_patr          = info.Porcentaje_aporte_patr,
                 Porcentaje_aporte_pers          = info.Porcentaje_aporte_pers,
                 IdRubro_acta_finiquito          = info.IdRubro_acta_finiquito,
                 EstadoCreacionPrestamos         = info.EstadoCreacionPrestamos,
                 Porcentaje_anticipo             = info.Porcentaje_anticipo
                 , IdNomina_General              = info.IdNomina_General,
                 IdNomina_TipoLiqui_PagoUtilidad = info.IdNomina_TipoLiqui_PagoUtilidad
             };
             Context.ro_Parametros.Add(Entity);
             Context.SaveChanges();
         }
         return(true);
     }
     catch (Exception ex)
     {
         throw;
     }
 }
Example #7
0
        public bool aprobar_prestamo(int IdEmpresa, string[] Lista, string IdUsuarioAprueba)
        {
            Entities_rrhh Context = new Entities_rrhh();
            Entities_cuentas_por_pagar Context_cxp = new Entities_cuentas_por_pagar();
            Entities_contabilidad      Context_ct  = new Entities_contabilidad();

            try
            {
                ro_Parametros Entity_ro_parametros          = Context.ro_Parametros.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                cp_orden_pago_tipo_x_empresa Entity_op_tipo = Context_cxp.cp_orden_pago_tipo_x_empresa.Where(q => q.IdEmpresa == IdEmpresa && q.IdTipo_op == Entity_ro_parametros.IdTipo_op_prestamos).FirstOrDefault();


                decimal IdOrdenPago   = 1;
                decimal IdCbteCble_OP = 1;

                foreach (var item in Lista)
                {
                    var         IdPrestamo      = Convert.ToDecimal(item);
                    ro_prestamo Entity_Prestamo = Context.ro_prestamo.FirstOrDefault(q => q.IdEmpresa == IdEmpresa && q.IdPrestamo == IdPrestamo);
                    if (Entity_Prestamo != null)
                    {
                        Entity_Prestamo.IdUsuarioAprueba = IdUsuarioAprueba;
                        Entity_Prestamo.EstadoAprob      = "APROB";
                    }

                    if (Entity_Prestamo.GeneraOP)
                    {
                        IdOrdenPago   = data_op.get_id(Entity_Prestamo.IdEmpresa);
                        IdCbteCble_OP = data_ct.get_id(Entity_Prestamo.IdEmpresa, Convert.ToInt32(Entity_op_tipo.IdTipoCbte_OP));
                        ro_empleado Entity_Empleado = Context.ro_empleado.Where(q => q.IdEmpresa == Entity_Prestamo.IdEmpresa && q.IdEmpleado == Entity_Prestamo.IdEmpleado).FirstOrDefault();
                        var         cuenta_x_rubro  = Context.ro_rubro_tipo.Where(q => q.IdEmpresa == Entity_Prestamo.IdEmpresa && q.IdRubro == Entity_Prestamo.IdRubro).FirstOrDefault();

                        if (
                            Entity_Empleado.IdCtaCble_x_pagar_empleado != null &&
                            Entity_Empleado.IdCtaCble_Emplea != null
                            )
                        {
                            cp_orden_pago op = new cp_orden_pago
                            {
                                IdEmpresa          = IdEmpresa,
                                IdSucursal         = Entity_Empleado.IdSucursal,
                                IdOrdenPago        = IdOrdenPago,
                                Observacion        = "Prestamo #" + Entity_Prestamo.IdPrestamo,
                                IdTipo_op          = Entity_ro_parametros.IdTipo_op_prestamos,
                                IdTipo_Persona     = cl_enumeradores.eTipoPersona.EMPLEA.ToString(),
                                IdPersona          = Entity_Empleado.IdPersona,
                                IdEntidad          = Entity_Prestamo.IdEmpleado,
                                Fecha              = DateTime.Now.Date,
                                IdEstadoAprobacion = Entity_op_tipo.IdEstadoAprobacion,
                                IdFormaPago        = cl_enumeradores.eFormaPagoOrdenPago.CHEQUE.ToString(),
                                Estado             = "A"
                            };

                            Entity_Prestamo.IdEmpresa_op = op.IdEmpresa;
                            Entity_Prestamo.IdOrdenPago  = op.IdOrdenPago;

                            Context_cxp.cp_orden_pago.Add(op);

                            ct_cbtecble diario = new ct_cbtecble
                            {
                                IdEmpresa       = IdEmpresa,
                                IdTipoCbte      = Convert.ToInt32(Entity_op_tipo.IdTipoCbte_OP),
                                IdCbteCble      = IdCbteCble_OP,
                                cb_Fecha        = DateTime.Now.Date,
                                cb_Observacion  = op.Observacion,
                                IdPeriodo       = Convert.ToInt32(DateTime.Now.Date.ToString("yyyyMM")),
                                IdSucursal      = Entity_Empleado.IdSucursal,
                                cb_FechaTransac = DateTime.Now,
                                cb_Estado       = "A"
                            };

                            Entity_Prestamo.IdEmpresa_dc = diario.IdEmpresa;
                            Entity_Prestamo.IdTipoCbte   = diario.IdTipoCbte;
                            Entity_Prestamo.IdCbteCble   = diario.IdCbteCble;

                            Context_ct.ct_cbtecble.Add(diario);

                            ct_cbtecble_det diario_det = new ct_cbtecble_det
                            {
                                IdEmpresa  = diario.IdEmpresa,
                                IdTipoCbte = diario.IdTipoCbte,
                                IdCbteCble = diario.IdCbteCble,
                                secuencia  = 1,
                                IdCtaCble  = Entity_Empleado.IdCtaCble_Emplea,
                                dc_Valor   = Math.Round(Convert.ToDouble(Entity_Prestamo.MontoSol), 2, MidpointRounding.AwayFromZero),
                            };

                            Context_ct.ct_cbtecble_det.Add(diario_det);

                            ct_cbtecble_det diario_det_ = new ct_cbtecble_det
                            {
                                IdEmpresa  = diario.IdEmpresa,
                                IdTipoCbte = diario.IdTipoCbte,
                                IdCbteCble = diario.IdCbteCble,
                                secuencia  = 2,
                                IdCtaCble  = Entity_Empleado.IdCtaCble_x_pagar_empleado,
                                dc_Valor   = Math.Round(Convert.ToDouble(Entity_Prestamo.MontoSol), 2, MidpointRounding.AwayFromZero) * -1
                            };

                            Context_ct.ct_cbtecble_det.Add(diario_det_);

                            cp_orden_pago_det op_det = new cp_orden_pago_det
                            {
                                IdEmpresa   = op.IdEmpresa,
                                IdOrdenPago = op.IdOrdenPago,
                                Secuencia   = 1,

                                IdEmpresa_cxp  = diario.IdEmpresa,
                                IdTipoCbte_cxp = diario.IdTipoCbte,
                                IdCbteCble_cxp = diario.IdCbteCble,

                                Valor_a_pagar      = Convert.ToDouble(Entity_Prestamo.MontoSol),
                                IdEstadoAprobacion = Entity_op_tipo.IdEstadoAprobacion,
                                IdFormaPago        = cl_enumeradores.eFormaPagoOrdenPago.CHEQUE.ToString(),
                                Fecha_Pago         = op.Fecha
                            };

                            Context_cxp.cp_orden_pago_det.Add(op_det);
                        }
                    }
                    Context_ct.SaveChanges();
                    Context_cxp.SaveChanges();
                    Context.SaveChanges();
                }

                Context_ct.Dispose();
                Context_cxp.Dispose();
                Context.Dispose();

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #8
0
        public Boolean GrabarBD(ro_Parametros_Info info, ref string msg)
        {
            try
            {
                using (EntitiesRoles db = new EntitiesRoles())
                {
                    var contact = (from a in db.ro_Parametros
                                   where a.IdEmpresa == info.IdEmpresa
                                   select a).FirstOrDefault();
                    if (contact != null)
                    {
                        contact.IdTipoCbte_AsientoSueldoXPagar = info.IdTipoCbte_AsientoSueldoXPagar;


                        contact.IdTipo_mov_Ingreso = info.IdTipo_mov_Ingreso;
                        contact.IdTipo_mov_Egreso  = info.IdTipo_mov_Egreso;
                        contact.Dias_considerado_ultimo_pago_quincela_Liq = info.Dias_considerado_ultimo_pago_quincela_Liq;



                        contact.IdTipoFlujoOP_PagoTerceros = info.IdTipoFlujoOP_PagoTerceros;
                        contact.IdBancoOP_PagoTerceros     = info.IdBancoOP_PagoTerceros;
                        contact.IdFormaOP_PagoTerceros     = info.IdFormaOP_PagoTerceros;
                        contact.IdTipoOP_PagoTerceros      = info.IdTipoOP_PagoTerceros;
                        contact.GeneraraOP_PagoTerceros    = info.GeneraraOP_PagoTerceros;



                        contact.GeneraOP_PagoPrestamos      = info.GeneraOP_PagoPrestamos;
                        contact.IdBancoOP_PagoPrestamos     = info.IdBancoOP_PagoPrestamos;
                        contact.IdFormaOP_PagoPrestamos     = info.IdFormaOP_PagoPrestamos;
                        contact.IdTipoFlujoOP_PagoPrestamos = info.IdTipoFlujoOP_PagoPrestamos;
                        contact.IdTipoOP_PagoPrestamos      = info.IdTipoOP_PagoPrestamos;



                        contact.DescuentaIESS_LiquidacionVacaciones = info.DescuentaIESS_LiquidacionVacaciones;
                        contact.GeneraOP_LiquidacionVacaciones      = info.GeneraOP_LiquidacionVacaciones;
                        contact.IdBancoOP_LiquidacionVacaciones     = info.IdBancoOP_LiquidacionVacaciones;
                        contact.IdFormaOP_LiquidacionVacaciones     = info.IdFormaOP_LiquidacionVacaciones;
                        contact.IdTipoFlujoOP_LiquidacionVacaciones = info.IdTipoFlujoOP_LiquidacionVacaciones;
                        contact.IdTipoOP_LiquidacionVacaciones      = info.IdTipoOP_LiquidacionVacaciones;
                        contact.cta_contable_IESS_Vacaciones        = info.cta_contable_IESS_Vacaciones;

                        contact.GeneraOP_ActaFiniquito      = info.GeneraOP_ActaFiniquito;
                        contact.IdBancoOP_ActaFiniquito     = info.IdBancoOP_ActaFiniquito;
                        contact.IdFormaPagoOP_ActaFiniquito = info.IdFormaPagoOP_ActaFiniquito;
                        contact.IdTipoFlujoOP_ActaFiniquito = info.IdTipoFlujoOP_ActaFiniquito;
                        contact.IdTipoOP_ActaFiniquito      = info.IdTipoOP_ActaFiniquito;


                        contact.IdNomina_Tipo_Para_Desc_Automat   = info.IdNomina_Tipo_Para_Desc_Automat;
                        contact.IdNominatipoLiq_Para_Desc_Automat = info.IdNominatipoLiq_Para_Desc_Automat;
                        db.SaveChanges();
                    }

                    else
                    {
                        ro_Parametros add = new ro_Parametros();
                        add.IdEmpresa = info.IdEmpresa;

                        add.IdTipoCbte_AsientoSueldoXPagar = info.IdTipoCbte_AsientoSueldoXPagar;


                        add.IdTipo_mov_Ingreso = info.IdTipo_mov_Ingreso;
                        add.IdTipo_mov_Egreso  = info.IdTipo_mov_Egreso;
                        add.Dias_considerado_ultimo_pago_quincela_Liq = info.Dias_considerado_ultimo_pago_quincela_Liq;


                        add.IdTipoFlujoOP_PagoTerceros = info.IdTipoFlujoOP_PagoTerceros;
                        add.IdBancoOP_PagoTerceros     = info.IdBancoOP_PagoTerceros;
                        add.IdFormaOP_PagoTerceros     = info.IdFormaOP_PagoTerceros;
                        add.IdFormaOP_PagoTerceros     = info.IdFormaOP_PagoTerceros;
                        add.GeneraraOP_PagoTerceros    = info.GeneraraOP_PagoTerceros;



                        add.GeneraOP_PagoPrestamos      = info.GeneraOP_PagoPrestamos;
                        add.IdBancoOP_PagoPrestamos     = info.IdBancoOP_PagoPrestamos;
                        add.IdFormaOP_PagoPrestamos     = info.IdFormaOP_PagoPrestamos;
                        add.IdTipoFlujoOP_PagoPrestamos = info.IdTipoFlujoOP_PagoPrestamos;
                        add.IdTipoOP_PagoPrestamos      = info.IdTipoOP_PagoPrestamos;

                        add.DescuentaIESS_LiquidacionVacaciones = info.DescuentaIESS_LiquidacionVacaciones;
                        add.GeneraOP_LiquidacionVacaciones      = info.GeneraOP_LiquidacionVacaciones;
                        add.IdBancoOP_LiquidacionVacaciones     = info.IdBancoOP_LiquidacionVacaciones;
                        add.IdFormaOP_LiquidacionVacaciones     = info.IdFormaOP_LiquidacionVacaciones;
                        add.IdTipoFlujoOP_LiquidacionVacaciones = info.IdTipoFlujoOP_LiquidacionVacaciones;
                        add.IdTipoOP_LiquidacionVacaciones      = info.IdTipoOP_LiquidacionVacaciones;
                        add.cta_contable_IESS_Vacaciones        = info.cta_contable_IESS_Vacaciones;


                        add.IdNomina_Tipo_Para_Desc_Automat   = info.IdNomina_Tipo_Para_Desc_Automat;
                        add.IdNominatipoLiq_Para_Desc_Automat = info.IdNominatipoLiq_Para_Desc_Automat;


                        db.ro_Parametros.Add(add);
                        db.SaveChanges();
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                string array = 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(), "", array, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                mensaje = ex.InnerException + " " + ex.Message;
                throw new Exception(ex.InnerException.ToString());
            }
        }
        public bool modificarDB(ro_participacion_utilidad_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    int IdNomina_General;
                    int IdNomina_TipoLiqui_PagoUtilidad;

                    ro_rubros_calculados RubrosCalculados = Context.ro_rubros_calculados.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa);
                    if (RubrosCalculados == null | RubrosCalculados.IdRubro_utilidad == null)
                    {
                        return(false);
                    }
                    #region Nomina y periodo
                    DateTime fi = new DateTime(info.IdPeriodo, 1, 1);
                    DateTime ff = new DateTime(info.IdPeriodo, 12, 31);

                    ro_Parametros param = Context.ro_Parametros.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa);
                    if (param == null || param.IdNomina_General == null || param.IdNomina_TipoLiqui_PagoUtilidad == null)
                    {
                        return(false);
                    }
                    IdNomina_General = Convert.ToInt32(param.IdNomina_General);
                    IdNomina_TipoLiqui_PagoUtilidad = Convert.ToInt32(param.IdNomina_TipoLiqui_PagoUtilidad);

                    ro_periodo Entity_periodo = Context.ro_periodo.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdPeriodo == info.IdPeriodo);
                    if (Entity_periodo == null)
                    {
                        Context.ro_periodo.Add(new ro_periodo
                        {
                            IdEmpresa     = info.IdEmpresa,
                            IdPeriodo     = info.IdPeriodo,
                            pe_FechaIni   = new DateTime(info.IdPeriodo, 1, 1),
                            pe_FechaFin   = new DateTime(info.IdPeriodo, 12, 31),
                            pe_anio       = info.IdPeriodo,
                            pe_estado     = "A",
                            IdUsuario     = info.UsuarioIngresa,
                            Fecha_Transac = DateTime.Now
                        });
                        ro_periodo_x_ro_Nomina_TipoLiqui Entity_periodo_nom = Context.ro_periodo_x_ro_Nomina_TipoLiqui.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdPeriodo == info.IdPeriodo &&
                                                                                                                                      q.IdNomina_Tipo == IdNomina_General && q.IdNomina_TipoLiqui == IdNomina_TipoLiqui_PagoUtilidad);

                        Context.ro_periodo_x_ro_Nomina_TipoLiqui.Add(new ro_periodo_x_ro_Nomina_TipoLiqui
                        {
                            IdEmpresa          = info.IdEmpresa,
                            IdPeriodo          = info.IdPeriodo,
                            IdNomina_Tipo      = IdNomina_General,
                            IdNomina_TipoLiqui = IdNomina_TipoLiqui_PagoUtilidad,
                            Cerrado            = "N",
                            Procesado          = "S",
                            Contabilizado      = "N"
                        });
                    }

                    #endregion
                    #region Utilidad cabecera

                    ro_participacion_utilidad Entity = Context.ro_participacion_utilidad.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdUtilidad == info.IdUtilidad);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.IdUsuarioModifica         = info.IdUsuarioModifica;
                    Entity.BaseUtilidad              = info.BaseUtilidad;
                    Entity.UtilidadDerechoIndividual = info.UtilidadDerechoIndividual;
                    Entity.UtilidadCargaFamiliar     = info.UtilidadCargaFamiliar;
                    Entity.Utilidad           = info.Utilidad;
                    Entity.Fecha_ultima_modif = DateTime.Now;



                    #endregion

                    #region Rol
                    ro_rol Entity_rol = Context.ro_rol.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa &&
                                                                      q.IdNominaTipo == IdNomina_General &&
                                                                      q.IdNominaTipoLiqui == IdNomina_TipoLiqui_PagoUtilidad);

                    decimal rolId = 0;
                    if (Entity_rol == null)
                    {
                        var lst = from q in Context.ro_rol
                                  where q.IdEmpresa == info.IdEmpresa
                                  select q;
                        rolId = lst.Max(q => q.IdRol) + 1;
                        Context.ro_rol.Add(new ro_rol
                        {
                            IdRol             = rolId,
                            IdSucursal        = info.IdSucursal,
                            IdEmpresa         = info.IdEmpresa,
                            IdNominaTipo      = IdNomina_General,
                            IdNominaTipoLiqui = IdNomina_TipoLiqui_PagoUtilidad,
                            Cerrado           = "N",
                            Descripcion       = "PAGO DE UTILIDA " + info.IdPeriodo.ToString(),
                            UsuarioIngresa    = info.UsuarioIngresa,
                            FechaIngresa      = DateTime.Now
                        });
                    }
                    else
                    {
                        Entity_rol.Observacion   = "PAGO DE UTILIDA " + info.IdPeriodo.ToString();
                        Entity_rol.FechaModifica = DateTime.Now;
                        rolId = Entity_rol.IdRol;
                        var rol_detalle = Context.ro_rol_detalle.Where(s => s.IdEmpresa == info.IdEmpresa && s.IdRol == Entity_rol.IdRol);
                        Context.ro_rol_detalle.RemoveRange(rol_detalle);
                    }

                    #region INSERTANDO ROL DETALLE
                    var utilidad_detalle = Context.ro_participacion_utilidad_empleado.Where(s => s.IdEmpresa == info.IdEmpresa && s.IdUtilidad == info.IdUtilidad);
                    Context.ro_participacion_utilidad_empleado.RemoveRange(utilidad_detalle);


                    foreach (var item in info.detalle)// LISTADO DE EMPLEADOS CON BENEFICIOS DE UTILIDAS
                    {
                        double TotalEgreso = 0;
                        // DIAS TRABAJADOS
                        Context.ro_rol_detalle.Add(new ro_rol_detalle
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdRol               = rolId,
                            IdEmpleado          = item.IdEmpleado,
                            IdRubro             = RubrosCalculados.IdRubro_dias_trabajados,
                            Observacion         = " ",
                            IdSucursal          = item.IdSucursal,
                            rub_visible_reporte = true,
                            Orden               = 0,
                            Valor               = item.DiasTrabajados
                        });
                        // TOTAL DE UTILIDAD
                        Context.ro_rol_detalle.Add(new ro_rol_detalle
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdRol               = rolId,
                            IdEmpleado          = item.IdEmpleado,
                            IdRubro             = RubrosCalculados.IdRubro_utilidad,
                            Observacion         = " ",
                            IdSucursal          = item.IdSucursal,
                            rub_visible_reporte = true,
                            Orden               = 0,
                            Valor               = item.ValorTotal
                        });
                        // TOTAL DE INGRESO
                        Context.ro_rol_detalle.Add(new ro_rol_detalle
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdRol               = rolId,
                            IdEmpleado          = item.IdEmpleado,
                            IdRubro             = RubrosCalculados.IdRubro_tot_ing,
                            Observacion         = " ",
                            IdSucursal          = item.IdSucursal,
                            rub_visible_reporte = true,
                            Orden               = 0,
                            Valor               = item.ValorTotal
                        });

                        #region Novedades y prestamos POR EMPLEADO
                        string sql = "";
                        sql = "  SELECT  n.IdEmpresa, n.IdEmpleado,IdSucursal, nd.IdRubro,sum( nd.Valor)Valor " +
                              "FROM dbo.ro_empleado_Novedad AS n INNER JOIN " +
                              "dbo.ro_empleado_novedad_det AS nd ON n.IdEmpresa = nd.IdEmpresa AND n.IdNovedad = nd.IdNovedad " +
                              "where nd.EstadoCobro = 'PEN' and n.IdEmpresa='" + info.IdEmpresa + "' and IdNomina_Tipo=" + param.IdNomina_General + " and n.IdNomina_TipoLiqui=" + param.IdNomina_TipoLiqui_PagoUtilidad + "" +
                              "and  nd.FechaPago between '" + fi.ToString("yyyy-MM-dd") + "'  and '" + ff.ToString("yyyy-MM-dd") + "'" +
                              " and n.IdEmpleado='" + item.IdEmpleado + "'" +
                              "GROUP BY n.IdEmpresa, n.IdEmpleado,IdSucursal, nd.IdRubro, nd.Valor " +
                              "union all " +
                              "SELECT p.IdEmpresa, p.IdEmpleado,IdSucursal, p.IdRubro, pd.TotalCuota " +
                              "FROM dbo.ro_prestamo AS p INNER JOIN " +
                              " dbo.ro_prestamo_detalle AS pd ON p.IdEmpresa = pd.IdEmpresa AND p.IdPrestamo = pd.IdPrestamo INNER JOIN " +
                              " dbo.ro_empleado AS e ON p.IdEmpresa = e.IdEmpresa AND p.IdEmpleado = e.IdEmpleado " +
                              " where pd.EstadoPago = 'PEN' and p.IdEmpresa='" + info.IdEmpresa + "' and descuento_ben_soc='1' and pd.IdNominaTipoLiqui=" + param.IdNomina_TipoLiqui_PagoUtilidad + "" +
                              " and  pd.FechaPago between '" + fi.ToString("yyyy-MM-dd") + "'  and '" + ff.ToString("yyyy-MM-dd") + "'" +
                              " and p.IdEmpleado='" + item.IdEmpleado + "'" +
                              " GROUP BY p.IdEmpresa, p.IdEmpleado,e.IdSucursal, pd.TotalCuota, p.IdRubro";
                        var lstNovedades = Context.Database.SqlQuery <ro_empleado_novedad_det_Info>(sql).ToList();
                        foreach (var item_ in lstNovedades)
                        {
                            Context.ro_rol_detalle.Add(new ro_rol_detalle
                            {
                                IdEmpresa           = info.IdEmpresa,
                                IdRol               = rolId,
                                IdEmpleado          = item_.IdEmpleado,
                                IdRubro             = item_.IdRubro,
                                Observacion         = " ",
                                IdSucursal          = item_.IdSucursal,
                                rub_visible_reporte = true,
                                Orden               = 0,
                                Valor               = item_.Valor
                            });
                        }
                        #endregion

                        #region Total de egreso por empleado
                        var lst_total_egreso = lstNovedades.GroupBy(c => new
                        {
                            c.IdEmpleado,
                            c.IdSucursal
                        })
                                               .Select(x => new
                        {
                            IdEmpleado = x.Key.IdEmpleado,
                            IdSucursal = x.Key.IdSucursal,
                            Valor      = x.Sum(y => y.Valor)
                        }).ToList();
                        foreach (var item_egr in lst_total_egreso)
                        {
                            TotalEgreso = item_egr.Valor;
                            Context.ro_rol_detalle.Add(new ro_rol_detalle
                            {
                                IdEmpresa           = info.IdEmpresa,
                                IdRol               = rolId,
                                IdEmpleado          = item_egr.IdEmpleado,
                                IdRubro             = RubrosCalculados.IdRubro_tot_egr,
                                Observacion         = " ",
                                IdSucursal          = item_egr.IdSucursal,
                                rub_visible_reporte = true,
                                Orden               = 0,
                                Valor               = item_egr.Valor
                            });
                        }
                        #endregion

                        #region liquido a recibir en rol
                        Context.ro_rol_detalle.Add(new ro_rol_detalle
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdRol               = rolId,
                            IdEmpleado          = item.IdEmpleado,
                            IdRubro             = RubrosCalculados.IdRubro_tot_pagar,
                            Observacion         = " ",
                            IdSucursal          = item.IdSucursal,
                            rub_visible_reporte = true,
                            Orden               = 0,
                            Valor               = item.ValorTotal - TotalEgreso
                        });
                        #endregion

                        #region detalle de utilidad
                        ro_participacion_utilidad_empleado Entity_det = new ro_participacion_utilidad_empleado
                        {
                            IdEmpresa          = info.IdEmpresa,
                            IdUtilidad         = info.IdUtilidad,
                            IdEmpleado         = item.IdEmpleado,
                            CargasFamiliares   = item.CargasFamiliares,
                            ValorCargaFamiliar = item.ValorCargaFamiliar,
                            ValorIndividual    = item.ValorIndividual,
                            ValorTotal         = item.ValorTotal,
                            DiasTrabajados     = item.DiasTrabajados,
                            Descuento          = TotalEgreso,
                            NetoRecibir        = (item.ValorTotal - TotalEgreso)
                        };
                        Context.ro_participacion_utilidad_empleado.Add(Entity_det);
                        #endregion



                        #endregion
                    }


                    #endregion

                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception e)
            {
                throw;
            }
        }