Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


01. 

...

DATOS GENERALES

Linha Línea de Produtoproducto:Microsiga Protheus®
Segmento:ServiçosServicios
Módulo:FinanceiroFinanciero


02. 

...

SITUACIÓN/REQUISITO

Implementada a utilização automática da rotina de Compensação entre  carteirasSe implementó la utilización automática de la rutina de compensación entre  carteras


Informações
titleObservaçõesObservaciones

FINA450(nPosArotina,aAutoCab,nOpcAuto)

  •  aAutoCab - Array utilizado para enviar dados datos referentes ao processoal proceso.   Estes dados são o equivalente aos dados preenchidos na tela Estos datos son el equivalente a los datos informados en la pantalla de filtro manual,   como:
    • Data InicialFecha inicial: Data Fecha de vencimento vencimiento real inicial   para filtrar os los títulos.Data Final
    • Fecha final: Data Fecha de vencimento vencimiento real final para   filtrar os los títulos.
    • Valor limitelímite: Valor limite límite para a compensaçãola compensación.   Esta informação é utilizada información se utiliza para filtrar, ou nãoo no, os los títulos até o hasta el valor   informado.
    • Código do Cliente e lojade ciente y tienda: Código do del cliente/loja   tienda para filtrar os los títulos para a compensaçãola compensación
    • Código do Fornecedor e lojadel proveedor y tienda: Código do   fornecedor/loja del proveedor/tienda para filtrar os los títulos para a compensaçãola compensación.
    • MoedaMoneda: Código da moeda dos de la moneda de los títulos para utilizar   na compensaçãoen la compensación.
    • Débito ou o Crédito: Filtra os los tipos de débito (NFFact, DPFactCred, BOL e , etc.) ou o crédito (RA, PA, NCC e y NDF).
      • Conteúdo Contenido "1" filtra títulos normais e normales y "2" títulos de credito (ExEj: RA, PA)
    • Títulos Futurosfuturos: Filtra títulos emitidos   posterior a data la fecha base.
    • Chave de Títulos a Receber (Array com Chave dos   títulos a receber que serão compensadosClave de títulos por cobrar (Array con clave de los títulos por cobrar que se compensarán):
      • SE1->E1_FILIAL+SE1->E1_PREFIXO+SE1->E1_NUM+SE1->E1_PARCELA+SE1→E1_TIPO
    • Chave Clave de Títulos a Pagar por pagar (Array com Chave dos   títulos a Pagar que serão compensadoscon clave de los títulos por pagar que se compensarán):
      • SE2->E2_FILIAL+SE2->E2_PREFIXO+SE2->E2_NUM+SE2->E2_PARCELA+SE2->E2_TIPO+SE2→E2_FORNECE+SE2→E2_LOJA
    • nOpcAuto - Opção do Menu a ser executado  automaticamenteOpción del menú que se ejecutará automáticamente.
      • 3 = CompensaçãoCompensación

ObservaçãoObservación:

  • A Compensação La compensación automática entre carteiras somente realiza a baixa do carteras solamente realiza la baja del valor total do del título.
  • Caso as lojas de Cliente e Fornecedor sejam informadas sem conteúdo (vazias), o sistema considerará todas as lojas do mesmo código de cliente e fornecedor.  (Disponível a partir de Si las tiendas del cliente y proveedor se informan sin contenido (vacías), el sistema considerará todas las tiendas del mismo código de cliente y proveedor.  (Disponible a partir del 01/06/2023)


03. 

...

EJEMPLO DE

...

UTILIZACIÓN



Bloco de código
languagejava
themeMidnight
titleExemplo de rotina automatica
collapsetrue
#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 cFilSe2  := xFilial("SE2")
    Local cFilSe1  := xFilial("SE1")

    Private lMsHelpAuto := .T.
    Private lMsErroAuto := .F.

    BeginSql Alias cTabSe1
		SELECT R_E_C_N_O_ as RECNO
			FROM %Table:SE1% SE1
			WHERE SE1.E1_FILIAL = %Exp:cFilSe1%
				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})
        (cTabSe1)->(DbSkip())  
    Enddo

    (cTabSe1)->(DbCloseArea())

    BeginSql Alias cTabSe2
		SELECT R_E_C_N_O_ as RECNO
			FROM %Table:SE2% SE2
			WHERE SE2.E2_FILIAL = %Exp:cFilSe2%
				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})   
        (cTabSe2)->(DbSkip())  
    Enddo
    
    (cTabSe2)->(DbCloseArea())

    aAutoCab := { {"AUTDVENINI450", cTod('27/08/19') , nil},;
    {"AUTDVENFIM450", cTod('27/08/19') , nil},;
    {"AUTNLIM450" , 10000 , 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}}

    MSExecAuto({|x,y,z| Fina450(x,y,z)}, nil , aAutoCab , 3 )

    If !lMsErroAuto
        alert("Incluido¡Incluido comcon sucessoéxito! ")
        confirmsx8()
    Else
        alert("Erro¡Error en nala inclusaoinclusión!")
        rollbacksx8()
        MostraErro()
    EndIf
    
    RestArea(aArea)
Return

...

Bloco de código
languagejava
themeMidnight
titleExemplo Ejemplo de rotina rutina automática entre filiaissucursales.
collapsetrue
#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}}

    MSExecAuto({|x,y,z| Fina450(x,y,z)}, nil , aAutoCab , 3 )

    If !lMsErroAuto
        ConOut("¡Incluido con éxito! ")
        confirmsx8()
    Else
        ConOut("¡Error en la inclusión!")
        rollbacksx8()
        MostraErro()
    EndIf

	RestArea(aArea)
Return
Bloco de código
languagejava
themeMidnight
titleReversión
collapsetrue
#INCLUDE "TOTVS.ch"
#Include "PROTHEUS.ch"    
#Include "PRTOPDEF.CH"
#INCLUDE "TBICONN.CH" 


User Function F450Est()


Local cCliForn	:= "000001"
Local cLoja		:= "00"
Local cPref		:= "TST"
Local cNumPag	:= "PAG300000"
Local cParc		:= " "
Local cTipo		:= "NF "
Local cFilTit   := "D MG 01 "
Local aAutoCab := {}


PRIVATE lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "FIN" 

dbSelectArea("SE2")
dbSetOrder(1)		//E2_FILIAL+E2_PREFIXO+E2_NUM+E2_PARCELA+E2_TIPO+E2_FORNECE+E2_LOJA

//Es necesario marcar en un registro de la SE2 de un título que {"AUTAPAGCHAVE" , aSE2450 , nil},;
                {"AUTAFILCOMP" , aFilCmp , nil}}

    esté involucrado en la compensación
//No es necesario marcar en todos los títulos involucrados

SE2->(Dbseek(cFilTit+cPref + cNumPag + cParc + cTipo + cCliForn + cLoja))

MSExecAuto({|x,y,z| Fina450(x,y,z)}, nil , aAutoCab , 35 )

    If !lMsErroAuto
        ConOut("Incluido¡Reversión realizada comcon sucessoéxito! ")
        confirmsx8()
    Else
        ConOut("ErroError en nala inclusao!")
        rollbacksx8(reversión!")
        MostraErro()
    EndIf

	RestArea(aArea)
ReturnRETURN

Card documentos
InformacaoPara que a compensação funcione entre filiais se faz necessário o uso do parâmetro AUTAFILCOMP, caso contrario não ha a necessidade de informa-lola compensación funcione entre sucursales es necesario utilizar el parámetro AUTAFILCOMP, en caso contrario no es necesario informarlo.
Titulo¡IMPORTANTETituloIMPORTANTE!


04. 

...

OTRAS INFORMACIONES

No existeNão há.



05. 

...

ASUNTOS RELACIONADOS

Não háNo existe.



Templatedocumentos


HTML
<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>

...