UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias...

203
1 UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales “Customer Relationship Management” PROYECTO DE GRADO Previo a la Obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES Autores: Esteves Mariño Mario Enrique González Laje Edigta Marina Holguín Holguín Gissella María GUAYAQUIL-ECUADOR 2009

Transcript of UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias...

Page 1: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

1

UNIVERSIDAD DE GUAYAQUIL

Facultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en Sistemas Computacionales

“Customer Relationship Management”

PROYECTO DE GRADO

Previo a la Obtención del Título de:

INGENIERO EN SISTEMAS COMPUTACIONALES

Autores:

Esteves Mariño Mario Enrique

González Laje Edigta Marina

Holguín Holguín Gissella María

GUAYAQUIL-ECUADOR

2009

Page 2: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

2

AGRADECIMIENTO

En primer lugar a Dios por permitirnos vivir un día

más y por permitirnos llegar hasta esta etapa de

nuestras vidas que recordaremos para siempre.

A nuestros padres y hermanos que con sus

palabras de aliento nos animaban a seguir y no

desmayar.

A conocidos y amigos, que con sus oraciones, nos

dieron su apoyo incondicional.

Page 3: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

3

DEDICATORIA

Dedicado a Dios porque su presencia siempre

estuvo con nosotros, animándonos a seguir

adelante y a no darnos por vencidos.

Nosotros hicimos lo posible, pero Dios hizo lo

imposible.

Page 4: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

4

TRIBUNAL DE GRADUACIÓN

Ing. Ing.

Decano Director de Tesis

Ing. Ing.

Vocal Vocal

Ing.

Secretario

Page 5: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

5

DECLARACIÓN EXPRESA

“La autoría de la tesis de grado corresponde exclusivamente al suscrito(s),

perteneciendo a la Universidad de Guayaquil los derechos que generen la

aplicación de la misma”

(Reglamento de Graduación de la Carrera de Ingeniería en sistemas

Computacionales, Art. 26)

Esteves Mariño Mario Enrique

[email protected]

González Laje Edigta Marina

[email protected]

Holguín Holguín Gissella María

[email protected]

Page 6: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

6

RESUMEN

Actualmente las Organizaciones han optimizado y mejorado la forma de llevar a cabo sus actividades habituales con los clientes mediante el uso de implementaciones tecnológicas. Sin embargo, debido a la necesidad de mejorar y atender eficientemente los Requerimientos/Necesidades de sus clientes, se desarrolló “MEG CRM” con la finalidad de permitir administrar todas las interacciones y negocios con los clientes. Esta aplicación fue diseñada usando la arquitectura tres capas, implementado la tecnología Oracle 10g R2 como servidor de la Base de Datos, OC4J de Jdeveloper 10.1.2.1.0 como Servidor de Aplicaciones y Ext Js 3.0.0 como Front End. El acceso al sistema será evaluado mediante los roles, privilegios y permisos que tenga configurado el usuario del mismo, proporcionándole así un username y password de conexión a la Base de Datos.

Page 7: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

7

INDICE GENERAL

AGRADECIMIENTO II

DEDICATORIA III

TRIBUNAL DE GRADUACIÓN IV

DECLARACIÓN EXPRESA V

RESUMEN VI

INDICE GENERAL VII

TABLA DE CONTENIDO

MANUAL TÉCNICO..........................................................................................18

1.1. Creación del “Tablespace” y “Temporary Tablespace”.........................18

1.2. Creación del “Profile”............................................................................19

1.3. Creación del usuario megAdmin ..........................................................19

1.4. Creación de Permisos para el usuario megAdmin ...............................20

1.5. Creación del Rol megDba ....................................................................20

1.6. Creación de Permisos para el usuario megDba ...................................20

1.7. Creación de Tablas ..............................................................................21

1.7.1. Tabla MEG_ACT_COM.....................................................................21

1.7.2. Tabla MEG_PROFS..........................................................................22

1.7.3. Tabla MEG_ROLS.............................................................................23

Page 8: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

8

1.7.4. Tabla MEG_ZONS ............................................................................24

1.7.5. Tabla MEG_DEPTS ..........................................................................25

1.7.6. Tabla MEG_EMPS ............................................................................26

1.7.7. Tabla MEG_CLIS ..............................................................................28

1.7.8. Tabla MEG_PARS ............................................................................30

1.7.9. Tabla MEG_BITS_CLIS ....................................................................31

1.7.10. Tabla MEG_COTZS ........................................................................31

1.7.11. Tabla MEG_BITS_COTZS ..............................................................33

1.7.12. Tabla MEG_TARS...........................................................................34

1.7.13. Tabla MEG_BITS_TARS.................................................................35

1.7.14. Tabla MEG_CONTS........................................................................36

1.7.15. Tabla MEG_PRODS........................................................................36

1.7.16. Tabla MEG_DETS_COTZS.............................................................37

1.7.17. Tabla MEG_VENTS ........................................................................39

1.7.18. Tabla MEG_DETS_VENTS.............................................................40

1.7.19. Tabla MEG_INCIDS ........................................................................42

1.7.20. Tabla MEG_INCIDS_BITS ..............................................................43

1.7.21. Tabla MEG_RECS ..........................................................................44

1.7.22. Tabla MEG_ROLS_RECS...............................................................45

1.7.23. Tabla MEG_SUCS ..........................................................................45

1.8. Creación de los paquetes.....................................................................46

1.8.1. MEG_PCKG_DELETE ......................................................................47

1.8.2. MEG_PCKG_INSERT.......................................................................51

Page 9: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

9

1.8.3. MEG_PCKG_SELECT ......................................................................61

1.8.4. MEG_PCKG_UPDATE....................................................................108

1.8.5. MEG_PCKG_FUNCTIONS .............................................................113

1.9. Codificación del desarrollo del Proyecto.............................................114

1.9.1. Código en Java ...............................................................................114

1.9.1.1. Clases: Atributos ..........................................................................114

1.9.1.2. Clases Métodos............................................................................114

1.9.1.3. Conexión a la base de datos ........................................................116

1.9.2. Páginas creadas en Java (JSP) ......................................................117

1.9.3. Java Script.......................................................................................118

1.10. Instalación del Framework ExtJS .....................................................119

1.10.1. Importar el Framework en un HTML..............................................121

1.11. Instalación de Oracle 10g.................................................................123

1.11.1. Requerimientos para la Instalación ...............................................123

1.11.2. Pasos para la Instalación ..............................................................124

1.12. Instalación y Configuración de Oracle Developer.............................137

1.13. Configuración del Centos 5.5 ...........................................................143

1.13.1. Requerimientos para la instalación ...............................................143

1.13.2. Instalación de Centos 5.5 ..............................................................144

1.13.3. Instalación de Oracle 10g en Linux Centos 5.5 .............................154

MANUAL DE USUARIO ..............................................................................165

2. FUNCIONAMIENTO DEL SISTEMA ....................................................165

2.1. Pantalla de Login de Cliente del Sistema...........................................166

Page 10: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

10

2.2. Pantalla de Login de Usuario del Sistema..........................................167

2.3. Menú Principal....................................................................................170

2.4. Gestión Comercial ..............................................................................170

2.4.1. Ventana de Cotizaciones.................................................................171

2.4.1.1. Número de cotización...................................................................172

2.4.1.2. Campo Cliente..............................................................................172

2.4.1.3. Fecha de Emisión y Validez de la Cotización...............................173

2.4.1.4. Campo Empleado.........................................................................173

2.4.1.5. Detalle ..........................................................................................174

2.4.1.6. Detalle de la Cotización................................................................174

2.4.2. Ventana de Ventas..........................................................................175

2.5. Gestión de Contactos.........................................................................185

2.5.1. Ventana de Clientes ........................................................................177

2.5.2. Ventana de Tareas..........................................................................178

2.5.2.1 Código de Tarea............................................................................178

2.5.2.2 Fecha Inicio de la Tarea ................................................................179

2.5.2.3 Fecha Final de la Tarea.................................................................179

2.5.2.4 Nombre del Empleado Asignado a la Tarea..................................180

2.5.2.5 Asunto de la Tarea ........................................................................181

2.5.2.6 Aviso de la Tarea ..........................................................................182

2.5.2.7 Prioridad de la Tarea.....................................................................182

2.5.2.8 Porcentaje Completado de la Tarea..............................................183

2.5.2.9 Tipo de Tarea ................................................................................183

Page 11: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

11

2.5.2.10 Nota de la Tarea..........................................................................184

2.6. Mantimientos ......................................................................................184

2.6.1. Toolbar de las ventanas de mantimiento.........................................186

2.6.2. Ayuda de búsqueda.........................................................................190

2.6.3. Formulario de Zonas ........................................................................190

2.7. Post-Venta..........................................................................................191

2.7.1 Ventana de Incidencias ...................................................................192

2.7.1.1 Nùmero de la Incidencia ...............................................................192

2.7.1.2 Tipo de Incidencia ........................................................................193

2.7.1.3 Fecha de la Incidencia ..................................................................193

2.7.1.4 Prioridad de la Incidencia .............................................................194

2.7.1.5 Estado de la Incidencia ................................................................194

2.7.1.6 Número de Factura o Contrato .....................................................195

2.7.1.7 Descripciòn de la Incidencia .........................................................195

2.7.1.8 Detalle de la Incidencia ................................................................196

2.7.2 Ventana de Bitácora de Incidencias ................................................196

2.7.2.1 Criterios de Bùsqueda ..................................................................197

2.7.2.2 Filtro de las Etapas de la incidencia .............................................198

2.7.2.3 Resultado de la Bùsqueda ............................................................198

2.7.2.4 Editar Incidencia............................................................................199

2.8. Seguridad ...........................................................................................200

2.8.1 Roles ................................................................................................200

2.8.1.1 Listado de Roles............................................................................201

Page 12: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

12

2.8.1.2 Listado de Persmisos ....................................................................202

2.8.1.3 Formulario .....................................................................................202

2.8.1.4 Asignar Roles a Usuarios ..............................................................203

INDICE DE FIGURAS

MÉTODO DE INSTALACIÓN .........................................................................124 TIPO DE INSTALACIÓN.................................................................................125 SELECCIÓN DEL DIRECTORIO RAÍZ...........................................................125 REQUISITOS DE ORACLE ............................................................................126 OPCIÓN DE CONFIGURACIÓN ....................................................................126 CONFIGURACIÓN DE BASE DE DATOS......................................................127 ESPECIFICAR OPCIONES DE CONFIGURACIÓN DE BASE DE DATOS ...127 OPCIÓN DE GESTIÓN DE BASE DE DATOS...............................................128 ESPECIFICAR OPCIÓN DE ALMACENAMIENTO DE BASE DE DATOS.....128 OPCIONES DE COPIA DE SEGURIDAD Y RECUPERACIÓN......................129 CONTRASEÑAS DE ESQUEMA DE BASE DE DATOS ................................129 RESUMEN......................................................................................................130 INSTALACIÓN DE ORACLE DATABASE ......................................................130 ASISTENTE DE CONFIGURACIÓN DE BASE DE DATOS...........................131 INFORMACIÓN DE LA BASE DE DATOS .....................................................131 GESTIÓN DE CONTRASEÑAS......................................................................132 FIN DE INSTALACIÓN ...................................................................................132 ORACLE ENTERPRISE MANAGER ..............................................................133 INSTANCIA DE LA BASE DE DATOS............................................................134 PESTAÑA DE ADMINISTRACIÓN .................................................................135 OPCIÓN DE “USUARIOS Y PRIVILEGIOS”...................................................135 BUSCAR USUARIOS .....................................................................................136 EDITAR USUARIOS.......................................................................................136 ESPACIO DE TRABAJO ................................................................................137 GESTOR DE RED DE ORACLE.....................................................................138 ASISTENTE DE NOMBRE DE SERVICIO DE RED.......................................139 PROTOCOLO.................................................................................................139 VALORES DE PROTOCOLO .........................................................................140 SERVICIO.......................................................................................................140 PRUEBA .........................................................................................................141 PRUEBA DE CONEXIÓN ...............................................................................141 CAMBIAR CONEXIÓN ...................................................................................142 CONFIGURACIÓN DE DIRECCIONES..........................................................142 GUARDAR CONFIGURACIÓN DE RED ........................................................143 CONFIGURACIÓN DE CENTOS....................................................................144

Page 13: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

13

CONFIGURACIÓN DE AUTENTICACIÓN .....................................................144 CONFIGURACIÓN DEL FIREWALL...............................................................145 DESHABILITAR EL FIREWALL......................................................................145 CONFIGURACIÓN DE RED...........................................................................145 EDITAR DISPOSITIVO...................................................................................146 SELECCIONAR DISPOSITIVO ......................................................................146 CONFIGURACIÓN .........................................................................................147 DISPOSITIVO AVANZADO ............................................................................147 EDITAR CONFIGURACIÓN DEL DNS...........................................................147 CONFIGURACIÓN DEL DNS.........................................................................148 SERVICIOS DEL SISTEMA............................................................................148 SERVICIOS ....................................................................................................149 CONSOLA PASO 1 ........................................................................................149 CONSOLA PASO 2 ........................................................................................149 CONSOLA PASO 3 ........................................................................................149 CONSOLA PASO 4 ........................................................................................150 CONSOLA PASO 5 ........................................................................................150 CONSOLA PASO 6 ........................................................................................151 CONSOLA PASO 7 ........................................................................................151 CONSOLA PASO 8 ........................................................................................152 CONSOLA PASO 9 ........................................................................................152 CONSOLA PASO 10 ......................................................................................153 CONSOLA PASO 11 ......................................................................................153 TERMINAL......................................................................................................154 DESCARGAS .................................................................................................156 DESCARGAR ORACLE 10G..........................................................................157 INSTALACIÓN DEL ORACLE EN CENTOS ..................................................158 OPCIÓN “INSTALACIÓN AVANZADA” ..........................................................159 ESPECIFICAR DIRECTORIO.........................................................................159 TIPO DE INSTALACIÓN.................................................................................159 SELECCIONAR IDIOMA ................................................................................160 ESPECIFICAR DESTINO ...............................................................................160 ESPECIFICACIONES DEL PRODUCTO .......................................................160 SELECCIONAR OPCIONES DE CONFIGURACIÓN.....................................161 CONFIGURACIÓN DE LA BASE DE DATOS ................................................161 ESPECIFICAR OPCIONES DE CONFIGURACIÓN DE LA BASE DE DATOS161 OPCIONES DE ADMINISTRACIÓN DE LA BASE DE DATOS......................162 OPCIONES DE ALMACENAMIENTO DE LA BASE DE DATOS ...................162 OPCIONES DE COPIA DE SEGURIDAD Y DE RECUPERACIÓN................162 ESPECIFICAR CONTRASEÑAS....................................................................163 RESUMEN DE LA BASE DE DATOS.............................................................163 INSTALACIÓN DE LA BASE DE DATOS EN CENTOS .................................163 ASISTENTE DE CONFIGURACIÓN...............................................................164 TERMINAL......................................................................................................164

Page 14: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

14

FIN DE LA INSTALACIÓN EN CENTOS ........................................................164 VENTANA DEL CHAT DEL SISTEMA MEG-CRM .........................................166 VENTANA DE LOGIN DEL SISTEMA MEG-CRM..........................................167 INGRESO A MEG-CRM .................................................................................168 DESKTOP DEL SISTEMA MEG-CRM............................................................168 OPCIONES DEL BOTÓN INICIO ...................................................................169 MENÚ PRINCIPAL .........................................................................................170 OPCIÓN “GESTIÓN COMERCIAL” ................................................................171 VENTANA DE COTIZACIONES .....................................................................171 CAMPO NÚMERO DE COTIZACIÓN.............................................................172 CAMPO CLIENTE...........................................................................................172 CAMPO FECHA DE EMISIÓN Y VALIDEZ ....................................................173 CAMPO CÓDIGO Y NOMBRE DE EMPLEADO ............................................173 CAMPO DETALLE..........................................................................................174 DETALLE DE LA COTIZACIÓN......................................................................174 VENTANA DE BÚSQUEDA DE PRODUCTO.................................................175 VENTANA DE VENTAS..................................................................................175 OPCIÓN DE GESTIÓN DE CONTACTOS .....................................................176 VENTANA DE CLIENTE.................................................................................177 VENTANA DE TAREAS..................................................................................178 CAMPO CODIGO DE TAREA ........................................................................178 CAMPO FECHA INICIO DE TAREA...............................................................179 CAMPO FECHA FINAL DE TAREA................................................................179 CAMPO EMPLEADO DE LA TAREA..............................................................180 VENTANA BUSCAR EMPLEADO ..................................................................181 CAMPO EMPLEADO ASIGNADO A LA TAREA ............................................181 CAMPO ASUNTO DE TAREA........................................................................181 CAMPO AVISO DE LA TAREA.......................................................................182 COMBO PRIORIDAD DE LA TAREA .............................................................182 LISTA DE PORCENTAJE DE LA TAREA.......................................................183 LISTA TIPO DE TAREA..................................................................................183 NOTA DE LA TAREA......................................................................................184 OPCIÓN DE MANTENIMIENTO.....................................................................185 MANTENIMIENTO DE ZONAS.......................................................................185 VENTANA DE BÚSQUEDA............................................................................190 FORMULARIO DE ZONAS.............................................................................190 OPCIÓN DE POST-VENTA............................................................................191 VENTANA DE INCIDENCIAS.........................................................................192 NUMERO DE LA INCIDENCIA.......................................................................192 TIPO DE INCIDENCIA....................................................................................193 FECHA DE LA INCIDENCIA...........................................................................193 PRIORIDAD DE LA INCIDENCIA ..................................................................194 ESTADO DE LA INCIDENCIA ........................................................................194 NUMERO DE FACTURA O CONTRATO .......................................................195

Page 15: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

15

VENTANA DE BUSQUEDA DE FACTURA Y CONTRATO............................195 DESCRIPCION DE LA INCIDENCIA ..............................................................195 DETALLE DE LA INCIDENCIA.......................................................................196 VENTANA DE BITÁCORA DE INCIDENCIAS................................................196 CRITERIOS DE BUSQUEDA DE LA INCIDENCIA ........................................197 ETAPAS DE LA INCIDENCIA.........................................................................198 RESULTADO DE LA BUSQUEDA DE INCIDENCIAS....................................199 VENTANA DE EDICION DE LA INCIDENCIA ................................................199 OPCIÓN DE SEGURIDAD..............................................................................200 MANTENIMIENTO DE ROLES.......................................................................201 LISTADO DE ROLES .....................................................................................201 LISTADO DE PERMISOS...............................................................................202 FORMULARIO DE ROLES.............................................................................202 LISTA DE USUARIOS Y SUS ROLES ...........................................................203

INDICE DE TABLAS

MEG_PCKG_DELETE......................................................................................48 FUNCIÓN MEG_FNC_ROLS_RECS_DELETE................................................48 FUNCIÓN MEG_FNC_ZONS_DELETE ..........................................................49 FUNCIÓN MEG_FNC_ROLS_DELETE ...........................................................49 FUNCIÓN MEG_FNC_EMPS_DELETE ...........................................................49 FUNCIÓN MEG_DEPTS_DELETE...................................................................49 FUNCIÓN MEG_FNC_PARS_DELETE ...........................................................50 FUNCIÓN MEG_PROFS_DELETE ..................................................................50 FUNCIÓN MEG_FNC_SUCS_DELETE ...........................................................50 FUNCIÓN MEG_FNC_CLIS_DELETE .............................................................50 MEG_PCKG_INSERT ......................................................................................51 FUNCIÓN MEG_FNC_NEXT_ID......................................................................52 FUNCIÓN MEG_FNC_CHAT_OPERADOR.....................................................53 FUNCIÓN MEG_FNC_RECS_INSERT ............................................................53 FUNCIÓN MEG_FNC_ZONS_INSERT ............................................................53 FUNCIÓN MEG_FNC_ROLS_INSERT ............................................................54 FUNCIÓN MEG_FNC_EMPS_INSERT............................................................54 FUNCIÓN MEG_FNC_DEPTS_INSERT ..........................................................55 FUNCIÓN MEG_FNC_PARS_INSERT ............................................................56 FUNCIÓN MEG_FNC_PROFS_INSERT..........................................................56 FUNCIÓN MEG_FNC_SUCS_INSERT ............................................................56 FUNCIÓN MEG_FNC_INCID_INSERT ............................................................57 FUNCIÓN MEG_FNC_CLIS_INSERT ..............................................................57 FUNCIÓN MEG_FNC_PRODS_INSERT .........................................................58 FUNCIÓN MEG_FNC_COTZS_INSERT_CAB.................................................59 FUNCIÓN MEG_FNC_COTZS_INSERT_DET.................................................59 FUNCIÓN MEG_FNC_VENTS_INSERT_CAB.................................................60

Page 16: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

16

FUNCIÓN MEG_FNC_DETS_VENTS_INSERT_DET .....................................60 FUNCIÓN MEG_FNC_BIT_INCID_INSERT.....................................................61 MEG_PCKG_SELECT......................................................................................62 PROCEDIMIENTO MEG_PRC_LOGIN............................................................65 FUNCIÓN MEG_FNC_PERMISOS_SELECT ..................................................65 FUNCIÓN MEG_FNC_SELECT_ZONAS.........................................................66 FUNCIÓN MEG_FNC_ZONAS_COMBO .........................................................66 FUNCIÓN MEG_FNC_ZONAS_TREE .............................................................67 FUNCIÓN MEG_FNC_SELECT_CODE_ZONA...............................................68 FUNCIÓN MEG_FNC_SELECT_ROL..............................................................69 FUNCIÓN MEG_FNC_ROLES_COMBO .........................................................70 FUNCIÓN MEG_FNC_ROLES_PERMS_TREE...............................................70 FUNCIÓN MEG_FNC_SEEK_PERMS.............................................................71 FUNCIÓN MEG_FNC_ROLES_TREE .............................................................72 FUNCIÓN MEG_FNC_SELECT_DEPTS .........................................................73 FUNCIÓN MEG_FNC_DEPTS_COMBO..........................................................73 FUNCIÓN MEG_FNC_DEPTS_TREE..............................................................74 FUNCIÓN MEG_FNC_SELECT_CODE_DEPT ...............................................75 FUNCIÓN MEG_FNC_SELECT_PARS ...........................................................75 FUNCIÓN MEG_FNC_PARS_COMBO............................................................76 FUNCIÓN MEG_FNC_PARS_TREE................................................................77 FUNCIÓN MEG_FNC_SELECT_CODE_PAR..................................................78 FUNCIÓN MEG_FNC_CLIS_COMBO..............................................................78 FUNCIÓN MEG_FNC_CLIS_TREE..................................................................79 FUNCIÓN MEG_FNC_SELECT_CLIS .............................................................79 FUNCIÓN MEG_FNC_SELECT_PROFS.........................................................80 FUNCIÓN MEG_FNC_SELECT_PROFS_COMBO .........................................80 FUNCIÓN MEG_FNC_SELECT_PROFS_TREE .............................................81 FUNCIÓN MEG_FNC_SELECT_SUCS ...........................................................82 FUNCIÓN MEG_FNC_SUCS_TREE................................................................82 FUNCIÓN MEG_FNC_SELECT_CODE_SUC .................................................83 FUNCIÓN MEG_FNC_PAR_INFO_TREE........................................................84 FUNCIÓN MEG_FNC_SEEK_GRID_CLIS.......................................................85 FUNCIÓN MEG_FNC_SEEK_GRID_EMPS.....................................................86 FUNCIÓN MEG_FNC_GRIDS_EMPS_ROLS..................................................87 FUNCIÓN MEG_FNC_SEEK_GRIDS_PRODS................................................88 FUNCIÓN MEG_FNC_SELECT_CLIS .............................................................90 FUNCIÓN MEG_FNC_ACT_COM_COMBO ....................................................91 FUNCIÓN MEG_FNC_TAREAS_PRIOR_COMBO..........................................92 FUNCIÓN MEG_FNC_SELECT_EMPS ...........................................................93 FUNCIÓN MEG_FNC_SEEK_GRID_COTZS...................................................95 FUNCIÓN MEG_FNC_SELECT_TAREAS.......................................................96 FUNCIÓN MEG_FNC_SEEK_GRID_TARS .....................................................97 FUNCIÓN MEG_FNC_SELECT_INCIDS .........................................................99

Page 17: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

17

FUNCIÓN MEG_FNC_INCIDS_COMBO .......................................................100 FUNCIÓN MEG_FNC_SELECT_CODE_INCID .............................................101 FUNCIÓN MEG_FNC_INCID_PRIOR_COMBO.............................................101 FUNCIÓN MEG_FNC_INCID_STAT_COMBO...............................................102 FUNCIÓN MEG_FNC_SELECT_CTZS_CAB.................................................102 FUNCIÓN MEG_FNC_SELECT_CTZS_DET.................................................104 FUNCIÓN MEG_PRC_LOGIN_CLI_WEB ......................................................106 FUNCIÓN MEG_FNC_SEEK_GRID_VENTAS ..............................................106 MEG_PCKG_UPDATE ...................................................................................108 FUNCIÓN MEG_FNC_RECS_UPDATE.........................................................108 FUNCIÓN MEG_FNC_ZONS_UPDATE.........................................................109 FUNCIÓN MEG_FNC_ROLS_UPDATE.........................................................109 FUNCIÓN MEG_FNC_EMPS_UPDATE ........................................................110 FUNCIÓN MEG_FNC_DEPTS_UPDATE.......................................................110 FUNCIÓN MEG_FNC_PARS_UPDATE.........................................................111 FUNCIÓN MEG_FNC_PROFS_UPDATE ......................................................111 FUNCIÓN MEG_FNC_SUCS_UPDATE.........................................................111 FUNCIÓN MEG_FNC_CLIS_UPDATE...........................................................111 FUNCIÓN MEG_FNC_INCIDS_UPDATE ......................................................112 MEG_PCKG_FUNCTIONS.............................................................................113 PROCEDIMIENTO MEG_PROC_SEND_MAIL ..............................................113 TOOLBAR DE LAS VENTANAS DE MANTENIMIENTO................................186

Page 18: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

18

MANUAL TÉCNICO

1.1. Creación del “Tablespace” y “Temporary Tablesp ace”

CONNECT SYS/guile6893 AS SYSDBA;

CREATE TABLESPACE MEG_DATA DATAFILE

'C:\ORACLE\PRODUCT\10.2.0\ORADATA\MEGCRM\MEG_DATA.DBF' SIZE 100M

AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING EXTENT

MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

ALTER DATABASE DEFAULT TABLESPACE MEG_DATA;

CREATE TEMPORARY TABLESPACE MEG_TMP TEMPFILE

'C:\ORACLE\PRODUCT\10.2.0\ORADATA\MEGCRM\MEG_TMP.DBF' SIZE 50M

AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL

UNIFORM SIZE 1M;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE MEG_TMP;

Page 19: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

19

1.2. Creación del “Profile”

CREATE PROFILE megPerfil LIMIT CPU_PER_SESSION UNLIMITED

CPU_PER_CALL UNLIMITED

CONNECT_TIME 30

IDLE_TIME DEFAULT

SESSIONS_PER_USER 10

LOGICAL_READS_PER_SESSION DEFAULT

LOGICAL_READS_PER_CALL DEFAULT

PRIVATE_SGA DEFAULT

COMPOSITE_LIMIT DEFAULT

PASSWORD_LIFE_TIME 60

PASSWORD_GRACE_TIME 30

PASSWORD_REUSE_MAX DEFAULT

PASSWORD_REUSE_TIME DEFAULT

PASSWORD_LOCK_TIME 5

FAILED_LOGIN_ATTEMPTS 3

PASSWORD_VERIFY_FUNCTION DEFAULT;

1.3. Creación del usuario megAdmin

CREATE USER megAdmin PROFILE megPerfil IDENTIFIED BY mesteves74 DEFAULT

TABLESPACE MEG_DATA TEMPORARY TABLESPACE MEG_TMP ACCOUNT UNLOCK;

Page 20: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

20

1.4. Creación de Permisos para el usuario megAdmin

GRANT CONNECT TO megAdmin;

ALTER USER megAdmin QUOTA UNLIMITED ON MEG_DATA;

GRANT UNLIMITED TABLESPACE TO megAdmin;

1.5. Creación del Rol megDba

CREATE ROLE megDba IDENTIFIED BY mesteves74;

1.6. Creación de Permisos para el usuario megDba

GRANT CREATE USER TO megDba WITH ADMIN OPTION;

GRANT CREATE SESSION TO megDba WITH ADMIN OPTION;

GRANT ALTER SESSION TO megDba WITH ADMIN OPTION;

GRANT CREATE DATABASE LINK TO megDba WITH ADMIN OPTION;

GRANT CREATE SEQUENCE TO megDba WITH ADMIN OPTION;

GRANT CREATE SYNONYM TO megDba WITH ADMIN OPTION;

GRANT CREATE TRIGGER TO megDba WITH ADMIN OPTION;

GRANT CREATE PROCEDURE TO megDba WITH ADMIN OPTION;

GRANT CREATE TABLE TO megDba WITH ADMIN OPTION;

GRANT CREATE VIEW TO megDba WITH ADMIN OPTION;

GRANT CREATE SYNONYM TO megDba WITH ADMIN OPTION;

GRANT SELECT ANY DICTIONARY TO megDba WITH ADMIN OPTION;

Page 21: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

21

GRANT EXECUTE ANY PROCEDURE TO megDba WITH ADMIN OPTION;

GRANT DEBUG ANY PROCEDURE TO megDBA WITH ADMIN OPTION;

GRANT DEBUG CONNECT SESSION TO megDBA WITH ADMIN OPTION;

GRANT DROP ANY SEQUENCE TO megDba WITH ADMIN OPTION;

GRANT DROP ANY SYNONYM TO megDba WITH ADMIN OPTION;

GRANT ALTER ANY TYPE TO megDba;

GRANT CREATE ANY TYPE TO megDba;

GRANT DROP ANY TYPE TO megDba;

GRANT megDba TO megAdmin;

CONNECT megAdmin/mesteves74;

1.7. Creación de Tablas

1.7.1. Tabla MEG_ACT_COM

create table MEG_ACT_COM (

ACT_COM$ID$C CHAR(10) not null, ACT_COM$COD$V VARCHAR2(15), ACT_COM$NOM$V VARCHAR2(50), ACT_COM$NOTA$V VARCHAR2(1024), ACT_COM$FEC$CRE$D DATE, ACT_COM$CRE$POR$V VARCHAR2(10), ACT_COM$FEC$EDT$D DATE, ACT_COM$EDT$POR$V VARCHAR2(10) default '', ACT_COM$FEC$ANU$D DATE, ACT_COM$ANU$POR$V VARCHAR2(10) default '', ACT_COM$EST$C CHAR(1) default '0'

); alter table MEG_ACT_COM add constraint ACT_COM#ID#PK primary key (ACT_COM$ID$C); alter table MEG_ACT_COM add constraint ACT_COM#COD#UK unique (ACT_COM$COD$V); alter table MEG_ACT_COM add constraint ACT_COM#NOM#UK unique (ACT_COM$NOM$V);

Page 22: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

22

alter table MEGADMIN.MEG_ACT_COM add constraint ACT_COM#COD#NN check ("ACT_COM$COD$V" IS NOT NULL); alter table MEG_ACT_COM add constraint ACT_COM#CRE#POR#NN check ("ACT_COM$CRE$POR$V" IS NOT NULL); alter table MEG_ACT_COM add constraint ACT_COM#EST#CK check (act_com$est$c = '0' OR act_com$est$c = '1'); alter table MEG_ACT_COM add constraint ACT_COM#EST#NN check ("ACT_COM$EST$C" IS NOT NULL); alter table MEG_ACT_COM add constraint ACT_COM#FEC#CRE#NN check ("ACT_COM$FEC$CRE$D" IS NOT NULL);

alter table MEGADMIN.MEG_ACT_COM add constraint ACT_COM#NOM#NN check ("ACT_COM$NOM$V" IS NOT NULL);

1.7.2. Tabla MEG_PROFS

create table MEG_PROFS (

PROF$ID$C CHAR(10) not null, PROF$COD$V VARCHAR2(15), PROF$NOM$V VARCHAR2(50), PROF$FEC$CRE$D DATE, PROF$CRE$POR$V VARCHAR2(10), PROF$EST$C CHAR(1) default '0', PROF$FEC$EDT$D DATE, PROF$EDT$POR$V VARCHAR2(10) default '', PROF$ANU$POR$V VARCHAR2(10) default '', PROF$ANU$FEC$D DATE

); alter table MEG_PROFS add constraint PROF#ID#PK primary key (PROF$ID$C); alter table MEG_PROFS add constraint PROF#COD#UK unique (PROF$COD$V); alter table MEG_PROFS add constraint PROF#NOM#UK unique (PROF$NOM$V); alter table MEG_PROFS add constraint PROF#COD#NN check ("PROF$COD$V" IS NOT NULL); alter table MEG_PROFS add constraint

Page 23: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

23

PROF#CRE#POR#NN check ("PROF$CRE$POR$V" IS NOT NULL); alter table MEG_PROFS add constraint PROF#EST#CK check (prof$est$c = '0' OR prof$est$c = '1'); alter table MEG_PROFS add constraint PROF#EST#NN check ("PROF$EST$C" IS NOT NULL); alter table MEG_PROFS add constraint PROF#FEC#CRE#NN check ("PROF$FEC$CRE$D" IS NOT NULL); alter table MEG_PROFS add constraint PROF#NOM#NN check ("PROF$NOM$V" IS NOT NULL);

grant select, insert, update, delete on MEGADMIN.MEG_PROFS to MEGUSER;

1.7.3. Tabla MEG_ROLS

create table MEG_ROLS (

ROL$ID$C CHAR(10) not null, ROL$COD$V VARCHAR2(15), ROL$NOM$V VARCHAR2(50), ROL$FEC$CRE$D DATE, ROL$CRE$POR$V VARCHAR2(10), ROL$EST$C CHAR(1) default '0', ROL$FEC$EDT$D DATE, ROL$EDT$POR$V VARCHAR2(10) default '', ROL$ANU$POR$V VARCHAR2(10) default '', ROL$ANU$FEC$D DATE

);

alter table MEG_ROLS add constraint ROL#ID#PK primary key (ROL$ID$C); alter table MEG_ROLS add constraint ROL#COD#UK unique (ROL$COD$V); alter table MEG_ROLS add constraint ROL#NOM#UK unique (ROL$NOM$V); alter table MEG_ROLS add constraint ROL#COD#NN check ("ROL$COD$V" IS NOT NULL); alter table MEG_ROLS add constraint ROL#CRE#POR#NN check ("ROL$CRE$POR$V" IS NOT NULL); alter table MEG_ROLS add constraint ROL#EST#CK check (rol$est$c = '0' OR rol$est$c = '1');

Page 24: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

24

alter table MEG_ROLS add constraint ROL#EST#NN check ("ROL$EST$C" IS NOT NULL); alter table MEG_ROLS add constraint ROL#FEC#CRE#NN check ("ROL$FEC$CRE$D" IS NOT NULL); alter table MEG_ROLS add constraint ROL#NOM#NN check ("ROL$NOM$V" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_ROLS to MEGUSER;

1.7.4. Tabla MEG_ZONS

create table MEG_ZONS (

ZON$ID$C CHAR(10) not null, ZON$COD$V VARCHAR2(15), ZON$NOM$V VARCHAR2(50), ZON$FEC$CRE$D DATE, ZON$CRE$POR$V VARCHAR2(10), ZON$EST$C CHAR(1) default '0', PAD$ID$C CHAR(10) default '', ZON$FEC$EDT$D DATE default '', ZON$EDT$POR$V VARCHAR2(10) default '', ZON$ANU$POR$V VARCHAR2(10) default '', ZON$ANU$FEC$D DATE

);

alter table MEG_ZONS add constraint ZON#ID#PK primary key (ZON$ID$C); alter table MEG_ZONS add constraint ZON#COD#UK unique (ZON$COD$V); alter table MEG_ZONS add constraint ZON#NOM#UK unique (ZON$NOM$V); alter table MEG_ZONS add constraint ZON_ZON#FK foreign key (PAD$ID$C) references MEG_ZONS (ZON$ID$C); alter table MEG_ZONS add constraint ZON#COD#NN check ("ZON$COD$V" IS NOT NULL); alter table MEG_ZONS add constraint ZON#CRE#POR#NN check ("ZON$CRE$POR$V" IS NOT NULL); alter table MEG_ZONS

Page 25: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

25

add constraint ZON#EST#CK check (zon$est$c = '0' OR zon$est$c = '1'); alter table MEG_ZONS add constraint ZON#EST#NN check ("ZON$EST$C" IS NOT NULL); alter table MEG_ZONS add constraint ZON#FEC#CRE#NN check ("ZON$FEC$CRE$D" IS NOT NULL); alter table MEG_ZONS add constraint ZON#NOM#NN check ("ZON$NOM$V" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_ZONS to MEGUSER;

1.7.5. Tabla MEG_DEPTS

create table MEG_DEPTS (

DEPT$ID$C CHAR(10) not null, DEPT$COD$V VARCHAR2(15), DEPT$NOM$V VARCHAR2(50), DEPT$FEC$CRE$D DATE, DEPT$CRE$POR$V VARCHAR2(10), DEPT$EST$C CHAR(1) default '0', DEPT$FEC$EDT$D DATE, DEPT$EDT$POR$V VARCHAR2(10) default '', DEPT$ANU$POR$V VARCHAR2(10) default '', DEPT$ANU$FEC$D DATE, PAD$ID$C CHAR(10)

);

alter table MEG_DEPTS add constraint DEPT#ID#PK primary key (DEPT$ID$C); alter table MEG_DEPTS add constraint DEPT#COD#UK unique (DEPT$COD$V); alter table MEG_DEPTS add constraint DEPT#NOM#UK unique (DEPT$NOM$V); alter table MEG_DEPTS add constraint DEPT#COD#NN check ("DEPT$COD$V" IS NOT NULL); alter table MEG_DEPTS add constraint DEPT#CRE#POR#NN check ("DEPT$CRE$POR$V" IS NOT NULL); alter table MEG_DEPTS add constraint DEPT#EST#CK check (dept$est$c = '0' OR dept$est$c = '1');

Page 26: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

26

alter table MEG_DEPTS add constraint DEPT#EST#NN check ("DEPT$EST$C" IS NOT NULL); alter table MEG_DEPTS add constraint DEPT#FEC#CRE#NN check ("DEPT$FEC$CRE$D" IS NOT NULL); alter table MEG_DEPTS add constraint DEPT#NOM#NN check ("DEPT$NOM$V" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_DEPTS to MEGUSER;

1.7.6. Tabla MEG_EMPS

create table MEG_EMPS (

EMP$ID$C CHAR(10) not null, EMP$COD$V VARCHAR2(15), EMP$TIP$DOC$C CHAR(1), EMP$NUM$DOC$V VARCHAR2(13), EMP$NOMB$V VARCHAR2(150), EMP$DIR$V VARCHAR2(250), EMP$FEC$NAC$D DATE, EMP$TELF$V VARCHAR2(9) default '', EMP$MAIL$V VARCHAR2(50) default '', EMP$SEXO$C CHAR(1), EMP$EST$CIV$C CHAR(1), EMP$CARG$FAM$N NUMBER(2) default 0, EMP$CUEN$BANC$V VARCHAR2(25) default '', DEPT$ID$C CHAR(10), ZON$ID$C CHAR(10), PROF$ID$C CHAR(10), ROL$ID$C CHAR(10), EMP$EST$C CHAR(1) default '0', EMP$CLAVE$V VARCHAR2(10) default '', EMP$BLOQ$C CHAR(1) default '0' not null, EMP$FEC$EDT$D DATE, EMP$EDT$POR$V VARCHAR2(10) default '', EMP$ANU$POR$V VARCHAR2(10) default '', EMP$ANU$FEC$D DATE, EMP$CRE$POR$V VARCHAR2(10) default '', EMP$FEC$CRE$D DATE

);

alter table MEG_EMPS add constraint EMP#ID#PK primary key (EMP$ID$C); alter table MEG_EMPS add constraint EMP#COD#UK unique (EMP$COD$V);

Page 27: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

27

alter table MEG_EMPS add constraint DEPT_EMP#FK foreign key (DEPT$ID$C) references MEG_DEPTS (DEPT$ID$C); alter table MEG_EMPS add constraint PROF_EMP#FK foreign key (PROF$ID$C) references MEG_PROFS (PROF$ID$C); alter table MEG_EMPS add constraint ROL_EMP#FK foreign key (ROL$ID$C) references MEG_ROLS (ROL$ID$C); alter table MEG_EMPS add constraint ZON_EMP#FK foreign key (ZON$ID$C) references MEG_ZONS (ZON$ID$C);

alter table MEG_EMPS add constraint EMP#COD#NN check ("EMP$COD$V" IS NOT NULL); alter table MEG_EMPS add constraint EMP#DIR#NN check ("EMP$DIR$V" IS NOT NULL); alter table MEG_EMPS add constraint EMP#EST#CIV#CK check (emp$est$civ$c = 'S' OR emp$est$civ$c = 'C' OR emp$est$civ$c = 'D' OR emp$est$civ$c = 'V' OR emp$est$civ$c = 'U'); alter table MEG_EMPS add constraint EMP#EST#CIV#NN check ("EMP$EST$CIV$C" IS NOT NULL); alter table MEG_EMPS add constraint EMP#EST#CK check (EMP$EST$C = '0' OR EMP$EST$C = '1'); alter table MEG_EMPS add constraint EMP#EST#NN check ("EMP$EST$C" IS NOT NULL); alter table MEG_EMPS add constraint EMP#FEC#NAC#NN check ("EMP$FEC$NAC$D" IS NOT NULL); alter table MEG_EMPS add constraint EMP#NOMB#NN check ("EMP$NOMB$V" IS NOT NULL); alter table MEG_EMPS add constraint EMP#NUM#DOC#NN check ("EMP$NUM$DOC$V" IS NOT NULL); alter table MEG_EMPS add constraint EMP#SEXO#CK check (emp$sexo$c = 'F' OR emp$sexo$c = 'M');

alter table MEG_EMPS add constraint EMP#TIP#DOC#CK check (emp$tip$doc$c = 'C' OR emp$tip$doc$c = 'P'); alter table MEG_EMPS add constraint EMP#TIP#DOC#NN check ("EMP$TIP$DOC$C" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_EMPS to MEGUSER;

Page 28: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

28

1.7.7. Tabla MEG_CLIS

create table MEG_CLIS (

CLI$ID$C CHAR(10) not null, CLI$COD$V VARCHAR2(15), CLI$TIP$CLI$C CHAR(1), CLI$TIP$IDE$C CHAR(1), CLI$NUM$IDE$V VARCHAR2(13), CLI$NOM$V VARCHAR2(150), CLI$DIR$V VARCHAR2(200), CLI$TEL$V VARCHAR2(50) default '', CLI$FAX$V VARCHAR2(50) default '', CLI$EST$CIV$C CHAR(1), CLI$MAIL$V VARCHAR2(50) default '', CLI$PASS$C CHAR(8) default '', CLI$DESD$D DATE not null, CLI$SEXO$C CHAR(1) default '', PROF$ID$C CHAR(10) not null, ACT_COM$ID$C CHAR(10) not null, ZON$ID$C CHAR(10) not null, EMP$ID$C CHAR(10) not null, CLI$FEC$NAC$D DATE, CLI$PAG$WEB$V VARCHAR2(50) default '', CLI$REC$MAIL$V VARCHAR2(4) default '', CLI$EST$C CHAR(1) default '0', CLI$FEC$EDT$D DATE, CLI$EDT$POR$V VARCHAR2(10) default '', CLI$ANU$POR$V VARCHAR2(10) default '', CLI$ANU$FEC$D DATE, CLI$CRE$POR$V VARCHAR2(10) default '', CLI$FEC$CRE$D DATE, CLI$CONTAC$V VARCHAR2(150) default ''

);

alter table MEG_CLIS add constraint CLI#ID#PK primary key (CLI$ID$C); alter table MEG_CLIS add constraint CLI#COD#UK unique (CLI$COD$V); alter table MEG_CLIS add constraint CLI#NOMB#UK unique (CLI$NOM$V); alter table MEG_CLIS add constraint CLI#NUM#IDE#UK unique (CLI$NUM$IDE$V); alter table MEG_CLIS add constraint ACT_COM#FK foreign key (ACT_COM$ID$C) references MEG_ACT_COM (ACT_COM$ID$C); alter table MEG_CLIS add constraint EMP_CLI#FK foreign key (EMP$ID$C)

Page 29: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

29

references.MEG_EMPS (EMP$ID$C); alter table MEG_CLIS add constraint PROF_CLI#FK foreign key (PROF$ID$C) references MEG_PROFS (PROF$ID$C); alter table MEG_CLIS add constraint ZON_CLI#FK foreign key (ZON$ID$C) references MEG_ZONS (ZON$ID$C);

alter table MEG_CLIS add constraint CLI#COD#NN check ("CLI$COD$V" IS NOT NULL); alter table MEG_CLIS add constraint CLI#DIR#NN check ("CLI$DIR$V" IS NOT NULL); alter table MEG_CLIS add constraint CLI#EST#CIV#CK check (cli$est$civ$c = 'S' OR cli$est$civ$c = 'C' OR cli$est$civ$c = 'D' OR cli$est$civ$c = 'V' OR cli$est$civ$c = 'U'); alter table MEG_CLIS add constraint CLI#EST#CK check (cli$est$c = '0' OR cli$est$c = '1'); alter table MEG_CLIS add constraint CLI#EST#NN check ("CLI$EST$C" IS NOT NULL); alter table MEG_CLIS add constraint CLI#NOM#NN check ("CLI$NOM$V" IS NOT NULL); alter table MEG_CLIS add constraint CLI#NUM#IDE#NN check ("CLI$NUM$IDE$V" IS NOT NULL); alter table MEG_CLIS add constraint CLI#SEXO#CK check (cli$sexo$c='F' OR cli$sexo$c='M');

alter table MEG_CLIS add constraint CLI#TIP#CLI#CK check ( cli$tip$cli$c = 'P' OR cli$tip$cli$c = 'E' OR cli$tip$cli$c = 'C' ); alter table MEG_CLIS add constraint CLI#TIP#CLI#NN check ("CLI$TIP$CLI$C" IS NOT NULL); alter table MEG_CLIS add constraint CLI#TIP#IDE#CK check (cli$tip$ide$c = 'C' OR cli$tip$ide$c = 'P' OR cli$tip$ide$c = 'R'); alter table MEG_CLIS add constraint CLI#TIP#IDE#NN check ("CLI$TIP$IDE$C" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_CLIS to MEGUSER;

Page 30: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

30

1.7.8. Tabla MEG_PARS

create table MEG_PARS (

PAR$ID$C CHAR(10) not null, PAR$COD$V VARCHAR2(15), PAR$NOM$V VARCHAR2(150), PAR$VAL$V VARCHAR2(20), PAR$TIP$V VARCHAR2(10), PAD$ID$C CHAR(10), PAR$FEC$CRE$D DATE, PAR$CRE$POR$V VARCHAR2(10), PAR$EST$C CHAR(1), PAR$FEC$EDT$D DATE, PAR$EDT$POR$V VARCHAR2(10) default '', PAR$ANU$POR$V VARCHAR2(10) default '', PAR$ANU$FEC$D DATE

);

alter table MEG_PARS add constraint PAR#ID#PK primary key (PAR$ID$C); alter table MEG_PARS add constraint PAR#PAR#FK foreign key (PAD$ID$C) references MEG_PARS (PAR$ID$C); alter table MEG_PARS add constraint PAR#COD#NN check ("PAR$COD$V" IS NOT NULL); alter table MEG_PARS add constraint PAR#CRE#POR#NN check ("PAR$CRE$POR$V" IS NOT NULL); alter table MEG_PARS add constraint PAR#EST#CK check (par$est$c = '0' OR par$est$c = '1'); alter table MEG_PARS add constraint PAR#EST#NN check ("PAR$EST$C" IS NOT NULL);

alter table MEG_PARS add constraint PAR#FEC#CRE#NN check ("PAR$FEC$CRE$D" IS NOT NULL); alter table MEG_PARS add constraint PAR#NOM#NN check ("PAR$NOM$V" IS NOT NULL); alter table MEG_PARS add constraint PAR#TIP#NN check ("PAR$TIP$V" IS NOT NULL); alter table MEG_PARS add constraint PAR#VAL#NN check ("PAR$VAL$V" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_PARS to MEGUSER;

Page 31: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

31

1.7.9. Tabla MEG_BITS_CLIS

create table MEG_BITS_CLIS (

CLI$ID$C CHAR(10), BIT_CLI$FEC$D DATE, BIT_CLI$HORA$C CHAR(5), BIT_CLI$NOTA$V VARCHAR2(800), EMP$ID$C CHAR(10), TIP$ID$C CHAR(10), BIT_CLI$EST$C CHAR(1)

);

alter table MEG_BITS_CLIS add constraint CLI_BIT_CLI#FK foreign key (CLI$ID$C) references MEG_CLIS (CLI$ID$C);

alter table MEG_BITS_CLIS add constraint EMP_BIT_CLI#FK foreign key (EMP$ID$C) references MEG_EMPS (EMP$ID$C); alter table MEG_BITS_CLIS add constraint PAR_BIT_CLI#FK foreign key (TIP$ID$C) references MEG_PARS (PAR$ID$C); alter table MEG_BITS_CLIS add constraint BIT_CLI#EST#CK check (bit_cli$est$c = '0' OR bit_cli$est$c = '1'); alter table MEG_BITS_CLIS add constraint BIT_CLI#EST#NN check ("BIT_CLI$EST$C" IS NOT NULL); alter table MEG_BITS_CLIS add constraint BIT_CLI#FEC#NN check ("BIT_CLI$FEC$D" IS NOT NULL); alter table MEG_BITS_CLIS add constraint BIT_CLI#HORA#NN check ("BIT_CLI$HORA$C" IS NOT NULL); alter table MEG_BITS_CLIS add constraint BIT_CLI#NOTA#NN check ("BIT_CLI$NOTA$V" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_BITS_CLIS to MEGUSER;

1.7.10. Tabla MEG_COTZS

create table MEG_COTZS (

COTZ$ID$C CHAR(10) not null, COTZ$FEC$D DATE, COTZ$NOTA$V VARCHAR2(1024),

Page 32: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

32

CLI$ID$C CHAR(10), EMP$ID$C CHAR(10), COTZ$SUBT$N NUMBER(8,2), COTZ$PORC$DESC$N NUMBER(4,2) default 0, COTZ$VAL$DESC$N NUMBER(8,2) default 0, COTZ$PORC$IMP$N NUMBER(4,2) default 0, COTZ$VAL$IMP$N NUMBER(8,2) default 0, COTZ$TOT$N NUMBER(8,2), COTZ$VALZ$D DATE, EST$ID$C CHAR(10), COTZ$EST$C CHAR(1) default '0', COT$FEC$EDT$D DATE, COT$EDT$POR$V VARCHAR2(10) default '', COT$ANU$POR$V VARCHAR2(10) default '', COT$ANU$FEC$D DATE, COTZ$NUM$C CHAR(10), COTZ$CRE$POR$V VARCHAR2(15) default '', COTZ$CRE$D DATE

);

alter table MEG_COTZS add constraint COTZ#ID#PK primary key (COTZ$ID$C); alter table MEG_COTZS add constraint COTZ#NUM#UK unique (COTZ$NUM$C); alter table MEG_COTZS add constraint CLI_COTZ#FK foreign key (CLI$ID$C) references MEG_CLIS (CLI$ID$C); alter table MEG_COTZS add constraint EMP_COTZ#FK foreign key (EMP$ID$C) references MEG_EMPS (EMP$ID$C); alter table MEG_COTZS add constraint PAR_COTZ#FK foreign key (EST$ID$C) references MEG_PARS (PAR$ID$C); alter table MEG_COTZS add constraint COTZ#EST#CK check (cotz$est$c = '0' OR cotz$est$c = '1'); alter table MEG_COTZS add constraint COTZ#EST#NN check ("COTZ$EST$C" IS NOT NULL); alter table MEG_COTZS add constraint COTZ#FEC#NN check ("COTZ$FEC$D" IS NOT NULL); alter table MEG_COTZS add constraint COTZ#NOTA#NN check ("COTZ$NOTA$V" IS NOT NULL); alter table MEG_COTZS add constraint COTZ#NUM#NN check ("COTZ$NUM$C" IS NOT NULL);

Page 33: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

33

alter table MEG_COTZS add constraint COTZ#PORC#DESC#NN check ("COTZ$PORC$DESC$N" IS NOT NULL);

alter table MEG_COTZS add constraint COTZ#PORC#IMP#NN check ("COTZ$PORC$IMP$N" IS NOT NULL); alter table MEG_COTZS add constraint COTZ#SUBT#CK check (cotz$subt$n > 0); alter tableMEG_COTZS add constraint COTZ#SUBT#NN check ("COTZ$SUBT$N" IS NOT NULL); alter table MEG_COTZS add constraint COTZ#TOT#CK check (cotz$tot$n > 0);

alter table MEG_COTZS add constraint COTZ#TOT#NN check ("COTZ$TOT$N" IS NOT NULL); alter table MEG_COTZS add constraint COTZ#VAL#DESC#NN check ("COTZ$VAL$DESC$N" IS NOT NULL); alter table MEG_COTZS add constraint COTZ#VAL#IMP#NN check ("COTZ$VAL$IMP$N" IS NOT NULL); alter table MEG_COTZS add constraint COTZ#VALZ#NN check ("COTZ$VALZ$D" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_COTZS to MEGUSER;

1.7.11. Tabla MEG_BITS_COTZS

create table MEG_BITS_COTZS (

COTZ$ID$C CHAR(10), BIT_COTZ$FEC$D DATE, BIT_COTZ$HORA$C CHAR(5), BIT_COTZ$NOTA$V VARCHAR2(800), EMP$ID$C CHAR(10), TIP$ID$C CHAR(10), BIT_COTZ$EST$C CHAR(1)

);

alter table MEG_BITS_COTZS add constraint CLI_BIT_COTZ#FK foreign key (COTZ$ID$C) references MEG_COTZS (COTZ$ID$C); alter table MEG_BITS_COTZS add constraint EMP_BIT_COTZ#FK foreign key (EMP$ID$C) references MEG_EMPS (EMP$ID$C);

Page 34: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

34

alter table MEG_BITS_COTZS add constraint PAR_BIT_COTZ#FK foreign key (TIP$ID$C) references MEGADMIN.MEG_PARS (PAR$ID$C); alter table MEG_BITS_COTZS add constraint BIT_COTZ#EST#CK check (bit_cotz$est$c = '0' OR bit_cotz$est$c = '1'); alter table MEG_BITS_COTZS add constraint BIT_COTZ#EST#NN check ("BIT_COTZ$EST$C" IS NOT NULL); alter table MEG_BITS_COTZS add constraint BIT_COTZ#FEC#NN check ("BIT_COTZ$FEC$D" IS NOT NULL); alter table MEG_BITS_COTZS add constraint BIT_COTZ#HORA#NN check ("BIT_COTZ$HORA$C" IS NOT NULL);

alter table MEG_BITS_COTZS add constraint BIT_COTZ#NOTA#NN check ("BIT_COTZ$NOTA$V" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_BITS_COTZS to MEGUSER;

1.7.12. Tabla MEG_TARS

create table MEG_TARS (

TAR$ID$C CHAR(10) not null, TAR$COD$V VARCHAR2(15), EMP$ID$C CHAR(10), TAR$ASUN$V VARCHAR2(150), TAR$INI$D DATE, TAR$FIN$D DATE, PRIOR$ID$C CHAR(10), TAR$COMP$N NUMBER(3), TAR$AVIS$D DATE, TAR$NOTA$V VARCHAR2(1024), TIP$ID$C CHAR(10), TAR$EST$C CHAR(1) default '0'

);

alter table MEG_TARS add constraint TAR#ID#PK primary key (TAR$ID$C); alter table MEG_TARS add constraint TAR#EMP#ID#FK foreign key (EMP$ID$C) references MEG_EMPS (EMP$ID$C); alter table MEG_TARS add constraint TAR#PRIOR#ID#FK foreign key (PRIOR$ID$C) references MEG_PARS (PAR$ID$C);

Page 35: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

35

alter table MEG_TARS add constraint TAR#TIP#ID#FK foreign key (TIP$ID$C) references MEG_PARS (PAR$ID$C); alter table MEG_TARS add constraint TAR#ASUN#NN check ("TAR$ASUN$V" IS NOT NULL); alter table MEG_TARS add constraint TAR#EST#CK check (tar$est$c = '0' OR tar$est$c = '1'); alter table MEG_TARS add constraint TAR#EST#NN check ("TAR$EST$C" IS NOT NULL); alter table MEG_TARS add constraint TAR#FIN#NN check ("TAR$FIN$D" IS NOT NULL); alter table MEG_TARS add constraint TAR#INI#NN check ("TAR$INI$D" IS NOT NULL);

alter table MEG_TARS add constraint TAR#NOTA#NN check ("TAR$NOTA$V" IS NOT NULL); alter table MEG_TARS add constraint TAR#PRIO#CK check (PRIOR$ID$C = 'B' OR PRIOR$ID$C = 'M' OR PRIOR$ID$C = 'A') disable;

1.7.13. Tabla MEG_BITS_TARS

create table MEG_BITS_TARS (

TAR$ID$C CHAR(10), BIT$FEC$D DATE, BIT$HOR$C CHAR(10), BIT$OBS$V VARCHAR2(250)

);

alter table MEG_BITS_TARS add constraint BIT_TAR#TAR#ID#FK foreign key (TAR$ID$C) references MEG_TARS (TAR$ID$C); alter table MEG_BITS_TARS add constraint BIT#FEC#NN check ("BIT$FEC$D" IS NOT NULL); alter table MEG_BITS_TARS add constraint BIT#HOR#NN check ("BIT$HOR$C" IS NOT NULL);

Page 36: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

36

1.7.14. Tabla MEG_CONTS

create table MEG_CONTS (

CONT$COD$V VARCHAR2(15), NUM$ID$N NUMBER(5) default 0

);

alter table MEG_CONTS add constraint MEG_CONTS#COD#UK unique (CONT$COD$V) alter table MEG_CONTS add constraint MEG_CONTS#COD#NN check ("CONT$COD$V" IS NOT NULL); alter table MEG_CONTS add constraint MEG_CONTS#ID#NN check ("NUM$ID$N" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_CONTS to MEGUSER;

1.7.15. Tabla MEG_PRODS

create table MEG_PRODS (

PROD$ID$C CHAR(10) not null, PROD$COD$V VARCHAR2(15), PROD$NOM$V VARCHAR2(150), PROD$ULT$ING$D DATE, PROD$CANT$BOD$N NUMBER(9,2), PROD$PREC$1$N NUMBER(9,2), PROD$PREC$2$N NUMBER(9,2) default 0.00, PROD$PREC$3$N NUMBER(9,2) default 0.00, PROD$PREC$4$N NUMBER(9,2) default 0.00, PROD$PREC$5$N NUMBER(9,2) default 0.00, PROD$TIP$PROD$C CHAR(10), PROD$EST$C CHAR(1) default '0', PROD$FEC$EDT$D DATE, PROD$EDT$POR$V VARCHAR2(15) default '', PROD$ANU$POR$V VARCHAR2(15) default '', PROD$ANU$FEC$D DATE, PROD$CRE$V VARCHAR2(15) not null, PROD$FEC$CRE$D DATE default SYSDATE not null, PROD$DESC$V VARCHAR2(500) default '' not null

); alter table MEG_PRODS add constraint PROD#ID#PK primary key (PROD$ID$C); alter table MEG_PRODS add constraint PROD#COD#UK unique (PROD$COD$V);

Page 37: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

37

alter table MEG_PRODS add constraint PROD#TIP#ID#FK foreign key (PROD$TIP$PROD$C) references MEG_PARS (PAR$ID$C); alter table MEG_PRODS add constraint PROD#CANT#BOD#CK check (prod$cant$bod$n > 0); alter table MEG_PRODS add constraint PROD#CANT#BOD#NN check ("PROD$CANT$BOD$N" IS NOT NULL); alter table MEG_PRODS add constraint PROD#COD#NN check ("PROD$COD$V" IS NOT NULL);

alter table MEG_PRODS add constraint PROD#EST#CK check (prod$est$c = '0' OR prod$est$c = '1'); alter table MEG_PRODS add constraint PROD#EST#NN check ("PROD$EST$C" IS NOT NULL); alter table MEG_PRODS add constraint PROD#NOM#NN check ("PROD$NOM$V" IS NOT NULL); alter table MEG_PRODS add constraint PROD#PREC#1#CK check (prod$prec$1$n > 0); alter table MEG_PRODS add constraint PROD#PREC#1#NN check ("PROD$PREC$1$N" IS NOT NULL); alter table MEG_PRODS add constraint PROD#TIP#PROD#NN check ("PROD$TIP$PROD$C" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_PRODS to MEGUSER;

1.7.16. Tabla MEG_DETS_COTZS

create table MEG_DETS_COTZS (

COTZ$ID$C CHAR(10), PROD$ID$C CHAR(10), DET_COTZ$CANT$N NUMBER(8,2), DET_COTZ$PREC$N NUMBER(8,2), DET_COTZ$SUBT$N NUMBER(8,2), DET_COTZ$PORC$DESC$N NUMBER(4,2) default 0, DET_COTZ$VAL$DESC$N NUMBER(8,2) default 0, DET_COTZ$PORC$IMP$N NUMBER(4,2) default 0, DET_COTZ$VAL$IMP$N NUMBER(8,2) default 0, DET_COTZ$TOT$N NUMBER(8,2)

);

Page 38: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

38

alter table MEG_DETS_COTZS add constraint COTZ_DET_COTZ#FK foreign key (COTZ$ID$C) references MEG_COTZS (COTZ$ID$C); alter table MEG_DETS_COTZS add constraint PROD_DET_COTZ#FK foreign key (PROD$ID$C) references MEG_PRODS (PROD$ID$C);

alter table MEG_DETS_COTZS add constraint DET_COTZ#CANT#CK check (det_cotz$cant$n > 0); alter table MEG_DETS_COTZS add constraint DET_COTZ#CANT#NN check ("DET_COTZ$CANT$N" IS NOT NULL); alter table MEG_DETS_COTZS add constraint DET_COTZ#DESC#NN check ("DET_COTZ$VAL$DESC$N" IS NOT NULL); alter table MEG_DETS_COTZS add constraint DET_COTZ#IMP#NN check ("DET_COTZ$VAL$IMP$N" IS NOT NULL); alter table MEG_DETS_COTZS add constraint DET_COTZ#PRD#TOT#NN check ("DET_COTZ$TOT$N" IS NOT NULL); alter table MEG_DETS_COTZS add constraint DET_COTZ#PREC#CK check (det_cotz$prec$n > 0);

alter table MEG_DETS_COTZS add constraint DET_COTZ#PREC#NN check ("DET_COTZ$PREC$N" IS NOT NULL); alter table MEG_DETS_COTZS add constraint DET_COTZ#SUBT#CK check (det_cotz$subt$n > 0); alter table MEG_DETS_COTZS add constraint DET_COTZ#SUBT#NN check ("DET_COTZ$SUBT$N" IS NOT NULL); alter table MEG_DETS_COTZS add constraint DET_COTZ#TOT#CK check (det_cotz$tot$n > 0); alter table MEG_DETS_COTZS add constraint DET_COTZ#VAL#DESC#NN check ("DET_COTZ$PORC$DESC$N" IS NOT NULL); alter table MEG_DETS_COTZS add constraint DET_COTZ#VAL#IMP#NN check ("DET_COTZ$PORC$IMP$N" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_DETS_COTZS to MEGUSER;

Page 39: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

39

1.7.17. Tabla MEG_VENTS

create table MEG_VENTS (

VENT$ID$C CHAR(10) not null, VENT$NUM$C CHAR(10), VENT$FEC$D DATE, VENT$NOTA$V VARCHAR2(1024), CLI$ID$C CHAR(10), EMP$ID$C CHAR(10), VENT$SUBT$N NUMBER(8,2), VENT$PORC$DESC$N NUMBER(4,2) default 0, VENT$VAL$DESC$N NUMBER(8,2) default 0, VENT$PORC$IMP$N NUMBER(4,2) default 0, VENT$VAL$IMP$N NUMBER(8,2) default 0, VENT$TOT$N NUMBER(8,2), FORM$PAGO$ID$C CHAR(10), VENT$PLAZ$N NUMBER(4) default 0, VENT$EST$C CHAR(1) default '0', VENT$FEC$EDT$D DATE, VENT$EDT$POR$V VARCHAR2(15) default '', VENT$ANU$POR$V VARCHAR2(15) default '', VENT$ANU$FEC$D DATE, VENT$CRE$POR VARCHAR2(15) default '', VENT$CRE$D DATE

);

alter table MEG_VENTS add constraint VENT#ID#PK primary key (VENT$ID$C); alter table MEG_VENTS add constraint VENT#NUM#UK unique (VENT$NUM$C) alter table MEG_VENTS add constraint CLI_VENT#FK foreign key (CLI$ID$C) references MEG_CLIS (CLI$ID$C); alter table MEG_VENTS add constraint EMP_VENT#FK foreign key (EMP$ID$C) references MEG_EMPS (EMP$ID$C); alter table MEG_VENTS add constraint PAR_VENT#FK foreign key (FORM$PAGO$ID$C) references MEG_PARS (PAR$ID$C);

alter table MEG_VENTS add constraint VENT#EST#CK check (vent$est$c = '0' OR vent$est$c = '1'); alter table MEG_VENTS add constraint VENT#EST#NN check ("VENT$EST$C" IS NOT NULL); alter table MEG_VENTS add constraint VENT#FEC#NN check ("VENT$FEC$D" IS NOT NULL);

Page 40: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

40

alter table MEG_VENTS add constraint VENT#NOTA#NN check ("VENT$NOTA$V" IS NOT NULL); alter table MEG_VENTS add constraint VENT#NUM#NN check ("VENT$NUM$C" IS NOT NULL); alter table MEG_VENTS add constraint VENT#PLAZ#NN check ("VENT$PLAZ$N" IS NOT NULL);

alter table MEG_VENTS add constraint VENT#PORC#DESC#NN check ("VENT$PORC$DESC$N" IS NOT NULL); alter table MEG_VENTS add constraint VENT#PORC#IMP#NN check ("VENT$PORC$IMP$N" IS NOT NULL); alter table MEG_VENTS add constraint VENT#SUBT#CK check (vent$subt$n > 0); alter table MEG_VENTS add constraint VENT#SUBT#NN check ("VENT$SUBT$N" IS NOT NULL); alter table MEG_VENTS add constraint VENT#TOT#CK check (vent$tot$n > 0);

alter table MEG_VENTS add constraint VENT#TOT#NN check ("VENT$TOT$N" IS NOT NULL); alter table MEG_VENTS add constraint VENT#VAL#DESC#NN check ("VENT$VAL$DESC$N" IS NOT NULL); alter table MEG_VENTS add constraint VENT#VAL#IMP#NN check ("VENT$VAL$IMP$N" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_VENTS to MEGUSER;

1.7.18. Tabla MEG_DETS_VENTS

create table MEG_DETS_VENTS (

VENT$ID$C CHAR(10) not null, PROD$ID$C CHAR(10) not null, DET_VENT$CANT$N NUMBER(8,2), DET_VENT$PREC$N NUMBER(8,2), DET_VENT$SUBT$N NUMBER(8,2), DET_VENT$PORC$DESC$N NUMBER(4,2) default 0, DET_VENT$VAL$DESC$N NUMBER(8,2) default 0, DET_VENT$PORC$IMP$N NUMBER(4,2) default 0, DET_VENT$VAL$IMP$N NUMBER(8,2) default 0,

Page 41: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

41

DET_VENT$TOT$N NUMBER(8,2) );

