;** RestauDT *******************************************************************
;*  Importacao/Transferencia de Transacoes                                     *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 09/05/2003 por Anivel Augusto Rodrigues
;Ultima Alteracao: 06/01/2006 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 18/01/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Notas Entrada
;Ultima Alteracao: 13/09/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Run
;Ultima Alteracao: 24/03/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Notas de Entrada
;Ultima Alteracao: 26/03/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Tabela Preco
;Ultima Alteracao: 25/04/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Tabela Preco RETEN 0196
;Ultima Alteracao: 03/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 18/05/2009 por Nikolas
;Motivo Alteracao: Retirado a referencia ao codigo 0003 e ajustes
;Ultima Alteracao: 01/09/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes produtos SIRI
;Ultima Alteracao: 03/11/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes RETEN   
;Ultima Alteracao: 13/01/2010 por Cleber Alves
;Motivo Alteracao: AgrupaB 
;Ultima Alteracao: 16/03/2010 por Cleber Alves
;Motivo Alteracao: Valor [Indice Preco Venda]
;Ultima Alteracao: 17/03/2010 por Cleber Alves
;Motivo Alteracao: Ajuste Valor [Indice Preco Venda] Notaei
;Ultima Alteracao: 18/03/2010 por Cleber Alves
;Motivo Alteracao: Ajuste 
;Ultima Alteracao: 23/03/2010 por Cleber Alves
;Motivo Alteracao: Alteracao AgrupaB
;Ultima Alteracao: 31/03/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SIRI ignorar D 01..
;Ultima Alteracao: 24/05/2010 por Cleber Alves
;Motivo Alteracao: Ajustes AgrupaB
;Ultima Alteracao: 10/08/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes codigo cliente confec‡Æo
;Ultima Alteracao: 15/09/2010 por Karina Andrade
;Motivo Alteracao: Ajustes codigo cliente confec‡Æo
;Ultima Alteracao: 27/09/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Cidades, Paises
;Ultima Alteracao: 03/11/2010 por Bruno Carvalho
;Motivo Alteracao: Add Requesi‡Æo codigo cliente confec‡Æo "0253"
;Ultima Alteracao: 08/11/2010 por Bruno Carvalho
;Motivo Alteracao: Inclusao Observa‡äes de Vendas para Clientes
;Ultima Alteracao: 15/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes COMPL_CLIENTES()
;Ultima Alteracao: 16/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Layout no SD_Dialog
;Ultima Alteracao: 12/01/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Itens/Lupus   
;Ultima Alteracao: 30/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Isabela Garcia Nova Codifica‡Æo
;Ultima Alteracao: 12/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes novas fun‡äes para confec‡äes  
;Ultima Alteracao: 13/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes UNIBRAS  
;Ultima Alteracao: 10/06/2011 por Karina Andrade
;Motivo Alteracao: Retirado Codigo da Grade tipo produto P p/ Confeccao.
;Ultima Alteracao: 27/06/2011 por Bruno Carvalho
;Motivo Alteracao: Altera‡Æo Arj para c:\Arj
;Ultima Alteracao: 15/07/2011 por Karina Andrade
;Motivo Alteracao: Ajustes SIRI add 01.. D como P
;Ultima Alteracao: 01/08/2011 por Karina Andrade
;Motivo Alteracao: Ajustes SIRI - Materia Prima
;Ultima Alteracao: 10/08/2011 por Karina Andrade
;Motivo Alteracao: Ajustes SIRI Proc PRODUTOS(), AGRUPAB(),add novas tabelas
;Ultima Alteracao: 12/08/2011 por Karina Andrade
;Motivo Alteracao: Ajustes AGRUPAB()
;Ultima Alteracao: 25/10/2011 por Bruno Carvalho
;Motivo Alteracao: Add Tabela "NotaOCP"
;Ultima Alteracao: 01/12/2011 por Bruno Carvalho
;Motivo Alteracao: Altera‡Æo de "Arj -> Varj"
;Ultima Alteracao: 08/12/2011 por Karina Andrade
;Motivo Alteracao: Nova nomeclatura pacote importado
;Ultima Alteracao: 23/12/2011 por Karina Andrade
;Motivo Alteracao: Ajustes CACHARREL PRODUTOS()
;Ultima Alteracao: 03/01/2012 por Karina Andrade
;Motivo Alteracao: Ajustes nome pacote importado
;Ultima Alteracao: 08/03/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes mensagem da importa‡Æo nÆo realizada
;Ultima Alteracao: 15/08/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes PRODUTOS() CODIGO_CLIENTE "0243"
;Ultima Alteracao: 16/08/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado rotina para a tabela "Empriest"
;Ultima Alteracao: 14/14/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado ajustes cliente confec para "0222"
;Ultima Alteracao: 07/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SYS_CLIENTE_CONFEC=0322             
;Ultima Alteracao: 01/02/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SYS_CLIENTE_CONFEC=0325 - SEMIACABADOS ..0000
;Ultima Alteracao: 03/03/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Layout       
;Ultima Alteracao: 26/03/2013 por Kamila Gomes
;Motivo Alteracao: Ajustes PRODUTOS() CODIGO_CLIENTE "0342"          
;Ultima Alteracao: 27/03/2013 por Karina Andrade
;Motivo Alteracao: Adicionado tabela Grade em PRODUTOS()
;Ultima Alteracao: 03/04/2013 por Karina Andrade
;Motivo Alteracao: Ajustes tabela Grade
;Ultima Alteracao: 17/04/2013 por Bruno Carvalho
;Motivo Alteracao: Adicionado Transportador "PT"
;Ultima Alteracao: 28/05/2013 por Kamila Gomes
;Motivo Alteracao: Corre‡Æo PRODUTOS() CODIGO_CLIENTE "0342" 
;Ultima Alteracao: 11/06/2013 por Kamila Gomes
;Motivo Alteracao: Corre‡Æo PRODUTOS() CODIGO_CLIENTE 0346 PINTACOLOR (FILIAL PINTACOR)
;Ultima Alteracao: 24/06/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes CLIENTES() para copiar transportador independente se existir clientes 
;Ultima Alteracao: 24/06/2013 por Bruno Carvalho
;Motivo Alteracao: Add TRANSPORTADOR() e realizado ajustes
;Ultima Alteracao: 05/07/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes barra na atualizacao da tabela
;Ultima Alteracao: 03/09/2013 por Karina Andrade
;Motivo Alteracao: Ajustes PRODUTOS() CODIGO_CLIENTE "0231"  
;Motivo Alteracao: Ajustes NSAIDAS() CODIGO_CLIENTE "0242"  
;Ultima Alteracao: 24/01/2014 por Karina Andrade
;Motivo Alteracao: Ajustes PRODUTOS() CODIGO_CLIENTE "0232"  
;Ultima Alteracao: 28/01/2014 por Bruno Carvalho
;Motivo Alteracao: Ajustes PRODUTOS() #0232# onde Materia Prima estava com "Ms" 
;Ultima Alteracao: 30/06/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes PRODUTOS() #0227# cria item raiz para Semi-Acabado 
;Ultima Alteracao: 09/07/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes GeraTemp() mensagem item nÆo encontrado. 
;Ultima Alteracao: 10/07/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes PRODUTOS() #0227# para Semi-Acabado nÆo tem cdBarras
;Ultima Alteracao: 16/07/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes GeraTemp() mensagem item nÆo encontrado.
;Ultima Alteracao: 27/08/2014 por Bruno Carvalho
;Motivo Alteracao: Add PARAM_CONFECCAO, que ira controlar rotina de importa‡Æo/exporta‡Æo
;Ultima Alteracao: 19/09/2014 por Bruno/Kamila
;Motivo Alteracao: Ajustes #0227# quando gera NOTAI, pegando dados direto da NOTAIG  
;Ultima Alteracao: 25/09/2014 por Nikolas
;Motivo Alteracao: Precisou de importar dados da territorio na reten, foi desabilitado
;                  a restricao de ser so no V: para importar, para o cod. 0196
;Ultima Alteracao: 04/03/2015 por Andrey Fillipe
;Motivo Alteracao: Ajustes para nao renomear o pacote para SYS_CODIGO_CLIENTE="0164"
;Ultima Alteracao: 29/05/2015 por Bruno Carvalho
;Motivo Alteracao: Ajustes para a extra‡Æo e finaliza‡Æo do arquivo de importa‡Æo
;Ultima Alteracao: 28/10/2015 por Andrey Fillipe
;Motivo Alteracao: Alterado a forma de descompactar o arquivo PT_TRD_0001_20151028 ExecVisecf() para Executa_Programa()
;Ultima Alteracao: 19/05/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado a tabela "NCM" -> Sigla "NC"
;Ultima Alteracao: 22/05/2016 por Kamila Gomes
;Motivo Alteracao: Ajustes GetRecord "Iten_Com" -> [EX_TIPI] e [Genero]
;Ultima Alteracao: 23/05/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado a tabela "ITEN_COM" -> Sigla "IC"
;Ultima Alteracao: 31/05/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes para #0322#    
;Ultima Alteracao: 16/06/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Documentos Referenciados Entradas
;Ultima Alteracao: 06/06/2016 por Bruno Carvalho 
;Motivo Alteracao: Adaptado processo para gera‡Æo do [Numero do Lancamento] "Interno"     
;Ultima Alteracao: 23/06/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao novas tabelas regras para produtos
;Ultima Alteracao: 14/07/2016 por Bruno Carvalho
;Motivo Alteracao: Adiconado "DA" -> Destass **COMPL_CLIENTES()
;Ultima Alteracao: 26/07/2016 por Bruno Carvalho
;Motivo Alteracao: Removido "DA" -> Destass **COMPL_CLIENTES() **Rotina implementada em outro processo
;Ultima Alteracao: 29/09/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ #0388#  
;Ultima Alteracao: 04/10/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nÆo importar fichacli para 0059 Volks Bens
;Ultima Alteracao: 19/10/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado a tabela "ITEN_TEC" -> Sigla "IT"
;Ultima Alteracao: 19/10/2016 por Bruno/Rafael
;Motivo Alteracao: Verifica‡Æo IsTable() se existir "Iten_Tec" 
;Ultima Alteracao: 03/12/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ #0390#
;Ultima Alteracao: 05/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog   
;Ultima Alteracao: 03/12/2016 por Kamila Gomes
;Motivo Alteracao: Ajustes p/ #0390#  e  #0388#     
;Ultima Alteracao: 29/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes MensagemCheckBoxes()   
;Ultima Alteracao: 03/01/2017 por Kamila Gomes
;Motivo Alteracao: Ajustes p/ #0345#, #0390#  e  #0388#  para pegar codigo raiz     
;                  das notas de entrada se for tecido e tipo Terceiros
;Ultima Alteracao: 17/02/2017 por Bruno Carvalho
;Motivo Alteracao: Ajustes PRODUTOS() #0185# cria item raiz para Semi-Acabado 
;Ultima Alteracao: 17/02/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado processo #0227# parar restaurar itens "LD" com o inicio "04" 
;Ultima Alteracao: 07/04/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado processos de #0388# para #0396# 
;Ultima Alteracao: 11/05/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado processo p/ restaurar aplica‡Æo direta sem cor e grade e diferente de 02.. #0388#
;Ultima Alteracao: 15/05/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes produtos clientes tecidos
;Ultima Alteracao: 20/05/2017 por Kamila Gomes
;Motivo Alteracao: Ajustes produtos() link do campo [Codigo do Item] nas ASKs para Manutex e cia.
;Ultima Alteracao: 23/05/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ignorar produtos de terceiros clientes tecidos
;Ultima Alteracao: 23/05/2017 por Rafael Matos
;Motivo Alteracao: Adicionado a tabela "ITEN_BAR" -> Sigla "IB"
;Ultima Alteracao: 02/06/2017 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ n„o limpar o campo [Lookup_Tabela_Preco] quando ocorrer restaura‡Æo dos itens das notas de entrada
;Ultima Alteracao: 26/05/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes itens PRODUTO ACABADO Manutex
;Ultima Alteracao: 04/07/2017 por Rafael Matos
;Motivo Alteracao: Substituido Busca_Lookup por GetRecord e retirado tabela tempor ria Nota
;Ultima Alteracao: 12/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes AgrupaBEntrada() 0388
;Ultima Alteracao: 14/07/2017 por Bruno Carvalho
;Motivo Alteracao: Removido "NotaCF" e inclu¡do "NotaCC"
;Ultima Alteracao: 14/07/2017 por Bruno Carvalho
;Motivo Alteracao: Removido "Notactr" ("ST") e  "Notaocp" ("OC")
;Ultima Alteracao: 03/08/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes familia Nota??             
;Ultima Alteracao: 08/08/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado Gera_Log()
;Ultima Alteracao: 16/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes 0388
;Ultima Alteracao: 02/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SIRI itens com cor,tamanho
;Ultima Alteracao: 14/03/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado a tabela "ITEN_COM" -> Sigla "IE" 
;Ultima Alteracao: 14/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SIRI itens materia com cor,tamanho
;Ultima Alteracao: 22/03/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ #0408#
;Ultima Alteracao: 28/05/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes para SYS_CLIENTE_CONFEC="" quando unidade for X:
;Ultima Alteracao: 29/05/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado tabela Iten_Cor p/ #0415# -> "IR"
;Ultima Alteracao: 07/06/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado/ajustado Grava_LogEx()
;Ultima Alteracao: 13/06/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes logica copiar tabelas referenciadas do item
;Ultima Alteracao: 13/06/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes itens de terceiros 0415
;Ultima Alteracao: 19/06/2018 por Kamila Gomes
;Motivo Alteracao: NÆo importar representantes para sys_codigo 0404 (almeida tecidos)
;Ultima Alteracao: 12/07/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Importar representantes fixo sys_codigo 0404 (almeida tecidos)
;Ultima Alteracao: 19/07/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ #0419#
;Ultima Alteracao: 03/08/2018 por Bruno Carvalho
;Motivo Alteracao: Comentado processo p/ #0419# -> A importa‡Æo ser  v lida para todos os tipos de itens
;Ultima Alteracao: 28/08/2018 por Bruno Carvalho
;Motivo Alteracao: Removido o ajustes p/ #0404#, pois o mesmo est  sendo realizado no TRANSFDT  
;Ultima Alteracao: 29/08/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: NÆo importar tabeal de preoc sys_codigo 0404 (almeida tecidos)
;Ultima Alteracao: 26/10/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes p/ #0425#
;Ultima Alteracao: 27/11/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado novo processo para #0426#
;Ultima Alteracao: 28/12/2018 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Adicionado processos de #0427#
;Ultima Alteracao: 22/01/2019 por Bruno Carvalho                           
;Motivo Alteracao: Importando "M" Materia Prima p/ #0427# 
;Ultima Alteracao: 01/02/2019 por Bruno Carvalho                            
;Motivo Alteracao: Ajustes ao importar dados do REAL #0388#  p/ REAL #0427# -> Verifica‡Æo a partir da unidade
;Ultima Alteracao: 01/02/2019 por Bruno Carvalho                            
;Motivo Alteracao: Ajustes para #0423#
;Ultima Alteracao: 11/02/2019 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Adicionado processos de #0328#
;Ultima Alteracao: 25/02/2019 por Kamila Gomes                           
;Motivo Alteracao: Ajustes processos Aplica‡Æo Direta de #0390#
;Ultima Alteracao: 25/02/2019 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Adicionado tabela NCMUF
;Ultima Alteracao: 27/02/2019 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Adicionado processos de #0432#
;Ultima Alteracao: 14/03/2019 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes Numero_Lancamento("Interno","Locked_Down")
;Ultima Alteracao: 19/03/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado a tabela "BAR_INAT" -> Sigla "II"
;Ultima Alteracao: 11/04/2019 por Bruno Carvalho
;Motivo Alteracao: Ajustes copiados de #0322# para a empresa #0434#
;Ultima Alteracao: 23/04/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado processos de #0388# para #0429#
;Ultima Alteracao: 30/04/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes para a empresa #0434#
;Ultima Alteracao: 02/05/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes para a empresa #0429#
;Ultima Alteracao: 17/05/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes para a empresa #0222#
;Ultima Alteracao: 03/06/2019 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ verificar a unidade de origem -> Verifica_Arquivo() e add vari vel de travamento PARAM_TRAVA_UNIDADE
;Ultima Alteracao: 11/06/2019 por Kamila Gomes
;Motivo Alteracao: InclusÆo da tabela DestMail
;Ultima Alteracao: 18/06/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes para a empresa #0053#
;Ultima Alteracao: 05/07/2019 por Bruno Carvalho
;Motivo Alteracao: Permitir utilizar a mesma unidade de origem ao realizar importa‡Æo/exporta‡Æo de dados -> PARAM_TRAVA_UNIDADE=False p/ #0006# e #0029#
;Ultima Alteracao: 11/07/2019 por Kamila Gomes
;Motivo Alteracao: Limpa o usu rio do item e pega o usu rio da importa‡Æo
;Ultima Alteracao: 15/07/2019 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes tabela de preco #0437#
;Ultima Alteracao: 16/07/2019 por Bruno Carvalho                           
;Motivo Alteracao: Ajustes p/ #0437#
;Ultima Alteracao: 29/07/2019 por Bruno Carvalho
;Motivo Alteracao: Permitir utilizar a mesma unidade de origem ao realizar importa‡Æo/exporta‡Æo de dados -> PARAM_TRAVA_UNIDADE=False p/ #0222# 
;Ultima Alteracao: 09/08/2019 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes tabela itens #0432#
;Ultima Alteracao: 12/08/2019 por Bruno Carvalho
;Motivo Alteracao: Permitir utilizar a mesma unidade de origem ao realizar importa‡Æo/exporta‡Æo de dados -> PARAM_TRAVA_UNIDADE=False p/ #0397#
;Ultima Alteracao: 29/08/2019 por Bruno Carvalho
;Motivo Alteracao: Ajustes para a empresa #0439#
;Ultima Alteracao: 04/09/2019 por Bruno Carvalho
;Motivo Alteracao: NÆo vÆo trabalhar com itens "P" Sublima‡Æo #0388# 
;Ultima Alteracao: 12/09/2019 por Bruno Carvalho
;Motivo Alteracao: Alterado "TG_EMPRESA" p/ "TG_EMPRESA2" onde nÆo verifica a empresa vinculada ao usu rio na proc Valida_ShowDialog() (Bib_Show)
;Ultima Alteracao: 12/09/2019 por Bruno Carvalho
;Motivo Alteracao: Permitir utilizar a mesma unidade de origem ao realizar importa‡Æo/exporta‡Æo de dados -> PARAM_TRAVA_UNIDADE=False p/ #0428#
;Ultima Alteracao: 13/09/2019 por Bruno Carvalho
;Motivo Alteracao: Permitir utilizar a mesma unidade de origem ao realizar importa‡Æo/exporta‡Æo de dados -> PARAM_TRAVA_UNIDADE=False p/ #0183#
;Ultima Alteracao: 16/09/2019 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes itens #0388#
;Ultima Alteracao: 15/10/2019 por Bruno Carvalho                           
;Motivo Alteracao: Altera‡Æo p/ #0388# ao filtar c¢digo 008 -> [Codigo do Grupo] p/ [Codigo da Familia]
;Ultima Alteracao: 25/10/2019 por Bruno Carvalho
;Motivo Alteracao: Ajustes VSDGNOMEMP2
;Ultima Alteracao: 25/10/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado regra da sublima‡Æo para #0390#, onde ‚ realizado o mesmo processo na empresa #0388#
;Ultima Alteracao: 18/11/2019 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes travar unidade #0027#
;Ultima Alteracao: 06/12/2019 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ #0444#
;Ultima Alteracao: 14/01/2020 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ #0435#  
;Ultima Alteracao: 24/01/2020 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes destravar unidade #0415#
;Ultima Alteracao: 03/02/2020 por Kamila Gomes                           
;Motivo Alteracao: Ajustes importar produtos #0227#
;Motivo Alteracao: Ajustes PRODUTOS() CODIGO_CLIENTE "0428"  
;Ultima Alteracao: 05/03/2020 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes item da tablea o tipo do item = a tabela itens
;Ultima Alteracao: 05/03/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao tabela Grpncm
;Ultima Alteracao: 18/03/2020 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes destravar unidade #0266#
;Ultima Alteracao: 28/04/2020 por Bruno Carvalho                           
;Motivo Alteracao: Ajustes p/ diret¢rio de trabalho ser realizado no PrivDir e alterado siglas p/ nome original das tabelas  
;Ultima Alteracao: 04/05/2020 por Bruno Carvalho                           
;Motivo Alteracao: Ajustes 
;Ultima Alteracao: 07/05/2020 por Bruno Carvalho                           
;Motivo Alteracao: Ajustes NENTRADAS() onde ‚ verificado a existˆncia de tabelas antes de ser realizado processos

