ledgersmb Model Schema public Standard public schema
Table: <structname>acc_trans</structname> Structure of <structname>acc_trans</structname> trans_id integer chart_id integer NOT NULL REFERENCES amount numeric transdate date DEFAULT ('now'::text)::date source text cleared boolean DEFAULT false fx_transaction boolean DEFAULT false project_id integer memo text invoice_id integer entry_id serial PRIMARY KEY Indexes on acc_trans acc_trans_chart_id_key chart_id acc_trans_source_key lower(source) acc_trans_trans_id_key trans_id acc_trans_transdate_key transdate
Table: <structname>ap</structname> Structure of <structname>ap</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) invnumber text transdate date DEFAULT ('now'::text)::date vendor_id integer taxincluded boolean DEFAULT false amount numeric netamount numeric paid numeric datepaid date duedate date invoice boolean DEFAULT false ordnumber text curr character(3) notes text employee_id integer till character varying(20) quonumber text intnotes text department_id integer shipvia text language_code character varying(6) ponumber text shippingpoint text terms smallint Indexes on ap ap_employee_id_key employee_id ap_id_key id ap_invnumber_key invnumber ap_ordnumber_key ordnumber ap_quonumber_key quonumber ap_transdate_key transdate ap_vendor_id_key vendor_id
Table: <structname>ar</structname> Structure of <structname>ar</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) invnumber text transdate date DEFAULT ('now'::text)::date customer_id integer taxincluded boolean amount numeric netamount numeric paid numeric datepaid date duedate date invoice boolean DEFAULT false shippingpoint text terms smallint notes text curr character(3) ordnumber text employee_id integer till character varying(20) quonumber text intnotes text department_id integer shipvia text language_code character varying(6) ponumber text Indexes on ar ar_customer_id_key customer_id ar_employee_id_key employee_id ar_id_key id ar_invnumber_key invnumber ar_ordnumber_key ordnumber ar_quonumber_key quonumber ar_transdate_key transdate
Table: <structname>assembly</structname> Structure of <structname>assembly</structname> id integer PRIMARY KEY parts_id integer PRIMARY KEY qty numeric bom boolean adj boolean Indexes on assembly assembly_id_key id
Table: <structname>audittrail</structname> Structure of <structname>audittrail</structname> trans_id integer tablename text reference text formname text action text transdate timestamp without time zone DEFAULT now() employee_id integer entry_id bigserial PRIMARY KEY Indexes on audittrail audittrail_trans_id_key trans_id
Table: <structname>business</structname> Structure of <structname>business</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) description text discount numeric
Table: <structname>chart</structname> Structure of <structname>chart</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) accno text NOT NULL description text charttype character(1) DEFAULT 'A'::bpchar category character(1) link text gifi_accno text contra boolean DEFAULT false Indexes on chart chart_category_key category chart_gifi_accno_key gifi_accno chart_id_key id chart_link_key link Tables referencing acc_trans via Foreign Key Constraints
Table: <structname>custom_field_catalog</structname> Structure of <structname>custom_field_catalog</structname> field_id serial PRIMARY KEY table_id integer REFERENCES field_name text
Table: <structname>custom_table_catalog</structname> Structure of <structname>custom_table_catalog</structname> table_id serial PRIMARY KEY extends text table_name text Tables referencing custom_field_catalog via Foreign Key Constraints
Table: <structname>customer</structname> Structure of <structname>customer</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) name character varying(64) address1 character varying(32) address2 character varying(32) city character varying(32) state character varying(32) zipcode character varying(10) country character varying(32) contact character varying(64) phone character varying(20) fax character varying(20) email text notes text discount numeric taxincluded boolean DEFAULT false creditlimit numeric terms smallint customernumber character varying(32) cc text bcc text business_id integer taxnumber character varying(32) sic_code character varying(6) iban character varying(34) bic character varying(11) employee_id integer language_code character varying(6) pricegroup_id integer curr character(3) startdate date enddate date Indexes on customer customer_contact_key lower((contact)::text) customer_customernumber_key customernumber customer_id_key id customer_name_key lower((name)::text)
Table: <structname>customertax</structname> Structure of <structname>customertax</structname> customer_id integer PRIMARY KEY chart_id integer PRIMARY KEY Indexes on customertax customer_customer_id_key customer_id
Table: <structname>defaults</structname> Structure of <structname>defaults</structname> setting_key text PRIMARY KEY value text
Table: <structname>department</structname> Structure of <structname>department</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) description text role character(1) DEFAULT 'P'::bpchar Indexes on department department_id_key id
Table: <structname>dpt_trans</structname> Structure of <structname>dpt_trans</structname> trans_id integer PRIMARY KEY department_id integer
Table: <structname>employee</structname> Structure of <structname>employee</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) login text name character varying(64) address1 character varying(32) address2 character varying(32) city character varying(32) state character varying(32) zipcode character varying(10) country character varying(32) workphone character varying(20) homephone character varying(20) startdate date DEFAULT ('now'::text)::date enddate date notes text role character varying(20) sales boolean DEFAULT false email text ssn character varying(20) iban character varying(34) bic character varying(11) managerid integer employeenumber character varying(32) dob date Indexes on employee employee_id_key id employee_name_key lower((name)::text)
Table: <structname>exchangerate</structname> Structure of <structname>exchangerate</structname> curr character(3) PRIMARY KEY transdate date PRIMARY KEY buy numeric sell numeric Indexes on exchangerate exchangerate_ct_key curr, transdate
Table: <structname>gifi</structname> Structure of <structname>gifi</structname> accno text PRIMARY KEY description text
Table: <structname>gl</structname> Structure of <structname>gl</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) reference text description text transdate date DEFAULT ('now'::text)::date employee_id integer notes text department_id integer Indexes on gl gl_description_key lower(description) gl_employee_id_key employee_id gl_id_key id gl_reference_key reference gl_transdate_key transdate
Table: <structname>inventory</structname> Structure of <structname>inventory</structname> warehouse_id integer parts_id integer trans_id integer orderitems_id integer qty numeric shippingdate date employee_id integer entry_id serial PRIMARY KEY
Table: <structname>invoice</structname> Structure of <structname>invoice</structname> id integer PRIMARY KEY DEFAULT nextval('invoiceid'::regclass) trans_id integer parts_id integer description text qty integer allocated integer sellprice numeric fxsellprice numeric discount real assemblyitem boolean DEFAULT false unit character varying(5) project_id integer deliverydate date serialnumber text notes text Indexes on invoice invoice_id_key id invoice_trans_id_key trans_id
Table: <structname>jcitems</structname> Structure of <structname>jcitems</structname> id integer PRIMARY KEY DEFAULT nextval('jcitemsid'::regclass) project_id integer parts_id integer description text qty numeric allocated numeric sellprice numeric fxsellprice numeric serialnumber text checkedin timestamp with time zone checkedout timestamp with time zone employee_id integer notes text Indexes on jcitems jcitems_id_key id
Table: <structname>language</structname> Structure of <structname>language</structname> code character varying(6) PRIMARY KEY description text
Table: <structname>makemodel</structname> Structure of <structname>makemodel</structname> parts_id integer PRIMARY KEY make text model text Indexes on makemodel makemodel_make_key lower(make) makemodel_model_key lower(model) makemodel_parts_id_key parts_id
Table: <structname>oe</structname> Structure of <structname>oe</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) ordnumber text transdate date DEFAULT ('now'::text)::date vendor_id integer customer_id integer amount numeric netamount numeric reqdate date taxincluded boolean shippingpoint text notes text curr character(3) employee_id integer closed boolean DEFAULT false quotation boolean DEFAULT false quonumber text intnotes text department_id integer shipvia text language_code character varying(6) ponumber text terms smallint Indexes on oe oe_employee_id_key employee_id oe_id_key id oe_ordnumber_key ordnumber oe_transdate_key transdate
Table: <structname>orderitems</structname> Structure of <structname>orderitems</structname> id integer PRIMARY KEY DEFAULT nextval('orderitemsid'::regclass) trans_id integer parts_id integer description text qty numeric sellprice numeric discount numeric unit character varying(5) project_id integer reqdate date ship numeric serialnumber text notes text Indexes on orderitems orderitems_id_key id orderitems_trans_id_key trans_id
Table: <structname>parts</structname> Structure of <structname>parts</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) partnumber text description text unit character varying(5) listprice numeric sellprice numeric lastcost numeric priceupdate date DEFAULT ('now'::text)::date weight numeric onhand numeric notes text makemodel boolean DEFAULT false assembly boolean DEFAULT false alternate boolean DEFAULT false rop real inventory_accno_id integer income_accno_id integer expense_accno_id integer bin text obsolete boolean DEFAULT false bom boolean DEFAULT false image text drawing text microfiche text partsgroup_id integer project_id integer avgcost numeric Indexes on parts parts_description_key lower(description) parts_id_key id parts_partnumber_key lower(partnumber) Tables referencing partstax via Foreign Key Constraints
Table: <structname>partscustomer</structname> Structure of <structname>partscustomer</structname> parts_id integer customer_id integer pricegroup_id integer pricebreak numeric sellprice numeric validfrom date validto date curr character(3) entry_id serial PRIMARY KEY
Table: <structname>partsgroup</structname> Structure of <structname>partsgroup</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) partsgroup text Indexes on partsgroup partsgroup_id_key id
Table: <structname>partstax</structname> Structure of <structname>partstax</structname> parts_id integer PRIMARY KEY REFERENCES chart_id integer PRIMARY KEY REFERENCES taxcategory_id integer REFERENCES Indexes on partstax partstax_parts_id_key parts_id
Table: <structname>partsvendor</structname> Structure of <structname>partsvendor</structname> vendor_id integer parts_id integer partnumber text leadtime smallint lastcost numeric curr character(3) entry_id serial PRIMARY KEY Indexes on partsvendor partsvendor_parts_id_key parts_id partsvendor_vendor_id_key vendor_id
Table: <structname>pricegroup</structname> Structure of <structname>pricegroup</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) pricegroup text Indexes on pricegroup pricegroup_id_key id pricegroup_pricegroup_key pricegroup
Table: <structname>project</structname> Structure of <structname>project</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) projectnumber text description text startdate date enddate date parts_id integer production numeric completed numeric customer_id integer Indexes on project project_id_key id
Table: <structname>recurring</structname> Structure of <structname>recurring</structname> id integer PRIMARY KEY reference text startdate date nextdate date enddate date repeat smallint unit character varying(6) howmany integer payment boolean DEFAULT false
Table: <structname>recurringemail</structname> Structure of <structname>recurringemail</structname> id integer PRIMARY KEY formname text format text message text
Table: <structname>recurringprint</structname> Structure of <structname>recurringprint</structname> id integer PRIMARY KEY formname text format text printer text
Table: <structname>shipto</structname> Structure of <structname>shipto</structname> trans_id integer shiptoname character varying(64) shiptoaddress1 character varying(32) shiptoaddress2 character varying(32) shiptocity character varying(32) shiptostate character varying(32) shiptozipcode character varying(10) shiptocountry character varying(32) shiptocontact character varying(64) shiptophone character varying(20) shiptofax character varying(20) shiptoemail text entry_id serial PRIMARY KEY Indexes on shipto shipto_trans_id_key trans_id
Table: <structname>sic</structname> Structure of <structname>sic</structname> code character varying(6) PRIMARY KEY sictype character(1) description text
Table: <structname>status</structname> Structure of <structname>status</structname> trans_id integer PRIMARY KEY formname text printed boolean DEFAULT false emailed boolean DEFAULT false spoolfile text Indexes on status status_trans_id_key trans_id
Table: <structname>tax</structname> Structure of <structname>tax</structname> chart_id integer PRIMARY KEY REFERENCES rate numeric taxnumber text validto date pass integer NOT NULL taxmodule_id integer NOT NULL DEFAULT 1 REFERENCES
Table: <structname>taxcategory</structname> Structure of <structname>taxcategory</structname> taxcategory_id serial PRIMARY KEY taxcategoryname text NOT NULL taxmodule_id integer NOT NULL REFERENCES Tables referencing partstax via Foreign Key Constraints
Table: <structname>taxmodule</structname> Structure of <structname>taxmodule</structname> taxmodule_id serial PRIMARY KEY taxmodulename text NOT NULL Tables referencing tax via Foreign Key Constraints
Table: <structname>transactions</structname> Structure of <structname>transactions</structname> id integer PRIMARY KEY table_name text
Table: <structname>translation</structname> Structure of <structname>translation</structname> trans_id integer PRIMARY KEY language_code character varying(6) PRIMARY KEY description text Indexes on translation translation_trans_id_key trans_id
Table: <structname>vendor</structname> Structure of <structname>vendor</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) name character varying(64) address1 character varying(32) address2 character varying(32) city character varying(32) state character varying(32) zipcode character varying(10) country character varying(32) contact character varying(64) phone character varying(20) fax character varying(20) email text notes text terms smallint taxincluded boolean DEFAULT false vendornumber character varying(32) cc text bcc text gifi_accno character varying(30) business_id integer taxnumber character varying(32) sic_code character varying(6) discount numeric creditlimit numeric iban character varying(34) bic character varying(11) employee_id integer language_code character varying(6) pricegroup_id integer curr character(3) startdate date enddate date Indexes on vendor vendor_contact_key lower((contact)::text) vendor_id_key id vendor_name_key lower((name)::text) vendor_vendornumber_key vendornumber
Table: <structname>vendortax</structname> Structure of <structname>vendortax</structname> vendor_id integer PRIMARY KEY chart_id integer PRIMARY KEY Indexes on vendortax vendortax_vendor_id_key vendor_id
Table: <structname>warehouse</structname> Structure of <structname>warehouse</structname> id integer PRIMARY KEY DEFAULT nextval('id'::regclass) description text
Table: <structname>yearend</structname> Structure of <structname>yearend</structname> trans_id integer PRIMARY KEY transdate date
add_custom_field( character varying, character varying, character varying ) add_custom_field( character varying, character varying, character varying ) Function Properties Language Return Type PLPGSQL boolean DECLARE table_name ALIAS FOR $1; new_field_name ALIAS FOR $2; field_datatype ALIAS FOR $3; BEGIN EXECUTE 'SELECT TABLE_ID FROM custom_table_catalog WHERE extends = ''' || table_name || ''' '; IF NOT FOUND THEN BEGIN INSERT INTO custom_table_catalog (extends) VALUES (table_name); EXECUTE 'CREATE TABLE custom_'||table_name || ' (row_id INT PRIMARY KEY)'; EXCEPTION WHEN duplicate_table THEN -- do nothing END; END IF; EXECUTE 'INSERT INTO custom_field_catalog (field_name, table_id) VALUES ( ''' || new_field_name ||''', (SELECT table_id FROM custom_table_catalog WHERE extends = '''|| table_name || '''))'; EXECUTE 'ALTER TABLE custom_'||table_name || ' ADD COLUMN ' || new_field_name || ' ' || field_datatype; RETURN TRUE; END;
avgcost( integer ) avgcost( integer ) Function Properties Language Return Type PLPGSQL double precision DECLARE v_cost float; v_qty float; v_parts_id alias for $1; BEGIN SELECT INTO v_cost, v_qty SUM(i.sellprice * i.qty), SUM(i.qty) FROM invoice i JOIN ap a ON (a.id = i.trans_id) WHERE i.parts_id = v_parts_id; IF v_cost IS NULL THEN v_cost := 0; END IF; IF NOT v_qty IS NULL THEN IF v_qty = 0 THEN v_cost := 0; ELSE v_cost := v_cost/v_qty; END IF; END IF; RETURN v_cost; END;
check_department( ) check_department( ) Function Properties Language Return Type PLPGSQL "trigger" declare dpt_id int; begin if new.department_id = 0 then delete from dpt_trans where trans_id = new.id; return NULL; end if; select into dpt_id trans_id from dpt_trans where trans_id = new.id; if dpt_id > 0 then update dpt_trans set department_id = new.department_id where trans_id = dpt_id; else insert into dpt_trans (trans_id, department_id) values (new.id, new.department_id); end if; return NULL; end;
check_inventory( ) check_inventory( ) Function Properties Language Return Type PLPGSQL "trigger" declare itemid int; row_data inventory%rowtype; begin if not old.quotation then for row_data in select * from inventory where trans_id = old.id loop select into itemid id from orderitems where trans_id = old.id and id = row_data.orderitems_id; if itemid is null then delete from inventory where trans_id = old.id and orderitems_id = row_data.orderitems_id; end if; end loop; end if; return old; end;
del_customer( ) del_customer( ) Function Properties Language Return Type PLPGSQL "trigger" begin delete from shipto where trans_id = old.id; delete from customertax where customer_id = old.id; delete from partscustomer where customer_id = old.id; return NULL; end;
del_department( ) del_department( ) Function Properties Language Return Type PLPGSQL "trigger" begin delete from dpt_trans where trans_id = old.id; return NULL; end;
del_exchangerate( ) del_exchangerate( ) Function Properties Language Return Type PLPGSQL "trigger" declare t_transdate date; t_curr char(3); t_id int; d_curr text; begin select into d_curr substr(value,1,3) from defaults where setting_key = 'curr'; if TG_RELNAME = 'ar' then select into t_curr, t_transdate curr, transdate from ar where id = old.id; end if; if TG_RELNAME = 'ap' then select into t_curr, t_transdate curr, transdate from ap where id = old.id; end if; if TG_RELNAME = 'oe' then select into t_curr, t_transdate curr, transdate from oe where id = old.id; end if; if d_curr != t_curr then select into t_id a.id from acc_trans ac join ar a on (a.id = ac.trans_id) where a.curr = t_curr and ac.transdate = t_transdate except select a.id from ar a where a.id = old.id union select a.id from acc_trans ac join ap a on (a.id = ac.trans_id) where a.curr = t_curr and ac.transdate = t_transdate except select a.id from ap a where a.id = old.id union select o.id from oe o where o.curr = t_curr and o.transdate = t_transdate except select o.id from oe o where o.id = old.id; if not found then delete from exchangerate where curr = t_curr and transdate = t_transdate; end if; end if; return old; end;
del_recurring( ) del_recurring( ) Function Properties Language Return Type PLPGSQL "trigger" BEGIN DELETE FROM recurring WHERE id = old.id; DELETE FROM recurringemail WHERE id = old.id; DELETE FROM recurringprint WHERE id = old.id; RETURN NULL; END;
del_vendor( ) del_vendor( ) Function Properties Language Return Type PLPGSQL "trigger" begin delete from shipto where trans_id = old.id; delete from vendortax where vendor_id = old.id; delete from partsvendor where vendor_id = old.id; return NULL; end;
del_yearend( ) del_yearend( ) Function Properties Language Return Type PLPGSQL "trigger" begin delete from yearend where trans_id = old.id; return NULL; end;
drop_custom_field( character varying, character varying ) drop_custom_field( character varying, character varying ) Function Properties Language Return Type PLPGSQL boolean DECLARE table_name ALIAS FOR $1; custom_field_name ALIAS FOR $2; BEGIN DELETE FROM custom_field_catalog WHERE field_name = custom_field_name AND table_id = (SELECT table_id FROM custom_table_catalog WHERE extends = table_name); EXECUTE 'ALTER TABLE custom_' || table_name || ' DROP COLUMN ' || custom_field_name; RETURN TRUE; END;
lastcost( integer ) lastcost( integer ) Function Properties Language Return Type PLPGSQL double precision DECLARE v_cost float; v_parts_id alias for $1; BEGIN SELECT INTO v_cost sellprice FROM invoice i JOIN ap a ON (a.id = i.trans_id) WHERE i.parts_id = v_parts_id ORDER BY a.transdate desc, a.id desc LIMIT 1; IF v_cost IS NULL THEN v_cost := 0; END IF; RETURN v_cost; END;
trigger_parts_short( ) trigger_parts_short( ) Function Properties Language Return Type PLPGSQL "trigger" BEGIN IF NEW.onhand >= NEW.rop THEN NOTIFY parts_short; END IF; RETURN NEW; END;
update_user( integer, text ) update_user( integer, text ) Function Properties Language Return Type SQL integer Takes int4 which is users.id and text which is username. Will update username based on id. Username is unique UPDATE users SET username = '$2' WHERE id = $1; SELECT 1;