You are on page 1of 144

UNIVERSIDAD CATLICA DE TEMUCO FACULTAD DE CIENCIAS

SISTEMA DE PUNTOS DE VENTAS CON NCURSES PARA TERMINALES

POR

MARIO AUGUSTO VILLANUEVA ALVEAL

Trabajo de Ttulo presentado a la Facultad de Ciencias de la Universidad Catlica de Temuco Para optar al Ttulo de Ingeniero de Ejecucin en Informtica - Temuco, 2005 -

FACULTAD DE CIENCIAS ESCUELA DE INFORMTICA

COMISIN EXAMEN DE TITULO Este Examen de Ttulo ha sido realizado en la Escuela de Informtica.

Presidente Comisin

............................................................................... Sr. Osvaldo Rubilar Alarcn Decano Facultad de Ciencias

Profesor Gua

............................................................................... Sr. Alejandro Mellado Gatica Ingeniero de Ejecucin en Informtica


Magster en Telecomunicaciones

Profesor Informante

............................................................................... Sr. Luis Alberto Caro Saldivia Ingeniero Civil en Informtica

Secretario Acadmico Escuela de Informtica

............................................................................... Sr. Luis Alberto Caro Saldivia Ingeniero Civil en Informtica

Coordinador de Tesis

............................................................................... Sr. Mario Ramrez Espinoza Master en Fsica

Temuco, Marzo de 2005

FACULTAD DE CIENCIAS ESCUELA DE INFORMTICA

INFORME TRABAJO DE TTULO

TTULO ALUMNO

: Sistema de Puntos de Ventas con ncurses para Terminales : Mario Augusto Villanueva Alveal

En mi condicin de profesor gua de este trabajo puedo efectuar las siguientes observaciones: El trabajo esta bien estructurado y se ha usado una metodologa acorde las necesidades de una solucin. Se realizado una integracin de distintos elementos informticos de manera satisfactoria lo que demuestra un dominio de distintas materias. Se han cumplido los objetivos de manera practica. Y Adems el trabajo se ha escrito con una buena capacidad de sntesis. Es necesario que adjunte como anexos fragmentos del cdigo fuente para complementar el trabajo.

De acuerdo a estas consideraciones califico este trabajo con 7.0 (Siete coma cero)

________________________________ Alejandro Mauricio Mellado Gatica Profesor Gua

Temuco, 24 de Enero de 2005

FACULTAD DE CIENCIAS ESCUELA DE INFORMTICA

INFORME TRABAJO DE TTULO

TTULO ALUMNO

: Sistema de Puntos de Ventas con ncurses para Terminales : Mario Augusto Villanueva Alveal

En mi condicin de profesor informante de este trabajo, puedo efectuar las siguientes observaciones: El desarrollo del tema planteado en este trabajo posee un excelente nivel tcnico y claridad en los planteamientos de los objetivos. La claridad de codificacin de los programas que dan sustento al sistema propuesto evidencia un excelente dominio del tema y un orden que apoya y facilita el seguimiento de los cdigos. Las conclusiones reflejan un buen manejo del tema.

De acuerdo a estas consideraciones califico este trabajo con nota 7,0 (Siete coma cero)

_____________________________ Luis Alberto Caro Saldivia Profesor Informante

Temuco, 24 de Enero de 2005

DEDICATORIA: Gracias a la sabidura se enderezaron los pasos de los mortales, Los hombres aprendieron lo que a ti te agrada y por la sabidura se salvaron

Quiero dedicar este Logro a mis seres queridos y a quienes me ayudaron a no bajar los brazos para lograr este triunfo, mi madre, abuelos, padre Misael y Amigos pero especialmente a la luz de mi ser mi hija Catalina.

AGRADECIMIENTOS

Quiero agradecer a mis profesores quienes fueron parte importante de mi formacin profesional, especialmente a Don Alejandro Mellado, mi profesor gua, por sus enseanzas y el apoyo para que este logro se realizara.

Tambin a mis compaeros y amigos de Universidad con los cuales compart, como por ejemplo, Tatiana, Mximo, Ricardo, Aldo, Carlo, Lus, Ismael, Macarena, Jessica y Luz.

NDICE NDICE DE CONTENIDOS ..................................................................................... ii NDICE DE FIGURAS ............................................................................................. viii NDICE DE TABLAS ............................................................................................... xi RESUMEN ................................................................................................................ xii

NDICE DE CONTENIDOS.

I. INTRODUCCIN 1.1 Objetivo General............................................................................................ 15 1.2 Objetivo Especifico ....................................................................................... 15 1.3 Metodologa ................................................................................................... 16

II.DESARROLLO ................................................................................................... 17 III.ANLISIS ........................................................................................................... 18 2.1 ANLISIS19 2.1.1 POS........................................................................................... 19 2.1.1.1. Descripcin de sistemas POS................................................ 19 2.1.1.2. Marcas de POS existentes .................................................... 21 2.1.1.3. Accesorios para POS............................................................. 22 2.1.1.3.1. Tipos de teclados.................................................... 23 2.1.1.3.2. Lectores de codigos de barra ................................. 24 2.1.1.3.3. Impresoras ............................................................. 25

2.1.1.3.4. Otros Accesorios ............................................................... 27 2.1.1.4. Comparacin PC-POS .......................................................... 28 2.1.1.4.1. Que hacen distinto un PC a un POS .................... 28 2.2. Diseo de sistemas POS ......................................................................... 29 2.2.1. POS basados en PC ................................................................. 30 2.2.2. Requerimientos del sistema ..................................................... 30 2.2.3. Funcionamiento ........................................................... 31 2.2.4. Ventajas ....................................................................... 31 2.2.5. Sistemas Pos en Temuco ............................................. 32 2.3. BASE DE DATOS ESTUDIADOS ..................................................... 33 2.3.1. MySql....................................................................................... 34 2.3.2. PostgreSQL ............................................................................. 35 2.3.3 Interbase 6.0 ............................................................................. 36 2.3.4. SAP DB 7.2 ............................................................................. 38 2.3.5. Microsoft SQL Server.............................................................. 39 2.3.5.1. Precios productos Microsoft ................................... 40 2.3.6. Oracle ...................................................................................... 41 2.3.6.1. Precios Oracle .......................................................... 42 2.4. Comparativas de caractersticas.............................................................. 43 2.4.2. Grficos comparativos ............................................................. 44 2.4.3. Lmite y capacidad de SQL...................................................... 45

2.5. NCURSES ............................................................................................. 46

2.5.1. Introduccin ............................................................................ 46 2.5.2. Que es NCURSES? ................................................................ 47 2.5.3. Plataformas .............................................................................. 48 2.5.4. Facultades de NCURSES ........................................................ 49 2.5.5. Ejemplo de aplicacin.............................................................. 49

IV. DISEO.............................................................................................................. 52

3.1. Base de datos........................................................................................... 53 3.2 Utilizacin de Ncurses ............................................................................ 54 3.3. Modelo de datos...................................................................................... 55 3.4. Diagrama de casos de usos ..................................................................... 57 3.4.1. Caso de uso Registro Sistema ............................................. 57 3.4.2. Caso de uso Registro Cliente................................................ 58 3.4.3. Caso de uso Supervisor ....................................................... 59 3.4.4. Caso de uso Administracin................................................. 59 3.4.5. Caso de uso Ventas............................................................... 60 4. Descripcin extendida de los casos de uso ............................................... 61 4.1. Caso de uso Registro Sistema ................................................ 61 4.2. Caso de uso Registro Cliente .................................................. 62 4.3. Caso de uso Supervisor ........................................................... 63 4.4. Caso de uso Administracin ................................................... 64 4.5. Caso de uso Ventas ................................................................. 65 5. Modelo de anlisis ..................................................................................... 66

5.1. Anlisis caso de uso Registro Sistema .................................... 66 5.2. Anlisis caso de uso Registro Cliente ..................................... 66 5.3. Anlisis caso de uso Supervisor ............................................. 67 5.4. Anlisis caso de uso Administracin ...................................... 68 5.5. Anlisis caso de uso Ventas .................................................... 68

6. Sistemas centralizados ............................................................................... 69 6.1. Base de datos centralizados ........................................................ 69 6.2. Ventajas sistemas centralizados .................................................. 70

V. IMPLEMENTACIN ........................................................................................ 71 7.1. Terminales............................................................................................... 72 7.1.2. Caractersticas de los terminales .............................................. 72 7.1.3. Ventajas Terminales................................................................. 74 7.2. Conectividad .......................................................................................... 75 7.2.1. TELNET................................................................................... 76 7.2.1.1.Funcionamientos de TELNET ................................... 76 7.2.1.2. Estructura de comandos en TELNET ...................... 77 7.2.1.3. Seguridad TELNET ................................................. 78 7.2.2. SSH ......................................................................................... 79 7.2.2.1 Caractersticas de SSH ............................................... 80 7.2.2.2. Secuencia de eventos................................................. 80 7.2.2.3. Capa de trasporte....................................................... 81 7.2.3. Protocolo punto a punto ........................................................... 83

7.2.4. Puerto serie............................................................................... 84 7.2.4.1. Estndares para seales y conectores.................................... 84 7.2.5. Software de conexin............................................................... 86 7.2.5.1. Anita .......................................................................... 86 7.2.5.2.KERMIT..................................................................... 88 7.2.5.2.1.Protocolo de Kermit ................................................ 88 8. Instalacin de INTERBASE 6 ................................................................... 90 9. Administracin base de datos .................................................................... 92 10. Configuracin Ibaccess............................................................................ 94 11. Tablas de la Base de datos ....................................................................... 96 12. Programacin en Linux............................................................................ 104 12.1. Programacin en C.................................................................... 106 12.2. Programacin en C con interbase ............................................. 108 12.3. Funciones de programacin de aplicaciones(API) ................... 110 12.4. Compilacin en GCC ................................................................ 110 12.5. Ejemplos.................................................................................... 110 12.6.opciones de compilacin............................................................ 111 12.7. Etapas de compilacin .............................................................. 111 12.8. Optimizacin de la compilacin ............................................... 113 12.9. Capacidades de make ................................................................ 114 12.9.1. Ejemplo de make........................................................ 115

13.SISTEMA................................................................................................. 116 13.2. Ingresos ................................................................................................. 117

13.3. Consultas ................................................................................... 122 13.4. Modificar................................................................................... 126 13.5. Ventas........................................................................................ 127

VI. RESULTADOS .................................................................................................. 128 VII. CONCLUSIN ................................................................................................ 129 VIII REFERENCIAS DE INTERNET.................................................................. 130 IX ANEXOS ............................................................................................................. 131

NDICE DE FIGURAS

Figura 2.1.1.2.1 POS IBM 4614F ............................................................................ 22 Figura 2.1.1.2.2 IBM 4694 SUREPOS Suntav......................................................... 22 Figura 2.1.1.3.1.1 Teclado Pos Con 81,Modelo PKBST-50 .................................... 23 Figura 2.1.1.3.1.2 Teclado Pos configurable Modelo PKBST-51C......................... 23 Figura 2.1.1.3.2.1 Lector de cdigo de barras modelo LS 1900 Corba ................... 24 Figura 2.1.1.3.2.2 Lector de cdigo de barra omni-direccional, alta velocidad...... 24 Figura 2.1.1.3.2.3 Modelo MK1000......................................................................... 24 Figura 2.1.1.3.3.1 Impresora Porttil trmica de 2 ................................................. 25 Figura 2.1.1.3.3.2 Impresora de mesa TEC B-SV4D cabezal de 4 ....................... 26 Figura 2.1.1.3.3.3 Impresora trmica DUALYS de tarjetas de color....................... 26 Figura 2.1.1.3.3.4 Impresora AXIOHM A758 ......................................................... 26 Figura 2.1.1.3.4.1 Monitor M170 3M pantalla sensitiva LCD TFT......................... 27 Figura 2.1.1.3.4.2 Lector de huella dactilar y lector / grabador de tarjetas............. 27 Figura 2.1.1.3.4.3 Decodificador y emulador de teclado ......................................... 28 Figura 2.5.5.1 Ejemplo ncurses ................................................................................ 50 Figura 3.3.1 Diagrama de modelos de datos ............................................................ 56 Figura 3.4.1.1 Caso De Uso Registro Sistema...................................................... 57 Figura 3.4.2.1 Caso De Uso Registro Cliente ...................................................... 58 Figura 3.4.3.1 Caso De Uso Supervisor................................................................ 59 Figura 3.4.4.1 Caso De Uso Administracin ........................................................ 59 Figura 3.4.5.1 Caso De Uso Ventas ..................................................................... 60 Figura 5.1.1. Anlisis Caso De Uso Registro Sistema.......................................... 66

Figura 5.2.1 Anlisis Caso De Uso Registro Cliente............................................ 66 Figura 5.3.1 Anlisis Caso De Uso Supervisor..................................................... 67 Figura 5.4.1 Anlisis Caso De Uso Administracin ............................................. 68 Figura 5.5.1 Anlisis Caso De Uso Ventas........................................................... 68 Figura 7.2.1.2.1 Estructura ....................................................................................... 77 Figura 7.2.5.1.1 Usos de Anita ................................................................................. 86 Figura 7.2.5.1.2 Aplicacin ...................................................................................... 87 Figura 9.1 ScreenShot IBAccess .............................................................................. 92 Figura 9.2 ScreenShot Estadsticas de procesos...................................................... 93 Figura 10.1 Screenshot Creacin De Nueva Base De Datos.................................... 94 Figura 10.2 Screenshot Figura De Configuracin Para Acceso A IB ...................... 95 Figura 10.3 Configuracin De Acceso Al Servidor IB ............................................ 95 Figura 12.7.1 Etapas de compilacin........................................................................ 112 Figura 13.1 Screenshot Sistema Puntos De Ventas.................................................. 116 Figura 13.2.1. Screenshot Sistema Para Men Ingreso ............................................ 117 Figura 13.2.2. Screenshot Men Ingreso, Sub-Menu Cliente .................................. 118 Figura 13.2.3 Screenshot Ingreso De Productos Nuevos ......................................... 119 Figura 13.2.4 Screenshot Ingreso De Proveedores Nuevos ..................................... 119 Figura 13.2.5 Screenshot Ingreso De Categoras Nuevas ........................................ 120 Figura 13.2.6 Screenshot Ingreso De Ciudades Nuevas........................................... 121

Figura 13.3.1 Screenshot Men Consultas ............................................................... 122 Figura 13.3.2 Screenshot Resultado Bsqueda Cliente............................................ 123 Figura 13.3.3 Screenshot Resultado De Bsqueda Producto ................................... 124 Figura 13.3.4 Screenshot Consulta Por Categora.................................................... 125 Figura 13.4.1 Screenshot Men Modificacin ......................................................... 126 Figura 13.5.1 ScreenShot Ventas de Productos........................................................ 127

NDICE TABLAS Y GRFICOS.

Tabla 2.3.5.1.1 Precios Productos Microsoft............................................................ 40 Tabla 2.3.6.1.1 Precios De Oracle ............................................................................ 42 Tabla 2.4.1 Comparativas De Caractersticas........................................................... 43 Grfico 2.4.2.1 Cumplimiento .................................................................................. 44 Grafico 2.4.2.2 Incumplimiento................................................................................ 44 Tabla 2.4.3.1 Limite Y Capacidades De Sql............................................................. 45 Cuadro 2.5.5.1 Cdigo ncurses ................................................................................ 50 Cuadro 2.5.5.1 Cdigo iniciacin ncurses................................................................ 51 Tabla 4.1.1 Caso De Uso Registro Sistema ......................................................... 61 Tabla 4.2.1 Caso De Uso "Registro Cliente"............................................................ 62 Tabla 4.3.1 Caso De Uso Supervisor .................................................................... 63 Tabla 4.4.1 Caso De Uso Administracin............................................................. 64 Tabla 4.5.1 Caso De Uso Ventas........................................................................... 65 Cuadro 7.2.4.1.1 RS-232 .......................................................................................... 84 Cuadro 12.6.1 Opciones de compilacin ................................................................. 111 Cuadro 12.9.1.1. Ejemplo archivo MakeFile ........................................................... 115