alter table MEG_DETS_VENTS add constraint VNT#ID_PRD#ID_PK primary key (VENT$ID$C, PROD$ID$C) alter table MEG_DETS_VENTS add constraint PROD_DET_VENT#FK foreign key (PROD$ID$C) references MEG_PRODS (PROD$ID$C); alter table MEG_DETS_VENTS add constraint VENT_DET_VENT#FK foreign key (VENT$ID$C) references MEG_VENTS (VENT$ID$C); alter table MEG_DETS_VENTS add constraint DET_VENT#CANT#CK check (det_vent$cant$n > 0); alter table MEG_DETS_VENTS add constraint DET_VENT#CANT#NN check ("DET_VENT$CANT$N" IS NOT NULL); alter table MEG_DETS_VENTS add constraint DET_VENT#PORC#IMP#NN check ("DET_VENT$PORC$IMP$N" IS NOT NULL); alter table MEG_DETS_VENTS add constraint DET_VENT#PREC#CK check (det_vent$prec$n > 0); alter table MEG_DETS_VENTS add constraint DET_VENT#PREC#NN check ("DET_VENT$PREC$N" IS NOT NULL);

alter table MEG_DETS_VENTS add constraint DET_VENT#SUBT#CK check (det_vent$subt$n > 0); alter table MEG_DETS_VENTS add constraint DET_VENT#SUBT#NN check ("DET_VENT$SUBT$N" IS NOT NULL); alter table MEG_DETS_VENTS add constraint DET_VENT#TOT#CK check (det_vent$tot$n > 0); alter table MEG_DETS_VENTS add constraint DET_VENT#TOT#NN check ("DET_VENT$TOT$N" IS NOT NULL); alter table MEG_DETS_VENTS add constraint DET_VENT#VAL#DESC#NN check ("DET_VENT$VAL$DESC$N" IS NOT NULL); alter table MEG_DETS_VENTS add constraint DET_VENT#VAL#IMP#NN check ("DET_VENT$VAL$IMP$N" IS NOT NULL); alter table MEG_DETS_VENTS add constraint DET_VENT#VAL#PORC#DESC#NN check ("DET_VENT$PORC$DESC$N" IS NOT NULL);

Page 42: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

42

grant select, insert, update, delete on MEGADMIN.MEG_DETS_VENTS to MEGUSER;

1.7.19. Tabla MEG_INCIDS

create table MEG_INCIDS (

INCID$ID$C CHAR(10) not null, INCID$COD$V VARCHAR2(15), INCID$TP$C CHAR(1), INCID$FEC$D DATE, INCID$NOTA$V VARCHAR2(1024), INCID$DESC$V VARCHAR2(4000) default '', CLI$ID$C CHAR(10), EMP$ID$C CHAR(10), PRIO$ID$C CHAR(10), STAT$ID$C CHAR(10), FACT$ID$C CHAR(10) default '', INCID$CRE$POR$V VARCHAR2(10), INCID$FEC$CRE$D DATE default SYSDATE, INCID$EDT$POR$V VARCHAR2(10), INCID$FEC$EDT$D DATE, INCID$ANU$POR$V VARCHAR2(10), INCID$FEC$ANU$D DATE, INCID$EST$C CHAR(1) default '0'

); alter table MEG_INCIDS add constraint INCID#ID#PK primary key (INCID$ID$C); alter table MEG_INCIDS add constraint INCID#COD#UK unique (INCID$COD$V); alter table MEG_INCIDS add constraint CLI_INCID#FK foreign key (CLI$ID$C) references MEG_CLIS (CLI$ID$C); alter table MEG_INCIDS add constraint EMP_INCID#FK foreign key (EMP$ID$C) references MEG_EMPS (EMP$ID$C); alter table MEG_INCIDS add constraint PAR_INCID#PRIO#FK foreign key (PRIO$ID$C) references MEG_PARS (PAR$ID$C); alter table MEG_INCIDS add constraint PAR_INCID#STAT#FK foreign key (STAT$ID$C) references MEG_PARS (PAR$ID$C);

alter table MEG_INCIDS

Page 43: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

43

add constraint INCID#COD#NN check ("INCID$COD$V" IS NOT NULL); alter table MEG_INCIDS add constraint INCID#EST#CK check ( incid$est$c = '0' OR incid$est$c = '1'); alter table MEG_INCIDS add constraint INCID#EST#NN check ("INCID$EST$C" IS NOT NULL); alter table MEG_INCIDS add constraint INCID#FEC#NN check ("INCID$FEC$D" IS NOT NULL); alter table MEG_INCIDS add constraint INCID#TP#CK check ( incid$tp$c = 'Q' OR incid$tp$c = 'R'); alter table MEG_INCIDS add constraint INCID#TP#NN check ("INCID$TP$C" IS NOT NULL); alter table MEG_INCIDS add constraint RECL#NOTA#NN check ("INCID$NOTA$V" IS NOT NULL);

1.7.20. Tabla MEG_INCIDS_BITS

create table MEG_INCIDS_BITS (

INCID$ID$C CHAR(10), BITA$FEC$D DATE, BITA$HORA$C CHAR(5), BITA$NOTA$V VARCHAR2(800), BITA$CRE$POR$V VARCHAR2(10), BITA$FEC$CRE$D DATE default SYSDATE, BITA$TIP$ID$C CHAR(10), BITA$EST$C CHAR(1)

);

alter table MEG_INCIDS_BITS add constraint INCID_INCID_BIT#FK foreign key (INCID$ID$C) references MEGADMIN.MEG_INCIDS (INCID$ID$C); alter table MEG_INCIDS_BITS add constraint PAR_INCID_BIT#FK foreign key (BITA$TIP$ID$C) references MEGADMIN.MEG_PARS (PAR$ID$C); alter table MEG_INCIDS_BITS add constraint BIT_QUEJ#FEC#NN check ("BITA$FEC$D" IS NOT NULL); alter table MEG_INCIDS_BITS add constraint BIT_QUEJ#HORA#NN check ("BITA$HORA$C" IS NOT NULL);

alter table MEG_INCIDS_BITS

Page 44: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

44

add constraint BIT_QUEJ#NOTA#NN check ("BITA$NOTA$V" IS NOT NULL); alter table MEG_INCIDS_BITS add constraint INCID_BIT#EST#CK check ( bita$est$c = '0' OR bita$est$c = '1' );

1.7.21. Tabla MEG_RECS

create table MEG_RECS (

REC$ID$C CHAR(10) not null, REC$COD$V VARCHAR2(15), REC$NOM$V VARCHAR2(50), REC$TIP$RECR$V VARCHAR2(20), REC$ID$REC$ID$C CHAR(10), REC$FEC$CRE$D DATE, REC$CRE$POR$V VARCHAR2(10), REC$EST$C CHAR(1) default '0', REC$FEC$EDT$D DATE, REC$EDT$POR$V VARCHAR2(10) default '', REC$ANU$POR$V VARCHAR2(10) default '', REC$ANU$FEC$D DATE

);

alter table MEG_RECS add constraint REC#ID#PK primary key (REC$ID$C); alter table MEG_RECS add constraint REC#COD#UK unique (REC$COD$V); alter table MEG_RECS add constraint REC_REC#FK foreign key (REC$ID$REC$ID$C) references MEGADMIN.MEG_RECS (REC$ID$C); alter table MEG_RECS add constraint REC#COD#NN check ("REC$COD$V" IS NOT NULL); alter table MEG_RECS add constraint REC#CRE#POR#NN check ("REC$CRE$POR$V" IS NOT NULL); alter table MEG_RECS add constraint REC#EST#CK check (rec$est$c = '0' OR rec$est$c = '1'); alter table MEG_RECS add constraint REC#EST#NN check ("REC$EST$C" IS NOT NULL); alter table MEG_RECS add constraint REC#FEC#CRE#NN check ("REC$FEC$CRE$D" IS NOT NULL); alter table MEG_RECS

Page 45: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

45

add constraint REC#NOM#NN check ("REC$NOM$V" IS NOT NULL); alter table MEG_RECS add constraint REC#TIP#RECR#NN check ("REC$TIP$RECR$V" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_RECS to MEGUSER;

1.7.22. Tabla MEG_ROLS_RECS

create table MEG_ROLS_RECS (

ROL$ID$C CHAR(10) not null, REC$ID$C CHAR(10) not null, ROL_REC$FEC$CRE$D DATE, ROL_REC$CRE$POR$V VARCHAR2(10)

);

alter table MEG_ROLS_RECS add constraint ROL_REC#PK primary key (ROL$ID$C, REC$ID$C); alter table MEG_ROLS_RECS add constraint ROL_REC#REC#FK foreign key (REC$ID$C) references MEG_RECS (REC$ID$C); alter table MEG_ROLS_RECS add constraint ROL_REC#ROL#FK foreign key (ROL$ID$C) references MEG_ROLS (ROL$ID$C); alter table MEG_ROLS_RECS add constraint ROL_REC#CRE#POR#NN check ("ROL_REC$CRE$POR$V" IS NOT NULL); alter table MEG_ROLS_RECS add constraint ROL_REC#FEC#CRE#NN check ("ROL_REC$FEC$CRE$D" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_ROLS_RECS to MEGUSER;

1.7.23. Tabla MEG_SUCS

create table MEG_SUCS (

SUC$ID$C CHAR(10) not null, SUC$COD$V VARCHAR2(15), SUC$NOM$V VARCHAR2(50),

Page 46: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

46

SUC$FEC$CRE$D DATE, SUC$CRE$POR$V VARCHAR2(10), SUC$EST$C CHAR(1) default '0', SUC$FEC$EDT$D DATE, SUC$EDT$POR$V VARCHAR2(10) default '', SUC$ANU$POR$V VARCHAR2(10) default '', SUC$ANU$FEC$D DATE

);

alter table MEG_SUCS add constraint SUC#ID#PK primary key (SUC$ID$C) alter table MEG_SUCS add constraint SUC#COD#UK unique (SUC$COD$V); alter table MEG_SUCS add constraint SUC#NOM#UK unique (SUC$NOM$V); alter table MEGADMIN.MEG_SUCS add constraint SUC#COD#NN check ("SUC$COD$V" IS NOT NULL); alter table MEG_SUCS add constraint SUC#CRE#POR#NN check ("SUC$CRE$POR$V" IS NOT NULL); alter table MEG_SUCS add constraint SUC#EST#CK check (suc$est$c = '0' OR suc$est$c = '1'); alter table MEG_SUCS add constraint SUC#EST#NN check ("SUC$EST$C" IS NOT NULL); alter table MEG_SUCS add constraint SUC#FEC#CRE#NN check ("SUC$FEC$CRE$D" IS NOT NULL); alter table MEG_SUCS add constraint SUC#NOM#NN check ("SUC$NOM$V" IS NOT NULL); grant select, insert, update, delete on MEGADMIN.MEG_SUCS to MEGUSER;

1.8. Creación de los paquetes

El estándar que hemos utilizado en la creación de los paquetes, los

hemos definido de la siguiente manera:

���� MEG_PCKG_DELETE

���� MEG_PCKG_INSERT

Page 47: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

47

���� MEG_PCKG_SELECT

���� MEG_PCKG_UPDATE

���� MEG_PCKG_FUNCTION

El estándar que hemos utilizado para la creación de los campos, los

hemos definido de la siguiente manera: nombre de la tabla en singular sin

el prefijo “meg_”, separador “$”, nombre del campo (utilizando solo las

primeras 3 o 4 letras por lo general), separador “$”, y tipo de dato, ejemplo:

• zon$id$v, id de la tabla meg_zons del tipo varchar2.

• cli$est$civ$c, estado civil de la tabla meg_clis del tipo char.

1.8.1. MEG_PCKG_DELETE

Este paquete contendrá las funciones que permitirán la eliminación de

los registros de la tabla meg_rols_recs y la actualización de los

campos de las tablas restantes. Se actualizarán los campos que

corresponderán a: “eliminado por”, este campo contendrá el nombre

del usuario que eliminó el registro; “fecha de eliminación”, fecha en

que se realizó la eliminación del registro y que será guardada

automáticamente por el sistema; y “estado”, la función setea este

valor de activo a inactivo.

Page 48: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

48

A continuación se detallan las funciones del paquete

MEG_PCKG_DELETE:

PROCEDIMIENTO ALMACENADO

DESCRIPCION

meg_fnc_rols_recs_delete Elimina los registros de la tabla meg_rols_recs.

meg_fnc_zons_delete Actualiza los campos zon$anu$por$v, zon$anu$fec$d y zon$est$c de la tabla meg_zons.

meg_fnc_rols_delete Actualiza los campos rol$anu$por$v, rol$anu$fec$d y rol$est$c de la tabla meg_rols

meg_fnc_emps_delete Actualiza los campos emp$anu$por$v, emp$anu$fec$d y emp$est$c de la tabla meg_emps.

meg_fnc_depts_delete Actualiza los campos dept$anu$por$v, dept$anu$fec$d y dept$est$c de la tabla meg_depts.

meg_fnc_pars_delete Actualiza los campos par$anu$por$v, par$anu$fec$d y par$est$c de la tabla meg_pars.

meg_fnc_profs_delete Actualiza los campos prof$anu$por$v, prof$anu$fec$d y prof$est$c de la tabla meg_profs.

meg_fnc_sucs_delete Actualiza los campos suc$anu$por$v, suc$anu$fec$d y suc$est$c de la tabla meg_sucs.

meg_fnc_clis_delete Actualiza los campos cli$anu$por$v, cli$anu$fec$d y cli$est$c de la tabla meg_clis.

FUNCIÓN MEG_FNC_ROLS_RECS_DELETE FUNCTION meg_fnc_rols_recs_delete ( pc_rec_rol_id meg_rols_recs.rol$id$c%TYPE ) RETURN NUMBER IS BEGIN DELETE FROM meg_rols_recs WHERE rol$id$c = pc_rec_rol_id; RETURN ( SQL%ROWCOUNT );

Page 49: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

49

END meg_fnc_rols_recs_delete; FUNCIÓN MEG_FNC_ZONS_DELETE

FUNCTION meg_fnc_zons_delete( pc_id meg_zons.zon$id$c%TYPE, pv_user meg_zons.zon$anu$por$v%TYPE) RETURN NUMBER IS BEGIN UPDATE meg_zons SET zon$anu$por$v = pv_user, zon$anu$fec$d = SYSDATE, zon$est$c = '1' WHERE zon$id$c = pc_id; RETURN ( SQL%ROWCOUNT ); END meg_fnc_zons_delete;

FUNCIÓN MEG_FNC_ROLS_DELETE

FUNCTION meg_fnc_rols_delete( pc_id meg_rols.rol$id$c%TYPE, pv_user meg_rols.rol$anu$por$v%TYPE) RETURN NUMBER IS BEGIN UPDATE meg_rols SET rol$anu$por$v = pv_user, rol$anu$fec$d = SYSDATE, rol$est$c = '1' WHERE rol$id$c = pc_id; RETURN ( SQL%ROWCOUNT ); END meg_fnc_rols_delete;

FUNCIÓN MEG_FNC_EMPS_DELETE

FUNCTION meg_fnc_emps_delete( pc_id meg_emps.emp$id$c%TYPE, pv_user meg_emps.emp$anu$por$v%TYPE) RETURN NUMBER IS BEGIN UPDATE meg_emps SET emp$anu$por$v = pv_user, emp$anu$fec$d = SYSDATE, emp$est$c = '1' WHERE emp$id$c = pc_id; RETURN ( SQL%ROWCOUNT); END meg_fnc_emps_delete;

FUNCIÓN MEG_FNC_DEPTS_DELETE

FUNCTION meg_fnc_depts_delete( pc_id meg_depts.dept$id$c%TYPE, pv_user meg_depts.dept$anu$por$v%TYPE) RETURN NUMBER IS BEGIN UPDATE meg_depts SET dept$anu$por$v = pv_user, dept$anu$fec$d = SYSDATE, dept$est$c = '1'

Page 50: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

50

WHERE dept$id$c = pc_id; RETURN ( SQL%ROWCOUNT ); END meg_fnc_depts_delete;

FUNCIÓN MEG_FNC_PARS_DELETE

FUNCTION meg_fnc_pars_delete( pc_id meg_pars.par$id$c%TYPE, pv_user meg_pars.par$anu$por$v%TYPE) RETURN NUMBER IS BEGIN UPDATE meg_pars SET par$anu$por$v = pv_user, par$anu$fec$d = SYSDATE, par$est$c = '1' WHERE par$id$c = pc_id; RETURN ( SQL%ROWCOUNT ); END meg_fnc_pars_delete;

FUNCIÓN MEG_FNC_PROFS_DELETE

FUNCTION meg_fnc_profs_delete( pc_id meg_profs.prof$id$c%TYPE, pv_user meg_profs.prof$anu$por$v%TYPE) RETURN NUMBER IS BEGIN UPDATE meg_profs SET prof$anu$por$v = pv_user, prof$anu$fec$d = SYSDATE, prof$est$c = '1' WHERE prof$id$c = pc_id; RETURN ( SQL%ROWCOUNT ); END meg_fnc_profs_delete;

FUNCIÓN MEG_FNC_SUCS_DELETE

FUNCTION meg_fnc_sucs_delete( pc_id meg_sucs.suc$id$c%TYPE, pv_user meg_sucs.suc$anu$por$v%TYPE) RETURN NUMBER IS BEGIN UPDATE meg_sucs SET suc$anu$por$v = pv_user, suc$anu$fec$d = SYSDATE, suc$est$c = '1' WHERE suc$id$c = pc_id; RETURN ( SQL%ROWCOUNT ); END meg_fnc_sucs_delete;

FUNCIÓN MEG_FNC_CLIS_DELETE

FUNCTION meg_fnc_clis_delete( pc_id meg_clis.cli$id$c%TYPE, pv_user meg_clis.cli$anu$por$v%TYPE) RETURN NUMBER IS BEGIN UPDATE meg_clis SET cli$anu$por$v = pv_user,

Page 51: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

51

cli$anu$fec$d = SYSDATE, cli$est$c = '1' WHERE cli$id$c = pc_id; RETURN ( SQL%ROWCOUNT ); END meg_fnc_clis_delete;

1.8.2. MEG_PCKG_INSERT

Este paquete contendrá las funciones que permitirán la inserción en

los registros de las tablas.

A continuación se detallan las funciones del paquete

MEG_PCKG_INSERT:

PROCEDIMIENTO ALMACENADO

DESCRIPCION

meg_fnc_next_id Inserta el campo ID de forma automatica.

meg_fnc_chat_operador

meg_fnc_recs_insert Inserta un registro en la tabla meg_recs.

meg_fnc_zons_insert Inserta un registro en la tabla meg_zons.

meg_fnc_rols_insert Inserta un registro en la tabla meg_rols.

meg_fnc_emps_insert Inserta un registro en la tabla meg_emps.

meg_fnc_depts_insert Inserta un registro en la tabla meg_depts.

meg_fnc_pars_insert Inserta un registro en la tabla meg_pars.

meg_fnc_profs_insert Inserta un registro en la tabla meg_profs

Page 52: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

52

meg_fnc_sucs_insert Inserta un registro en la tabla meg_sucs.

meg_fnc_incid_insert Inserta un registro en la tabla meg_incids.

meg_fnc_clis_insert Inserta un registro en la tabla meg_clis.

meg_fnc_prods_insert Inserta un registro en la tabla meg_prods.

meg_fnc_cotzs_insert_cab Inserta un registro en la tabla meg_cotzs.

meg_fnc_cotzs_insert_det Inserta un registro en la tabla meg_dets_cotzs.

meg_fnc_vents_insert_cab Inserta un registro en la tabla meg_vents.

meg_fnc_vents_insert_det Inserta un registro en la tabla meg_dets_vents.

meg_fnc_bits_incid_insert Inserta un registro en la tabla meg_bits_incid.

meg_fnc_bits_clis_insert Inserta un registro en la tabla meg_bits_clis.

meg_fnc_bits_cotzs_insert Inserta un registro en la tabla meg_bits_cotzs.

meg_fnc_tars_insert Inserta un registro en la tabla meg_tars.

FUNCIÓN MEG_FNC_NEXT_ID

FUNCTION meg_fnc_next_id ( pv_cod meg_conts.cont$cod$v%TYPE ) RETURN VARCHAR2 IS ln_next_id VARCHAR2(10) := ''; BEGIN BEGIN SELECT ( MAX(num$id$n) + 1 ) INTO ln_next_id FROM meg_conts WHERE cont$cod$v = pv_cod; EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO meg_conts( cont$cod$v, num$id$n ) VALUES (pv_cod, 1); ln_next_id := 1; END; IF ln_next_id > 0 THEN UPDATE meg_conts SET num$id$n = ln_next_id WHERE cont$cod$v = pv_cod; ELSE

Page 53: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

53

INSERT INTO meg_conts( cont$cod$v, num$id$n ) VALUES (pv_cod, 1); ln_next_id := 1; END IF; RETURN( LPAD(RTRIM(LTRIM(TO_CHAR( ln_next_id ))), 10, '0') ); END meg_fnc_next_id;

FUNCIÓN MEG_FNC_CHAT_OPERADOR

