Salve salve....
Ponto de entrada M410TIP9 - ( Faturamento - Pedido de venda )
MATA410-M410TIP9 - Substitui a validacao da funcao M410TIPO9
#INCLUDE "TOTVS.CH" /*/{Protheus.doc} M410TIP9 Substitui a validacao da funcao M410TIPO9 @type function @author Eurai Rapelli @since 2023.01.01 /*/ User Function M410TIP9() Local cLetra := "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0" Local cLetra2 := "01" Local nTotal := 0 Local nTotLib9 := 0 Local nTot9 := 0 Local nX := 1 Local nY := 1 Local nParc := 0 Local nAux := 0 Local lRet := .T. Local fC6QTDVEN := GdFieldPos('C6_QTDVEN') Local fC6QTDLIB := GdFieldPos('C6_QTDLIB') Local fC6VALOR := GdFieldPos('C6_VALOR') Begin Sequence If !SE4->( MsSeek( xFilial("SE4") + M->C5_CONDPAG ) ) Break Endif If SE4->E4_TIPO <> "9" Break Endif For nX := 1 to Len(aCols) If aCols[nX][Len(aCols[nX])] Loop EndIf nTot9 += aCols[nX][fC6QTDVEN] nTotLib9 += aCols[nx][fC6QTDLIB] nTotal += aCols[nX][fC6VALOR] Next nX nTotal := nTotal + M->C5_FRETE + M->C5_DESPESA + M->C5_SEGURO + M->C5_FRETAUT For nX:=1 To 50 If( nX < 37 ) If( SC5->(FieldPos( "C5_PARC"+Substr(cLetra,nX,1) ) == 0 ) )//Se campo não existir da um Loop no for Loop Endif nParc := &("M->C5_PARC"+Substr(cLetra,nX,1)) nAux += NoRound( nParc, 2 ) Else If( SC5->(FieldPos( "C5_PARC"+cLetra2 ) == 0 ) )//Se campo não existir da um Loop no for Loop Endif nParc := &("M->C5_PARC"+cLetra2) nAux += NoRound( nParc, 2 ) cLetra2 := SOMA1( cLetra2 ) Endif Next nX If( NoRound(nTotal,2) <> NoRound(nAux,2) ) Help(NIL, NIL, 'M410TIP9', NIL, 'Divergencia nos valores. Total => '+cValtoChar( NoRound(nTotal,2) ) + ' Soma parcelas => '+cValtoChar( NoRound(nAux,2) ), 1, 0, NIL, NIL, NIL, NIL, NIL, {'Linha{'+cValtoChar(ProcLine(0))+'}'}) lRet := .F.; Break Endif End Sequence Return( lRet )
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎
Um abraço, e até a próxima