Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
languagetext
themeEclipse
titleExemplo de função que recupera valor de Hora extra
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
/*
    @description Exemplo de função para recuperação do valor de hora extra
    cadastrado na tabela TFU, de um determinado orçamento de serviço.
    @param cCodTfj, string, código do orçamento de serviço
    @param cQtdHrs, string, quantidade de horas no formato string 'HH:MM'
    @param cCodAbn, string, código do motivo de manutenção, cadastrada na tabela TFU, campo TFU_CODABN
*/
USER FUNCTION GTETFU(cCodTfj,cQtdHrs,cCodAbncCodAbn, cCodTfj)

Local nRet := 0
Local cQry := ''
Local cTmpAlias := 'TFUTMP'
Local lCobCtr := .F. 
Local cQtdHrs := ""
Local nQtdhrs := 0 
Local cQryoModel := FWMODELACTIVE()
Local oModelRH := oModel:GetModel('TFF_RH')

lCobCtr := oModelRH:GetValue('TFF_COBCTR'
Local cTmpAlias) == '1'
cQtdHrs := 'TFUTMP'oModelRH:GetValue('TFF_QTDHRS')


If !lCobCtr
// Conversão do formato HH:MM para formato decimal
Local nQtdhrs  nQtdHrs := VAL(substr(cQtdHrs,1,2)) + val(substr(cQtdHrs,4,2))/60

cQry += "SELECT DISTINCT TFU_CODIGO, TFU_CODTFF, TFU_CODABN, TFU_VALOR "
cQry += "FROM "+retSqlName("TFJ")+" " 
cQry += "INNER JOIN "+retSqlName("TFL")+" ON TFL_CODPAI = TFJ_CODIGO "
cQry += "AND TFJ_FILIAL = '"+xFilial('TFJ')+"' " 
cQry += "AND TFL_FILIAL = '"+xFilial('TFL')+"' " 
cQry += "INNER JOIN "+retSqlName("TFF")+"   ON TFF_CODPAI = TFL_CODIGO "
cQry += "INNER JOIN "+retSqlName("TFU")+" ON TFU_CODTFF = TFF_COD "
cQry += "WHERE TFJ_CODIGO = '"+cCodTfj+"' AND TFU_CODABN = '"+cCodAbn+"' "

cQry := ChangeQuery(cQry)

dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQry),cTmpAlias,.T.,.T.)

// Recuperando um único valor, relacionado com o motivo de manutenção (cCodAbn)
If (cTmpAlias)->(!EOF())
    nRet := (cTmpAlias)->TFU_VALOR * nQtdhrs
EndIf

(cTmpAlias)->(DBCLOSEAREA())
Else 
nRet := FWFLDGET(TFF_PRCVEN)
EndIf

return nRet

2) Relize a inclusão do gatilho no campo TFF_QTDHRS, conforme a seguir:

...

Campo: TFF_QTDHRS
Sequencia: 001
Cont. Dominio: TFF_PRCVEN
Tipo: 1 - Primário
Regra: IIF(M->TFF_COBCTR=="2",  U_GTETFU(M→TFJ_CODIGO,M→TFF_QTDHRS, /*abncod*/), M->TFFTFJ→TFJ_PRCVENCODIGO)  
Posiciona: 2-Não
Alias: TFF

...