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; } }
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()); }
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()); } }
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; } }
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); }
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ório de Tí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çamento</td> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Vencimento</td> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Histó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;'> </td> <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'> </td> <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'> </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;'> </td> </tr></table>", "Total..:", ((decimal)Total).ToString("c")); r.InsereConteudo(_conteudo); retorno = r.SalvaDocumento("Doran_Titulos_Receber_Vencidos"); } return(retorno); } }
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)); } }
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); } }
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); } }
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; } }
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ç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; } }