/// <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); }
/// <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); }