Esempio n. 1
0
        /// <summary>
        /// Método encargado de Actualizar los Atributos en BD
        /// </summary>
        /// <param name="id_compania_emisora">Compania Emisora</param>
        /// <param name="no_consecutivo">No. Consecutivo por Compania</param>
        /// <param name="id_nomina_origen">Nomina de Origen</param>
        /// <param name="version">Versión de la Nómina</param>
        /// <param name="id_tipo_nomina">Tipo de Nómina (Oridnaria, Extraordinaria)</param>
        /// <param name="fecha_pago">Fecha de Pago</param>
        /// <param name="fecha_inicial_pago">Fecha de Inicio del Pago</param>
        /// <param name="fecha_final_pago">Fecha de de Fin del Pago</param>
        /// <param name="fecha_nomina">Fecha de Nomina</param>
        /// <param name="dias_pago">Dias de Pago</param>
        /// <param name="id_sucursal">Sucursal</param>
        /// <param name="id_periodicidad_pago">Periodicidad de Pago(Quincenal, Semanal, Mensual, etc...)</param>
        /// <param name="id_metodo_pago">Método de Pago(Efectivo, Transferencia, Cheque, etc...)</param>
        /// <param name="id_usuario">Usuario que actualiza el Registro</param>
        /// <returns></returns>
        public RetornoOperacion EditaNomina(int id_compania_emisor, int no_consecutivo, int id_nomina_origen, string version, byte id_tipo_nomina, DateTime fecha_pago, DateTime fecha_inicial_pago, DateTime fecha_final_pago, DateTime fecha_nomina, decimal dias_pago, int id_sucursal, byte id_periodicidad_pago, byte id_metodo_pago, int id_usuario)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion result = new RetornoOperacion();
            //Obtenemos Valores
            string RegistroPatronal = Global.Referencia.CargaReferencia("0", 25, id_compania_emisor, "Recibo Nómina", "Registro Patronal");
            string Curp             = Global.Referencia.CargaReferencia("0", 25, id_compania_emisor, "Recibo Nómina", "Curp");
            string RfcPatron        = "";

            //Creamos la transacción
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Validando Nomina Timbrada
                result = this.validaNominaTimbrada(this._id_nomina);

                //Operación Exitosa?
                if (!result.OperacionExitosa)
                {
                    //Devolviendo Resultado Obtenido
                    result = this.actualizaAtributosBD(id_compania_emisor, no_consecutivo, id_nomina_origen, version, id_tipo_nomina, fecha_pago, fecha_inicial_pago, fecha_final_pago, fecha_nomina, dias_pago, id_sucursal, id_periodicidad_pago, id_metodo_pago, RegistroPatronal, Curp, RfcPatron, id_usuario, true);
                    //Validamos  Resultado
                    if (result.OperacionExitosa)
                    {
                        //Cargamos Empleado ligado a la Nómina
                        using (DataTable mit = NomEmpleado.ObtieneNominasEmpleadoRegistrados(this._id_nomina))
                        {
                            //Validamos Orifen de Datos
                            if (Validacion.ValidaOrigenDatos(mit))
                            {
                                //Recorremos Empleados
                                foreach (DataRow r in mit.Rows)
                                {
                                    //Actualizamos Tipo de Nómina
                                    result = NomEmpleado.ActualizaEncabezadoNominaEsquema(this._id_nomina, r.Field <int>("Id"), id_usuario);
                                }
                            }
                        }
                    }
                }
                else
                {
                    //Instanciando Excepción
                    result = new RetornoOperacion(result.Mensaje);
                }
                //Validamos Resultado
                if (result.OperacionExitosa)
                {
                    //Asignamos Valor de Resultado
                    result = new RetornoOperacion(this._id_nomina, result.Mensaje, result.OperacionExitosa);
                    //Terminamos Transacción
                    scope.Complete();
                }
            }
            //Devolviendo Resultado Obtenido
            return(result);
        }
