Microsiga Protheus® tiene una transacción que permite la ejecución de asientos automáticos contables off-line.
Para ejecutar la rutina de generación de archivo para la Contabilidad, debemos procesar la Contabilidad Off-line.
Esta rutina efectúa los asientos contables off-line para los documentos de entrada y pedidos de compra, de acuerdo con los parámetros de la rutina y las reglas de contabilidad de los asientos estándar:
Importante: Esta rutina fue concebida para ejecutarse en cualquier versión del sistema, sin embargo deben observarse las siguientes diferencias:
De acuerdo con el contenido del parámetro, el asiento estándar, debe configurarse de acuerdo con los ejemplos descritos anteriormente. |
La rutina seleccionará los registros utilizando los recursos del servidor del banco de datos (query), y antes de la ejecución del asiento estándar, los alias se marcarán y dejarán a disposición para uso. De esta manera, los asientos pueden ser:
Crédito | Iif(SF1->F1_TIPO$’DB’,SA1->A1_CONTA,SA2->A2_CONTA) |
Débito | SD1->D1_CONTA |
Valor | SD1->D1_TOTAL-SD1->D1_VALDESC+SD1->D1_VALIPI+SD1->D1_ICMRET |
La rutina seleccionará los registros utilizando los recursos del servidor de base de datos (query) y para la ejecución de los asientos se pondrá a disposición el alias CTBANFE, que contiene algunos campos de las tablas mencionadas en los asientos estándar. De esta manera, los asientos pueden ser:
Crédito | Iif(CTBANFE->F1_TIPO$’DB’,CTBANFE->A1_CONTA,CTBANFE->A2_CONTA) |
Débito | CTBANFE->D1_CONTA |
Valor | CTBANFE->D1_TOTAL-CTBANFE->D1_VALDESC+CTBANFE->D1_VALIPI+CTBANFE->D1_ICMRET |
Importante: Si el parámetro MV_OPTNFE se hubiera completado con T, los archivos SD1 - Ítem Documento de entrada y SF1 - Encabezado documento de entrada no estarán marcados. Por lo tanto, el usuario debe utilizar el alias CTBANFE en la inclusión de los asientos estándar, como se mostró en el ejemplo anterior. |
SF1 | Todos los campos, excepto aquellos que comienzan con: F1_BASE y F1_BASI |
SD1 | Todos los campos, excepto aquellos que comienzan con: D1_BASE y D1_BASI |
SA2 | A2_FILIAL, A2_COD, A2_LOJA, A2_CONTA, A2_NOME, A2_NREDUZ |
SA1 | A1_FILIAL, A1_COD, A1_LOJA, A1_CONTA, A1_NOME, A1_NREDUZ |
SB1 | B1_FILIAL, B1_COD, B1_CONTA |
SF4 | F4_FILIAL, F4_CODIGO, F4_CF |
SC7 | Todos los campos del SC7 (Solamente para registro estándar 652) |
Para agregar otros campos, debe utilizarse el punto de entrada CTBNFE.
...
User Function CTBNFE()
If PARAMIXB <> Nil
aSelect := PARAMIXB[1]
aFrom : PARAMIXB[2]
cWhere := PARAIXB[3]
//Aquí agrego el campo específico de la TES.
Aadd(aSelect,{”F4_MEUTS”,\"C\",3,0})
//Aquí agrego el campo específico del Producto
Aadd(aSelect,{”B1_MEUPRD”,\"C\",15,0})
//Aquí agrego el campo específico del Proveedor
Aadd(aSelect,{”B1_MEUSA2”,\"C\",6,0})
Return({aSelect,aFrom,cWhere})
Else
Return(PARAMIXB)
EndIf
User Function CTBPC()
If PARAMIXB <> Nil
aSelect := PARAMIXB[1]
aFrom : PARAMIXB[2]
cWhere := PARAIXB[3]
//Aquí agrego el campo específico de la TES.
Aadd(aSelect,{”F4_MEUTS”,\"C\",3,0})
//Aquí agrego el campo específico del Producto
Aadd(aSelect,{”B1_MEUPRD”,\"C\",15,0})
//Aquí agrego el campo específico del Proveedor
Aadd(aSelect,{”B1_MEUSA2”,\"C\",6,0})
Return({aSelect,aFrom,cWhere})
Else
Return(PARAMIXB)
EndIf
...
...