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 List <object> Imprime_Pedido_Fornecedor(decimal ID_CONTA_EMAIL, string CNPJ_EMITENTE, decimal ID_USUARIO, string LOGIN_USUARIO) { 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.LOGOTIPO_ORCAMENTO_VENDAS).ToList(); foreach (var item in query) { LOGOTIPO = ConfigurationManager.AppSettings["PastaVirtual"] + item.Trim(); } } 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.NUMERO_ITEM_COMPRA where linha.NUMERO_PEDIDO_COMPRA == NUMERO_PEDIDO_COMPRA && linha.NUMERO_ITEM_COMPRA == _ITENS[0] && linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR select linha).ToList(); foreach (var item in query) { TB_EMITENTE EMITENTE = new TB_EMITENTE(); Doran_ERP_Servicos_DadosDataContext ctx1 = new Doran_ERP_Servicos_DadosDataContext(); EMITENTE = (from linha in ctx1.TB_EMITENTEs orderby linha.CNPJ_EMITENTE where linha.CNPJ_EMITENTE == CNPJ_EMITENTE select linha).ToList().First(); htmlPEDIDO.Append(@"<table border=""0"" width=""770""><tbody> <tr> <td> </td> <td align=""right""><b>Cotação de Compra Nº</b>" + item.NUMERO_PEDIDO_COMPRA.ToString() + @" </td> <td align=""right"">" + ApoioXML.TrataData2(item.DATA_ITEM_COMPRA) + @"</td> <td align=""right""></td></tr></tbody></table> <hr align=""left"" width=""770""> <table border=""0"" width=""770""> <tbody> <tr> <td><img src='" + LOGOTIPO + @"'></td> <td></td></tr> <tr> <td valign=""top"">" + EMITENTE.NOME_EMITENTE.Trim() + @"<br>" + EMITENTE.ENDERECO_EMITENTE.Trim() + " " + EMITENTE.NUMERO_END_EMITENTE.Trim() + " " + EMITENTE.COMPLEMENTO_END_EMITENTE.Trim() + "<br />" + EMITENTE.TB_MUNICIPIO.NOME_MUNICIPIO.Trim() + @" - " + EMITENTE.TB_MUNICIPIO.TB_UF.SIGLA_UF + @" - BRASIL<br><b>Tel.:</b>" + EMITENTE.TELEFONE_EMITENTE.Trim() + " - <b>Fax:</b>" + EMITENTE.FAX_EMITENTE.Trim() + "<br><b>CNPJ:</b>" + EMITENTE.CNPJ_EMITENTE.Trim() + "<br><br><b>Contato(a):</b>" + LOGIN_USUARIO.Trim() + "<br><b>e-mail:</b> " + EMITENTE.EMAIL_EMITENTE.Trim() + @" - <b>site:</b>http://www.indufix.com.br<br></td> <td style=""BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-TOP: 1px solid; BORDER-RIGHT: 1px solid"" valign=""top""><b>Fornecedor:</b><br>" + item.CODIGO_FORNECEDOR.ToString() + @" - " + item.TB_FORNECEDOR.NOME_FORNECEDOR.Trim() + "<br>" + item.TB_FORNECEDOR.ENDERECO_FORNECEDOR.Trim() + " " + item.TB_FORNECEDOR.NUMERO_END_FORNECEDOR.Trim() + " " + item.TB_FORNECEDOR.COMPL_END_FORNECEDOR.Trim() + "<br>" + item.TB_FORNECEDOR.TB_MUNICIPIO.NOME_MUNICIPIO.Trim() + " - " + item.TB_FORNECEDOR.TB_MUNICIPIO.TB_UF.SIGLA_UF + " - " + item.TB_FORNECEDOR.CEP_FORNECEDOR.Trim() + "<br><b>CNPJ:</b>" + item.TB_FORNECEDOR.CNPJ_FORNECEDOR.Trim() + " - <b>I.E.:</b>" + item.TB_FORNECEDOR.IE_FORNECEDOR.Trim() + "<br><b>Contato: </b>" + item.TB_FORNECEDOR.CONTATO_FORNECEDOR.Trim() + "<br><b>Telefone:</b>" + item.TB_FORNECEDOR.TELEFONE1_FORNECEDOR.Trim() + " <br><strong>e-mail:</strong> " + item.TB_FORNECEDOR.EMAIL_FORNECEDOR.Trim() + @"</td></tr></tbody></table><br> <table style=""BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-TOP: 1px solid; BORDER-RIGHT: 1px solid"" width=""770""> <tbody> <tr> <td><b>Condições de Fornecimento</b><br><br><b>Pagamento:</b>" + item.TB_COND_PAGTO.DESCRICAO_CP.Trim() + @"</td> <td><br></td></tr></tbody></table> <div style=""TEXT-ALIGN: center; WIDTH: 770px; HEIGHT: 40px""></div> <table style=""BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-TOP: 1px solid; BORDER-RIGHT: 1px solid"" width=""770""> <tbody> <tr> <td style=""BORDER-BOTTOM: 1px solid""><b>Produto</b> </td> <td style=""BORDER-BOTTOM: 1px solid""><b>Código</b> </td> <td style=""BORDER-BOTTOM: 1px solid"" align=""middle""><b>UN</b> </td> <td style=""BORDER-BOTTOM: 1px solid"" align=""right""><b>Qtde.</b> </td> <td style=""BORDER-BOTTOM: 1px solid"" align=""right""><b>Preço</b> </td> <td style=""BORDER-BOTTOM: 1px solid"" align=""right""><b>Total Item</b> </td> <td style=""BORDER-BOTTOM: 1px solid"" align=""middle""><b>Entrega</b> </td></tr> "); NOME_FORNECEDOR = item.TB_FORNECEDOR.NOME_FANTASIA_FORNECEDOR.Trim(); NOME_FORNECEDOR = NOME_FORNECEDOR.Replace(" ", "_"); NOME_FORNECEDOR = ApoioXML.TrataSinais(NOME_FORNECEDOR); ctx1.Dispose(); } // Produtos decimal TOTAL_PRODUTOS = 0; decimal TOTAL_ICMS = 0; decimal TOTAL_ICMS_ST = 0; decimal TOTAL_IPI = 0; decimal TOTAL_PEDIDO = 0; var query1 = (from linha in ctx.TB_PEDIDO_COMPRAs where linha.NUMERO_PEDIDO_COMPRA == NUMERO_PEDIDO_COMPRA && _ITENS.Contains(linha.NUMERO_ITEM_COMPRA) && linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR select linha).ToList(); foreach (var item in query1) { 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 VENDEDOR = (from linha in ctx.TB_ASSOCIACAO_COMPRA_VENDAs where linha.NUMERO_PEDIDO_COMPRA == item.NUMERO_PEDIDO_COMPRA && linha.NUMERO_ITEM_COMPRA == item.NUMERO_ITEM_COMPRA select linha).Any() ? (from linha in ctx.TB_ASSOCIACAO_COMPRA_VENDAs where linha.NUMERO_PEDIDO_COMPRA == item.NUMERO_PEDIDO_COMPRA && linha.NUMERO_ITEM_COMPRA == item.NUMERO_ITEM_COMPRA select linha.TB_PEDIDO_VENDA.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_VENDEDORE.NOME_VENDEDOR).First().Trim() : string.Empty; VENDEDOR = VENDEDOR.Length > 0 ? "<br />Vendedor(a): " + VENDEDOR : ""; htmlPEDIDO.Append(@"<tr style=""border-bottom: solid 1px;""> <td style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top""> " + item.TB_PRODUTO.DESCRICAO_PRODUTO.Trim() + VENDEDOR + @" </td> <td style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top""> " + item.CODIGO_PRODUTO_COMPRA.Trim() + @" </td> <td style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top""> " + item.UNIDADE_ITEM_COMPRA + @" </td> <td align=""right"" style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top""> " + ((decimal)item.QTDE_ITEM_COMPRA).ToString("n") + @" </td> <td align=""right"" style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top""> " + PRECO_FINAL.ToString().Valor_Moeda(4) + @" </td> <td align=""right"" style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top""> " + ((decimal)item.VALOR_TOTAL_ITEM_COMPRA).ToString("c") + @" </td> <td align=""center"" style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top""> " + ApoioXML.TrataData2(item.PREVISAO_ENTREGA_ITEM_COMPRA) + @" </td> </tr> "); if (item.OBS_ITEM_COMPRA.Length > 0) { htmlPEDIDO.Append(@"<tr> <td style=""BORDER-BOTTOM: 1px solid"" colspan=7>" + item.OBS_ITEM_COMPRA + @"</td> </tr>"); } TOTAL_PRODUTOS += (decimal)item.VALOR_TOTAL_ITEM_COMPRA; TOTAL_ICMS += (decimal)item.VALOR_ICMS_ITEM_COMPRA; TOTAL_ICMS_ST += (decimal)item.VALOR_ICMS_ST_ITEM_COMPRA; TOTAL_IPI += (decimal)item.VALOR_IPI_ITEM_COMPRA; TOTAL_PEDIDO += (decimal)item.VALOR_TOTAL_ITEM_COMPRA + (decimal)item.VALOR_IPI_ITEM_COMPRA + (decimal)item.VALOR_ICMS_ST_ITEM_COMPRA; 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); } } htmlPEDIDO.Append(@"</tbody></table> <hr align=""left"" width=""770""> <table width=""770""> <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_PRODUTOS.ToString("c") + @"</td></tr> <tr> <td align=""right""><b>Total de IPI:</b> </td> <td align=""right"">" + TOTAL_IPI.ToString("c") + @"</td></tr> <tr> <td align=""right""><b>Total de ICMS:</b> </td> <td align=""right"">" + TOTAL_ICMS.ToString("c") + @"</td></tr> <tr> <td align=""right""><b>Total de ICMS ST:</b> </td> <td align=""right"">" + TOTAL_ICMS_ST.ToString("c") + @"</td></tr> <tr> <td align=""right""><b>Total do Pedido:</b> </td> <td align=""right"">" + TOTAL_PEDIDO.ToString("c") + " </td></tr></tbody></table></td></tr></tbody></table>"); ctx.SubmitChanges(); } Grava_PDF_Pedido(htmlPEDIDO); Merge(_Arquivo); List <object> retorno = new List <object>(); retorno.Add(ConfigurationManager.AppSettings["PastaVirtualPDF"] + "PEDIDO_COTACAO_COMPRA_" + NUMERO_PEDIDO_COMPRA.ToString() + "_" + NOME_FORNECEDOR + ".pdf"); using (Doran_ERP_Servicos_DadosDataContext ctx2 = new Doran_ERP_Servicos_DadosDataContext()) { var query1 = (from linha in ctx2.TB_PEDIDO_COMPRAs orderby linha.NUMERO_PEDIDO_COMPRA, linha.NUMERO_ITEM_COMPRA where linha.NUMERO_ITEM_COMPRA == _ITENS[0] && linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR 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); if (ID_CONTA_EMAIL > 0) { string pdf = ConfigurationManager.AppSettings["PastaFisicaPDF"] + "PEDIDO_COTACAO_COMPRA_" + NUMERO_PEDIDO_COMPRA.ToString() + "_" + NOME_FORNECEDOR + ".pdf"; var pasta_anexos = (from linha in ctx2.GetTable <TB_EMAIL_CONTA>() where linha.ID_CONTA_EMAIL == ID_CONTA_EMAIL select linha.PASTA_ANEXOS).ToList().First(); arquivo_final = pasta_anexos.EndsWith("\\") ? pasta_anexos + "PEDIDO_COTACAO_COMPRA_" + NUMERO_PEDIDO_COMPRA.ToString() + "_" + NOME_FORNECEDOR + ".pdf" : pasta_anexos + "\\PEDIDO_COTACAO_COMPRA_" + NUMERO_PEDIDO_COMPRA.ToString() + "_" + NOME_FORNECEDOR + ".pdf"; File.Copy(pdf, arquivo_final, true); retorno.Add(arquivo_final); } } return(retorno); }