index
:
ikiwiki-upstream
layoutgala
master
Unnamed repository; edit this file to name it for gitweb.
Jonas Smedegaard
summary
refs
log
tree
commit
diff
log msg
author
committer
range
path:
root
/
doc
/
tips
/
laptop_wiki_with_git
diff options
context:
1
2
3
4
5
6
7
8
9
10
15
20
25
30
35
40
space:
include
ignore
mode:
unified
ssdiff
stat only
Diffstat
(limited to 'doc/tips/laptop_wiki_with_git')
0 files changed, 0 insertions, 0 deletions
n>
#======================================================================
#
# administration
#
#======================================================================
use
LedgerSMB
::
AM
;
use
LedgerSMB
::
CA
;
use
LedgerSMB
::
Form
;
use
LedgerSMB
::
User
;
use
LedgerSMB
::
RP
;
use
LedgerSMB
::
GL
;
1
;
# end of main
sub
add
{ &{
"add_
$form
->{type}"
} }
sub
edit
{ &{
"edit_
$form
->{type}"
} }
sub
save
{ &{
"save_
$form
->{type}"
} }
sub
delete
{ &{
"delete_
$form
->{type}"
} }
sub
save_as_new
{
delete
$form
->{
id
};
&
save
;
}
sub
add_account
{
$form
->{
title
} =
"Add"
;
$form
->{
charttype
} =
"A"
;
$form
->{
callback
} =
"
$form
->{script}?action=list_account&path=
$form
->{path}&login=
$form
->{login}&sessionid=
$form
->{sessionid}"
unless
$form
->{
callback
};
&
account_header
;
&
form_footer
;
}
sub
edit_account
{
$form
->{
title
} =
"Edit"
;
$form
->{
accno
} =~
s/\\'/'/g
;
$form
->{
accno
} =~
s/\\\\/\\/g
;
AM-
>
get_account
(
\
%myconfig
,
\
%$form
);
foreach
my
$item
(
split
(
/:/
,
$form
->{
link
} ) ) {
$form
->{
$item
} =
"checked"
;
}
&
account_header
;
&
form_footer
;
}
sub
account_header
{
$form
->{
title
} =
$locale
->
text
(
"
$form
->{title} Account"
);
$checked
{
$form
->{
charttype
} } =
"checked"
;
$checked
{
contra
} =
"checked"
if
$form
->{
contra
};
$checked
{
"
$form
->{category}_"
} =
"checked"
;
for
(
qw(accno description)
) {
$form
->{
$_
} =
$form
->
quote
(
$form
->{
$_
} ) }
# this is for our parser only!
# type=submit $locale->text('Add Account')
# type=submit $locale->text('Edit Account')
$form
->
header
;
print
qq
|
<
body
>
<
form
method
=
post action
=
$form
->{
script
}>
<
input type
=
hidden name
=
id value
=
$form
->{
id
}>
<
input type
=
hidden name
=
type value
=
account
>
<
input type
=
hidden name
=
inventory_accno_id value
=
$form
->{
inventory_accno_id
}>
<
input type
=
hidden name
=
income_accno_id value
=
$form
->{
income_accno_id
}>
<
input type
=
hidden name
=
expense_accno_id value
=
$form
->{
expense_accno_id
}>
<
input type
=
hidden name
=
fxgain_accno_id
values
=
$form
->{
fxgain_accno_id
}>
<
input type
=
hidden name
=
fxloss_accno_id
values
=
$form
->{
fxloss_accno_id
}>
<
table border
=
0
width
=
100
%>
<
tr
>
<
th
class
=
listtop
>
$form
->{
title
}</
th
>
</
tr
>
<
tr height
=
"5"
></
tr
>
<
tr valign
=
top
>
<
td
>
<
table
>
<
tr
>
<
th align
=
"right"
>| .
$locale
->
text
(
'Account Number'
) .
qq
|</
th
>
<
td
><
input name
=
accno size
=
20
value
=
"
$form
->{accno}"
></
td
>
</
tr
>
<
tr
>
<
th align
=
"right"
>| .
$locale
->
text
(
'Description'
) .
qq
|</
th
>
<
td
><
input name
=
description size
=
40
value
=
"
$form
->{description}"
></
td
>
</
tr
>
<
tr
>
<
th align
=
"right"
>| .
$locale
->
text
(
'Account Type'
) .
qq
|</
th
>
<
td
>
<
table
>
<
tr valign
=
top
>
<
td
><
input name
=
category type
=
radio
class
=
radio value
=
A
$checked
{
A_
}>&
nbsp
;|
.
$locale
->
text
(
'Asset'
)
.
qq
|
\n
<
br
>
<
input name
=
category type
=
radio
class
=
radio value
=
L
$checked
{
L_
}>&
nbsp
;|
.
$locale
->
text
(
'Liability'
)
.
qq
|
\n
<
br
>
<
input name
=
category type
=
radio
class
=
radio value
=
Q
$checked
{
Q_
}>&
nbsp
;|
.
$locale
->
text
(
'Equity'
)
.
qq
|
\n
<
br
>
<
input name
=
category type
=
radio
class
=
radio value
=
I
$checked
{
I_
}>&
nbsp
;|
.
$locale
->
text
(
'Income'
)
.
qq
|
\n
<
br
>
<
input name
=
category type
=
radio
class
=
radio value
=
E
$checked
{
E_
}>&
nbsp
;|
.
$locale
->
text
(
'Expense'
)
.
qq
|</
td
>
<
td
>
<
input name
=
contra
class
=
checkbox type
=
checkbox value
=
1
$checked
{
contra
}>&
nbsp
;|
.
$locale
->
text
(
'Contra'
) .
qq
|
</
td
>
<
td
>
<
input name
=
charttype type
=
radio
class
=
radio value
=
"H"
$checked
{
H
}>&
nbsp
;|
.
$locale
->
text
(
'Heading'
) .
qq
|<
br
>
<
input name
=
charttype type
=
radio
class
=
radio value
=
"A"
$checked
{
A
}>&
nbsp
;|
.
$locale
->
text
(
'Account'
)
.
qq
|</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
|;
if
(
$form
->{
charttype
}
eq
"A"
) {
print
qq
|
<
tr
>
<
td colspan
=
2
>
<
table
>
<
tr
>
<
th align
=
left
>|
.
$locale
->
text
(
'Is this a summary account to record'
)
.
qq
|</
th
>
<
td
>
<
input name
=
AR
class
=
checkbox type
=
checkbox value
=
AR
$form
->{
AR
}>&
nbsp
;|
.
$locale
->
text
(
'AR'
)
.
qq
|&
nbsp
;<
input name
=
AP
class
=
checkbox type
=
checkbox value
=
AP
$form
->{
AP
}>&
nbsp
;|
.
$locale
->
text
(
'AP'
)
.
qq
|&
nbsp
;<
input name
=
IC
class
=
checkbox type
=
checkbox value
=
IC
$form
->{
IC
}>&
nbsp
;|
.
$locale
->
text
(
'Inventory'
)
.
qq
|</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
<
tr
>
<
th colspan
=
2
>| .
$locale
->
text
(
'Include in drop-down menus'
) .
qq
|</
th
>
</
tr
>
<
tr valign
=
top
>
<
td colspan
=
2
>
<
table width
=
100
%>
<
tr
>
<
th align
=
left
>| .
$locale
->
text
(
'Receivables'
) .
qq
|</
th
>
<
th align
=
left
>| .
$locale
->
text
(
'Payables'
) .
qq
|</
th
>
<
th align
=
left
>| .
$locale
->
text
(
'Tracking Items'
) .
qq
|</
th
>
<
th align
=
left
>| .
$locale
->
text
(
'Non-tracking Items'
) .
qq
|</
th
>
</
tr
>
<
tr
>
<
td
>
<
input name
=
AR_amount
class
=
checkbox type
=
checkbox value
=
AR_amount
$form
->{
AR_amount
}>&
nbsp
;|
.
$locale
->
text
(
'Income'
)
.
qq
|
\n
<
br
>
<
input name
=
AR_paid
class
=
checkbox type
=
checkbox value
=
AR_paid
$form
->{
AR_paid
}>&
nbsp
;|
.
$locale
->
text
(
'Payment'
)
.
qq
|
\n
<
br
>
<
input name
=
AR_tax
class
=
checkbox type
=
checkbox value
=
AR_tax
$form
->{
AR_tax
}>&
nbsp
;|
.
$locale
->
text
(
'Tax'
) .
qq
|
</
td
>
<
td
>
<
input name
=
AP_amount
class
=
checkbox type
=
checkbox value
=
AP_amount
$form
->{
AP_amount
}>&
nbsp
;|
.
$locale
->
text
(
'Expense/Asset'
)
.
qq
|
\n
<
br
>
<
input name
=
AP_paid
class
=
checkbox type
=
checkbox value
=
AP_paid
$form
->{
AP_paid
}>&
nbsp
;|
.
$locale
->
text
(
'Payment'
)
.
qq
|
\n
<
br
>
<
input name
=
AP_tax
class
=
checkbox type
=
checkbox value
=
AP_tax
$form
->{
AP_tax
}>&
nbsp
;|
.
$locale
->
text
(
'Tax'
) .
qq
|
</
td
>
<
td
>
<
input name
=
IC_sale
class
=
checkbox type
=
checkbox value
=
IC_sale
$form
->{
IC_sale
}>&
nbsp
;|
.
$locale
->
text
(
'Income'
)
.
qq
|
\n
<
br
>
<
input name
=
IC_cogs
class
=
checkbox type
=
checkbox value
=
IC_cogs
$form
->{
IC_cogs
}>&
nbsp
;|
.
$locale
->
text
(
'COGS'
)
.
qq
|
\n
<
br
>
<
input name
=
IC_taxpart
class
=
checkbox type
=
checkbox value
=
IC_taxpart
$form
->{
IC_taxpart
}>&
nbsp
;|
.
$locale
->
text
(
'Tax'
) .
qq
|
</
td
>
<
td
>
<
input name
=
IC_income
class
=
checkbox type
=
checkbox value
=
IC_income
$form
->{
IC_income
}>&
nbsp
;|
.
$locale
->
text
(
'Income'
)
.
qq
|
\n
<
br
>
<
input name
=
IC_expense
class
=
checkbox type
=
checkbox value
=
IC_expense
$form
->{
IC_expense
}>&
nbsp
;|
.
$locale
->
text
(
'Expense'
)
.
qq
|
\n
<
br
>
<
input name
=
IC_taxservice
class
=
checkbox type
=
checkbox value
=
IC_taxservice
$form
->{
IC_taxservice
}>&
nbsp
;|
.
$locale
->
text
(
'Tax'
) .
qq
|
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
<
tr
>
</
tr
>
|;
}
print
qq
|
<
tr
>
<
th align
=
"right"
>| .
$locale
->
text
(
'GIFI'
) .
qq
|</
th
>
<
td
><
input name
=
gifi_accno size
=
9
value
=
"
$form
->{gifi_accno}"
></
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
<
tr
>
<
td
><
hr size
=
3
noshade
></
td
>
</
tr
>
</
table
>
|;
}
sub
form_footer
{
$form
->
hide_form
(
qw(callback path login sessionid)
);
# type=submit $locale->text('Save')
# type=submit $locale->text('Save as new')
# type=submit $locale->text('Delete')
%button
= ();
if
(
$form
->{
id
} ) {
$button
{
'save'
} =
{
ndx
=>
3
,
key
=>
'S'
,
value
=>
$locale
->
text
(
'Save'
) };
$button
{
'save_as_new'
} =
{
ndx
=>
7
,
key
=>
'N'
,
value
=>
$locale
->
text
(
'Save as new'
) };
if
(
$form
->{
orphaned
} ) {
$button
{
'delete'
} =
{
ndx
=>
16
,
key
=>
'D'
,
value
=>
$locale
->
text
(
'Delete'
) };
}
}
else
{
$button
{
'save'
} =
{
ndx
=>
3
,
key
=>
'S'
,
value
=>
$locale
->
text
(
'Save'
) };
}
for
(
sort
{
$button
{
$a
}->{
ndx
} <=>
$button
{
$b
}->{
ndx
} }
keys
%button
) {
$form
->
print_button
(
\
%button
,
$_
);
}
if
(
$form
->{
lynx
} ) {
require
"bin/menu.pl"
;
&
menubar
;
}
print
qq
|
</
form
>
</
body
>
</
html
>
|;
}
sub
save_account
{
$form
->
isblank
(
"accno"
,
$locale
->
text
(
'Account Number missing!'
) );
$form
->
isblank
(
"category"
,
$locale
->
text
(
'Account Type missing!'
) );
# check for conflicting accounts
if
(
$form
->{
AR
} ||
$form
->{
AP
} ||
$form
->{
IC
} ) {
$a
=
""
;
for
(
qw(AR AP IC)
) {
$a
.=
$form
->{
$_
} }
$form
->
error
(
$locale
->
text
(
'Cannot set account for more than one of AR, AP or IC'
)
)
if
length
$a
>
2
;
for
(
qw(AR_amount AR_tax AR_paid AP_amount AP_tax AP_paid IC_taxpart IC_taxservice IC_sale IC_cogs IC_income IC_expense)
)
{
$form
->
error
(
"
$form
->{AR}
$form
->{AP}
$form
->{IC} "
.
$locale
->
text
(
'account cannot be set to any other type of account'
)
)
if
$form
->{
$_
};
}
}
foreach
$item
(
"AR"
,
"AP"
) {
$i
=
0
;
for
(
"${item}_amount"
,
"${item}_paid"
,
"${item}_tax"
) {
$i++
if
$form
->{
$_
};
}
$form
->
error
(
$locale
->
text
(
'Cannot set multiple options for [_1]'
,
$item
) )
if
$i
>
1
;
}
if
(
AM-
>
save_account
(
\
%myconfig
,
\
%$form
) ) {
$form
->
redirect
(
$locale
->
text
(
'Account saved!'
) );
}
else
{
$form
->
error
(
$locale
->
text
(
'Cannot save account!'
) );
}
}
sub
list_account
{
CA-
>
all_accounts
(
\
%myconfig
,
\
%$form
);
$form
->{
title
} =
$locale
->
text
(
'Chart of Accounts'
);
# construct callback
$callback
=
"
$form
->{script}?action=list_account&path=
$form
->{path}&login=
$form
->{login}&sessionid=
$form
->{sessionid}"
;
@column_index
=
qw(accno gifi_accno description debit credit link)
;
$column_header
{
accno
} =
qq
|<
th
class
=
listtop
>| .
$locale
->
text
(
'Account'
) .
qq
|<
/a></
th
>|;
$column_header
{
gifi_accno
} =
qq
|<
th
class
=
listtop
>| .
$locale
->
text
(
'GIFI'
) .
qq
|<
/a></
th
>|;
$column_header
{
description
} =
qq
|<
th
class
=
listtop
>| .
$locale
->
text
(
'Description'
) .
qq
|<
/a></
th
>|;
$column_header
{
debit
} =
qq
|<
th
class
=
listtop
>| .
$locale
->
text
(
'Debit'
) .
qq
|<
/a></
th
>|;
$column_header
{
credit
} =
qq
|<
th
class
=
listtop
>| .
$locale
->
text
(
'Credit'
) .
qq
|<
/a></
th
>|;
$column_header
{
link
} =
qq
|<
th
class
=
listtop
>| .
$locale
->
text
(
'Link'
) .
qq
|<
/a></
th
>|;
$form
->
header
;
$colspan
=
$#column_index
+
1
;
print
qq
|
<
body
>
<
table width
=
100
%>
<
tr
>
<
th
class
=
listtop colspan
=
$colspan
>
$form
->{
title
}</
th
>
</
tr
>
<
tr height
=
"5"
></
tr
>
<
tr
class
=
"listheading"
>
|;
for
(
@column_index
) {
print
"
$column_header
{
$_
}
\n
"
}
print
qq
|
</
tr
>
|;
# escape callback
$callback
=
$form
->
escape
(
$callback
);
foreach
$ca
( @{
$form
->{
CA
} } ) {
$ca
->{
debit
} =
" "
;
$ca
->{
credit
} =
" "
;
if
(
$ca
->{
amount
} >
0
) {
$ca
->{
credit
} =
$form
->
format_amount
(
\
%myconfig
,
$ca
->{
amount
},
2
,
" "
);
}
if
(
$ca
->{
amount
} <
0
) {
$ca
->{
debit
} =
$form
->
format_amount
(
\
%myconfig
, -
$ca
->{
amount
},
2
,
" "
);
}
$ca
->{
link
} =~
s/:/<br>/og
;
$gifi_accno
=
$form
->
escape
(
$ca
->{
gifi_accno
} );
if
(
$ca
->{
charttype
}
eq
"H"
) {
print
qq
|<
tr
class
=
"listheading"
>|;
$column_data
{
accno
} =
qq
|<
th
><
a
class
=
"listheading"
href
=
"
$form
->{script}?action=edit_account&id=
$ca
->{id}&path=
$form
->{path}&login=
$form
->{login}&sessionid=
$form
->{sessionid}&callback=
$callback
"
>
$ca
->{
accno
}<
/a></
th
>|;
$column_data
{
gifi_accno
} =
qq
|<
th
class
=
"listheading"
><
a href
=
"
$form
->{script}?action=edit_gifi&accno=
$gifi_accno&path
=
$form
->{path}&login=
$form
->{login}&sessionid=
$form
->{sessionid}&callback=
$callback
"
>
$ca
->{
gifi_accno
}<
/a> </
th
>|;
$column_data
{
description
} =
qq
|<
th
class
=
"listheading"
>
$ca
->{
description
}&
nbsp
;</
th
>|;
$column_data
{
debit
} =
qq
|<
th
>&
nbsp
;</
th
>|;
$column_data
{
credit
} =
qq
| <
th
>&
nbsp
;</
th
>|;
$column_data
{
link
} =
qq
|<
th
>&
nbsp
;</
th
>|;
}
else
{
$i++
;
$i
%=
2
;
print
qq
|
<
tr valign
=
top
class
=
"listrow
$i
"
>|;
$column_data
{
accno
} =
qq
|<
td
><
a href
=
"
$form
->{script}?action=edit_account&id=
$ca
->{id}&path=
$form
->{path}&login=
$form
->{login}&sessionid=
$form
->{sessionid}&callback=
$callback
"
>
$ca
->{
accno
}<
/a></
td
>|;
$column_data
{
gifi_accno
} =
qq
|<
td
><
a href
=
"
$form
->{script}?action=edit_gifi&accno=
$gifi_accno&path
=
$form
->{path}&login=
$form
->{login}&sessionid=
$form
->{sessionid}&callback=
$callback
"
>
$ca
->{
gifi_accno
}<
/a> </
td
>|;
$column_data
{
description
} =
qq
|<
td
>
$ca
->{
description
}&
nbsp
;</
td
>|;
$column_data
{
debit
} =
qq
|<
td align
=
"right"
>
$ca
->{
debit
}</
td
>|;
$column_data
{
credit
} =
qq
|<
td align
=
"right"
>
$ca
->{
credit
}</
td
>|;
$column_data
{
link
} =
qq
|<
td
>
$ca
->{
link
}&
nbsp
;</
td
>|;
}
for
(
@column_index
) {
print
"
$column_data
{
$_
}
\n
"
}
print
"</tr>
\n
"
;
}
print
qq
|
<
tr
><
td colspan
=
"
$colspan
"
><
hr size
=
"3"
noshade
/></
td
></
tr
>
</
table
>
</
body
>
</
html
>
|;
}
sub
delete_account
{
$form
->{
title
} =
$locale
->
text
(
'Delete Account'
);
foreach
$id
(
qw(inventory_accno_id income_accno_id expense_accno_id fxgain_accno_id fxloss_accno_id)
)
{
if
(
$form
->{
id
} ==
$form
->{
$id
} ) {
$form
->
error
(
$locale
->
text
(
'Cannot delete default account!'
) );
}
}
if
(
AM-
>
delete_account
(
\
%myconfig
,
\
%$form
) ) {
$form
->
redirect
(
$locale
->
text
(
'Account deleted!'
) );
}
else
{
$form
->
error
(
$locale
->
text
(
'Cannot delete account!'
) );
}
}
sub
list_gifi
{
@{
$form
->{
fields
} } =
qw(accno description)
;
$form
->{
table
} =
"gifi"
;
AM-
>
gifi_accounts
(
\
%myconfig
,
\
%$form
);
$form
->{
title
} =
$locale
->
text
(
'GIFI'
);
# construct callback
$callback
=
"
$form
->{script}?action=list_gifi&path=
$form
->{path}&login=
$form
->{login}&sessionid=
$form
->{sessionid}"
;
@column_index
=
qw(accno description)
;
$column_header
{
accno
} =
qq
|<
th
class
=
"listheading"
>| .
$locale
->
text
(
'GIFI'
) .
qq
|<
/a></
th
>|;
$column_header
{
description
} =
qq
|<
th
class
=
"listheading"
>|
.
$locale
->
text
(
'Description'
)
.
qq
|<
/a></
th
>|;
$form
->
header
;
$colspan
=
$#column_index
+
1
;
print
qq
|
<
body
>
<
table width
=
100
%>
<
tr
>
<
th
class
=
listtop colspan
=
$colspan
>
$form
->{
title
}</
th
>
</
tr
>
<
tr height
=
"5"
></
tr
>
<
tr
class
=
"listheading"
>
|;
for
(
@column_index
) {
print
"
$column_header
{
$_
}
\n
"
}
print
qq
|
</
tr
>
|;
# escape callback
$callback
=
$form
->
escape
(
$callback
);
foreach
$ca
( @{
$form
->{
ALL
} } ) {
$i++
;
$i
%=
2
;
print
qq
|
<
tr valign
=
top
class
=
listrow
$i
>|;
$accno
=
$form
->
escape
(
$ca
->{
accno
} );
$column_data
{
accno
} =
qq
|<
td
><
a href
=
$form
->{
script
}?
action
=
edit_gifi
&
coa
=
1
&
accno
=
$accno&path
=
$form
->{
path
}&
login
=
$form
->{
login
}&
sessionid
=
$form
->{
sessionid
}&
callback
=
$callback
>
$ca
->{
accno
}</
td
>|;
$column_data
{
description
} =
qq
|<
td
>
$ca
->{
description
}&
nbsp
;</
td
>|;
for
(
@column_index
) {
print
"
$column_data
{
$_
}
\n
"
}
print
"</tr>
\n
"
;
}
print
qq
|
<
tr
>
<
td colspan
=
$colspan
><
hr size
=
3
noshade
></
td
>
</
tr
>
</
table
>
</
body
>
</
html
>
|;
}
sub
add_gifi
{
$form
->{
title
} =
"Add"
;
# construct callback
$form
->{
callback
} =
"
$form
->{script}?action=list_gifi&path=
$form
->{path}&login=
$form
->{login}&sessionid=
$form
->{sessionid}"
;
$form
->{
coa
} =
1
;
&
gifi_header
;
&
gifi_footer
;
}
sub
edit_gifi
{
$form
->{
title
} =
"Edit"
;
AM-
>
get_gifi
(
\
%myconfig
,
\
%$form
);
$form
->
error
(
$locale
->
text
(
'Account does not exist!'
) )
unless
$form
->{
accno
};
&
gifi_header
;
&
gifi_footer
;
}
sub
gifi_header
{
$form
->{
title
} =
$locale
->
text
(
"
$form
->{title} GIFI"
);
# $locale->text('Add GIFI')
# $locale->text('Edit GIFI')
for
(
qw(accno description)
) {
$form
->{
$_
} =
$form
->
quote
(
$form
->{
$_
} ) }
$form
->
header
;
print
qq
|
<
body
>
<
form
method
=
post action
=
$form
->{
script
}>
<
input type
=
hidden name
=
id value
=
"
$form
->{accno}"
>
<
input type
=
hidden name
=
type value
=
gifi
>
<
table width
=
100
%>
<
tr
>
<
th
class
=
listtop
>
$form
->{
title
}</
th
>
</
tr
>
<
tr height
=
"5"
></
tr
>
<
tr
>
<
td
>
<
table
>
<
tr
>
<
th align
=
"right"
>| .
$locale
->
text
(
'GIFI'
) .
qq
|</
th
>
<
td
><
input name
=
accno size
=
20
value
=
"
$form
->{accno}"
></
td
>
</
tr
>
<
tr
>
<
th align
=
"right"
>| .
$locale
->
text
(
'Description'
) .
qq
|</
th
>
<
td
><
input name
=
description size
=
60
value
=
"
$form
->{description}"
></
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
<
tr
>
<
td colspan
=
2
><
hr size
=
3
noshade
></
td
>
</
tr
>
</
table
>
|;
}
sub
gifi_footer
{
$form
->
hide_form
(
qw(callback path login sessionid)
);
# type=submit $locale->text('Save')
# type=submit $locale->text('Copy to COA')
# type=submit $locale->text('Delete')
%button
= ();
$button
{
'save'
} = {
ndx
=>
3
,
key
=>
'S'
,
value
=>
$locale
->
text
(
'Save'
) };
if
(
$form
->{
accno
} ) {
if
(
$form
->{
orphaned
} ) {
$button
{
'delete'
} =
{
ndx
=>
16
,
key
=>
'D'
,
value
=>
$locale
->
text
(
'Delete'
) };
}
}
if
(
$form
->{
coa
} ) {
$button
{
'copy_to_coa'
} =
{
ndx
=>
7
,
key
=>
'C'
,
value
=>
$locale
->
text
(
'Copy to COA'
) };
}
for
(
sort
{
$button
{
$a
}->{
ndx
} <=>
$button
{
$b
}->{
ndx
} }
keys
%button
) {
$form
->
print_button
(
\
%button
,
$_
);
}
if
(
$form
->{
lynx
} ) {
require
"bin/menu.pl"
;
&
menubar
;
}
print
qq
|
</
form
>
</
body
>
</
html
>
|;
}
sub
save_gifi
{
$form
->
isblank
(
"accno"
,
$locale
->
text
(
'GIFI missing!'
) );
AM-
>
save_gifi
(
\
%myconfig
,
\
%$form
);
$form
->
redirect
(
$locale
->
text
(
'GIFI saved!'
) );
}
sub
copy_to_coa
{
$form
->
isblank
(
"accno"
,
$locale
->
text
(
'GIFI missing!'
) );
AM-
>
save_gifi
(
\
%myconfig
,
\
%$form
);
delete
$form
->{
id
};
$form
->{
gifi_accno
} =
$form
->{
accno
};
$form
->{
title
} =
"Add"
;
$form
->{
charttype
} =
"A"
;
&
account_header
;
&
form_footer
;
}
sub
delete_gifi
{
AM-
>
delete_gifi
(
\
%myconfig
,
\
%$form
);
$form
->
redirect
(
$locale
->
text
(
'GIFI deleted!'
) );
}
sub
add_department
{
$form
->{
title
} =
"Add"
;
$form
->{
role
} =
"P"
;
$form
->{
callback
} =
"
$form
->{script}?action=add_department&path=
$form
->{path}&login=
$form
->{login}&sessionid=
$form
->{sessionid}"
unless
$form
->{
callback
};
&
department_header
;
&
form_footer
;
}
sub
edit_department
{
$form
->{
title
} =
"Edit"
;
AM-
>
get_department
(
\
%myconfig
,
\
%$form
);
&
department_header
;
&
form_footer
;
}
sub
list_department
{
AM-
>
departments
(
\
%myconfig
,
\
%$form
);
$href
=
"
$form
->{script}?action=list_department&direction=
$form
->{direction}&path=
$form
->{path}&login=
$form
->{login}&sessionid=
$form
->{sessionid}"
;
$form
->
sort_order
();
$form
->{
callback
} =
"
$form
->{script}?action=list_department&direction=
$form
->{direction}&path=
$form
->{path}&login=
$form
->{login}&sessionid=
$form
->{sessionid}"
;
$callback
=
$form
->
escape
(
$form
->{
callback
} );
$form
->{
title
} =
$locale
->
text
(
'Departments'
);
@column_index
=
qw(description cost profit)
;
$column_header
{
description
} =
qq
|<
th width
=
90
%><
a
class
=
"listheading"
href
=
$href
>|
.
$locale
->
text
(
'Description'
)
.
qq
|<
/a></
th
>|;
$column_header
{
cost
} =
qq
|<
th
class
=
"listheading"
nowrap
>|
.
$locale
->
text
(
'Cost Center'
)
.
qq
|</
th
>|;
$column_header
{
profit
} =
qq
|<
th
class
=
"listheading"
nowrap
>|
.
$locale
->
text
(
'Profit Center'
)
.
qq
|</
th
>|;
$form
->
header
;
print
qq
|
<
body
>
<
table width
=
100
%>
<
tr
>
<
th
class
=
listtop
>
$form
->{
title
}</
th
>
</
tr
>
<
tr height
=
"5"
></
tr
>
<
tr
>
<
td
>
<
table width
=
100
%>
<
tr
class
=
"listheading"
>
|;
for
(
@column_index
) {
print
"
$column_header
{
$_
}
\n
"
}
print
qq
|
</
tr
>
|;
foreach
$ref
( @{
$form
->{
ALL
} } ) {
$i++
;
$i
%=
2
;
print
qq
|
<
tr valign
=
top
class
=
listrow
$i
>
|;
$costcenter
= (
$ref
->{
role
}
eq
"C"
) ?
"*"
:
" "
;
$profitcenter
= (
$ref
->{
role
}
eq
"P"
) ?
"*"
:
" "
;
$column_data
{
description
} =
qq
|<
td
><
a href
=
$form
->{
script
}?
action
=
edit_department
&
id
=
$ref
->{
id
}&
path
=
$form
->{
path
}&
login
=
$form
->{
login
}&
sessionid
=
$form
->{
sessionid
}&
callback
=
$callback
>
$ref
->{
description
}</
td
>|;
$column_data
{
cost
} =
qq
|<
td align
=
center
>
$costcenter
</
td
>|;
$column_data
{
profit
} =
qq
|<
td align
=
center
>
$profitcenter
</
td
>|;
for
(
@column_index
) {
print
"
$column_data
{
$_
}
\n
"
}
print
qq
|
</
tr
>
|;
}
print
qq
|
</
table
>
</
td
>
</
tr
>
<
tr
>
<
td
><
hr size
=
3
noshade
></
td
>
</
tr
>
</
table
>
<
br
>
<
form
method
=
post action
=
$form
->{
script
}>
|;
$form
->{
type
} =
"department"
;
$form
->
hide_form
(
qw(type callback path login sessionid)
);
print
qq
|
<
button
class
=
"submit"
type
=
"submit"
name
=
"action"
value
=
"add_department"
>|
.
$locale
->
text
(
'Add Department'
)
.
qq
|
"</button>|;
if (
$form
->{lynx} ) {
require "
bin
/
menu
.
pl
";
&menubar;
}
print qq|
</form>
</body>
</html>
|;
}
sub department_header {
$form
->{title} =
$locale
->text("
$form
->{
title
}
Department
");
#
$locale
->text('Add Department')
#
$locale
->text('Edit Department')
$form
->{description} =
$form
->quote(
$form
->{description} );
if ( (
$rows
=
$form
->numtextrows(
$form
->{description}, 60 ) ) > 1 ) {
$description
=
qq|<textarea name="
description
" rows=
$rows
cols=60 wrap=soft>
$form
->{description}</textarea>|;
}
else {
$description
=
qq|<input name=description size=60 value="
$form
->{
description
}
">|;
}
$costcenter
= "
checked
" if
$form
->{role} eq "
C
";
$profitcenter
= "
checked
" if
$form
->{role} eq "
P
";
$form
->header;
print qq|
<body>
<form method=post action=
$form
->{script}>
<input type=hidden name=id value=
$form
->{id}>
<input type=hidden name=type value=department>
<table width=100%>
<tr>
<th class=listtop colspan=2>
$form
->{title}</th>
</tr>
<tr height="
5
"></tr>
<tr>
<th align="
right
">| .
$locale
->text('Description') . qq|</th>
<td>
$description
</td>
</tr>
<tr>
<td></td>
<td><input type=radio style=radio name=role value="
C
"
$costcenter
> |
.
$locale
->text('Cost Center') . qq|
<input type=radio style=radio name=role value="
P
"
$profitcenter
> |
.
$locale
->text('Profit Center') . qq|
</td>
<tr>
<td colspan=2><hr size=3 noshade></td>
</tr>
</table>
|;
}
sub save_department {
$form
->isblank( "
description
",
$locale
->text('Description missing!') );
AM->save_department( \
%myconfig
, \
%$form
);
$form
->redirect(
$locale
->text('Department saved!') );
}
sub delete_department {
AM->delete_department( \
%myconfig
, \
%$form
);
$form
->redirect(
$locale
->text('Department deleted!') );
}
sub add_business {
$form
->{title} = "
Add
";
$form
->{callback} =
"
$form
->{
script
}?
action
=
add_business
&
path
=
$form
->{
path
}&
login
=
$form
->{
login
}&
sessionid
=
$form
->{
sessionid
}
"
unless
$form
->{callback};
&business_header;
&form_footer;
}
sub edit_business {
$form
->{title} = "
Edit
";
AM->get_business( \
%myconfig
, \
%$form
);
&business_header;
$form
->{orphaned} = 1;
&form_footer;
}
sub list_business {
AM->business( \
%myconfig
, \
%$form
);
$href
=
"
$form
->{
script
}?
action
=
list_business
&
direction
=
$form
->{
direction
}&
path
=
$form
->{
path
}&
login
=
$form
->{
login
}&
sessionid
=
$form
->{
sessionid
}
";
$form
->sort_order();
$form
->{callback} =
"
$form
->{
script
}?
action
=
list_business
&
direction
=
$form
->{
direction
}&
path
=
$form
->{
path
}&
login
=
$form
->{
login
}&
sessionid
=
$form
->{
sessionid
}
";
$callback
=
$form
->escape(
$form
->{callback} );
$form
->{title} =
$locale
->text('Type of Business');
@column_index
= qw(description discount)
;
$column_header
{
description
} =
qq
|<
th width
=
90
%><
a
class
=
"listheading"
href
=
$href
>|
.
$locale
->
text
(
'Description'
)
.
qq
|<
/a></
th
>|;
$column_header
{
discount
} =
qq
|<
th
class
=
"listheading"
>| .
$locale
->
text
(
'Discount'
) .
qq
| %</
th
>|;
$form
->
header
;
print
qq
|
<
body
>
<
table width
=
100
%>
<
tr
>
<
th
class
=
listtop
>
$form
->{
title
}</
th
>
</
tr
>
<
tr height
=
"5"
></
tr
>
<
tr
>
<
td
>
<
table width
=
100
%>
<
tr
class
=
"listheading"
>
|;
for
(
@column_index
) {
print
"
$column_header
{
$_
}
\n
"
}
print
qq
|
</
tr
>
|;
foreach
$ref
( @{
$form
->{
ALL
} } ) {
$i++
;
$i
%=
2
;
print
qq
|
<
tr valign
=
top
class
=
listrow
$i
>
|;
$discount
=
$form
->
format_amount
(
\
%myconfig
,
$ref
->{
discount
} *
100
,
2
,
" "
);
$column_data
{
description
} =