private void BTN_UpdateAddresses_Click(object sender, EventArgs e) { DialogResult warningResult = MessageBox.Show("O arquivo deverá ser do tipo XML, ter sido gerado pelo Protheus 12 (SBF) e ter apenas 2 colunas, na seguinte sequência: 'Produto' e 'Endereço'. Caso essa sequência não seja respeitada então os dados dos produtos ficarão invertidos." + "\n\nDeseja continuar?", "Atenção!", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (warningResult == DialogResult.No) { return; } OFD_FileSelector.Filter = "Arquivos Extensible Markup Language|*.xml"; DialogResult fsResult = OFD_FileSelector.ShowDialog(); if (fsResult != DialogResult.OK) { return; } DialogResult resultConf = MessageBox.Show("O arquivo " + OFD_FileSelector.FileName + " foi selecionado, deseja continuar?", "Confirmar Arquivo", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (DialogResult == DialogResult.No) { return; } string fileName = OFD_FileSelector.FileName; OFD_FileSelector.Dispose(); Library.Protheus12Xml.Reader xmlReader = new Library.Protheus12Xml.Reader(fileName); List <Library.Protheus12Xml.SubObjects.Duplicate> duplicates = xmlReader.UpdateProductsAddresses(); if (duplicates.Count > 0) { MessageBox.Show("Existem conflitos nos endereços lidos, por favor, verifique e corriga.", "Atenção!"); FRM_Main_ProductsAddressUpdateDuplicates frmDuplicates = new FRM_Main_ProductsAddressUpdateDuplicates(duplicates); frmDuplicates.ShowDialog(); } Library.Serialization.Serialize.Products(GlobalVariables.Products); this.UpdateProducts(); }
private void BTN_ImportExcel_Click(object sender, EventArgs e) { try { DialogResult warningResult = MessageBox.Show("O arquivo deverá ser do tipo XML, ter sido gerado pelo Protheus 12 (SA7) e ter apenas 3 colunas, na seguinte sequência: 'Produto', 'Código do cliente' e 'Descrição do Produto'. Caso essa sequência não seja respeitada então os dados dos produtos ficarão invertidos." + "\n\nDeseja continuar?", "Atenção!", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (warningResult == DialogResult.No) { return; } OFD_FileSelector.Filter = "Arquivos Extensible Markup Language|*.xml"; DialogResult fsResult = OFD_FileSelector.ShowDialog(); if (fsResult != DialogResult.OK) { return; } DialogResult resultConf = MessageBox.Show("O arquivo " + OFD_FileSelector.FileName + " foi selecionado, deseja continuar?", "Confirmar Arquivo", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (DialogResult == DialogResult.No) { return; } string fileName = OFD_FileSelector.FileName; int alreadyExist = 0, created = 0; OFD_FileSelector.Dispose(); Library.Protheus12Xml.Reader xmlReader = new Library.Protheus12Xml.Reader(fileName); List <Product> products = xmlReader.XmlToProducts(); if (products.Count < 1) { return; } foreach (Product product in products) { if (GlobalVariables.Products.Exists(x => x.CodeBSC == product.CodeBSC && x.CodeClient == product.CodeClient)) { alreadyExist++; continue; } else { product.Id = GlobalVariables.CurrentFreeProductsId; GlobalVariables.CurrentFreeProductsId++; // RAM GlobalVariables.Products.Add(product); // LOCAL Library.Serialization.Serialize.Product(product); created++; } } MessageBox.Show(("Produtos lidos: " + xmlReader.TotalRows.ToString() + "\nProdutos que já existiam: " + alreadyExist.ToString() + "\nProdutos cadastrados: " + created.ToString()), "Resultado da importação"); if (created > 0) { this.Added = true; } } catch (Exception ex) { MessageBox.Show("Não foi possível prosseguir com a importação devido um erro. Para mais detalhes veja o arquivo log.txt", "Erro!"); ErrorsCare.AppendErrorOnErrorsFile(ex.Message); } }