RESUMEN

En el presente trabajo de titulo, se muestra el desarrollo de un prototipo de sistema de puntos de ventas, construida en un ambiente centralizado con herramientas de desarrollo libre (OpenSource) como son Interbase, Linux, C y Ncurses.

Se explican las ventajas y desventajas de las tecnologas involucradas en los sistemas Retail, los pasos a seguir en determinadas configuraciones y como se lleg al resultado final.

Se entregan las pautas de como se realizo dicha aplicacin con el objeto de crear una aplicacin de sistemas de puntos de ventas Retail multiusuario en un ambiente centralizado.

I.- INTRODUCCIN.

La implementacin de sistema de Puntos de Ventas (POS - Point Of Sale), es algo indispensable para que las empresas organicen sus procedimientos de administracin de ventas. Entre los Procesos existentes se encuentran elaboracin de ordenes de

produccin, emisin de facturas y boletas, notas de crdito, manejo cuantitativo de stock entre otras.

Los sistemas POS son el corazn de un local comercial, cualquiera sea su rubro. Tradicionalmente los sistemas POS eran caros, pero necesarios para ingresar datos y registrar los pagos. Actualmente existen varias alternativas tanto para software

comerciales o propietarios como para las compaas que se dedican a la investigacin, innovacin y desarrollo de estos sistemas en la bsqueda de un mejor rendimiento de ellos, llegando a establecer un equilibrio entre Software y Hardware.

Cabe destacar que para automatizar y agilizar los procesos de emisin y captura de informacin datos tambin se encuentran disponible en el mercado accesorio como: Lectores de cdigo de barras, impresoras para sistemas POS, lectores de banda

magnticas, liquidadoras entre otras.

Entre las empresas que se destacan por tener un completo sistema POS encontramos, Supermercados, Ferreteras, Farmacias, Grandes Tiendas y Centros Comerciales, Hoteles, Bibliotecas, por la cantidad de transacciones y volumen de datos que manejan, haciendo imposible la administracin de estos datos de manera manual.

1.1. OBJETIVO GENERAL.

Desarrollar un prototipo de sistema de punto de venta POS de bajo costo sobre una plataforma GNU / LINUX, implementado en un ambiente Multiusuario y centralizado con terminales.

1.2. OBJETIVO ESPECIFICO.

Investigar los funcionamientos de los sistemas de puntos de ventas POS. Implementar un servidor de base de datos, para apoyar la integridad y seguridad de la informacin.

Adquirir conocimientos tericos y habilidad prctica de la programacin en Linux y ncurses.

Adquirir informacin sobre los sistemas con terminales y alternativas. Implementar un sistema centralizado.

1.3. METODOLOGA.

Con el propsito de obtener un ptimo resultado para el logro del objetivo planteado se buscar informacin de los diversos sistema de puntos de ventas existentes y de uso vigente en el mercado, haciendo uso de Internet, correos electrnicos, visitas en terreno para entrevistas.

Para obtener una visin amplia, detallada y clara de lo que se pretende lograr se hace tambin necesaria una investigacin de las plataformas en las cuales estos sistemas de puntos de ventas estn diseados y el lenguaje de programacin de estos.

Se analizarn los diferentes motores de base de datos disponibles en el mercado tanto comercial (propietario) como en el software libre (OpenSource) estableciendo un cuadro comparativo de ellos para establecer las ventajas y desventajas de sus funcionalidades y l por qu de la eleccin de Interbase en su versin 6.

II. DESARROLLO

El desarrollo de este trabajo de ttulo involucra una investigacin y estudio constante y reiterado de todos los elementos aqu involucrados; en donde su aplicacin correcta se ver afectada a continuos cambios hasta as obtener el resultado esperado y el logro de los objetivos deseados; cabe destacar adems la siempre presente asesora y orientacin del profesor gua. Por tales razones, la primera actividad a realizar es la investigacin de sistemas POS y las empresas que distribuyen dichos sistemas, como por ejemplo los utilizados por las empresas Sodimac, Lder, Easy, Falabella, Ripley, etc. En segundo lugar es la adquisicin de documentacin y manejo de la informacin relacionada con la programacin de ncurses y la interaccin de C con el motor de la base de datos. Finalmente, se proceder a la aplicacin de la informacin adquirida y al desarrollo de un nuevo sistema POS.

III ANALISIS

2.1. ANLISIS.

2.1.1. POS

2.1.1.1. DESCRIPCIN DE SISTEMAS POS.

Para llevar acabo el desarrollo de este trabajo fue necesario entender y comprender que es un sistema de puntos de ventas, los requisitos que ste necesita para su funcionamiento y las funcionalidades tradicionales que desempean.

Un POS es un sistema de facturacin y gestin de ventas al detalle. Lo que permite el flujo de los datos en tiempo real, en ambientes centralizados permite administrar todos sus puntos de ventas, independiente de cuntos sean y en qu lugar se encuentren.

El desarrollo de los sistemas Retail en Chile ha estado marcado por las tendencias de los grandes actores de este mercado. Los requerimientos de las grandes tiendas y

Supermercados son cada vez ms altos ya que estn insertos en una competencia cada da ms feroz y eso los hace innovar y apostar siempre a incorporar nuevas tecnologas para mejorar y vender ms.

Hoy en da los lderes del retail se plantean como objetivo fundamental que su cliente tenga experiencias de compras satisfactorias. Entre las empresas lderes en el mercado se encuentran NCR e IBM.

Las Funcionalidades para operar correctamente van a estar sujetas a las necesidades y requerimientos para el cual fue desarrollado el sistema POS. Sin embargo, entre las funcionalidades ms conocidas se pueden mencionar:

Manejos de Sucursales. Alta de Clientes en el Punto de Venta. Impresin de Cheques. Manejo de turnos. Identificacin de Usuarios y control de ellos. Pagos Manejo de Mltiple Listas de Precios. Informes de Auditoria. Descuento al nivel de Artculo o Departamentos. Detalle de ventas hechas. Inventarios. Emisin de Documentos como Boletas, Facturas, Guas de despacho, Notas de Crdito.

Lectura cdigos de Barras. Mantenimiento de un gran nmero de facturas abiertas.

2.1.1.2. MARCAS DE POS EXISTENTES

Como ya se ha dicho, las marcas de los sistemas POS ms destacadas por su uso son la NCR y la IBM. Pero es importante sealar que ellas no son las nicas que existen en el mercado; sino que adems hay otras marcas alternativas, que aunque no son ampliamente usadas, tambin funcionan eficientemente. Entre ellas se puede nombrar:

EPSON LIPMAN SAMSUNG PSION SYMBOL ZEBRA y ELTRON CASH DRAWER POSIFLEX STAR MICRONICS UNITECH

El sistema Operativo de IBM es OS/4690.

Figura 2.1.1.2.1 POS IBM 4614F

Figura 2.1.1.2.2 IBM 4694 SurePos Sustav

2.1.1.3. Accesorios para sistemas POS Algunos accesorios que operan con los sistemas POS son: Balanzas. Cajones Monederos. Lectores de Cdigos de barra. Impresoras (mini printer, impresoras fiscales, impresoras trmicas) Monitores. Teclados comprimidos o programables. Visores para Clientes.

2.1.1.3.1. TIPOS DE TECLADOS.

Tal ha sido el avance que han tenido estos sistemas, que tambin los accesorios para ellos han sufrido un cambio considerable a travs del tiempo. En la actualidad existen distintos tipos de teclados haciendo diferencias en la cantidad de teclas y el uso programable de stas. Adems la necesidad de ahorrar espacio ha llevado a que a los teclados se les incorpore lectores de tarjetas bi-direccionales, hacindolos operables. ms

Figura 2.1.1.3.1.1: Teclado Pos Con 81 teclas configurables, Modelo PKBST-50 cerradura para distintos niveles de seguridad, y ranura para lector de bandas magnticas.

Figura 2.1.1.3.1.2: Teclado Pos configurable Modelo PKBST-51C, 91 teclas planas resistentes al agua y 42 de tipo estndar.

2.1.1.3.2. LECTORES CDIGOS DE BARRAS.

Hay numerosos tipos de lectores de cdigos de barras en el mercado, stos dependen de las funcionalidades tcnicas que estos dispositivos pueden realizar. Entre ellas podemos mencionar; lectores como por ejemplo lecturas cdigos de barras de una o dos dimensiones, lecturas de cdigos pdf, interfase RS-232 integrada, lectores inalmbricos y omnidireccional.

Figura 2.1.1.3.2.1: Lector de cdigo de barras modelo LS 1900 Corba, lector diseado para uso manual, escner con o sin gatillo.

Figura 2.1.1.3.2.2: Lector de cdigo de barra omni-direccional, alta velocidad de escaneo ideal para aplicaciones de puntos de ventas.

Figura 2.1.1.3.2.3: Modelo MK1000, permite a los clientes comprobar rpida y fcilmente el precio de productos con cdigos de barra y obtener

informacin actualizada sobre las promociones del centro durante la compra.

2.1.1.3.3. Impresoras.

La utilizacin de impresoras(trmicas, hbridas, matriz) es algo que en todo sistema de puntos de ventas debe tener como medio necesario para imprimir los distintos documentos que estos sistemas emiten, adems estas impresoras son diseadas especialmente para estos equipos debido al reducido espacio fsico en que estos sistemas trabajan. Entre las impresoras que existen en el mercado se destacan impresoras de documentos, etiquetas y etiquetas de transferencia trmica, impresoras de cdigo de barras, tarjetas pvc. Algunas marcas de impresoras para los sistemas POS:

EPSON CITIZEN TEC CENTRONIX ITHACA

Figura 2.1.1.3.3.1: Impresora Porttil trmica de 2 con puerto IrDA y RS232C.

Figura 2.1.1.3.3.2: Impresora de mesa TEC B-SV4D cabezal de 4, buffer de memoria de 2 Mb DRAM, memoria Flash de 1 Mb ampliable de 1 a 8 Mb, fcil conectividad puertos RS-232C (hasta 56000bps), puerto paralelo SPP, y puerto USB v1.1.

Figura 2.1.1.3.3.3: Impresora trmica DUALYS de tarjetas de color que permite impresin a doble cara en un slo proceso, resolucin de 300ppp

A continuacin configuracin de impresora para sistemas POS:

Mini-Printer de impresin trmica y de matriz de punto AXIOHM A758

Figura 2.1.1.3.3.4: Impresora AXIOHM A758

La impresora AXIOHM A758 puede imprimir 40 lneas por segundo en impresin trmica y a 4.8 por segundos en impresin de matricial. Requerimientos de papel de tipo trmico para POS, y rollo de papel 3.15 de ancho por 3.55 de dimetro.

Impresin de cdigos de barra formatos: UPC-A, UPC-E, cdigo 39 y 128, JAN8 y JAN13, PDF 417.

Interfase de comunicacin: RS-232, IEEE 1248 paralela bidireccional, USB

2.1.1.3.4. OTROS ACCESORIOS

Otros accesorios, aunque optativos, pueden resultar muy tiles en el logro de una operacin correcta. Entre ellos se tiene:

Figura 2.1.1.3.4.1: Monitor M170 3M pantalla sensitiva LCD TFT de matriz activa con base inclinable.

Figura 2.1.1.3.4.2: Lector de huella dactilar y lector / grabador de tarjetas chip. Modelo Precise 100MC

Figura 2.1.1.3.4.3: Decodificador y emulador de teclado para transmisin de datos de cdigos de barras y bandas magnticas.

2.1.1.4. Comparacin PC POS.

2.1.1.4.1. Que hace distinto un PC a un POS?

Existen 3 aspectos a considerar que pueden marcar alguna diferencia.

Confiabilidad : Los Computadores o PC estn diseados para ambientes de oficina y no para condiciones extremas como bodegas o ambientes industriales. Adems los PC con sistema operativo Windows son vulnerables a virus, a diferencias de los basados en terminales.

Apariencia : Los sistemas POS son un sistema integrado enfocados exclusivamente para el uso de estos sistemas a diferencias de los PC.

Enfoque : Los sistemas POS estn enfocados para operar en un ambiente Retail con necesidades especficas; por lo tanto, se entiende que estos dispositivos tienen un propsito especifico.

2.2. DISEO DE LOS SISTEMAS POS

Un POS est hecho para satisfacer las necesidades del detallista. Esto se refiere a una fcil instalacin, intercomunicacin con las aplicaciones de ventas y un diseo atractivo a los clientes. Entre sus caractersticas fsicas se pueden destacar:

Anti-impacto : esto debido a sus cobertores de poli-carbonato los cuales son extremadamente duros e irrompibles, impidiendo as un rompimiento del terminal al caerse un objeto contundente encima de ste.

Modular : Esta es una gran ventaja, ya que facilita la movilidad de estos terminales y agilizan el reemplazo en caso de alguna falla, evitando as que algn terminal est inoperable durante mucho tiempo.

Ensamblaje : especialmente diseado para usuarios con pocos conocimientos tcnicos, debido a que sus conectores son numerados y con diferencias de colores, componentes con auto ensamblado sin necesidad de herramientas especiales para esta labor.

2.2.1. POS BASADOS EN PC

Tambin existen empresas que desarrollan sistemas POS en las cuales se utilizan PC como terminales. Estos terminales utilizan la tecnologa de thin-client (Clientes livianos o baratos) que busca la utilizacin de ordenadores de bajas prestaciones como terminales de un ordenador central o servidor, en el cual residen y ejecutan todas las aplicaciones y se guardan todos los documentos generados por los clientes. Los ordenadores que actan como terminal slo procesan lo necesario para dibujar lo que se enva del servidor, no realizan ningn clculo.

2.2.2. REQUERIMIENTOS DEL SISTEMA

Los requerimientos son mnimos, no se necesitan grandes procesadores, ni dispositivos de almacenamiento (discos duros, disquete, CDROM, etc.) siendo vlidos de 486/66 o superiores y 16mb de RAM o superior, aunque las recomendaciones son partir de Pentium I con 32Mb de RAM. Esto hace posible reutilizar los antiguos equipos o bien ahorrar en la compra de nuevos equipos.

2.2.3. FUNCIONAMIENTO.

El cliente al arrancar su terminal enva una seal por la red, la cual es reconocida por el servidor, quien le asigna una identificacin de red y a continuacin le enva un sistema operativo para que lo cargue en RAM o simplemente le enva la peticin de autentificacin de usuario, ejecutado en el servidor. A partir de este momento el cliente podr ser usado para enviar seales de teclado, ratn y recibir en pantalla el resultado de las rdenes enviadas.

2.2.4. VENTAJAS.

Una solucin de terminales conlleva muchas ventajas, algunas de ellas son: Simplificacin de la administracin. Ahorro de energa. Reduccin de tiempo en reemplazo de mquinas. Simplificacin de tareas para mquinas nuevas.

2.2.5. SISTEMAS POS EN TEMUCO

Tambin fue necesario verificar en terreno los distintos sistemas POS que se encuentran en el mercado y los que ms se utilizan, especialmente en la ciudad de Temuco.

De acuerdo a la informacin obtenida se puede sealar que actualmente son mltiples las tiendas que estn implementando un sistema POS para sus transacciones. Entre ellas se pueden mencionar:

Rexel Electra Ltda.. ElectroFront. Sodimac Tecnostore Easy Supermercado Lder. Supermercado Muoz Hermanos.

2.3. BASE DE DATOS ESTUDIADOS.

El software de base de datos ha experimentado un auge extraordinario a raz de la progresiva informatizacin de casi la totalidad de las empresas en hoy en da; rapidez y eficiencia en los procesos y los grandes flujos de informacin son las necesidades ms apremiantes a la hora de optimizar servicios y productos. Ante esta notable demanda de soluciones informticas han surgido multitud de gestores de base de datos, stos son programas que permiten manejar informacin de modo sencillo y que prestan servicios para el desarrollo y manejos de las bases de datos. Con la salida al mercado de mltiples entornos de desarrollo la preocupacin de los administradores y desarrolladores es conocer las caractersticas, ventajas y desventajas de cada herramienta que ofrece el mercado, por este motivo es necesario analizar los productos que ms se destacan y de acuerdo a las necesidades inclinarse hacia aquellos que ms convengan. Algunas de estas alternativas que se destacan porque

comercialmente son las ms fuertes: Oracle SQL Server Borland Interbase

Sin embargo, en el mundo del software libre (OPEN SOURCE) se aprecian opciones tan completas como Mysql, gestor muy usado en Web (combinado con PHP y Apache) y PostgreSQL.

2.3.1. MySql

Esta base de datos Sueca, es seguramente la base de datos para Linux ms popular de todas. Eso se demuestra en que viene incluida en todas las versiones actuales de Linux. Adems es una base de datos disponible para la gran mayora de las plataformas de sistemas operativos llmese Windows NT/2000, 98/Me. Una de las caractersticas que hizo conocido a este motor fue la velocidad y el escaso consumo de recurso. Es de muy fcil instalacin y con gran comunidad de usuarios, lo cual facilita la labor al buscar informacin de sta. Este motor es muy indicado para iniciarse en la base de datos, pues dispone de una infinidad de utilidades, tutoriales y documentacin. El gran propulsor de la base de datos MySql ha sido el lenguaje integrado para Web PHP. MySql que ha crecido al mismo paso que ha crecido la comunidad PHP. Cuando lleg la popularidad de Linux y PHP como plataforma para aplicaciones Web de bajo costo se encontraba que la nica base de datos robusta era MySql (PostgreSQL 6.X era lento y pesado). Una de las desventajas de MySql es el hecho que no cumple todas las propiedades de ACID(Atomicidad Consistencia Aislamiento Durabilidad) de las RDBMS(Relational DataBase Management System). No tiene entidad referencial, con lo que la base de datos puede llegar a tener datos inconsistentes y carece de transacciones. MySql guarda los Blobs(binarios) en la misma tabla que guarda los datos, es decir como un campo mas en la misma fila, esto hace caer el rendimiento del acceso de datos.

2.3.2. PostgreSql.

MySql es la base de datos ms popular en Linux, PostgreSQL es la segunda. PostgresSQL fue diseada como una base de datos orientada a objetos, es decir, una ORDBMS. Esto significa, que las tablas no son tablas, sino objetos y las tuplas son instancias de ese objeto. Se puede crear nuevos tipos de datos, hacer herencias entre objetos. PostgreSQL tiene todo lo que carece MySql: Transacciones, entidad referencial, vistas, y multitud de funcionalidades, pero es lento y pesado. PostgreSQL incorpora la llamada MVCC Multiversion concurrency control con los que los bloqueos de escritura actan slo en la sesin el cliente, y no en la de los dems clientes. Tambin tiene soporte Full-Text-indexing a travs de un tigger incluido en la distribucin. PostgreSQL usa el modelo cliente - servidor en esta arquitectura se destacan: Proceso llamado supervisor (postmaster) La aplicacin con la cual trabaja el cliente (frontend, Ej.:psl) Uno o ms servidores en segundo plano (el mismo proceso postgresql)

Generalmente PostgreSQL no es utilizado en servidores de internet de tipo Slashdot, pero s para un servidor con pocas conexiones pero que requieran de muchas

funcionalidades como un e-commerce.

2.3.3. INTERBASE 6.0

Borland siguiendo las polticas de moda de liberar las aplicaciones de desarrollo, liberaliz Interbase6.0. Esta es una buena base de datos con 16 aos de experiencia en el sector de base de datos comerciales. Interbase ha sido la primera base de datos OpenSource en ser compatible con SQL92 a nivel de entrada (MySQL, PostgreSQL, mSQL no lo son). Esto significa que se puede adaptar cualquier aplicacin que funcione sobre una base de datos SQL92, como Oracle, DB2, o Informix y traspasarla fcilmente a Interbase, o al revs: empezar con Interbase al principio y pasarla, si algn da hace falta, a alguna RDBMS mayor. Eso, tan simple e importante, es imposible hacerlo con MySQL o PostgreSQL. Al venir Intebase del mundo comercial existen muchas herramientas de administracin las cuales tienen asociado un costo para la utilizacin, as el ejemplo de IBReplicator una aplicacin avanzada para la clusterizacin de Interbase. Casi todos los gestores de Backup soportan Interbase como ArcServ. Tienen tambin gestores remotos para Windows de muy alta calidad, como Marathon. Todas estas herramientas hacen de Interbase 6.0, un producto muy profesional preparado para cualquier proyecto medio que necesite de una base de datos realmente fiable. Estas herramientas se echan de menos MySQL o PostgreSQL a la hora de intentar integrar estas base de datos en una empresa. Interbase tiene la mayora de las funcionalidades de una base de datos comercial: Tiggers, tratamiento especial para blobs, backup On-line, gran escalabilidad, base de datos de slo lecturas, integridad referencial en cascada o el autotunning.

Interbase tiene todo lo que una base de datos moderna debe tener. Adems no consume demasiados recursos y es igual que un MySQL y con muchas de las funcionalidades de PostgreSQL. La instalacin y administracin es parecida e igual que MySQL. Dispone de soporte directo para PHP como MySQL o PostgreSQL. Un detalle a tener en cuenta, es que el deamon de interbase se esconde detrs del Inetd a diferencia de otras comparadas. Las desventajas que tiene Interbase frente a las dos anteriores es la poca comunidad de la que dispone de momento. Hay poca informacin aun en la red internet. La seguridad de los datos de interbase es proporcionada a travs de la integridad a nivel de tabla, permitindole asignarle a cada usuario de la base de datos los permisos que permitan independientemente consultar, agregar, modificar y eliminar. Para lograr sto se deben definir los usuarios en cada servidor Interbase, dando un nombre(login), una contrasea (password) y el nombre real del usuario.

2.3.4. SAP DB 7.2

SAP DB es la base de datos desarrollada para soportar el monstruo ERP llamado SAP R/3. Las ltimas versiones de SAP R/3 contienen alrededor de 10.000 tablas. Esto deduce que es una base de datos preparada para mover grandes cantidades de datos. Es la ms difcil de instalar y administrar de las nombradas anteriormente, aunque quizs, la ms profesional. La instalacin es muy complicada por la poca informacin que se consigue. En SAP DB se tiene el control sobre los archivos de datos donde reside fsicamente la base de datos. Se deben crear los tres archivos: Sistema, log y datos. Asignarles tamaos adecuados y modificarlos o crear nuevos archivos si los actuales se quedan pequeos. Esto permite a SAP DB sobrepasar los lmites de tamaos de archivos del sistema operativo, y poder crecer hasta cifras inmensas. De hecho todas las bases de datos comerciales actuales requieren de la creacin de estos tres archivos y permiten tener varios archivos de datos(Oracle, SQL Server) aumentando en rendimiento y capacidad. Esta capacidad de SAP DB permite soportar base de datos muy grandes, mientras las otras analizadas anteriormente tienen slo un fichero y slo pueden crecer hasta donde el sistema de archivos se los permita. La administracin puede hacerse mediante GUI (Graphical User Interface) grfico sobre Windows o por lneas de comandos. SAP DB es una muy buena base de datos, pero pesada y no muy moderna. Tiene entidad referencial, tiggers, vistas, backup on-line, pero carece de tratamiento de blobs o indexacin de texto.

2.3.5. MICROSOFT SQL SERVER

Dentro de las posibilidades que ofrece estn: Definir consultas mltiples que se procesan en el servidor Uso de indexes propios de la base de datos. Ejecucin sincrnica y asincrnica de consultas. Ejecucin de procedimientos almacenados en la base de datos. Consultas paramtricas. Fcil migracin de datos desde otros objetos ms antiguos(DAO)

Otra posibilidad, consiste en la capacidad de integracin de la seguridad de SQL Server, que ya va integrada en Windows NT dentro de la seguridad de la misma aplicacin y su manejo desde la misma, estas capacidades se mejoran con la versin 7.0 de SQL Server; Posibilidad de publicacin y suscripcin de tablas entre distintos entornos (SQL Server, AS/400, Access y Oracle.)

2.3.5.1. PRECIOS PRODUCTOS MICROSOFT

Producto Microsoft SQL Server 2000 Standard Edition 5 user Access 2002 95/98/WME/NT/W2K SQLServer2000 Enterprise 25 Clients (FullProduct) SQL Server 2000 Standard 1 PROC NT/W2K SQL Server 2000 Enterprise 1 PROC NT/W2K Access 2002 ACAD-5.0 Crystal Reports 8.5 Pro (Full Product) Crystal Reports 8.5 Standard 95/98/W2K/NT SQL Server 2000 Developer NT/W2K Crystal Reports 9 Professional (Full Product) Crystal Reports 9 (Version Upgrade) SQL Server 2000 Bus-5.0 CAL . (PC/Mac) Crystal Reports 9 Advanced (Full Product) SQL Server 2000 Developer Edition (Full Product) Tabla 2.3.5.1.1: Precios Productos Microsoft

Precio (US) $930.00 $190.00 $1815.00 $2849.00 $5829.00 $38.49 $373.74 $170.46 $418.00 $398.00 $127.71 $130.00 $1599.00 $429.76

2.3.6. ORACLE

Sin duda la unin entre Dell y Oracle constituye uno de los principales encuentros tecnolgicos al servicio de las necesidades empresariales actuales. Tras alcanzar ms de 22.000 instalaciones de software Oracle en equipos Dell, las empresas han demostrado un slido xito en la entrega de un mayor beneficio

empresarial a un amplia gama de clientes, entre ellos el Lighting Group de Acuity Brands, Electronic Arts, Menasha Corporation, el Centro Mercedes-Benz de Ayuda al Cliente y Precisin Response Corporation. Las empresas introdujeron tambin clusters de bajo costo para que clientes de todos tamaos puedan adoptar econmicamente las soluciones empresariales de Dell y Oracle. Dell ofrecera una plataforma de almacenamiento optimizada para Oracle9i Database con Real Application Cluster para RedHat(r) Linux Advanced Server y los entornos para Microsoft Windows. Ahora la pequea y mediana empresa podr aprovechar el

rendimiento, la disponibilidad y flexibilidad de escala de los clusters del servidor Dell PowerEdge respaldados por redes de almacenamiento Dell /EMC CX200 de nivel bsico o bvedas de discos Dell PowerVault SCSI. Adems de eso, Dell Service est asociado con Oracle Consulting para ofrecer un conjunto de servicios profesionales que reducir los costos y facilitar el despliegue a los clientes que migran de arquitecturas legado y propietarias de base de datos a Oracle9i Database con Real Application Clusters en plataformas de servidores y almacenamientos Dell basadas en estndares.

2.3.6.1. PRECIOS DE ORACLE.

Descripcin US
O-MEDIAKIT Oracle Media Kit Oracle 9i Standard Edition (Precio por Usuario) Crystal Reports 9 Professional (Full Product) ORACLE ENTERPRISE EDITION 1 Precio por Usuario Oracle 9i Enterprise Edition (Precio por Procesador) ORACLE PERSONAL EDITION Oracle 9i Personal Edition Precio por Procesador ORACLE LITE Oracle Lite REAL APPLICATION CLUSTERS Oracle Real Application Cluster (Precio por Usuario) Oracle Real Application Cluster (Precio por Procesador)

p.v.p Euro
90,15 299,00 $398.00

798,00 39.876,00

399,00 19.938,00

100,00

399,00 19.938,00

Actualizacin de versiones Tabla 2.3.6.1.1: Precios De Oracle.

2.990,73

2.4. COMPARATIVAS DE CARACTERSTICAS.

MySQL PostgreSQL7.1 Interbase 6 SAP DB Cumple SQL 92 Integridad Referencial Procedimientos Almacenados Vistas (views) Bases de datos de slo lectura Secuencias (generadores de nmeros) Subselects Concurrencia Multi Versin N S N N N S N N N S S S N S S S S S S S S S S S N S S S S S S S N S N S S N S S N S S S S S N S S S(modulo a parte) Soporte Perl, C, Python, TCL, Java, S Delphi Creacin de nuevos tipos de datos Triggers Transacciones Orientacin a objetos Lmite tamao registro Soporte nativo PHP Herencia Multithread N N N N N S N S S(modulo a parte) N(modulo a parte) S(modulo a parte) S(modulo a parte) N(modulo parte) S(modulo a parte) N(modulo a parte) N(modulo a parte) S(modulo a parte) Tabla 2.4.1: Comparativas De Caractersticas.

2.4.2. GRFICOS COMPARATIVOS.

2.4.2.1.Grfico de Cumplimiento

SAPDB 27%

MySQL 3.23.37 11%

MySQL 3.23.37 PostgreSQL 7.1 Interbase 6.0 SAPDB

PostgreSQL 7.1 32% Interbase 6.0 30%

2.4.2.2 Grafico Incumplimiento

SAPDB 21% Interbase 6.0 17%

MySQL 3.23.37 49%

MySQL 3.23.37 PostgreSQL 7.1 Interbase 6.0 SAPDB

PostgreSQL 7.1 13%

2.4.3. LIMITE Y CAPACIDADES DE SQL

MySQL 4.1.0 PostgreSQL7 .1 Conexiones simultneas 101 32

Oracle 41

Sybase 25

Access 64

Informix 269

Columnas por Tabla Tamao de fila por Columna

2.819 65.534

1.600 103.275

1.000 255.000

250 1.960

255 2.025

994 32.356

Tamao fila Columna sin Null

65.502

103.275

255

1.941

2.025

32.356

Tamao de Consulta

1.048.574

16.777.216

16.777.216 65.535 16.777.216

32.766

Tabla 2.4.3.1: Limite Y Capacidades De Sql

2.5. NCURSES.

2.5.1. INTRODUCCIN

Histricamente, el primer antecesor de curses fueron las rutinas escritas para proporcionar el manejo de pantalla para el juego rogu; ste utilizaba las ya existentes capacidades de la base de datos de capacidades de los terminales (termcap) para as con ello describir las capacidades de los terminales en los cuales se ejecutaban las aplicaciones. Las rutinas fueron abstradas dentro de una librera documentada y lanzada por primera vez con las versiones tempranas de BSD UNIX. System III UNIX de Bell Labs constaba de una librera curses reescrito y con mejoras considerables. Esta inclua el formato del terminal de informacin(terminfo). Este terminal se basa en la base de datos de capacidades del terminal (termcap) de Berkeley, pero contiene mejoras y extensiones. Cadenas de caracteres con capacidades parametrizadas fueron introducidas, haciendo posible describir mltiples atributos de vdeo, colores y manejar muchos ms terminales no usuales con el terminal anterior (termcap). En los posteriores lanzamientos de AT&T System V, curses desarrolla el uso de ms facilidades y ofrece ms capacidades, llegando incluso ms all que las curses de BSD en poder y flexibilidad.

2.5.2. QU ES NCURSES?

Curses es una subrutina de librera para el terminal independiente de dibujo en pantalla y manejo de sucesos de entrada que presenta un modelo de pantalla de alto nivel al programador, ocultando las diferencias entre los distintos tipos de terminales y haciendo la salida en pantalla de forma automatizada. Curses utiliza un terminal de informacin, que es un formato de base de datos, y con esta informacin es capaz de describir las capacidades de miles de terminales diferentes. Curses puede parecerse a los terminales ms arcaicos de los entornos UNIX, cada vez ms dominado por X, Motif y Tlc / Tk. Sin embargo, UNIX todava soporta lneas TTY y X soporta Xterm y es posible de encontrar en cualquier sistema UNIX que siga con la norma ASCII (American Standard Code For Information Interchange) / POSIX (Portable Operating System Interface). Algunas cosas que Curses es capaz de hacer : Usar la pantalla completa como quieras. Crear y controlar ventanas. Usar 8 colores diferentes. Dar soporte para el ratn. Usar las teclas de funcin del teclado.

2.5.3. PLATAFORMAS

Entre los distintos sistemas operativos en donde se puede desarrollar sistemas con la librera curses encontramos: FreeBSD Debian Redhat Fedora Core Mandrake AIX 5.1, 4.3.2 (cc) BeOS R4.5 (gcc 2.9.5) Cygwin HPUX 11.23 IRIX64 OS/2 EMX 0.9d (gcc 2.7.2) QNX 6.1 SCO OpenServer 5.0.5e (cc/CC, gcc 2.7.2.3) Solaris 9, 8 Tru64 (aka OSF1 and Digital Unix) 4.0d, 5.1 (cc)

2.5.4. FACULTADES DE NCURSES

La librera ncurses

proporciona ventajas considerables a la hora de programacin

basada en texto para el desarrollo de aplicaciones en terminales independientes de las caractersticas de estos, ya que ncurses al disponer de una base de datos (termcap) con las cualidades y capacidades de miles de terminales hace transparente la programacin para estos. Curses entre sus caractersticas que posee permite una programacin del tamao completo de la ventana del terminal, el movimiento del cursor para desplazarlo fcilmente por los distintos mens, ventanas, formularios o paneles, as tambin ncurses permite la identificacin y uso de teclas de funcin de los teclados.

2.5.5.EJEMPLO DE APLICACIN

Para dar a entender las cualidades de ncurses para la programacin en texto, a continuacin se mostrar y describir en el siguiente ejemplo las necesidades mnimas para la elaboracin de una aplicacin. Un aspecto importante es la utilizacin de ventanas de ncurses para la simulacin de los menes cuando se abren. Se muestra en la figura a continuacin.

Figura 2.5.5.1 Ejemplo

El programa comienza con las cabeceras como es habitual en la programacin en C, y la definicin de constantes teclas de ASCII como en este caso, ENTER y ESCAPE.

#include <curses.h> #include <stdlib.h> #define ENTER 10 #define ESCAPE 27

Cuadro 2.5.5.1 Cdigo ncurses

A continuacin la siguiente funcin es la llamada para la ejecucin del programa. La funcin initscr() es usada para inicializar ncurses y adems la funcin start_color() que nos permite la utilizacin de colores en el terminal. A continuacin de sto se definen

los pares de colores que se utilizarn en la ejecucin del programa. La funcin curs_set() permite la visualizacin del cursor fsico en valor 1 y ocultar con 0. Finalmente la funcin keypad para habilitar las teclas de funcin, llmese a estas F1, F2 a F12 como tambin las teclas Insert, Inicio, Fin.
void init_curses() { initscr(); start_color(); init_pair(1,COLOR_WHITE,COLOR_BLUE); init_pair(2,COLOR_BLUE,COLOR_WHITE); init_pair(3,COLOR_RED,COLOR_WHITE); curs_set(0); noecho(); keypad(stdscr,TRUE); } Cuadro 2.5.5.2 Cdigo iniciacin ncurses.

Una vez definida la iniciacin de ncurses el resto de la programacin va a depender de las habilidades del programador en este lenguaje y las necesidades a las cuales quiere atacar con la elaboracin de su programa.

IV DISEO

DISEO

A continuacin corresponde mostrar el diseo de la solucin para lo cual se presentan los siguientes elementos: Base de datos Programacin en linux Arquitectura del sitema

3.1. BASE DE DATOS

Se ha mencionado anteriormente las cualidades de las distintas base de datos estudiadas para la realizacin de este trabajo, entre las cuales se encuentran:

MySQL PosgretSQL Interbase SAP DB SQL Server Oracle

Se ha elegido Interbase como motor de base de datos para el desarrollo del presente trabajo debido a las cualidades que sta dispone, destacndose por ser un motor de base de datos OpenSource con 16 aos de experiencia como base de datos comercial, cumplir

con el estndar SQL92 lo cual hace de esta base de datos una aplicacin transparente hacindola totalmente portable para los grandes motores de base de datos, llmese ORACLE, SQL Server entre otros. Adems dispone de funcionalidades como: Tiggers, tratamiento especial de blobs, backup On-line, gran escalabilidad, bases de datos de slo lectura (para ponerlas en CD-Rom), integridad referencial en cascada o el autotunning.

3.2. UTILIZACIN DE NCURSES

La eleccin del lenguaje de desarrollo para la elaboracin de este trabajo de titulo fue la programacin en C con la librera Ncurses, esto por las ventajas que posee en la programacin basada en texto y la gran base de datos (termcap) con las cualidades y capacidades de miles de tipos de terminales. Conjuntamente con la capacidad de detectar el tipo de Terminal en el cual se ejecutara la aplicacin, permite la programacin en pantalla completa de este, la utilizacin de teclas de funcin del teclado, la deteccin de movimientos del cursor, elaboracin de menes, manejo de formularios para el ingreso de datos, esto facilita considerablemente la programacin de aplicaciones por lo que hace de ncurses un lenguaje robusto para el desarrollo de aplicaciones para estas caractersticas.

3.3. MODELO DE DATOS.

Para el desarrollo del modelo de datos, se hizo un anlisis de las funcionalidades de los sistemas retail o Puntos de Ventas dando como resultado el siguiente modelo de datos, el cual se muestra en la figura de ms adelante. Las tablas son las que se describen a continuacin: Clientes Ciudad Proveedores Cargos Tipo_doc Num_doc Estado_doc Transacciones Tipo_pago Ventas Detalle Caja Personal Productos Categora Subcategora Posicin

En total son diecisiete(17) tablas en el servidor.


estado_doc PK cod_estado_doc descripcion PK Transaccion cod_trans descripcion

tipo_pago num_doc PK FK1 FK2 cod_numdoc cod_estado_doc cod_trans PK cod_tipo descripcion

clientes PK rut_cliente dv razon social direccion telefono cod_ciudad

ventas PK PK FK1 FK2 FK3 FK4 personal PK rut dv nombre apellidos telefono direccion cod_ciudad cod_cargo cod_venta fecha total cod_numdoc cod_tipo rut_cliente rut PK,FK2 PK,FK2 FK1 FK3 FK1

FK1

detalle cod_venta fecha cod_producto cantidad cod_caja price_venta

ciudad PK cod_ciudad descripcion

posicion PK cod_pos descripcion cajas PK cod_caja descripcion

FK1 FK2 cargos PK

sub_categoria PK productos PK PK cod_producto price_venta stock price_compra descripcion rut_prove cod_subcat FK1 FK2 cod_subcat descricpcion cod_cat cod_pos

cod_cargo descripcion

proveedores PK rut_prove dv razon_social direccion telefono cod_ciudad

FK1 FK2

categoria PK cod_cat descripcion

FK1

Figura 3.3.1 Diagrama de modelos de datos.

3.4. DIAGRAMA DE CASOS DE USOS.

El presente diagrama de casos de uso est basado en el lenguaje de modelado unificado, basado en una notacin grfica la cual permite especificar, construir, visualizar y documentar objetos de un sistema programado. Un diagrama de casos de usos muestra las distintas operaciones que se esperan de una aplicacin o sistema y cmo se relaciona con su entorno. El desarrollo de los diagramas de casos de usos permite la captura de requerimientos y para la planificacin y control de un proyecto interactivo.

3.4.1 CASO DE USO REGISTRO SISTEMA

Autentificacin Administrador

Validacin Supervisor

Sistema Ingreso

Usuario

Cajero

FIGURA 3.4.1.1 Caso De Uso Registro Sistema

3.4.2.CASO DE USO REGISTRO CLIENTE.

Ingreso

Actualizar Sistema Vendedor Busqueda

Figura 3.4.2.1 Caso De Uso Registro Cliente.

3.4.3. CASO DE USO SUPERVISOR

A u te n tific a c i n

D e s c u e n to

S is te m a

A u to riz a r
S u p e rv is o r

D e v o lu c i n

C a m b io

Figura 3.4.3.1: Caso De Uso Supervisor

3.4.4. CASO DE USO ADMINISTRACIN

In g re so

P ro d u c to
S is te m a

A u te n tific a c i n
D BA

A c tu a liz a c i n

P ro v e e d o r

C a te g o ra

E lim in a r

Figura 3.4.4.1: Caso De Uso Administracin

3.4.5. CASO DE USO VENTAS

Registrar Cliente Cotizacin

Comprar Registrar venta Cobrar /Pagar Entregar Comprabante Entregar Productos

Vendedor

Cliente

Figura 3.4.5.1: Caso De Uso Ventas

4. DESCRIPCIN EXTENDIDA CASOS DE USO

4.1 CASO DE USO REGISTRO SISTEMA

Caso de Uso

Ingreso al Sistema Puntos de ventas El ingreso al sistema supone el ingreso de un nombre de usuario y password. Para

Descripcin

recin optar a las opciones de ste, de acuerdo a los privilegios del usuario ingresado al sistema

Actores Precondicin 1 Precondicin 2

Vendedor, Administrador, Supervisor, Sistema Los Usuarios deben existir como tales en el Sistema Debe haber un usuario administrador creado por el DBA del sistema

1.El usuario ingresa al sistema Ingresando nombre de Usuario y Password. 2.El sistema responde entregndole las funciones a las cuales puede acceder el Flujo Normal usuario. de los Eventos 3.El sistema hace registro de nombre, hora ingreso, y nmero de Terminal (caja) del cual se encuentra ingresando al Sistema.

En el paso 1 el sistema puede no tener registrado al usuario. En ese caso se debe Flujo Alternativo 1 permitir digitar los datos de ste y su funcin dentro de la empresa Post Condiciones No hay post condiciones para este caso de uso Tabla 4.1.1: Caso De Uso Registro Sistema

4.2. CASO DE USO REGISTRO CLIENTE.

Caso de Uso

Registro Cliente

El ingreso de un nuevo cliente, es el primer requisito para poder realizar una venta Descripcin de productos. Debido que si el cliente no aparece en los registros del sistema, esto hace imposible realizar una venta.

Actores Precondicin1

Vendedor, Cliente, sistema El Vendedor ha sido previamente validado y autentificado 1.El vendedor pide los datos personales al cliente como: Rut, nombre completo o razn social,

Flujo Normal de los Eventos

direccin, telfono. 2.El vendedor ingresa al sistema los datos obtenidos. 3.El sistema le confirma la correcta operacin realizada. El cliente recin se encuentra autorizado por el sistema para poder comprar.....

En el paso 2 el sistema puede tener registrado al cliente con el nmero de Rut pero Flujo Alternativo 1 diferente nombre. El sistema entrega un aviso de verificacin de datos.

El caso de uso puede finalizar si el vendedor cierra su conexin o bien si cancela la Flujo Alternativo 2 solicitud de pedido en cualquiera de los pasos desde el 1 al 3. Post Condiciones No hay post condiciones para este caso de uso Tabla 4.2.1: Caso De Uso Registro Cliente.

4.3. CASO DE USO SUPERVISOR

Caso de Uso

Supervisin En este caso de uso se describen las diferentes situaciones que pueden ocurrir en un sistema de ventas como es el caso de devolucin de productos, cambios de

Descripcin los mismos, anular ventas, y autorizar sobre descuentos, todo esto con la autorizacin de un supervisor. Actores Precondicin 1 Vendedor, Cliente, Supervisor El Vendedor ha sido previamente validado y autentificado 1.El vendedor inicia el caso de uso ingresando el RUT del cliente. 2.El sistema responde con los datos del cliente (en caso que sea un cliente registrado previamente en el sistema). 3.El vendedor va solicitando al sistema uno a uno los productos de inters del Flujo Normal de los Eventos cliente 4.El sistema va entregando el Valor Unitario del producto ingresado y calculando el total de los productos solicitados. 5.El sistema emite un comprobante de la transaccin realizada, ya sea factura o boleta. 6.El vendedor hace recibo del dinero y registra el ingreso de ste. En el paso 2 el sistema puede no tener registrado al cliente. En ese caso se debe Flujo Alternativo 1 permitir digitar los datos del cliente. El caso de uso puede finalizar si el vendedor cierra su conexin o bien si cancela Flujo Alternativo 2 la solicitud de pedido en cualquiera de los pasos desde el 1 al 4. Al finalizar el caso de uso una vez emitida la boleta (paso 5)se debe pedir la Flujo Alternativo 3 ayuda a un supervisor para anular la operacin. Post condiciones No hay post condiciones para este caso de uso Tabla 4.3.1: Caso De Uso Supervisor

4.4. CASO DE USO ADMINISTRACIN

Caso de Uso

Administracin del Sistema

En este caso de Uso se encuentran todas las aplicaciones que son necesarias para la Descripcin administracin de un sistema, como es el ingreso, actualizacin, borrado de datos.

Actores Precondicin 1

Administrador, Sistema El Administrador ha sido previamente validado y autentificado

1.El administrador ingresa su username y password para autentificarse en el sistema. Flujo Normal de los Eventos 2. El sistema le entrega las opciones correspondientes a los atributos del usuario registrado. 3.El administrador tiene privilegios para cambiar, ingresar o eliminar informacin de productos, proveedores, categoras de los productos, precios.

Post Condiciones

No hay post condiciones para este caso de uso Tabla 4.4.1: Caso De Uso Administracin

4.5. CASO DE USO VENTAS

Caso de Uso

Venta La venta permite al vendedor realizar una transaccin de un producto, la

Descripcin

cotizacin de este. Esto implica la eleccin del producto, el establecimiento de los datos necesarios con respecto al producto.

Actores Precondicin 1 Precondicin 2

Vendedor, Cliente El Vendedor ha sido previamente validado y autentificado

1.El vendedor inicia el caso de uso ingresando el RUT del cliente. 2.El sistema responde con los datos del cliente (en caso que sea un cliente registrado previamente en el sistema). 3.El vendedor va solicitando al sistema uno a uno los productos de inters del Flujo Normal de los Eventos cliente 4.El sistema va entregando el Valor Unitario del producto ingresado y calculando el total de los productos solicitados. 5.El sistema emite un comprobante de la transaccin realizada, ya sea factura o boleta. 6.El vendedor hace recibo del dinero y registra el ingreso de este. En el paso 2 el sistema puede no tener registrado al cliente. En ese caso se deben Flujo Alternativo 1 permitir digitar los datos del cliente. El caso de uso puede finalizar si el vendedor cierra su conexin o bien si cancela Flujo Alternativo 2 la solicitud de pedido en cualquiera de los pasos desde el 1 al 4. Al finalizar el caso de uso una vez emitida la boleta (paso 5)se debe pedir la Flujo Alternativo 3 ayuda a un supervisor para anular la operacin. Post Condiciones No hay post condiciones para este caso de uso Tabla 4.5.1 Caso De Uso Ventas

5. MODELO DE ANLISIS.

5.1. ANLISIS CASO DE USO REGISTRO SISTEMA

P e rs o n a l In g re s o u s u a rio V e rific a c i n E m p le a d o S is te m a

T ip o d e u s u a rio

C a rg o s

R e g is tro C a ja

E rro r H o ra rio s

Figu ra 5.1.1: Anlisis Caso De Uso Registro Sistema

5.2. ANLISIS CASO DE USO REGISTRO CLIENTE.

In g re so In se rt m o d ific a r C iu d a d

B usqueda

C lie n te

E x ito c a je ro U p d a te C lie n te e x is te

E rro r

Figura 5.2.1 Anlisis Caso De Uso Registro Cliente.

5.3. ANLISIS CASO DE USO SUPERVISOR

Personal Autentificaci n Sistema Validacin Tipo de usuario Cargos Estado _doc Devolucin Supervisor Cambio Venta men Num _doc

Descuento

Producto

Figura 5.3.1 Anlisis Caso De Uso Supervisor

5.4. ANLISIS CASO DE USO ADMINISTRACIN

P e rso n a l

A u te n tific a c i n s is te m a

V a lid a c i n

T ip o d e u s u a rio

C a rg o s

M en

U p d a te p ro d u c to

P ro d u c to

C a te g o ra
D B A

P ro v e e d o r

U p d a te C a te g o ria s A c tu a liz a c io n e s In g re so In se rt

Sub c a te g o r a

P o s ic i n

Figura 5.4.1 Anlisis Caso De Uso Administracin

5.5. ANLISIS CASO DE USO VENTAS

R e g is tr o U s u a r io

A u te n tif ic a c io n

P e rso n a l

