Árvore de páginas

Ponto-de-Entrada: M160VENC - Manipule Fornecedores Vencedores
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
Descrição:

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

Eventos


 

Programa Fonte
COMXFUN.PRX
Sintaxe

M160VENC - Manipule Fornecedores Vencedores ( < ExpA1> ) --> ExpA1

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
ExpA1 Vetor (Vide Observações) X
Retorno
    ExpA1(vetor)
  • (Vide Observações)
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.

Exemplos
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})