====================================================================
CONFIRME A VERSÃO DO SISTEMA HIPER ANTES DE REALIZAR A MIGRAÇÃO ====================================================================

Neste passo a passo será ensinado como fazer a conversão do Banco de Dados do Sistema Hiper para o Etrade, é necessário que você se atente a versão do Hiper ( Legado ou WEB ) pois os comandos a serem utilizados são distintos.

É essencial que você já saiba como realizar a instalação do sistema ETrade antes de fazer o procedimento de conversão de Banco de Dados, para mais informações de como instalar o Sistema ETrade clique AQUI

ANEXANDO O BANCO DE DADOS NO SQL MANAGEMENT STUDIO

Instale o SQL Management Studio, baixe AQUI caso ainda não tenha instalado, lembrando que você também pode usar qualquer outro utilitário de banco sql server para o processo porém o roteiro foi feito seguindo o SQL Management Studio 2014.

Com o Studio já instalado, crie uma pasta no diretório *C:* e jogue os dois arquivos do banco do hiper na pasta

Agora abra o Studio, clique na opção Banco de Dados com o botão direito e vá em anexar, encontre o diretório e anexe o banco de dados

Note abaixo que a instância é SQL2014 se colocar a instância do Hiper vai dar erro!

Note acima que a instância é SQL2014 se colocar a instância do Hiper vai dar erro!

CRIANDO FUNÇÃO PARA ELIMINAR OS CARACTERES ESPECIAIS

Crie uma nova consulta no Hiper copie a query abaixo, cole na nova consulta gerada e vá em executar.

CREATE FUNCTION [dbo].[fncRemove_Acentuacao2](
    @String VARCHAR(MAX)
)
RETURNS VARCHAR(MAX)
AS
BEGIN
    
    /****************************************************************************************************************/
    /** RETIRA ACENTUAÇÃO DAS VOGAIS **/
    /****************************************************************************************************************/
    SET @String = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@String,'á','a'),'à','a'),'â','a'),'ã','a'),'ä','a')
    SET @String = REPLACE(REPLACE(REPLACE(REPLACE(@String,'é','e'),'è','e'),'ê','e'),'ë','e')
    SET @String = REPLACE(REPLACE(REPLACE(REPLACE(@String,'í','i'),'ì','i'),'î','i'),'ï','i')
    SET @String = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@String,'ó','o'),'ò','o'),'ô','o'),'õ','o'),'ö','o')
    SET @String = REPLACE(REPLACE(REPLACE(REPLACE(@String,'ú','u'),'ù','u'),'û','u'),'ü','u')
    
    /****************************************************************************************************************/
    /** RETIRA ACENTUAÇÃO DAS CONSOANTES **/
    /****************************************************************************************************************/
    SET @String = REPLACE(@String,'ý','y')
    SET @String = REPLACE(@String,'ñ','n')
    SET @String = REPLACE(@String,'ç','c')
    
    RETURN UPPER(@String)
 
END
GO

CRIANDO CSV DE PRODUTOS

Com a função já criada, crie uma nova consulta no studio para consultarmos os produtos a serem importados ATENÇÃO A VERSÃO DO HIPER )

Caso o cliente possua mais de uma Filial ( ou estoque ) você pode alterar ( incrementando ) mais linhas na query de acordo com a quantidade de filiais e estoque que você precisa na conversão, você vai acrescentar como no exemplo abaixo que estamos trazendo o estoque relacionado a loja 3. Para outras filiais você vai substituir o número 3 na query ( em endereço estoque ) pelo número da filial que você quer migrar...lembrando que é necessário adicionar esse novo registro no final da query de consulta de produtos.

isnull(cast( (select se.quantidade from saldo_estoque se where se.id_produto=t1.id_produto and se.id_endereco_estoque=3)  as numeric(7,0)),0) as "Estoque Filial 3"

VERSÃO WEB:

