Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE PROCEDURE Espp_Canc_Ped_Mais_45_Dias(Vnindacao IN INTEGER) IS
- Pcancelapedidosuprim Msux_Cancelapedidosuprim%ROWTYPE;
- Vstemp VARCHAR2(1);
- --Regra cancelamento pedidos de compras que não foram recebido:
- BEGIN
- DELETE esp_incons_job_canc_ped_compra a WHERE a.nome_objeto = 'Espp_Canc_Ped_Mais_45_Dias';
- FOR T IN (SELECT * FROM
- (/*select --1 as seq,
- A.TIPPEDIDOSUPRIM,
- A.ID_PEDIDOSUPRIM
- From MACV_PSITEMRECEBER A, MAX_COMPRADOR B, MAX_EMPRESA C
- Where A.SITUACAOQTDE = 'P'
- AND A.tippedidosuprim = 'C'
- AND (A.QTDSALDO - A.QTDTRANSITO) > 0
- AND A.SEQCOMPRADOR = B.SEQCOMPRADOR
- AND A.NROEMPRESA = C.NROEMPRESA
- And a.dtaemissao < trunc(sysdate)-45--A.DTAEMISSAO between vdataincial and vdatafinal
- And C.STATUS = 'A'
- group by A.TIPPEDIDOSUPRIM,
- A.NROEMPRESA,
- A.SEQFORNECEDOR,
- A.NROPEDIDOSUPRIM,
- A.CENTRALLOJA,
- A.DTAEMISSAO,
- A.SEQCOMPRADOR,
- A.INDGEROUREPLICACAO,
- A.ID_PEDIDOSUPRIM,
- B.APELIDO,
- C.NOMEREDUZIDO,
- A.nropedfornecedor
- Union*/
- SELECT A.TIPPEDIDOSUPRIM,
- A.ID_PEDIDOSUPRIM
- FROM MACV_PSITEMRECEBER A, MAX_COMPRADOR B, MAX_EMPRESA C
- WHERE A.SITUACAOQTDE = 'P'
- AND (A.QTDSALDO - A.QTDTRANSITO) > 0
- AND A.SEQCOMPRADOR = B.SEQCOMPRADOR
- AND A.NROEMPRESA = C.NROEMPRESA
- AND a.dtaemissao < TRUNC(SYSDATE)-45--A.DTAEMISSAO between vdataincial and vdatafinal
- AND C.STATUS = 'A'
- GROUP BY A.TIPPEDIDOSUPRIM,
- A.ID_PEDIDOSUPRIM
- UNION
- SELECT A.TIPPEDIDOSUPRIM,
- A.ID_PEDIDOSUPRIM
- FROM MACV_PSITEMEXPEDIR A, MAX_COMPRADOR B, MAX_EMPRESA C
- WHERE A.QTDSALDO > 0
- AND A.SEQCOMPRADOR = B.SEQCOMPRADOR
- AND A.NROEMPRESA = C.NROEMPRESA
- AND a.dtaemissao < TRUNC(SYSDATE)-45--A.DTAEMISSAO between vdataincial and vdatafinal
- AND C.STATUS = 'A'
- GROUP BY A.TIPPEDIDOSUPRIM,
- A.ID_PEDIDOSUPRIM
- --UNION
- /*select A.TIPPEDIDOSUPRIM,
- A.ID_PEDIDOSUPRIM
- From MACV_PSITEMRECEBER A, MAX_COMPRADOR B, MAX_EMPRESA C
- Where A.SITUACAOQTDE = 'P'
- AND (A.QTDSALDO - A.QTDTRANSITO) > 0
- AND A.SEQCOMPRADOR = B.SEQCOMPRADOR
- AND A.NROEMPRESA = C.NROEMPRESA
- AND B.SEQCOMPRADOR = 35
- And a.dtaemissao < trunc(sysdate)-45--A.DTAEMISSAO between vdataincial and vdatafinal
- And C.STATUS = 'A'
- group by A.TIPPEDIDOSUPRIM,
- A.NROEMPRESA,
- A.SEQFORNECEDOR,
- A.NROPEDIDOSUPRIM,
- A.CENTRALLOJA,
- A.DTAEMISSAO,
- A.SEQCOMPRADOR,
- A.INDGEROUREPLICACAO,
- A.ID_PEDIDOSUPRIM,
- B.APELIDO,
- C.NOMEREDUZIDO,
- A.nropedfornecedor
- UNION*/
- -- PEDIDOS DE TRASFERENCIA COM MAIS DE 7.
- /*select A.TIPPEDIDOSUPRIM,
- A.ID_PEDIDOSUPRIM
- From MACV_PSITEMRECEBER A, MAX_COMPRADOR B, MAX_EMPRESA C
- Where A.SITUACAOQTDE = 'P'
- AND (A.QTDSALDO - A.QTDTRANSITO) > 0
- AND A.SEQCOMPRADOR = B.SEQCOMPRADOR
- AND A.NROEMPRESA = C.NROEMPRESA
- And A.seqfornecedor IN
- (SELECT E.SEQPESSOAEMP FROM CBOXV_EMPRESA E)
- --and a.nropedidosuprim = 2911541
- And A.tippedidosuprim iN ('C', 'T')
- And A.centralloja = 'M'
- And a.dtaemissao < trunc(sysdate)-45--A.DTAEMISSAO between vdataincial and vdatafinal
- --And A.DTAEMISSAO >= sysdate - 90
- And C.STATUS = 'A'
- group by A.TIPPEDIDOSUPRIM,
- A.NROEMPRESA,
- A.SEQFORNECEDOR,
- A.NROPEDIDOSUPRIM,
- A.CENTRALLOJA,
- A.DTAEMISSAO,
- A.SEQCOMPRADOR,
- A.INDGEROUREPLICACAO,
- A.ID_PEDIDOSUPRIM,
- B.APELIDO,
- C.NOMEREDUZIDO,
- A.nropedfornecedor*/
- ))
- LOOP
- --DBMS_OUTPUT.PUT_LINE(a => TO_CHAR(T.ID_PEDIDOSUPRIM));
- --pkg_adm_compra.spmsu_cancelapedidocompra(t.Id_Pedidosuprim,'AUTOMATICO');
- --commit;
- pcancelapedidosuprim.Indpedidoitem := 'P';
- pcancelapedidosuprim.Tippedidosuprim := T.tippedidosuprim;
- pcancelapedidosuprim.Id_Itempedido := T.Id_Pedidosuprim;
- pcancelapedidosuprim.Apporigem := 10; -- DEVE SER APPORIGEM 10
- pcancelapedidosuprim.Usucancelamento := 'AUTOMATICO';
- Pkg_CancelaPedidoSuprim.sp_gravatabtemp(pcancelapedidosuprim);
- END LOOP;
- Pkg_Cancelapedidosuprim.Sp_Proccancelamento(10, Vnindacao, Vstemp);
- INSERT INTO esp_incons_job_canc_ped_compra
- SELECT 'Espp_Canc_Ped_Mais_45_Dias' nome_objeto, SYSDATE dtahora_inconsistencia, a.Nropedidosuprim, a.Nroempresa, b.Seqfornecedor, c.Nomerazao,
- a.Codinconsistencia, a.Ocorrencia
- FROM Msux_Inconsistecancelpedsuprim a, Msu_Pedidosuprim b, Ge_Pessoa c
- WHERE a.Nropedidosuprim = b.Nropedidosuprim
- AND b.Seqfornecedor = c.Seqpessoa
- AND a.Apporigem = 10;
- Vstemp := NULL;
- DELETE Msux_Inconsistecancelpedsuprim;
- --Regra cancelamento saldo dos pedidos de compra:
- FOR T IN (SELECT a.id_psitemreceber, a.seqfornecedor, a.Tippedidosuprim, a.Qtdsaldo, a.Seqproduto, a.Seqpsitemrecebido
- FROM macv_psitemreceber a
- WHERE a.situacaoqtde = 'P'
- AND (a.qtdsaldo - a.qtdtransito) > 0
- AND a.qtdrecebida > 0
- AND a.dtaemissao < TRUNC(SYSDATE)-45--a.dtaemissao between vdataincial and vdatafinal
- AND NOT EXISTS (SELECT 1
- FROM msux_CancelaPedidoSuprim b
- WHERE b.Id_Pedidosuprim = a.id_pedidosuprim)
- )
- LOOP
- --DBMS_OUTPUT.PUT_LINE(a => TO_CHAR(T.ID_PSITEMRECEBER));
- --pkg_adm_compra.spmsu_cancelaitemreceber(t.id_psitemreceber, 'Automatico');
- --commit;
- Pcancelapedidosuprim.Indpedidoitem := 'I';
- Pcancelapedidosuprim.Tippedidosuprim := t.Tippedidosuprim;
- Pcancelapedidosuprim.Id_Itempedido := t.id_psitemreceber;
- Pcancelapedidosuprim.Apporigem := 10; -- DEVE SER APPORIGEM 10
- Pcancelapedidosuprim.Usucancelamento := 'Automatico';
- Pcancelapedidosuprim.Qtdcancelar := t.Qtdsaldo;
- Pcancelapedidosuprim.Seqproduto := t.Seqproduto;
- Pcancelapedidosuprim.Seqpsitem := t.Seqpsitemrecebido;
- Pcancelapedidosuprim.Seqprocesso := NULL;
- Pkg_Cancelapedidosuprim.Sp_Gravatabtemp(Pcancelapedidosuprim);
- END LOOP;
- INSERT INTO esp_incons_job_canc_ped_compra
- SELECT 'Espp_Canc_Ped_Mais_45_Dias' nome_objeto, SYSDATE dtahora_inconsistencia, a.Nropedidosuprim, a.Nroempresa, b.Seqfornecedor, c.Nomerazao,
- a.Codinconsistencia, a.Ocorrencia
- FROM Msux_Inconsistecancelpedsuprim a, Msu_Pedidosuprim b, Ge_Pessoa c
- WHERE a.Nropedidosuprim = b.Nropedidosuprim
- AND b.Seqfornecedor = c.Seqpessoa
- AND a.Apporigem = 10;
- Pkg_Cancelapedidosuprim.Sp_Proccancelamento(10, Vnindacao, Vstemp);
- INSERT INTO esp_incons_job_canc_ped_compra
- SELECT 'Espp_Canc_Ped_Mais_45_Dias' nome_objeto, SYSDATE dtahora_inconsistencia, a.Nropedidosuprim, a.Nroempresa, b.Seqfornecedor, c.Nomerazao,
- a.Codinconsistencia, a.Ocorrencia
- FROM Msux_Inconsistecancelpedsuprim a, Msu_Pedidosuprim b, Ge_Pessoa c
- WHERE a.Nropedidosuprim = b.Nropedidosuprim
- AND b.Seqfornecedor = c.Seqpessoa
- AND a.Apporigem = 10;
- --IF Vnindacao = 1 THEN
- COMMIT;
- --END IF;
- END Espp_Canc_Ped_Mais_45_Dias;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement