ledgersmb Model
Schema public
Standard public schema
Table:
acc_trans
Structure of acc_trans
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:
ap
Structure of ap
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:
ar
Structure of ar
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:
assembly
Structure of assembly
id
integer
PRIMARY KEY
parts_id
integer
PRIMARY KEY
qty
numeric
bom
boolean
adj
boolean
Indexes on assembly
assembly_id_key
id
Table:
audittrail
Structure of audittrail
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:
business
Structure of business
id
integer
PRIMARY KEY
DEFAULT nextval('id'::regclass)
description
text
discount
numeric
Table:
chart
Structure of chart
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:
custom_field_catalog
Structure of custom_field_catalog
field_id
serial
PRIMARY KEY
table_id
integer
REFERENCES
field_name
text
Table:
custom_table_catalog
Structure of custom_table_catalog
table_id
serial
PRIMARY KEY
extends
text
table_name
text
Tables referencing custom_field_catalog via Foreign Key Constraints
Table:
customer
Structure of customer
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:
customertax
Structure of customertax
customer_id
integer
PRIMARY KEY
chart_id
integer
PRIMARY KEY
Indexes on customertax
customer_customer_id_key
customer_id
Table:
defaults
Structure of defaults
setting_key
text
PRIMARY KEY
value
text
Table:
department
Structure of department
id
integer
PRIMARY KEY
DEFAULT nextval('id'::regclass)
description
text
role
character(1)
DEFAULT 'P'::bpchar
Indexes on department
department_id_key
id
Table:
dpt_trans
Structure of dpt_trans
trans_id
integer
PRIMARY KEY
department_id
integer
Table:
employee
Structure of employee
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:
exchangerate
Structure of exchangerate
curr
character(3)
PRIMARY KEY
transdate
date
PRIMARY KEY
buy
numeric
sell
numeric
Indexes on exchangerate
exchangerate_ct_key
curr, transdate
Table:
gifi
Structure of gifi
accno
text
PRIMARY KEY
description
text
Table:
gl
Structure of gl
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:
inventory
Structure of inventory
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:
invoice
Structure of invoice
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:
jcitems
Structure of jcitems
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:
language
Structure of language
code
character varying(6)
PRIMARY KEY
description
text
Table:
makemodel
Structure of makemodel
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:
oe
Structure of oe
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:
orderitems
Structure of orderitems
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:
parts
Structure of parts
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:
partscustomer
Structure of partscustomer
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:
partsgroup
Structure of partsgroup
id
integer
PRIMARY KEY
DEFAULT nextval('id'::regclass)
partsgroup
text
Indexes on partsgroup
partsgroup_id_key
id
Table:
partstax
Structure of partstax
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:
partsvendor
Structure of partsvendor
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:
pricegroup
Structure of pricegroup
id
integer
PRIMARY KEY
DEFAULT nextval('id'::regclass)
pricegroup
text
Indexes on pricegroup
pricegroup_id_key
id
pricegroup_pricegroup_key
pricegroup
Table:
project
Structure of project
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:
recurring
Structure of recurring
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:
recurringemail
Structure of recurringemail
id
integer
PRIMARY KEY
formname
text
format
text
message
text
Table:
recurringprint
Structure of recurringprint
id
integer
PRIMARY KEY
formname
text
format
text
printer
text
Table:
shipto
Structure of shipto
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:
sic
Structure of sic
code
character varying(6)
PRIMARY KEY
sictype
character(1)
description
text
Table:
status
Structure of status
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:
tax
Structure of tax
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:
taxcategory
Structure of taxcategory
taxcategory_id
serial
PRIMARY KEY
taxcategoryname
text
NOT NULL
taxmodule_id
integer
NOT NULL
REFERENCES
Tables referencing partstax via Foreign Key Constraints
Table:
taxmodule
Structure of taxmodule
taxmodule_id
serial
PRIMARY KEY
taxmodulename
text
NOT NULL
Tables referencing tax via Foreign Key Constraints
Table:
transactions
Structure of transactions
id
integer
PRIMARY KEY
table_name
text
Table:
translation
Structure of translation
trans_id
integer
PRIMARY KEY
language_code
character varying(6)
PRIMARY KEY
description
text
Indexes on translation
translation_trans_id_key
trans_id
Table:
vendor
Structure of vendor
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:
vendortax
Structure of vendortax
vendor_id
integer
PRIMARY KEY
chart_id
integer
PRIMARY KEY
Indexes on vendortax
vendortax_vendor_id_key
vendor_id
Table:
warehouse
Structure of warehouse
id
integer
PRIMARY KEY
DEFAULT nextval('id'::regclass)
description
text
Table:
yearend
Structure of yearend
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;