select 
t1.codigo as "codigo",
upper([dbo].[fncRemove_Acentuacao2](t1.nome)) as "nome",
'N' as "tipo",
iif (t2.id_situacao_tributaria_simples_nacional=500,2,iif (t2.id_situacao_tributaria_simples_nacional=900,3,iif (t2.id_situacao_tributaria_simples_nacional=103,3,1))) as "Classe de Imposto",
(replace(t1.id_ncm,'.','')) as "NCM",
iif (t3.sigla='KG','KG',iif(t3.sigla='CX','CX',iif(t3.sigla='MT','M',iif(t3.sigla='PC','PC',iif(t3.sigla='LT','LITRO',iif(t3.sigla='JG','JOGO','UNID')))))) AS "UNIDADE",
CAST(t1.preco_custo AS MONEY) " Preço Custo",
CAST(t1.preco_venda AS MONEY) " Preço Venda",
ISNULL((select max(codigo_barras) from produto_sinonimo as tpr where tpr.id_produto=t1.id_produto and len(codigo_barras)<13),'') as "codigo fab1",
t1.referencia_interna_produto as "cod fab 2",
upper([dbo].[fncRemove_Acentuacao2](isnull(t4.nome,''))) as "classe",
isnull((select max(codigo_barras) from produto_sinonimo as tpr where tpr.id_produto=t1.id_produto and len(codigo_barras)=13 ),'') as "ean",
upper([dbo].[fncRemove_Acentuacao2](isnull(t5.nome,''))) as "Marca",
(select codigo_barras+',' as [text()] from produto_sinonimo as ps where ps.id_produto=t1.id_produto for xml path('')) as "Codigos Adicionais",
isnull(cast( (select se.quantidade from saldo_estoque se where se.id_produto=t1.id_produto and se.id_endereco_estoque=1)  as numeric(7,0)),0) as "Estoque Filial 1",
isnull(cast( (select se.quantidade from saldo_estoque se where se.id_produto=t1.id_produto and se.id_endereco_estoque=2)  as numeric(7,0)),0) as "Estoque Filial 2",
isnull(cast( (select se.quantidade from saldo_estoque se where se.id_produto=t1.id_produto and se.id_endereco_estoque=3)  as numeric(7,0)),0) as "Estoque Filial 3"


from produto t1
left join regra_tributacao_icms_personalizada t2
on t1.id_produto=t2.id_produto
left join unidade_medida t3
on t1.id_unidade_medida=t3.id_unidade_medida
left join hierarquia_produto t4
on t1.id_hierarquia_produto=t4.id_hierarquia_produto
left join marca_produto t5
on t1.id_marca_produto=t5.id_marca_produto
order by codigo

VERSÃO LEGADO:

select 
t1.id_produto as "codigo",
upper([dbo].[fncRemove_Acentuacao2](t1.nome)) as "nome",
'N' as "tipo",
iif (t6.codigo_situacao_operacao_simples_nacional=500,2,iif (t6.codigo_situacao_operacao_simples_nacional=900,3,iif (t6.codigo_situacao_operacao_simples_nacional=103,3,1))) as "Classe de Imposto",
(replace(t1.id_ncm,'.','')) as "NCM",
iif (t3.sigla='KG','KG',iif(t3.sigla='CX','CX',iif(t3.sigla='MT','M',iif(t3.sigla='PC','PC',iif(t3.sigla='LT','LITRO',iif(t3.sigla='JG','JOGO','UNID')))))) AS "UNIDADE",
CAST(t1.preco_custo AS MONEY) " Preço Custo",
CAST(t1.preco_venda AS MONEY) " Preço Venda",
ISNULL((select max(codigo_barras) from produto_sinonimo as tpr where tpr.id_produto=t1.id_produto and len(codigo_barras)<13),'') as "codigo fab1",
t1.referencia_interna_produto as "cod fab 2",
upper([dbo].[fncRemove_Acentuacao2](isnull(t4.nome,''))) as "classe",
isnull((select max(codigo_barras) from produto_sinonimo as tpr where tpr.id_produto=t1.id_produto and len(codigo_barras)=13 ),'') as "ean",
upper([dbo].[fncRemove_Acentuacao2](isnull(t5.nome,''))) as "Marca",
(select codigo_barras+',' as [text()] from produto_sinonimo as ps where ps.id_produto=t1.id_produto for xml path('')) as "Codigos Adicionais",
isnull(cast( (select se.quantidade from saldo_estoque se where se.id_produto=t1.id_produto and se.id_endereco_estoque=1)  as numeric(7,0)),0) as "Estoque Filial 1",
isnull(cast( (select se.quantidade from saldo_estoque se where se.id_produto=t1.id_produto and se.id_endereco_estoque=2)  as numeric(7,0)),0) as "Estoque Filial 2",
isnull(cast( (select se.quantidade from saldo_estoque se where se.id_produto=t1.id_produto and se.id_endereco_estoque=3)  as numeric(7,0)),0) as "Estoque Filial 3"


from produto t1
inner join regra_tributacao_produto t2 on t1.id_produto = t2.id_produto
inner join situacao_tributaria_simples_nacional t6 on t2.id_situacao_tributaria_simples_nacional=t6.id_situacao_tributaria_simples_nacional
left join unidade_medida t3
on t1.id_unidade_medida=t3.id_unidade_medida
left join hierarquia_produto t4
on t1.id_hierarquia_produto=t4.id_hierarquia_produto
left join marca_produto t5
on t1.id_marca_produto=t5.id_marca_produto
order by codigo

Copie, cole e execute a consulta de produtos no Studio

Seleciona todos os registros ( com o cabeçalho ) e copie

Abra o excel transforme todo o excel em TEXTO

Cole os registros copiados no Excel

Salve o arquivo em .CSV

CRIANDO CSV DE CLIENTES E FORNECEDORES

Crie uma nova consulta no studio para consultarmos os clientes/fornecedores a serem importados ATENÇÃO A VERSÃO DO HIPER )

VERSÃO WEB:

SELECT 
t1.codigo as "Codigo",
upper([dbo].[fncRemove_Acentuacao2](t1.nome)) as "Razao Social",
CONCAT(t2.cpf,t3.cnpj) AS 'CNPJ',
CONCAT(t2.rg,t3.ie) AS 'IE',
upper([dbo].[fncRemove_Acentuacao2](t1.logradouro)) as "Endereço",
t1.numero_endereco as "Numero",
upper(t1.complemento) as "Complemento",
upper([dbo].[fncRemove_Acentuacao2](t1.bairro)) as "Bairro",
isnull(upper([dbo].[fncRemove_Acentuacao2](t4.nome)),'') as "Cidade",
isnull(t4.uf,'') as "UF",
t1.cep as "Cep",
isnull(t1.fone_primario_ddd + t1.fone_primario_numero,'') as "tel 1",
isnull(t1.fone_secundario_ddd + t1.fone_secundario_numero,'') as "tel 2",
'' as "Aniversario",
IIF (t1.flag_cliente=1,'C','F') as "Cliente ou Fornecedor",
IIF (T1.TIPO_ENTIDADE=2,'J','F') as "Fisico ou Juridico",
isnull(upper(([dbo].[fncRemove_Acentuacao2](IIF(t3.nome_fantasia='',T1.NOME,T3.NOME_FANTASIA)))),'') as "Fantasia",
upper(t1.email) as "Email",
'' as "contato",
'' as "obs",
'' as "email nfe",
'' as "nome contador",
'' as "email contador",
'' as "limite de Credito"

FROM entidade t1
left join pessoa_fisica t2
on t1.id_entidade=t2.id_entidade
left join pessoa_juridica t3
on t1.id_entidade=t3.id_entidade
left join cidade t4
on t1.id_cidade=t4.id_cidade
order by t1.codigo

VERSÃO LEGADO:

SELECT 
t1.id_entidade as "Codigo",
upper([dbo].[fncRemove_Acentuacao2](t1.nome)) as "Razao Social",
CONCAT(t2.cpf,t3.cnpj) AS 'CNPJ',
CONCAT(t2.rg,t3.ie) AS 'IE',
upper([dbo].[fncRemove_Acentuacao2](t1.logradouro)) as "Endereço",
t1.numero_endereco as "Numero",
upper(t1.complemento) as "Complemento",
upper([dbo].[fncRemove_Acentuacao2](t1.bairro)) as "Bairro",
isnull(upper([dbo].[fncRemove_Acentuacao2](t4.nome)),'') as "Cidade",
isnull(t4.uf,'') as "UF",
t1.cep as "Cep",
isnull(t1.fone_primario_ddd + t1.fone_primario_numero,'') as "tel 1",
isnull(t1.fone_secundario_ddd + t1.fone_secundario_numero,'') as "tel 2",
'' as "Aniversario",
IIF (t1.flag_cliente=1,'C','F') as "Cliente ou Fornecedor",
IIF (T1.TIPO_ENTIDADE=2,'J','F') as "Fisico ou Juridico",
isnull(upper(([dbo].[fncRemove_Acentuacao2](IIF(t3.nome_fantasia='',T1.NOME,T3.NOME_FANTASIA)))),'') as "Fantasia",
upper(t1.email) as "Email",
'' as "contato",
'' as "obs",
'' as "email nfe",
'' as "nome contador",
'' as "email contador",
'' as "limite de Credito"