;*******************************************************************************
;* ROTINA PRODUTOS                                                             *
;*******************************************************************************
Proc PRODUTOS()
private wi

Aguarde("Aguarde, Importando Dados Produtos")

Copiar("Cest","\\Sistemas\\Estoque\\Cest")
Copiar("Cores","\\Sistemas\\Estoque\\Cores")
Copiar("Depart","\\Sistemas\\Estoque\\Depart")
Copiar("Familia","\\Sistemas\\Estoque\\Familia")
Copiar("Grupos","\\Sistemas\\Estoque\\Grupos")
Copiar("Grpncm","\\Sistemas\\Estoque\\Grpncm")
Copiar("Localiza","\\Sistemas\\Estoque\\Localiza")
Copiar("Marcas","\\Sistemas\\Estoque\\Marcas")
Copiar("Ncm","\\Sistemas\\Estoque\\Ncm")
Copiar("Ncmuf","\\Sistemas\\Estoque\\Ncmuf")
Copiar("Simbol","\\Sistemas\\Estoque\\Simbol")
Copiar("Tabmva","\\Sistemas\\Estoque\\Tabmva")
Copiar("TpGrade","\\Sistemas\\Estoque\\TpGrade")
Copiar("Unidades","\\Sistemas\\Estoque\\Unidades")

If Not IsTable(PASTA+"Itens")
  Then Mensagem("N„o existe arquivo conforme selecionado !")
       Return False
EndIf

;**** Limpa usu rio e pega o usu rio da importa‡Æo ****
{Ask} TypeIn PASTA+"Itens" Enter
Moveto [Chapa] Typein "Changeto ~SYS_CHAPA_USUARIO"
Do_It!
ClearAll

Switch
  Case SYS_CODIGO_CLIENTE="0428"  :   ;Equilibrio
    for wi from 1 to 3    
      switch

        case wi=1:
          {Ask} TypeIn PASTA+"Itens" Enter Check
          Moveto [Tipo do Item   ] TypeIn "not D, not T, not P, not M, Not S"
          Do_It!
          ClearAll

        case wi=2:
          {Ask} TypeIn PASTA+"Itens" Enter Check
          Moveto [Codigo do Item        ] typeIn "02.."
          Moveto [Tipo do Item          ] TypeIn "D"
          Do_It!
          ClearAll
          
          If Not IsEmpty("Answer")
             Then {Ask} {Answer}        
                  Moveto [Tipo do Item          ] TypeIn "Changeto P"
                  Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO ACABADO\""
                  Do_It!
                  ClearAll
          EndIf

        case wi=3:
          {Ask} TypeIn PASTA+"Itens" Enter Check
          Moveto [Codigo do Item        ] typeIn "01.."
          Moveto [Tipo do Item          ] TypeIn "D"
          Do_It!
          ClearAll
          
          If Not IsEmpty("Answer")
             Then {Ask} {Answer}        
                  Moveto [Tipo do Item          ] TypeIn "Changeto M"
                  Moveto [Descricao Tipo do Item] TypeIn "Changeto \"MATERIA PRIMA\""
                  Do_It!
                  ClearAll
          EndIf
      endswitch
      ClearAll
      AdicionarTabelasItens()
    endfor

  Case SYS_CODIGO_CLIENTE="0053": ; Industria de Couros SÆo SebastiÆo
    
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Codigo do Item        ] Typein "01.."              ;novos itens codificados
    Do_It!
    ClearAll                            
    AdicionarTabelasItens()

  Case SYS_CODIGO_CLIENTE="0437" and Substr(Directory(),1,1)="V" : ;Luxx
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Inativo               ] Typein "Not S" 
    Do_It!
    ClearAll                            
    AdicionarTabelasItens()
    
  Case SYS_CODIGO_CLIENTE="0418": ; Atlantica Tecidos
    
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Codigo do Item        ] Typein "Not 00.."
    Do_It!
    ClearAll                            
    AdicionarTabelasItens()

    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Codigo do Item        ] Typein "00.."
    Moveto [Tipo do Item          ] TypeIn "D"
    Do_It!
    ClearAll                            
    AdicionarTabelasItens()

  Case SYS_CODIGO_CLIENTE="0222":    ; LUPUS
    
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Codigo do Item        ] Typein "Not 01.."
    Moveto [Tipo do Item          ] TypeIn "D"
    Moveto [Codigo da Grade       ] TypeIn "Not Blank"
    Do_It!
    ClearAll                            

    {Ask} {Answer} TypeIn "Fast"
    Moveto [Tipo do Item          ] TypeIn "Changeto P"
    Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO ACABADO\""
    Moveto [Codigo da Grade       ] TypeIn "changeto Blank"
    Do_It!
    ClearAll
    AdicionarTabelasItens()

    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item          ] TypeIn "P"
    Moveto [Codigo da Grade       ] TypeIn "Blank"
    Do_It!
    ClearAll                            
    AdicionarTabelasItens()

  Case SYS_CODIGO_CLIENTE="0079":    ; Isabela Garcia
    
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Codigo do Item        ] Typein "Not 01.."
    Moveto [Tipo do Item          ] TypeIn "D"
    Moveto [Codigo da Grade       ] TypeIn "Not Blank"
    Do_It!
    ClearAll                            

    {Ask} {Answer} TypeIn "Fast"
    Moveto [Tipo do Item          ] TypeIn "Changeto P"
    Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO ACABADO\""
    Do_It!
    ClearAll
    AdicionarTabelasItens()

