예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }