Пример #1
0
        /// <summary>
        /// Método que permite cambiar el estado de un registro
        /// </summary>
        /// <param name="id_usuario">>Permite Identificar al ultimo usuario que realizo acciones sobre el registro</param>
        /// <returns></returns>
        public RetornoOperacion DeshabilitarDetalleNominaEmpleado(int id_usuario)
        {
            //Creación del objeto retorno
            RetornoOperacion retorno = new RetornoOperacion();

            //Declarando Variable Auxiliar
            int idDetaleNominaEmpleado = 0;

            //Declarando Bloque Transaccional
            using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Instanciando Nómina Empleado
                using (NominaEmpleado ne = new NominaEmpleado(this._id_nomina_empleado))
                {
                    //Validando que exista la Nomina
                    if (ne.habilitar)
                    {
                        //Validando que no Exista el Comprobante
                        if (ne.id_comprobante == 0)
                        {
                            //Invoca y retrona el método editarDEtalleNominaempleado
                            retorno = this.editarDetalleNominaEmpleado(this._id_nomina_empleado, this.id_tipo_pago, this.importe_gravado, this.importe_exento, id_usuario, false);

                            //Validando Operación Exitosa
                            if (retorno.OperacionExitosa)
                            {
                                //Asignando Valor
                                idDetaleNominaEmpleado = retorno.IdRegistro;

                                //Obteniendo Totales
                                using (DataTable dtTotalesEmpleado = NominaEmpleado.ObtieneTotalesEmpleado(this._id_nomina_empleado))
                                {
                                    //Validando que existen los Registros
                                    if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtTotalesEmpleado))
                                    {
                                        //Inicializando Ciclo
                                        foreach (DataRow dr in dtTotalesEmpleado.Rows)
                                        {
                                            //Actualizando Totales de Nomina de Empleado
                                            retorno = ne.ActualizaTotalesNominaEmpleado(Convert.ToDecimal(dr["TotalGravadoPercepcion"]), Convert.ToDecimal(dr["TotalGravadoDeduccion"]),
                                                                                        Convert.ToDecimal(dr["TotalExentoPercepcion"]), Convert.ToDecimal(dr["TotalExentoDeduccion"]), id_usuario);
                                            break;
                                        }

                                        //Validando que la Operación fue Exitosa
                                        if (retorno.OperacionExitosa)
                                        {
                                            //Instanciando Detalle en Retorno
                                            retorno = new RetornoOperacion(idDetaleNominaEmpleado);

                                            //Completando Transacción
                                            trans.Complete();
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            //Instanciando Excepción
                            retorno = new RetornoOperacion("La Nómina del Empleado ya ha sido Timbrada, Imposible su Edición");
                        }
                    }
                    else
                    {
                        //Instanciando Excepción
                        retorno = new RetornoOperacion("No se puede Acceder a la Nómina del Empleado");
                    }
                }
            }

            //Retorna al método el objeto retorno
            return(retorno);
        }
Пример #2
0
        /// <summary>
        /// Método encargado de Copiar la Nomina
        /// </summary>
        /// <param name="id_usuario">Usuario que actualiza el Registro</param>
        /// <returns></returns>
        public RetornoOperacion CopiaNomina(int id_usuario)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion result = new RetornoOperacion();

            //Declarando Variables Auxiliares
            int idNomina = 0, idNominaEmpleado = 0;

            //Declarando Ambiente Transaccional
            using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Armando Arreglo de Parametros
                object[] param = { 1,                               0, this._id_compania_emisora,                     0, this._id_nomina, null, null, null, null,
                                   this._dias_pago, this._id_sucursal, this._id_periodicidad_pago, this._id_metodo_pago, id_usuario,      true, "",   "" };

                //Ejecutando SP
                result = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param);

                //Validando Operación Correcta
                if (result.OperacionExitosa)
                {
                    //Guardando Nomina
                    idNomina = result.IdRegistro;

                    //Obteniendo Nominas de Empleado
                    using (DataTable dtNominaEmpleado = NominaEmpleado.ObtieneNominasEmpleado(this._id_nomina))
                    {
                        //Validando que Existen Nominas
                        if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtNominaEmpleado))
                        {
                            //Iniciando Ciclo de Nomina de Empleados
                            foreach (DataRow drNE in dtNominaEmpleado.Rows)
                            {
                                //Instanciando Nomina de Empleado
                                using (NominaEmpleado ne = new NominaEmpleado(Convert.ToInt32(drNE["Id"])))
                                {
                                    //Validando que existe el Registro
                                    if (ne.habilitar)
                                    {
                                        //Insertando Nomina de Empleado
                                        result = NominaEmpleado.InsertaNominaEmpleado(idNomina, ne.id_empleado, 0, 0, ne.total_gravado_percepcion, ne.total_gravado_deduccion,
                                                                                      ne.total_exento_percepcion, ne.total_exento_deduccion, ne.total_percepcion, ne.total_deduccion, id_usuario);

                                        //Validando Operación Correcta
                                        if (result.OperacionExitosa)
                                        {
                                            //Guardando Nomina
                                            idNominaEmpleado = result.IdRegistro;

                                            //Obteniendo Detalles
                                            using (DataTable dtDetallesEmp = DetalleNominaEmpleado.ObtieneDetalleNominaEmpleado(ne.id_nomina_empleado))
                                            {
                                                //Validando que Existen Nominas
                                                if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtDetallesEmp))
                                                {
                                                    //Iniciando Ciclo de Detalle
                                                    foreach (DataRow drDE in dtDetallesEmp.Rows)
                                                    {
                                                        //Instanciando Detalle
                                                        using (DetalleNominaEmpleado dne = new DetalleNominaEmpleado(Convert.ToInt32(drDE["Id"])))
                                                        {
                                                            //Validando Registro
                                                            if (dne.habilitar)
                                                            {
                                                                //Insertando Detalle
                                                                result = DetalleNominaEmpleado.InsertarDetalleNominaEmpleado(idNominaEmpleado, dne.id_tipo_pago,
                                                                                                                             dne.importe_gravado, dne.importe_exento, id_usuario);

                                                                //Si la Operación no fue Exitosa
                                                                if (!result.OperacionExitosa)
                                                                {
                                                                    //Terminando Ciclo
                                                                    break;
                                                                }
                                                            }
                                                            else
                                                            {
                                                                //Instanciando Nomina
                                                                result = new RetornoOperacion("No Existe el Detalle de la Nomina");

                                                                //Terminando Ciclo
                                                                break;
                                                            }
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    //Instanciando Nomina
                                                    result = new RetornoOperacion(idNomina);
                                                }
                                            }

                                            //Operación Exitosa
                                            if (result.OperacionExitosa)
                                            {
                                                //Obteniendo Detalles
                                                using (DataTable dtNominaOtrosEmp = NominaOtros.ObtieneNominaOtros(ne.id_nomina_empleado))
                                                {
                                                    //Validando que Existen Nominas
                                                    if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtNominaOtrosEmp))
                                                    {
                                                        //Iniciando Ciclo de Detalle
                                                        foreach (DataRow drNO in dtNominaOtrosEmp.Rows)
                                                        {
                                                            //Instanciando Nomina Otros
                                                            using (NominaOtros no = new NominaOtros(Convert.ToInt32(drNO["Id"])))
                                                            {
                                                                //Validando Registro
                                                                if (no.habilitar)
                                                                {
                                                                    //Insertando Detalle
                                                                    result = NominaOtros.InsertarNominaOtros(idNominaEmpleado, (NominaOtros.TipoNominaOtros)no.id_tipo, no.dias, (NominaOtros.SubTipo)no.id_subtipo, no.importe_gravado, no.importe_exento, no.cantidad, id_usuario);

                                                                    //Si la Operación no fue Exitosa
                                                                    if (!result.OperacionExitosa)
                                                                    {
                                                                        //Terminando Ciclo
                                                                        break;
                                                                    }
                                                                }
                                                                else
                                                                {
                                                                    //Instanciando Nomina
                                                                    result = new RetornoOperacion("No Existe la Nomina de Otros");

                                                                    //Terminando Ciclo
                                                                    break;
                                                                }
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        //Instanciando Nomina
                                                        result = new RetornoOperacion(idNomina);
                                                    }
                                                }
                                            }
                                        }
                                        else
                                        {
                                            //Terminando Ciclo
                                            break;
                                        }
                                    }
                                    else
                                    {
                                        //Instanciando Nomina
                                        result = new RetornoOperacion("No Existe la Nómina del Empleado");

                                        //Terminando Ciclo
                                        break;
                                    }
                                }
                            }
                        }
                        else
                        {
                            //Instanciando Nomina
                            result = new RetornoOperacion(idNomina);
                        }

                        //Validando Operaciones
                        if (result.OperacionExitosa)
                        {
                            //Instanciando Nomina
                            result = new RetornoOperacion(idNomina);

                            //Completando Transacción
                            trans.Complete();
                        }
                    }
                }
            }

            //Devolviendo Resultado Obtenido
            return(result);
        }