;===================================================================================================================================
  Case SYS_CODIGO_CLIENTE="0227": ; Siri
    
    ;-- pegar s¢ o pai estrutura antiga sem EAN13 ------------------------------
    {Ask} TypeIn PASTA+"Itens" Enter 
    Moveto [Codigo do Item    ] TypeIn "02.."
    Moveto [Tipo do Item      ] TypeIn "P"
    Moveto [Codigo da Grade   ] TypeIn "Not Blank"
    Moveto [Referencia        ] Check
    ;moveto [Tipo Codigo_Barras] typein "not \"A-EAN13\""
    Do_It!
    ClearAll
    TabelaRefSoPai=Adiciona_Indice_Temp("Referencia")

    {Ask} TypeIn TabelaRefSoPai Enter 
    Moveto [Referencia        ] typein "_ref"
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Codigo do Item    ] TypeIn "02.."
    Moveto [Tipo do Item      ] TypeIn "D"
    Moveto [Codigo da Grade   ] TypeIn "Not Blank"
    Moveto [Referencia        ] typein "_ref"
    Do_It!
    ClearAll
    TabelaItens=Adiciona_Indice_Temp("Codigo do Item")

    {Ask} typein TabelaItens enter check
    Do_It!
    ClearAll

    {Ask} {Answer} typein "Fast"
    Moveto [Tipo do Item          ] TypeIn "Changeto P"
    Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO ACABADO\""
    Moveto [Codigo da Grade       ] TypeIn "changeto Blank"
    Do_It!
    ClearAll
    AdicionarTabelasItens()
    ;---------------------------------------------------------------------------

    ;---------------------------------------------------------------------------
    {Ask} typein TabelaItens enter check
    Do_It!
    ClearAll
    AdicionarTabelasItensSemiAcabado()
    ;---------------------------------------------------------------------------

    Delete TabelaRefSoPai
    Delete TabelaItens


    ;-- pegar todos nova estrutura com COD128 ----------------------------------
    {Ask} TypeIn PASTA+"Itens" Enter 
    Moveto [Codigo do Item    ] TypeIn "02.."
    Moveto [Tipo do Item      ] TypeIn "P"
    Moveto [Codigo da Grade   ] TypeIn "Not Blank"
    Moveto [Referencia        ] Check
    moveto [Tipo Codigo_Barras] typein "not blank"
    Do_It!
    ClearAll
    TabelaRefTodos=Adiciona_Indice_Temp("Referencia")
    
    {Ask} TypeIn TabelaRefTodos Enter 
    Moveto [Referencia        ] typein "_ref"
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Codigo do Item    ] TypeIn "02.. or 03.."
    Moveto [Tipo do Item      ] TypeIn "Not D"
    Moveto [Referencia        ] typein "_ref"
    Do_It!
    ClearAll
    AdicionarTabelasItens()
    
    Delete TabelaRefTodos
    ;---------------------------------------------------------------------------


    ;-- pegar todos LD ---------------------------------------------------------
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Codigo do Item ] TypeIn "04.."
    Moveto [Tipo do Item   ] TypeIn "P"
    Moveto [Codigo da Grade] TypeIn "Blank"
    Do_It!
    ClearAll
    AdicionarTabelasItens()
    ;---------------------------------------------------------------------------

    
    ;-- Pega Materia Prima sem Grade -------------------------------------------
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Codigo do Item ] TypeIn "01.."
    Moveto [Tipo do Item   ] TypeIn "M"
    Do_It!
    ClearAll
    AdicionarTabelasItens()
    ;---------------------------------------------------------------------------

    
    ;-- Pega Aplica‡Æo Direta sem Grade ----------------------------------------
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item   ] TypeIn "D"
    Moveto [Codigo da Grade] TypeIn "Blank"
    Do_It!
    ClearAll
    AdicionarTabelasItens()
    ;---------------------------------------------------------------------------

    ;-- Pega Outros Tipos de Itens ---------------------------------------------
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item   ] TypeIn "Not P, Not D, Not S, Not M"
    Do_It!
    ClearAll
    AdicionarTabelasItens()
       
  Case SYS_CODIGO_CLIENTE="0426"       :   ; HROPER LOJA
       For wi From 1 To 2
         {Ask} TypeIn PASTA+"Itens" Enter Check   ; Todos os Itens, independente da aba tecido Tecido
         If wi=1
            Then Moveto [Codigo do Item ] TypeIn "Not 05.."
                 Moveto [Tipo do Item   ] TypeIn "D"
            Else Moveto [Tipo do Item   ] TypeIn "T Or P or M"
         EndIf
         Do_It!
         ClearAll
         
         If wi=1
            Then {Ask} {Answer} TypeIn "Fast"
                 Moveto [Codigo do Item        ] TypeIn "02.."
                 Moveto [Tipo do Item          ] TypeIn "Changeto P"
                 Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO ACABADO\""
                 Do_It!
                 ClearAll
                 
                 ;Por enquanto o PAI que come‡a com 05.. e aplica‡Æo direta nÆo vai ser restaurado
                 ;{Ask} {Answer} TypeIn "Fast"
                 ;moveto [Codigo do Item        ] TypeIn "05.."
                 ;Moveto [Tipo do Item          ] TypeIn "Changeto T"
                 ;Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO DE TERCEIROS\""
                 ;Do_It!
                 ;ClearAll      
         EndIf        
         
         AdicionarTabelasItens()
       EndFor
    
  Case SYS_CODIGO_CLIENTE="0429"  :   ; MV Tecidos
    for wi from 1 to 5    
      switch

        case wi=1:
          {Ask} TypeIn PASTA+"Itens" Enter Check
          Moveto [Tipo do Item   ] TypeIn "not D, not T, not P"
          Do_It!
          ClearAll

        case wi=2:
          {Ask} TypeIn PASTA+"Itens" Enter Check
          Moveto [Codigo do Item ] TypeIn "..0000"
          Moveto [Tipo do Item   ] TypeIn "T or P"
          Do_It!
          ClearAll

        case wi=3:
          {Ask} TypeIn PASTA+"Itens" Enter Check
          Moveto [Tipo do Item   ] TypeIn "D"
          Moveto [Referencia     ] TypeIn "blank"
          Do_It!
          ClearAll

        case wi=4:
          {Ask} TypeIn PASTA+"Itens" Enter
          Moveto [Tipo do Item   ]       TypeIn "T"
          Moveto [Referencia     ] check typein "not blank"
          Do_It!
          ClearAll
          tabelartmp=Adiciona_Indice_Temp("Referencia")

          {Ask} TypeIn tabelartmp Enter typein "Fast Delete" 
          Moveto [Referencia     ] typein "_ref"
          {Ask} TypeIn PASTA+"Itens" Enter check
          Moveto [Referencia     ] typein "_ref"
          Moveto [Tipo do Item   ] TypeIn "D"
          Do_It!
          ClearAll

          {Ask} {Answer} TypeIn "Fast"
          Moveto [Tipo do Item          ] TypeIn "Changeto T"
          Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO DE TERCEIROS\""
          Do_It!
          ClearAll
          
          delete tabelartmp

        case wi=5:
          {Ask} TypeIn PASTA+"Itens" Enter
          Moveto [Tipo do Item   ]       TypeIn "P"
          Moveto [Referencia     ] check typein "not blank"
          Do_It!
          ClearAll
          tabelartmp=Adiciona_Indice_Temp("Referencia")

          {Ask} TypeIn tabelartmp Enter typein "Fast Delete" 
          Moveto [Referencia     ] typein "_ref"
          {Ask} TypeIn PASTA+"Itens" Enter check
          Moveto [Referencia     ] typein "_ref"
          Moveto [Tipo do Item   ] TypeIn "D"
          Do_It!
          ClearAll

          {Ask} {Answer} TypeIn "Fast"
          Moveto [Tipo do Item          ] TypeIn "Changeto P"
          Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO ACABADO\""
          Do_It!
          ClearAll
          
          delete tabelartmp

      endswitch
      ClearAll
      AdicionarTabelasItens()
    endfor
    
  Case SYS_CODIGO_CLIENTE="0435"  :   ;Beiral
    for wi from 1 to 3    
      switch

        case wi=1:
          {Ask} TypeIn PASTA+"Itens" Enter Check
          Moveto [Tipo do Item   ] TypeIn "not D, not T, not P, not M"
          Do_It!
          ClearAll

        case wi=2:
          {Ask} TypeIn PASTA+"Itens" Enter Check
          Moveto [Codigo do Item ] TypeIn "..0000"
          Moveto [Tipo do Item   ] TypeIn "T or P"
          Do_It!
          ClearAll

        case wi=3:
          {Ask} TypeIn PASTA+"Itens" Enter Check
          Moveto [Codigo do Item        ] typeIn "01.."
          Moveto [Tipo do Item          ] TypeIn "D"
          Do_It!
          ClearAll
          
          If Not IsEmpty("Answer")
             Then {Ask} {Answer}        
                  Moveto [Tipo do Item          ] TypeIn "Changeto M"
                  Moveto [Descricao Tipo do Item] TypeIn "Changeto \"MATERIA PRIMA\""
                  Do_It!
                  ClearAll
          EndIf
      endswitch
      ClearAll
      AdicionarTabelasItens()
    endfor
    
  Case SYS_CODIGO_CLIENTE="0432"  :   ; Mandacaru
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item          ] TypeIn "D"
    Moveto [Referencia            ] TypeIn "blank"
    Do_It!
    ClearAll                            
    AdicionarTabelasItens()

    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item          ] TypeIn "not D, Not P, Not T, not M"
    Do_It!
    ClearAll                            
    AdicionarTabelasItens()

    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item          ] TypeIn "D"
    Moveto [Referencia            ] TypeIn "not blank"
    Do_It!
    ClearAll
    
    {Ask} {Answer} TypeIn "Fast"
    Moveto [Tipo do Item          ] TypeIn "Changeto T"
    Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO DE TERCEIROS\""
    Do_It!
    ClearAll
    AdicionarTabelasItens()
    
  
  ;-----------------------------------------------------------------------------
  Case SYS_CODIGO_CLIENTE="0444"  :   ; temporario
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item          ] TypeIn "not D"
    Do_It!
    ClearAll                            
    AdicionarTabelasItens()

    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item          ] TypeIn "D"
    Do_It!
    ClearAll
    
    {Ask} {Answer} TypeIn "Fast"
    Moveto [Tipo do Item          ] TypeIn "Changeto T"
    Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO DE TERCEIROS\""
    Do_It!
    ClearAll
    AdicionarTabelasItens()    
  ;-----------------------------------------------------------------------------
  
  
  Case SYS_CODIGO_CLIENTE="0388" Or   ; Manutex
       SYS_CODIGO_CLIENTE="0427" Or   ; Primetex
       SYS_CODIGO_CLIENTE="0390" Or   ; Polar
       SYS_CODIGO_CLIENTE="0396" Or   ; Real Atacadista
       SYS_CODIGO_CLIENTE="0345" Or   ; Vitoria Textil
       SYS_CODIGO_CLIENTE="0408" Or   ; Vitoria Textil
       SYS_CODIGO_CLIENTE="0444"  :   ; Real Textil     

    for wi from 1 to 4    
      switch

        case wi=1:

          switch
            case SYS_CODIGO_CLIENTE="0388" :
              {Ask} TypeIn PASTA+"Itens" Enter Check
              Moveto [Tipo do Item   ] TypeIn "not D, not T, not P, not M"
              Do_It!
              ClearAll

            otherwise                      :
              {Ask} TypeIn PASTA+"Itens" Enter Check
              Moveto [Tipo do Item   ] TypeIn "not D, not T, not P"
              Do_It!
              ClearAll

          endswitch
      
        case wi=2:
        
          switch
            case SYS_CODIGO_CLIENTE="0427" And  SubStr(Directory(),1,2)<>"V:" : 
              {Ask} TypeIn PASTA+"Itens" Enter Check   ; ITENS COM ARTIGO DE TECIDOS + Iten_tec
              Moveto [Codigo do Item ] Typein "_ci"
              
              {Ask} TypeIn PASTA+"Iten_Tec" Enter 
              Moveto [Codigo do Item ] Typein "_ci"
              Moveto [Artigo         ] TypeIn "Not Blank"
              Do_It!
              ClearAll

            otherwise                      :
              {Ask} TypeIn PASTA+"Itens" Enter Check   ; ITENS COM ARTIGO DE TECIDOS + Iten_tec
              Moveto [Codigo do Item ] Typein "_ci"
              Moveto [Tipo do Item   ] TypeIn "D"
              
              {Ask} TypeIn PASTA+"Iten_Tec" Enter 
              Moveto [Codigo do Item ] Typein "_ci"
              Moveto [Artigo         ] TypeIn "Not Blank"
              Do_It!
              ClearAll

          endswitch
      
          switch
            case SYS_CODIGO_CLIENTE="0427" And  SubStr(Directory(),1,2)<>"V:" : 
              {Ask} {Answer} TypeIn "Fast"
              moveto [Codigo do Item        ] typeIn "01.."
              Moveto [Tipo do Item          ] TypeIn "Changeto M"
              Moveto [Descricao Tipo do Item] TypeIn "Changeto \"MATERIA PRIMA\""
              Do_It!
              ClearAll

            case SYS_CODIGO_CLIENTE="0388" Or     ;Manutex
                 SYS_CODIGO_CLIENTE="0427"  :     ;Primetex
              
              {Ask} {Answer} TypeIn "Fast"
              moveto [Codigo da Familia     ] typeIn "008" ;SUBLIMA€¶O
              Moveto [Tipo do Item          ] TypeIn "Changeto P"
              Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO ACABADO\""
              Do_It!
              ClearAll
              
              {Ask} {Answer} TypeIn "Fast"
              Moveto [Codigo do Item        ] typeIn "01.."
              Moveto [Tipo do Item          ] TypeIn "Changeto M"
              Moveto [Descricao Tipo do Item] TypeIn "Changeto \"MATERIA PRIMA\""
              Do_It!
              ClearAll
              
              {Ask} {Answer} TypeIn "Fast"
              moveto [Codigo do Item        ] typeIn "02.."
              moveto [Codigo da Familia     ] typeIn "Not 008"
              Moveto [Tipo do Item          ] TypeIn "Changeto T"
              Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO DE TERCEIROS\""
              Do_It!
              ClearAll
         
            case SYS_CODIGO_CLIENTE="0390" : ;Polar             
             {Ask} {Answer} TypeIn "Fast"
              Moveto [Tipo do Item          ] TypeIn "Changeto T"
              Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO DE TERCEIROS\""
              Do_It!
              ClearAll
              
              {Ask} {Answer} TypeIn "Fast"
              moveto [Codigo da Familia     ] TypeIn "008" ;SUBLIMA€¶O
              Moveto [Tipo do Item          ] TypeIn "Changeto P"
              Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO ACABADO\""
              Do_It!
              ClearAll   
                            
            otherwise                      :
              {Ask} {Answer} TypeIn "Fast"
              Moveto [Tipo do Item          ] TypeIn "Changeto T"
              Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO DE TERCEIROS\""
              Do_It!
              ClearAll

          endswitch
          
        case wi=3:

          switch
            case SYS_CODIGO_CLIENTE="0427" And SubStr(Directory(),1,2)<>"V:" : 
              {Ask} TypeIn PASTA+"Itens" Enter Check   ; ITENS SEM ARTIGO DE TECIDOS - Iten_tec
              Moveto [Codigo do Item ] Typein "_ci"
              {Ask} TypeIn PASTA+"Iten_Tec" Enter 
              Moveto [Codigo do Item ] Typein "_ci"
              Moveto [Artigo         ] TypeIn "Blank"
              Do_It!
              ClearAll

            otherwise                      :
              {Ask} TypeIn PASTA+"Itens" Enter Check   ; ITENS SEM ARTIGO DE TECIDOS - Iten_tec
              Moveto [Codigo do Item ] Typein "_ci"
              Moveto [Tipo do Item   ] TypeIn "D" 
              {Ask} TypeIn PASTA+"Iten_Tec" Enter 
              Moveto [Codigo do Item ] Typein "_ci"
              Moveto [Artigo         ] TypeIn "Blank"
              Do_It!
              ClearAll

          endswitch

        case wi=4:

          switch
            case SYS_CODIGO_CLIENTE="0427" And SubStr(Directory(),1,2)<>"V:" : 
              {Ask} TypeIn PASTA+"Itens" Enter Check
              Do_It!
              ClearAll

            otherwise                      :
              {Ask} TypeIn PASTA+"Itens" Enter Check
              Moveto [Tipo do Item   ] TypeIn "D"
              Do_It!
              ClearAll

          endswitch
               
          tabelartmp=Adiciona_Indice_Temp("Codigo do Item")
          
          {Ask} TypeIn PASTA+"Iten_Tec" Enter 
          Moveto [Codigo do Item ] Typein "_ci"
          {Ask} TypeIn tabelartmp Enter typein "Fast Delete" 
          Moveto [Codigo do Item ] Typein "_ci"
          Do_It!
          ClearAll
          
          {Ask} TypeIn tabelartmp Enter Check 
          Do_It!
          ClearAll
          
          delete tabelartmp
      endswitch
      ClearAll
      AdicionarTabelasItens()
    endfor
        
   ;Case SYS_CODIGO_CLIENTE ="0419" :
   ;     {Ask} TypeIn PASTA+"Itens" Enter Check
   ;     Moveto [Tipo do Item   ] TypeIn "D"
   ;     Moveto [Codigo da Grade] TypeIn "Blank"
   ;     Do_It!
   ;     ClearAll
   ; 
   ;     {Ask} {Answer} TypeIn "Fast"
   ;     Moveto [Tipo do Item          ] TypeIn "Changeto P"
   ;     Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO ACABADO\""
   ;     Moveto [Codigo da Grade       ] TypeIn "changeto Blank"
   ;     Do_It!
   ;     ClearAll    
   ;     
   ;     AdicionarTabelasItens()
   ;     
   ;      ;-- Outros tipos de itens ---------------------------------------------
   ;     {Ask} TypeIn PASTA+"Itens" Enter Check
   ;     Moveto [Tipo do Item   ] TypeIn "Not P, Not D, Not S"
   ;     Do_It!
   ;     ClearAll
   ;               
   ;     AdicionarTabelasItens()


  Case SYS_CODIGO_CLIENTE="0434" Or SYS_CODIGO_CLIENTE="0439" :    

    for wi from 1 to 2    
      switch

        case wi=1:
          {Ask} TypeIn PASTA+"Itens" Enter check
          Moveto [Tipo do Item   ] TypeIn "D"
          Moveto [Codigo da Grade] TypeIn "Blank"
          Do_It!
          ClearAll

        case wi=2:
          {Ask} TypeIn PASTA+"Itens" Enter check
          Moveto [Tipo do Item   ] TypeIn "Not D"
          Do_It!
          ClearAll
        
      endswitch
      AdicionarTabelasItens()
    endfor


  Case SYS_CLIENTE_CONFEC<>""     And  ; Confec‡äes
       SYS_CODIGO_CLIENTE<>"0196" And  ; menos Reten
       SYS_CODIGO_CLIENTE<>"0266" And  ; menos Cacharrel
       SYS_CODIGO_CLIENTE<>"0243" And  ; menos Fluorita
       SYS_CODIGO_CLIENTE<>"0342" And  ; menos Bludenim
       SYS_CODIGO_CLIENTE<>"0231" And  ; menos Denaly
       SYS_CODIGO_CLIENTE<>"0425" And  ; menos teodoro camisaria
       SYS_CODIGO_CLIENTE<>"0328":     ; menos ecletica                 
        
    ;-- Aplica‡Æo Direta com grade ---------------------------------------------
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item   ] TypeIn "D"
    Moveto [Codigo da Grade] TypeIn "Not Blank"
    Do_It!
    ClearAll

    Switch
      Case SYS_CODIGO_CLIENTE="0322" Or 
           SYS_CODIGO_CLIENTE="0423"  :
        {Ask} {Answer} TypeIn "Fast"
        Moveto [Tipo do Item          ] TypeIn "Changeto T"
        Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO DE TERCEIROS\""
        Moveto [Codigo da Grade       ] TypeIn "changeto Blank"
        Do_It!
        ClearAll     
     
     OtherWise:
        {Ask} {Answer} TypeIn "Fast"
        Moveto [Tipo do Item          ] TypeIn "Changeto P"
        Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO ACABADO\""
        Moveto [Codigo da Grade       ] TypeIn "changeto Blank"
        Do_It!
        ClearAll
    EndSwitch
    AdicionarTabelasItens() 
    
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item   ] TypeIn "D"
    Moveto [Codigo da Grade] TypeIn "Blank"
    Do_It!
    ClearAll
    AdicionarTabelasItens()
    
    ;-- Outros tipos de itens --------------------------------------------------
    Switch
      Case SYS_CODIGO_CLIENTE="0322" Or 
           SYS_CODIGO_CLIENTE="0423" : 
           
      Case SYS_CODIGO_CLIENTE="0232":
        {Ask} TypeIn PASTA+"Itens" Enter Check
        Moveto [Tipo do Item   ] TypeIn "Not P, Not D, Not S, Not M"
        Do_It!
        ClearAll
        AdicionarTabelasItens()
       
       OtherWise:
        {Ask} TypeIn PASTA+"Itens" Enter Check
        Moveto [Tipo do Item   ] TypeIn "Not P, Not D, Not S"
        Do_It!
        ClearAll
        AdicionarTabelasItens()
        
    EndSwitch          
    ;---------------------------------------------------------------------------

    
    ;-- Aplica‡Æo Direta com grade gerar semicabado _---------------------------
    Switch
      Case SYS_CODIGO_CLIENTE="0325" Or 
           SYS_CODIGO_CLIENTE="0185"    :

        {Ask} TypeIn PASTA+"Itens" Enter Check
        Moveto [Tipo do Item   ] TypeIn "D"
        Moveto [Codigo da Grade] TypeIn "Not Blank"
        Do_It!
        ClearAll
        AdicionarTabelasItensSemiAcabado()

    EndSwitch
    ;---------------------------------------------------------------------------


    ;-- Item de terceiros com grade --------------------------------------------
    Switch
      Case SYS_CODIGO_CLIENTE="0415"    :

        {Ask} TypeIn PASTA+"Itens" Enter 
        Moveto [Codigo do Item    ] TypeIn "02.."
        Moveto [Tipo do Item      ] TypeIn "T"
        Moveto [Codigo da Grade   ] TypeIn "Not Blank"
        Moveto [Referencia        ] Check
        Do_It!
        ClearAll
        TabelaRefSoPai=Adiciona_Indice_Temp("Referencia")
    
        {Ask} TypeIn TabelaRefSoPai Enter 
        Moveto [Referencia        ] typein "_ref"
        {Ask} TypeIn PASTA+"Itens" Enter Check
        Moveto [Codigo do Item    ] TypeIn "02.."
        Moveto [Tipo do Item      ] TypeIn "D or T"
        Moveto [Codigo da Grade   ] TypeIn "Not Blank"
        Moveto [Referencia        ] typein "_ref"
        Do_It!
        ClearAll
        AdicionarTabelasItens()
        ;---------------------------------------------------------------------------

    EndSwitch
    ;---------------------------------------------------------------------------


  Case SYS_CODIGO_CLIENTE="0328":     ; ecletica                 
        
    ;-- Aplica‡Æo Direta com grade ---------------------------------------------
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item   ] TypeIn "D"
    Moveto [Codigo da Grade] TypeIn "Not Blank"
    Do_It!
    ClearAll

    {Ask} {Answer} TypeIn "Fast"
    Moveto [Tipo do Item          ] TypeIn "Changeto P"
    Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO ACABADO\""
    Moveto [Codigo da Grade       ] TypeIn "changeto Blank"
    Do_It!
    ClearAll
    AdicionarTabelasItens() 
    
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item   ] TypeIn "D"
    Moveto [Codigo da Grade] TypeIn "Blank"
    Do_It!
    ClearAll
    AdicionarTabelasItens()
    
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item   ] TypeIn "Not D, Not S"
    Do_It!
    ClearAll
    AdicionarTabelasItens()

    ;---------------------------------------------------------------------------


