Esempio n. 1
0
        private string ClientesInadimplentes(DataTable dt, int rowCount, decimal ID_EMPRESA)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                dt.Columns.Add("TOTAL_VENCIDO", typeof(decimal));
                dt.Columns.Add("CONTATOS", typeof(string));

                foreach (DataRow dr in dt.Rows)
                {
                    dr["TOTAL_VENCIDO"] = Doran_TitulosVencidos.TotalVencidos(Vencidos.RECEBER, Convert.ToDecimal(dr["CODIGO_CLIENTE"]), ID_EMPRESA);
                }
            }

            using (Doran_ERP_Servicos_DadosDataContext ctx1 = new Doran_ERP_Servicos_DadosDataContext())
            {
                foreach (DataRow dr in dt.Rows)
                {
                    var query = from linha in ctx1.TB_CLIENTE_CONTATOs
                                where linha.ID_CLIENTE == Convert.ToDecimal(dr["CODIGO_CLIENTE"])
                                select linha;

                    string retorno = string.Format("<div><br /><b>Contatos</b><br /><hr /><table style='width: 85%;'><tr><td><b>{0}</b></td><td><b>{1}</b></td><td><b>{2}</b></td><td><b>{3}</b></td></tr>",
                                                   "Nome", "Telefone", "e-mail", "fax");

                    foreach (var item in query)
                    {
                        retorno += string.Format("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td></tr>",
                                                 item.NOME_CONTATO_CLIENTE,
                                                 item.TELEFONE_CONTATO_CLIENTE,
                                                 item.EMAIL_CONTATO_CLIENTE,
                                                 item.FAX_CONTATO_CLIENTE);
                    }

                    retorno += "</table><br /></div>";

                    dr["CONTATOS"] = retorno;
                }
            }

            DataSet ds = new DataSet("Query");

            ds.Tables.Add(dt);

            DataTable totalCount = new DataTable("Totais");

            totalCount.Columns.Add("totalCount");

            DataRow nova = totalCount.NewRow();

            nova[0] = rowCount;
            totalCount.Rows.Add(nova);

            ds.Tables.Add(totalCount);

            System.IO.StringWriter tr = new System.IO.StringWriter();
            ds.WriteXml(tr);

            return(tr.ToString());
        }
Esempio n. 2
0
        private void Inadimplencia(DataContext ctx, decimal ID_EMPRESA)
        {
            decimal totalVencidos = Doran_TitulosVencidos.TotalVencidos(Vencidos.RECEBER,
                                                                        CODIGO_CLIENTE, ctx, ID_EMPRESA);

            if (totalVencidos > (decimal)0.00)
            {
                AdicionaRestricao(CRITERIOS_DE_ANALISE.Inadimplencia, string.Concat("Existem t&iacute;tulos vencidos deste cliente. <br />Total Vencido = ",
                                                                                    "<span style='color: red;'>", totalVencidos.ToString("c"), "</span>"));
            }
        }
