Versões: | Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Microsiga Protheus 10 |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
Idiomas: | Espanhol , Inglês |
LOCALIZAÇÃO : Function MaAvCotVen - Função responsável pela escolha da cotação vencedora conforme parametros da analise da cotação.
EM QUE PONTO : O ponto se encontra no final da função após a escolha das melhores fornecedores da cotação ( Vencedores ) para analise. Este ponto permite que o usuario manipule os fornecedores vencedores conforme a sua necessidade
COMXFUN.PRX
M160VENC - Manipule Fornecedores Vencedores ( < ExpA1> ) --> ExpA1
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
ExpA1 | Vetor | (Vide Observações) | X |
-
ExpA1(vetor)
- (Vide Observações)
Parâmetros:
aArrayCot = {aSCE,aPlanilha,aCotacao}
aSCE := Array contendo dados do Folder Auditoria
aPlanilha := Array contendo todos os dados da Analise da cotação
aCotação := Array contendo os dados da cotação da tabela SC8.
Retorno:
aNewSCEeAPlanilha = {aNewSCE,aNewaPlanilha }
aNewSCE := Array contendo dados do Folder Auditoria já manipulados com os novos vencedores
aPlanilha := Array contendo todos os dados da Analise da cotação já manipulados com os novos vencedores.
User Function M160VENC()Local aSCE := aClone(PARAMIXB[1])Local aPlanilha := aClone(PARAMIXB[2])Local aCotacao := aClone(PARAMIXB[3])Local aHeadSCE := {}Local nPQtdSC8 := aScan(aCotacao[1][1],{|x| Trim(x[1])=='C8_QUANT'})Local nPQtdAUDI := aScan(aCotacao[1][1],{|x| Trim(x[1])=='C8_QTDAUDI'})Local nPosRecno := aScan(aCotacao[1][1],{|x| Trim(x[1])=='SC8RECNO'})Local nPQtdSCE := 0Local nPMotSCE := 0Local nX := 0Local nY := 0Local nUsadoSCE := 0// Efetua a montagem do aHeader da planilha de auditoria dbSelectArea('SX3')dbSetOrder(1)MsSeek('SCE')While ( !Eof() .And. SX3->X3_ARQUIVO == 'SCE' ) If ( X3Uso(SX3->X3_USADO) .And. cNivel >= SX3->X3_NIVEL ) .Or. AllTrim(SX3->X3_CAMPO) == 'CE_NUMPRO' nUsadoSCE++ AADD(aHeadSCE,{ TRIM(X3Titulo()),; Trim(SX3->X3_CAMPO),; SX3->X3_PICTURE,; SX3->X3_TAMANHO,; SX3->X3_DECIMAL,; SX3->X3_VALID,; SX3->X3_USADO,; SX3->X3_TIPO,; SX3->X3_ARQUIVO,; SX3->X3_CONTEXT } ) EndIf dbSelectArea('SX3') dbSkip()EndDonPQtdSCE := aScan(aHeadSCE,{|x| Trim(x[2])=='CE_QUANT'})nPMotSCE := aScan(aHeadSCE,{|x| Trim(x[2])=='CE_MOTIVO'})//Restaura os ganhadores escolhidos apos a analise For nX := 1 To Len(aPlanilha) For nY := 1 To Len(aPlanilha[nX]) dbSelectArea('SC8') MsGoto(aCotacao[nX][nY][nPosRecno][2]) If !Empty(SC8->C8_CONAPRO) If SC8->C8_QTDAUDI > 0 aPlanilha[nX][nY][1] := '' // 'XX' opcional aSCE[nX][nY][nPQtdSCE] := aCotacao[nX][nY][nPQtdAUDI][2] Else aPlanilha[nX][nY][1] := '' aSCE[nX][nY][nPQtdSCE] := 0 EndIf EndIf Next nYNext nXReturn ({aSCE,aPlanilha})