E rro r I d e n tif ic a r A u to r iz a d o
C a je r o

C lie n te

P r o d u c to s

V e n ta d e P r o d u c to s

C o n s u lta p r e c io V e n ta

D e ta lle

lis ta d o d e p r o d u c to s

D e s u e n to s to c k

Figura 5.5.1 Anlisis Caso De Uso Ventas

6. SISTEMAS CENTRALIZADOS

El modelo centralizado fue el primero en desarrollarse, en las primeras pocas los ordenadores eran grandes, caros y requeran unas condiciones ambientales muy estrictas y adems eran escasos. En la actualidad no es as, encontramos fcilmente una gran variedad de servidores y las condiciones ambientales no son tan extremas como en un principio.

6.1. BASE DE DATOS CENTRALIZADAS.

En los sistemas de base de datos centralizados, todos los componentes residen en un slo computador o sitio. Los componentes consisten en los datos, el software del sistema de manejo de base de datos(SMBD) y los dispositivos de almacenamiento secundarios asociados, como discos de almacenamiento en lnea de la base de datos y cintas para la copia de seguridad.

6.2. VENTAJAS SISTEMAS CENTRALIZADOS.

La principal ventaja se refiere al control y manejo de los datos.

Dado que sta reside en un slo nodo.

Los mecanismos de control de concurrencia y los mecanismos de recuperacin son mucho ms simples que el de la base de datos distribuidas.

El proceso de consultas es mucho ms difcil en ambientes distribuidos, ya que existe un gran nmero de parmetros que afectan el rendimiento de las consultas distribuidas.

Reduce los costos de administracin y mantenimiento (unificacin y centralizacin de programas, no hay que instalar en cada puesto y/o tele distribuir, tampoco hay que realizar mantenimiento a distancia VNC (Virtual Network Computing)).

Menores requerimientos del equipo local (ms barato).

Posibilidad

de

compartir

recursos

(las

licencias

de

servidor

suelen

ser ms econmicas por usuario que las de puestos locales).

V
IMPLEMENTACI N

7. IMPLEMENTACIN

7.1. TERMINALES Anteriormente el acceso a los computadores no era como lo es hoy en da, no todas las empresas tenan un computador personal para cada usuario; por ello, generalmente existan computadores centrales a los cuales se les conectaban varias Terminales, desde las cuales trabajaban las personas. Estas terminales usualmente consistan en una pantalla y un teclado. De esta manera el computador central soportaba decenas de usuarios, quienes se conectaban mediante estas terminales, todos los procesos se llevaban a cabo por este computador central (host) y los terminales mostraban los resultados enviados por el host, al igual que aquellos enviados mediante el teclado del Terminal; as las terminales eran dispositivos dedicados nicamente al envo y recepcin de caracteres.

7.1.2. CARACTERSTICAS DE LOS DISTINTOS TERMINALES VT05: Esta Terminal fue introducida en 1970, reciba y trasmita a 300 baudios. Mostraba caracteres ASCII en 20 filas y 72 columnas. VT52: Introducida en 1975. Estaba controlada por un conjunto de caracteres de escape, antes de que el estndar ANSI X3.64 las estandarizara.

VT100: Esta fue la primera Terminal que cumpla los estndares ANSI(American National Standards Institute), fue introducida en 1978. Contaba con dos configuraciones 80x24 y 132x14. Despus aparecieron VT102 y VT131 que tenan como estndar 24x132.

VT200 Series: Se introdujo en 1983, Terminal de texto, VT240 y VT241, que aparecieron posteriormente siendo terminales grficas. Esta fue la primera serie en introducir comunicaciones a 8 bits.

VT300 Series: Introducida 1987. La VT320 fue una mejora de la VT220, que soportaba ISO latin-1.

VT420: Contaba con 50 lneas en pantalla, y adems soportaba 2 sesiones.

VT500 Series: Esta serie fue lanzada en Septiembre de 1993 con la VT510, un Terminal de texto mono-sesin monocromtica. Despus apareci la mutilsesin monocromtica VT520. Finalmente apareci la VT525 que era multisesin y poli cromtica.

7.1.3. VENTAJAS TERMINALES.

Ms fiables. Ms fciles de mantener. Menores consumidores de energa elctrica y se calientan menos por lo que no requieren ventiladores, lo cual los hace extremadamente silenciosos

Ms seguros ( no hay datos en las estaciones de trabajo, son inmunes a los virus, no se les puede instalar software no autorizado, solamente se tiene acceso a las aplicaciones autorizadas.)

No

hay

gastos

recurrentes

de

actualizacin

del

software

del

hardware (no crecen las necesidades del cliente.)

En el caso de ser terminales de Thin Client son:

Entre un 25% a 50% de costo ms barato que los PC Bsicos: nicamente pantalla, teclado, ratn, entrada de micro,

salida de auriculares, conexin de red y puerto USB y ejecuta una emulacin de Terminal.

7.2. CONECTIVIDAD.

Gracias al protocolo TCP/IP (Transmision Internet Protocol/Internet Protocol) es posible conectarse a otras computadoras ya que este protocolo ha sido prevaleciente en la interconexin de redes, permitiendo la comunicacin estandarizada entre computadores a travs de una Red. Esto es:

IP: define el protocolo de enrutamiento de los paquetes en la red, permite leer los paquetes y enviarlos a su destino.

TCP: es el protocolo que garantiza la entrega de los datos verificando que todos los paquetes lleguen a su destino.

La utilizacin de este protocolo permite el funcionamiento de terminales a travs de arranque por red, es decir, se establece un dilogo entre el Terminal y el servidor DHCP. El servidor ofrece al Terminal una configuracin de red y un fichero para arrancar, el Terminal acepta dicha configuracin enviada por el servidor, luego solicita el fichero de arranque a travs del protocolo TFTP, para finalmente ejecutar el fichero y quedar operativo.

7.2.1. TELNET

Este es un protocolo y permite la interconexin a una computadora remota en internet o en una red local, la que puede estar en una oficina prxima o en cualquier parte del mundo. El protocolo TELNET (Telecommunicating Networks) proporciona una interfaz estandarizada, a travs de la cual un programa de un host(el cliente de TELNET) puede acceder a los recursos de otro host (el servidor de TELNET) como si el cliente fuera una Terminal local conectada al servidor.

7.2.1.1. FUNCIONAMIENTO DE TELNET.

Telnet es un protocolo basado en tres ideas:

El concepto de NVT(Network Virtual Terminal) (NVT). Una NVT es un dispositivo imaginario que posee una estructura bsica comn a una amplia gama de terminales reales. Cada host revisa las caractersticas de su propia Terminal sobre las de su correspondiente NVT, y asume que todos los dems hosts harn lo mismo.

Una perspectiva simtrica de las terminales y los procesos. Negociacin de las opciones de la Terminal. El protocolo TELNET usa el principio de opciones negociadas, ya que muchos hosts pueden desear suministrar servicios adicionales, ms all de los disponibles en la NVT. Se pueden negociar diversas opciones. El cliente y el servidor utilizan una serie de

convenciones para establecer las caractersticas operacionales de su conexin TELNET a travs de los mecanismos "DO, DON'T, WILL, WON'T"("hazlo, no lo hagas, lo hars, no lo hars")

7.2.1.2. ESTRUCTURA DE COMANDOS EN TELNET La comunicacin entre cliente y servidor es manejada por comandos internos que no son accesibles a los usuarios. Todos los comandos internos de TELNET consisten en secuencias de 2 o 3 bytes, dependiendo del tipo de comando.

El carcter IAC("Interpret As Command"; Interpretar Como Comando) es seguido de un cdigo de comando. Si este comando trata con opciones de negociacin, el comando tendr un tercer byte para mostrar el cdigo asociado a la opcin indicada.

Figura 7.2.1.2.1: Estructura

7.2.1.3. SEGURIDAD TELNET Telnet fue uno de los principales servicios para la administracin remota, pero tambin es uno de los protocolos ms inseguros, susceptibles al sniffing, hacking, etc. Uno de los problemas que tiene Telnet es que no posee encriptacin o cifrado de los datos, por lo que todo l trfico entre los equipos se realiza sin seguridad pudiendo ocasionar ataques y capturar login y password utilizados en una conexin. Por tanto, es muy recomendable no utilizar TELNET para conexiones remotas, sino sustituirlo por aplicaciones equivalentes que utilicen cifrada para la transmisin de datos( Ssh o SSLTelnet). Otro de sus problemas, es la posibilidad de que un atacante consiga recuperar una sesin que no ha sido cerrada correctamente; el uso de telnet para determinar qu puertos de un host estn abiertos, o la utilizacin del servicio telnet (junto a otros, como FTP) para averiguar la versin de kernel que un servidor utiliza.

7.2.2. SSH.

El protocolo SSH (Secure Shell) permite a los usuarios registrarse en sistemas de un host remoto, es un protocolo que crea conexiones seguras entre dos sistemas. Usando SSH, la mquina del cliente inicia una conexin con una mquina de servidor.

SSH nos proporciona los siguientes tipos de proteccin:

El cliente puede transmitir su informacin de autentificacin al servidor; como el nombre de usuario y la contrasea, en formato cifrado. Esta informacin es enviada al servidor usando una encriptacin de 128 bits

Todos los datos enviados y recibidos durante la conexin se transfieren por medio de encriptacin fuerte, lo cual los hace extremamente difcil de descifrar y leer.

El cliente tiene la posibilidad de usar X11(sistema de visin por ventanas) aplicaciones lanzadas desde el indicador de comandos de la shell. Esta tcnica proporciona una interfaz grfica segura.

Despus de la conexin inicial, el cliente puede verificar que se est conectando al mismo servidor al que se conect anteriormente.

7.2.2.1. CARACTERSTICAS DE SSH.

Proyecto de Cdigo Abierto Licencia Libre Cifrado (3DES, Blowfish, AES, Arcfour) Reenvo por X11 (cifra el trfico de X Window System) Reenvo por Puertos (canales cifrados por protocolos de legado) Autentificacin (Clave Pblica, Contrasea de un slo uso y Autentificacin con Kerberos)

Reenvo por Agente (ingreso nico) Interoperabilidad (Conforme con las Regulaciones del Protocolo SSH 1.3, 1.5, y 2.0)

Soporte para cliente y servidor de SFTP en los protocolos SSH1 y SSH2. Pases de Ticket de Kerberos y AFS Compresin de Datos.

7.2.2.2. SECUENCIA DE EVENTOS.

La siguiente serie de eventos ayudan a proteger la integridad de la comunicacin: Se lleva a cabo un handshake encriptado para que el cliente pueda verificar que se est comunicando con el servidor correcto. La capa de transporte entre el cliente y la mquina remota es encriptada mediante cdigo simtrico.

El cliente se autentifica ante el servidor. El cliente remoto puede interactuar con tranquilidad con la mquina remota.

7.2.2.3. CAPA DE TRASPORTE.

El papel principal de la capa de transporte es facilitar una comunicacin segura entre los dos hosts en el momento despus de la autentificacin. Esta se lleva a cabo manejando la encriptacin y la decodificacin de datos y proporcionando proteccin a los paquetes de datos.

Al conectar un cliente a un servidor, se negocian varios puntos importantes para que ambos sistemas puedan construir una capa de transporte en forma correcta. Se producen los siguientes pasos: Intercambio de claves Se determina el algoritmo de encriptacin de la clave pblica. Se determina el algoritmo de la encriptacin simtrica. Se determina el algoritmo autentificacin de mensajes. Se determina el algoritmo de hash que hay que usar.

El servidor se identifica ante el cliente con una clave de host nica durante el intercambio de claves. OpenSSh permite que el cliente acepte la clave de host del servidor. Para las conexiones posteriores, la clave de host del servidor se puede verificar

con la versin guardada en el cliente, proporcionando la confianza que el cliente est realmente comunicado con el servidor deseado. SSH fue ideado para funcionar con casi cualquier tipo de algoritmo de clave pblica o formato de codificacin. Despus del intercambio de claves inicial se crea un valor hash usado para el intercambio y un valor compartido secreto.

7.2.3. PROTOCOLO PUNTO A PUNTO

