Histórico da Página
...
- Criar fonte exclusivo para a browser e demais botões da tela de importação da SIMPRO®, com o nome PLSSIMPRO.PRW.
- Utilizar neste fonte o conceito de herança do MVC, onde devemos herdar as características do fonte PLSBRASIN1 e realizar os devidos ajustes.
- Criar fonte exclusivo, com as funções de importação e gravação das tabelas da SIMPRO®, com o nome PLSSIMPROI.PRW.
- Pelo manual e layout, o sistema VideoFarma® permite que todos os itens – independente se é um medicamento ou material, sejam, exportados em arquivo único, permitindo sua diferenciação por uma classificação própria, no campo CD_MERC, onde:
- (20) Material Hospitalar
- (50) Medicamentos
- (70) Perfumaria
- (90) Reagentes
- (30) Saneantes
- Contudo, como necessitamos saber em qual TDE o item será importado - para quando houver codificação TUSS ou não – será necessário a configuração individual para cada item a ser importador. Ou seja, devemos ter um registro na B6G para cada tipo de material, medicamento, perfumaria, reagente ou saneante a ser importado.
- Deixar claro no Documento de Referência que não deve ser gerado arquivo único, mas um individual para cada item a ser importado. E se mesmo assim gerar um arquivo único, todos os itens serão importados para a tabela no qual ocorrer o match, sem diferenciar medicamento ou material pelo tipo de registro.
- Com relação os itens Perfumaria, Reagentes e Saneantes, esses itens deverão ser incluídos no combo do campo B6G_TIPPRO.
- O campo B6G_TIPARQ fica oculto na VIEW, ao visualizara tela de configuração. Assim:
- O campo agora deverá ficar visível na VIEW e no browse de configuração;
- Identificar de forma automática de qual menu foi a chamada, para colocar no campo B6G_TIPARQ o cadastro correspondente. Por exemplo, se a ação originou na tela da Brasíndice® (PLSBRASIN1), colocar no campo B6G_TIPARQ o valor 1=Brasíndice®. Se originou na SIMPRO® (PLSSIMPRO), colocar 2=SIMPRO®.
- Será necessário revisar o fonte de Configuração de Importação (PLSBRASIN2), pois temos regras específicas do Brasíndice®, que não consideram o campo B6G_TIPARQ para validar, como as funções AtuCmpVal (que deve considerar agora o campo B6G_TIPARQ para validar apenas Brasíndice®); a função ChkVlrDup (que possui query para evitar itens repetidos com o mesmo tipo de material e valor, onde deverá verificar o campo B6G_TIPARQ, não mais apenas 1=Brasíndice®).
- Validar na tela o que é pertinente a cada item:
- Se estou cadastrando um item Brasíndice®, não posso usar as opções Reagentes / Saneantes / Perfumaria (B6G_TIPPRO), bem como a opção Preço Usuário (B6G_TIPO);
- Se estou cadastrando SIMPRO®, não posso usar a opção Soluções.
- Demais regras que existem para a Brasíndice®, como para Soluções e Materiais usar apenas Preço de Fábrica devem ser mantidas para Brasíndice®.
- Solução: manipular o conteúdo do CBOX do campo B6G_TIPPRO, para exibir apenas as opções pertinentes para cada cadastro: Exemplo: cadastro no X3_CBOX as novas opções de Perfumaria / Saneantes / Reagentes, ficando 1=Materiais;2=Medicamentos;3=Soluções;4=Perfumaria;5=Saneantes;6=Reagentes;
- Na VIEW do PLSBRASIN2, manipular para exibir apenas as opções pertinentes para cada tipo de tabela, pelo atributo MVC_VIEW_COMBOBOX, onde podemos passar esse atributo, seguido de um array ou função. Nesse caso, passar uma função, que vai recuperar os valores do X3_CBOX do campo B6G_TIPPRO - GetSx3Cache("B6G_TIPPRO","X3_CBOX") e na função, tratar o retorno do campo de acordo com a tabela selecionada - SIMPRO® ou Brasíndice®.
- https://tdn.totvs.com/pages/releaseview.action?pageId=6815033 -> GetSx3Cache
- Com relação aos valores, a SIMPRO® permite exportar o Preço de Fábrica (PFB), o Preço Máximo ao Consumidor (PMC) e iremos incluir o Preço do Usuário (PUSU), no campo B6G_TIPO.
- O controle do campo deve ser efetuado igual ao do campo B6G_TIPPRO, para exibir de forma correta somente para a SIMPRO® a opção Preço do Usuário.
- Como na Brasíndice®, temos também a possibilidade de preço total ou fracionado, informado no campo B6G_TIPVAL. , que será idêntico na SIMPRO®. Na parte xxx, iremos detalhar melhor os itens do layout
- Como existem várias combinações, olhar o Item F - De/Para dos Layouts com o sistema, para visualizar as combinações possíveis e gravar no campo BD4_VALREF.
- Demais regras e campos serão mantidos de forma igual.
- Ao acionar a opção de Configurar pela tela da Brasíndice® – PLSBRASIN1 – as configurações que deverão ser exibidas no Browse deverão ser apenas Brasíndice®. Se acionei a opção Configurar via tela SIMPRO® – PLSSIMPRO, no browse devem ser exibidos apenas os itens da SIMPRO®, usando o campo B6G_TIPARQ para este fim.
...
- O usuário pode deletar alguma importação realizada, bastando no browser do PLSSIMPRO posicionar no registro desejado e clicar no botão Excluir. Contudo, temos algumas regras a serem seguidas:
- Ao solicitar a exclusão do registro posicionado, devemos garantir se é o último importado, pela sequência do campo BD4_CHVIMP, que armazena o código da mensagem (atualização) da SIMPRO. Se tentar excluir qualquer um que não seja o último importado, o sistema deve proibir, de acordo com o tipo de produto e valor.
- Por exemplo, importei à atualização 3021 - Material - PFB e no outro mês, importei o 3121 - Material - PFB.
- Se tentar excluir o 3021 - Material - PFB, o sistema não deve deixar, pois existe atualização superior, que pode ter finalizado e criado novas BD4 com outros vigências. No nosso exemplo, só podemos excluir o 3121 - Material - PFB, pois é a última importação.
- Caso possa excluir, conforme regra acima, devemos:
- Deletar os registros BD4 relacionados a essa importação, pelo campo de relacionamento BD4_CHVIMP.
- Após deletar o BD4 relacionado, devemos reabrir a vigência do último BD4 disponível para o item, seguindo a cronologia do campo BD4_CHVIMP.
- Se existir registro BD4 anterior, o campo BD4_VIFGIM deve ser limpo, para ser utilizado no sistema;
- Se não existir nenhum BD4 anterior (imagine um item adicionado nessa versão excluída), a BA8 relacionada ao BD4 deve ser excluída, pois não pode existir um BA8 sem BD4;
- Se a BA8 foi excluída, devemos atualizar na BR8 - relacionada ao registro da BA8 - o campo BR8_BENUTL como Não, já que o item não existe mais na BA8.
- Ou seja, como visto acima, a exclusão deve ser em "cascata", obedecendo aos critérios definidos. Logo, se excluir uma BD4 e tiver outro registro BD4 para reabrir a vigência, apenas limpo a data final e o processo acabou por aí. Se não, tenho que deletar os demais envolvidos, que é a BA8 e BR8, para manter a consistência dos registros.
- Ao solicitar a exclusão do registro posicionado, devemos garantir se é o último importado, pela sequência do campo BD4_CHVIMP, que armazena o código da mensagem (atualização) da SIMPRO. Se tentar excluir qualquer um que não seja o último importado, o sistema deve proibir, de acordo com o tipo de produto e valor.
...
E) Detalhes Técnicos
- Utilizar MVC e herança, quando necessário;
- Utilizar para leitura de arquivos a classe FWFileReader();
- Utilizar para gravar arquivo de texto a classe FWFileWriter();
- Tratar as descrições e campos de textos, para evitar caracteres especiais e que possam atrapalhar a visualização no Portal ou arquivos de exportação (Monitoramento / PTUs / RPS e outros);
- Utilizar os índices disponíveis nas tabelas ou criar os necessários, para otimizar buscas e querys;
- Criar os fontes pensando nas automações necessárias, para evitar retrabalhos futuros;
- Como temos um layout de importação, pode-se criar um função, contendo o layout e posição dos campos, caso o desenvolvedor julgue necessário;
- Todas as ações de importação, arquivos e registros inválidos, devem ser registradas e exibidas no final do processamento, para conhecimento do usuário:
- Utilizar o FWDialogModal() com FwBrowse(), para exibir esses erros, ao invés de utilizar a função PLSCRIGEN.
- Verificar a possibilidade de realizar a gravação das tabelas usando classes MVC, levando em consideração o tempo de desenvolvimento vs ganho de performance obtido.
- Utilizar a importação da Brasíndice como modelo. Fontes PLSBRASIN1 / PLSBRASIN2 / PLSBRASINI.
- Documento de referência em Importação Brasíndice® - PLSBRASIN1.
- Padrão de arquivos para importação: TXT ou CSV. Os demais devem ser ignorados.
- Separador padrão dos arquivos CSV e TXT: ponto e vírgula (;). Nenhum outro deve ser aceito.
- Se basear em um dos itens, onde na primeira linha, podemos validar se o separador é ponto e vírgula e se não for, interromper a importação e partir para o próximo arquivo.
...
F) De/Para dos Layouts com o
...
sistema Âncora anc anc
anc | |
anc |
Layout TXT
Expandir | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Layout CSV
Expandir | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
- Layout PDF para análise:
View file | ||||
---|---|---|---|---|
|
03. Tela de Importação / Configuração SIMPRO® ÂncoraNEW NEW
NEW | |
NEW |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas