Está en la página 1de 84

Facultad de Ingeniería de Sistemas e

Electrónica

Carrera Profesional de Ingeniería de Sistemas e


Informática

“Desarrollo de un Sistema Informático


para la gestión comercial de la
Bodega Bazar Mi Karito”

Trabajo que presenta el alumno:

CAJUSOL VALLEJOS, Alvaro Alonso

Chiclayo, Perú 2017

1
CONTENIDO
CAPÍTULO I: DEFINICION DEL PROBLEMA .....................................................................3
1.1. Descripción del Problema .....................................................................................4
1.2. Definición de Objetivos ..........................................................................................5
1.2.1. Objetivo General ..............................................................................................5
1.2.2. Objetivos Específicos .....................................................................................5
1.2.3. Alcances y Limitaciones ................................................................................5
1.2.3.1. Alcances ....................................................................................................5
1.2.3.2. Limitaciones ..............................................................................................6
1.2.4. Justificación......................................................................................................6
1.2.5. Estado del Arte .................................................................................................7
CAPÍTULO II: MARCO TEÓRICO ..........................................................................................9
2.1. Fundamento Teórico.............................................................................................10
CAPÍTULO III: DESARROLLO DE LA SOLUCIÓN ..........................................................26
3.1. Diseño de la Base de Datos: ...............................................................................27
3.2. Script de la Base de Datos ..................................................................................28
3.3. Scripts Funciones Para Correlativos ................................................................34
3.4. Scripts Transacción Compras ............................................................................35
3.5. Scripts Transacción Ventas ................................................................................40
CAPÍTULO IV: RESULTADOS .............................................................................................46
4.1. Interfaces .................................................................................................................47
4.2. Reportes ..................................................................................................................60
4.3. Presupuesto............................................................................................................64
CONCLUSIONES....................................................................................................................65
ANEXOS...................................................................................................................................66
Manual de Usuario ............................................................................................................66
GLOSARIO ..............................................................................................................................82
REFERENCIAS .......................................................................................................................84

2
CAPÍTULO I:
DEFINICION
DEL
PROBLEMA

3
1.1. Descripción del Problema

El proceso de compra-venta hoy en día es un factor muy importante y


determinante para las decisiones de cualquier persona o empresa, ya
que interviene la calidad en dicho proceso.
En la actualidad la competencia entre las empresas es muy fuerte, ya
que el mundo del comercio se ha vuelto mucho más competitivo y por
otro lado el cliente es lo más importante, puesto que él es quien impone
las condiciones y las empresas son las que deben encargarse de
satisfacer las necesidades de los mismos.
Es por eso que las empresas permanecen dentro del mercado por medio
de una ventaja competitiva y para lograrlo deben contar con ciertas
características como: innovación, de tecnologías, de productos,
prestigio, certificaciones, premios, procesos, sistemas de calidad, etc.
para así brindarles un valor agregado a sus clientes.
Bodega Bazar “Mi Karito” es una empresa dedicada al mercado minorista
con deseos de comenzar a comercializar y distribuir en forma rentable
en los canales de mayoreo, medio mayoreo productos del ramo
abarrotes, la calidad de los productos que comercializa y la entrega
oportuna de los mismos depende totalmente de sus proveedores.
Bodega Bazar “Mi Karito” está al tanto de lo importante que es la
eficiencia en los procesos para poder ofrecer un servicio de calidad a sus
clientes y por lo tanto seguir siendo de la preferencia de los mismos, es
por eso que mediante la aplicación de un modelo de calidad cuente con
una ventaja competitiva que los distinga.
El planteamiento del problema es una oportunidad para implementar un
sistema de calidad para mejorar los procesos y así obtener un valor
agregado desde la cadena de suministros hasta la venta final de sus
productos y servicios. La empresa está consciente del rápido crecimiento
en cuanto a la competitividad entre las empresas, así como de las ventas
de los productos, es por eso que la estructura de sus procesos necesita
una mejora en la calidad de sus procesos. Por estas razones “Bodega
Bazar Mi Karito” debe de realizar un diagnóstico para conocer sus áreas
de oportunidad y así contar con las bases necesarias para realizar

4
observaciones y recomendaciones con el fin de obtener una mejora en
la calidad de sus procesos. Ya que Bodega Bazar “Mi Karito” debe
incrementar y mantener sus ventas dentro del mercado, mejorar la
satisfacción de sus clientes, diferenciarse de la competencia y ser la
preferencia de los clientes debe mejorar sus procesos para garantizar la
calidad de su servicio hacia los clientes. Para lograr todo lo anterior es
necesario contar con los procesos de calidad adecuados para beneficiar
a la empresa y sus clientes.

1.2. Definición de Objetivos

1.2.1. Objetivo General


Desarrollar un sistema informático para la empresa “Bodega Bazar
Mi Karito” con el propósito de gestionar su actividad comercial y así
hacer más eficientes sus procesos.

1.2.2. Objetivos Específicos


 Diagnosticar el estado actual de la gestión comercial de la “Bodega
Bazar Mi Karito”.
 Identificar los factores influyentes en la gestión comercial de la
“Bodega Bazar Mi Karito”.
 Diseñar un sistema informático para mejorar la gestión comercial
de la “Bodega Bazar Mi Karito”.
 Estimar los resultados que generará la implantación del sistema
informático para la gestión comercial de la “Bodega Bazar Mi
Karito”

1.2.3. Alcances y Limitaciones

1.2.3.1. Alcances
Se realizará el diseño y desarrollo de un sistema
informático para la gestión comercial de la “Bodega Bazar
Mi Karito”.

5
1.2.3.2. Limitaciones
 Al proyecto se le dedicarán 10 horas semanales en
promedio, teniendo en cuenta que dicho tiempo se
ejercerá de manera cambiante, ya sea de día, tarde o
noche, de manera que se pueda cumplir con lo
establecido, dando como resultado cada día un
avance porcentual, en el cual se considerarán los
aspectos tales como el diseño, la programación y
demás, los cuales son necesarios para cumplir con lo
establecido.
 El proyecto será aplicado al área de Administración,
por lo que existe limitaciones para recabar
información detallada debido al escaso tiempo que
poseen para atendernos.
 La empresa no dispone del presupuesto necesario
para la óptima realización del proyecto.

1.2.4. Justificación

“Bodega Bazar Mi Karito” desea incrementar sus utilidades, así


como ser la preferida del público, todo esto con el objetivo de lograr
una ventaja sobre sus competidores y así potenciar su imagen
empresarial.
Por lo anteriormente mencionado y con el fin de mejorar la
productividad y el rendimiento de la “Bodega Bazar Mi Karito”, es
fundamental implementar un sistema informático de gestión
comercial que brinde eficiencia y eficacia.
La implementación de este sistema en la “Bodega Bazar Mi Karito”,
brindará la posibilidad de obtener grandes ventajas, incrementar la
capacidad de organización de la empresa, y de esta manera
mejorar los procesos, tener a mano los reportes de ventas,
compras e inventario (control de sus productos), además el sistema
proporcionará información clave para la toma de decisiones; esta

6
información será sencilla, clara, expedita, veraz, precisa,
consistente y fácil de analizar e interpretar.
Cabe recalcar, que el sistema propuesto ofrecerá una gran
cantidad de ventajas subyacentes, más allá del rédito que significa
para la toma de decisiones y los procesos administrativos. El
sistema que se desarrollará será fácil de usar, para que así los
empleados logren sacarle provecho al 100%, lo que les ayudará a
cumplir rápidamente con los objetivos planteados por la empresa.
Por todo ello, es importante destacar que el desarrollo de un
sistema informático para la gestión comercial en la “Bodega Bazar
Mi Karito” implica un cambio organizativo rotundo, debido que no
sólo afecta a la administración de la empresa, sino también a sus
empleados y habilidades, por otra parte, podemos concluir que es
de vital importancia utilizar tecnologías de información y
comunicación adecuadas para el procesamiento y transmisión de
los datos que se gestionarán en el sistema.

1.2.5. Estado del Arte

Según (Herrero Palomo, 2001) la gestión comercial es la que lleva


a cabo la relación de intercambio de la empresa con el mercado. Si
analizamos esto desde el punto de vista del proceso productivo, la
función o gestión comercial constituiría la última etapa de dicho
proceso, pues a través de la misma se suministran al mercado los
productos de la empresa y a cambio aporta recursos económicos a
la misma. Ahora bien, la gestión comercial no sólo es la última
etapa de proceso empresarial, ya que contemplada así cumpliría
únicamente una función exclusiva de venta y, sin embargo la
gestión comercial comprende desde el estudio de mercado hasta
llegar a la venta o colocación del producto a disposición del
consumidor o cliente, incluyendo las estrategias de venta, y la
política de ventas en el ámbito empresarial (todo lo referente a
fijación de objetivos, sistema de incentivos para el caso de que

7
sean alcanzados tales objetivos y, en su caso, el control del
incumplimiento así como el grado y las causas del mismo).

Y como complementa (De Borja de Carlos Martín-Lagos, 2008) la


gestión comercial forma parte esencial del funcionamiento de las
organizaciones: decisiones relativas a qué mercados acceder; con
qué productos; qué política de precios aplicar; cómo desarrollar una
sistemática comercial eficaz,[…] forman parte del día a día de las
organizaciones, además de ser aspectos que emanan
directamente de las decisiones derivadas de la estrategia
corporativa.

8
CAPÍTULO II:
MARCO
TEÓRICO

9
2.1. Fundamento Teórico

El concepto de sistema está en la actualidad ampliamente generalizado.


Queramos o no estamos utilizando los sistemas continuamente. La vida
misma está compuesta de sistemas, y nosotros formamos parte de los
sistemas que rigen la vida de los seres humanos y por ende los Sistemas
de Actividad Humana (SAH). Por otra parte, todo el mundo utiliza esta
palabra sin saber muy bien su significado. Se confunde sistema con
procedimiento, se aplican a cosas que no lo son y no se comprende su
verdadero alcance y significado. Esto se hace más evidente a medida
que el mundo está más globalizado.