Пример #3
0
        /// <summary>
        /// Método que permite insertar los campos de un registro detalle nomina empleado
        /// </summary>
        /// <param name="id_nomina_empleado">Permite insertar el identificador de nomina de un empleado</param>
        /// <param name="id_tipo_pago">Permite insertar el tipo de pago de nomina</param>
        /// <param name="importe_gravado">Pemite insertat la cantidad monetaria de impueto gravado</param>
        /// <param name="importe_exento">Pemite insertar la cantidad monetaria de impueto exento</param>
        /// <param name="id_usuario">Permite insertar al usuario que realizo el registro</param>
        /// <returns></returns>
        public static RetornoOperacion InsertarDetalleNominaEmpleado(int id_nomina_empleado, int id_tipo_pago, decimal importe_gravado, decimal importe_exento, int id_usuario)
        {
            //Creación del objeto retorno
            RetornoOperacion retorno = new RetornoOperacion();

            //Declarando Variable Auxiliar
            int idDetaleNominaEmpleado = 0;

            //Declarando Bloque Transaccional
            using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Instanciando Nómina Empleado
                using (NominaEmpleado ne = new NominaEmpleado(id_nomina_empleado))
                {
                    //Validando que exista la Nomina
                    if (ne.habilitar)
                    {
                        //Validando que no Exista el Comprobante
                        if (ne.id_comprobante == 0)
                        {
                            //Creación del arreglo que almacena los parametros de actualización del registro
                            object[] param = { 1, 0, id_nomina_empleado, id_tipo_pago, importe_gravado, importe_exento, id_usuario, true, "", "" };

                            //Asigna al objeto retorno el arreglo y el atributo con el nombre del sp, necesarios para hacer la transacciones a la base de datos.
                            retorno = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(nom_sp, param);

                            //Validando Operación Exitosa
                            if (retorno.OperacionExitosa)
                            {
                                //Asignando Valor
                                idDetaleNominaEmpleado = retorno.IdRegistro;

                                //Obteniendo Totales
                                using (DataTable dtTotalesEmpleado = NominaEmpleado.ObtieneTotalesEmpleado(id_nomina_empleado))
                                {
                                    //Validando que existen los Registros
                                    if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtTotalesEmpleado))
                                    {
                                        //Inicializando Ciclo
                                        foreach (DataRow dr in dtTotalesEmpleado.Rows)
                                        {
                                            //Actualizando Totales de Nomina de Empleado
                                            retorno = ne.ActualizaTotalesNominaEmpleado(Convert.ToDecimal(dr["TotalGravadoPercepcion"]), Convert.ToDecimal(dr["TotalGravadoDeduccion"]),
                                                                                        Convert.ToDecimal(dr["TotalExentoPercepcion"]), Convert.ToDecimal(dr["TotalExentoDeduccion"]), id_usuario);
                                            break;
                                        }

                                        //Validando que la Operación fue Exitosa
                                        if (retorno.OperacionExitosa)
                                        {
                                            //Instanciando Detalle en Retorno
                                            retorno = new RetornoOperacion(idDetaleNominaEmpleado);

                                            //Completando Transacción
                                            trans.Complete();
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            //Instanciando Excepción
                            retorno = new RetornoOperacion("La Nómina del Empleado ya ha sido Timbrada, Imposible su Edición");
                        }
                    }
                    else
                    {
                        //Instanciando Excepción
                        retorno = new RetornoOperacion("No se puede Acceder a la Nómina del Empleado");
                    }
                }
            }

            //Retorna al método el objeto retorno
            return(retorno);
        }
Пример #4
0
        /// <summary>
        /// Método encargado de Deshabilitar la Nomina
        /// </summary>
        /// <param name="id_usuario">Usuario que actualiza el Registro</param>
        /// <returns></returns>
        public RetornoOperacion DeshabilitaNomina(int id_usuario)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion result = new RetornoOperacion();

            //Declarando Ambiente Transaccional
            using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Validando Nomina Timbrada
                result = this.validaNominaTimbrada(this._id_nomina);

                //Operación Exitosa?
                if (!result.OperacionExitosa)
                {
                    //Obteniendo Nomina de Empleados
                    using (DataTable dtNominasEmpleado = NominaEmpleado.ObtieneNominasEmpleado(this._id_nomina))
                    {
                        //Validando que existan Nominas de Empleados
                        if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtNominasEmpleado))
                        {
                            //Recorriendo Nomina de Empleados
                            foreach (DataRow dr in dtNominasEmpleado.Rows)
                            {
                                //Instanciando Nomina de Empleados
                                using (NominaEmpleado ne = new NominaEmpleado(Convert.ToInt32(dr["Id"])))
                                {
                                    //Validando que exista el Registro
                                    if (ne.habilitar)
                                    {
                                        //Deshabilitando Nomina de Empleado
                                        result = ne.DeshabilitaNominaEmpleado(id_usuario);

                                        //Si la Operación no fue Correcta
                                        if (!result.OperacionExitosa)
                                        {
                                            //Terminando Ciclo
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            //Instanciando Nomina
                            result = new RetornoOperacion(this._id_nomina);
                        }
                    }

                    //Validando Operación
                    if (result.OperacionExitosa)
                    {
                        //Devolviendo Resultado Obtenido
                        result = this.actualizaAtributosBD(this._id_compania_emisora, this._no_consecutivo, this._id_nomina_origen, this._fecha_pago, this._fecha_inicio_pago, this._fecha_fin_pago,
                                                           this._fecha_nomina, this._dias_pago, this._id_sucursal, this._id_periodicidad_pago, this._id_metodo_pago, id_usuario, false);

                        //Validando Operación
                        if (result.OperacionExitosa)
                        {
                            //Completando Transacción
                            trans.Complete();
                        }
                    }
                }
                else
                {
                    //Instanciando Excepción
                    result = new RetornoOperacion(result.Mensaje);
                }
            }

            //Devolviendo Resultado Obtenido
            return(result);
        }