예제 #1
0
        public string Lista_Custo_Venda(decimal ID_USUARIO)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    var query1 = from st in ctx.TB_CUSTO_VENDAs
                                 orderby st.DESCRICAO_CUSTO_VENDA
                                 select st;

                    DataTable dt = ApoioXML.ToDataTable(ctx, query1);

                    foreach (DataRow dr in dt.Rows)
                    {
                        dr["DESCRICAO_CUSTO_VENDA"] = string.Concat(dr[1].ToString().Trim(), " -  ", dr[0].ToString());
                    }

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

                    return(tr.ToString());
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, ID_USUARIO);
                throw ex;
            }
        }
예제 #2
0
        private string objQueryToXML(System.Data.Linq.DataContext ctx, object query, int rowCount, decimal ID_USUARIO)
        {
            DataTable dt = ApoioXML.ToDataTable(ctx, query);

            dt.Columns["CONTATOS"].MaxLength = 50000;

            foreach (DataRow dr in dt.Rows)
            {
                dr["CONTATOS"] = ContatosDoCliente(Convert.ToDecimal(dr["ID_CLIENTE"]), ID_USUARIO);
            }

            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());
        }
예제 #3
0
        public string Recebimentos(List <decimal> NUMERO_PEDIDO_COMPRA, List <decimal> NUMERO_ITEM_COMPRA)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                DataTable dtFinal = new DataTable("Tabela");

                for (int i = 0; i < NUMERO_PEDIDO_COMPRA.Count; i++)
                {
                    var query = (from linha in ctx.TB_RECEBIMENTO_PEDIDO_COMPRAs
                                 orderby linha.NUMERO_PEDIDO_COMPRA, linha.NUMERO_ITEM_COMPRA, linha.DATA_RECEBIMENTO descending
                                 where linha.NUMERO_PEDIDO_COMPRA == NUMERO_PEDIDO_COMPRA[i] &&
                                 linha.NUMERO_ITEM_COMPRA == NUMERO_ITEM_COMPRA[i]

                                 select new
                    {
                        linha.NUMERO_RECEBIMENTO,
                        linha.NUMERO_PEDIDO_COMPRA,
                        linha.NUMERO_ITEM_COMPRA,
                        linha.TB_PEDIDO_COMPRA.TB_PRODUTO.CODIGO_PRODUTO,
                        linha.TB_PEDIDO_COMPRA.TB_PRODUTO.DESCRICAO_PRODUTO,
                        linha.TB_PEDIDO_COMPRA.QTDE_ITEM_COMPRA,
                        linha.DATA_RECEBIMENTO,
                        linha.NUMERO_NF,
                        linha.QTDE_RECEBIDA,
                        linha.PESO_RECEBIDO,
                        linha.NUMERO_LOTE_RECEBIMENTO,
                        linha.ID_LOCAL
                    });

                    DataTable dt = ApoioXML.ToDataTable(ctx, query);

                    if (dtFinal.Columns.Count == 0)
                    {
                        dtFinal = dt.Copy();
                    }
                    else
                    {
                        foreach (DataRow dr in dt.Rows)
                        {
                            dtFinal.ImportRow(dr);
                        }
                    }
                }

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

                return(tr.ToString());
            }
        }
예제 #4
0
        public string Lista_CFOP_UF(decimal ID_UF, decimal ID_USUARIO)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    var query = from linha in ctx.TB_UF_CFOPs
                                where linha.ID_UF == ID_UF &&
                                (linha.CODIGO_CFOP_UF.StartsWith("5") ||
                                 linha.CODIGO_CFOP_UF.StartsWith("6") ||
                                 linha.CODIGO_CFOP_UF.StartsWith("7"))

                                select new
                    {
                        CODIGO_CFOP = linha.CODIGO_CFOP_UF,
                        linha.TB_CFOP.DESCRICAO_CFOP
                    };

                    DataTable dt = ApoioXML.ToDataTable(ctx, query);

                    foreach (DataRow dr in dt.Rows)
                    {
                        dr["DESCRICAO_CFOP"] = string.Concat(dr["CODIGO_CFOP"].ToString().Trim(), " - ",
                                                             dr["DESCRICAO_CFOP"].ToString().Trim());
                    }

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

                    return(tr.ToString());
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, ID_USUARIO);
                throw ex;
            }
        }