;===================================================================================================================================
  Case SYS_CODIGO_CLIENTE="0196":  ; Reten 
    drivecorrente=SubStr(Directory(),1,2)
        
    Switch
      Case drivecorrente="X:":

        {Ask} TypeIn PASTA+"Itens" Enter Check
        Moveto [Tipo do Item   ] TypeIn "D"
        Moveto [Codigo da Grade] TypeIn "Not Blank"
        Do_It!
        ClearAll
        AdicionarTabelasItens()
       ;---------------------------------------------------------------------------
          
          
       ;---------------------------------------------------------------------------
        {Ask} TypeIn PASTA+"Itens" Enter Check
        Moveto [Tipo do Item   ] TypeIn "P"
        Do_It!
        ClearAll

        {Ask} {Answer} TypeIn "Fast"
        Moveto [Tipo do Item          ] TypeIn "Changeto T"
        Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO DE TERCEIROS\""
        Do_It!
        ClearAll
        AdicionarTabelasItens()
       ;---------------------------------------------------------------------------

      Case drivecorrente="V:":

        {Ask} TypeIn PASTA+"Itens" Enter Check
        Moveto [Tipo do Item   ] TypeIn "D"
        Moveto [Codigo da Grade] TypeIn "Not Blank"
        Do_It!
        ClearAll
        
        {Ask} {Answer} TypeIn "Fast"
        Moveto [Tipo do Item          ] TypeIn "Changeto T"
        Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO DE TERCEIROS\""
        Do_It!
        ClearAll
        AdicionarTabelasItens()
       ;---------------------------------------------------------------------------

    EndSwitch

    CoEdit "\\Sistemas\\Vendas\\Tbprite"
    Scan For SubStr([Codigo do Item],8,3)="000"
      [Lookup_Item]=""
      [Lookup_Item]=[Codigo do Item]
    EndScan
    Do_It!
    ClearAll

      
;===================================================================================================================================
  Case SYS_CODIGO_CLIENTE="0346":  ; PINTACOLOR (FILIAL PINTACOR) 

    ;---------------------------------------------------------------------------
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item   ] TypeIn "Not P, Not S"
    Do_It!
    ClearAll
    AdicionarTabelasItens()
    ;---------------------------------------------------------------------------


    ;---------------------------------------------------------------------------
    {Ask} TypeIn PASTA+"Itens" Enter Check
    Moveto [Tipo do Item   ] TypeIn "P"
    Do_It!
    ClearAll

    {Ask} {Answer} TypeIn "Fast"
    Moveto [Tipo do Item          ] TypeIn "Changeto T"
    Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO DE TERCEIROS\""
    Do_It!
    ClearAll
    
    {Ask} {Answer} TypeIn "Fast"  
    Moveto [Tipo Tributacao       ] TypeIn "010, Changeto 060"
    ClearAll
    Do_It!

    {Ask} {Answer} TypeIn "Fast"  
    Moveto [Aliquota de ICMS      ] TypeIn "Changeto 0.00"
    Do_It!
    ClearAll

    {Ask} {Answer} TypeIn "Fast"
    Moveto [Tributacao de IPI     ] TypeIn "Changeto N"
    Do_It!
    ClearAll

    {Ask} {Answer} TypeIn "Fast"
    Moveto [IPI_CST               ] TypeIn "Changeto 53"
    Do_It!
    ClearAll

    {Ask} {Answer} TypeIn "Fast"
    Moveto [Aliquota de IPI       ] TypeIn "Changeto 0.00"
    Do_It!
    ClearAll

    {Ask} {Answer} TypeIn "Fast"
    Moveto [PIS_CST               ] TypeIn "Changeto 99"
    Do_It!
    ClearAll

    {Ask} {Answer} TypeIn "Fast"
    Moveto [PIS_Aliquota          ] TypeIn "Changeto 0.00"
    Do_It!
    ClearAll

    {Ask} {Answer} TypeIn "Fast"
    Moveto [COFINS_CST            ] TypeIn "Changeto 99"
    Do_It!
    ClearAll

    {Ask} {Answer} TypeIn "Fast"
    Moveto [COFINS_Aliquota       ] TypeIn "Changeto 0.00"
    Do_It!
    ClearAll

    AdicionarTabelasItens()
    ;---------------------------------------------------------------------------

;===================================================================================================================================
  Case SYS_CODIGO_CLIENTE="0266"  Or ; CACHARREL 
       SYS_CODIGO_CLIENTE="0342"  Or ; BLUDENIM
       SYS_CODIGO_CLIENTE="0231":    ; DENALLI FILIAL
       
    drivecorrente=SubStr(Directory(),1,2)
        
    Switch
      Case drivecorrente="V:":

        {Ask} TypeIn PASTA+"Itens" Enter Check
        Moveto [Tipo do Item   ] TypeIn "D"
        Moveto [Codigo da Grade] TypeIn "Not Blank"
        Do_It!
        ClearAll
    
        {Ask} {Answer} TypeIn "Fast"
        Moveto [Tipo do Item          ] TypeIn "Changeto P"
        Moveto [Descricao Tipo do Item] TypeIn "Changeto \"PRODUTO ACABADO\""
        Moveto [Codigo da Grade       ] TypeIn "changeto Blank"
        Do_It!
        ClearAll
        AdicionarTabelasItens()
       ;---------------------------------------------------------------------------

        
       ;---------------------------------------------------------------------------
        {Ask} TypeIn PASTA+"Itens" Enter Check
        Moveto [Tipo do Item   ] TypeIn "D"
        Moveto [Codigo da Grade] TypeIn "Blank"
        Do_It!
        ClearAll
        AdicionarTabelasItens()
       ;---------------------------------------------------------------------------

        
       ;---------------------------------------------------------------------------
        {Ask} TypeIn PASTA+"Itens" Enter Check
        Moveto [Tipo do Item   ] TypeIn "Not P, Not D, Not S"
        Do_It!
        ClearAll
        AdicionarTabelasItens()
       ;---------------------------------------------------------------------------

      Case drivecorrente="X:":

        {Ask} TypeIn PASTA+"Itens" Enter Check
        Do_It!
        ClearAll
        AdicionarTabelasItens()
       ;---------------------------------------------------------------------------

    EndSwitch      
  
;===================================================================================================================================
  OtherWise: 
    ClearAll
        
    ;---- Itens ----------------------------------------------------------------    
    If IsTable(PASTA+"Itens")
       then Copy PASTA+"Itens" "\\sistemas\\estoque\\ITEMTP"
    endif   
    ;---- Itens Complementos ---------------------------------------------------    
    If IsTable(PASTA+"Iten_Com")
       then Copy PASTA+"Iten_Com" "\\sistemas\\estoque\\ITEMTPC"
    endif   
    ;---- Informa‡äes de Tecido ------------------------------------------------
    If IsTable(PASTA+"Iten_Tec")
       Then Copy PASTA+"Iten_Tec" "\\sistemas\\estoque\\ITEMTPT"
    EndIf
    ;---- Informa‡äes de e-Commercer -------------------------------------------
    If IsTable(PASTA+"Iten_Eco")
       Then Copy PASTA+"Iten_Eco" "\\sistemas\\estoque\\ITEMTPE"
    EndIf
    ;---- Itens codigos de barras ----------------------------------------------
    If IsTable(PASTA+"Iten_Bar")
       Then Copy PASTA+"Iten_Bar" "\\sistemas\\estoque\\ITEMTPB"
    EndIf
    ;---- Itens codigos de barras ----------------------------------------------
    If IsTable(PASTA+"Bar_Inat")
       Then Copy PASTA+"Bar_Inat" "\\sistemas\\estoque\\ITEMBI"
    EndIf
    ClearAll


    switch
      case SYS_CODIGO_CLIENTE="0102":  ; CONCRETOS VICO
        Coedit "\\Sistemas\\Estoque\\ITEMTPC","\\Sistemas\\Estoque\\Iten_com"
        Scan
          Cod     =[Codigo do Item       ]
          IPVenda =[Indice Preco de Venda]
          
          If Not IsBlank(IPVenda) 
             Then
                  moveto "\\Sistemas\\Estoque\\ITEMTPC"
                  moveto [Codigo do Item]
                  Locate Cod
                  If Retval 
                     Then [Indice Preco de Venda]= IPVenda
                  EndIf              
          EndIf            
          
          moveto "\\Sistemas\\Estoque\\Iten_com"
        EndScan  
        Do_It!
        ClearAll

      otherwise :  

    endswitch

    If IsTable("\\sistemas\\estoque\\ITEMTP")
       then 
            Add "\\sistemas\\estoque\\ITEMTP"  "\\Sistemas\\Estoque\\Itens"
            ClearAll
            Delete "\\Sistemas\\Estoque\\ITEMTP"
    endif

    If IsTable("\\sistemas\\estoque\\ITEMTPC")
       then 
            Add "\\sistemas\\estoque\\ITEMTPC" "\\Sistemas\\Estoque\\Iten_com"
            ClearAll
            Delete "\\Sistemas\\Estoque\\ITEMTPC"
    endif   

    If IsTable("\\sistemas\\estoque\\ITEMTPT")
       Then
            switch
              case SYS_CODIGO_CLIENTE="0415":
                Add "\\sistemas\\estoque\\ITEMTPT" "\\Sistemas\\Estoque\\Iten_tec"
                ClearAll
              
              otherwise:
               
            endswitch 

            Delete "\\Sistemas\\Estoque\\ITEMTPT"
    EndIf    
    
    If IsTable("\\sistemas\\estoque\\ITEMIR")
       Then Add "\\sistemas\\estoque\\ITEMIR" "\\Sistemas\\Estoque\\Iten_cor"
            ClearAll
            Delete "\\Sistemas\\Estoque\\ITEMIR"
    EndIf
    
    If IsTable("\\sistemas\\estoque\\ITEMTPE")
       Then Add "\\sistemas\\estoque\\ITEMTPE" "\\Sistemas\\Estoque\\Iten_eco"
            ClearAll
            Delete "\\Sistemas\\Estoque\\ITEMTPE"
    EndIf

    If IsTable("\\sistemas\\estoque\\ITEMTPB")
       Then Add "\\sistemas\\estoque\\ITEMTPB" "\\Sistemas\\Estoque\\Iten_bar"
            ClearAll
            Delete "\\Sistemas\\Estoque\\ITEMTPB"
    EndIf
    
    If IsTable("\\sistemas\\estoque\\ITEMBI")
       Then Add "\\sistemas\\estoque\\ITEMBI" "\\Sistemas\\Estoque\\Bar_Inat"
            ClearAll
            Delete "\\Sistemas\\Estoque\\ITEMBI"
    EndIf       
    
