Identificador de Regra
CPR-410CRICO01
Módulo: CPR - Compras.
Finalidade: Permite que seja criado um critério de cotação personalizado para indicar a cotação mais vantajosa na tela F410NQC.
Tela: F410NQC.
Transação: Não se aplica.
Variáveis disponibilizadas:
| Nome | Tipo | Observações | Retorna Valor |
|---|---|---|---|
| CprNCodEmp | Empresa Da Cotação | N | |
| CprNNumCot | Número da Cotação | N | |
| CprNCodFor | Código do Fornecedor indicado como o mais vantajoso | É obrigatório o retorno de um código de fornecedor quando utilizado essa regra | S |
Regra:
Exemplo de regra:
Definir Numero CprNCodEmp;
Definir Numero CprNNumCot;
Definir Numero CprNCodFor;
Definir Cursor c_Cotacao;
@Define as pontuações por dado analisado@
Definir Numero PontuacaoValorCotado;
Definir Numero PontuacaoValorPresente;
Definir Numero PontuacaoPrazoEntrega;
Definir Numero PontuacaoMaiorFreteSeFOB;
PontuacaoValorCotado = 3;
PontuacaoValorPresente = 3;
PontuacaoPrazoEntrega = 1;
PontuacaoMaiorFreteSeFOB = -3;
Definir Numero xFornecedorVencedor;
Definir Numero xScoreVencedor;
Definir Numero xPreCotVencedor;
Definir Numero xVlrPrsVencedor;
Definir Numero xPrzEntVencedor;
Definir Alfa xCifFobVencedor;
Definir Numero xFreCotVEncedor;
Definir Numero xScoreFornecedorAnalise;
c_Cotacao.Sql"SELECT CODFOR, PRECOT, VLRPRS, PRZENT, CIFFOB, FRECOT \
FROM E410COT \
WHERE CODEMP = :CprNCodEmp \
AND NUMCOT = :CprNNumCot";
c_Cotacao.AbrirCursor();
Se(c_Cotacao.Achou){
xFornecedorVencedor = c_Cotacao.CODFOR;
xPreCotVencedor = c_Cotacao.PreCot;
xVlrPrsVencedor = c_Cotacao.VlrPrs;
xPrzEntVencedor = c_Cotacao.PrzEnt;
xCifFobVencedor = c_Cotacao.CifFob;
xFreCotVEncedor = c_Cotacao.FreCot;
}
c_Cotacao.Proximo();
Enquanto(c_Cotacao.Achou){
xScoreVencedor = 0;
xScoreFornecedorAnalise = 0;
Se (xPreCotVencedor > c_Cotacao.PreCot)
xScoreVencedor = xScoreVencedor + PontuacaoValorCotado;
Senao
xScoreFornecedorAnalise = xScoreFornecedorAnalise + PontuacaoValorCotado;
Se (xVlrPrsVencedor > c_Cotacao.VlrPrs)
xScoreVencedor = xScoreVencedor + PontuacaoValorPresente;
Senao
xScoreFornecedorAnalise = xScoreFornecedorAnalise + PontuacaoValorPresente;
Se (xPrzEntVencedor > c_Cotacao.PrzEnt)
xScoreVencedor = xScoreVencedor + PontuacaoPrazoEntrega;
Senao
xScoreFornecedorAnalise = xScoreFornecedorAnalise + PontuacaoPrazoEntrega;
Se ((xCIFFOBVencedor = "F") e (xCIFFOBVencedor = c_Cotacao.CifFob)){
Se (xFreCotVencedor > c_Cotacao.FreCot)
xScoreVencedor = xScoreVencedor + PontuacaoMaiorFreteSeFOB;
Senao
xScoreFornecedorAnalise = xScoreFornecedorAnalise + PontuacaoMaiorFreteSeFOB;
}
Senao Se (xCIFFOBVencedor = "F"){
xScoreVencedor = xScoreVencedor + PontuacaoMaiorFreteSeFOB;
} Senao Se (c_Cotacao.CifFob = "F"){
xScoreFornecedorAnalise = xScoreFornecedorAnalise + PontuacaoMaiorFreteSeFOB;
}
Se (xScoreFornecedorAnalise > xScoreVencedor){
xFornecedorVencedor = c_Cotacao.CODFOR;
xPreCotVencedor = c_Cotacao.PreCot;
xVlrPrsVencedor = c_Cotacao.VlrPrs;
xPrzEntVencedor = c_Cotacao.PrzEnt;
xCifFobVencedor = c_Cotacao.CifFob;
xFreCotVEncedor = c_Cotacao.FreCot;
}
c_Cotacao.Proximo();
}
c_Cotacao.FecharCursor();
CprNCodFor = xFornecedorVencedor;
|
Atenção
Caso o parâmetro global LisVarReg esteja habilitado, a variável ListaVariaveis estará disponível em todos os identificadores de regras do sistema. O conteúdo desta variável lista os campos disponibilizados no identificador de regras em questão.
Não é aconselhada a ativação desse parâmetro global para o uso cotidiano. Esse recurso de listagem dos campos de identificadores auxilia a construção de regras e o Suporte para, por exemplo, depuração ou quando não houver acesso à documentação dos identificadores de regras.
English
Español
English
Español