FUNCTION meg_fnc_chat_operador ( pv_emp_id IN meg_emps.emp$id$c%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_chats_emps ( opr$id$c, chat$fec$d, chat$disp$c ) VALUES ( pv_emp_id, SYSDATE, '0' ); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_chat_operador;

FUNCIÓN MEG_FNC_RECS_INSERT FUNCTION meg_fnc_recs_insert ( pc_id meg_recs.rec$id$c%TYPE, pv_cod meg_recs.rec$cod$v%TYPE, pv_nom meg_recs.rec$nom$v%TYPE, pv_tip meg_recs.rec$tip$recr$v%TYPE, pc_pad meg_recs.rec$id$rec$id$c%TYPE, pd_fec meg_recs.rec$fec$cre$d%TYPE, pv_cre meg_recs.rec$cre$por$v%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_recs ( rec$id$c, rec$cod$v, rec$nom$v, rec$tip$recr$v, rec$id$rec$id$c, rec$fec$cre$d, rec$cre$por$v, rec$est$c ) VALUES ( pc_id, pv_cod, pv_nom, pv_tip, pc_pad, pd_fec, pv_cre, '0' ); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_recs_insert;

FUNCIÓN MEG_FNC_ZONS_INSERT

FUNCTION meg_fnc_zons_insert ( pc_id meg_zons.zon$id$c%TYPE, pv_cod meg_zons.zon$cod$v%TYPE, pv_nom meg_zons.zon$nom$v%TYPE, pc_pad meg_zons.pad$id$c%TYPE, pv_usr meg_zons.zon$cre$por$v%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_zons ( zon$id$c, zon$cod$v, zon$nom$v,pad$id$c, zon$fec$cre$d, zon$cre$por$v, zon$est$c ) VALUES ( pc_id, pv_cod, pv_nom, pc_pad, SYSDATE, pv_usr, '0' );

Page 54: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

54

ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_zons_insert;

FUNCIÓN MEG_FNC_ROLS_INSERT

FUNCTION meg_fnc_rols_insert ( pc_id meg_rols.rol$id$c%TYPE, pv_cod meg_rols.rol$cod$v%TYPE, pv_nom meg_rols.rol$nom$v%TYPE, pv_cre meg_rols.rol$cre$por$v%TYPE, pa_recs_id ARRAY_ID, pa_emps_id ARRAY_ID) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_rols ( rol$id$c, rol$cod$v, rol$nom$v, rol$fec$cre$d, rol$cre$por$v, rol$est$c ) VALUES ( pc_id, pv_cod, pv_nom, SYSDATE, pv_cre, '0' ); ln_num_reg := SQL%ROWCOUNT; /*****************************************************************************************/ /**** Insertando en la tabla de ROLES_RECURSOS los accesos seleccionados para ese rol ****/ IF pa_recs_id.COUNT > 0 THEN FOR cont_recs IN 1 .. pa_recs_id.COUNT LOOP INSERT INTO meg_rols_recs( rol$id$c, rec$id$c, rol_rec$cre$por$v, rol_rec$fec$cre$d) VALUES( pc_id, pa_recs_id(cont_recs), pv_cre, SYSDATE ); END LOOP; END IF; /*****************************************************************************************/ /***** Actualizando en la tabla de EMPLEADOS el rol seleccionado para esos empleados *****/ IF pa_emps_id.COUNT > 0 THEN FOR cont_emps IN 1 .. pa_emps_id.COUNT LOOP UPDATE meg_emps SET rol$id$c = pc_id WHERE emp$id$c = pa_emps_id( cont_emps ); END LOOP; END IF; /*****************************************************************************************/ RETURN(ln_num_reg); EXCEPTION WHEN OTHERS THEN RETURN -1; END meg_fnc_rols_insert;

FUNCIÓN MEG_FNC_EMPS_INSERT

FUNCTION meg_fnc_emps_insert ( pc_id meg_emps.emp$id$c%TYPE, pv_cod meg_emps.emp$cod$v%TYPE, pc_tip_cod meg_emps.emp$tip$doc$c%TYPE, pv_num_doc meg_emps.emp$num$doc$v%TYPE,

Page 55: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

55

pv_nom meg_emps.emp$nomb$v%TYPE, pv_dir meg_emps.emp$dir$v%TYPE, pd_fec_nac meg_emps.emp$fec$nac$d%TYPE, pv_telf meg_emps.emp$telf$v%TYPE, pv_mail meg_emps.emp$mail$v%TYPE, pc_sexo meg_emps.emp$sexo$c%TYPE, pc_est_civ meg_emps.emp$est$civ$c%TYPE, pn_car_fam meg_emps.emp$carg$fam$n%TYPE, pv_cuen_banc meg_emps.emp$cuen$banc$v%TYPE, pv_clave meg_emps.emp$clave$v%TYPE, pc_dept_id meg_emps.dept$id$c%TYPE, pc_zon_id meg_emps.zon$id$c%TYPE, pc_prof_id meg_emps.prof$id$c%TYPE, pc_rol_id meg_emps.rol$id$c%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_emps ( emp$id$c, emp$cod$v, emp$tip$doc$c, emp$num$doc$v, emp$nomb$v, emp$dir$v, emp$fec$nac$d, emp$telf$v, emp$mail$v, emp$sexo$c, emp$est$civ$c, emp$carg$fam$n, emp$cuen$banc$v, emp$clave$v, emp$bloq$c, dept$id$c, zon$id$c, prof$id$c, rol$id$c, emp$est$c ) VALUES ( pc_id, pv_cod, pc_tip_cod, pv_num_doc, pv_nom, pv_dir, pd_fec_nac, pv_telf, pv_mail, pc_sexo, pc_est_civ, pn_car_fam, pv_cuen_banc, pv_clave, pc_bloq, pc_dept_id, pc_zon_id, pc_prof_id, pc_rol_id,'0'); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_emps_insert;

FUNCIÓN MEG_FNC_DEPTS_INSERT

FUNCTION meg_fnc_depts_insert ( pc_id meg_depts.dept$id$c%TYPE, pv_cod meg_depts.dept$cod$v%TYPE, pv_nom meg_depts.dept$nom$v%TYPE, pc_pad meg_depts.pad$id$c%TYPE, pv_usr meg_depts.dept$cre$por$v%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_depts ( dept$id$c, dept$cod$v, dept$nom$v, pad$id$c, dept$fec$cre$d, dept$cre$por$v, dept$est$c ) VALUES ( pc_id, pv_cod, pv_nom,pc_pad, SYSDATE, pv_usr,'0'); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_depts_insert;

Page 56: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

56

FUNCIÓN MEG_FNC_PARS_INSERT

FUNCTION meg_fnc_pars_insert ( pc_id meg_pars.par$id$c%TYPE, pv_cod meg_pars.par$cod$v%TYPE, pv_nom meg_pars.par$nom$v%TYPE, pv_val meg_pars.par$val$v%TYPE, pv_tip meg_pars.par$tip$v%TYPE, pc_pad meg_pars.pad$id$c%TYPE, pv_usr meg_pars.par$cre$por$v%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_pars ( par$id$c, par$cod$v, par$nom$v, par$val$v, par$tip$v, pad$id$c, par$fec$cre$d, par$cre$por$v, par$est$c ) VALUES ( pc_id, pv_cod, pv_nom, pv_val, pv_tip, pc_pad, SYSDATE, pv_usr,'0' ); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_pars_insert;

FUNCIÓN MEG_FNC_PROFS_INSERT

FUNCTION meg_fnc_profs_insert( pc_id meg_profs.prof$id$c%TYPE, pv_cod meg_profs.prof$cod$v%TYPE, pv_nom meg_profs.prof$nom$v%TYPE, pv_usr meg_profs.prof$cre$por$v%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_profs ( prof$id$c, prof$cod$v, prof$nom$v, prof$fec$cre$d, prof$cre$por$v, prof$est$c ) VALUES ( pc_id, pv_cod, pv_nom, SYSDATE, pv_usr, '0'); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_profs_insert;

FUNCIÓN MEG_FNC_SUCS_INSERT

FUNCTION meg_fnc_sucs_insert ( pc_id meg_sucs.suc$id$c%TYPE, pv_cod meg_sucs.suc$cod$v%TYPE, pv_nom meg_sucs.suc$nom$v%TYPE, pv_usr meg_sucs.suc$cre$por$v%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_sucs (suc$id$c, suc$cod$v, suc$nom$v, suc$fec$cre$d, suc$cre$por$v, suc$est$c ) VALUES ( pc_id, pv_cod, pv_nom, SYSDATE, pv_usr, '0' );

Page 57: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

57

ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_sucs_insert;

FUNCIÓN MEG_FNC_INCID_INSERT

FUNCTION meg_fnc_incid_insert ( pc_id meg_incids.incid$id$c%TYPE, pv_code meg_incids.incid$cod$v%TYPE, pc_tipo meg_incids.incid$tp$c%TYPE, pd_fec meg_incids.incid$fec$d%TYPE, pv_desc meg_incids.incid$desc$v%TYPE, pv_det meg_incids.incid$det$v%TYPE, pc_cli_id meg_incids.cli$id$c%TYPE, pc_emp_id meg_incids.emp$id$c%TYPE, pc_prio_id meg_incids.prio$id$c%TYPE, pc_stat_id meg_incids.stat$id$c%TYPE, pc_fact_id meg_incids.fact$id$c%TYPE, pv_cre_por meg_incids.incid$cre$por$v%TYPE ) RETURN NUMBER IS ln_num_reg NdUMBER := 0; BEGIN INSERT INTO meg_incids ( incid$id$c, incid$cod$v, incid$tp$c, incid$fec$d, incid$desc$v, incid$det$v, cli$id$c, emp$id$c, prio$id$c, stat$id$c, fact$id$c, incid$cre$por$v,incid$fec$cre$d, incid$est$c ) VALUES ( pc_id, pv_code, pc_tipo, pd_fec, pv_desc, pv_det, pc_cli_id, pc_emp_id, pc_prio_id, pc_stat_id, pc_fact_id, pv_cre_por, SYSDATE, '0' ); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_incid_insert;

FUNCIÓN MEG_FNC_CLIS_INSERT

FUNCTION meg_fnc_clis_insert ( pc_id meg_clis.cli$id$c%TYPE, pv_cod meg_clis.cli$cod$v%TYPE, pc_tip_cli meg_clis.cli$tip$cli$c%TYPE, pc_tip_ide meg_clis.cli$tip$ide$c%TYPE, pv_num_ide meg_clis.cli$num$ide$v%TYPE, pv_nom meg_clis.cli$nom$v%TYPE, pv_contac meg_clis.cli$contac$v%TYPE, pv_dir meg_clis.cli$dir$v%TYPE, pv_tel meg_clis.cli$tel$v%TYPE, pv_fax meg_clis.cli$fax$v%TYPE, pc_est_civ meg_clis.cli$est$civ$c%TYPE, pv_mail meg_clis.cli$mail$v%TYPE, pc_pass meg_clis.cli$pass$c%TYPE, pd_desd meg_clis.cli$desd$d%TYPE, pc_sexo meg_clis.cli$sexo$c%TYPE, pc_prof_id meg_clis.prof$id$c%TYPE,

Page 58: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

58

pc_act_com_id meg_clis.act_com$id$c%TYPE, pc_zon_id meg_clis.zon$id$c%TYPE, pc_emp_id meg_clis.emp$id$c%TYPE, pd_fec_nac meg_clis.cli$fec$nac$d%TYPE, pv_pag_web meg_clis.cli$pag$web$v%TYPE, pc_rec_mail meg_clis.cli$rec$mail$v%TYPE, pv_usr meg_clis.cli$cre$por$v%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_clis ( cli$id$c, cli$cod$v, cli$tip$cli$c, cli$tip$ide$c, cli$num$ide$v,cli$nom$v, cli$contac$v, cli$dir$v, cli$tel$v, cli$fax$v, cli$est$civ$c, cli$mail$v, cli$pass$c, cli$desd$d, cli$sexo$c, prof$id$c, act_com$id$c, zon$id$c, emp$id$c, cli$fec$nac$d, cli$pag$web$v, cli$rec$mail$v, cli$est$c, cli$cre$por$v, cli$fec$cre$d ) VALUES ( pc_id, pv_cod, pc_tip_cli, pc_tip_ide, pv_num_ide, pv_nom, pv_contac, pv_dir, pv_tel, pv_fax, pc_est_civ, pv_mail, pc_pass, pd_desd, pc_sexo, pc_prof_id, pc_act_com_id, pc_zon_id, pc_emp_id, pd_fec_nac, pv_pag_web, pc_rec_mail, '0', pv_usr, SYSDATE); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_clis_insert;

FUNCIÓN MEG_FNC_PRODS_INSERT

FUNCTION meg_fnc_prods_insert( pc_id in meg_prods.prod$id$c%TYPE, pv_cod in meg_prods.prod$cod$c%TYPE, pv_nom in meg_prods.prod$nom$v%TYPE, pd_ult_ingreso in meg_prods.prod$ult$ing$d%TYPE, pn_cant_bodega in meg_prods.prod$cant$bod$n%TYPE, pn_precio1 in meg_prods.prod$prec$1$n%TYPE, pn_precio2 in meg_prods.prod$prec$2$n%TYPE, pn_precio3 in meg_prods.prod$prec$3$n%TYPE, pn_precio4 in meg_prods.prod$prec$4$n%TYPE, pn_precio5 in meg_prods.prod$prec$5$n%TYPE, pv_tipo_prod in meg_prods.prod$tip$prod$c%TYPE, pc_est in meg_prods.prod$est$c%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_prods ( prod$id$c, prod$cod$c, prod$nom$v, prod$ult$ing$d, prod$cant$bod$n, prod$prec$1$n, prod$prec$2$n, prod$prec$3$n, prod$prec$4$n, prod$prec$5$n, prod$tip$prod$c, prod$est$c ) VALUES ( pc_id, pv_cod, pv_nom, pd_ult_ingreso, pn_cant_bodega, pn_precio1, pn_precio2, pn_precio3,

Page 59: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

59

pn_precio4, pn_precio5, pv_tipo_prod, pc_est); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_prods_insert;

FUNCIÓN MEG_FNC_COTZS_INSERT_CAB

FUNCTION meg_fnc_ctzs_insert_cab( pc_id in meg_cotzs.cotz$id$c%TYPE, pc_num in meg_cotzs.cotz$num$c%TYPE, pd_fec in meg_cotzs.cotz$fec$d%TYPE, pv_det in meg_cotzs.cotz$nota$v%TYPE, pc_cli_id in meg_cotzs.cli$id$c%TYPE, pc_emp_id in meg_cotzs.emp$id$c%TYPE, pn_subt in meg_cotzs.cotz$subt$n%TYPE, pn_porc_desc in meg_cotzs.cotz$porc$desc$n%TYPE, pn_val_desc in meg_cotzs.cotz$val$desc$n%TYPE, pn_porc_iva in meg_cotzs.cotz$porc$imp$n%TYPE, pn_val_iva in meg_cotzs.cotz$val$imp$n%TYPE, pn_val_tot in meg_cotzs.cotz$tot$n%TYPE, pd_valid in meg_cotzs.cotz$valz$d%TYPE, pc_est_ctz in meg_cotzs.est$id$c%TYPE, pc_est in meg_cotzs.cotz$est$c%TYPE, pv_cre_por in meg_cotzs.cotz$cre$por$v%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_cotzs ( cotz$id$c, cotz$num$c, cotz$fec$d, cotz$nota$v, cli$id$c, emp$id$c, cotz$subt$n, cotz$porc$desc$n, cotz$val$desc$n, cotz$porc$imp$n, cotz$val$imp$n, cotz$tot$n, cotz$valz$d, est$id$c, cotz$est$c, cotz$cre$por$v, cotz$cre$d ) VALUES ( pc_id, pc_num, pd_fec, pv_det, pc_cli_id, pc_emp_id, pn_subt, pn_porc_desc, pn_val_desc, pn_porc_iva, pn_val_iva, pn_val_tot, pd_valid, pc_est_ctz, pc_est, pv_cre_por, SYSDATE ); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_ctzs_insert_cab;

FUNCIÓN MEG_FNC_COTZS_INSERT_DET

FUNCTION meg_fnc_ctzs_insert_det(pc_ctz_id in meg_dets_cotzs.cotz$id$c%TYPE, pc_prd_id in meg_dets_cotzs.prod$id$c%TYPE, pn_cant in meg_dets_cotzs.det_cotz$cant$n%TYPE, pn_prec in meg_dets_cotzs.det_cotz$prec$n%TYPE, pn_subt in meg_dets_cotzs.det_cotz$subt$n%TYPE, pn_porc_desc in meg_dets_cotzs.det_cotz$porc$desc$n%TYPE, pn_val_desc in meg_dets_cotzs.det_cotz$val$desc$n%TYPE, pn_porc_iva in meg_dets_cotzs.det_cotz$porc$imp$n%TYPE, pn_val_iva in meg_dets_cotzs.det_cotz$val$imp$n%TYPE, pn_tot in meg_dets_cotzs.det_cotz$tot$n%TYPE )

Page 60: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

60

RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_dets_cotzs ( cotz$id$c, prod$id$c, det_cotz$cant$n, det_cotz$prec$n, det_cotz$subt$n, det_cotz$porc$desc$n,det_cotz$val$desc$n, det_cotz$porc$imp$n, det_cotz$val$imp$n, det_cotz$tot$n ) VALUES ( pc_ctz_id, pc_prd_id, pn_cant, pn_prec, pn_subt, pn_porc_desc, pn_val_desc, pn_porc_iva, pn_val_iva, pn_tot ); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_ctzs_insert_det;

FUNCIÓN MEG_FNC_VENTS_INSERT_CAB

FUNCTION meg_fnc_vnts_insert_cab( pc_id in meg_vents.vent$id$c%TYPE, pc_num in meg_vents.vent$num$c%TYPE, pd_fec in meg_vents.vent$fec$d%TYPE, pv_det in meg_vents.vent$nota$v%TYPE, pc_cli_id in meg_vents.cli$id$c%TYPE, pc_emp_id in meg_vents.emp$id$c%TYPE, pn_subt in meg_vents.vent$subt$n%TYPE, pn_porc_desc in meg_vents.vent$porc$desc$n%TYPE, pn_val_desc in meg_vents.vent$val$desc$n%TYPE, pn_porc_iva in meg_vents.vent$porc$imp$n%TYPE, pn_val_iva in meg_vents.vent$val$imp$n%TYPE, pn_val_tot in meg_vents.vent$tot$n%TYPE, pc_est in meg_vents.vent$est$c%TYPE, pv_cre_por in meg_vents.vent$cre$por$v%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_vents ( vent$id$c, vent$num$c, vent$fec$d, vent$nota$v, cli$id$c, emp$id$c, vent$subt$n, vent$porc$desc$n, vent$val$desc$n, vent$porc$imp$n, vent$val$imp$n, vent$tot$n, vent$est$c, vent$cre$por$v, vent$cre$d ) VALUES ( pc_id, pc_num, pd_fec, pv_det, pc_cli_id, pc_emp_id, pn_subt, pn_porc_desc, pn_val_desc, pn_porc_iva, pn_val_iva, pn_val_tot, pc_est, pv_cre_por, SYSDATE ); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_vnts_insert_cab;

FUNCIÓN MEG_FNC_DETS_VENTS_INSERT_DET

FUNCTION meg_fnc_vnts_insert_det(pc_vnt_id in meg_dets_vents.vent$id$c%TYPE, pc_prd_id in meg_dets_vents.prod$id$c%TYPE,

Page 61: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

61

pn_cant in meg_dets_vents.det_vent$cant$n%TYPE, pn_prec in meg_dets_vents.det_vent$prec$n%TYPE, pn_subt in meg_dets_vents.det_vent$subt$n%TYPE, pn_porc_desc in meg_dets_vents.det_vent$porc$desc$n%TYPE, pn_val_desc in meg_dets_vents.det_vent$val$desc$n%TYPE, pn_porc_iva in meg_dets_vents.det_vent$porc$imp$n%TYPE, pn_val_iva in meg_dets_vents.det_vent$val$imp$n%TYPE, pn_tot in meg_dets_vents.det_vent$tot$n%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN INSERT INTO meg_dets_vents ( vent$id$c, prod$id$c, det_vent$cant$n, det_vent$prec$n, det_vent$subt$n, det_vent$porc$desc$n, det_vent$val$desc$n, det_vent$porc$imp$n, det_vent$val$imp$n, det_vent$tot$n ) VALUES ( pc_vnt_id, pc_prd_id, pn_cant, pn_prec, pn_subt, pn_porc_desc, pn_val_desc, pn_porc_iva, pn_val_iva, pn_tot ); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_vnts_insert_det;

FUNCIÓN MEG_FNC_BIT_INCID_INSERT

FUNCTION meg_fnc_bit_incid_insert ( pc_id meg_incids_bits.incid$id$c%TYPE, pc_hora meg_incids_bits.bita$hora$c%TYPE, pv_nota meg_incids_bits.bita$nota$v%TYPE, pv_usr meg_incids_bits.bita$cre$por$v%TYPE, pc_stat meg_incids_bits.stat$id$c%TYPE ) RETURN NUMBER IS ln_num_reg NUMBER := 0; BEGIN insert into meg_incids_bits (incid$id$c, bita$fec$d, bita$hora$c, bita$nota$v, bita$cre$por$v, bita$fec$cre$d, stat$id$c, bita$est$c) values (pc_id, SYSDATE, pc_hora, pv_nota, pv_usr, SYSDATE, pc_stat, '0'); ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg); END meg_fnc_bit_incid_insert;

1.8.3. MEG_PCKG_SELECT

Este paquete contendrá las funciones y procedimientos que permitirán

la consulta de los registros de las tablas.

Page 62: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

62

A continuación se detallan las funciones del paquete

MEG_PCKG_SELECT:

PROCEDIMIENTO ALMACENADO

DESCRIPCION

meg_prc_login Consulta si existe el usuario y qué rol tiene para poder accesar al sistema. Se utilizan los campos emp$id$c, emp$cod$v, emp$clave$v y emp$nomb$v de la tabla meg_emps; y rol$id$c de la tabla meg_rols.

meg_fnc_permisos_select Consulta los permisos a los que tiene acceso el usuario.

meg_fnc_select_zonas Consulta los registros de la tabla meg_zons.

meg_fnc_zonas_combo Consulta los campos zon$id$c y zon$nom$v de la tabla meg_zons

meg_fnc_zonas_tree Consulta los campos zon$cod$v y zon$nom$v de la tabla meg_zons

meg_fnc_select_code_zona Consulta el campo zon$cod$v de la tabla meg_zons.

meg_fnc_select_rol Consulta los campos rol$cod$v, rol$nom$v, rol$est$c de la tabla meg_rols.

meg_fnc_roles_combo Consulta los campos rol$id$c, rol$nom$v de la tabla meg_rols.

meg_fnc_roles_perms_tree Consulta los campos rec$cod$v, rec$nom$v registros de la tabla meg_recs.

meg_fnc_seek_perms Consulta el campo rol$id$c de la tabla meg_rols_recs

meg_fnc_roles_tree Consulta los campos rol$cod$v y rol$nom$v de la tabla meg_rols

meg_fnc_select_depts Consulta los registros de la tabla meg_depts.

meg_fnc_depts_combo Consulta los campos dept$id$c y dept$nom$v de la tabla meg_depts

meg_fnc_depts_tree Consulta los campos dept$cod$v y dept$nom$v de la tabla meg_depts.

Page 63: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

63

meg_fnc_select_code_dept Consulta el campo dept$cod$v de la tabla meg_depts.

meg_fnc_select_pars Consulta los registros de la tabla meg_pars.

meg_fnc_pars_combo Consulta los campos par$id$c, par$nom$v de la tabla megpars.

meg_fnc_pars_tree Consulta los campos par$cod$v, par$nom$v de la tabla meg_pars.

meg_fnc_select_code_par Consulta el campo par$cod$v de la tabla meg_pars.

meg_fnc_select_clis Consulta los registros de la tabla meg_clis.

meg_fnc_clis_combo Consulta los campos cli$id$c y cli$nom$v de la tabla meg_clis.

meg_fnc_clis_tree Consulta los campos cli$cod$v y cli$nom$v de la tabla meg_clis.

meg_fnc_select_profs Consulta los registros de la tabla meg_profs.

meg_fnc_profs_combo Consulta los campos prof$id$c, prof$nom$v de la tabla meg_profs.

meg_fnc_profs_tree Consulta los campos prof$cod$v y prof$nom$v de la tabla meg_profs.

meg_fnc_select_sucs Consulta los registros de la tabla meg_sucs.

meg_fnc_sucs_tree Consulta los campos suc$cod$v y suc$nom$v de la tabla meg_sucs.

meg_fnc_select_code_suc Consulta el campo suc$cod$v de la tabla meg_sucs.

meg_fnc_par_info_tree Consulta los campos par$nom$v, par$id$c de la tabla meg_pars, carga árbol en la ventana Mantenimiento de Parametros

meg_fnc_seek_grid_clis Muestra los clientes según el criterio de búsqueda seleccionado: cli$cod$v (código), cli$num$doc$v (cédula, pasaporte o RUC) o cli$nomb$v (nombre).

meg_fnc_seek_grid_emps Muestra los empleados según el criterio de búsqueda seleccionado: emp$cod$v (código), emp$num$doc$v (cédula, pasaporte o RUC) o emp$nomb$v (nombre).

Page 64: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

64

meg_fnc_grids_emps_rols Muestra a los empleados y los roles a los que tienen acceso.

meg_fnc_seek_grid_prods Muestra los productos según el criterio de búsqueda seleccionado: prod$cod$v (código), prod$nom$v (nombre), prod$stock$n (stock), prod$prec$1$n (precio), iva$calc$b (Paga_Iva).

meg_fnc_act_com_combo Consulta los campos act_com$id$c, act_com$nom$v de la tabla meg_act_com.

meg_fnc_tareas_prior_combo Consulta los campos par$id$c, par$nom$v de la tabla meg_pars.

meg_fnc_select_emps Consulta los registros de la tabla meg_emps.

meg_fnc_seek_grid_cotzc Muestra las cotizaciones según el criterio de búsqueda seleccionado: cotz$num$c (Número_Documento), cotz$fec$d (Fecha_creación), cli$nom$v (Nombre_Cliente), cotz$nota$v (Detalle_Cotizacion).

meg_fnc_select_tareas Consulta los registros de la tabla meg_tars.

meg_fnc_seek_grid_tars Muestra los empleados según el criterio de búsqueda seleccionado: tar$cod$v (código), tar$asun$v(asunto), emp$id$c (Id_Empleado), emp$nomb$v (Nombre_Empleado).

meg_fnc_select_incids Consulta los registros de la tabla meg_incids.

meg_fnc_incids_combo Consulta los campos incid$id$c, incid$desc$v.

meg_fnc_select_code_incid Consulta el campo incid$cod$v de la tabla meg_incids.

meg_fnc_incid_prior_combo Consulta los campos par$id$c, par$nom$v de la tabla meg_pars.

meg_fnc_select_ctzs_cab Consulta los registros de la tabla meg_cotzs.

meg_fnc_select_ctzs_det Consulta los registros de la tabla meg_dets_cotzs.

meg_prc_login_cli_web Consulta si existe el cliente para poder accesar al sistema desde el

Page 65: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

65

Sitio Web. Se utilizan los campos cli$id$c, cli$nom$v, cli$pass$c de la tabla meg_clis y rol$id$c de la tabla meg_rols.

PROCEDIMIENTO MEG_PRC_LOGIN PROCEDURE meg_prc_login ( pv_user IN meg_emps.emp$cod$v%TYPE, pc_id_user OUT meg_emps.emp$id$c%TYPE, pv_cod_user OUT meg_emps.emp$cod$v%TYPE, pv_pass_user OUT meg_emps.emp$clave$v%TYPE, pv_nom_user OUT meg_emps.emp$nomb$v%TYPE, pc_rol_id OUT meg_emps.rol$id$c%TYPE, pc_op_chat OUT meg_emps.emp$chat$c%TYPE ) IS BEGIN BEGIN SELECT emp$id$c, emp$cod$v, emp$clave$v, emp$nomb$v, rol$id$c, emp$chat$c INTO pc_id_user, pv_cod_user, pv_pass_user, pv_nom_user, pc_rol_id, pc_op_chat FROM meg_emps WHERE UPPER(emp$cod$v) = UPPER(pv_user); EXCEPTION WHEN NO_DATA_FOUND THEN pv_cod_user := NULL; WHEN OTHERS THEN pv_cod_user := NULL; END; END meg_prc_login;

FUNCIÓN MEG_FNC_PERMISOS_SELECT

FUNCTION meg_fnc_permisos_select ( pc_rol_id IN meg_rols.rol$id$c%TYPE ) RETURN VARCHAR2 IS lv_permisos VARCHAR2(4000); ln_tot_regs NUMBER := 0; CURSOR cursor_perm (pc_rol meg_rols.rol$id$c%TYPE ) IS SELECT recs.rec$cod$v FROM meg_recs recs, meg_rols_recs perms, meg_rols rols WHERE recs.rec$id$c = perms.rec$id$c AND perms.rol$id$c = rols.rol$id$c AND rols.rol$id$c = pc_rol AND rols.rol$est$c = '0' ORDER BY recs.rec$cod$v; BEGIN lv_permisos := '['; BEGIN FOR perm_record IN cursor_perm(pc_rol_id) LOOP lv_permisos := TRIM(lv_permisos) || '"' || TRIM(perm_record.rec$cod$v) || '",'; ln_tot_regs := ln_tot_regs + 1; END LOOP; IF ln_tot_regs > 0 THEN lv_permisos := SUBSTR(TRIM(lv_permisos), 0,(

Page 66: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

66

LENGTH(TRIM(lv_permisos)) - 1) ); END IF; lv_permisos := lv_permisos || ']'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_permisos := '[]'; WHEN OTHERS THEN lv_permisos := '[]'; END; RETURN lv_permisos; END meg_fnc_permisos_select;

FUNCIÓN MEG_FNC_SELECT_ZONAS FUNCTION meg_fnc_select_zonas( pc_id_zona IN meg_zons.zon$id$c%TYPE, pv_code_zona OUT meg_zons.zon$cod$v%TYPE, pv_name_zona OUT meg_zons.zon$nom$v%TYPE, pc_est_zona OUT meg_zons.zon$est$c%TYPE, pc_padre_id OUT meg_zons.zon$id$c%TYPE, pv_padre_zona OUT meg_zons.zon$nom$v%TYPE ) RETURN NUMBER IS ln_respuesta NUMBER; BEGIN ln_respuesta := 0; BEGIN SELECT zons.zon$cod$v, zons.zon$nom$v, zons.zon$est$c, CASE WHEN zons.pad$id$c IS NULL THEN ' ' ELSE zons.pad$id$c END, CASE WHEN pad.zon$id$c IS NULL THEN ' ' ELSE pad.zon$nom$v END, 1 INTO pv_code_zona, pv_name_zona, pc_est_zona, pc_padre_id, pv_padre_zona, ln_respuesta FROM meg_zons zons, meg_zons pad WHERE zons.pad$id$c = pad.zon$id$c(+) AND zons.zon$id$c = pc_id_zona; EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_zonas;

FUNCIÓN MEG_FNC_ZONAS_COMBO FUNCTION meg_fnc_zonas_combo RETURN VARCHAR2 IS lv_cmb_zonas VARCHAR2(10000); ln_zonas_regs NUMBER(3) := 0; CURSOR cursor_zona IS SELECT zon$id$c, zon$nom$v FROM meg_zons WHERE pad$id$c IS NULL AND zon$est$c = '0'

Page 67: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

67

ORDER BY zon$nom$v; BEGIN lv_cmb_zonas := '{"data" : ['; BEGIN FOR zona_record IN cursor_zona LOOP lv_cmb_zonas := lv_cmb_zonas || '{"ZonaID": "' || zona_record.zon$id$c || '", "ZonaName": "' || zona_record.zon$nom$v || '"},'; ln_zonas_regs := ln_zonas_regs + 1; END LOOP; IF ln_zonas_regs > 0 THEN lv_cmb_zonas := SUBSTR(lv_cmb_zonas, 0,( LENGTH(lv_cmb_zonas) - 1) ); END IF; lv_cmb_zonas := lv_cmb_zonas || ']}'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_cmb_zonas := '{"data" : []}'; WHEN OTHERS THEN lv_cmb_zonas := '{"data" : []}'; END; RETURN RTRIM(LTRIM(lv_cmb_zonas)); END meg_fnc_zonas_combo;

FUNCIÓN MEG_FNC_ZONAS_TREE FUNCTION meg_fnc_zonas_tree RETURN VARCHAR2 IS lv_tree_zonas VARCHAR2(10000); ln_zonas_nodo NUMBER(3) := 0; ln_level_ant NUMBER(3) := 0; ln_num_childs NUMBER(3) := 0; CURSOR cursor_zona IS SELECT 1, level, CONCAT( CONCAT( zons.zon$cod$v, ' - '), zons.zon$nom$v ) AS Elementos, zons.zon$id$c AS id FROM meg_zons zons -- WHERE zons.zon$est$c = '0' START WITH zons.pad$id$c IS NULL CONNECT BY zons.pad$id$c = PRIOR zons.zon$id$c; BEGIN lv_tree_zonas := '[{'; BEGIN FOR zona_record IN cursor_zona LOOP IF ln_level_ant > 0 THEN IF zona_record.level <= ln_level_ant THEN IF ln_zonas_nodo > 0 THEN ln_num_childs := ( ln_level_ant - zona_record.level ); WHILE ln_num_childs > 0 LOOP lv_tree_zonas := TRIM(lv_tree_zonas) || '}]'; ln_num_childs := ln_num_childs - 1; ln_zonas_nodo := ln_zonas_nodo - 1; END LOOP; END IF; lv_tree_zonas := TRIM(lv_tree_zonas) || '},{'; ELSE

Page 68: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

68

lv_tree_zonas := TRIM(lv_tree_zonas) || ',"children":[{'; ln_zonas_nodo := ln_zonas_nodo + 1; END IF; END IF; lv_tree_zonas := TRIM(lv_tree_zonas) || '"id":"' || RTRIM(LTRIM(zona_record.id)) || '","text":"' || RTRIM(LTRIM(zona_record.elementos)) || '","leaf": false'; ln_level_ant := zona_record.level; END LOOP; WHILE ln_zonas_nodo > 0 LOOP lv_tree_zonas := TRIM(lv_tree_zonas) || '}]'; ln_zonas_nodo := ln_zonas_nodo -1; END LOOP; lv_tree_zonas := TRIM(lv_tree_zonas) || '}]'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_tree_zonas := '[{}]'; WHEN OTHERS THEN lv_tree_zonas := '[{}]'; END; RETURN RTRIM(LTRIM(lv_tree_zonas)); END meg_fnc_zonas_tree;

FUNCIÓN MEG_FNC_SELECT_CODE_ZONA

FUNCTION meg_fnc_select_code_zona( pv_code_zona IN meg_zons.zon$cod$v%TYPE ) RETURN NUMBER IS ln_respuesta NUMBER; lv_code_zona meg_zons.zon$cod$v%TYPE; BEGIN ln_respuesta := 0; lv_code_zona := null; BEGIN SELECT zon$cod$v INTO lv_code_zona FROM meg_zons WHERE UPPER(RTRIM(zon$cod$v)) = UPPER(RTRIM(pv_code_zona)); IF lv_code_zona IS NOT NULL THEN ln_respuesta := 1; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_code_zona;

Page 69: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

69

FUNCIÓN MEG_FNC_SELECT_ROL

FUNCTION meg_fnc_select_rol( pc_id_rol IN meg_rols.rol$id$c%TYPE, pv_code_rol OUT meg_rols.rol$cod$v%TYPE, pv_name_rol OUT meg_rols.rol$nom$v%TYPE, pc_est_rol OUT meg_rols.rol$est$c%TYPE, pv_emps_id OUT VARCHAR2, pv_recs_id OUT VARCHAR2 ) RETURN NUMBER IS ln_respuesta NUMBER; CURSOR cursor_emps ( pl_rol_id meg_rols.rol$id$c%TYPE ) IS SELECT emp$id$c FROM meg_emps WHERE rol$id$c = pc_id_rol; CURSOR cursor_recs ( pl_rol_id meg_rols.rol$id$c%TYPE ) IS SELECT rec$id$c FROM meg_rols_recs WHERE rol$id$c = pc_id_rol; BEGIN ln_respuesta := 0; BEGIN pv_emps_id := ''; pv_recs_id := ''; SELECT rol$cod$v, rol$nom$v, rol$est$c, 1 INTO pv_code_rol, pv_name_rol, pc_est_rol, ln_respuesta FROM meg_rols rols WHERE rols.rol$id$c = pc_id_rol; FOR reg_aux_id IN cursor_emps(pc_id_rol) LOOP pv_emps_id := pv_emps_id || ';' || TRIM(reg_aux_id.emp$id$c); END LOOP; IF LENGTH(TRIM(pv_emps_id)) > 0 THEN pv_emps_id := SUBSTR( pv_emps_id, 2, ( LENGTH(pv_emps_id) - 1) ); END IF; FOR reg_aux_id IN cursor_recs(pc_id_rol) LOOP pv_recs_id := pv_recs_id || ';' || TRIM(reg_aux_id.rec$id$c); END LOOP; IF LENGTH(TRIM(pv_recs_id)) > 0 THEN pv_recs_id := SUBSTR( pv_recs_id, 2, ( LENGTH(pv_recs_id) - 1) ); END IF; EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END;

Page 70: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

70

RETURN ln_respuesta; END meg_fnc_select_rol;

FUNCIÓN MEG_FNC_ROLES_COMBO

FUNCTION meg_fnc_roles_combo RETURN VARCHAR2 IS lv_cmb_roles VARCHAR2(10000); ln_roles_regs NUMBER(3) := 0; CURSOR cursor_rol IS SELECT rol$id$c, rol$nom$v FROM meg_rols ORDER BY rol$nom$v; begin lv_cmb_roles := '{"data" : ['; BEGIN FOR rol_record IN cursor_rol LOOP lv_cmb_roles := lv_cmb_roles || '{"RolID": "' || rol_record.rol$id$c || '", "RolName": "' || rol_record.rol$nom$v || '"},'; ln_roles_regs := ln_roles_regs + 1; END LOOP; IF ln_roles_regs > 0 THEN lv_cmb_roles := SUBSTR(lv_cmb_roles,0,( LENGTH(lv_cmb_roles) - 1) ); END IF; lv_cmb_roles := lv_cmb_roles || ']}'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_cmb_roles := '{"data" : []}'; WHEN OTHERS THEN lv_cmb_roles := '{"data" : []}'; END; RETURN RTRIM(LTRIM(lv_cmb_roles)); END;

FUNCIÓN MEG_FNC_ROLES_PERMS_TREE

FUNCTION meg_fnc_roles_perms_tree( pc_rol_id meg_rols.rol$id$c%TYPE ) RETURN VARCHAR2 IS lv_tree_roles VARCHAR2(20000); ln_nodo_roles NUMBER(3) := 0; ln_level_ant NUMBER(3) := 0; ln_num_childs NUMBER(3) := 0; lb_exite_perm BOOLEAN := false; CURSOR cursor_rol IS SELECT 1, level, CONCAT( CONCAT( recs.rec$cod$v, ' - '), recs.rec$nom$v ) AS Elementos, recs.rec$id$c AS id FROM meg_recs recs START WITH recs.rec$id$c = '0000000001' CONNECT BY recs.rec$id$rec$id$c = PRIOR recs.rec$id$c; BEGIN lv_tree_roles := '[{';

Page 71: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

71

BEGIN FOR rol_record IN cursor_rol LOOP IF ln_level_ant > 0 THEN IF rol_record.level <= ln_level_ant THEN IF ln_nodo_roles > 0 THEN ln_num_childs := ( ln_level_ant - rol_record.level ); WHILE ln_num_childs > 0 LOOP lv_tree_roles := TRIM(lv_tree_roles) || '}]'; ln_num_childs := ln_num_childs - 1; ln_nodo_roles := ln_nodo_roles -1; END LOOP; END IF; lv_tree_roles := TRIM(lv_tree_roles) || '},{'; ELSE lv_tree_roles := TRIM(lv_tree_roles) || ',"children":[{'; ln_nodo_roles := ln_nodo_roles + 1; END IF; END IF; IF LENGTH(TRIM(pc_rol_id)) > 0 OR pc_rol_id IS NOT NULL THEN lb_exite_perm := meg_pckg_select.meg_fnc_seek_perms( rol_record.id, pc_rol_id ); ELSE lb_exite_perm := false; END IF; lv_tree_roles := TRIM(lv_tree_roles) || '"id":"' || RTRIM(LTRIM(rol_record.id)) || '","text": "' || RTRIM(LTRIM(rol_record.elementos)) || '","leaf": false,"checked":' || CASE WHEN lb_exite_perm THEN 'true' ELSE 'false' END; ln_level_ant := rol_record.level; END LOOP; WHILE ln_nodo_roles > 0 LOOP lv_tree_roles := TRIM(lv_tree_roles) || '}]'; ln_nodo_roles := ln_nodo_roles - 1; END LOOP; lv_tree_roles := TRIM(lv_tree_roles) || '}]'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_tree_roles := '[{}]'; WHEN OTHERS THEN lv_tree_roles := '[{}]'; END; RETURN RTRIM(LTRIM(lv_tree_roles)); END meg_fnc_roles_perms_tree;

FUNCIÓN MEG_FNC_SEEK_PERMS

FUNCTION meg_fnc_seek_perms( pc_perm_id meg_recs.rec$id$c%TYPE, pc_rol_id meg_rols.rol$id$c%TYPE ) RETURN BOOLEAN IS lb_seek_perm BOOLEAN := FALSE;

Page 72: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

72

lc_perm_id meg_recs.rec$id$c%TYPE := NULL; BEGIN BEGIN SELECT rol$id$c INTO lc_perm_id FROM meg_rols_recs WHERE rol$id$c = pc_rol_id AND rec$id$c = pc_perm_id; IF SQL%ROWCOUNT = 1 THEN lb_seek_perm := TRUE; ELSE lb_seek_perm := FALSE; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN lb_seek_perm := FALSE; WHEN OTHERS THEN lb_seek_perm := FALSE; END; RETURN lb_seek_perm; END meg_fnc_seek_perms;

FUNCIÓN MEG_FNC_ROLES_TREE FUNCTION meg_fnc_roles_tree RETURN VARCHAR2 IS lv_tree_roles VARCHAR2(20000); ln_num_regs NUMBER := 0; CURSOR cursor_rol IS SELECT CONCAT(CONCAT( TRIM(rol$cod$v), ' - '), TRIM(rol$nom$v)) AS deta, rol$id$c AS id FROM meg_rols; BEGIN lv_tree_roles := '['; BEGIN FOR rol_record IN cursor_rol LOOP lv_tree_roles := TRIM(lv_tree_roles) || '{"id":"' || RTRIM(LTRIM(rol_record.id)) || '","text":"' || RTRIM(LTRIM(rol_record.deta)) || '","leaf":false},'; ln_num_regs := ln_num_regs + 1; END LOOP; IF ln_num_regs > 0 THEN lv_tree_roles := SUBSTR(lv_tree_roles, 0, ( LENGTH(lv_tree_roles) - 1) ); lv_tree_roles := TRIM(lv_tree_roles) || ']'; ELSE lv_tree_roles := '[{}]'; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN lv_tree_roles := '[{}]'; WHEN OTHERS THEN lv_tree_roles := '[{}]'; END; RETURN RTRIM(LTRIM(lv_tree_roles)); END meg_fnc_roles_tree;

Page 73: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

73

FUNCIÓN MEG_FNC_SELECT_DEPTS

FUNCTION meg_fnc_select_depts( pc_id_dept IN meg_depts.dept$id$c%TYPE, pv_code_dept OUT meg_depts.dept$cod$v%TYPE, pv_name_dept OUT meg_depts.dept$nom$v%TYPE, pc_est_dept OUT meg_depts.dept$est$c%TYPE, pc_padre_id OUT meg_depts.dept$id$c%TYPE, pv_padre_dept OUT meg_depts.dept$nom$v%TYPE ) RETURN NUMBER IS ln_respuesta NUMBER; BEGIN ln_respuesta := 0; BEGIN SELECT depts.dept$cod$v, depts.dept$nom$v, depts.dept$est$c, CASE WHEN depts.pad$id$c IS NULL THEN '' ELSE depts.pad$id$c END, CASE WHEN pad.dept$id$c IS NULL THEN '' ELSE pad.dept$nom$v END, 1 INTO pv_code_dept, pv_name_dept, pc_est_dept, pc_padre_id, pv_padre_dept, ln_respuesta FROM meg_depts depts, meg_depts pad WHERE depts.pad$id$c = pad.dept$id$c(+) AND depts.dept$id$c = pc_id_dept; EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_depts;

FUNCIÓN MEG_FNC_DEPTS_COMBO

FUNCTION meg_fnc_depts_combo RETURN VARCHAR2 IS lv_cmb_depts VARCHAR2(10000); ln_depts_regs NUMBER(3) := 0; CURSOR cursor_dept IS SELECT dept$id$c, dept$nom$v FROM meg_depts WHERE pad$id$c IS NULL AND dept$est$c = '0' ORDER BY dept$nom$v; BEGIN lv_cmb_depts := '{"data":['; BEGIN FOR dept_record IN cursor_dept LOOP lv_cmb_depts := lv_cmb_depts || '{"DeptID":"' || dept_record.dept$id$c || '","DeptName":"' || dept_record.dept$nom$v || '"},'; ln_depts_regs := ln_depts_regs + 1; END LOOP; IF ln_depts_regs > 0 THEN lv_cmb_depts := SUBSTR(lv_cmb_depts,0,( LENGTH(lv_cmb_depts) - 1) );

Page 74: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

74

END IF; lv_cmb_depts := lv_cmb_depts || ']}'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_cmb_depts := '{"data":[]}'; WHEN OTHERS THEN lv_cmb_depts := '{"data":[]}'; END; RETURN RTRIM(LTRIM(lv_cmb_depts)); END meg_fnc_depts_combo;

FUNCIÓN MEG_FNC_DEPTS_TREE

FUNCTION meg_fnc_depts_tree RETURN VARCHAR2 IS lv_tree_depts VARCHAR2(10000); ln_depts_nodo NUMBER(3) := 0; ln_level_ant NUMBER(3) := 0; ln_num_childs NUMBER(3) := 0; CURSOR cursor_dept IS SELECT 1, level, CONCAT( CONCAT( depts.dept$cod$v, ' - '), depts.dept$nom$v ) AS Elementos, depts.dept$id$c AS id FROM meg_depts depts START WITH depts.pad$id$c IS NULL CONNECT BY depts.pad$id$c = PRIOR depts.dept$id$c; BEGIN lv_tree_depts := '[{'; BEGIN FOR dept_record IN cursor_dept LOOP IF ln_level_ant > 0 THEN IF dept_record.level <= ln_level_ant THEN IF ln_depts_nodo > 0 THEN ln_num_childs := ( ln_level_ant - dept_record.level ); WHILE ln_num_childs > 0 LOOP lv_tree_depts := TRIM(lv_tree_depts) || '}]'; ln_num_childs := ln_num_childs - 1; ln_depts_nodo := ln_depts_nodo - 1; END LOOP; END IF; lv_tree_depts := TRIM(lv_tree_depts) || '},{'; ELSE lv_tree_depts := TRIM(lv_tree_depts) || ', "children":[{'; ln_depts_nodo := ln_depts_nodo + 1; END IF; END IF; lv_tree_depts := TRIM(lv_tree_depts) || '"id":"' || RTRIM(LTRIM(dept_record.id)) || '","text":"' || RTRIM(LTRIM(dept_record.elementos)) || '","leaf":false'; ln_level_ant := dept_record.level; END LOOP; WHILE ln_depts_nodo > 0 LOOP lv_tree_depts := TRIM(lv_tree_depts) || '}]'; ln_depts_nodo := ln_depts_nodo -1;

Page 75: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

75

END LOOP; lv_tree_depts := TRIM(lv_tree_depts) || '}]'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_tree_depts := '[{}]'; WHEN OTHERS THEN lv_tree_depts := '[{}]'; END; RETURN RTRIM(LTRIM(lv_tree_depts)); END meg_fnc_depts_tree;

FUNCIÓN MEG_FNC_SELECT_CODE_DEPT

FUNCTION meg_fnc_select_code_dept( pv_code_dept IN meg_depts.dept$cod$v%TYPE ) RETURN NUMBER IS ln_respuesta NUMBER; lv_code_dept meg_depts.dept$cod$v%TYPE; BEGIN ln_respuesta := 0; lv_code_dept := null; BEGIN SELECT dept$cod$v INTO lv_code_dept FROM meg_depts WHERE UPPER(RTRIM(dept$cod$v)) = UPPER(RTRIM(pv_code_dept)); IF lv_code_dept IS NOT NULL THEN ln_respuesta := 1; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_code_dept;

FUNCIÓN MEG_FNC_SELECT_PARS

FUNCTION meg_fnc_select_pars ( pc_id_par IN meg_pars.par$id$c%TYPE, pv_code_par OUT meg_pars.par$cod$v%TYPE, pv_name_par OUT meg_pars.par$nom$v%TYPE, pv_valor_par OUT meg_pars.par$val$v%TYPE, pv_tip_par OUT meg_pars.par$tip$v%TYPE, pc_est_par OUT meg_pars.par$est$c%TYPE, pc_padre_id OUT meg_pars.pad$id$c%TYPE, pv_padre_par OUT meg_pars.par$nom$v%TYPE ) RETURN NUMBER IS ln_respuesta NUMBER; BEGIN

Page 76: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

76

ln_respuesta := 0; BEGIN SELECT pars.par$cod$v, pars.par$nom$v, pars.par$val$v, pars.par$tip$v, pars.par$est$c, CASE WHEN pars.pad$id$c IS NULL THEN '' ELSE pars.pad$id$c END, CASE WHEN pad.par$id$c IS NULL THEN '' ELSE pad.par$nom$v END, 1 INTO pv_code_par, pv_name_par, pv_valor_par, pv_tip_par, pc_est_par, pc_padre_id, pv_padre_par, ln_respuesta FROM meg_pars pars, meg_pars pad WHERE pars.pad$id$c = pad.par$id$c(+) AND pars.par$id$c = pc_id_par; EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_pars;

FUNCIÓN MEG_FNC_PARS_COMBO

FUNCTION meg_fnc_pars_combo RETURN VARCHAR2 IS lv_cmb_pars VARCHAR2(10000); ln_pars_regs NUMBER(3) := 0; CURSOR cursor_par IS SELECT par$id$c, par$nom$v FROM meg_pars WHERE pad$id$c IS NULL AND par$est$c = '0' ORDER BY par$nom$v; BEGIN lv_cmb_pars := '{"data":['; BEGIN FOR par_record IN cursor_par LOOP lv_cmb_pars := lv_cmb_pars || '{"parID":"' || par_record.par$id$c || '","parName":"' || par_record.par$nom$v || '"},'; ln_pars_regs := ln_pars_regs + 1; END LOOP; IF ln_pars_regs > 0 THEN lv_cmb_pars := SUBSTR(lv_cmb_pars,0,( LENGTH(lv_cmb_pars) - 1) ); END IF; lv_cmb_pars := lv_cmb_pars || ']}'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_cmb_pars := '{"data":[]}'; WHEN OTHERS THEN lv_cmb_pars := '{"data":[]}'; END; RETURN RTRIM(LTRIM(lv_cmb_pars)); END meg_fnc_pars_combo; RETURN RTRIM(LTRIM(lv_tree_clientes));

Page 77: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

77

FUNCIÓN MEG_FNC_PARS_TREE

FUNCTION meg_fnc_pars_tree RETURN VARCHAR2 IS lv_tree_pars VARCHAR2(10000); ln_pars_nodo NUMBER(3) := 0; ln_level_ant NUMBER(3) := 0; ln_num_childs NUMBER(3) := 0; CURSOR cursor_par IS SELECT 1, level, CONCAT( CONCAT( pars.par$cod$v, ' - '), pars.par$nom$v ) AS Elementos, pars.par$id$c AS id FROM meg_pars pars START WITH pars.pad$id$c IS NULL CONNECT BY pars.pad$id$c = PRIOR pars.par$id$c; BEGIN lv_tree_pars := '[{'; BEGIN FOR par_record IN cursor_par LOOP IF ln_level_ant > 0 THEN IF par_record.level <= ln_level_ant THEN IF ln_pars_nodo > 0 THEN ln_num_childs := ( ln_level_ant - par_record.level ); WHILE ln_num_childs > 0 LOOP lv_tree_pars := TRIM(lv_tree_pars) || '}]'; ln_num_childs := ln_num_childs - 1; ln_pars_nodo := ln_pars_nodo - 1; END LOOP; END IF; lv_tree_pars := TRIM(lv_tree_pars) || '},{'; ELSE lv_tree_pars := TRIM(lv_tree_pars) || ', "children":[{'; ln_pars_nodo := ln_pars_nodo + 1; END IF; END IF; lv_tree_pars := TRIM(lv_tree_pars) || '"id":"' || RTRIM(LTRIM(par_record.id)) || '","text":"' || RTRIM(LTRIM(par_record.elementos)) || '","leaf":false'; ln_level_ant := par_record.level; END LOOP; WHILE ln_pars_nodo > 0 LOOP lv_tree_pars := TRIM(lv_tree_pars) || '}]'; ln_pars_nodo := ln_pars_nodo -1; END LOOP; lv_tree_pars := TRIM(lv_tree_pars) || '}]'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_tree_pars := '[{}]'; WHEN OTHERS THEN lv_tree_pars := '[{}]'; END; RETURN RTRIM(LTRIM(lv_tree_pars)); END meg_fnc_pars_tree;

Page 78: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

78

FUNCIÓN MEG_FNC_SELECT_CODE_PAR

FUNCTION meg_fnc_pars_combo RETURN VARCHAR2 IS lv_cmb_pars VARCHAR2(10000); ln_pars_regs NUMBER(3) := 0; CURSOR cursor_par IS SELECT par$id$c, par$nom$v FROM meg_pars WHERE pad$id$c IS NULL AND par$est$c = '0' ORDER BY par$nom$v; BEGIN lv_cmb_pars := '{"data":['; BEGIN FOR par_record IN cursor_par LOOP lv_cmb_pars := lv_cmb_pars || '{"parID":"' || par_record.par$id$c || '","parName":"' || par_record.par$nom$v || '"},'; ln_pars_regs := ln_pars_regs + 1; END LOOP; IF ln_pars_regs > 0 THEN lv_cmb_pars := SUBSTR(lv_cmb_pars,0,( LENGTH(lv_cmb_pars) - 1) ); END IF; lv_cmb_pars := lv_cmb_pars || ']}'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_cmb_pars := '{"data":[]}'; WHEN OTHERS THEN lv_cmb_pars := '{"data":[]}'; END; RETURN RTRIM(LTRIM(lv_cmb_pars)); END meg_fnc_pars_combo; RETURN RTRIM(LTRIM(lv_tree_clientes));

FUNCIÓN MEG_FNC_CLIS_COMBO lv_cmb_clientes VARCHAR2(4000); ln_clientes_regs NUMBER(3) := 0; CURSOR cursor_cliente IS SELECT cli$id$c, cli$nom$v FROM meg_clis WHERE pad$id$c IS NULL ORDER BY cli$nom$v; BEGIN lv_cmb_clientes := '{"data" : ['; BEGIN FOR cliente_record IN cursor_cliente LOOP lv_cmb_clientes := lv_cmb_clientes || '{"ClienteID": "' || cliente_record.cli$id$c || '", "ClienteName": "' || cliente_record.cli$nom$v || '"},'; ln_clientes_regs := ln_clientes_regs + 1; END LOOP; IF ln_clientes_regs > 0 THEN

Page 79: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

79

lv_cmb_clientes := SUBSTR(lv_cmb_clientes,0, ( LENGTH(lv_cmb_clientes) - 1) ); END IF; lv_cmb_clientes := lv_cmb_clientes || ']}'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_cmb_clientes := '{"data" : []}'; WHEN OTHERS THEN lv_cmb_clientes := '{"data" : []}'; END; RETURN RTRIM(LTRIM(lv_cmb_clientes));

FUNCIÓN MEG_FNC_CLIS_TREE lv_tree_clientes VARCHAR2(4000); BEGIN lv_tree_clientes := '[{"id": "0000000007", "nodeID": "0000000007", "pnodeID": "1", "text":"107 - EL ORO", "leaf":false},{"id": "0000000010", "nodeID": "0000000010", "pnodeID": "1", "text":"120 - GUAYAS", "leaf":false},{"id": "0000000001", "nodeID": "0000000001", "pnodeID": "1", "text":"201 - AZUAY", "leaf":false, "children":[{"id":"0000000011", "nodeID":"0000000011", "pnodeID":"0000000001", "text":"20115 - CAMILO PONCE ENRIQUEZ", "leaf":false},{"id":"0000000012", "nodeID":"0000000012", "pnodeID":"0000000001", "text":"20111 - CHORDELEG", "leaf":false}]},{"id": "0000000002", "nodeID": "0000000002", "pnodeID": "1", "text":"202 - BOLIVAR", "leaf":false},{"id": "0000000003", "nodeID": "0000000003", "pnodeID": "1", "text":"203 - CAÑAR", "leaf":false},{"id": "0000000004", "nodeID": "0000000004", "pnodeID": "1", "text":"204 - CARCHI", "leaf":false},{"id": "0000000005", "nodeID": "0000000005", "pnodeID": "1", "text":"206 - CHIMBORAZO", "leaf":false}]'; RETURN RTRIM(LTRIM(lv_tree_clientes));

FUNCIÓN MEG_FNC_SELECT_CLIS ln_respuesta NUMBER; BEGIN ln_respuesta := 0; BEGIN SELECT cli$cod$v, cli$id$c, cli$cod$v, cli$tip$cli$c, cli$tip$ide$c, cli$num$ide$v, cli$nom$v, cli$dir$v, cli$tel$v, cli$fax$v, cli$est$civ$c, cli$mail$v, cli$pass$c, cli$desd$d, cli$sexo$c, prof$id$c, act$com$id$c, zon$id$c, emp$id$c, cli$fec$nac$d, cli$pag$web$v, cli$rec$mail$c, cli$est$c INTO pv_code_cli, pv_code_cli, pc_tip_cli, pc_tip_ide_cli, pv_num_ide_cli, pv_nom_cli, pv_dir_cli, pv_tel_cli, pv_fax_cli, pc_est_civ_cli, pv_mail_cli, pc_pass_cli, pd_desd_cli, pc_sexo_cli, pc_prof_cli, pc_act_com_cli, pc_zon_cli, pc_emp_cli, pd_fec_nac_cli, pv_pag_web_cli, pc_rec_mail_cli, pc_est_cli, ln_respuesta FROM meg_clis

Page 80: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

80

WHERE cli$id$c = pc_id_cli; EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta;

FUNCIÓN MEG_FNC_SELECT_PROFS

FUNCTION meg_fnc_select_profs( pc_id_prof IN meg_profs.prof$id$c%TYPE, pv_code_prof OUT meg_profs.prof$cod$v%TYPE, pv_name_prof OUT meg_profs.prof$nom$v%TYPE, pc_est_prof OUT meg_profs.prof$est$c%TYPE ) RETURN NUMBER IS ln_respuesta NUMBER; BEGIN ln_respuesta := 0; BEGIN SELECT prof$cod$v, prof$nom$v, prof$est$c, 1 INTO pv_code_prof, pv_name_prof, pc_est_prof, ln_respuesta FROM meg_profs WHERE prof$id$c = pc_id_prof; EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_profs;

FUNCIÓN MEG_FNC_PROFS_COMBO

FUNCTION meg_fnc_profs_combo RETURN VARCHAR2 IS lv_cmb_profs VARCHAR2(10000); ln_profs_regs NUMBER(3) := 0; CURSOR cursor_prof IS SELECT prof$id$c, prof$nom$v FROM meg_profs --WHERE pad$id$c IS NULL AND dept$est$c = '0' ORDER BY prof$nom$v; BEGIN lv_cmb_profs := '{"data" : ['; BEGIN FOR prof_record IN cursor_prof LOOP lv_cmb_profs := lv_cmb_profs || '{"ProfID": "' || prof_record.prof$id$c || '", "ProfName": "' || prof_record.prof$nom$v || '"},'; ln_profs_regs := ln_profs_regs + 1;

Page 81: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

81

END LOOP; IF ln_profs_regs > 0 THEN lv_cmb_profs := SUBSTR(lv_cmb_profs,0,( LENGTH(lv_cmb_profs) - 1) ); END IF; lv_cmb_profs := lv_cmb_profs || ']}'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_cmb_profs := '{"data" : []}'; WHEN OTHERS THEN lv_cmb_profs := '{"data" : []}'; END; RETURN RTRIM(LTRIM(lv_cmb_profs)); END meg_fnc_profs_combo;

FUNCIÓN MEG_FNC_PROFS_TREE

FUNCTION meg_fnc_profs_tree RETURN VARCHAR2 IS lv_tree_profs VARCHAR2(10000); ln_profs_nodo NUMBER(3) := 0; ln_level_ant NUMBER(3) := 0; ln_num_childs NUMBER(3) := 0; CURSOR cursor_prof IS SELECT 1, level, CONCAT( CONCAT( profs.prof$cod$v, ' - '), profs.prof$nom$v ) AS Elementos, profs.prof$id$c AS id FROM meg_profs profs CONNECT BY profs.prof$id$c = NULL; BEGIN lv_tree_profs := '[{'; BEGIN FOR profs_record IN cursor_prof LOOP IF ln_level_ant > 0 THEN IF profs_record.level <= ln_level_ant THEN IF ln_profs_nodo > 0 THEN ln_num_childs := ( ln_level_ant - profs_record.level ); WHILE ln_num_childs > 0 LOOP lv_tree_profs := TRIM(lv_tree_profs) || '}]'; ln_num_childs := ln_num_childs - 1; ln_profs_nodo := ln_profs_nodo - 1; END LOOP; END IF; lv_tree_profs := TRIM(lv_tree_profs) || '},{'; ELSE lv_tree_profs := TRIM(lv_tree_profs) || ', "children":[{'; ln_profs_nodo := ln_profs_nodo + 1; END IF; END IF; lv_tree_profs := TRIM(lv_tree_profs) || '"id": "' || RTRIM(LTRIM(profs_record.id)) || '","text":"' || RTRIM(LTRIM(profs_record.elementos)) || '","leaf":false'; ln_level_ant := profs_record.level; END LOOP; WHILE ln_profs_nodo > 0 LOOP

Page 82: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

82

lv_tree_profs := TRIM(lv_tree_profs) || '}]'; ln_profs_nodo := ln_profs_nodo -1; END LOOP; lv_tree_profs := TRIM(lv_tree_profs) || '}]'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_tree_profs := '[{}]'; WHEN OTHERS THEN lv_tree_profs := '[{}]'; END; RETURN RTRIM(LTRIM(lv_tree_profs)); END meg_fnc_profs_tree;

FUNCIÓN MEG_FNC_SELECT_SUCS

FUNCTION meg_fnc_select_sucs( pc_id_suc IN meg_sucs.suc$id$c%TYPE, pv_code_suc OUT meg_sucs.suc$cod$v%TYPE, pv_name_suc OUT meg_sucs.suc$nom$v%TYPE, pc_est_suc OUT meg_sucs.suc$est$c%TYPE ) RETURN NUMBER IS ln_respuesta NUMBER; BEGIN ln_respuesta := 0; BEGIN SELECT suc$cod$v, suc$nom$v, suc$est$c, 1 INTO pv_code_suc, pv_name_suc, pc_est_suc, ln_respuesta FROM meg_sucs WHERE suc$id$c = pc_id_suc; EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_sucs;

FUNCIÓN MEG_FNC_SUCS_TREE

FUNCTION meg_fnc_sucs_tree RETURN VARCHAR2 IS lv_tree_sucs VARCHAR2(10000); ln_sucs_nodo NUMBER(3) := 0; ln_level_ant NUMBER(3) := 0; ln_num_childs NUMBER(3) := 0; CURSOR cursor_suc IS SELECT 1, level, CONCAT( CONCAT( sucs.suc$cod$v, ' - '), sucs.suc$nom$v ) AS Elementos, sucs.suc$id$c AS id FROM meg_sucs sucs CONNECT BY sucs.suc$id$c = NULL;

Page 83: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

83

BEGIN lv_tree_sucs := '[{'; BEGIN FOR sucs_record IN cursor_suc LOOP IF ln_level_ant > 0 THEN IF sucs_record.level <= ln_level_ant THEN IF ln_sucs_nodo > 0 THEN ln_num_childs := ( ln_level_ant - sucs_record.level ); WHILE ln_num_childs > 0 LOOP lv_tree_sucs := TRIM(lv_tree_sucs) || '}]'; ln_num_childs := ln_num_childs - 1; ln_sucs_nodo := ln_sucs_nodo - 1; END LOOP; END IF; lv_tree_sucs := TRIM(lv_tree_sucs) || '},{'; ELSE lv_tree_sucs := TRIM(lv_tree_sucs) || ', "children":[{'; ln_sucs_nodo := ln_sucs_nodo + 1; END IF; END IF; lv_tree_sucs := TRIM(lv_tree_sucs) || '"id": "' || RTRIM(LTRIM(sucs_record.id)) || '","text":"' || RTRIM(LTRIM(sucs_record.elementos)) || '","leaf":false'; ln_level_ant := sucs_record.level; END LOOP; WHILE ln_sucs_nodo > 0 LOOP lv_tree_sucs := TRIM(lv_tree_sucs) || '}]'; ln_sucs_nodo := ln_sucs_nodo -1; END LOOP; lv_tree_sucs := TRIM(lv_tree_sucs) || '}]'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_tree_sucs := '[{}]'; WHEN OTHERS THEN lv_tree_sucs := '[{}]'; END; RETURN RTRIM(LTRIM(lv_tree_sucs)); END meg_fnc_sucs_tree; WHEN OTHERS THEN lv_tree_sucs := '[{}]'; END; RETURN RTRIM(LTRIM(lv_tree_sucs));

FUNCIÓN MEG_FNC_SELECT_CODE_SUC

FUNCTION meg_fnc_select_code_suc( pv_code_suc IN meg_sucs.suc$cod$v%TYPE ) RETURN NUMBER IS ln_respuesta NUMBER; lv_code_suc meg_sucs.suc$cod$v%TYPE; BEGIN ln_respuesta := 0; lv_code_suc := null;

Page 84: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

84

BEGIN SELECT suc$cod$v INTO lv_code_suc FROM meg_sucs WHERE UPPER(RTRIM(suc$cod$v)) = UPPER(RTRIM(pv_code_suc)); IF lv_code_suc IS NOT NULL THEN ln_respuesta := 1; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_code_suc;

FUNCIÓN MEG_FNC_PAR_INFO_TREE

FUNCTION meg_fnc_par_info_tree( pc_id_par meg_pars.par$id$c%TYPE ) RETURN VARCHAR2 IS lv_tree_info_pars VARCHAR2(20000); ln_num_regs NUMBER := 0; CURSOR cursor_par IS SELECT TRIM(par$nom$v) AS nomb, par$id$c AS id FROM meg_pars WHERE pad$id$c = pc_id_par; BEGIN lv_tree_info_pars := '['; BEGIN FOR record_par IN cursor_par LOOP lv_tree_info_pars := TRIM(lv_tree_info_pars) || '{"id":"' || RTRIM(LTRIM(record_par.id)) || '","text":"' || RTRIM(LTRIM(record_par.nomb)) || '","leaf":false},'; ln_num_regs := ln_num_regs + 1; END LOOP; IF ln_num_regs > 0 THEN lv_tree_info_pars := SUBSTR(lv_tree_info_pars, 0, ( LENGTH(lv_tree_info_pars) - 1) ); lv_tree_info_pars := TRIM(lv_tree_info_pars) || ']'; ELSE lv_tree_info_pars := '[{}]'; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN lv_tree_info_pars := '[{}]'; WHEN OTHERS THEN lv_tree_info_pars := '[{}]'; END; RETURN RTRIM(LTRIM(lv_tree_info_pars)); END meg_fnc_par_info_tree;

Page 85: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

85

FUNCIÓN MEG_FNC_SEEK_GRID_CLIS

FUNCTION meg_fnc_seek_grid_clis ( pv_cod meg_clis.cli$cod$v%TYPE, pv_doc meg_clis.cli$num$ide$v%TYPE, pv_nam meg_clis.cli$nom$v%TYPE ) RETURN VARCHAR2 IS pi_cursor_sql integer; pi_execute_sql integer; pv_cad_exec varchar2(1000); pr_clis meg_clis%ROWTYPE; pv_json_grd_clis VARCHAR(20000); pn_tot_reg_clis NUMBER(3, 0) := 0; BEGIN BEGIN pv_cad_exec := 'SELECT cli$id$c, cli$cod$v, cli$num$ide$v, cli$nom$v FROM meg_clis WHERE cli$est$c = ''0'' AND cli$cod$v LIKE ''%' || pv_cod || '%'' AND cli$num$ide$v LIKE ''%' || pv_doc || '%'' AND cli$nom$v LIKE ''%' || pv_nam || '%'''; pi_cursor_sql := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE( pi_cursor_sql, pv_cad_exec, DBMS_SQL.NATIVE ); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 1, pr_clis.cli$id$c, 10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 2, pr_clis.cli$cod$v, 10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 3, pr_clis.cli$num$ide$v, 13); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 4, pr_clis.cli$nom$v, 150); pi_execute_sql := DBMS_SQL.EXECUTE ( pi_cursor_sql ); LOOP EXIT WHEN DBMS_SQL.FETCH_ROWS( pi_cursor_sql ) = 0; DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 1, pr_clis.cli$id$c); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 2, pr_clis.cli$cod$v); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 3, pr_clis.cli$num$ide$v); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 4, pr_clis.cli$nom$v); pv_json_grd_clis := TRIM(pv_json_grd_clis) || '{"id":"' || pr_clis.cli$id$c || '","code":"' || pr_clis.cli$cod$v || '","doc":"' || pr_clis.cli$num$ide$v || '","name":"' || pr_clis.cli$nom$v || '"},'; pn_tot_reg_clis := pn_tot_reg_clis + 1; END LOOP; DBMS_SQL.CLOSE_CURSOR( pi_cursor_sql ); IF pn_tot_reg_clis > 0 THEN pv_json_grd_clis := SUBSTR(pv_json_grd_clis, 0, (LENGTH(pv_json_grd_clis) - 1) ); pv_json_grd_clis := '{"tot_clis":' ||pn_tot_reg_clis || ',"dat_clis":[' || pv_json_grd_clis || ']}'; ELSE pv_json_grd_clis := '{"tot_clis":0,"dat_clis":[{}]}'; END IF; EXCEPTION WHEN OTHERS THEN pv_json_grd_clis := '{"tot_clis":0,"dat_clis":[{}]}'; END; RETURN TRIM(pv_json_grd_clis); END meg_fnc_seek_grid_clis;

Page 86: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

86

FUNCIÓN MEG_FNC_SEEK_GRID_EMPS

FUNCTION meg_fnc_seek_grid_emps ( pv_cod meg_emps.emp$cod$v%TYPE, pv_doc meg_emps.emp$num$doc$v%TYPE, pv_nam meg_emps.emp$nomb$v%TYPE ) RETURN VARCHAR2 IS pi_cursor_sql integer; pi_execute_sql integer; pv_cad_exec varchar2(1000); pr_emps meg_emps%ROWTYPE; pv_json_grd_emps VARCHAR(20000); pn_tot_reg_emps NUMBER(3, 0) := 0; BEGIN BEGIN pv_cad_exec := 'SELECT emp$id$c, emp$cod$v, emp$num$doc$v, emp$nomb$v FROM meg_emps WHERE emp$est$c = ''0'' AND emp$cod$v LIKE ''%' || pv_cod || '%'' AND emp$num$doc$v LIKE ''%' || pv_doc || '%'' AND emp$nomb$v LIKE ''%' || pv_nam || '%'''; pi_cursor_sql := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE( pi_cursor_sql, pv_cad_exec, DBMS_SQL.NATIVE ); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 1, pr_emps.emp$id$c,10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 2, pr_emps.emp$cod$v,10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 3, pr_emps.emp$num$doc$v,13); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 4, pr_emps.emp$nomb$v,150); pi_execute_sql := DBMS_SQL.EXECUTE ( pi_cursor_sql ); LOOP EXIT WHEN DBMS_SQL.FETCH_ROWS( pi_cursor_sql ) = 0; DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 1, pr_emps.emp$id$c); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 2, pr_emps.emp$cod$v); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 3, pr_emps.emp$num$doc$v); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 4, pr_emps.emp$nomb$v); pv_json_grd_emps := TRIM(pv_json_grd_emps) || '{"id":"' || pr_emps.emp$id$c || '","code":"' || pr_emps.emp$cod$v || '","doc":"' || pr_emps.emp$num$doc$v || '","name":"' || pr_emps.emp$nomb$v || '"},'; pn_tot_reg_emps := pn_tot_reg_emps + 1; END LOOP; DBMS_SQL.CLOSE_CURSOR( pi_cursor_sql ); IF pn_tot_reg_emps > 0 THEN pv_json_grd_emps := SUBSTR(pv_json_grd_emps, 0, (LENGTH(pv_json_grd_emps) - 1) ); pv_json_grd_emps := '{"tot_emps":' ||pn_tot_reg_emps || ',"dat_emps":[' || pv_json_grd_emps || ']}'; ELSE pv_json_grd_emps := '{"tot_emps":0,"dat_emps":[{}]}'; END IF;

