Home

Linha Microsiga Protheus

Páginas filhas
  • PCOVLDLAN - Validação de Lançamentos -- 12508

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin
Composition Setup
import.css=/download/attachments/327912/newLayout.css
Portuguese

Pagetitle
PCOVLDLAN - Validação de Lançamentos
PCOVLDLAN - Validação de Lançamentos

Função: PCOVLDLAN - Validação de Lançamentos
Versões: Microsiga Protheus 8.11 , Protheus 10
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todas TotvsDbAccess
Nível de Acesso: Nível 1 (Acesso Clientes)
Idiomas: Espanhol , Inglês
Descrição:

A função PcoVldLan tem como finalidade validar se o lançamento de origem tem verba orçamentária disponível, efetuando um pseudo-lançamento na movimentação orçamentária e conforme parâmetrização, no tipo de bloqueio, compara os valores orçados ou previstos com os realizados efetivamente, e sendo o valor orçado maior ou igual ao do realizado, libera o lançamento, caso contrário bloqueia.

Programa Fonte:
PCOXFUN.PRW
Sintaxe:

PCOVLDLAN - Validação de Lançamentos ( cProcessocItemcPrograma [ lUsaLote ] [ lDeleta ] [ lVldLinGrade ] ) --> lRet

Retorno:
    lRet(logico)
  • .T. - Não Bloqueia .F. - Bloqueia
Observações

 

A finalidade desta função é validar se o lançamento de origem tem verba orçamentária disponível, efetuando um pseudo-lançamento na movimentação orçamentária e, conforme parâmetrização no tipo de bloqueio, compara os valores orçados ou previsto com os realizados efetivamente, e sendo o valor orçado maior ou igual ao do realizado, libera o lançamento, caso contrário bloqueia.

No cadastro de Bloqueios por Processo as regras (expressões ADVPL) para geração do pseudo-lançamento devem fazer referência às variáveis de memória no caso de interface do tipo enchoice ou conteúdo de acols quando interface do tipo grade, pois o lançamento de origem na maioria dos caso ainda não existem, isto é, não foram gravados ainda no banco de dados.

No caso de bloqueio a chave de sincronismo deve ser a composição de variáveis de memória que formam a chave de indice do processo envolvido, por exemplo:

Processo 000002 - Contas a Pagar Item 01 --> Chave:

xFilial('SE2')+M->E2_PREFIXO+M->E2_NUM+M->E2_PARCELA+M->E2_TIPO+M->E2_FORNECE+M->E2_LOJA

que é equivalente ao indice 1 da tabela SE2 - Contas a Pagar, portanto se não for bloqueado este lançamento, ao ser gerado o lançamento definitivo, este irá sobrepor o de bloqueio.

Para cada item (ponto de bloqueio) neste cadastro além das regras deve ser estipulado um ou mais tipos de bloqueio que contêm a regra do valor orçado versus o realizado a ser aplicada ao processo envolvido.

Tanto a chamada da função da PcoVldLan(...) como da PcoDetLan(...) deve estar entre a chamada da função PcoIniLan() e a PcoFinLan().

Exemplos
Function F050PcoLan()Local lRet	:=	.T.//se nao bloquear grava os lançamentos com a chamada a funcao PcoDetLanIf !PcoVldLan("000002",IIF(M->E2_TIPO$MVPAGANT,"02","01"),"FINA050")	lRet	:=	.F.	//===========================================================	//Grava os lancamentos nas contas orcamentarias SIGAPCO          //===========================================================	If SE2->E2_TIPO $ MVPAGANT		PcoDetLan("000002","02","FINA050")	Else		PcoDetLan("000002","01","FINA050")	EndIfEndifReturn lRet
Parâmetros:
NomeTipoDescriçãoDefaultObrigatórioReferência
cProcessoCaracterCódigo do Processo de Lancamento de Bloqueio do PCOX
cItemCaracterItem do Processo de Lançamento do Bloqueio do PCOX
cProgramaCaracterPrograma Origem do Lançamento de BloqueioX
lUsaLoteLógicoIndica se utilizou numero de lote na Ggeraçao do lançamento
lDeletaLógicoIndica se é Exclusão do Lançamento de Bloqueio do PCO
lVldLinGradeLógicoIndica se a Validação é por Grade