Protótipo de Tela
Apresentados juntamente com as regras de negócio.
Diagrama de Ação
Primeiramente, como essas telas são as primeiras do módulo de compras que estão sendo construídas com o novo framework em HTML, é importante lembrar que será necessário criar toda a estrutura de de projeto para o módulo de compras MCC.
O nome do “war” gerado dentro de “ear” para o módulo de compras deverá ser “html-mcc-11.5.X-SNAPSHOT.war”.
As telas deverão utilizar os padrões do novo framework, prevendo traduções e também chamadas para tratamento de epc. Deverão haver pontos padrões de forma que seja possível por exemplo, alterar o conteúdo de um campo, criar novos ou eliminar algum.
Pedido de compra
A tela de consulta de pedido de compra, deverá ficar dentro do diretório “purchaseorder/detail”, com o nome de “purchaseorder.detail.html”, lembrando que posteriormente haverão as demais telas de pedido (listagem, inclusão, etc.).
Para a parte progress, deverá ser criada uma nova API (ccp/ccapi351.p) para retorno de dados do pedido de compra, todos em uma única chamada. A ideia é utilizar DataSet para facilitar esse retorno.
A procedure principal deverá ter o nome de “purchaseOrderDetails” e deverá receber como parâmetro o número do pedido de compra, a data para conversão da cotação e a moeda para conversão. A procedure retornará um dataset contendo informações do pedido de compra (ttPedidoCompr), das ordens de compra (ttOrdemCompra), das alterações do pedido (ttAltPed), dos recebimentos do pedido (ttRecebimento) e das condições de pagamento específicas (ttCondEspecif).
Incluir o ponto de epc progress conforme as informações da tabela abaixo. Para a parte HTML, incluir os pontos necessários que manipular o preenchimento de campos existentes e também novos (exemplos em: http://tdn.totvs.com.br/pages/viewpage.action?pageId=185738044)
Nome do Evento | Onde deve ser colocado | Parâmetro | Valor do parâmetro |
---|
afterLoadPedido | Após o preenchimento dos dados de pedido de compra | Handle_ttPedido | Handle da temp-table ttPedido |
Handle_ttOrdemCompra | Handle da temp-table ttOrderCompra |
Handle_ttAltPed | Handle da temp-table ttAltPed |
Handle_ttRecebimento | Handle da temp-table ttRecebimento |
Handle_ttCondEspecif | Handle da temp-table ttCondEspecif |
Estrutura das temp-tables:
DEFINE TEMP-TABLE ttPedidoCompr NO-UNDO LIKE pedido-compr
FIELD nome-emit LIKE emitente.nome-emit
FIELD natureza-desc AS CHARACTER FORMAT "x(40)"
FIELD cod-cond-pag-desc LIKE cond-pagto.descricao
FIELD end-entrega-desc LIKE estabelec.nome
FIELD end-cobranca-desc LIKE estabelec.nome
FIELD cod-transp-desc LIKE transporte.nome
FIELD via-transp-desc AS CHARACTER FORMAT "x(40)"
FIELD frete-desc AS CHARACTER FORMAT "x(40)"
FIELD situacao-desc AS CHARACTER FORMAT "x(40)"
FIELD i-moeda-desc LIKE moeda.descricao
FIELD ind-orig-entrada-desc AS CHARACTER FORMAT "x(40)"
FIELD ind-via-envio-desc AS CHARACTER FORMAT "x(40)"
FIELD responsavel-desc LIKE usuar-mater.nome
FIELD cod-mensagem-des LIKE mensagem.descricao
FIELD cod-estab-gestor-desc LIKE estabelec.nome
FIELD cod-emit-terc-desc LIKE emitente.nome-emit
FIELD valor-total AS DECIMAL FORMAT ">>>>>,>>>,>>9.99"
FIELD valor-aberto AS DECIMAL FORMAT ">>>>>,>>>,>>9.99"
FIELD des-contrat LIKE contrato-for.des-contrat
FIELD cod-tipo-contrat LIKE contrato-for.cod-tipo-contrat
FIELD ind-sit-contrat LIKE contrato-for.ind-sit-contrat
FIELD ind-sit-item-desc AS CHARACTER FORMAT "x(40)"
FIELD cod-tipo-contrat-desc LIKE tipo-contrat.des-tipo-contrat
FIELD aprovado AS LOGICAL
FIELD aprov-total AS LOGICAL
FIELD epc-value AS CHARACTER FORMAT “x(200)”.
DEFINE TEMP-TABLE ttOrdemCompra NO-UNDO
FIELD numero-ordem LIKE ordem-compra.numero-ordem
FIELD cod-estabel LIKE ordem-compra.cod-estabel
FIELD it-codigo LIKE ordem-compra.it-codigo
FIELD it-codigo-desc LIKE ITEM.desc-item
FIELD qt-solic LIKE ordem-compra.qt-solic
FIELD un LIKE prazo-compra.un
FIELD situacao LIKE ordem-compra.situacao
FIELD situacao-desc AS CHARACTER
FIELD data-entrega LIKE prazo-compra.data-entrega
FIELD parcelado AS LOGICAL
FIELD nr-requisicao LIKE ordem-compra.nr-requisicao
FIELD data-cotacao LIKE ordem-compra.data-cotacao
FIELD mo-codigo LIKE ordem-compra.mo-codigo
FIELD num-pedido LIKE ordem-compra.num-pedido
FIELD preco-unit LIKE ordem-compra.preco-unit
FIELD aprovada AS LOGICAL
FIELD epc-value AS CHARACTER FORMAT “x(200)”.
DEFINE TEMP-TABLE ttAltPed NO-UNDO
FIELD cod-cond-pag LIKE alt-ped.cod-cond-pag
FIELD data LIKE alt-ped.data
FIELD data-entrega LIKE alt-ped.data-entrega
FIELD hora LIKE alt-ped.hora
FIELD nome-abrev LIKE alt-ped.nome-abrev
FIELD num-pedido LIKE alt-ped.num-pedido
FIELD numero-ordem LIKE alt-ped.numero-ordem
FIELD observacao LIKE alt-ped.observacao
FIELD parcela LIKE alt-ped.parcela
FIELD preco LIKE alt-ped.preco
FIELD quantidade LIKE alt-ped.quantidade
FIELD usuario LIKE alt-ped.usuario
FIELD preco-novo LIKE alt-ped.preco
FIELD data-entrega-nova LIKE alt-ped.data-entrega
FIELD quantidade-nova LIKE alt-ped.quantidade
FIELD cod-cond-pag-nova AS CHARACTER
FIELD char-1 LIKE alt-ped.char-1
FIELD epc-value AS CHARACTER FORMAT “x(200)”.
DEFINE TEMP-TABLE ttRecebimento NO-UNDO
FIELD cod-movto LIKE recebimento.cod-movto
FIELD data-movto LIKE recebimento.data-movto
FIELD nat-operacao LIKE recebimento.nat-operacao
FIELD num-seq-event LIKE recebimento.num-seq-event
FIELD num-seq-item LIKE recebimento.num-seq-item
FIELD num-seq-medicao LIKE recebimento.num-seq-medicao
FIELD numero-nota LIKE recebimento.numero-nota
FIELD num-pedido LIKE recebimento.num-pedido
FIELD parcela LIKE recebimento.parcela
FIELD pre-unit-for LIKE recebimento.pre-unit-for
FIELD preco-unit LIKE recebimento.preco-unit
FIELD quant-receb LIKE recebimento.quant-receb
FIELD serie-docto LIKE recebimento.serie-docto
FIELD valor-total LIKE recebimento.valor-total
FIELD cod-movto-desc AS character
FIELD epc-value AS CHARACTER FORMAT “x(200)”.
DEFINE TEMP-TABLE ttCondEspecif NO-UNDO LIKE cond-especif
FIELD epc-value AS CHARACTER FORMAT “x(200)”.
Para o preenchimento dos campos, e leituras de tabelas, utilizar como base o programa Flex (fch/fchmat/ fchmatdetailpurchaseorder.p – Procedures getOrderDetails, getOrderReceipts, getOrderUpdates, getPaymentTerms, getPurchaseContract, getRequistionsOrder).
Lembrando que é necessário formatar campos lógicos, de data e valores para serem apresentados em tela.
Para o preenchimento de descrições e campos “calculados” será necessário utilizar os eventos de call-back “AFTER-ROW-FILL” das temp-tables do dataset.
Para o preenchimento de valores totais, será necessário utilizar os eventos de call-back “BEFORE-FILL” do pedido de compra, para zerar as variáveis, “AFTER-ROW-FILL” da ordem de compra para calcular e “AFTER-FILL” do pedido para atribuir os totais.
Para o preenchimento dos campos de “aprovação” do pedido deverá ser seguida a regra abaixo:
/* Verifica se é utilizado o MLA */
if can-find(funcao where
funcao.cd-funcao = "Integra_MLA_EMS" and
funcao.ativo = yes) then do:
/* Pedido emergencial */
IF ttPedidoCompra.emergencial THEN DO:
<para buscar a empresa, verificar no programa mlaapi010d.p como é feito>
/* Pedido emergencial – Total */
IF NOT l-pedido-pendente THEN DO:
FOR FIRST mla-tipo-doc-aprov FIELDS (apr-tip-doc)
WHERE mla-tipo-doc-aprov.ep-codigo = <empresa >
AND mla-tipo-doc-aprov.cod-estabel = ttPedidoCompra.cod-estabel
AND mla-tipo-doc-aprov.cod-tip-doc = 8
AND mla-tipo-doc-aprov.apr-tip-doc = YES NO-LOCK:
ASSIGN l-aprov-total = YES.
RUN pi-verifica IN h-cdapi172 (INPUT 6,
INPUT ROWID(ordem-compra),
OUTPUT l-pedido-pendente).
END.
IF NOT AVAIL mla-tipo-doc-aprov THEN DO:
/* Pedido emergencial – Item */
FOR FIRST mla-tipo-doc-aprov FIELDS (apr-tip-doc)
WHERE mla-tipo-doc-aprov.ep-codigo = <empresa >
AND mla-tipo-doc-aprov.cod-estabel = ttOrdemCompra.cod-estabel
AND mla-tipo-doc-aprov.cod-tip-doc = 19
AND mla-tipo-doc-aprov.apr-tip-doc = YES NO-LOCK:
RUN pi-verifica IN h-cdapi172 (INPUT 6,
INPUT ROWID(ordem-compra),
OUTPUT l-pendente).
< O campo “aprovada” da ordem deverá ser preenchido com o valor da variável “l-pendente”>
END.
END.
END.
END.
ELSE DO: /* Pedido normal */
<para buscar a empresa, verificar no programa mlaapi010f.p como é feito>
/* Pedido – Total */
IF NOT l-pedido-pendente THEN DO:
FOR FIRST mla-tipo-doc-aprov FIELDS (apr-tip-doc)
WHERE mla-tipo-doc-aprov.ep-codigo = <empresa >
AND mla-tipo-doc-aprov.cod-estabel = ttPedidoCompra.cod-estabel
AND mla-tipo-doc-aprov.cod-tip-doc = 7
AND mla-tipo-doc-aprov.apr-tip-doc = YES NO-LOCK:
ASSIGN l-aprov-total = YES.
RUN pi-verifica IN h-cdapi172 (INPUT 4,
INPUT ROWID(ordem-compra),
OUTPUT l-pedido-pendente).
END.
END.
IF NOT AVAIL mla-tipo-doc-aprov THEN DO:
/* Pedido – Item */
FOR FIRST mla-tipo-doc-aprov FIELDS (apr-tip-doc)
WHERE mla-tipo-doc-aprov.ep-codigo = <empresa >
AND mla-tipo-doc-aprov.cod-estabel = ttOrdemCompra.cod-estabel
AND mla-tipo-doc-aprov.cod-tip-doc = 6
AND mla-tipo-doc-aprov.apr-tip-doc = YES NO-LOCK:
RUN pi-verifica IN h-cdapi172 (INPUT 4,
INPUT ROWID(ordem-compra),
OUTPUT l-pendente).
< O campo “aprovada” da ordem deverá ser preenchido com o valor da variável “l-pendente”>
END.
END.
END.
END.
ELSE DO: /* Aprovação de compras */
<fazer a leitura da param-aprov no início do programa>
IF AVAIL param-aprov AND param-aprov.aprov-total-pedido THEN DO:
IF NOT l-pedido-pendente THEN DO:
ASSIGN l-aprov-total = YES.
RUN pi-verifica IN h-cdapi172 (INPUT IF ttPedidoCompra.emergencial THEN 4 ELSE 6,
INPUT ROWID(ordem-compra),
OUTPUT l-pedido-pendente).
END.
END.
ELSE DO:
RUN pi-verifica IN h-cdapi172 (INPUT IF ttPedidoCompra.emergencial THEN 4 ELSE 6,
INPUT ROWID(ordem-compra),
OUTPUT l-pendente).
< O campo “aprovada” da ordem deverá ser preenchido com o valor da variável “l-pendente”>
END.
END.
Após o processamento de todas as ordens de compra, o campo “aprov-total” do pedido de compra deverá ser preenchido com o valor da variável “l-aprov-total” e o campo “aprovado” do pedido deverá ser preenchido com o valor da variável “l-pedido-pendente”.
Quando for aprovação por total no campo de aprovação das ordens, deve-se mostrar o mesmo valor que no campo de aprovação do pedido.
Para a tela de “Trocar moeda”, para o preenchimento da listagem de moedas utilizar o fchmat/fchmatcurrency.p à procedure getCurrencies.
Sobre os campos do zoom de pedido de compra:
- Pedido: pedido-compr.num-pedido
- Data pedido: pedido-compr.data-pedido
- Nome-abrev: emitente.nome-abrev (buscar pelo pedido-compra.cod-emitente)
- Nome fornecedor: emitente.nome-emit (buscar pelo pedido-compra.cod-emitente)
- CNPJ/CPF do fornecedor: emitente.cgc (buscar pelo pedido-compra.cod-emitente)
- Contrato: pedido-compr.nr-contrato
- Natureza: {ininc/i01in274.i 04 pedido-compr.natureza}
Ordem de compra
A tela de consulta de ordem de compra, deverá ficar dentro do diretório “purchaseorderline/detail”, com o nome de “purchaseorderline.detail.html”, lembrando que posteriormente haverão as demais telas de ordem de compra (listagem, inclusão, etc.).
Para a parte progress, deverá ser criada uma nova API (ccp/ccapi352.p) para retorno de dados da ordem de compra, todos em uma única chamada. A ideia é utilizar DataSet para facilitar esse retorno.
A procedure principal deverá ter o nome de “purchaseOrderLineDetails” e deverá receber como parâmetro o número da ordem de compra, a data para conversão da cotação e a moeda para conversão. A procedure retornará um dataset contendo informações da ordem de compra (ttOrdemCompra), das entregas (ttPrazoCompra), das cotações (ttCotacaoItem), das alterações da ordem (ttAltPed), dos recebimentos da ordem (ttRecebimento), dos eventos da ordem (ttEventoPed), das requisições (ttItRequisicao) e unidades de negócio (ttUnidNegoc). A estrutura das temp-tables é apresentada mais adiante nas tabelas.
Para o preenchimento dos campos, e leituras de tabelas, utilizar como base o programa Flex (fch/fchmat/ fchmatdetailpurchaserequisitions.p – Procedures getRequisitionDetail, getBusinessUnits, getDeliverySchedule, getPurchaseContract, getPurchaseEvents, getQuotes, getQuoteDetail, getReceipts, getRequests e getRequisitionUpdates).
Lembrando que é necessário formatar campos lógicos, de data e valores para serem apresentados em tela.
Para o preenchimento de descrições e campos “calculados” será necessário utilizar os eventos de call-back “AFTER-ROW-FILL” das temp-tables do dataset.
Sobre os campos do zoom de ordem de compra:
- Ordem compra: ordem-compra.numero-ordem
- Item: ordem-compra.it-codigo
- Descrição do item: item.desc-item (buscar pelo ordem-compra.it-codigo)
- Requisitante: ordem-compra.requisitante
Obs.:
- Para todas as temp-tables descritas abaixo, incluir o campo “epc-value” como indicado para os detalhes do pedido.
- Para as buscas de tabelas relacionadas sempre utilizar FOR FIRST/FOR EACH com clálsula fields
- No início ao localizar o registro, criar a temp-table e executar um buffer-copy. Após isso preencher os demais campos que dependem de alguma regra diferenciada.
- Incluir o ponto de epc progress conforme as informações da tabela abaixo. Para a parte HTML, incluir os pontos necessários que manipular o preenchimento de campos existentes e também novos (exemplos em: http://tdn.totvs.com.br/pages/viewpage.action?pageId=185738044)
Nome do Evento | Onde deve ser colocado | Parâmetro | Valor do parâmetro |
---|
afterLoadOrdemCompra
| Após o preenchimento dos dados da ordem de compra
| Handle_ttOrdemCompra | Handle da temp-table ttOrdemCompra |
Handle_ ttPrazoCompra | Handle da temp-table ttPrazoCompra |
Handle_ttCotacaoItem | Handle da temp-table ttCotacaoItem |
Handle_ttAltPed | Handle da temp-table ttAltPed |
Handle_ttRecebimento | Handle da temp-table ttRecebimento |
Handle_ttEventoPed | Handle da temp-table ttEventoPed |
Handle_ttItRequisicao | Handle da temp-table ttItRequisicao |
Handle_ttUnidNegoc | Handle da temp-table ttUnidNegoc |
ttOrdemCompra (Ler a ordem-compra pelo campo numero-ordem considerando o parâmetro passado para procedure)
Campo temp-table | Label | Formato / Como preencher |
---|
numero-ordem | Número | LIKE ordem-compra.numero-ordem |
natureza | Não vai em tela | LIKE ordem-compra.natureza |
natureza-desc | Natureza | CHARACTER FORMAT "x(40)" {ininc/i01in274.i 04 ttOrdemCompra.natureza} |
situacao | Não vai em tela | LIKE ordem-compra.situacao |
situacao-desc | Situação | {ininc/i02in274.i 04 ttOrdemCompra.situacao} |
it-codigo | Item | LIKE ordem-compra.it-codigo |
it-codigo-desc | Mostrar junto com o anterior | Buscar à item.desc-item |
qt-solic | Quantidade | LIKE ordem-compra.qt-solic |
qtd-recbda-fut | Qtd Recebida das Faturas / Entregas Futura e Fat. Antecipado | LIKE ordem-compra.qtd-recbda-fut |
cod-estabel | Estabelecimento | LIKE ordem-compra.cod-estabel |
cod-estabel-desc | Mostrar junto com o anterior | Buscar à estabelec.nome |
dep-almoxar | Depósito | LIKE ordem-compra.dep-almoxar |
dep-almoxar-desc | Mostrar junto com o anterior | Buscar à deposito.nome |
data-emissao | Data emissão | LIKE ordem-compra.data-emissao |
requisitante | Requisitante | LIKE ordem-compra.requisitante |
requisitante-desc | Mostrar junto com o anterior | Buscar à usuar-mater.nome |
cod-comprado | Comprador | LIKE ordem-compra.cod-comprado |
cod-comprado-desc | Mostrar junto com o anterior | Buscar à usuar-mater.nome |
num-pedido | Pedido de Compra | LIKE ordem-compra.num-pedido |
nr-processo | Pacote de Compra | LIKE ordem-compra.nr-processo |
num-ord-inv | Ordem Investimento | LIKE ordem-compra.num-ord-inv |
ep-codigo | Empresa | LIKE ordem-compra.ep-codigo |
ep-codigo-desc | Mostrar junto com o anterior | Buscar à empresa.nome |
ordem-servic | Ordem de serviço | LIKE ordem-compra.ordem-servic |
op-codigo | Operação | LIKE ordem-compra.op-codigo |
ct-codigo | Conta | LIKE ordem-compra.ct-codigo Obs.: Utilizar a procedure “pi-formata-conta” como base para formatar a conta. Atentar para instanciar o programa antes de todas as “utilizações” e eliminar o handle no final. |
ct-codigo-desc | Mostrar junto com o anterior | Utilizar a procedure “pi-busca-desc-conta” como base para obter a descrição. Obs.: Atentar para instanciar o programa antes de todas as “utilizações” e eliminar o handle no final. |
sc-codigo | Centro de custo | LIKE ordem-compra.sc-codigo Obs.: Utilizar a procedure “pi-formata-ccusto” como base para formatar a conta. Atentar para instanciar o programa antes de todas as “utilizações” e eliminar o handle no final. |
sc- codigo-desc | Mostrar junto com o anterior | Utilizar a procedure “pi-busca-desc-ccusto” como base para obter a descrição. Obs.: Atentar para instanciar o programa antes de todas as “utilizações” e eliminar o handle no final. |
tp-despesa | Tipo de despesa | LIKE ordem-compra.tp-despesa |
tp-despesa-desc | Mostrar junto com o anterior | Buscar à tipo-rec-desp.descricao |
cod-estab-gestor | Estabelecimento Gestor | LIKE ordem-compra.cod-estab-gestor |
cod-estab-gestor-desc | Mostrar junto com o anterior | Buscar à estabelec.nome |
expectativa | Expectativa de Compra | LIKE ordem-compra.expectativa |
prioridade-aprov | Prioridade Aprovação | LIKE ordem-compra.prioridade-aprov |
cod-unid-negoc | Não será apresentado | LIKE ordem-compra.cod-unid-negoc |
Agrupador Contrato (para localizar o contrato à contrato-for.nr-contrato = ordem-compra.nr-contrato) |
nr-contrato | Número | LIKE ordem-compra.nr-contrato |
des-contrat | Descrição | LIKE contrato-for.des-contrat |
cod-tipo-contrat | Modalidade | LIKE contrato-for.cod-tipo-contrat |
cod-tipo-contrat-desc | Mostrar junto com o anterior | Buscar à tipo-contrat.des-tipo-contrat |
ind-sit-item | Não será mostrado | LIKE contrato-for.ind-sit-contrat |
ind-sit-item-desc | Situação | CHARACTER FORMAT "x(40)" {ininc/i05in065.i 04 contrato-for.ind-sit-contrat} |
Agrupador Item Contrato (para localizar o item do contrtao: ordem-compra.nr-contrato = item-contrat.nr-contrato e ordem-compra.num-seq-item = item-contrat.num-seq-item) |
num-seq-item | Sequência | LIKE item-contrat.num-seq-item |
ind-tipo-control | Não será mostrado | LIKE item-contrat.ind-tipo-control |
ind-tipo-control-desc | Tipo de Controle | CHARACTER FORMAT "x(40)" {ininc/i04in582.i 04 item-contrat.ind-tipo-control} |
log-control-event | Controle de Evento | LIKE item-contrat.log-control-event |
Obs.: Para mostrar a Unidade de Medida da ordem, utilizar a informação da primeira entrega (prazo-compra)
ttPrazoCompra (leitura prazo-compra.numero-ordem = <número da ordem>)
Campo temp-table | Label | Formato / Como preencher |
---|
parcela | Parcela | LIKE prazo-compra.parcela |
data-entrega | Entrega | LIKE prazo-compra.data-entrega |
situacao | Não será apresentado | LIKE prazo-compra.situacao |
situacao-desc | Situação | CHARACTER FORMAT "x(40)" {ininc/i02in274.i 04 ttPrazoCompra.situacao} |
quantidade | Quantidade | LIKE prazo-compra.quantidade |
quant-receb | Qtde Receb | LIKE prazo-compra.quant-receb |
quant-rejeit | Qtde Devol | LIKE prazo-compra.quant-rejeit |
quant-saldo | Qtde Saldo | LIKE prazo-compra.quant-saldo |
quant-alocada | Qtde Alocada Parc | LIKE prazo-compra.dec-1 |
un | Unidade Medida | LIKE prazo-compra.un |
un-desc | Mostrar junto como anterior | Buscar à tab-unidade.descricao |
cod-refer | Referência | LIKE prazo-compra. cod-refer |
cod-ato-concessor | Ato Concessório | CHARACTER FORMAT "x(30)" &IF "{&bf_mat_versao_ems}":U >= "2.09":U &THEN prazo-compra.cod-ato-concessor &ELSE substring(prazo-compra.char-2,11,30) &ENDIF |
Quantidade a receber (soma dos saldos de todas as parcelas).
ttCotacaoItem (leitura cotacao-item.numero-ordem = <número da ordem>)
Campo temp-table | Label | Formato / Como preencher |
---|
data-cotacao | Data | LIKE cotacao-item.data-cotacao |
cod-emitente | Fornecedor | LIKE cotacao-item.cod-emitente |
nome-abrev | Mostrar junto com o acima | Buscar à LIKE emitente.nome-abrev |
mo-codigo | Moeda | LIKE cotacao-item.mo-codigo |
mo-codigo-desc | Mostrar junto com o acima | Buscar à moeda.descricao |
pre-unit-for | Preço Unitário Final | LIKE cotacao-item. pre-unit-for |
aliquota-ipi | % IPI | LIKE cotacao-item.aliquota-ipi |
perc-descto | % Desconto | LIKE cotacao-item.perc-descto |
contato | Contato | LIKE cotacao-item.contato |
Obs.: O preço unitário final deverá ser convertido para a moeda e data de cotação recebida como parâmetro (ver exemplo na procedure getQuotes – A moeda deve ser mostrada conforme a utilizada para a conversão).
Para a busca dos detalhes da cotação, deverá ser executado uma nova procedure para obter essas informações, isso é necessário por questões de performance, para que as informações sejam carregadas apenas se o usuário desejar detalhar. Para esse detalhamento será utilizado a procedure já existente “getQuoteDetail” da fch/fchmat/fchmatdetailpurchaserequisitions.p.
Campo temp-table | Label |
---|
cod-emitente-desc | Nome Fornecedor |
internalUM internalUMDescription | UM Interna |
un un-desc | UM Fornecedor |
manufacturer manufacturerDescription | Fabricante Obs.: Apenas mostrar esse campo se a função de integração com o HIS estiver ativa, ou seja, se o campo “activeHisFunction” estiver marcado. |
internalPrice | Preço UM Interna |
preco-fornec | Preço UM Fornecedor |
cotacao-moeda | Cotação Moeda |
valor-descto | Valor desconto |
cod-transp cod-transp-desc | Transportador |
valor-frete | Valor Frete |
frete | Frete Incluso |
pre-unit-for | Preço Unit Fornecedor |
valor-ipi | Valor IPI |
codigo-ipi | IPI Incluso |
aliquota-icm | Alíquota ICMS |
codigo-icm-desc | ICMS |
ttItRequisicao (leitura it-requisicao.numero-ordem = <número da ordem>)
Campo temp-table | Label | Formato / Como preencher |
---|
nr-requisicao | Número | LIKE it-requisicao.nr-requisicao |
dt-entrega | Necessidade | LIKE it-requisicao.dt-entrega |
dt-atend | Atendimento | LIKE it-requisicao.dt-atend |
situacao | Não será mostrado | LIKE it-requisicao.situacao |
situacao-desc | Situação | CHARACTER FORMAT "x(40)" {ininc/i01in385.i 04 ttItRequisicao.situacao} |
ct-codigo | Conta | LIKE it-requisicao.ct-codigo Obs.: Utilizar a procedure “pi-formata-conta” como base para formatar a conta. Atentar para instanciar o programa antes de todas as “utilizações” e eliminar o handle no final. |
ct-codigo-desc | Mostrar junto com o campo acima | Utilizar a procedure “pi-busca-desc-conta” como base para obter a descrição. Obs.: Atentar para instanciar o programa antes de todas as “utilizações” e eliminar o handle no final. |
sc-codigo | Centro de Custo | LIKE it-requisicao.sc-codigo Obs.: Utilizar a procedure “pi-formata-ccusto” como base para formatar a conta. Atentar para instanciar o programa antes de todas as “utilizações” e eliminar o handle no final. |
sc-codigo-desc | Mostrar junto com o campo acima | Utilizar a procedure “pi-busca-desc-ccusto” como base para obter a descrição. Obs.: Atentar para instanciar o programa antes de todas as “utilizações” e eliminar o handle no final. |
qt-requisitada | Quantidade | LIKE it-requisicao.qt-requisitada |
ttUnidNegoc
Utilizar a include no início do programa: {cdp/cd9590.i} /* Unidade de Negócio */
Verificar:
if l-mat-unid-negoc then do:
if ttOrdemCompra.cod-unid-negoc = "" THEN DO:
--> leitura unid-neg-ordem.numero-ordem = <número ordem>
END.
ELSE DO:
--> Cria a temp-table com
- código igual a “ordem-compra.cod-unid-negoc”
- descrição igual a à Buscar unid-negoc.des-unid-negoc
- percentual de 100.
END.
END.
Campo temp-table | Label | Formato / Como preencher |
---|
cod_unid_negoc | Código | LIKE unid-neg-requis.cod_unid_negoc |
des-unid-negoc | Descrição | LIKE unid-negoc.des-unid-negoc |
perc-unid-neg | Percentual | LIKE unid-neg-ordem.perc-unid-neg |
ttRecebimento (leitura pelo recebimento.numero-ordem = <número ordem>)
Obs.: O valor total deverá ser convertido para a moeda e data de cotação recebida como parâmetro (conforme é feito na procedure getReceipts).
Campo temp-table | Label | Formato / Como preencher |
---|
data-movto | Data | LIKE recebimento.data-movto |
parcela | Parcela | LIKE recebimento.parcela |
serie-docto | Série | LIKE recebimento.serie-docto |
numero-nota | Documento | LIKE recebimento.numero-nota |
nat-operacao | Nat Operação | LIKE recebimento.nat-operacao |
cod-movto | Não será mostrado em tela | LIKE recebimento.cod-movto |
cod-movto-desc | Tipo | CHARACTER FORMAT "x(40)" {ininc/i01in372.i 04 ttRecebimento.cod-movto} |
quant-receb | Quantidade | LIKE recebimento.quant-receb |
valor-total | Valor Total | LIKE recebimento.valor-total |
ttAltPed (leitura pelo alt-ped.numero-ordem = <número ordem>)
Obs.: A regra para preenchimento dos campos “preco-novo”, “quantidade-nova”, “cod-cond-pag-nova” e “data-entrega-nova” deve ser seguida conforme a procedure “getUpdatedValues”.
Campo temp-table | Label | Formato / Como preencher |
---|
parcela | Parcela | LIKE alt-ped.parcela |
data | Alteração | LIKE alt-ped.data |
hora | Hora | LIKE alt-ped.hora |
usuario | Usuário | LIKE alt-ped.usuario |
preco | Preço Unitário | LIKE alt-ped.preco |
preco-novo | Novo Preço | LIKE alt-ped.preco |
quantidade | Quantidade | LIKE alt-ped.quantidade |
quantidade-nova | Nova Quantidade | LIKE alt-ped.quantidade |
cod-cond-pag | Cond Pagamento | LIKE alt-ped.cod-cond-pag |
cod-cond-pag-nova | Nova Cond Pagamento | AS CHARACTER |
data-entrega | Data de Entrega | LIKE alt-ped.data-entrega |
data-entrega-nova | Nova Data de Entrega | LIKE alt-ped.data-entrega |
observacao | Comentários | LIKE alt-ped.observacao |
char-1 | Não será mostrado em tela | LIKE alt-ped.char-1 |
ttEventoPed (leitura pelo evento-ped.numero-ordem = <número ordem>)
Campo temp-table | Label | Formato / Como preencher |
---|
dt-evento | Evento | LIKE evento-ped.dt-evento |
seq-evento | Seq | LIKE evento-ped.seq-evento |
dat-realiz | Execução | LIKE evento-ped.dat-realiz |
des-event | Descrição | LIKE evento-ped.des-event |