Page 87: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

87

EXCEPTION WHEN OTHERS THEN pv_json_grd_emps := '{"tot_emps":0,"dat_emps":[{}]}'; END; RETURN TRIM(pv_json_grd_emps); END meg_fnc_seek_grid_emps;

FUNCIÓN MEG_FNC_GRIDS_EMPS_ROLS

FUNCTION meg_fnc_grids_emps_rols ( pv_rol_id meg_rols.rol$id$c%TYPE, pc_filtro NUMBER ) RETURN VARCHAR2 IS pi_cursor_sql integer; pi_execute_sql integer; pv_cad_exec varchar2(1000); pr_emps meg_emps%ROWTYPE; pv_json_grd_emps VARCHAR(20000); pn_tot_reg_emps NUMBER(3, 0) := 0; BEGIN BEGIN IF pc_filtro = 1 THEN pv_cad_exec := 'SELECT emp$id$c, emp$cod$v, emp$nomb$v FROM meg_emps WHERE rol$id$c = ''' || pv_rol_id || ''''; ELSE IF LENGTH(TRIM(pv_rol_id)) = 0 THEN pv_cad_exec := 'SELECT emp$id$c, emp$cod$v, emp$nomb$v FROM meg_emps'; ELSE pv_cad_exec := 'SELECT emp$id$c, emp$cod$v, emp$nomb$v FROM meg_emps WHERE rol$id$c <> ''' || pv_rol_id || ''' OR rol$id$c IS NULL'; END IF; END IF; pi_cursor_sql := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE( pi_cursor_sql, pv_cad_exec, DBMS_SQL.NATIVE ); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 1, pr_emps.emp$id$c, 10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 2, pr_emps.emp$cod$v, 10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 3, pr_emps.emp$nomb$v, 150); pi_execute_sql := DBMS_SQL.EXECUTE ( pi_cursor_sql ); LOOP EXIT WHEN DBMS_SQL.FETCH_ROWS( pi_cursor_sql ) = 0; DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 1, pr_emps.emp$id$c); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 2, pr_emps.emp$cod$v); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 3, pr_emps.emp$nomb$v); pv_json_grd_emps := TRIM(pv_json_grd_emps) || '{"id":"' || pr_emps.emp$id$c || '","code":"' || pr_emps.emp$cod$v || '","name":"' || pr_emps.emp$nomb$v || '"},'; pn_tot_reg_emps := pn_tot_reg_emps + 1; END LOOP; DBMS_SQL.CLOSE_CURSOR( pi_cursor_sql );

Page 88: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

88

IF pn_tot_reg_emps > 0 THEN pv_json_grd_emps := SUBSTR(pv_json_grd_emps, 0, ( LENGTH(pv_json_grd_emps) - 1) ); pv_json_grd_emps := CASE WHEN pc_filtro = 1 THEN '{"emps_rol":' ||pn_tot_reg_emps || ',"dat_rol":[' || pv_json_grd_emps || ']}' ELSE '{"tot_emps":' ||pn_tot_reg_emps || ',"dat_emps":[' || pv_json_grd_emps || ']}' END; ELSE pv_json_grd_emps := CASE WHEN pc_filtro = 1 THEN '{"emps_rol":0,"dat_rol":[]}' ELSE '{"tot_emps":0,"dat_emps":[]}' END; END IF; EXCEPTION WHEN OTHERS THEN dbms_output.put_line( SQLCODE || ' - ' || SQLERRM); pv_json_grd_emps := CASE WHEN pc_filtro = 1 THEN '{"emps_rol":0,"dat_rol":[]}' ELSE '{"tot_emps":0,"dat_emps":[]}' END; END; RETURN TRIM(pv_json_grd_emps); END meg_fnc_grids_emps_rols;

FUNCIÓN MEG_FNC_SEEK_GRID_PRODS

FUNCTION meg_fnc_seek_grid_prods ( pv_code meg_ext_prods.prod$cod$v%TYPE, pv_name meg_ext_prods.prod$desc$v%TYPE, pn_row_init NUMBER, pn_row_cant NUMBER ) RETURN VARCHAR2 IS pi_cursor_sql INTEGER; pi_execute_sql INTEGER; pn_tot_sel NUMBER(6) := 0; pv_cad_exec varchar2(1000); pr_prods meg_prods%ROWTYPE; pv_json_grd_prods VARCHAR2(32767); pn_tot_reg_prods NUMBER(3, 0) := 0; pn_paga_iva NUMBER(1) := 0; BEGIN BEGIN ------ Para calcular el total de Registros a Paginar ----- pv_cad_exec := 'SELECT MAX(ROWNUM) AS row$total$n FROM meg_prods WHERE prod$cod$v LIKE ''%' || pv_code || '%'' AND prod$nom$v LIKE ''%' || pv_name || '%'''; pi_cursor_sql := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE( pi_cursor_sql, pv_cad_exec, DBMS_SQL.NATIVE ); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 1, pn_tot_sel); pi_execute_sql := DBMS_SQL.EXECUTE ( pi_cursor_sql ); LOOP

Page 89: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

89

EXIT WHEN DBMS_SQL.FETCH_ROWS( pi_cursor_sql ) = 0; DBMS_SQL.COLUMN_VALUE(pi_cursor_sql, 1, pn_tot_sel); END LOOP; DBMS_SQL.CLOSE_CURSOR( pi_cursor_sql ); ------- El SELECT que corresponde a la Página que voy a mostrar ----- pi_cursor_sql := 0; pi_execute_sql := 0; pv_cad_exec := ''; pv_cad_exec := 'SELECT prod$id$c, prod$cod$v, prod$nom$v, prod$stock$n, prod$prec$1$n, iva$calc$b FROM ( SELECT prd_ord.*, ROWNUM row$num$n FROM ( SELECT prod$id$c, CASE WHEN NVL( LENGTH( TRIM(prod$cod$v) ), 0) = 0 THEN '' '' ELSE TRIM(prod$cod$v) END AS prod$cod$v, CASE WHEN NVL( LENGTH( TRIM(prod$desc$v) ), 0) = 0 THEN TRIM( REPLACE(prod$nom$v, ''"'') ) ELSE TRIM( REPLACE(prod$desc$v, ''"'') ) END AS prod$nom$v, NVL( prod$cant$bod$n, 0.00 ) AS prod$stock$n, NVL( prod$prec$1$n, 0.00 ) AS prod$prec$1$n, 1 AS iva$calc$b FROM meg_prods WHERE prod$cod$v LIKE ''%' || pv_code || '%'' AND prod$nom$v LIKE ''%' || pv_name || '%'' ORDER BY prod$cod$v ) prd_ord WHERE ROWNUM <= ' || ( pn_row_init + pn_row_cant ) || ' ) WHERE row$num$n > ' || pn_row_init ; pi_cursor_sql := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE( pi_cursor_sql, pv_cad_exec, DBMS_SQL.NATIVE ); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 1, pr_prods.prod$id$c, 10 ); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 2, pr_prods.prod$cod$v, 15 ); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 3, pr_prods.prod$desc$v, 150 ); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 4, pr_prods.prod$cant$bod$n ); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 5, pr_prods.prod$prec$1$n); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 6, pn_paga_iva ); pi_execute_sql := DBMS_SQL.EXECUTE ( pi_cursor_sql ); LOOP EXIT WHEN DBMS_SQL.FETCH_ROWS( pi_cursor_sql ) = 0; DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 1, pr_prods.prod$id$c ); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 2, pr_prods.prod$cod$v ); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 3, pr_prods.prod$desc$v); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 4, pr_prods.prod$cant$bod$n ); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 5, pr_prods.prod$prec$1$n ); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 6, pn_paga_iva ); pv_json_grd_prods := TRIM(pv_json_grd_prods) || '{"id":"' || TRIM(pr_prods.prod$id$c) || '","code":"' || TRIM(pr_prods.prod$cod$v) || '","name":"' || TRIM(pr_prods.prod$desc$v) || '","precio":' || TRIM( TO_CHAR( pr_prods.prod$prec$1$n, '999999990.99') ) || ',"stock":' || TRIM( TO_CHAR( pr_prods.prod$cant$bod$n, '999999990.99') ) || ',"ivaP":' || CASE WHEN pn_paga_iva = 1