EndSwitch

;-------------------------------------------------------------------------------
If IsTable(PASTA+"Itens")    Then Delete PASTA+"Itens"    EndIf
If IsTable(PASTA+"Iten_Com") Then Delete PASTA+"Iten_Com" EndIF
If IsTable(PASTA+"Iten_Tec") Then Delete PASTA+"Iten_Tec" EndIF
If IsTable(PASTA+"Iten_Eco") Then Delete PASTA+"Iten_Eco" EndIF
If IsTable(PASTA+"Iten_Bar") Then Delete PASTA+"Iten_Bar" EndIf
If IsTable(PASTA+"Bar_Inat") Then Delete PASTA+"Bar_Inat" EndIf
ClearAll    

LimpAguarde()

IMPPRO=True 
EndProc

;*******************************************************************************
;* Rotina adicionar dados itens e tabelas filhos                               *
;*******************************************************************************
Proc AdicionarTabelasItens()
private TabelaReferenciaItens

TabelaReferenciaItens=Adiciona_Indice_Temp("Codigo do Item")
Add TabelaReferenciaItens "\\Sistemas\\Estoque\\Itens"
ClearAll

;---- Itens Complementos --------------------------
If IsTable(PASTA+"Iten_Com")
   Then 
        {Ask} typein TabelaReferenciaItens Enter 
        Moveto [Codigo do Item ] Typein "_ci"
        {Ask} TypeIn PASTA+"Iten_Com" Enter Check
        Moveto [Codigo do Item ] Typein "_ci"
        Do_It!
        Add "Answer" "\\Sistemas\\Estoque\\Iten_com"
        ClearAll
endif

;---- Informa‡äes de Tecido -----------------------
If IsTable(PASTA+"Iten_Tec")
   Then 
        {Ask} typein TabelaReferenciaItens Enter 
        Moveto [Codigo do Item ] Typein "_ci"
        {Ask} TypeIn PASTA+"Iten_Tec" Enter Check
        Moveto [Codigo do Item ] Typein "_ci"
        Do_It!
        Add "Answer" "\\Sistemas\\Estoque\\Iten_tec"
        ClearAll
EndIf

;---- Informa‡äes de e-Commerce -------------------
If IsTable(PASTA+"Iten_Eco")
   Then 
        {Ask} typein TabelaReferenciaItens Enter 
        Moveto [Codigo do Item ] Typein "_ci"
        {Ask} TypeIn PASTA+"Iten_Eco" Enter Check
        Moveto [Codigo do Item ] Typein "_ci"
        Do_It!
        Add "Answer" "\\Sistemas\\Estoque\\Iten_eco"
        ClearAll
EndIf    

;---- Informa‡äes de C¢digos de Barras ------------
If IsTable(PASTA+"Iten_Bar")
   Then 
        {Ask} typein TabelaReferenciaItens Enter 
        Moveto [Codigo do Item ] Typein "_ci"
        {Ask} TypeIn PASTA+"Iten_Bar" Enter Check
        Moveto [Codigo do Item ] Typein "_ci"
        Do_It!
        Add "Answer" "\\Sistemas\\Estoque\\Iten_bar"
        ClearAll
EndIf    

;---- Informa‡äes de C¢digos de Barras Inativos 
If IsTable(PASTA+"Bar_Inat")
   Then 
        {Ask} typein TabelaReferenciaItens Enter 
        Moveto [Codigo do Item ] Typein "_ci"
        {Ask} TypeIn PASTA+"Bar_Inat" Enter Check
        Moveto [Codigo do Item ] Typein "_ci"
        Do_It!
        Add "Answer" "\\Sistemas\\Estoque\\Bar_Inat"
        ClearAll
EndIf  

Delete TabelaReferenciaItens

endproc

;*******************************************************************************
;* Rotina adicionar dados itens e tabelas filhos - SemiAcabdo                  *
;*******************************************************************************
Proc MudarCodigoItemParaSemiAcabado()
private CODITEMSA

if not isempty("Answer")
   then
        Edit "Answer"
        Moveto [Codigo do Item]
        Scan
          CODITEMSA = [Codigo do Item]
          [Codigo do Item] = "03"+SubStr(CODITEMSA,3,8)
        EndScan
        Do_It!
        ClearAll
endif

endproc

;*******************************************************************************
;* Rotina adicionar dados itens e tabelas filhos - SemiAcabdo                  *
;*******************************************************************************
Proc AdicionarTabelasItensSemiAcabado()
private TabelaReferenciaItens

TabelaReferenciaItens=Adiciona_Indice_Temp("Codigo do Item")
ClearAll

;---- Itens Complementos --------------------------
If IsTable(PASTA+"Iten_Com")
   Then 
        {Ask} typein TabelaReferenciaItens Enter 
        Moveto [Codigo do Item ] Typein "_ci"
        {Ask} TypeIn PASTA+"Iten_Com" Enter Check
        Moveto [Codigo do Item ] Typein "_ci"
        Do_It!

        MudarCodigoItemParaSemiAcabado()
        Add "Answer" "\\Sistemas\\Estoque\\Iten_com"
        ClearAll
endif

{Ask} typein TabelaReferenciaItens Enter check
Do_It!
ClearAll

MudarCodigoItemParaSemiAcabado()

{Ask} {Answer} TypeIn "Fast"
Moveto [Tipo do Item          ] TypeIn "Changeto S"
Moveto [Descricao Tipo do Item] TypeIn "Changeto \"SEMI-ACABADO\""
Moveto [Codigo da Grade       ] TypeIn "changeto Blank"
Moveto [Codigo de Barras      ] TypeIn "changeto Blank"
Moveto [Tipo Codigo_Barras    ] TypeIn "changeto Blank"
Do_It!
ClearAll

Add "Answer" "\\Sistemas\\Estoque\\Itens"
ClearAll

Delete TabelaReferenciaItens

endproc


;*******************************************************************************
;* ROTINA CLIENTES                                                             *
;*******************************************************************************
Proc CLIENTES()
Aguarde("Aguarde, Importando Dados Clientes")

If Not Copiar("Destinat","\\Sistemas\\Cadastro\\DESTINAT")
  Then Return
EndIf

Switch
  Case SYS_CODIGO_CLIENTE="0404" :
  OtherWise                      : Copiar("Represen","\\Sistemas\\Cadastro\\Represen")
EndSwitch
Copiar("DestMail","\\Sistemas\\Cadastro\\DestMail")
Copiar("Empriest","\\Sistemas\\Cadastro\\Empriest")
Copiar("Ativid","\\Sistemas\\Cadastro\\Ativid")
Copiar("Area","\\Sistemas\\Cadastro\\Area")
Copiar("Cidades","\\Sistemas\\Cadastro\\Cidades")
Copiar("Paises","\\Sistemas\\Cadastro\\Paises")

LimpAguarde()

IMPCLI=True 
EndProc

;*******************************************************************************
;* ROTINA CLIENTES                                                             *
;*******************************************************************************
Proc COMPL_CLIENTES()
Aguarde("Aguarde, Importando Dados Complementares de Clientes")

Switch
  Case SYS_CODIGO_CLIENTE="0059":
    Copiar("DestObs","\\Sistemas\\Cadastro\\DestObs")
    Copiar("DestMsg","\\Sistemas\\Cadastro\\DestMsg")
  
  OtherWise:
    Copiar("DestObs","\\Sistemas\\Cadastro\\DestObs")
    Copiar("DestMsg","\\Sistemas\\Cadastro\\DestMsg")
    Copiar("FichaCli","\\Sistemas\\Cadastro\\FichaCli")
    
EndSwitch
Copiar("DestInfo","\\Sistemas\\Cadastro\\DestInfo")
Copiar("End_Cob","\\Sistemas\\Cadastro\\End_Cob")

LimpAguarde()

IMPCOM=True 
EndProc

;*******************************************************************************
;* ROTINA TABELA PRECO                                                         *
;*******************************************************************************
Proc TABPRECOS()
Aguarde("Aguarde, Importando Dados Tabela Pre‡os")

Switch
  Case SYS_CODIGO_CLIENTE="0404" : IMPTAB=True return
EndSwitch

If Not IsTable(PASTA+"TbPrCab")
   Then Return False
EndIf

{Ask} TypeIn PASTA+"TbPrCab" Enter
Moveto [Codigo da Tabela] Check
Do_It!
ClearAll
Tabela=Adiciona_Indice_Temp("Codigo da Tabela")

Copiar("TbPrCab","\\Sistemas\\Vendas\\TbPrCab")

switch
  Case SYS_CODIGO_CLIENTE="0434"  : ;MAAF
    {Ask} TypeIn PASTA+"TbPrIte" Enter check
    Moveto [Tipo do Item] typein "Not D"
    Do_It!
    ClearAll

    Add "Answer" "\\Sistemas\\Vendas\\TbPrIte"
    ClearAll

  Case ( SYS_CODIGO_CLIENTE="0437" and Substr(Directory(),1,1)="V" ) or ;Luxx
       ( SYS_CODIGO_CLIENTE="0439" and Substr(Directory(),1,1)="Y" ) :  ;Teoria  
    
    {Ask} TypeIn PASTA+"TbPrIte" Enter check
    Do_It!
    ClearAll
    TabelaPreco=Adiciona_Indice_Temp("Codigo da Tabela,Codigo do Item")

    {Ask} {\\Sistemas\\Estoque\\Itens} 
    Moveto [Codigo do Item      ]       TypeIn "_ci"
    Moveto [Referencia          ] Check
    {Ask} TypeIn TabelaPreco Enter check 
    Moveto [Codigo do Item      ]       TypeIn "_ci"
    Moveto [Tipo do Item        ]       TypeIn "D"
    Do_It!
    ClearAll
    TabelaPrecoPai=Adiciona_Indice_Temp("Codigo da Tabela,Referencia,Codigo do Item")


    {Ask} TypeIn TabelaPrecoPai Enter  
    Moveto [Referencia          ] Check
    Do_It!
    ClearAll
    TabelaRefTodos=Adiciona_Indice_Temp("Referencia")


    {Ask} TypeIn TabelaRefTodos Enter 
    Moveto [Referencia          ]       typein "_ref"
    {Ask} {\\Sistemas\\Estoque\\Itens} 
    Moveto [Codigo do Item      ] Check TypeIn " as FilhoCodigo"
    Moveto [Descricao do Item   ] Check TypeIn " as FilhoDescricao"
    Moveto [Tipo do Item        ] Check TypeIn "not D, as FilhoTipo"
    Moveto [Unidade Fiscal      ] Check TypeIn " as FilhoUnidade"
    Moveto [Referencia          ] Check typein "_ref"
    Do_It!
    ClearAll
    TabelaItem2=Adiciona_Indice_Temp("FilhoCodigo")    


    {Ask} TypeIn TabelaItem2 Enter 
    Moveto [FilhoCodigo         ] Check
    Moveto [FilhoDescricao      ] Check
    Moveto [FilhoTipo           ] Check
    Moveto [FilhoUnidade        ] Check
    Moveto [Referencia          ]       typein "_ref"
    {Ask} TypeIn TabelaPrecoPai Enter check 
    Moveto [Referencia          ]       typein "_ref"
    Do_It!
    ClearAll


    {Ask} {Answer} typein "Fast"
    Moveto [Codigo do Item      ]       TypeIn "Changeto _ci"
    Moveto [Descricao do Item   ]       TypeIn "Changeto _di"
    Moveto [Tipo do Item        ]       TypeIn "Changeto _ti"
    Moveto [Unidade Fiscal      ]       TypeIn "Changeto _ui"
    Moveto [FilhoCodigo         ]       TypeIn "_ci"
    Moveto [FilhoDescricao      ]       TypeIn "_di"
    Moveto [FilhoTipo           ]       TypeIn "_ti"
    Moveto [FilhoUnidade        ]       TypeIn "_ui"
    Do_It!
    ClearAll
   
    Adiciona_Dados_Tabela(TabelaPreco)

    {Ask} {\\Sistemas\\Estoque\\Itens}
    Moveto [Codigo do Item      ]       TypeIn "_Ite"
    Moveto [Tipo do Item        ]       TypeIn "Not D"
    {Ask} TypeIn TabelaPreco Enter Check
    Moveto [Codigo do Item      ]       TypeIn "_Ite"
    Do_It!
    ClearAll

    Add "Answer" "\\Sistemas\\Vendas\\TbPrIte"
    ClearAll

    Delete TabelaPreco
    Delete TabelaRefTodos
    Delete TabelaPrecoPai
    Delete TabelaItem2

  otherwise :
    Copiar("TbPrIte","\\Sistemas\\Vendas\\TbPrIte")  

endswitch

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item      ]       TypeIn "_Ite"
Moveto [Tipo do Item        ]       TypeIn "_tpite"
{Ask} {\\Sistemas\\Vendas\\TbPrIte}
Moveto [Codigo do Item      ]       TypeIn "_Ite"
Moveto [Tipo do Item        ]       TypeIn "changeto _tpite"
Do_It!
ClearAll

Copiar("TbPrCpg","\\Sistemas\\Vendas\\TbPrCpg")

Copiar("TbPrCli","\\Sistemas\\Vendas\\TbPrCli")
Copiar("TbPrCIt","\\Sistemas\\Vendas\\TbPrCIt")

Copiar("TbPrRep","\\Sistemas\\Vendas\\TbPrRep")
Copiar("TbPrRIt","\\Sistemas\\Vendas\\TbPrRIt")

Grade_Cor()

Delete Tabela

LimpAguarde()

IMPTAB=True 
EndProc

;*******************************************************************************
;* ROTINA CLIENTES                                                             *
;*******************************************************************************
Proc TRANSPORTADOR()
Aguarde("Aguarde, Importando Dados Complementares de Clientes")

If SYS_CODIGO_CLIENTE="0222"
   Then Return 
EndIf

Copiar("Transpor","\\Sistemas\\Vendas\\Transpor")
LimpAguarde()

IMPTRA=True 

EndProc ;TRANSPORTADOR()

;*******************************************************************************
;* Notas de Entrada                                                            *
;*******************************************************************************
Proc NENTRADAS()
AGUARDE("Aguarde, Importando Dados Notas de Entrada")

If SYS_CODIGO_CLIENTE = "0253" 
   Then Copiar("RqCabeca","\\Sistemas\\Estoque\\RqCabeca")
        Copiar("RqItem","\\Sistemas\\Estoque\\RqItem")
        Copiar("RqMatPri","\\Sistemas\\Estoque\\RqMatPri")
EndIf

If Not IsTable(PASTA+"NotaEc")
   Then Mensagem("Na Unidade "+PASTA+" n„o contem Notas de Entrada !")
        EXISTE=False
        Return
EndIf
If IsEmpty(PASTA+"NotaEc")
   Then Mensagem("Notas de Entrada sem registros !")
        EXISTE=False
        Return
EndIf

SetDir "\\Sistemas\\Estoque"
EXISTE=TRUE

AGUARDE("Aguarde, Restaurando Notas de Entrada")
ClearAll