Un Sistema es un conjunto de elementos interactuantes.


Esta definición dada por (Von Bertalanffy, 1992) es la más simple; pero
si se profundiza en ella, se hace extensiva a la siguiente: Un Sistema es
un conjunto de elementos que relacionados entre sí contribuyen a un fin.

Y como (Delgado Gutiérrez, 2002) complementa: No basta con estudiar


los elementos y luego ensamblarlos, limitándose a dar una interpretación
subjetiva sobre el Todo, sino que es necesario someter a tratamiento
científico también a ese todo.

Existen distintos tipos de sistemas, por citar algunos tenemos:

- Sistemas Naturales: Son aquellos donde no se observa intervención


de la mano del hombre. Por ejemplo, Los bosques, los lagos, los
manglares, etc.

- Sistemas Artificiales: Son aquellos en los que de alguna manera ha


estado presente la mano del hombre. Por ejemplo, una represa, un
edificio, una empresa, etc.

10
- Sistemas Concretos: Son aquellos que en el mundo tienen una
presencia física, por lo que son susceptibles a nuestros sentidos. Por
ejemplo, las máquinas, los artefactos, etc.

- Sistemas Abstractos: Son aquellos que están representados en


nuestros modelos mentales y no están físicamente identificados en
el mundo real. Por ejemplo, el número, los modelos, etc.

- Sistemas Abiertos: Son aquellos que están en completa interacción


con el medio que los rodea, intercambiando con el materia, energía
e información. Por ejemplo, cualquier objeto que encaje en la
definición de sistema.

- Sistemas Cerrados: Son todos aquellos que no necesitan de su


medio para subsistir.

- Sistemas Duros: Aquellos sistemas claramente estructurados,


cuantificables y simples.

- Sistemas Blandos: Aquellos sistemas no estructurados, de


características subjetivas, no cuantificables y complejos.

A los sistemas podemos clasificarlos por:

a. POR SU JERARQUÍA:

Planteada en el libro de (Rodríguez Delgado, 1994), en el que afirma


que para comprender la estructura de cualquier sistema desde el
punto de vista analítico hemos de examinar tanto su composición
interna como las funciones que desempeña y sus relaciones con el
entorno global y con los entornos específicos con los que interactúa.
Para desarrollar este tipo de clasificación debemos tratar un término
relacionado a éste, el Sistema Referencia. El cual por definición es

11
cualquier sistema desde el átomo, a la molécula, a la sociedad,
empresa, etc., en la que se proyecta la atención del investigador.
El sistema referencia puede ser individual o colectivo, como un
átomo, un conjunto de átomos, un ser humano, un grupo de seres
humanos, etc.
Una vez identificado el sistema referencia por el observador es
necesario definirlo a través de la identificación de los siguientes
componentes:

- Suprasistemas:
Que lo engloban o de los que depende. Si se trata de la filial de una
empresa, ésta dependerá de su central, a su vez dependerá, en
ciertos aspectos de otros sistemas políticos o administrativos,
nacionales o internacionales.
Una universidad, considerada como un sistema referencia, puede ser
autónoma o depender de Asamblea Nacional de Rectores (ANR), al
que consideramos un suprasistema del sistema Universidad, así
como también desde el punto de vista económico podríamos hablar
en su función de suprasistema al Ministerio de Economía y Finanzas
(MEF) principalmente si la Universidad referida es estatal.

- Infrasistemas:
Depende jerárquicamente del sistema referencia.
De una Universidad pueden depender infrasistemas autónomos
como una imprenta independiente.
Debe tenerse en cuenta que estos conceptos son relativos, y que en
ciertos casos, la calificación de infrasistema dependerá de la
conveniencia de nuestros esquemas conceptuales o de los criterios
de diferenciación que resulten más convenientes.
El concepto de infrasistema se diferencia del de componente o
Subsistema por cuanto el infrasistema está estructural y
funcionalmente diferenciado del sistema de referencia. Una empresa
pequeña o mediana que suministra contractualmente productos o
servicios a otra empresa o a la Administración Pública, y que

12
depende de estos contratos para su subsistencia, puede
considerarse un Infrasistema.
Los conceptos indicados actúan como estructuras algebraicas
abstractas, que sólo adquieren valores definidos cuando se aplican a
situaciones concretas.

SUPRASISTEMA A SUPRASISTEMA B

SISTEMA DE
REFERENCIA

INFRASISTEMA Ia1 INFRASISTEMA Ia2

Figura. Nº 1: (Rodríguez Delgado, 1994)


Relación Jerárquica de los sistemas. Suprasistemas–Infrasistemas

- Isosistemas:
Sistema de jerarquía y estructura análoga al sistema referencia.
Todos los seres humanos, considerados como tales, son
Isosistemas, como lo son Ministerios de un gobierno, los profesores
de una Universidad o las empresas de análoga estructura jurídica o
de igual especialidad. Los Isosistemas poseen estructuras, normas y
comportamientos análogos y, aunque estén interrelacionados, no se
hallan subordinados unos de otros.
Los Isosistemas no tienen porque ser exactamente iguales y sus
comportamientos pueden ser muy diferentes entre sí. Tanto pueden
colaborar como entrar en conflicto, como en el caso de la
competencia ínter empresarial o del choque de intereses políticos o
estratégicos entre grupos sociales o entre estados.

13
- Heterosistemas:
Son sistemas de nivel análogo al sistema de referencia, pero
perteneciente a otro conjunto o clase.
Si consideramos a una empresa pública como sistema referencia
entonces una empresa privada sería su heterosistema, siempre y
cuando la definición del sistema referencia plantee a éste como tal.

HETERO
SISTEMA P SUPRAISO
SISTE
SISTEMA B

SISTEMA DE
REFERENCIA
ISO
HETERO SISTEMA B
SISTEMA Q

Figura 2: (Rodríguez Delgado, 1994)

Relación Jerárquica de los sistemas. (Heterosistemas – Isosistemas)

b. Por sus elementos:

Sistemas y Subsistemas, Este tipo de clasificación esta basada en la


relación continente contenido, donde se identifican el sistema
referencia y sus elementos o componentes. Por ejemplo, El Perú y
sus 24 departamentos, ahora si el observador evalúa el concepto
regionalización tendría otro tipo de subsistemas, pero con el mismo
sistema referencia. En conclusión, caemos en lo relativo, y esto es
en lo relativo a los modelos mentales que manejamos o los objetivos
del estudio.

14
SUBSIS
SISTEMA DE SUBSIS TEMA A2
TEMA A1
REFERENCIA
SUBSIS
TEMA A3

Figura 3: (Rodríguez Delgado, 1994)


Sistemas y Subsistemas

Con la definición de Sistema ya clara, pasaremos a definir los sistemas


de información:

Un sistema de información es un conjunto de elementos


interrelacionados con el propósito de prestar atención a las demandas
de información de una organización, para elevar el nivel de
conocimientos que permitan un mejor apoyo a la toma de decisiones y
desarrollo de acciones. (Peña Ayala, 2006)

Otros autores como (Peralta, 2008), de una manera más acertada define
sistema de información como: conjunto de elementos que interactúan
entre sí con el fin de apoyar las actividades de una empresa o negocio.
Teniendo muy en cuenta el equipo computacional necesario para que el
sistema de información pueda operar y el recurso humano que interactúa
con el Sistema de Información, el cual está formado por las personas
que utilizan el sistema.

Un sistema de información realiza cuatro actividades básicas: entrada,


almacenamiento, procesamiento y salida de información.

15
Entrada de Información: Es el proceso mediante el cual el Sistema de
Información toma los datos que requiere para procesar la información.
Las entradas pueden ser manuales o automáticas. Las manuales son
aquellas que se proporcionan en forma directa por el usuario, mientras
que las automáticas son datos o información que provienen o son
tomados de otros sistemas o módulos. Esto último se denomina
interfases automáticas. Las unidades típicas de entrada de datos a las
computadoras son las terminales, las cintas magnéticas, las unidades de
diskette, los códigos de barras, los escáners, la voz, los monitores
sensibles al tacto, el teclado y el mouse, entre otras.

Almacenamiento de información: El almacenamiento es una de las


actividades o capacidades más importantes que tiene una computadora,
ya que a través de esta propiedad el sistema puede recordar la
información guardada en la sección o proceso anterior. Esta información
suele ser almacenada en estructuras de información denominadas
archivos. La unidad típica de almacenamiento son los discos magnéticos
o discos duros, los discos flexibles o diskettes y los discos compactos
(CD-ROM).

Procesamiento de Información: Es la capacidad del Sistema de


Información para efectuar cálculos de acuerdo con una secuencia de
operaciones preestablecida. Estos cálculos pueden efectuarse con datos
introducidos recientemente en el sistema o bien con datos que están
almacenados. Esta característica de los sistemas permite la
transformación de datos fuente en información que puede ser utilizada
para la toma de decisiones, lo que hace posible, entre otras cosas, que
un tomador de decisiones genere una proyección financiera a partir de

16
los datos que contiene un estado de resultados o un balance general de
un año base.

Salida de Información: La salida es la capacidad de un Sistema de


Información para sacar la información procesada o bien datos de entrada
al exterior. Las unidades típicas de salida son las impresoras, terminales,
diskettes, cintas magnéticas, la voz, los graficadores y los plotters, entre
otros. Es importante aclarar que la salida de un Sistema de Información
puede constituir la entrada a otro Sistema de Información o módulo. En
este caso, también existe una interfase automática de salida.

Después de tener la idea de que es un sistema de información,


mencionaremos su clasificación:

Existen varios tipos de Sistemas de Información, desde el punto de vista


administrativo éstos se pueden clasificar en una forma de pirámide.
(Burgos Cardemil, 2011)

Figura 4: (Burgos Cardemil, 2011)


Clasificación de los Sistemas de Información

Nivel operativo
Se utilizan para realizar un seguimiento de las actividades y operaciones
básicas de una organización.

