CREATE OR REPLACE PROCEDURE SISCORP.PRC_VEN_GERAARQPALM (pPathArq CHAR) -- IS -- ExpFilePath VARCHAR2(100); ExpFileName VARCHAR2(20); ExpFile sys.UTL_FILE.FILE_TYPE; vRepres VW_REPRES%ROWTYPE; vNrSeqExec SGR_TMP_RELATORIO.NROSEQEXEC%TYPE; --set long 10000 --------------------- -- P R O D U T O S -- arquivo unico --------------------- CURSOR cProduto IS SELECT value(mat).getCLOBVal() AS "XMLTYPE" FROM table(XMLSequence(Cursor( SELECT TRIM(LTRIM(RPAD(SUP_Material.CdMaterial,8))) ID_PRODUTO -- Código do produto ,TRIM(LTRIM(RPAD(SUP_Material.NoMaterial, 35))) NOME_PRODUTO -- Nome do material ,TRIM(LTRIM(RPAD(SUP_Material.CdMaterialFornec,15))) FORNECEDOR -- Referencia ,TRIM(LTRIM(RPAD(SUBSTR(SUP_MATERIAL.CDBARRAS,1,15),15))) CODIGO_BARRAS -- Código de Barra ,SUP_MATERIAL.VLRCUSTOATU PRECO_VENDA -- Preço de venda ,'0' PRECO_PROMOCAO -- Preço Promocional verificar com Vinix ,SUP_MATERIAL.PERCDESCMAX PECENTUAL_MAXIMO_DESCONTO -- Desconto máximo ,'0' QUANTIDADE_MINIMA_PROMOCAO -- Quantidade Mínima para promoção ,' ' MSG_ALTERACAO_PRECOS -- Mensagem Alteração de Preços. FROM SUP_Material WHERE TRUNC(SUP_Material.DtExclusao) = TO_DATE(FNC_PARAMETRO('SGR', 'DATENULL', 0), 'DD/MM/YYYY') AND SUP_Material.CdMaterial <> 0 --AND SUP_MATERIAL.CDGRUPOMATERIAL LIKE '2%' --and sup_material.cdmaterial = 36531 ORDER BY SUP_Material.CdMaterial))) mat; -- rProduto cProduto%ROWTYPE; --------------------- -- C L I E N T E -- --------------------- CURSOR cCliente IS SELECT value(cli).getCLOBVal() AS "XMLTYPE" FROM table(XMLSequence(Cursor(SELECT VW_Cliente.CdPessoaCli CODIGO_CLIENTE -- Codigo do cliente ,TRIM(LTRIM(RPAD(VW_Cliente.NoPessoaCli,35))) NOME -- Nome do cliente ,TRIM(LTRIM(RPAD(DECODE(VW_Cliente.NoFantasia ,NULL,'',VW_Cliente.NoFantasia),35))) FANTASIA -- Nome fantasia ,TRIM(LTRIM(RPAD(DECODE(SGR_ENDERECO.NoRua ,NULL,'',TRIM(SGR_Endereco.NoRua) || ', ' || TRIM(SGR_Endereco.NrEndereco)),35))) ENDERECO -- Endereço (rua) ,TRIM(LTRIM(RPAD(DECODE(SGR_Endereco.NoBairro ,NULL,'',TRIM(SGR_Endereco.NoBairro)),20 ))) BAIRRO -- Bairro ,TRIM(LTRIM(RPAD(DECODE(SGR_Endereco.NrCep ,NULL,'',TRIM(SGR_Endereco.NrCep)),10 ))) CEP -- CEP ,TRIM(LTRIM(RPAD(SGR_Cidade.noCidade,30))) CIDADE -- Cidade ,TRIM(LTRIM(RPAD(DECODE(FNC_FONE(VW_Cliente.CdPessoaCli, 0, FNC_PARAMETRO('SGR','CDTPFONE_COMERCIAL',0)),NULL,'',TRIM(FNC_FONE(VW_Cliente.CdPessoaCli, 0, FNC_PARAMETRO('SGR','CDTPFONE_COMERCIAL',0)))),15))) TELEFONE ,'000000000000000' CELULAR -- Celular ,TRIM(LTRIM(RPAD(VW_CLIENTE.txtEmail,50))) EMAIL -- Email ,RPAD(' ', 50) CONTATO -- Contato ,' ' TIPO_CREDITO -- Tipo de crédito ,VW_REPRES.CDPESSOAREPRES REPRESENTANTE -- Vendedor padrão ,FIN_CREDITO.VLRVENCIDO + VLRAVENCER DIVIDA -- Total da dívida ,' ' FORMA_PAGTO_PADRAO -- Forma de Pagamento Padrão ,0 TOLERANCIA_SALDO -- Tolerância Sobre Saldo (%) ,RPAD(' ', 4) ROTA -- Número da Rota / Carga ,0 ORDEM_DE_VISITA -- Ordem de visita ,0 PRAZO_DIAS -- Prazo Máximo em Dias para venda prazo ,VW_CLIENTE.FLGATIVO ATIVO_INATIVO -- Situação do Cliente Ativo, Inativo ( S, N ) ,TRIM(RTRIM(SUBSTR(VW_CLIENTE.OBSERVACAO,75))) OBSERVACAO1_CLIENTE -- Observação 1 do Cliente ,'' OBSERVACAO2_CLIENTE -- Observação 2 do Cliente FROM VW_Cliente ,SGR_Endereco ,SGR_Cidade ,VEN_CLIENTEREPRES ,VW_REPRES ,FIN_CREDITO WHERE VW_Cliente.CdPessoaCli = SGR_Endereco.CdPessoa (+) AND SGR_Endereco.CdCidade = SGR_Cidade.CdCidade AND SGR_Endereco.FlgFiscal(+) = 'S' AND VW_Cliente.FlgAtivo = 'S' and VW_CLIENTE.CDPESSOACLI = VEN_CLIENTEREPRES.CDPESSOACLI (+) and VEN_CLIENTEREPRES.CDPESSOAREPRES = VW_REPRES.CDPESSOAREPRES (+) and FIN_CREDITO.CDGRPPESSOA = VW_REPRES.CDGRPPESSOA ORDER BY VW_Cliente.CdPessoaCli))) cli; -- rCliente cCliente%ROWTYPE; ----------------------------------------- -- F O R M A D E P A G A M E N T O -- arquivo unico ----------------------------------------- CURSOR cPagamento IS SELECT value(tpg).getCLOBVal() AS "XMLTYPE" FROM table(XMLSequence(Cursor(SELECT CDTIPOPAGTO CODIGO_TIPO_PAGTO -- Codigo ,LTRIM(RTRIM(SUBSTR(NOTIPOPAGTO,1,25))) DESC_TIPO_PAGTO -- Nome da Forma de Pagamento ,DECODE(FIN_TIPOPAGTO.FLGCONDPAGTO, 'N','A','P') TIPO_FORMA_PAGTO -- Tipo da forma (avista, a prazo) A/P FROM FIN_TIPOPAGTO))) tpg; -- rPagamento cPagamento%ROWTYPE; ------------------------- -- D U P L I C A T A -- arquivo unico ------------------------- -- personalizar a tag de entidade CURSOR cDuplicata IS SELECT value(dup).getCLOBVal() AS "XMLTYPE" FROM table(XMLSequence(Cursor(SELECT FIN_RFAT.DTEMIS DATA_EMISSAO -- Data de emissão da compra , FIN_RFAT.CDPESSOACLI CODIGO_CLIENTE -- Código do Cliente , FIN_RTIT.SLDTIT VALOR_DUPLICATA -- Saldo da Duplicata , FIN_RTIT.VLRTIT VALOR_DUPLICATA --Valor da Duplicata , FIN_RTIT.DTVENC VENCTO_DUPLICATA -- Data de Vencimento da Duplicata , FIN_RTIT.NRTIT NUMERO_DUPLICATA -- Número da Duplicata FROM FIN_RFAT, FIN_RTIT WHERE FIN_RTIT.NRFAT = FIN_RFAT.NRFAT AND FIN_RTIT.SLDTIT > 0 ))) dup; -- rDuplicata cDuplicata%ROWTYPE; -- BEGIN -------------------------------------------------------------- DBMS_OUTPUT.PUT_LINE ('=====> Gerar o arquivo de PRODUTO '); -------------------------------------------------------------- -- ExpFileName := 'produto.txt'; -- ExpFilePath := pPathArq; -- IF NOT sys.UTL_FILE.IS_OPEN (ExpFile) THEN -- ExpFile := sys.UTL_FILE.FOPEN (ExpFilePath, ExpFileName, 'w',9999); -- END IF; -- sys.UTL_FILE.PUT_LINE (ExpFile, ''); sys.UTL_FILE.PUT_LINE (ExpFile, ''); -- -- FOR rProduto IN cProduto LOOP -- sys.UTL_FILE.PUT (ExpFile, REPLACE(rProduto.XMLTYPE,'ROW','PRODUTO')); -- END LOOP; sys.UTL_FILE.PUT (ExpFile, ''); -- -- IF sys.UTL_FILE.IS_OPEN (ExpFile) THEN sys.UTL_FILE.FFLUSH (ExpFile); sys.UTL_FILE.FCLOSE (ExpFile); END IF; -- --------------------------------------------------------------- DBMS_OUTPUT.PUT_LINE ('=====> Gerar o arquivo de CLIENTE '); --------------------------------------------------------------- ExpFileName := 'cliente.txt'; -- ExpFilePath := pPathArq; -- IF NOT sys.UTL_FILE.IS_OPEN (ExpFile) THEN -- ExpFile := sys.UTL_FILE.FOPEN (ExpFilePath, ExpFileName, 'w',9999); -- END IF; -- sys.UTL_FILE.PUT_LINE (ExpFile, ''); sys.UTL_FILE.PUT_LINE (ExpFile, ''); -- -- FOR rCliente IN cCliente LOOP -- sys.UTL_FILE.PUT (ExpFile, REPLACE(rCliente.XMLTYPE,'ROW','CLIENTE')); -- END LOOP; sys.UTL_FILE.PUT (ExpFile, ''); -- -- IF sys.UTL_FILE.IS_OPEN (ExpFile) THEN sys.UTL_FILE.FFLUSH (ExpFile); sys.UTL_FILE.FCLOSE (ExpFile); END IF; -- ---------------------------------------------------------------------- DBMS_OUTPUT.PUT_LINE ('=====> Gerar o arquivo de FORMAS DE PAGAMENTO '); ---------------------------------------------------------------------- ExpFileName := 'pagamento.txt'; -- ExpFilePath := pPathArq; -- IF NOT sys.UTL_FILE.IS_OPEN (ExpFile) THEN -- ExpFile := sys.UTL_FILE.FOPEN (ExpFilePath, ExpFileName, 'w',9999); -- END IF; -- sys.UTL_FILE.PUT_LINE (ExpFile, ''); sys.UTL_FILE.PUT_LINE (ExpFile, ''); -- -- FOR rPagamento IN cPagamento LOOP -- sys.UTL_FILE.PUT (ExpFile, REPLACE(rPagamento.XMLTYPE,'ROW','PAGAMENTO')); -- END LOOP; sys.UTL_FILE.PUT (ExpFile, ''); -- -- IF sys.UTL_FILE.IS_OPEN (ExpFile) THEN sys.UTL_FILE.FFLUSH (ExpFile); sys.UTL_FILE.FCLOSE (ExpFile); END IF; ---------------------------------------------------------------------- DBMS_OUTPUT.PUT_LINE ('=====> Gerar o arquivo DUPLICATA '); ---------------------------------------------------------------------- ExpFileName := 'duplicata.txt'; -- ExpFilePath := pPathArq; -- IF NOT sys.UTL_FILE.IS_OPEN (ExpFile) THEN -- ExpFile := sys.UTL_FILE.FOPEN (ExpFilePath, ExpFileName, 'w',9999); -- END IF; -- sys.UTL_FILE.PUT_LINE (ExpFile, ''); sys.UTL_FILE.PUT_LINE (ExpFile, ''); -- -- FOR rDuplicata IN cDuplicata LOOP -- sys.UTL_FILE.PUT (ExpFile, REPLACE(rDuplicata.XMLTYPE,'ROW','DUPLICATA')); -- END LOOP; sys.UTL_FILE.PUT (ExpFile, ''); -- -- IF sys.UTL_FILE.IS_OPEN (ExpFile) THEN sys.UTL_FILE.FFLUSH (ExpFile); sys.UTL_FILE.FCLOSE (ExpFile); END IF; ----------------------------------------------------------*/ -- END PRC_VEN_GERAARQPALMVIVIANA; /