El protocolo PPP (Point-to-Point Protocol') es usado para mandar datagramas a travs de una conexin serial directa (cable de MODEM nulo), como tambin sobre una conexin TELNET o una conexin a travs de marcado por MODEM y por supuesto con lneas digitales tales como ISDN). Este es el mtodo de conexin estndar que ofrecen los proveedores de Internet (ISP) para su conexin. Adems de usarse PPP para realizar llamadas al proveedor de servicio Internet, puede ser usada para conectar computadores remotos y as tener acceso a que se comparten y a la red local. Una diferencia importante entre PPP basado en serial y una conexin de Ethernet es su velocidad, debido a que una conexin estndar de ethernet funciona en 10Mbs, mientras que un mdem anlogo funciona a una velocidad de 56Kbps.

La conexin PPP permite conectar por ejemplo bodega mediante la lnea telefnica ubicada en los extremos de una ciudad a nuestra aplicacin central desarrollada en ncurses y as tener accesos a los registros de productos y control de stock y estar conectada directamente a la base de datos del sistema con buenas tasas de transferencias.

7.2.4. PUERTO SERIE

Los puertos series; pese a ser relativamente lentos, son muy utilizados tanto por ser bastante flexibles como por encontrarse en toda clase de equipos. Los puertos de serie se pueden utilizar en diversos dispositivos como por ejemplo impresoras y Terminales. Los dispositivos pueden conectarse directamente con un cable o va una lnea telefnica mediante MODEM en cada extremo para modular y remodular la seal. La conectividad por el puerto serie permite la reutilizacin de equipos, ya que todo el procesamiento se realiza en el servidor central y no necesita de medios como Discos duros.

7.2.4.1. ESTNDARES PARA SEALES Y CONECTORES. Casi todos los puertos seriales responden a alguna variante del Standard RS-232, que especifica las caractersticas elctricas , el significado de cada seal y la asignacin de pines en el conector tradicional de 25 pines (DB-25). Sin embargo, en muchas situaciones, se utiliza solamente un subconjunto de las seales definidas en el Standard; aquellas necesarias para la comunicacin bsica.
Pin
1 2 3 4 5 6 7 8 20 22

Name
SHIELD TXD RXD RTS CTS DSR GND CD DTR RI

Description
Shield Ground Transmit Data Receive Data Request to Send Clear to Send Data Set Ready Signal Ground Carrier Detect Data Terminal Ready Ring Indicator

Cuadro 7.2.4.1.1: RS-232.

Es muy comn encontrar el conector DB-9, que conecta las 8 seales ms utilizadas. Otros conectores utilizados son el Mini DIN-8, utilizados en la MAC y algunas estaciones de trabajo, y el RJ-45, un conector similar a un conector de telfono modular con 8 conexiones (el mismo utilizado en las redes Ethernet de par trenzado) usualmente utilizado como conectores intermedios para pasar lneas seriales por ductos, y en algunos Terminal-Servers (equipos con muchos puertos serie utilizados en conjunto con un banco de mdems para permitir la comunicacin a travs de mltiples lneas telefnicas). Hay dos configuraciones para los equipos seriales: DTE (Data Terminal Equipment, equipo Terminal de datos) y DCE (Data Communications Equipment, equipo de comunicacin de datos). Usualmente las computadoras, terminales e impresoras son DTE, mientras que los MODEM son casi siempre DCE. Eso quiere decir que no se puede utilizar el mismo cable para conectar una impresora que para conectar un MODEM.

7.2.5. SOFTWARE DE CONEXIN.

7.2.5.1. ANITA. Este software es un emulador de Terminal para Windows 3.1, Workgroups, 95/98, Windows2000 y NT. Este software emula una gran mayora de terminales en el

mercado de hoy. Por ejemplo: VT220/320, de WYSE, de SCO, ANSI y 3270. Las plataformas de la comunicacin de este software son Asincrnica, NetBios o telnet TCP/IP.

Figura 7.2.5.1.1: usos de Anita.

Otra caracterstica de este software que incluye programas para la transferencia de archivos como es el caso de FTP es que adems tiene un sistema de seguridad para prevenir cambios accidentales de la configuracin del software, la impresin tambin est soportada por el software, ste apoya la impresin de pantalla y la impresin del Terminal. Las impresoras pueden ser conectadas a la red y/o con el sitio de trabajo

donde Anita est instalado. Tiene soporte para tres impresoras terminales y un archivo de impresin que puede ser controlado por el servidor. El soporte de multisesin es otra cualidad de Anita, es decir, en la misma ventana puede conectarse a un mismo servidor o a servidores diferentes.

Figura 7.2.5.1.2: Aplicacin Anita.

7.2.5.2 KERMIT

Es un Protocolo de transferencia de archivo y sus caractersticas principales son:

Establecimiento y mantenimiento de la conexin para una variedad amplia de los mtodos de la conexin (TCP/IP, X.25, LAN, puerto serial, mdem, ssh, etc).

Emulacin Terminal. Transferencia de archivo sin error. Protocolos del Internet incluyendo el Telnet, Rlogin, el Ftp, y el HTTP. Mtodos de la seguridad del Internet incluyendo el Kerberos, SSL/TLS, SSH, y SRP.

Traduccin de caracteres durante la emulacin Terminal y la transferencia de archivo.

Paginacin numrica y alfanumrica. Escritura que programa para automatizar tareas complicadas o repetidoras.

7.2.5.2.1PROTOCOLO DE KERMIT

La caracterstica del protocolo Kermit que la distingue de los otros, es su amplia gama de los ajustes permitiendo la adaptacin a cualquier clase de conexin. La mayora de los otros protocolos se disean para trabajar solamente en ciertas clases o calidades de conexiones, y/o entre ciertas clases de computadoras. Kermit, por otra parte, permite que la transferencia de archivo sea correcta y el funcionamiento ptimo en cualquier

conexin dada.

El protocolo de Kermit del ftp o X -, Y -, y del ZMODEM, no requiere: Una conexin que sea transparente a los caracteres de control; Una conexin de 8-bit; Una conexin limpia; Control de flujo de la fsico.

Pero si se pueden usar cuando estn disponibles.

Por consiguiente, Kermit nos ofrece la posibilidad de realizar impresin transparente, es decir, imprimir en impresoras conectadas directamente a los terminales y no en el servidor central, automatizando la emisin de documentos como boletas, facturas, cotizaciones entre otros a travs de impresoras porttiles o trmicas disponibles para los sistemas POS.

8. INSTALACIN DE INTERBASE 6.

Una vez obtenidos los binarios para IB, se pueden proceder a instalarlo, claro que esto depender de la plataforma sobre la que se vaya a instalar. En este caso se har referencia a la instalacin sobre GNU/LINUX mediante RPM. Cabe hacer una aclaracin debido que existen dos versiones de INTERBASE para LINUX, una se llama Classic Server y la otra se llama Sper Server. La diferencia que existe entre las dos versiones es que Classic Server utiliza un proceso por cliente conectado, y Sper Server utiliza un nico proceso con hilos mltiples. Como en este caso slo se conectar a unos pocos usuarios se puede ocupar cualquier versin. La instalacin de la versin Classic Server en LINUX mediante un archivo RPM es muy sencilla. Se utiliza la interfase de texto en LINUX, entonces se registrar como sper usuario(root) y se escribir en la lnea de comando: rpm ivh InterBaseCS_LI-V6.0.1.i386.rpm Teniendo en cuenta que se encuentra en el mismo directorio donde se encuentra el archivo de instalacin de IB. En el caso de la versin Sper Server la instalacin es mucho ms sencilla, al menos comparado con ORACLE. Para la instalacin se encuentra al sistema como Sper Usuario (root) y se crea un usuario y un grupo llamado INTERBASE, luego desde la lnea de comandos se digita: rpm ivh InterBaseSS_LI-V6.0-1.i386.rpm Luego, se agrega la ruta donde se instalar IB /opt/interbase/ al sistema, por ejemplo en /etc/profile; para que el servidor funcione correctamente se tiene que agregar al

archivo /etc/hosts.equiv la lnea LOCALHOST, de no existir el archivo se tiene que crear. Se cambia el dueo del directorio donde fue instalado IB desde la lnea de comando: chown -R interbase.interbase /opt/interbase Con esto se tiene instalado INTERBASE Super Server, pero an la aplicacin no est corriendo, para sto se le tiene que indicar al sistema que el servidor IB arranque en forma automtica. En la mquina se agregar la siguiente lnea al archivo /etc/rc.d/rc.local: bin/su - interbase -c"/opt/interbase/bin/ibmgr -start > /dev/null" y con sto ya se tiene funcionando correctamente el servidor IB.

9. ADMINISTRACIN BASE DE DATOS.

Para la administracin de la base de datos en el motor INTERBASE se tom la decisin de utilizar la herramienta IBACCESS, esta aplicacin de administracin permite generar y ejecutar un script conteniendo dominios, tablas, triggers y permisos necesarios para implementar algn tipo de auditoria en bases de datos FIREBIRD e INTERNASE, adems de ser una aplicacin OpenSource, para WINDOWS y LINUX.

Figura 9.1: ScreenShot IBAccess.

Esta herramienta cuenta con opciones de administracin de usuarios, estadsticas de procesos de la base de datos figura 9.2. reparacin de errores, creacin y restauracin de BACKUP, lo cual hace de esta herramienta muy til para la administracin.

Figura 9.2: ScreenShot Estadsticas de procesos.

10. CONFIGURACIN IBACCESS

La configuracin de IBAccess es relativamente simple. Para la primera vez que se ejecuta esta aplicacin de administracin se debe crear una nueva instancia esto a travs del men File de esta aplicacin figura 10.1

Figura 10.1: Screenshot Creacin De Nueva Base De Datos.

Luego de agregar una nueva base de datos hay que proceder a configurarla, es decir, indicarle a IBAccess donde se encuentra el servidor de base de datos el cual puede estar ejecutndose local o remotamente, se define el nombre de usuario y la correspondiente password para acceso al motor, adems de la ruta donde se encuentra la base de datos en el servidor. Vase figuras 10.2 y 10.3

Figura 10.2: Screenshot Figura De Configuracin Para Acceso A IB.

Figura 10.3: Configuracin De Acceso Al Servidor IB

11.TABLAS DE LA BASE DE DATOS. A continuacin se procede a detallar las tablas que corresponden al sistema: A. CLIENTES: Tabla, la cual permite tener un registro de los clientes, esto para una estadstica que puede servir para catalogar a los distintos clientes y as ofrecer servicios especiales al momento de pensar en una expansin del rubro. Como por ejemplo el caso de Falabella que cataloga a sus clientes de acuerdo al nivel de gastos efectuados durante un periodo de un ao con un monto determinado en clientes PREMIUM. a)rut _ cliente: Es la clave primaria de la tabla, es de tipo VARCHAR (10), tal como el nombre lo expresa, almacena el Rut del cliente sin dgito verificador, siendo de largo 10, pues es el mximo de longitud que puede tener. b)dv: campo de tipo VARCHAR (1), el cual almacena el dgito verificador del Rut. c)razn _ social: Campo de tipo VARCHAR (40) con capacidad mxima de almacenamiento de caracteres de 40, el cual almacena el nombre del cliente en el caso de ser una persona natural, o bien el nombre de la empresa cliente. d)direccin: Campo de tipo VARCHAR (40) con capacidad mxima de almacenamiento de 40 caracteres, el cual almacena la direccin del cliente. e)cod_ciudad: Campo de tipo VARCHAR (10) el cual contiene el cdigo de la ciudad a la cual pertenece el cliente, este campo es la clave fornea de esta tabla.

B. CIUDAD: esta tabla contiene las distintas ciudades y sus respectivos cdigos.

a)cod_ciudad: Campo de tipo VARCHAR de longitud 10 el cual contiene los cdigos de ciudades. Este campo corresponde a la clave primaria de la tabla adems de ser nica, vale decir que slo existe un nombre de ciudad con su respectivo cdigo y estos no se repiten. b)descripcin: Campo de tipo VARCHAR (40) el cual contiene el nombre de las distintas ciudades, con una longitud de 40 caracteres.

C. PROVEEDORES: Como el nombre de la tabla lo indica, en esta tabla se registran todo los proveedores con cual negocia la empresa y sus atributos son:

a)rut_prove: Campo de tipo VARCHAR con mximo de 10 caracteres para almacenamiento de Rut sin dgito verificador, este campo corresponde a la clave primaria de esta tabla. b)dv: campo de tipo VARCHAR (1), el cual almacena el dgito verificador del Rut. c)razn _ social: Campo de tipo VARCHAR (40) con capacidad mxima de almacenamiento de caracteres de 40, el cual almacena el nombre del proveedor de la empresa. d)direccin: Campo de tipo VARCHAR (40) con capacidad mxima de almacenamiento de 40 caracteres, el cual almacena la direccin. e)telfono: Campo de tipo VARCHAR (10) de diez (10) caracteres para almacenamiento de un nmero telefnico de contacto.

f)cod_ciudad: Campo de tipo VARCHAR (10) el cual contiene el cdigo de la ciudad a la cual pertenece el proveedor, este campo es la clave fornea de esta tabla.

D. PRODUCTOS: Corresponde al registro de productos que contiene la empresa para su comercializacin

a)cod_producto: clave primaria de la tabla, la cual corresponde al cdigo interno para identificacin del producto en venta, es de tipo VARCHAR con una mximo de 10 caracteres. b)stok: Campo de tipo entero, Soporta valores entre -2.147.483.648 y 2.147.483.648). c)price_compra: Describe el precio que se adquiri el producto campo de tipo interger. d)price_venta: Corresponde al precio al cual ser vendido el producto. Campo de tipo entero. e)descripcin: Almacena la descripcin del artculo en venta. Campo VARCHAR de 40 caracteres. f)rut_prove: Clave fornea de identificacin del proveedor. VARCHAR de 10 caracteres. g)cod_subcat: Clave fornea de la identificacin del producto. Tipo VARCHAR de 10 caracteres.

E. PERSONAL: contiene los nombres y cargos del personal de la empresa, como tambin el nmero de telfono y direccin para contacto.

a)rut: Clave primaria de esta tabla, de tipo VARCHAR de 10 caracteres de longitud. b)dv: Corresponde al digito verificador el cual se almacena en este campo de tipo VARCHAR. c)nombres: Campa tipo VARCHAR de 40 caracteres de longitud para el almacenaje del nombre del personal. d)apellidos: Campo tipo VARCHAR de 40 caracteres de longitud para el almacenaje del nombre del personal. e)telfono: 10 caracteres de longitud para almacenar nmero telefnico de contacto de tipo VARCHAR. f)direccin: Campo VARCHAR de longitud de 40 caracteres. g)cod_ciudad: Clave fornea de esta tabla, con el cdigo de la ciudad a cual corresponde el empleado. h)cod_cargo: Clave fornea, con el cdigo del cargo que representa el empleado en la empresa.

F. CAJAS: Esta tabla esta asignada para llevar un registro del nmero de cajas las cuales estn disponibles para uso del sistema.

a)cdigo: Cdigo interno para control, corresponde a un campo de tipo VARCHAR de 10 caracteres de longitud, y representar la clave primaria de esta tabla. b)descripcin: Campo de tipo VARCHAR de 40 caracteres de longitud.

G. POSICIN: Esta tabla hace referencia a la ubicacin fsica de los productos en la tienda, ya que se pueden distribuir por mdulos, pasillos entre otras. Esta tabla fue pensada para tener una referencia a la hora de consultar por la ubicacin de un producto en particular.

a)cod_pos: Clave primaria, de tipo VARCHAR de 10 caracteres de longitud. b)descripcin: Campo de tipo VARCHAR de 40 caracteres de longitud.

H. CATEGORA: Los productos se clasifican en categoras. Esta tabla hace referencia a esa clasificacin.

a)cod_cat: Clave primaria correspondiente al cdigo interno, el cual tiene una longitud de 10 caracteres y es de tipo VARCHAR. b)descripcin: Corresponde al nombre de la categora a la que pertenece el producto en venta. Campo de tipo VARCHAR de una longitud de 40 caracteres.

I. SUB-CATEGORA: La clasificacin de los productos corresponde a distintas categoras que al mismo tiempo tienen una sub clasificacin. Esta tabla

corresponde a esta sub-clasificacin.

a)cod_subcat: Clave primaria de esta tabla, campo de tipo VARCHAR de 10 caracteres. b)descripcin: Corresponde al nombre de la sub clasificacin de los productos. Campo de tipo VARCHAR de 40 caracteres de longitud. c)cod_cat: Clave fornea de esta tabla de tipo VARCHAR. e)cod_pos: hace referencia a la ubicacin fsica de los productos. Clave fornea de 10 caracteres de longitud de tipo VARCHAR.

J. TRANSACCIONES: Los distintos tipo de transacciones y operaciones se encuentran definidas en esta tabla. Ejemplo. Venta con boleta, venta con factura, notas de crdito.

a)cod_tras: Clave primaria de esta tabla y corresponde al cdigo interno de la transaccin. Campo de tipo VARCHAR de 10 caracteres de longitud. b)descripcin: Nombre de la transaccin, campo de 40 caracteres de tipo VARCHAR.

K. ESTADO_DOC: Hace referencia a la vigencia del documento, por los posibles estados que pueda tener. a)cod_estdo_doc: Clave primaria de tipo VARCHAR de 10 caracteres de longitud. b)descripcin: Nombre del estado del documento. Campo VARCHAR de 40 caracteres.

L. TIPO_PAGO: Hace referencia a las distintas formas de pago como contado, cheques al momento de la compra de los productos, dejando abierta la posibilidad de incorporar tarjetas de crdito para el pago de estos.

a)cod_pago: Codigo interno, campo de tipo VARCHAR de 10 caracteres. b)descripcin: Campo de tipo VARCHAR de 40 caracteres de longitud para definir los nombre de las formalidades de pago.

M. NUM_DOC: La numeracin de las boletas y facturas es un requisito impuesto por el Servicio De Impuestos Internos. Esta tabla hace referencia a ello; haciendo la distincin entre los distintos tipos de documentos por el cdigo de transaccin.

a)cod_doc: Corresponde al numero del documento. Campo de tipo VARCHAR de 10 caracteres de longitud, clave primaria de esta tabla. b)cod_estado_doc: Clave fornea de tipo VARCHAR de 10 caracteres. c)cod_tras: Clave fornea de tipo VARCHAR de 10 caracteres.

N. VENTA: Esta es una de las tablas maestras de esta base de datos. Pues en ella se registran todas las transacciones que el sistema realiza, registrando hora de compra, caja, vendedor que realiza la operacin, tipo de documento, la forma de pago, el cliente.

a)cod_venta: Cdigo interno, de tipo VARCHAR de 10 caracteres de longitud. b)fecha: Fecha de la operacin realizada. Campo de tipo DATE. c)total: Campo de tipo FLOAT. d)cod_numdoc: Clave fornea de tipo VARCHAR de 10 caracteres. e)cod_tipo: Clave fornea de tipo VARCHAR de 10 caracteres. f)cod_caja: Clave fornea de tipo VARCHAR de 10 caracteres. g)rut_cliente: Clave fornea de tipo VARCHAR de 10 caracteres. h)rut: Clave fornea de tipo VARCHAR de 10 caracteres.

O. DETALLE: Corresponde al

detalle de la compra, vale decir, el valor del

producto, la cantidad de unidades, el cdigo del producto. a)cod_venta: clave primaria y fornea. Campo de tipo VARCHAR de 10 caracteres. b)fecha: Campo de tipo DATE. c)cod_producto: Clave fornea de 10 caracteres de tipo VARCHAR. d)cantidad: Clave fornea. Campo de tipo INTEGER. e)price_venta: Clave fornea. Campo de tipo FLOAT. f)cod_caja: Clave fornea. Campo de tipo VARCHAR de 10 caracteres de longitud.

12. PROGRAMACIN EN LINUX.

Linux fue inicialmente un sistema desarrollado por los programadores. Por eso cuenta con una gran cantidad de herramientas de programacin. Prcticamente cualquier lenguaje de programacin conocido puede usarse en Linux.