If IsTable("Tmp_nec")   Then Delete "Tmp_nec"   EndIf
If IsTable("Tmp_nei")   Then Delete "Tmp_nei"   EndIf
If IsTable("Tmp_necp")  Then Delete "Tmp_necp"  EndIf
If IsTable("Tmp_necv")  Then Delete "Tmp_necv"  EndIf
If IsTable("Tmp_neia")  Then Delete "Tmp_neia"  EndIf
If IsTable("Tmp_ner")   Then Delete "Tmp_ner"   EndIf

Copy PASTA+"NotaEc" "Tmp_nec"

If (SYS_CODIGO_CLIENTE="0388" Or
    SYS_CODIGO_CLIENTE="0427" Or
    SYS_CODIGO_CLIENTE="0390" Or
    SYS_CODIGO_CLIENTE="0396" Or
    SYS_CODIGO_CLIENTE="0345" Or
    SYS_CODIGO_CLIENTE="0408" Or
    SYS_CODIGO_CLIENTE="0429")  
;;;;SYS_CODIGO_CLIENTE="0432")
    Then 
         AgrupaBEntrada()
    Else 
         Copy PASTA+"NotaEI" "Tmp_nei"
EndIf

If Istable(PASTA+"NotaeCP") Then Copy PASTA+"NotaeCP" "Tmp_necp" EndIF
If Istable(PASTA+"NotaeCV") Then Copy PASTA+"NotaeCV" "Tmp_necv" EndIF
If Istable(PASTA+"NotaeIA") Then Copy PASTA+"NotaeIA" "Tmp_neia" EndIF
If Istable(PASTA+"NotaeR")  Then Copy PASTA+"NotaeR"  "Tmp_ner"  EndIF

NR = NRecords("Tmp_nec")
View "Cotacao"
View "NotaEC"
View "NotaEI"
View "NotaECP"
View "NotaECV"
View "NotaEIA"
View "NotaER"

View "Tmp_neI"
If Istable("Tmp_necp") Then View "Tmp_neCP" EndIF
If Istable("Tmp_necv") Then View "Tmp_neCV" EndIF
If Istable("Tmp_neia") Then View "Tmp_neIA" EndIF
If Istable("Tmp_ner")  Then View "Tmp_neR"  EndIF

View NOWINDOW "\\Sistemas\\Vendas\\Tbprcab"    ImageRights ReadOnly
View NOWINDOW "\\Sistemas\\Cadastro\\Represen" ImageRights ReadOnly
View NOWINDOW "\\Sistemas\\Cadastro\\Empresas" ImageRights ReadOnly
View NOWINDOW "\\Sistemas\\Cadastro\\Cfo"      ImageRights ReadOnly
View NOWINDOW "\\Sistemas\\Ctacor\\CCusto"     ImageRights ReadOnly 
View NOWINDOW "\\Sistemas\\Estoque\\Aplic"     ImageRights ReadOnly 
View NOWINDOW "\\Sistemas\\Estoque\\Cores"     ImageRights ReadOnly 
View NOWINDOW "\\Sistemas\\Estoque\\Itens"     ImageRights ReadOnly 
View NOWINDOW "\\Sistemas\\Estoque\\Iten_Com"  ImageRights ReadOnly 


CoEdit "Tmp_neC"
Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Importando Notas "+BARRA_STRING)
  
  NUMEROL_ORIGINAL=[Numero do Lancamento]
  CODIGO          =[Codigo             ]
  NOTAFISC        =[Numero do Documento]
  SERIE           =[Serie do Documento ]
  CopyToArray RegCab

  Moveto "NotaEC"
  Moveto [Codigo]
  Locate IndexOrder By "NotaEC01" CODIGO,NOTAFISC,SERIE
  If RetVal
     then Moveto "Tmp_neC"
          Loop
  EndIf

  While True
    End
    Moveto [Numero do Lancamento]
    If Numero_Lancamento("Interno","Locked_Down")
       Then NUMEROL = PROXLANCTO_NLANC
            Release Vars PROXLANCTO_NLANC
            quitloop
    EndIf    
  EndWhile

; While True
;   Moveto [Numero do Lancamento]
;   End
;   If Numero_Lancamento("Interno","")
;      Then NUMEROL = PROXLANCTO_NLANC
;   EndIf
;   Down
;   [Numero do Lancamento]=NUMEROL
;   If Not IsLockRecord()
;      Then QuitLoop
;   EndIf
; EndWhile
  
  GetRecord "\\Sistemas\\Cadastro\\Destinat" Regcab["Codigo"] To Reg_Busca_Lookup
  If Not Retval 
     Then MSG=    "Emitente/Destinat rio n„o cadastrado !// //"
          MSG=MSG+"Nota: "+RegCab["Tipo do Documento"]+"/"+RegCab["Numero do Documento"]
          MSG=MSG+"   Codigo: "+RegCab["Codigo"]+"// //"
          MSG=MSG+"Lan‡amento inv lido, n„o pode ser importado !"
          Mensagem(MSG)
          Del
          Moveto "Tmp_neC"
          Loop
  EndIf

  RegCab["Numero do Lancamento"] = NUMEROL
  RegCab["Numero_Controle_Dia"]  = ""
  RegCab["Numero_Carregamento"]  = ""
  RegCab["Lookup_NotaC"]         = ""
  RegCab["Numero da OC"]         = ""
  If SYS_CODIGO_CLIENTE="0001"
     Then RegCab["Codigo da Empresa"]    ="0005"
          RegCab["Nome Fantasia Empresa"]="MINASLACK COMERCIAL"
  EndIf
  If SYS_CODIGO_CLIENTE="0130"
     Then RegCab["Codigo da Empresa"]    ="0001"
          RegCab["Nome Fantasia Empresa"]="GW ENTRETELAS"
  EndIf
  
  If Not IsBlank(RegCab["Codigo da Tabela"])
     Then GetRecord "\\Sistemas\\Vendas\\Tbprcab" RegCab["Codigo da Tabela"] To Reg_Busca_Lookup
          If Not Retval
             Then RegCab["Codigo da Tabela"]=""
          EndIf
  EndIf
  If Not IsBlank(RegCab["Codigo do Representante"])
     Then GetRecord "\\Sistemas\\Cadastro\\Represen" RegCab["Codigo do Representante"] To Reg_Busca_Lookup
          If Not Retval
             Then RegCab["Codigo do Representante"]=""
          EndIf
  EndIf
  If Not IsBlank(RegCab["Codigo da Empresa"])
     Then GetRecord "\\Sistemas\\Cadastro\\Empresas" RegCab["Codigo da Empresa"] To Reg_Busca_Lookup
          If Not Retval
             Then RegCab["Codigo da Empresa"]=""
          EndIf
  EndIf
  If Not IsBlank(RegCab["CFO"])
     Then GetRecord "\\Sistemas\\Cadastro\\Cfo" RegCab["CFO"] To Reg_Busca_Lookup
          If Not RetVal
             Then RegCab["CFO"]=""
          EndIf
  EndIf
  CopyFromDynArray RegCab
  UnLockRecord
  
  ;;***** Itens da Nota *****
  Moveto "Tmp_neI"
  Moveto [Numero do Lancamento]
  Locate NUMEROL_ORIGINAL
  While [Numero do Lancamento]=NUMEROL_ORIGINAL
    CopyToDynArray RegItem
    Moveto "NotaEI"
    Moveto [Numero do Lancamento]
    End
    Down
    RegItem["Codigo da Empresa"]       =RegCab["Codigo da Empresa"]
    RegItem["Numero do Lancamento"]    =NUMEROL
    RegItem["Lookup_Codigo_Fornecedor"]=""

    If SYS_CODIGO_CLIENTE<>"0388" and
       SYS_CODIGO_CLIENTE<>"0427" 
       Then RegItem["Lookup_Tabela_Preco"]     =""
    EnDIf   

    If Not IsBlank(RegItem["Codigo CCusto"])
       Then GetRecord "\\Sistemas\\Ctacor\\CCusto" RegItem["Codigo CCusto"] To Reg_Busca_Lookup
            If Not Retval
               Then RegItem["Codigo CCusto"]=""
            EndIf
    EndIf
    If Not IsBlank(RegItem["Aplicacao"])
       Then GetRecord "\\Sistemas\\Estoque\\Aplic" RegItem["Aplicacao"] To Reg_Busca_Lookup
            If Not Retval
               Then RegItem["Aplicacao"]=""
            EndIf
    EndIf
    
    If Not IsBlank(RegItem["Codigo da Cor_Tecido"])
       Then GetRecord "\\Sistemas\\Estoque\\Cores" RegItem["Codigo da Cor_Tecido"] To Reg_Busca_Lookup
            If Not Retval
               Then RegItem["Codigo da Cor_Tecido"]=""
            EndIf
    EndIf    
    If Not IsBlank(RegItem["Codigo do Item"])
       Then GetRecord "\\Sistemas\\Estoque\\Itens" RegItem["Codigo do Item"] To Reg_Busca_Lookup
            If Not Retval
               Then RegItem["Codigo do Item"]=""
               Else If SYS_CODIGO_CLIENTE = "0102" 
                       Then GetRecord "\\Sistemas\\Estoque\\Iten_Com" RegItem["Codigo do Item"] To REG_ITEMCOMP        
                            If RetVal
                               Then RegItem["Indice Preco de Venda"] = REG_ITEMCOMP["Indice Preco de Venda"]
                               Else RegItem["Indice Preco de Venda"] = 0
                            EndIf  
                    EndIf
            EndIf  
    EndIf
    If Not IsBlank(RegItem["CFO"])
       Then GetRecord "\\Sistemas\\Cadastro\\CFO" RegItem["CFO"] To Reg_Busca_Lookup
            If Not Retval
               Then RegItem["CFO"]=""
            EndIf
    EndIf
  
    CopyFromDynArray RegItem
    UnLockrecord
    Cotacao()

    Moveto "Tmp_neI"
    Skip
    If EOT() Then QuitLoop EndIf
  EndWhile

  ;;***** A Vista da Nota *****
  If Istable("Tmp_necv") 
     Then Moveto "Tmp_neCV"
          Moveto [Numero do Lancamento]
          Locate NUMEROL_ORIGINAL
          While [Numero do Lancamento]=NUMEROL_ORIGINAL
            CopyToDynArray RegCV
            Moveto "NotaECV"
            Moveto [Numero do Lancamento]
            End
            Down
        
            RegCV["Codigo da Empresa"]         =RegCab["Codigo da Empresa"]
            RegCV["Numero do Lancamento"]      = NUMEROL
            RegCV["Numero do Lancamento CxBc"] = ""
            RegCV["Codigo da Conta"]           = ""
            RegCV["Tipo da Conta"]             = ""
            RegCV["Descricao da Conta"]        = ""
            
            If Not IsBlank(RegCV["Codigo do Historico"])
               Then GetRecord "\\Sistemas\\Cadastro\\Historic" RegCV["Codigo do Historico"] To Reg_Busca_Lookup
                    If Not Retval
                       Then RegCV["Codigo do Historico"]=""
                    EndIf
            EndIf
            If Not IsBlank(RegCV["Codigo Plano_Conta"])
               Then GetRecord "\\Sistemas\\Ctacor\\Plcontas" RegCV["Codigo Plano_Conta"] To Reg_Busca_Lookup
                    If Not Retval
                       Then RegCV["Codigo Plano_Conta"]=""
                    EndIf
            EndIf
            If Not IsBlank(RegCV["Codigo CCusto"])
               Then GetRecord "\\Sistemas\\Ctacor\\CCusto" RegCV["Codigo CCusto"] To Reg_Busca_Lookup
                    If Not Retval
                       Then RegCV["Codigo CCusto"]=""
                    EndIf
            EndIf
            CopyFromDynArray RegCV
            UnLockrecord
        
            Moveto "Tmp_neCV"
            Skip
            If EOT() Then QuitLoop EndIf
          EndWhile
  EndIf
  
  ;;***** A Prazo da Nota *****
  If Istable("Tmp_neCP") 
     Then Moveto "Tmp_neCP"
          Moveto [Numero do Lancamento]
          Locate NUMEROL_ORIGINAL
          While [Numero do Lancamento]=NUMEROL_ORIGINAL
            CopyToDynArray RegCP
            Moveto "NotaECP"
            Moveto [Numero do Lancamento]
            End
            Down
        
            RegCP["Codigo da Empresa"]         =RegCab["Codigo da Empresa"]
            RegCP["Numero do Lancamento"]     =NUMEROL
            RegCP["Numero Lancamento Titulos"]=""
            RegCP["Codigo da Conta"]          =""
            RegCP["Descricao da Conta"]       =""
            RegCP["Lookup_Feriado"]           =BlankDate()
            If Not IsBlank(RegCP["Codigo Plano_Conta"])
               Then GetRecord "\\Sistemas\\Ctacor\\Plcontas" RegCP["Codigo Plano_Conta"] To Reg_Busca_Lookup
                    If Not Retval
                       Then RegCP["Codigo Plano_Conta"]=""
                    EndIf
            EndIf
            If Not IsBlank(RegCP["Codigo CCusto"])
               Then GetRecord "\\Sistemas\\Ctacor\\CCusto" RegCP["Codigo CCusto"] To Reg_Busca_Lookup
                    If Not Retval
                       Then RegCP["Codigo CCusto"]=""
                    EndIf
            EndIf
            CopyFromDynArray RegCP
            UnLockrecord
        
            Moveto "Tmp_neCP"
            Skip
            If EOT() Then QuitLoop EndIf
          EndWhile
  EndIF

  ;;***** Inf. Adic. da Nota *****
  If Istable("Tmp_neIA")
     Then Moveto "Tmp_neIA"
          Moveto [Numero_do_Lancamento]
          Locate NUMEROL_ORIGINAL
          While [Numero_do_Lancamento]=NUMEROL_ORIGINAL
            CopyToDynArray RegNeIA
            Moveto "NotaEIA"
            Moveto [Numero_do_Lancamento]
            End
            Down
        
            RegNeIA["Numero_do_Lancamento"]    =NUMEROL
            
            CopyFromDynArray RegNeIA
            UnLockrecord
        
            Moveto "Tmp_neIA"
            Skip
            If EOT() Then QuitLoop EndIf
          EndWhile
  EndIf
          
  ;;***** documentos referenciados
  If IsTable("Tmp_ner")
     Then Moveto "Tmp_ner"
          Moveto [Numero do Lancamento]
          Locate NUMEROL_ORIGINAL
          While [Numero do Lancamento]=NUMEROL_ORIGINAL
            CopyToDynArray Regner 
            Moveto "NotaER"
            Moveto [Numero do Lancamento]
            End
            Down
        
            Regner["Numero do Lancamento"]     =NUMEROL
        
            CopyFromDynArray Regner 
            UnLockrecord
        
            Moveto "Tmp_neR"
            Skip
            If EOT() Then QuitLoop EndIf
          EndWhile
  EndIf

  Moveto "Tmp_neC"
EndScan
Do_It! 
ClearAll

LimpAguarde()
SetDir "\\Sistemas\\Cadastro"

IMPNFE=True 
Return True
EndProc

;*******************************************************************************
;* Atualiza Cotacao de Preco                                                   *
;*******************************************************************************
Proc COTACAO()
If [NotaEC->Tipo de Operacao]<>"C"
   Then Return
EndIf