17
- Sistema de Procesamiento de Transacciones (TPS)
Recolectan, almacenan, modifican y recuperan la información
generada por las transacciones producidas en una organización. Si
durante una transacción se produce un error, el TPS debe ser capaz
de deshacer las operaciones realizadas hasta ese momento. Es muy
útil para el procesamiento de transacciones on-line.

Ejemplo: la Corporación Financiera Internacional (CFI), filial del


Banco Internacional para la reconstrucción y el Desarrollo, que
busca inversores privados en países más desarrollados transfiriendo
los capitales aportados por éstos a empresas privadas de países
subdesarrollado con capital privado insuficiente.

Nivel de conocimiento
Se utilizan para el mejoramiento de la calidad de los servicios de la
organización y aporte de nuevos conocimientos, además de incrementar
la productividad de los usuarios del sistema.

- Sistemas de Conocimiento (KWS)


Auxilian a los trabajadores en la creación e integración de nuevo
conocimiento en la organización. Están diseñados para aumentar la
productividad de los trabajadores.

Ejemplo: aplicaciones como Photoshop con la que diseñadores


pueden crear arte publicitario.

- Sistemas de Automatización de Oficina (OAS)


Aplicaciones destinadas a ayudar al trabajo diario del administrativo
de una organización, forman parte de este tipo de software los
procesadores de textos, las hojas de cálculo, los editores de
presentaciones, los clientes de correo electrónico, etc.

Ejemplo: Microsoft Office.

18
Nivel administrativo
Son utilizados por los administradores de nivel medio en la toma de
decisiones. Tratan y comparan resultados relevantes para la compañía,
y estudian sus trayectorias.

- Sistemas de Información Gerencial (MIS)


Son el resultado de interacción colaborativa entre personas,
tecnologías y procedimientos. Apoyan a nivel administrativo
entregando información útil para el planteamiento, control y toma de
decisiones.
Ejemplo: sistema que reúna información de sistemas de información
de nivel productivo sobre los productos (pedidos, costos y gastos) y
genere reportes para la toma de decisiones. La mayoría de los
informes para control administrativo están basados en resúmenes
de las transacciones.

- Sistemas de Apoyo a la Toma de Decisiones (DSS)


Herramienta para realizar el análisis de las diferentes variables de
un negocio con la finalidad de apoyar el proceso de toma de
decisiones. Su principal característica es la capacidad de análisis
multidimensional (OLAP) que permite profundizar en la información
hasta llegar a un alto nivel de detalle, analizar datos desde diferentes
perspectivas, realizar proyecciones de información para pronosticar
lo que puede ocurrir en el futuro, análisis de tendencias, análisis
prospectivo, etc.

Ejemplo: el sistema implantado por la New York State Office of


General Services que permite que los ejecutivos verifiquen el estado
por programa, comparando presupuestos y gastos y mostrando el
gasto estimado hasta el final del año fiscal.

19
Nivel estratégico
Están basados en los resultados estratégicos a largo plazo de la
compañía, son útiles para poder hacer frente a los impactos producidos
por cambios en los negocios.

- Sistemas de Soporte Gerencial (SSG)


Trabajan con información interna y externa a la organización y están
diseñados para abordar la toma de decisiones que requieren juicio,
evaluación y comprensión.

Ejemplo: un ejecutivo puede utilizar el sistema para conocer las


ventas por país, rango etáreo y línea de producto y, además, obtener
el crecimiento esperado del segmento para los próximos 5 años en
bases de datos externas.

- Sistemas Expertos (SE)


Es una aplicación informática capaz de solucionar un conjunto de
problemas que exigen un gran conocimiento sobre un determinado
tema. Emulan el comportamiento de un experto en un dominio
concreto y en ocasiones son usados por éstos. Con los sistemas
expertos se busca una mejor calidad y rapidez en las respuestas
dando así lugar a una mejora de la productividad del experto.

Ejemplo: un sistema MRP (Manufacturing Resoure Planning)


diseñado para reducir el desperdicio en el proceso productivo.

Ya conociendo la clasificación de los sistemas de información, veremos


que para desarrollar un sistema se requiere de una “serie de pasos” para
tener un resultado bueno.

Según (Elmasri & Navathe, 2007), el ciclo de vida de un sistema de


información comprende las siguientes etapas:

20
1. Análisis de viabilidad. Esta fase está relacionada con el análisis de
las áreas potenciales de la aplicación, la identificación de los costes de
obtención y diseminación de información, la realización de los estudios
preliminares sobre costes-beneficios, la determinación de la complejidad
de los datos y los procesos, y el establecimiento de las prioridades entre
las aplicaciones.

2. Recopilación de requisitos y análisis. Se recopilan los requisitos de


forma detallada interactuando con los usuarios potenciales y los grupos
de usuarios, a fin de identificar sus problemas y necesidades
particulares. Se identifican también las dependencias entre las
aplicaciones, la comunicación y los procedimientos de comunicación.

3. Diseño. Esta fase tiene dos aspectos: el diseño del sistema de base
de datos y el diseño de los sistemas de aplicaciones(programas) que
usan y procesan la información.

4. Implementación. Se implementa el sistema de información, se carga


la base de datos, y se implantan y prueban las transacciones.

5. Validación y pruebas de aceptación. Se valida el sistema en


términos de rendimiento según los requisitos de las reuniones con los
usuarios. El sistema se verifica contra criterios de rendimiento y
especificaciones de comportamiento.

6. Implantación, operativa y mantenimiento. Esta fase incluye la


conversión de los usuarios desde los sistemas antiguos y su formación
en los nuevos. La fase operativa empieza cuando las funciones de todos
los sistemas están operativas y se han validado.
A medida que aparecen nuevos requisitos o aplicaciones, todos ellos
deben pasar por todas las fases previas hasta que son validados e
incorporados al sistema. La monitorización del rendimiento y el
mantenimiento del sistema son actividades importantes durante esta
fase.

21
Ya conociendo los ciclos de vida de un sistema, pasaremos a hablar
sobre los lenguajes de programación los cuales son necesarios para la
fabricación de los sistemas informáticos.

Según (Rodríguez Sala, Santamaría Arana, Rabasa Dolado, & Martínez


Bonastre, 2003) un lenguaje de programación es un lenguaje artificial
que se utiliza para expresar programas de ordenador.

Cada ordenador, según su diseño, “entiende” un cierto conjunto de


instrucciones elementales (lenguaje máquina). No obstante, para facilitar
la tarea del programador, se dispone también de lenguajes de alto nivel
más fáciles de manejar y que no dependen del diseño específico de cada
ordenador. Los programas escritos en un lenguaje de alto nivel no
podrán ser ejecutados por un ordenador mientras no sean traducidos al
lenguaje propio de éste.

Para definir un lenguaje de programación es necesario especificar:

 Conjunto de símbolos y palabras claves utilizables.

 Reglas gramaticales para construir sentencias (instrucciones,


ordenes) sintácticas y semánticamente correctas.

o Sintaxis: Conjunto de normas que determinan cómo


escribir las sentencias del lenguaje.

o Semántica: Interpretación de las sentencias. Indica el


significado de las mismas.

Según (Durán, Gutierrez, & Pimentel, 2007) el lenguaje de programación


Java surgió en los años 90 como un lenguaje orientado a objetos
sencillo, fácil de usar, potente y muy bien adaptado para la programación
de aplicaciones en red. Durante el resto del libro se van a presentar
cientos de ejemplos y problemas resueltos en Java. Sin embargo, os
parece interesante presentar aquí un primer ejemplo sencillo y explicar
sobre el mismo los elementos fundamentales del lenguaje.

22
La primera parte del PrimerPrograma se compone de tres elementos:
comentarios, sentencia import y declaración de clases. Estos tres
componentes se incluyen universalmente en todos los programas de
Java.

Se puede escribir un programa Java que incluya una única declaración


de clase, pero eso no es normal. En cualquier programa no trivial, verá
estos tres componentes. Vamos a explicar los tres componentes y sus
subcomponentes en esta sección.

Para poder construir un programa en java es necesario un IDE para el


manejo de estos archivos, por todo esto surgió como una solución la
plataforma de desarrollo Netbeans IDE.

En su página web (NetBeans, 2017) nos proporciona la siguiente


definición: Es un proyecto de código abierto de gran éxito con una gran
base de usuarios, una comunidad en constante crecimiento, y con cerca
de 100 socios (¡y subiendo!) en todo el mundo. Sun MicroSystems fundó
el proyecto de código abierto NetBeans en junio 2000 y continúa siendo
el patrocinador principal de los proyectos.
A día de hoy hay disponibles dos productos: el NetBeans IDE y el
NetBeans Plataform.
El NetBeans IDE es un entorno de desarrollo - una herramienta para
programadores pensada para escribir, compilar, depurar y ejecutar
programas. Está escrito en Java pero puede servir para cualquier otro
lenguaje de programación. Existe además un número importante de

23
módulos para extender el IDE NetBeans. El IDE NetBeans es un
producto libre y gratuito sin restricciones de uso.
También disponible está el NetBeans Platform; una base modular y
extensible usada como una estructura de integración para crear
aplicaciones de escritorio grandes. Empresas independientes asociadas,
especializadas en desarrollo de software, proporcionan extensiones
adicionales que se integran fácilmente en la plataforma y que pueden
también utilizarse para desarrollar sus propias herramientas y
soluciones.
Ambos productos son de código abierto y gratuito para el uso tanto
comercial y como no comercial. El código fuente está disponible para su
reutilización de acuerdo con la Common Development and Distribution
License (CDDL).

Además de netbeans se necesita un gestor de base de datos para asi


almacenar, modificar y eliminar datos, los cuales serán procesados para
posteriormente obtener información necesaria para la empresa, por ello
surge PostgreSQL.

Según su página oficial (PostgreSQL, 2017) PostgreSQL es un poderoso


sistema de base de datos relacional de objetos de código abierto. Cuenta
con más de 15 años de desarrollo activo y una arquitectura probada que
le ha valido una sólida reputación de fiabilidad, integridad de datos y
corrección.

