Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
(Obrigatório)
Informações Gerais
Especificação | |||
Produto | Logix | Módulo | Materiais |
Segmento Executor | Materiais | ||
Projeto1 | MANMAT01 | IRM1 | MANMAT01-300 |
Requisito1 | MANMAT01-900 | Subtarefa1 |
|
Chamado2 |
| ||
País | (X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
(Obrigatório)
Objetivo
Permitir que seja integrado as ordens que geram pedidos com a Trade-easy, não sendo mais gerados pedidos que tenham contrato pelo Logix e sim enviados a Trade para serem gerados.
<Nesta etapa informar o objetivo da especificação do requisito, ou seja, o que a funcionalidade deve fazer. Exemplo: Permitir que o usuário defina o percentual mínimo em espécie (dinheiro), a referência mínima para calculo dos débitos do aluno e o período de validade do parâmetro de negociação>.
(Obrigatório)
Definição da Regra de Negócio
-
Criação de parâmetro para indicar que os pedidos gerados por contrato serão integrados com a Trade-Easy
Sera previsto nos programas SUP4330/SUP22104 , elaboração dos pedidos de compra, para que sejam enviadas as ordens de compra que possuirem fornecedor e número de contação, “contrato”, para a Trade.
Uma vez que as Ordens forem identificadas durante o processamento do SUP4330/SUP22104 elas serão enviadas através do mensagem única request, adapter EAIADAPTERREQUEST1.
Sendo as ordens enviadas, colocadas como “suspensas”, e sera gravada texto "Enviadas para Trade-Easy", e não poderão ter alteradas o status pelos programas SUP0491/SUP21003.
<Na tabela abaixo informe quais são as rotinas envolvidas, o tipo de operação, a opção de menu e se necessário uma breve descrição das regras de negócio relacionadas a rotina>.
Rotina | Tipo de Operação |
SUP21003 - Ordem de compra | Alteração |
SUP22104 - Elaboração automática de pedidos de compra | Alteração |
SUP0491 - Consulta ordens de compra | Alteração |
SUP4330 - Elaboração automática de pedidos de compra | Alteração |
EAIADAPTERREQUEST1 - Adapter Request1 | Alteração |
SUP10032 - Lib Adapter Request1 | Alteração |
Exemplo de Aplicação:
Criar parâmetro para identificar se os pedidos gerados por contrato serão integrados com a trade –Easy. Usar o log00086, para criar parâmetros, de nome m_trade_int_contrt (trade integra contrato). Que devera por default esta como “N”
Esse parâmetro será associado ao parâmetro PROCESSO ENTRADAS > COMPRAS > GERAIS, Parâmetro: Utiliza integração com o sistema Trade Easy Import? Objetivo: Indica se a integração com o sistema Trade Easy – Import está ou não ativa
OBS: valores aceitos "S" e "N" (Alterar para S para habilitar a integração) , sugestão de nome de variável modular “m_trade_int_contrt”.
O parâmetro "m_trade_int_contrt" deverá ser criado como char(01), default para “N”.
A intenção é que o parâmetro irá considerar os contratos gerados pela Trade, mas para isso deverá verificar se o parâmetro:” Utiliza integração com o sistema Trade Easy Import?” Esteja como "S", caso contrário devera desconsiderar, ira ajustar o parâmetro “m_trade_int_contrt” para “N”, mesmo que tenha sido setado para "S" no LOG000086.
A precedência de funcionamento do parâmetro “m_trade_int_contrt” será sempre o parâmetro “integra_tradeimport”, estando desativado, nulo, ou setado para “N” o parâmetro “m_trade_int_contrt” ira ser setado para “N”.
Criar parâmetro via putty, ou telnet.
Conforme imagens de 01 até 03
Alteração no adapter de envio da mensagem Request para as tags que identificam as Ordens de Compra que teriam o pedido gerado automaticamente pelo Logix (fornecedor, número do contrato, etc.)
No adapter EAIADAPTERREQUEST1, sera feito alteração prevendo o uso das variáveis other addfield, para novas tags, não sendo necessário alterar o HELPER do adapter pois faz parte da função.
TAG:
- Fornecedor
- Moeda
- Número do contrato
Na Lib SUP10032 prever o uso das variáveis conforme imagem 04, passando como parâmetro “FORNECEDOR”, “MOEDA” E “CONTRATO”, lembrar que o campo condição de pagamento existe no adapter, mais não esta ajustado, para uso. Fazer a chamada da função EAIHelperRequest1_set_BusinessContent_PaymentConditionCode, passando a condição de pagamento conforme imagem 05
Tabela de variáveis do adapter EAIADAPTERREQUEST1 com registros enviados para TRADE-EASY
Campo | Tipo | Descrição |
InternalId | Char | InternalId código da empresa mais ordem de compra |
CompanyInternalId | Char | Código da Empresa |
RequestItem_InternalId | Char | Código da empresa/ordem de compra/sequen |
ItemInternalId | Char | Código da empresa/código do item |
ItemCode | char | Código do item |
RequestItem_Text | char | Texto, “Enviadas para Trade-Easy” |
ItemReferenceCode | Char | Referencia do item |
UnitPrice | Decimal | Preço unitário ordem de compra |
TotalPrice | decimal | Valor total compra |
DeliveryDateTime | date | Data de entrega prevista |
CostCenterInternalId | char | Código da empresa/código seção recebedora |
UnitOfMeasureCode | char | Unidade de medida |
RequestItem_Quantity | Decimal | Quantidade solicitada |
PaymentConditionInternalId | char | Condição de pagamento |
ApportionRequestItem_InternalId | Char | Empresa/Ordem compra/cnt deb desp/seção recebedora |
ApportionRequestItem_DepartamentInternalId | char | Empresa/ cod seção recebedora |
ApportionRequestItem_CostCenterInternalId | Char | Empresa /centro de custo |
ApportionRequestItem_AccountantAcountInternalId | char | Empresa /conta debito despesa |
ApportionRequestItem_CostCenterInternalId | Char | Area e linha de negocio |
ApportionRequestItem_AccountantAcountInternalId | Char | Conta debito despesa |
ApportionRequestItem_Percentual | decimal | Percentual participaçao |
ApportionRequestItem_Quantity | decimal | Quantidade de participação |
|
|
|
DeliverySchedule_DeliveryID | Char | Número da programação de entrega |
DeliverySchedule_QuantityRequested | Char | Quantidade solicitada |
DeliverySchedule_EstimatedDeliveryDate | Char | Data de entrega prevista |
deliverySchedule_Observation | Char | Observação de entrega |
|
|
|
ADDFIELD_field | Char | FORNECEDOR |
ADDFIELD_value | Char | Código do fornecedor |
|
|
|
ADDFIELD_field | Char | MOEDA |
ADDFIELD_value | Char | Código da moeda |
|
|
|
ADDFIELD_field | Char | CONTRATO |
ADDFIELD_value | Char | Número do contrato |
|
|
|
A função SUP10032, sera responsável por setar as variáveis da ordem compra, a serem enviadas pelo trade-Easy
O adapter EAIADAPTERREQUEST1, terá que ser alterado para prever o uso dos campos já existentes no HELPER, que ainda não foram setados os valores.
Lembrando que não haverá necessidade de alteração da estrutura do XSD, uma vez que sera utilizado os campos já existentes.
Segue abaixo “modelo” de upsert utilizado para a integração de ordem de compra e que deverá ser adequado para fazer a integração da request:
IF find4glfunction("EAIAdapterRequest1_SendBusinessMessage") THEN
IF SUP10032_ordem_integrada_portal() THEN
CALL EAIMapper_Clear()
CALL EAIMapper_set("ordem_sup.cod_empresa", p_ordem_sup.cod_empresa)
CALL EAIMapper_set("ordem_sup.num_oc", p_ordem_sup.num_oc)
CALL EAIMapper_set("ordem_sup.gru_ctr_desp", p_ordem_sup.gru_ctr_desp)
CALL EAIMapper_set("ordem_sup.cod_item", p_ordem_sup.cod_item)
CALL EAIMapper_set("ordem_sup.pre_unit_oc", p_ordem_sup.pre_unit_oc)
CALL EAIMapper_set("ordem_sup.dat_entrega_prev", p_ordem_sup.dat_entrega_prev)
CALL EAIMapper_set("ordem_sup.cod_secao_receb", p_ordem_sup.cod_secao_receb)
CALL EAIMapper_set("ordem_sup.cod_unid_med", p_ordem_sup.cod_unid_med)
CALL EAIMapper_set("ordem_sup.qtd_solic", p_ordem_sup.qtd_solic)
CALL EAIMapper_set("ordem_sup.cnd_pgto", p_ordem_sup.cnd_pgto)
CALL EAIMapper_set("ordem_sup.fornecedor", p_ordem_sup. fornecedor)
CALL EAIMapper_set("ordem_sup.moeda", p_ordem_sup.moeda)
#Num contação é o número de contrato
CALL EAIMapper_set("ordem_sup.num_contacao", p_ordem_sup. num_contacao)
IF NOT EAIAdapterRequest1_SendBusinessMessage("upsert") THEN
CALL log0030_mensagem("Problemas durante a integração com Trade. " || EAIMapper_getError(1), "exclamation")
LET l_status = FALSE
END IF
END IF
END IF
Caberá ao programa TradeEasy, ao receber um XML da mensagem gerar o pedido ,com base no número de contrato, campo ADDFIELD_field = “CONTRATO”, “FORNECEDOR”, E “MOEDA”
Se houver necessidade de envio de novas informações sera utilizada as tags de ADDFIELD_field e ADDFIELD_value , bem como a validação da viabilidade da regra de negócios
para comprar os novos registros ( se houver necessidade de construir funções para atender os valores solicitados nos novos campos, ocorrendo essa situação sera necessário verificar a demanda de tempo envolvida.)
Alteração na rotina de geração automática de pedidos para Ordens de Compra atendidas por contrato, visando o envio para o Trade-Easy das ordens que comporiam o pedido automático (via mensagem Request, criando solicitações de importação no Trade-Easy), suspensão destas ordens (com motivo "Enviadas para Trade-Easy") e desvio para não gerar o pedido no Logix neste momento.
O programa SUP2430 é responsável pela designação do fornecedor, e do número de cotação (contrato) gerando e atualizando a tabela ordem_sup, não será alterado.
Durante o processamento do programa SUP4330\SUP22104, as ordens que tiverem o fornecedor designado, e o número de contrato gerado, serão desconsideradas no processo de geração automática de pedidos do SUP4330\SUP22104.
No programa SU4330\SUP22104, sera atualizada as ordens de compras que forem enviadas para Trade com sucesso, como “SUSPENSAS”, e não sera permitida fazer manutenção da mesmas nos programa SUP0491\SUP21003
Incluir busca para parâmetro:
INITIALIZE m_trade_int_contrt TO NULL
CALL log2250_busca_parametro(p_cod_empresa,"trade_int_contrt") RETURNING m_trade_int_contrt , l_status
IF l_status = FALSE OR
m_trade_int_contrt IS NULL OR
m_trade_int_contrt = " " THEN
LET m_trade_int_contrt = "N"
END IF
INITIALIZE m_utiliza_easytrade TO NULL
CALL log2250_busca_parametro(p_cod_empresa, "integra_tradeimport") RETURNING m_utiliza_easytrade, l_status
IF NOT l_status OR
m_utiliza_easytrade IS NULL OR
m_utiliza_easytrade = ' ' THEN
LET m_utiliza_easytrade = 'N'
END IF
#Se integração estiver desligada, a integração por contrato devera ser desligada.
IF m_utiliza_easytrade = "N" THEN
LET m_trade_int_contrt = "N"
END IF
Alterar na chamada de função do sup4330, para prever nas duas chamadas para trade Easy a funções abaixo.
IF find4GLFunction('sup10033_verifica_oc_integrado_TradeEasy') THEN
IF sup10033_verifica_oc_integrado_TradeEasy(p_ordem_sup_orig.cod_empresa, p_ordem_sup_orig.num_oc) THEN
WHENEVER ERROR CONTINUE
FETCH cq_ordem_sup1 INTO p_ordem_sup_orig.*
WHENEVER ERROR STOP
IF sqlca.sqlcode <> 0 THEN
EXIT WHILE
END IF
CONTINUE WHILE
ELSE
LET p_processa = TRUE
IF sup4330_verifica_contrato() AND m_trade_int_contrt = "S" THEN
WHENEVER ERROR CONTINUE
FETCH cq_ordem_sup1 INTO p_ordem_sup_orig.*
WHENEVER ERROR STOP
IF sqlca.sqlcode <> 0 THEN
EXIT WHILE
END IF
CONTINUE WHILE
ELSE
IF NOT p_processa THEN
EXIT WHILE
END IF
END IF
END IF
END IF
#-----------------------------------#
FUNCTION sup4330_verifica_contrato()
#-----------------------------------#
DEFINE l_ies_tipo_contrato LIKE item_forn_particip.ies_tip_contrato,
l_ies_item_contrato SMALLINT,
l_ies_tip_preco LIKE cotacao_preco.ies_tip_preco
LET l_ies_tipo_contrato = NULL
WHENEVER ERROR CONTINUE
SELECT ies_tip_contrato INTO l_ies_tipo_contrato
FROM item_forn_particip
WHERE cod_empresa = p_cod_empresa
AND cod_item = p_ordem_sup_orig.cod_item
AND cod_fornecedor = p_ordem_sup_orig.cod_fornecedor
AND dat_ini_vigencia <= m_dat_vigencia
AND dat_fim_vigencia >= m_dat_vigencia
WHENEVER ERROR STOP
IF sqlca.sqlcode = 0 THEN
IF l_ies_tipo_contrato = "1" OR l_ies_tipo_contrato = "4"
OR (m_emit_ped_consig = "S" AND l_ies_tipo_contrato = "3") THEN
IF l_ies_tipo_contrato = "4" THEN
## Caso exista um contrato tipo '4' considera para reaproveitar
## o pedido, pois o SUP0120 já criou o pedido
LET p_ies_aproveita = TRUE
END IF
LET l_ies_item_contrato = TRUE
ELSE
LET l_ies_item_contrato = FALSE
END IF
ELSE
LET l_ies_item_contrato = FALSE
END IF
IF l_ies_item_contrato THEN
LET l_ies_tip_preco = NULL
WHENEVER ERROR CONTINUE
SELECT cotacao_preco.ies_tip_preco
INTO l_ies_tip_preco
FROM cotacao_preco
WHERE cotacao_preco.cod_empresa = p_ordem_sup_orig.cod_empresa
AND cotacao_preco.cod_fornecedor = p_ordem_sup_orig.cod_fornecedor
AND cotacao_preco.num_cotacao = p_ordem_sup_orig.num_cotacao
AND cotacao_preco.cod_item = p_ordem_sup_orig.cod_item
AND cotacao_preco.num_versao =
(SELECT MAX(cotacao_preco.num_versao)
FROM cotacao_preco
WHERE cotacao_preco.cod_empresa = p_ordem_sup_orig.cod_empresa
AND cotacao_preco.cod_fornecedor = p_ordem_sup_orig.cod_fornecedor
AND cotacao_preco.num_cotacao = p_ordem_sup_orig.num_cotacao
AND cotacao_preco.cod_item = p_ordem_sup_orig.cod_item)
WHENEVER ERROR STOP
IF l_ies_tip_preco = "2" THEN
# Se o item tiver contrato, verifica se a cotação que está
# na ordem de compra é do tipo de preço '2', ou seja, se
# foi designada manualmente. Neste caso considerará a
# ordem como não pertencente à um contrato.
LET l_ies_item_contrato = FALSE
END IF
END IF
IF l_ies_item_contrato THEN
IF NOT sup4330_suspende_ordem_sup_contrato() THEN
LET p_processa = FALSE
RETURN FALSE
END IF
IF NOT sup4330_send_request_ordem_sem_pedido() THEN
LET p_processa = FALSE
RETURN FALSE
END IF
CALL sup4330_grava_texto_suspensao_oc()
RETURN TRUE
END IF
LET p_processa = TRUE
RETURN FALSE
END FUNCTION
#---------------------------------------------#
FUNCTION sup4330_suspende_ordem_sup_contrato()
#---------------------------------------------#
WHENEVER ERROR CONTINUE
UPDATE ordem_sup SET ordem_sup.ies_situa_oc = "S"
WHERE cod_empresa = p_ordem_sup_orig.cod_empresa
AND num_oc = p_ordem_sup_orig.num_oc
AND num_versao = p_ordem_sup_orig.num_versao
AND ies_versao_atual = "S"
WHENEVER ERROR STOP
IF sqlca.sqlcode <> 0 THEN
CALL log003_err_sql("UPDATE","ordem_sup")
RETURN FALSE
END IF
RETURN TRUE
END FUNCTION
#---------------------------------------------#
FUNCTION sup4330_grava_texto_suspensao_oc()
#---------------------------------------------#
DEFINE l_status SMALLINT
CALL supm395_ordem_sup_txt_leitura(p_ordem_sup_orig.cod_empresa,
p_ordem_sup_orig.num_oc ,
"P",
1,
TRUE,
TRUE)
RETURNING l_status
CALL supm395_ordem_sup_txt_set_tex_observ_oc("Enviadas para Trade-Easy")
IF l_status = FALSE THEN
CALL supm395_ordem_sup_txt_set_cod_empresa(p_ordem_sup_orig.cod_empresa)
CALL supm395_ordem_sup_txt_set_num_oc(p_ordem_sup_orig.num_oc )
CALL supm395_ordem_sup_txt_set_ies_tip_texto("Y")
CALL supm395_ordem_sup_txt_set_num_seq(1)
CALL supt395_ordem_sup_txt_inclui(TRUE, true)
RETURNING l_status
ELSE
CALL supt395_ordem_sup_txt_modifica(TRUE, TRUE)
RETURNING l_status
END IF
END FUNCTION
#---------------------------------------------#
FUNCTION sup4330_send_request_ordem_sem_pedido()
#---------------------------------------------#
IF p_ordem_sup_orig.num_pedido = 0 THEN
CALL sup10032_set_cod_empresa(p_ordem_sup_orig.cod_empresa)
CALL sup10032_set_num_oc(p_ordem_sup_orig.num_oc )
CALL sup10032_set_tipo("upsert")
CALL sup10032_exporta_ordem_compra()
RETURNING l_status, l_msg
IF l_status = FALSE THEN
CALL log0030_mensagem(l_msg,"exclamation")
RETURN FALSE
END IF
ELSE
RETURN FALSE
END IF
RETURN TRUE
END FUNCTION
Prever também na versão metadados
Alteração na rotina de reabertura de Ordens de Compra suspensas para não permitir alteração de status nas ordens enviadas para o Trade-Easy
Os programas SUP0491/SUP21003, serão alterados para prever através da tabela ordem_sup_txt, as ordens que foram suspensas por terem sido enviadas a Trade na fase de geração de pedidos, com isso não deveram permitir que estas ordens seja modificadas.
Incluir busca para parâmetros
INITIALIZE m_trade_int_contrt TO NULL
CALL log2250_busca_parametro(p_cod_empresa,"trade_int_contrt") RETURNING m_trade_int_contrt , l_status
IF l_status = FALSE OR
m_trade_int_contrt IS NULL OR
m_trade_int_contrt = " " THEN
LET m_trade_int_contrt = "N"
END IF
INITIALIZE m_utiliza_easytrade TO NULL
CALL log2250_busca_parametro(p_cod_empresa, "integra_tradeimport") RETURNING m_utiliza_easytrade, l_status
IF NOT l_status OR
m_utiliza_easytrade IS NULL OR
m_utiliza_easytrade = ' ' THEN
LET m_utiliza_easytrade = 'N'
END IF
#Se integração estiver desligada, a integração por contrato devera ser desligada.
IF m_utiliza_easytrade = "N" THEN
LET m_trade_int_contrt = "N"
END IF
Acrescentar na função
AFTER FIELD funcao
LET l_ind = arr_curr()
IF ma_array_tela[l_ind].funcao <> "S"
AND ma_array_tela[l_ind].funcao <> " " THEN
ERROR " Funcao invalida "
NEXT FIELD funcao
ELSE
IF NOT sup0491_verifica_suspensao(l_ind) THEN
NEXT FIELD funcao
END IF
END IF
#------------------------------------------#
FUNCTION sup0491_verifica_suspensao(l_ind)
#------------------------------------------#
DEFINE l_ind SMALLINT
IF m_trade_int_contrt = "N" THEN
RETURN TRUE
END IF
IF find4GLFunction('sup10033_verifica_oc_integrado_TradeEasy') THEN
IF NOT sup0491_verifica_oc_integrado_TradeEasy(l_ind) THEN
RETURN FALSE
END IF
END IF
RETURN TRUE
END FUNCTION
#----------------------------------------------------------------------------------------------#
FUNCTION sup0491_verifica_oc_integrado_TradeEasy(l_ind)
#----------------------------------------------------------------------------------------------#
DEFINE l_ind SMALLINT
WHENEVER ERROR CONTINUE
SELECT UNIQUE num_oc FROM ordem_sup_txt
WHERE cod_empresa = ma_array_tela[l_ind].cod_empresa
AND num_oc = ma_array_tela[l_ind].num_oc
AND IES_TIP_TEXTO = 'Y'
AND NUM_SEQ = 1
AND tex_observ_oc = 'Enviadas para Trade-Easy'
WHENEVER ERROR STOP
IF sqlca.sqlcode <> 0 THEN
IF sqlca.sqlcode <> 100 THEN
CALL log003_err_sql("select","ordem_sup_txt")
RETURN FALSE
END IF
ELSE
CALL log0030_mensagem("Ordem suspensa enviada ao Trade Easy, não pode ser alterada.","INFO")
RETURN FALSE
END IF
RETURN TRUE
END FUNCTION
METADADOS
INCLUIR BUSCA PARA PARAMETROS
INITIALIZE m_trade_int_contrt TO NULL
CALL log2250_busca_parametro(p_cod_empresa,"trade_int_contrt") RETURNING m_trade_int_contrt , l_status
IF l_status = FALSE OR
m_trade_int_contrt IS NULL OR
m_trade_int_contrt = " " THEN
LET m_trade_int_contrt = "N"
END IF
INITIALIZE m_utiliza_easytrade TO NULL
CALL log2250_busca_parametro(p_cod_empresa, "integra_tradeimport") RETURNING m_utiliza_easytrade, l_status
IF NOT l_status OR
m_utiliza_easytrade IS NULL OR
m_utiliza_easytrade = ' ' THEN
LET m_utiliza_easytrade = 'N'
END IF
#Se integração estiver desligada, a integração por contrato devera ser desligada.
IF m_utiliza_easytrade = "N" THEN
LET m_trade_int_contrt = "N"
END IF
#----------------------------------------#
FUNCTION sup210036_before_input_update()
#----------------------------------------#
.................
IF m_trade_int_contrt = "S" THEN
IF mr_ordem_sup_tela.ies_situa_oc <> "S" THEN
IF NOT sup21003_verifica_suspensao() THEN
RETURN FALSE
END IF
END IF
END IF
#------------------------------------------#
FUNCTION sup21003_verifica_suspensao()
#------------------------------------------#
IF m_trade_int_contrt = "N" THEN
RETURN TRUE
END IF
IF find4GLFunction('sup10033_verifica_oc_integrado_TradeEasy') THEN
IF NOT sup21003_verifica_oc_integrado_TradeEasy() THEN
RETURN FALSE
END IF
END IF
RETURN TRUE
END FUNCTION
#----------------------------------------------------------------------------------------------#
FUNCTION sup21003_verifica_oc_integrado_TradeEasy()
#----------------------------------------------------------------------------------------------#
DEFINE l_ies_situa_oc LIKE ordem_sup.ies_situa_oc
WHENEVER ERROR CONTINUE
SELECT ies_situa_oc INTO l_ies_situa_oc
WHERE cod_empresa = mr_ordem_sup.cod_empresa
AND num_oc = mr_ordem_sup.num_oc
AND ies_versao_atual = 'S'
WHENEVER ERROR STOP
IF l_ies_situa_oc = "S"
AND mr_ordem_sup.ies_situa_oc <> "S" THEN
WHENEVER ERROR CONTINUE
SELECT UNIQUE num_oc FROM ordem_sup_txt
WHERE cod_empresa = mr_ordem_sup.cod_empresa
AND num_oc = mr_ordem_sup.num_oc
AND IES_TIP_TEXTO = 'Y'
AND NUM_SEQ = 1
AND tex_observ_oc = 'Enviadas para Trade-Easy'
WHENEVER ERROR STOP
IF sqlca.sqlcode <> 0 THEN
IF sqlca.sqlcode <> 100 THEN
CALL log003_err_sql("select","ordem_sup_txt")
RETURN FALSE
END IF
ELSE
CALL log0030_mensagem("Ordem suspensa enviada ao Trade Easy, não pode ser alterada.","INFO")
RETURN FALSE
END IF
END IF
RETURN TRUE
END FUNCTION
#---------------------------------------#
FUNCTION sup21003_before_input_update()
#---------------------------------------#
LET m_funcao = "MODIFICACAO"
LET m_funcao_repete = FALSE # TSFI52
LET m_cod_item_original = mr_ordem_sup_tela.cod_item
IF mr_ordem_sup_compl.num_lista > 0 THEN
CALL log0030_mensagem("Ordem de compra pertence à lista de compras. Utilize SUP21017.","info")
RETURN FALSE
END IF
IF m_trade_int_contrt = "S" THEN
IF mr_ordem_sup_tela.ies_situa_oc <> "S" THEN
IF NOT sup21003_verifica_suspensao() THEN
RETURN FALSE
END IF
END IF
END IF
Opcional
Protótipo de Tela
Imagem 01
Imagem 02
Imagem 03
Imagem 04
Imagem 05
<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.
Protótipo 01
Opcional
Fluxo do Processo
<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>.
Opcional
Dicionário de Dados
Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/
Índice | Chave |
01 | <FI9_FILIAL+FI9_IDDARF+FI9_STATUS> |
02 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF> |
03 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO> |
Campo | <AAA_PERESP> |
Tipo | <N> |
Tamanho | <6> |
Valor Inicial | <Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. |
Mandatório | Sim ( ) Não ( ) |
Descrição | <Referência Mínima para Cálculo> |
Título | <Ref.Calc.> |
Picture | <@E999.99> |
Help de Campo | <Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação> |
(Opcional)
Grupo de Perguntas
<Informações utilizadas na linha Protheus>.
Nome: FINSRF2
X1_ORDEM | 01 |
X1_PERGUNT | Emissão De |
X1_TIPO | D |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR01 |
X1_DEF01 | Comum |
X1_CNT01 | '01/01/08' |
X1_HELP | Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório |
(Opcional)
Consulta Padrão
<Informações utilizadas na linha Protheus>
Consulta: AMB
Descrição | Configurações de Planejamento |
Tipo | Consulta Padrão |
Tabela | “AMB” |
Índice | “Código” |
Campo | “Código”; ”Descrição” |
Retorno | AMB->AMB_CODIGO |
(Opcional)
Estrutura de Menu
<Informações utilizadas na linha Datasul>.
Procedimentos
Procedimento |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Módulo |
|
|
|
Programa base |
|
|
|
Nome Menu | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Registro padrão | Sim | Sim | Sim |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Release de Liberação |
|
|
|
Programas
Programa |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Nome Externo |
|
|
|
Nome Menu/Programa | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Nome Verbalizado[1] | (Max 254 posições) | (Max 254 posições) | (Max 254 posições) |
Procedimento |
|
|
|
Template | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) |
Tipo[2] | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Categoria[3] |
|
|
|
Executa via RPC | Sim/Não | Sim/Não | Sim/Não |
Registro padrão | Sim | Sim | Sim |
Outro Produto | Não | Não | Não |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Query on-line | Sim/Não | Sim/Não | Sim/Não |
Log Exec. | Sim/Não | Sim/Não | Sim/Não |
Rotina (EMS) |
|
|
|
Sub-Rotina (EMS) |
|
|
|
Localização dentro da Sub Rotina (EMS) |
|
|
|
Compact[4] | Sim/Não | Sim/Não | Sim/Não |
Home[5] | Sim/Não | Sim/Não | Sim/Não |
Posição do Portlet[6] | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right |
Informar os papeis com os quais o programa deve ser vinculado |
|
|
|
Cadastro de Papéis
<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.
<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.
Código Papel | (máx 3 posições) |
Descrição em Português* |
|
Descrição em Inglês* |
|
[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.
[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante
[3] Categorias são obrigatórias para os programas FLEX.
[4] Obrigatório quando o projeto for FLEX
[5] Obrigatório quando o projeto for FLEX
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|