#Include 'Protheus.ch'
User Function CN120ALT()
Local aResult := Nil//Retornar nulo caso nao modifique o array
Local aCab := PARAMIXB[1]
Local cTipo := PARAMIXB[2]
Local cChaveCNE := ""
Local cChaveCNZ := ""
CNE->(DbSetOrder(1))//CNE_FILIAL+CNE_CONTRA+CNE_REVISA+CNE_NUMERO+CNE_NUMMED+CNE_ITEM
CNZ->(DbSetOrder(2))//CNZ_FILIAL+CNZ_CONTRA+CNZ_REVISA+CNZ_NUMMED+CNZ_ITCONT+CNZ_ITEM
cChaveCNE := CND->(CND_FILIAL+CND_CONTRA+CND_REVISA+CND_NUMERO+CND_NUMMED)
If CNE->(DbSeek(cChaveCNE))
While CNE->(!EOF() .And. CNE_FILIAL+CNE_CONTRA+CNE_REVISA+CNE_NUMERO+CNE_NUMMED == cChaveCNE)
If !Empty(CNE->CNE_CC)
aResult := aClone(aCab)
aAdd(aResult, {IIF((cTipo == "1"),'E2_CCUSTO', 'E1_CCUSTO'), CNE->CNE_CC, Nil})
Exit
Else
cChaveCNZ := CNE->(CNE_FILIAL+CNE_CONTRA+CNE_REVISA+CNE_NUMMED+CNE_ITEM)
If CNZ->(DbSeek(cChaveCNZ))
aResult := aClone(aCab)
aAdd(aResult, {IIF((cTipo == "1"),'E2_CCUSTO', 'E1_CCUSTO'), CNZ->CNZ_CC, Nil})
Exit
EndIf
EndIf
CNE->(DbSkip())
EndDo
EndIf
Return aResult |