Herramientas de usuario

Herramientas del sitio


ada:howto:sicoferp:database:repositorioscriptsload:plantillascontables

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

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]]
ada/howto/sicoferp/database/repositorioscriptsload/plantillascontables.1657570183.txt.gz · Última modificación: 2022/07/11 20:09 por administraidor