Se ejecuta en todos los principales sistemas operativos, incluyendo


Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, macOS, Solaris, Tru64) y
Windows. Es totalmente compatible con ACID, tiene soporte completo
para claves externas, combinaciones, vistas, disparadores y
procedimientos almacenados (en varios idiomas). Incluye la mayoría de
los tipos de datos SQL: 2008, incluyendo INTEGER, NUMERIC,
BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL y TIMESTAMP.
También admite el almacenamiento de objetos grandes binarios,
incluyendo imágenes, sonidos o video. Tiene interfaces de programación
nativas para C / C ++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, entre
otros,

Una base de datos de clase empresarial, PostgreSQL cuenta con


funciones sofisticadas como el MVCC (Multi-Version Concurrency
Control), recuperación de punto en el tiempo, tablespaces, replicación
asíncrona, transacciones anidadas (savepoints), copias de seguridad en

24
línea / Para la tolerancia a fallos. Soporta conjuntos de caracteres
internacionales, codificaciones de caracteres multibyte, Unicode, y es
local-consciente para la clasificación, la mayúsculas y el formato. Es
altamente escalable tanto en la gran cantidad de datos que puede
administrar como en el número de usuarios concurrentes que puede
acomodar. Existen sistemas PostgreSQL activos en entornos de
producción que gestionan más de 4 terabytes de datos. Algunos límites
generales de PostgreSQL se incluyen en la tabla siguiente.

25
CAPÍTULO III:
DESARROLLO
DE LA
SOLUCIÓN

26
3.1. Diseño de la Base de Datos:

El diseño de la base de datos cuenta con 23 tablas en PostgreSQL, las


cuales mencionamos a continuación:

27
3.2. Script de la Base de Datos
CREATE TABLE correlativo (
tabla character varying(100) NOT NULL,
numero integer NOT NULL,
CONSTRAINT pk_correlativo PRIMARY KEY (tabla) );

CREATE TABLE area (


codigo_area serial NOT NULL,
descripcion character varying(50) NOT NULL,
estado character(1),
CONSTRAINT pk_area PRIMARY KEY (codigo_area) );

CREATE TABLE cargo (


codigo_cargo serial NOT NULL,
descripcion character varying(50) NOT NULL,
estado character(1),
CONSTRAINT pk_cargo PRIMARY KEY (codigo_cargo) );

CREATE TABLE marca (


codigo_marca integer NOT NULL,
descripcion character varying(50) NOT NULL,
estado character(1),
CONSTRAINT pk_marca PRIMARY KEY (codigo_marca) );

CREATE TABLE configuracion (


codigo integer NOT NULL,
descripcion character varying(100) NOT NULL,
valor character varying(100) NOT NULL,
CONSTRAINT pk_configuracion PRIMARY KEY (codigo) );

CREATE TABLE tipo_comprobante (


codigo_tipo_comprobante character(2) NOT NULL,
descripcion character varying(50),
CONSTRAINT pk_tipo_comprobante PRIMARY KEY (codigo_tipo_comprobante) );

CREATE TABLE linea (


codigo_linea integer NOT NULL,
descripcion character varying(50) NOT NULL,
estado character(1),
CONSTRAINT pk_linea PRIMARY KEY (codigo_linea) );

CREATE TABLE departamento (


codigo_departamento character(2) NOT NULL,
nombre character varying(100) NOT NULL,
CONSTRAINT pk_departamento PRIMARY KEY (codigo_departamento) );

28
CREATE TABLE provincial (
codigo_departamento character(2) NOT NULL,
codigo_provincia character(2) NOT NULL,
nombre character varying(500) NOT NULL,
CONSTRAINT pk_provincia PRIMARY KEY (codigo_departamento, codigo_provincia),
CONSTRAINT fk_provincia_departamento FOREIGN KEY (codigo_departamento)
REFERENCES departamento (codigo_departamento) );

CREATE TABLE distrito (


codigo_departamento character(2) NOT NULL,
codigo_provincia character(2) NOT NULL,
codigo_distrito character(2) NOT NULL,
nombre character varying(500) NOT NULL,
CONSTRAINT pk_distrito PRIMARY KEY (codigo_departamento, codigo_provincia,
codigo_distrito),
CONSTRAINT fk_distrito_provincia FOREIGN KEY (codigo_departamento,
codigo_provincia)
REFERENCES provincia (codigo_departamento, codigo_provincia) );

CREATE TABLE proveedor (


ruc_proveedor character(11) NOT NULL,
razon_social character varying(100) NOT NULL,
direccion character varying(70) NOT NULL,
telefono character varying(20),
estado character(1),
representante_legal character varying(50) NOT NULL,
CONSTRAINT pk_proveedor PRIMARY KEY (ruc_proveedor) );

CREATE TABLE categoria (


codigo_categoria integer NOT NULL,
descripcion character varying(50) NOT NULL,
codigo_linea integer NOT NULL,
estado character(1),
CONSTRAINT pk_categoria PRIMARY KEY (codigo_categoria),
CONSTRAINT fk_categoria_linea FOREIGN KEY (codigo_linea)
REFERENCES linea (codigo_linea) );

CREATE TABLE serie_comprobante (


codigo_tipo_comprobante character(2) NOT NULL,
numero_serie integer NOT NULL,
numero_documento integer,
CONSTRAINT pk_serie_comprobante PRIMARY KEY (codigo_tipo_comprobante,
numero_serie),
CONSTRAINT serie_comprobante_codigo_tipo_comprobante_fkey FOREIGN KEY
(codigo_tipo_comprobante)
REFERENCES tipo_comprobante (codigo_tipo_comprobante) );

29
CREATE TABLE contacto (
dni_contacto character varying(50) NOT NULL,
apellidos character varying(50) NOT NULL,
nombres character varying(50) NOT NULL,
telefono character varying(20) NOT NULL,
email character varying(50),
codigo_area integer,
codigo_cargo integer,
estado character(1),
CONSTRAINT pk_contacto PRIMARY KEY (dni_contacto),
CONSTRAINT fk_contacto_area FOREIGN KEY (codigo_area)
REFERENCES area (codigo_area),
CONSTRAINT fk_contacto_cargo FOREIGN KEY (codigo_cargo)
REFERENCES cargo (codigo_cargo) );

CREATE TABLE proveedor_contacto (


dni_contacto character(8) NOT NULL,
ruc_proveedor character(11) NOT NULL,
estado character(1) NOT NULL,
CONSTRAINT pk_proveedor_contacto PRIMARY KEY (dni_contacto, ruc_proveedor),
CONSTRAINT fk_proveedor_contacto_contacto FOREIGN KEY (dni_contacto)
REFERENCES contacto (dni_contacto),
CONSTRAINT fk_proveedor_contacto_proveedor FOREIGN KEY (ruc_proveedor)
REFERENCES proveedor (ruc_proveedor) );

CREATE TABLE personal (


dni character(8) NOT NULL,
apellido_paterno character varying(30) NOT NULL,
apellido_materno character varying(30) NOT NULL,
nombres character varying(30) NOT NULL,
direccion character varying(50) NOT NULL,
telefono_fijo character varying(20),
telefono_movil1 character varying(20),
telefono_movil2 character varying(20),
email character varying(50) NOT NULL,
codigo_cargo integer NOT NULL,
codigo_area integer NOT NULL,
dni_jefe character(8),
estado character(1),
CONSTRAINT pk_personal PRIMARY KEY (dni),
CONSTRAINT fk_personal_area FOREIGN KEY (codigo_area)
REFERENCES area (codigo_area),
CONSTRAINT fk_personal_cargo FOREIGN KEY (codigo_cargo)
REFERENCES cargo (codigo_cargo),
CONSTRAINT fk_personal_personal FOREIGN KEY (dni_jefe)
REFERENCES personal (dni),
CONSTRAINT uni_email UNIQUE (email) );

30
CREATE TABLE usuario(
codigo_usuario integer NOT NULL,
dni_usuario character(8) NOT NULL,
clave character(32) NOT NULL,
estado character(1) NOT NULL,
CONSTRAINT pk_usuario PRIMARY KEY (codigo_usuario),
CONSTRAINT fk_usuario_personal FOREIGN KEY (dni_usuario)
REFERENCES personal (dni),
CONSTRAINT uni_dni_usuaio UNIQUE (dni_usuario) );

CREATE TABLE articulo(


codigo_articulo integer NOT NULL,
nombre character varying(100) NOT NULL,
precio_venta numeric(14,2) NOT NULL,
codigo_categoria integer NOT NULL,
codigo_marca integer,
stock integer DEFAULT 0,
estado character(1),
CONSTRAINT pk_articulo PRIMARY KEY (codigo_articulo),
CONSTRAINT fk_articulo_categoria FOREIGN KEY (codigo_categoria)
REFERENCES categoria (codigo_categoria),
CONSTRAINT fk_articulo_marca FOREIGN KEY (codigo_marca)
REFERENCES marca (codigo_marca) );

CREATE TABLE cliente(


codigo_cliente integer NOT NULL,
apellido_paterno character varying(30),
apellido_materno character varying(30),
nombres character varying(20),
nro_documento_identidad character(8),
direccion character varying(50) NOT NULL,
telefono_fijo character varying(20),
telefono_movil1 character varying(20),
telefono_movil2 character varying(20),
email character varying(50),
direccion_web character varying(50),
codigo_departamento character(2) NOT NULL,
codigo_provincia character(2) NOT NULL,
codigo_distrito character(2) NOT NULL,
codigo_zona integer,
fecha_nacimiento date,
sexo character(1),
ruc character(11),
razon_social character varying(100),
estado character(1),
CONSTRAINT pk_cliente PRIMARY KEY (codigo_cliente),
CONSTRAINT fk_cliente_distrito FOREIGN KEY (codigo_departamento,
codigo_provincia, codigo_distrito)

31
REFERENCES distrito (codigo_departamento, codigo_provincia, codigo_distrito),
CONSTRAINT fk_cliente_zona FOREIGN KEY (codigo_zona)
REFERENCES zona (codigo_zona) );