예제 #5
0
        public static decimal TotalVencidos(Vencidos recepberPagar, decimal CODIGO_CLIENTE_FORNECEDOR, decimal ID_EMPRESA)
        {
            DateTime dataLimite = Doran_TitulosVencidos.DataLimiteParaVencimento();
            decimal? retorno    = 0;

            if (recepberPagar == Vencidos.RECEBER)
            {
                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_FINANCEIROs
                                where linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.DATA_VENCIMENTO < dataLimite &&
                                linha.CREDITO_DEBITO == 0 &&
                                linha.CODIGO_EMITENTE == ID_EMPRESA

                                select linha;

                    if (CODIGO_CLIENTE_FORNECEDOR > 0)
                    {
                        query = query.Where(c => c.CODIGO_CLIENTE == CODIGO_CLIENTE_FORNECEDOR);
                    }
                    else
                    {
                        query = query.Where(c => c.CODIGO_CLIENTE > 0);
                    }

                    foreach (var item in query)
                    {
                        DateTime _vencimento = Convert.ToDateTime(item.DATA_VENCIMENTO);

                        while (Doran_TitulosVencidos.Feriado_FimDeSemana(_vencimento))
                        {
                            _vencimento = _vencimento.AddDays(1);
                        }

                        if (_vencimento < DateTime.Now)
                        {
                            retorno += (item.VALOR + item.VALOR_ACRESCIMO + item.VALOR_MULTA) - item.VALOR_DESCONTO;
                        }
                    }

                    DataTable dt = ApoioXML.ToDataTable(ctx, query);

                    foreach (DataRow dr in dt.Rows)
                    {
                        retorno -= Doran_TitulosVencidos.PagoParcialmente(Convert.ToDecimal(dr["NUMERO_FINANCEIRO"]));

                        if (retorno < (decimal)0.00)
                        {
                            retorno = 0;
                        }
                    }
                }
            }
            else
            {
                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_FINANCEIROs
                                where linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.DATA_VENCIMENTO < dataLimite &&
                                linha.CREDITO_DEBITO == 1 &&
                                linha.CODIGO_EMITENTE == ID_EMPRESA

                                && (linha.CODIGO_FORNECEDOR == CODIGO_CLIENTE_FORNECEDOR || CODIGO_CLIENTE_FORNECEDOR == 0)
                                select linha;

                    foreach (var item in query)
                    {
                        DateTime _vencimento = Convert.ToDateTime(item.DATA_VENCIMENTO);

                        while (Doran_TitulosVencidos.Feriado_FimDeSemana(_vencimento))
                        {
                            _vencimento = _vencimento.AddDays(1);
                        }

                        if (_vencimento < DateTime.Now)
                        {
                            retorno += (item.VALOR + item.VALOR_ACRESCIMO + item.VALOR_MULTA) - item.VALOR_DESCONTO;
                        }
                    }

                    DataTable dt = ApoioXML.ToDataTable(ctx, query);

                    foreach (DataRow dr in dt.Rows)
                    {
                        retorno -= Doran_TitulosVencidos.PagoParcialmente(Convert.ToDecimal(dr["NUMERO_FINANCEIRO"]));
                    }
                }
            }

            return(retorno.HasValue ? (decimal)retorno : 0);
        }
