summaryrefslogtreecommitdiff
path: root/doc/tips/laptop_wiki_with_git
diff options
context:
space:
mode:
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} = "&nbsp;";
  • $ca->{credit} = "&nbsp;";
  • if ( $ca->{amount} > 0 ) {
  • $ca->{credit} =
  • $form->format_amount( \%myconfig, $ca->{amount}, 2, "&nbsp;" );
  • }
  • if ( $ca->{amount} < 0 ) {
  • $ca->{debit} =
  • $form->format_amount( \%myconfig, -$ca->{amount}, 2, "&nbsp;" );
  • }
  • $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>&nbsp;</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>&nbsp;</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" ) ? "*" : "&nbsp;";
  • $profitcenter = ( $ref->{role} eq "P" ) ? "*" : "&nbsp;";
  • $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,
  • "&nbsp" );
  • $column_data{description} =