Esempio n. 3
0
        public string Lista_Relatorio()
        {
            string retorno = "";

            Preenche_Vendedor();

            using (Th2_Report r = new Th2_Report(ExpertPdf.HtmlToPdf.PdfPageSize.A4, ExpertPdf.HtmlToPdf.PDFPageOrientation.Portrait))
            {
                r.ID_EMPRESA = ID_EMPRESA;

                r.DefineCabecalho("Relat&oacute;rio de Clientes Inativos<br /><span style='font-size: 8pt;'>" + NOME_VENDEDOR + "</span>", 60);

                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    ctx.Connection.Open();
                    ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");

                    var query = from linha in ctx.TB_CLIENTEs

                                orderby linha.DATA_ULTIMA_FATURA descending, linha.VALOR_ULTIMA_FATURA descending

                    where linha.DATA_ULTIMA_FATURA < _dataRef

                    && linha.CLIENTE_BLOQUEADO != 1

                    && (linha.NOME_CLIENTE.Contains(CLIENTE) ||
                        linha.NOMEFANTASIA_CLIENTE.Contains(CLIENTE))

                    select new
                    {
                        linha.ID_CLIENTE,
                        linha.NOMEFANTASIA_CLIENTE,
                        linha.CODIGO_VENDEDOR_CLIENTE,
                        linha.TB_VENDEDORE.NOME_VENDEDOR,
                        linha.DATA_ULTIMA_FATURA,
                        linha.VALOR_ULTIMA_FATURA,
                        linha.TB_MUNICIPIO.TB_UF.SIGLA_UF,

                        NOME_CONTATO_CLIENTE = (from linha1 in ctx.GetTable <TB_CLIENTE_CONTATO>()
                                                where linha1.ID_CLIENTE == linha.ID_CLIENTE
                                                select linha1).Any() ?

                                               (from linha1 in ctx.GetTable <TB_CLIENTE_CONTATO>()
                                                where linha1.ID_CLIENTE == linha.ID_CLIENTE
                                                select linha1.NOME_CONTATO_CLIENTE).First()
                                                             : "",

                        EMAIL_CONTATO_CLIENTE = (from linha1 in ctx.GetTable <TB_CLIENTE_CONTATO>()
                                                 where linha1.ID_CLIENTE == linha.ID_CLIENTE
                                                 select linha1).Any() ?

                                                (from linha1 in ctx.GetTable <TB_CLIENTE_CONTATO>()
                                                 where linha1.ID_CLIENTE == linha.ID_CLIENTE
                                                 select linha1.EMAIL_CONTATO_CLIENTE).First()
                                                             : "",

                        TELEFONE_CONTATO_CLIENTE = (from linha1 in ctx.GetTable <TB_CLIENTE_CONTATO>()
                                                    where linha1.ID_CLIENTE == linha.ID_CLIENTE
                                                    select linha1).Any() ?

                                                   (from linha1 in ctx.GetTable <TB_CLIENTE_CONTATO>()
                                                    where linha1.ID_CLIENTE == linha.ID_CLIENTE
                                                    select linha1.TELEFONE_CONTATO_CLIENTE).First()
                                                             : ""
                    };

                    if (CODIGO_VENDEDOR > 0)
                    {
                        query = query.Where(v => v.CODIGO_VENDEDOR_CLIENTE == CODIGO_VENDEDOR);
                    }

                    var query1 = query.ToList();

                    StringBuilder _conteudo = new StringBuilder();

                    _conteudo.Append("<table style='width: 75%; font-family: tahoma; font-size: 8pt;'>");

                    _conteudo.Append(@"<tr>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Cliente</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Contato</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Vendedor(a):</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Telefone</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>UF</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Ultima Compra</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold; text-align: right;'>Valor Ultima Compra</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold; text-align: right;'>Total Vencido</td>
                                  </tr>");

                    foreach (var item in query1)
                    {
                        decimal vencido = Doran_TitulosVencidos.TotalVencidos(Vencidos.RECEBER,
                                                                              item.ID_CLIENTE, ID_EMPRESA);

                        _conteudo.Append(@"<tr>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + item.NOMEFANTASIA_CLIENTE.Trim() + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + item.NOME_CONTATO_CLIENTE.Trim() + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + item.NOME_VENDEDOR.Trim() + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + item.TELEFONE_CONTATO_CLIENTE.Trim() + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + item.SIGLA_UF + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + ApoioXML.TrataData2(item.DATA_ULTIMA_FATURA) + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + ((decimal)item.VALOR_ULTIMA_FATURA).ToString("c") + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold; text-align: right;'>" + ((decimal)vencido).ToString("c") + @"</td>
                                  </tr>");
                    }

                    _conteudo.Append("</table>");

                    r.InsereConteudo(_conteudo.ToString());

                    retorno = r.SalvaDocumento("Clientes_Inativos");
                }

                return(retorno);
            }
        }
Esempio n. 4
0
        public static Dictionary <string, string> Creditos_do_Cliente(decimal CODIGO_CLIENTE, string DataInicial, string DataFinal, decimal ID_EMPRESA)
        {
            DateTime dt1 = Convert.ToDateTime(DataInicial);
            DateTime dt2 = Convert.ToDateTime(DataFinal);

            dt2 = dt2.AddDays(1);

            Dictionary <string, string> retorno = new Dictionary <string, string>();

            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                var faturamento = (from linha in ctx.TB_NOTA_SAIDAs
                                   where linha.CODIGO_CLIENTE_NF == CODIGO_CLIENTE &&
                                   (linha.DATA_EMISSAO_NF >= dt1 &&
                                    linha.DATA_EMISSAO_NF < dt2) &&
                                   (linha.STATUS_NF == 2 || linha.STATUS_NF == 4)

                                   select linha).Sum(fat => fat.TOTAL_NF);

                if (faturamento.HasValue)
                {
                    retorno.Add("Faturamento", ((decimal)faturamento).ToString("c", CultureInfo.CurrentCulture));
                }
                else
                {
                    retorno.Add("Faturamento", 0.ToString("c", CultureInfo.CurrentCulture));
                }

                DateTime amanha = DateTime.Today;
                amanha = amanha.AddDays(1);

                var aReceber = (from linha in ctx.TB_FINANCEIROs
                                where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                linha.DATA_VENCIMENTO >= amanha &&
                                linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.CREDITO_DEBITO == 0

                                select linha).Sum(ar => ar.VALOR_TOTAL);

                if (aReceber.HasValue)
                {
                    retorno.Add("aReceber", ((decimal)aReceber).ToString("c", CultureInfo.CurrentCulture));
                }
                else
                {
                    retorno.Add("aReceber", 0.ToString("c", CultureInfo.CurrentCulture));
                }


                var Recebido = (from linha in ctx.TB_FINANCEIROs
                                where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                (linha.DATA_PAGAMENTO >= dt1 &&
                                 linha.DATA_PAGAMENTO < dt2) &&
                                linha.CREDITO_DEBITO == 0

                                select linha).Sum(pa => pa.VALOR_TOTAL);

                if (Recebido.HasValue)
                {
                    retorno.Add("Recebido", ((decimal)Recebido).ToString("c", CultureInfo.CurrentCulture));
                }
                else
                {
                    retorno.Add("Recebido", 0.ToString("c", CultureInfo.CurrentCulture));
                }

                decimal Inadimplente = Doran_TitulosVencidos.TotalVencidos(Vencidos.RECEBER, CODIGO_CLIENTE, ID_EMPRESA);

                if (Inadimplente > (decimal)0.00)
                {
                    retorno.Add("Inadimplente", "<span style='color: red;'>" + Inadimplente.ToString("c", CultureInfo.CurrentCulture) + "</span>");
                }
                else
                {
                    retorno.Add("Inadimplente", "<span>" + Inadimplente.ToString("c", CultureInfo.CurrentCulture) + "</span>");
                }

                var limiteCliente = (from linha in ctx.TB_CLIENTEs
                                     where linha.ID_CLIENTE == CODIGO_CLIENTE
                                     select new
                {
                    linha.TB_LIMITE.VALOR_LIMITE
                }).ToList();

                decimal _limiteCliente = 0;

                foreach (var item in limiteCliente)
                {
                    _limiteCliente = (decimal)item.VALOR_LIMITE;
                }

                var EmAberto = (from linha in ctx.TB_FINANCEIROs
                                where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.CREDITO_DEBITO == 0

                                select linha).Sum(ab => ab.VALOR_TOTAL);

                if (EmAberto > _limiteCliente)
                {
                    EmAberto = EmAberto - _limiteCliente;
                }
                else
                {
                    EmAberto = 0;
                }

                EmAberto += Doran_Limite_Credito_Cliente.Limite_Excedido_Cliente(CODIGO_CLIENTE);

                if (EmAberto > (decimal)0.00)
                {
                    retorno.Add("Excedido", "<span style='color: red;'>" + ((decimal)EmAberto).ToString("c", CultureInfo.CurrentCulture) + "</span>");
                }
                else
                {
                    retorno.Add("Excedido", ((decimal)EmAberto).ToString("c", CultureInfo.CurrentCulture));
                }

                var Abatimentos = (from linha in ctx.GetTable <TB_SALDO_CLIENTE_FORNECEDOR>()
                                   orderby linha.CODIGO_CLIENTE, linha.SALDO_RESTANTE

                                   where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                   linha.SALDO_RESTANTE > (decimal)0.00

                                   select linha).Sum(a => a.SALDO_RESTANTE);

                if (Abatimentos.HasValue)
                {
                    retorno.Add("Abatimentos", "<span style='color: navy;'>" + ((decimal)Abatimentos).ToString("c", CultureInfo.CurrentCulture) + "</span>");
                }
                else
                {
                    retorno.Add("Abatimentos", ((decimal)0.00).ToString("c", CultureInfo.CurrentCulture));
                }

                // Data e Valor da Ultima Compra

                var ultimaCompra = (from linha in ctx.TB_NOTA_SAIDAs
                                    orderby linha.CODIGO_CLIENTE_NF, linha.DATA_EMISSAO_NF descending
                                    where linha.CODIGO_CLIENTE_NF == CODIGO_CLIENTE &&
                                    linha.STATUS_NF == 4
                                    select new { linha.DATA_EMISSAO_NF, linha.TOTAL_SERVICOS_NF }).Take(1).ToList();

                if (ultimaCompra.Any())
                {
                    foreach (var item in ultimaCompra)
                    {
                        retorno.Add("data_ultima_compra", ApoioXML.TrataData2(item.DATA_EMISSAO_NF));
                        retorno.Add("valor_ultima_compra", ((decimal)item.TOTAL_SERVICOS_NF).ToString("c"));
                    }
                }
                else
                {
                    retorno.Add("data_ultima_compra", "");
                    retorno.Add("valor_ultima_compra", ((decimal)0.00).ToString("c"));
                }

                // Maior compra

                var maiorCompra = (from linha in ctx.TB_NOTA_SAIDAs
                                   orderby linha.CODIGO_CLIENTE_NF, linha.DATA_EMISSAO_NF
                                   where linha.CODIGO_CLIENTE_NF == CODIGO_CLIENTE &&
                                   linha.STATUS_NF == 4
                                   select linha).Max(m => m.TOTAL_SERVICOS_NF);

                retorno.Add("maior_compra", maiorCompra.HasValue ? ((decimal)maiorCompra).ToString("c") : ((decimal)0.00).ToString("c"));

                return(retorno);
            }
        }
