Fases de: Diseño, Construcción e
Capítulo 4.- Fases de: Diseño, Construcción e Implantación para el Desarrollo del Sistema de Información
7. Módulo Catálogo de Vales 8 Módulo Integral de Reportes.
4.2 Fase III Construcción del sistema
4.2.2 Construcción de la salida a pantalla principal del sistema
4.2.3.2 Construcción de los Procesos del Sistema de Información
1.- Construcción del Módulo Alta de “Valeras”
Para la construcción del Módulo Alta de “Valeras”, el usuario solicita el número de inmovilizado al cual se le va a asignar una nueva “Valera”, una vez proporcionado ese número, el sistema valida que éste se encuentre dentro del centro de trabajo del usuario, esto se realiza con el fin de que cada usuario vea sólo la información que le corresponde y para la cual tiene acceso.
CAPÍTULO 4.- FASES DE: DISEÑO, CONSTRUCCIÓN E IMPLANTACIÓN PARA EL DESARROLLO DEL SISTEMA DE INFORMACIÓN
67
Realizado este paso se introducen los datos de la “Valera”, especificando el número de “Valera”, el folio del vale inicial y del vale final, el estado de la “Valera”, ya que desde dicha pantalla también pueden llevarse a cabo cancelaciones de vales o actualizaciones de información de vales existentes, y ya por último se indica la fecha de entrega de la “Valera” y el tipo de “Valera” a entregar.
El código utilizado para realizar las acciones necesarias para éste Módulo de Alta de “Valeras”, se plasma en la Tabla 4.3:
ACCIÓN CÓDIGO
'Se declara una variable de tipo cadena Dim errInfoGrabar AsString
'Verificamos si se puede capturar la información de la Valera, mediante un procedimiento que se encarga de revisar que este capturada la información necesaria
errInfoGrabar = VerificaInfoGrabarActualizar("Inserta")
'Verificamos si no ocurrió algún error If errInfoGrabar = "False" Then
'Obtenemos la Región, la Región la obtenemos del
campo CVE_CENTRO obteniendo el primer carácter Dim Region AsString
'Inicializamos la Región Region = ""
Region =
Session("mCO_Va_Cen_Opera").Substring(0, 1)
'Verificamos que no haya ocurrido un error en la
captura Dim errCapturaInfo = VerificaInfoCaptura() errCapturaInfo AsString
If errCapturaInfo = "False" Then
Dim strNumeroValera AsString
'Obtenemos la terminación del año, en base a la
fecha de entrega txtTerm_Anio.Text = txtFecha_entrega.Text.Substring(8, 2)
'Concatenamos el número de Valera con la
terminación del año, para obtener el num. de Valera strNumeroValera = txtNumeroValera.Text & txtTerm_Anio.Text
'Ejecutamos el procedimiento que se encargará de
realizar la inserción InsertaInfoValera(txtInmovilizado.Text, Session("mCO_Va_Ficha"), strNumeroValera,
txtValeInicial.Text, _ txtValeFinal.Text, _ Region, Session("mCO_Va_Cen_Opera"), Session("mCO_Va_Centrot"), Session("m_CO_Va_Departamento"), Session("ssFicha"), _ ConvierteCVE_BAJAL_Valor(ddwEdoValera.SelectedIt em.Text), txtObservaciones.Text.ToUpper, _ txtFecha_entrega.Text, ddwEstacionServicio.SelectedItem.Value, DdwTipoValera.SelectedItem.Value, Session("m_CO_Va_TipoCombustible")) Else
'Mandamos un mensaje de error con los errores que se originen de la captura, errores del tipo de datos que no sean numéricos, datos negativos y una comparación sobre que el vale final debe ser mayor o igual que el vale inicial
MsgBox1.ShowMessage(errCapturaInfo) EndIf
Else
'Mandamos un mensaje de error, ya que la
información no se capturó correctamente MsgBox1.ShowMessage(errInfoGrabar) EndIf
CAPÍTULO 4.- FASES DE: DISEÑO, CONSTRUCCIÓN E IMPLANTACIÓN PARA EL DESARROLLO DEL SISTEMA DE INFORMACIÓN
68
2.- Construcción del Módulo Alta de Vales
Para la construcción del Modulo de Captura de Vales, se colocaron los controles de tal manera que lo primero que tenga que introducir el usuario, sea el número de inmovilizado y el folio del vale a capturar para posteriormente llevar a cabo la búsqueda de las “Valeras” dentro de las cuales puede encontrarse este vale. Se incluyó un listado con las “Valeras” pertenecientes a ese inmovilizado para que el usuario seleccione la “Valera” en la que va a capturar ese vale.
Para capturar un vale y según entrevistas con el usuario, se ingresan como son recibidos de las estaciones de servicios, los datos requeridos obligatoriamente son la ficha del trabajador que utilizó el vale, la fecha de carga del combustible, la lectura del odómetro del vehículo al momento de la carga, el número del litros cargados y la estación de servicio en la cual se llevó a cabo la carga, para introducir esta información se colocaron en la mayoría de los casos cuadros de texto en los que el usuario introduce la información requerida.
Al momento en que el usuario introduce la ficha de la persona que utilizó el vale y presionar el vínculo de comprobar se lleva a cabo la validación de ficha, información que en caso de ser correcta se ejecuta un proceso para extraer la información del trabajador de las tablas de nómina, esto se hace con el fin de que el usuario tecleé la mínima información posible, dejando como su único trabajo la información específica del vale.
CAPÍTULO 4.- FASES DE: DISEÑO, CONSTRUCCIÓN E IMPLANTACIÓN PARA EL DESARROLLO DEL SISTEMA DE INFORMACIÓN
69
ACCIÓN CÓDIGO
'Se declara una variable de tipo cadena Dim strOdometro AsString
'Si el odómetro funciona efectúa la validación del odómetro, si no solo establece que el odómetro es valido ya que se inserta el kilometraje máximo registrado hasta el momento
If lblOdometro.Text = "S" Then
strOdometro =
VerificaOdometro(CLng(txtLecturaOdometro.Text), "Inserta") ElseIf lblOdometro.Text = "N" Then
strOdometro = "True" EndIf
'Ejecutamos la función que verifica si el odómetro se
puede insertar If strOdometro = "True" Then
'Antes de insertar contamos el número de vales disponibles como última validación, esto es para cuando ya sea el último vale que en automático se actualice la clave bajal de la Valera a Baja
Dim objTotVales AsNew cConsultas Dim strTotVales AsString
strTotVales =
objTotVales.CO_S_NumeroValesTotales(txtInmovilizado.Text, txtValera.Text)
'Verificamos que no ocurra ningún error en la consulta If strTotVales = "-1" Then
MsgBox1.ShowMessage("Ocurrio un error...") Else
'Verificamos si arrojó resultados la consulta If strTotVales = "0" Then
MsgBox1.ShowMessage("La consulta no arrojo resultados") Else
'Verificamos el número total de vales para ver si aún se pueden capturar vales y si es el último cambiar el estado de la clave bajal
Dim objValesInsertados AsNew cConsultas Dim intVales AsInteger
intVales =
objValesInsertados.CO_S_ValesInsertados(txtInmovilizado.Text, txtValera.Text)
'Verificamos que no ocurran errores If intVales = -1 Then
'Mandamos un mensaje de que ocurrió un error MsgBox1.ShowMessage("Ocurrio un error...")
Else
'Verificamos que arroje resultados la consulta If intVales = 0 Then
'No hay vales insertados para el inmovilizado MsgBox1.ShowMessage(Insert_Info_Odometro(Session("m_CO
_Va_EdoValera_CveBajal")))
'Limpiamos la información de los vales LimpiaInfoFicha() Else
'Verificamos que se puedan insertar vales If intVales = (CInt(strTotVales) - 1) Then
'Verificamos el Estado de la Valera Dim strEdoValera AsString If
Session("m_CO_Va_EdoValera_CveBajal") = "A" Then
strEdoValera = "B" Else If
Session("m_CO_Va_EdoValera_CveBajal") = "C" Then
strEdoValera = "C" Else If
Session("m_CO_Va_EdoValera_CveBajal") = "T" Then
strEdoValera = "B" EndIf EndIf EndIf
'Último vale disponible para insertar MsgBox1.ShowMessage(Insert_Info_Odometro(strEdoValera))
'Limpiamos la información de los vales LimpiaInfoFicha() Else
'Verificamos que el número de vales insertados no
exceda el total de vales asignados a la Valera If intVales < CInt(strTotVales) Then
'Insertamos la información y ponemos la clave bajal en
Activa MsgBox1.ShowMessage(Insert_Info_Odometro(Session("m_CO_Va_EdoValera_CveBajal")))
'Limpiamos la información de los vales LimpiaInfoFicha() LnkVerValesCapturados.Visible = False Else
'Mandamos un mensaje de error ya que el número de
vales insertados excede la capacidad permitida MsgBox1.ShowMessage("El vale excede la capacidad permitida de la valera" EndIf EndIf EndIf EndIf EndIf EndIf
Else
'Si la función devuelve un valor diferente de True no se puede insertar por lo tanto se imprime el mensaje indicando que no se puede insertar el odómetro
MsgBox1.ShowMessage(strOdometro) EndIf
Tabla 4.4 Fragmento del código en el lenguaje ASP.NET, para la generación del Módulo de Alta de Vales.
3.- Construcción del Módulo Registro de Tambores
El Módulo de Tambores es utilizado para llevar a cabo la captura de información de los vales que se utilizan para la carga de tambores de combustible, en esta pantalla no se utiliza el inmovilizado como llave para la consulta de información ya que no se trata de una carga de combustible para un vehículo.
CAPÍTULO 4.- FASES DE: DISEÑO, CONSTRUCCIÓN E IMPLANTACIÓN PARA EL DESARROLLO DEL SISTEMA DE INFORMACIÓN
70
A continuación, se muestra un fragmento de código, para la generación del Módulo de Registro de Tambores:
ACCIÓN CÓDIGO
'Inicia procedimiento y se declaran
variables If Session("mCO_Inserta_Actualiza") = "Actualiza" Dim objActualizaTambores AsNew cActualiza Then
Dim strActualizaTambores AsString
'Obtenemos la región Region = Session("mCO_Va_Cen_Opera").Substring(0, 1)
strActualizaTambores =
objActualizaTambores.CO_U_SolicitudTambores(txtFicha.Text, ddwTipoDeCombustibles.SelectedItem.Value, _
CDbl(txtLitros.Text), txtFecha_Carga.Text, txtPeriodo.Text, ddwGasolineras.SelectedItem.Value, Region, _ Session("mCO_Va_Cen_Opera"), txtCentro.Text, Session("m_CO_Va_Departamento"), Session("ssFicha"), mCO_FechaHoy, "A", txtFolio.Text)
If strActualizaTambores.Substring(0, 5) <> "ERROR" Then
'Limpiamos la información LimpiaInfo(False)
'Mandamos un mensaje de
información actualizada MsgBox1.ShowMessage("Datos actualizados") Else
'Mandamos un mensaje con el error
obtenido MsgBox1.ShowMessage(strActualizaTambores) EndIf
Else
'Verificamos si se trata de una
inserción If Session("mCO_Inserta_Actualiza") = "Inserta" Then
'Folio correcto seguimos con la
inserción Dim objInsertaTambores Dim strInsertaTambores AsNew cInserta AsString
'Obtenemos la región Region = Session("mCO_Va_Cen_Opera").Substring(0, 1)
strInsertaTambores =
objInsertaTambores.CO_I_Tambores(txtFolio.Text, txtFicha.Text, ddwTipoDeCombustibles.SelectedItem.Value, _
CDbl(txtLitros.Text), txtFecha_Carga.Text, txtPeriodo.Text, ddwGasolineras.SelectedItem.Value, Region, _ Session("mCO_Va_Cen_Opera"), txtCentro.Text, Session("m_CO_Va_Departamento"), Session("ssFicha"), mCO_FechaHoy, "A")
'Verificamos el resultado de la
inserción If strInsertaTambores = "True" Then
'Limpiamos la información sin eliminar
el inmovilizado LimpiaInfo(False)
'Mandamos un mensaje de que los
datos se insertaron correctamente MsgBox1.ShowMessage("Se guardo el despacho de tambor de combustible con un numero de folio--> " & txtFolio.Text)
Else
'Mandamos un mensaje de error MsgBox1.ShowMessage(strInsertaTambores)
EndIf
EndIf
EndIf
Tabla 4.5 Fragmento del código en el lenguaje ASP.NET, para la generación del Módulo de Registro de Tambores.
En la salida a pantalla de la Figura 4.26, se colocaron como controles a utilizar dentro de la sección Datos del Tambor, cuadros de texto en donde el usuario debe de introducir la información referente al vale a utilizar, siendo los datos requeridos el folio, la ficha, el nombre del trabajador, el centro operativo y departamento de trabajo.
CAPÍTULO 4.- FASES DE: DISEÑO, CONSTRUCCIÓN E IMPLANTACIÓN PARA EL DESARROLLO DEL SISTEMA DE INFORMACIÓN
71
Figura 4.26 Vista de Diseño del Módulo de Registro de Tambores.
También, se colocó en una sección marcada como Registro de Tambores, controles de texto para que el usuario indique la fecha de carga, el periodo para el cual aplica, el número de litros cargados así como el tipo de combustible y la gasolinera en la cual se llevó a cabo la carga.
Para facilidad del usuario y para evitar problemas en las fechas introducidas se colocó un control calendario dentro de la pantalla para que el usuario seleccione una fecha válida en lugar de que el tenga la posibilidad de escribirla, esto como parte de la validación de los datos de entrada que se lleva a cabo en todos los módulos del sistema según el diseño realizado.
4.- Construcción del Módulo Registro de Pipas
Para el diseño y construcción de esta salida a pantalla, el usuario indicó que era requerido especificar los datos de la persona que transporta el combustible, esto se realiza de la misma manera que en el módulo de tambores, es decir, especificando el folio y la ficha del vale que se genera para el envío de combustibles, una vez realizado el usuario indica el número de la factura de compra del combustible, la fecha de carga, el periodo para el cual aplica dicha carga, el número de litros transportados así como el tipo de combustible y las gasolineras a las cuales se va a realizar dicho envío.
El Módulo de Pipas es el utilizado para manejar el envío que se hace de combustible a las estaciones de servicio.
En esta salida a pantalla se colocaron como controles a utilizar cuadros de texto y listas desplegables con valores extraídos de los catálogos del sistema para una fácil utilización por parte del usuario, con esto se logra que la captura no tome mucho tiempo y que la información introducida sea confiable al validar los campos de entrada. Un fragmento de código se muestra a continuación:
CAPÍTULO 4.- FASES DE: DISEÑO, CONSTRUCCIÓN E IMPLANTACIÓN PARA EL DESARROLLO DEL SISTEMA DE INFORMACIÓN
72
ACCIÓN CÓDIGO
'Procedimiento para el registro de Pipas con Diesel Industrial Bajo de Azufre
If ddwTipoDeCombustibles.SelectedItem.Value = "1" Then
strInsertaPipa = objInsertaPipa.CO_I_Pipas(txtFolio.Text, txtFactura.Text, txtFicha.Text,
ddwTipoDeCombustibles.SelectedItem.Value, CDbl(txtLitros.Text), _ txtPeriodo.Text, CDbl(txtIEPS.Text), txtDestino.Text,
txtFecha_Carga.Text, Region, Session("mCO_Va_Cen_Opera"), txtCentro.Text, Session("m_CO_Va_Departamento"),
Session("ssFicha"), mCO_FechaHoy, "A") Else
'Diferente de D.I.B.A If ddwTipoDeCombustibles.SelectedItem.Value <> "1" Then
strInsertaPipa =
objInsertaPipa.CO_I_Pipas(txtFolio.Text, txtFactura.Text, txtFicha.Text, ddwTipoDeCombustibles.SelectedItem.Value,
CDbl(txtLitros.Text), _ txtPeriodo.Text, 0.0,
ddwGasolineras.SelectedItem.Text, txtFecha_Carga.Text, Region, Session("mCO_Va_Cen_Opera"), txtCentro.Text, _
Session("m_CO_Va_Departamento"), Session("ssFicha"), mCO_FechaHoy, "A") EndIf
EndIf
'Verificamos el resultado de la inserción, y mandamos un mensaje de que los datos se insertaron correctamente
If strInsertaPipa = "True" Then
'Limpiamos la información LimpiaInfo(False, True)
'Mandamos un mensaje de que los datos se guardaron
satisfactoriamente
MsgBox1.ShowMessage("Se guardo el despacho de una pipa de combustible con el numero de folio---> " & txtFolio.Text)
Else
'Mandamos un mensaje con el error que se genero de la inserción de la información
MsgBox1.ShowMessage(strInsertaPipa) EndIf
Tabla 4.6 Fragmento del código en el lenguaje ASP.NET, para la generación del Módulo de Registro de Pipas.
CAPÍTULO 4.- FASES DE: DISEÑO, CONSTRUCCIÓN E IMPLANTACIÓN PARA EL DESARROLLO DEL SISTEMA DE INFORMACIÓN
73
5.- Construcción del Módulo Alta de Vales Estacionarios
Para la construcción de este módulo, se diseñó el procedimiento para que el usuario introduzca el número del inmovilizado del Equipo Estacionario y el folio del Vale, una vez localizado, se selecciona y se continúa con los datos referente a la persona que utilizó el vale y presionar el vinculo de comprobar se lleva a cabo la validación de ficha información que en caso de ser correcta se ejecuta un proceso para extraer la información del trabajador de las tablas de nómina, esto se hace con el fin de que el usuario tecleé la mínima información posible, dejando como su único trabajo la información específica del vale.
Figura 4.28 Vista de Diseño del Módulo de Alta de Vales Estacionarios.
6.- Construcción del Módulo Consulta de Vales
La construcción de este módulo es para visualizar los registros de una Valera y sus vales capturados a manera de lista de verificación, además de consultar el estado de las “Valeras” asignadas a ese inmovilizado. Su Vista de Diseño se presenta en la Figura 4.29:
CAPÍTULO 4.- FASES DE: DISEÑO, CONSTRUCCIÓN E IMPLANTACIÓN PARA EL DESARROLLO DEL SISTEMA DE INFORMACIÓN
74