CREATE TABLE compra (


numero_compra integer NOT NULL,
codigo_tipo_comprobante character(2) NOT NULL,
ruc_proveedor character(11) NOT NULL,
numero_serie integer NOT NULL,
numero_documento integer NOT NULL,
fecha_compra date NOT NULL,
porcentaje_igv numeric(10,2) NOT NULL,
sub_total numeric(14,2) NOT NULL,
igv numeric(10,2) NOT NULL,
total numeric(14,2),
fecha_registro date DEFAULT ('now'::text)::date,
hora_registro time with time zone NOT NULL DEFAULT ('now'::text)::time with time
zone,
codigo_usuario integer NOT NULL,
estado character(1) DEFAULT 'E'::bpchar,
CONSTRAINT pk_compra PRIMARY KEY (numero_compra),
CONSTRAINT fk_compra_proveedor FOREIGN KEY (ruc_proveedor)
REFERENCES proveedor (ruc_proveedor),
CONSTRAINT fk_compra_tipo_comprobante FOREIGN KEY
(codigo_tipo_comprobante)
REFERENCES tipo_comprobante (codigo_tipo_comprobante),
CONSTRAINT fk_compra_usuario FOREIGN KEY (codigo_usuario)
REFERENCES usuario (codigo_usuario) );

CREATE TABLE compra_detalle (


numero_compra integer NOT NULL,
codigo_articulo integer NOT NULL,
item integer NOT NULL,
cantidad integer NOT NULL,
precio numeric(10,2) NOT NULL,
descuento numeric(10,2) NOT NULL,
importe numeric(14,2),
CONSTRAINT pk_compra_detalle PRIMARY KEY (numero_compra, codigo_articulo,
item),
CONSTRAINT fk_compra_detalle_articulo FOREIGN KEY (codigo_articulo)
REFERENCES articulo (codigo_articulo),
CONSTRAINT fk_compra_detalle_compra FOREIGN KEY (numero_compra)
REFERENCES compra (numero_compra) );

CREATE TABLE venta (


numero_venta integer NOT NULL,
codigo_tipo_comprobante character(2) NOT NULL,
numero_serie integer NOT NULL,

32
numero_documento integer NOT NULL,
codigo_cliente integer,
fecha_venta date NOT NULL,
porcentaje_igv numeric(10,2) NOT NULL,
sub_total numeric(14,2) NOT NULL,
igv numeric(10,2) NOT NULL,
total numeric(14,2),
fecha_registro date DEFAULT ('now'::text)::date,
hora_registro time with time zone NOT NULL DEFAULT ('now'::text)::time with time
zone,
codigo_usuario integer,
estado character(1) NOT NULL DEFAULT 'E'::bpchar,
CONSTRAINT pk_venta PRIMARY KEY (numero_venta),
CONSTRAINT fk_codigo_cliente FOREIGN KEY (codigo_cliente)
REFERENCES cliente (codigo_cliente),
CONSTRAINT fk_codigo_tipo_comprobante FOREIGN KEY
(codigo_tipo_comprobante)
REFERENCES tipo_comprobante (codigo_tipo_comprobante),
CONSTRAINT fk_codigo_usuario FOREIGN KEY (codigo_usuario)
REFERENCES usuario (codigo_usuario) );

CREATE TABLE venta_detalle (


numero_venta integer NOT NULL,
item integer NOT NULL,
codigo_articulo integer NOT NULL,
cantidad integer NOT NULL,
precio numeric(10,2),
descuento1 numeric(14,2),
descuento2 numeric(14,2),
importe numeric(14,2) NOT NULL,
CONSTRAINT pk_venta_detalle PRIMARY KEY (numero_venta, item,
codigo_articulo),
CONSTRAINT fk_venta_detalle_articulo FOREIGN KEY (codigo_articulo)
REFERENCES articulo (codigo_articulo),
CONSTRAINT fk_venta_detalle_venta FOREIGN KEY (numero_venta)
REFERENCES venta (numero_venta) );

33
3.3. Scripts Funciones Para Correlativos

CREATE OR REPLACE FUNCTION f_generar_correlativo(p_tabla character varying)


RETURNS SETOF integer AS
$BODY$
begin
return query
select numero + 1 from correlative where tabla = p_tabla;
end
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;

CREATE OR REPLACE FUNCTION f_generar_correlativo_comprobante(p_tipo_com


character, p_serie integer)
RETURNS SETOF integer AS
$BODY$
begin
return query
select numero_documento + 1 from serie_comprobante
where codigo_tipo_comprobante = p_tipo_com
and numero_serie = p_serie;
end
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;

34
3.4. Scripts Transacción Compras

CREATE OR REPLACE FUNCTION f_listado_compra(IN pd_fecha1


date, IN pd_fecha2 date, IN pi_tipo integer, IN p_cod_usu integer)
RETURNS TABLE(nro_compra integer, tipo_doc character varying,
serie integer, documento integer, ruc character, razon_social character
varying, fecha date, sub_total numeric, igv numeric, total numeric,
impuesto numeric, dni_usuario character, fecha_registro date,
hora_registro time with time zone, estado character varying) AS
$BODY$
declare pd_fecha1 alias for $1;
declare pd_fecha2 alias for $2;
declare pi_tipo alias for $3;

begin
return QUERY
SELECT
compra.numero_compra,
tipo_comprobante.descripcion as tipo_doc,
compra.numero_serie as serie,
compra.numero_documento as documento,
compra.ruc_proveedor as ruc,
proveedor.razon_social as razon_social,
compra.fecha_compra,
compra.sub_total,
compra.igv,
compra.total,
compra.porcentaje_igv as impuesto,
usuario.dni_usuario as usuario,
compra.fecha_registro,
compra.hora_registro,
(case when compra.estado = 'E' then 'Emitido' else
'Anulado' end)::character varying(15) as estado
FROM

35
public.compra,
public.proveedor,
public.usuario,
public.tipo_comprobante
WHERE
proveedor.ruc_proveedor = compra.ruc_proveedor
and usuario.codigo_usuario =
compra.codigo_usuario
and tipo_comprobante.codigo_tipo_comprobante =
compra.codigo_tipo_comprobante
and (case pi_tipo
when 1 then compra.fecha_compra =
current_date
when 2 then compra.fecha_compra between
pd_fecha1 and pd_fecha2
else 1=1 end )
and ( case p_cod_usu
when 2 then 1=1 else
compra.codigo_usuario = p_cod_usu
end )
ORDER BY compra.numero_compra ASC;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;

CREATE OR REPLACE FUNCTION f_registrar_compra(p_num_com


integer, p_tip_com character, p_ruc_prov character varying, p_nro_ser
integer, p_nro_dto integer, p_fec_com date, p_imp numeric, p_sub_tot
numeric, p_igv numeric, p_tot numeric, p_cod_usu integer, p_det_com
json)
RETURNS integer AS
$BODY$

36
declare
v_item int;
v_compra_detalle_cursor refcursor;
v_compra_detalle_registro record;
v_stock int;
begin
begin
INSERT INTO compra (
numero_compra, codigo_tipo_comprobante,
ruc_proveedor, numero_serie,
numero_documento, fecha_compra,
porcentaje_igv, sub_total, igv, total,
codigo_usuario) VALUES (
p_num_com, p_tip_com, p_ruc_prov,
p_nro_ser, p_nro_dto, p_fec_com,p_imp,
p_sub_tot, p_igv, p_tot, p_cod_usu);

select open v_compra_detalle_cursor for


select codigo_articulo, cantidad,
precio, descuento, importe
from json_populate_recordset (
null::compra_detalle, p_det_com );

v_item = 0;

loop
fetch v_compra_detalle_cursor into
v_compra_detalle_registro;
if FOUND then
v_item = v_item + 1;
select stock into v_stock from articulo
where
codigo_articulo =
v_compra_detalle_registro.codigo_articulo;

37
INSERT INTO compra_detalle (
numero_compra, item,
codigo_articulo, cantidad,
precio, descuento, importe
) VALUES (
p_num_com, v_item,
v_compra_detalle_registro.codigo_articulo,
v_compra_detalle_registro.cantidad,
v_compra_detalle_registro.precio,
v_compra_detalle_registro.descuento,
v_compra_detalle_registro.importe );

update articulo
set stock = stock +
v_compra_detalle_registro.cantidad
where codigo_articulo =
v_compra_detalle_registro.codigo_articulo;

else exit;
end if;
end loop;

update correlativo set numero = p_num_com where


tabla = 'compra';
EXCEPTION
when others then
RAISE EXCEPTION '%', SQLERRM; end;
return p_num_com;
end;

$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;

38
CREATE OR REPLACE FUNCTION
f_anular_compra(p_numero_compra integer) RETURNS integer AS
$BODY$
Declare c_articulos_comprados_cursor refcursor;
c_item_registro record;
c_estado character;
begin
begin
select estado into c_estado from compra
where numero_compra = p_numero_compra;
if c_estado = 'A' then
RAISE EXCEPTION '%', 'compra ya anulada';
end if;
open c_articulos_comprados_cursor for
select codigo_articulo, cantidad
from compra_detalle
where numero_compra = p_numero_compra;
loop fetch c_articulos_comprados_cursor into
c_item_registro;
if FOUND then
update articulo set stock = stock -
c_item_registro.cantidad where codigo_articulo =
c_item_registro.codigo_articulo;
else exit; end if;
end loop;
update compra set estado = 'A' where
numero_compra = p_numero_compra;
EXCEPTION
when others then
RAISE EXCEPTION '%', SQLERRM;
end; return 1; end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;

39
3.5. Scripts Transacción Ventas

CREATE OR REPLACE FUNCTION f_listar_venta(IN p_fecha1 date, IN


p_fecha2 date, IN pi_tipo integer, IN p_cod_usu integer)
RETURNS TABLE(tip_com character, serie integer, documento integer,
cliente character varying, fecha date, impuesto numeric, subtotal
numeric, igv numeric, total numeric, estado character varying) AS
$BODY$
declare p_fecha1 alias for $1;
declare p_fecha2 alias for $2;
declare pi_tipo alias for $3;