Esempio n. 5
0
        public List <RECEBIMENTOS_ASSOCIADOS_A_VENDA> Recebimentos_com_venda_associada()
        {
            List <decimal> STATUS = (from linha in ctx.TB_STATUS_PEDIDO_COMPRAs
                                     where (linha.STATUS_ESPECIFICO_ITEM_COMPRA == 2 ||
                                            linha.STATUS_ESPECIFICO_ITEM_COMPRA == 3 ||
                                            linha.STATUS_ESPECIFICO_ITEM_COMPRA == 6)
                                     select linha.CODIGO_STATUS_COMPRA).ToList();

            var itens_compra = (from linha in ctx.TB_PEDIDO_COMPRAs
                                where STATUS.Contains(linha.STATUS_ITEM_COMPRA.Value)

                                && ((from linha1 in ctx.TB_RECEBIMENTO_PEDIDO_COMPRAs
                                     where linha1.NUMERO_PEDIDO_COMPRA == linha.NUMERO_PEDIDO_COMPRA &&
                                     linha1.NUMERO_ITEM_COMPRA == linha.NUMERO_ITEM_COMPRA
                                     select linha1.QTDE_RECEBIDA).Sum() < linha.QTDE_ITEM_COMPRA

                                    ||

                                    !(from linha1 in ctx.TB_RECEBIMENTO_PEDIDO_COMPRAs
                                      where linha1.NUMERO_PEDIDO_COMPRA == linha.NUMERO_PEDIDO_COMPRA &&
                                      linha1.NUMERO_ITEM_COMPRA == linha.NUMERO_ITEM_COMPRA
                                      select linha1).Any())

                                && (from linha1 in ctx.TB_ASSOCIACAO_COMPRA_VENDAs
                                    where linha1.NUMERO_PEDIDO_COMPRA == linha.NUMERO_PEDIDO_COMPRA &&
                                    linha1.NUMERO_ITEM_COMPRA == linha.NUMERO_ITEM_COMPRA &&
                                    linha1.TB_PEDIDO_VENDA.ENTREGA_PEDIDO < dataFinal.AddDays(1)
                                    select linha1).Any()

                                select new
            {
                linha.NUMERO_PEDIDO_COMPRA,
                linha.NUMERO_ITEM_COMPRA
            }).ToList();

            List <decimal> NUMEROS_PEDIDO_COMPRA = new List <decimal>();
            List <decimal> NUMEROS_ITENS_COMPRA  = new List <decimal>();

            foreach (var item in itens_compra)
            {
                NUMEROS_PEDIDO_COMPRA.Add(item.NUMERO_PEDIDO_COMPRA);
                NUMEROS_ITENS_COMPRA.Add(item.NUMERO_ITEM_COMPRA);
            }

            List <decimal?> STATUS_NF = new List <decimal?>();

            STATUS_NF.Add(2);
            STATUS_NF.Add(3);

            var query = (from linha in ctx.TB_ASSOCIACAO_COMPRA_VENDAs
                         where NUMEROS_PEDIDO_COMPRA.Contains(linha.NUMERO_PEDIDO_COMPRA) &&
                         NUMEROS_ITENS_COMPRA.Contains(linha.NUMERO_ITEM_COMPRA)

                         select new RECEBIMENTOS_ASSOCIADOS_A_VENDA()
            {
                NUMERO_PEDIDO_COMPRA = linha.NUMERO_PEDIDO_COMPRA,
                NUMERO_ITEM_COMPRA = linha.NUMERO_ITEM_COMPRA,
                NUMERO_PEDIDO_VENDA = linha.NUMERO_PEDIDO_VENDA,
                NUMERO_ITEM_VENDA = linha.NUMERO_ITEM_VENDA,
                ID_CLIENTE = linha.TB_PEDIDO_VENDA.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_CLIENTE_ORCAMENTO,

                VALOR_PEDIDO_VENDA = (from linha1 in ctx.TB_PEDIDO_VENDAs
                                      where linha1.NUMERO_PEDIDO == linha.NUMERO_PEDIDO_VENDA &&
                                      linha1.TB_STATUS_PEDIDO.STATUS_ESPECIFICO != 4

                                      select linha1.VALOR_TOTAL_ITEM_PEDIDO).Sum(),

                CLIENTE_INADIMPLENTE = Doran_TitulosVencidos.TotalVencidos(Vencidos.RECEBER,
                                                                           linha.TB_PEDIDO_VENDA.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_CLIENTE_ORCAMENTO.Value,
                                                                           ctx, ID_EMPRESA),

                FREQUENCIA_DE_COMPRA = (from linha1 in ctx.TB_PEDIDO_VENDAs
                                        where linha1.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_CLIENTE_ORCAMENTO == linha.TB_PEDIDO_VENDA.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_CLIENTE_ORCAMENTO &&
                                        (linha1.ENTREGA_PEDIDO >= DateTime.Today.AddMonths(-6) && linha1.ENTREGA_PEDIDO < DateTime.Today) &&
                                        STATUS_NF.Contains(linha1.TB_STATUS_PEDIDO.STATUS_ESPECIFICO)
                                        select linha1.NUMERO_PEDIDO).Distinct().Count(),

                VALOR_6_MESES = (from linha1 in ctx.TB_NOTA_SAIDAs
                                 where linha1.CODIGO_CLIENTE_NF == linha.TB_PEDIDO_VENDA.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_CLIENTE_ORCAMENTO &&
                                 (linha1.DATA_EMISSAO_NF >= DateTime.Today.AddMonths(-6) && linha1.DATA_EMISSAO_NF < DateTime.Today) &&
                                 STATUS_NF.Contains(linha1.STATUS_NF)
                                 select linha1.TOTAL_SERVICOS_NF).Sum(),

                CLIENTE = linha.TB_PEDIDO_VENDA.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_CLIENTE.NOMEFANTASIA_CLIENTE.Trim(),

                FORNECEDOR = linha.TB_PEDIDO_COMPRA.TB_FORNECEDOR.NOME_FANTASIA_FORNECEDOR.Trim(),

                CODIGO_PRODUTO = linha.TB_PEDIDO_VENDA.CODIGO_PRODUTO_PEDIDO.Trim(),

                DATA_ENTREGA = linha.TB_PEDIDO_VENDA.ENTREGA_PEDIDO
            }).Where(v => v.VALOR_PEDIDO_VENDA > (decimal)0.00).ToList();

            foreach (var item in query)
            {
                item.PESO_DE_IMPORTANCIA = item.VALOR_PEDIDO_VENDA.HasValue ?
                                           item.VALOR_PEDIDO_VENDA.Value : 0;

                item.PESO_DE_IMPORTANCIA += item.VALOR_6_MESES.HasValue ?
                                            item.VALOR_6_MESES.Value : 0;

                item.PESO_DE_IMPORTANCIA += item.MARGEM_MEDIA.HasValue ?
                                            item.MARGEM_MEDIA.Value : 0;

                item.PESO_DE_IMPORTANCIA += item.FREQUENCIA_DE_COMPRA.HasValue ?
                                            item.FREQUENCIA_DE_COMPRA.Value : 0;
            }

            var retorno = (from linha in query
                           orderby linha.DATA_ENTREGA, linha.CLIENTE_INADIMPLENTE, linha.PESO_DE_IMPORTANCIA descending
                           select linha).ToList();

            return(retorno);
        }
