Producto: | Microsiga Protheus® |
Entorno: | Facturación (SIGAFAT) |
Ocurrencia: | ¿Cómo contabilizar los impuestos por medio del documento de salida? |
Paso a paso: | Los AE 610 y 620 están destinados a la contabilidad de ítems del documento de salida (SD2) y del encabezado del documento de salida (SF2), luego los indicadores de tablas estarán en estos registros, de esta manera, la indicación de cualquier otra tabla debe realizarse por medio de una sintaxis.
Los Asientos estándar pueden ajustarse de acuerdo con la regla necesaria para la contabilidad, pudiendo inclusive utilizarse funciones en sus campos macro ejecutables, luego pueden consultarse registros de otras tablas por medio de funciones como "Posicione", que devuelve el dato deseado, o por medio de una "Función de usuario" que en su devolución traiga la información que será procesada.
Apuntando a otras tablas (On Line / Off Line) Para apunte de otras tablas (ej. SF3 y SFT), si la ejecución fuera Off Line, en el momento de la ejecución de la contabilidad On Line, las tablas pueden no estar grabadas aún, impidiendo que la regla del Asiento estándar recolecte las informaciones. Por lo tanto, para cada uso (on line y off line) puede existir la necesidad de crear sintaxis diferentes. Un ejemplo utilizando la contabilidad del campo "Crd.Pres." (FT_CRDPRES), que es el campo de Crédito previsto de ICMS grabado en la tabla de ítems fiscales (SFT) El AE del ítem de la Factura es 610, que marca la tabla SD2. La tabla equivalente en la parte fiscal es la tabla SFT. La función MAFISRET() está preparada para recibir dos parámetros en su activación, siendo:
2. El identificador del campo/impuesto que se estaría procesando, en este caso la referencia del Crédito previsto es LF_CRDPRES.
Ejemplo
MaFisRet(Val(SD2->D2_ITEM), "LF_CRDPRES") Importante El campo "Ítem" (D2_ITEM) es un campo carácter de tamaño 2, luego para pedidos con más de 99 ítems el contenido de este se vuelve alfanumérico y la conversión ofrecida por la función VAL() no atenderá. En este caso tendría que realizarse la lógica reversa del proceso de SUMA1() o configurarse el parámetro MV_NUMITEM con el límite de 99 ítems por factura. En el borrado del documento de salida (LP 620), debemos adoptar otra forma de trabajo, porque en este punto, los tributos no se están calculando y la línea SFT del documento que se está borrando ya existe. En este caso, como vamos a buscar un dato de la SFT, un ejemplo de Sintaxis que podemos utilizar es:
Ejemplo
Posicione('SFT', 1, xFilial('SFT') + 'S' + SD2->D2_SERIE + SD2->D2_DOC + SD2->D2_CLIENTE + SD2->D2_LOJA + SD2->D2_ITEM + ' ' + SD2->D2_COD, 'FT_CRDPRES') Donde, cada parámetro, detallado a continuación, referente a uno de los cuatro que se utilizarán en Posicione (en la sintaxis se separan por coma): Importante Es importante observar que en la ‘expresión identificadora de la línea deseada’ (parámetro 3) existen dos datos definidos previamente: Sobre el tamaño del campo, es posible utilizar también la siguiente sintaxis (modificada para el tamaño del campo)
Ejemplo
Posicione('SFT', 1, xFilial('SFT') + 'S' + SD2->D2_SERIE + SD2->D2_DOC + SD2->D2_CLIENTE + SD2->D2_LOJA + SD2->D2_ITEM + ' ' + ' ' + SD2->D2_COD, 'FT_CRDPRES') La activación de MAFISRET solamente funciona en la ejecución online, pues los procesos de cálculo deben estar iniciados, lo cual no ocurre en la contabilidad offline, ya que allá no ocurre el cálculo de impuesto.
Ejemplo
Posicione('SFT', 1, xFilial('SFT') + 'S' + SD2->D2_SERIE + SD2->D2_DOC + SD2->D2_CLIENTE + SD2->D2_LOJA + SD2->D2_ITEM + ' ' + ' ' + SD2->D2_COD, 'FT_CRDPRES') Si no hubiera tratamiento, se generará error.log, ya que en la Contabilidad On Line no podrá utilizar en la sintaxis la tabla SFT y en la Off line la función MAFISRET porque la factura ya está grabada.
Ejemplo
Iif(IsInCallStack("CTBANFS"),POSICIONE(),MAFISRET())
Para realizar la contabilidad de Tributos genéricos, basta crear un índice en la tabla F2D.
Ejemplo:
F2D_FILIAL + F2D_IDREL + F2D_TRIB
Ejemplo:
POSICIONE("F2D",7,xfilial("F2D"){+}SD2->D2_IDTRIB{+}"TESTE","F2D_VALOR")
Este proceso puede ser en el modo on-line y off-line. Importante
|
Puede ser de su interés: |