/// <summary> /// Calcula os impostos do item da nota fiscal (ICMS, Base ICMS, ICMS de Substituição, ICMS de Substituição e Total IPI, /// e grava na tabela TB_ITEM_NOTA_SAIDA /// </summary> /// <param name="dados">Objeto JSON com as informações das colunas da tabela</param> /// <returns>Retorna os totais da nota</returns> public Dictionary <string, object> Calcula_e_Grava_Item_Nota_Saida(Dictionary <string, object> dados) { using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { try { ctx.Connection.Open(); ctx.Transaction = ctx.Connection.BeginTransaction(IsolationLevel.ReadUncommitted); decimal CODIGO_CLIENTE = dados.ContainsKey("ID_CLIENTE") ? decimal.TryParse(dados["ID_CLIENTE"].ToString(), out CODIGO_CLIENTE) ? Convert.ToDecimal(dados["ID_CLIENTE"]) : 0 : 0; if (!dados.ContainsKey("ID_PRODUTO")) { dados.Add("ID_PRODUTO", Busca_ID_PRODUTO(dados["CODIGO_PRODUTO_ITEM_NF"].ToString())); } decimal ALIQ_ISS = dados.ContainsKey("ALIQ_ISS_ITEM_NF") ? decimal.TryParse(dados["ALIQ_ISS_ITEM_NF"].ToString(), out ALIQ_ISS) ? Convert.ToDecimal(dados["ALIQ_ISS_ITEM_NF"]) : 0 : decimal.TryParse(dados["ALIQ_ISS"].ToString(), out ALIQ_ISS) ? Convert.ToDecimal(dados["ALIQ_ISS"]) : 0; decimal VALOR_TOTAL_ITEM_NF = Convert.ToDecimal(dados["VALOR_TOTAL_ITEM_NF"]); decimal VALOR_ISS_ITEM_NF = ALIQ_ISS > Convert.ToDecimal(0.00) ? Math.Round(VALOR_TOTAL_ITEM_NF * (ALIQ_ISS / 100), 2, MidpointRounding.ToEven) : 0; decimal BASE_ISS_ITEM_NF = VALOR_TOTAL_ITEM_NF; System.Data.Linq.Table <TB_ITEM_NOTA_SAIDA> Entidade = ctx.GetTable <TB_ITEM_NOTA_SAIDA>(); TB_ITEM_NOTA_SAIDA novo = new TB_ITEM_NOTA_SAIDA(); novo.NUMERO_ITEM_NF = _NUMERO_SEQ; novo.ID_PRODUTO_ITEM_NF = Convert.ToDecimal(dados["ID_PRODUTO"]); novo.CODIGO_PRODUTO_ITEM_NF = dados["CODIGO_PRODUTO_ITEM_NF"].ToString(); novo.DESCRICAO_PRODUTO_ITEM_NF = dados["DESCRICAO_PRODUTO_ITEM_NF"].ToString(); novo.UNIDADE_MEDIDA_ITEM_NF = dados["UNIDADE_MEDIDA_ITEM_NF"].ToString(); novo.QTDE_ITEM_NF = Convert.ToDecimal(dados["QTDE_ITEM_NF"]); novo.VALOR_UNITARIO_ITEM_NF = Convert.ToDecimal(dados["VALOR_UNITARIO_ITEM_NF"]); novo.VALOR_DESCONTO_ITEM_NF = dados.ContainsKey("VALOR_DESCONTO_ITEM_NF") ? Convert.ToDecimal(dados["VALOR_DESCONTO_ITEM_NF"]) : 0; novo.VALOR_TOTAL_ITEM_NF = VALOR_TOTAL_ITEM_NF; novo.VALOR_ISS_ITEM_NF = VALOR_ISS_ITEM_NF; novo.ALIQ_ISS_ITEM_NF = ALIQ_ISS; novo.BASE_ISS_ITEM_NF = BASE_ISS_ITEM_NF; novo.NUMERO_PEDIDO_VENDA = dados.ContainsKey("NUMERO_PEDIDO_VENDA") ? Convert.ToDecimal(dados["NUMERO_PEDIDO_VENDA"]) : 0; novo.NUMERO_ITEM_PEDIDO_VENDA = dados.ContainsKey("NUMERO_ITEM_PEDIDO_VENDA") ? Convert.ToDecimal(dados["NUMERO_ITEM_PEDIDO_VENDA"]) : 0; Entidade.InsertOnSubmit(novo); Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), ID_USUARIO); ctx.SubmitChanges(); Dictionary <string, decimal> linha1 = new Dictionary <string, decimal>(); linha1.Add("TOTAL_SERVICOS_NF", VALOR_TOTAL_ITEM_NF); linha1.Add("TOTAL_ISS_NF", VALOR_ISS_ITEM_NF); linha1.Add("BASE_ISS_NF", BASE_ISS_ITEM_NF); ctx.Transaction.Commit(); return(Calcula_e_Grava_Totais_Nota_Saida(linha1, true)); } catch { ctx.Transaction.Rollback(); throw; } } }
private void Analisa_Disponibilidade_Estoque() { using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var query = from linha in ctx.TB_PEDIDO_VENDAs orderby linha.NUMERO_PEDIDO where linha.NUMERO_PEDIDO == NUMERO_PEDIDO select new { linha.ID_PRODUTO_PEDIDO, linha.QTDE_PRODUTO_ITEM_PEDIDO, linha.TB_STATUS_PEDIDO.DESCRICAO_STATUS_PEDIDO, linha.TB_STATUS_PEDIDO.COR_STATUS, linha.TB_STATUS_PEDIDO.COR_FONTE_STATUS }; List <decimal?> STATUS_PEDIDO_EM_ANDAMENTO = new List <decimal?>(); STATUS_PEDIDO_EM_ANDAMENTO.Add(2); STATUS_PEDIDO_EM_ANDAMENTO.Add(3); STATUS_PEDIDO_EM_ANDAMENTO.Add(4); STATUS_PEDIDO_EM_ANDAMENTO.Add(9); STATUS_PEDIDO_EM_ANDAMENTO.Add(10); STATUS_PEDIDO_EM_ANDAMENTO.Add(11); STATUS_PEDIDO_EM_ANDAMENTO.Add(12); STATUS_PEDIDO_EM_ANDAMENTO.Add(13); STATUS_PEDIDO_EM_ANDAMENTO.Add(14); STATUS_PEDIDO_EM_ANDAMENTO.Add(15); string linhaHTML = ""; foreach (var item in query) { var query1 = from linha in ctx.TB_PEDIDO_VENDAs where (linha.ID_PRODUTO_PEDIDO == item.ID_PRODUTO_PEDIDO && STATUS_PEDIDO_EM_ANDAMENTO.Contains(linha.STATUS_ITEM_PEDIDO)) && linha.NUMERO_PEDIDO != NUMERO_PEDIDO select new { linha.NUMERO_PEDIDO, linha.CODIGO_PRODUTO_PEDIDO, linha.QTDE_PRODUTO_ITEM_PEDIDO, linha.UNIDADE_ITEM_PEDIDO, linha.TB_STATUS_PEDIDO.DESCRICAO_STATUS_PEDIDO, linha.TB_STATUS_PEDIDO.COR_STATUS, linha.TB_STATUS_PEDIDO.COR_FONTE_STATUS, linha.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_VENDEDORE.NOME_VENDEDOR }; decimal?SOMA = query1.Sum(s => s.QTDE_PRODUTO_ITEM_PEDIDO); if (SOMA.HasValue) { foreach (var item1 in query1) { linhaHTML += string.Concat("<tr><td style='font-family: tahoma; text-align: center;'>", item1.NUMERO_PEDIDO.ToString(), "</td><td style='font-family: tahoma; background-color: ", item1.COR_STATUS.Trim(), "; color: ", item1.COR_FONTE_STATUS.Trim(), ";'>", item1.DESCRICAO_STATUS_PEDIDO.Trim(), "</td><td style='font-family: tahoma;'>", item1.CODIGO_PRODUTO_PEDIDO.Trim(), "</td><td style='font-family: tahoma; text-align: center;'>", ApoioXML.Valor2((decimal)item1.QTDE_PRODUTO_ITEM_PEDIDO), "</td><td style='font-family: tahoma; text-align: center;'>", item1.UNIDADE_ITEM_PEDIDO.Trim(), "</td>", "<td style='font-family: tahoma;'>", string.IsNullOrEmpty(item1.NOME_VENDEDOR) ? "" : item1.NOME_VENDEDOR.Trim(), "</td></tr>"); } } } if (linhaHTML.Length > 0) { string tabelaHTML = string.Concat("<table style='width: 100%;'>", "<tr><td style='font-family: tahoma; font-weight: bold; width: 80px; text-align: center;' >Pedido</td>", "<td style='font-family: tahoma; font-weight: bold; width: 170px;'>Posição do Item</td>", "<td style='font-family: tahoma; font-weight: bold;'>Produto</td>", "<td style='font-family: tahoma; font-weight: bold; width: 70px; text-align: center;'>Qtde.</td>", "<td style='font-family: tahoma; font-weight: bold; width: 35px; text-align: center;'>Un.</td>", "<td style='font-family: tahoma; font-weight: bold;'>Vendedor(a)</td></tr>", linhaHTML, "</table>"); AdicionaRestricao(CRITERIOS_DE_ANALISE.Analise_Estoque, tabelaHTML); } } }
public string ListaClientes(Dictionary <string, string> dados) { try { using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var query = from cliente in ctx.TB_CLIENTEs join ufs in ctx.TB_UFs on cliente.ESTADO_FATURA equals ufs.ID_UF where cliente.NOMEFANTASIA_CLIENTE.StartsWith(dados["nomeFantasia"].ToString()) && cliente.NOME_CLIENTE.Contains(dados["nome"].ToString()) orderby cliente.NOMEFANTASIA_CLIENTE select new { cliente.ID_CLIENTE, cliente.NOME_CLIENTE, cliente.NOMEFANTASIA_CLIENTE, cliente.CNPJ_CLIENTE, cliente.IE_CLIENTE, cliente.IE_SUFRAMA, cliente.ENDERECO_FATURA, cliente.NUMERO_END_FATURA, cliente.COMP_END_FATURA, cliente.CEP_FATURA, cliente.BAIRRO_FATURA, cliente.CIDADE_FATURA, DESCRICAO_CIDADE_FATURA = cliente.TB_MUNICIPIO.NOME_MUNICIPIO, cliente.ESTADO_FATURA, DESCRICAO_ESTADO_FATURA = ufs.DESCRICAO_UF, cliente.TELEFONE_FATURA, cliente.ENDERECO_ENTREGA, cliente.CEP_ENTREGA, cliente.BAIRRO_ENTREGA, cliente.CIDADE_ENTREGA, cliente.ESTADO_ENTREGA, cliente.TELEFONE_ENTREGA, cliente.ENDERECO_COBRANCA, cliente.CEP_COBRANCA, cliente.BAIRRO_COBRANCA, cliente.CIDADE_COBRANCA, cliente.ESTADO_COBRANCA, cliente.TELEFONE_COBRANCA, cliente.CODIGO_CP_CLIENTE, cliente.CONTATOS, cliente.FORNECEDOR, cliente.CODIGO_VENDEDOR_CLIENTE }; int rowCount = query.Count(); var query2 = query.Skip(Convert.ToInt32(dados["start"])).Take(Convert.ToInt32(dados["limit"])); return(objQueryToXML(ctx, query2, rowCount, Convert.ToDecimal(dados["ID_USUARIO"]))); } } catch (Exception ex) { Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"])); throw ex; } }
public string Imprime_Pedido(string LOGIN_USUARIO) { string str1 = ""; string modeloORCAMENTO = ConfigurationManager.AppSettings["Modelo_PEDIDO"]; string modeloPEDIDO_ProximaPagina = ConfigurationManager.AppSettings["Modelo_PEDIDO_ProximaPagina"]; _NUMERO_ITENS_PRIMEIRA_PAGINA = Convert.ToDecimal(ConfigurationManager.AppSettings["NUMERO_ITENS_PRIMEIRA_PAGINA_PEDIDO"]); _NUMERO_ITENS_PROXIMA_PAGINA = Convert.ToDecimal(ConfigurationManager.AppSettings["NUMERO_ITENS_PROXIMA_PAGINA_PEDIDO"]); using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var GERENTE_COMERCIAL = (from linha in ctx.TB_USUARIOs where linha.ID_USUARIO == ID_USUARIO select linha).Any() ? (from linha in ctx.TB_USUARIOs where linha.ID_USUARIO == ID_USUARIO select linha.GERENTE_COMERCIAL).First() : 0; var query = (from linha in ctx.TB_PEDIDO_VENDAs where linha.NUMERO_PEDIDO == NUMERO_PEDIDO && linha.TB_STATUS_PEDIDO.STATUS_ESPECIFICO != 4 select linha).ToList(); int nItens = query.Count(); decimal ITENS_RESTANTES = nItens > _NUMERO_ITENS_PRIMEIRA_PAGINA ? nItens - _NUMERO_ITENS_PRIMEIRA_PAGINA : 0; if (ITENS_RESTANTES == 0) { _PAGINAS = 1; } else { decimal NR_PAGINAS_RESTANTES = Convert.ToInt32(ITENS_RESTANTES / _NUMERO_ITENS_PROXIMA_PAGINA); _PAGINAS = NR_PAGINAS_RESTANTES + 1; } using (TextReader tr = new StreamReader(modeloORCAMENTO)) { _htmlPEDIDO.Append(tr.ReadToEnd()); } StringBuilder htmlPEDIDO = _htmlPEDIDO; htmlPEDIDO = SetaVariaveisPedido(htmlPEDIDO, true, LOGIN_USUARIO); StringBuilder linhaProduto = new StringBuilder(); linhaProduto.Append(@"<tr> <td style=""WIDTH: 362px"">#PRODUTO#</td> <td style=""WIDTH: 80px"" align=""middle"">#QTDE#</td> <td style=""WIDTH: 30px"" align=""middle"">#UN#</td> <td style=""WIDTH: 80px"" align=""right"">#CUSTO#</td> <td style=""WIDTH: 60px"" align=""middle"">#MARGEM#</td> <td style=""WIDTH: 80px"" align=""right"">#PRECO#</td> <td style=""WIDTH: 98px"" align=""right"">#TOTAL#</td> <td style=""WIDTH: 70px"" align=""right"">#IPI#</td> <td style=""WIDTH: 70px"" align=""right"">#ICMS#</td> <td style=""WIDTH: 70px"" align=""right"">#ICMS_ST#</td></tr></tbody></table> <table style=""WIDTH: 1100px""> <tbody> <tr> <td><b>Nr. Pedido do Cliente:</b> #NUMERO_ITEM_PEDIDO_CLIENTE#</td> <td colspan=""2""><b>Código do Cliente:</b></td> <td colspan=""2"">#CODIGO_ITEM_CLIENTE#</td> <td colspan=""5""><b>Ordem Compra:</b> #ORDEM_COMPRA#</td></tr> <tr> <td style=""border-bottom-style: solid; border-bottom-width: 1px; border-color: #000000;"" colspan=""5""><b>Obs.:</b> #OBS_ITEM#</td> <td style=""border-bottom-style: solid; border-bottom-width: 1px; border-color: #000000;"" align=""right""><b>Posição:</b></td> <td style=""border-bottom-style: solid; border-bottom-width: 1px; border-color: #000000;"">#STATUS_PEDIDO#</td> <td style=""border-bottom-style: solid; border-bottom-width: 1px; border-color: #000000;"" align=""right""><b>Entrega:</b></td> <td style=""border-bottom-style: solid; border-bottom-width: 1px; border-color: #000000;"">#ENTREGA#</td></tr></tbody></table> <div style=""TEXT-ALIGN: right""> <table style=""WIDTH: 1100px""> <tbody>"); StringBuilder itemPEDIDO = new StringBuilder(); int itens = 1; int _CONFIG_NUMERO_ITENS_NF = Convert.ToInt32(_NUMERO_ITENS_PRIMEIRA_PAGINA); foreach (var item in query) { if (itens > _CONFIG_NUMERO_ITENS_NF) { htmlPEDIDO = htmlPEDIDO.Replace(linhaProduto.ToString(), itemPEDIDO.ToString()); GravaPaginaPEDIDO(htmlPEDIDO); _CONFIG_NUMERO_ITENS_NF = Convert.ToInt32(_NUMERO_ITENS_PROXIMA_PAGINA); _htmlPEDIDO.Remove(0, _htmlPEDIDO.Length); using (TextReader tr = new StreamReader(modeloPEDIDO_ProximaPagina)) { _htmlPEDIDO.Append(tr.ReadToEnd()); } htmlPEDIDO = SetaVariaveisPedido(_htmlPEDIDO, false, LOGIN_USUARIO); itemPEDIDO.Remove(0, itemPEDIDO.Length); itens = 1; } itemPEDIDO.Append(linhaProduto); string Sugestao_Fornecedor = ""; var query1 = (from linha1 in ctx.TB_CUSTO_ITEM_PEDIDO_VENDAs orderby linha1.NUMERO_PEDIDO, linha1.NUMERO_ITEM_PEDIDO where (linha1.NUMERO_PEDIDO == item.NUMERO_PEDIDO && linha1.NUMERO_ITEM_PEDIDO == item.NUMERO_ITEM) && linha1.NUMERO_CUSTO_VENDA == 9 select linha1).ToList(); if (query1.Any()) { Sugestao_Fornecedor = string.Concat(" - <b>Fornecedor (Vendas):</b> ", query1.First().CODIGO_FORNECEDOR.HasValue&& query1.First().CODIGO_FORNECEDOR.Value > 0 ? "[" + query1.First().TB_FORNECEDOR.NOME_FANTASIA_FORNECEDOR.Trim() + "] [" + query1.First().OBS_CUSTO_VENDA.Trim() + "]" : "[" + query1.First().OBS_CUSTO_VENDA.Trim() + "]"); } string DESCRICAO_PRODUTO = item.TB_ITEM_ORCAMENTO_VENDA.DESCRICAO_PRODUTO_ITEM_ORCAMENTO.Trim().Length > 0 ? item.TB_ITEM_ORCAMENTO_VENDA.DESCRICAO_PRODUTO_ITEM_ORCAMENTO.Trim() : item.TB_PRODUTO.DESCRICAO_PRODUTO.Trim(); string NUMERO_ORDEM_COMPRA = Busca_Ordens_Compra(item.NUMERO_PEDIDO, item.NUMERO_ITEM); itemPEDIDO = itemPEDIDO.Replace("#PRODUTO#", string.Concat("<span style='font-size: 9pt;'>", DESCRICAO_PRODUTO, "</span>")); itemPEDIDO = itemPEDIDO.Replace("#UN#", string.Concat("<span style='font-size: 9pt;'>", item.UNIDADE_ITEM_PEDIDO.Trim(), "</span>")); itemPEDIDO = itemPEDIDO.Replace("#QTDE#", string.Concat("<span style='font-size: 9pt;'>", ApoioXML.Valor2_2((decimal)item.QTDE_PRODUTO_ITEM_PEDIDO), "</span>")); itemPEDIDO = itemPEDIDO.Replace("#PRECO#", ApoioXML.formata_Valor_Impressao((decimal)item.PRECO_ITEM_PEDIDO, 4)); itemPEDIDO = itemPEDIDO.Replace("#TOTAL#", ApoioXML.formata_Valor_Impressao((decimal)item.VALOR_TOTAL_ITEM_PEDIDO, 2)); itemPEDIDO = itemPEDIDO.Replace("#ORDEM_COMPRA#", string.Concat("<span style='font-size: 9pt;'>", NUMERO_ORDEM_COMPRA, "</span>")); itemPEDIDO = itemPEDIDO.Replace("#OBS_ITEM#", string.Concat("<span style='font-size: 9pt;'>", item.OBS_ITEM_PEDIDO.Trim(), "</span>")); itemPEDIDO = itemPEDIDO.Replace("#ENTREGA#", string.Concat("<span style='font-size: 9pt;'>", ApoioXML.TrataData2(item.ENTREGA_PEDIDO), "</span>")); itemPEDIDO = itemPEDIDO.Replace("#STATUS_PEDIDO#", string.Concat("<span style='font-size: 9pt;'>", item.TB_STATUS_PEDIDO.DESCRICAO_STATUS_PEDIDO.Trim(), "</span>")); itemPEDIDO = itemPEDIDO.Replace("#LIDER#", BuscaLider(item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_VENDEDORE.SUPERVISOR_LIDER)); itens++; } htmlPEDIDO = htmlPEDIDO.Replace(linhaProduto.ToString(), itemPEDIDO.ToString()); GravaPaginaPEDIDO(htmlPEDIDO); htmlPEDIDO = _htmlPEDIDO; Merge(_Arquivo); str1 = ConfigurationManager.AppSettings["PastaVirtualPDF"] + _Arquivo.Substring(_Arquivo.LastIndexOf("\\") + 1); } return(str1); }
public string Lista_TB_ITEM_ORCAMENTO_VENDA(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.ID_PRODUTO, linha.CODIGO_PRODUTO, linha.DESCRICAO_PRODUTO_ITEM_ORCAMENTO, linha.QTDE_PRODUTO, linha.PRECO_PRODUTO, linha.VALOR_TOTAL, linha.UNIDADE_PRODUTO, linha.VALOR_DESCONTO, linha.TIPO_DESCONTO, linha.ALIQ_ISS, VALOR_ISS = Math.Round(linha.VALOR_TOTAL.Value * (linha.ALIQ_ISS.Value / 100), 2, MidpointRounding.ToEven), linha.DATA_ENTREGA, linha.NUMERO_PEDIDO_VENDA, linha.OBS_ITEM_ORCAMENTO, linha.PROGRAMACAO_ITEM_ORCAMENTO, linha.NAO_GERAR_PEDIDO, 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, linha.DISTANCIA_EM_METROS }; string retorno = ""; if (dados.ContainsKey("start")) { var rowCount = query.Count(); query = query.Skip(Convert.ToInt32(dados["start"])).Take(Convert.ToInt32(dados["limit"])); retorno = ApoioXML.objQueryToXML(ctx, query, rowCount); } else { retorno = ApoioXML.objQueryToXML(ctx, query); } return(retorno); } } catch (Exception ex) { Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"])); throw ex; } }
public string Imprime_Orcamento() { string str1 = ""; string modeloORCAMENTO = ConfigurationManager.AppSettings["Modelo_ORCAMENTO"]; string modeloORCAMENTO_ProximaPagina = ConfigurationManager.AppSettings["Modelo_ORCAMENTO_ProximaPagina"]; _NUMERO_ITENS_PRIMEIRA_PAGINA = Convert.ToDecimal(ConfigurationManager.AppSettings["NUMERO_ITENS_PRIMEIRA_PAGINA"]); _NUMERO_ITENS_PROXIMA_PAGINA = Convert.ToDecimal(ConfigurationManager.AppSettings["NUMERO_ITENS_PROXIMA_PAGINA"]); 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 == _NUMERO_ORCAMENTO select linha).ToList(); int nItens = query.Count(); if (nItens < (_NUMERO_ITENS_PRIMEIRA_PAGINA + 1)) { _PAGINAS = 1; } else { if (Convert.ToInt32((nItens - _NUMERO_ITENS_PRIMEIRA_PAGINA) % _NUMERO_ITENS_PROXIMA_PAGINA) > 0.00) { _PAGINAS = Convert.ToInt32((nItens - _NUMERO_ITENS_PRIMEIRA_PAGINA) / _NUMERO_ITENS_PROXIMA_PAGINA) + 2; } else { _PAGINAS = ((nItens - _NUMERO_ITENS_PRIMEIRA_PAGINA) / _NUMERO_ITENS_PROXIMA_PAGINA) + 1; } } using (TextReader tr = new StreamReader(modeloORCAMENTO)) { _htmlORCAMENTO.Append(tr.ReadToEnd()); } StringBuilder htmlORCAMENTO = _htmlORCAMENTO; htmlORCAMENTO = SetaVariaveisOrcamento(htmlORCAMENTO, true); StringBuilder linhaProduto = new StringBuilder(); linhaProduto.Append(@"<tr style=""border-bottom: solid 1px;""> <td style=""border-left-width: 1px; border-left-style: solid;"" valign=""top""> #DESCRICAO_PRODUTO# </td> <td style=""border-left-width: 1px; border-left-style: solid;"" valign=""top""> #UNIDADE# </td> <td align=""right"" style=""border-left-width: 1px; border-left-style: solid;"" valign=""top""> #QTDE# </td> <td align=""right"" style=""border-left-width: 1px; border-left-style: solid;"" valign=""top""> #PRECO# </td> <td align=""right"" style=""border-left-width: 1px; border-left-style: solid;"" valign=""top""> #TOTAL_ITEM# </td> <td align=""right"" style=""border-left-width: 1px; border-left-style: solid;"" valign=""top""> #VALOR_ISS# </td> </tr> <tr style=""border-bottom: solid 1px;""> <td colspan=""9"" style=""border-left-width: 1px; border-left-style: solid;"" valign=""top""> #OBS_ITEM# </td> </tr>"); StringBuilder itemORCAMENTO = new StringBuilder(); int itens = 1; int _CONFIG_NUMERO_ITENS_NF = Convert.ToInt32(_NUMERO_ITENS_PRIMEIRA_PAGINA); foreach (var item in query) { if (itens > _CONFIG_NUMERO_ITENS_NF) { htmlORCAMENTO = htmlORCAMENTO.Replace(linhaProduto.ToString(), itemORCAMENTO.ToString()); GravaPaginaORCAMENTO(htmlORCAMENTO); _CONFIG_NUMERO_ITENS_NF = Convert.ToInt32(_NUMERO_ITENS_PROXIMA_PAGINA); _htmlORCAMENTO.Remove(0, _htmlORCAMENTO.Length); using (TextReader tr = new StreamReader(modeloORCAMENTO_ProximaPagina)) { _htmlORCAMENTO.Append(tr.ReadToEnd()); } htmlORCAMENTO = SetaVariaveisOrcamento(_htmlORCAMENTO, false); itemORCAMENTO.Remove(0, itemORCAMENTO.Length); itens = 1; } itemORCAMENTO.Append(linhaProduto); CultureInfo info = CultureInfo.CurrentCulture; string DESCRICAO_PRODUTO = item.DESCRICAO_PRODUTO_ITEM_ORCAMENTO.Trim(); decimal PRECO_FINAL = item.TIPO_DESCONTO.Value == 0 ? Math.Round(item.PRECO_PRODUTO.Value * (1 - (item.VALOR_DESCONTO.Value / 100)), 4) : Math.Round(item.PRECO_PRODUTO.Value - item.VALOR_DESCONTO.Value, 4); string dados_Entrega = string.Concat(@"<table style=""border-width: 1px; border-style: solid; font-name: tahoma; font-size: 9pt;""><tr><td><b>Origem</b><br /> <b>Endereço:</b> ", item.ENDERECO_INICIAL_ITEM_ORCAMENTO.Trim(), " ", item.NUMERO_INICIAL_ITEM_ORCAMENTO.Trim(), " ", item.COMPL_INICIAL_ITEM_ORCAMENTO.Trim(), @"<br /> <b>CEP:</b> ", item.CEP_INICIAL_ITEM_ORCAMENTO.Trim(), " - <b>Cidade:</b> ", item.CIDADE_INICIAL_ITEM_ORCAMENTO.Trim(), " - <b>Estado:</b> ", item.ESTADO_INICIAL_ITEM_ORCAMENTO.Trim(), @"</td> <td><td><b>Destino</b><br /> <b>Endereço:</b> ", item.ENDERECO_FINAL_ITEM_ORCAMENTO.Trim(), " ", item.NUMERO_FINAL_ITEM_ORCAMENTO.Trim(), " ", item.COMPL_FINAL_ITEM_ORCAMENTO.Trim(), @"<br /> <b>CEP:</b> ", item.CEP_FINAL_ITEM_ORCAMENTO.Trim(), " - <b>Cidade:</b> ", item.CIDADE_FINAL_ITEM_ORCAMENTO.Trim(), " - <b>Estado:</b> ", item.ESTADO_FINAL_ITEM_ORCAMENTO.Trim(), @"</td> </tr></table>"); itemORCAMENTO = itemORCAMENTO.Replace("#DESCRICAO_PRODUTO#", string.Concat("<span style='font-size: 9pt;'>", DESCRICAO_PRODUTO, "</span>")); itemORCAMENTO = itemORCAMENTO.Replace("#UNIDADE#", string.Concat("<span style='font-size: 9pt;'>", item.UNIDADE_PRODUTO.Trim(), "</span>")); itemORCAMENTO = itemORCAMENTO.Replace("#QTDE#", string.Concat("<span style='font-size: 9pt;'>", ApoioXML.Valor2((decimal)item.QTDE_PRODUTO), "</span>")); itemORCAMENTO = itemORCAMENTO.Replace("#PRECO#", ApoioXML.formata_Valor_Impressao(PRECO_FINAL, 4)); itemORCAMENTO = itemORCAMENTO.Replace("#TOTAL_ITEM#", ApoioXML.formata_Valor_Impressao((decimal)item.VALOR_TOTAL, 2)); itemORCAMENTO = itemORCAMENTO.Replace("#VALOR_ISS#", Math.Round(item.VALOR_TOTAL.Value * (item.ALIQ_ISS.Value / 100), 2, MidpointRounding.ToEven).ToString("c")); itemORCAMENTO = itemORCAMENTO.Replace("#OBS_ITEM#", string.Concat(dados_Entrega, item.OBS_ITEM_ORCAMENTO.Trim().Length == 0 ? " " : item.OBS_ITEM_ORCAMENTO.Trim(), "<br /><br />")); itens += 1; } htmlORCAMENTO = htmlORCAMENTO.Replace(linhaProduto.ToString(), itemORCAMENTO.ToString()); if (_PAGINAS == 1 && (query.Count - 7) > 16) { htmlORCAMENTO.Append("<div style='page-break-after: always;'></div>"); } if (_PAGINAS > 1) { int ITENS_PROXIMAS_PAGINAS = query.Count - (int)_NUMERO_ITENS_PRIMEIRA_PAGINA; int ITENS_ULTIMA_PAGINA = 0; if (ITENS_PROXIMAS_PAGINAS > _NUMERO_ITENS_PROXIMA_PAGINA) { for (int i = 0; i < ITENS_PROXIMAS_PAGINAS; i += (int)_NUMERO_ITENS_PROXIMA_PAGINA) { ITENS_ULTIMA_PAGINA = i; } ITENS_ULTIMA_PAGINA = ITENS_PROXIMAS_PAGINAS - ITENS_ULTIMA_PAGINA; } else { ITENS_ULTIMA_PAGINA = ITENS_PROXIMAS_PAGINAS; } if ((ITENS_ULTIMA_PAGINA - 7) > 30) { htmlORCAMENTO.Append("<div style='page-break-after: always;'></div>"); } } string strTotais = @"<hr align=""left"" width=""770""> <table width=""770"" style=""font-name: tahoma; font-size: 9pt;""> <tbody> <tr> <td style=""WIDTH: 50%""></td> <td> <table width=""100%""> <tbody> <tr> <td align=""right""><b>Sub Total:</b> </td> <td align=""right"">#TOTAL_SERVICOS# </td></tr> <tr> <td align=""right""><b>Total de ISS:</b> </td> <td align=""right"">#TOTAL_ISS# </td></tr> <tr> <td align=""right""><b>Total do Orçamento:</b> </td> <td align=""right"">#TOTAL_ORCAMENTO# </td></tr></tbody></table></td></tr></tbody></table>"; using (Doran_Comercial_Orcamentos orc = new Doran_Comercial_Orcamentos(_NUMERO_ORCAMENTO, ID_USUARIO)) { Dictionary <string, object> totais = orc.Calcula_Totais_Orcamento(); strTotais = strTotais.Replace("#TOTAL_SERVICOS#", totais["VALOR_TOTAL"].ToString()); strTotais = strTotais.Replace("#TOTAL_ISS#", totais["VALOR_ISS"].ToString()); strTotais = strTotais.Replace("#TOTAL_ORCAMENTO#", totais["TOTAL_ORCAMENTO"].ToString()); } htmlORCAMENTO.Append(strTotais); GravaPaginaORCAMENTO(htmlORCAMENTO); htmlORCAMENTO = _htmlORCAMENTO; Merge(_Arquivo); str1 = ConfigurationManager.AppSettings["PastaVirtualPDF"] + _Arquivo.Substring(_Arquivo.LastIndexOf("\\") + 1); arquivo_final = ConfigurationManager.AppSettings["PastaFisicaPDF"] + _Arquivo.Substring(_Arquivo.LastIndexOf("\\") + 1); } return(str1); }
public string MontaRelatorioEmissao() { string retorno = ""; using (Th2_Report r = new Th2_Report(ExpertPdf.HtmlToPdf.PdfPageSize.A4, ExpertPdf.HtmlToPdf.PDFPageOrientation.Portrait)) { r.ID_EMPRESA = ID_EMPRESA; DateTime df = DataFinal.AddSeconds(-1); string nome_banco = ""; using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { if (Banco > 0) { nome_banco = (from linha in ctx.TB_BANCOs where linha.NUMERO_BANCO == Banco select linha.NOME_BANCO.Trim()).ToList().First().Trim(); } } string cabecalho = string.Format("Relatório Títulos a Receber por Emissão<br /><span style='font-family: Tahoma; font-size: 8pt;'>Período de {0} até {1}<br />{2}</span>", ApoioXML.TrataData2(DataInicial), ApoioXML.TrataData2(df), Banco > 0 ? "Banco: " + nome_banco : ""); r.DefineCabecalho(cabecalho, 60); using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { ctx.Connection.Open(); ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;"); DateTime _dt = DataInicial; StringBuilder _conteudo = new StringBuilder(); _conteudo.Append("<table style='width: 70%; font-family: tahoma; font-size: 8pt;'>"); _conteudo.Append(@"<tr> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>NF / Duplicata</td> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Emissão</td> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Vencimento</td> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Pagamento</td> <td style='BORDER-BOTTOM: 1px solid; width: 280px; border-color:#C0C0C0;'>Histórico</td> <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Valor do Título</td> </tr>"); var query = from linha in ctx.TB_FINANCEIROs orderby linha.DATA_LANCAMENTO where (linha.DATA_LANCAMENTO >= DataInicial && linha.DATA_LANCAMENTO < DataFinal) && linha.CODIGO_EMITENTE == ID_EMPRESA && linha.CREDITO_DEBITO == 0 && (linha.NUMERO_BANCO == Banco || Banco == 0) select new { linha.NUMERO_FINANCEIRO, linha.NUMERO_SEQ_NF_SAIDA, linha.NUMERO_NF_SAIDA, linha.DATA_LANCAMENTO, linha.DATA_VENCIMENTO, linha.DATA_PAGAMENTO, linha.HISTORICO, linha.VALOR_TOTAL }; decimal TOTAL_PERIODO = 0; foreach (var item in query) { string pagamento = ApoioXML.Data((DateTime)item.DATA_PAGAMENTO) == "01/01/1901" ? "" : ApoioXML.Data((DateTime)item.DATA_PAGAMENTO); _conteudo.Append(string.Format(@"<tr> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td> <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td> <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{5}</td> </tr>", item.NUMERO_NF_SAIDA.ToString() + "/" + ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, 0, item.DATA_VENCIMENTO), ApoioXML.Data((DateTime)item.DATA_LANCAMENTO), ApoioXML.Data((DateTime)item.DATA_VENCIMENTO), pagamento, item.HISTORICO.Trim(), ApoioXML.Valor2((decimal)item.VALOR_TOTAL))); TOTAL_PERIODO += (decimal)item.VALOR_TOTAL; } _conteudo.Append(string.Format(@"<tr> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td> <td style='font-size: 7pt; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td> <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>Total:</td> <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td> </tr>", ApoioXML.Valor2(TOTAL_PERIODO))); _conteudo.Append("</table>"); r.InsereConteudo(_conteudo.ToString()); retorno = r.SalvaDocumento("Doran_Titulos_Receber_Emissao"); } return(retorno); } }
private string AtualizaStatusPedido(decimal?NUMERO_PEDIDO, decimal?NUMERO_ITEM, decimal?QTDE_A_FATURAR, decimal?QTDE_PEDIDO) { string retorno = ""; using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { try { ctx.Connection.Open(); ctx.Transaction = ctx.Connection.BeginTransaction(IsolationLevel.ReadUncommitted); var totalQtde = (from linha in ctx.TB_ITEM_NOTA_SAIDAs where linha.NUMERO_PEDIDO_VENDA == NUMERO_PEDIDO && linha.NUMERO_ITEM_PEDIDO_VENDA == NUMERO_ITEM && new List <decimal?>() { 1, 2 }.Contains(linha.TB_NOTA_SAIDA.STATUS_NF) select linha.QTDE_ITEM_NF).Sum(); decimal status = 0; decimal codigo_status = 0; if (totalQtde < QTDE_PEDIDO) { status = 2; } if (totalQtde >= QTDE_PEDIDO) { status = 3; } //////////////////////// var numerosInternos = (from linha in ctx.TB_ITEM_NOTA_SAIDAs where linha.NUMERO_PEDIDO_VENDA == NUMERO_PEDIDO && linha.NUMERO_ITEM_PEDIDO_VENDA == NUMERO_ITEM && new List <decimal?>() { 1, 2 }.Contains(linha.TB_NOTA_SAIDA.STATUS_NF) select linha.NUMERO_ITEM_NF).ToList().Distinct(); string cNumerosInternos = ""; foreach (var item in numerosInternos) { cNumerosInternos += string.Concat(item.ToString(), "/"); } if (cNumerosInternos.Length > 0) { cNumerosInternos = cNumerosInternos.Substring(0, cNumerosInternos.Length - 1); } var numerosNF = (from linha in ctx.TB_ITEM_NOTA_SAIDAs where linha.NUMERO_PEDIDO_VENDA == NUMERO_PEDIDO && linha.NUMERO_ITEM_PEDIDO_VENDA == NUMERO_ITEM && new List <decimal?>() { 1, 2 }.Contains(linha.TB_NOTA_SAIDA.STATUS_NF) select linha.TB_NOTA_SAIDA.NUMERO_NF).ToList().Distinct(); string cNumerosNF = ""; foreach (var item in numerosNF) { cNumerosNF += string.Concat(item.ToString(), "/"); } if (cNumerosNF.Length > 0) { cNumerosNF = cNumerosNF.Substring(0, cNumerosNF.Length - 1); } var query = (from linha in ctx.TB_STATUS_PEDIDOs where linha.STATUS_ESPECIFICO == status select new { linha.DESCRICAO_STATUS_PEDIDO, linha.COR_STATUS, linha.COR_FONTE_STATUS, linha.CODIGO_STATUS_PEDIDO }).ToList(); string qtdeC_Faturada = totalQtde.HasValue ? totalQtde.ToString() : "0"; qtdeC_Faturada = qtdeC_Faturada.Replace(",", "."); string qtdeC_Faturar = "0"; if (totalQtde.HasValue) { qtdeC_Faturar = status == 2 ? (QTDE_PEDIDO - totalQtde).ToString() : "0"; } qtdeC_Faturar = qtdeC_Faturar.Replace(",", "."); foreach (var item in query) { retorno = string.Concat("[{NUMERO_PEDIDO: ", NUMERO_PEDIDO.ToString(), ", NUMERO_ITEM: ", NUMERO_ITEM.ToString(), ", COR_STATUS: '", item.COR_STATUS.Trim(), "', COR_FONTE_STATUS: '", item.COR_FONTE_STATUS.Trim(), "', DESCRICAO_STATUS_PEDIDO: '", item.DESCRICAO_STATUS_PEDIDO.Trim(), "', CODIGO_STATUS_PEDIDO: ", item.CODIGO_STATUS_PEDIDO, ", QTDE_A_FATURAR: ", qtdeC_Faturar, ", QTDE_FATURADA: ", qtdeC_Faturada, ", NUMEROS_INTERNOS: '", cNumerosInternos, "', NUMEROS_NF: '", cNumerosNF, "'}],"); codigo_status = item.CODIGO_STATUS_PEDIDO; } var pedido = (from linha in ctx.TB_PEDIDO_VENDAs where linha.NUMERO_PEDIDO == NUMERO_PEDIDO && linha.NUMERO_ITEM == NUMERO_ITEM select linha).ToList(); DateTime _hoje = DateTime.Now; foreach (var item in pedido) { var DATA_STATUS_ANTERIOR = (from linha in ctx.TB_MUDANCA_STATUS_PEDIDOs where linha.NUMERO_PEDIDO_VENDA == item.NUMERO_PEDIDO && linha.NUMERO_ITEM_VENDA == item.NUMERO_ITEM select linha).Any() ? (from linha in ctx.TB_MUDANCA_STATUS_PEDIDOs where linha.NUMERO_PEDIDO_VENDA == item.NUMERO_PEDIDO && linha.NUMERO_ITEM_VENDA == item.NUMERO_ITEM select linha.DATA_MUDANCA).Max() : item.DATA_PEDIDO; System.Data.Linq.Table <Doran_Servicos_ORM.TB_MUDANCA_STATUS_PEDIDO> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_MUDANCA_STATUS_PEDIDO>(); Doran_Servicos_ORM.TB_MUDANCA_STATUS_PEDIDO novo = new Doran_Servicos_ORM.TB_MUDANCA_STATUS_PEDIDO(); novo.NUMERO_PEDIDO_VENDA = item.NUMERO_PEDIDO; novo.NUMERO_ITEM_VENDA = item.NUMERO_ITEM; novo.DATA_MUDANCA = _hoje; novo.ID_USUARIO = ID_USUARIO; novo.ID_STATUS_ANTERIOR = item.STATUS_ITEM_PEDIDO; novo.ID_STATUS_NOVO = codigo_status; novo.DATA_STATUS_ANTERIOR = DATA_STATUS_ANTERIOR; novo.ID_PRODUTO = item.ID_PRODUTO_PEDIDO; Entidade.InsertOnSubmit(novo); Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert_PEDIDO_VENDA(ctx, novo, Entidade.ToString(), item.NUMERO_PEDIDO, ID_USUARIO); ctx.SubmitChanges(); item.QTDE_A_FATURAR = status == 2 ? QTDE_PEDIDO - totalQtde : 0; item.ID_USUARIO_ITEM_A_FATURAR = 0; item.ITEM_A_FATURAR = 0; item.STATUS_ITEM_PEDIDO = codigo_status; Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update_PEDIDO_VENDA(ctx, ctx.TB_PEDIDO_VENDAs.GetModifiedMembers(item), ctx.TB_PEDIDO_VENDAs.ToString(), (decimal)NUMERO_PEDIDO, ID_USUARIO); ctx.SubmitChanges(); } ctx.Transaction.Commit(); } catch { ctx.Transaction.Rollback(); throw; } return(retorno); } }
public string Fatura_Pedidos() { using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var clientes = (from linha in ctx.TB_PEDIDO_VENDAs orderby linha.ID_USUARIO_ITEM_A_FATURAR, linha.ITEM_A_FATURAR, linha.NUMERO_PEDIDO where (linha.ID_USUARIO_ITEM_A_FATURAR == ID_USUARIO && linha.ITEM_A_FATURAR == 1) select linha.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_CLIENTE_ORCAMENTO).Distinct().ToList(); if (clientes.Count == 0) { throw new Exception("Não há itens marcados para faturar.<br />Marque os itens antes de faturar o(s) serviço(s)"); } for (int i = 0; i < clientes.Count; i++) { var query = (from linha in ctx.TB_PEDIDO_VENDAs orderby linha.ID_USUARIO_ITEM_A_FATURAR, linha.ITEM_A_FATURAR, linha.NUMERO_PEDIDO where (linha.ID_USUARIO_ITEM_A_FATURAR == ID_USUARIO && linha.ITEM_A_FATURAR == 1) && linha.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_CLIENTE_ORCAMENTO == clientes[i] select linha).ToList(); decimal NUMERO_NOTA_FISCAL = 0; decimal SUFRAMA = 0; List <string> DADOS_ADICIONAIS_CFOP = new List <string>(); using (Doran_Nota_Saida nota1 = new Doran_Nota_Saida(ID_EMPRESA, ID_USUARIO)) { Dictionary <string, object> dados = new Dictionary <string, object>(); dados.Add("IE_SUBST_TRIB_NF", ""); dados.Add("CODIGO_CLIENTE_NF", query.First().TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_CLIENTE_ORCAMENTO); dados.Add("DATA_EMISSAO_NF", ApoioXML.TrataData2(DateTime.Today)); dados.Add("CODIGO_CP_NF", query.First().TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_COND_PAGTO); dados.Add("BASE_ISS_NF", 0); dados.Add("VALOR_ICMS_NF", 0); dados.Add("BASE_ICMS_SUBS_NF", 0); dados.Add("VALOR_ICMS_SUBS_NF", 0); dados.Add("TOTAL_PRODUTOS_NF", 0); dados.Add("VALOR_SEGURO_NF", 0); dados.Add("OUTRAS_DESP_NF", 0); dados.Add("TOTAL_IPI_NF", 0); dados.Add("TOTAL_NF", 0); var _dados_fatura = (from linha in ctx.TB_DADOS_FATURAMENTOs where linha.NUMERO_PEDIDO == query.First().NUMERO_PEDIDO select linha).ToList(); if (!_dados_fatura.Any()) { throw new Exception("Os dados de faturamento não foram confirmados"); } var dados_fatura = _dados_fatura.First(); dados.Add("PLACA_VEICULO_NF", string.Empty); dados.Add("QTDE_NF", dados_fatura.QTDE_NF.ToString()); dados.Add("ESPECIE_NF", dados_fatura.ESPECIE.Trim()); dados.Add("MARCA_NF", dados_fatura.MARCA.Trim()); dados.Add("NUMERO_QTDE_NF", dados_fatura.NUMERACAO.Trim()); dados.Add("DADOS_ADICIONAIS_NF", dados_fatura.OBS_NF.Trim()); dados.Add("CODIGO_VENDEDOR_NF", query.First().TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_VENDEDOR); dados.Add("NUMERO_PEDIDO_NF", dados_fatura.NUMERO_PEDIDO_CLIENTE.Trim()); dados.Add("CHAVE_ACESSO_NF", ""); dados.Add("PROTOCOLO_AUTORIZACAO_NF", ""); dados.Add("SERIE", SERIE); NUMERO_NOTA_FISCAL = nota1.Nova_Nota_Saida(dados); } int nItem = 0; foreach (var item in query) { using (Doran_Calculo_Nota_Saida nota2 = new Doran_Calculo_Nota_Saida(NUMERO_NOTA_FISCAL, ID_USUARIO)) { Dictionary <string, object> dados = new Dictionary <string, object>(); dados.Add("CODIGO_PRODUTO_ITEM_NF", item.CODIGO_PRODUTO_PEDIDO.Trim()); dados.Add("QTDE_ITEM_NF", item.QTDE_A_FATURAR); dados.Add("DESCRICAO_PRODUTO_ITEM_NF", item.TB_ITEM_ORCAMENTO_VENDA.DESCRICAO_PRODUTO_ITEM_ORCAMENTO.Trim().Length > 0 ? item.TB_ITEM_ORCAMENTO_VENDA.DESCRICAO_PRODUTO_ITEM_ORCAMENTO.Trim() : item.TB_PRODUTO.DESCRICAO_PRODUTO.Trim()); dados.Add("UNIDADE_MEDIDA_ITEM_NF", item.UNIDADE_ITEM_PEDIDO.Trim()); dados.Add("VALOR_UNITARIO_ITEM_NF", item.PRECO_ITEM_PEDIDO); dados.Add("VALOR_DESCONTO_ITEM_NF", item.VALOR_DESCONTO_ITEM_PEDIDO); dados.Add("ALIQ_ISS", item.ALIQ_ISS_ITEM_PEDIDO); dados.Add("VALOR_TOTAL_ITEM_NF", item.VALOR_TOTAL_ITEM_PEDIDO); dados.Add("NUMERO_PEDIDO_VENDA", item.NUMERO_PEDIDO); dados.Add("NUMERO_ITEM_PEDIDO_VENDA", item.NUMERO_ITEM); dados.Add("ID_PRODUTO", item.ID_PRODUTO_PEDIDO); dados.Add("ID_CLIENTE", item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_CLIENTE_ORCAMENTO); dados.Add("SUFRAMA_CFOP", SUFRAMA); string x = ""; for (var y = 0; y < DADOS_ADICIONAIS_CFOP.Count; y++) { x += string.Concat(DADOS_ADICIONAIS_CFOP[y], " - "); } dados.Add("DADOS_ADICIONAIS_CFOP", x); Dictionary <string, object> retorno = nota2.Calcula_e_Grava_Item_Nota_Saida(dados); STATUS_NF += AtualizaStatusPedido(item.NUMERO_PEDIDO, item.NUMERO_ITEM, item.QTDE_A_FATURAR, item.QTDE_PRODUTO_ITEM_PEDIDO); nItem++; } } } STATUS_NF = STATUS_NF.Substring(0, STATUS_NF.Length - 1) + "]"; return(STATUS_NF); } }
public string Lista_Cotacao(decimal ID_EMPRESA, string NOME_FANTASIA_EMITENTE) { string retorno = ""; string FORNECEDOR = ""; using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var _FORNECEDOR = (from linha in ctx.TB_FORNECEDORs where linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR select linha.NOME_FANTASIA_FORNECEDOR).ToList(); foreach (var item in _FORNECEDOR) { FORNECEDOR = item.Trim(); } } using (Th2_Report r = new Th2_Report(ExpertPdf.HtmlToPdf.PdfPageSize.A4, ExpertPdf.HtmlToPdf.PDFPageOrientation.Portrait)) { r.ID_EMPRESA = ID_EMPRESA; r.DefineCabecalho(NOME_FANTASIA_EMITENTE.Trim() + " - COTAÇÃO Nº " + NUMERO_PEDIDO_COMPRA.ToString() + "<br />" + FORNECEDOR, 60); using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var query = (from linha in ctx.TB_PEDIDO_COMPRAs orderby linha.NUMERO_PEDIDO_COMPRA where linha.NUMERO_PEDIDO_COMPRA == NUMERO_PEDIDO_COMPRA && linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR && linha.COTACAO_RESPONDIDA == 0 select linha).ToList(); string _conteudo = "<table style='width: 70%; font-family: tahoma; font-size: 8pt;'>"; _conteudo += @"<tr> <td style='BORDER-BOTTOM: 1px solid;'>Produto</td> <td style='BORDER-BOTTOM: 1px solid;'>Descrição</td> <td style='BORDER-BOTTOM: 1px solid;'>Un.</td> <td style='BORDER-BOTTOM: 1px solid;'>Qtde.</td> <td style='BORDER-BOTTOM: 1px solid;'>Entrega</td> <td style='BORDER-BOTTOM: 1px solid;'>Preço</td> </tr>"; foreach (var item in query) { _conteudo += string.Format(@"<tr> <td style='BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td> <td style='BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>{1}</td> <td style='BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>{2}</td> <td style='BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>{3}</td> <td style='BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>{4}</td> <td style='BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'></td> </tr>", item.CODIGO_PRODUTO_COMPRA.ToString(), item.TB_PRODUTO.DESCRICAO_PRODUTO.Trim(), item.UNIDADE_ITEM_COMPRA, ApoioXML.ValorN((decimal)item.QTDE_ITEM_COMPRA, 2), string.Concat(item.PREVISAO_ENTREGA_ITEM_COMPRA.Value.Day.ToString().PadLeft(2, '0'), "/", item.PREVISAO_ENTREGA_ITEM_COMPRA.Value.Month.ToString().PadLeft(2, '0'), "/", item.PREVISAO_ENTREGA_ITEM_COMPRA.Value.Year.ToString())); } r.InsereConteudo(_conteudo); retorno = r.SalvaDocumento("Doran_Lista_Cotacao"); } return(retorno); } }
public Dictionary <string, object> Copia_Orcamento(decimal ID_USUARIO, double DIAS_PRAZO_ORCAMENTO) { Dictionary <string, object> retorno = new Dictionary <string, object>(); DateTime entrega = DateTime.Today; while (Doran_TitulosVencidos.Feriado_FimDeSemana(entrega)) { entrega = entrega.AddDays(1); } using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var query = (from linha in ctx.TB_ORCAMENTO_VENDAs where linha.NUMERO_ORCAMENTO == NUMERO_ORCAMENTO select linha).ToList(); foreach (var item in query) { System.Data.Linq.Table <TB_ORCAMENTO_VENDA> Entidade = ctx.GetTable <TB_ORCAMENTO_VENDA>(); TB_ORCAMENTO_VENDA novo = new TB_ORCAMENTO_VENDA(); using (Doran_Comercial_Orcamentos oc = new Doran_Comercial_Orcamentos(NUMERO_ORCAMENTO, ID_USUARIO)) { CHAVE_ORCAMENTO = oc.CRIA_CHAVE_ORCAMENTO(); } if (CHAVE_ORCAMENTO.Length > 100) { CHAVE_ORCAMENTO = CHAVE_ORCAMENTO.Substring(0, 100); } novo.DATA_ORCAMENTO = DateTime.Now; novo.CODIGO_COND_PAGTO = item.CODIGO_COND_PAGTO; novo.CODIGO_CLIENTE_ORCAMENTO = item.CODIGO_CLIENTE_ORCAMENTO; novo.CODIGO_VENDEDOR = item.CODIGO_VENDEDOR; novo.CONTATO_ORCAMENTO = item.CONTATO_ORCAMENTO; novo.EMAIL_CONTATO = item.EMAIL_CONTATO; novo.NUMERO_REVISAO = 1; novo.TELEFONE_CONTATO = item.TELEFONE_CONTATO; novo.TEXTO_PROPOSTA = item.TEXTO_PROPOSTA; novo.CHAVE_ORCAMENTO = CHAVE_ORCAMENTO; novo.ID_UF_ORCAMENTO = item.ID_UF_ORCAMENTO; novo.OBS_ORCAMENTO = item.OBS_ORCAMENTO; novo.VALIDADE_ORCAMENTO = DateTime.Today.AddDays(DIAS_PRAZO_ORCAMENTO); novo.NUMERO_REVISAO = 0; novo.OBS_NF_ORCAMENTO = item.OBS_NF_ORCAMENTO; Entidade.InsertOnSubmit(novo); Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), ID_USUARIO); retorno.Add("DATA_ORCAMENTO", ApoioXML.TrataData2(DateTime.Today)); retorno.Add("NOMEFANTASIA_CLIENTE", item.TB_CLIENTE.NOMEFANTASIA_CLIENTE.Trim()); retorno.Add("CONTATO_ORCAMENTO", item.CONTATO_ORCAMENTO.Trim()); retorno.Add("TELEFONE_CONTATO", item.TELEFONE_CONTATO.Trim()); retorno.Add("EMAIL_CONTATO", item.EMAIL_CONTATO.Trim()); retorno.Add("VALIDADE_ORCAMENTO", ApoioXML.TrataData2(DateTime.Today.AddDays(DIAS_PRAZO_ORCAMENTO))); retorno.Add("CODIGO_CLIENTE_ORCAMENTO", item.CODIGO_CLIENTE_ORCAMENTO); retorno.Add("STATUS", "<span style='background-color: #FF3300; color: #FFFFFF;'>Pendente</span>"); retorno.Add("ID_STATUS", "3"); retorno.Add("OBS_NF_ORCAMENTO", item.OBS_NF_ORCAMENTO); retorno.Add("NOME_VENDEDOR", item.TB_VENDEDORE.NOME_VENDEDOR.Trim()); ctx.SubmitChanges(); } } using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var _NUMERO_ORCAMENTO = (from linha in ctx.TB_ORCAMENTO_VENDAs orderby linha.CHAVE_ORCAMENTO where linha.CHAVE_ORCAMENTO == CHAVE_ORCAMENTO select linha.NUMERO_ORCAMENTO).First(); NOVO_NUMERO_ORCAMENTO = _NUMERO_ORCAMENTO; retorno.Add("NUMERO_ORCAMENTO", NOVO_NUMERO_ORCAMENTO); var query = (from linha in ctx.TB_ITEM_ORCAMENTO_VENDAs orderby linha.NUMERO_ORCAMENTO, linha.NUMERO_ITEM where linha.NUMERO_ORCAMENTO == NUMERO_ORCAMENTO select linha).ToList(); int i = 0; foreach (var item in query) { using (Doran_ERP_Servicos_DadosDataContext ctx1 = new Doran_ERP_Servicos_DadosDataContext()) { System.Data.Linq.Table <TB_ITEM_ORCAMENTO_VENDA> Entidade = ctx1.GetTable <TB_ITEM_ORCAMENTO_VENDA>(); TB_ITEM_ORCAMENTO_VENDA novo = new TB_ITEM_ORCAMENTO_VENDA(); novo.NUMERO_ORCAMENTO = NOVO_NUMERO_ORCAMENTO; novo.ID_PRODUTO = item.ID_PRODUTO; novo.CODIGO_PRODUTO = item.CODIGO_PRODUTO; novo.QTDE_PRODUTO = item.QTDE_PRODUTO; novo.PRECO_PRODUTO = item.PRECO_PRODUTO; novo.UNIDADE_PRODUTO = item.UNIDADE_PRODUTO; novo.VALOR_TOTAL = item.VALOR_TOTAL; novo.TIPO_DESCONTO = item.TIPO_DESCONTO; novo.VALOR_DESCONTO = item.VALOR_DESCONTO; novo.ALIQ_ISS = item.ALIQ_ISS; novo.DATA_ENTREGA = entrega; novo.OBS_ITEM_ORCAMENTO = item.OBS_ITEM_ORCAMENTO; novo.NUMERO_PEDIDO_VENDA = 0; novo.NAO_GERAR_PEDIDO = 0; novo.PROGRAMACAO_ITEM_ORCAMENTO = 0; novo.DESCRICAO_PRODUTO_ITEM_ORCAMENTO = item.DESCRICAO_PRODUTO_ITEM_ORCAMENTO.Trim(); novo.ITEM_APROVADO = item.ITEM_APROVADO; Entidade.InsertOnSubmit(novo); Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx1, novo, Entidade.ToString(), ID_USUARIO); ctx1.SubmitChanges(); GravaCustos(i, item.NUMERO_ITEM, entrega, ID_USUARIO); i++; } } } retorno.Add("TOTAL_ORCAMENTO", Doran_Comercial_Orcamentos.Calcula_Total_Orcamento(NOVO_NUMERO_ORCAMENTO)); return(retorno); }
public static Dictionary <DateTime, decimal> Calcula_Vencimentos_e_Valores(decimal TOTAL_SERVICOS, decimal TOTAL_NF, decimal CODIGO_CP) { decimal QTDE_PARCELAS = 0; decimal DIAS_PARCELA1_CP = 0; decimal DIAS_PARCELA2_CP = 0; decimal DIAS_PARCELA3_CP = 0; decimal DIAS_PARCELA4_CP = 0; decimal DIAS_PARCELA5_CP = 0; decimal DIAS_PARCELA6_CP = 0; decimal DIAS_PARCELA7_CP = 0; decimal DIAS_PARCELA8_CP = 0; decimal DIAS_PARCELA9_CP = 0; decimal DIAS_PARCELA10_CP = 0; using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var query = (from linha in ctx.TB_COND_PAGTOs where linha.CODIGO_CP == CODIGO_CP select linha).ToList(); foreach (var item in query) { QTDE_PARCELAS = (decimal)item.QTDE_PARCELAS_CP; DIAS_PARCELA1_CP = (decimal)item.DIAS_PARCELA1_CP; DIAS_PARCELA2_CP = (decimal)item.DIAS_PARCELA2_CP; DIAS_PARCELA3_CP = (decimal)item.DIAS_PARCELA3_CP; DIAS_PARCELA4_CP = (decimal)item.DIAS_PARCELA4_CP; DIAS_PARCELA5_CP = (decimal)item.DIAS_PARCELA5_CP; DIAS_PARCELA6_CP = (decimal)item.DIAS_PARCELA6_CP; DIAS_PARCELA7_CP = (decimal)item.DIAS_PARCELA7_CP; DIAS_PARCELA8_CP = (decimal)item.DIAS_PARCELA8_CP; DIAS_PARCELA9_CP = (decimal)item.DIAS_PARCELA9_CP; DIAS_PARCELA10_CP = (decimal)item.DIAS_PARCELA10_CP; } } Dictionary <DateTime, decimal> parcelas = new Dictionary <DateTime, decimal>(); decimal VALOR_PARCELA = 0; if (QTDE_PARCELAS > 0) { VALOR_PARCELA = TOTAL_SERVICOS / QTDE_PARCELAS; } DateTime venc1 = DateTime.Today.AddDays(1).AddSeconds(-1); venc1 = venc1.AddDays((double)DIAS_PARCELA1_CP); DateTime vencimento = DateTime.Today; DateTime venc2 = DIAS_PARCELA2_CP > 0 ? vencimento.AddDays((double)DIAS_PARCELA2_CP + 1).AddSeconds(-1) : vencimento; DateTime venc3 = DIAS_PARCELA3_CP > 0 ? vencimento.AddDays((double)DIAS_PARCELA3_CP + 1).AddSeconds(-1) : vencimento; DateTime venc4 = DIAS_PARCELA4_CP > 0 ? vencimento.AddDays((double)DIAS_PARCELA4_CP + 1).AddSeconds(-1) : vencimento; DateTime venc5 = DIAS_PARCELA5_CP > 0 ? vencimento.AddDays((double)DIAS_PARCELA5_CP + 1).AddSeconds(-1) : vencimento; DateTime venc6 = DIAS_PARCELA6_CP > 0 ? vencimento.AddDays((double)DIAS_PARCELA6_CP + 1).AddSeconds(-1) : vencimento; DateTime venc7 = DIAS_PARCELA7_CP > 0 ? vencimento.AddDays((double)DIAS_PARCELA7_CP + 1).AddSeconds(-1) : vencimento; DateTime venc8 = DIAS_PARCELA8_CP > 0 ? vencimento.AddDays((double)DIAS_PARCELA8_CP + 1).AddSeconds(-1) : vencimento; DateTime venc9 = DIAS_PARCELA9_CP > 0 ? vencimento.AddDays((double)DIAS_PARCELA9_CP + 1).AddSeconds(-1) : vencimento; DateTime venc10 = DIAS_PARCELA10_CP > 0 ? vencimento.AddDays((double)DIAS_PARCELA10_CP + 1).AddSeconds(-1) : vencimento; parcelas.Add(venc1, VALOR_PARCELA); if (QTDE_PARCELAS == 2) { parcelas.Add(venc2, Diferenca_Parcela(QTDE_PARCELAS, VALOR_PARCELA, TOTAL_NF)); } else if (QTDE_PARCELAS == 3) { parcelas.Add(venc2, VALOR_PARCELA); parcelas.Add(venc3, Diferenca_Parcela(QTDE_PARCELAS, VALOR_PARCELA, TOTAL_NF)); } else if (QTDE_PARCELAS == 4) { parcelas.Add(venc2, VALOR_PARCELA); parcelas.Add(venc3, VALOR_PARCELA); parcelas.Add(venc4, Diferenca_Parcela(QTDE_PARCELAS, VALOR_PARCELA, TOTAL_NF)); } else if (QTDE_PARCELAS == 5) { parcelas.Add(venc2, VALOR_PARCELA); parcelas.Add(venc3, VALOR_PARCELA); parcelas.Add(venc4, VALOR_PARCELA); parcelas.Add(venc5, Diferenca_Parcela(QTDE_PARCELAS, VALOR_PARCELA, TOTAL_NF)); } else if (QTDE_PARCELAS == 6) { parcelas.Add(venc2, VALOR_PARCELA); parcelas.Add(venc3, VALOR_PARCELA); parcelas.Add(venc4, VALOR_PARCELA); parcelas.Add(venc5, VALOR_PARCELA); parcelas.Add(venc6, Diferenca_Parcela(QTDE_PARCELAS, VALOR_PARCELA, TOTAL_NF)); } else if (QTDE_PARCELAS == 7) { parcelas.Add(venc2, VALOR_PARCELA); parcelas.Add(venc3, VALOR_PARCELA); parcelas.Add(venc4, VALOR_PARCELA); parcelas.Add(venc5, VALOR_PARCELA); parcelas.Add(venc6, VALOR_PARCELA); parcelas.Add(venc7, Diferenca_Parcela(QTDE_PARCELAS, VALOR_PARCELA, TOTAL_NF)); } else if (QTDE_PARCELAS == 8) { parcelas.Add(venc2, VALOR_PARCELA); parcelas.Add(venc3, VALOR_PARCELA); parcelas.Add(venc4, VALOR_PARCELA); parcelas.Add(venc5, VALOR_PARCELA); parcelas.Add(venc6, VALOR_PARCELA); parcelas.Add(venc7, VALOR_PARCELA); parcelas.Add(venc8, Diferenca_Parcela(QTDE_PARCELAS, VALOR_PARCELA, TOTAL_NF)); } else if (QTDE_PARCELAS == 9) { parcelas.Add(venc2, VALOR_PARCELA); parcelas.Add(venc3, VALOR_PARCELA); parcelas.Add(venc4, VALOR_PARCELA); parcelas.Add(venc5, VALOR_PARCELA); parcelas.Add(venc6, VALOR_PARCELA); parcelas.Add(venc7, VALOR_PARCELA); parcelas.Add(venc8, VALOR_PARCELA); parcelas.Add(venc9, Diferenca_Parcela(QTDE_PARCELAS, VALOR_PARCELA, TOTAL_NF)); } else if (QTDE_PARCELAS == 10) { parcelas.Add(venc2, VALOR_PARCELA); parcelas.Add(venc3, VALOR_PARCELA); parcelas.Add(venc4, VALOR_PARCELA); parcelas.Add(venc5, VALOR_PARCELA); parcelas.Add(venc6, VALOR_PARCELA); parcelas.Add(venc7, VALOR_PARCELA); parcelas.Add(venc8, VALOR_PARCELA); parcelas.Add(venc9, VALOR_PARCELA); parcelas.Add(venc10, Diferenca_Parcela(QTDE_PARCELAS, VALOR_PARCELA, TOTAL_NF)); } return(parcelas); }
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); } }
private void Gerar_Contas_a_Receber(Doran_ERP_Servicos_DadosDataContext ctx) { var query1 = (from item in ctx.TB_FINANCEIROs where item.NUMERO_SEQ_NF_SAIDA == _NUMERO_SEQ select item).ToList(); foreach (var linha in query1) { ctx.TB_FINANCEIROs.DeleteOnSubmit(linha); Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Delete(ctx, linha, ctx.TB_FINANCEIROs.ToString(), ID_USUARIO); } ctx.SubmitChanges(); var query = (from nota in ctx.TB_NOTA_SAIDAs where nota.NUMERO_SEQ == _NUMERO_SEQ select new { nota.CODIGO_CLIENTE_NF, nota.TOTAL_NF, nota.TOTAL_SERVICOS_NF, nota.TB_COND_PAGTO.CODIGO_CP, nota.TB_COND_PAGTO.DIAS_PARCELA1_CP, nota.TB_COND_PAGTO.DIAS_PARCELA2_CP, nota.TB_COND_PAGTO.DIAS_PARCELA3_CP, nota.TB_COND_PAGTO.DIAS_PARCELA4_CP, nota.TB_COND_PAGTO.DIAS_PARCELA5_CP, nota.TB_COND_PAGTO.DIAS_PARCELA6_CP, nota.TB_COND_PAGTO.DIAS_PARCELA7_CP, nota.TB_COND_PAGTO.DIAS_PARCELA8_CP, nota.TB_COND_PAGTO.DIAS_PARCELA9_CP, nota.TB_COND_PAGTO.DIAS_PARCELA10_CP, nota.TB_COND_PAGTO.QTDE_PARCELAS_CP }).ToList(); foreach (var item in query) { if (item.QTDE_PARCELAS_CP == 1) { Table <TB_FINANCEIRO> Entidade = ctx.GetTable <TB_FINANCEIRO>(); TB_FINANCEIRO novo = new TB_FINANCEIRO(); DateTime VENCTO = DateTime.Today; VENCTO = VENCTO.AddDays(1); VENCTO = VENCTO.AddSeconds(-1); VENCTO = VENCTO.AddDays((double)item.DIAS_PARCELA1_CP); novo.DATA_LANCAMENTO = DateTime.Now; novo.DATA_VENCIMENTO = VENCTO; novo.DATA_PAGAMENTO = new DateTime(1901, 1, 1); novo.NUMERO_SEQ_NF_ENTRADA = 0; novo.NUMERO_SEQ_NF_SAIDA = _NUMERO_SEQ; novo.CODIGO_CLIENTE = item.CODIGO_CLIENTE_NF; novo.CODIGO_FORNECEDOR = 0; novo.HISTORICO = string.Format("NOTA FISCAL: {0} - CLIENTE: {1} - VENDEDOR: {2}", _NUMERO_NF, _CLIENTE.Trim(), _VENDEDOR.Trim()); novo.VALOR = item.TOTAL_NF; novo.VALOR_DESCONTO = 0; novo.VALOR_ACRESCIMO = 0; novo.VALOR_TOTAL = item.TOTAL_NF; novo.CREDITO_DEBITO = 0; novo.NUMERO_NF_SAIDA = _NUMERO_NF; novo.NUMERO_NF_ENTRADA = 0; novo.VALOR_MULTA = 0; novo.PERC_JUROS_DIA = 0; novo.CODIGO_EMITENTE = ID_EMPRESA; novo.ID_PLANO = "5.1.1.001"; novo.VALOR_APROXIMADO = 0; novo.MARCA_REMESSA = 0; novo.REMESSA = 0; novo.RETORNO = 0; novo.NUMERO_BANCO = 0; novo.INSTRUCAO_REMESSA = 0; novo.NOSSO_NUMERO_BANCARIO = string.Empty; Entidade.InsertOnSubmit(novo); Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), ID_USUARIO); ctx.SubmitChanges(); } else { Dictionary <DateTime, decimal> Parcelas = Calcula_Vencimentos_e_Valores(item.TOTAL_SERVICOS_NF.Value, item.TOTAL_NF.Value, item.CODIGO_CP); foreach (DateTime key in Parcelas.Keys) { Table <TB_FINANCEIRO> Entidade = ctx.GetTable <TB_FINANCEIRO>(); TB_FINANCEIRO novo = new TB_FINANCEIRO(); novo.DATA_LANCAMENTO = DateTime.Now; novo.DATA_VENCIMENTO = key; novo.DATA_PAGAMENTO = new DateTime(1901, 1, 1); novo.NUMERO_SEQ_NF_ENTRADA = 0; novo.NUMERO_SEQ_NF_SAIDA = _NUMERO_SEQ; novo.CODIGO_CLIENTE = item.CODIGO_CLIENTE_NF; novo.CODIGO_FORNECEDOR = 0; novo.HISTORICO = string.Format("NOTA FISCAL: {0} - CLIENTE: {1} - VENDEDOR: {2}", _NUMERO_NF, _CLIENTE.Trim(), _VENDEDOR.Trim()); novo.VALOR = Parcelas[key]; novo.VALOR_DESCONTO = 0; novo.VALOR_ACRESCIMO = 0; novo.VALOR_TOTAL = Parcelas[key]; novo.CREDITO_DEBITO = 0; novo.NUMERO_NF_SAIDA = _NUMERO_NF; novo.NUMERO_NF_ENTRADA = 0; novo.VALOR_MULTA = 0; novo.PERC_JUROS_DIA = 0; novo.CODIGO_EMITENTE = ID_EMPRESA; novo.ID_PLANO = "5.1.1.001"; novo.VALOR_APROXIMADO = 0; novo.MARCA_REMESSA = 0; novo.REMESSA = 0; novo.RETORNO = 0; novo.NUMERO_BANCO = 0; novo.INSTRUCAO_REMESSA = 0; novo.NOSSO_NUMERO_BANCARIO = string.Empty; Entidade.InsertOnSubmit(novo); Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), ID_USUARIO); ctx.SubmitChanges(); } } } }
public void AtualizaFOLLOW_UP(Dictionary <string, object> dados, List <string> DESTINATARIOS, decimal ID_USUARIO, string LOGIN_USUARIO) { try { using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { object[] items = (object[])dados["NUMERO_ITENS"]; string CLIENTE = ""; string CODIGO_PRODUTO = ""; for (int i = 0; i < items.Count(); i++) { var query1 = (from linha in ctx.TB_PEDIDO_VENDAs where linha.NUMERO_PEDIDO == Convert.ToDecimal(dados["NUMERO_PEDIDO"]) && linha.NUMERO_ITEM == Convert.ToDecimal(items.GetValue(i)) select new { linha.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_CLIENTE.NOMEFANTASIA_CLIENTE, linha.CODIGO_PRODUTO_PEDIDO }).ToList(); foreach (var item in query1) { CLIENTE = item.NOMEFANTASIA_CLIENTE.Trim(); CODIGO_PRODUTO += string.Concat("[", item.CODIGO_PRODUTO_PEDIDO.Trim(), "]"); } var query = (from item in ctx.TB_FOLLOW_UP_ITEM_PEDIDOs where item.NUMERO_FOLLOW_UP == Convert.ToDecimal(dados["NUMERO_FOLLOW_UP"]) && item.NUMERO_ITEM == Convert.ToDecimal(items.GetValue(i)) select item).ToList(); foreach (var uf in query) { uf.ID_USUARIO_FOLLOW_UP = ID_USUARIO; uf.DATA_HORA_FOLLOW_UP = DateTime.Now; uf.TEXTO_FOLLOW_UP = dados["TEXTO_FOLLOW_UP"].ToString(); Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update_PEDIDO_VENDA(ctx, ctx.TB_FOLLOW_UP_ITEM_PEDIDOs.GetModifiedMembers(uf), ctx.TB_FOLLOW_UP_ITEM_PEDIDOs.ToString(), uf.NUMERO_PEDIDO, ID_USUARIO); ctx.SubmitChanges(); } } if (DESTINATARIOS.Count > 0) { using (Doran_Email_Posicao_Pedido email = new Doran_Email_Posicao_Pedido(ID_USUARIO)) { string _OBS = string.Concat(LOGIN_USUARIO.ToUpper(), " salvou uma nova mensagem de Follow Up no item do pedido ", dados["NUMERO_PEDIDO"].ToString(), "<br /><br />", dados["TEXTO_FOLLOW_UP"].ToString(), "<br /><br />", dados["ASSINATURA"].ToString()); email.NUMERO_PEDIDO = Convert.ToDecimal(dados["NUMERO_PEDIDO"]); email.CLIENTE = CLIENTE; email.CODIGO_PRODUTO = CODIGO_PRODUTO; email.HISTORICO = _OBS; email.DESTINATARIOS = DESTINATARIOS; email.ID_CONTA_EMAIL = Convert.ToDecimal(dados["ID_CONTA_EMAIL"]); email.FROM_ADDRESS = dados["FROM_ADDRESS"].ToString(); email.Envia_Email_Posicao_Pedido(); } } } } catch (Exception ex) { Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, ID_USUARIO); throw ex; } }
public string BuscaUltimoPreco(Dictionary <string, object> dados) { try { string retorno = ""; if (dados["CLIENTE_FORNECEDOR"].ToString() == "C") { using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var query = from linha in ctx.TB_ITEM_NOTA_SAIDAs where linha.CODIGO_PRODUTO_ITEM_NF == dados["CODIGO_PRODUTO"].ToString() && linha.TB_NOTA_SAIDA.DATA_EMISSAO_NF >= Convert.ToDateTime(dados["DATA_EMISSAO"]) && linha.TB_NOTA_SAIDA.NOME_FANTASIA_CLIENTE_NF.Contains(dados["NOME_CLIENTE"].ToString()) orderby linha.CODIGO_PRODUTO_ITEM_NF, linha.TB_NOTA_SAIDA.DATA_EMISSAO_NF descending select new { linha.NUMERO_ITEM_NF, linha.CODIGO_PRODUTO_ITEM_NF, linha.DESCRICAO_PRODUTO_ITEM_NF, linha.UNIDADE_MEDIDA_ITEM_NF, linha.QTDE_ITEM_NF, linha.VALOR_UNITARIO_ITEM_NF, linha.VALOR_TOTAL_ITEM_NF, DATA_EMISSAO = linha.TB_NOTA_SAIDA.DATA_EMISSAO_NF, NOME_CLIENTE = linha.TB_NOTA_SAIDA.NOME_FANTASIA_CLIENTE_NF }; var rowCount = query.Count(); query = query.Skip(Convert.ToInt32(dados["start"])).Take(Convert.ToInt32(dados["limit"])); retorno = ApoioXML.objQueryToXML(ctx, query, rowCount); } } else { using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var query = from linha in ctx.TB_ITEM_NOTA_ENTRADAs where linha.CODIGO_PRODUTO_ITEM_NFE == dados["CODIGO_PRODUTO"].ToString() && linha.TB_NOTA_ENTRADA.DATA_EMISSAO_NFE >= Convert.ToDateTime(dados["DATA_EMISSAO"]) && linha.TB_NOTA_ENTRADA.TB_FORNECEDOR.NOME_FANTASIA_FORNECEDOR.Contains(dados["NOME_CLIENTE"].ToString()) orderby linha.CODIGO_PRODUTO_ITEM_NFE, linha.TB_NOTA_ENTRADA.DATA_EMISSAO_NFE descending select new { NUMERO_ITEM_NF = linha.NUMERO_SEQ_ITEM_NFE, CODIGO_PRODUTO_ITEM_NF = linha.CODIGO_PRODUTO_ITEM_NFE, DESCRICAO_PRODUTO_ITEM_NF = linha.DESCRICAO_PRODUTO_ITEM_NFE, CODIGO_CFOP_ITEM_NF = linha.CODIGO_CFOP_ITEM_NFE, QTDE_ITEM_NF = linha.QTDE_ITEM_NFE, VALOR_UNITARIO_ITEM_NF = linha.VALOR_UNITARIO_ITEM_NFE, VALOR_TOTAL_ITEM_NF = linha.VALOR_TOTAL_ITEM_NFE, CODIGO_ITEM_CLIENTE = "", DATA_EMISSAO = linha.TB_NOTA_ENTRADA.DATA_EMISSAO_NFE, NOME_CLIENTE = linha.TB_NOTA_ENTRADA.TB_FORNECEDOR.NOME_FANTASIA_FORNECEDOR, NUMERO_LOTE_ITEM_NF = linha.NUMERO_LOTE_ITEM_NFE }; var rowCount = query.Count(); query = query.Skip(Convert.ToInt32(dados["start"])).Take(Convert.ToInt32(dados["limit"])); retorno = ApoioXML.objQueryToXML(ctx, query, rowCount); } } return(retorno); } catch (Exception ex) { Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"])); throw ex; } }
private StringBuilder SetaVariaveisOrcamento(StringBuilder html, bool PRIMEIRA_PAGINA) { html = html.Replace("#NUMERO_ORCAMENTO#", _NUMERO_ORCAMENTO.ToString()); html = html.Replace("#PAGINA#", (PAGINA + 1).ToString()); html = html.Replace("#DATA_EMISSAO#", string.Concat(DateTime.Today.Day.ToString().PadLeft(2, '0'), "/", DateTime.Today.Month.ToString().PadLeft(2, '0'), "/", DateTime.Today.Year.ToString())); decimal FATURAMENTO_MINIMO = 0; using (Doran_ERP_Servicos_DadosDataContext ctx1 = new Doran_ERP_Servicos_DadosDataContext()) { var query = (from linha in ctx1.TB_CONFIG_VENDAs where linha.ID_CONFIGURACAO_VENDAS == 1 select linha).ToList(); foreach (var item in query) { html = html.Replace("#LOGOTIPO#", "<img src='" + ConfigurationManager.AppSettings["PastaVirtual"] + item.LOGOTIPO_ORCAMENTO_VENDAS.Trim() + "'>"); FATURAMENTO_MINIMO = (decimal)item.VALOR_FATURAMENTO_MINIMO; } } if (PRIMEIRA_PAGINA) { using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var query1 = (from linha1 in ctx.TB_EMITENTEs where linha1.CODIGO_EMITENTE == ID_EMPRESA select linha1).ToList(); foreach (var item in query1) { html = html.Replace("#RAZAO_SOCIAL_EMITENTE#", item.NOME_EMITENTE.Trim()); html = html.Replace("#CNPJ_EMITENTE#", item.CNPJ_EMITENTE.Trim()); html = html.Replace("#IE_EMITENTE#", item.IE_EMITENTE.Trim()); html = html.Replace("#ENDERECO_EMITENTE#", string.Format("{0}, {1} {2}", item.ENDERECO_EMITENTE.Trim(), item.NUMERO_END_EMITENTE.Trim(), item.COMPLEMENTO_END_EMITENTE.Trim())); html = html.Replace("#CIDADE_EMITENTE#", item.TB_MUNICIPIO.NOME_MUNICIPIO.Trim()); html = html.Replace("#ESTADO_EMITENTE#", item.TB_MUNICIPIO.TB_UF.SIGLA_UF); html = html.Replace("#PAIS_EMITENTE#", "BRASIL"); html = html.Replace("#CEP_EMITENTE#", item.CEP_EMITENTE.Trim()); html = html.Replace("#TELEFONE_EMITENTE#", item.TELEFONE_EMITENTE.Trim()); html = html.Replace("#FAX_EMITENTE#", item.FAX_EMITENTE.Trim()); html = html.Replace("#SITE#", item.SITE_EMITENTE.Trim()); } var query = (from linha in ctx.TB_ORCAMENTO_VENDAs where linha.NUMERO_ORCAMENTO == _NUMERO_ORCAMENTO select linha).ToList(); foreach (var item in query) { html = html.Replace("#VENDEDOR#", string.Concat(item.TB_VENDEDORE.NOME_VENDEDOR.Trim(), " - <b>Tel.:</b>", item.TB_VENDEDORE.CELULAR_VENDEDOR.Trim())); html = html.Replace("#EMAIL_VENDEDOR#", item.TB_VENDEDORE.EMAIL_VENDEDOR.Trim().ToLower()); html = html.Replace("#CODIGO_CLIENTE#", item.CODIGO_CLIENTE_ORCAMENTO.ToString()); html = html.Replace("#NOME_CLIENTE#", item.TB_CLIENTE.NOME_CLIENTE); html = html.Replace("#ENDERECO_CLIENTE#", string.Concat(item.TB_CLIENTE.ENDERECO_FATURA.Trim(), " ", item.TB_CLIENTE.NUMERO_END_FATURA.Trim(), " ", item.TB_CLIENTE.COMP_END_FATURA.Trim())); html = html.Replace("#CIDADE_CLIENTE#", item.TB_CLIENTE.TB_MUNICIPIO.NOME_MUNICIPIO.Trim()); html = html.Replace("#ESTADO_CLIENTE#", item.TB_CLIENTE.TB_MUNICIPIO.TB_UF.SIGLA_UF.Trim()); html = html.Replace("#CEP_CLIENTE#", item.TB_CLIENTE.CEP_FATURA.Trim()); html = html.Replace("#CNPJ_CLIENTE#", item.TB_CLIENTE.CNPJ_CLIENTE.Trim()); html = html.Replace("#IE_CLIENTE#", item.TB_CLIENTE.IE_CLIENTE.Trim()); html = html.Replace("#CONTATO_CLIENTE#", item.CONTATO_ORCAMENTO.Trim()); html = html.Replace("#TELEFONE_CLIENTE#", item.TELEFONE_CONTATO.Trim()); html = html.Replace("#EMAIL_CLIENTE#", item.EMAIL_CONTATO.ToLower().Trim()); html = html.Replace("#CONDICAO_PAGAMENTO#", item.TB_COND_PAGTO.DESCRICAO_CP.Trim()); html = html.Replace("#VALIDADE_ORCAMENTO#", ApoioXML.TrataData2(item.VALIDADE_ORCAMENTO)); html = html.Replace("#FATURAMENTO_MINIMO#", FATURAMENTO_MINIMO.ToString("c")); html = html.Replace("#OBS#", item.OBS_ORCAMENTO.Trim()); } } } return(html); }
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); } }
public List <string> Gera_Nota_Entrada(decimal NUMERO_NFE, decimal ID_EMPRESA) { List <string> retorno = new List <string>(); List <decimal> items_compra = new List <decimal>(); using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var fornecedores = (from linha in ctx.TB_PEDIDO_COMPRAs orderby linha.ID_USUARIO_QTDE_NF, linha.QTDE_NF_ITEM_COMPRA where linha.ID_USUARIO_QTDE_NF == ID_USUARIO && linha.QTDE_NF_ITEM_COMPRA > (decimal)0.000 select linha.CODIGO_FORNECEDOR).ToList(); if (fornecedores.Distinct().Count() > 1) { throw new Exception("Há fornecedores diferentes na seleção de itens para gerar a nota."); } var pedido = (from linha in ctx.TB_PEDIDO_COMPRAs orderby linha.ID_USUARIO_QTDE_NF, linha.QTDE_NF_ITEM_COMPRA where linha.ID_USUARIO_QTDE_NF == ID_USUARIO && linha.QTDE_NF_ITEM_COMPRA > (decimal)0.000 select linha).ToList().First(); decimal NUMERO_SEQ = 0; using (Doran_Nota_Entrada nota = new Doran_Nota_Entrada(ID_EMPRESA, ID_USUARIO)) { Dictionary <string, object> dados = new Dictionary <string, object>(); dados.Add("NUMERO_NFE", NUMERO_NFE); dados.Add("SERIE_NFE", ""); dados.Add("DATA_EMISSAO_NFE", DateTime.Today.ToShortDateString()); dados.Add("DATA_CHEGADA_NFE", DateTime.Today.ToShortDateString()); dados.Add("CODIGO_FORNECEDOR", pedido.CODIGO_FORNECEDOR); dados.Add("CODIGO_CP_NFE", pedido.CODIGO_CP_COTACAO_FORNECEDOR); dados.Add("GERA_COBRANCA_NFE", 1); dados.Add("CODIGO_CFOP_NFE", pedido.CODIGO_CFOP_ITEM_COMPRA.Trim()); dados.Add("BASE_ICMS_NFE", 0); dados.Add("VALOR_ICMS_NFE", 0); dados.Add("BASE_ICMS_SUBS_NFE", 0); dados.Add("VALOR_ICMS_SUBS_NFE", 0); dados.Add("TOTAL_PRODUTOS_NFE", 0); dados.Add("VALOR_FRETE_NFE", 0); dados.Add("VALOR_SEGURO_NFE", 0); dados.Add("OUTRAS_DESP_NFE", 0); dados.Add("TOTAL_IPI_NFE", 0); dados.Add("TOTAL_NFE", 0); dados.Add("OBS_NFE", ""); dados.Add("FRETE_NFE", pedido.FRETE_COTACAO_FORNECEDOR); dados.Add("PESO_LIQUIDO_NFE", 0); dados.Add("PESO_BRUTO_NFE", 0); NUMERO_SEQ = nota.Grava_Nota_Entrada(dados); } var query = (from linha in ctx.TB_PEDIDO_COMPRAs orderby linha.ID_USUARIO_QTDE_NF, linha.QTDE_NF_ITEM_COMPRA where linha.ID_USUARIO_QTDE_NF == ID_USUARIO && linha.QTDE_NF_ITEM_COMPRA > (decimal)0.000 select linha).ToList(); foreach (var item in query) { using (Doran_Calculo_Nota_Entrada items = new Doran_Calculo_Nota_Entrada(NUMERO_SEQ, ID_USUARIO)) { Dictionary <string, object> dados = new Dictionary <string, object>(); decimal?PRECO_FINAL = item.TIPO_DESCONTO_ITEM_COMPRA == 0 ? item.PRECO_ITEM_COMPRA * (1 - (item.VALOR_DESCONTO_ITEM_COMPRA / 100)) : item.PRECO_ITEM_COMPRA - item.VALOR_DESCONTO_ITEM_COMPRA; decimal VALOR_IPI = Math.Round(((decimal)PRECO_FINAL * (decimal)item.QTDE_NF_ITEM_COMPRA) * ((decimal)item.ALIQ_IPI_ITEM_COMPRA / 100), 2); dados.Add("CODIGO_CFOP_ITEM_NFE", item.CODIGO_CFOP_ITEM_COMPRA.Trim()); dados.Add("VALOR_TOTAL_ITEM_NFE", Math.Round((decimal)item.QTDE_NF_ITEM_COMPRA * (decimal)PRECO_FINAL, 2)); dados.Add("ALIQ_IPI_ITEM_NFE", item.ALIQ_IPI_ITEM_COMPRA); dados.Add("ALIQ_ICMS_ITEM_NFE", item.ALIQ_ICMS_ITEM_COMPRA); dados.Add("BASE_ICMS_SUBS_ITEM_NFE", item.BASE_ICMS_ST_ITEM_COMPRA); dados.Add("VALOR_ICMS_SUBS_ITEM_NFE", item.VALOR_ICMS_ST_ITEM_COMPRA); dados.Add("ID_PRODUTO", item.ID_PRODUTO_COMPRA); dados.Add("CODIGO_PRODUTO_ITEM_NFE", item.CODIGO_PRODUTO_COMPRA.Trim()); dados.Add("DESCRICAO_PRODUTO_ITEM_NFE", item.TB_PRODUTO.DESCRICAO_PRODUTO.Trim()); dados.Add("QTDE_ITEM_NFE", item.QTDE_NF_ITEM_COMPRA); dados.Add("VALOR_UNITARIO_ITEM_NFE", PRECO_FINAL); dados.Add("PERC_IVA_ITEM_NFE", 0); dados.Add("NUMERO_LOTE_ITEM_NFE", Busca_Lote_Recebimento(item.NUMERO_PEDIDO_COMPRA, item.NUMERO_ITEM_COMPRA, NUMERO_NFE, item.CODIGO_PRODUTO_COMPRA.Trim())); dados.Add("NUMERO_PEDIDO_COMPRA", item.NUMERO_PEDIDO_COMPRA); dados.Add("NUMERO_ITEM_COMPRA", item.NUMERO_ITEM_COMPRA); items.Calcula_e_Grava_Item_Nota_Entrada(dados); item.QTDE_NF_ITEM_COMPRA = 0; item.ID_USUARIO_QTDE_NF = 0; Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.TB_PEDIDO_COMPRAs.GetModifiedMembers(item), ctx.TB_PEDIDO_COMPRAs.ToString(), ID_USUARIO); items_compra.Add(item.NUMERO_ITEM_COMPRA); } } ctx.SubmitChanges(); } using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { foreach (var item in items_compra) { Dictionary <string, string> _item = new Dictionary <string, string>(); var notas = (from linha in ctx.TB_ITEM_NOTA_ENTRADAs orderby linha.NUMERO_ITEM_COMPRA where linha.NUMERO_ITEM_COMPRA == item select linha).ToList(); string _notas = ""; foreach (var item1 in notas) { _notas += item1.TB_NOTA_ENTRADA.NUMERO_NFE.ToString() + " / "; } _notas = _notas.Substring(0, _notas.Length - 3); retorno.Add(item.ToString() + " - " + _notas); } } return(retorno); }
public string MontaRelatorioRealizado() { string retorno = ""; using (Th2_Report r = new Th2_Report(ExpertPdf.HtmlToPdf.PdfPageSize.A4, ExpertPdf.HtmlToPdf.PDFPageOrientation.Portrait)) { r.ID_EMPRESA = ID_EMPRESA; DateTime df = DataFinal.AddSeconds(-1); string nome_banco = ""; using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { if (Banco > 0) { nome_banco = (from linha in ctx.TB_BANCOs where linha.NUMERO_BANCO == Banco select linha.NOME_BANCO.Trim()).ToList().First().Trim(); } } string cabecalho = string.Format("Relatório do Fluxo de Caixa (Realizado)<br /><span style='font-family: Tahoma; font-size: 8pt;'>Período de {0} até {1}<br />{2}</span>", ApoioXML.TrataData2(DataInicial), ApoioXML.TrataData2(df), Banco > 0 ? "Banco: " + nome_banco : ""); r.DefineCabecalho(cabecalho, 60); decimal CreditoTotal = 0; decimal DebitoTotal = 0; using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { ctx.Connection.Open(); ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;"); DateTime _dt = DataInicial; StringBuilder _conteudo = new StringBuilder(); _conteudo.Append("<table style='width: 70%; font-family: tahoma; font-size: 8pt;'>"); _conteudo.Append(@"<tr> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>NF / Duplicata</td> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Vencimento</td> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Pagamento</td> <td style='BORDER-BOTTOM: 1px solid; width: 280px; border-color:#C0C0C0;'>Histórico</td> <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Crédito</td> <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Débito</td> <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Saldo</td> <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Valor Aproximado?</td> </tr>"); decimal Saldo = 0; decimal saldoAnterior = SaldoAnterior(); while (_dt < DataFinal) { var query = from linha in ctx.TB_FINANCEIROs where (linha.DATA_PAGAMENTO >= _dt && linha.DATA_PAGAMENTO < _dt.AddDays(1)) && linha.CODIGO_EMITENTE == ID_EMPRESA && (linha.NUMERO_BANCO == Banco || Banco == 0) select new { linha.NUMERO_FINANCEIRO, linha.NUMERO_SEQ_NF_SAIDA, linha.NUMERO_NF_SAIDA, linha.NUMERO_SEQ_NF_ENTRADA, linha.NUMERO_NF_ENTRADA, linha.DATA_VENCIMENTO, linha.DATA_PAGAMENTO, linha.HISTORICO, VALOR_TOTAL = (linha.VALOR + linha.VALOR_ACRESCIMO + linha.VALOR_MULTA) - linha.VALOR_DESCONTO, linha.CREDITO_DEBITO, linha.VALOR_APROXIMADO }; decimal CreditoDia = 0; decimal DebitoDia = 0; foreach (var item in query) { if (item.CREDITO_DEBITO == 0) { if (ResumidoDetalhado == "D") { _conteudo.Append(string.Format(@"<tr> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td> <td style='font-size: 7pt; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td> <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td> <td>{5}</td> <td>{6}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{7}</td> </tr>", item.NUMERO_NF_SAIDA.ToString() + "/" + ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, item.NUMERO_SEQ_NF_ENTRADA, item.DATA_VENCIMENTO), ApoioXML.Data((DateTime)item.DATA_VENCIMENTO), ApoioXML.Data((DateTime)item.DATA_PAGAMENTO), item.HISTORICO.Trim(), ApoioXML.Valor_Moeda(((decimal)item.VALOR_TOTAL).ToString(), 2), "", "", item.VALOR_APROXIMADO == 1 ? "S" : "")); } CreditoDia += (decimal)item.VALOR_TOTAL; CreditoTotal += (decimal)item.VALOR_TOTAL; } else { if (ResumidoDetalhado == "D") { _conteudo.Append(string.Format(@"<tr> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td> <td style='font-size: 7pt; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'>{5}</td> <td >{6}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{7}</td> </tr>", item.NUMERO_NF_ENTRADA.ToString() + "/" + ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, item.NUMERO_SEQ_NF_ENTRADA, item.DATA_VENCIMENTO), ApoioXML.Data((DateTime)item.DATA_VENCIMENTO), ApoioXML.Data((DateTime)item.DATA_PAGAMENTO), item.HISTORICO.Trim(), "", ApoioXML.Valor_Moeda(((decimal)item.VALOR_TOTAL).ToString(), 2), "", item.VALOR_APROXIMADO == 1 ? "S" : "")); } DebitoDia += (decimal)item.VALOR_TOTAL; DebitoTotal += (decimal)item.VALOR_TOTAL; } } // Pagamentos Parciais var query2 = from linha in ctx.TB_PAGTO_PARCIALs where (linha.DATA_PAGTO >= _dt && linha.DATA_PAGTO < _dt.AddDays(1)) && linha.TB_FINANCEIRO.CODIGO_EMITENTE == ID_EMPRESA select new { linha.NUMERO_FINANCEIRO, linha.TB_FINANCEIRO.NUMERO_SEQ_NF_SAIDA, linha.TB_FINANCEIRO.NUMERO_NF_SAIDA, linha.TB_FINANCEIRO.NUMERO_SEQ_NF_ENTRADA, linha.TB_FINANCEIRO.NUMERO_NF_ENTRADA, linha.TB_FINANCEIRO.DATA_VENCIMENTO, linha.DATA_PAGTO, linha.TB_FINANCEIRO.HISTORICO, linha.VALOR_PAGTO, linha.TB_FINANCEIRO.CREDITO_DEBITO, }; foreach (var item in query2) { if (item.CREDITO_DEBITO == 0) { if (ResumidoDetalhado == "D") { _conteudo.Append(string.Format(@"<tr> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td> <td style='font-size: 7pt; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td> <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td> <td>{5}</td> <td>{6}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{7}</td> </tr>", item.NUMERO_NF_SAIDA.ToString() + "/" + ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, item.NUMERO_SEQ_NF_ENTRADA, item.DATA_VENCIMENTO), ApoioXML.Data((DateTime)item.DATA_VENCIMENTO), ApoioXML.Data((DateTime)item.DATA_PAGTO), item.HISTORICO.Trim(), ApoioXML.Valor_Moeda(((decimal)item.VALOR_PAGTO).ToString(), 2), "", "", "")); } CreditoDia += (decimal)item.VALOR_PAGTO; CreditoTotal += (decimal)item.VALOR_PAGTO; } else { if (ResumidoDetalhado == "D") { _conteudo.Append(string.Format(@"<tr> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td> <td style='font-size: 7pt; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'>{5}</td> <td >{6}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{7}</td> </tr>", item.NUMERO_NF_ENTRADA.ToString() + "/" + ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, item.NUMERO_SEQ_NF_ENTRADA, item.DATA_VENCIMENTO), ApoioXML.Data((DateTime)item.DATA_VENCIMENTO), ApoioXML.Data((DateTime)item.DATA_PAGTO), item.HISTORICO.Trim(), "", ApoioXML.Valor_Moeda(((decimal)item.VALOR_PAGTO).ToString(), 2), "", "")); } DebitoDia += (decimal)item.VALOR_PAGTO; DebitoTotal += (decimal)item.VALOR_PAGTO; } } if (DebitoDia > (decimal)0.00 || CreditoDia > (decimal)0.00) { Saldo = (saldoAnterior + CreditoDia) - DebitoDia; _conteudo.Append(string.Format(@"<tr> <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; text-align: right;' colspan='3'>Saldo Anterior {0}</td> <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; text-align: right;'>Total do dia {1}</td> <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'><b>{2}</b></td> <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'><b>{3}</b></td> <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'><b>{4}</b></td> </tr>", ApoioXML.Valor_Moeda(saldoAnterior.ToString(), 2), ApoioXML.TrataData2(_dt), ApoioXML.Valor_Moeda(CreditoDia.ToString(), 2) , ApoioXML.Valor_Moeda(DebitoDia.ToString(), 2), ApoioXML.Valor_Moeda(Saldo.ToString(), 2))); saldoAnterior = Saldo; CreditoDia = 0; DebitoDia = 0; } _dt = _dt.AddDays(1); } _conteudo.Append(string.Format(@"<tr> <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; text-align: right;' colspan='3'></td> <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; text-align: right;'>Total no Período</td> <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'><b>{0}</b></td> <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'><b>{1}</b></td> <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'></td> </tr>", ApoioXML.Valor_Moeda(CreditoTotal.ToString(), 2) , ApoioXML.Valor_Moeda(DebitoTotal.ToString(), 2))); _conteudo.Append("</table>"); r.InsereConteudo(_conteudo.ToString()); retorno = r.SalvaDocumento("FaTh2_Fluxo_Realizado"); } return(retorno); } }
private StringBuilder SetaVariaveisPedido(StringBuilder html, bool PRIMEIRA_PAGINA, string LOGIN_USUARIO) { html = html.Replace("#NUMERO_PEDIDO#", NUMERO_PEDIDO.ToString()); html = html.Replace("#PAGINA#", (PAGINA + 1).ToString() + "/" + _PAGINAS.ToString()); html = html.Replace("#DATA_EMISSAO#", ApoioXML.TrataData2(DateTime.Today)); if (LOGOTIPO.Length > 0) { html = html.Replace("#LOGOTIPO#", LOGOTIPO); } html = html.Replace("#DATA_HORA#", ApoioXML.TrataDataHora2(DateTime.Now)); if (PRIMEIRA_PAGINA) { using (Doran_ERP_Servicos_DadosDataContext ctx1 = new Doran_ERP_Servicos_DadosDataContext()) { var query = (from linha in ctx1.TB_CONFIG_VENDAs where linha.ID_CONFIGURACAO_VENDAS == 1 select linha).ToList(); foreach (var item in query) { html = html.Replace("#LOGOTIPO#", "<img src='" + ConfigurationManager.AppSettings["PastaVirtual"] + item.LOGOTIPO_ORCAMENTO_VENDAS.Trim() + "' width=100>"); LOGOTIPO = "<img src='" + ConfigurationManager.AppSettings["PastaVirtual"] + item.LOGOTIPO_ORCAMENTO_VENDAS.Trim() + "' width=100>"; } } using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var item = (from linha in ctx.TB_PEDIDO_VENDAs where linha.NUMERO_PEDIDO == NUMERO_PEDIDO select linha).ToList().First(); html = html.Replace("#DATA_ENTREGA#", ApoioXML.TrataData2(item.ENTREGA_PEDIDO)); html = html.Replace("#ULTIMA_COMPRA#", Busca_Ultima_Compra_Cliente(item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_CLIENTE_ORCAMENTO)); html = html.Replace("#NOME_CLIENTE#", item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_CLIENTE_ORCAMENTO.ToString() + " - " + item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_CLIENTE.NOME_CLIENTE.Trim() + " - " + item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_CLIENTE.NOMEFANTASIA_CLIENTE.Trim()); html = html.Replace("#USUARIO_IMPRESSAO#", LOGIN_USUARIO.ToUpper()); html = html.Replace("#FATURAMENTO#", Previsao_Faturamento()); html = html.Replace("#COND_PAGTO#", item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_COND_PAGTO.DESCRICAO_CP.Trim()); html = html.Replace("#VENDEDORES#", item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_VENDEDORE.NOME_VENDEDOR.Trim()); html = html.Replace("#LIDER#", BuscaLider(item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_VENDEDORE.SUPERVISOR_LIDER)); LIDER = (decimal)item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_VENDEDORE.SUPERVISOR_LIDER; string ENDERECO_ENTREGA = item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_CLIENTE.ENDERECO_ENTREGA.Trim().Length > 0 ? string.Concat(item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_CLIENTE.ENDERECO_ENTREGA.Trim(), " ", item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_CLIENTE.NUMERO_END_ENTREGA.Trim(), " ", item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_CLIENTE.COMP_END_ENTREGA.Trim(), " - ", item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_CLIENTE.BAIRRO_ENTREGA.Trim(), " - ", item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_CLIENTE.CIDADE_ENTREGA, " ", item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_CLIENTE.TB_MUNICIPIO.TB_UF.SIGLA_UF) : ""; html = html.Replace("#ENDERECO_ENTREGA#", ENDERECO_ENTREGA); html = html.Replace("#OBS_PEDIDO#", item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.OBS_ORCAMENTO.Trim()); using (Doran_Comercial_Pedido orc = new Doran_Comercial_Pedido()) { DataTable dt = new DataTable(); dt.Columns.Add("NUMERO_PEDIDO"); DataRow nova = dt.NewRow(); nova[0] = NUMERO_PEDIDO; dt.Rows.Add(nova); DataTable totais = orc.Calcula_Totais_Pedido(dt); html = html.Replace("#TOTAL_PRODUTOS#", totais.Rows[0]["VALOR_TOTAL"].ToString()); html = html.Replace("#TOTAL_IPI#", totais.Rows[0]["VALOR_IPI"].ToString()); html = html.Replace("#TOTAL_ICMS#", totais.Rows[0]["VALOR_ICMS"].ToString()); html = html.Replace("#TOTAL_ICMS_ST#", totais.Rows[0]["VALOR_ICMS_SUBS"].ToString()); html = html.Replace("#TOTAL_FRETE#", totais.Rows[0]["VALOR_FRETE"].ToString()); html = html.Replace("#TOTAL_PEDIDO#", totais.Rows[0]["TOTAL_PEDIDO"].ToString()); html = html.Replace("#MARGEM_MEDIA#", totais.Rows[0]["MARGEM"].ToString()); html = html.Replace("#TOTAL_CUSTO#", totais.Rows[0]["TOTAL_CUSTO"].ToString()); html = html.Replace("#CUSTO_FINANCEIRO#", totais.Rows[0]["CUSTO_FINANCEIRO"].ToString()); html = html.Replace("#ADICIONAL_REPRESENTANTE#", totais.Rows[0]["ADICIONAL_REPRESENTANTE"].ToString()); } } } else { html = html.Replace("#LIDER#", BuscaLider(LIDER)); } return(html); }
private StringBuilder SetaVariaveisPedido(StringBuilder html, bool PRIMEIRA_PAGINA) { html = html.Replace("#NUMERO_PEDIDO#", NUMERO_PEDIDO_COMPRA.ToString()); html = html.Replace("#PAGINA#", (PAGINA + 1).ToString() + "/" + _PAGINAS.ToString()); html = html.Replace("#DATA_EMISSAO#", ApoioXML.TrataData2(DateTime.Today)); if (LOGOTIPO.Length > 0) { html = html.Replace("#LOGOTIPO#", LOGOTIPO); } html = html.Replace("#DATA_HORA#", ApoioXML.TrataDataHora2(DateTime.Now)); if (PRIMEIRA_PAGINA) { using (Doran_ERP_Servicos_DadosDataContext ctx1 = new Doran_ERP_Servicos_DadosDataContext()) { var query = (from linha in ctx1.TB_CONFIG_VENDAs where linha.ID_CONFIGURACAO_VENDAS == 1 select linha).ToList(); foreach (var item in query) { html = html.Replace("#LOGOTIPO#", "<img src='" + ConfigurationManager.AppSettings["PastaVirtual"] + item.LOGOTIPO_ORCAMENTO_VENDAS.Trim() + "' width=100>"); LOGOTIPO = "<img src='" + ConfigurationManager.AppSettings["PastaVirtual"] + item.LOGOTIPO_ORCAMENTO_VENDAS.Trim() + "' width=100>"; } } using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var item = (from linha in ctx.TB_PEDIDO_COMPRAs orderby linha.NUMERO_PEDIDO_COMPRA, linha.CODIGO_FORNECEDOR where (linha.NUMERO_PEDIDO_COMPRA == NUMERO_PEDIDO_COMPRA && linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR) && linha.TB_STATUS_PEDIDO_COMPRA.STATUS_ESPECIFICO_ITEM_COMPRA < 7 select linha).ToList().First(); var _entrega = (from linha in ctx.TB_PEDIDO_COMPRAs orderby linha.NUMERO_PEDIDO_COMPRA, linha.CODIGO_FORNECEDOR where (linha.NUMERO_PEDIDO_COMPRA == NUMERO_PEDIDO_COMPRA && linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR) && linha.TB_STATUS_PEDIDO_COMPRA.STATUS_ESPECIFICO_ITEM_COMPRA < 7 select linha.PREVISAO_ENTREGA_ITEM_COMPRA).Max(); var _fornecedor = (from linha in ctx.TB_PEDIDO_COMPRAs orderby linha.NUMERO_PEDIDO_COMPRA, linha.CODIGO_FORNECEDOR where (linha.NUMERO_PEDIDO_COMPRA == NUMERO_PEDIDO_COMPRA && linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR) && linha.TB_STATUS_PEDIDO_COMPRA.STATUS_ESPECIFICO_ITEM_COMPRA < 7 select linha.TB_FORNECEDOR.NOME_FORNECEDOR).ToList().First(); html = html.Replace("#DATA_ENTREGA#", ApoioXML.TrataData2(_entrega)); html = html.Replace("#NOME_FORNECEDOR#", _fornecedor.Trim()); html = html.Replace("#USUARIO_IMPRESSAO#", LOGIN_USUARIO.ToUpper()); html = html.Replace("#COND_PAGTO#", item.TB_COND_PAGTO.DESCRICAO_CP.Trim()); html = html.Replace("#CONTATO#", item.CONTATO_COTACAO_FORNECEDOR.Trim()); html = html.Replace("#FRETE#", item.FRETE_COTACAO_FORNECEDOR == 0 ? "FOB" : "CIF"); html = html.Replace("#ULTIMA_COMPRA#", Ultima_Compra((decimal)item.CODIGO_FORNECEDOR)); //html = html.Replace("#OBS_PEDIDO#", item.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.OBS_ORCAMENTO.Trim()); NOME_FORNECEDOR = item.TB_FORNECEDOR.NOME_FANTASIA_FORNECEDOR.Trim(); NOME_FORNECEDOR = NOME_FORNECEDOR.Replace(" ", "_"); NOME_FORNECEDOR = ApoioXML.TrataSinais(NOME_FORNECEDOR); using (Doran_Compras orc = new Doran_Compras(NUMERO_PEDIDO_COMPRA, ID_USUARIO)) { DataTable dt = new DataTable(); dt.Columns.Add("NUMERO_PEDIDO_COMPRA"); DataRow nova = dt.NewRow(); nova[0] = NUMERO_PEDIDO_COMPRA; dt.Rows.Add(nova); var query = (from linha in ctx.TB_PEDIDO_COMPRAs orderby linha.NUMERO_PEDIDO_COMPRA, linha.CODIGO_FORNECEDOR where (linha.NUMERO_PEDIDO_COMPRA == NUMERO_PEDIDO_COMPRA && linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR) && linha.TB_STATUS_PEDIDO_COMPRA.STATUS_ESPECIFICO_ITEM_COMPRA < 7 select linha).ToList(); decimal TOTAL_PRODUTOS = 0; decimal TOTAL_IPI = 0; decimal TOTAL_ICMS = 0; decimal TOTAL_ICMS_ST = 0; decimal TOTAL_FRETE = 0; decimal TOTAL_PEDIDO = 0; foreach (var item1 in query) { if (ITENS_COMPRA.Contains(item1.NUMERO_ITEM_COMPRA)) { TOTAL_PRODUTOS += (decimal)item1.VALOR_TOTAL_ITEM_COMPRA; TOTAL_IPI += (decimal)item1.VALOR_IPI_ITEM_COMPRA; TOTAL_ICMS += (decimal)item1.VALOR_ICMS_ITEM_COMPRA; TOTAL_ICMS_ST += (decimal)item1.VALOR_ICMS_ST_ITEM_COMPRA; TOTAL_FRETE += (decimal)item1.VALOR_FRETE_COTACAO_FORNECEDOR; TOTAL_PEDIDO += (decimal)item1.VALOR_TOTAL_ITEM_COMPRA + (decimal)item1.VALOR_ICMS_ST_ITEM_COMPRA + (decimal)item1.VALOR_IPI_ITEM_COMPRA; } } html = html.Replace("#TOTAL_PRODUTOS#", TOTAL_PRODUTOS.ToString("c", CultureInfo.CurrentCulture)); html = html.Replace("#TOTAL_IPI#", TOTAL_IPI.ToString("c", CultureInfo.CurrentCulture)); html = html.Replace("#TOTAL_ICMS#", TOTAL_ICMS.ToString("c", CultureInfo.CurrentCulture)); html = html.Replace("#TOTAL_ICMS_ST#", TOTAL_ICMS_ST.ToString("c", CultureInfo.CurrentCulture)); html = html.Replace("#TOTAL_FRETE#", TOTAL_FRETE.ToString("c", CultureInfo.CurrentCulture)); html = html.Replace("#TOTAL_PEDIDO#", TOTAL_PEDIDO.ToString("c", CultureInfo.CurrentCulture)); // DataTable totais = orc.Calcula_Totais_Pedido(dt); } } } return(html); }
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 List <object> Imprime_Pedido() { List <object> retorno = new List <object>(); string str1 = ""; string modeloORCAMENTO = ConfigurationManager.AppSettings["Modelo_COMPRA"]; string modeloPEDIDO_ProximaPagina = ConfigurationManager.AppSettings["Modelo_COMPRA_ProximaPagina"]; _NUMERO_ITENS_PRIMEIRA_PAGINA = Convert.ToDecimal(ConfigurationManager.AppSettings["NUMERO_ITENS_PRIMEIRA_PAGINA_PEDIDO_COMPRA"]); _NUMERO_ITENS_PROXIMA_PAGINA = Convert.ToDecimal(ConfigurationManager.AppSettings["NUMERO_ITENS_PROXIMA_PAGINA_PEDIDO_COMPRA"]); using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var STATUS_CONFIRMADO = (from linha in ctx.TB_STATUS_PEDIDO_COMPRAs where linha.STATUS_ESPECIFICO_ITEM_COMPRA == 6 select linha.CODIGO_STATUS_COMPRA).ToList().First(); var query = (from linha in ctx.TB_PEDIDO_COMPRAs orderby linha.NUMERO_PEDIDO_COMPRA, linha.CODIGO_FORNECEDOR where (linha.NUMERO_PEDIDO_COMPRA == NUMERO_PEDIDO_COMPRA && linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR) && linha.TB_STATUS_PEDIDO_COMPRA.STATUS_ESPECIFICO_ITEM_COMPRA < 7 select linha).ToList(); int nItens = 0; foreach (var item in query) { if (ITENS_COMPRA.Contains(item.NUMERO_ITEM_COMPRA)) { nItens++; } } if (nItens < (_NUMERO_ITENS_PRIMEIRA_PAGINA + 1)) { _PAGINAS = 1; } else { if (Convert.ToInt32((nItens - _NUMERO_ITENS_PRIMEIRA_PAGINA) % _NUMERO_ITENS_PROXIMA_PAGINA) > 0.00) { _PAGINAS = Convert.ToInt32((nItens - _NUMERO_ITENS_PRIMEIRA_PAGINA) / _NUMERO_ITENS_PROXIMA_PAGINA) + 2; } else { _PAGINAS = ((nItens - _NUMERO_ITENS_PRIMEIRA_PAGINA) / _NUMERO_ITENS_PROXIMA_PAGINA) + 1; } } using (TextReader tr = new StreamReader(modeloORCAMENTO)) { _htmlPEDIDO.Append(tr.ReadToEnd()); } StringBuilder htmlPEDIDO = _htmlPEDIDO; htmlPEDIDO = SetaVariaveisPedido(htmlPEDIDO, true); StringBuilder linhaProduto = new StringBuilder(); linhaProduto.Append(@"<tr> <td style=""WIDTH: 362px"">#PRODUTO#</td> <td style=""WIDTH: 80px"" align=""middle"">#QTDE#</td> <td style=""WIDTH: 30px"" align=""middle"">#UN#</td> <td style=""WIDTH: 80px"" align=""right"">#PRECO#</td> <td style=""WIDTH: 30px"" align=""middle"">#DESCONTO#</td> <td style=""WIDTH: 80px"" align=""right"">#PRECO_FINAL#</td> <td style=""WIDTH: 98px"" align=""right"">#TOTAL#</td> <td style=""WIDTH: 70px"" align=""right"">#IPI#</td> <td style=""WIDTH: 70px"" align=""right"">#ICMS#</td> <td style=""WIDTH: 70px"" align=""right"">#ICMS_ST#</td></tr></tbody></table> <table style=""WIDTH: 1100px; font-family: Tahoma; font-size: 10pt;""> <tbody> <tr> <td><b>Código do Fornecedor:</b>#CODIGO_ITEM_FORNECEDOR#</td> <td><b>Peso:</b></td> <td>#PESO_ITEM# Kgs</td> <td><b>P.Venda:</b></td> <td>#PEDIDO_VENDA#</td> <td align=""right""><b>Entrega:</b></td> <td>#ENTREGA#</td></tr> <tr> <td style=""BORDER-BOTTOM: #808080 1px solid"" colspan=""6""><b>Obs.:</b> #OBS_ITEM#</td></tr></tbody>"); StringBuilder itemPEDIDO = new StringBuilder(); int itens = 1; int _CONFIG_NUMERO_ITENS_NF = Convert.ToInt32(_NUMERO_ITENS_PRIMEIRA_PAGINA); foreach (var item in query) { if (ITENS_COMPRA.Contains(item.NUMERO_ITEM_COMPRA)) { if (itens > _CONFIG_NUMERO_ITENS_NF) { htmlPEDIDO = htmlPEDIDO.Replace(linhaProduto.ToString(), itemPEDIDO.ToString()); GravaPaginaPEDIDO(htmlPEDIDO); _CONFIG_NUMERO_ITENS_NF = Convert.ToInt32(_NUMERO_ITENS_PROXIMA_PAGINA); _htmlPEDIDO.Remove(0, _htmlPEDIDO.Length); using (TextReader tr = new StreamReader(modeloPEDIDO_ProximaPagina)) { _htmlPEDIDO.Append(tr.ReadToEnd()); } htmlPEDIDO = SetaVariaveisPedido(_htmlPEDIDO, false); itemPEDIDO.Remove(0, itemPEDIDO.Length); itens = 1; } itemPEDIDO.Append(linhaProduto); decimal PRECO_FINAL = 0; if (item.TIPO_DESCONTO_ITEM_COMPRA == 1) { PRECO_FINAL = (decimal)item.PRECO_FINAL_FORNECEDOR - (decimal)item.VALOR_DESCONTO_ITEM_COMPRA; } else { PRECO_FINAL = Math.Round((decimal)item.PRECO_FINAL_FORNECEDOR * (1 - ((decimal)item.VALOR_DESCONTO_ITEM_COMPRA / 100)), 4); } string DESCRICAO_PRODUTO = string.Concat(item.CODIGO_PRODUTO_COMPRA.Trim(), " - ", item.TB_PRODUTO.DESCRICAO_PRODUTO.Trim()); var xPEDIDOS = (from linha1 in ctx.TB_ASSOCIACAO_COMPRA_VENDAs orderby linha1.NUMERO_PEDIDO_COMPRA, linha1.NUMERO_ITEM_COMPRA where linha1.NUMERO_PEDIDO_COMPRA == item.NUMERO_PEDIDO_COMPRA && linha1.NUMERO_ITEM_COMPRA == item.NUMERO_ITEM_COMPRA select linha1).ToList(); string PEDIDOS_VENDA = ""; string OBS_VENDAS = ""; foreach (var item1 in xPEDIDOS) { PEDIDOS_VENDA += string.Concat("<div style='align: center;'><b>P.V.</b>", item1.NUMERO_PEDIDO_VENDA.ToString(), "<br />", "<b>Qtde</b>", ApoioXML.Valor2_2((decimal)item1.TB_PEDIDO_VENDA.QTDE_PRODUTO_ITEM_PEDIDO), " ", item1.TB_PEDIDO_VENDA.UNIDADE_ITEM_PEDIDO.Trim(), "</div>"); if (item1.TB_PEDIDO_VENDA.OBS_ITEM_PEDIDO.Trim().Length > 0) { OBS_VENDAS += string.Concat("[", item1.TB_PEDIDO_VENDA.OBS_ITEM_PEDIDO.Trim(), "]"); } } if (PEDIDOS_VENDA.Length > 0) { PEDIDOS_VENDA = PEDIDOS_VENDA.Substring(0, PEDIDOS_VENDA.Length - 3); } itemPEDIDO = itemPEDIDO.Replace("#PRODUTO#", string.Concat("<span style='font-size: 9pt;'>", DESCRICAO_PRODUTO, "</span>")); itemPEDIDO = itemPEDIDO.Replace("#UN#", string.Concat("<span style='font-size: 9pt;'>", item.UNIDADE_ITEM_COMPRA.Trim(), "</span>")); itemPEDIDO = itemPEDIDO.Replace("#QTDE#", string.Concat("<span style='font-size: 9pt;'>", ApoioXML.Valor2_2((decimal)item.QTDE_ITEM_COMPRA), "</span>")); itemPEDIDO = itemPEDIDO.Replace("#PRECO#", ApoioXML.formata_Valor_Impressao((decimal)item.PRECO_FINAL_FORNECEDOR, 4)); itemPEDIDO = itemPEDIDO.Replace("#DESCONTO#", string.Concat("<span style='font-size: 9pt; text-align: center;'>", item.TIPO_DESCONTO_ITEM_COMPRA == 1 ? ApoioXML.formata_Valor_Impressao((decimal)item.VALOR_DESCONTO_ITEM_COMPRA, 2) : ((decimal)item.VALOR_DESCONTO_ITEM_COMPRA / 100).ToString("p"), "</span>")); itemPEDIDO = itemPEDIDO.Replace("#PRECO_FINAL#", ApoioXML.formata_Valor_Impressao(PRECO_FINAL, 4)); itemPEDIDO = itemPEDIDO.Replace("#TOTAL#", ApoioXML.formata_Valor_Impressao((decimal)item.VALOR_TOTAL_ITEM_COMPRA, 2)); itemPEDIDO = itemPEDIDO.Replace("#ICMS#", ApoioXML.formata_Valor_Impressao((decimal)item.VALOR_ICMS_ITEM_COMPRA, 2)); itemPEDIDO = itemPEDIDO.Replace("#ICMS_ST#", ApoioXML.formata_Valor_Impressao((decimal)item.VALOR_ICMS_ST_ITEM_COMPRA, 2)); itemPEDIDO = itemPEDIDO.Replace("#IPI#", ApoioXML.formata_Valor_Impressao((decimal)item.VALOR_IPI_ITEM_COMPRA, 2)); itemPEDIDO = itemPEDIDO.Replace("#CODIGO_ITEM_FORNECEDOR#", string.Concat("<span style='font-size: 9pt;'>", item.CODIGO_FORNECEDOR_ITEM_COMPRA.Trim(), "</span>")); itemPEDIDO = itemPEDIDO.Replace("#OBS_ITEM#", string.Concat("<span style='font-size: 9pt;'>", item.OBS_ITEM_COMPRA.Trim(), OBS_VENDAS, "</span>")); itemPEDIDO = itemPEDIDO.Replace("#ENTREGA#", string.Concat("<span style='font-size: 9pt;'>", ApoioXML.TrataData2(item.PREVISAO_ENTREGA_ITEM_COMPRA), "</span>")); itemPEDIDO = itemPEDIDO.Replace("#PEDIDO_VENDA#", string.Concat("<span style='font-size: 9pt;'>", PEDIDOS_VENDA, "</span>")); if (StatusEspecifico(item.STATUS_ITEM_COMPRA) == 2) { item.STATUS_ITEM_COMPRA = STATUS_CONFIRMADO; // Pedido Confirmado Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.TB_PEDIDO_COMPRAs.GetModifiedMembers(item), ctx.TB_PEDIDO_COMPRAs.ToString(), ID_USUARIO); } itens++; } } ctx.SubmitChanges(); htmlPEDIDO = htmlPEDIDO.Replace(linhaProduto.ToString(), itemPEDIDO.ToString()); GravaPaginaPEDIDO(htmlPEDIDO); htmlPEDIDO = _htmlPEDIDO; Merge(_Arquivo); str1 = ConfigurationManager.AppSettings["PastaVirtualPDF"] + _Arquivo.Substring(_Arquivo.LastIndexOf("\\") + 1); retorno.Add(str1); } using (Doran_ERP_Servicos_DadosDataContext ctx1 = new Doran_ERP_Servicos_DadosDataContext()) { var query1 = (from linha in ctx1.TB_PEDIDO_COMPRAs orderby linha.NUMERO_PEDIDO_COMPRA, linha.NUMERO_ITEM_COMPRA where linha.NUMERO_PEDIDO_COMPRA == NUMERO_PEDIDO_COMPRA && linha.NUMERO_ITEM_COMPRA == ITENS_COMPRA[0] select linha).ToList(); retorno.Add(query1.First().STATUS_ITEM_COMPRA); retorno.Add(query1.First().TB_STATUS_PEDIDO_COMPRA.DESCRICAO_STATUS_PEDIDO_COMPRA.Trim()); retorno.Add(query1.First().TB_STATUS_PEDIDO_COMPRA.COR_STATUS_PEDIDO_COMPRA.Trim()); retorno.Add(query1.First().TB_STATUS_PEDIDO_COMPRA.COR_FONTE_STATUS_PEDIDO_COMPRA.Trim()); retorno.Add(query1.First().TB_STATUS_PEDIDO_COMPRA.STATUS_ESPECIFICO_ITEM_COMPRA); } return(retorno); }
public List <object> Salva_Custos(List <Dictionary <string, object> > LINHAS) { try { using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { decimal NUMERO_ORCAMENTO = 0; decimal NUMERO_ITEM_ORCAMENTO = 0; foreach (Dictionary <string, object> CUSTO in LINHAS) { NUMERO_ORCAMENTO = Convert.ToDecimal(CUSTO["NUMERO_ORCAMENTO"]); NUMERO_ITEM_ORCAMENTO = Convert.ToDecimal(CUSTO["NUMERO_ITEM_ORCAMENTO"]); var query = (from linha in ctx.TB_CUSTO_ITEM_ORCAMENTO_VENDAs where linha.NUMERO_ORCAMENTO == Convert.ToDecimal(CUSTO["NUMERO_ORCAMENTO"]) && linha.NUMERO_ITEM_ORCAMENTO == Convert.ToDecimal(CUSTO["NUMERO_ITEM_ORCAMENTO"]) && linha.NUMERO_CUSTO_VENDA == Convert.ToDecimal(CUSTO["NUMERO_CUSTO_VENDA"]) select linha).ToList(); if (query.Count() > 0) { foreach (var item in query) { string VALOR_CUSTO = CUSTO["CUSTO_ITEM_ORCAMENTO"].ToString().Replace(".", ","); item.CUSTO_ITEM_ORCAMENTO = Convert.ToDecimal(VALOR_CUSTO); item.PREVISAO_ENTREGA = Convert.ToDateTime(CUSTO["PREVISAO_ENTREGA"]); item.OBS_CUSTO_VENDA = string.IsNullOrEmpty(CUSTO["OBS_CUSTO_VENDA"].ToString()) ? "" : CUSTO["OBS_CUSTO_VENDA"].ToString(); if (string.IsNullOrEmpty(CUSTO["CODIGO_FORNECEDOR"].ToString())) { CUSTO["CODIGO_FORNECEDOR"] = null; } item.CODIGO_FORNECEDOR = Convert.ToDecimal(CUSTO["CODIGO_FORNECEDOR"]); item.CODIGO_FORNECEDOR = item.CODIGO_FORNECEDOR.HasValue ? item.CODIGO_FORNECEDOR : null; Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.TB_CUSTO_ITEM_ORCAMENTO_VENDAs.GetModifiedMembers(item), ctx.TB_CUSTO_ITEM_ORCAMENTO_VENDAs.ToString(), Convert.ToDecimal(CUSTO["ID_USUARIO"])); } } else { System.Data.Linq.Table <TB_CUSTO_ITEM_ORCAMENTO_VENDA> Entidade = ctx.GetTable <TB_CUSTO_ITEM_ORCAMENTO_VENDA>(); TB_CUSTO_ITEM_ORCAMENTO_VENDA novo = new TB_CUSTO_ITEM_ORCAMENTO_VENDA(); string VALOR_CUSTO = CUSTO["CUSTO_ITEM_ORCAMENTO"].ToString().Replace(".", ","); novo.NUMERO_ORCAMENTO = Convert.ToDecimal(CUSTO["NUMERO_ORCAMENTO"]); novo.NUMERO_ITEM_ORCAMENTO = Convert.ToDecimal(CUSTO["NUMERO_ITEM_ORCAMENTO"]); novo.NUMERO_CUSTO_VENDA = Convert.ToDecimal(CUSTO["NUMERO_CUSTO_VENDA"]); novo.CUSTO_ITEM_ORCAMENTO = Convert.ToDecimal(VALOR_CUSTO); novo.PREVISAO_ENTREGA = Convert.ToDateTime(CUSTO["PREVISAO_ENTREGA"]); novo.OBS_CUSTO_VENDA = string.IsNullOrEmpty(CUSTO["OBS_CUSTO_VENDA"].ToString()) ? "" : CUSTO["OBS_CUSTO_VENDA"].ToString(); if (string.IsNullOrEmpty(CUSTO["CODIGO_FORNECEDOR"].ToString())) { CUSTO["CODIGO_FORNECEDOR"] = null; } novo.CODIGO_FORNECEDOR = Convert.ToDecimal(CUSTO["CODIGO_FORNECEDOR"]); novo.CODIGO_FORNECEDOR = novo.CODIGO_FORNECEDOR.HasValue ? novo.CODIGO_FORNECEDOR : null; Entidade.InsertOnSubmit(novo); Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(CUSTO["ID_USUARIO"])); } } ctx.SubmitChanges(); List <object> retorno = new List <object>(); using (Doran_Comercial_Orcamentos item = new Doran_Comercial_Orcamentos(NUMERO_ORCAMENTO, Convert.ToDecimal(LINHAS[0]["ID_USUARIO"]))) { retorno = item.Recalcula_Custos(NUMERO_ITEM_ORCAMENTO); } return(retorno); } } catch (Exception ex) { Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(LINHAS[0]["ID_USUARIO"])); throw ex; } }
public string Lista_Relatorio(decimal ID_EMPRESA) { string retorno = ""; using (Th2_Report r = new Th2_Report(ExpertPdf.HtmlToPdf.PdfPageSize.A4, ExpertPdf.HtmlToPdf.PDFPageOrientation.Portrait)) { r.ID_EMPRESA = ID_EMPRESA; r.DefineCabecalho("Itens de compra com entrega atrasada", 60); using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var query = (from linha in ctx.TB_PEDIDO_COMPRAs orderby linha.PREVISAO_ENTREGA_ITEM_COMPRA descending where linha.PREVISAO_ENTREGA_ITEM_COMPRA < dataLimite && (linha.TB_STATUS_PEDIDO_COMPRA.STATUS_ESPECIFICO_ITEM_COMPRA == 2 || linha.TB_STATUS_PEDIDO_COMPRA.STATUS_ESPECIFICO_ITEM_COMPRA == 3 || linha.TB_STATUS_PEDIDO_COMPRA.STATUS_ESPECIFICO_ITEM_COMPRA == 6) && (linha.TB_FORNECEDOR.NOME_FANTASIA_FORNECEDOR.Contains(FORNECEDOR) || linha.TB_FORNECEDOR.NOME_FORNECEDOR.Contains(FORNECEDOR)) select new { linha.NUMERO_PEDIDO_COMPRA, linha.DATA_ITEM_COMPRA, linha.PREVISAO_ENTREGA_ITEM_COMPRA, linha.TB_FORNECEDOR.NOME_FANTASIA_FORNECEDOR, linha.CODIGO_PRODUTO_COMPRA, linha.QTDE_ITEM_COMPRA, linha.UNIDADE_ITEM_COMPRA, QTDE_RECEBIDA = (from linha1 in ctx.TB_RECEBIMENTO_PEDIDO_COMPRAs orderby linha1.NUMERO_PEDIDO_COMPRA, linha1.NUMERO_ITEM_COMPRA where linha1.NUMERO_PEDIDO_COMPRA == linha.NUMERO_PEDIDO_COMPRA && linha1.NUMERO_ITEM_COMPRA == linha.NUMERO_ITEM_COMPRA select linha1.QTDE_RECEBIDA).Any() ? (from linha1 in ctx.TB_RECEBIMENTO_PEDIDO_COMPRAs orderby linha1.NUMERO_PEDIDO_COMPRA, linha1.NUMERO_ITEM_COMPRA where linha1.NUMERO_PEDIDO_COMPRA == linha.NUMERO_PEDIDO_COMPRA && linha1.NUMERO_ITEM_COMPRA == linha.NUMERO_ITEM_COMPRA select linha1.QTDE_RECEBIDA).Sum() : 0 }).ToList(); string _conteudo = "<table style='width: 70%; font-family: tahoma; font-size: 8pt;'>"; _conteudo += @"<tr> <td style='BORDER-BOTTOM: 1px solid;'>Nº do Pedido</td> <td style='BORDER-BOTTOM: 1px solid;'>Fornecedor</td> <td style='BORDER-BOTTOM: 1px solid;'>Produto</td> <td style='BORDER-BOTTOM: 1px solid;'>Un.</td> <td style='BORDER-BOTTOM: 1px solid;'>Qtde. pedida</td> <td style='BORDER-BOTTOM: 1px solid;'>Qtde. faltante</td> <td style='BORDER-BOTTOM: 1px solid;'>Entrega</td> <td style='BORDER-BOTTOM: 1px solid;'>Dias de atraso</td> </tr>"; foreach (var item in query) { TimeSpan ts = DateTime.Today.Subtract(item.PREVISAO_ENTREGA_ITEM_COMPRA.Value); int dias = ts.Days; _conteudo += string.Format(@"<tr> <td style='BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0; text-align: center;'>{0}</td> <td style='BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>{1}</td> <td style='BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>{2}</td> <td style='BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>{3}</td> <td style='BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid; border-color:#C0C0C0; text-align: center;'>{4}</td> <td style='BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid; border-color:#C0C0C0; text-align: center;'>{5}</td> <td style='BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>{6}</td> <td style='BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid; border-color:#C0C0C0; text-align: center;'>{7}</td> </tr>", item.NUMERO_PEDIDO_COMPRA.ToString(), item.NOME_FANTASIA_FORNECEDOR.Trim(), item.CODIGO_PRODUTO_COMPRA.Trim(), item.UNIDADE_ITEM_COMPRA, ((decimal)item.QTDE_ITEM_COMPRA).ToString("n"), ((decimal)(item.QTDE_ITEM_COMPRA - item.QTDE_RECEBIDA)).ToString("n"), ApoioXML.TrataData2(item.PREVISAO_ENTREGA_ITEM_COMPRA), ts.Days.ToString()); } _conteudo += "</table>"; r.InsereConteudo(_conteudo); retorno = r.SalvaDocumento("Doran_Itens_Compra_Nao_Entregues"); } return(retorno); } }
public Dictionary <string, object> BuscaPorID(int ID_CLIENTE, decimal ID_USUARIO) { try { using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { var query = (from cliente in ctx.TB_CLIENTEs join ufs in ctx.TB_UFs on cliente.ESTADO_FATURA equals ufs.ID_UF where cliente.ID_CLIENTE == ID_CLIENTE select new { cliente.ID_CLIENTE, cliente.NOME_CLIENTE, cliente.NOMEFANTASIA_CLIENTE, cliente.CNPJ_CLIENTE, cliente.IE_CLIENTE, cliente.IE_SUFRAMA, cliente.ENDERECO_FATURA, cliente.NUMERO_END_FATURA, cliente.COMP_END_FATURA, cliente.CEP_FATURA, cliente.BAIRRO_FATURA, cliente.CIDADE_FATURA, DESCRICAO_CIDADE_FATURA = cliente.TB_MUNICIPIO.NOME_MUNICIPIO, cliente.ESTADO_FATURA, DESCRICAO_ESTADO_FATURA = ufs.DESCRICAO_UF, cliente.TELEFONE_FATURA, cliente.ENDERECO_ENTREGA, cliente.NUMERO_END_ENTREGA, cliente.COMP_END_ENTREGA, cliente.CEP_ENTREGA, cliente.BAIRRO_ENTREGA, cliente.CIDADE_ENTREGA, DESCRICAO_CIDADE_ENTREGA = cliente.TB_MUNICIPIO1.NOME_MUNICIPIO, cliente.ESTADO_ENTREGA, cliente.TELEFONE_ENTREGA, cliente.ENDERECO_COBRANCA, cliente.CEP_COBRANCA, cliente.BAIRRO_COBRANCA, cliente.CIDADE_COBRANCA, DESCRICAO_CIDADE_COBRANCA = cliente.TB_MUNICIPIO2.NOME_MUNICIPIO, cliente.ESTADO_COBRANCA, cliente.TELEFONE_COBRANCA, cliente.CODIGO_CP_CLIENTE, cliente.ID_LIMITE, cliente.CODIGO_VENDEDOR_CLIENTE, cliente.OBS_CLIENTE, cliente.EMAIL_CLIENTE, cliente.ENVIO_NFE_CLIENTE, cliente.PESSOA, cliente.CLIENTE_BLOQUEADO, cliente.FORNECEDOR, cliente.CONTATOS, cliente.DATA_CADASTRO, cliente.CODIGO_REGIAO, }).ToList(); if (query.Count() == 0) { throw new Exception("Cliente não encontrado"); } Dictionary <string, object> dados = new Dictionary <string, object>(); foreach (var item in query) { dados.Add("ID_CLIENTE", item.ID_CLIENTE); dados.Add("NOME_CLIENTE", item.NOME_CLIENTE.Trim()); dados.Add("NOMEFANTASIA_CLIENTE", item.NOMEFANTASIA_CLIENTE.ToString().Trim()); dados.Add("CNPJ_CLIENTE", item.CNPJ_CLIENTE.ToString().Trim()); dados.Add("IE_CLIENTE", item.IE_CLIENTE.ToString().Trim()); dados.Add("IE_SUFRAMA", item.IE_SUFRAMA.ToString().Trim()); dados.Add("ENDERECO_FATURA", item.ENDERECO_FATURA.ToString().Trim()); dados.Add("NUMERO_END_FATURA", item.NUMERO_END_FATURA.ToString().Trim()); dados.Add("COMP_END_FATURA", item.COMP_END_FATURA.ToString().Trim()); dados.Add("CEP_FATURA", item.CEP_FATURA.ToString().Trim()); dados.Add("BAIRRO_FATURA", item.BAIRRO_FATURA.ToString().Trim()); dados.Add("CIDADE_FATURA", item.CIDADE_FATURA.ToString().Trim()); dados.Add("DESCRICAO_CIDADE_FATURA", item.DESCRICAO_CIDADE_FATURA.Trim()); dados.Add("ESTADO_FATURA", item.ESTADO_FATURA.ToString().Trim()); dados.Add("DESCRICAO_ESTADO_FATURA", item.DESCRICAO_ESTADO_FATURA.ToString().Trim()); dados.Add("TELEFONE_FATURA", item.TELEFONE_FATURA.ToString().Trim()); dados.Add("ENDERECO_ENTREGA", item.ENDERECO_ENTREGA.ToString().Trim()); dados.Add("NUMERO_END_ENTREGA", item.NUMERO_END_ENTREGA.ToString().Trim()); dados.Add("COMP_END_ENTREGA", item.COMP_END_ENTREGA.ToString().Trim()); dados.Add("CEP_ENTREGA", item.CEP_ENTREGA.ToString().Trim()); dados.Add("BAIRRO_ENTREGA", item.BAIRRO_ENTREGA.ToString().Trim()); dados.Add("CIDADE_ENTREGA", item.CIDADE_ENTREGA.ToString().Trim()); dados.Add("DESCRICAO_CIDADE_ENTREGA", item.DESCRICAO_CIDADE_ENTREGA.ToString().Trim()); dados.Add("ESTADO_ENTREGA", item.ESTADO_ENTREGA.ToString().Trim()); dados.Add("TELEFONE_ENTREGA", item.TELEFONE_ENTREGA.ToString().Trim()); dados.Add("ENDERECO_COBRANCA", item.ENDERECO_COBRANCA.ToString().Trim()); dados.Add("CEP_COBRANCA", item.CEP_COBRANCA.ToString().Trim()); dados.Add("BAIRRO_COBRANCA", item.BAIRRO_COBRANCA.ToString().Trim()); dados.Add("CIDADE_COBRANCA", item.CIDADE_COBRANCA.ToString().Trim()); dados.Add("DESCRICAO_CIDADE_COBRANCA", item.DESCRICAO_CIDADE_COBRANCA.ToString().Trim()); dados.Add("ESTADO_COBRANCA", item.ESTADO_COBRANCA.ToString().Trim()); dados.Add("TELEFONE_COBRANCA", item.TELEFONE_COBRANCA.ToString().Trim()); dados.Add("CODIGO_CP_CLIENTE", item.CODIGO_CP_CLIENTE.ToString().Trim()); dados.Add("ID_LIMITE_CLIENTE", item.ID_LIMITE.ToString().Trim()); dados.Add("CODIGO_VENDEDOR_CLIENTE", item.CODIGO_VENDEDOR_CLIENTE); dados.Add("OBS_CLIENTE", item.OBS_CLIENTE.Trim()); dados.Add("ENVIO_NFE_CLIENTE", item.ENVIO_NFE_CLIENTE); dados.Add("EMAIL_CLIENTE", item.EMAIL_CLIENTE.Trim()); dados.Add("PESSOA", item.PESSOA); dados.Add("CLIENTE_BLOQUEADO", item.CLIENTE_BLOQUEADO); dados.Add("FORNECEDOR", item.FORNECEDOR); dados.Add("DATA_CADASTRO", ApoioXML.TrataData2(item.DATA_CADASTRO)); dados.Add("CODIGO_REGIAO", item.CODIGO_REGIAO); } return(dados); } } catch (Exception ex) { Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, ID_USUARIO); throw ex; } }
public string MontaRelatorioRemessa() { string retorno = ""; using (Th2_Report r = new Th2_Report(ExpertPdf.HtmlToPdf.PdfPageSize.A4, ExpertPdf.HtmlToPdf.PDFPageOrientation.Portrait)) { r.ID_EMPRESA = ID_EMPRESA; string nome_banco = ""; using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { ctx.Connection.Open(); ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;"); if (NUMERO_BANCO > 0) { nome_banco = (from linha in ctx.TB_BANCOs where linha.NUMERO_BANCO == NUMERO_BANCO select linha.NOME_BANCO.Trim()).ToList().First().Trim(); } string cabecalho = string.Format("Relatório Remessa Bancária por Emissão<br /><span style='font-family: Tahoma; font-size: 8pt;'>Período de {0} até {1}<br />{2}</span>", ApoioXML.TrataData2(DATA_INICIAL), ApoioXML.TrataData2(DATA_FINAL.AddDays(-1)), NUMERO_BANCO > 0 ? "Banco: " + nome_banco : ""); r.DefineCabecalho(cabecalho, 60); DateTime _dt = DATA_INICIAL; StringBuilder _conteudo = new StringBuilder(); _conteudo.Append("<table style='width: 70%; font-family: tahoma; font-size: 8pt;'>"); _conteudo.Append(@"<tr> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>NF / Duplicata</td> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Emissão</td> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Vencimento</td> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Cliente</td> <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Valor do Título</td> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Instrução de Remessa</td> </tr>"); var query = from linha in ctx.TB_HISTORICO_CNABs where linha.NUMERO_BANCO == NUMERO_BANCO && (linha.DATA_HISTORICO >= DATA_INICIAL && linha.DATA_HISTORICO < DATA_FINAL) && linha.REMESSA_RETORNO == 0 && linha.TB_FINANCEIRO.CODIGO_CLIENTE > 0 && linha.TB_FINANCEIRO.CODIGO_EMITENTE == ID_EMPRESA && linha.TB_FINANCEIRO.CREDITO_DEBITO == 0 select new { linha.NUMERO_FINANCEIRO, linha.TB_FINANCEIRO.NUMERO_SEQ_NF_SAIDA, linha.TB_FINANCEIRO.NUMERO_NF_SAIDA, linha.TB_FINANCEIRO.DATA_LANCAMENTO, linha.TB_FINANCEIRO.DATA_VENCIMENTO, linha.TB_FINANCEIRO.TB_CLIENTE.NOMEFANTASIA_CLIENTE, linha.TB_FINANCEIRO.VALOR_TOTAL, linha.TB_FINANCEIRO.TB_OCORRENCIA_BANCARIA_REMESSA.DESCRICAO_OCORRENCIA }; decimal TOTAL_PERIODO = 0; foreach (var item in query) { string duplicata = ""; if (NUMERO_BANCO == 237) { duplicata = Doran_Base.CNAB.FaTh2_Remessa_Bradesco.Duplicata(ctx, item.NUMERO_NF_SAIDA, item.DATA_VENCIMENTO); } if (NUMERO_BANCO == 1) { duplicata = Doran_Base.CNAB.FaTh2_Remessa_Brasil.Duplicata(ctx, item.NUMERO_NF_SAIDA, item.DATA_VENCIMENTO); } _conteudo.Append(string.Format(@"<tr> <td style='text-align: center; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td> <td style='text-align: center; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td> <td style='text-align: center; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td> <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{5}</td> </tr>", duplicata, ApoioXML.Data((DateTime)item.DATA_LANCAMENTO), ApoioXML.Data((DateTime)item.DATA_VENCIMENTO), item.NOMEFANTASIA_CLIENTE.Trim(), ((decimal)item.VALOR_TOTAL).ToString("c"), item.DESCRICAO_OCORRENCIA.Trim())); TOTAL_PERIODO += (decimal)item.VALOR_TOTAL; } _conteudo.Append(string.Format(@"<tr> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>Total</td> <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td> <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td> </tr>", ((decimal)TOTAL_PERIODO).ToString("c"))); _conteudo.Append("</table>"); r.InsereConteudo(_conteudo.ToString()); retorno = r.SalvaDocumento("Doran_Remessa_Bancaria"); } return(retorno); } }
public string MontaRelatorioAReceber() { 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 Receber Vencidos", 60); DateTime dataLimite = Doran_TitulosVencidos.DataLimiteParaVencimento(); 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_CLIENTE > 0 && linha.HISTORICO.Contains(cliente_fornecedor) && linha.CODIGO_EMITENTE == ID_EMPRESA select new { linha.NUMERO_FINANCEIRO, linha.NUMERO_SEQ_NF_SAIDA, linha.NUMERO_NF_SAIDA, linha.NUMERO_SEQ_NF_ENTRADA, linha.HISTORICO, linha.DATA_LANCAMENTO, linha.DATA_VENCIMENTO, CLIENTE = linha.TB_NOTA_SAIDA == null ? "" : linha.TB_NOTA_SAIDA.TB_CLIENTE.NOMEFANTASIA_CLIENTE, VENDEDOR = linha.TB_NOTA_SAIDA == null ? "" : linha.TB_NOTA_SAIDA.NOME_VENDEDOR_NF, CODIGO_VENDEDOR = linha.TB_NOTA_SAIDA == null ? 0 : linha.TB_NOTA_SAIDA.CODIGO_VENDEDOR_NF, VALOR_TOTAL = (linha.VALOR + linha.VALOR_ACRESCIMO + linha.VALOR_MULTA) - linha.VALOR_DESCONTO, linha.VALOR_APROXIMADO }; if (VENDEDOR > 0) { query = query.Where(_ => _.CODIGO_VENDEDOR == VENDEDOR); } 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;'>Cliente</td> <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Vendedor</td> <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Valor</td> <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Valor Aproximado?</td> </tr>"; decimal Total = 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); } decimal valor = (decimal)item.VALOR_TOTAL - Doran_TitulosVencidos.PagoParcialmente(item.NUMERO_FINANCEIRO); if (_vencimento < _limite) { _conteudo += string.Format(@"<tr> <td style='BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td> <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td> <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td> <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td> <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td> <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0; text-align: right;'>{5}</td> <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{6}</td> </tr>", item.NUMERO_NF_SAIDA.ToString() + "/" + ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, item.NUMERO_SEQ_NF_ENTRADA, item.DATA_VENCIMENTO), ApoioXML.Data((DateTime)item.DATA_LANCAMENTO), ApoioXML.Data((DateTime)item.DATA_VENCIMENTO), string.IsNullOrEmpty(item.CLIENTE) ? item.HISTORICO : item.CLIENTE.Trim(), string.IsNullOrEmpty(item.VENDEDOR) ? "" : item.VENDEDOR.Trim(), ((decimal)valor).ToString("c"), item.VALOR_APROXIMADO == 1 ? "S" : ""); Total += valor; } } _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;'> </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 Dictionary <string, object> Calcula_e_Grava_Totais_Nota_Saida(Dictionary <string, decimal> linha, bool Moeda) { using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext()) { Dictionary <string, object> retorno = new Dictionary <string, object>(); var queryItens = (from itens in ctx.GetTable <TB_ITEM_NOTA_SAIDA>() where itens.NUMERO_ITEM_NF == _NUMERO_SEQ select itens).ToList(); decimal TOTAL_SERVICOS_NF = decimal.TryParse(queryItens.Sum(c => c.VALOR_TOTAL_ITEM_NF).ToString(), out TOTAL_SERVICOS_NF) ? (decimal)queryItens.Sum(c => c.VALOR_TOTAL_ITEM_NF) : 0; decimal TOTAL_ISS_NF = decimal.TryParse(queryItens.Sum(c => c.VALOR_ISS_ITEM_NF).ToString(), out TOTAL_ISS_NF) ? (decimal)queryItens.Sum(c => c.VALOR_ISS_ITEM_NF) : 0; decimal BASE_ISS_NF = decimal.TryParse(queryItens.Sum(c => c.BASE_ISS_ITEM_NF).ToString(), out BASE_ISS_NF) ? (decimal)queryItens.Sum(c => c.BASE_ISS_ITEM_NF) : 0; decimal TOTAL_NF = TOTAL_SERVICOS_NF; Completa_DADOS_ADICIONAIS_NF(); var query = (from linha1 in ctx.TB_NOTA_SAIDAs where linha1.NUMERO_SEQ == _NUMERO_SEQ select linha1).ToList(); foreach (var nota in query) { nota.BASE_ISS_NF = BASE_ISS_NF; nota.VALOR_ISS_NF = TOTAL_ISS_NF; nota.TOTAL_SERVICOS_NF = TOTAL_SERVICOS_NF; nota.TOTAL_NF = TOTAL_SERVICOS_NF; TOTAL_NF = nota.TOTAL_NF.Value; nota.DADOS_ADICIONAIS_NF = DADOS_ADICIONAIS; Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.GetTable <TB_NOTA_SAIDA>().GetModifiedMembers(nota), ctx.GetTable <TB_NOTA_SAIDA>().ToString(), ID_USUARIO); ctx.SubmitChanges(); } if (Moeda) { retorno.Add("BASE_ISS_NF", BASE_ISS_NF.ToString("c", CultureInfo.CurrentCulture)); retorno.Add("VALOR_ISS_NF", TOTAL_ISS_NF.ToString("c", CultureInfo.CurrentCulture)); retorno.Add("TOTAL_SERVICOS_NF", TOTAL_SERVICOS_NF.ToString("c", CultureInfo.CurrentCulture)); retorno.Add("TOTAL_NF", TOTAL_NF.ToString("c", CultureInfo.CurrentCulture)); } else { retorno.Add("BASE_ISS_NF", BASE_ISS_NF.ToString()); retorno.Add("VALOR_ISS_NF", TOTAL_ISS_NF.ToString()); retorno.Add("TOTAL_SERVICOS_NF", TOTAL_SERVICOS_NF.ToString()); retorno.Add("TOTAL_NF", TOTAL_NF.ToString()); } retorno.Add("DADOS_ADICIONAIS_NF", DADOS_ADICIONAIS); return(retorno); } }