Пример #1
0
        /// <summary>
        /// Método Público encargado de Insertar nuevos Registros
        /// </summary>
        /// <param name="id_servicio">Id de servicio</param>
        /// <param name="fecha_inicio">Fecha Inicio</param>
        /// <param name="id_usuario">Id de Usuario</param>
        /// <returns></returns>
        public static RetornoOperacion InsertaServicioControlEvidencia(int id_servicio, DateTime fecha_inicio, int id_usuario)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion resultado     = new RetornoOperacion();
            int idServicioControlEvidencia = 0;

            //Creamos la transacción
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Insertamos Servicio Control Evidencia

                //Declarando Arreglo de Parametros del SP
                object[] param = { 1,             0, id_servicio, (byte)EstatusServicioControlEvidencias.No_Recibidos, fecha_inicio, null,
                                   id_usuario, true, "",          "" };
                //Obteniendo Resultado del SP
                resultado = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param);

                //Asignamos IdServicioControlEvidencia
                idServicioControlEvidencia = resultado.IdRegistro;

                //Si se realizo la Insercción correctamente
                if (resultado.OperacionExitosa)
                {
                    //Cargamos Segmentos Obteniendo HI
                    using (DataTable mit = SegmentoCarga.CargaSegmentosObteniendoHI(id_servicio, id_usuario))
                    {
                        //Validamos Origen de Datos
                        if (Validacion.ValidaOrigenDatos(mit))
                        {
                            //Obtenemos cada uno de los Registros
                            foreach (DataRow r in mit.Rows)
                            {
                                //Si el resultado es exitoso
                                if (resultado.OperacionExitosa)
                                {
                                    //Insertamos Segmento Control Evidencia
                                    resultado = SegmentoControlEvidencia.InsertaSegmentoControlEvidencia(idServicioControlEvidencia, r.Field <int>("IdSegmento"), r.Field <int>("HI"), id_usuario);
                                }
                                else
                                {
                                    //Salimos del ciclo
                                    break;
                                }
                            }
                        }
                    }
                }
                //Validamos Resultado
                if (resultado.OperacionExitosa)
                {
                    //Validamos Transacción
                    scope.Complete();
                }
            }

            return(resultado);
        }
Пример #2
0
        /// <summary>
        /// Método Público encargado de la Insercion de los Registros
        /// </summary>
        /// <param name="id_servicio_control_evidencia">Id Sevicio Control de Evidencia</param>
        /// <param name="id_servicio">Id de Servcio</param>
        /// <param name="id_segmento_control_evidencia">Id Segmento Control Evidencia</param>
        /// <param name="id_segmento">Id Segmento</param>
        /// <param name="id_tipo_documento">Id de Tipo de Documento</param>
        /// <param name="id_estatus_documento">Estatus del Documento</param>
        /// <param name="id_hoja_instruccion_documento">Hoja de Instrucción</param>
        /// <param name="terminal_recepcion">Terminal de Recepción</param>
        /// <param name="fecha_recepcion">Fecha de Recepción</param>
        /// <param name="terminal_cobro">Terminal de Cobro</param>
        /// <param name="bit_original">Origina</param>
        /// <param name="bit_copia">Copia</param>
        /// <param name="bit_sello">Sello</param>
        /// <param name="id_imagen">Id de Imagen</param>
        /// <param name="referencia_imagen">Referencia de Imagen</param>
        /// <param name="id_usuario">Id de Usuario</param>
        /// <returns></returns>
        public static RetornoOperacion InsertaControlEvidenciaDocumento(int id_servicio_control_evidencia, int id_servicio, int id_segmento_control_evidencia, int id_segmento, byte id_tipo_documento,
                                                                        EstatusDocumento id_estatus_documento, int id_hoja_instruccion_documento, int terminal_recepcion,
                                                                        DateTime fecha_recepcion, int terminal_cobro, bool bit_original,
                                                                        bool bit_copia, bool bit_sello, int id_imagen, string referencia_imagen,
                                                                        int id_usuario)
        {   //Declarando Objeto de Retorno
            RetornoOperacion result = new RetornoOperacion();

            //Creamos la transacción
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Declarando Arreglo de Parametros
                object[] param = { 1,                                                                          0, id_servicio_control_evidencia, id_servicio, id_segmento_control_evidencia, id_segmento,       id_tipo_documento,
                                   (byte)id_estatus_documento,                     id_hoja_instruccion_documento, terminal_recepcion,
                                   Fecha.ConvierteDateTimeObjeto(fecha_recepcion),
                                   terminal_cobro,                                 bit_original,                  bit_copia,                     bit_sello,   id_imagen,                     referencia_imagen,
                                   id_usuario,                                     true,                          "",                            "" };

                //Declarando Variable Auxiliar
                int id_control_evidencia = 0;

                //Obteniendo Resultado del SP
                result = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param);

                //Si se Inserto Correctamente Control Evidencia Documento
                if (result.OperacionExitosa)
                {
                    //Asignando Control Evidencia
                    id_control_evidencia = result.IdRegistro;

                    //Instanciamos SegmentoControlEvidencia
                    using (SegmentoControlEvidencia sce = new SegmentoControlEvidencia(SegmentoControlEvidencia.TipoConsulta.IdSegmentoControlEvidencia, id_segmento_control_evidencia))
                    {
                        //Actualizamos Estatus
                        result = sce.ActualizaEstatusSegmentoControlEvidenciaSegmento(id_usuario);
                    }
                }
                //Validamos Resultado
                if (result.OperacionExitosa)
                {
                    //Actualizamos Estatus
                    result = new RetornoOperacion(id_control_evidencia);

                    //Validamos Transacción
                    scope.Complete();
                }
            }
            //Devolviendo Resultado
            return(result);
        }
Пример #3
0
        /// <summary>
        /// Actualizamos Estatus de Control Evidencia Documento
        /// </summary>
        /// <param name="id_terminal_cobro"></param>
        /// <param name="estatus"></param>
        /// <param name="id_usuario"></param>
        /// <returns></returns>
        public RetornoOperacion ActualizaEstatusControlEvidenciaDocumento(int id_terminal_cobro, EstatusDocumento estatus, int id_usuario)
        {
            //Declaramos Objeto Resultado
            RetornoOperacion resultado = new RetornoOperacion(0);

            //Declaramos Variable para fecha de recepción del Documento
            DateTime fecha_recepcion = this._fecha_recepcion;

            //Declaramos IdControl Evidencia
            int IdControl = 0;

            //Validamos que no se encuentre cancelado el Documento
            if ((EstatusDocumento)this._id_estatus_documento != EstatusDocumento.Cancelado)
            {
                //Validamos que el estatus sea Recibido o Recibido con Reención para la asignación de la fecha de recepción
                if (estatus == EstatusDocumento.Recibido || estatus == EstatusDocumento.Recibido_Reenvio)
                {
                    fecha_recepcion = Fecha.ObtieneFechaEstandarMexicoCentro();
                }

                //Actualizamos Estatus del Documento
                resultado = this.actualizaRegistros(this._id_servicio_control_evidencia, this._id_servicio, this._id_segmento_control_evidencia, this._id_segmento, this._id_tipo_documento, estatus, this._id_hoja_instruccion_documento,
                                                    this._terminal_recepcion, this._fecha_recepcion, id_terminal_cobro, this._bit_original,
                                                    this._bit_copia, this._bit_sello, this._id_imagen, this._referencia_imagen, id_usuario, this._habilitar);
                //Establecemos Id del Control Evidencia
                IdControl = resultado.IdRegistro;

                //Si se actualizo Correctamente el Registro
                if (resultado.OperacionExitosa)
                {
                    //Instanciamos Viaje Control Evidencia
                    using (SegmentoControlEvidencia objSegmentoControlEvidencia = new SegmentoControlEvidencia(SegmentoControlEvidencia.TipoConsulta.IdSegmentoControlEvidencia, this._id_segmento_control_evidencia))
                    {
                        //Actualizamos Viaje Control Evidencia
                        resultado = objSegmentoControlEvidencia.ActualizaEstatusSegmentoControlEvidenciaSegmento(id_usuario);
                        //Sila actualización fue correcta
                        if (resultado.OperacionExitosa)
                        {
                            resultado = new RetornoOperacion(IdControl);
                        }
                    }
                }
            }
            return(resultado);
        }