12.1. PROGRAMACIN EN C.

El lenguaje C es estndar a la hora de realizar programas relativamente complejos. Casi todo el ncleo de Linux esta escrito en este lenguaje, y como ya se dijo anteriormente su evolucin pareja al desarrollo de Unix lo convierte en ideal para programar en este entorno. El compilador de C prcticamente es usado en la totalidad de las instalaciones de Linux(GNU). El GCC es un compilador rpido y eficiente, totalmente compatible con el estndar ASCII C, pero que implementa algunas caractersticas propias. La sentencia habitual para invocar al compilador es similar a la siguiente: gcc holamundo.c o holamundo donde holamundo.c es el archivo donde reside el cdigo fuente, y holamundo el ejecutable. La programacin en C se suele completar como algunas herramientas como make, autoconf, entre otras. La utilidad make facilita enormemente la gestin de programas con gran nmero de archivos, ya que ayuda a tratar de manera eficiente las diferentes dependencias que

existen entre los archivos y permite generar slo los archivos que se necesitan en cada momento. Por otro lado, autoconf permite generar cdigo muy portable y que se adapte por s mismo a diferentes plataformas y arquitecturas, logrando que el mismo cdigo fuente pueda ser compilado sin problemas en diferentes plataformas. Existen multitud de libreras para ser enlazadas con los programas inscritos en C, ahorrando as tiempo y esfuerzo. Estas libreras cubren campos como programacin grfica, resolucin de ecuaciones, entornos de ventanas, tratamiento de imgenes, base de datos, clculo numrico, comunicacin entre procesos, acceso a hardware, impresin entre otras.

12.2. PROGRAMACIN EN C CON INTERBASE.

Uno de los mayores problemas que se encontraron para el desarrollo de la aplicacin fue la conectividad a travs del lenguaje C de Linux al motor de base de datos INTERBASE, esto por la escasa documentacin que hay respecto al lenguaje con la interaccin de la base de datos, este problema llev a acudir directamente al soporte de INTERBASE a travs de sucesivos correos electrnicos los cuales no tuvieron respuesta alguna. Por lo tanto, slo se cont con los ejemplos que contiene la instalacin de INTERBASE y en esta documentacin se encontr FUNCIONES DE

PROGRAMACIN DE APLICACIN (API) para programacin con INTERBASE.

12.3. FUNCIONES DE PROGRAMACIN DE APLICACIN (API)

Independiente al mtodo escogido para el acceso desde su aplicacin a su servidor INTERBASE, todas las peticiones que se hagan debern pasar por las llamadas que brinda la API de INTERBASE. Si se conecta a travs de bibliotecas de componentes como INTERBASE Express, INTERBASE Objects, C, todos estos mtodos encapsulan dentro de sus mtodos las oportunas llamadas a las API de INTERBASE para poder realizar su trabajo. Dentro de las API de INTERBASE existen funciones de todo tipo: para gestin de base de datos, para manejo de tipo de Blobs y array, funciones de conversin, para el manejo y gestin de errores y eventos, para obtener informacin de diversos objetos de la base de datos, para la gentos de la seguridad del servidor y sus base de datos, para controlar el propio servidor, y tambin para manejar transacciones.

Antes de poder utilizar ninguna de las funciones con las que se gestionan las transacciones, es necesario crear un TPB (transaction parameter buffer). El TPB es el vector donde se almacenan los parmetros que van a determinar el comportamiento de las transacciones. La creacin de TPB no es necesariamente obligatoria, pues el servidor al no existir crea una por defecto, con un conjunto de parmetros predefinidos. Ahora se proceder a definir una lista de funciones con una breve descripcin para la programacin con Interbase. isc_start_transaction: arranca una transaccin contra una o ms base de datos. Entre otros parmetros recibe un puntero de un vector de estado, un puntero al manejador (handle) de la transaccin, puntero(s) a los manejadores de la(s) base(s) de datos sobre la(s) que actua la transaccin, y un puntero a TPB que determina el parmetro de la transaccin.

isc_start_multiple: Realiza el mismo trabajo de la funcin anterior. Su existencia est motivada para proporcionar un mecanismo que permita arrancar una transaccin contra varias base de datos desde lenguajes que no soportan de un nmero variable de argumentos en la llamada a una funcin.

isc_commit_transaction: Cierra la transaccin, confirmando en la base de datos todos los cambios (inserciones, modificaciones y/o eliminaciones) que se hayan realizado durante la misma.

isc_commit_retaining: Confirma todos los cambios que se hayan realizado desde el comienzo de la transaccin. Adems se crea una nueva transaccin que adquiere el contexto de la transaccin original. En principio su funcin es manejar el rendimiento, eliminando la sobre carga que supone adquirir los recursos necesarios al iniciar una nueva transaccin.

isc_rollback_transaction: Cierra la transaccin, cancelando en la base de datos todos los cambios que se hayan realizado durante la misma.

isc_rollback_retaining:

Realiza

el

mismo

trabajo

que

la

funcin

isc_commit_retaining, salvo que cancela todos los cambios en la base de datos por la transaccin desde que se arranc.

isc_prepare_transaction: Lleva a cabo la primera fase de un commit en dos fases, el commit en dos fases, permite asegurar la consistencia de las transacciones que implique a varias base de datos. El commit en dos fases, es un mecanismo automtico por defecto, por lo tanto el uso de esta funcin implica tener que realizar posteriormente una llamada a isc_commit_transaction para llevar a cabo la segunda fase del cierre de la transaccin y la confirmacin de los cambios.

isc_prepare_transaction2: Realiza el mismo trabajo que la funcin anterior, pero adems recibe como parmetro una cadena de caracteres que se escriben en

la columna RDB$TRANSACTION_DESCRIPTION, de la fila que corresponda a la transaccin de la tabla del sistema RDB$TRANSACTIONS. En la prctica esto significa la desactivacin del mecanismo automtico de recuperacin de un commit en dos fases que no finalice correctamente, quedando en manos del desarrollador dicha recuperacin.

12.4. COMPILACIN EN GCC

GCC es un compilador integrado del proyecto GNU para C, C++, Objective C y Fortran; es capaz de recibir un programa fuente en cualquiera de estos lenguajes y generar un programa ejecutable binario en el lenguaje de la mquina donde a de correr. La sigla GCC significa "GNU Compiler Collection". Originalmente significaba "GNU C Compiler"; Todava se usa GCC para designar una compilacin en C. G++ la cual se refiere a una compilacin en C++. La sintaxis para la compilacin es la siguiente:

gcc [ opcin | archivo] g++ [ opcin | archivo]

Las opciones van precedidas de un guin (-) como es habitual en UNIX, pero varias opciones no pueden agruparse tras un mismo guin(-). Algunas opciones requieren despus un nombre de archivo o directorio, otras no. Finalmente pueden darse varios nombres de archivos a incluir.

12.5. EJEMPLOS.

gcc hola.c

: El cual compila el programa en C hola.c y genera el ejecutable a.out.

gcc -o hola hola.c

Compila el programa en hola.c, generando el ejecutables hola, esto debido a la opcin (o) al momento de la compilacin. gcc -I/usr/include hola.c: Compila el programa hola.c indicando que incluya los archivo de encabezado de extensin .h que se encuentran en el directorio /usr/incluye.

12.6.OPCIONES DE COMPILACIN
Opciones Descripcin Realiza preprocesamiento y compilacin, obteniendo el archivo en cdigo objeto; no realiza el enlazado. -E -o archivo -Iruta Realiza solamente el preprocesamiento, enviando el resultado a la salida estndar. Indica el nombre del archivo de salida, cualesquiera sean las etapas cumplidas. Especifica la ruta hacia el directorio donde se encuentran los archivos marcados para incluir en el programa fuente. No lleva espacio entre la I y la ruta, as: -I/usr/include -L Especifica la ruta hacia el directorio donde se encuentran los archivos de biblioteca con el cdigo objeto de las funciones referenciadas en el programa fuente. No lleva espacio entre la L y la ruta, as: -L/usr/lib -Wall Muestra todos los mensajes de error y advertencia del compilador, incluso algunos cuestionables pero en definitiva fciles de evitar escribiendo el cdigo con cuidado. -g Incluye en el ejecutable generado la informacin necesaria para poder rastrear los errores usando un depurador, tal como GDB (GNU Debugger). -v Muestra los comandos ejecutados en cada etapa de compilacin y la versin del compilador. Es un informe muy detallado. Cuadro 12.6.1: Opciones de compilacin.

-c

12.7. ETAPAS DE COMPILACIN

El proceso de compilacin involucra cuatro etapas sucesivas: preprocesamiento, compilacin, ensamblado y enlazado. Para pasar de un programa fuente escrito a un archivo ejecutable es necesario realizar estas cuatro etapas en forma sucesiva. Los comandos gcc y g++ son capaces de realizar todo el proceso de una sola vez.

Figura 12.7.1: etapas compilacin.

Preprocesado:

En esta etapa se interpretan las directivas al preprocesador.

Entre otras cosas, las variables inicializadas con #define son sustituidas en el cdigo por su valor en todos los lugares donde aparece su nombre y adems de quitar los comentarios.

Compilacin:

La compilacin transforma el cdigo C en el lenguaje

ensamblador propio del procesador de nuestra mquina. Ensamblado: El ensamblado transforma el programa escrito en lenguaje

ensamblador a cdigo objeto, un archivo binario en lenguaje de mquina ejecutable por el procesador. Enlazado: Las funciones de C/C++ incluidas en nuestro cdigo, tal como

printf() en el ejemplo, se encuentran ya compiladas y ensambladas en bibliotecas existentes en el sistema. Es preciso incorporar de algn modo el cdigo binario de estas funciones a nuestro ejecutable. En esto consiste la etapa de enlace, donde se renen uno o ms mdulos en cdigo objeto con el cdigo existente en las bibliotecas.

12.8. OPTIMIZACIN DE LA COMPILACIN

MAKE es una herramienta que controla la creacin de ejecutables y otros archivos de un programa a partir de los archivos fuente. Esta utilidad nos permite optimizar la compilacin a travs de un archivo de nombre makefile sin extensin. Este archivo consiste de una relacin de dependencias entre cada archivo que se quiere obtener y aqullos necesarios para su creacin, seguido por el comando que lo genera.

12.9. CAPACIDADES DE MAKE

Hace posible que el usuario final compile e instale su programa sin conocer en detalle cmo est realizado - debido a que estos detalles estn guardados en el archivo makefile.

Decide automticamente qu archivo es necesario actualizar, basndose en qu archivos fuentes han sido modificados. Tambin determina automticamente el orden en que la actualizacin debe hacerse.

Como resultado, si se cambian algunas lneas de cdigo y luego se ejecuta MAKE, ste no necesitar compilar todo su programa nuevamente. Solamente actualizar aquellos objetos que sean necesarios.

MAKE no est limitado a ningn lenguaje en particular. MAKE no est limitado a compilar aplicaciones. Se puede usar MAKE para instalar o desinstalar programas, generar tablas de tags o cualquier otra cosa que se pueda necesitar automatizar.

12.9.1. EJEMPLO DE MAKE $ make ALL

El contenido del archivo makefile es el siguiente:

#!/sbin/bash CC = gcc

CFLAGC = -c -w -I/opt/interbase/include -o LFLAGC = -lgds -ldl -lcrypt -lmenu -lpanel -lform -lncurses IN OUT = proyecto.c = proyecto

OBJS = proyecto.o all = $(OUT)

$(OBJS):$(IN) $(CC) $(IN) $(CFLAGC) $(OBJS) $(OUT):$(OBJS) $(CC) -o $(OUT) $(OBJS) $(LFLAGC) ALL : $(CC) $(IN) $(CFLAGC) $(OBJS) $(CC) -o $(OUT) $(OBJS) $(LFLAGC) Cuadro 12.9.1.1: Ejemplo archivo makefile.

13.SISTEMA El sistema realizado entre sus funcionalidades podr ser invocado por el usuario mediante un conjunto de funciones que le son presentadas a partir del men principal, del cual se desprenden jerrquicamente otros menes que a continuacin se describen: El aspecto del men principal es como sigue:

Figura 13.1: Screenshot Sistema Puntos De Ventas.

Ingreso: permite al usuario llevar acabo todos los procesos de ingreso de registros al sistema, como por ejemplo: Clientes, proveedores, categoras, productos.

Consultas: permite la consulta de datos al sistema, respecto a su contenido en el instante de la duda.

Modificar: permite al usuario del sistema realizar modificaciones a los datos.

Ventas: permite realizar las transacciones como ventas con boleta, facturas, y notas de crdito.

Documentos: Emite el Listado de productos.

Cada una de las funciones ms importantes de estas opciones ser explicada con ScreenShot a continuacin.

13.2. INGRESOS.

Figura 13.2.1. Screenshot Sistema Para Men Ingreso.

Cliente: El sistema permite tener un registro de los clientes para tener un control de las compras y poder generar algn tipo de estadsticas por los administradores de la base de dato. Vase figura 13.2.2

Figura 13.2.2. Screenshot Men Ingreso, Sub-Menu Cliente.

Productos: Corresponde al ingreso de nuevos productos para ser vendidos. En el cual se ingresa el nombre del producto, el cdigo interno de identificacin del producto, el cdigo del proveedor del producto, el nmero de stock inicial del producto, el precio de compra al proveedor, el precio de venta al pblico, y las categoras a la cual pertenece. Vase figura 13.2.3

Figura 13.2.3: Screenshot Ingreso De Productos Nuevos.

Proveedor: Ingreso de nuevos proveedores.

Figura 13.2.4: Screenshot Ingreso De Proveedores Nuevos.

Sub-Categora: Para la administracin y orden de los productos, se pueden crear nuevas categoras a la cual pertenecen los productos.

Figura 13.2.5: Screenshot Ingreso De Categoras Nuevas.

Ciudad: El registro de las ciudades para el control de los clientes, en el caso que la ciudad no se encuentre. Vase figura 13.2.6

Figura 13.2.6: Screenshot Ingreso De Ciudades Nuevas.

13.3. CONSULTAS. En este proceso se pueden realizar mltiples consultas al sistema para obtener informacin relevante, como por ejemplo: Bsqueda de clientes, bsqueda de productos, categoras, proveedores, y subcategoras.

Figura 13.3.1: Screenshot Men Consultas.

Cliente: Para la bsqueda del cliente, el sistema pide el Rut del cliente; una vez ingresado, se pide la confirmacin de la operacin para posteriormente entregar un resultado. Vase figura 13.3.2

Figura 13.3.2: Screenshot Resultado Bsqueda Cliente.

Productos: Para la realizacin de esta operacin es necesario digitar el cdigo de identificacin del producto, para obtener una respuesta satisfactoria del sistema. Vase figura 13.3.3.

Figura 13.3.3: Screenshot Resultado De Bsqueda Producto.

Categora: Nos permite tener la ubicacin fsica en el local donde se encuentran los determinados productos que pertenecen a una categora determinada. Para esta bsqueda se necesita el cdigo de la categora de la informacin que se anda buscando. Vase figura 13.3.4.

Figura 13.3.4: Screenshot Consulta Por Categora.

13.4. MODIFICAR.

La mantencin de los datos es una parte importante para tener una informacin fidedigna en el sistema. Por ello se crea el mdulo Modifica que permite la actualizacin de productos, clientes, proveedores, categoras, sectores, ciudades.

Figura 13.4.1: Screenshot Men Modificacin

13.5. VENTAS.

En este men el sistema contiene submens; facturas, boletas, cotizaciones, y notas de crditos. En el submen venta se ingresa el cdigo, y se va generando una lista automtica de todos los productos acumulados, y el total de la compra.

Figura 13.5.1: ScreenShot Ventas de Productos.

VI. RESULTADOS.

Primero que todo se logr crear una aplicacin para el proceso de venta en lenguaje C, con la ayuda de Ncurses para la programacin de terminales y conjuntamente con interaccin a interbase como motor de base de datos.