FROM entidade t1
left join pessoa_fisica t2
on t1.id_entidade=t2.id_entidade
left join pessoa_juridica t3
on t1.id_entidade=t3.id_entidade
left join cidade t4
on t1.id_cidade=t4.id_cidade
order by t1.id_entidade

Copie, cole e execute a consulta de produtos no Studio

Seleciona todos os registros ( com o cabeçalho ) e copie

Abra o excel transforme todo o excel em TEXTO

Cole os registros copiados no Excel

Salve o arquivo em .CSV

CRIANDO CSV DO FINANCEIRO EM ABERTO

disponível apenas para versão legado

Crie uma nova consulta no studio

CONTAS A RECEBER:

SELECT
'R' as "Tipo",
entidade.id_entidade as "cliente",
replace(convert(varchar,documento_receber.data_vencimento,104),'.','/') as "vencimento",
replace(documento_receber.saldo,'.',',') as "valor",
'' as "pagamento",
'' as "valor pago",
documento_receber.numero_documento_receber as "descricao",
'999' as "Plano de Conta"

FROM documento_receber INNER JOIN entidade ON documento_receber.id_entidade=entidade.id_entidade
where documento_receber.saldo<>'0.00'
order by data_vencimento

Copie, cole e execute a consulta de produtos no Studio

Seleciona todos os registros ( com o cabeçalho ) e copie

Abra o excel transforme todo o excel em TEXTO

Cole os registros copiados no Excel

Salve o arquivo em .CSV

Crie uma nova consulta no studio

CONTAS A PAGAR:

SELECT
'P' as "Tipo",
entidade.id_entidade as "Fornecedor",
replace(convert(varchar,documento_pagar.data_vencimento,104),'.','/') as "vencimento",
replace(documento_pagar.saldo,'.',',') as "valor",
'' as "pagamento",
'' as "valor pago",
documento_pagar.numero_documento_pagar as "descricao",
'998' as "Plano de Conta"


FROM documento_pagar INNER JOIN entidade ON documento_pagar.id_entidade=entidade.id_entidade
where documento_pagar.saldo<>'0.00'
order by data_vencimento

Copie, cole e execute a consulta de produtos no Studio

Seleciona todos os registros ( com o cabeçalho ) e copie

10º Abra o excel transforme todo o excel em TEXTO

11º Cole os registros copiados no Excel

12º Salve o arquivo em .CSV

IMPORTANDO O CSV DE PRODUTOS

Com o ETrade já instalado, vá em outros e abra o importararquivotexto

Selecione a primeira opção ( Produtos ).

Vá em localizar e importe o CSV

Com os produtos já importados, vá associando as colunas aos campos relacionados

Preste atenção para não associar campos errados.

Caso venha na query alguma coluna na qual você não queira importar ( como o estoque de outras filiais ) é só não associar a coluna ao campo relacionado que na importação a coluna será ignorada.

Após associar todos os campos e revisar, vá em importar para concluir a importação

É comum após a importação apresentar algumas mensagens de erro em algumas linhas, na maioria das vezes isso não impede a importação...verifique os produtos no Etrade ao concluir a importação

Quer saber mais sobre a tela de importação de produtos?

Configura no LINK

IMPORTANDO O CSV DE CLIENTES E FORNECEDORES

Em outros e abra o importararquivotexto

Selecione a segunda opção ( Clientes ).

Vá em localizar e importe o CSV

Confira no Etrade se os clientes e fornecedores foram importados corretamente

IMPORTANDO O CSV DO CONTAS A PAGAR E RECEBER

É necessário criar no Etrade o plano de conta que será associado tanto o contas a pagar como o contas a receber.

Abra o ETrade, vá Financeiro, Recebíveis, Abra o Plano de Conta Nível 1, e crie um plano de conta com código 999 e associado ao Plano de Conta 2 com código 2 ( Receita )

Crie um plano de conta com código 998 e associado ao Plano de Conta 2 com código 1 ( Despesa)

3 Em outros e abra o importararquivotexto

4 Seleciona a terceira opção ( Recebiveis/Contasapagar)

5 Certifique-se se os clientes e fornecedores já foram importados no sistema

6 Importe separadamente os dois arquivos gerados ( contas a pagar e a receber )

PARABÉNS!tongue-out

VOCÊ CHEGOU AO FIM DA MIGRAÇÃO ! APROVEITE O ZERO BUG cool