All pastes #206548 Raw Edit

Unnamed

public text v1 · immutable
#206548 ·published 2006-10-17 13:28 UTC
rendered paste body
CREATE FUNCTION billing_internal() RETURNS trigger AS $billing_internal$
    BEGIN
		UPDATE
		   calls
	    SET
	        duration = NEW.duration,
	        billing = NEW.billsec,
	        disposition = NEW.disposition
	    WHERE
	        substr(NEW.channel,6,5) = calls.caller_id
	        AND NEW.calldate BETWEEN calls.created_at - '2 seconds'::interval AND calls.created_at + '2 seconds'::interval;
	RETURN NEW;
    END;
$billing_internal$ LANGUAGE plpgsql;

CREATE TRIGGER billing_system_internal BEFORE INSERT OR UPDATE ON cdr FOR EACH ROW EXECUTE PROCEDURE billing_internal();

CREATE FUNCTION billing_external() RETURNS trigger AS $billing_external$
    BEGIN
		UPDATE
		   calls
	    SET
	        duration = NEW.duration,
	        billing = NEW.billsec,
	        disposition = NEW.disposition
	    WHERE
	        NEW.dst = calls.dialed_number
	        AND NEW.calldate BETWEEN calls.created_at - '2 seconds'::interval AND calls.created_at + '2 seconds'::interval;
	RETURN NEW;
    END;
$billing_external$ LANGUAGE plpgsql;

CREATE TRIGGER billing_system_external BEFORE INSERT OR UPDATE ON cdr FOR EACH ROW EXECUTE PROCEDURE billing_external();

CREATE FUNCTION billing_legacy_external() RETURNS trigger AS $billing_legacy_external$
    BEGIN
		UPDATE
		   calls
	    SET
	        duration = NEW.duration,
	        billing = NEW.billsec,
	        disposition = NEW.disposition
	    WHERE
	        substring(NEW.dstchannel,6,5) = calls.dialed_number
	        AND NEW.src = '40829350'
	        AND NEW.calldate BETWEEN calls.created_at - '2 seconds'::interval AND calls.created_at + '2 seconds'::interval;
	RETURN NEW;
    END;
$billing_legacy_external$ LANGUAGE plpgsql;

CREATE TRIGGER billing_system_legacy_external BEFORE INSERT OR UPDATE ON cdr FOR EACH ROW EXECUTE PROCEDURE billing_legacy_external();