Esempio n. 1
0
        private static void GetDespesas(int year, int month, out List <DataPrfOsasco> datas, out DictionaryTree <string, string> despesas, Func <string, string> treatIndex)
        {
            datas    = new List <DataPrfOsasco>();
            despesas = new DictionaryTree <string, string>(s => treatIndex(s), "Despesas");

            var parameters        = "{" + $"\"edtExercicio\":{year},\"edtMes\":{month},\"edtCategoria\":\"%\"" + "}";
            var parametersEncoded = Encoding.UTF8.GetBytes(parameters);
            var parametersBase64  = Convert.ToBase64String(parametersEncoded);
            var client            = new RestClient("http://eportal.osasco.sp.gov.br/eportais-api/api/relatorio/gerarRelatorioXML/Despesa%20paga%20por%20Fornecedor/" + parametersBase64);
            var request           = new RestRequest(Method.GET);
            var response          = client.Execute(request);

            if (response.StatusCode != System.Net.HttpStatusCode.OK)
            {
                throw new Exception(response.Content);
            }

            var xml    = response.Content;
            var xmlDoc = new System.Xml.XmlDocument();

            xmlDoc.LoadXml(xml);

            var xpath = "DespesapagaporFornecedor/registro";
            var nodes = xmlDoc.SelectNodes(xpath);

            foreach (System.Xml.XmlNode childrenNode in nodes)
            {
                var year2    = int.Parse(childrenNode.SelectSingleNode("nr_ano").InnerText);
                var month2   = int.Parse(childrenNode.SelectSingleNode("nr_mes").InnerText);
                var date     = new DateTime(year2, month2, 1);
                var valor    = decimal.Parse(childrenNode.SelectSingleNode("vl_pagamento").InnerText, CultureInfo.InvariantCulture);
                var cpfCnpj  = childrenNode.SelectSingleNode("cnpj").InnerText;
                var tpPessoa = "Indefinido";

                if (IsCpf(cpfCnpj))
                {
                    tpPessoa = "Pessoa";
                }
                else if (IsCnpj(cpfCnpj))
                {
                    tpPessoa = "Empresa";
                }

                var despesa = despesas.AddIfNew(
                    childrenNode.SelectSingleNode("ds_categoria").InnerText,
                    childrenNode.SelectSingleNode("ds_grupo").InnerText,
                    childrenNode.SelectSingleNode("ds_modalidade").InnerText,
                    childrenNode.SelectSingleNode("ds_despesa").InnerText,
                    childrenNode.SelectSingleNode("ds_orgao").InnerText,
                    childrenNode.SelectSingleNode("ds_unidade").InnerText,
                    tpPessoa,
                    childrenNode.SelectSingleNode("razao_social").InnerText);

                var data = new DataPrfOsasco()
                {
                    Date  = date,
                    Group = despesa,
                    Value = valor
                };

                datas.Add(data);

                ////Console.WriteLine(childrenNode.SelectSingleNode("razao_social").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("nr_processo").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("cd_orgao").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("ds_orgao").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("cd_unidade").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("ds_unidade").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("cd_despesa").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("ds_despesa").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("categoria_despesa").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("ds_categoria").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("grupo_despesa").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("ds_grupo").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("cd_modalidade").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("ds_modalidade").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("nr_mes").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("nr_ano").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("vl_pagamento").InnerText);
                ////Console.WriteLine(childrenNode.SelectSingleNode("cnpj").InnerText);
            }
        }
Esempio n. 2
0
        private static void GetViagens(int year, out List <DataPrfOsasco> datas, out DictionaryTree <string, string> despesas, Func <string, string> treatIndex)
        {
            datas    = new List <DataPrfOsasco>();
            despesas = new DictionaryTree <string, string>(s => treatIndex(s), "Viagens");

            var viagensCsv = GetViagensCsv(year);
            var viagensXml = GetViagensXml(year);

            var viagens = from x in viagensXml
                          join c in viagensCsv on new { x.Nro_Processo } equals new { c.Nro_Processo }
            select new { x.Destino, x.Motivo, x.Observacao, x.Valor, x.Inicio, x.Fim, x.Orgao, x.Unidade, c.Nome, c.Cargo };

            if (viagensCsv.Count() != viagens.Count())
            {
                throw new Exception("Missing data");
            }

            foreach (var viagem in viagens)
            {
                var groupValor = despesas.AddIfNew(
                    viagem.Orgao,
                    viagem.Unidade,
                    viagem.Destino,
                    viagem.Motivo,
                    viagem.Observacao,
                    viagem.Cargo,
                    viagem.Nome,
                    "Valor");

                var dataValor = new DataPrfOsasco()
                {
                    Date  = viagem.Inicio,
                    Group = groupValor,
                    Value = viagem.Valor
                };

                datas.Add(dataValor);

                var groupDias = despesas.AddIfNew(
                    "Prefeituras",
                    "Osasco",
                    "Viagens",
                    viagem.Orgao,
                    viagem.Unidade,
                    viagem.Destino,
                    viagem.Motivo,
                    viagem.Observacao,
                    viagem.Cargo,
                    viagem.Nome,
                    "Dias");

                var dataDias = new DataPrfOsasco()
                {
                    Date  = viagem.Inicio,
                    Group = groupDias,
                    Value = viagem.Valor
                };

                datas.Add(dataDias);
            }
        }