begin
return query
select
v.codigo_tipo_comprobante,
v.numero_serie,
v.numero_documento,
(c.apellido_paterno || ' ' || c.apellido_materno || ', ' ||
c.nombres):: varchar(90) as nombre_completo,
v.fecha_venta,
v.porcentaje_igv,
v.sub_total,
v.igv,
v.total,
(case when v.estado= 'A' then 'Anulado' else 'Emitido'
end):: varchar(20) as estado
From venta v inner join cliente c on (v.codigo_cliente =
c.codigo_cliente)
where (case pi_tipo
when 1 then v.fecha_venta = current_date
when 2 then v.fecha_venta between p_fecha1 and
p_fecha2 else 1=1
end )

40
and (case p_cod_usu
when 2 then 1=1
else v.codigo_usuario = p_cod_usu
end );
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;

CREATE OR REPLACE FUNCTION f_registrar_venta(p_tip_com


character, p_nro_ser integer, p_fec_vta date, p_imp numeric, p_cod_cli
integer, p_sub_tot numeric, p_igv numeric, p_tot numeric, p_cod_usu
integer, p_det_vta json) RETURNS integer AS
$BODY$
declare
v_numero_documento int;
v_doc_cliente varchar(18);
v_venta_detalle_cursor refcursor;
v_venta_detalle_registro record;
v_stock int;
begin
begin
select numero_documento + 1
into v_numero_documento
from serie_comprobante
where codigo_tipo_comprobante = p_tip_com
and numero_serie = p_nro_ser;

RAISE NOTICE 'El número de comprobante que se


registrará es: %', v_numero_documento;

select nro_doc_ide into v_doc_cliente from cliente


where codigo_cliente = p_cod_cli;

41
INSERT INTO venta (
codigo_tipo_comprobante, numero_serie,
numero_documento, codigo_cliente,
fecha_venta, porcentaje_igv, sub_total,
igv, total, codigo_usuario, documento_cliente
) VALUES (
p_tip_com, p_nro_ser,
v_numero_documento, p_cod_cli,
p_fec_vta, p_imp, p_sub_tot,
p_igv, p_tot, p_cod_usu, v_doc_cliente );

open v_venta_detalle_cursor for


select codigo_articulo, cantidad,
precio, descuento, importe
from json_populate_recordset
( null::venta_detalle, p_det_vta );

loop
fetch v_venta_detalle_cursor into
v_venta_detalle_registro;
if FOUND then
select stock into v_stock from articulo
where codigo_articulo =
v_venta_detalle_registro.codigo_articulo;

if v_stock <
v_venta_detalle_registro.cantidad then
RAISE EXCEPTION 'La cantidad
de venta es mayor al stock disponible. COD.ART:% STOCK:%
CANT.VTA:%', v_venta_detalle_registro.codigo_articulo, v_stock,
v_venta_detalle_registro.cantidad; end if;

INSERT INTO venta_detalle (


codigo_tipo_comprobante,

42
numero_serie,
numero_documento,
codigo_articulo,
cantidad, precio,
descuento, importe
) VALUES (
p_tip_com,
p_nro_ser,
v_numero_documento,
v_venta_detalle_registro.codigo_articulo,
v_venta_detalle_registro.cantidad,
v_venta_detalle_registro.precio,
v_venta_detalle_registro.descuento,
v_venta_detalle_registro.importe );

update articulo set stock = stock -


v_venta_detalle_registro.cantidad where codigo_articulo =
v_venta_detalle_registro.codigo_articulo;
else exit;
end if;
end loop;

update serie_comprobante set numero_documento =


v_numero_documento where codigo_tipo_comprobante = p_tip_com
and numero_serie = p_nro_ser;

EXCEPTION
when others then
RAISE EXCEPTION '%', SQLERRM; end;
return v_numero_documento;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;

43
CREATE OR REPLACE FUNCTION
f_anular_venta(p_codigo_tipo_comprobante character, p_numero_serie
integer, p_numero_documento integer)
RETURNS integer AS
$BODY$
declare
v_articulos_vendidos_cursor refcursor;
v_articulos_vendidos_registro record;
v_estado character;

begin
begin
select estado into v_estado from venta
where codigo_tipo_comprobante =
p_codigo_tipo_comprobante and numero_serie = p_numero_serie
and numero_documento = p_numero_documento;
if v_estado='A' then
RAISE EXCEPTION 'vena ya está anulada';
end if;
open v_articulos_vendidos_cursor for
select codigo_articulo, cantidad
from venta_detalle
where codigo_tipo_comprobante =
p_codigo_tipo_comprobante and numero_serie = p_numero_serie
and numero_documento = p_numero_documento;

loop
fetch v_articulos_vendidos_cursor into
v_articulos_vendidos_registro;

if FOUND then
update articulo
set stock= stock +
v_articulos_vendidos_registro.cantidad

44
where
codigo_articulo=
v_articulos_vendidos_registro.codigo_articulo;
else exit;
end if;
end loop;

update venta set estado='A'


where codigo_tipo_comprobante =
p_codigo_tipo_comprobante and numero_serie = p_numero_serie
and numero_documento =
p_numero_documento;

EXCEPTION
when others then
RAISE EXCEPTION '%',SQLERRM;
end;
return 1;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;

3.6. f

45
CAPÍTULO IV:
RESULTADOS

46
4.1. Interfaces

La implementación del sistema de gestión comercial cuenta con un grupo


de interfaces de fácil entendimiento y diseño muy amigable, las cuales
serán vistas a continuación:

Inicio de Sesión:

Menú Principal:

47
Listado de Áreas de Trabajo:

Agregar Área de Trabajo:

Editar área de Trabajo:

48
Lista de Cargos de Trabajo:

Agregar Cargos de Trabajo:

Editar un Cargo de Trabajo:

49
Lista de Colaboradores:

Agregar un Colaborador:

Editar un Colaborador:

50
Listado de Usuarios:

Agregar un Usuario

Búsqueda de Colaborador a Crear Usuario:

51
Listado de Clientes:

Agregar un Cliente:

Editar un Cliente:

52
Listado de Proveedores:

Agregar un Proveedor:

Editar un Proveedor:

53
Listado de Líneas:

Agregar una Línea:

Editar una Línea:

54
Listado de Categorías:

Agregar una Categoría:

Editar una Categoría:

55
Listado de Marcas:

Agregar una Marca:

Editar una Marca:

56
Listado de Productos:

Agregar un Producto:

Editar un Producto:

57
Listado de Ventas:

Agregar una Venta:

58
Listado de Compras:

Agregar una Compra:

59
4.2. Reportes

Boleta de Venta:

Factura de Venta:

60
Producto Más Vendido en un Rango de Fechas

61
Ranking de Vendedores en un Rango de Fechas

62
Utilidad en un Rango de Fechas

63
4.3. Presupuesto

RECURSOS HUMANOS Tiempo(mes) Costo Total


Jefe de Proyecto 2 S/.2.000,00 S/.4.000,00
Analista 2 S/.1.500,00 S/.3.000,00
Diseñador 2 S/.1.500,00 S/.3.000,00
Desarrollador 2 S/.1.500,00 S/.3.000,00
Total de Gastos Humanos S/.13.000,00

GASTOS POR SERVICIOS Tiempo(mes) Costo Total


Energía Eléctrica 2 S/.100,00 S/.200,00
Internet 2 S/.100,00 S/.200,00
Total de Gastos Por Servicios S/.400,00

GASTOS DE SOFTWARE
Windows 10 S/.400,00
NetBeans IDE S/.0,00
PostgreSQL S/.0,00
Total de Gastos de Software S/.400,00

Total de Recursos Humanos S/.13.000,00

Total de Gastos Por Servicios S/.400,00

Total de Gastos de sotfware S/.400,00

Costo total del proyecto S/.13.800,00

64
CONCLUSIONES
 Después de haber definido bien el problema de la empresa, se pudo analizar
y se logró diagnosticar el estado actual de la gestión comercial de la “Bodega
Bazar Mi Karito”.
 Se logró identificar los factores que influyen en la gestión comercial de la
“Bodega Bazar Mi Karito”, los cuales nos ayudarán a segmentar la solución
en distintos módulos, para así obtener mejores resultados.
 Se culminó el diseño y la implementación del sistema informático para
mejorar la gestión comercial de la “Bodega Bazar Mi Karito”, el cual cumple
con los requisitos funcionales necesarios para la satisfacción del cliente.
 Se logó estimar los resultados y la efectividad, mediante la simulación de
procesos de compras, ventas y almacén, que generará la implantación del
sistema informático para la gestión comercial de la “Bodega Bazar Mi Karito”.

65
ANEXOS
Manual de Usuario

1. Inicio de Sesión de usuario:

Ingresar al sistema llenando los datos correctos, los cuales son el email
registrado para cada colaborador y su respectiva contraseña

De ser incorrectos los datos se mostrará el siguiente mensaje

De ser correctos los datos, se mostrará un cuadro con una operación


matemática simple, para verificar el inicio:

Si ingresa la respuesta correcta a la respuesta se mostrará el siguiente


mensaje:

66
2. Menú Principal:

El sistema reconoce el cargo del usuario que inició sesión y de acuerdo a eso
muestra las opciones correspondientes a su cargo:

2.1. Menú para el Jefe de Sistema:

Las opciones del menú son las siguientes:

Archivo: Mantenimiento: Reportes: Ayuda:

2.2. Menú para el Ventas:

Las opciones del menú son las siguientes:

Archivo: Mantenimiento: Transacciones: Ayuda:

67
2.3. Menú para el Almacén:

Las opciones del menú son las siguientes:

Archivo: Mantenimiento: Transacciones: Ayuda:

3. Cambio de Contraseña:

Para cambiar su contraseña entrar en el menú Archivo -> Cambiar Contraseña


Le aparecerá la siguiente ventana:

En ella deberá llenar correctamente los casilleros, para guardar cambios dar
click en el botón “Cambiar Contraseña” y les aparecerá la siguiente ventana
de confirmación:

