Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE PROCEDURE insert_invoice
  2. (
  3. vendor_id_param invoices.vendor_id%TYPE,
  4. invoice_number_param invoices.invoice_number%TYPE,
  5. invoice_date_param invoices.invoice_date%TYPE,
  6. invoice_total_param invoices.invoice_total%TYPE,
  7. payment_total_param invoices.payment_total%TYPE
  8. DEFAULT 0,
  9. credit_total_param invoices.credit_total%TYPE
  10. DEFAULT 0,
  11. terms_id_param invoices.terms_id%TYPE
  12. DEFAULT NULL,
  13. invoice_due_date_param invoices.invoice_due_date%TYPE
  14. DEFAULT NULL,
  15. payment_date_param invoices.payment_date%TYPE
  16. DEFAULT NULL
  17. )
  18. AS
  19. invoice_id_var invoices.invoice_id%TYPE;
  20. terms_id_var invoices.terms_id%TYPE;
  21. invoice_due_date_var invoices.invoice_date%TYPE;
  22. terms_due_days_var INTEGER;
  23. BEGIN
  24. IF invoice_total_param < 0 THEN
  25. RAISE VALUE_ERROR;
  26. END IF;
  27. SELECT invoice_id_seq.NEXTVAL INTO invoice_id_var
  28. FROM dual;
  29. IF terms_id_param IS NULL THEN
  30. SELECT default_terms_id INTO terms_id_var
  31. FROM vendors WHERE vendor_id = vendor_id_param;
  32. ELSE
  33. terms_id_var := terms_id_param;
  34. END IF;
  35. IF invoice_due_date_param IS NULL THEN
  36. SELECT terms_due_days INTO terms_due_days_var
  37. FROM terms WHERE terms_id = terms_id_var;
  38. invoice_due_date_var :=
  39. invoice_date_param + terms_due_days_var;
  40. ELSE
  41. invoice_due_date_var := invoice_due_date_param;
  42. END IF;
  43. INSERT INTO invoices
  44. VALUES (invoice_id_var, vendor_id_param,
  45. invoice_number_param, invoice_date_param,
  46. invoice_total_param, payment_total_param,
  47. credit_total_param, terms_id_var,
  48. invoice_due_date_var, payment_date_param);
  49. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement