[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

SF.net SVN: ledger-smb: [1597] trunk/sql/modules/Payment.sql



Revision: 1597
          http://ledger-smb.svn.sourceforge.net/ledger-smb/?rev=1597&view=rev
Author:   einhverfr
Date:     2007-09-13 22:42:06 -0700 (Thu, 13 Sep 2007)

Log Message:
-----------
Documenting Payment.sql functions

Modified Paths:
--------------
    trunk/sql/modules/Payment.sql

Modified: trunk/sql/modules/Payment.sql
===================================================================
--- trunk/sql/modules/Payment.sql	2007-09-14 04:56:25 UTC (rev 1596)
+++ trunk/sql/modules/Payment.sql	2007-09-14 05:42:06 UTC (rev 1597)
@@ -23,6 +23,10 @@
 END;
 $$ LANGUAGE PLPGSQL;
 
+COMMENT ON FUNCTION payment_get_open_accounts(int) IS
+$$ This function takes a single argument (1 for vendor, 2 for customer as 
+always) and returns all entities with open accounts of the appropriate type. $$;
+
 CREATE OR REPLACE FUNCTION get_all_accounts(in_account_class int) 
 RETURNS SETOF entity AS
 $$
@@ -38,6 +42,11 @@
 END;
 $$ LANGUAGE PLPGSQL;
 
+COMMENT ON FUNCTION payment_get_open_accounts(int) IS
+$$ This function takes a single argument (1 for vendor, 2 for customer as 
+always) and returns all entities with accounts of the appropriate type. $$;
+
+
 CREATE TYPE payment_invoice AS (
 	invoice_id int,
 	invnumber text,
@@ -85,6 +94,13 @@
 END;
 $$ LANGUAGE PLPGSQL;
 
+COMMENT ON FUNCTION payment_get_open_invoices(int, int, char(3)) IS
+$$ This function takes three arguments:
+Type: 1 for vendor, 2 for customer
+Entity_id:  The entity_id of the customer or vendor
+Currency:  3 characters for currency ('USD' for example).
+Returns all open invoices for the entity in question. $$;
+
 CREATE TYPE payment_contact_invoice AS (
 	contact_id int,
 	contact_name text,
@@ -150,4 +166,64 @@
 END;
 $$ LANGUAGE plpgsql;
 
+COMMENT ON FUNCTION payment_get_all_contact_invoices
+(in_account_class int, in_business_type int, in_currency char(3),
+        in_date_from date, in_date_to date, in_batch_id int, 
+        in_ar_ap_accno text) IS
+$$
+This function takes the following arguments (all prefaced with in_ in the db):
+account_class: 1 for vendor, 2 for customer
+business_type: integer of business.id.
+currency: char(3) of currency (for example 'USD')
+date_from, date_to:  These dates are inclusive.
+batch_id:  For payment batches, where fees are concerned.
+ar_ap_accno:  The AR/AP account number.
 
+This then returns a set of contact information with a 2 dimensional array 
+cnsisting of outstanding invoices.
+$$;
+
+CREATE OR REPLACE FUNCTION payment_post 
+(in_trans_id int, in_source text, in_amount numeric, in_ar_ap_accno text,
+	in_cash_accno text, in_approved bool, in_payment_date, in_account_class)
+RETURNS INT AS
+$$
+DECLARE out_entry_id int;
+BEGIN
+	INSERT INTO acc_trans (chart_id, amount,
+	            trans_id, transdate, approved, source)
+	VALUES ((SELECT id FROM chart WHERE accno = in_ar_ap_accno), 
+	        CASE WHEN in_account_class = 1 THEN in_amount * -1 
+	             ELSE amount
+	        END,
+	        in_trans_id, in_payment_date, in_approved, in_source);
+
+	INSERT INTO acc_trans (chart_id, amount
+	            trans_id, transdate, approved, source)
+	VALUES ((SELECT id FROM chart WHERE accno = in_cash_accno), 
+	        CASE WHEN in_account_class = 2 THEN in_amount * -1 
+	             ELSE amount
+	        END,
+	        in_trans_id, in_payment_date, coalesce(in_approved, true), 
+	        in_source);
+
+	SELECT currval('acc_trans_entry_id_seq') INTO out_entry_id;
+	RETURN out_entry_id;
+END;
+$$ LANGUAGE PLPGSQL;
+
+COMMENT ON FUNCTION payment_post 
+(in_trans_id int, in_source text, in_amount numeric, in_ar_ap_accno text,
+	in_cash_accno text, in_approved bool, in_payment_date, in_account_class)
+$$
+This function takes the following arguments (prefaced with in_ in the db):
+trans_id:  Id for ar/ap transaction.
+source: text for source documnet identifier (for example, check number)
+amount:  numeric for the amount of the transaction
+ar_ap_accno:  AR/AP account number
+cash_accno:  Cash Account number, i.e. the account where the payment will be 
+held
+approved:  False, for a voucher.
+
+This function posts the payment or saves the payment voucher. 
+$$;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.