Home

Linha Microsiga Protheus

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

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:
Nome Tipo Descrição Default Obrigatório Referência
cProcesso Caracter Código do Processo de Lancamento de Bloqueio do PCO X
cItem Caracter Item do Processo de Lançamento do Bloqueio do PCO X
cPrograma Caracter Programa Origem do Lançamento de Bloqueio X
lUsaLote Lógico Indica se utilizou numero de lote na Ggeraçao do lançamento
lDeleta Lógico Indica se é Exclusão do Lançamento de Bloqueio do PCO
lVldLinGrade Lógico Indica se a Validação é por Grade