summaryrefslogtreecommitdiff
path: root/sql/modules/test/Payment.sql
blob: 26b60eac216ffeb5fe2f5210703830d980762044 (plain)
  1. BEGIN;
  2. \i Base.sql
  3. INSERT INTO entity (id, name, entity_class, control_code)
  4. VALUES (-100, 'Testing.....', 3, '_TESTING.....');
  5. DELETE FROM users WHERE username = CURRENT_USER;
  6. INSERT INTO users (entity_id, username)
  7. SELECT -100, CURRENT_USER;
  8. INSERT INTO entity(name, id, entity_class, control_code)
  9. values ('test user 1', -200, 3, 'Test User 1');
  10. insert into users (entity_id, username, id)
  11. values (-200, '_test1', -200);
  12. insert into session (session_id, users_id, token, last_used, transaction_id)
  13. values (-200, -200, md5(random()::text), now(), 0);
  14. INSERT INTO person(first_name, last_name, entity_id, id)
  15. VALUES ('test', 'test', -100, -100);
  16. INSERT INTO entity_employee(entity_id, person_id)
  17. VALUES (-100, -100);
  18. INSERT INTO chart (accno, description, charttype, category, link)
  19. VALUES ('00001', 'testing', 'A', 'L', 'AP');
  20. INSERT INTO chart (accno, description, charttype, category, link)
  21. VALUES ('00002', 'testing2', 'A', 'E', 'AP_expense');
  22. INSERT INTO session (users_id, last_used, token, transaction_id)
  23. values (currval('users_id_seq'), now(), md5('test2'), 2);
  24. INSERT INTO test_result(test_name, success)
  25. SELECT 'AP Batch created', (SELECT batch_create('test', 'test', 'ap', now()::date)) IS NOT NULL;
  26. INSERT INTO entity (id, entity_class, name, control_code)
  27. VALUES (-101, 1, 'TEST VENDOR', 'TEST 2');
  28. INSERT INTO company (id, legal_name, entity_id)
  29. VALUES (-101, 'TEST', -101);
  30. INSERT INTO business (id, description)
  31. values (-101, 'test');
  32. INSERT INTO entity_credit_account (id, meta_number, threshold, entity_id, entity_class, business_id)
  33. values (-101, 'TEST1', 100000, -101, 1, -101);
  34. INSERT INTO ap (invnumber, entity_credit_account, approved, amount, netamount, curr)
  35. values ('test_hide', -101, false, '1', '1', 'USD');
  36. INSERT INTO voucher (trans_id, batch_class, batch_id)
  37. VALUES (currval('id'), 1, currval('batch_id_seq'));
  38. INSERT INTO test_result(test_name, success)
  39. SELECT 'Payment Batch created', (SELECT batch_create('test', 'test', 'ap', now()::date)) IS NOT NULL;
  40. INSERT INTO ap (invnumber, entity_credit_account, approved, amount, netamount, curr, transdate, paid)
  41. VALUES ('test_show2', -101, true, 100000, 100000, 'USD', now()::date, 0);
  42. INSERT INTO acc_trans (approved, transdate, amount, trans_id, chart_id)
  43. VALUES (true, now()::date, '100000', currval('id'), (select id from chart where accno = '00001'));
  44. INSERT INTO acc_trans (approved, transdate, amount, trans_id, chart_id)
  45. VALUES (true, now()::date, '-100000', currval('id'), (select id from chart where accno = '00002'));
  46. INSERT INTO ap (id, invnumber, entity_credit_account, approved, amount, netamount, curr, transdate, paid)
  47. VALUES (-300, 'test_show3', -101, true, 1000000, 1000000, 'USD', now()::date, 0);
  48. INSERT INTO acc_trans (approved, transdate, amount, trans_id, chart_id)
  49. VALUES (true, now()::date, '1000000', -300, (select id from chart where accno = '00001'));
  50. INSERT INTO acc_trans (approved, transdate, amount, trans_id, chart_id)
  51. VALUES (true, now()::date, '-1000000', -300, (select id from chart where accno = '00002'));
  52. update transactions set locked_by = -200 where id = -300;
  53. INSERT INTO ap (invnumber, entity_credit_account, approved, amount, netamount, curr, transdate, paid)
  54. values ('test_show', -101, false, '1', '1', 'USD', now()::date, 0);
  55. INSERT INTO acc_trans (approved, transdate, amount, trans_id, chart_id)
  56. VALUES (true, now()::date, '1', currval('id'), (select id from chart where accno = '00001'));
  57. INSERT INTO acc_trans (approved, transdate, amount, trans_id, chart_id)
  58. VALUES (true, now()::date, '-1', currval('id'), (select id from chart where accno = '00002'));
  59. INSERT INTO voucher (trans_id, batch_class, batch_id)
  60. VALUES (currval('id'), 1, currval('batch_id_seq'));
  61. CREATE FUNCTION test_convert_array(anyarray) RETURNS text AS
  62. '
  63. SELECT array_to_string($1, ''::'');
  64. ' LANGUAGE SQL;
  65. INSERT INTO test_result(test_name, success)
  66. VALUES ('Batch Voucher In Payment Selection',
  67. (SELECT test_convert_array(invoices) LIKE '%::test_show::%'
  68. FROM
  69. (
  70. SELECT invoices FROM payment_get_all_contact_invoices(1, NULL, 'USD', NULL, NULL, currval('batch_id_seq')::int, '00001', 'TEST1')
  71. )p));
  72. INSERT INTO test_result(test_name, success)
  73. VALUES ('Locked Invoice In Payment Selection',
  74. (SELECT test_convert_array(invoices) LIKE '%::test_show3::%'
  75. FROM
  76. (
  77. SELECT invoices FROM payment_get_all_contact_invoices(1, NULL, 'USD', NULL, NULL, currval('batch_id_seq')::int, '00001', 'TEST1')
  78. )p));
  79. INSERT INTO test_result(test_name, success)
  80. VALUES ('Threshold met',
  81. (SELECT test_convert_array(invoices) LIKE '%::test_show2::%'
  82. FROM
  83. (
  84. SELECT invoices FROM payment_get_all_contact_invoices(1, NULL, 'USD', NULL, NULL, NULL, '00001', 'TEST1')
  85. )p));
  86. SELECT invoices FROM payment_get_all_contact_invoices(1, NULL, 'USD', NULL, NULL, NULL, '00002', 'TEST1');
  87. INSERT INTO test_result(test_name, success)
  88. VALUES ('Non-Batch Voucher Not In Payment Selection',
  89. (SELECT test_convert_array(invoices) NOT LIKE '%::test_hide::%'
  90. FROM
  91. (SELECT invoices FROM payment_get_all_contact_invoices(1, NULL, 'USD', NULL, NULL, currval('batch_id_seq')::int, '00001', 'TEST1'))p ));
  92. INSERT INTO test_result(test_name, success)
  93. VALUES ('Locked Invoice not in total',
  94. (SELECT total_due < 1000000
  95. FROM payment_get_all_contact_invoices(1, NULL, 'USD', NULL, NULL, currval('batch_id_seq')::int, '00001', 'TEST1')) );
  96. SELECT * FROM TEST_RESULT;
  97. SELECT (select count(*) from test_result where success is true)
  98. || ' tests passed and '
  99. || (select count(*) from test_result where success is not true)
  100. || ' failed' as message;
  101. ROLLBACK;