Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

D) Detalhes Técnicos 

  1. Utilizar MVC e herança, quando necessário;
  2. Utilizar para leitura de arquivos a classe FWFileReader();
  3. Utilizar para gravar arquivo de texto a classe FWFileWriter();
  4. 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);
  5. Utilizar os índices disponíveis nas tabelas ou criar os necessários, para otimizar buscas e querys;
  6. Criar os fontes pensando nas automações necessárias, para evitar retrabalhos futuros;
  7. 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;
  8. 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:
    1. Utilizar o FWDialogModal() com FwBrowse(), para exibir esses erros, ao invés de utilizar a função PLSCRIGEN.
  9. 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.
  10. Utilizar a importação da Brasíndice como modelo.  Fontes PLSBRASIN1 / PLSBRASIN2 / PLSBRASINI.  
    1. Documento de referência em Importação Brasíndice® - PLSBRASIN1.

E) De/Para dos Layouts com o sistema

...

Layout TXT (clique para ampliar)

  1. Padrão de arquivos para importação: TXT ou CSV.  Os demais devem ser ignorados.
  2. Separador padrão dos arquivos CSV e TXT: ponto e vírgula (;).  Nenhum outro deve ser aceito.
    1. 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.

E) De/Para dos Layouts com o sistema

  • Layout TXT 

    Expandir
    titleLayout TXT - Clique para expandir
    ARQUIVO NO FORMATO TXT 
    SEQCampoFormatoTamanhoDecDescriçãoEQUIVALENTE IMPORTAÇÃO
    1-Caractere15-Código do UsuárioNão Aplicável
    2-Caractere15-Código de FraçãoNão Aplicável
    3-Caractere100-Descrição do ProdutoBA8_DESCRI  /  BR8_DESCRI  /  BTQ_DESTER  /  BTQ_DSCDET
    4-Caractere08-Data de Vigência (ddmmaaaa)Não Aplicável
    5-Caractere01-Identificação:
    (F) Preço Fábrica
    (V) Preço Venda
    (L) Fora de Linha
    (A) Atualização Suspensa
    (D) Descontinuado
    Não Aplicável
    6-Numérico8 + 2-Preço Fábrica EmbalagemSe PFB + Valor Total, utilizar esse campo - BD4_VALREF
    7-Numérico8 + 2-Preço Venda EmbalagemSe PMC + Valor Total, utilizar esse campo - BD4_VALREF
    8-Numérico8 + 2-Preço Usuário EmbalagemSe PUSU + Valor Total, utilizar esse campo - BD4_VALREF
    9-Numérico8 + 3-Preço Fábrica FraçãoSe PFB + Valor Fracionado utilizar esse campo - BD4_VALREF
    10-Numérico8 + 3-Preço Venda FraçãoSe PMC + Valor Fracionado utilizar esse campo - BD4_VALREF
    11-Numérico8 + 3-Preço Usuário FraçãoSe PUSU + Valor Fracionado utilizar esse campo - BD4_VALREF
    12-Caractere03-Tipo de EmbalagemNota 1 *
    13-Caractere04-Tipo de FraçãoNota 1 *
    14-Numérico5 + 2-Quantidade EmbalagemNota 1 *
    15-Numérico5 + 2-Quantidade Fração  UsuárioNão Aplicável
    16-Numérico3 + 2-% Lucratividade do UsuárioNão Aplicável
    17-Caractere01-Tipo de Alteração: (I)Inclusão (P)Preços
    (L)Fora de Linha (A)Alterações Gerais (S)Atualização Suspensa
    (D)Descontinuado
    Aqui, serve para informar se o campo teve alguma alteração. Como vamos progredir com cada edição, talvez não seja necessário o uso desse campo - ANALISAR
    Podemos usar para indicar o fim de vigência (BD4_VIGFIM), quando o item estiver no status (D)Descontinuado ou (L)Fora de Linha, e usar o campo de Data Fim Vigência, do ParamBox de importação.
    18-Caractere20-FabricanteBA8_NMFABR e:
    * Se arquivo Medicamento: BTQ_LABORA
    * Demais: BTQ_FABRIC
    19-Caractere10-Cód.SIMPRO/TISSBA8_CODPRO  /  BD4_CODPRO  /  BR8_CODPSA  /  BTQ_CDTERM
    * Somente se não existir o código TUSS no registro
    20-Caractere02-Código do Mercado:
    (20)Material Hospitalar (50)Medicamentos   (90)Reagentes   (30)Saneantes
    Não Aplicável
    21
    Numérico3 + 2-% Percentual de DescontoNão Aplicável
    22-Numérico3 + 2-% IPI do ProdutoNão Aplicável
    23-Caractere18-Número do Registro ANVISA ou uma das seguintes informações:
    ISENTO
    NAO CONTROLADO
    NOTIFICACAO
    SI/NC
    BA8_RGANVI
    24-Caractere13-Data de Validade do Registro ANVISA ou uma das seguintes informações:
    PENDENTE - SOB PROTOCOLO – EM BRANCO – VIGENTE
    BD4_VIGFIM 
    * Observar a ER, pois pode ser a data do arquivo (se data válida, não as informações escritas), se o checkbox estiver marcado ou a data informada no campo Data Fim Vigência no Parambox de Importação, quando o arquivo for (D)Descontinuado ou (L)Fora de Linha - Olhar a coluna SEQ, números 5 e 17.
    25-Numérico13-Número do Código de BarraNão Aplicável
    26-Caractere1-Tipo de Lista
    ‘+’ – Positiva            ‘-’ – Negativa            ‘ ’ – Neutra            ‘#’ – Não aplicável
    Não Aplicável
    27-Caractere1-Indica se o medicamento é de uso exclusivamente hospitalarNão Aplicável
    28-Caractere1-Indica se o produto é fracionado
    S – SIM                       N - NAO
    Não Aplicável
    29-Caractere8
    Código TUSSBA8_CODPRO  /  BD4_CODPRO  /  BR8_CODPSA  /  BTQ_CDTERM 
    30-Caractere2-Indica a classificação do produto
    (  )SEM  CLASSIFICAÇÃO  (BD)  BEM  DURAVEL  (MC)  MATERIAL  DE  CONSUMO (ME)  MATERIAL  ESPECIAL    (OT)  ORTESE         (PT)  PROTESE         (ST)    SINTESE
    ( IT )   INSTRUMENTAL
    BA8_DSCLAS
    * Gravar no campo a descrição equivalente ao código, ou seja, se vazio - Sem Classificação; se PT - Prótese e etc
    31-Caractere100-Referência do ProdutoBTQ_REFFAB
    32-Caractere1-Indica se o produto é genérico
    S – SIM                       N - NAO
    Não Aplicável
    33-Caractere1-Indica se o medicamento ou material é classificado como Diversos
    S – SIM                       N - NAO
    Não Aplicável

    * NOTA 1*Nota 1 - Gravar nos campos BTQ_APRESE e BA8_DFORMA os valores apresentados na coluna SEQ, de 12 a 14, da seguinte forma:
    "Tipo Embalagem: " + SEQ 12 " - Unidade: " + SEQ 13 + " - Qtd. Embalagem: " + SEQ 14.
    Exemplo:
    0000251307;0000251307;BOLSA COLO HARMONY DUO FECH.GRD./OPACA 13-50MM 2PCS;08122016;F;5310;000;000;0000;0000;0000;CX;UN;100;000;000;A;SANTE MEDICAL;0000251307;20;000;000;80475950003;VIGENTE;;#;N;N;78380030;MC;HDCL1350;N;N

    Assim, pelo exemplo acima, devemos gravar nos campos BTQ_APRESE e BA8_DFORMA o texto:
    Tipo Embalagem: CX - Unidade: UN - Qtd. Embalagem: 1.00
  • Layout CSV

