...
Índice | ||||
---|---|---|---|---|
|
...
Para
...
Para execução automática da compensação de contas a receber, é necessário o uso da função ejecución automática de la compensación de cuentas por cobrar, es necesario el uso de la función MaIntBxCr().
Por meio dessa função, é possível realizar a compensação automática entre dois títulos a receber (NF x Adiantamento).medio de esta función, es posible realizar la compensación automática entre dos títulos por cobrar (Factura vs. Anticipo).
Informações | ||
---|---|---|
| ||
Por padrão, a compensação automatica não faz uso das mesmas regras e validações da rotina de compensação estándar, la compensación automática no utiliza las mismas reglas y validaciones de la rutina de compensación CR(FINA330), sendo assim alguns tratamentos são diferentes de acordo com o uso da rotina, de esta manera, algunos tratamientos son diferentes de acuerdo con el uso de la rutina, como por exemplo ejemplo de impostos que não são realizados por padrão, mas pode ser configurado o parametro impuestos que no se realizan por estándar, pero puede configurarse el parámetro MV_CMP330 para que a execução automatica acione a rotina Compensação CR(FINA330) onde será efetuado os mesmos tratamentos e validações da rotina manual. |
para que la ejecución automática active la rutina Compensación CR(FINA330) donde se efectuarán los mismos tratamientos y validaciones de la rutina manual. |
Posición | Parámetro | Tipo | Descripción | Posição | Parâmetro | Tipo | Descrição|||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | nCaso | numeric | Código da operação a ser efetuadade la operación que se efectuará (numérico). [1] Baixa simples do financeiroBaja simple del financiero; [2] LiquidaçãoLiquidación de títulos; [3] CompensaçãoCompensación de títulos de mesma carteirala misma cartera (RA/NCC). | ||||||||||
2 | aSE1 | array | Vetor com os RECNOs dos títulos a serem baixados (exemplo: NF ou boleto Vector con los RECNOS de los títulos que se darán de baja (ejemplo: Factura o boleta). | ||||||||||
3 | aBaixa | array Vetor com os dados da baixa simples do financeiro | Vector con los datos de la baja simple del financiero. [1] Motivo da Baixade la baja; [2] Valor Recebidocobrado; [3] Banco; [4] AgênciaAgencia; [5] ContaCuenta; [6] Data de CréditoFecha del crédito; [7] Data da BaixaFecha de la baja. | ||||||||||
4 | aNCC_RA | array | Vetor com os RECNOs dos Vector con los RECNOS de los títulos de créditos | a serem compensados (exemploque se compensarán (ejemplo: RA | ou o NCC) | ||||||||
5 | aLiquidacao | array | Vetor com os dados da liquidação do financeiroVector con los datos de la liquidación del financiero. [1] | PrefixoPrefijo; [2] Banco; [3] Agencia; [4] | ContaCuenta; [5] | Numero do ChequeNúmero de cheque; [6] | Data BoaFecha buena; [7] Valor; [8] Tipo; [9] | NaturezaModalidad; [10] | MoedaMoneda; [14] Número | da liquidação (no de la liquidación (en el caso de | estornoreversión) | ||
6 | aParam | array | Vetor com os parâmetros da rotinaVector con los parámetros de la rutina [1] Contabiliza On-Line; [2] | Aglutina Lançamentos ContábeisAgrupa asientos contables; [3] Digita | lançamentos contábeisasientos contables; [4] Juros para | Comissãocomisión; [5] | Desconto Descuento para | Comissãocomisión; [6] Calcula | Comissãocomisión. | ||||
7 | NIL | NIL | Parâmetro Parámetro interno. | ||||||||||
8 | aEstorno | array | Para | compensação compensación (nCaso = 3) | Vetor com o Vector con el campo E5_DOCUMEN referente | à movimentação al movimiento de | compensação compensación que se | deseja estornar, podendo a sequência ser passada opcionalmente. Caso a sequência não seja informada, todas as compensação relativas aos documentos informados serão estornadas. Exemplodesea revertir, pudiendo pasarse la secuencia opcionalmente. Si no se informara la secuencia, todas las compensaciones referentes a los documentos informados se revertirán. Ejemplo: {{{cDocumen}, cSeq}} | ou o {{cDocumen}} Para | liquidação liquidación (nCaso = 2) | Sequencia de baixa que será estornada no título de mesma posição do Secuencia de baja que se revertirá en el título de igual posición que la de aRecnoNF. | ||
9 | NIL | NIL | Parâmetro Parámetro interno. | ||||||||||
10 | NIL | NIL | Parâmetro Parámetro interno. | ||||||||||
11 | nSaldoComp | numeric | Valor | a por compensar - Informe | o el valor que | deseja desea compensar. Este valor | deve debe ser menor | ou o igual | ao al saldo | do del título | e maior y mayor que | zerocero. Para | compensação compensación total, informar NIL. |
12 | aCpoUser | array | Vetor com os Vector con los campos de | usuário para gravação da liquidaçãousuario para grabación de la liquidación. | |||||||||
13 | aNCC_RAvlr | array | Parâmetro Parámetro interno. | ||||||||||
14 | nSomaCheq | numeric | Parâmetro Parámetro interno. | ||||||||||
15 | nTaxaCM | numeric | Taxa Tasa para | correção monetáriacorrección monetaria. | |||||||||
16 | aTxMoeda | array | Vetor com as taxas das moedas Vector con las tasas de las monedas existentes. [1] | MoedaMoneda; [2] | Taxa da Moeda;Tasa de la moneda. | ||||||||
17 | lConsdAbat | logical | Variável logica para consideração dos abatimentosVariable lógica para consideración de los descuentos. | ||||||||||
18 | NIL | NIL | Parâmetro Parámetro interno. | ||||||||||
19 | NIL | NIL | Parâmetro Parámetro interno. |
Informações | ||
---|---|---|
| ||
Estes parametros são referente ao uso da rotina via Estos parámetros son referentes al uso de la rutina vía MaIntBxCr(), caso o parametro si el parámetro MV_CMP330 esteja ativo, alguns tratamentos podem ser diferentes e estes parametrôs não surtiram efeitos no processamentoestuviera activo, algunos tratamientos pueden ser diferentes y estos parámetros no surtirán efectos en el procesamiento. |
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" //------------------------------------------------------------------- /*/ MaIntBxCr ExemploEjemplo de compensaçãocompensación de títulos normaisnormales comcon adiantamentosanticipos - CR @since 27/07/2021 @version 1.0 /*/ //------------------------------------------------------------------- USER FUNCTION CmpAutCRUSER FUNCTION CmpAutCR() Local lRetOK Local lRetOK := .T. Local aArea Local aArea := GetArea GetArea() Local nTaxaCM Local nTaxaCM := 5 5.2322 Local aTxMoeda Local aTxMoeda := {} Local nSaldoCompLocal nSaldoComp:= 1000 1000.00 00 *nTaxaCM nTaxaCM // Valor a ser compensado (Caso seja parcial Pode ser parcial) - Compensar apenas R$ 50 Valor que se compensará (Si fuera parcial Puede ser parcial) - Compensar solamente R$ 50,00 Private nRecnoNDF Private nRecnoE1 PREPARE ENVIRONMENT EMPRESA Private nRecnoNDF Private nRecnoE1 PREPARE ENVIRONMENT EMPRESA "TI" FILIAL "D MG 01 " MODULO FILIAL "D MG 01 " MODULO "FIN" TABLES TABLES "SE2TI0","SE5TI0","SA6TI0","SEDTI0" Conout("----Inicio da Rotina Automatica¡Inicio de la rutina automática!------") dbSelectArea("SE1") dbSetOrder(2) // E1 E1_FILIAL, E1 E1_CLIENTE, E1 E1_LOJA, E1 E1_PREFIXO, E1 E1_NUM, E1 E1_PARCELA, E1 E1_TIPO, R R_E_C_N_O_, D D_E_L_E_T_ IF dbSeek IF dbSeek(XFILIAL("SE1")+"000000"+"00"+"331"+"RA0001 "+" "+"RA RA ") nRecnoRA nRecnoRA := RECNO RECNO() IF dbSeek IF dbSeek(XFILIAL("SE1")+"000000"+"00"+"331"+"000001 "+" "+"DP DP ") nRecnoE1 nRecnoE1 := RECNO RECNO() PERGUNTE("FIN330",.F.) lContabiliza := (MV_PAR09 PAR09 == 1) // Contabiliza On Line 1) // ¿Contabiliza On Line ? lDigita := (MV_PAR07 PAR07 == 1 1) // Mostra Lanc Contab ¿Muestra Asto. Contab ? lAglutina := .F. /* ==> Utilizar esse trecho se quiser simular o botão Taxas da tela inicial do FINA330 .F. /* ==> Utilice este trecho si quiere simular la opción Tasas de la pantalla inicial del FINA330 ==> Verifique oslos parâmetrosparámetros MV_CMP330 ey MV_CMTXCON para talello. nTaxaCM nTaxaCM := RecMoeda RecMoeda(dDataBase,SE1->E1_MOEDA) aAdd(aTxMoeda, {1, 1 1} ) aAdd(aTxMoeda, {2, nTaxaCM nTaxaCM} ) */ SE1->(dbSetOrder(1)) //E1_FILIAL+E1_PREFIXO+E1_NUM+E1_PARCELA+E1_TIPO+E1_FORNECE+E1_LOJA //NF X RA aRecRA /NF X RA aRecRA := { nRecnoRA nRecnoRA } aRecSE1 aRecSE1 := { nRecnoE1 nRecnoE1 } /* //RA X NF aRecRA RA X NF aRecRA := { nRecnoE1 nRecnoE1 } aRecSE1 aRecSE1 := { nRecnoRA nRecnoRA } */ If If !MaIntBxCR(3, aRecSE1 aRecSE1,,aRecRA,,{lContabiliza,lAglutinalAgrupa,lDigita,.F.,.F.,.F.},,,,,nSaldoComp,,,, nTaxaCM nTaxaCM, aTxMoeda aTxMoeda) Help("XAFCMPAD",1,"HELP","XAFCMPAD","Não foi possível a compensaçãoNo fue posible la compensación"+CRLF+" do titulo de adiantamento del título de anticipo",1,0) lRet lRet := .F. ENDIF ENDIF ENDIF RestArea(aArea) RESET ENVIRONMENTRESET ENVIRONMENT Return lRetReturn lRet |
Bloco de código | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
#INCLUDE "PROTHEUS.CH" #include "tbiconn.ch" user function xCmpCR() local aPerg as array local aRet as array local aEstorno as array local aRecTit as array local aRecCmp as array local aRecEst as array local aRecEst1 as array local aTxMoeda as array local cRecTit as character local cRecCmp as character local cJanela as character local cCodCanc as character local cValor as character local cSeq as character local lContabiliza as logical local lAglutina as logical local lDigita as logical local lHelp as logical local lConsdAbat as logical local nSldComp as numeric local nHdl as numeric local nOperacao as numeric local nTaxaCM as numeric cJanela := "CompensaçãoCompensación automática CR" aPerg := {} aRet := {} aEstorno := {} aRecTit := {} aRecCmp := {} aRecEst := {} aRecEst1 := {} aTxMoeda := {} cSeq := cValor := cCodCanc := cRecTit := cRecCmp := replicate(" ",50) nSldComp = 0 nHdl := 0 nOperacao := 0 nTaxaCM := 0 lHelp := .F. lConsdAbat := .F. PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULOMÓDULO "FINFINAL" conOut("INICIO DADE LA ROTINARUTINA AUTOMATICAAUTOMÁTICA") PERGUNTE("AFI340",.F.) lContabiliza := MV_PAR11 == 1 lAglutina := MV_PAR08 == 1 lDigita := MV_PAR09 == 1 aAdd(aPerg,{1, 'RecNo título de partida', cRecTit, "@", nil, nil, nil, 50, .T.}) aAdd(aPerg,{1, 'RecNo título apor compensar', cRecCmp, "@", nil, nil, nil, 50, .T.}) aAdd(aPerg,{2, 'Comp/Est?', "1", {"1=CompensaçãoCompensación","2=EstornoReversión"}, 100, nil, .T.}) aAdd(aPerg,{1, 'Valor', cValor, "@", nil, nil, nil, 50, .F.}) aAdd(aPerg,{1, 'Sequencia Est.', cRecCmp, "@", nil, nil, nil, 50, .F.}) if paramBox(aPerg, cJanela, aRet) aAdd(aRecTit, val(aRet[1])) cSeq := AllTrim(aRet[5]) if aRet[3] = "1" aAdd(aRecCmp, val(aRet[2])) else aAdd(aRecEst, getDocumen(val(aRet[2]))) if cSeq = "" aAdd(aEstorno, aRecEst) else aAdd(aEstorno, {aRecEst,cSeq}) endif endif if !Empty(AllTrim(aRet[4])) nSldComp := val(aRet[4]) else nSldComp := nil endif if MaIntBxCR(3, aRecTit, nil ,aRecCmp, nil,{lContabiliza,lAglutina,lDigita,.F.,.F.,.F.},nil,aEstorno,nil,nil,nSldComp,nil,nil,nil, nTaxaCM, aTxMoeda, lConsdAbat) conOut("ProcessoProceso concluidofinalizado comcon exitoéxito.") else conOut("Processo naono concluidofinalizado.") endif endif conOut("FIMFINAL DE DALA ROTINARUTINA AUTOMATICAAUTOMÁTICA") RESET ENVIRONMENT Return nil static function getDocumen(nRecSe1 as numeric) local cDocumen as character default cDocumen := "" SE1->(DbGoTo(nRecSe1)) If SE1->(Recno()) == nRecSe1 cDocumen := SE1->E1_PREFIXO + SE1->E1_NUM + SE1->E1_PARCELA + SE1->E1_TIPO + SE1->E1_LOJA EndIf return cDocumen |
...
...