예제 #6
0
        public string MontaRelatorioAPagar()
        {
            string retorno = "";

            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 T&iacute;tulos a Pagar Vencidos", 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_FINANCEIROs
                                where linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.DATA_VENCIMENTO < DateTime.Now &&
                                linha.CREDITO_DEBITO == 1 &&
                                linha.HISTORICO.Contains(cliente_fornecedor) &&
                                linha.CODIGO_EMITENTE == ID_EMPRESA

                                && (linha.TB_NOTA_SAIDA.CODIGO_VENDEDOR_NF == VENDEDOR || VENDEDOR == 0)

                                select new
                    {
                        linha.NUMERO_FINANCEIRO,
                        linha.NUMERO_SEQ_NF_ENTRADA,
                        linha.NUMERO_NF_ENTRADA,
                        linha.NUMERO_SEQ_NF_SAIDA,
                        linha.NUMERO_NF_SAIDA,
                        linha.DATA_LANCAMENTO,
                        linha.DATA_VENCIMENTO,
                        linha.HISTORICO,
                        VALOR_TOTAL = (linha.VALOR + linha.VALOR_ACRESCIMO + linha.VALOR_MULTA) - linha.VALOR_DESCONTO,
                        linha.VALOR_APROXIMADO
                    };

                    DataTable dt = ApoioXML.ToDataTable(ctx, query);

                    string _conteudo = "<table style='width: 70%; font-family: tahoma; font-size: 8pt;'>";

                    _conteudo += @"<tr>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>NF / Duplicata</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Lan&ccedil;amento</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Vencimento</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Hist&oacute;rico</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0; text-align: right;'>Valor</td>
                                    <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Valor Aproximado?</td>
                                  </tr>";

                    decimal Total = 0;

                    int i = 0;

                    foreach (var item in query)
                    {
                        DateTime _vencimento = Convert.ToDateTime(item.DATA_VENCIMENTO);

                        while (Feriado_FimDeSemana(_vencimento))
                        {
                            _vencimento = _vencimento.AddDays(1);
                        }

                        DateTime _limite = DateTime.Now;

                        if (_limite.DayOfWeek == DayOfWeek.Saturday)
                        {
                            _limite = _limite.AddDays(-2);
                        }

                        if (_limite.DayOfWeek == DayOfWeek.Sunday)
                        {
                            _limite = _limite.AddDays(-3);
                        }

                        if (_vencimento < _limite)
                        {
                            string dupliacata = ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, item.NUMERO_SEQ_NF_ENTRADA,
                                                                                       item.DATA_VENCIMENTO);

                            decimal valor = (decimal)item.VALOR_TOTAL - Doran_TitulosVencidos.PagoParcialmente(item.NUMERO_FINANCEIRO);

                            _conteudo += string.Format(@"<tr>
                                        <td style='BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td>
                                        <td style='BORDER-LEFT: 1px solid; border-color:#C0C0C0;'>{1}</td>
                                        <td style='BORDER-LEFT: 1px solid; border-color:#C0C0C0;'>{2}</td>
                                        <td style='BORDER-LEFT: 1px solid; border-color:#C0C0C0;'>{3}</td>
                                        <td style='BORDER-LEFT: 1px solid; border-color:#C0C0C0; text-align: right;'>{4}</td>
                                        <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{5}</td>
                                      </tr>", dupliacata == "" ? "" : item.NUMERO_NF_ENTRADA.ToString() + "/" + dupliacata,
                                                       ApoioXML.Data((DateTime)item.DATA_LANCAMENTO),
                                                       ApoioXML.Data((DateTime)item.DATA_VENCIMENTO),
                                                       item.HISTORICO.Trim(),
                                                       ((decimal)valor).ToString("c"),
                                                       item.VALOR_APROXIMADO == 1 ? "S" : "");

                            Total += valor;
                            i++;
                        }
                    }

                    _conteudo += string.Format(@"<tr>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>&nbsp;</td>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>&nbsp;</td>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>&nbsp;</td>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>{0}</td>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>{1}</td>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>&nbsp;</td>
                                      </tr></table>", "Total..:", ((decimal)Total).ToString("c"));

                    r.InsereConteudo(_conteudo);

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

                return(retorno);
            }
        }