Expandir
titleLayout CSV - Clique para expandir

ARQUIVO NO FORMATO CSV 

SEQCampoFormatoTamanhoDecDescriçãoEQUIVALENTE IMPORTAÇÃO
1-Caractere15-Código do UsuárioNão Aplicável
2-Caractere15-Código de FraçãoNão Aplicável
3-Caractere100-Descrição do ProdutoBA8_DESCRI  /  BR8_DESCRI  /  BTQ_DESTER  /  BTQ_DSCDET
4-Data--Data de Vigência(dd/mm/aaaa)Não Aplicável
5-Caractere01-Identificação:
(F) Preço Fábrica (V)Preço Venda
(L) Fora de Linha
(A) Atualização Suspensa
(D) Descontinuado
Não Aplicável
6-Numérico112Preço Fábrica EmbalagemSe PFB + Valor Total, utilizar esse campo - BD4_VALREF
7-Numérico112Preço Venda EmbalagemSe PMC + Valor Total, utilizar esse campo - BD4_VALREF
8-Numérico112Preço Usuário EmbalagemSe PUSU + Valor Total, utilizar esse campo - BD4_VALREF
9-Numérico123Preço Fábrica FraçãoSe PFB + Valor Fracionado utilizar esse campo - BD4_VALREF
10-Numérico123Preço Venda FraçãoSe PMC + Valor Fracionado utilizar esse campo - BD4_VALREF
11-Numérico123Preço Usuário FraçãoSe PUSU + Valor Fracionado utilizar esse campo - BD4_VALREF
12-Caractere03-Tipo de EmbalagemNota 1 *
13-Caractere04-Tipo de FraçãoNota 1 *
14-Numérico082Quantidade EmbalagemNota 1 *
15-Numérico082Quantidade Fração UsuárioNão Aplicável
16-Numérico062% Lucratividade do UsuárioNão Aplicável
17-Caractere01-Tipo de Alteração: (I)Inclusão (P)Preços
(L)Fora de Linha
(A)Alterações Gerais (S)Atualização Suspensa (D)DescontinuadoAqui, serve para informar se o campo teve alguma alteração. Como vamos progredir com cada edição, talvez não seja necessário o uso desse campo - ANALISAR
Podemos usar para indicar o fim de vigência (BD4_VIGFIM), quando o item estiver no status (D)Descontinuado ou (L)Fora de Linha, conforme ER e campo de Data Término do ParamBox de importação.
18-Caractere20-FabricanteBA8_NMFABR e:
* Se arquivo Medicamento: BTQ_LABORA
* Demais: BTQ_FABRIC
19-Caractere10-Cód.SIMPRO/TISSBA8_CODPRO  /  BD4_CODPRO  /  BR8_CODPSA  /  BTQ_CDTERM
* Somente se não existir o código TUSS no registro
20-Caractere02-Código do Mercado:
(20)Material      Hospitalar      (50)Medicamentos                 (90)Reagentes
(30)Saneantes
Não Aplicável
21-Numérico062% Percentual de DescontoNão Aplicável
22-Numérico042% IPI do ProdutoNão Aplicável
23-Caractere18-Número do Registro Anvisa ou uma das seguintes informações:
ISENTO
NAO CONTROLADO
NOTIFICACAO
SI/NC
BA8_RGANVI
24-Caractere13-Data de Validade do Registro Anvisa ou uma das seguintes informações:
PENDENTE - SOB PROTOCOLO – EM BRANCO – VIGENTE
BD4_VIGFIM 
* Observar a ER, pois pode ser a data do arquivo (se data válida, não as informações escritas), se o checkbox estiver marcado ou a data informada no campo Fim Vigência no Parambox de Importação, quando o arquivo for (D) Descontinuado ou (L) Fora de Linha - Olhar a coluna SEQ, números 5 e 17.
25-Numérico13-Número do Código de BarraNão Aplicável
26-Caractere1-Tipo de Lista
‘+’ – Positiva      ‘-’ – Negativa      ‘ ’ – Neutra      ‘#’ – Não aplicável
Não Aplicável
27-Caractere1-Indica se o medicamento é de uso exclusivamente hospitalarNão Aplicável
28-Caractere1-Indica se o produto é fracionado
S – SIM                       N - NAO
Não Aplicável
29-Caractere8
Código TUSSBA8_CODPRO  /  BD4_CODPRO  /  BR8_CODPSA  /  BTQ_CDTERM 
30-Caractere2
Indica a classificação do produto
(  )SEM CLASSIFICAÇÃO     (BD) BEM DURAVEL
(MC)    MATERIAL    DE    CONSUMO               (ME)    MATERIAL    ESPECIAL (OT)     ORTESE                      (PT)     PROTESE                      (ST)        SINTESE (IT)   INSTRUMENTAL
BA8_DSCLAS
* Gravar no campo a descrição equivalente ao código, ou seja, se vazio - Sem Classificação; se PT - Prótese e etc
31-Caractere100-Referência do ProdutoBTQ_REFFAB
32-Caractere1-Indica se o produto é genérico
S – SIM                       N - NAO
Não Aplicável
33-Caractere1-Indica se o medicamento ou material é classificado como Diversos
S – SIM                       N - NAO
Não Aplicável

* NOTA 1*Nota 1 - Gravar nos campos BTQ_APRESE e BA8_DFORMA os valores apresentados na coluna SEQ, de 12 a 14, da seguinte forma:
"Tipo Embalagem: " + SEQ 12 " - Unidade: " + SEQ 13 + " - Qtd. Embalagem: " + SEQ 14.
Exemplo:
0000018483;0000018483;COMPRESSA GAZE NIDIA 11FIOS 7,5X7,5CM EST.ETO 5UNID.;08072015;F;270;000;000;0000;0000;0000;PCT;UN;500;000;000;A;CREMER;0000018483;20;000;000;80245210083;VIGENTE;7891800194651;#;N;N;78340454;MC;194.654;N;N

Assim, pelo exemplo acima, devemos gravar:
Tipo Embalagem: PCT - Unidade: UN - Qtd. Embalagem: 5.00

...

titleLayout TXT

...




03. Tela de Importação / Configuração SIMPRO® 
Âncora
NEW
NEW

...