Advertisement
geracino

sp envia email padaria terc

Sep 12th, 2023 (edited)
1,427
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 8.39 KB | Software | 0 0
  1. -- Created on 12/09/2023 by 3048648D-67DF-4B51
  2. DECLARE
  3.   -- Local variables here
  4. -- Declara Variáveis
  5. vcorpoemail            clob NULL;
  6. vcount                 NUMBER NULL;
  7. vcount2                NUMBER NULL;
  8. vcount3                NUMBER NULL;
  9.  obj_param_smtp             c5_tp_param_smtp;
  10.  
  11. -- Declara Cursores
  12. CURSOR cccorpo IS
  13.                SELECT seqproduto,
  14.                       desccompleta,
  15.                       embalagem,
  16.                       quantidade,
  17.                       nrodoctos,
  18.                       vlrunitario,
  19.                       vlrvenda,
  20.                       vlrlucro,
  21.                       ctobrutomarkupdown,
  22.                       lucratividade
  23.                       FROM dtv_venda_padaria
  24.  ;
  25. CURSOR ccestoque IS
  26.                  SELECT seqproduto,
  27.                         produto,
  28.                         embalagem,
  29.                         precounitario,
  30.                         qtdtotal quantidade,
  31.                         VLRPRECOVENDA                      
  32.                         FROM DTV_ESTOQUE_PADARIA t
  33.                         WHERE t.QTDTOTAL < 0
  34.                         ;
  35.                        
  36. CURSOR cccompra IS                      
  37.                 SELECT seqproduto,
  38.                        desccompleta produto,
  39.                        embalagem,
  40.                        quantidade,
  41.                        vlrvenda vendas
  42.                        FROM DTV_COMPRA_PADARIA t;
  43.  
  44.  
  45. DADOS_CORPOS cccorpo%ROWTYPE;
  46. DADOS_ESTOQUE ccestoque%ROWTYPE;
  47. DADOS_COMPRAS cccompra%ROWTYPE;
  48.  
  49. BEGIN
  50.  
  51.        SELECT COUNT(*)
  52.        INTO vcount
  53.        FROM dtv_venda_padaria;
  54.        
  55.        SELECT COUNT(*)
  56.        INTO vcount2
  57.        FROM dtv_estoque_padaria;
  58.        
  59.        SELECT COUNT(*)
  60.        INTO vcount3
  61.        FROM dtv_compra_padaria;
  62.  
  63.        -- Processa os fetchs
  64.        OPEN cccorpo;
  65.        FETCH cccorpo INTO DADOS_CORPOS;
  66.        CLOSE cccorpo;
  67.        
  68.        OPEN ccestoque;
  69.        FETCH ccestoque INTO DADOS_ESTOQUE;
  70.        CLOSE ccestoque;
  71.        
  72.        OPEN cccompra;
  73.        FETCH cccompra INTO DADOS_COMPRAS;
  74.        CLOSE cccompra;
  75.        
  76.        -- Cabeçalho VENDAS
  77.        vcorpoemail := '<table border ="1" color= "black"><style type="text/css">
  78.                      tr {color : Black;
  79.                              font-size : 12 ;
  80.                              font-family : Verdana;
  81.                          border : 2px solid black;}
  82.       </style>
  83.       <tr style="background-color:#D9D9D9"><font color="black" ><td>SEQPRODUTO</td>
  84.           <td>PRODUTO</td>
  85.           <td>EMBALAGEM</td>
  86.           <td>QUANTIDADE</td>
  87.           <td>QTDDOCTOS</td>
  88.           <td>VENDA</td>
  89.           <td>CUSTO</td>
  90.           <td>VLRUNITARIO</td>            
  91.           <td>LUCRATIVIDADE%</td></font></tr>';
  92.            
  93.  
  94.        -- Corpo de arquivo.
  95.        IF vcount = 0 THEN
  96.          vcorpoemail := vcorpoemail||'<tr><td>Não há dados novos</td></tr>';
  97.          END IF;
  98.  
  99.  
  100.        FOR DADOS_CORPOS IN cccorpo
  101.  
  102.        LOOP
  103.               IF DADOS_CORPOS.SEQPRODUTO !=0
  104.               THEN
  105.               --vcorpoemail:=vcorpoemail||'<tr><td>'||lpad(DADOS_CORPOS.COMPRADOR,15,' ')||' - '||rpad(DADOS_CORPOS.EMPRESA,14,' ')||': Acordo: '||rpad(DADOS_CORPOS.NROACORDO,6,' ')||' Fornecedor: '||DADOS_CORPOS.FORNECEDOR||'<BR><BR> '||/*chr(13)||*/chr(10);
  106.               vcorpoemail:=vcorpoemail||'<tr><td>'||DADOS_CORPOS.SEQPRODUTO||'</td><td>'||DADOS_CORPOS.DESCCOMPLETA||'</td><td>'||DADOS_CORPOS.EMBALAGEM||'</td><td>'
  107.                                       ||DADOS_CORPOS.QUANTIDADE||'</td><td>'||TO_CHAR(DADOS_CORPOS.NRODOCTOS)||'</td><td>'||TO_CHAR(DADOS_CORPOS.VLRVENDA)||'</td><td>'||TO_CHAR(DADOS_CORPOS.CTOBRUTOMARKUPDOWN)||'</td><td>'||TO_CHAR(DADOS_CORPOS.VLRUNITARIO)||'</td><td>'||TO_CHAR(DADOS_CORPOS.LUCRATIVIDADE)||'</td></tr>'/*||\*chr(13)||*\chr(10)*/;
  108.  
  109.               END IF;
  110.  
  111.        END LOOP;
  112.  
  113.        vcorpoemail :=vcorpoemail||'</table>';
  114.  
  115.        /*CABELHO ESTOQUE*/
  116.        vcorpoemail := vcorpoemail||'<br><br>
  117.                                      <p>Quantidade de Estoque Acumlado.</p>
  118.                      <table border ="1" color= "black">
  119.                             <style type="text/css">
  120.                                    tr {color       : Black;
  121.                                        font-size   : 12 ;
  122.                                        font-family : Verdana;
  123.                                        border      : 2px solid black;}
  124.                             </style>
  125.       <tr style="background-color:#D9D9D9"><font color="black" ><td>SEQPRODUTO</td>
  126.           <td>PRODUTO</td>
  127.           <td>EMBALAGEM</td>
  128.           <td>QUANTIDADE</td>
  129.           <td>VENDA</td>
  130.           <td>PRECOUNIT</td> </font></tr>';
  131.            
  132.        /*CORPO ESTOQUE*/    
  133.        -- Corpo de arquivo.
  134.        IF vcount2 = 0 THEN
  135.          vcorpoemail := vcorpoemail||'<tr><td>Não há dados novos</td></tr>';
  136.          END IF;
  137.  
  138.  
  139.        FOR DADOS_ESTOQUE IN ccestoque
  140.  
  141.        LOOP
  142.               IF DADOS_ESTOQUE.SEQPRODUTO !=0
  143.               THEN
  144.               --vcorpoemail:=vcorpoemail||'<tr><td>'||lpad(DADOS_CORPOS.COMPRADOR,15,' ')||' - '||rpad(DADOS_CORPOS.EMPRESA,14,' ')||': Acordo: '||rpad(DADOS_CORPOS.NROACORDO,6,' ')||' Fornecedor: '||DADOS_CORPOS.FORNECEDOR||'<BR><BR> '||/*chr(13)||*/chr(10);
  145.               vcorpoemail:=vcorpoemail||'<tr><td>'||DADOS_ESTOQUE.SEQPRODUTO||'</td><td>'||DADOS_ESTOQUE.PRODUTO||'</td><td>'||DADOS_ESTOQUE.EMBALAGEM||'</td><td>'||DADOS_ESTOQUE.QUANTIDADE||'</td><td>'||DADOS_ESTOQUE.VLRPRECOVENDA||'</td><td>'||DADOS_ESTOQUE.Precounitario||'</td></tr>'/*||\*chr(13)||*\chr(10)*/;
  146.  
  147.               END IF;
  148.  
  149.        END LOOP;
  150.  
  151.        vcorpoemail :=vcorpoemail||'</table>';    
  152.      
  153.        /*CABELHO COMPRA*/
  154.        vcorpoemail := vcorpoemail||'<br><br>
  155.                                      <p>Quantidade de compras Acumlado.</p>
  156.                      <table border ="1" color= "black">
  157.                             <style type="text/css">
  158.                                    tr {color       : Black;
  159.                                        font-size   : 12 ;
  160.                                        font-family : Verdana;
  161.                                        border      : 2px solid black;}
  162.                             </style>
  163.       <tr style="background-color:#D9D9D9"><font color="black" ><td>SEQPRODUTO</td>
  164.           <td>PRODUTO</td>
  165.           <td>EMBALAGEM</td>
  166.           <td>QUANTIDADE</td>
  167.           <td>VENDA</td> </font></tr>';
  168.            
  169.        /*CORPO COMPRAS*/    
  170.        -- Corpo de arquivo.
  171.        IF vcount3 = 0 THEN
  172.          vcorpoemail := vcorpoemail||'<tr><td>Não há dados novos</td></tr>';
  173.          END IF;
  174.  
  175.  
  176.        FOR DADOS_COMPRAS IN cccompra
  177.  
  178.        LOOP
  179.               IF DADOS_COMPRAS.SEQPRODUTO !=0
  180.               THEN
  181.               --vcorpoemail:=vcorpoemail||'<tr><td>'||lpad(DADOS_CORPOS.COMPRADOR,15,' ')||' - '||rpad(DADOS_CORPOS.EMPRESA,14,' ')||': Acordo: '||rpad(DADOS_CORPOS.NROACORDO,6,' ')||' Fornecedor: '||DADOS_CORPOS.FORNECEDOR||'<BR><BR> '||/*chr(13)||*/chr(10);
  182.               vcorpoemail:=vcorpoemail||'<tr><td>'||DADOS_COMPRAS.SEQPRODUTO||'</td><td>'||DADOS_COMPRAS.PRODUTO||'</td><td>'||DADOS_COMPRAS.EMBALAGEM||'</td><td>'||DADOS_COMPRAS.QUANTIDADE||'</td><td>'||DADOS_COMPRAS.VENDAS||'</td></tr>'/*||\*chr(13)||*\chr(10)*/;
  183.  
  184.               END IF;
  185.  
  186.        END LOOP;
  187.  
  188.        vcorpoemail :=vcorpoemail||'</table>';
  189.  
  190.  obj_param_smtp := c5_tp_param_smtp(12);
  191.   IF obj_param_smtp.CriadoComSucesso = 0 THEN
  192.     RETURN;
  193.   END IF;
  194.       sp_envia_email(obj_param      => obj_param_smtp,
  195.        psDestinatario =>'paulofis@gmail.com,wellington@daterraatacadoevarejo.com.br'
  196.        ,psAssunto      =>'[DATERRA] - Vendas referente ao dia '||TO_CHAR(SYSDATE,'dd/mm/yyyy')
  197.        ,psMensagem     =>'
  198.                                <br><br>Prezados,
  199.                                <br><br> Vendas referente ao dia '||TO_CHAR(SYSDATE,'dd/mm/yyyy')
  200.                                 ||'<br><br>'
  201.                                 ||vcorpoemail
  202.                                 ||'<br><br><br>'||'E-mail enviado pelo Servidor automaticamente, por favor não responder. <br><br><br>
  203.                                <img src="https://daterraatacadoevarejo.com.br/wp-content/uploads/2021/05/logo_daterra_hor_b-1024x81.png" width="512" height="40"  align="center" style="background-color:#D9D9D9">'
  204.        ,psindusahtml   => 'S');
  205.  
  206.  
  207.  
  208. END;
  209.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement