Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.62 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. using Interop.ErpBS900;
  8. using Interop.GcpBE900;
  9.  
  10.  
  11. namespace testeArquivo
  12. {
  13. class Program
  14. {
  15. // Motores de integração
  16. static ErpBS Motor = new ErpBS();
  17. static Interop.GcpBE900.GcpBECliente MotorCliente;
  18. static Interop.GcpBE900.GcpBEArtigo MotorArtigo;
  19. static Interop.GcpBE900.GcpBEArtigoMoeda MotorArtigoMoeda;
  20. static Interop.GcpBE900.GcpBEDocumentoVenda Doc;
  21.  
  22. static List<Cliente> dadosCli = new List<Cliente>();
  23. static List<Artigo> dadosArt = new List<Artigo>();
  24. static List<Venda> dadosVenda = new List<Venda>();
  25. static int clientesNovos, artigosNovos, vendasNovas;
  26. //==========leitura dos ficheiros ==================================
  27. static List<Artigo> lerFicheiroArtigo()
  28. {
  29. List<Artigo> artigos = new List<Artigo>();
  30. var lines = File.ReadAllLines("artigos.csv");
  31. Artigo artigo = new Artigo();
  32. foreach (var item in lines)
  33. {
  34. var columns = item.Replace("\"", "").Split(';');
  35. artigo = new Artigo()
  36. {
  37. ArtigoCod = columns[0].Trim(),
  38. Descricao = columns[1].Trim(),
  39. TipoArtigo = (columns[2].Trim()),
  40. Unidade = columns[3].Trim(),
  41. Familia = columns[4].Trim(),
  42. SubFamilia = columns[5].Trim(),
  43. Marca = columns[6].Trim(),
  44. Modelo = columns[7].Trim(),
  45. IPC = (columns[8].Trim()),
  46. Moeda = columns[9].Trim(),
  47. //PVP1 = double.Parse(columns[10].Trim())
  48. };
  49. artigos.Add(artigo);
  50. //verificar se existe no erp
  51. //se existir, ignora, não podes mudar nem as descrições dos artigos a partir de Jan 2019
  52. //se não existir, cria.
  53. }
  54. return artigos;
  55. }
  56. static List<Cliente> lerFicheiroCliente()
  57. {
  58. List<Cliente> clientes = new List<Cliente>();
  59.  
  60. Cliente cliente = new Cliente();
  61. var lines = File.ReadAllLines("clientes.csv");
  62. foreach (var item in lines)
  63. {
  64. var columns = item.Replace("\"", "").Split(';');
  65. cliente = new Cliente()
  66. {
  67. ClienteCod = columns[0].Trim(),
  68. Nome = columns[1].Trim(),
  69. Fac_morada = columns[2].Trim(),
  70. Fac_local = columns[3].Trim(),
  71. Pais = columns[4].Trim(),
  72. Idioma = columns[5].Trim(),
  73. Fac_telefone = columns[6].Trim(),
  74. Desconto = double.Parse(columns[7].Trim()),
  75. Moeda = columns[8].Trim(),
  76. CondPag = columns[9].Trim(),
  77. ModoPag = columns[10].Trim()
  78. };
  79. clientes.Add(cliente);
  80. //verificar se existe no erp
  81. //se existir, ignora, não podes mudar nem as descrições dos artigos a partir de Jan 2019
  82. //se não existir, cria.
  83. }
  84. return clientes;
  85. }
  86. static List<Venda> lerFicheiroVenda()
  87. {
  88. List<Venda> vendas = new List<Venda>();
  89. Venda venda = new Venda();
  90. var lines = File.ReadAllLines("vendas.csv");
  91. foreach (var item in lines)
  92. {
  93. var columns = item.Replace("\"", "").Split(';');
  94. venda = new Venda()
  95. {
  96. Entidade = columns[0].Trim(),
  97. TipoDoc = columns[1].Trim(),
  98. Serie = columns[2].Trim(),
  99. NumDocExt = (columns[3].Trim()),
  100. NumDoc = int.Parse(columns[4].Trim()),
  101. CondPag = columns[5].Trim(),
  102. ModoPag = columns[6].Trim(),
  103. Moeda = columns[7].Trim(),
  104. DataDoc = DateTime.Parse(columns[8].Trim()),
  105. DataVenc = DateTime.Parse(columns[9].Trim()),
  106. Cambio = int.Parse(columns[10].Trim()),
  107. DescontoCli = float.Parse(columns[11].Replace(" ","").Replace(",",".").Trim()),
  108. DescontoFin = float.Parse(columns[12].Replace(" ", "").Replace(",", ".").Trim()),
  109. Artigo = columns[13].Trim(),
  110. Descricao = columns[14].Trim(),
  111. CodIva = columns[15].Trim(),
  112. Quantidade = float.Parse(columns[16].Trim()),
  113. Unidade = columns[17].Trim(),
  114. PCU = double.Parse(columns[18].Trim()),
  115. };
  116. vendas.Add(venda);
  117.  
  118. }
  119. return vendas;
  120. }
  121. //===================================================================
  122.  
  123. //============importação =================================
  124.  
  125. static void importaCliente(List<Cliente> clientes)
  126. {
  127. try
  128. {
  129. foreach (var item in clientes)
  130. {
  131. MotorCliente = new Interop.GcpBE900.GcpBECliente();
  132. if (!Motor.Comercial.Clientes.Existe(item.ClienteCod))
  133. {
  134. MotorCliente.set_Cliente(item.ClienteCod);
  135. MotorCliente.set_Nome(item.Nome);
  136. MotorCliente.set_NumContribuinte("000910293019");
  137. MotorCliente.set_Morada(item.Fac_morada);
  138. MotorCliente.set_Localidade(item.Fac_local);
  139. MotorCliente.set_Pais(item.Pais);
  140. MotorCliente.set_Idioma(item.Idioma);
  141. MotorCliente.set_Telefone(item.Fac_telefone);
  142. MotorCliente.set_Desconto((float)item.Desconto);
  143. MotorCliente.set_Moeda(item.Moeda);
  144. MotorCliente.set_CondPag(item.CondPag);
  145. MotorCliente.set_ModoPag(item.ModoPag);
  146. clientesNovos += 1;
  147. Motor.Comercial.Clientes.Actualiza(MotorCliente);
  148. }
  149. }
  150. MotorCliente = null;
  151. Console.WriteLine("Foram criados " + clientesNovos + " clientes");
  152. }
  153. catch (Exception e)
  154. {
  155. throw(e);
  156. }
  157. }
  158.  
  159. static void importaArtigo(List<Artigo> artigos)
  160. {
  161. try
  162. {
  163. foreach (var item in artigos)
  164. {
  165. MotorArtigo = new Interop.GcpBE900.GcpBEArtigo();
  166. if (!Motor.Comercial.Artigos.Existe(item.ArtigoCod))
  167. {
  168. MotorArtigo.set_Artigo(item.ArtigoCod);
  169. MotorArtigo.set_Descricao(item.Descricao);
  170. MotorArtigo.set_TipoArtigo(item.TipoArtigo);
  171. MotorArtigo.set_UnidadeBase(item.Unidade);
  172. MotorArtigo.set_Familia(item.Familia);
  173. MotorArtigo.set_SubFamilia(item.SubFamilia);
  174. MotorArtigo.set_Marca(item.Marca);
  175. MotorArtigo.set_Modelo(item.Modelo);
  176. MotorArtigo.set_IVA(item.IPC);
  177. artigosNovos += 1;
  178. MotorArtigoMoeda = new Interop.GcpBE900.GcpBEArtigoMoeda();
  179. MotorArtigoMoeda.set_Artigo(item.ArtigoCod);
  180. MotorArtigoMoeda.set_Moeda(item.Moeda);
  181. MotorArtigoMoeda.set_Unidade(item.Unidade);
  182. Motor.Comercial.Artigos.Actualiza(MotorArtigo);
  183. Motor.Comercial.ArtigosPrecos.Actualiza(MotorArtigoMoeda);
  184. }
  185. }
  186. MotorArtigo = null;
  187. MotorArtigoMoeda = null;
  188. Console.WriteLine("Foram criados " + artigosNovos + " artigos");
  189. }
  190. catch (Exception e)
  191. {
  192. throw(e);
  193. Console.WriteLine(e.Message);
  194. }
  195. }
  196.  
  197. static void importaVendas(List<Venda> vendas)
  198. {
  199. try
  200. {
  201. foreach (var item in vendas)
  202. {
  203. Doc = new Interop.GcpBE900.GcpBEDocumentoVenda();
  204. Doc.set_Tipodoc(item.TipoDoc);
  205. Doc.set_Serie(item.Serie);
  206. Doc.set_DataDoc(item.DataDoc);
  207. Doc.set_DataVenc(item.DataVenc);
  208. Doc.set_Entidade(item.Entidade);
  209. Doc.set_EntidadeFac(item.Entidade);
  210. Doc.set_Referencia(item.NumDocExt);
  211. Doc.set_TipoEntidade("C");
  212. Doc = Motor.Comercial.Vendas.PreencheDadosRelacionados(Doc);
  213. Doc.set_DataDoc(item.DataDoc);
  214. foreach (var itemv in vendas)
  215. {
  216. Doc = Motor.Comercial.Vendas.AdicionaLinha(Doc, item.Artigo, item.Quantidade, null, null, item.PCU);
  217. var Linhas = Doc.get_Linhas();
  218. Linhas[Linhas.NumItens].set_Descricao(item.Descricao);
  219. Linhas[Linhas.NumItens].set_CodIva(item.CodIva);
  220. Linhas[Linhas.NumItens].set_Unidade(item.Unidade);
  221. }
  222. Motor.Comercial.Vendas.PreencheDadosRelacionados(Doc);
  223. Doc.set_Moeda(item.Moeda);
  224. Doc.set_Cambio(item.Cambio);
  225. Doc.set_CambioMBase(item.Cambio);
  226. Doc.set_CambioMAlt(item.Cambio);
  227. Doc.set_DataDoc(item.DataDoc);
  228. Doc.set_DataVenc(item.DataVenc);
  229. try
  230. {
  231. Motor.IniciaTransaccao();
  232. vendasNovas += 1;
  233. Motor.Comercial.Vendas.Actualiza(Doc);
  234. Motor.TerminaTransaccao();
  235. Console.WriteLine("Foram importado "+ vendasNovas+" doc. de venda.");
  236. }
  237. catch (Exception err)
  238. {
  239. Motor.DesfazTransaccao();
  240. throw (err);
  241. }
  242. }
  243. }
  244. catch (Exception e)
  245. {
  246. throw (e);
  247. Console.WriteLine(e.Message);
  248. }
  249. }
  250. //=====================================================================
  251.  
  252. static void abreEmpresaTrabalho()
  253. {
  254. try
  255. {
  256. Motor.AbreEmpresaTrabalho(0,"DEMO","nventura","angconsul.11");
  257. Console.WriteLine("Empresa aberta com sucesso!");
  258. }
  259. catch (Exception e)
  260. {
  261. throw(e);
  262. }
  263. }
  264. static void Main(string[] args)
  265. {
  266. abreEmpresaTrabalho();
  267. dadosCli = lerFicheiroCliente();
  268. importaCliente(dadosCli);
  269. dadosArt = lerFicheiroArtigo();
  270. importaArtigo(dadosArt);
  271. dadosVenda = lerFicheiroVenda();
  272. importaVendas(dadosVenda);
  273. Console.ReadKey();
  274.  
  275.  
  276. }
  277. }
  278. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement