示例#1
0
        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);
        }
示例#2
0
        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>&nbsp; </td>
<td align=""right""><b>Cota&ccedil;&atilde;o de Compra N&ordm;</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&oacute;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&ccedil;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);
        }