Línea de Producto: | Microsiga Protheus ® | ||||||||||||||||||||||||||||||||||||||||||||||||||
Segmento: | Mercado Internacional | ||||||||||||||||||||||||||||||||||||||||||||||||||
Módulo: | SIGAFAT / SIGACOM | ||||||||||||||||||||||||||||||||||||||||||||||||||
Rutina: |
| ||||||||||||||||||||||||||||||||||||||||||||||||||
Archivos Iniciales: |
| ||||||||||||||||||||||||||||||||||||||||||||||||||
Parámetro(s): |
| ||||||||||||||||||||||||||||||||||||||||||||||||||
Punto de Entrada: | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||
Llamados vinculados: | TURRS9 | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Requisito (ISSUE): | TURRS9 | ||||||||||||||||||||||||||||||||||||||||||||||||||
País(es): | Colombia | ||||||||||||||||||||||||||||||||||||||||||||||||||
Base(s) de Datos: | Todas | ||||||||||||||||||||||||||||||||||||||||||||||||||
Tablas utilizadas: |
| ||||||||||||||||||||||||||||||||||||||||||||||||||
Sistema(s) operativo(s): | Windows ® / Linux ® |
Proceso que permite definir la TES de compra o venta para régimen común o simplificado además de informar el código fiscal para un declarante y un no declarante.
Para dicho proceso se crea la función LxTESAUTOCOL 1 / TESAUTOCOL 2, que se utilizará en validaciones de campos como Código del Producto, Cantidad, Precio Unitario y Valor Total al registrar Pedidos, Remisiones, Facturas, Nota de débito y Notas de crédito, ya sea para Ventas o Compras.
Antes de ejecutar el compatibilizador, UPDMODMI es imprescindible:
Atención ¡El siguiente procedimiento debe realizarlo un profesional calificado como Administrador de base de datos (DBA) o su equivalente! La activación indebida de la integridad referencial puede modificar drásticamente la relación entre tablas en la base de datos. Por lo tanto, antes de utilizarla, observe atentamente el siguiente procedimiento: 1. En el Configurador (SIGACFG), verifique si la empresa utiliza Integridad referencial, seleccionando la opción Integridad/Verificación (APCFG60A). 2. Si no hay Integridad referencial activa, se listan en una nueva ventana todas las empresas y sucursales registradas en el sistema y ninguna de estas estará seleccionada. SOLAMENTE en este caso no es necesario ningún otro procedimiento de activación o des activación de integridad, basta finalizar la verificación y aplicar normalmente el compatibilizador, de acuerdo con las instrucciones. 3. Si la Integridad referencial está activa en todas las empresas y sucursales, se muestra un mensaje en la ventana Verificación de vínculo entre tablas. Confirme el mensaje para que se concluya la verificación, o; 4. Si existe Integridad referencial activa en una o más empresas, que no representan la totalidad, se listan en una nueva ventana todas las empresas y sucursales registradas en el sistema y solamente se seleccionarán las que tienen integridad. Anote las empresas y/o sucursales que tienen la integridad activada y reserve esta anotación para posterior consulta en la re activación (o incluso, entre en contacto con nuestro Help Desk Framework para informarse sobre los archivos que contienen esta información). 5. En los casos descritos en los ítems “iii” o “iv”, Y SOLO EN ESTOS CASOS, es necesario desactivar dicha integridad, seleccionando la opción Integridad/ Desactivar (APCFG60D). 6. Al desactivar la Integridad referencial, ejecute el compatibilizador, de acuerdo con las instrucciones. 7. Después de aplicar el compatibilizador, la Integridad referencial debe reactivarse, SOLAMENTE CUANDO se haya desactivado, por medio de la opción Integridad/Activar (APCFG60). Para ello, tenga a disposición la información de la(s) empresa(s) y/o sucursal(es) que tenía(n) activación de la integridad, selecciónela(s) nuevamente y confirme la activación.
¡EN CASO DE DUDAS, entre en contacto con el Help Desk Framework! |
En el TOTVS Smart Client, digite UPDMODMI en el campo Programa Inicial.
Se exhibirá una pantalla en la cual se deberá elegir el módulo SIGAFAT- Facturación. Una vez seleccionado dar clic en OK.
Importante
Para la correcta actualización del diccionario de datos, cerciórese que la fecha del actualizador sea igual o superior a 11/04/16.
Campo | B1_TE2 |
Tipo | C |
Tamaño | 3 |
Decimal | 0 |
Formato | |
Título | TE Simplif. |
Descripción | TE Simplificada |
| F3 | SF4 |
Nivel | 1 |
Utilizado | Si |
Obligatorio | No |
Browse | No |
Opciones | |
Consulta | |
Relación | |
Val. Sistema | Vazio() .Or. ExistCPO('SF4') .And. M->B1_TE2 <'501' |
Help | Código de TE para Compras de Régimen Simplificado. |
| Campo | B1_TS2 |
|---|---|
| Tipo | C |
| Tamaño | 3 |
| Decimal | 0 |
| Formato | |
| Título | TS Simplif |
| Descripción | TS Simplificada |
| F3 | SF4 |
| Nivel | 1 |
| Utilizado | Si |
| Obligatorio | No |
| Browse | No |
| Opciones | |
| Consulta | |
| Relación | |
| Val. Sistema | Vazio() .Or. ExistCPO("SF4") .And. M->B1_TS2 > "500" |
| Help | Código de TS para Ventas de Régimen Simplificado. |
| Campo | B1_CFO |
|---|---|
| Tipo | C |
| Tamaño | 5 |
| Decimal | 0 |
| Formato | @! |
| Título | CF Com p/Dec |
| Descripción | CF Compras p/Declarante |
| F3 | 13 |
| Nivel | 1 |
| Utilizado | Si |
| Obligatorio | No |
| Browse | No |
| Opciones | |
| Consulta | |
| Relación | |
| Val. Sistema | Vazio() .Or. ExistCPO('SX5','13'+M->B1_CFO) .And. M->B1_CFO < "501" |
| Help | Código Fiscal para compras de Declarantes. |
| Campo | B1_CFO2 |
|---|---|
| Tipo | C |
| Tamaño | 5 |
| Decimal | 0 |
| Formato | @! |
| Título | CF Com n/N D |
| Descripción | CF Compras p/No Declarant |
| F3 | 13 |
| Nivel | 1 |
| Utilizado | Si |
| Obligatorio | No |
| Browse | No |
| Opciones | |
| Consulta | |
| Relación | |
| Val. Sistema | Vazio() .Or. ExistCPO('SX5','13'+M->B1_CFO2) .And. M->B1_CFO2 < "501" |
| Help | Código Fiscal para compras de No Declarantes. |
| Campo | B1_CFO3 |
|---|---|
| Tipo | C |
| Tamaño | 5 |
| Decimal | 0 |
| Formato | @! |
| Título | CF Ven p/Dec |
| Descripción | CF Ventas p/Declarante |
| F3 | 13 |
| Nivel | 1 |
| Utilizado | Si |
| Obligatorio | No |
| Browse | No |
| Opciones | |
| Consulta | |
| Relación | |
| Val. Sistema | Vazio() .Or. ExistCPO('SX5','13'+M->B1_CFO3) .And. M->B1_CFO3 > "500" |
| Help | Código Fiscal para Ventas de Declarantes. |
| Campo | B1_CFO4 |
|---|---|
| Tipo | C |
| Tamaño | 5 |
| Decimal | 0 |
| Formato | @! |
| Título | CF Ven p/N D |
| Descripción | CF Ventas p/No Declarant |
| F3 | 13 |
| Nivel | 1 |
| Utilizado | Si |
| Obligatorio | No |
| Browse | No |
| Opciones | |
| Consulta | |
| Relación | |
| Val. Sistema | Vazio() .Or. ExistCPO('SX5','13'+M->B1_CFO3) .And. M->B1_CFO4 > "500" |
| Help | Código Fiscal para Ventas de No Declarantes. |
| Campo | A1_TS |
|---|---|
| Tipo | C |
| Tamaño | 3 |
| Decimal | 0 |
| Formato | |
| Título | TS de Expor |
| Descripción | TS de Exportación |
| F3 | SF4 |
| Nivel | 1 |
| Utilizado | Si |
| Obligatorio | No |
| Browse | No |
| Opciones | |
| Consulta | |
| Relación | |
| Val. Sistema | Vazio() .Or. ExistCPO("SF4") .And. M->A1_TS > "500" |
| Help | Código de TS para ventas a clientes extranjeros. |
| Campo | A1_TE |
|---|---|
| Tipo | C |
| Tamaño | 3 |
| Decimal | 0 |
| Formato | |
| Título | TE de Expor |
| Descripción | TE de Exportación |
| F3 | SF4 |
| Nivel | 1 |
| Utilizado | N |
| Obligatorio | N |
| Browse | |
| Opciones | |
| Consulta | |
| Relación | |
| Val. Sistema | Vazio() .Or. ExistCPO("SF4") .And. M->A1_TE < "500" |
| Help | Código de TE para Notas de Crédito a Clientes Extranjeros. |
| Campo | A1_DECLAR |
|---|---|
| Tipo | C |
| Tamaño | 1 |
| Decimal | 0 |
| Formato | |
| Título | ¿Declarante? |
| Descripción | ¿Declarante? |
| F3 | |
| Nivel | 1 |
| Utilizado | Si |
| Obligatorio | No |
| Browse | No |
| Opciones | D=Declarante;N=No declarante |
| Consulta | |
| Relación | |
| Val. Sistema | Pertence("DN") |
| Help | Régimen del cliente, que puede ser Declarante o No Declarante. Sirve para determinar el porcentaje de retención en la fuente que le corresponde. |
| Campo | A2_TE |
|---|---|
| Tipo | C |
| Tamaño | 3 |
| Decimal | 0 |
| Formato | |
| Título | TE de Impor |
| Descripción | TE de Importación |
| F3 | SF4 |
| Nivel | 1 |
| Utilizado | Si |
| Obligatorio | No |
| Browse | No |
| Opciones | |
| Consulta | |
| Relación | |
| Val. Sistema | Vazio() .Or. ExistCPO("SF4") .And. M->A2_TE < "501" |
| Help | Código de TE para Compras a Proveedores Extranjeros. |
| Campo | A2_TS |
|---|---|
| Tipo | C |
| Tamaño | 3 |
| Decimal | 0 |
| Formato | |
| Título | TS de Impor |
| Descripción | TS de Importación |
| F3 | SF4 |
| Nivel | 1 |
| Utilizado | Si |
| Obligatorio | No |
| Browse | No |
| Opciones | |
| Consulta | |
| Relación | |
| Val. Sistema | Vazio() .Or. ExistCPO("SF4") .And. M->A2_TS > "501" |
| Help | Código de TS para Notas de Crédito a Proveedores Extranjeros. |
| Campo | A2_DECLAR |
|---|---|
| Tipo | C |
| Tamaño | 1 |
| Decimal | 0 |
| Formato | |
| Título | ¿Declarante? |
| Descripción | ¿Declarante? |
| F3 | |
| Nivel | 1 |
| Utilizado | Si |
| Obligatorio | No |
| Browse | No |
| Opciones | D=Declarante;N=No declarante |
| Consulta | |
| Relación | |
| Val. Sistema | Pertence("DN") |
| Help | Régimen del Proveedor, que puede ser Declarante o No Declarante. Sirve para determinar el porcentaje de retención en la fuente que le corresponde. |
Importante:
El tamaño de los campos que disponen de grupo puede variar de acuerdo con el entorno en uso.
2. Creación de Disparadores en el archivo SX7 – Disparadores:
Campo | C6_PRODUTO |
Secuencia | 005 |
Campo Dominio | C6_CF |
Tipo | P |
Regla | LXTESAUTOCOL(M->C5_CLIENTE, M->C5_LOJACLI, M->C6_PRODUTO, "CF") |
¿Posiciona? | N |
Clave | |
Condición | |
Propietario | U |
| Campo | C6_PRODUTO |
|---|---|
| Secuencia | 006 |
| Campo Dominio | C6_TES |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->C5_CLIENTE, M->C5_LOJACLI, M->C6_PRODUTO, "TES") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | C7_PRODUTO |
|---|---|
| Secuencia | 002 |
| Campo Dominio | C7_TES |
| Tipo | P |
| Regla | LXTESAUTOCOL(cA120Forn, cA120loj, M->C7_PRODUTO, "TES") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | C7_QUANT |
|---|---|
| Secuencia | 004 |
| Campo Dominio | C7_TES |
| Tipo | P |
| Regla | LXTESAUTOCOL(cA120Forn, cA120loj, M->C7_PRODUTO, "TES") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | C7_PRECO |
|---|---|
| Secuencia | 003 |
| Campo Dominio | C7_TES |
| Tipo | P |
| Regla | LXTESAUTOCOL(cA120Forn, cA120loj, M->C7_PRODUTO, "TES") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | C7_TOTAL |
|---|---|
| Secuencia | 001 |
| Campo Dominio | C7_TES |
| Tipo | P |
| Regla | LXTESAUTOCOL(cA120Forn, cA120loj, M->C7_PRODUTO, "TES") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D1_COD |
|---|---|
| Secuencia | 004 |
| Campo Dominio | D1_TES |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F1_FORNECE, M->F1_LOJA, M->D1_COD, "TES", "SD1") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D1_COD |
|---|---|
| Secuencia | 005 |
| Campo Dominio | D1_CF |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F1_FORNECE, M->F1_LOJA, M->D1_COD, "CF", "SD1") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D1_QUANT |
|---|---|
| Secuencia | 001 |
| Campo Dominio | D1_CF |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F1_FORNECE, M->F1_LOJA, M->D1_COD, "CF", "SD1") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D1_QUANT |
|---|---|
| Secuencia | 002 |
| Campo Dominio | D1_TES |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F1_FORNECE, M->F1_LOJA, M->D1_COD, "TES", "SD1") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D1_VUNIT |
|---|---|
| Secuencia | 001 |
| Campo Dominio | D1_CF |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F1_FORNECE, M->F1_LOJA, M->D1_COD, "CF", "SD1") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D1_VUNIT |
|---|---|
| Secuencia | 002 |
| Campo Dominio | D1_TES |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F1_FORNECE, M->F1_LOJA, M->D1_COD, "TES", "SD1") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D1_TOTAL |
|---|---|
| Secuencia | 001 |
| Campo Dominio | D1_TES |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F1_FORNECE, M->F1_LOJA, M->D1_COD, "TES", "SD1") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D1_TOTAL |
|---|---|
| Secuencia | 002 |
| Campo Dominio | D1_CF |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F1_FORNECE, M->F1_LOJA, M->D1_COD, "CF", "SD1") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
Tabla SD2 – Ítem de Factura de Salida
| Campo | D2_COD |
|---|---|
| Secuencia | 006 |
| Campo Dominio | D2_TES |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F2_CLIENTE, M->F2_LOJA, M->D2_COD, "TES", "SD2") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D2_COD |
|---|---|
| Secuencia | 007 |
| Campo Dominio | D2_CF |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F2_CLIENTE, M->F2_LOJA, M->D2_COD, "CF", "SD2") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
Campo | D2_QUANT |
|---|---|
| Secuencia | 001 |
| Campo Dominio | D2_CF |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F2_CLIENTE, M->F2_LOJA, M->D2_COD, "CF", "SD2") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D2_PRCVEN |
|---|---|
| Secuencia | 001 |
| Campo Dominio | D2_CF |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F2_CLIENTE, M->F2_LOJA, M->D2_COD, "CF", "SD2") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D2_QUANT |
|---|---|
| Secuencia | 002 |
| Campo Dominio | D2_CF |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F2_CLIENTE, M->F2_LOJA, M->D2_COD, "TES", "SD2") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D2_PRCVEN |
|---|---|
| Secuencia | 002 |
| Campo Dominio | D2_CF |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F2_CLIENTE, M->F2_LOJA, M->D2_COD, "TES", "SD2") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D2_TOTAL |
|---|---|
| Sencuencia | 001 |
| Campo Dominio | D2_TES |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F2_CLIENTE, M->F2_LOJA, M->D2_COD, "TES", "SD2") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | D2_TOTAL |
|---|---|
| Secuencia | 002 |
| Campo Dominio | D2_TES |
| Tipo | P |
| Regla | LXTESAUTOCOL(M->F2_CLIENTE, M->F2_LOJA, M->D2_COD, "CF", "SD2") |
| ¿Posiciona? | N |
| Clave | |
| Condición | |
| Propietario | U |
| Campo | C6_PRODUTO |
|---|---|
| Validación | Vazio().Or.(A093Prod().And.a410Produto().And.A410MultT()).And.TESAutoCol("SC6") |
| Campo | C7_PRODUTO |
|---|---|
| Validación | A093PROD().And.A120COD().And.MaFisRef("IT_PRODUTO","MT120",M->C7_PRODUTO).And.A120Produto(M->C7_PRODUTO).And.A120Tabela() |
| Campo | C7_PRECO |
|---|---|
| Validación | Positivo().and.A120Preco(M->C7_PRECO) .And. MaFisRef("IT_PRCUNI","MT120",M->C7_PRECO) .AND. MTA121TROP(n).And.TESAutoCol("SC7") |
| Campo | C7_TOTAL |
|---|---|
| Validación | A120Total(M->C7_TOTAL).And.MaFisRef("IT_VALMERC","MT120",M->C7_TOTAL).And.TESAutoCol("SC7") |
| Campo | D1_COD |
|---|---|
| Validación | Vazio().or.(A093Prod().And.A103PrdGrd().And.MaFisRef("IT_PRODUTO","MT100",M->D1_COD)).And.TESAutoCol("SD1") |
| Campo | D1_QUANT |
|---|---|
| Validación | A103TOLER().And.A465QtdNcc().And.Positivo().And.A100SegUm().And.MaFisRef("IT_QUANT","MT100",M->D1_QUANT).And.TESAutoCol("SD1") |
| Campo | D1_VUNIT |
|---|---|
| Validación | A103TOLER().And.NaoVazio().AND.Positivo().And.MaFisRef("IT_PRCUNI","MT100",M->D1_VUNIT).And.TESAutoCol("SD1") |
| Campo | D1_TOTAL |
|---|---|
| Validación | A103Total(M->D1_TOTAL) .and. MaFisRef("IT_VALMERC","MT100",M->D1_TOTAL) .And. MTA103TROP(n).And.TESAutoCol("SD1") |
| Campo | D2_COD |
|---|---|
| Validación | (ExistCpo("SB1").And.ALocPrdGrd().And.MaFisRef("IT_PRODUTO","MT100",M->D2_COD).And.A920IniCpo()).And.TESAutoCol("SD2") |
| Campo | D2_QUANT |
|---|---|
| Validación | Positivo().and. A100SegUm().And.MaFisRef("IT_QUANT","MT100",M->D2_QUANT).And.TESAutoCol("SD2") |
| Campo | D2_PRCVEN |
|---|---|
| Validación | Positivo().And.NaoVazio().And.MaFisRef("IT_PRCUNI","MT100",M->D2_PRCVEN).And.TESAutoCol("SD2") |
| Campo | D2_TOTAL |
|---|---|
| Validación | Positivo().And.A920Total(M->D2_TOTAL) .and. MaFisRef("IT_VALMERC","MT100",M->D2_TOTAL).And.TESAutoCol("SD2") |
Configuraciones previas:
Procedimiento:
Si el cliente es extranjero (A1_EST=’EX’), utilizará la TES para ventas al extranjero (A1_TS).
Nota:
Para observar correctamente el Tipo de Entrada o Salida, y el Código Fiscal correspondiente a cada producto, se debe informar la Cantidad, Valor Unitario y Valor Total del producto seleccionado.
1 Aplica a Protheus versión 11 (11.5, 11.8).
2 Aplica a Protheus versión 12 (Release 12.1.17 y superiores), vigentes a partir de Agosto/2019.
3 Actualizaciones en validación de campos, el cambio se identifica en texto azul remarcado.