예제 #7
0
        public string ListaClientesComLimiteExcedido(Dictionary <string, object> dados)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                var query = from linha in ctx.TB_FINANCEIROs

                            where linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                            linha.CREDITO_DEBITO == 0 && linha.CODIGO_CLIENTE > 0 &&
                            (linha.TB_CLIENTE.NOME_CLIENTE.Contains(dados["pesquisa"].ToString()) ||
                             linha.TB_CLIENTE.NOMEFANTASIA_CLIENTE.Contains(dados["pesquisa"].ToString()))

                            group linha by new
                {
                    linha.CODIGO_CLIENTE,
                    linha.TB_CLIENTE.NOMEFANTASIA_CLIENTE,
                    linha.TB_CLIENTE.TB_MUNICIPIO.NOME_MUNICIPIO,
                    linha.TB_CLIENTE.TB_MUNICIPIO1.TB_UF.SIGLA_UF,
                    linha.TB_CLIENTE.TELEFONE_FATURA,
                    linha.TB_CLIENTE.TB_LIMITE.VALOR_LIMITE
                }
                into grupo

                    select new
                {
                    CODIGO_CLIENTE       = grupo.Key.CODIGO_CLIENTE,
                    NOMEFANTASIA_CLIENTE = grupo.Key.NOMEFANTASIA_CLIENTE,
                    CIDADE       = grupo.Key.NOME_MUNICIPIO,
                    UF           = grupo.Key.SIGLA_UF,
                    TELEFONE     = grupo.Key.TELEFONE_FATURA,
                    VALOR_LIMITE = grupo.Key.VALOR_LIMITE,

                    VALOR_EM_ABERTO = grupo.Sum(linha => linha.VALOR_TOTAL)
                };

                query = query.Where(m => m.VALOR_EM_ABERTO > 0);

                int rowCount = query.Count();

                query = query.Skip(Convert.ToInt32(dados["start"])).Take(Convert.ToInt32(dados["limit"]));

                DataTable dt = ApoioXML.ToDataTable(ctx, query);

                dt.Columns["VALOR_EM_ABERTO"].ReadOnly = false;

                foreach (DataRow dr in dt.Rows)
                {
                    decimal valorEmAberto = Convert.ToDecimal(dr["VALOR_EM_ABERTO"]);

                    valorEmAberto += Doran_Limite_Credito_Cliente.Limite_Excedido_Cliente(Convert.ToDecimal(dr["CODIGO_CLIENTE"]));

                    valorEmAberto -= Convert.ToDecimal(dr["VALOR_LIMITE"]);

                    if (valorEmAberto < (decimal)0.00)
                    {
                        valorEmAberto = 0;
                    }

                    dr["VALOR_EM_ABERTO"] = valorEmAberto;
                }

                return(ClientesInadimplentes(dt, rowCount, ID_EMPRESA));
            }
        }
예제 #8
0
        public string Monta_Vencimentos_NF()
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                decimal?COBRANCA_ISENTA = 0;

                _NUMERO_SEQ = COBRANCA_ISENTA == 1 ? -1 : _NUMERO_SEQ;

                CultureInfo cultura = CultureInfo.CurrentCulture;
                string[]    dias    = cultura.DateTimeFormat.DayNames;

                var query1 = from linha in ctx.TB_FINANCEIROs
                             where linha.NUMERO_SEQ_NF_SAIDA == _NUMERO_SEQ

                             select new
                {
                    VENCIMENTO = linha.DATA_VENCIMENTO,
                    VALOR      = linha.VALOR_TOTAL
                };

                DataTable dt1 = ApoioXML.ToDataTable(ctx, query1);

                dt1.Columns.Add("DIA");

                foreach (DataRow linha in dt1.Rows)
                {
                    linha["DIA"] = dias[(int)((DateTime)linha["VENCIMENTO"]).DayOfWeek].ToUpper();
                }

                string retorno = "";

                if (dt1.Rows.Count > 0)
                {
                    System.IO.StringWriter tr = new System.IO.StringWriter();
                    dt1.WriteXml(tr);

                    retorno = tr.ToString();
                }
                else
                {
                    decimal TOTAL_NF       = 0;
                    decimal CODIGO_CP      = 0;
                    decimal TOTAL_PRODUTOS = 0;

                    var query = (from nota in ctx.GetTable <TB_NOTA_SAIDA>()
                                 where nota.NUMERO_SEQ == _NUMERO_SEQ
                                 select new
                    {
                        nota.CODIGO_CP_NF,
                        nota.TOTAL_NF,
                        nota.TOTAL_SERVICOS_NF
                    }).ToList();

                    foreach (var item in query)
                    {
                        TOTAL_PRODUTOS = item.TOTAL_SERVICOS_NF.Value;
                        TOTAL_NF       = item.TOTAL_NF.Value;
                        CODIGO_CP      = item.CODIGO_CP_NF.Value;
                    }

                    Dictionary <DateTime, decimal> Parcelas = Calcula_Vencimentos_e_Valores(TOTAL_PRODUTOS, TOTAL_NF, CODIGO_CP);

                    if (COBRANCA_ISENTA == 1)
                    {
                        Parcelas.Clear();
                    }

                    DataTable dt = new DataTable("Tabela");

                    dt.Columns.Add("VENCIMENTO", typeof(DateTime));
                    dt.Columns.Add("DIA", typeof(string));
                    dt.Columns.Add("VALOR", typeof(decimal));

                    foreach (DateTime key in Parcelas.Keys)
                    {
                        if (query.First().TOTAL_NF > (decimal)0.00)
                        {
                            DataRow nova = dt.NewRow();
                            nova[0] = key;
                            nova[1] = dias[(int)((DateTime)key).DayOfWeek].ToUpper();
                            nova[2] = Parcelas[key];
                            dt.Rows.Add(nova);
                        }
                    }

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

                    retorno = tr.ToString();
                }

                return(retorno);
            }
        }