De darle click en el botón “Si” y de la contraseña actual sea la correcta y la


nueva contraseña coincida con su confirmación, se mostrará el siguiente
mensaje:

68
4. Mantenimiento de Líneas de Productos

Para encontrar la opción de mantenimiento de línea entrar en el menú


Mantenimiento -> Líneas
Le aparecerá la siguiente ventana:

Para realizar una búsqueda rápida elegir el campo por el cual buscar y
seguidamente escribir en el casillero

Para agregar una nueva Línea, dar click en el botón ,


seguidamente les aparecerá una ventana para ingresar los datos de la Línea
a guardar. Para terminar y guardar los cambios dar click en
Para salir sin guardar los cambios dar click en

Para modificar los datos guardados anteriormente seleccionar la fila en la cual

se encuentra la “Línea” y dar click en el botón o dar doble click sobre


la fila de la “línea” a editar. De igual manera se abrirá una ventana con los
datos actuales. Para terminar y guardar los cambios dar click en
Para salir sin guardar los cambios dar click en

Para dar de baja a una “línea” solo basta con dar click en ,
después de confirmar que desea dar de baja, automáticamente se cambiará
el estado a “Inactivo” de la línea, sus categorías y sus productos.

Para re-activar una “línea” debe seleccionarla y dar click en ,


después de confirmar que desea re-activar, automáticamente se cambiará el
estado a “Activo” de la línea, sus categorías y sus productos.

69
5. Mantenimiento de Categorías de Productos:

Para encontrar la opción de mantenimiento de línea entrar en el menú


Mantenimiento -> Categorías
Le aparecerá la siguiente ventana:

Para realizar una búsqueda rápida elegir el campo por el cual buscar y
seguidamente escribir en el casillero

Para agregar una nueva Categoría, dar click en el botón ,


seguidamente les aparecerá una ventana para ingresar los datos a guardar.
Para terminar y guardar los cambios dar click en Para salir sin
guardar los cambios dar click en

Para modificar los datos guardados anteriormente seleccionar la fila en la cual

se encuentra la “Categoría” y dar click en el botón o dar doble click


sobre la fila de la “categoría” a editar. De igual manera se abrirá una ventana
con los datos actuales. Para terminar y guardar los cambios dar click en
Para salir sin guardar los cambios dar click en

Para dar de baja a una “categoría” solo basta con dar click en ,
después de confirmar que desea dar de baja, automáticamente se cambiará
el estado a “Inactivo” de la categoría y sus productos.

Para re-activar una “línea” debe seleccionarla y dar click en ,


después de confirmar que desea re-activar, automáticamente se cambiará el
estado a “Activo” de la categoría y sus productos.

70
6. Mantenimiento Marcas de Productos:

Para encontrar la opción de mantenimiento de línea entrar en el menú


Mantenimiento -> Marcas
Le aparecerá la siguiente ventana:

Para realizar una búsqueda rápida elegir el campo por el cual buscar y
seguidamente escribir en el casillero

Para agregar una nueva Marca, dar click en el botón ,


seguidamente les aparecerá una ventana para ingresar los datos a guardar.
Para terminar y guardar los cambios dar click en Para salir sin
guardar los cambios dar click en

Para modificar los datos guardados anteriormente seleccionar la fila en la cual

se encuentra la “Marca” y dar click en el botón o dar doble click


sobre la fila de la “marca” a editar. De igual manera se abrirá una ventana con
los datos actuales. Para terminar y guardar los cambios dar click en
Para salir sin guardar los cambios dar click en

Para dar de baja a una “marca” solo basta con dar click en ,
después de confirmar que desea dar de baja, automáticamente se cambiará
el estado a “Inactivo” de la marca y sus productos.

Para re-activar una “marca” debe seleccionarla y dar click en ,


después de confirmar que desea re-activar, automáticamente se cambiará el
estado a “Activo” de la marca y sus productos.

71
7. Mantenimiento de Productos:

Para encontrar la opción de mantenimiento de línea entrar en el menú


Mantenimiento -> Productos
Le aparecerá la siguiente ventana:

Para realizar una búsqueda rápida elegir el campo por el cual buscar y
seguidamente escribir en el casillero

Para agregar un nuevo Producto, dar click en el botón ,


seguidamente les aparecerá una ventana para ingresar los datos a guardar.
Para terminar y guardar los cambios dar click en Para salir sin
guardar los cambios dar click en

Para modificar los datos guardados anteriormente seleccionar la fila en la cual

se encuentra el “producto” y dar click en el botón o dar doble click


sobre la fila de el “producto” a editar. De igual manera se abrirá una ventana
con los datos actuales. Para terminar y guardar los cambios dar click en
Para salir sin guardar los cambios dar click en

Para dar de baja a un “producto” solo basta con dar click en ,


después de confirmar que desea dar de baja, automáticamente se cambiará
el estado a “Inactivo” del producto.

Para re-activar un “producto” debe seleccionarlo y dar click en ,


después de confirmar que desea re-activar, automáticamente se cambiará el
estado a “Activo” del producto.

72
8. Mantenimiento de Clientes:

Para encontrar la opción de mantenimiento de línea entrar en el menú


Mantenimiento -> Clientes
Le aparecerá la siguiente ventana:

Para realizar una búsqueda rápida elegir el campo por el cual buscar y
seguidamente escribir en el casillero

Para agregar un nuevo Cliente, dar click en el botón ,


seguidamente les aparecerá una ventana para ingresar los datos a guardar.
Para terminar y guardar los cambios dar click en Para salir sin
guardar los cambios dar click en

Para modificar los datos guardados anteriormente seleccionar la fila en la cual

se encuentra el “cliente” y dar click en el botón o dar doble click


sobre la fila de el “cliente” a editar. De igual manera se abrirá una ventana con
los datos actuales. Para terminar y guardar los cambios dar click en
Para salir sin guardar los cambios dar click en

Para dar de baja a un “cliente” solo basta con dar click en ,


después de confirmar que desea dar de baja, automáticamente se cambiará
el estado a “Inactivo” del cliente.

Para re-activar un “cliente” debe seleccionarlo y dar click en ,


después de confirmar que desea re-activar, automáticamente se cambiará el
estado a “Activo” del cliente.

73
9. Mantenimiento de Proveedores:

Para encontrar la opción de mantenimiento de línea entrar en el menú


Mantenimiento -> Proveedores
Le aparecerá la siguiente ventana:

Para realizar una búsqueda rápida elegir el campo por el cual buscar y
seguidamente escribir en el casillero

Para agregar un nuevo Proveedor, dar click en el botón ,


seguidamente les aparecerá una ventana para ingresar los datos a guardar.
Para terminar y guardar los cambios dar click en Para salir sin
guardar los cambios dar click en

Para modificar los datos guardados anteriormente seleccionar la fila en la cual

se encuentra el “proveedor” y dar click en el botón o dar doble click


sobre la fila de el “proveedor” a editar. De igual manera se abrirá una ventana
con los datos actuales. Para terminar y guardar los cambios dar click en
Para salir sin guardar los cambios dar click en

Para dar de baja a un “proveedor” solo basta con dar click en ,


después de confirmar que desea dar de baja, automáticamente se cambiará
el estado a “Inactivo” del proveedor.

Para re-activar un “proveedor” debe seleccionarlo y dar click en ,


después de confirmar que desea re-activar, automáticamente se cambiará el
estado a “Activo” del proveedor.

74
10. Mantenimiento de Área de un Colaborador:

Para encontrar la opción de mantenimiento de línea entrar en el menú


Mantenimiento -> Áreas
Le aparecerá la siguiente ventana:

Para realizar una búsqueda rápida elegir el campo por el cual buscar y
seguidamente escribir en el casillero

Para agregar un nuevo Área, dar click en el botón , seguidamente


les aparecerá una ventana para ingresar los datos a guardar. Para terminar y
guardar los cambios dar click en Para salir sin guardar los
cambios dar click en

Para modificar los datos guardados anteriormente seleccionar la fila en la cual

se encuentra el “área” y dar click en el botón o dar doble click sobre


la fila de el “área” a editar. De igual manera se abrirá una ventana con los
datos actuales. Para terminar y guardar los cambios dar click en
Para salir sin guardar los cambios dar click en

Para dar de baja a un “área” solo basta con dar click en , después
de confirmar que desea dar de baja, automáticamente se cambiará el estado
a “Inactivo” del área, sus cargos, sus colaboradores y sus usuarios.

Para re-activar un “área” debe seleccionarlo y dar click en ,


después de confirmar que desea re-activar, automáticamente se cambiará el
estado a “Activo” del área, sus cargos, sus colaboradores y sus usuarios.

75
11. Mantenimiento de Cargo de un Colaborador:

Para encontrar la opción de mantenimiento de línea entrar en el menú


Mantenimiento -> Cargos
Le aparecerá la siguiente ventana:

Para realizar una búsqueda rápida elegir el campo por el cual buscar y
seguidamente escribir en el casillero

Para agregar un nuevo Cargo, dar click en el botón , seguidamente


les aparecerá una ventana para ingresar los datos a guardar. Para terminar y
guardar los cambios dar click en Para salir sin guardar los
cambios dar click en

Para modificar los datos guardados anteriormente seleccionar la fila en la cual

se encuentra el “cargo” y dar click en el botón o dar doble click sobre


la fila de el “cargo” a editar. De igual manera se abrirá una ventana con los
datos actuales. Para terminar y guardar los cambios dar click en
Para salir sin guardar los cambios dar click en

Para dar de baja a un “cargo” solo basta con dar click en ,


después de confirmar que desea dar de baja, automáticamente se cambiará
el estado a “Inactivo” del cargo, sus colaboradores y sus usuarios.

Para re-activar un “cargo” debe seleccionarlo y dar click en ,


después de confirmar que desea re-activar, automáticamente se cambiará el
estado a “Activo” del cargo, sus colaboradores y sus usuarios.

76
12. Mantenimiento de Colaborador:

Para encontrar la opción de mantenimiento de línea entrar en el menú


