pulse aquí
Transcripción
pulse aquí
º CEDRUX. Solución para sistemas de control logístico. 1 Ing. Virgen Damaris Quevedo Campins, 1Msc. Meylin Martínez Chong, 2Ing. Tte Lester Antonio González Gutierrez, 2 Ing. Alien Fernández Fuentes. Universidad de las Ciencias Informáticas, Carretera a San Antonio de los Baños, km 2 ½, Boyeros, Ciudad de La Habana, Cuba. e-mail: [email protected], [email protected], [email protected], [email protected]. RESUMEN. La Planeación de Recursos Empresariales (Enterprise Resource Planning, ERP) es un sistema compuesto por un conjunto de módulos funcionales estándar y que son susceptibles de ser adaptados a las necesidades de cada empresa. Estos sistemas integran la información de todas las áreas de la empresa como Logística, Planificación, Recursos Humanos, Contabilidad…, etc. Con el uso de los ERP se gana en comunicación, organización, adaptabilidad, integración, control sobre los procesos organizacionales, desarrollo, en fin, es una mejora sustancial para el funcionamiento de cualquier entidad y/o empresa. En nuestro país no se contaba con un sistema ERP completo que integrara todos los módulos necesarios (hasta el momento se utilizaba el Versat Sarasola que tenía entre otras deficiencias el ser una aplicación de escritorio). Para dar respuesta a esta necesidad, la UCI junto a otras organizaciones del país, se dio a la tarea de desarrollar un sistema completo, ha venido trabajando en el desarrollo del Sistema Integral de Gestión Empresarial Cedrux, más conocido por ERP cubano. Como parte de esta solución aparecen varios sistemas integrados: Configuración, Contabilidad, Planificación, Recursos Humanos y Logística. Esta última encargada del control de los medios materiales (Inventario), de los activos fijos tangibles y la facturación. Estos procesos conforman subsistemas que aunque presentan negocios diferentes, también poseen características comunes indispensables para su correcto funcionamiento. Con el objetivo de lograr que estos subsistemas pudiesen funcionar aislados pero manteniendo todas las funcionalidades se crearon componentes comunes para ellos, los cuales además tienen la responsabilidad de lograr la integración con otros subsistemas externos y constituyen el eje principal del sistema Logístico de Cedrux. Esto posibilita que los clientes puedan escoger si desean trabajar con todos los subsistemas de Logística o sólo con algunos sin tener que obtener el paquete completo y un avance significativo en la calidad, rapidez y seguridad en la previsión, seguimiento y control de los procesos antes mencionados. Palabras Claves. Planeación de Recursos Empresariales, módulos, sistema, solución, logística. CEDRUX. LOGISTIC CONTROL SYSTEM SOLUTION. ABSTRACT. The Planeación of Managerial Resources is a compound system for a standard group of functional modules and that they are susceptible of being adapted to the necessities of each company. These systems integrate the information of all the areas of the company like Logistics, Planning, Human resources, Accounting…, etc. With the use of the ERP is won in communication, organization, adaptability, integration, control on the organizational processes, I develop, in short, it is a substantial improvement for the operation of any entity and/or company. In our country we didn't have a system complete ERP that integrated all the necessary modules (until the moment the Versat Sarasola was used that had among other deficiencies the being a desk application). To resolve this need, the Informatics Sciences University with other organizations in the country, has been working in the development of Integrated Business Management System Cedrux, better known as Cuban’s ERP. As part of this solution are more integrated system: Configuration, Accounting, Planning, Human Resources and Logistics. The latter was responsible for the control of material resources (inventory) of tangible fixed assets and turnover. These processes comprise subsystems that have different business but also have common features essential for proper operation. With the goal of these subsystems could operate in isolation while maintaining all the features common components were created for them, which also have the responsibility to achieve integration with other external subsystems and constitute the backbone of the system Cedrux’s Logistics. This allows customers to choose whether they want to work with all the logistics subsystems or only some without INTRODUCCIÓN En estos tiempos el ambiente competitivo del mundo empresarial se ha incrementado indudablemente, debido a que las entidades requieren promover procesos y entidades de negocio que brinden ventajas ante la competencia o que simplemente proporcionen ahorro y eficiencia económica. Hoy más que nunca se hace necesaria la utilización de herramientas que proporcionen un mejor control y centralización de la información con el fin de tomar las mejores decisiones para los procesos y estrategias del negocio. En el mundo cada día toma mayor fuerza el empleo de sistemas para la planificación de recursos empresariales (ERP) por las múltiples ventajas que brinda, siendo reconocido el papel que desempeñan en el fortalecimiento de las relaciones intra empresariales y la eficiencia interna de las organizaciones que los utilizan. Cuba, incluso estando bloqueada económicamente por la potencia más grande del mundo, ha derivado en grandes esfuerzos para la informatización de la sociedad. La dirección de nuestro país, como parte del fortalecimiento de la gestión de las entidades y la informatización de la sociedad cubana, ha venido planteado la necesidad de informatizar los procesos de gestión de las entidades presupuestadas y empresariales a escala nacional utilizando plataformas más confiables, eficientes y basadas sobre plataformas libres. Esta decisión ha estado influenciada por la necesidad de una comunicación acertada entre los diferentes departamentos de las entidades que permita dar respuestas coordinadas; la insuficiente gestión de los procesos, así como de los cambios y mejoras que estos pueden presentar; la escasez de un adecuado intercambio de información y contenidos por todos los agentes implicados en un canal logístico, desde las materias primas hasta los productos terminados; y la urgencia de mejorar en el país la eficiencia y los niveles de productividad con una reducción de los costes y manteniendo un acertado seguimiento, previsión y control de los procesos en todas las áreas de la empresa. Este escenario marcó el surgimiento del Sistema Integral de Gestión Empresarial Cedrux, concebido en su proyección inicial como un paquete de soluciones integrales de gestión, basado en los principios de independencia tecnológica y en la inclusión de las funcionalidades generales presentes en los procesos de la economía cubana . Cedrux, conocido también como ERP cubano, cuenta con la atención directa de varios Organismos de la Administración Central del Estado (OACE), y en su desarrollo participa un CCIA’2010 2 having to obtain the complete package, and a significant advance in the quality, speed and security in forecasting, monitoring and control of the above processes. Enterprise Resource Planning, modules, system, solution, logistic. Key words: equipo multidisciplinario compuesto por especialistas de diferentes entidades del país y la Universidad de las Ciencias Informáticas, quienes a partir del análisis realizado sobre las necesidades básicas para las empresas cubanas, los requerimientos gubernamentales pertinentes y las funcionalidades presentes en sistemas similares a nivel mundial, determinaron desarrollar en una primera etapa un completo rango de funcionalidades de varias áreas de las existentes en las empresas, entre las que destacan: Contabilidad General, Costos y Procesos, Capital Humano, Planificación Financiera y Logística, construida dentro de una sola plataforma de negocios. Dentro de esta última se pueden definir procesos de vital importancia en el correcto funcionamiento de una entidad, se hace referencia a los procesos de registro y control de los medios materiales, al control de los activos fijos (medios en explotación) y al proceso de facturación, las cuáles constituyen el objeto de análisis de este trabajo. No obstante de existir en Cuba productos que lograban integrar diferentes funciones del área económica, entre las que se encuentran las mencionadas con anterioridad, éstos no satisfacían las demandas de los organismos cubanos. Generalmente estos productos están enfocados a un sector específico o se han desarrollado para funcionar según las características de otra economía, como la europea. Además de las limitaciones que constituye el elevado precio de un producto extranjero, está la dependencia que se crea a un suministrador externo, en quienes se seguiría invirtiendo hasta lograr adaptar el Sistema a las necesidades de la economía cubana, aún cuando estos sean productos de reconocido prestigio internacionalmente. Por otra parte, los productos cubanos de este tipo, no han logrado integrar todas las áreas de la gestión económica, lo que ha influido en la calidad con que se llevan a cabo los procesos en las entidades cubanas, además de limitar el intercambio eficiente de información entre las diferentes áreas. Se debe añadir el inconveniente que representa la ausencia de un adecuado sistema de soporte, así como las restricciones causadas por la vejez de las tecnologías utilizadas. Debe destacarse además, la dificultad que constituye para la calidad y rapidez con que se realizan estos procesos, el hecho de que en la mayoría de las entidades se realicen de forma manual, y se necesite de mucho tiempo y coordinación para el traspaso de los documentos oficiales de un área a otra de la empresa y entre empresas. Esto también provoca errores sistemáticos en los datos ofrecidos, ya sea por un mal control en las entidades o a la propia naturaleza humana. El hecho de CCIA’2010 la realización manual de estos procesos ha incidido altamente en manifestaciones de corrupción en los niveles de dirección intermedia del sector empresarial, todo esto condicionado por la falta de mecanismos eficientes de control interno en las empresas. Si bien el sistema Cedrux significa un paso de avance importante, debe tenerse en cuenta para que las soluciones a los procesos de control de inventario, activos fijos tangibles y facturación, presentes este sistema funcionen de forma tal que satisfagan todas las necesidades detectadas, se hace necesario una solución técnica que sobrepasa la propia realización de estos procesos. Estos procesos conforman subsistemas que aunque presentan negocios diferentes, también poseen características comunes indispensables para su correcto funcionamiento. Estos subsistemas deben funcionar aislados pero manteniendo todas las funcionalidades, además de lograr la integración con otros subsistemas externos. Esto posibilitaría que los clientes puedan escoger si desean trabajar con todos los subsistemas de Logística o sólo con algunos sin tener que obtener el paquete completo y un avance significativo en la calidad, rapidez y seguridad en la previsión, seguimiento y control de los procesos antes mencionados. Surge así el siguiente problema a resolver: ¿Cómo obtener un sistema de control logístico (inventario, facturación, activos fijos tangibles) como soluciones independientes manteniendo una integración entre ellos y a su vez con los demás procesos de gestión empresarial? Para resolver el problema se trazó como objetivo principal: Desarrollar componentes comunes que permitan la integración entre los subsistemas del sistema Logística de Cedrux y con otros subsistemas externos y permitan un avance significativo en la calidad, rapidez y seguridad en la previsión, seguimiento y control de los procesos de inventario, facturación y activos fijos tangibles. DESARROLLO Un usuario hace una solicitud mediante un evento del navegador en un formulario JS, este envía una notificación a la clase controladora, mediante JSON o Atributos. Esta setea entidades y se comunica con la clase gestora Bussines responsable de la petición, la cual ha debido instanciar. La gestora o Bussines es la encargada de la lógica propia del negocio, cálculos y procesamiento de negocio, y también puede comunicarse con la Doctrine Domain. Esta última se conecta mediante PDO (Doctrine Record) a la DBO (Capa interna de doctrine basada en PDO nativo), y esta DBO es la que se conecta directamente a la base de datos. El paquete de Servicios incluye todas las funcionalidades contenidas en los paquetes de Controladoras, Modelo, y Validaciones. Para solicitar un servicio que está en otro 3 dominio, se accede a través del paquete de Servicios, quien analizará la solicitud e irá al IoC (Componentes gestor de servicios), el cual re direccionará la petición al paquete Servicios que contiene la clase que debe proporcionar la funcionalidad (esta debe acceder a la Clase que implementa la funcionalidad, la cual ha instanciado previamente) y la devolverá a Servicios que a su vez se la entregara al dominio solicitante. Además este paquete de Servicios también tiene lo denominado “Lógica adicional” que consiste en que cuando se conciba una solicitud que no esté implementada como tal, pero que necesita de los parámetros que tienen los paquetes mencionados, se implementa esa solicitud en este paquete (Servicios) y devuelve el resultado al servicio solicitante. Estrategias de Integración La aplicación está especificada por tres capas: capa de Presentación (View), Negocio (Controller) y Acceso a Datos (Models). La integración vertical consiste en el flujo de los datos desde la vista hacia la capa de datos y viceversa, pasando por los diferentes elementos que componen la arquitectura. Esta consta de cuatros nodos de integración, el que se encuentra entre la vista y el controlador, el que está entre el controlador y el modelo, el que vincula el modelo con el Framework Doctrine y el que se encuentra entre el Doctrine y la Base de Datos. Todo el código dentro un mismo componente utiliza llamadas a métodos o eventos de forma directa. Cada componente tiene su registro de los datos de los módulos en un fichero XML que será mapeado por el Framework para el funcionamiento del mismo, dicho fichero tiene por nombre IoC y registra las funcionalidades que ofrecen los métodos de las clases control de los componentes del sistema. El IoC especifica respuestas deseadas a sucesos o solicitudes de datos concretas, dejando que otro módulo o componente lleve a cabo las acciones de control que se requieran en el orden necesario y para el conjunto de sucesos que tengan que ocurrir. La base de datos es accedida de forma directa mediante controladoras y los componentes rehusados son integrados mediantes interfaces sencillas, garantizando así una total integración de las capas en el sistema. (Ver Figura 1). CCIA’2010 4 Las clases que se encuentran dentro de Domain el nombre que reciben es el de la tabla en la Base de Datos. Ejemplo: Factura Generated (Dominio bases) Las clases que se encuentran dentro de Generated el nombre comienza con la palabra: “Base” y seguido el nombre de la tabla en la Base de Datos. Ejemplo: BaseFactura 3. Clases del Framework Ilustración 1. Integración entre las capas del sistema Estándares de código Los estándares de codificación son pautas de programación que no están enfocadas a la lógica del programa, sino a su estructura y apariencia física para facilitar la lectura, comprensión y mantenimiento del código. La Línea de Arquitectura emitió las Normas y Estándares de Codificación, este documento constituye una guía para el desarrollo en las líneas de producción, desde el punto de vista arquitectónico, con el propósito de lograr una estandarización del código. Los estándares de codificación en el marco del ERP van a permitir una mejor integración entre las líneas de producción y se establecerán las pautas que conlleven a lograr un código más legible y reutilizable, de tal forma que se pueda aumenta su mantenibilidad a lo largo del tiempo. Nomenclatura de las clases Los nombres de las clases comienzan con la primera letra en mayúscula y el resto en minúscula, en caso de que sea un nombre compuesto se empleará notación PascalCasing (Los identificadores y nombres de variables, métodos y funciones están compuestos por múltiples palabras juntas, iniciando cada palabra con letra mayúscula). Ejemplo: Gestfacturacion Nomenclatura según el tipo de clases 1. Clases controladoras Las clases controladoras después del nombre llevan la palabra:”Controller”. Ejemplo: GestfacturacionController 2. Clases de los modelos Business (Negocio) Las clases que se encuentran dentro de Business después del nombre llevan la palabra: “Model”. Ejemplo: GestfacturacionModel Domain (Dominio) Como parte del marco de desarrollo de Zend existe el Zend_Loader (Cargador) que, amen del cumplimiento de ciertas normas para la nomenclatura de las clases garantiza que, a partir de una ruta de inclusión, éste sea el responsable de la inclusión de los recursos requeridos en el proceso. Ejemplo: Los nombres de las clases contienen la dirección donde se encuentran, de la siguiente forma, si tenemos una clase llamada Factura en la siguiente estructura ERP/Logística/Facturación/Factura.php entonces un identificador de la misma debe ser ERP_Logística_Facturación_Factura lo que garantiza que a través de una casuística particular el cargador localice estos recursos. Nomenclatura de las funciones El nombre a emplear para las funciones se escribe con la primera palabra en minúscula, en caso de que sea un nombre compuesto se empleará notación CamelCasing (Es parecido al PascalCasing con la excepción que la letra inicial del identificador debe estar en minúscula), y con sólo leerlo se reconoce el propósito de la misma. Ejemplo: adicionarFactura En caso de ser una acción de la clase controladora se le pone el nombre y seguida la palabra:”Action” Ejemplo: adicionarFacturaAction Nomenclatura de las variables El nombre a emplear para las variables se escribe con la primera palabra en minúscula, en caso de que sea un nombre compuesto se empleará notación CamelCasing, y comenzando con un prefijo según el tipo de datos. Ejemplo: arrFactura Prefijos para los tipos de datos Los prefijos a utilizar en la creación de variables serán los siguientes: Tabla 1. Prefijos de las Variables Tipos de Datos Prefijos CCIA’2010 Arreglos arr Cadena str Objetos obj float flt Enteros int Boolean Boo Nomenclatura de las constantes El nombre a emplear para las constantes se escribe con todas las letras en mayúscula. Ejemplo: FACTURA. Nomenclatura de los atributos El nombre a emplear para los atributos se escribe con la primera palabra en minúscula, en caso de que sea un nombre compuesto se empleará notación CamelCasing. Además en caso de ser un objeto se comienza con:”_” y después se escribe el nombre. Ejemplo: arrFactura=facturada objFactura=_ facturada Tratamiento de Errores Para garantizar el correcto funcionamiento del sistema se debe tener en cuenta un tratamiento de errores, el sistema captura todas aquellas excepciones que son lanzadas y se le facilita un tratamiento para que el sistema no colapse. De esta manera se da solución a las problemáticas de los lanzamientos de excepciones que se dan en el sistema según las peticiones del usuario, capturando los tipos de errores lanzados y mostrando de manera visible al usuario mensajes de confirmación, esto le dará una idea de qué es lo que está incorrecto y como solucionarlo. Mediante la interfaz Web se impedirá que el usuario asuma un papel activo en la introducción de la información, para esto se contará con cuadros de opción, menú de selección, lo cual facilitará la entrada de datos. La información que requiera ser adicionada por el usuario se validará mediante funciones o expresiones regulares que garanticen que sea válida y que el cuadro de texto no esté vacío si es obligatorio llenarlo. Si hay un error en la información le saldrá al usuario un mensaje en pantalla indicándole el error, al oprimir Aceptar el mensaje desaparece y el usuario podrá seguir introduciendo los datos en el formulario. También se validarán las opciones correspondientes a la extracción o modificación de datos del servidor de base datos. Si se desea eliminar algún elemento de la BD se preguntará al usuario si está seguro de realizar dicha acción, al igual que cuando desee modificar alguna información, antes de actualizarla se le preguntará si desea realizarla o no. 5 En el sistema existen funciones que necesitan validaciones previas para que se ejecuten sin ningún problema, para estas validaciones se usan varios ficheros XML entre ellos el validator, el cual contiene las llamadas a las precondiciones y poscondiciones que deben cumplirse, igualmente esta el fichero exception el cual contiene los mensajes que serán mostrador según la excepción lanzada, otro de los ficheros XML es el ManageException el cual captura excepciones previas que definimos ya sean para excepciones del Doctrine o del Framework. Así se logra que se realicen las operaciones que se desean y que se rectifique al cometer un error. IoC IoC es un concepto junto a unas técnicas de programación en las que el flujo de ejecución de un programa se invierte respecto a los métodos de programación tradicionales, en los que la interacción se expresa de forma imperativa haciendo llamadas a procedimientos (procedure calls) o funciones. Tradicionalmente el programador especifica la secuencia de decisiones y procedimientos que pueden darse durante el ciclo de vida de un programa mediante llamadas a funciones. En su lugar, en la inversión de control se especifican respuestas deseadas a sucesos o solicitudes de datos concretas, dejando que algún tipo de entidad o arquitectura externa lleve a cabo las acciones de control que se requieran en el orden necesario y para el conjunto de sucesos que tengan que ocurrir. El flujo habitual se da cuando es el código del usuario quien invoca a un procedimiento de una librería. La inversión de control sucede cuando es la librería la que invoca el código del usuario. Típicamente sucede cuando la librería es la que implementa las estructuras de alto nivel y es el código del usuario el que implementa las tareas de bajo nivel. El IoC permite la integración entre componentes y subsistemas. La inversión de control se hace necesaria para gestionar las dependencias entre subsistemas y el framework. Arquitectura. La Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema, programa o aplicación y tiene la responsabilidad de: Definir los módulos principales. Definir las responsabilidades que tendrá cada uno de estos módulos. CCIA’2010 Definir la interacción que existirá entre dichos módulos. Control y flujo de datos. Secuenciación de la información. Protocolos de interacción y comunicación. Ubicación en el hardware. El objetivo principal de la Arquitectura del Software es aportar elementos que ayuden a la toma de decisiones y, al mismo tiempo, proporcionar conceptos y un lenguaje común que permitan la comunicación entre los equipos que participen en un proyecto. En el desarrollo del sistema se utilizaron las siguientes: Cliente-Servidor La arquitectura cliente/servidor es un modelo para el desarrollo de sistemas de información en el que las transacciones se dividen en procesos independientes que cooperan entre sí para intercambiar información, servicios o recursos. Se denomina cliente al proceso que inicia el diálogo o solicita los recursos y servidor al proceso que responde a las solicitudes. En este modelo las aplicaciones se dividen de forma que el servidor contiene la parte que debe ser compartida por varios usuarios, y en el cliente permanece sólo lo particular de cada usuario. Entre las principales características de esta arquitectura se pueden destacar las siguientes: El servidor presenta a todos sus clientes una interfaz única y bien definida. El cliente no necesita conocer la lógica del servidor, sólo su interfaz externa. El cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico en el que se encuentra, ni de su sistema operativo. Los cambios en el servidor implican pocos o ningún cambio en el cliente. (López, y otros, 2007) Modelo-Vista-Controlador Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El patrón MVC se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página. (Edgarin, 2006) Modelo: Esta es la representación específica del dominio de la información sobre la cual funciona la aplicación. El modelo es otra forma de llamar a la capa de dominio. La lógica de dominio añade significado a los datos; por ejemplo, calculando si hoy es el cumpleaños del usuario o los totales, impuestos o portes en un carrito de la compra. Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente un elemento de interfaz de usuario. 6 Controlador: Este responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista. Según (Welicki, 2009) algunos de sus principales beneficios son: Menor acoplamiento. Mayor cohesión. Las vistas proveen mayor flexibilidad y agilidad. Mayor facilidad para el desarrollo de clientes ricos en múltiples dispositivos y canales. Más claridad de diseño. Facilita el mantenimiento. Mayor escalabilidad. Arquitectura En el desarrollo del sistema se utilizaron las siguientes arquitecturas: Cliente-Servidor dado que las transacciones se dividen en procesos independientes que cooperan entre sí para intercambiar información, servicios o recursos; y Modelo-Vista-Controlador para separar los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. Los lenguajes utilizados se relacionan a continuación: PHP, XML, HTML, XHTML y JavaScript. Fue utilizado UML como lenguaje para visualizar, especificar, construir y documentar los artefactos del sistema. Para el desarrollo fueron utilizadas otras tecnologías como: JSON como formato ligero de intercambio de datos; Css (Cascading Style Sheets,) ,formato usado en las páginas web para dar estilo a documentos HTML y XML, separando el contenido de la presentación; AJAX para crear aplicaciones interactivas mediante la combinación de tres tecnologías ya existentes: HTML, CSS, Document Object Model (DOM), JavaScript, XML y XSLT; PostgreSQL para extraer y almacenar información de la base de datos; PGAdmin III como aplicación gráfica para gestionar el gestor de bases de datos PostgreSQL; Wamp 5 como servidor web; Mozilla Firefox como navegador web; Notepad++ como editor de código fuente; Zend Studio como IDE para el desarrollo de aplicaciones Web; Subversion como sistema de control de versiones y TortoiseSVN como cliente; Visual Paradigm como herramienta de modelado que utiliza “UML”: como lenguaje de modelaje; Zend Framework para desarrollo de aplicaciones Web y servicios Web con PHP; ExtJS utilizado en el desarrollo de aplicaciones Web con AJAX; Doctrine como sistema ORM (object relational mapper) para PHP 5.2+ que tiene un DBAL (database abstraction layer) incorporado; UCID Framework que abarca la integración del Framework ExtJs con el sistema incluyendo el integrador de interfaz, el generador de interfaz dinámica y la impresión de documentos, integra la iconografía, los diferentes temas de escritorio de la aplicación, el multilenguaje; IoC para la integración entre componentes y subsistemas, la inversión de control se hace necesaria para gestionar las dependencias entre subsistemas y el framework. Características básicas del proyecto CCIA’2010 Se consideran funcionalidades generales: Desde el punto de vista funcional: 1. 2. 3. 4. 5. 6. Multimoneda Doble moneda Multientidades Control de fechas Transaccional Tratamiento Estadístico de la información procesada Desde el punto de vista técnico: 7. 8. 9. 10. Independencia Tecnológica Multiusuario y trabajo en red Plataforma Web Interoperabilidad con otros sistemas Módulo Inventario 1. Nomenclador propio (productos, almacenes, depósitos, pañoles) 2. Métodos de valoración de los inventarios 3. Control de Inventario (Entrada, salida, existencia, mínimos, máximos, reaprovisionamiento, reserva) 4. Control de herramientas y útiles. En almacén y en Uso. Método de desgaste. 5. Tratamiento de las Reservas movilizativas y estatales 6. Tratamiento de los recargos y descuentos. 7. Tomas físicas parciales y totales. Tratamiento de las diferencias 8. Tratamiento de los aranceles y tasas aduanales no incluidos en la factura del producto. 9. Gestión de fechas 10. Submayores específicos 11. Emisión de comprobantes al módulo de Contabilidad y registro del devengado presupuestario 12. Informes específicos de inventarios Módulo Facturación 1. Nomenclador propio 2. Gestión de la facturación (Formato libre y formato obligatorio, posibilidad de configuración de la impresión). 3. Contratación Económica y los plazos y formas de pagos. 4. Gestión de fechas 5. Submayores específicos 6. Emisión de comprobantes al módulo de Contabilidad 7. Informes específicos Módulo Activos Fijos Tangibles e Intangibles 1. Nomenclador Grupos y Subgrupos 2. Gestión de Activos Fijos Tangibles (movimientos, reparaciones capitales y control, almacenados y en explotación) 3. Tratamiento de los aranceles y tasas aduanales no incluidas en la factura del producto. 4. Gestión de módulos homogéneos y heterogéneos 5. Métodos de depreciación 6. Registro de depreciación 7. 8. 9. 10. 11. 12. 13. 14. 7 Avalúos y revalorizaciones de activos Tomas físicas parciales y totales. Tratamiento de las diferencias Gestión de Activos Fijos Intangibles Métodos de amortización Gestión de fechas Submayores específicos Emisión de comprobantes al módulo de Contabilidad y registro del devengado presupuestario. Informes específicos Entorno de usuario En las entidades que utilicen la solución, se vincularán a la solución los especialistas relacionados con los procesos Contables Financieros y de Recursos Humanos. Con la utilización de la solución, los especialistas comprobaran una mejora sustancial en la eficiencia y control de las actividades que actualmente desempeñan, a través de la informatización de la mayoría de sus actividades, disponiendo de este modo de más tiempo para el análisis y la planificación de las actividades estratégicas de la entidad. A los usuarios se les proveerá una completa y moderna plataforma de aplicaciones Web, la cual será fácilmente accesible desde cualquier puesto de trabajo, evitando de este modo la limitantes de las aplicaciones de escritorio y además se disminuirán los ciclos de reposición de equipamiento informático por este concepto. La rotura de una estación no afectará el trabajo, pues con el uso de la tecnología Web podrán continuar desarrollando su labor sin que esto implique pérdida parcial o total de su trabajo. Además, esta plataforma estará preparada para el trabajo orientado a servicios, creando las condiciones necesarias para la inclusión de nuevos módulos y la conexión a otras aplicaciones existentes en la entidad, brindando de esta forma una altísima adaptabilidad a las nuevas condiciones y cambios que ocurran en las entidades. A través de la vinculación directa de los especialistas representantes de órganos y organismos del Estado al equipo de desarrollo se logrará la actualización constante de las funcionalidades bases de la solución a partir de las regulaciones del gobierno. Esto brindará un importante valor añadido a las entidades que la implanten. CCIA’2010 8 Datos en DQL y no en SQL, puesto que este último presenta una alta probabilidad de sufrir inyecciones de código. IoC Paquete Útiles: Gestión de Cuentas: Es el componente encargado de mostrar las cuentas controladas por el subsistema. Gestión de Áreas Gestión de Ubicación Gestión de Depósitos Gestión de Clientes: Es el componente encargado de mostrar los clientes-proveedores de la entidad empresarial o presupuestada con la cual se esté trabajando. Gestión de Cierre: Permite la gestión del cierre contable, diario, por período o por ejercicio, en cualquier caso consolida las cifras y los históricos, preparando al sistema para una nueva etapa. Registro Numérico Paquete Estructura: Documento General: Es el componente encargado de toda la gestión de los documentos. Paquete Común: Se encuentran componentes que son utilizados por los subsistemas de Logística con la particularidad de que no presentan interfaz gráfica. Común: Gestionar Bloqueo: Es el componente encargado de bloquear los documentos que estén siendo utilizados y desbloquearlos cuando se terminen de utilizar. Comprobante de Operaciones: Permite la contabilización de los documentos, es decir, la confección de los comprobantes de operaciones de los movimientos y su traslado al subsistema de contabilidad, permitiendo realizar un comprobante para los documentos que se deseen, dependiendo del tipo de venta establecida por la entidad. En el caso de los movimientos de las facturas se pasan los lotes posteados al subsistema de cobros y pagos para la actualización de los saldos de los clientes. AutoLoadPath: Este componente garantiza una optimización de la integración entre los componentes de todos los componentes del sistema Logística y de estos con los externos, permitiendo además una mayor seguridad al realizarse la comunicación entre ellos. En él se define con quien se va a relacionar cada componente de manera que en el momento de la ejecución de la petición de servicio a otro componente a través del IoC, se permite el acceso solo si está definido y se incluye dinámicamente este permiso en el fichero de configuración de acceso Config.php y solamente mientras se ejecuta la petición. Esto evita que el fichero Config.php esté cargado estáticamente con el acceso a todos los componentes y que cada vez que se haga una petición se permita el acceso a todos los componentes, sin dejar de cumplir con el requerimiento de poder realizar los innerjoin entre diferentes componentes en las consultas de Base de Subsistemas de Logística Inventario Facturación Activos Fijos Tangibles Servicios Sistemas externos El sistema Cedrux, está dividido en varios sistemas en su primera fase, con 4 de ellos presenta integración los subsistemas de Logística en su primera versión: Configuración: Se obtienen los formatos establecidos para los nomencladores de producto, servicio y activos fijos tangibles y la estructura de los almacenes, la fecha (contable o de sistema), la moneda contable y alternativa para el trabajo con la dualidad monetaria, así como todas las establecidas para la entidad, los clientes y proveedores y las reglas contables (documentos y operaciones) con la cual trabajará el subsistema. Seguridad: Se obtienen los datos del usuario logueado. Estructura y Composición: Se obtiene la entidad (presupuestada o empresarial) y los depósitos u almacenes (estructuras no formales) asociados a la misma. Contabilidad: Cuentas controladas por el subsistema. Generación y registro del comprobante de operaciones. Establecer las obligaciones de pago y derechos de cobro. Conclusiones Se caracterizó el proceso de facturación en una entidad lo que permitió obtener una idea acertada sobre los aspectos esenciales que debían tenerse en consideración. Se caracterizaron además, los sistemas nacionales e internacionales en explotación en Cuba que cuentan con subsistemas de facturación, concluyéndose que no existía en CCIA’2010 el país un sistema integrado de facturación que permitiese gestionar las facturas y ofertas en las entidades, y que cumpliera con la normativa del país de desarrollo de soluciones bajo el principio de independencia tecnológica. Se realizó un estudio de las tecnologías, lenguajes y herramientas propuestas para el desarrollo de la aplicación con lo que se adquirieron conocimientos necesarios para cumplir el objetivo del trabajo. Se implementó un sistema integrado que permite gestionar las facturas y ofertas en cualquier entidad del país. Fueron aplicadas pruebas de unidad a los componentes obtenidos, con las cuales se comprobó el comportamiento interno del programa lo que permitió detectar errores y erradicarlos, además se verificó que los flujos de control y de datos estaban cubiertos. Fue evaluada la implementación a través de métricas, las que arrojaron un resultado positivo, pues de los 8 atributos de calidad evaluados 6 tuvieron un 100% de cumplimiento, uno un 75% y otro un 63%. Recomendaciones Para próximas iteraciones se hacen las siguientes recomendaciones: Continuar desarrollando los nuevos requisitos que se detecten. Implementar el proceso de facturación para los Activos Fijos. 9