Esempio n. 6
0
        public List <string> GraficoCreditoCliente(decimal CODIGO_CLIENTE)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                DateTime amanha = DateTime.Today;
                amanha = amanha.AddDays(1);

                var aReceber = (from linha in ctx.TB_FINANCEIROs
                                where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                linha.DATA_VENCIMENTO >= amanha &&
                                linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.CREDITO_DEBITO == 0

                                select linha).Sum(ar => ar.VALOR_TOTAL);

                if (!aReceber.HasValue)
                {
                    aReceber = 0;
                }

                decimal Inadimplente = Doran_TitulosVencidos.TotalVencidos(Vencidos.RECEBER, CODIGO_CLIENTE, ID_EMPRESA);

                var limiteCliente = (from linha in ctx.TB_CLIENTEs
                                     where linha.ID_CLIENTE == CODIGO_CLIENTE
                                     select new
                {
                    linha.TB_LIMITE.VALOR_LIMITE
                }).ToList();

                decimal _limiteCliente = 0;

                foreach (var item in limiteCliente)
                {
                    _limiteCliente = (decimal)item.VALOR_LIMITE;
                }

                var EmAberto = (from linha in ctx.TB_FINANCEIROs
                                where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.CREDITO_DEBITO == 0

                                select linha).Sum(ab => ab.VALOR_TOTAL);

                EmAberto += Doran_Limite_Credito_Cliente.Limite_Excedido_Cliente(CODIGO_CLIENTE);

                if (EmAberto > _limiteCliente)
                {
                    EmAberto = EmAberto - _limiteCliente;
                }
                else
                {
                    EmAberto = 0;
                }

                var Abatimentos = (from linha in ctx.GetTable <TB_SALDO_CLIENTE_FORNECEDOR>()
                                   orderby linha.CODIGO_CLIENTE, linha.SALDO_RESTANTE

                                   where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                   linha.SALDO_RESTANTE > (decimal)0.00

                                   select linha).Sum(a => a.SALDO_RESTANTE);

                string _aReceber = aReceber.ToString();
                _aReceber = _aReceber.Replace(",", ".");

                string _Inadimplente = Inadimplente.ToString();
                _Inadimplente = _Inadimplente.Replace(",", ".");

                string _emAberto = EmAberto.ToString();
                _emAberto = _emAberto.Replace(",", ".");

                string _Abatimentos = Abatimentos.HasValue ? Abatimentos.ToString() : "";
                _Abatimentos = _Abatimentos.Replace(",", ".");

                List <string> retorno = new List <string>();

                retorno.Add("['Total a Receber', " + _aReceber + "]");
                retorno.Add("['Total Inadimplente', " + _Inadimplente + "]");
                retorno.Add("['Limite de Crédito Excedido', " + _emAberto + " ]");
                retorno.Add("['Abatimento(s)', " + _Abatimentos + " ]");

                return(retorno);
            }
        }