示例#1
0
        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();
        }
示例#2
0
        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);
            }
        }