Home

Linha Microsiga Protheus

Páginas filhas
  • Compensação automática entre Carteiras (FINA450)

Descrição

Implementada a utilização automática da rotina de Compensação entre   Carteiras (FINA450).

Observações

FINA450(nPosArotina,aAutoCab,nOpcAuto)

-aAutoCab - Array utilizado para enviar dados referentes ao processo.   Estes dados são o equivalente aos dados preenchidos na tela de filtro manual,   como:

  •   Data Inicial: Data de vencimento real inicial   para filtrar os títulos.
  •   Data Final: Data de vencimento real final para   filtrar os títulos.
  •   Valor limite: Valor limite para a compensação.   Esta informação é utilizada para filtrar, ou não, os títulos até o valor   informado.
  •   Código do Cliente e loja: Código do cliente/loja   para filtrar os títulos para a compensação.
  •   Código do Fornecedor e loja: Código do   fornecedor/loja para filtrar os títulos para a compensação.
  •   Moeda: Código da moeda dos títulos para utilizar   na compensação.
  •   Débito ou Crédito: Filtra os tipos de débito, ou   crédito.
  •   Títulos Futuros: Filtra títulos emitidos   posterior a data base.
  •   Chave de Títulos a Receber (Array com Chave dos   títulos a receber que serão compensados):

                   SE1->E1_FILIAL+SE1->E1_PREFIXO+SE1->E1_NUM+SE1->E1_PARCELA+SE1->E1_TIPO

  •   Chave de Títulos a Pagar (Array com Chave dos   títulos a Pagar que serão compensados):

                   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   automaticamente.

                 3 = Compensação

Observação: a Compensação   automática entre carteiras somente realiza a baixa do valor total do título.

Exemplos

#include "rwmake.ch"
  User Function Auto450()
  Local aAutoCab := { {"AUTDVENINI450", cTod('31/08/11') , nil},;
  {"AUTDVENFIM450", cTod('31/08/11') , nil},;
  {"AUTNLIM450" , 10000 , nil},;
  {"AUTCCLI450" , "000001" , nil},;
  {"AUTCLJCLI" , "01" , nil},;
  {"AUTCFOR450" , "000001" , nil},;
  {"AUTCLJFOR" , "01" , nil},;
  {"AUTCMOEDA450" , "01" , nil},;
  {"AUTNDEBCRED" , 1 , nil},;
  {"AUTLTITFUTURO", .F. , nil},;
  {"AUTARECCHAVE" , {} , nil},;
  {"AUTAPAGCHAVE" , {} , nil}}
  Private lMsHelpAuto := .T.
  Private lMsErroAuto := .F.
  // Dados do titulo a receber
  SE1->( dbSetOrder( 1 ) )
  SE1->( MsSeek( xFilial( "SE1" ) + PadR( " " , TamSX3(   "E1_PREFIXO" )[ 1 ] ) + ;
  PadR( "REC1" , TamSX3( "E1_NUM" )[ 1 ] ) + ;
  PadR( " " , TamSX3( "E1_PARCELA" )[ 1 ] ) + ;
  PadR( "NF " , TamSX3( "E1_TIPO" )[ 1 ] ) ) )
  AAdd( aAutoCab[11,2], { xFilial( "SE1" ) + PadR( " " ,   TamSX3( "E1_PREFIXO" )[ 1 ] ) + ;
  PadR( "REC1" , TamSX3( "E1_NUM" )[ 1 ] ) + ;
  PadR( " " , TamSX3( "E1_PARCELA" )[ 1 ] ) + ;
  PadR( "NF " , TamSX3( "E1_TIPO" )[ 1 ] ) } )
  // Dados do titulo a pagar
  SE2->( dbSetOrder( 1 ) )
  SE2->( MsSeek( xFilial( "SE2" ) + PadR( " " , TamSX3(   "E2_PREFIXO" )[ 1 ] ) + ;
  PadR( "PAG1" , TamSX3( "E2_NUM" )[ 1 ] ) + ;
  PadR( " " , TamSX3( "E2_PARCELA" )[ 1 ] ) + ;
  PadR( "NF " , TamSX3( "E2_TIPO" )[ 1 ] ) + ;
  PadR( "000001" , TamSX3( "E2_FORNECE" )[ 1 ] ) + ;
  PadR( "01" , TamSX3( "E2_LOJA" )[ 1 ] ) ) )
  AAdd( aAutoCab[12,2], { xFilial( "SE2" ) + PadR( " " ,   TamSX3( "E2_PREFIXO" )[ 1 ] ) + ;
  PadR( "PAG1" , TamSX3( "E2_NUM" )[ 1 ] ) + ;
  PadR( " " , TamSX3( "E2_PARCELA" )[ 1 ] ) + ;
  PadR( "NF " , TamSX3( "E2_TIPO" )[ 1 ] ) + ;
  PadR( "000001" , TamSX3( "E2_FORNECE" )[ 1 ] ) + ;
  PadR( "01" , TamSX3( "E2_LOJA" )[ 1 ] ) } )
  MSExecAuto({|x,y,z| Fina450(x,y,z)}, nil , aAutoCab , 3 )
  If !lMsErroAuto
  msgalert("Incluido com sucesso! ")
  confirmsx8()
  Else
  msgalert("Erro na inclusao!")
  rollbacksx8()
  MostraErro()
  EndIf

Idioma

Português(Brasil)

Versões

10 e 11

Sistemas Operacionais Suportados

Todos

Compatível com as Bases de Dados

Todas

Programa Fonte

FINA450.PRX

  • Sem rótulos