Пример #4
0
        /// <summary>
        /// Ediitamos Control Evidencia Documento
        /// </summary>
        /// <param name="fecha_recepcion">Fecha de Recepción</param>
        /// <param name="id_usuario">Id Usuario</param>
        /// <returns></returns>
        public RetornoOperacion EditaControlEvidenciaDocumentoRecibido(DateTime fecha_recepcion, int id_terminal_recepcion, int id_terminal_cobro, EstatusDocumento estatus, int id_usuario)
        {
            //Declaramos Objeto Resultado
            RetornoOperacion result  = new RetornoOperacion();
            int id_control_evidencia = 0;

            //Creamos la transacción
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Invocando Método de Actualización
                result = this.actualizaRegistros(this._id_servicio_control_evidencia, this._id_servicio, this._id_segmento_control_evidencia, this._id_segmento, this._id_tipo_documento,
                                                 estatus, this._id_hoja_instruccion_documento, id_terminal_recepcion,
                                                 fecha_recepcion, id_terminal_cobro, this._bit_original, this._bit_copia, this._bit_sello,
                                                 this._id_imagen, this._referencia_imagen, id_usuario, this._habilitar);

                //Si se Inserto Correctamente Control Evidencia Documento
                if (result.OperacionExitosa)
                {
                    //Asignando Control Evidencia
                    id_control_evidencia = result.IdRegistro;

                    //Instanciamos SegmentoControlEvidencia
                    using (SegmentoControlEvidencia sce = new SegmentoControlEvidencia(SegmentoControlEvidencia.TipoConsulta.IdSegmentoControlEvidencia, id_segmento_control_evidencia))
                    {
                        //Actualizamos Estatus
                        result = sce.ActualizaEstatusSegmentoControlEvidenciaSegmento(id_usuario);
                    }
                }
                //Validamos Resultado
                if (result.OperacionExitosa)
                {
                    //Actualizamos Estatus
                    result = new RetornoOperacion(id_control_evidencia);

                    //Validamos Transacción
                    scope.Complete();
                }
            }
            //Declaramos Objeto resultado
            return(result);
        }
Пример #5
0
        /// <summary>
        /// Método encargado de actualizar el estatus del control de evidencia del viaje, así como las fechas de inicio y fin de proceso.
        /// </summary>
        /// <param name="id_usuario">Id de Usuario</param>
        /// <returns></returns>
        public RetornoOperacion ActualizaEstatusGeneralServicioControlEvidencia(int id_usuario)
        {
            //Definiendo objetos de estatus de documentos
            bool recibido, recibido_reenvio, transito, en_aclaracion, no_recibido, imagen_digitalizada;
            //Definiendo variable de estatus por asignar
            EstatusServicioControlEvidencias nuevo_estatus = EstatusServicioControlEvidencias.No_Recibidos;
            //Definiendo fecha de inicio y fin de proceso de control de evidencia
            DateTime inicio_control = Fecha.EsFechaMinima(this._fecha_inicio) ? TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro() : this._fecha_inicio, fin_control = this._fecha_termino;

            //Cargando los estatus de documentos
            SegmentoControlEvidencia.CargaEstatusSegmentoControlEvidencia(this._id_servicio, out recibido, out recibido_reenvio, out transito, out en_aclaracion, out no_recibido, out imagen_digitalizada);

            //Determinando estatus de viaje
            //Filtrando solo recibidos
            if (recibido & !recibido_reenvio & !transito & !en_aclaracion & !no_recibido & !imagen_digitalizada)
            {
                nuevo_estatus = EstatusServicioControlEvidencias.Recibido;
                fin_control   = TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro();
            }
            //Filtrando solo recibidos con Imagen Digitalizada
            else if (recibido & !recibido_reenvio & !transito & !en_aclaracion & !no_recibido & imagen_digitalizada)
            {
                nuevo_estatus = EstatusServicioControlEvidencias.Imagen_Digitalizada;
                fin_control   = TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro();
            }
            //Solo recibido con reenvio
            else if (!recibido & recibido_reenvio & !transito & !en_aclaracion & !no_recibido & !imagen_digitalizada)
            {
                nuevo_estatus = EstatusServicioControlEvidencias.Recibido_Reenvio;
            }
            //Solo recibido con reenvio con Imagen Digitalizada
            else if (!recibido & recibido_reenvio & !transito & !en_aclaracion & !no_recibido & imagen_digitalizada)
            {
                nuevo_estatus = EstatusServicioControlEvidencias.Imagen_Digitalizada;
            }
            //Solo no recibido
            else if (!recibido & !recibido_reenvio & !transito & !en_aclaracion & no_recibido & !imagen_digitalizada)
            {
                nuevo_estatus = EstatusServicioControlEvidencias.No_Recibidos;
            }
            //Solo no recibido con Imagen Digitalizada
            else if (!recibido & !recibido_reenvio & !transito & !en_aclaracion & no_recibido & imagen_digitalizada)
            {
                nuevo_estatus = EstatusServicioControlEvidencias.Imagen_Digitalizada;
            }
            //Solo Iamgen Digitalizada
            else if (!recibido & !recibido_reenvio & !transito & !en_aclaracion & !no_recibido & imagen_digitalizada)
            {
                nuevo_estatus = EstatusServicioControlEvidencias.Imagen_Digitalizada;
            }
            //Cualquier combinación con estatus en aclaración, tomará este estatus directamente
            else if (en_aclaracion)
            {
                nuevo_estatus = EstatusServicioControlEvidencias.En_Aclaracion;
            }
            //Para el resto de posibilidades
            else
            {
                //Si existen documentos en transito, se asigna estatus directo
                if (transito)
                {
                    nuevo_estatus = EstatusServicioControlEvidencias.Transito;
                }
                //Si no hay transito, en este nivel solo habrá aclaraciones
                else
                {
                    nuevo_estatus = EstatusServicioControlEvidencias.En_Aclaracion;
                }
            }

            //Invocando Método de Actualización
            return(this.actualizaAtributos(this._id_servicio, nuevo_estatus, inicio_control, fin_control,
                                           id_usuario, this._habilitar));
        }