Page 90: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

90

THEN 'true' ELSE 'false' END || '},'; END LOOP; DBMS_SQL.CLOSE_CURSOR( pi_cursor_sql ); IF pn_tot_sel > 0 THEN pv_json_grd_prods := SUBSTR(pv_json_grd_prods, 0, ( LENGTH(pv_json_grd_prods) - 1) ); pv_json_grd_prods := '{"success":true,"total":' || pn_tot_sel || ',"data":[' || TRIM(pv_json_grd_prods) || ']}'; ELSE pv_json_grd_prods := '{"success":false,"tot_prods":0,"dat_prods":[{}]}'; END IF; EXCEPTION WHEN OTHERS THEN dbms_output.put_line( SQLCODE || ' -> ' || sqlerrm ); pv_json_grd_prods := '{"success":false,"tot_prods":0,"dat_prods":[{}]}'; END; RETURN TRIM(pv_json_grd_prods); END meg_fnc_seek_grid_prods;

FUNCIÓN MEG_FNC_ACT_COM

FUNCTION meg_fnc_act_com_combo RETURN VARCHAR2 IS lv_cmb_act_com VARCHAR2(10000); ln_act_com_regs NUMBER(3) := 0; CURSOR cursor_act_com IS SELECT act_com$id$c, act_com$nom$v FROM meg_act_com ORDER BY act_com$nom$v; BEGIN lv_cmb_act_com := '{"data" : ['; BEGIN FOR act_com_record IN cursor_act_com LOOP lv_cmb_act_com := lv_cmb_act_com || '{"ActComID": "' || act_com_record.act_com$id$c || '", "ActComName": "' || act_com_record.act_com$nom$v || '"},'; ln_act_com_regs := ln_act_com_regs + 1; END LOOP; IF ln_act_com_regs > 0 THEN lv_cmb_act_com := SUBSTR(lv_cmb_act_com, 0,( LENGTH(lv_cmb_act_com) - 1) ); END IF; lv_cmb_act_com := lv_cmb_act_com || ']}'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_cmb_act_com := '{"data" : []}'; WHEN OTHERS THEN lv_cmb_act_com := '{"data" : []}'; END; RETURN RTRIM(LTRIM(lv_cmb_act_com)); END meg_fnc_act_com_combo;

Page 91: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

91

FUNCIÓN MEG_FNC_SELECT_CLIS

FUNCTION meg_fnc_select_clis( pc_id_cli IN meg_clis.cli$id$c%TYPE, pv_code_cli OUT meg_clis.cli$cod$v%TYPE, pc_tip_cli OUT meg_clis.cli$tip$cli$c%TYPE, pc_tip_ide_cli OUT meg_clis.cli$tip$ide$c%TYPE, pv_num_ide_cli OUT meg_clis.cli$num$ide$v%TYPE, pv_nom_cli OUT meg_clis.cli$nom$v%TYPE, pv_contac OUT meg_clis.cli$contac$v%TYPE, pv_dir_cli OUT meg_clis.cli$dir$v%TYPE, pv_tel_cli OUT meg_clis.cli$tel$v%TYPE, pv_fax_cli OUT meg_clis.cli$fax$v%TYPE, pc_est_civ_cli OUT meg_clis.cli$est$civ$c%TYPE, pv_mail_cli OUT meg_clis.cli$mail$v%TYPE, pc_pass_cli OUT meg_clis.cli$pass$c%TYPE, pd_desd_cli OUT VARCHAR2, pc_sexo_cli OUT meg_clis.cli$sexo$c%TYPE, pc_prof_id_cli OUT meg_clis.prof$id$c%TYPE, pv_prof_nom_cli OUT meg_profs.prof$nom$v%TYPE, pc_act_com_cli OUT meg_clis.act_com$id$c%TYPE, pv_act_com_nom_cli OUT meg_act_com.act_com$nom$v%TYPE, pc_zon_cli OUT meg_clis.zon$id$c%TYPE, pv_zon_nom_cli OUT meg_zons.zon$nom$v%TYPE, pc_emp_cli OUT meg_clis.emp$id$c%TYPE, pv_emp_nom_cli OUT meg_emps.emp$nomb$v%TYPE, pd_fec_nac_cli OUT VARCHAR2, pv_pag_web_cli OUT meg_clis.cli$pag$web$v%TYPE, pc_rec_mail_cli OUT meg_clis.cli$rec$mail$v%TYPE, pc_est_cli OUT meg_clis.cli$est$c%TYPE ) RETURN NUMBER IS ln_respuesta NUMBER; BEGIN ln_respuesta := 0; BEGIN SELECT CASE WHEN clis.cli$cod$v IS NULL THEN ' ' ELSE clis.cli$cod$v END, CASE WHEN clis.cli$tip$cli$c IS NULL THEN ' ' ELSE clis.cli$tip$cli$c END, CASE WHEN clis.cli$tip$ide$c IS NULL THEN ' ' ELSE clis.cli$tip$ide$c END, CASE WHEN clis.cli$num$ide$v IS NULL THEN ' ' ELSE clis.cli$num$ide$v END, CASE WHEN clis.cli$nom$v IS NULL THEN ' ' ELSE clis.cli$nom$v END, CASE WHEN clis.cli$contac$v IS NULL THEN ' ' ELSE clis.cli$contac$v END, CASE WHEN clis.cli$dir$v IS NULL THEN ' ' ELSE clis.cli$dir$v END, CASE WHEN clis.cli$tel$v IS NULL THEN ' ' ELSE clis.cli$tel$v END, CASE WHEN clis.cli$fax$v IS NULL THEN ' ' ELSE clis.cli$fax$v END, CASE WHEN clis.cli$est$civ$c IS NULL THEN ' ' ELSE clis.cli$est$civ$c END, CASE WHEN clis.cli$mail$v IS NULL THEN ' ' ELSE clis.cli$mail$v END, CASE WHEN clis.cli$pass$c IS NULL THEN ' ' ELSE clis.cli$pass$c END,

Page 92: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

92

CASE WHEN TO_CHAR(clis.cli$desd$d,'DD/MM/YYYY') IS NULL THEN ' ' ELSE TO_CHAR(clis.cli$desd$d,'DD/MM/YYYY') END, CASE WHEN clis.cli$sexo$c IS NULL THEN ' ' ELSE clis.cli$sexo$c END, CASE WHEN prof.prof$id$c IS NULL THEN ' ' ELSE prof.prof$id$c END, CASE WHEN prof.prof$nom$v IS NULL THEN ' ' ELSE prof.prof$nom$v END, CASE WHEN act_com.act_com$id$c IS NULL THEN ' ' ELSE act_com.act_com$id$c END, CASE WHEN act_com.act_com$nom$v IS NULL THEN ' ' ELSE act_com.act_com$nom$v END, CASE WHEN zon.zon$id$c IS NULL THEN ' ' ELSE zon.zon$id$c END, CASE WHEN zon.zon$nom$v IS NULL THEN ' ' ELSE zon.zon$nom$v END, CASE WHEN clis.emp$id$c IS NULL THEN ' ' ELSE clis.emp$id$c END, CASE WHEN emp.emp$nomb$v IS NULL THEN ' ' ELSE emp.emp$nomb$v END, CASE WHEN TO_CHAR(clis.cli$fec$nac$d,'DD/MM/YYYY') IS NULL THEN ' ' ELSE TO_CHAR(clis.cli$fec$nac$d,'DD/MM/YYYY') END, CASE WHEN clis.cli$pag$web$v IS NULL THEN ' ' ELSE clis.cli$pag$web$v END, CASE WHEN clis.cli$rec$mail$v IS NULL THEN ' ' ELSE clis.cli$rec$mail$v END, CASE WHEN clis.cli$est$c IS NULL THEN ' ' ELSE clis.cli$est$c END,1 INTO pv_code_cli, pc_tip_cli, pc_tip_ide_cli, pv_num_ide_cli, pv_nom_cli, pv_contac, pv_dir_cli, pv_tel_cli, pv_fax_cli, pc_est_civ_cli, pv_mail_cli, pc_pass_cli, pd_desd_cli, pc_sexo_cli, pc_prof_id_cli, pv_prof_nom_cli, pc_act_com_cli, pv_act_com_nom_cli, pc_zon_cli, pv_zon_nom_cli, pc_emp_cli, pv_emp_nom_cli, pd_fec_nac_cli, pv_pag_web_cli, pc_rec_mail_cli, pc_est_cli, ln_respuesta FROM meg_clis clis, meg_profs prof, meg_act_com act_com, meg_zons zon, meg_emps emp WHERE clis.cli$id$c = pc_id_cli AND clis.prof$id$c = prof.prof$id$c(+) and clis.act_com$id$c = act_com.act_com$id$c(+) and clis.zon$id$c = zon.zon$id$c (+) and clis.emp$id$c = emp.emp$id$c (+); EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_clis;

FUNCIÓN MEG_FNC_TAREAS_PRIOR_COMBO

FUNCTION meg_fnc_tareas_prior_combo RETURN VARCHAR2 IS lv_cmb_tars VARCHAR2(10000); ln_tars_regs NUMBER(3) := 0;

Page 93: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

93

CURSOR cursor_tar IS SELECT par$id$c, par$nom$v FROM meg_pars WHERE pad$id$c = '0000000014'; BEGIN lv_cmb_tars := '{"data" : ['; BEGIN FOR tar_record IN cursor_tar LOOP lv_cmb_tars := lv_cmb_tars || '{"ParID": "' || tar_record.par$id$c || '", "ParName": "' || tar_record.par$nom$v || '"},'; ln_tars_regs := ln_tars_regs + 1; END LOOP; IF ln_tars_regs > 0 THEN lv_cmb_tars := SUBSTR(lv_cmb_tars, 0,( LENGTH(lv_cmb_tars) - 1) ); END IF; lv_cmb_tars := lv_cmb_tars || ']}'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_cmb_tars := '{"data" : []}'; WHEN OTHERS THEN lv_cmb_tars := '{"data" : []}'; END; RETURN RTRIM(LTRIM(lv_cmb_tars)); END meg_fnc_tareas_prior_combo;

FUNCIÓN MEG_FNC_SELECT_EMPS

FUNCTION meg_fnc_select_emps( pc_id_emp IN meg_emps.emp$id$c%TYPE, pv_cod_emp OUT meg_emps.emp$cod$v%TYPE, pc_tip_cod_emp OUT meg_emps.emp$tip$doc$c%TYPE, pv_num_doc_emp OUT meg_emps.emp$num$doc$v%TYPE, pv_nom_emp OUT meg_emps.emp$nomb$v%TYPE, pv_dir_emp OUT meg_emps.emp$dir$v%TYPE, pd_fec_nac_emp OUT varchar2, pv_telf_emp OUT meg_emps.emp$telf$v%TYPE, pv_mail_emp OUT meg_emps.emp$mail$v%TYPE, pc_sexo_emp OUT meg_emps.emp$sexo$c%TYPE, pc_est_civ_emp OUT meg_emps.emp$est$civ$c%TYPE, pn_car_fam_emp OUT meg_emps.emp$carg$fam$n%TYPE, pv_cuen_banc_emp OUT meg_emps.emp$cuen$banc$v%TYPE, pv_clave_emp OUT meg_emps.emp$clave$v%TYPE, pc_bloq_emp OUT meg_emps.emp$bloq$c%TYPE, pc_dept_id_emp OUT meg_emps.dept$id$c%TYPE, pv_dept_name_emp OUT meg_depts.dept$nom$v%TYPE, pc_zon_id_emp OUT meg_emps.zon$id$c%TYPE, pv_zon_name_emp OUT meg_zons.zon$nom$v%TYPE, pc_prof_id_emp OUT meg_emps.prof$id$c%TYPE, pv_prof_name_emp OUT meg_profs.prof$nom$v%TYPE, pc_rol_id_emp OUT meg_emps.rol$id$c%TYPE, pv_rol_name_emp OUT meg_rols.rol$nom$v%TYPE, pc_est OUT meg_emps.emp$est$c%TYPE )

Page 94: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

94

RETURN NUMBER IS ln_respuesta NUMBER; BEGIN ln_respuesta := 0; BEGIN select CASE WHEN emps.emp$cod$v IS NULL THEN ' ' ELSE emps.emp$cod$v END As emp$cod$v, CASE WHEN emps.emp$tip$doc$c IS NULL THEN ' ' ELSE emps.emp$tip$doc$c END As emp$tip$doc$c, CASE WHEN emps.emp$num$doc$v IS NULL THEN ' ' ELSE emps.emp$num$doc$v END As emp$num$doc$v, CASE WHEN emps.emp$nomb$v IS NULL THEN ' ' ELSE emps.emp$nomb$v END As emp$nomb$v, CASE WHEN emps.emp$dir$v IS NULL THEN ' ' ELSE emps.emp$dir$v END As emp$dir$v, CASE WHEN TO_CHAR(emps.emp$fec$nac$d,'DD/MM/YYYY') IS NULL THEN ' ' ELSE TO_CHAR(emps.emp$fec$nac$d,'DD/MM/YYYY')END As emp$fec$nac$d, CASE WHEN emps.emp$telf$v IS NULL THEN ' ' ELSE emps.emp$telf$v END As emp$telf$v, CASE WHEN emps.emp$mail$v IS NULL THEN ' ' ELSE emps.emp$mail$v END As emp$mail$v, CASE WHEN emps.emp$sexo$c IS NULL THEN ' ' ELSE emps.emp$sexo$c END As emp$sexo$c, CASE WHEN emps.emp$est$civ$c IS NULL THEN ' ' ELSE emps.emp$est$civ$c END AS emp$est$civ$c, CASE WHEN emps.emp$carg$fam$n IS NULL THEN 0 ELSE emps.emp$carg$fam$n END AS emp$carg$fam$n, CASE WHEN emps.emp$cuen$banc$v IS NULL THEN ' ' ELSE emps.emp$cuen$banc$v END As emp$cuen$banc$v, CASE WHEN emps.emp$clave$v IS NULL THEN ' ' ELSE emps.emp$clave$v END As emp$clave$v, CASE WHEN emps.emp$bloq$c IS NULL THEN ' ' ELSE emps.emp$bloq$c END As emp$bloq$c, CASE WHEN emps.dept$id$c IS NULL THEN ' ' ELSE emps.dept$id$c END As dept$id$c, CASE WHEN depts.dept$nom$v IS NULL THEN ' ' ELSE depts.dept$nom$v END As dept$nom$v, CASE WHEN emps.zon$id$c IS NULL THEN ' ' ELSE emps.zon$id$c END As zon$id$c, CASE WHEN zons.zon$nom$v IS NULL THEN ' ' ELSE zons.zon$nom$v END As zon$nom$v, CASE WHEN emps.prof$id$c IS NULL THEN ' ' ELSE emps.prof$id$c END As prof$id$c, CASE WHEN profs.prof$nom$v IS NULL THEN ' ' ELSE profs.prof$nom$v END As prof$nom$v, CASE WHEN emps.rol$id$c IS NULL THEN ' ' ELSE emps.rol$id$c END As rol$id$c, CASE WHEN rols.rol$nom$v IS NULL THEN ' ' ELSE rols.rol$nom$v END As rol$nom$v, CASE WHEN emps.emp$est$c IS NULL THEN ' ' ELSE emps.emp$est$c

Page 95: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

95

END As emp$est$c,1 INTO pv_cod_emp, pc_tip_cod_emp, pv_num_doc_emp, pv_nom_emp, pv_dir_emp,pd_fec_nac_emp, pv_telf_emp, pv_mail_emp,pc_sexo_emp, pc_est_civ_emp, pn_car_fam_emp, pv_cuen_banc_emp,pv_clave_emp, pc_bloq_emp,pc_dept_id_emp, pv_dept_name_emp, pc_zon_id_emp, pv_zon_name_emp,pc_prof_id_emp, pv_prof_name_emp,pc_rol_id_emp, pv_rol_name_emp, pc_est, ln_respuesta FROM meg_emps emps,meg_depts depts,meg_zons zons, meg_profs profs,meg_rols rols WHERE emps.emp$id$c = pc_id_emp AND emps.dept$id$c= depts.dept$id$c(+)AND emps.zon$id$c = zons.zon$id$c(+)AND emps.prof$id$c= profs.prof$id$c(+)AND emps.rol$id$c = rols.rol$id$c(+); EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_emps;

FUNCIÓN MEG_FNC_SEEK_GRID_COTZS

FUNCTION meg_fnc_seek_grid_cotzs (pv_numero meg_cotzs.cotz$num$c%TYPE, pv_fecha meg_cotzs.cotz$fec$d%TYPE, pv_nom_cliente meg_clis.cli$nom$v%TYPE, pv_nota meg_cotzs.cotz$nota$v%TYPE) RETURN VARCHAR2 IS pi_cursor_sql integer; pi_execute_sql integer; pv_cad_exec varchar2(1000); pr_cotz meg_cotzs%ROWTYPE; pr_clis meg_clis%ROWTYPE; pv_json_grd_cotz VARCHAR(20000); pn_tot_reg_cotz NUMBER(3, 0) := 0; BEGIN BEGIN pv_cad_exec := 'SELECT cotz$id$c, cotz$num$c, cotz$fec$d, clis.cli$nom$v, cotz$nota$v FROM meg_cotzs cotz, meg_clis clis

Page 96: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

96

WHERE cotz$est$c = ''0'' AND cotz.cli$id$c=clis.cli$id$c AND cotz$num$c LIKE ''%' || pv_numero || '%'' AND cotz$fec$d LIKE ''%' || pv_fecha || '%'' AND clis.cli$nom$v LIKE ''%' || pv_nom_cliente || '%'' AND cotz$nota$v LIKE ''%' || pv_nota || '%'''; pi_cursor_sql := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE( pi_cursor_sql, pv_cad_exec, DBMS_SQL.NATIVE ); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 1, pr_cotz.cotz$id$c,10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 2, pr_cotz.cotz$num$c,10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 3, pr_cotz.cotz$fec$d); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 4, pr_clis.cli$nom$v,150); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 5, pr_cotz.cotz$nota$v,1024); pi_execute_sql := DBMS_SQL.EXECUTE ( pi_cursor_sql ); LOOP EXIT WHEN DBMS_SQL.FETCH_ROWS( pi_cursor_sql ) = 0; DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 1, pr_cotz.cotz$id$c); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 2, pr_cotz.cotz$num$c); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 3, pr_cotz.cotz$fec$d); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 4, pr_clis.cli$nom$v); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 5, pr_cotz.cotz$nota$v); pv_json_grd_cotz := TRIM(pv_json_grd_cotz) || '{"id":"' || pr_cotz.cotz$id$c || '","numero":"' || pr_cotz.cotz$num$c || '","fecha":"' || TO_CHAR(pr_cotz.cotz$fec$d,'DD/MM/YYYY') || '","cliente":"' || pr_clis.cli$nom$v || '","detalle":"' || pr_cotz.cotz$nota$v || '"},'; pn_tot_reg_cotz := pn_tot_reg_cotz + 1; END LOOP; DBMS_SQL.CLOSE_CURSOR( pi_cursor_sql ); IF pn_tot_reg_cotz > 0 THEN pv_json_grd_cotz := SUBSTR(pv_json_grd_cotz, 0, (LENGTH(pv_json_grd_cotz) - 1) ); pv_json_grd_cotz := '{"tot_cotz":' ||pn_tot_reg_cotz || ',"dat_cotz":[' || pv_json_grd_cotz || ']}'; ELSE pv_json_grd_cotz := '{"tot_cotz":0,"dat_cotz":[{}]}'; END IF; EXCEPTION WHEN OTHERS THEN pv_json_grd_cotz := '{"tot_cotz":0,"dat_cotz":[{}]}'; END; RETURN TRIM(pv_json_grd_cotz); END meg_fnc_seek_grid_cotzs;

FUNCIÓN MEG_FNC_SELECT_TAREAS

FUNCTION meg_fnc_select_tareas(pc_id in meg_tars.tar$id$c%TYPE, pv_cod out meg_tars.tar$cod$v%TYPE, pc_emp_id out meg_emps.emp$id$c%TYPE, pv_emp_name out meg_emps.emp$nomb$v%TYPE, pv_asun out meg_tars.tar$asun$v%TYPE, pd_fec_ini out varchar2, pd_fec_fin out varchar2,

Page 97: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

97

pc_prior_id out meg_pars.par$id$c%TYPE, pv_prior_name out meg_pars.par$nom$v%TYPE, pn_comp out meg_tars.tar$comp$n%TYPE, pd_avis out varchar2, pv_nota out meg_tars.tar$nota$v%TYPE, pc_tip_id out meg_pars.par$id$c%TYPE, pv_tip_name out meg_pars.par$nom$v%TYPE) RETURN NUMBER IS ln_respuesta NUMBER; BEGIN ln_respuesta := 0; BEGIN SELECT CASE WHEN tar.tar$cod$v IS NULL THEN ' ' ELSE tar.tar$cod$v END, CASE WHEN tar.emp$id$c IS NULL THEN ' ' ELSE emp.emp$id$c END, CASE WHEN emp.emp$nomb$v IS NULL THEN ' ' ELSE emp.emp$nomb$v END, CASE WHEN tar.tar$asun$v IS NULL THEN ' ' ELSE tar.tar$asun$v END, CASE WHEN TO_CHAR(tar.tar$ini$d,'DD/MM/YYYY') IS NULL THEN ' ' ELSE TO_CHAR(tar.tar$ini$d,'DD/MM/YYYY') END, CASE WHEN TO_CHAR(tar.tar$fin$d,'DD/MM/YYYY') IS NULL THEN ' ' ELSE TO_CHAR(tar.tar$fin$d,'DD/MM/YYYY') END, CASE WHEN prio.par$id$c IS NULL THEN ' ' ELSE prio.par$id$c END, CASE WHEN prio.par$nom$v IS NULL THEN ' ' ELSE prio.par$nom$v END, CASE WHEN TO_CHAR(tar.tar$avis$d,'DD/MM/YYYY') IS NULL THEN ' ' ELSE TO_CHAR(tar.tar$avis$d,'DD/MM/YYYY') END, CASE WHEN tar.tar$nota$v IS NULL THEN ' ' ELSE tar.tar$nota$v END, CASE WHEN tip.par$id$c IS NULL THEN ' ' ELSE tip.par$id$c END, CASE WHEN tip.par$nom$v IS NULL THEN ' ' ELSE tip.par$nom$v END,1 INTO pv_cod, pc_emp_id, pv_emp_name, pv_asun, pd_fec_ini, pd_fec_fin, pc_prior_id, pv_prior_name, pn_comp, pd_avis, pv_nota, pc_tip_id, pv_tip_name, ln_respuesta FROM meg_tars tar, meg_emps emp, meg_pars prio, meg_pars tip WHERE tar.tar$id$c = pc_id AND tar.emp$id$c = emp.emp$id$c(+) AND tar.prior$id$c = prio.par$id$c(+) AND tar.tip$id$c = tip.par$id$c(+); EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_tareas;

FUNCIÓN MEG_FNC_SEEK_GRID_TARS

FUNCTION meg_fnc_seek_grid_tars ( pv_cod meg_tars.tar$cod$v%TYPE,

Page 98: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

98

pv_asun meg_tars.tar$asun$v%TYPE, pv_emp_name meg_emps.emp$nomb$v%TYPE) RETURN VARCHAR2 IS pi_cursor_sql integer; pi_execute_sql integer; pv_cad_exec varchar2(1000); pr_tars meg_tars%ROWTYPE; pr_emps meg_emps%ROWTYPE; pv_json_grd_tars VARCHAR(30000); pn_tot_reg_tars NUMBER(3, 0) := 0; BEGIN BEGIN pv_cad_exec := 'SELECT tar.tar$id$c, tar.tar$cod$v, tar.tar$asun$v, emp.emp$nomb$v FROM meg_tars tar, meg_emps emp WHERE tar$est$c = ''0'' AND tar.emp$id$c = emp.emp$id$c AND tar$cod$v LIKE ''%' || pv_cod || '%'' AND tar$asun$v LIKE ''%' || pv_asun || '%'' AND emp.emp$nomb$v LIKE ''%' || pv_emp_name || '%'''; pi_cursor_sql := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE( pi_cursor_sql, pv_cad_exec, DBMS_SQL.NATIVE ); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 1, pr_tars.tar$id$c, 10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 2, pr_tars.tar$cod$v, 10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 3, pr_tars.tar$asun$v,150); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 4, pr_emps.emp$nomb$v, 150); pi_execute_sql := DBMS_SQL.EXECUTE ( pi_cursor_sql ); LOOP EXIT WHEN DBMS_SQL.FETCH_ROWS( pi_cursor_sql ) = 0; DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 1, pr_tars.tar$id$c); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 2, pr_tars.tar$cod$v); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 3, pr_tars.tar$asun$v); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 4,pr_emps.emp$nomb$v); pv_json_grd_tars := TRIM(pv_json_grd_tars) || '{"id":"' || pr_tars.tar$id$c || '","code":"' || pr_tars.tar$cod$v || '","asun":"' || pr_tars.tar$asun$v || '","emp":"' || pr_emps.emp$nomb$v || '"},'; pn_tot_reg_tars := pn_tot_reg_tars + 1; END LOOP; DBMS_SQL.CLOSE_CURSOR( pi_cursor_sql ); IF pn_tot_reg_tars > 0 THEN pv_json_grd_tars := SUBSTR(pv_json_grd_tars, 0, ( LENGTH(pv_json_grd_tars) - 1) ); pv_json_grd_tars := '{"tot_tars":' ||pn_tot_reg_tars || ',"dat_tars":[' || pv_json_grd_tars || ']}'; ELSE pv_json_grd_tars := '{"tot_tars":0,"dat_tars":[{}]}'; END IF; EXCEPTION WHEN OTHERS THEN pv_json_grd_tars := '{"tot_tars":0,"dat_tars":[{}]}'; END;

Page 99: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

99

RETURN TRIM(pv_json_grd_tars); END meg_fnc_seek_grid_tars;

FUNCIÓN MEG_FNC_SELECT_INCIDS

FUNCTION meg_fnc_select_incids( pc_id IN meg_incids.incid$id$c%TYPE, pv_code OUT meg_incids.incid$cod$v%TYPE, pc_tipo OUT meg_incids.incid$tp$c%TYPE, pd_fec OUT VARCHAR2, pv_cli_cod OUT meg_clis.cli$cod$v%TYPE, pv_cli_name OUT meg_clis.cli$nom$v%TYPE, pc_prio_id OUT meg_pars.par$id$c%TYPE, pv_prio_name OUT meg_pars.par$nom$v%TYPE, pc_stat_id OUT meg_pars.par$id$c%TYPE, pv_stat_name OUT meg_pars.par$nom$v%TYPE, pc_num_id OUT meg_vents.vent$id$c%TYPE, pc_num_fact OUT meg_vents.vent$num$c%TYPE, pc_emp_cod OUT meg_emps.emp$cod$v%TYPE, pv_emp_name OUT meg_emps.emp$nomb$v%TYPE, pv_desc OUT meg_incids.incid$desc$v%TYPE, pv_det OUT meg_incids.incid$det$v%TYPE, pc_est OUT meg_incids.incid$est$c%TYPE ) RETURN NUMBER IS ln_respuesta NUMBER; BEGIN ln_respuesta := 0; BEGIN SELECT CASE WHEN incids.incid$cod$v IS NULL THEN ' ' ELSE incids.incid$cod$v END, CASE WHEN incids.incid$tp$c IS NULL THEN ' ' ELSE incids.incid$tp$c END, CASE WHEN TO_CHAR(incids.incid$fec$d,'DD/MM/YYYY') IS NULL THEN ' ' ELSE TO_CHAR(incids.incid$fec$d,'DD/MM/YYYY') END, CASE WHEN clis.cli$cod$v IS NULL THEN ' ' ELSE clis.cli$cod$v END, CASE WHEN clis.cli$nom$v IS NULL THEN ' ' ELSE clis.cli$nom$v END, CASE WHEN prio.par$id$c IS NULL THEN ' ' ELSE prio.par$id$c END, CASE WHEN prio.par$nom$v IS NULL THEN ' ' ELSE prio.par$nom$v END, CASE WHEN stat.par$id$c IS NULL THEN ' ' ELSE stat.par$id$c END, CASE WHEN stat.par$nom$v IS NULL THEN ' ' ELSE stat.par$nom$v END, CASE WHEN venta.vent$id$c IS NULL THEN ' ' ELSE venta.vent$id$c END, CASE WHEN venta.vent$num$c IS NULL THEN ' ' ELSE venta.vent$num$c END, CASE WHEN emps.emp$cod$v IS NULL THEN ' ' ELSE emps.emp$cod$v END, CASE WHEN emps.emp$nomb$v IS NULL THEN ' ' ELSE emps.emp$nomb$v END, CASE WHEN incids.incid$desc$v IS NULL THEN ' ' ELSE incids.incid$desc$v END,

Page 100: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

100

CASE WHEN incids.incid$det$v IS NULL THEN ' ' ELSE incids.incid$det$v END, CASE WHEN incids.incid$est$c IS NULL THEN ' ' ELSE incids.incid$est$c END,1 INTO pv_code, pc_tipo, pd_fec, pv_cli_cod, pv_cli_name, pc_prio_id, pv_prio_name, pc_stat_id, pv_stat_name, pc_num_id, pc_num_fact, pc_emp_cod, pv_emp_name, pv_desc, pv_det, pc_est, ln_respuesta FROM meg_incids incids, meg_clis clis, meg_emps emps, meg_pars prio, meg_pars stat, meg_vents venta WHERE incids.incid$id$c = pc_id AND incids.cli$id$c = clis.cli$id$c(+) AND incids.emp$id$c = emps.emp$id$c(+) AND incids.prio$id$c = prio.par$id$c (+)AND incids.fact$id$c = venta.vent$id$c (+) AND incids.stat$id$c = stat.par$id$c (+); EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_incids;

FUNCIÓN MEG_FNC_INCIDS_COMBO

FUNCTION meg_fnc_incids_combo RETURN VARCHAR2 IS lv_cmb_incids VARCHAR2(10000); ln_incids_regs NUMBER(3) := 0; CURSOR cursor_incid IS SELECT incid$id$c, incid$desc$v FROM meg_incids ORDER BY incid$det$v; BEGIN lv_cmb_incids := '{"data" : ['; BEGIN FOR incid_record IN cursor_incid LOOP lv_cmb_incids := lv_cmb_incids || '{"IncidID": "' || incid_record.incid$id$c || '", "IncidNota": "' || incid_record.incid$desc$v || '"},'; ln_incids_regs := ln_incids_regs + 1; END LOOP; IF ln_incids_regs > 0 THEN lv_cmb_incids := SUBSTR(lv_cmb_incids,0,( LENGTH(lv_cmb_incids) – 1) ); END IF; lv_cmb_incids := lv_cmb_incids || ']}'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_cmb_incids := '{"data" : []}';

Page 101: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

101

WHEN OTHERS THEN lv_cmb_incids := '{"data" : []}'; END; RETURN RTRIM(LTRIM(lv_cmb_incids)); END meg_fnc_incids_combo;

FUNCIÓN MEG_FNC_SELECT_CODE_INCID

FUNCTION meg_fnc_select_code_incid( pv_code_incid IN meg_incids.incid$cod$v%TYPE ) RETURN NUMBER IS ln_respuesta NUMBER; lv_code_incid meg_incids.incid$cod$v%TYPE; BEGIN ln_respuesta := 0; lv_code_incid := null; BEGIN SELECT incid$cod$v INTO lv_code_incid FROM meg_incids WHERE UPPER(RTRIM(incid$cod$v)) = UPPER(RTRIM(pv_code_incid)); IF lv_code_incid IS NOT NULL THEN ln_respuesta := 1; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_code_incid;

FUNCIÓN MEG_FNC_INCID_PRIOR_COMBO

FUNCTION meg_fnc_incid_prior_combo RETURN VARCHAR2 IS lv_cmb_incid VARCHAR2(10000); ln_incid_regs NUMBER(3) := 0; CURSOR cursor_incid IS SELECT par$id$c, par$nom$v FROM meg_pars WHERE pad$id$c = '0000000010'; BEGIN lv_cmb_incid := '{"data" : ['; BEGIN FOR incid_record IN cursor_incid LOOP lv_cmb_incid := lv_cmb_incid || '{"prioID": "' || incid_record.par$id$c || '", "prioName": "' || incid_record.par$nom$v || '"},'; ln_incid_regs := ln_incid_regs + 1; END LOOP; IF ln_incid_regs > 0 THEN

Page 102: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

102

lv_cmb_incid := SUBSTR(lv_cmb_incid, 0,( LENGTH(lv_cmb_incid) - 1)); END IF; lv_cmb_incid := lv_cmb_incid || ']}'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_cmb_incid := '{"data" : []}'; WHEN OTHERS THEN lv_cmb_incid := '{"data" : []}'; END; RETURN RTRIM(LTRIM(lv_cmb_incid)); END meg_fnc_incid_prior_combo;

FUNCIÓN MEG_FNC_INCID_STAT_COMBO

