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.