Esempio n. 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 = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                string   RegistroPatronal = Global.Referencia.CargaReferencia("0", 25, id_compania_emisor, "Recibo Nómina", "Registro Patronal");
                string   Curp             = Global.Referencia.CargaReferencia("0", 25, id_compania_emisor, "Recibo Nómina", "Curp");
                string   RfcPatron        = "";
                object[] param            = { 1, 0, this._id_compania_emisor, 0, 0, "1.2", this._id_tipo_nomina, null, null, null, null, this._dias_pago, this._id_sucursal, this._id_periodicidad_pago, this._id_metodo_pago, RegistroPatronal, Curp, RfcPatron, 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 = NomEmpleado.ObtieneIdsNominasEmpleado(this._id_nomina))
                    {
                        //Validando que Existen Nominas
                        if (Validacion.ValidaOrigenDatos(dtNominaEmpleado))
                        {
                            //Iniciando Ciclo de Nomina de Empleados
                            foreach (DataRow drNE in dtNominaEmpleado.Rows)
                            {
                                //Instanciando Nomina de Empleado
                                using (NomEmpleado ne = new NomEmpleado(Convert.ToInt32(drNE["Id"])))
                                {
                                    //Validando que existe el Registro
                                    if (ne.habilitar)
                                    {
                                        //Insertando Nomina de Empleado
                                        result = NomEmpleado.InsertaNominaEmpleado(idNomina, ne.id_empleado, id_usuario);
                                        //Validando Operación Correcta
                                        if (result.OperacionExitosa)
                                        {
                                            //Guardando Nomina
                                            idNominaEmpleado = result.IdRegistro;
                                            //Obteniendo los Encabezados Percepcion, Deduccion,Horas Extras, Incapacidades,
                                            using (DataTable dtDetallesEmp = EsquemaRegistro.ObtieneEncabezados(ne.id_nomina_empleado))
                                            {
                                                //Validando que Existen Nominas
                                                if (Validacion.ValidaOrigenDatos(dtDetallesEmp))
                                                {
                                                    //Iniciando Ciclo de Detalle
                                                    foreach (DataRow drDE in dtDetallesEmp.Rows)
                                                    {
                                                        //Instanciando Esquema Registro
                                                        using (EsquemaRegistro dne = new EsquemaRegistro(Convert.ToInt32(drDE["Id"])))
                                                        {
                                                            //Validando Registro
                                                            if (dne.habilitar)
                                                            {
                                                                //Insertando Detalle
                                                                result = EsquemaRegistro.InsertaEsquemaRegistro(dne.id_esquema, 0, idNominaEmpleado, dne.valor, dne.id_tabla_catalogo, dne.id_tipo_catalogo, dne.id_valor, id_usuario);
                                                                int id_registro_superior = result.IdRegistro;
                                                                //Validamos Resultado
                                                                if (result.OperacionExitosa)
                                                                {
                                                                    //Método encargado de Registrar Sub Nodos
                                                                    result = CopiaRegistroSuperior(id_usuario, idNominaEmpleado, dne.id_esquema_registro, id_registro_superior);
                                                                }
                                                                //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);
                                                }
                                            }
                                            //Ligamos Horas Extras
                                            if (result.OperacionExitosa)
                                            {
                                                //Instnacimoas Percepcion de Tipo Horas Extras
                                                using (EsquemaRegistro objEsquemaRegistro = new EsquemaRegistro(EsquemaRegistro.ObtieneIdEsquemaRegistro(Esquema.ObtieneIdEsquema(version, "TipoPercepcion", "Percepcion", "Percepciones"), idNominaEmpleado, "019")))
                                                {
                                                    //Obtiene Detalles Horas Extras
                                                    using (DataTable mitDetalles = EsquemaRegistro.ObtieneDetalleHorasExtras(idNominaEmpleado, 0))
                                                    {
                                                        //Validando que Existen Nominas
                                                        if (Validacion.ValidaOrigenDatos(mitDetalles))
                                                        {
                                                            //Iniciando Ciclo de Detalle
                                                            foreach (DataRow det in mitDetalles.Rows)
                                                            {
                                                                using (EsquemaRegistro objHorasExtras = new EsquemaRegistro(Convert.ToInt32(det["Id"])))
                                                                {
                                                                    //Validando Registro
                                                                    if (objHorasExtras.habilitar)
                                                                    {
                                                                        //Insertando Encabezado de Horas Extras
                                                                        result = objHorasExtras.EditaEsquemaRegistro(objHorasExtras.id_esquema, objEsquemaRegistro.id_esquema_superior, objHorasExtras.id_nomina_empleado, objHorasExtras.valor, objHorasExtras.id_tabla_catalogo, objHorasExtras.id_tipo_catalogo, objHorasExtras.id_valor, id_usuario);
                                                                        //Si la Operación no fue Exitosa
                                                                        if (!result.OperacionExitosa)
                                                                        {
                                                                            //Terminando Ciclo
                                                                            break;
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        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);
        }
Esempio n. 3
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 = 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 = NomEmpleado.ObtieneNominasEmpleadoRegistrados(this._id_nomina))
                    {
                        //Validando que existan Nominas de Empleados
                        if (Validacion.ValidaOrigenDatos(dtNominasEmpleado))
                        {
                            //Recorriendo Nomina de Empleados
                            foreach (DataRow dr in dtNominasEmpleado.Rows)
                            {
                                //Instanciando Nomina de Empleados
                                using (NomEmpleado ne = new NomEmpleado(Convert.ToInt32(dr["Id"])))
                                {
                                    //Validando que exista el Registro
                                    if (ne.habilitar)
                                    {
                                        //Deshabilitando Nomina de Empleado
                                        result = ne.DeshabilitaNomEmpleado(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_emisor, this._no_consecutivo, this._id_nomina_origen, this._version, this._id_tipo_nomina, this._fecha_pago, this._fecha_inicial_pago, this._fecha_final_pago, this._fecha_nomina, this._dias_pago, this._id_sucursal, this._id_periodicidad_pago, this._id_metodo_pago, this._registro_patronal, this._curp, this._rfc_patron, 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);
        }