private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (TipoDeDocumento.SelectedIndex > -1 && NumeroDocumento.Text != "")
            {
                AcessoBD abd = new AcessoBD();
                Logica   d   = new Logica();

                string[,] rotulos = { { "Número", "Volumes", "SKU's", "Fornecedor",       "Notas Fiscais",    "Manifesto" },
                                      { "Número", "Volumes", "CT-es", "CT-es importados", "CT-es conferidos", " "         },
                                      { "Número", "Volumes", "SKU's", "CT-e",             "Fornecedor",       "Cliente"   } };

                int numDoc = int.Parse(NumeroDocumento.Text);
                List <dadosPesquisa> listaDados = new List <dadosPesquisa>();
                dadosPesquisa        aux;
                listaDados.Clear();

                for (int i = 0; i < 6; i++)
                {
                    ListaDados.Columns[i].Header = rotulos[TipoDeDocumento.SelectedIndex, i];
                }

                // CT-e
                if (TipoDeDocumento.SelectedIndex == 0)
                {
                    if (d.NumeroCteExiste(numDoc))
                    {
                        var ctes = abd.GetNovoCtePorNum(numDoc);

                        foreach (var item in ctes)
                        {
                            aux = new dadosPesquisa()
                            {
                                numero  = NumeroDocumento.Text.Replace("_", ""),
                                volumes = abd.GetVolumesCte(item.idCte).ToString(),
                                dado3   = abd.GetSkuCte(item.idCte).ToString(),
                                dado4   = abd.GetFornecedorCte(item.idCte),
                                dado5   = item.notasCte,
                                dado6   = abd.GetListaManifestosCte(item.idCte)
                            };
                            listaDados.Add(aux);
                        }
                        ListaDados.ItemsSource = listaDados;
                    }
                    else
                    {
                        Limpar();
                    }
                }

                // MANIFESTO
                else if (TipoDeDocumento.SelectedIndex == 1)
                {
                    Manifestos documento = abd.GetManifestoPorNumero(numDoc);

                    if (documento != null)
                    {
                        aux = new dadosPesquisa()
                        {
                            numero  = documento.numeroManifesto.ToString(),
                            volumes = documento.VolumesManifesto.ToString(),
                            dado3   = documento.quantCtesManifesto.ToString(),
                            dado4   = abd.CtesImportadosNoManifesto(numDoc).Count.ToString(),
                            dado5   = abd.CtesConferidosNoManifesto(numDoc).Count.ToString(),
                            dado6   = " "
                        };
                        listaDados.Add(aux);

                        ListaDados.ItemsSource = listaDados;
                    }
                    else
                    {
                        Limpar();
                    }
                }

                // NOTA FISCAL
                else if (TipoDeDocumento.SelectedIndex == 2)
                {
                    var documentos = abd.GetNFPorNumero(NumeroDocumento.Text);
                    if (documentos.Count > 0)
                    {
                        foreach (var documento in documentos)
                        {
                            string numCTE = "Não vinculado";
                            if (documento.CteNovoNF != null)
                            {
                                numCTE = abd.GetCtePorID((int)documento.CteNovoNF).numeroCte.ToString();
                            }
                            aux = new dadosPesquisa()
                            {
                                numero  = documento.numeroNF.ToString(),
                                volumes = documento.volumesNF.ToString(),
                                dado3   = documento.skuNF.ToString(),
                                dado4   = numCTE,
                                dado5   = documento.fornecedorNF,
                                dado6   = documento.clienteNF
                            };
                            listaDados.Add(aux);
                        }
                        ListaDados.ItemsSource = listaDados;
                    }
                    else
                    {
                        Limpar();
                    }
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Importa os dados de xml de manifestos na pasta padrão
        /// </summary>
        public bool LerPreManifesto(string nomeArquivo)
        {
            try
            {
                XmlDocument manifesto = new XmlDocument();
                manifesto.Load(nomeArquivo);

                var      ValueResult = manifesto.GetElementsByTagName("Value");
                var      TextResult  = manifesto.GetElementsByTagName("TextValue");
                AcessoBD abd         = new AcessoBD();

                var ctesNoXml = new List <string>();
                for (int i = 5; i < ValueResult.Count - 4; i = i + 6)
                {
                    ctesNoXml.Add(ValueResult[i].InnerText);
                }
                var quantCtes = ctesNoXml.Distinct().Count();

                Manifestos lido = new Manifestos()
                {
                    numeroManifesto    = int.Parse(nomeArquivo.Replace(PastasXml.Default.PastaPreManifestos + "\\", "").Replace(".xml", "")),
                    VolumesManifesto   = (int)double.Parse(ValueResult[ValueResult.Count - 4].InnerText.Replace('.', ',')),
                    pesoManifesto      = double.Parse(ValueResult[ValueResult.Count - 2].InnerText.Replace('.', ',')),
                    quantCtesManifesto = quantCtes
                };

                abd.CadastrarManifesto(lido);

                int        cte;
                int        indexNF = 0;
                string     fornecedor;
                List <Cte> ctesNoPreManifesto = new List <Cte>();
                for (int i = 5; i < ValueResult.Count - 4; i = i + 6)
                {
                    cte = int.Parse(ValueResult[i].InnerText.Replace('/', ' '));

                    Cte cteDaVez = ctesNoPreManifesto.Where(x => x.numeroCte == cte).Select(x => x).FirstOrDefault();
                    if (cteDaVez == null)
                    {
                        ctesNoPreManifesto.Add(new Cte(cte, TextResult[indexNF].InnerText.TrimStart('0')));
                    }
                    else
                    {
                        cteDaVez.notasCte += "\\" + TextResult[indexNF].InnerText.TrimStart('0');
                    }

                    fornecedor = ValueResult[i - 5].InnerText;
                    indexNF++;
                }
                foreach (var item in ctesNoPreManifesto)
                {
                    abd.CadastrarCte(new Cte(item.numeroCte, item.notasCte));
                    AlterarNfs(item.notasCte, item.numeroCte, fornecedor);  //  alterado para novo cte
                    CriarCteManifesto(item.numeroCte, lido.numeroManifesto);
                }

                return(true);
            }
            catch
            {
                return(false);
            }
        }
Пример #3
0
        /// <summary>
        /// Importa os dados de xml de manifestos na pasta padrão
        /// </summary>
        public bool LerManifesto(string nomeArquivo)
        {
            try
            {
                XmlDocument manifesto = new XmlDocument();
                manifesto.Load(nomeArquivo);

                AcessoBD   abd    = new AcessoBD();
                var        result = manifesto.GetElementsByTagName("Value");
                Manifestos lido   = new Manifestos
                {
                    numeroManifesto    = int.Parse(nomeArquivo.Replace(PastasXml.Default.PastaManifestos + "\\", "").Replace(".xml", "")),
                    VolumesManifesto   = (int)double.Parse(result[result.Count - 2].InnerText.Replace('.', ',')),
                    pesoManifesto      = double.Parse(result[result.Count - 3].InnerText.Replace('.', ',')),
                    quantCtesManifesto = (int)double.Parse(result[result.Count - 4].InnerText.Replace('.', ','))
                };

                abd.CadastrarManifesto(lido);

                int          cte;
                NotasFiscais nfLida = new NotasFiscais();

                for (int i = 0; i < result.Count - 4; i = i + 10)
                {
                    cte = int.Parse(result[i].InnerText);

                    abd.CadastrarCte(new Cte(cte, result[i + 1].InnerText));

                    CriarCteManifesto(cte, lido.numeroManifesto);

                    nfLida.fornecedorNF = result[i + 2].InnerText;
                    nfLida.clienteNF    = result[i + 7].InnerText;
                    nfLida.CteNovoNF    = abd.GetNovoCtePorNum(int.Parse(result[i].InnerText)).Max(x => x.idCte);
                    nfLida.skuNF        = 0;

                    if (!result[i + 1].InnerText.Contains("\\"))
                    {
                        nfLida.numeroNF  = result[i + 1].InnerText;
                        nfLida.volumesNF = (int)double.Parse(result[i + 8].InnerText.Replace('.', ','));
                        InserirNotaFiscal(nfLida);
                    }
                    else
                    {
                        var nfs = result[i + 1].InnerText.Split('\\');
                        nfLida.volumesNF = (int)System.Math.Ceiling(double.Parse(result[i + 8].InnerText.Replace('.', ',')) / nfs.Count()); //volume total pode variar por causa desse truncamento

                        foreach (var item in nfs)
                        {
                            nfLida.numeroNF = item;
                            InserirNotaFiscal(nfLida);
                        }
                    }

                    // AlterarNfs(result[i + 1].InnerText, cte);
                }

                return(true);
            }
            catch (System.Exception)
            {
                return(false);
            }
        }
Пример #4
0
        /// <summary>
        /// Importa os dados de xml de manifestos na pasta padrão
        /// </summary>
        public bool LerPreManifesto(string nomeArquivo)
        {
            try
            {
                XmlDocument manifesto = new XmlDocument();
                manifesto.Load(nomeArquivo);

                var          ValueResult = manifesto.GetElementsByTagName("Value");
                var          TextResult  = manifesto.GetElementsByTagName("TextValue");
                AcessoBD     abd         = new AcessoBD();
                NotasFiscais nfLida      = new NotasFiscais();

                var ctesNoXml = new List <string>();

                //------------------------- CADASTRO PRE MANIFEST0 ------------------

                for (int i = 5; i < ValueResult.Count - 4; i += 6)
                {
                    ctesNoXml.Add(ValueResult[i].InnerText);
                }

                Manifestos lido = new Manifestos()
                {
                    numeroManifesto    = int.Parse(nomeArquivo.Replace(PastasXml.Default.PastaPreManifestos + "\\", "").Replace(".xml", "")),
                    VolumesManifesto   = (int)double.Parse(ValueResult[ValueResult.Count - 4].InnerText.Replace('.', ',')),
                    pesoManifesto      = double.Parse(ValueResult[ValueResult.Count - 2].InnerText.Replace('.', ',')),
                    quantCtesManifesto = ctesNoXml.Distinct().Count()
                };

                abd.CadastrarManifesto(lido);

                //------------------------- CADASTRO CTES ------------------

                int        cte;
                int        indexNF            = 0;
                string     fornecedor         = "";
                List <Cte> ctesNoPreManifesto = new List <Cte>();
                for (int i = 5; i < ValueResult.Count - 4; i += 6)
                {
                    cte = int.Parse(ValueResult[i].InnerText.Replace('/', ' '));

                    Cte cteDaVez = ctesNoPreManifesto.Where(x => x.numeroCte == cte).Select(x => x).FirstOrDefault();
                    if (cteDaVez == null)
                    {
                        ctesNoPreManifesto.Add(new Cte(cte, TextResult[indexNF].InnerText.TrimStart('0')));
                    }

                    else
                    {
                        cteDaVez.notasCte += "\\" + TextResult[indexNF].InnerText.TrimStart('0');
                    }

                    fornecedor = ValueResult[i - 5].InnerText;
                    indexNF++;
                }



                foreach (var item in ctesNoPreManifesto)
                {
                    abd.CadastrarCte(new Cte(item.numeroCte, item.notasCte));
                    CriarCteManifesto(item.numeroCte, lido.numeroManifesto);
                }


                //------------------------- CADASTRO/ALTERAÇÃO DE NF'S E EXPORTAÇÃO CROSS ------------------

                indexNF = 0;
                for (int i = 5; i < ValueResult.Count - 4; i += 6)
                {
                    nfLida.numeroNF     = TextResult[indexNF].InnerText.TrimStart('0');
                    nfLida.fornecedorNF = ValueResult[i - 5].InnerText;
                    nfLida.clienteNF    = ValueResult[i - 4].InnerText;
                    nfLida.CteNovoNF    = abd.GetNovoCtePorNum(int.Parse(ValueResult[i].InnerText.Replace('/', ' '))).Max(x => x.idCte);
                    nfLida.skuNF        = 0;
                    nfLida.volumesNF    = int.Parse(ValueResult[i - 3].InnerText.Replace(".00", "")); //volume corrigido
                    InserirNotaFiscal(nfLida);

                    indexNF++;

                    ExportarXmlCrossDocking(ValueResult[i].InnerText.Replace('/', ' '), nfLida.fornecedorNF);
                }
                return(true);
            }
            catch (System.Exception)
            {
                return(false);
            }
        }