예제 #9
0
        public string Faturamento_Inadimplencia(DateTime dt1, DateTime dt2, decimal _ID_EMPRESA)
        {
            ID_EMPRESA = _ID_EMPRESA;

            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                int monthsApart = 12 * (dt1.Year - dt2.Year) + dt1.Month - dt2.Month;
                monthsApart = Math.Abs(monthsApart);

                dt2 = dt2.AddDays(1);
                dt2 = dt2.AddMonths(-monthsApart);

                List <decimal?> TotalFaturamento = new List <decimal?>();
                List <decimal?> TotalVencido     = new List <decimal?>();
                List <string>   Periodo          = new List <string>();
                decimal?        _totalVencido    = 0;

                for (int i = 0; i <= monthsApart; i++)
                {
                    var query = from linha in ctx.TB_FINANCEIROs
                                where (linha.DATA_VENCIMENTO >= dt1 &&
                                       linha.DATA_VENCIMENTO < dt2) &&
                                linha.CREDITO_DEBITO == 0 &&
                                linha.CODIGO_EMITENTE == ID_EMPRESA
                                select linha;

                    decimal?_total = query.Sum(tf => tf.VALOR_TOTAL);

                    if (!_total.HasValue)
                    {
                        TotalFaturamento.Add(0);
                    }
                    else
                    {
                        TotalFaturamento.Add(_total);
                    }

                    DateTime _vencido = dt1.Month == DateTime.Now.Month ?
                                        Doran_TitulosVencidos.DataLimiteParaVencimento() :
                                        dt2;

                    var query1 = from linha in ctx.TB_FINANCEIROs
                                 where (linha.DATA_VENCIMENTO >= dt1 &&
                                        linha.DATA_VENCIMENTO < _vencido) &&
                                 linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                 linha.CREDITO_DEBITO == 0 &&
                                 linha.CODIGO_EMITENTE == ID_EMPRESA
                                 select linha;

                    decimal tv = 0;

                    foreach (var item in query1)
                    {
                        DateTime _vencimento = Convert.ToDateTime(item.DATA_VENCIMENTO);

                        while (Doran_TitulosVencidos.Feriado_FimDeSemana(_vencimento))
                        {
                            _vencimento = _vencimento.AddDays(1);
                        }

                        if (_vencimento < DateTime.Now)
                        {
                            tv += (decimal)item.VALOR_TOTAL;
                        }
                    }

                    DataTable dt = ApoioXML.ToDataTable(ctx, query1);

                    foreach (DataRow dr in dt.Rows)
                    {
                        tv -= Doran_TitulosVencidos.PagoParcialmente(Convert.ToDecimal(dr["NUMERO_FINANCEIRO"]));
                    }

                    _totalVencido += tv;

                    TotalVencido.Add(_totalVencido);

                    Periodo.Add(dt1.Month.ToString().PadLeft(2, '0') + "/" + dt1.Year.ToString());

                    dt1 = dt1.AddMonths(1);
                    dt2 = dt1;
                    dt2 = dt2.AddMonths(1);
                    dt2 = dt2.AddSeconds(-1);
                }

                string retorno = "[";

                for (int i = 0; i < TotalFaturamento.Count; i++)
                {
                    string _totalFaturamento = TotalFaturamento[i].ToString();
                    _totalFaturamento = _totalFaturamento.Replace(",", ".");

                    string totalVencido = TotalVencido[i].ToString();
                    totalVencido = totalVencido.Replace(",", ".");

                    retorno += "{ periodo: '" + Periodo[i] + "', total_faturamento: " + _totalFaturamento + ", total_vencido: " + totalVencido + " },";
                }

                retorno = retorno.Substring(0, retorno.Length - 1) + "]";

                return(retorno);
            }
        }
예제 #10
0
        public string Carrega_Itens_Orcamento(Dictionary <string, object> dados)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    var query = from linha in ctx.TB_ITEM_ORCAMENTO_VENDAs
                                where linha.NUMERO_ORCAMENTO == Convert.ToDecimal(dados["NUMERO_ORCAMENTO"])
                                select new
                    {
                        linha.NUMERO_ORCAMENTO,
                        linha.NUMERO_ITEM,
                        linha.CODIGO_PRODUTO,
                        linha.DESCRICAO_PRODUTO_ITEM_ORCAMENTO,
                        linha.QTDE_PRODUTO,
                        linha.TIPO_DESCONTO,
                        linha.VALOR_DESCONTO,
                        linha.PRECO_PRODUTO,
                        linha.VALOR_TOTAL,
                        linha.OBS_ITEM_ORCAMENTO,
                        linha.NAO_GERAR_PEDIDO,
                        linha.NUMERO_PEDIDO_VENDA,
                        linha.PROGRAMACAO_ITEM_ORCAMENTO,
                        linha.DATA_ENTREGA,
                        ATRASADA = linha.DATA_ENTREGA < DateTime.Now ? 1 : 0,
                        linha.ALIQ_ISS,
                        VALOR_ISS = Math.Round(linha.VALOR_TOTAL.Value * (linha.ALIQ_ISS.Value / 100), 2, MidpointRounding.ToEven),
                        linha.CEP_FINAL_ITEM_ORCAMENTO,
                        linha.CEP_INICIAL_ITEM_ORCAMENTO,
                        linha.CIDADE_FINAL_ITEM_ORCAMENTO,
                        linha.CIDADE_INICIAL_ITEM_ORCAMENTO,
                        linha.COMPL_FINAL_ITEM_ORCAMENTO,
                        linha.COMPL_INICIAL_ITEM_ORCAMENTO,
                        linha.ENDERECO_FINAL_ITEM_ORCAMENTO,
                        linha.ENDERECO_INICIAL_ITEM_ORCAMENTO,
                        linha.ESTADO_FINAL_ITEM_ORCAMENTO,
                        linha.ESTADO_INICIAL_ITEM_ORCAMENTO,
                        linha.NUMERO_FINAL_ITEM_ORCAMENTO,
                        linha.NUMERO_INICIAL_ITEM_ORCAMENTO
                    };

                    var rowCount = query.Count();

                    query = query.Skip(Convert.ToInt32(dados["start"])).Take(Convert.ToInt32(dados["limit"]));

                    DataTable dt = ApoioXML.ToDataTable(ctx, query);

                    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());
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"]));
                throw ex;
            }
        }
