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 |
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.
PCOXFUN.PRW
PCOVLDLAN - Validação de Lançamentos ( cProcessocItemcPrograma [ lUsaLote ] [ lDeleta ] [ lVldLinGrade ] ) --> lRet
-
lRet(logico)
- .T. - Não Bloqueia .F. - Bloqueia
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().
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
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 |