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]] |