Se desarroll un sistema de Puntos de ventas, en un ambiente centralizado, con un bajo costo econmico en Software y Hardware, con bajo requerimientos de los terminales para ejecutar la aplicacin y la utilizacin de software sin costos (OpenSource).

Al ser un sistema de bajo costo permite a las pequeas y medianas empresas contar con un sistema para el control de sus ventas sin necesidad de desembolsar una gran cantidad de dinero y agilizando considerablemente este proceso.

La utilizacin de un sistema en un ambiente centralizado, disminuir

y agilizar la

administracin de los datos reduciendo as las incoherencias de estos y los costos de mantencin.

El uso de ste sistema reducir las tareas de control de stock, mantendr un control de los productos vendidos y agilizar la contabilidad del local. Todo esto asegura la correcta toma de dediciones respecto a su negocio en cuanto a qu, cundo, dnde y a quin comprar, donde aplicar polticas de ventas ms agresivas, etc.

VII. CONCLUSIN.

Despus de haber estudiado, analizado y comprendido los sistemas POS, conjuntamente de realizar el presente trabajo de ttulo se puede concluir que:

Se logr dimensionar, desarrollar y cumplir con los objetivos planteados al realizar una aplicacin real, con herramientas de poca connotacin.

Se logr elaborar un sistema POS como una alternativa conveniente y de bajo costo, especialmente diseada para aquellas empresas cuyo poder adquisitivo no es suficiente para adquirir las grandes marcas existentes en el mercado.

Se aprendi a manipular herramientas complejas, administrar y usar sistemas como Linux, C, Interbase en un corto periodo de tiempo.

El desarrollo de un sistema en ncurses ha permitido comprobar que esta es una alternativa conveniente de programacin para terminales, a pesar que el poco uso y conocimiento de la existencia de ella, se traduce en escasa informacin para conocer todas las ventajas y funciones de esta librera.

VIII. REFERENCIAS DE INTERNET.

http://www.pc.ibm.com/store/ http://www.april.se/english/index.asp http://www.icb-sp.com/terminales.htm http://pos.epson.com

Sitio de IBM dedicado a POS Software Anita. Terminales Porttiles. Sitio de sistemas POS de Epson

http://es.tldp.org/Manuales-LuCAS/GSAL/gsal-19991128-htm/ Gua de seguridad de linux http://ditec.um.es/~piernas/manpages-es/otros/tutorialManual en espaol de ncurses. ncurses.html http://es.pscnet.com/html/hs1250.htm PSC venta de productos de retail. http://www.opengroup.org/onlinepubs/007908799/cursesix.html Referencia Ncurses. http://www.adala.org/formacion/cursosip/x1862.html http://en.tldp.org/HOWTO/NCURSES-rogramming-HOWTO/ http://www.tux.cl/ http://www.monografias.com/trabajos16/sistemasdistribuidos/sistemas-distribuidos.shtml http://www.interland.com.tw/25iis-tk735.html http://www.soluciones-fiscales.cl/productos.htm http://terminales.hispalinux.es/ http://www.columbia.edu/kermit/ http://www.ltsp.org/ http://www.firebird.com.mx/modules/news/ http://www.borland.com/interbase/ http://www.gerencia.cl/articulo.mv?sec=1&num=94 http://www.mundofree.com/juanpablo/reciclajepc/html/grid.htm http://microsites.publicar.com/dominiospropios/sistemaspos/ho me.htm Terminal Box. Impresoras Fiscales. Terminales. Proyecto Kermit. Proyecto Linux Terminal Server. Sitio en espaol de Firebird. Sitio de Borland para interbase. Sitio de informacin de gerencia de sistema. Arquitectura de ordenadores Ventas de productos para POS. Programacin sobre Linux HowTo ncurses Sitio Linux en chile Sistemas Distribuidos

IX. ANEXOS La programacin se realiza a travs de procedimientos y funciones que se estructuran en instrucciones, variables y constantes, las cuales estn diseadas con un propsito en particular, por lo tanto tienen su propio nombre por el cual son llamadas. Entre las funciones y procedimientos utilizados estn:

init_curses: Permite la utilizacin de colores y teclas de funcin en el sistema.


void init_curses() { initscr(); start_color(); init_pair(1, COLOR_WHITE , COLOR_BLACK ); init_pair(2, COLOR_BLUE , COLOR_WHITE); init_pair(3, COLOR_RED , COLOR_WHITE); init_pair(4, COLOR_BLUE , COLOR_BLACK); init_pair(5, COLOR_CYAN , COLOR_BLACK); init_pair(6, COLOR_RED , COLOR_BLACK); init_pair(7, COLOR_MAGENTA , COLOR_BLACK); init_pair(8, COLOR_YELLOW , COLOR_BLACK); init_pair(13, COLOR_GREEN , COLOR_BLACK); init_pair(14, COLOR_YELLOW , COLOR_BLUE ); init_pair(15, COLOR_WHITE , COLOR_BLUE ); init_pair(16, COLOR_BLACK , COLOR_RED ); cbreak(); curs_set(0); noecho(); keypad(stdscr,TRUE); }

FUNCIN DE CONTROL DE ERRORES CON BASE DE DATOS:


int pr_error (ARG(long ISC_FAR *, status), ARG(char ISC_FAR *, operation)) ARGLIST(long ISC_FAR * status) ARGLIST(char ISC_FAR * operation) { printw("\n"); printw("Error en Operacion \"%s\".\n", operation); isc_print_status(status); printw("SQLCODE:%d\n", isc_sqlcode(status)); printw("\n"); return 1; }

VENTANA _ IMPRESIN: Procedimiento para impresin de documentos.


void ventana_impresion(char archivo[50] ) { int opcion; char print[50],borrado[50]; WINDOW *win; PANEL *my_panels; win = newwin(10,20,8,35); my_panels=new_panel(win); curs_set(1); mvwprintw(win,1,2," IMPRIMIR "); wattron(win,COLOR_PAIR(6));echo(); mvwprintw(win,2,3,"SI(S) NO(N) "); opcion=wgetch(win); switch (opcion) {case 's': case 'S':sprintf(print,"printer %s ",archivo); system(print); sprintf(borrado,"rm -f %s",archivo); system(borrado); break; case 'n': case 'N':sprintf(borrado,"rm -f %s",archivo); system(borrado); break; } wattroff(win,COLOR_PAIR(6)); update_panels(); doupdate(); del_panel(my_panels); delwin(win); }

DRAW_MENUBAR: Genera el men principal del sistema.


void draw_menubar(WINDOW *menubar) { wmove(menubar,0,0); wbkgd(menubar,COLOR_PAIR(2)); waddstr(menubar,"Ingresos"); wattron(menubar,COLOR_PAIR(3)); waddstr(menubar,"(I)"); wattroff(menubar,COLOR_PAIR(3)); wmove(menubar,0,14); waddstr(menubar,"Consultas"); wattron(menubar,COLOR_PAIR(3)); waddstr(menubar,"(C)"); wattroff(menubar,COLOR_PAIR(3)); wmove(menubar,0,30); waddstr(menubar,"Modificar"); wattron(menubar,COLOR_PAIR(3)); waddstr(menubar,"(M)"); wattroff(menubar,COLOR_PAIR(3)); wmove(menubar,0,45); waddstr(menubar,"Ventas"); wattron(menubar,COLOR_PAIR(3)); waddstr(menubar,"(V)"); wattroff(menubar,COLOR_PAIR(3)); wmove(menubar,0,60); waddstr(menubar,"Documentos"); wattron(menubar,COLOR_PAIR(3)); waddstr(menubar,"(D)"); wattroff(menubar,COLOR_PAIR(3)); }

SCROLL_MENU: Funcin que permite el scroll de los mens principales.

int scroll_menu(WINDOW **items,int count,int menu_start_col) { int key; int selected=0; int npos_menu=menu_start_col; while (1) { key=getch(); if (key==KEY_DOWN || key==KEY_UP) { wbkgd(items[selected+1],COLOR_PAIR(2)); wnoutrefresh(items[selected+1]); if (key==KEY_DOWN) { selected=(selected+1) % count; } else { selected=(selected+count-1) % count; } wbkgd(items[selected+1],COLOR_PAIR(1)); wnoutrefresh(items[selected+1]); doupdate(); } else if (key==ESCAPE) { return -1; } else if (key==ENTER) { return selected; } } }

CDIGO SOLICITUD DE INGRESO DATOS CLIENTES NUEVOS:

move(2,15); printw("Ingreso Clientes Nuevos."); wattroff(stdscr,COLOR_PAIR(6)); move(4,5); printw("Nonmbre o Razon S. : "); move(6,5); printw("Rut :"); move(8,5); printw("Direccion :"); move(10,5); printw("Telefono :"); move(12,5); printw("Ciudad :"); attrset(COLOR_PAIR(2) | A_BOLD); mvaddstr(4, 27, " "); mvaddstr(6,27," "); mvaddstr(6,42," "); mvaddstr(8,27," "); mvaddstr(10,27," "); mvaddstr(12,27," "); wattron(stdscr,COLOR_PAIR(13)); move(4,27); getstr(nombre); move(6,27); getstr(rut);move(6,38);printw(" - ");move(6,42);getstr(dv); move(8,27); getstr(direc); move(10,27); getstr(tele); move(12,27); getstr(ciu); curs_set(0);

DRAW_MENUF1: Despliega el men de ingreso.

WINDOW **draw_menuf1(int start_col) { char *menuf1[]= {"cliente", "Producto", "Proveedor", "Sub-Categoria", "Ciudad", "Descuento" }; int i; WINDOW **items; items=(WINDOW **)malloc(9*sizeof(WINDOW *)); items[0]=newwin(9,15,1,start_col); wbkgd(items[0],COLOR_PAIR(2)); box(items[0],ACS_VLINE,ACS_HLINE); items[1]=subwin(items[0],1,14,2,start_col+1); items[2]=subwin(items[0],1,14,3,start_col+1); items[3]=subwin(items[0],1,14,4,start_col+1); items[4]=subwin(items[0],1,14,5,start_col+1); items[5]=subwin(items[0],1,14,6,start_col+1); items[6]=subwin(items[0],1,14,7,start_col+1); for (i=0;i<6;i++) wprintw(items[i+1],"%s",menuf1[i]); wbkgd(items[1],COLOR_PAIR(1)); wrefresh(items[0]); return items; }

BUSCA_CLIENTE: Codigo para busqueda de clientes en BD y despliega la imformacion obtenida de la base de datos.
SQL_VARCHAR(CADENA) nombre; SQL_VARCHAR(CODIGO) rut; SQL_VARCHAR(CODIGO) dv; SQL_VARCHAR(CADENA) direccion; SQL_VARCHAR(CADENA) descripcion; SQL_VARCHAR(CODIGO) telefono; short flag0 = 0, flag1 = 0, flag2 = 0, flag3 = 0, flag4 = 0; isc_stmt_handle stmt = NULL; isc_db_handle DB = NULL; isc_tr_handle trans = NULL; long status[20]; XSQLDA ISC_FAR * sqlda; long fetch_stat; char empdb[128]; char sel_str[500] ="SELECT nombre, rut, dv, direccion, telefono, descripcion FROM wclientes WHERE rut=\'"; strcat(sel_str,crut); strcat(sel_str,"\';"); strcpy(empdb, RUTABD); if (isc_attach_database(status, 0, empdb, &DB, 0, NULL)) isc_print_status(status); if (isc_start_transaction(status, &trans, 1, &DB, 0, NULL)) ERREXIT(status, 1); sqlda = (XSQLDA ISC_FAR *) malloc(XSQLDA_LENGTH(3)); sqlda->sqln = 6; sqlda->sqld = 3; sqlda->version = 1; if (isc_dsql_allocate_statement(status, &DB, &stmt)) ERREXIT(status, 1); if (isc_dsql_prepare(status, &trans, &stmt, 0, sel_str, 1, sqlda)) ERREXIT(status, 1); sqlda->sqlvar[0].sqldata = (char *)&nombre; sqlda->sqlvar[0].sqltype = SQL_VARYING + 1; sqlda->sqlvar[0].sqlind = &flag0; sqlda->sqlvar[1].sqldata = (char *)&rut; sqlda->sqlvar[1].sqltype = SQL_VARYING + 1; sqlda->sqlvar[1].sqlind = &flag1; sqlda->sqlvar[2].sqldata = (char ISC_FAR *)&dv; sqlda->sqlvar[2].sqltype = SQL_VARYING + 1; sqlda->sqlvar[2].sqlind = &flag2;

sqlda->sqlvar[3].sqldata = (char ISC_FAR *)&direccion; sqlda->sqlvar[3].sqltype = SQL_VARYING + 1; sqlda->sqlvar[3].sqlind = &flag3; sqlda->sqlvar[4].sqldata = (char ISC_FAR *)&telefono; sqlda->sqlvar[4].sqltype = SQL_VARYING + 1; sqlda->sqlvar[4].sqlind = &flag4; sqlda->sqlvar[5].sqldata = (char ISC_FAR *)&descripcion; sqlda->sqlvar[5].sqltype = SQL_VARYING + 1; sqlda->sqlvar[5].sqlind = &flag4; if (isc_dsql_execute(status, &trans, &stmt, 1, NULL)) ERREXIT(status, 1); while ((fetch_stat = isc_dsql_fetch(status, &stmt, 1, sqlda)) == 0) { move(2,15); printw("Busqueda Clientes."); move(4,5); printw("Nonmbre o Razon S. : "); wattron(stdscr,COLOR_PAIR(13)); printw("%-20.*s ", nombre.vary_length, nombre.vary_string); wattroff(stdscr,COLOR_PAIR(13)); move(6,5); printw("Rut : "); wattron(stdscr,COLOR_PAIR(13)); printw("%-10.*s ", rut.vary_length, rut.vary_string); printw(" - "); printw(" %-1.*s",dv.vary_length, dv.vary_string ); wattroff(stdscr,COLOR_PAIR(13)); move(8,5); printw("Direccion : "); wattron(stdscr,COLOR_PAIR(13)); printw("%-40.*s ", direccion.vary_length, direccion.vary_string); wattroff(stdscr,COLOR_PAIR(13)); move(10,5); printw("Telefono : "); wattron(stdscr,COLOR_PAIR(13)); printw("%-10.*s ", telefono.vary_length, telefono.vary_string); wattroff(stdscr,COLOR_PAIR(13)); move(12,5); printw("Ciudad : "); wattron(stdscr,COLOR_PAIR(13)); printw("%-25.*s \n", descripcion.vary_length, descripcion.vary_string); wattroff(stdscr,COLOR_PAIR(13)); } if (fetch_stat != 100L) { ERREXIT(status, 1); } if (isc_dsql_free_statement(status, &stmt, DSQL_close)) { ERREXIT(status, 1);

} if (isc_commit_transaction(status, &trans)) { ERREXIT(status, 1); } if (isc_detach_database(status, &DB)) { ERREXIT(status, 1); } free( sqlda);

UPDATESTOCK: Funcin para reduccin stock de productos vendidos.

int updatestock(int ncantidad,char ncodigo[10]) { isc_db_handle newdb = NULL; /* database handle */ isc_tr_handle trans = NULL; /* transaction handle */ long status[20]; /* status vector */ long sqlcode; /* SQLCODE */ char create_db[160]; /* 'create database' statement */ char new_dbname[500]; char up_date[150] = "update producto set stock=stock"; strcat(up_date,"-"); strcat(up_date,ncantidad); strcat(up_date,"where codigo=\'"); strcat(up_date,ncodigo); strcat(up_date,"\';"); strcpy(new_dbname, "/opt/interbase/bin/sistema"); printf(create_db,new_dbname); isc_detach_database(status, &newdb); if (isc_attach_database(status, 0, new_dbname, &newdb, 0, NULL)) if (pr_error(status, "attach database")) return 1; isc_start_transaction(status, &trans, 1, &newdb, 0, NULL); if (isc_dsql_execute_immediate(status, &newdb, &trans, 0, up_date, 1, NULL)) if (pr_error(status, "insert into")) return 1; isc_commit_transaction(status, &trans); isc_detach_database(status, &newdb); return 0; refresh(); }

You might also like