FUNCTION meg_fnc_incid_stat_combo RETURN VARCHAR2 IS lv_cmb_incid VARCHAR2(10000); ln_incid_regs NUMBER(3) := 0; CURSOR cursor_incid_tip IS SELECT par$id$c, par$nom$v FROM meg_pars WHERE pad$id$c = '0000000003' AND par$val$v < '3' ORDER BY par$id$c; BEGIN lv_cmb_incid := '{"data" : ['; BEGIN FOR incid_record_tip IN cursor_incid_tip LOOP lv_cmb_incid := lv_cmb_incid || '{"statID": "' || incid_record_tip.par$id$c || '", "statName": "' || incid_record_tip.par$nom$v || '"},'; ln_incid_regs := ln_incid_regs + 1; END LOOP; IF ln_incid_regs > 0 THEN lv_cmb_incid := SUBSTR(lv_cmb_incid, 0,( LENGTH(lv_cmb_incid) -1) ); END IF; lv_cmb_incid := lv_cmb_incid || ']}'; EXCEPTION WHEN NO_DATA_FOUND THEN lv_cmb_incid := '{"data" : []}'; WHEN OTHERS THEN lv_cmb_incid := '{"data" : []}'; END; RETURN RTRIM(LTRIM(lv_cmb_incid)); END meg_fnc_incid_stat_combo;

FUNCIÓN MEG_FNC_SELECT_CTZS_CAB

FUNCTION meg_fnc_select_ctzs_cab (pc_id_cotz IN meg_cotzs.cotz$id$c%TYPE, pc_num_cotz OUT meg_cotzs.cotz$num$c%TYPE, pc_id_cli OUT meg_cotzs.cli$id$c%TYPE, pc_cod_cli OUT meg_clis.cli$cod$v%TYPE,

Page 103: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

103

pv_name_cli OUT meg_clis.cli$nom$v%TYPE, pc_id_emp OUT meg_cotzs.emp$id$c%TYPE, pv_cod_emp OUT meg_emps.emp$cod$v%TYPE, pv_name_emp OUT meg_emps.emp$nomb$v%TYPE, pd_fec_cotz OUT varchar2, pd_valid_cotz OUT varchar2, pv_detalle_cotz OUT meg_cotzs.cotz$nota$v%TYPE, pn_subt_cotz OUT meg_cotzs.cotz$subt$n%TYPE, pn_val_desc_cotz OUT meg_cotzs.cotz$val$desc$n%TYPE, pn_val_iva_cotz OUT meg_cotzs.cotz$val$imp$n%TYPE, pn_val_tot_cotz OUT meg_cotzs.cotz$tot$n%TYPE, pc_est_ctz OUT meg_cotzs.cotz$est$c%TYPE) RETURN NUMBER IS ln_respuesta NUMBER; BEGIN ln_respuesta := 0; BEGIN select CASE WHEN ctz.cotz$num$c IS NULL THEN ' ' ELSE ctz.cotz$num$c END As cotz$num$c, CASE WHEN ctz.cli$id$c IS NULL THEN ' ' ELSE ctz.cli$id$c END As cli$id$c, CASE WHEN clis.cli$cod$v IS NULL THEN ' ' ELSE clis.cli$cod$v END As cli$cod$v, CASE WHEN clis.cli$nom$v IS NULL THEN ' ' ELSE clis.cli$nom$v END As cli$nom$v, CASE WHEN ctz.emp$id$c IS NULL THEN ' ' ELSE ctz.emp$id$c END As emp$id$c, CASE WHEN emps.emp$cod$v IS NULL THEN ' ' ELSE emps.emp$cod$v END As emp$cod$v, CASE WHEN emps.emp$nomb$v IS NULL THEN ' ' ELSE emps.emp$nomb$v END As emp$nomb$v, CASE WHEN TO_CHAR(ctz.cotz$fec$d,'DD/MM/YYYY') IS NULL THEN ' ' ELSE TO_CHAR(ctz.cotz$fec$d,'DD/MM/YYYY')END As cotz$fec$d, CASE WHEN TO_CHAR(ctz.cotz$valz$d,'DD/MM/YYYY') IS NULL THEN ' ' ELSE TO_CHAR(ctz.cotz$valz$d,'DD/MM/YYYY')END As cotz$valz$d, CASE WHEN ctz.cotz$nota$v IS NULL THEN ' ' ELSE ctz.cotz$nota$v END As cotz$nota$v, CASE WHEN ctz.cotz$subt$n IS NULL THEN 0.00 ELSE ctz.cotz$subt$n END AS cotz$subt$n, CASE WHEN ctz.cotz$val$desc$n IS NULL THEN 0.00 ELSE ctz.cotz$val$desc$n END AS cotz$val$desc$n, CASE WHEN ctz.cotz$val$imp$n IS NULL THEN 0.00 ELSE ctz.cotz$val$imp$n END As cotz$val$imp$n, CASE WHEN ctz.cotz$tot$n IS NULL THEN 0.00 ELSE ctz.cotz$tot$n END As cotz$tot$n, CASE WHEN ctz.cotz$est$c IS NULL THEN ' ' ELSE ctz.cotz$est$c END As cotz$est$c, 1 INTO pc_num_cotz, pc_id_cli, pc_cod_cli, pv_name_cli,

Page 104: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

104

pc_id_emp, pv_cod_emp, pv_name_emp, pd_fec_cotz, pd_valid_cotz, pv_detalle_cotz, pn_subt_cotz, pn_val_desc_cotz, pn_val_iva_cotz, pn_val_tot_cotz, pc_est_ctz, ln_respuesta FROM meg_cotzs ctz INNER JOIN meg_clis clis on clis.cli$id$c = ctz.cli$id$c INNER JOIN meg_emps emps on emps.emp$id$c = ctz.emp$id$c WHERE ctz.cotz$id$c = pc_id_cotz; EXCEPTION WHEN NO_DATA_FOUND THEN ln_respuesta := 0; WHEN OTHERS THEN ln_respuesta := 0; END; RETURN ln_respuesta; END meg_fnc_select_ctzs_cab;

FUNCIÓN MEG_FNC_SELECT_CTZS_DET

FUNCTION meg_fnc_select_ctzs_det( pc_ctz_id meg_dets_cotzs.cotz$id$c%TYPE) RETURN VARCHAR2 IS pi_cursor_sql integer; pi_execute_sql integer; pv_cad_exec varchar2(1000);

pr_cotzdet meg_dets_cotzs%ROWTYPE; pr_prod meg_prods%ROWTYPE; pv_json_grd_cotz VARCHAR(20000); pn_tot_reg_cotz NUMBER(3,0) := 0; BEGIN BEGIN pv_cad_exec := 'SELECT ctzdet.prod$id$c, prod.prod$cod$v, prod.prod$nom$v, ctzdet.det_cotz$cant$n, ctzdet.det_cotz$prec$n, ctzdet.det_cotz$subt$n, ctzdet.det_cotz$val$desc$n, ctzdet.det_cotz$val$imp$n, ctzdet.det_cotz$tot$n FROM meg_dets_cotzs ctzdet INNER JOIN meg_cotzs ctz on ctz.cotz$id$c = ctzdet.cotz$id$c INNER JOIN meg_prods prod on prod.prod$id$c = ctzdet.prod$id$c WHERE ctzdet.cotz$id$c = pc_ctz_id'; pi_cursor_sql := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE( pi_cursor_sql, pv_cad_exec, DBMS_SQL.NATIVE ); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql,1,pr_cotzdet.prod$id$c,10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 2, pr_prod.prod$cod$v,15); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 3, pr_prod.prod$nom$v,150); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 4, pr_cotzdet.det_cotz$cant$n,8.2);

Page 105: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

105

DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 5, pr_cotzdet.det_cotz$prec$n,8.2); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 6, pr_cotzdet.det_cotz$subt$n,8.2); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 7, pr_cotzdet.det_cotz$val$desc$n,8.2); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 8, pr_cotzdet.det_cotz$val$imp$n,8.2); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 9, pr_cotzdet.det_cotz$tot$n,8.2); pi_execute_sql := DBMS_SQL.EXECUTE (pi_cursor_sql); LOOP EXIT WHEN DBMS_SQL.FETCH_ROWS( pi_cursor_sql ) = 0; DBMS_SQL.COLUMN_VALUE(pi_cursor_sql, 1, pr_cotzdet.prod$id$c); DBMS_SQL.COLUMN_VALUE(pi_cursor_sql, 2, pr_prod.prod$cod$v); DBMS_SQL.COLUMN_VALUE(pi_cursor_sql, 3, pr_prod.prod$nom$v); DBMS_SQL.COLUMN_VALUE(pi_cursor_sql, 4, pr_cotzdet.det_cotz$cant$n); DBMS_SQL.COLUMN_VALUE(pi_cursor_sql, 5, pr_cotzdet.det_cotz$prec$n); DBMS_SQL.COLUMN_VALUE(pi_cursor_sql, 6, pr_cotzdet.det_cotz$subt$n); DBMS_SQL.COLUMN_VALUE(pi_cursor_sql, 7, pr_cotzdet.det_cotz$val$desc$n); DBMS_SQL.COLUMN_VALUE(pi_cursor_sql, 8, pr_cotzdet.det_cotz$val$imp$n); DBMS_SQL.COLUMN_VALUE(pi_cursor_sql, 9, pr_cotzdet.det_cotz$tot$n); pv_json_grd_cotz := TRIM(pv_json_grd_cotz) || '{"detID":"' || pr_cotzdet.prod$id$c || '","codeProd":"' || pr_prod.prod$cod$v || '","descProd":"' || pr_prod.prod$nom$v || '","cantProd":"' || pr_cotzdet.det_cotz$cant$n || '","precProd":"' || pr_cotzdet.det_cotz$prec$n || '","subtProd":"' || pr_cotzdet.det_cotz$subt$n || '","dctoProd":"' || pr_cotzdet.det_cotz$val$desc$n || '","ivaProd":"' || pr_cotzdet.det_cotz$val$imp$n || '","totProd":"' || pr_cotzdet.det_cotz$tot$n || '"},'; pn_tot_reg_cotz := pn_tot_reg_cotz + 1; END LOOP; DBMS_SQL.CLOSE_CURSOR( pi_cursor_sql ); IF pn_tot_reg_cotz > 0 THEN pv_json_grd_cotz := SUBSTR(pv_json_grd_cotz, 0, (LENGTH(pv_json_grd_cotz) - 1) ); pv_json_grd_cotz := '{"tot_prods":' ||pn_tot_reg_cotz || ',"dat_prods":[' || pv_json_grd_cotz || ']}'; ELSE pv_json_grd_cotz := '{"tot_prods":0,"dat_prods":[{}]}'; END IF; EXCEPTION WHEN OTHERS THEN pv_json_grd_cotz := '{"tot_prods":0,"dat_prods":[{}]}'; END;

Page 106: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

106

RETURN TRIM(pv_json_grd_cotz); END meg_fnc_select_ctzs_det;

FUNCIÓN MEG_PRC_LOGIN_CLI_WEB

PROCEDURE meg_prc_login_cli_web ( pv_usr_cli IN meg_clis.cli$cod$v%TYPE, pc_id_cli OUT meg_clis.cli$id$c%TYPE, pv_cod_cli OUT meg_clis.cli$cod$v%TYPE, pv_pass_cli OUT meg_clis.cli$pass$c%TYPE, pv_nom_cli OUT meg_clis.cli$nom$v%TYPE ) IS BEGIN BEGIN SELECT cli$id$c, cli$cod$v, cli$nom$v, cli$pass$c INTO pc_id_cli, pv_cod_cli, pv_nom_cli, pv_pass_cli FROM meg_clis WHERE UPPER(cli$cod$v) = UPPER(pv_usr_cli); EXCEPTION WHEN NO_DATA_FOUND THEN pv_cod_cli := NULL; WHEN OTHERS THEN pv_cod_cli := NULL; END; END meg_prc_login_cli_web;

FUNCIÓN MEG_FNC_SEEK_GRID_VENTAS

FUNCTION meg_fnc_seek_grid_ventas (pv_num meg_vents.vent$num$c%TYPE, pd_fec meg_vents.vent$fec$d%TYPE, pv_nom_cli meg_clis.cli$nom$v%TYPE, pv_nom_emp meg_emps.emp$nomb$v%TYPE) RETURN VARCHAR2 IS pi_cursor_sql integer; pi_execute_sql integer; pv_cad_exec varchar2(1000); pr_vnt meg_vents%ROWTYPE; pr_clis meg_clis%ROWTYPE; pr_emps meg_emps%ROWTYPE; pv_json_grd_vnt VARCHAR(31000); pn_tot_reg_vnt NUMBER(3, 0) := 0; BEGIN BEGIN pv_cad_exec :='SELECT vnt.vent$id$c, vnt.vent$num$c, vnt.vent$fec$d, clis.cli$nom$v, emp.emp$nomb$v FROM meg_vents vnt, meg_clis clis, meg_emps emp WHERE vnt.vent$est$c = ''0'' AND vnt.vent$id$c between ''0000000001'' and ''0000000020''AND vnt.cli$id$c = clis.cli$id$c (+) AND vnt.emp$id$c = emp.emp$id$c (+) AND vnt.vent$num$c LIKE ''%' || pv_num || '%'' AND

Page 107: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

107

