/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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)); }
/// <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); }
/// <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); }