Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
|
ada:howto:sicoferp:database:repositorioscriptsload:plantillascontables [2022/07/11 20:09] administraidor creado |
ada:howto:sicoferp:database:repositorioscriptsload:plantillascontables [2022/07/11 20:25] (actual) administraidor [Crear Tabla temporal] |
||
|---|---|---|---|
| Línea 8: | Línea 8: | ||
| * Validaciones previas | * Validaciones previas | ||
| * Ejecutar proceso | * Ejecutar proceso | ||
| - | * Validar registros Cargados | + | * Validaciones posteriores |
| ===== Crear Tabla temporal ===== | ===== Crear Tabla temporal ===== | ||
| Línea 14: | Línea 14: | ||
| CREATE TABLE CONTABIL01.TMP_PLANTILLAS | CREATE TABLE CONTABIL01.TMP_PLANTILLAS | ||
| ( | ( | ||
| - | CODIGO VARCHAR2(32 BYTE), | + | *CODIGO VARCHAR2(32 BYTE), |
| - | DESCRIPCION VARCHAR2(64 BYTE), | + | *DESCRIPCION VARCHAR2(64 BYTE), |
| - | TIPO_CCOSTO VARCHAR2(128 BYTE), | + | *TIPO_CCOSTO VARCHAR2(128 BYTE), |
| - | CUENTA_DEBITO VARCHAR2(32 BYTE), | + | *CUENTA_DEBITO VARCHAR2(32 BYTE), |
| - | CUENTA_CREDITO VARCHAR2(32 BYTE), | + | *CUENTA_CREDITO VARCHAR2(32 BYTE), |
| CUENTA_IVA VARCHAR2(32 BYTE), | CUENTA_IVA VARCHAR2(32 BYTE), | ||
| PORCENTAJE_IVA NUMBER(5,2), | PORCENTAJE_IVA NUMBER(5,2), | ||
| Línea 38: | Línea 38: | ||
| TIPO_PLANTILLA NUMBER | TIPO_PLANTILLA NUMBER | ||
| ); | ); | ||
| + | |||
| + | --* Columnas cubiertas en la carga en esta versión liberada | ||
| </code> | </code> | ||
| + | ===== Cargar archivo ===== | ||
| + | En este paso se utilizan herramientas como golden el cual permite carga la tbla con un simple copiar y pegar. Si no se tiene a la mano la herramienta se debe convertir el archivo de carga a .csv e importar los datos en la tabla desde un ide como Toad, SQLDeveloper, DBeaver, etc... | ||
| + | |||
| + | ===== Validaciones previas ===== | ||
| + | Si las siguiente consultas devuelven al menos 1 registros. El proceso no se puede continuar y debe evaluar la data reportada por parte del consultor o cliente. | ||
| + | |||
| + | <code sql> | ||
| + | select t.codigo, T.CUENTA_DEBITO | ||
| + | from CONTABIL01.TMP_PLANTILLAS t | ||
| + | where t.codigo not in (select codigo from contabil01.plantillas) | ||
| + | and not exists (select 1 from TESORE01.PLAN_CUENTAS_CONTABLES pcc where PCC.CODIGO_CUENTA = T.CUENTA_DEBITO ) | ||
| + | order by 1 asc; | ||
| + | | ||
| + | select t.codigo, T.CUENTA_CREDITO | ||
| + | from CONTABIL01.TMP_PLANTILLAS t | ||
| + | where t.codigo not in (select codigo from contabil01.plantillas) | ||
| + | and not exists (select 1 from TESORE01.PLAN_CUENTAS_CONTABLES pcc where PCC.CODIGO_CUENTA = T.CUENTA_CREDITO ) | ||
| + | order by 1 asc; | ||
| + | | ||
| + | select t.codigo, T.TIPO_CCOSTO | ||
| + | from CONTABIL01.TMP_PLANTILLAS t | ||
| + | where t.codigo not in (select codigo from contabil01.plantillas) | ||
| + | and not exists (select 1 from NOMINA.TIPOS_NOMINA tn where TN.S_DESCRIPCION = T.TIPO_CCOSTO) | ||
| + | order by 1 asc; | ||
| + | </code> | ||
| + | |||
| + | ===== Ejecutar proceso ===== | ||
| + | <code sql> | ||
| + | DECLARE | ||
| + | --============================================================================== | ||
| + | -- Fecha: 2:22 p. m. lunes, 11 de julio de 2022 - carlos.torres@ada.co | ||
| + | -- Extrae los códigos de la carga y la cantidad de coincidencias | ||
| + | --============================================================================== | ||
| + | Cursor curCodigos | ||
| + | is | ||
| + | select t.codigo, t.descripcion, count(t.codigo) | ||
| + | from CONTABIL01.TMP_PLANTILLAS t | ||
| + | where t.codigo not in (select codigo from contabil01.plantillas) | ||
| + | group by t.codigo, t.descripcion | ||
| + | order by 1 asc; | ||
| + | --============================================================================== | ||
| + | -- Fecha: 2:22 p. m. lunes, 11 de julio de 2022 - carlos.torres@ada.co | ||
| + | -- Consulta el contenido de cada código | ||
| + | --============================================================================== | ||
| + | Cursor tmpPlantillas(as_codigo varchar2) | ||
| + | is | ||
| + | select t.* | ||
| + | from CONTABIL01.TMP_PLANTILLAS t | ||
| + | where t.codigo = as_codigo; | ||
| + | | ||
| + | --============================================================================== | ||
| + | -- Fecha: 2:24 p. m. lunes, 11 de julio de 2022 - carlos.torres@ada.co | ||
| + | -- Declaraciones Locales | ||
| + | --============================================================================== | ||
| + | lvn_tipo_ccostos number; | ||
| + | lvn_cuenta_debito number; | ||
| + | lvn_cuenta_credito number; | ||
| + | lvn_seq_plantilla number; | ||
| + | lvn_seq_det_plantilla number; | ||
| + | lva_mensaje varchar2(1024); | ||
| + | BEGIN | ||
| + | --============================================================================== | ||
| + | -- Fecha: 9:37 a. m. jueves, 7 de julio de 2022 - carlos.torres@ada.co | ||
| + | -- Recorrer el cursor de registros temporales | ||
| + | --============================================================================== | ||
| + | lva_mensaje := PCK_UTILIDADES.F_MSG('Recorrer el cursor de registros temporales'); | ||
| + | For lregCodigo in curCodigos | ||
| + | Loop | ||
| + | --============================================================================== | ||
| + | -- Fecha: 2:26 p. m. lunes, 11 de julio de 2022 - carlos.torres@ada.co | ||
| + | -- Generar el identificador de la plantilla | ||
| + | --============================================================================== | ||
| + | lva_mensaje := PCK_UTILIDADES.F_MSG('Generar el identificador para la plantilla código: ' || lregCodigo.codigo); | ||
| + | SELECT CONTABIL01.SEQ_PLANTILLAS.nextval | ||
| + | INTO lvn_seq_plantilla | ||
| + | FROM DUAL; | ||
| + | --============================================================================== | ||
| + | -- Fecha: 9:40 a. m. jueves, 7 de julio de 2022 - carlos.torres@ada.co | ||
| + | -- Insertar Encabezado de la plantilla | ||
| + | --============================================================================== | ||
| + | lva_mensaje := PCK_UTILIDADES.F_MSG('Insertar Encabezado de la plantilla ' || lregCodigo.codigo); | ||
| + | INSERT INTO CONTABIL01.PLANTILLAS (CODIGO_INTERNO, CODIGO, DESCRIPCION) | ||
| + | VALUES (lvn_seq_plantilla, lregCodigo.codigo, lregCodigo.descripcion); | ||
| + | For lregTmp in tmpPlantillas(lregCodigo.codigo) | ||
| + | Loop | ||
| + | --============================================================================== | ||
| + | -- Fecha: 9:41 a. m. jueves, 7 de julio de 2022 - carlos.torres@ada.co | ||
| + | -- Identificar el tipo de centro de costos | ||
| + | --============================================================================== | ||
| + | lva_mensaje := PCK_UTILIDADES.F_MSG('Identificar el código interno del tipo de centro de costos: ' || lregTmp.tipo_ccosto); | ||
| + | SELECT KA_NL_TIPO_NOMINA | ||
| + | INTO lvn_tipo_ccostos | ||
| + | FROM NOMINA.TIPOS_NOMINA | ||
| + | WHERE S_DESCRIPCION = lregTmp.tipo_ccosto; | ||
| + | --============================================================================== | ||
| + | -- Fecha: 9:46 a. m. jueves, 7 de julio de 2022 - carlos.torres@ada.co | ||
| + | -- Identificar cuenta debito | ||
| + | --============================================================================== | ||
| + | lva_mensaje := PCK_UTILIDADES.F_MSG('Identificar el código interno de la cuenta debito: ' || lregTmp.CUENTA_DEBITO); | ||
| + | SELECT PCC.CODIGO_INTERNO_CUENTA | ||
| + | INTO lvn_cuenta_debito | ||
| + | FROM TESORE01.PLAN_CUENTAS_CONTABLES PCC | ||
| + | WHERE PCC.CODIGO_CUENTA = lregTmp.CUENTA_DEBITO | ||
| + | AND PCC.TIPO_PLAN_CONTABLE = 1; | ||
| + | --============================================================================== | ||
| + | -- Fecha: 9:50 a. m. jueves, 7 de julio de 2022 - carlos.torres@ada.co | ||
| + | -- Identificar cuenta crédito | ||
| + | --============================================================================== | ||
| + | lva_mensaje := PCK_UTILIDADES.F_MSG('Identificar el código interno de la cuenta crédito: ' || lregTmp.CUENTA_CREDITO); | ||
| + | SELECT PCC.CODIGO_INTERNO_CUENTA | ||
| + | INTO lvn_cuenta_credito | ||
| + | FROM TESORE01.PLAN_CUENTAS_CONTABLES PCC | ||
| + | WHERE PCC.CODIGO_CUENTA = lregTmp.CUENTA_CREDITO | ||
| + | AND PCC.TIPO_PLAN_CONTABLE = 1; | ||
| + | --============================================================================== | ||
| + | -- Fecha: 9:51 a. m. jueves, 7 de julio de 2022 - carlos.torres@ada.co | ||
| + | -- Insertar el detalle de la plantilla contable | ||
| + | --============================================================================== | ||
| + | lva_mensaje := PCK_UTILIDADES.F_MSG('Insertar el detalle de la plantilla contable: ' || lregCodigo.codigo || ' y tipo de centro de costos: ' || lregTmp.tipo_ccosto); | ||
| + | SELECT CONTABIL01.SEQ_DET_CUENTA_PUC.nextval | ||
| + | INTO lvn_seq_det_plantilla | ||
| + | FROM DUAL; | ||
| + | --============================================================================== | ||
| + | -- Fecha: 10:03 a. m. jueves, 7 de julio de 2022 - carlos.torres@ada.co | ||
| + | -- Insertar detalle de cuentas contables | ||
| + | --============================================================================== | ||
| + | lva_mensaje := PCK_UTILIDADES.F_MSG('Insertar detalle de cuentas contables de la plantilla contable: ' || lregCodigo.codigo || ' y tipo de centro de costos: ' || lregTmp.tipo_ccosto); | ||
| + | INSERT INTO CONTABIL01.DET_PLANTILLAS_CUENTAS_PUC (CODIGO_PLANTILLA, CODIGO, TIPO_PLAN_CONTABLE, TIPO_CCOSTO, CUENTA_DEBITO, CUENTA_CREDITO) | ||
| + | VALUES (lvn_seq_plantilla, lvn_seq_det_plantilla, 1, lvn_tipo_ccostos, lvn_cuenta_debito, lvn_cuenta_credito); | ||
| + | Commit; | ||
| + | End Loop; | ||
| + | End Loop; | ||
| + | exception when others then | ||
| + | PCK_UTILIDADES.P_REGISTER_ERROR(SQLCODE, SQLERRM, lva_mensaje || ' - ' || DBMS_UTILITY.FORMAT_ERROR_BACKTRACE, 'BLOQUE ANONIMO'); | ||
| + | Rollback; | ||
| + | END; | ||
| + | </code> | ||
| + | |||
| + | ===== Validaciones posteriores ===== | ||
| + | Se definen consultas que evidencian si el proceso de carga se realizó correctamente. En este caso hay una consulta que indica cuantos se cargaron y cuantos no. | ||
| + | |||
| + | <code sql> | ||
| + | select 'No Cargada' as label, t.codigo, t.descripcion, count(t.codigo) | ||
| + | from CONTABIL01.TMP_PLANTILLAS t | ||
| + | where t.codigo not in (select codigo from contabil01.plantillas) | ||
| + | group by t.codigo, t.descripcion | ||
| + | union | ||
| + | select 'Cargada' as label,t.codigo, t.descripcion, count(t.codigo) | ||
| + | from CONTABIL01.TMP_PLANTILLAS t | ||
| + | where t.codigo in (select codigo from contabil01.plantillas) | ||
| + | group by t.codigo, t.descripcion | ||
| + | order by 1,2,3; | ||
| + | </code> | ||
| + | ===== Notas del Proceso ===== | ||
| + | * Sólo se soportan las columnas con asterisco en esta versión. | ||
| + | * El proceso es autocommit. | ||
| + | * Se puede relanzar y solo aplicará para los registros faltantes. | ||
| [[ada:howto:sicoferp:database:repositorioscriptsload|←Volver atras]] | [[ada:howto:sicoferp:database:repositorioscriptsload|←Volver atras]] | ||