/// <summary> /// Realiza el cambio de operador /// </summary> public RetornoOperacion CambiaOperador() { RetornoOperacion retorno = new RetornoOperacion(); //Creamos lita de registros List <KeyValuePair <string, byte[]> > registros = new List <KeyValuePair <string, byte[]> >(); //Creamos lista de errores List <string> errores = new List <string>(); //Verificando que el GridView contiene registros if (gvMovimientos.DataKeys.Count > 0) { //Obtiene filas seleccionadas GridViewRow[] selected_rows = Controles.ObtenerFilasSeleccionadas(gvMovimientos, "chkVarios"); //Verificando que existan filas seleccionadas if (selected_rows.Length != 0) { foreach (GridViewRow row in selected_rows) { gvMovimientos.SelectedIndex = row.RowIndex; using (DataTable dtAsignaciones = SAT_CL.Despacho.MovimientoAsignacionRecurso.CargaAsignaciones(Convert.ToInt32(gvMovimientos.SelectedDataKey["NoMovimiento"]), MovimientoAsignacionRecurso.Estatus.Terminado)) { if (Validacion.ValidaOrigenDatos(dtAsignaciones)) { List <DataRow> operadores = (from DataRow op in dtAsignaciones.AsEnumerable() where Convert.ToInt32(op["IdTipoAsignacion"]) == 2 select op).ToList(); if (operadores.Count > 0) { using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { foreach (DataRow dr in operadores) { using (SAT_CL.Despacho.MovimientoAsignacionRecurso mar = new SAT_CL.Despacho.MovimientoAsignacionRecurso(Convert.ToInt32(dr["Id"]))) { if (mar.habilitar) { retorno = mar.ActualizaOperadorMovimientoAsignacionRecurso(Convert.ToInt32((Cadena.RegresaCadenaSeparada(txtNuevoOpe.Text, "ID:", 1, "1"))), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); if (retorno.OperacionExitosa) { using (DataTable dtAnticipos = SAT_CL.EgresoServicio.DetalleLiquidacion.CargaAnticipos(Convert.ToInt32(gvMovimientos.SelectedDataKey["NoMovimiento"]))) { if (dtAnticipos != null) { if (Validacion.ValidaOrigenDatos(dtAnticipos)) { List <DataRow> depositos = (from DataRow dep in dtAnticipos.AsEnumerable() where Convert.ToInt32(dep["IdTabla"]) == 51 select dep).ToList(); if (depositos.Count > 0) { foreach (DataRow de in depositos) { using (SAT_CL.EgresoServicio.Deposito d = new SAT_CL.EgresoServicio.Deposito(Convert.ToInt32(de["IdRegistro"]))) { if (d.habilitar && d.objDetalleLiquidacion.habilitar) { retorno = d.objDetalleLiquidacion.ActualizaOperadorDetalleLiquidacion(Convert.ToInt32((Cadena.RegresaCadenaSeparada(txtNuevoOpe.Text, "ID:", 1, "1"))), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); if (retorno.OperacionExitosa) { if (!d.bit_efectivo) { using (CuentaBancos objCuentaBancos = CuentaBancos.ObtieneCuentaBanco(76, Convert.ToInt32((Cadena.RegresaCadenaSeparada(txtNuevoOpe.Text, "ID:", 1, "1"))), CuentaBancos.TipoCuenta.Default)) { retorno = d.EditaDepositoCuentaDestino(objCuentaBancos.id_cuenta_bancos, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); if (retorno.OperacionExitosa) { using (SAT_CL.Bancos.EgresoIngreso ei = new SAT_CL.Bancos.EgresoIngreso(51, Convert.ToInt32(de["IdRegistro"]))) { if (ei.habilitar) { retorno = ei.EditaCuentaDestino(objCuentaBancos.id_cuenta_bancos, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } } } } } } else { retorno = new RetornoOperacion("No hay depositos para este movimiento"); break; } } } } List <DataRow> vales = (from DataRow val in dtAnticipos.AsEnumerable() where Convert.ToInt32(val["IdTabla"]) == 69 select val).ToList(); if (vales.Count > 0) { foreach (DataRow va in vales) { using (SAT_CL.EgresoServicio.DetalleLiquidacion dl = new SAT_CL.EgresoServicio.DetalleLiquidacion(Convert.ToInt32(va["IdRegistro"]), 69)) { if (dl.habilitar) { retorno = dl.ActualizaOperadorDetalleLiquidacion(Convert.ToInt32((Cadena.RegresaCadenaSeparada(txtNuevoOpe.Text, "ID:", 1, "1"))), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); if (retorno.OperacionExitosa) { using (CuentaBancos objCuentaBancos = CuentaBancos.ObtieneCuentaBanco(76, Convert.ToInt32((Cadena.RegresaCadenaSeparada(txtNuevoOpe.Text, "ID:", 1, "1"))), CuentaBancos.TipoCuenta.Default)) { // retorno = d.EditaDepositoCuentaDestino(objCuentaBancos.id_cuenta_bancos, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //if (retorno.OperacionExitosa) //{ using (SAT_CL.Bancos.EgresoIngreso ei = new SAT_CL.Bancos.EgresoIngreso(51, Convert.ToInt32(va["IdRegistro"]))) { if (ei.habilitar) { retorno = ei.EditaCuentaDestino(objCuentaBancos.id_cuenta_bancos, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } } // } //} } } else { retorno = new RetornoOperacion("No hay vales para este movimiento"); break; } } } } } else { retorno = new RetornoOperacion("No hay anticipos para este movimiento"); break; } } //(retorno.OperacionExitosa) } } } else { retorno = new RetornoOperacion("No se puede recuperar la asignacion"); break; } } } if (retorno.OperacionExitosa) { trans.Complete(); } } } else { retorno = new RetornoOperacion("No hay operadores para este movimiento"); break; } } } } } } return(retorno); }
/// <summary> /// Metodo encargado de regresar los depositos a tesoreria /// </summary> public RetornoOperacion RegresaDeposito() { RetornoOperacion retorno = new RetornoOperacion(); //Creamos lista de registros List <KeyValuePair <string, byte[]> > registros = new List <KeyValuePair <string, byte[]> >(); //Creamos lista de errores List <string> errores = new List <string>(); //Verificando que el GridView contiene Registros if (gvDepositoTesoreria.DataKeys.Count > 0) {//Obtiene filas seleccionadas GridViewRow[] selected_rows = Controles.ObtenerFilasSeleccionadas(gvDepositoTesoreria, "chkVarios"); //Verificando que existan filas seleccionadas if (selected_rows.Length != 0) { //Almacenando Rutas en arreglo foreach (GridViewRow row in selected_rows) { //Instanciar Deposito a regresar a tesoreria gvDepositoTesoreria.SelectedIndex = row.RowIndex; using (SAT_CL.EgresoServicio.Deposito dep = new SAT_CL.EgresoServicio.Deposito(Convert.ToInt32(gvDepositoTesoreria.SelectedDataKey["Id"]))) { if (dep.id_deposito != 0) { using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { retorno = dep.RegresaDepositoTesoreria(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); if (retorno.OperacionExitosa) { using (SAT_CL.Bancos.EgresoIngreso ei = new SAT_CL.Bancos.EgresoIngreso(51, dep.id_deposito)) { retorno = ei.RegresaDeposito(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //SAT_CL.Bancos.EgresoIngreso if (retorno.OperacionExitosa) { //Obteniendo Referencias using (DataTable dtReferencias = SAT_CL.Global.Referencia.CargaReferencias(ei.id_egreso_ingreso, 101)) { //Validando que existan Referencias if (Validacion.ValidaOrigenDatos(dtReferencias)) { //Recorriendo Referencias foreach (DataRow dr in dtReferencias.Rows) { //Instanciando Referencia de Vencimiento using (SAT_CL.Global.Referencia ven = new SAT_CL.Global.Referencia(Convert.ToInt32(dr["Id"]))) { //Validando que exista if (ven.habilitar) { //Eliminando Referencia retorno = SAT_CL.Global.Referencia.EliminaReferencia(ven.id_referencia, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } } } } } } } if (retorno.OperacionExitosa) { trans.Complete(); ScriptServer.MuestraNotificacion(this.Page, retorno.Mensaje, ScriptServer.NaturalezaNotificacion.Exito, ScriptServer.PosicionNotificacion.AbajoDerecha); } } } } } } } //Devolviendo Resultado Obtenido return(retorno); }