예제 #11
0
        public string Carrega_Orcamentos(Dictionary <string, object> dados)
        {
            try
            {
                decimal CODIGO_VENDEDOR = Convert.ToDecimal(dados["ID_VENDEDOR"]);
                decimal GERENTE         = Convert.ToDecimal(dados["GERENTE_COMERCIAL"]);

                DateTime emissao = DateTime.TryParse(dados["EMISSAO"].ToString(), out emissao) ?
                                   Convert.ToDateTime(dados["EMISSAO"]) : DateTime.Today;

                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    var query = from linha in ctx.TB_ORCAMENTO_VENDAs
                                orderby linha.DATA_ORCAMENTO

                                where linha.DATA_ORCAMENTO >= emissao

                                && (linha.NUMERO_ORCAMENTO == Convert.ToDecimal(dados["NUMERO_ORCAMENTO"]) ||
                                    Convert.ToDecimal(dados["NUMERO_ORCAMENTO"]) == 0)

                                && (linha.CONTATO_ORCAMENTO.Contains(dados["EMPRESA_CONTATO"].ToString()) ||
                                    linha.TB_CLIENTE.NOME_CLIENTE.Contains(dados["EMPRESA_CONTATO"].ToString()) ||
                                    linha.TB_CLIENTE.NOMEFANTASIA_CLIENTE.Contains(dados["EMPRESA_CONTATO"].ToString()))

                                select new
                    {
                        linha.NUMERO_ORCAMENTO,
                        linha.DATA_ORCAMENTO,
                        linha.TB_CLIENTE.NOMEFANTASIA_CLIENTE,
                        linha.CONTATO_ORCAMENTO,
                        linha.TELEFONE_CONTATO,
                        linha.EMAIL_CONTATO,
                        linha.VALIDADE_ORCAMENTO,
                        linha.CODIGO_CLIENTE_ORCAMENTO,
                        linha.CODIGO_VENDEDOR,
                        linha.TB_VENDEDORE.NOME_VENDEDOR,
                        linha.OBS_NF_ORCAMENTO,

                        COND_PAGTO = linha.TB_COND_PAGTO.DESCRICAO_CP,

                        TOTAL_ORCAMENTO = (from linha1 in ctx.TB_ITEM_ORCAMENTO_VENDAs
                                           orderby linha1.NUMERO_ORCAMENTO, linha1.NUMERO_ITEM
                                           where linha1.NUMERO_ORCAMENTO == linha.NUMERO_ORCAMENTO
                                           select linha1).Sum(p => p.VALOR_TOTAL).HasValue ?

                                          (from linha1 in ctx.TB_ITEM_ORCAMENTO_VENDAs
                                           orderby linha1.NUMERO_ORCAMENTO, linha1.NUMERO_ITEM
                                           where linha1.NUMERO_ORCAMENTO == linha.NUMERO_ORCAMENTO
                                           select linha1).Sum(p => p.VALOR_TOTAL) : 0,

                        TOTAL_ISS = (from linha1 in ctx.TB_ITEM_ORCAMENTO_VENDAs
                                     orderby linha1.NUMERO_ORCAMENTO, linha1.NUMERO_ITEM
                                     where linha1.NUMERO_ORCAMENTO == linha.NUMERO_ORCAMENTO
                                     select linha1).Sum(p => p.VALOR_TOTAL * (p.ALIQ_ISS / 100)).HasValue ?

                                    (from linha1 in ctx.TB_ITEM_ORCAMENTO_VENDAs
                                     orderby linha1.NUMERO_ORCAMENTO, linha1.NUMERO_ITEM
                                     where linha1.NUMERO_ORCAMENTO == linha.NUMERO_ORCAMENTO
                                     select linha1).Sum(p => p.VALOR_TOTAL * (p.ALIQ_ISS / 100)) : 0,

                        TOTAL_PENDENTE = (from linha1 in ctx.TB_ITEM_ORCAMENTO_VENDAs
                                          orderby linha1.NUMERO_ORCAMENTO, linha1.NUMERO_ITEM
                                          where linha1.NUMERO_ORCAMENTO == linha.NUMERO_ORCAMENTO &&
                                          linha1.NUMERO_PEDIDO_VENDA == 0
                                          select linha1).Sum(p => p.VALOR_TOTAL).HasValue ?

                                         (from linha1 in ctx.TB_ITEM_ORCAMENTO_VENDAs
                                          orderby linha1.NUMERO_ORCAMENTO, linha1.NUMERO_ITEM
                                          where linha1.NUMERO_ORCAMENTO == linha.NUMERO_ORCAMENTO &&
                                          linha1.NUMERO_PEDIDO_VENDA == 0
                                          select linha1).Sum(p => p.VALOR_TOTAL) : 0,
                    };

                    var rowCount = query.Count();

                    var query1 = query.Skip(Convert.ToInt32(dados["start"])).Take(Convert.ToInt32(dados["limit"]));

                    DataTable dt = ApoioXML.ToDataTable(ctx, query1);

                    dt.Columns.Add("STATUS");
                    dt.Columns.Add("ID_STATUS");

                    foreach (DataRow dr in dt.Rows)
                    {
                        List <string> status = Status_Orcamento(Convert.ToDecimal(dr["NUMERO_ORCAMENTO"]));

                        if (status.Count == 0)
                        {
                            dr["STATUS"]    = "Or&ccedil;amento sem itens";
                            dr["ID_STATUS"] = 0;
                        }
                        else
                        {
                            dr["ID_STATUS"] = status[0];
                            dr["STATUS"]    = status[1];
                        }
                    }

                    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());
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"]));
                throw ex;
            }
        }