/// <summary> /// Deshabilita todos los documentos ligados a la HI indicada /// </summary> /// <param name="id_hoja_instruccion">Id de Hoja de Instrucciones</param> /// <param name="id_usuario">Id de Usuario</param> /// <returns></returns> public static RetornoOperacion DeshabilitaHojaInstruccionDocumentos(int id_hoja_instruccion, int id_usuario) { //Definiendo objeto de resultado RetornoOperacion resultado = new RetornoOperacion(id_hoja_instruccion); //Cargando documentos using (DataTable mitDoc = ObtieneHojaInstruccionDocumentos(id_hoja_instruccion)) { //Si existen resultados if (Validacion.ValidaOrigenDatos(mitDoc)) { //Para cada uno de los registros foreach (DataRow d in mitDoc.Rows) { //instanciando registro using (HojaInstruccionDocumento hid = new HojaInstruccionDocumento(Convert.ToInt32(d["Id"]))) { //Si el registro existe if (hid.id_hoja_instruccion_documento > 0) { //Deshabilitando Documento resultado = hid.DeshabilitaHojaInstruccionDocumento(id_usuario); } else { resultado = new RetornoOperacion(string.Format("Documento 'ID: {0}' no encontrado.", Convert.ToInt32(d["Id"]))); } } //Si existe error if (!resultado.OperacionExitosa) { //Saliendo de ciclo break; } } } } //Devolviendo resultado return(resultado); }
/// <summary> /// Método Público encargado de Deshabilitar la HI y sus dependencias (documentos y accesorios) /// </summary> /// <param name="id_usuario">Id de Usuario</param> /// <returns></returns> public RetornoOperacion DeshabilitaHojaInstruccionCascada(int id_usuario) { //Definiendo objeto de resultado (sin errores) RetornoOperacion resultado = new RetornoOperacion(this._id_hoja_instruccion); //Creamos la transacción using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Deshabilitando documentos resultado = HojaInstruccionDocumento.DeshabilitaHojaInstruccionDocumentos(this._id_hoja_instruccion, id_usuario); //Si no existen errores if (resultado.OperacionExitosa) { //Deshabilitando accesorios resultado = HojaInstruccionAccesorio.DeshabilitaHojaInstruccionAccesorios(this._id_hoja_instruccion, id_usuario); } //Si no hay errores if (resultado.OperacionExitosa) { //Deshabilitando HI resultado = DeshabilitaHojaInstruccion(id_usuario); } //Validamos Resultado if (resultado.OperacionExitosa) { //Validamos Transacción scope.Complete(); } } //Devolviendo resultado return(resultado); }
/// <summary> /// Realiza la copia /// </summary> /// <param name="id_hoja_instruccion_original">Id de HI a copiar</param> /// <param name="descripcion_hoja_instruccion">Descripción de la Hoja de Instrucción</param> /// <param name="id_compania_emisor">Id de Compania del Emisor</param> /// <param name="id_cliente_receptor">Id de Cliente del Receptor</param> /// <param name="id_remitente">Id del Remitente</param> /// <param name="id_destinatario">Id del Destinatario</param> /// <param name="id_terminal_cobro">Id de la Terminal de Cobro</param> /// <param name="id_usuario">Id de Usuario</param> /// <returns></returns> public static RetornoOperacion CopiaHojaInstruccion(int id_hoja_instruccion_original, string descripcion_hoja_instruccion, int id_compania_emisor, int id_cliente_receptor, int id_remitente, int id_destinatario, int id_terminal_cobro, int id_usuario) { //Declarando objeto de resultado RetornoOperacion resultado = new RetornoOperacion(); //Creamos la transacción using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Realizando la inserción del nuevo registro HI resultado = InsertarHojaInstruccion(descripcion_hoja_instruccion, id_compania_emisor, id_cliente_receptor, id_remitente, id_destinatario, id_terminal_cobro, id_usuario); //Conservando Id de registro int id_hoja_instruccion_copia = resultado.IdRegistro; //Si no existe ningún error if (resultado.OperacionExitosa) { //Cargando Documentos de la HI using (DataTable documentos = HojaInstruccionDocumento.ObtieneHojaInstruccionDocumentos(id_hoja_instruccion_original)) { //SI existen registros que copiar if (Validacion.ValidaOrigenDatos(documentos)) { //Para cada uno de los documentos foreach (DataRow d in documentos.Rows) { //Insertando un nuevo documento a la nueva HI resultado = HojaInstruccionDocumento.InsertarHojaInstruccionDocumento(id_hoja_instruccion_copia, Convert.ToInt32(d["IdTipoDocumento"]), Convert.ToBoolean(d["*Evidencia"]), Convert.ToInt32(d["IdTipoEvento"]), Convert.ToInt32(d["IdRecepcionEntrega"]), Convert.ToInt32(d["IdCopiaOriginal"]), Convert.ToBoolean(d["*Sello"]), d["Observacion"].ToString(), id_usuario); //Si existe error if (!resultado.OperacionExitosa) { //Saliendo del ciclo break; } } //Si no existen errores if (resultado.OperacionExitosa) { //Cargando accesorios using (DataTable accesorios = HojaInstruccionAccesorio.ObtieneHojaInstruccionAccesorios(id_hoja_instruccion_original)) { //SI existen registros que copiar if (Validacion.ValidaOrigenDatos(accesorios)) { //Para cada uno de los accesorios foreach (DataRow a in accesorios.Rows) { //Insertando un nuevo documento a la nueva HI resultado = HojaInstruccionAccesorio.InsertarHojaInstruccionAccesorio(id_hoja_instruccion_copia, Convert.ToInt32(a["IdAccesorio"]), Convert.ToInt32(a["IdTipoEvento"]), a["Observacion"].ToString(), id_usuario); //Si existe error if (!resultado.OperacionExitosa) { //Saliendo del ciclo break; } } } } } } } } //Validamos Resultado if (resultado.OperacionExitosa) { //Reasignando Id de HI al resultado resultado = new RetornoOperacion(id_hoja_instruccion_copia); //Validamos Transacción scope.Complete(); } } //Devolviendo resultado return(resultado); }