/// <summary> /// Método Público encargado de Insertar nuevos Registros /// </summary> /// <param name="id_servicio_control_evidencia">Id Servicio Control Evidencia</param> /// <param name="id_segmento">Id de segmento</param> /// <param name="id_hoja_instruccion">Hoja Instrucción</param> /// <param name="id_usuario">Id de Usuario</param> /// <returns></returns> public static RetornoOperacion InsertaSegmentoControlEvidencia(int id_servicio_control_evidencia, int id_segmento, int id_hoja_instruccion, int id_usuario) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Si cuenta con una Hoja de Instruccón if (id_hoja_instruccion != 0) { //Insertamos Segmento Control Evidencia //Declarando Arreglo de Parametros del SP object[] param = { 1, 0, id_servicio_control_evidencia, id_segmento, EstatusSegmentoControlEvidencias.No_Recibidos, id_hoja_instruccion, id_usuario, true, "", "" }; //Obteniendo Resultado del SP result = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param); } //Si no existe HI else { //Instanciamos Segmento using (SegmentoCarga objSegmento = new SegmentoCarga(id_segmento)) { //Instanciamos Parada Inicio y Parada Fin using (Parada objParadaInicio = new Parada(objSegmento.id_parada_inicio), objParadaFin = new Parada(objSegmento.id_parada_fin)) { result = new RetornoOperacion("No se encontró la HI para el siguiente segmento: " + "(Remitente " + objParadaInicio.descripcion + " / Destinatario " + objParadaFin.descripcion + ")"); } } } //Devolviendo resultado Obtenido return(result); }
/// <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 encargado de Insertar la Evidencia del Documento /// </summary> /// <param name="id_servicio">Servicio</param> /// <param name="id_servicio_ce">Servicio Control Evidencia</param> /// <param name="id_segmento">Segmento</param> /// <param name="id_segmento_ce">Segmento Control Evidencia</param> /// <param name="id_hoja_instruccion_doc">Documento de la Hoja de Instrucción</param> /// <param name="id_lugar_cobro">Lugar de Cobro</param> /// <param name="documento">Documento</param> /// <param name="id_sesion">Sesión del Usuario que Actualiza el Registro</param> /// <returns></returns> public string InsertaControlEvidenciaDocumento(int id_servicio, int id_servicio_ce, int id_segmento, int id_segmento_ce, int id_hoja_instruccion_doc, int id_lugar_cobro, string documento, int id_sesion) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Inicializando Bloque Transaccional using (TransactionScope trans = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Instanciando la Sesión de Usuario using (SAT_CL.Seguridad.UsuarioSesion user_sesion = new SAT_CL.Seguridad.UsuarioSesion(id_sesion)) { //Validando que la Sesión este Activa if (user_sesion.habilitar && user_sesion.EstatusSesion == SAT_CL.Seguridad.UsuarioSesion.Estatus.Activo) { //Instanciando Hoja de Instruccion Documento using (HojaInstruccionDocumento hid = new HojaInstruccionDocumento(id_hoja_instruccion_doc)) { //Validando que exista el Documento if (hid.habilitar) { //Declarando Variables de Obtención de Formatos //(Si es original, se niega valor de copia) bool bit_copia = hid.id_copia_original == 1 ? false : true; //(Si es copia, se nieva valor de original) bool bit_original = hid.id_copia_original == 2 ? false : true; //Realizando actualización result = ControlEvidenciaDocumento.InsertaControlEvidenciaDocumento(id_servicio_ce, id_servicio, id_segmento_ce, id_segmento, (byte)hid.id_tipo_documento, ControlEvidenciaDocumento.EstatusDocumento.Imagen_Digitalizada, hid.id_hoja_instruccion_documento, 0, TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro(), id_lugar_cobro, bit_original, bit_copia, hid.bit_sello, 0, "", user_sesion.id_usuario); //Validando la Operación if (result.OperacionExitosa) { //Obteniendo Parada int idRegistro = result.IdRegistro; //Instanciando Servicio Control Evidencia using (ServicioControlEvidencia ce = new ServicioControlEvidencia(ServicioControlEvidencia.TipoConsulta.IdServicio, id_servicio)) { //Actualizando estatus de Control de evidencia result = ce.ActualizaEstatusGeneralServicioControlEvidencia(user_sesion.id_usuario); //Validando la Operación if (result.OperacionExitosa) { //Instanciamos Segmento para obtenener información de las paradas using (SegmentoCarga objSegmento = new SegmentoCarga(id_segmento)) { //Instanciamos Parada de Inicio y Parada Fin using (Parada objParadaInicio = new Parada(objSegmento.id_parada_inicio), objParadaFin = new Parada(objSegmento.id_parada_fin)) { //Actualizando Ultima Actividad result = user_sesion.ActualizaUltimaActividad(); //Validando Operación Exitosa if (result.OperacionExitosa) { //Instanciando Servicio result = new RetornoOperacion(idRegistro); //Añadiendo resultado a mensaje final result = new RetornoOperacion(result.IdRegistro, string.Format("{0}: {1}", documento + " [" + objParadaInicio.descripcion + "-" + objParadaFin.descripcion + "] ", result.Mensaje), result.OperacionExitosa); //Completando Transacción trans.Complete(); } } } } } } } else { //Instanciando Excepción result = new RetornoOperacion("No Existe el Documento de la Hoja de Instrucción"); } } } else { //Instanciando Excepción result = new RetornoOperacion("La Sesión no esta Activa"); } } } //Devolviendo Resultado Obtenido return(result.ToXMLString()); }