insert into AR_DOCUMENTHISTORY (DOCUMENTPRINCIPAL,
DOCUMENTCHILD,
DOCUMENTCURRENCY,
EXCHANGERATE,
AMOUNTNETLO,
AMOUNTNETEX,
AMOUNTTOTALLO,
AMOUNTTOTALEX,
DUEDATE,
COMPANY)
HOLA MUCHACHOS ,TENGO UN DILEMA QUIERO INSERTAR DATOS MEDIANTE UN
SELECT EN UN TRIGGER PERO ME SALE ERROR ,ESPERO PUEDAN AYUDARME
SALUDOS
CREATE OR REPLACE TRIGGER "EMERALD"."TRG_INSERT_ARDUHIS" AFTER
INSERT ON "AR_DOCUMENT" FOR EACH ROW DECLARE
v_flag varchar2(1);
BEGIN
SELECT flagregventa
INTO v_flag
FROM erp_documenttype
where documenttype=:new.documenttype and
company=:new.company ;
---- SI EL FLAG ES DE VENTAS ENTONCES ES PRIMERA VEZ QUE SE
INGRESA ----
if v_flag='Y' then
insert into AR_DOCUMENTHISTORY (DOCUMENTPRINCIPAL,
DOCUMENTCHILD,
DOCUMENTCURRENCY,
EXCHANGERATE,
AMOUNTNETLO,
AMOUNTNETEX,
AMOUNTTOTALLO,
AMOUNTTOTALEX,
PAYMENTLO,
PAYMENTEX,
DUEDATE,
COMPANY)
values (:new.DOCUMENT,
:new.DOCUMENT,
:new.DOCUMENTCURRENCY,
:new.EXCHANGERATE,
:new.AMOUNTNETLO,
:new.AMOUNTNETEX,
:new.AMOUNTTOTALLO,
:new.AMOUNTTOTALEX,
:new.PAYMENTLO,
:new.PAYMENTEX,
:new.DUEDATE,
:new.COMPANY) ;
end if;
---- SI EL FLAG ES DIFERENTE DE Y ENTONCES ES CANJE O
INANCIAMIENTO -----
if v_flag <> 'Y' then
--- EN ESTE BLQUE SALE EL ERROR----
insert into AR_DOCUMENTHISTORY (DOCUMENTPRINCIPAL,
DOCUMENTCHILD,
DOCUMENTCURRENCY,
EXCHANGERATE,
AMOUNTNETLO,
AMOUNTNETEX,
AMOUNTTOTALLO,
AMOUNTTOTALEX,
DUEDATE,
COMPANY)
select a.document,
b.document,
b.documentcurrency,
b.exchangerate,
a.amountlo,
a.amountex,
a.amountlo,
a.amountex,
b.duedate,
b.company
from ar_financedetail a,
ar_document b
where a.finance=b.financetargetprocess and
a.finance=:new.financetargetprocess and
b.document=:new.document and
a.indicator='S';
end if;
END ;
--
(consejo: lo mejor para ahorrar gasolina es compartir los viajes)