Professional Documents
Culture Documents
FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICA PROFESIONAL DE INGENIERÍA
DE SISTEMAS E INFORMÁTICA
AUTOR:
GUERRA FLORES TORIBIO HELWER.
ASESOR:
2007
AGRADECIMIENTO
AL PROMOTOR DE LA ORGANIZACIÓN
GALILEO JORGE VIDAL MONTERO POR
BRINDARME SU CONFIANZA Y AMISTAD.
i
DEDICATORIA
ii
PRESENTACIÓN
Gracias.
iii
RESUMEN
iv
ABSTRACT
The directing area instructs the principal part of the educative institution's
structural organizational chart GALILEO PRONOE, It has as one of his
functions to take stock of his good’s and next showing the reports to the
organization galileo's promoter, the educational institutions particular they
maintain this process and the nationals show it to her director of the store area
UGEL of the SANTA having this report a structure once was fixed.
Until now he has accomplished it in excel in order to his goods's record and
in shape - process the rest manual, demanding in order to it long time and
provoking errors.
The present work, a system proposes realizing web that he permit improving
the control of the institution educative PRONOE GALILEO's goods, the system
UGEL in the Peru would be able to become adapted to another institutions or
being once was used for them to control goods institutional educative to debit.
v
INTRODUCCIÓN
vi
Cuando se iniciaron las páginas web, nos encontrábamos en un entorno
estático, con páginas en HTML que sufrían pocas actualizaciones y no tenían
interacción con el usuario.
Para desarrollar los aplicativos web se requiere contar con un servidor web,
un lenguaje de lado del servidor, un servidor de base de datos los cuales
pueden residir en un mismo ordenador y contar con un nombre de dominio
registrado en el servidor de dominio del proveedor de Internet, para
implementar estos servidores existen variedades en tecnologías software, los
cuales mantienen una compatibilidad en configuración, tenemos como
servidores web a internet información server (IIS), apache, servlets como
servidores web y otros, como lenguajes de lado del servidor PHP, JSP y otros,
como servidores de base de datos SQL Server 2005, MySQL, PostgreSQL
Firebird y otros.
vii
En el CAPITULO I, Se ha recolectado información acerca de la Institución
como su Misión, Visión, Objetivos, Políticas Institucionales, Servicios que
brinda, Organigrama y se realiza la descripción del mercado.
viii
INDICE GENERAL
Pág.
AGRADECIMIENTO i
DEDICATORIA ii
PRESENTACIÓN iii
RESUMEN iv
ABSTRACT v
INTRODUCCIÓN vi-viii
CAPÍTULO I:
DE LA INSTITUCIÓN 1-7
1.2. UBICACIÓN. 1
1.4. MISIÓN. 2
1.5. VISIÓN. 2
1.8. MERCADO. 4
CAPÍTULO II:
2.4. HIPOTESÍS. 11
2.5. VARIABLES. 11
2.7. ANTECEDENTES. 13
2.9. ALCANCE. 14
CAPITULO III:
3.11. YOUTUBE. 37
3.17. DBDESIGNER4. 41
CAPITULO IV:
METODOLOGÍA. 72-214
1. EXPLORACIÓN. 76-98
I. HERRAMIENTAS. 96-97
J. TECNOLOGÍAS. 98
K. PROTOTITPO. 98
B. PLANIFICACIÓN. 101-105
3. ITERACIONES. 106-213
4. PRODUCCIÓN. 214
CAPITULO V:
CONCLUSIONES. 223
RECOMENDACIONES. 224
REFERENCIA BIBLIOGRÁFICA. 225-228
ANEXOS.
ÍNDICE DE TABLAS
Pág.
Figura 52. Reporte de inventario para todas las cuentas contables. 182
1.2. UBICACIÓN.
1.5. VISIÓN.
1.6. OBJETIVOS.
A. OBJETIVO GENERAL.
• Honestidad.
• Solidaridad.
• Respeto
• Innovación
• Justicia.
1.8. MERCADO.
2.3. JUSTIFICACIÓN
- ECONÓMICA
- TÉCNICA
- OPERATIVA
• Las consultas y reportes deben ser rápidos para poder tomar las
decisiones adecuadas, por lo que se disminuirá el tiempo que
demanda las consultas y entrega de los reportes al promotor y/o
UGEL respectiva.
2.5. VARIABLES
A. VARIABLE INDEPENDIENTE
B. VARIABLE DEPENDIENTE
2.6. OBJETIVOS
A. OBJETIVO GENERAL
B. OBJETIVOS ESPECIFICOS
2.7. ANTECEDENTES
• Servidor Web.
El servidor Web es un programa que corre sobre el servidor que
escucha las peticiones HTTP que le llegan y las satisface.
Dependiendo del tipo de la petición, el servidor Web buscara una
página Web o bien ejecutará un programa en el servidor. De cualquier
modo, siempre devolverá algún tipo de resultado HTML al cliente o
navegador que realizó la petición, son servidores Web:
• Pagina de Servidor.
Pagina Web que necesita procesamiento en el lado del servidor
(Página Dinámica), representa las reglas de negocio, tiende a
modificar el estado del negocio en el servidor, tiene acceso a todos los
recursos del servidor (base de datos, sistemas heredados,
componentes de lógica de negocio), Construye las páginas HTML y los
envía al Browser que los solicitó, el lenguaje a utilizar pueden ser ASP,
PHP, JSP, etc.
• Base de datos.
Ofrece la estructura para alojar los datos. Tenemos como base de
datos a MySQL, Firebird, SQL Server y otros.
• Navegadores.
Constituye el software cliente que presenta la interfaz para el
usuario ejemplo: Internet Explorer para Sistemas operativos Windows,
Firefox para Sistemas operativos Linux y Windows, Opera, etc.
En los últimos años las aplicaciones Web han sufrido un gran auge gracias
en gran parte a Internet y la proliferación de sitios Web, sobre todo con el fin
de fomentar el comercio electrónico.
La facilidad de uso de los interfaces Web y el hecho de que cada día más
personas están acostumbradas a la navegación por Internet hace que el
tiempo de aprendizaje se reduzca considerablemente respecto a aplicaciones
tradicionales.
1. Componentes Básicos.
• Servidor Web.
• Servidor de Aplicaciones.
• Applets.
Componente Java que esta compuesto por 2 archivos uno con
extensión java que describe al applets mismo y otro con extensión
class que es el applets compilado.
• Controles Active X
Son componentes de Microsoft y permite asignar a las páginas
Web efectos multimedia y otros, compatible con Internet Explorer.
• Objetos Distribuidos
Son componentes que brindan determinado servicio y radican en el
servidor Web para comunicarse con el aplicativo cliente.
3.4. AJAX
- JavaScript.
Todo inició cuando Dale Dougherty de O’Reilly Media utilizó este término
en una conferencia en la que compartió una lluvia de ideas junto a Craig Cline
de MediaLive en la que hablaba del renacimiento y evolución de la Web.
Constantemente estaban surgiendo nuevas aplicaciones y sitios con
sorprendentes funcionalidades. Y así se dio la pauta para la Web 2.0
conference de 2004. Esta conferencia no solo fue exitosa sino que ya tuvo
seguimiento en la Web 2.0 Conference del 2005 celebrada en Octubre.
En la charla inicial del Web Conference se habló de los principios que tenían
las aplicaciones Web 2.0:
• La Web es la plataforma
• La información es el procesador
• Sindicación de contenidos.
Esa brecha se está cerrando. Una mirada a las Google Suggest. Mira la
forma en que los términos sugeridos se van actualizando a medida que uno
3.6. XHTML
B. Inconvenientes.
3.7. JAVASCRIPT
3.9. XML
<?xml version=”1.0”?>
<mensaje>
<remitente>
<nombre>CORSITEC</nombre>
<mail>corsiteccgmr@gmail.com</mail>
</remitente>
<destinatario>
<nombre>Helwer</nombre>
<mail>helwer_acv@hotmail.com</mail>
</destinatario>
<asunto>Hola Helwer</asunto>
</parrafo>
</texto>
</mensaje>
3.10. RSS
3.11. YOUTUBE.
3.12. MASHUP.
Los defensores e impulsores de las aplicaciones Web 2.0 expresan que los
mashups son un ejemplo de este nuevo movimiento con sus usuarios en activa
participación e interacción.
Lo bueno del sistema es que permite navegar y ver las Pipes creadas por
otros usuarios y clonarlas. De ese modo, desde tu cuenta puedes modificarlas,
por ejemplo incluyendo los datos de tu blog, y guardarlas.
3.15. PHP
• Alto Rendimiento.
• Bajo coste.
• Portabilidad.
El modelo PHP puede ser visto como una alternativa al sistema de Microsoft
que utiliza ASP.NET/C#/VB.NET, a ColdFusion de la compañía Macromedia, a
JSP/Java de Sun Microsystems, y al famoso CGI/Perl. Aunque su creación y
desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU,
existe además un IDE comercial llamado Zend Optimizer.
3.16. MySQL
Es una herramienta visual de trabajo con base de datos. Está bajo licencia
GPL. Proporciona facilidades para el diseño, el modelado, la creación y el
mantenimiento de bases de datos.
• Control de versiones.
• Constructor de queries.
• Soporta índices.
3.18. ArgoUML
Los teléfonos WAP utilizan como lenguaje WML para las páginas estáticas y
WMLS para las páginas dinámicas.
A. Características de la POO.
Características
• Autentificación Kerberos5
• Políticas de seguridad.
(Alarcón, 2000), UML es un lenguaje estándar que sirve para escribir los
planos del software, puede utilizarse para visualizar, especificar, construir y
documentar todos los artefactos que componen un sistema con gran cantidad
de software. UML puede usarse para modelar desde sistemas de información
hasta aplicaciones distribuidas basadas en Web, pasando por sistemas
empotrados de tiempo real. UML es solamente un lenguaje por lo que es sólo
una parte de un método de desarrollo software, es independiente del proceso
aunque para que sea optimo debe usarse en un proceso dirigido por casos de
uso, centrado en la arquitectura, iterativo e incremental. UML es un lenguaje
por que proporciona un vocabulario y las reglas para utilizarlo, además es un
lenguaje de modelado lo que significa que el vocabulario y las reglas se utilizan
para la representación conceptual y física del sistema. UML es un lenguaje que
nos ayuda a interpretar grandes sistemas mediante gráficos o mediante texto
obteniendo modelos explícitos que ayudan a la comunicación durante el
desarrollo ya que al ser estándar, los modelos podrán ser interpretados por
personas que no participaron en su diseño (e incluso por herramientas) sin
ninguna ambigüedad. En este contexto, UML sirve para especificar, modelos
concretos, no ambiguos y completos.
• Diagrama de clases
• Diagrama de componentes
• Diagrama de objetos
• Diagrama de despliegue
• Diagrama de paquetes
• Diagrama de actividades
• Diagrama de estados
• Diagrama de secuencia
• Diagrama de comunicación
3.25. CONTABILIDAD.
• La tecnología.
A. Las cuentas.
Son nombres especiales que en contabilidad se da para representar a
los distintos valores que intervienen en la formación de una empresa.
Ejemplos:
• La cuenta “Mercaderías”, representa todos los artículos
(valores) que para la venta tiene la empresa.
• La cuenta “Letras por pagar” representa el importe que la
empresa debe presentan de las letras a cargo.
B. Activo.
Representa los bienes y derechos de la empresa. Dentro del
concepto de bienes están el efectivo, los inventarios, los activos fijos, etc.
Dentro del concepto de derechos se pueden clasificar las cuentas por
cobrar, las valorizaciones, etc.
C. Pasivo.
Son todas las obligaciones o deudas que afectan el patrimonio bruto
contribuyente.
D. Bien inmueble.
Son los bienes corporales que no pueden trasladarse de un lugar a
otro; por ejemplo: Los edificios, los árboles, etcétera.
E. Bien mueble.
Son las cosas(muebles) que pueden trasladarse de un lugar a otro ya
sea por sí misma, como animales, ya sea por una fuerza extraña, como
una silla, una mesa, etcétera. Valor de los contratos de arrendamiento
financiero de inmueble, maquinaria, equipo, mueble, enseres, etcétera.
F. Balance de inventario.
Es el cuadro financiero que se redacta en base al
inventario, presentándolo en forma resumida, globalizando las cuentas de
activo y pasivo, balanceándola con la cuenta capital.
• Comunicación.
• Coraje.
• Simplicidad.
• Feedback.
i. Planificación incremental.
• Organizar el equipo.
ii. Testing.
iv. Refactorización.
v. Diseño simple.
x. Semanas de 40 horas
• Exploración
• Iteraciones
• Producción
• Mantenimiento
• Interés sincero por todas las partes en que el proyecto tenga éxito.
• El equipo de trabajo es pequeño.
• Posible cambio de negocios.
• Requieren el Sistema cuanto antes.
• El equipo dispone de la capacidad de aprender.
1. Planificación incremental
Se ha decidido realizar cuatro releases con sus respectivas
iteraciones. Cada una de ellas proporcionando un valor de negocio
claro, a grosso modo serán:
• Funcionalidad común.
• Gestión de usuario.
• Gestión de inventario.
2. Testing
Una de las principales aportaciones de esta metodología es el
concepto de desarrollo dirigido por tests (Test Driven Development).
Los tests son realizados a priori con el fin de prevenir errores. Esto
confiere una gran calidad al software resultante. Los tests son
ejecutados automáticamente cada día para asegurar que el sucesivo
desarrollo del sistema no afecta a su estabilidad. Dado que los tests
son creados a priori fallarán hasta que la funcionalidad esté
implementada, en el proceso que comúnmente se llama rojo a verde.
En caso de que se encuentren fallos no detectados previamente, es
requisito escribir un test que falle para posteriormente solucionar el
problema.
3. Programación en parejas
Dado el impuesto carácter individual del proyecto esta práctica no
ha sido aplicada.
5. Diseño simple
El diseño se ha mantenido sencillo, desde luego pasando los tests,
sin código duplicado y con un mínimo de código gracias al núcleo del
sistema que proporciona un gran dinamismo y evita la necesidad de
implementación de operaciones repetitivas.
7. Integración continua
8. Cliente en el equipo
El cliente ha participado en todo el desarrollo (proceso),
compartiendo información, dando sus intereses y visión de negocio.
9. Releases pequeñas.
Se ha seguido esta práctica, liberando nuevas versiones según
las funcionalidades requeridas por el usuario.
1. EXPLORACIÓN
• Director (a)-Presidente(a).
Primera:
Segunda:
Tercera:
Ejemplo: 39 22 7763
Realizar consulta
Promotor
Comite de
inventario
<<include>>
Registrar el bien
Verificar codigo en catalogo
Contador
• Promotor.
• Contador.
Representa al Promotor de la
Institución, quíen puede agregar,
modificar, eliminar datos referentes a la
Institución educativa, del usuario,
tambien puede realizar búsquedas de
otras instituciones a través de un
Administrador del Sistema.
localizador geográfico mostrando los
datos de esta y noticias de la localidad.
El administrador puede obtener la
consulta referente a los bienes y generar
los reportes (informes - estadística) y el
balance de inventario.
El administrador puede realizar
consultas mediante dispositivos móviles.
El contador recibirá por parte del
Contador Promotor los reportes y el balance de
inventario.
Representado por el director del comité
de inventario quien contará con un
código y clave de acceso otorgado por
el administrador del sistema, el usuario
es el encargado de registrar y
Usuario.
actualizar los bienes, áreas, personal
(que están a cargo de las áreas),
también el usuario podrá realizar
consultas y reportes (informes -
estadística).
Se detalla a continuación:
a. Funcionalidad común.
El administrador tiene el control del sistema y el
usuario podrá acceder a un subconjunto de datos y
operaciones a realizar (Se usará la autenticación
mediante código y password para el ingreso del
Sistema).
El administrador podrá realizar sus consultas desde
dispositivos móviles (WAP).
b. Gestión de la Institución.
• Registro de la institución
• Eliminación de la Institución.
• Búsqueda de Institución.
• Localización de la Institución.
• Búsqueda de Grupo.
• Registro de modalidad.
• Modificación de la modalidad.
• Eliminación de la modalidad.
• Búsqueda de modalidad.
• Registro de UGEL.
• Eliminación de la UGEL.
• Búsqueda de UGEL.
• Registro de área
c. Gestión de Usuario.
• DNI.
• Nombres.
• Apellidos.
• Creación de usuario
• Eliminación de Usuario.
• Búsqueda de Usuario
d. Gestión de Inventario.
• Registro de bienes
• Eliminación de Bien.
• Búsqueda de Bien.
• Balance de inventario
• Registro de personal.
• Registro de cuenta.
I. HERRAMIENTAS.
c. EJECUCIÓN.
K. PROTOTIPO.
A. ESTIMACIONES DE ESFUERZO.
1. Funcionalidad común
Funcionalidad común(
autenticación y 1
accesibilidad desde
dispositivos móviles)
2. Gestión de Usuario.
Registro. modificación,
búsqueda, eliminación 1
del usuario.
Registro, modificación,
búsqueda, eliminación 2
del grupo, área,
departamento, UGEL y
modalidad.
Registro, modificación,
búsqueda, eliminación de 1
datos de la Institución.
Localizar Institución.
1
4. Gestión de Inventario.
Registro, modificación,
búsqueda, eliminación 1
del tipo de bien en
catálogo.
Registro, modificación,
búsqueda, eliminación de 1
bienes.
Generador del Balance de
inventario y 1
Reportes de
inventario(informes -
estadística).
Registro, modificación,
búsqueda, eliminación 1
del personal.
Registro, modificación,
búsqueda, eliminación de 1
cuenta contable.
B. PLANIFICACIÓN.
Funcionalidad
común
Gestión de
Institución.
Gestión de usuario
Gestión de
inventario
Gestión de personal
Gestión de cuenta
contable
Registro, modificación, 1
búsquedad, eliminación
del personal.
Estimación Inicial 3
Final 4
Registro, modificación, 1
búsqueda, eliminación
del tipo de bien en
catálogo.
Registro, modificación, 1
búsqueda, eliminación
del usuario.
Funcionalidad común. 1
Estimación Inicial 3
Final 2
Registro, modificación, 1
búsqueda, eliminación de
bienes.
Registro, modificación, 1
búsqueda, eliminación de
cuenta contable.
Estimación Inicial 2
Final 2
Localizar Institución. 1
Generador del Balance 1
de inventario y Reportes
de inventario (informes-
estadística).
Funcionalidad común X1
(autenticación y
accesibilidad desde
dispositivos móviles).
Estimación Inicial 3
Final 1
A. Primera Iteración.
Final 4
• Diagrama
- Interfaz Gráfica:
Se realizará varias hojas de estilo durante el
desarrollo del proyecto.
Se muestra el código de la hoja de estilo
“estilos.css”, se encuentra dentro de la carpeta
css.
.texto {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-style:italic;
font-weight: bold;
text-transform: capitalize;
color:#FFFFFF;
}
.mensaje{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: bold;
text-transform: capitalize;
color:#999999;
}
a:link {
color: #FFFFFF;
text-decoration: none;
}
h1 {
color:white;font-size:24px;text-align:center;
font-family:arial, helvetica, sans-serif;
}
.menu {
color:white;font-size:12px;text-align:center;
font-family:arial, helvetica, sans-serif;font-weight:bold
}
.fondotd{
background:black
}
<?php
//incluimos el archivo page.php que contiene la clase
require_once ("page.php");
/**
Creamos un objeto $ctrl de la clase PanelController para realizar las
configuraciones de los paneles(Los paneles contienen la cabecera, el
cuerpo, el menú y el pie de la página web).
*/
$ctrl->setMasterPanel("Content");
$ctrl->init();
<div id="center">
<?php
//Generamos el cuerpo de la página web.
$panel_Content->renderBegin();
require($panel_Content->getFileName());
$panel_Content->renderEnd();
//Fin del cuerpo.
?>
</div>
<div id="right">
<?php
//Generamos el menú derecho de la página web.
$panel_News->renderBegin();
require($panel_News->getFileName());
$panel_News->renderEnd();
//Fin del menu derecho.
?>
</div>
<br style="clear: both" />
<div id="footer">
<?php
//Generamos el pie de la página web.
$panel_Footer->renderBegin();
• Lógica-Código.
<?php
//variables que almacenan los datos para la conexión.
//Si es local
$hostname_inventario = "localhost";
/* en vez de local host puede ir la ip o el nombre del host en
donde esta alojado el servidor. */
$database_inventario = "inventariohw";
$username_inventario = "root";
$password_inventario = "741285";
<?php
//Realizamos la conexion con MySQL.
require_once('../../../Connections/inventario.php');
?>
<?php
/* Cargamos las clase para los avisos ajax ante un dato duplicado
en la base de datos.*/.
require_once('../../../includes/jaxon/widgets/webservice/webservice.php'
);
/* Configuramos los parametros de los avisos, para el codigo
modular si hubiera duplicado */
$web_service1 = new WebService('web_service1');
$web_service1->callFunction('checkearcodigo');
$web_service1->setParameter('form1.codigo_modular', 'form-value');
$web_service1->setResponseElement('duplicate_ie', 'set-innerhtml');
$web_service1->setActionElement('form1.codigo_modular', 'onBlur');
//Seleccionamos la base de datos.
mysql_select_db($database_inventario, $inventario);
<?php
//Liberamos memoria usada de las consultas realizadas.
mysql_free_result($ugel);
mysql_free_result($modalidad);
mysql_free_result($grupo);
?>
Registro, modificación, 1
búsqueda, eliminación
del tipo de bien en
catálogo.
Registro, modificación, 1
búsqueda, eliminación
del usuario.
Funcionalidad 1
común.(Autenticación)
Estimación Inicial 3
Final 2
• Diagrama
Usuario
<<include>>
Registrar usuario
Administrador
del sistema
Gestionde usuario
<<include>>
Cambiar clave
Gestionde inventario
• Interfaz Web.
<?php
//Realizamos la conexion a MySQL.
require_once('../../../Connections/inventario.php');
?>
<?php
/*Cargamos las clases para realizar las consultas y
modificaciones asincronas.*/
require_once('../../../includes/common/KT_common.php');
$maxRows_czona = $dtable_DWAjaxTable1->getMaxRows();
$pageNum_czona = 0;
if (isset($_GET['pageNum_czona'])) {
$pageNum_czona = $_GET['pageNum_czona'];
}
$NXTFilter_czona = "1=1";
if (isset($dtable_DWAjaxTable1_filter_sql)) {
$NXTFilter_czona = $dtable_DWAjaxTable1_filter_sql;
}
$NXTSort_czona = "nombre_ugel";
if (isset($dtable_DWAjaxTable1_order_sql)) {
$NXTSort_czona = $dtable_DWAjaxTable1_order_sql;
}
/**
Creamos un objeto de la clase PanelController, y
realizamos la configuración.
*/
$ctrl->setMasterPanel("Zona");
$ctrl->init();
?>
.style1 {
color: #000000;
font-weight: bold;
font-size: 24px;
}
</style>
<style type="text/css">
.style4 { color: #003366;
font-weight: bold;
font-size: 24px;
}
</style>
<p>
<?php
//Generamos el panel.
$panel_Zona->renderBegin();
require($panel_Zona->getFileName());
$panel_Zona->renderEnd();
?>
</p>
</body>
</html>
<?php
//Liberamos la memoria de las consultas realizadas.
mysql_free_result($czona);
//Finalizamos
?>
- Autenticación.
<?php
//Nos conectamos a MySQL.
require_once('Connections/inventario.php'); ?>
<?php
//Establecemos una variable global por seguridad.
DEFINE('HELWERGUERRA',TRUE);
$rutadirectorio = 'securePages/';
require_once($rutadirectorio."secure.php");
?>
• Test-Pruebas Unitarias.
Registro, modificación, 1
búsqueda, eliminación de
bienes.
Registro, modificación, 1
búsqueda, eliminación de
cuenta contable.
Estimación Inicial 2
Final 2
• Diagrama
Verificar catalogo
<<include>>
Gestiondeinventario
Administrador
del sistema
Gestiondecuentas
contables
1..n
inventario_ie
codigo_inventario
nombre_bien
forma_adquisicion
entidad_procedencia
fecha_adquisicion 0..n area
valor_libros
codigo_area
datos_adquisicion
nombre
unidad_medida
observacion
cantidad
valor_unitario
0..n 1 registrar_area()
valor_total
modificar()
estado_bien
buscar()
otros
eliminar()
registrar_inventario() 1
modificar()
buscar()
eliminar()
localizar()
1..n
personal
codigo_personal
dni
nombre
apellidos
direccion
telefono
email
observacion
registrar personal()
modificar()
buscar()
eliminar()
• Lógica-Código.
<?php
//Comprobamos si ha establecido sesion, por seguridad.
DEFINE('HELWERGUERRA',TRUE);
include("../../../funciones1.php");
//ruta al admin.
$scriptPath = "../../../";
$rutadirectorio = $scriptPath.'securePages/';
include($rutadirectorio."secure.php");
$thisPage = $_SERVER['PHP_SELF'];
?>
<?php
//Establecemos la conexion a MySQL.
php require_once('../../../Connections/inventario.php');
?>
<?php
/*Incluimos las clases para la aplicación, tablas dinamicas
y para la edición asincronica en estás*/
require_once('../../../includes/common/KT_common.php');
require_once('../../../includes/jaxon/widgets/dtable/dtable.php');
require_once('../../../includes/jaxon/widgets/editinplace/editinpla
ce.php');
/**
Creamos un objeto de la clase dtable, y lo inicializamos
con el conjunto de registros consultados.
*/
$NXTFilter_Recordset1 = "1=1";
if (isset($dtable_DWAjaxTable1_filter_sql)) {
$NXTFilter_Recordset1 = $dtable_DWAjaxTable1_filter_sql;
}
$NXTSort_Recordset1 = "codigo_usuario";
if (isset($dtable_DWAjaxTable1_order_sql)) {
$NXTSort_Recordset1 = $dtable_DWAjaxTable1_order_sql;
}
//Ejecutamos la consulta.
$query_Recordset1 = sprintf("SELECT * FROM usuario
WHERE %s ORDER BY %s ",
$NXTFilter_Recordset1,$NXTSort_Recordset1);
$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d",
$query_Recordset1, $startRow_Recordset1,
$maxRows_Recordset1);
$Recordset1 = mysql_query($query_limit_Recordset1,
$inventario) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
if (isset($_GET['totalRows_Recordset1'])) {
$totalRows_Recordset1 = $_GET['totalRows_Recordset1'];
} else {
<!—Cabecera de la página-->
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<title>Consulta Usuario</title>
<?php
echo $ajax_service->renderJavascriptStubs();
?>
<style type="text/css">
.style1 {
color: #000099;
font-weight: bold;
font-size: 24px;
}
.style2 {
font-size: 14px;
color: #FFFFFF;
font-weight: bold;
}
.style4 {font-size: 12px; color: #FFFF33; font-weight: bold; }
</style>
</head>
<p> </p>
<p class="style1">CONSULTA USUARIO </p>
<p class="style1"> </p>
<p>
<?php
/*Incuimos el archive PHP que nos permite mostrar la
estadistica (cuantos registros existen)*/
require("../../../includes/jaxon/widgets/dtable/nav/NAV_Text_Sta
tistics.inc.php");
?>
</caption>
<?php
//incluimos los botones para navegar si existiesen más
registros.
require_once("../../../includes/jaxon/widgets/dtable/nav/NAV_Te
xt_Navigation.inc.php");?> </td></tr></tfoot>
<tbody class="data">
<?php } ?>
<?php if ($totalRows_Recordset1 > 0) { ?>
<?php
//Liberamos la memoria utilizada, debido a la consulta
realizada.
mysql_free_result($Recordset1);
?>
<?php
//Realizamos la conexión a MySQL.
php require_once('../../../Connections/inventario.php'); ?>
<?php
/*Cargamos la clase que nos permite realizar consultas
cuando escribimos. */
require_once('../../../includes/jaxon/widgets/webservice/webser
vice.php');
function checkUsercuenta($loginUsername)
{
$LoginRS__query = "SELECT cuenta FROM cuenta WHERE
cuenta='".$loginUsername. "'";
mysql_select_db($GLOBALS['database_inventario'],
$GLOBALS['inventario']);
$MM_flag="MM_insert";
if (isset($_POST[$MM_flag])) {
$MM_dupKeyRedirect="../../avisos/avisoagregar/acuentas/avis
ocuenta.php";
$loginUsername= $_POST['cuenta'];
$LoginRS__query = "SELECT cuenta FROM cuenta WHERE
cuenta='".$loginUsername."'";
mysql_select_db($database_inventario, $inventario);
$LoginRS=mysql_query($LoginRS__query, $inventario) or
die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if($loginFoundUser){
$MM_qsChar = "?";
//append the username to the redirect page
if (substr_count($MM_dupKeyRedirect,"?") >=1)
$MM_qsChar = "&";
$MM_dupKeyRedirect = $MM_dupKeyRedirect .
$MM_qsChar ."requsername=".$loginUsername;
header ("Location: $MM_dupKeyRedirect");
exit;
}
}
//
//Esta function es para impedir la inyección SQL.
function GetSQLValueString($theValue, $theType,
$theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ?
addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
strtoupper(GetSQLValueString($_POST['nombre'], "text")),
strtoupper(GetSQLValueString($_POST['descripcion'], "text")),
GetSQLValueString($_POST['uit'], "text"));
<body>
<p align="center" class="tirj">Agregar Cuenta </p>
<p> </p>
<tr valign="baseline">
<td align="right" nowrap class="avisohw1">Cuenta:</td>
<td>
<div id="duplicate_cuenta"
style="color:yellow;"></div></td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="avisohw1">Nombre:</td>
<td><input name="nombre" type="text" value="" size="32"
maxlength="80"></td>
</tr>
<tr valign="baseline">
<td align="right" nowrap
class="avisohw1">Descripcion:</td>
<td><input name="descripcion" type="text" value=""
size="32" maxlength="80"></td>
</tr>
<tr valign="baseline">
<tr valign="baseline">
<td nowrap align="right"> </td>
<td><input name="submit" type="submit"
class="asectiontableheadera" value="Grabar" /></td>
</tr>
</table>
</form>
<p> </p>
</body>
</html>
• Test-Pruebas Unitarias.
Localizar Institución. 1
Generador del Balance 1
de inventario y Reportes
de inventario (informes-
estadística).
Funcionalidad común 1
(autenticación y
accesibilidad desde
dispositivos móviles).
Estimación Inicial 3
Final 1
• Diagrama
Localizar I.E.
Administrador
del sistema
Consulta dispositivo
móvil
Gestión de inventario
<<include>>
Genera Balance de
inventario
Usuario
Contador
Reporte
Archivo indice.php
<head>
</body>
</html>
Archivo almacenamarcador.php
<?php
// Cerramos el archivo.
@fclose($f);
<?php
- Reporte de inventario.
Archivo reporte1.php
</head>
<body>
<p> </p>
<?php do { ?>
<tr>
</tr>
</table>
<!--Fin de tabla-->
<p> </p>
<p> </p>
<!-- Leyenda-->
<p>Leyenda: </p>
<p>Área-Encargado</p>
<tr>
<td>codigo_area</td>
<td>nombre_area</td>
<td>nombre_personal</td>
<td>apellidos_personal</td>
<td>observacion_personal</td>
</tr>
<?php do { ?>
<tr>
</tr>
</table>
<p> </p>
<tr>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
</tr>
</table>
<p> </p>
//Liberamos la memoria.
mysql_free_result($reportecuenta);
mysql_free_result($reportetablacuenta);
mysql_free_result($areapersonal);
mysql_free_result($cabeceratabla);
?>
Archivo estadisticarespuesta.php
<?php
?>
$anchohorizontal =580;
$anchovertical = 420;
$ancho_char=180;
//Color de pixel.
$pixelcolor=ImageColorAllocate($estadistica,255,255,255);
//
if($arr[$i]>$max)
{
die("Los bienes no tienen dinero assignado o no hay bienes
registrados, para generar estadistica");
}
for($i=0;$i<$cont;$i++)
{
if(!($j<3))
{
$j=0;
}
else
{
$j++;
}
$iniciox=50+($i*$barwidth);
$finx=50 + ($i*$barwidth) + $barwidth;
$inicioy = 250-$arr[$i]*$ratio;
$finy = 250;
//
//
//Destruimos
ImageDestroy($estadistica);
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
</body>
</html>
<?php
?>
- Balance de inventario.
header("Content-type: text/vnd.wap.wml");
header("Cache-Control: no-cache, must-
revalidate");
header("Pragma: no-cache");
echo ("<?xml version='1.0'?>");
?>
Archivo index.php
<?php
//Cabecera-Header
include("wml/cabecera.php");
?>
<wml>
<refresh>
</refresh>
</onevent>
<onevent type="onenterbackward">
<refresh>
</refresh>
</onevent>
</do>
</p>
<?php
//La fecha es mostrada.
echo "Hoy es :".date(d)." de ".date(F)." del ".date(Y);
?>
</card>
</go>
</do>
<p>INVENTARIO</p>
<p>
USUARIO:<br/>
<br/>
</p>
</card>
</wml>
Archivo wap.php
<?php
//Cabecera-Header
include("cabecera.php");
?>
include("../../Connections/inventario.php");
mysql_select_db($database_inventario, $inventario);
$codigo_usuario = $_POST['codigo_usuario'];
$password = $_POST['password'];
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$cantidad = mysql_num_rows($Recordset1);
?>
<wml>
</do>
</card>
</wml>
<?php }else{
?>
<wml>
<p>Consultas:
<select>
<option value="1">Bien
<onevent type="onpick">
</go>
</onevent>
</option>
<option value="2">Area
<onevent type="onpick">
</go>
</onevent>
</option>
<option value="3">Personal
<onevent type="onpick">
</go>
</onevent>
</option>
<option value="4">Resumen
<onevent type="onpick">
</go>
</onevent>
</option>
<option value="5">Salir
</go>
</onevent>
</option>
</select>
</p>
</card>
</wml>
<?php
mysql_free_result($Recordset1);
?>
• Test-Pruebas Unitarias.
Autenticación
Gestión de Institución.
Gestión de usuario
Gestión de inventario
Gestión de personal
Gestión de cuenta
contable
Versión 0.1 0.2 0.3 0.4
Horas: 3*40=120 3*40=120 2*40=80 2*40=80
Total 400 Horas.
Equipos:
C. COSTO OPERATIVO.
A. BENEFICIOS TANGIBLES.
Del comité de inventarios se escogió a un integrante para que pueda
realizar la toma de inventarios, desgastando esté mucho tiempo y
cometiendo muchos errores.
Se prescindirá de un trabajador.
B. BENEFICIOS INTANGIBLES.
Ganancia anual:
Donde:
P = Valor presente.
F = Valor futuro.
n = Periodo de tiempo.
1
P = 3240/(1+0.087)
P = 2980.68
Conclusiones. 223
RECOMENDACIONES
Recomendaciones. 224
REFERENCIA BIBLIOGRÁFICA
Alarcón, R. (2000). Diseño orientado a objetos con UML (pp. 15-16). Madrid,
España: Editorial Eidos.
Cranford, J. (2005). DHTML y CSS advanced (pp. 25-26). Madrid, España: Editorial
Grupo Anaya S.A.
Duckett, J. (2005). Accessible XHTML and CSS web sites. Indiana, Estados Unidos
de América: Editorial Wiley Publishing INC.
Pressman, R. (2002). Ingeniería del software un enfoque práctico, (5ta ed.). Madrid,
España: Editorial McGRAW-HILL Companies.
Ramírez, L. (2002). Aplicando herramientas UML, (1ra ed.). Lima, Perú: Editorial
Macro.
Roque, J. (2005). Contabilidad computarizada con SISCONT, (1ra ed.). Lima, Perú:
Editorial Macro E.I.R.L.
Welling, L. y Thompson, L. (2005). Desarrollo web con PHP y MYSQL, (3ra ed.).
Madrid, España: Editorial Grupo Anaya, S.A.