Mantenimiento -> Colaboradores
Le aparecerá la siguiente ventana:

Para realizar una búsqueda rápida elegir el campo por el cual buscar y
seguidamente escribir en el casillero

Para agregar un nuevo Colaborador, dar click en el botón ,


seguidamente les aparecerá una ventana para ingresar los datos a guardar.
Para terminar y guardar los cambios dar click en Para salir sin
guardar los cambios dar click en

Para modificar los datos guardados anteriormente seleccionar la fila en la cual

se encuentra el “colaborador” y dar click en el botón o dar doble


click sobre la fila de el “colaborador” a editar. De igual manera se abrirá una
ventana con los datos actuales. Para terminar y guardar los cambios dar click
en Para salir sin guardar los cambios dar click en

Para dar de baja a un “colaborador” solo basta con dar click en ,


después de confirmar que desea dar de baja, automáticamente se cambiará
el estado a “Inactivo” del colaborador y su usuario.

Para re-activar un “cargo” debe seleccionarlo y dar click en ,


después de confirmar que desea re-activar, automáticamente se cambiará el
estado a “Activo” del colaborador y su usuario.

77
13. Mantenimiento de Usuario de un Colaborador:

Para encontrar la opción de mantenimiento de línea entrar en el menú


Mantenimiento -> Usuarios
Le aparecerá la siguiente ventana:

Para realizar una búsqueda rápida elegir el campo por el cual buscar y
seguidamente escribir en el casillero

Para agregar un nuevo Usuario, dar click en el botón ,


seguidamente les aparecerá la siguiente ventana:

Para elegir a que colaborador se le quiere crear su usuario dar click en el


botón , el cual les abrirá una ventana con los nombres
de los colaboradores que aún no cuentan con un usuario. Para terminar y
guardar los cambios dar click en Para salir sin guardar los
cambios dar click en

Para dar de baja a un “usuario” solo basta con dar click en ,


después de confirmar que desea dar de baja, automáticamente se cambiará
el estado a “Inactivo” del usuario.

Para re-activar o desbloquear un “usuario” debe seleccionarlo y dar click en


, después de confirmar que desea re-activar,
automáticamente se cambiará el estado a “Activo” del usuario.

78
14. Transacción Compra:

Para encontrar la opción de mantenimiento de línea entrar en el menú


Transacciones -> Compras

Le aparecerá la siguiente ventana:

Para realizar una búsqueda rápida elegir el campo por el cual buscar, si elige
la opción “hoy” aparecerán las compras que ha realizado en el día, si escoge
la opción “por fechas” deberá elegir un rango de fechas y posteriormente dar
click en el botón y si elige “todas las fechas” automáticamente le
aparecerán todas las compras que usted ha realizado.

Para agregar una Compra, dar click en el botón ,


seguidamente les aparecerá una ventada donde deberá ingresar los datos de
la compra. Para elegir el proveedor dar click en el botón el
cual les abrirá una ventana con los datos de sus proveedores, para agregar
un producto dar click en y para quitar algún producto de
la lista debe seleccionarlo y dar click en . Para terminar y
guardar la compra dar click en Para salir sin guardar la
compra dar click en

Para anular una compra solo basta con seleccionarla y dar click en
, después de confirmar que desea anular,
automáticamente se cambiará el estado a “anulado” de la compra.

79
15. Transacción Venta:

Para encontrar la opción de mantenimiento de línea entrar en el menú


Transacciones -> Ventas

Le aparecerá la siguiente ventana:

Para realizar una búsqueda rápida elegir el campo por el cual buscar, si elige
la opción “hoy” aparecerán las ventas que ha realizado en el día, si escoge la
opción “por fechas” deberá elegir un rango de fechas y posteriormente dar
click en el botón y si elige “todas las fechas” automáticamente le
aparecerán todas las ventas que usted ha realizado.

Para agregar una Compra, dar click en el botón ,


seguidamente les aparecerá una ventada donde deberá ingresar los datos de
la venta. Automáticamente se abrirá una ventana a que seleccione a cuál de
sus clientes le desea vender, para elegir uno seleccionarlo y dar click en
o dar doble click sobre él. Para agregar un producto dar click
en y para quitar algún producto de la lista debe
seleccionarlo y dar click en . Para terminar y guardar la
venta dar click en Para salir sin guardar la venta dar click
en

Para anular una venta solo basta con seleccionarla y dar click en
, después de confirmar que desea anular, automáticamente
se cambiará el estado a “anulado” de la venta.

80
16. Generar Reportes:

Para encontrar la opción de mantenimiento de línea entrar en el menú


Reportes

Le aparecerá la siguiente ventana:

Para generar un reporte deberá elegir un rango de fechas y posteriormente


dar click en el botón , automáticamente se les abrirá una
nueva ventada en la cual estará el reporte generado en ese rango de fechas.
Para salir sin generar el reporte dar click en .

17. Salir:

Para encontrar la opción de mantenimiento de línea entrar en el menú

Archivo -> Salir o dar click en la opción de la barra de herramientas.

Le aparecerá la siguiente ventana:

Si le da click en “Cerrar Sesión” les aparecerá de nuevo la interfaz de inicio


de sesión. De darle click en “Salir del Sistema”, el programa terminará su
ejecución.

81
GLOSARIO
A:
Ad hoc: que está hecho especialmente para un fin determinado o pensado para
una situación concreta.
Ancho de banda (bandwidth): Capacidad de transmisión de información que te
permite saber la cantidad y la velocidad de los datos que fluyen en una red. Se
aplica siempre que la información pase por cualquier medio de transmisión.
Arquitectura Neutral: Una de las características más notables de Java es que es
de arquitectura neutral, lo que también se define como independiente de la
plataforma. Se puede escribir un programa que se ejecute en cualquier
plataforma con una Máquina Virtual Java.

C:
Código abierto: así se le conoce al software que se distribuye y desarrolla
libremente.

D:
Debug: mejor dicho, en español el depurador, es una Herramienta o Aplicación
que permite la ejecución controlada de un programa o código para seguir cada
instrucción ejecutada y localizar asi el Bugs o errores, códigos de protección, etc.

F:
Frameworks: un conjunto estandarizado de conceptos, prácticas y criterios para
enfocar un tipo de problemática particular que sirve como referencia, para
enfrentar y resolver nuevos problemas de índole similar.

G:
GUI: es un programa informático que actúa de interfaz de usuario, utilizando un
conjunto de imágenes y objetos gráficos para representar la información y
acciones disponibles en la interfaz.

I:

82
IDE: Un IDE es una herramienta que nos ayuda a desarrollar de una manera
amigable nuestras aplicaciones, brindándonos ayudas visuales en la sintaxis,
plantillas, wizards, plugins y sencillas opciones para probar y hacer un debug.
Inmótica: es un modo de gestión remoto, centralizado y automatizado que
supone la incorporación de numerosos subsistemas en las instalaciones de
edificios terciarios con el fin de optimizar recursos, reducir costes y disminuir el
consumo de energía innecesario, al mismo tiempo que aumenta la seguridad y
el confort.
Inteligencia artificial: Programa de computación diseñado para realizar
determinadas operaciones que se consideran propias de la inteligencia humana,
como el autoaprendizaje.
iReport; es un constructor / diseñador de informes visual, poderoso, intuitivo y
fácil de usar para JasperReports escrito en Java.

J:
JDK: es un software que provee herramientas de desarrollo para la creación de
programas en Java. Puede instalarse en una computadora local o en una unidad
de red.

L:
Librería: una librería se usa para referirse a un programa que contiene varias
funciones para lograr un propósito bien definido y específico.

M:
Multiplataforma: Que se puede utilizar en diversos sistemas, entornos o
plataformas.

P:
Plugins: es un software que garantiza la visualización del contenido en Internet
que no está diseñado para que lo procese Firefox. Esto incluye normalmente
formatos de archivos patentados, como vídeos, audio, juegos en línea,
presentaciones y otros.

U:
UML: es el lenguaje de modelado de sistemas de software más conocido y
utilizado en la actualidad; está respaldado por el Object Management Group
(OMG).

83
REFERENCIAS
Burgos Cardemil, M. (2011). Clasificación de los Sistemas. Chile: Universidad Austral de Chile.

De Borja de Carlos Martín-Lagos, F. (2008). Sistematización de la Función Comercial. Cómo


integrar con éxito su estrategia corporativa. España: Netbiblo.

Delgado Gutiérrez, A. (2002). Análisis Sistémico, su aplicación a las comunidades. Madrid:


Inversiones Editoriales Doosat.

Durán, F., Gutierrez, F., & Pimentel, E. (2007). Programación orientada a objetos con Java.
Madrid: Editorial Paraninfo.

Elmasri, R., & Navathe, S. (2007). Fundamentos de Sistemas de Base de Datos. (M. M. Romo,
Ed., & J. M. Díaz, Trad.) Madrid, España: Pearson. Recuperado el 19 de marzo de 2017

Herrero Palomo, J. (2001). Administración, gestión y comercialización en la pequeña empresa.


Paraninfo.

NetBeans. (2017). Bienvenido a NetBeans y a www.netbeans.org, Portal del IDE Java Open
Source. Obtenido de https://netbeans.org/community/articles/welcome-
template_es.html

Peña Ayala, A. (2006). Ingeniería de software: Guía para crear sistemas de información.
Mexico: Instituto Politécnico Nacional.

Peralta, M. (2008). Sistema de Información.

PostgreSQL. (2017). PostgreSQL: The world's most advanced open source database. Obtenido
de https://www.postgresql.org/about/

Rodríguez Delgado, R. (1994). Teoría de sistemas y gestión de las organizaciones. Perú:


Universidad del Pacífico.

Rodríguez Sala, J. J., Santamaría Arana, L., Rabasa Dolado, A., & Martínez Bonastre, O. (2003).
Introducción a la programación. Teoría y práctica: teoría y práctica. España: Editorial
Club Universitario.

Von Bertalanffy, L. (1992). Teoria General de los Sistemas. Argentina: Fondo de Cultura
Económica.

84

También podría gustarte