vnt.vent$fec$d LIKE ''%' || pd_fec || '%'' AND clis.cli$nom$v LIKE ''%' || pv_nom_cli || '%'' AND emp.emp$nomb$v LIKE ''%' || pv_nom_emp || '%'''; pi_cursor_sql := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE( pi_cursor_sql, pv_cad_exec, DBMS_SQL.NATIVE); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 1, pr_vnt.vent$id$c,10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 2, pr_vnt.vent$num$c,10); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 3, pr_vnt.vent$fec$d); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 4, pr_clis.cli$nom$v,150); DBMS_SQL.DEFINE_COLUMN( pi_cursor_sql, 5, pr_emps.emp$nomb$v,150); pi_execute_sql := DBMS_SQL.EXECUTE ( pi_cursor_sql ); LOOP EXIT WHEN DBMS_SQL.FETCH_ROWS( pi_cursor_sql ) = 0; DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 1, pr_vnt.vent$id$c); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 2, pr_vnt.vent$num$c); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 3, pr_vnt.vent$fec$d); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 4, pr_clis.cli$nom$v); DBMS_SQL.COLUMN_VALUE( pi_cursor_sql, 5, pr_emps.emp$nomb$v); pv_json_grd_vnt:=TRIM(pv_json_grd_vnt) || '{"id":"' || pr_vnt.vent$id$c || '","num":"' || pr_vnt.vent$num$c || '","fec":"' || TO_CHAR(pr_vnt.vent$fec$d,'DD/MM/YYYY')|| '","cli":"' || pr_clis.cli$nom$v || '","emp":"' || pr_emps.emp$nomb$v ||'"},'; pn_tot_reg_vnt := pn_tot_reg_vnt + 1; END LOOP; DBMS_SQL.CLOSE_CURSOR( pi_cursor_sql ); IF pn_tot_reg_vnt > 0 THEN pv_json_grd_vnt := SUBSTR(pv_json_grd_vnt, 0, ( LENGTH(pv_json_grd_vnt) - 1) ); pv_json_grd_vnt := '{"tot_vnt":' ||pn_tot_reg_vnt || ',"dat_vnt":[' || pv_json_grd_vnt || ']}'; ELSE pv_json_grd_vnt := '{"tot_vnt":0,"dat_vnt":[{}]}'; END IF; EXCEPTION WHEN OTHERS THEN pv_json_grd_vnt := '{"tot_vnt":0,"dat_vnt":[{}]}'; END; RETURN TRIM(pv_json_grd_vnt); END meg_fnc_seek_grid_ventas; END meg_pckg_select;

Page 108: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

108

1.8.4. MEG_PCKG_UPDATE

Este paquete contendrá las funciones y procedimientos que permitirán

la consulta de los registros de todas las tablas del sistema MEG-

CRM.

A continuación se detallan las funciones del paquete

MEG_PCKG_UPDATE:

PROCEDIMIENTO ALMACENADO

DESCRIPCION

meg_fnc_recs_update Actualiza los registros de la tabla meg_recs.

meg_fnc_rols_update Actualiza los registros de la tabla meg_rols.

meg_fnc_zons_update Actualiza los registros de la tabla meg_zons.

meg_fnc_emps_update Actualiza los registros de la tabla meg_emps.

meg_fnc_depts_update Actualiza los registros de la tabla meg_depts.

meg_fnc_pars_update Actualiza los registros de la tabla meg_pars.

meg_fnc_profs_update Actualiza los registros de la tabla meg_profs.

meg_fnc_sucs_update Actualiza los registros de la tabla meg_sucs.

meg_fnc_clis_update Actualiza los registros de la tabla meg_clis.

meg_fnc_incids_bits_update Actualiza los registros de la tabla meg_incids_bits

FUNCIÓN MEG_FNC_RECS_UPDATE

ln_num_reg NUMBER := 0; BEGIN UPDATE meg_recs SET rec$nom$v = pv_nom, rec$tip$recr$v = pv_tip, rec$id$rec$id$c = pc_pad,

Page 109: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

109

rec$fec$cre$d = pd_fec, rec$cre$por$v = pv_cre, rec$est$c = pc_est WHERE rec$id$c = pc_id; ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg);

FUNCIÓN MEG_FNC_ZONS_UPDATE

ln_num_reg NUMBER := 0; BEGIN UPDATE meg_zons SET zon$cod$v = pv_cod, zon$nom$v = pv_nom, pad$id$c = pc_padre_id, zon$fec$edt$d = SYSDATE, zon$edt$por$v = pv_user, zon$est$c = pc_est WHERE zon$id$c = pc_id; ln_num_reg := SQL%ROWCOUNT; RETURN ln_num_reg;

FUNCIÓN MEG_FNC_ROLS_UPDATE

ln_num_reg NUMBER := 0; BEGIN UPDATE meg_rols SET rol$nom$v = pv_nom, rol$cod$v = pv_code, rol$fec$edt$d = SYSDATE, rol$edt$por$v = pc_usr, rol$est$c = pc_est WHERE rol$id$c = pc_id;

/********* Insertando en la tabla de ROLES_RECURSOS los accesos*********/ seleccionados para ese rol ****/ IF pa_recs_id.COUNT > 0 THEN DELETE FROM meg_rols_recs WHERE rol$id$c = pc_id; FOR cont_recs IN 1 .. pa_recs_id.COUNT LOOP INSERT INTO meg_rols_recs( rol$id$c, rec$id$c, rol_rec$cre$por$v, rol_rec$fec$cre$d) VALUES( pc_id, pa_recs_id(cont_recs), pc_usr, SYSDATE ); END LOOP; END IF; /***** Actualizando en la tabla de EMPLEADOS el rol seleccionado para esos empleados *****/ UPDATE meg_emps SET rol$id$c = NULL, emp$edt$por$v = pc_usr, emp$fec$edt$d = SYSDATE WHERE rol$id$c = pc_id; IF pa_emps_id.COUNT > 0 THEN FOR cont_emps IN 1 .. pa_emps_id.COUNT LOOP

Page 110: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

110

UPDATE meg_emps SET rol$id$c = pc_id, emp$edt$por$v = pc_usr, emp$fec$edt$d = SYSDATE WHERE emp$id$c = pa_emps_id( cont_emps ); END LOOP; END IF; ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg);

FUNCIÓN MEG_FNC_EMPS_UPDATE

ln_num_reg NUMBER := 0; BEGIN UPDATE meg_emps SET emp$cod$v = pv_cod, emp$tip$doc$c = pc_tip_cod, emp$num$doc$v = pv_num_doc, emp$nomb$v = pv_nom, emp$dir$v = pv_dir, emp$fec$nac$d = pd_fec_nac, emp$telf$v = pv_telf, emp$mail$v = pv_mail, emp$sexo$c = pc_sexo, emp$est$civ$c = pc_est_civ, emp$carg$fam$n = pn_car_fam, emp$cuen$banc$v = pv_cuen_banc, emp$clave$v = pv_clave, emp$bloq$c = pc_bloq, dept$id$c = pc_dept_id, zon$id$c = pc_zon_id, prof$id$c = pc_prof_id, rol$id$c = pc_rol_id, emp$fec$edt$d = SYSDATE, emp$edt$por$v = pv_user, emp$est$c = pc_estd WHERE emp$id$c = pc_id; ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg);

FUNCIÓN MEG_FNC_DEPTS_UPDATE ln_num_reg NUMBER := 0; BEGIN UPDATE meg_depts SET dept$cod$v = pv_cod, dept$nom$v = pv_nom, pad$id$c = pc_padre_id, dept$fec$edt$d = SYSDATE, dept$edt$por$v = pv_usr, dept$est$c = pc_est WHERE dept$id$c = pc_id; ln_num_reg := SQL%ROWCOUNT;

Page 111: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

111

RETURN ln_num_reg; FUNCIÓN MEG_FNC_PARS_UPDATE

ln_num_reg NUMBER := 0; BEGIN UPDATE meg_pars SET par$cod$v = pv_cod, par$nom$v = pv_nom, par$val$v = pv_val, par$tip$v = pv_tip, par$id$par$id$c = pc_par_id, par$fec$edt$d = SYSDATE, par$edt$por$v = pv_usr, par$est$c = pc_est WHERE par$id$c = pc_id; ln_num_reg := SQL%ROWCOUNT; RETURN ln_num_reg;

FUNCIÓN MEG_FNC_PROFS_UPDATE ln_num_reg NUMBER := 0; BEGIN UPDATE meg_profs SET prof$cod$v = pv_cod, prof$nom$v = pv_nom, prof$fec$edt$d = SYSDATE, prof$edt$por$v = pv_usr, prof$est$c = pc_est WHERE prof$id$c = pc_id; ln_num_reg := SQL%ROWCOUNT; RETURN ln_num_reg;

FUNCIÓN MEG_FNC_SUCS_UPDATE ln_num_reg NUMBER := 0; BEGIN UPDATE meg_sucs SET suc$cod$v = pv_cod, suc$nom$v = pv_nom, suc$fec$edt$d = SYSDATE, suc$edt$por$v = pv_usr, suc$est$c = pc_est WHERE suc$id$c = pc_id; ln_num_reg := SQL%ROWCOUNT; RETURN ln_num_reg;

FUNCIÓN MEG_FNC_CLIS_UPDATE

ln_num_reg NUMBER := 0; BEGIN UPDATE meg_clis SET cli$cod$v = pv_cod,

Page 112: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

112

cli$tip$cli$c = pc_tip_cli, cli$tip$ide$c = pc_tip_ide, cli$num$ide$v = pv_num_ide, cli$nom$v = pv_nom, cli$dir$v = pv_dir, cli$tel$v = pv_tel, cli$fax$v = pv_fax, cli$est$civ$c = pc_est_civ, cli$mail$v = pv_mail, cli$pass$c = pc_pass, cli$desd$d = pd_desd, cli$sexo$c = pc_sexo, prof$id$c = pc_prof_id, act$com$id$c = pc_act_com_id, zon$id$c = pc_zon_id, emp$id$c = pc_emp_id, cli$fec$nac$d = pd_fec_nac, cli$pag$web$v = pv_pag_web, cli$rec$mail$c = pc_rec_mail, cli$est$c = pc_est WHERE cli$id$c = pc_id; ln_num_reg := SQL%ROWCOUNT; RETURN ln_num_reg;

FUNCIÓN MEG_FNC_INCIDS_UPDATE

ln_num_reg NUMBER := 0; BEGIN UPDATE meg_clis SET cli$cod$v = pv_cod, cli$tip$cli$c = pc_tip_cli, cli$tip$ide$c = pc_tip_ide, cli$num$ide$v= pv_num_ide, cli$nom$v = pv_nom, cli$dir$v = pv_dir, cli$tel$v = pv_tel, cli$fax$v = pv_fax, cli$est$civ$c = pc_est_civ, cli$mail$v = pv_mail, cli$pass$c = pc_pass, cli$desd$d = pd_desd, cli$sexo$c = pc_sexo, prof$id$c = pc_prof_id, act$com$id$c= pc_act_com_id, zon$id$c = pc_zon_id, emp$id$c = pc_emp_id, cli$fec$nac$d = pd_fec_nac, cli$pag$web$v = pv_pag_web, cli$rec$mail$c= pc_rec_mail, cli$est$c = pc_est WHERE cli$id$c = pc_id; ln_num_reg := SQL%ROWCOUNT; RETURN ln_num_reg;

Page 113: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

113

1.8.5. MEG_PCKG_FUNCTIONS

Este paquete contiene las funciones y procedimientos que se utilizan

en otros paquetes del sistema MEG-CRM.

A continuación se detallan las funciones del paquete

MEG_PCKG_FUNCTIONS:

PROCEDIMIENTO ALMACENADO

DESCRIPCION

meg_proc_send_mail Envía correos.

meg_proc_send_html_email Envìa correos html.

address_email Añade una dirección de correo.

send Envía correo del remitente.

meg_prc_check_stock

Chequea el stock de ventas

PROCEDIMIENTO MEG_PROC_SEND_MAIL ln_num_reg NUMBER := 0; BEGIN UPDATE meg_recs SET rec$nom$v = pv_nom, rec$tip$recr$v = pv_tip, rec$id$rec$id$c = pc_pad, rec$fec$cre$d = pd_fec, rec$cre$por$v = pv_cre, rec$est$c = pc_est WHERE rec$id$c = pc_id; ln_num_reg := SQL%ROWCOUNT; RETURN(ln_num_reg);

Page 114: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

114

1.9. Codificación del desarrollo del Proyecto

1.9.1. Código en Java

1.9.1.1. Clases: Atributos

Las clases que contendrán la declaración y definición de los

atributos de un objeto son: megDepts, megIncidencias, megPars,

megProfs, megRoles, megSucs, megUser, megZonas.

1.9.1.2. Clases: Métodos

Los métodos que utilizarán los objetos de las clases serán:

megDeptsBD: selectDept, consulta de los registros; insertDept,

inserta un registro; updateDept, actualiza los registros

pertenecientes al usuario, a la fecha de modificación y el estado;

deleteDept, actualiza los campos pertenecientes al usuario, a la

fecha de eliminación y el estado; validaCodeDept, valida que no

existan códigos duplicados; comboDept, carga el combo; treeDept,

carga el árbol en la ventana.

megIncidenciasBD: insertIncidencia, inserta un registro.

megParsBD: selectPar, consulta de los registros; insertPar,

inserta un registro; updatePar, actualiza los registros

Page 115: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

115

pertenecientes al usuario, a la fecha de modificación y el estado;

deletePar, actualiza los campos pertenecientes al usuario, a la

fecha de eliminación y el estado; validaCodePar, valida que no

existan códigos duplicados; comboPar, carga el combo; treePar,

carga el árbol en la ventana.

megProfsBD: selectProf, consulta de los registros; insertProf,

inserta un registro; updateProf, actualiza los registros

pertenecientes al usuario, a la fecha de modificación y el estado;

deleteProf, actualiza los campos pertenecientes al usuario, a la

fecha de eliminación y el estado; validaCodeProf, valida que no

existan códigos duplicados; comboProf, carga el combo; treeProf,

carga el árbol en la ventana.

megRolesBD: selectRol, consulta de los registros; insertRol,

inserta un registro; updateRol, actualiza los registros

pertenecientes al usuario, a la fecha de modificación y el estado;

deleteRol, actualiza los campos pertenecientes al usuario, a la

fecha de eliminación y el estado; validaCodeRol, valida que no

existan códigos duplicados; treeRolesPermisos, carga el árbol de

roles y permisos en la ventana; treeRoles, carga el árbol de roles

en la ventana.

megSeekBD: jSonClientes jSonEmpleados

Page 116: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

116

megSucsBD: selectSuc, consulta de los registros; insertSuc,

inserta un registro; updateSuc, actualiza los registros

pertenecientes al usuario, a la fecha de modificación y el estado;

deleteSuc, actualiza los campos pertenecientes al usuario, a la

fecha de eliminación y el estado; validaCodeSuc, valida que no

existan códigos duplicados; treeSuc, carga el árbol de sucursales

en la ventana.

megUserBD: getUserBD

megZonasBD: selectZona, consulta de los registros; insertZona,

inserta un registro; updateZona, actualiza los registros

pertenecientes al usuario, a la fecha de modificación y el estado;

deleteZona, actualiza los campos pertenecientes al usuario, a la

fecha de eliminación y el estado; validaCodeZona, valida que no

existan códigos duplicados; comboZona, carga el combo; treeZona,

carga el árbol de sucursales en la ventana.

1.9.1.3. Conexión a la base de datos

megParmsBase: conexionBD, establece la conexión a la base de

datos; rollbackCloseConnection, deshace los cambios y cierra la

conexión a la base de datos.

Page 117: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

117

1.9.2. Páginas creadas en Java (JSP)

cargarGrid: Carga el grid con los datos recuperados de la

consulta en la ventana de Bitácora de Clientes.

jsonCombos: Carga los combos que serán utilizados en varias

ventanas.

jsonTree: Carga los árboles que serán utilizados en varias ventanas.

logOut: Cierra la sesión

megDept: Recupera los datos ingesados en la ventana de

Mantenimientos de Departamentos.

megDesktop: Carga el html que invoca todas las funciones del java

script que contiene los módulos y al ambiente del sistema.

megIncidencias: Recupera los datos ingresados en la ventana de

Ingreso de Incidencias.

megPars: Recupera los datos ingresados en la ventana de

Mantenimiento de Parametros.

megProfs: Recupera los datos ingresados en la ventana de

Mantenimiento de Profesiones.

Page 118: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

118

megRoles: Recupera los datos ingresados en la ventana de

Mantenimiento de Roles.

megSeekClientes: Recupera el parámetro por el cual se va a filtrar la

consulta en la ventana de Bitácora de Clientes.

megSeekEmps: Recupera el parámetro por el cual se va a filtrar la

consulta en la ventana de Bitácora de Empleados.

megSucs: Recupera los datos ingresados en la ventana de

Mantenimientos de Sucursales.

megValidaUsuario: Recupera el usuario y la clave de la ventana del

Login del sistema.

megZonas : Recupera los datos ingresados en la ventana de

Mantenimiento de Zonas.

1.9.3. Java Script

meg-fnc-modules: fn_seek_clis, dibuja la ventana de búsqueda de

clientes; fn_seek_emps, dibuja la ventana de búsqueda de

empleados.

Page 119: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

119

meg-mant-modules: fn_mant_zonas, dibuja la ventana de

Mantenimiento de Zonas; fn_mant_roles, dibuja la ventana de

Mantenimiento de Roles; fn_mant_depts, dibuja la ventana de

Mantenimiento de Departamentos; fn_mant_pars, dibuja la ventana de

Mantenimiento de Parametros; fn_mant_profs, dibuja la ventana de

Mantenimiento de Profesiones; fn_mant_sucs, dibujaba la ventana de

Mantenimiento de Sucursales.

meg-inicial: En este java script se encontrarán las funciones que

dibujan las ventanas del sistema.

1.10. Instalación del FrameWork ExtJS.

Framework de javascript, basado originalmente en YUI, con pocas líneas

de código es posible realizar interfaces amigables para los usuarios. Es la

librería más avanzada para el desarrollo de aplicaciones con una

apariencia totalmente novedosa y una arquitectura flexible.

Pasos para la Instalación del FrameWork ExtJS.

Crear una carpeta llamada jmegCrm en la unidad de su preferencia, puede

ser la C: de su máquina.

C:\jmegCrm\

Page 120: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

120

En esta carpeta se debe crear directorios para los archivos CSS,

JavaScript, JSP, Imagenes.

C:\ jmegCrm\ | |-- css | |-- jsp | |-- Images | |-- javaScript | |-- ext-3.0.0

El siguiente paso es descargar el Framework ExtJS y copiar solo los

archivos necesarios para que funcione. Esos archivos deben de estar en la

Carpeta C:\jmegCrm\ext-3.0.0 y son los siguientes: ext-all.js y ext-all-

debug.js. Además copiar las carpetas ADAPTER y RESOURCES y

pegarlas en la misma carpeta.

• ext-all.js: en este archivo se encuentran todos los widgets y

componentes del framework.

• Adapter: en esta carpeta se encuentran varias librerías como

prototype, jQuery, YUI y Ext JS.

• Resources: en esta carpeta se encuentran las imágenes y estilos

necesarios para los componentes del framework.

Page 121: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

121

1.10.1. Importar el Framework en un HTML

Para importar el Framework a un documento HTML, es necesario

importar el estilo, el adapter y los componentes. A continuación se

muestran las respectivas rutas:

• ext-3.0.0/resources/css/ext-all.css

• ext-3.0.0/adapter/ext/ext-base.js

• ext-3.0.0/ext-all.js

Para importar los archivos mencionados lo hacemos de la siguiente

manera:

1. <link rel="stylesheet" type="text/css" href="../ext-

3.0.0/resources/css/ext-all.css" />

2. <script type="text/javascript" src="../ext-3.0.0/adapter/ext/ext-

base.js"></script>

3. <script type="text/javascript" src="../ext-3.0.0/ext-

all.js"></script>

En el Directorio raíz, es decir en jmegCrm se debe de crear una

página HTML que contenga la siguiente codificación, para este

proyecto es meg-login.html:

Page 122: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

122

<html>

<head>

<meta http-equiv="Content-Type" content="text/html;

charset=utf-8">

<title>Ingresar a megCRM - Universidad de Guayaquil</title>

<!--Libreria CSS de ext para que funcione el Framework -->

<link href="ext-3.0.0/resources/css/ext-all.css" type="text/css"

rel="stylesheet">

<!-- Fin de la invocación a las librerías ExtJS -->

<!-- Hoja de estilos de megCRM -->

< link href="css/megCss.css" type="text/css" rel="stylesheet">

<!-- Libreria JS de ext para que funcione el Framework -->

<script src="ext-3.0.0/adapter/ext/ext-base.js"

type="text/javascript"></script>

<script src="ext-3.0.0/ext-all.js" type="text/javascript"></script>

<!-- Fin de la invocación a las librerías -->

</head>

<body>

<!-- uso del JS que contiene la programación de la Plantilla

Ventana -->

<script type="text/javascript" src="javaScript/meg-

login.js"></script>

Page 123: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

123

</body>

</html>

Para que el navegador sepa que va a utilizar codificación JavaScript

hay que escribir las etiquetas <SCRIPT> y se le especifica que tipo de

codigo es con el parámetro TYPE="text/javascript". Se puede poner

código entre las etiquetas <SCRIPT TYPE="text/javascript">

</SCRIPT> o en su defecto, crear un archivo como meg-login.js y

colocarlo en el Directorio JavaScript, para lo cual el navegador debe

saber donde esta ubicado el archivo JS a través del parametro SRC

(source).

1.11. Instalación de Oracle 10g

1.11.1. Requerminientos para la instalación

Oracle es exigente tanto en espacio físico como en memoria ram.

Requiere una buena cantidad de ram, 128Mb solamente para la Base

de Datos, obviamente si se instala en el mismo equipo de desarrollo

entonces se necesita mas memoria para las herramientas de

desarrollo.

Page 124: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

124

En este sentido, con 256Mb se puede trabajar con la Base de Datos

arriba y la herramienta de desarrollo, aunque un poco lento.

Es recomendable tener 512Mb, para trabajar bien.

En cuanto a espacio en disco:

• Aproximadamente 1GB para oracle database (instalación

completa).

• Aproximadamente 1GB para oracle developer (instalación

completa).

1.11.2. Pasos para la instalación

MÉTODO DE INSTALACIÓN

Page 125: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

125

TIPO DE INSTALACIÓN

SELECCIÓN DEL DIRECTORIO RAÍZ

Page 126: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

126

REQUISITOS DE ORACLE

OPCIÓN DE CONFIGURACIÓN

Page 127: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

127

CONFIGURACIÓN DE BASE DE DATOS

ESPECIFICAR OPCIONES DE CONFIGURACIÓN DE BASE DE DATOS

Page 128: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

128

OPCIÓN DE GESTIÓN DE BASE DE DATOS

ESPECIFICAR OPCIÓN DE ALMACENAMIENTO DE BASE DE DATOS

Page 129: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

129

OPCIONES DE COPIA DE SEGURIDAD Y RECUPERACIÓN

CONTRASEÑAS DE ESQUEMA DE BASE DE DATOS

Page 130: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

130

RESUMEN

INSTALACIÓN DE ORACLE DATABASE

Page 131: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

131

ASISTENTE DE CONFIGURACIÓN DE BASE DE DATOS

INFORMACIÓN DE LA BASE DE DATOS

Page 132: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

132

GESTIÓN DE CONTRASEÑAS

FIN DE INSTALACIÓN

URL de Enterprise Manager Database Control - (orcl) :

http://localhost:1158/em.

Page 133: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

133

Los archivos de configuración de la base de datos se han instalado en

C:\oracle\product\10.2.0 mientras que los demás componentes

seleccionados se han instalado en C:\oracle\product\10.2.0\db_1.

Hay que tener cuidado de no suprimir por accidente estos archivos de

configuración.

La dirección URL de iSQL*Plus es:

ttp://localhost:5560/isqlplus

La dirección URL de DBA de iSQL*Plus es:

http://localhost:5560/isqlplus/dba

ORACLE ENTERPRISE MANAGER

Page 134: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

134

INSTANCIA DE BASE DE DATOS

Para editar los usuarios escogeremos la pestaña “Administración”. En

esta ventana se muestran varias opciones entre ellas: “Usuarios y

Privilegios”. Dentro de esta ventana se podrá administrar los

usuarios.

Page 135: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

135

PESTAÑA DE ADMINISTRACIÓN

OPCIÓN DE “USUARIOS Y PRIVILEGIOS”

Page 136: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

136

BUSCAR USUARIOS

EDITAR USUARIOS

Espacio de trabajo del iSQL Plus.

Page 137: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

137

ESPACIO DE TRABAJO

1.12. Instalación y Configuración de Oracle Develop er

En esta opción debemos configurar el Servicio para las Herramientas de

Desarrollo, y encuentrar la BD.

Page 138: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

138

GESTOR DE RED DE ORACLE

Pulsamos el botón ”Agregar” y se abre una ventana para que

podamos darle un nombre a nuestra conexión.

Para este caso escogimos el nombre de DESARROLLO .

Page 139: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

139

ASISTENTE DE NOMBRE DE SERVICIO DE RED

Elegimos la opción TCP/IP (Protocolo Internet).

PROTOCOLO

Aquí escribimos el nombre de nuestra PC o su dirección IP (si no se

la saben pueden usar localhost ).

Page 140: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

140

VALORES DEL PROTOCOLO

El nombre del SID de nuestra base de datos (ORCL)

SERVICIO

Lo siguiente es pulsar el botón PROBAR , para verificar que nuestra

configuración esta correcta.

Page 141: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

141

PRUEBA

Al hacer la prueba, le realiza con el Usuario por defecto (SCOTT) y su

contraseña inicial (TIGER), si la misma esta bloqueada dará el error

en la prueba. Podemos cambiar el Usuario y contraseña de la Prueba

con el botón CAMBIAR CONEXIÓN .

PRUEBA DE CONEXIÓN

Page 142: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

142

CAMBIAR CONEXIÓN

Pulsamos TERMINAR y nuestra configuración debe de mostrarse en

el GESTOR DE RED de Oracle.

CONFIGURACIÓN DE DIRECCIONES

Page 143: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

143

Guardamos la configuración y ya la podremos usar para las

conexiones de desarrollo.

GUARDAR CONFIGURACION DE RED

1.13. Configuración del Centos 5.5

1.13.1. Requerimientos para la instalación

CentOS (Community ENTerprise Operating System) es un clon a nivel

binario de la distribución Linux Red Hat Enterprise Linux RHEL,

compilado por voluntarios a partir del código fuente.

Red Hat Enterprise Linux, o RHEL, es la versión comercial de la

conocida distribución de Red Hat. CentOS se basa en su código

fuente, creando una nueva distribución con prácticamente las mismas

características y funcionalidades y abierto al público.

El hardware recomendado para la instalación de Centos 5.5 es el

siguiente:

Page 144: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

144

Memoria RAM : 192 MB (Minimo) .

Espacio en Disco Duro: 850 MB (Minimo) - 2 GB (Recomendado)

Procesador: Intel Pentium I/II/III/IV/Celeron, AMD K6/II/III, AMD Duron,

AMD Athlon/XP/MP.

1.13.2. Instalación de Centros 5.5

CONFIGURACIÓN DE CENTOS

CONFIGURACIÓN DE AUTENTICACIÓN

Page 145: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

145

CONFIGURACIÓN DEL FIREWALL

DESHABILITAR EL FIREWALL

CONFIGURACIÓN DE RED

Page 146: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

146

Para modificar la configuración de red en Centos 5.5 desde la consola

de comandos escribimos (con el acceso de root):

system-config-network

Y se mostrará esta ventana:

EDITAR DISPOSITIVO

Escogemos la tarjeta de red a modificar (por defecto la que tiene el

nombre de eth0) y pulsamos ENTER

SELECCIONAR DISPOSITIVO

Luego modificamos la configuración de eth0 (que por defecto es

DHCP) y le damos una IP fija de la red que estamos usando

Page 147: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

147

(192.168.0.104), la mascara (255.255.255.0) y el Gateway (de nuevo

la IP del router 192.168.0.1). Pulsamos OK.

CONFIGURACIÓN

Regresamos a la Pantalla Anterior y esta vez nos situamos en el

botón SAVE y pulsamos ENTER

DISPOSITIVO AVANZADO

Regresaremos a la Pantalla de NETWORK CONFIGURATION y esta

vez escogeremos EDIT DNS CONFIGURATION.

Page 148: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

148

EDITAR CONFIGURACIÓN DEL DNS

Aquí le daremos nombre a la PC (mail-srv) y el nombre que debería

tener el dominio (meg-crm.com).

Y ponemos en todo lo demás, DNS’s y DNS de Busqueda la IP del

Router (192.168.0.1). Pulsamos OK.

CONFIGURACIÓN DEL DNS

SERVICIOS DEL SISTEMA

Page 149: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

149

SERVICIOS

CONSOLA PASO 1

CONSOLA PASO 2

CONSOLA PASO 3

Page 150: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

150

CONSOLA PASO 4

CONSOLA PASO 5

Page 151: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

151

CONSOLA PASO 6

CONSOLA PASO 7

Page 152: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

152

CONSOLA PASO 8

CONSOLA PASO 9

Page 153: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

153

CONSOLA PASO 10

CONSOLA PASO 11

Page 154: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

154

1.13.3. Instalación de Oracle 10g en Linux Centos 5 .5

Para instalar Oracle 10g R2 en Linux debemos seguir los siguientes

pasos, ejecutando todas estos comandos de una terminal como root .

for i in binutils compat-db compat-gcc compat-gcc-c++ compat-

libstdc++ compat-libstdc++-devel control-center cpp gcc gcc-c++ gdb

glibc glibc-common glibc-devel gnome-libs glibc-headers glibc-

kernheaders libstdc++ libstdc++-devel libaio libai-devel make

openmotif pdksh setarch libXtst sysstat xscreensaver; do yum install $i

-y;done

TERMINAL

cat > /etc/hosts <<EOF 127.0.0.1 localhost.localdomain localhost $(ifconfig $(netstat -rn | grep "^0.0.0.0" | awk '{ print $NF }') |

Page 155: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

155

grep "inet addr" | cut -f 2 -d':' | awk '{ print $1 }') $(cat /etc/sysconfig/network | grep HOSTNAME | sed 's/HOSTNAME\s*=\s*//' | sed 's/^\([^\.]*\).*/\1/') $(cat /etc/sysconfig/network | grep HOSTNAME | sed 's/HOSTNAME\s*=\s*//')

EOF echo "export ORACLE_HOSTNAME=$(cat /etc/sysconfig/network | grep HOSTNAME | sed 's/HOSTNAME\s*=\s*//')" >> /etc/profile

source /etc/profile /usr/sbin/groupadd oinstall /usr/sbin/groupadd dba /usr/sbin/useradd -g oinstall -G dba oracle cat /etc/passwd | cut -f 1 -d':' | grep nobody >/dev/null|| /usr/sbin/useradd nobody cat >> /etc/sysctl.conf <<EOF kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 262144 net.core.rmem_max = 262144 net.core.wmem_default = 262144 net.core.wmem_max = 262144 EOF /sbin/sysctl -p cat >> /etc/security/limits.conf <<EOF oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 EOF cat >> /etc/profile <<EOF if [ \$USER = "oracle" ]; then if [ \$SHELL = "/bin/ksh" ]; then ulimit -p 16384

Page 156: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

156

ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi EOF

mkdir -p /oracle/ chown oracle.oinstall /oracle/ -R chmod 755 /oracle/

DESCARGAS

Para evitar que muestre alguna alerta por la Distribucion, tenemos

que editar el archivo /etc/redhat-release sacando previamente una

copia de respaldo.

cp /etc/redhat-release /etc/BCK_redhat-release vim /etc/redhat-release

Comentariamos la línea que allí se encuentra y escribimos esto:

#CentOS release 5.5 (Final) redhat-4 Guardamos los cambios y ejecutamos este comando en la terminal:

Page 157: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

157

xhost +

Descargamnos el instalador desde la página web de Oracle teniendo

en cuenta la versión del Sistema Operativo (Linux x86 para Sistemas

Operativos de 32 bits)

http://www.oracle.com/technetwork/database/10201linuxsoft-

097986.html y lo guardamos en la ruta /usr/local/src/

DESCARGAR ORACLE 10g

Luego digitamos:

cd /home/oracle unzip 10201_database_linux32.zip

Este comando descomprimirá el Instalador de la Base de Datos y

creara una carpeta database en el directorio antes nombrado

(/home/oracle /database).

Page 158: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

158

Luego escribimos en la terminal: su - oracle

Para cambiar de usuario y a continuación nos ubicamos donde se

descomprimió el instalador de la Base.

cd /home/oracle /database

Y luego la siguiente instrucción para ejecutar el instalador de la Base.

./runInstaller

INSTALACIÓN DEL ORACLE EN CENTOS

Page 159: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

159

OPCIÓN “INSTALACIÓN AVANZADA”

ESPECIFICAR DIRECTORIO

TIPO DE INSTALACIÓN

Page 160: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

160

SELECCIONAR IDIOMA

ESPECIFICAR DESTINO

ESPECIFICACIONES DEL PRODUCTO

Page 161: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

161

SELECCIONAR OPCIONES DE CONFIGURACIÓN

CONFIGURACIÓN DE LA BASE DE DATOS

ESPECIFICAR OPCIONES DE CONFIGURACIÓN

DE LA BASE DE DATOS

Page 162: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

162

OPCIONES DE ADMINISTRACIÓN DE LA BASE DE DATOS

OPCIONES DE ALMACENAMIENTO DE LA BASE DE DATOS

OPCIONES DE COPIA DE SEGURIDAD Y DE RECUPERACIÓN

Page 163: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

163

ESPECIFICAR CONTRASEÑAS

RESUMEN DE LA BASE DE DATOS

INSTALACIÓN DE LA BA SE DE DATOS EN CENTOS

Page 164: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

164

ASISTENTE DE CONFIGURACIÓN

TERMINAL

FIN DE LA INSTALACIÓN EN CENTOS

Page 165: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

165

MANUAL DE USUARIO

El presente manual de usuario tiene como objetivo proporcionar una guía sobre

el sistema de la Administración de la relación comercial con los clientes MEG

CRM (Customer Relationship Management), que actualmente se encuentra en

marcha, a medida que se avance con la lectura del manual veremos a nivel de

detalle los diferentes procesos que realiza el Sistema.

2. FUNCIONAMIENTO DEL SISTEMA

La Aplicación está diseñada para trabajar en ambiente web, por lo que los

clientes de la empresa deben realizar los siguientes pasos para acceder al

sistema:

Page 166: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

166

1.- Abrir el navegador de internet ya sea este: Internet Explorer,

Mozilla Firefox o cualquier otro.

2.- Digitar en el navegador de internet la dirección del Web Server:

http://200.200.100.4:8989/ViewController/jsp/megDes ktop.jsp

donde se aloja el chat de nuestra aplicación megCrm y

automáticamente se cargará la página de validación de usuario y

contraseña.

2.1. Pantalla de Login de Cliente del Sistema

El nombre de usuario y clave del cliente deben ser proporcionados por el

departamento de sistemas, para que el cliente pueda tener acceso al chat.

VENTANA DEL CHAT DEL SISTEMA MEG-CRM

Page 167: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

167

2.2. Pantalla de Login de Usuario del Sistema

Esta página contiene la pantalla que permite accesar al sistema al usuario

de la empresa mediante un Usuario y una Contraseña.

El usuario (empleado de la empresa) tendrá acceso al sistema de la misma

forma que el cliente (a través de un navegador de internet).

En la barra de dirección del navegador de internet debe digitar la siguiente

dirección: http://200.200.100.4:8989/ViewController/meg-login. html y

automáticamente se cargará la página de validación de usuario y

contraseña siguiente:

VENTANA DE LOGIN DEL SISTEMA ME G-CRM

Page 168: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

168

El nombre de usuario y contraseña deben ser ingresados obligatoriamente

por el usuario, porque de lo contrario no puede accesar al sistema.

INGRESO A MEG-CRM

Una vez que se registra el usuario, se va a cargar el Web Desktop de la

aplicación, que es un entorno de escritorio similar al de Windows.

DESKTOP DEL SISTEMA MEG-CRM

Page 169: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

169

En la parte inferior de la ventana se encuentra el botón “Inicio”, al dar clic

sobre este botón se muestra un menú con los diferentes módulos que

conforman el sistema MEGCRM (Gestión comercial, Gestión de contactos,

Mantenimiento, Post-Venta y Seguridad) dependiendo de los privilegios

que se le haya asignado al usuario. En este caso se ingresó con el usuario

“Admin” que tiene acceso a todos los módulos.

OPCIONES DEL BOTÓN INICIO

El acceso al Sistema está validado por Roles. Cada rol tiene los permisos

o acciones de crear, editar, eliminar, consultar y guardar información.

Todo depende de los privilegios que se le haya asignado al usuario.

El usuario “Admin” tiene rol de Administrador del Sistema, por lo tanto

tendrá acceso a todos los módulos del Sistema.

Page 170: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

170

2.3. Menu Principal

Esta será la pantalla principal que se mostrará después de ingresar su

Usuario y Contraseña.

MENÚ PRINCIPAL

2.4. Gestión Comercial

Este módulo va a tener un menú de opciones que se desplegarán al dar

clic sobre la opción “Gestión Comercial”.

Page 171: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

171

OPCIÓN “GESTIÓN COMERCIAL”

2.4.1. Ventana de Cotizaciones

VENTANA DE COTIZACIONES

Page 172: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

172

La ventana de cotizaciones permite crear una nueva cotización, editar

una cotización, eliminar una cotización, guardar una cotización o

realizar la búsqueda de una cotizáción existente en la base de datos.

2.4.1.1. Número de Cotización

CAMPO NÚMERO DE COTIZACIÓN

Es el número de la cotización que se está realizando. Este campo

se generará automáticamente.

2.4.1.2. Campo Cliente

CAMPO CLIENTE

Permite hacer una consulta global de todos los clientes a través de

un grid, para esto se necesita dar click sobre el botón que está en

el centro y seleccionar el nombre del cliente que luego se mostrará

en el campo de texto que se encuentra en el lado derecho,

mientras que en el lado izquierdo se mostrará el código del cliente.

Page 173: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

173

2.4.1.3. Fecha de Emisión y Validez de la Cotizació n

CAMPO FECHA DE EMISION Y VALIDEZ

Para seleccionar la fecha de la cotización y la fecha de validez de

la cotización es necesario dar click sobre el date field, que es el

cuadro que se encuentra en el lado derecho de cada fecha.

2.4.1.4. Campo Empleado

CAMPO CÓDIGO Y NOMBRE DE EMPLEADO

Permite hacer una consulta global de todos los empleados a través

de un grid, para esto se necesita dar click sobre el botón que está

en el centro y seleccionar el nombre del empleado que luego se

mostrará en el campo de texto que se encuentra en el lado

derecho, mientras que en el lado izquierdo se mostrará el código

del empleado.

Page 174: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

174

2.4.1.5. Detalle

CAMPO DETALLE

Permite ingresar algún detalle u observación respecto de la

cotización que se está realizando para un mejor control de la

misma.

2.4.1.6. Detalle de la Cotización

DETALLE DE LA COTIZACIÓN

Al dar click sobre el botón “Agregar” se visualiza un grid con todos

los productos existentes. Se debe seleccionar haciendo doble click

sobre el o los productos que se necesiten para la cotización.

Page 175: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

175

VENTANA DE BÚSQUEDA DE PRODUCTO

Posteriormente el Código del producto, Descripción del Producto,

Precio Unitario, SubTotal, Descuento, IVA y Total se van a ubicar

automáticamente en el detalle de la cotización excepto la cantidad

que debe ser ingresada obligatoriamente para poder obtener el

Subtotal, Descuento, Base Imponible y Total de la factura.

2.4.2. Ventana de Ventas

VENTANA DE VENTAS

Esta ventana de Ventas permite realizar las ventas a los clientes

existentes en la base de datos.

Page 176: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

176

A diferencia de la ventana de cotizaciones lleva el campo de Forma

de Pago, el cual va a permitir elegir la forma de pago del cliente.

2.5. Gestión de Contactos

En el módulo “Gestión de Contactos” encontraremos las siguientes

opciones: Clientes, al dar clic en esta opción, se visualizará una ventana de

mantenimiento de Cliente en la que se podrá almacenar y tener acceso a la

información del cliente de manera eficaz y precisa. Tareas, en esta opción

se visualizará una ventana de mantenimiento de tareas en las que

podremos, crear, asignar y revisar tareas planificadas del empleado.

Bitácora de Tareas, esta opción nos permite dar seguimiento a las tareas.

OPCIÓN DE GESTIÓN DE CONTACTOS

Page 177: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

177

2.5.1. Ventana de Clientes

VENTANA DE CLIENTE

En esta ventana se debe ingresar la información del cliente. En caso

de que el Cliente sea una Empresa se ingresará el Tipo de Cliente,

Código, Tipo de identificación, Número de Identificación, Nombre de

la Empresa, Contacto, Dirección, Teléfono, Fax, Correo Electrónico,

Página web, Clave, Si recibe correo, Fecha desde cuando es cliente

de la empresa, Actividad comercial, La zona y el Empleado que

ingresa los datos. En caso de que el Cliente sea una Persona se

deben ingresar los datos mencionados anteriormente además Fecha

de nacimiento, Sexo, Estado civil y Profesión.

Esta ventana también tiene una toolbar, la cual está conformada por

los botones Nuevo, Editar, Eliminar, Cancelar, Grabar y Buscar, que

Page 178: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

178

le van a permitir al usuario que posee el permiso respectivo realizar

estas acciones.

2.5.2. Ventana de Tareas

VENTANA DE TAREAS

Esta ventana permite asignar tareas a los empleados de la empresa

referente a actividades que deben realizar, para poder llevar un

control de dichas tareas.

2.5.2.1. Código de Tarea

CAMPO CÓDIGO DE TAREA

Es el código de la tarea que se le está asignando a la tarea.

Page 179: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

179

2.5.2.2. Fecha Inicio de la Tarea

CAMPO FECHA INICIO DE TAREA

Es la fecha de inicio que se le está asignando a la tarea. Se debe

dar click sobre el ícono de calendario que se encuentra al lado

derecho del campo fecha, desplegándose así un calendario en el

que se debe seleccionar la fecha de inicio de la tarea.

2.5.2.3. Fecha Final de la Tarea

CAMPO FECHA FINAL DE TAREA

Page 180: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

180

Es la fecha de finalización que se le está asignando a la tarea. Se

debe dar click sobre el icono de calendario que se encuentra al

lado derecho del campo fecha, desplegándose así un calendario

que permite seleccionar la fecha de fin de la tarea.

2.5.2.4. Nombre del Empleado Asignado a la Tarea

CAMPO EMPLEADO DE LA TAREA

En este campo de texto se mostrará el nombre del empleado al que

se le ha asignado la tarea. Se debe dar click sobre el botón que se

encuentra al lado derecho de la caja de texto de Empleado,

aparecerá una ventana que permite seleccionar el nombre del

empleado al que se le va a asignar la tarea.

Page 181: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

181

VENTANA BUSCAR EMPLEADO

En este caso se ha seleccionado el siguiente empleado:

CAMPO EMPLEADO ASIGNADO A LA TAREA

2.5.2.5. Asunto de la Tarea

CAMPO ASUNTO DE TAREA

Es el asunto de la tarea a realizar.

Page 182: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

182

2.5.2.6. Aviso de la Tarea

CAMPO AVISO DE LA TAREA

Es el Aviso de la tarea que se debe seleccionar al dar click sobre el

icono de calendario que se encuentra al lado derecho del datafield,

desplegándose una ventana de calendario en la cual se debe

seleccionar la fecha de aviso de la tarea.

2.5.2.7. Prioridad de la Tarea

COMBO PRIORIDAD DE LA TAREA

Page 183: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

183

Es la prioridad que se le asigna a la tarea. Esta debe

seleccionarse de una lista desplegable.

2.5.2.8. Pocentaje Completado de de la Tarea

LISTA DE PORCENTAJE DE LA TAREA

Es el porcentaje en que se ha completado la tarea. Esta debe

seleccionarse de una lista desplegable.

2.5.2.9. Tipo de Tarea

LISTA TIPO DE TAREA

Page 184: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

184

Es la etapa en que se encuentra la tarea. Esta debe seleccionarse

de una lista desplegable.

2.5.2.10. Nota de la Tarea

LISTA DEL TIPO DE TAREA

Es una descripción más amplia del motivo de la tarea. Se debe de

ingresar dentro del Area de Texto de Nota.

2.6. Mantenimientos

La opción “Mantenimientos” muestra los distintos mantenimientos con que

cuenta el sistema MEGCRM.

Page 185: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

185

OPCIÓN DE MANTENIMIENTO

Cada mantenimiento tendrá una toolbar, la cual estará conformada por los

botones Nuevo, Editar, Eliminar, Cancelar y Grabar.

MANTENIMIENTO DE ZONAS

Page 186: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

186

2.6.1. Toolbar de las ventanas de mantenimiento

Al dar click en el botón NUEVO, los campos

del formulario se borraran (si hubiere

información en ellos) y se activarán para poder

ingresar los datos que se guardarán en la

Tabla.

El botón EDITAR inicialmente estará

desactivado. Para poder activar el botón es

necesario que hayan datos. Una vez

seleccionada la información que se desea

editar, el botón se activará. Se deberá

presionar el botón y automáticamente el botón

CANCELAR, GRABAR y los campos del

formulario se activarán para poder hacer la

modificación de la información. Una vez

realizada la modificación en el formulario se

debe pulsar el botón GRABAR para que los

cambios sean almacenados en la Tabla, y los

campos del formulario se desactiven al igual

que el botón CANCELAR y GRABAR para

permitir realizar una nueva modificación.

Page 187: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

187

Al igual que en el Botón EDITAR, para eliminar

es necesario que hayan datos. Una vez

seleccionada la información que se desea

eliminar, el botón ELIMINAR se activará. Se

deberá presionar el botón y el registro

seleccionado se marca como eliminado en la

Tabla (pidiendo confirmación ANTES de

hacerlo) y se habilita el checkbox para indicar

que dicho registro está marcado como

eliminado (fisicamente no se borra de la

Tabla).

Este botón se lo utiliza cuando se ha llenado la

información en el formulario y no se la desea

grabar en la base de datos, es decir, una vez

que se ha presionado el botón NUEVO o

EDITAR, automáticamente se activa este

botón y los campos del formulario para

ingresar la información. Si se desea cancelar

el ingreso o edición de la información se

presiona el botón cancelar. Se presentará un

mensaje diciendo si desea guardar el registro

Page 188: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

188

o no.

Si elige SI, la informacion se graba en la

Tabla. Caso contrario, el formulario volverá a

su estado Original (sea el momento de

CREACIÓN o EDICIÓN).

Al momento de invocar a la ventana este

botón por defecto saldrá desactivado. Se

activará cuando se pulsen uno de los botones

NUEVO o EDITAR.

Realiza el proceso de almacenar la

información digitada o modificada en el

formulario a la Tabla.

Si este proceso es exitoso, mostrara un

mensaje de Confirmación.

Al momento de invocar a la ventana este

botón por defecto se va a activar con la

finalidad que el usuario pueda realizar la

busqueda de la informaciòn que necesita.

Page 189: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

189

Realiza el proceso de buscar la información

seleccionada.

Al dar click en el botón BUSCAR, se va a

mostrar una ventana en la cual se visualiza la

información guardada en la Tabla.

Al momento de invocar a la ventana de

cotizaciones y ventas este botón por defecto

saldrá desactivado. Se activará cuando se

pulsen uno de los botones NUEVO o EDITAR.

Realiza el proceso de imprimir los reportes de

la información digitada o modificada en el

formulario a la Tabla.

Page 190: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

190

2.6.2 Ayuda de búsqueda

VENTANA DE BÚSQUEDA

Esta parte de la ventana me permite buscar de manera rápida la

información almacenada en las tablas, ingresando el código o un

nombre, o parte del nombre ó código que se desea buscar en el campo

de texto que se encuentra en la parte superior de la ventana.

2.6.3 Formulario de Zonas

FORMULARIO DE ZONAS

Page 191: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

191

El mantenimiento de Zonas estará conformado por un formulario, que

contiene el campo Código, Nombre, y un Checkbox que se activará

solo cuando una zona ha sido eliminado. Algunos mantenimientos

van a tener un Combo que permitirá seleccionar información.

El combo es un componente de Ext JS en el cual se despliega varias

opciones que pueden ser seleccionadas.

2.7 Post-Venta

Este módulo tiene las siguientes opciones: Incidencias, Bitácora de

Incidencias.

OPCIÓN DE POST-VENTA

Page 192: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

192

2.7.1 Ventana de Incidencias

La Ventana de Incidencias me va a permitir ingresar una queja o un

reclamo del cliente.

VENTANA DE INCIDENCIAS

2.7.1.1 Número de la Incidencia

NÚMERO DE LA INCIDENCIA

El número de la incidencia se genera automáticamente por el

sistema y no es necesario que el usuario lo registre.

Page 193: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

193

2.7.1.2 Tipo de Incidencia

TIPO DE INCIDENCIA

Este campo muestra una lista desplegable con dos opciones:

Reclamo y Queja.

2.7.1.3 Fecha de la Incidencia

FECHA DE LA INCI DENCIA

En este campo seleccionaremos la fecha de la incidencia de un

calendario que se despliega cuando damos clic en la imagen que

se encuentra a lado del campo fecha.

Page 194: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

194

2.7.1.4 Prioridad de la Incidencia

PRIORIDAD DE LA INCI DENCIA

Al dar click en este campo se muestra una lista desplegable que

permite eligir la prioridad que se le asigna a la incidencia.

2.7.1.5 Estado de la Incidencia

ESTADO DE LA INCIDENCIA

En la ventana de Incidencias solo se van a mostrar dos estados de

los cinco estados que existen. Al crear una nueva incidencia si

elegimos el estado “Nueva”, la incidencia seguira su curso hasta

que el estado de esta sea “Finalizada”. Si por el contrario elegimos

al opción “Rechazada”, entonces se finaliza con el curso de la

incidencia.

Para poder editar una incidencia y asignarle un nuevo estado es

necesario hacerlo en la ventana de Bitácora de Incidencias.

Page 195: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

195

2.7.1.6 Número de Factura o Contrato

NÚMERO DE FACTURA O CONTRATO

Este campo solo estará activo si la incidencia es un Reclamo.

Al dar click en el botón que se encuentra a lado del campo de texto,

se mostrará una ventana con los datos de facturas y contratos que

tiene el cliente con la empresa.

VENTANA DE BÚSQUEDA DE FACTURA Y CON TRATO

2.7.1.7 Descripción de la Incidencia

DESCRIPCIÓN DE LA INCIDENCIA

Aquí se debe escribir una breve descripción de la incidencia.

Page 196: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

196

2.7.1.8 Detalle de la Incidencia

DETALLE DE LA INCIDE NCIA

Aquí se debe escribir los por menores de la incidencia. No es

obligatorio que este campo este lleno.

2.7.2 Ventana de Bitácora de Incidencias

La Ventana de Bitácora de Incidencias me va a permitir hacer el

seguimiento de una queja o un reclamo del cliente.

VENTANA DE BITÁCORA DE IN CIDENCIAS

Page 197: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

197

Esta ventana permite filtrar por diferentes criterios. Además de poder

visualizar en que etapa se encuentra la incidencia y editarla.

2.7.2.1 Criterios de Búsqueda

CRITERIOS DE BÚSQUEDA DE LA INCIDENCIA

Para realizar una búsqueda de incidencias se cuenta con los

siguientes criterios:

• Desde: Fecha desde donde se iniciará la búsqueda las

incidencia. La fecha puede escribirse o en su defecto se la

puede seleccionar del calendario desplegable del campo fecha.

Este campo es obligatorio.

• Hasta: Es la fecha donde se finalizará con la búsqueda de

incidencias. Este campo es obligatorio.

• Cliente: Al dar clic en el botón que se encuentra a lado del

campo Cliente se puede seleccionar el nombre del Cliente a

quién pertenece la o las incidencias. Este campo es opcional.

• Empleado: Al dar clic en el botón que se encuentra a lado del

campo Empleado se puede seleccionar el nombre del

Empleado que atendió la incidencia.

Page 198: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

198

2.7.2.2. Filtro de las Etapas de la incidencia

ETAPAS DE INCIDENCIAS

Además de los criterios de búsqueda que se encuentran en la parte

superior de la ventana de Bitácora de Incidencias, existe

adicionalmente un filtro que me permite visualizar las incidencias

por su etapa: Nueva, Asignada, Finalizada, Pendiente, Rechazada,

Duplicada.

2.7.2.3. Resultado de la Búsqueda

Después de haber seleccionado los criterios de búsqueda, estos

resultados se muestran en una malla.

Page 199: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

199

RESULTADO DE LA BÚSQUEDA DE INCIDENCIAS

2.7.2.4. Editar Incidencia

Si el usuario desea editar una incidencia, sólo debe de seleccionar

en la ventana que muestra los resultados de la búsqueda de

incidencias, aquella incidencia que desea editar y esta aparecerá

en la parte inferior de la ventana lista para ser modificada.

VENTANA DE EDICIÓN DE LA INCIDENCIA

Tanto la fecha como la hora se generan automáticamente. Se

debe escribir una observación y quién realizó el cambio.

Page 200: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

200

2.8. Seguridad

Este módulo va a tener un menu denominado Roles, el cual va a contener

el Mantenimiento de Roles.

OPCIÓN DE SEGURIDAD

2.8.1. Roles

La ventana de Roles muestra los roles que existen, un formulario para

crear un nuevo rol, los permisos que tiene el rol, usuarios que

pertenecen al rol y usuarios que no pertenecen al rol.

Page 201: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

201

MANTENIMIENTO DE ROLES

2.8.1.1 Listado de Roles

LISTADO DE ROLES

En esta sección de la ventana se muestran los roles existentes en

el sistema. Al dar click sobre uno de ellos se puede modificar el rol

o se puede observar los permisos que tiene el rol.

Page 202: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

202

2.8.1.2. Listado de Permisos

LISTADO DE PERMISOS

En esta sección de la ventana podemos ver el listado de permisos

con que cuenta un rol seleccionado.

2.8.1.3. Formulario

FORMULARIO DE ROLES

Al igual que el formulario de zonas, el formulario de roles me

permite crear, modificar o eliminar un rol.

Page 203: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/3315/2/TOMOII-CRM.pdfinstalaciÓn de oracle database.....130 asistente de configuraciÓn de base

203

2.8.1.4. Asignar Roles a Usuarios

LISTA DE USUARIOS Y SUS ROLES

Al elegir un rol se carga dos listas. La lista de la izquierda se carga

con los usuarios que no pertenecen al rol y la lista de la derecha se

carga con los usuarios que pertencen al rol.

Para asignar un rol a un usuario solo se debe seleccionar el

nombre del usuario y arrastrarlo hasta la lista de los usuarios que

pertenecen al rol o viceversa.