If Not IsBlank([Codigo do Item]) And [Tipo do Item]<>"C" And [Tipo do Item]<>"D"
   Then Moveto "Cotacao"
        Moveto [Codigo do Item]
        Locate [NotaEI->Codigo do Item],[NotaEC->Codigo]
        If Not RetVal
           Then
                GetRecord "\\Sistemas\\Estoque\\Itens" [NotaEI->Codigo do Item] To Reg_Busca_Lookup
                If Not Retval
                   Then UnLockRecord
                        Return
                EndIf

                GetRecord "\\Sistemas\\Cadastro\\Destinat" [NotaEC->Codigo] To Reg_Busca_Lookup
                If Not Retval
                   Then UnLockRecord
                        Return
                EndIf

                End Down
                [Codigo do Item]=[NotaEI->Codigo do Item]
                [Codigo        ]=[NotaEC->Codigo        ]
        Endif
        If [NotaEI->Valor Desconto Total]>0
           Then [Valor Unitario]=[NotaEI->Preco Unitario]-([NotaEI->Valor Desconto Total]/[NotaEI->Quantidade])
           Else [Valor Unitario]=[NotaEI->Preco Unitario]
        EndIf
        [Data de Compra     ]=[NotaEC->Data de Entrada    ]
        [Quantidade         ]=[NotaEI->Quantidade         ]
        [Numero do Documento]=[NotaEC->Numero do Documento]
        [Tipo do Documento  ]=[NotaEC->Tipo do Documento  ]
        UnLockRecord
EndIf
EndProc

;*******************************************************************************
;* Notas de Saida                                                              *
;*******************************************************************************
Proc NSAIDAS()
AGUARDE("Aguarde, Restaurando Notas de Saida")

If Not IsTable(PASTA+"NotaC")
   Then Mensagem("Na Unidade "+PASTA+" n„o contem Notas de Saida !")
        Return
EndIf

Copiar("NotaC","\\Sistemas\\Vendas\\NotaC")
Copiar("NotaCC","\\Sistemas\\Vendas\\NotaCC")

If (SYS_CLIENTE_CONFEC="0185" Or SYS_CLIENTE_CONFEC="0222") And 
   (SYS_CODIGO_CLIENTE <> "0342" And SYS_CODIGO_CLIENTE <> "0227" And SYS_CODIGO_CLIENTE <> "0425")
   Then AgrupaB()
        Delete PASTA+"NotaI"  
   Else If SYS_CODIGO_CLIENTE="xxxxxxxx0227" 
           Then Copiar("NotaI","\\Sistemas\\Vendas\\NotaI") ; nÆo faz mais notaig
           Else Copiar("NotaI","\\Sistemas\\Vendas\\NotaI") 
        EndIf   
EndIf

Copiar("NotaIAD","\\Sistemas\\Vendas\\NotaIAD")
Copiar("NotaIC","\\Sistemas\\Vendas\\NotaIC")
Copiar("NotaICM","\\Sistemas\\Vendas\\NotaICM")
Copiar("NotaIDD","\\Sistemas\\Vendas\\NotaIDD")
Copiar("NotaIDV","\\Sistemas\\Vendas\\NotaIDV")
Copiar("NotaR","\\Sistemas\\Vendas\\NotaR")
Copiar("NotaV","\\Sistemas\\Vendas\\NotaV")

CLIENTES()

LimpAguarde()

IMPNFS=True
EndProc

;*******************************************************************************
;* Copiar                                                                      *
;*******************************************************************************
Proc Copiar(INI,TABELA)
     
If Not IsTable(PASTA+INI)
   Then Return False
EndIf                  

Add PASTA+INI TABELA
Delete PASTA+INI

Switch
  Case Upper(INI) = "TBPRITE"    And
       (SYS_CODIGO_CLIENTE="0322" Or 
        SYS_CODIGO_CLIENTE="0388" Or
        SYS_CODIGO_CLIENTE="0427" Or
        SYS_CODIGO_CLIENTE="0396" Or
        SYS_CODIGO_CLIENTE="0390" Or
        SYS_CODIGO_CLIENTE="0423" Or
        SYS_CODIGO_CLIENTE="0429" Or  
        SYS_CODIGO_CLIENTE="0432")  :

    {Ask} {\\Sistemas\\Estoque\\Itens}
    Moveto [Codigo do Item] TypeIn "_cite"
    Moveto [Tipo do Item  ] TypeIn "_tite"
    {Ask} {\\Sistemas\\Vendas\\Tbprite} typein "Fast"
    Moveto [Codigo do Item] TypeIn "_cite"
    Moveto [Tipo do Item  ] TypeIn "changeto _tite"
    Do_It!
    ClearAll

EndSwitch

ClearAll
Return True
EndProc

;*******************************************************************************
;* Rotina para geracao das grades/cores                                        *
;*******************************************************************************
Proc Grade_Cor()
Private wc

If SYS_CODIGO_CLIENTE<>"0196"
   Then Return False
EndIf   

AGUARDE("Aguarde, Atualizando Tabelas de Pre‡o")

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item ] Example "ite"
Moveto [Tipo do Item   ] TypeIn "D"
Moveto [Referencia     ] Check
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Tabela] Example "tab"
{Ask} {\\Sistemas\\Vendas\\Tbprite} Check
Moveto [Codigo da Tabela] Example "tab"
Moveto [Codigo do Item  ] Example "ite"
Do_It!
ClearAll

NR = NRecords("Answer")

CoEdit "\\Sistemas\\Estoque\\Itens",
       "\\Sistemas\\Vendas\\TbPrite",
       "Answer"
Scan

  Barra(NR, RecNo())
  Aguarde("Aguarde, atualizando tabelas de pre‡o "+BARRA_STRING)

  Moveto "\\Sistemas\\Estoque\\Itens"
  Moveto [Referencia      ]
  Locate IndexOrder by "Referencia" [Answer->Referencia      ]
  If Not RetVal
     Then Moveto "Answer"
          Loop
  EndIf
  wc=0
  While [\Sistemas\Estoque\Itens->Referencia]=[Answer->Referencia      ]
    wc=wc+1
    Aguarde("Aguarde, atualizando tabelas de pre‡o "+BARRA_STRING+" - "+StrVal(wc))
    
    If [Tipo do Item]="T"
       Then Moveto "\\Sistemas\\Vendas\\TbPrite"
            Moveto [Codigo da Tabela]
            Locate [Answer->Codigo da Tabela], [\Sistemas\Estoque\Itens->Codigo do Item  ]
            If Not RetVal
               Then End
                    Down
                    [Codigo da Tabela]=[Answer->Codigo da Tabela]
                    [Codigo do Item  ]=[\Sistemas\Estoque\Itens->Codigo do Item  ]
                    [Lookup_Item     ]=[Codigo do Item  ]
            EndIf
            [Preco Unitario      ]=[Answer->Preco Unitario      ]
            [Data Ultimo Reajuste]=[Answer->Data Ultimo Reajuste]
            [Taxa Ultimo Reajuste]=[Answer->Taxa Ultimo Reajuste]
            UnLockRecord

            Moveto "\\Sistemas\\Estoque\\Itens"
    EndIf
    Skip
    If EOT()
       Then QuitLoop
    EndIf

    Locate IndexOrder by "Referencia" Next [Answer->Referencia      ]
    If Not RetVal
       Then QuitLoop
    EndIf
  EndWhile

  Moveto "Answer"
EndScan
Do_It!
ClearAll

LimpAguarde()
EndProc

;*******************************************************************************
;* Rotina para Agrupar os Itens                                   *
;*******************************************************************************
Proc AgrupaBEntrada()
SetDir "\\Sistemas\\Estoque"
 
If IsTable("\\sistemas\\Estoque\\EITEMP")
   Then Delete "\\sistemas\\Estoque\\EITEMP"
Endif
                                                    
TabelaEI=PASTA+"NotaEI"

Copy  TabelaEI "\\sistemas\\Estoque\\EITEMP"

Coedit "EITEMP"
Scan
  CODNOVO=[Codigo do Item]
     
  if SYS_CODIGO_CLIENTE="0388" Or
     SYS_CODIGO_CLIENTE="0427" Or
     SYS_CODIGO_CLIENTE="0390" Or
     SYS_CODIGO_CLIENTE="0396" Or
     SYS_CODIGO_CLIENTE="0345" Or
     SYS_CODIGO_CLIENTE="0408" Or
;;;;;SYS_CODIGO_CLIENTE="0432" Or
     SYS_CODIGO_CLIENTE="0429"   
     Then
          If [Tipo do Item        ]= "T" And [Codigo da Cor_Tecido]<> ""
             then CODNOVO=PegaCodigoRaiz(CODNOVO) 
          endif   

          If [Tipo do Item        ]= "P" And [Codigo da Cor_Tecido]<> "" and 
             (SYS_CODIGO_CLIENTE="0388" or SYS_CODIGO_CLIENTE="0427"  or SYS_CODIGO_CLIENTE="0429")
             then CODNOVO=PegaCodigoRaiz(CODNOVO) 
          endif   

          If [Tipo do Item        ]= "M" And [Codigo da Cor_Tecido]<> "" and (SYS_CODIGO_CLIENTE="0388" or SYS_CODIGO_CLIENTE="0427")
             then CODNOVO=PegaCodigoRaiz(CODNOVO) 
          endif   
  EndIf
   
  [Codigo do Item]=CODNOVO 
EndScan
Do_It!

ClearAll

Copy "\\Sistemas\\Estoque\\EITEMP" "\\Sistemas\\Estoque\\Tmp_neI"
ClearAll
Delete "EITEMP" 

EndProc

;*******************************************************************************
;* Rotina para Agrupar os Itens                                                *
;*******************************************************************************
Proc AgrupaB()
SetDir "\\Sistemas\\Vendas"

If IsTable("\\sistemas\\vendas\\SITEMP")
   Then Delete "\\sistemas\\vendas\\SITEMP"
Endif
If IsTable("\\sistemas\\vendas\\SITEMPG")
   Then Delete "\\sistemas\\vendas\\SITEMPG"
Endif
                                                    
TabelaSI=PASTA+"NotaI"

Copy  TabelaSI "\\sistemas\\vendas\\SITEMP"
Create "\\sistemas\\vendas\\SITEMPG" Like "\\sistemas\\vendas\\notai"
{Tools} {Copy} {JustFamily} TypeIn "\\BASE\\Sistemas\\vendas\\notai" Enter TypeIn "\\sistemas\\vendas\\SITEMPG" Enter {Replace}

Coedit "SITEMP"
Scan
  CODNOVO=[Codigo do Item]                  
  If [Tipo do Item]="P" 
     Then CODNOVO=PegaCodigoRaiz(CODNOVO) 
  EndIf
  If [Tipo do Item]="S" And SYS_CODIGO_CLIENTE="0227" 
     Then CODNOVO=PegaCodigoRaiz(CODNOVO) 
  EndIf
  [Codigo do Item]=CODNOVO 
EndScan
Do_It!

Sort "\\sistemas\\vendas\\SITEMP" on "Codigo da Empresa","Numero do Documento","Serie do Documento","Item do Documento"
ClearAll

empant="**"
numant="**"
serant="**"

Coedit "SITEMPG","SITEMP"
Scan
  
  CODNOVO=[Codigo do Item]
   
  If [Codigo da Empresa  ]<>empant or
     [Numero do Documento]<>numant or
     [Serie do Documento ]<>serant
     Then GravaTemp()
          Seq=0
          Loop
  EndIf   
  
  If CODNOVO              <>iteant or
     [Preco Unitario     ]<>prvant 
     Then GravaTemp()
          Loop
  EndIf  

  Registro["Quantidade"              ]=Registro["Quantidade"          ]+[Quantidade          ]
  Registro["Preco Total"             ]=Registro["Preco Total"         ]+[Preco Total         ] 

  Registro["ICMS_BC"                 ]=Registro["ICMS_BC"             ]+[ICMS_BC             ]
  Registro["Valor do Icms"           ]=Registro["Valor do Icms"       ]+[Valor do Icms       ]

  Registro["ICMS_ST_BC"              ]=Registro["ICMS_ST_BC"          ]+[ICMS_ST_BC          ]
  Registro["ICMS_ST_Valor"           ]=Registro["ICMS_ST_Valor"       ]+[ICMS_ST_Valor       ]

  Registro["ICMS_CredSN_Valor"       ]=Registro["ICMS_CredSN_Valor"   ]+[ICMS_CredSN_Valor   ]

  Registro["IPI_BC"                  ]=Registro["IPI_BC"              ]+[IPI_BC              ]
  Registro["Valor do IPI"            ]=Registro["Valor do IPI"        ]+[Valor do IPI        ]

  Registro["PIS_BC"                  ]=Registro["PIS_BC"              ]+[PIS_BC              ]
  Registro["PIS_Valor"               ]=Registro["PIS_Valor"           ]+[PIS_Valor           ]

  Registro["COFINS_BC"               ]=Registro["COFINS_BC"           ]+[COFINS_BC           ]
  Registro["COFINS_Valor"            ]=Registro["COFINS_Valor"        ]+[COFINS_Valor        ]

  Registro["Valor Desconto Total"    ]=Registro["Valor Desconto Total"]+[Valor Desconto Total]
  Registro["Valor Frete Total"       ]=Registro["Valor Frete Total"   ]+[Valor Frete Total   ]
  Registro["Valor Seguro Total"      ]=Registro["Valor Seguro Total"  ]+[Valor Seguro Total  ]
  Registro["Valor OutDesp Total"     ]=Registro["Valor OutDesp Total" ]+[Valor OutDesp Total ]

  Registro["Volumes"                 ]=Registro["Volumes"             ]+[Volumes             ]

EndScan
Gravatemp()
Do_It!
ClearaLL

Add "\\Sistemas\\Vendas\\SITEMPG" "\\Sistemas\\Vendas\\NotaI"
ClearAll
Delete "SITEMP" "SITEMPG"
SetDir "\\Sistemas\\Cadastro"
EndProc

;********************************************************************************
Proc gravaTemp()
If empant<>"**"
   Then 
        seq=seq+1
        moveto "SITEMPG"
        End
        Down

        GetRecord "\\Sistemas\\Estoque\\Itens" iteant To Reg_Busca_Lookup
        If Not Retval
           Then If Registro["Descricao do Item"]<>"* * NF-e INUTILIZADA * *" 
                   Then Mensagem("Item "+iteant+" da nota "+numant+" nÆo cadastrado! Corrigir Situacao!")
                EndIf
                Registro["Codigo do Item"]=""
           Else Registro["Codigo do Item"]=iteant
                Registro["Descricao do Item"]=Reg_busca_lookup["Descricao do Item"]
        Endif

        Registro["Item do Documento"]=seq
        CopyFromArray Registro
        UnLockRecord
        moveto "SITEMP"
EndIf
ItemNovo()
EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
proc ItemNovo()

empant=[codigo da empresa  ]
Numant=[numero do documento]
serant=[Serie do Documento ]

iteant     = CODNOVO               
prvant     = [Preco Unitario]

Qtd   =0
descto=0    
Volume=0    

CopyToArray Registro
endproc

;*******************************************************************************
;* Rotina para gerar o log de registro por usu rio                             *
;*******************************************************************************
Proc Gera_Log()             