Пример #6
0
        /// <summary>
        /// Cancela Control Evidencia Documento
        /// </summary>
        /// <param name="id_segmento_control_evidencia">Id Segmento Control Evidencia Documento</param>
        /// <param name="objSegmentoControEvlidencia">Objeto Segmento Control Evidencia</param>
        /// <param name="id_usuario">Id Usuario</param>
        /// <returns></returns>
        public static RetornoOperacion CancelaControlEvidenciaDocumento(int id_segmento_control_evidencia, SegmentoControlEvidencia objSegmentoControEvlidencia, int id_usuario)
        {
            //Objeto Resultado
            RetornoOperacion res = new RetornoOperacion(0);

            //Creamos la transacción
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Cargamos Evidencias de Documento
                using (DataTable mitDocumento = CargaDocumentosControlEvidencia(id_segmento_control_evidencia))
                {
                    //Validamos Origen de Datos
                    if (Validacion.ValidaOrigenDatos(mitDocumento))
                    {
                        //Recorremos Cada uno de los Documento
                        foreach (DataRow r in mitDocumento.Rows)
                        {
                            //Instanciamos Documento
                            using (ControlEvidenciaDocumento doc = new ControlEvidenciaDocumento(r.Field <int>("Id")))
                            {
                                //Actualizamos Estatus
                                res = doc.ActualizaEstatusControlEvidenciaDocumento(ControlEvidenciaDocumento.EstatusDocumento.Cancelado, id_usuario);

                                //Validamos Resultado
                                if (res.OperacionExitosa)
                                {
                                    //Cargamos detalle del paquete correspondiente al Documento
                                    using (DataTable mit = PaqueteEnvioDocumento.ObtieneDetallesPaqueteDocumento(doc.id_control_evidencia_documento))
                                    {
                                        //Validamos Origen de Datos
                                        if (Validacion.ValidaOrigenDatos(mit))
                                        {
                                            //Recorremos cada uno de los paquetes
                                            foreach (DataRow p in mit.Rows)
                                            {
                                                //Insertamos Refrencia
                                                res = Referencia.InsertaReferencia(p.Field <int>("Id"), 41, 2070, "Reacomodo de los documentos a causa de la edición del segmento", Fecha.ObtieneFechaEstandarMexicoCentro(), id_usuario);

                                                //Validamos Resultado
                                                if (!res.OperacionExitosa)
                                                {
                                                    //Salimos del ciclo
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            //Validamos Resultado
                            if (!res.OperacionExitosa)
                            {
                                //Salimos del ciclo
                                break;
                            }
                        }
                    }
                    //Validamos Resultado
                    if (res.OperacionExitosa)
                    {
                        //Cancelamos Segmento
                        res = objSegmentoControEvlidencia.EditaEstatusSegmentoControlEvidencia(SegmentoControlEvidencia.EstatusSegmentoControlEvidencias.Cancelado, id_usuario);
                    }
                }
                //Validamos Resultado
                if (res.OperacionExitosa)
                {
                    scope.Complete();
                }
            }
            //Devolvemos resultado
            return(res);
        }
Пример #7
0
        /// <summary>
        /// Método encargado de eralizar las ediciones de las evidencias de acuerdo a la deshabilitacion de parada en despacho
        /// </summary>
        /// <param name="id_servicio"></param>
        /// <param name="id_segmento_anterior"></param>
        /// <param name="id_segmento_posterior"></param>
        /// <param name="id_usuario"></param>
        /// <returns></returns>
        public static RetornoOperacion SegmentoControlEvidenciaDeshabilitaParada(int id_servicio, int id_segmento_anterior, int id_segmento_posterior, int id_usuario)
        {
            //Declaramos objeto Resultado
            RetornoOperacion res = new RetornoOperacion(0);

            //declaramos avriables para almacenar la HI
            int hi_segmento_segmento_anterior = 0;

            //Creamos la transacción
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Instanciamos Servicio Control Evidencia
                using (ServicioControlEvidencia objServicioCE = new ServicioControlEvidencia(ServicioControlEvidencia.TipoConsulta.IdServicio, id_servicio))
                {
                    //Validamos que exista el Servicio Control Evidencia
                    if (objServicioCE.id_servicio_control_evidencia > 0)
                    {
                        //En caso de ser segmento en medio
                        if (id_segmento_posterior != 0 && id_segmento_anterior != 0)
                        {
                            //Establcemos valor
                            hi_segmento_segmento_anterior = res.IdRegistro;
                            //Obtenemos HI correspondiente al Segmento  anterior
                            res = Despacho.SegmentoCarga.ObteniendoHISegmento(id_segmento_anterior);
                            //Validamos que exista HI para el segmento anterior
                            if (res.OperacionExitosa)
                            {
                                //Establecemos valor
                                hi_segmento_segmento_anterior = res.IdRegistro;

                                //Instanciamos Control Evidencia Segmento
                                using (SegmentoControlEvidencia objSegmentoControlEvidencia = new SegmentoControlEvidencia(TipoConsulta.IdSegmento, id_segmento_anterior))
                                {
                                    //Carga Control Evidencia Documentos ligado al Segmento Control Evidencia Documento
                                    res = ControlEvidenciaDocumento.CancelaControlEvidenciaDocumento(objSegmentoControlEvidencia.id_segmento_control_evidencia, objSegmentoControlEvidencia, id_usuario);
                                    //Insertamos Segmento Control Evidencia para el posterior Segmento
                                    //Validamos Resultado
                                    if (res.OperacionExitosa)
                                    {
                                        //Instanciamos Control Evidencia Segmento Posterior
                                        using (SegmentoControlEvidencia objSegmentoControlEvidenciaP = new SegmentoControlEvidencia(TipoConsulta.IdSegmento, id_segmento_posterior))
                                        {
                                            //Carga Control Evidencia Documentos ligado al Segmento Control Evidencia Documento
                                            res = ControlEvidenciaDocumento.CancelaControlEvidenciaDocumento(objSegmentoControlEvidenciaP.id_segmento_control_evidencia, objSegmentoControlEvidenciaP, id_usuario);

                                            //Validamos resulado
                                            if (res.OperacionExitosa)
                                            {
                                                //Insertamos Segmento Control Evidencia
                                                res = SegmentoControlEvidencia.InsertaSegmentoControlEvidencia(objServicioCE.id_servicio_control_evidencia, id_segmento_anterior, hi_segmento_segmento_anterior, id_usuario);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        //En caso de Ser Segmento Al final
                        else if (id_segmento_posterior == 0)
                        {
                            if (objServicioCE.id_servicio_control_evidencia > 0)
                            {
                                //Instanciamos Control Evidencia Segmento
                                using (SegmentoControlEvidencia objSegmentoControlEvidencia = new SegmentoControlEvidencia(TipoConsulta.IdSegmento, id_segmento_anterior))
                                {
                                    //Carga Control Evidencia Documentos ligado al Segmento Control Evidencia Documento
                                    res = ControlEvidenciaDocumento.CancelaControlEvidenciaDocumento(objSegmentoControlEvidencia.id_segmento_control_evidencia, objSegmentoControlEvidencia, id_usuario);
                                }
                            }
                        }
                        //Validamos Resultado
                        if (res.OperacionExitosa)
                        {
                            //anteriorizamos Estatus del Servicio Control Evidencia
                            res = objServicioCE.ActualizaEstatusGeneralServicioControlEvidencia(id_usuario);
                        }
                    }
                }
                //Validamos Resultado
                if (res.OperacionExitosa)
                {
                    //Finalizamos Transacción
                    scope.Complete();
                }
            }

            //Devolvemos resultado
            return(res);
        }