Resolvido
1 votos
Gostaria de ter no relatório de Pedido de Compra que será enviado para aprovação da diretoria um campo de Preço de Custo vindo de uma Tabela de custo escolhida pelo usuário para que fosse comparado e fiscalizado o preço praticado no pedido contra o de tabela.

Idealmente o preço retornado deveria ainda ser de acordo com a Data do Pedido de Compra estando dentro do intervalo de validade inicial e final do preço gravado.

Usando a expressão abaixo funcionaria para alguns casos, mas não todos por ficar restrito a max, sum, avg:

max(preco.preco){f:tabela_custo.tabela=prompt('tabela_de_custo')}

Alguém teria alguma outra sugestão?
Postado em : Gerador de relatórios
Terça, Junho 14 2016, 04:12 PM
Compartilhar este post:

Aceitar Resposta

Edson Reis
Edson Reis
Offline
Quarta, Junho 15 2016, 03:06 PM - #Link Permanente
Resolvido
1 votos
O grande problema desta nesta necessidade é que existe apenas no Millennium MDO para preço, que busca os dados da VIEW PRECO.
Nesta View não existe informação de preço por data de validade, nesta view sempre é retornado o preço que está valendo no momento.
A única alterativa que vejo para esta necessidade é criar um campo no pedidovenda.mdo utilizando um subselect criando um atributo fixo e utilizando este atributo no gerador.
Utilizando a extensibilidade criando este novo campo

O vídeo em anexo mostra como eu fiz teste, e ainda em anexo o arquivo mdo já estendido.

Sugiro ver a lista de discussão sobre extensibilidade

Caso a resposta tenha atendido sua expectativa, clique em curtir e ainda marque que sua pergunta foi respondida.

A resposta está atualmente minimizada Show
Respostas (3)
  • Aceitar Resposta

    Sexta, Junho 17 2016, 12:44 PM - #Link Permanente
    Resolvido
    0 votos
    Obrigado Edson, aparentemente o campo da forma que criou funcionou e parece suficiente.

    Em resumo o que foi preciso foi:

    1) Criar o campo dentro do pedidocompra!nome.mdo incluindo a linha:

    < attribute name="PRECO_CUSTO_TABELA" tablename="produto_pedidoc" fieldname="(select max (pr.preco) from iprecos pr where pr.produto=$produto_pedidoc.produto and pr.estampa=$produto_pedidoc.estampa and pr.cor=$produto_pedidoc.cor and pr.tamanho=$produto_pedidoc.tamanho and pr.validade_inicial<=$pedido_compra.data_emissao and pr.validade_final>=$pedido_compra.data_emissao and pr.tabela=1 )" caption="custo_tabela" datatype="6"/>


    2) Criar uma Fórmula (usei nome "VALOR_UN_TABELA") no Gerador de Relatórios chamando o novo campo:

    avg(pedidocompra.PRECO_CUSTO_TABELA)


    3) Criei também uma variação do Item para usar Formatação Condicional pintando de vermelho quando:

    rpt.VALOR_UN_TABELA<>pedc.valor_unitario
    A resposta está atualmente minimizada Show
  • Aceitar Resposta

    Quarta, Junho 15 2016, 11:00 AM - #Link Permanente
    Resolvido
    0 votos
    Olá Diogo, obrigado pela sugestão, a fórmula abaixo até funcionou em alguns pedidos mas aparentemente ainda preciso de algo mais pois está multiplicando a linha dos produtos.

    none(preco.preco){l:produto.produto,cor.cor,estampa.estampa,tamanho.tamanho}
    {f:(tabela_custo.tabela=prompt('tabela_de_custo'))}



    Veja um exemplo anexo
    A resposta está atualmente minimizada Show
  • Aceitar Resposta

    Terça, Junho 14 2016, 05:52 PM - #Link Permanente
    Resolvido
    0 votos
    Ola, faca uma formula no gerador utilizando a expressão abaixo.

    none(preco.preco){l:produto.produto,cor.cor,estampa.estampa,tamanho.tamanho}
    {f:(tabela_custo.tabela=prompt('tabela_de_custo'))}

    A resposta está atualmente minimizada Show
Sua Resposta

Copyright © 2016 Millennium Info™ - Todos os direitos reservados - Desenvolvido por TOTALLnet