If VSDGDTREF<>BlankDate()
   Then AUX_DTREF = ", referente a "+StrVal(VSDGDTREF)
   Else AUX_DTREF = ""
EndIf

AUX_OPCAO = "" 
If VSDGOPCAO[1] Then AUX_OPCAO = AUX_OPCAO + "Clientes, "         EndIf 
If VSDGOPCAO[2] Then AUX_OPCAO = AUX_OPCAO + "Ficha Financeira, " EndIf
If VSDGOPCAO[3] Then AUX_OPCAO = AUX_OPCAO + "Produtos, "         EndIf
If VSDGOPCAO[4] Then AUX_OPCAO = AUX_OPCAO + "Tabela de Preco, "  EndIf
If VSDGOPCAO[5] Then AUX_OPCAO = AUX_OPCAO + "Transportador, "    EndIf
If VSDGOPCAO[6] Then AUX_OPCAO = AUX_OPCAO + "Entradas, "         EndIf
If VSDGOPCAO[7] Then AUX_OPCAO = AUX_OPCAO + "Saidas, "           EndIf
AUX_OPCAO = Rtrim(AUX_OPCAO)
If SubStr(AUX_OPCAO,Len(AUX_OPCAO),1)="," Then AUX_OPCAO = Substr(AUX_OPCAO,1,Len(AUX_OPCAO)-1) EndIf

Grava_LogEx("RestauDt")

EndProc ;Gera_Log()       

;*******************************************************************************
;* Rotina para Verificar o Nome do Arquivo                                     *
;*******************************************************************************          
Proc Verifica_Arquivo()
Private Array_Arquivo,wcs,ELinha,MSG

Aguarde("Aguarde, verificando o arquivo")          
          
;ARQ_ARJ="PT_TRD_"+CODEMP+"_"+
;        AlinhM(StrVal(Year(VSDGDTREF)),4) +
;        AlinhM(StrVal(Month(VSDGDTREF)),2)+
;        AlinhM(StrVal(Day(VSDGDTREF)),2)  +
;        ".ARJ"          
          
DynArray Array_Arquivo[]

Wcs=0
If IsFile(PrivDir()+"Dir.Txt")
   Then Deleta_Arquivo(PrivDir()+"Dir.Txt")
EndIf

Lista_DiretorioF(VSDGDRIVE+"\\","PT*.ARJ")

If Not IsFile(PrivDir()+"Dir.Txt")
   Then Sleep(1000)
        Return False
   Else Editor Open PrivDir()+"Dir.Txt"
        If ErrorCode()=27
           Then Sleep 1000
                Return False
        EndIf
        wcs=0
        While True
          Extrair_Linha()
          If IsBlank(ELinha) Then QuitLoop EndIf
          wcs=wcs+1
          Array_Arquivo[wcs] = Completa(SubStr(ELINHA,1,Len(ELINHA)-1),40," ")+" "
        EndWhile
        CancelEdit
EndIf     

ARQ_ARJ = ""
If DynArraySize(Array_Arquivo)=0
   Then Mensagem("Arquivo de importa‡Æo nÆo foi localizado!") 
        Return False
   Else MSG = ""
        For wi From 1 To DynArraySize(Array_Arquivo)
          If Upper(SubStr(Array_Arquivo[wi],1,2))="PT"   And
             Upper(SubStr(Array_Arquivo[wi],5,2))="RD"   And
             Upper(SubStr(Array_Arquivo[wi],8,4))=CODEMP And
             Upper(SubStr(Array_Arquivo[wi],13,4))=AlinhM(StrVal(Year(VSDGDTREF)),4)  And
             Upper(SubStr(Array_Arquivo[wi],17,2))=AlinhM(StrVal(Month(VSDGDTREF)),2) And
             Upper(SubStr(Array_Arquivo[wi],19,2))=AlinhM(StrVal(Day(VSDGDTREF)),2)
             Then ARQ_ARJ = Array_Arquivo[wi]
                  If PARAM_TRAVA_UNIDADE
                     Then If Upper(SubStr(Array_Arquivo[wi],4,1)) = SubStr(Upper(Directory()),1,1)
                             Then MSG = "NÆo ‚ poss¡vel importar o arquivo na unidade de origem!"
                             Else MSG = ""           
                          EndIf
                     Else QuitLoop     
                  EndIf
          EndIf
        EndFor
        If MSG<>""
           Then Mensagem(MSG)
                Return False
        EndIf   
        Release Vars Array_Arquivo,MSG
        If ARQ_ARJ=""
           Then Mensagem("Arquivo de importa‡Æo nÆo foi localizado!")
                Return False
        EndIf
EndIf

Return True                  
                  
EndProc ;Verifica_Arquivo()                

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] =   9: Temp=False
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case (Evento["KeyCode"] <= -104 And Evento["KeyCode"] >= -113) Or
           Evento["KeyCode"]  = -139 Or  Evento["KeyCode"]  = -140:
           SYS_TECLA_ACIONADA=Evento["KeyCode"]
           Seta_Tecla_Acionada()
           CancelDialog
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA2"      : Campo="NO"
            Case Campo="TG_DTREF"         : Campo="TG_EMPRESA2"            
            Case Campo="TG_DRIVES"        : Campo="TG_DTREF"
            Case Campo="TG_OPCOES"        : Campo="TG_DRIVES"
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESA2"
          EndSwitch
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA2" : Campo="TG_DTREF"
                    Case Campo="TG_DTREF"    : Campo="TG_DRIVES"
                    Case Campo="TG_DRIVES"   : Campo="TG_OPCOES"
                      VSDGDRIVE=ControlValue("TG_DRIVES")
                    Case Campo="TG_OPCOES"   : Campo="YES"
                  EndSwitch
          EndIf
   EndSwitch
EndIf
Switch
  Case Campo="TG_DTREF" :
       MSG_CAMPO="Informe a Data de Referˆncia"
  Case Campo="TG_OPCOES":
       MensagemCheckBoxes()
  Case Campo="TG_DRIVES":
       MSG_CAMPO="Selecione o drive de origem desejado !"
       TECLA=""+"=Selecionar  "
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
LimpAguarde()
SYS_VALOR()

If Not IsAssigned(SYS_CHAPA_USUARIO)   Then SYS_CHAPA_USUARIO="9999" EndIf

If SYS_CODIGO_CLIENTE = "0006" Or
   SYS_CODIGO_CLIENTE = "0027" Or
   SYS_CODIGO_CLIENTE = "0029" Or
   SYS_CODIGO_CLIENTE = "0222" Or
   SYS_CODIGO_CLIENTE = "0397" Or
   SYS_CODIGO_CLIENTE = "0428" Or
   SYS_CODIGO_CLIENTE = "0183" Or
   SYS_CODIGO_CLIENTE = "0415" Or
   SYS_CODIGO_CLIENTE = "0266"
   Then PARAM_TRAVA_UNIDADE = False
   Else PARAM_TRAVA_UNIDADE = True
EndIf
PARAM_CONFECCAO     = True

If PARAM_CONFECCAO And Search("X",Upper(SubStr(Directory(),1,2))) > 0
   Then ;---- Rotina para barrar a permissÆo de confec‡äes se tentar restaurar -
        If SYS_CLIENTE_CONFEC<>""     And    
          (SYS_CODIGO_CLIENTE = "0227" Or 
           SYS_CODIGO_CLIENTE = "0222" Or 
           SYS_CODIGO_CLIENTE = "0102" Or
           SYS_CODIGO_CLIENTE = "0266" Or 
           SYS_CODIGO_CLIENTE = "0342" Or
           SYS_CODIGO_CLIENTE = "0231")    
           Then Mensagem("Rotina espec¡fica para a Unidade V:\\") 
                PARAM_CONFECCAO = True
           Else PARAM_CONFECCAO = False
        EndIf
   Else PARAM_CONFECCAO = False     
EndIf     
;-------------------------------------------------------------------------------

If Not PARAM_CONFECCAO
   Then ;Implementado em 28/05
        If SYS_CLIENTE_CONFEC<>"" And SubStr(Upper(Directory()),1,2)="X:"
           Then SYS_CLIENTE_CONFEC=""
        EndIf   
   
        Array CODIGO[900]
        Array QUANTI[900]
        Array PRECOU[900]
        Array DESCTOT[900]
        Array VOLUME[900]
        ;Array ITEMDOC[900]
        
        Array AICMS[10]
        Array AIPI[10]
        
        Array VIICMS[10]
        Array VIIPI[10]
        
        Array BCICMS[10]
        Array BCIPI[10]
        
        Array RICMS[10]
        Array RIPI[10]
        
        
        Array VSDGOPCAO[7]
        VSDGOPCAO[1]=False
        VSDGOPCAO[2]=False
        VSDGOPCAO[3]=False
        VSDGOPCAO[4]=False
        VSDGOPCAO[5]=False
        VSDGOPCAO[6]=False
        VSDGOPCAO[7]=False
        
        DynArray Array_Drives[]
        SysInfo Drives To Array_Drives
        VSDGDRIVE=SubStr(Directory(),1,2)
        
        VSDGEMPRESA2=""
        VSDGDTREF  =Today()
        VSDGDTINI  =Today()-1
        VSDGDTFIM  =Today()-1
        
        While True
          ShowDialog "Importa‡„o da transa‡„o" Proc "SD_Dialog"
          Trigger "OPEN","ARRIVE"
          Key "F1","ENTER","ESC",
              -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
           @ 05,22   Height 14 Width 72
        
            Label  @ 00,00 "Empresa"  For "TG_EMPRESA2"
            Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA2"  To VSDGEMPRESA2
            Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP2
        
        
            Label  @ 02,00 "Data Referente" For "TG_DTREF"
            Accept @ 03,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTREF" To VSDGDTREF
        
            Label  @ 04,00 "Drives:" For "TG_DRIVES"
            PickDynArrayIndex @ 05,01 Height 4 width 33
             Columns 7
              Array_Drives
               Tag "TG_DRIVES"
                To VSDGDRIVE
        
            Label  @ 00,35 "Op‡äes de dados" For "TG_OPCOES"
            CheckBoxes @01,35 Height 7 Width 34 Tag "TG_OPCOES"
            "Clientes,Fornecedores,Outros  " to VSDGOPCAO[1],
            "Ficha Financeira+Obs Clientes" to VSDGOPCAO[2],
            "Produtos       " to VSDGOPCAO[3],
            "Tabela de Pre‡o" to VSDGOPCAO[4],
            "Transportador  " to VSDGOPCAO[5],
            "Entradas       " to VSDGOPCAO[6],
            "Saidas         " to VSDGOPCAO[7]
        
            Pushbutton @ 10,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
            Pushbutton @ 10,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue
                              
          EndDialog
          If Not RetVal Then QuitLoop EndIf
          
          IMPCLI=True 
          IMPCOM=True 
          IMPPRO=True 
          IMPTAB=True 
          IMPTRA=True
          IMPNFE=True 
          IMPNFS=True 
                     
          VSDGEMPRESA = VSDGEMPRESA2
          Gera_Log()     
                              
          Aguarde("Aguarde, Checando arquivo")
          DATAREF=AlinhM(StrVal(Day(VSDGDTREF)),2)+AlinhM(StrVal(Month(VSDGDTREF)),2)+SubStr(AlinhM(StrVal(Year(VSDGDTREF)),4),3,2)
          
          If VSDGEMPRESA2="" 
            Then CODEMP="0000" 
            Else CODEMP=VSDGEMPRESA2
          EndIf
          
          If Not Verifica_Arquivo()
             Then Loop 
          EndIf
          
          PASTA = PrivDir()+"TransfDt"
          If DirExists(PASTA)=0
             Then Cria_pasta(PASTA)
          EndIf
          PASTA = PASTA + "\\"
          
          Aguarde("Aguarde, excluindo arquivos temporarios")
          FileWrite        PrivDir()+"fundel.txt"  From  "DELT|"+PASTA+"*.DB"+"\n"
          FileWrite Append PrivDir()+"fundel.txt"  From  "DELT|"+PASTA+"*.MB"+"\n"
          ExecVisecf(PrivDir()+"fundel.txt","")
          Sleep 2000
          
          Aguarde("Aguarde, descompactando o arquivo "+ARQ_ARJ)
          Comando="c:\\vise\\Varj.exe e -y "+VSDGDRIVE+"\\"+ARQ_ARJ+" "+PASTA+"\\"
          Executa_Programa(comando)
          Sleep 3000          
          
          If VSDGOPCAO[1]=True Then IMPCLI=False CLIENTES()       EndIf
          If VSDGOPCAO[2]=True Then IMPCOM=False COMPL_CLIENTES() EndIf
          If VSDGOPCAO[3]=True Then IMPPRO=False PRODUTOS()       EndIf
          If VSDGOPCAO[4]=True Then IMPTAB=False TABPRECOS()      EndIf
          If VSDGOPCAO[5]=True Then IMPTRA=False TRANSPORTADOR()  EndIf
          If VSDGOPCAO[6]=True Then IMPNFE=False NENTRADAS()      EndIf
          If VSDGOPCAO[7]=True Then IMPNFS=False NSAIDAS()        EndIf
                                                            
          Aguarde("Aguarde, excluindo arquivos temporarios")
          FileWrite        PrivDir()+"fundel.txt"  From  "DELT|"+PASTA+"*.DB"+"\n"
          FileWrite Append PrivDir()+"fundel.txt"  From  "DELT|"+PASTA+"*.MB"+"\n"
          ExecVisecf(PrivDir()+"fundel.txt","")
          Sleep 1000
          
          LimpAguarde()
          If IMPCLI And IMPCOM And IMPPRO And IMPTAB And IMPTRA And IMPNFE And IMPNFS
             Then If SYS_CODIGO_CLIENTE<>"0164"
                     Then ARQ_IMP=VSDGDRIVE+"\\IMPORTADO_"+
                                  Substr(ARQ_ARJ,1,20)+"_"+
                                  Substr(Time(),1,2)  +
                                  Substr(Time(),4,2)  +
                                  Substr(Time(),7,2)  +
                                  ".ARJ"
                                  
                          Aguarde("Aguarde, renomeando arquivo importado")
                          ExecVise("REN "+VSDGDRIVE+"\\"+ARQ_ARJ+" \""+ARQ_IMP+"\"")
                          Sleep 1000                          
                  EndIf
                  msg="Opera‡„o Finalizada !"
             Else msg="Importa‡Æo nÆo realizada !// //Verifique a sele‡Æo dos dados desejados !// //Pacote "+ARQ_ARJ
          EndIf
          
          Aguarde("Aguarde, finalizando o processo")
          FileWrite        PrivDir()+"funcao.txt"  From  "DELT|"+PrivDir()+"fundel.ret"+"\n"
          FileWrite Append PrivDir()+"funcao.txt"  From  "DELT|"+PrivDir()+"funcmd.ret"+"\n"
          FileWrite Append PrivDir()+"funcao.txt"  From  "DELT|"+PrivDir()+"funcop.ret"+"\n"
          FileWrite Append PrivDir()+"funcao.txt"  From  "DELT|"+PrivDir()+"funren.ret"+"\n"
          ExecVisecf(PrivDir()+"funcao.txt","")
          
          LimpAguarde()
          Mensagem(msg)
        EndWhile
EndIf
ClearAll
Release Vars All
Release Procs All