01. OVERVIEW
Use this routine to execute clearings of bills payable with bills receivable, thus offsetting accounts between supplier and customer.
This process takes the following bills into account:
- Debit bills - example: NF (Tax Invoice), BOL (Bank Slip), etc.
- Credit bills - example: PA (Advance Payment), RA (Advance Receipt), and return bills (NDF and NCC).
02. EXECUTION
Procedure manually performed through the Clearing Between Portfolios (FINA450), with the display of the screens involved in the process - actions/commands from the user are required
Procedure automatically performed in the Clearing Between Portfolios routine (FINA450) without the display of screen - no interaction from the user required.
Used in customizations in which the process does not require user interactions (MSEXECAUTO)
#include "rwmake.ch"
#include 'tbiconn.ch'
User Function Auto450()
Local aAutoCab := {}
Local aArea := GetArea()
Local cTabSe1 := "TMPSE1A"
Local cTabSe2 := "TMPSE2A"
Local aSE1450 := {}
Local aSE2450 := {}
Local aFilCmp := {}
Private lMsHelpAuto := .F.
Private lMsErroAuto := .F.
BeginSql Alias cTabSe1
SELECT R_E_C_N_O_ as RECNO
FROM %Table:SE1% SE1
WHERE SE1.E1_FILIAL = 'D MG 01 '
AND SE1.E1_PREFIXO = 'CPT'
AND SE1.E1_NUM = 'VT001'
AND SE1.E1_TIPO = 'NF'
AND SE1.E1_CLIENTE = 'FIN001'
AND SE1.E1_LOJA = '01'
AND SE1.%NotDel%
EndSql
While (cTabSe1)->(!EOF())
SE1->(DbGoto((cTabSe1)->RECNO))
AAdd(aSE1450, {SE1->E1_FILIAL+SE1->E1_PREFIXO+SE1->E1_NUM+SE1->E1_PARCELA+SE1->E1_TIPO})
If ascan(aFilCmp,SE1->E1_FILIAL) == 0
Aadd(aFilCmp, SE1->E1_FILIAL)
EndIf
(cTabSe1)->(DbSkip())
Enddo
(cTabSe1)->(DbCloseArea())
BeginSql Alias cTabSe2
SELECT R_E_C_N_O_ as RECNO
FROM %Table:SE2% SE2
WHERE SE2.E2_FILIAL = 'D MG 02 '
AND SE2.E2_PREFIXO = 'CPT'
AND SE2.E2_NUM = 'VT001'
AND SE2.E2_TIPO = 'NF'
AND SE2.E2_FORNECE = 'FIN001'
AND SE2.E2_LOJA = '01'
AND SE2.%NotDel%
EndSql
While (cTabSe2)->(!EOF())
SE2->(DbGoto((cTabSe2)->RECNO))
AAdd(aSE2450, {SE2->E2_FILIAL+SE2->E2_PREFIXO+SE2->E2_NUM+SE2->E2_PARCELA+SE2->E2_TIPO+SE2->E2_FORNECE+SE2->E2_LOJA})
If ascan(aFilCmp,SE2->E2_FILIAL) == 0
Aadd(aFilCmp, SE2->E2_FILIAL)
EndIf
(cTabSe2)->(DbSkip())
Enddo
(cTabSe2)->(DbCloseArea())
aAutoCab :={ {"AUTDVENINI450", cTod('27/08/19') , nil},;
{"AUTDVENFIM450", cTod('27/08/19') , nil},;
{"AUTNLIM450" ,8000, nil},;
{"AUTCCLI450" , "FIN001" , nil},;
{"AUTCLJCLI" , "01" , nil},;
{"AUTCFOR450" , "FIN001" , nil},;
{"AUTCLJFOR" , "01" , nil},;
{"AUTCMOEDA450" , "01" , nil},;
{"AUTNDEBCRED" , 1 , nil},;
{"AUTLTITFUTURO", .F. , nil},;
{"AUTARECCHAVE" ,aSE1450, nil},;
{"AUTAPAGCHAVE" , aSE2450 , nil},;
{"AUTAFILCOMP" , aFilCmp , nil}} //Optional parameter to be entered only when a clearance between multiple branches exist
MSExecAuto({|x,y,z| Fina450(x,y,z)}, nil , aAutoCab , 3 )
If !lMsErroAuto
ConOut("Added successfully! ")
confirmsx8()
Else
ConOut("Error when adding!")
rollbacksx8()
MostraErro()
EndIf
RestArea(aArea)
Return
03. OPERATIONS
Operation for clearing between portfolios payable/receivable.
Operation for canceling the transaction generated by the clearing.
Operation for reversing the transaction generated by the clearing.
It displays the caption chart and meanings related to the bill payable.

Search for the bill in the accounts payable file, having it placed and highlighted in the browser.
Operation for viewing the bill selected, so you can check its balance and value.
04. PARAMETERS APPLIED
List of parameters applied to FINA450 and its processing
Question |
Description |
Group Entries? |
Enter "Yes" to group the accounting entries generated through the clearing in a single entry |
Display Entries? |
Enter "Yes" to display onscreen the accounting entries generated through clearing, otherwise "No" |
Clear Transferred Bills? |
Enter "Yes" to allow the clearing of bills transferred to the bank (Bordereau), otherwise "No" |
Select Branches? |
If "Yes" the branch selection screen is displayed for the multi-branch clearing process |
Question |
Description |
Default |
MV_BX10925 |
Define when withholding of PIS COFINS and CSLL taxes are processed: 1 = At Posting or 2 = At Issue |
1 |
MV_BP10925 |
Define whether to consider the gross value of partial posting or the net value plus taxes. (1=Gross Val./2=Net Val.) |
1 |
MV_CC10925 |
Configure the calculation and withholding of PCC in Clearing Between Portfolios. 1. (Default) Do Not Calculate PCC, 2. Calculate PCC on payable, 3. Calculate PCC payable and receivable |
1 |
MV_NUMCOMP |
Sequential numbering for Clearing between portfolios. |
000000 |
MV_CTLIPAG |
Control postings payable through filled-out release date. If .T., the system checks whether field E2_DATALIB is filled out, otherwise, it does not control them |
F |
MV_VLMINPG |
The minimum value to post the bill, even if field E2_DATALIB is not filled out and the content of parameter MV_CTLIPAG is .T. |
0 |
MV_JURTIPO |
The bills receivable interests can be (S)imple, only (C)ompound, or (M)ixed = Simple up to 30 days of delay, and later Compound. |
M |
MV_LJINTFS |
Indicate integration with Financial Services. |
.F. |
MV_JURXFIN |
Enable integration between modules SIGAFIN - Financials and SIGAPFS - Legal. Disabled by default. |
.F. |
MV_CTBFLAG |
Indicate if the accounting flags of the offline routines are selected during the accounting entry transaction |
.F. |
05. MAIN PROCESSES
Procedures
To execute a clearing between portfolios:
- Have a bill payable available for clearing.
- Have a bill receivable available for clearing.
- In the Clearing Between Portfolios browser, press (F12) to set routine parameters.
- Configure them and confirm.
- Then, click option Clear, and a parameter settings screen opens

Note: in this screen, fill out data on bills from steps 1 and 2.
Then, select the bills registered in steps 1 and 2, then select the option Save in the right-hand corner of the screen.
Procedures
To cancel a clearing between portfolios:
- Have a clearing between portfolios.
- In the Clearing Between Portfolios browser, press (F12) to set routine parameters.
- Set and confirm routine parameters.
- Place the cursor on the bill cleared and select the option Cancel.

5. Press OK
Procedures
To execute a reversal between portfolios:
- Have a clearing between portfolios.
- In the Clearing Between Portfolios browser, press (F12) to set routine parameters.
- Set and confirm routine parameters.
- Place the cursor on the bill cleared and select option Reverse.

5. Press OK.
The Clearance Between Portfolios routine performs the withholding of PIS, Cofins, and CSLL when the company using Protheus withholds these taxes because it is possible to control the withholding through the generation of 'TX' type bills.
To withhold PIS, COFINS, and CSLL taxes in routine Clearing Between Portfolios, set parameters as shown below:
MV_BX10925 = 1 (PCC withholding on posting)
MV_BR10925 = 1 (PCC withholding on posting)
MV_CC10925 = 2 or 3 (enable PCC withholding on clearance between portfolios)
MV_BP10925 = 1 or 2 (Net or Gross)
MV_BQ10925 = 1 or 2 (Net or Gross)
For the correct withholding of PIS, COFINS, and CSLL taxes in the Clearance Between Portfolios, the parameters MV_BP10925 and MV_BQ10925 must have consistent content (Net or Gross for both). Otherwise, the system will display the following message:

Another point regarding the configuration of parameters MV_BP10925 and MV_BQ10925 is that, on the screen for selecting bills that will be cleared, the bills will be presented with their net value regardless of their configuration. These parameters affect the calculations and saving that involve partial clearing.
The Clearance between Portfolios routine performs Income Tax withholding on posting for both bills payable and bills receivable.
06. ACCOUNTING
The booking of processes applied to accounts payable clearing via the Financials module is done through the standard entries below:
07. TABLES
- SE2 - Accounts Payable Register
- SE1 - Accounts Receivable Register
- SE5 - Bank Transaction
- SED - Natures Register
- SA1 – Customers Register
- SA2 – Suppliers Register
- FK2 - Postings Payable
- FK1 - Postings Receivable
- FK6 - Accessory Values
- FK7 - Auxiliary Table
- FKA - Transaction Tracing
08. ENTRY POINTS