Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- using Interop.ErpBS900;
- using Interop.GcpBE900;
- namespace testeArquivo
- {
- class Program
- {
- // Motores de integração
- static ErpBS Motor = new ErpBS();
- static Interop.GcpBE900.GcpBECliente MotorCliente;
- static Interop.GcpBE900.GcpBEArtigo MotorArtigo;
- static Interop.GcpBE900.GcpBEArtigoMoeda MotorArtigoMoeda;
- static Interop.GcpBE900.GcpBEDocumentoVenda Doc;
- static List<Cliente> dadosCli = new List<Cliente>();
- static List<Artigo> dadosArt = new List<Artigo>();
- static List<Venda> dadosVenda = new List<Venda>();
- static int clientesNovos, artigosNovos, vendasNovas;
- //==========leitura dos ficheiros ==================================
- static List<Artigo> lerFicheiroArtigo()
- {
- List<Artigo> artigos = new List<Artigo>();
- var lines = File.ReadAllLines("artigos.csv");
- Artigo artigo = new Artigo();
- foreach (var item in lines)
- {
- var columns = item.Replace("\"", "").Split(';');
- artigo = new Artigo()
- {
- ArtigoCod = columns[0].Trim(),
- Descricao = columns[1].Trim(),
- TipoArtigo = (columns[2].Trim()),
- Unidade = columns[3].Trim(),
- Familia = columns[4].Trim(),
- SubFamilia = columns[5].Trim(),
- Marca = columns[6].Trim(),
- Modelo = columns[7].Trim(),
- IPC = (columns[8].Trim()),
- Moeda = columns[9].Trim(),
- //PVP1 = double.Parse(columns[10].Trim())
- };
- artigos.Add(artigo);
- //verificar se existe no erp
- //se existir, ignora, não podes mudar nem as descrições dos artigos a partir de Jan 2019
- //se não existir, cria.
- }
- return artigos;
- }
- static List<Cliente> lerFicheiroCliente()
- {
- List<Cliente> clientes = new List<Cliente>();
- Cliente cliente = new Cliente();
- var lines = File.ReadAllLines("clientes.csv");
- foreach (var item in lines)
- {
- var columns = item.Replace("\"", "").Split(';');
- cliente = new Cliente()
- {
- ClienteCod = columns[0].Trim(),
- Nome = columns[1].Trim(),
- Fac_morada = columns[2].Trim(),
- Fac_local = columns[3].Trim(),
- Pais = columns[4].Trim(),
- Idioma = columns[5].Trim(),
- Fac_telefone = columns[6].Trim(),
- Desconto = double.Parse(columns[7].Trim()),
- Moeda = columns[8].Trim(),
- CondPag = columns[9].Trim(),
- ModoPag = columns[10].Trim()
- };
- clientes.Add(cliente);
- //verificar se existe no erp
- //se existir, ignora, não podes mudar nem as descrições dos artigos a partir de Jan 2019
- //se não existir, cria.
- }
- return clientes;
- }
- static List<Venda> lerFicheiroVenda()
- {
- List<Venda> vendas = new List<Venda>();
- Venda venda = new Venda();
- var lines = File.ReadAllLines("vendas.csv");
- foreach (var item in lines)
- {
- var columns = item.Replace("\"", "").Split(';');
- venda = new Venda()
- {
- Entidade = columns[0].Trim(),
- TipoDoc = columns[1].Trim(),
- Serie = columns[2].Trim(),
- NumDocExt = (columns[3].Trim()),
- NumDoc = int.Parse(columns[4].Trim()),
- CondPag = columns[5].Trim(),
- ModoPag = columns[6].Trim(),
- Moeda = columns[7].Trim(),
- DataDoc = DateTime.Parse(columns[8].Trim()),
- DataVenc = DateTime.Parse(columns[9].Trim()),
- Cambio = int.Parse(columns[10].Trim()),
- DescontoCli = float.Parse(columns[11].Replace(" ","").Replace(",",".").Trim()),
- DescontoFin = float.Parse(columns[12].Replace(" ", "").Replace(",", ".").Trim()),
- Artigo = columns[13].Trim(),
- Descricao = columns[14].Trim(),
- CodIva = columns[15].Trim(),
- Quantidade = float.Parse(columns[16].Trim()),
- Unidade = columns[17].Trim(),
- PCU = double.Parse(columns[18].Trim()),
- };
- vendas.Add(venda);
- }
- return vendas;
- }
- //===================================================================
- //============importação =================================
- static void importaCliente(List<Cliente> clientes)
- {
- try
- {
- foreach (var item in clientes)
- {
- MotorCliente = new Interop.GcpBE900.GcpBECliente();
- if (!Motor.Comercial.Clientes.Existe(item.ClienteCod))
- {
- MotorCliente.set_Cliente(item.ClienteCod);
- MotorCliente.set_Nome(item.Nome);
- MotorCliente.set_NumContribuinte("000910293019");
- MotorCliente.set_Morada(item.Fac_morada);
- MotorCliente.set_Localidade(item.Fac_local);
- MotorCliente.set_Pais(item.Pais);
- MotorCliente.set_Idioma(item.Idioma);
- MotorCliente.set_Telefone(item.Fac_telefone);
- MotorCliente.set_Desconto((float)item.Desconto);
- MotorCliente.set_Moeda(item.Moeda);
- MotorCliente.set_CondPag(item.CondPag);
- MotorCliente.set_ModoPag(item.ModoPag);
- clientesNovos += 1;
- Motor.Comercial.Clientes.Actualiza(MotorCliente);
- }
- }
- MotorCliente = null;
- Console.WriteLine("Foram criados " + clientesNovos + " clientes");
- }
- catch (Exception e)
- {
- throw(e);
- }
- }
- static void importaArtigo(List<Artigo> artigos)
- {
- try
- {
- foreach (var item in artigos)
- {
- MotorArtigo = new Interop.GcpBE900.GcpBEArtigo();
- if (!Motor.Comercial.Artigos.Existe(item.ArtigoCod))
- {
- MotorArtigo.set_Artigo(item.ArtigoCod);
- MotorArtigo.set_Descricao(item.Descricao);
- MotorArtigo.set_TipoArtigo(item.TipoArtigo);
- MotorArtigo.set_UnidadeBase(item.Unidade);
- MotorArtigo.set_Familia(item.Familia);
- MotorArtigo.set_SubFamilia(item.SubFamilia);
- MotorArtigo.set_Marca(item.Marca);
- MotorArtigo.set_Modelo(item.Modelo);
- MotorArtigo.set_IVA(item.IPC);
- artigosNovos += 1;
- MotorArtigoMoeda = new Interop.GcpBE900.GcpBEArtigoMoeda();
- MotorArtigoMoeda.set_Artigo(item.ArtigoCod);
- MotorArtigoMoeda.set_Moeda(item.Moeda);
- MotorArtigoMoeda.set_Unidade(item.Unidade);
- Motor.Comercial.Artigos.Actualiza(MotorArtigo);
- Motor.Comercial.ArtigosPrecos.Actualiza(MotorArtigoMoeda);
- }
- }
- MotorArtigo = null;
- MotorArtigoMoeda = null;
- Console.WriteLine("Foram criados " + artigosNovos + " artigos");
- }
- catch (Exception e)
- {
- throw(e);
- Console.WriteLine(e.Message);
- }
- }
- static void importaVendas(List<Venda> vendas)
- {
- try
- {
- foreach (var item in vendas)
- {
- Doc = new Interop.GcpBE900.GcpBEDocumentoVenda();
- Doc.set_Tipodoc(item.TipoDoc);
- Doc.set_Serie(item.Serie);
- Doc.set_DataDoc(item.DataDoc);
- Doc.set_DataVenc(item.DataVenc);
- Doc.set_Entidade(item.Entidade);
- Doc.set_EntidadeFac(item.Entidade);
- Doc.set_Referencia(item.NumDocExt);
- Doc.set_TipoEntidade("C");
- Doc = Motor.Comercial.Vendas.PreencheDadosRelacionados(Doc);
- Doc.set_DataDoc(item.DataDoc);
- foreach (var itemv in vendas)
- {
- Doc = Motor.Comercial.Vendas.AdicionaLinha(Doc, item.Artigo, item.Quantidade, null, null, item.PCU);
- var Linhas = Doc.get_Linhas();
- Linhas[Linhas.NumItens].set_Descricao(item.Descricao);
- Linhas[Linhas.NumItens].set_CodIva(item.CodIva);
- Linhas[Linhas.NumItens].set_Unidade(item.Unidade);
- }
- Motor.Comercial.Vendas.PreencheDadosRelacionados(Doc);
- Doc.set_Moeda(item.Moeda);
- Doc.set_Cambio(item.Cambio);
- Doc.set_CambioMBase(item.Cambio);
- Doc.set_CambioMAlt(item.Cambio);
- Doc.set_DataDoc(item.DataDoc);
- Doc.set_DataVenc(item.DataVenc);
- try
- {
- Motor.IniciaTransaccao();
- vendasNovas += 1;
- Motor.Comercial.Vendas.Actualiza(Doc);
- Motor.TerminaTransaccao();
- Console.WriteLine("Foram importado "+ vendasNovas+" doc. de venda.");
- }
- catch (Exception err)
- {
- Motor.DesfazTransaccao();
- throw (err);
- }
- }
- }
- catch (Exception e)
- {
- throw (e);
- Console.WriteLine(e.Message);
- }
- }
- //=====================================================================
- static void abreEmpresaTrabalho()
- {
- try
- {
- Motor.AbreEmpresaTrabalho(0,"DEMO","nventura","angconsul.11");
- Console.WriteLine("Empresa aberta com sucesso!");
- }
- catch (Exception e)
- {
- throw(e);
- }
- }
- static void Main(string[] args)
- {
- abreEmpresaTrabalho();
- dadosCli = lerFicheiroCliente();
- importaCliente(dadosCli);
- dadosArt = lerFicheiroArtigo();
- importaArtigo(dadosArt);
- dadosVenda = lerFicheiroVenda();
- importaVendas(dadosVenda);
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement