예제 #1
0
        /// <summary>
        /// Método encargado de Insertar los Detalles del Proceso de Paquetes
        /// </summary>
        /// <param name="id_paquete_proceso">Proceso del Paquete</param>
        /// <param name="id_facturado">Factura</param>
        /// <param name="id_facturado_detalle">Detalle de la Factura</param>
        /// <param name="no_entregado">Indicador de Entrega</param>
        /// <param name="rechazado">Indicador de Rechazo</param>
        /// <param name="fecha_actualizacion">Fecha de Actualización</param>
        /// <param name="observacion">Observación</param>
        /// <param name="id_usuario">Usuario que actualiza el Registro</param>
        /// <returns></returns>
        public static RetornoOperacion InsertaPaqueteProcesoDetalle(int id_paquete_proceso, int id_facturado, int id_facturado_detalle, bool no_entregado, bool rechazado,
                                                                    DateTime fecha_actualizacion, string observacion, int id_usuario)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion result = new RetornoOperacion();

            //Armando Arreglo de Parametros
            object[] param = { 1,                                                                      0, id_paquete_proceso, id_facturado, id_facturado_detalle, no_entregado, rechazado,
                               TSDK.Base.Fecha.ConvierteDateTimeObjeto(fecha_actualizacion), observacion, id_usuario,         true,         "",                   "" };

            //Validando la Factura y el Concepto
            if (!PaqueteProcesoDetalle.ValidaFacturaConcepto(id_facturado, id_facturado_detalle))
            {
                //Realizando Actualización
                result = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param);
            }
            else
            {
                //Instanciando Excepción
                result = new RetornoOperacion("La Factura y/o Concepto no estan Disponibles");
            }

            //Devolviendo Resultado Obtenido
            return(result);
        }
예제 #2
0
        /// <summary>
        /// Método encargado de Deshabilitar el Proceso del Paquete
        /// </summary>
        /// <param name="id_usuario">Usuario que Actualiza el Registro</param>
        /// <returns></returns>
        public RetornoOperacion DeshabilitaPaqueteProceso(int id_usuario)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion result = new RetornoOperacion();

            //Inicializando Bloque Transaccional
            using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Deshabilitando Registro
                result = this.actualizaRegistros((TipoProceso)this._id_tipo_proceso, (Estatus)this._id_estatus, this._id_compania, this._consecutivo_compania, this._id_cliente, this._fecha_inicio,
                                                 this._fecha_fin, this._id_usuario_responsable, this._referencia, id_usuario, false);

                //Validando Operación
                if (result.OperacionExitosa)
                {
                    //Obteniendo Paquete
                    int id_paquete = result.IdRegistro;

                    //Obteniendo Detalles
                    using (DataTable dtDetallesPaquete = SAT_CL.Facturacion.PaqueteProcesoDetalle.ObtieneFacturacionPaqueteProceso(this._id_paquete_proceso))
                    {
                        //Validando que Existan Detalles
                        if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtDetallesPaquete))
                        {
                            //Recorriendo Detalles
                            foreach (DataRow dr in dtDetallesPaquete.Rows)
                            {
                                //Instanciando Paquete
                                using (PaqueteProcesoDetalle ppd = new PaqueteProcesoDetalle(Convert.ToInt32(dr["Id"])))
                                {
                                    //Validando que Exista el Detalle
                                    if (ppd.id_paquete_proceso_detalle > 0)
                                    {
                                        //Deshabilitando Detalle
                                        result = ppd.DeshabilitaPaqueteProcesoDetalle(id_usuario);

                                        //Validando que la Operación no se haya Cumplido
                                        if (!result.OperacionExitosa)
                                        {
                                            //Terminando Ciclo
                                            break;
                                        }
                                    }
                                    else
                                    {
                                        //Instanciando Excepción
                                        result = new RetornoOperacion("No Existe el Detalle");
                                    }
                                }
                            }
                        }
                        else
                        {
                            //Instanciando Excepción
                            result = new RetornoOperacion(id_paquete);
                        }
                    }

                    //Validando Operación
                    if (result.OperacionExitosa)
                    {
                        //Instanciando Registro
                        result = new RetornoOperacion(id_paquete);

                        //Completando Transacción
                        trans.Complete();
                    }
                }
            }
            //Devolviendo Resultado Obtenido
            return(result);
        }