summaryrefslogtreecommitdiff
path: root/sql/coa/ca/chart
diff options
context:
space:
mode:
Diffstat (limited to 'sql/coa/ca/chart')
0 files changed, 0 insertions, 0 deletions
pan>
  • #
  • # Contributors: Antonio Gallardo <agssa@ibw.com.ni>
  • # Benjamin Lee <benjaminlee@consultant.com>
  • #
  • #
  • # This program is free software; you can redistribute it and/or modify
  • # it under the terms of the GNU General Public License as published by
  • # the Free Software Foundation; either version 2 of the License, or
  • # (at your option) any later version.
  • #
  • # This program is distributed in the hope that it will be useful,
  • # but WITHOUT ANY WARRANTY; without even the implied warranty of
  • # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  • # GNU General Public License for more details.
  • # You should have received a copy of the GNU General Public License
  • # along with this program; if not, write to the Free Software
  • # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  • #======================================================================
  • #
  • # module for preparing Income Statement and Balance Sheet
  • #
  • #======================================================================
  • require "bin/arap.pl";
  • use LedgerSMB::PE;
  • use LedgerSMB::RP;
  • 1;
  • # end of main
  • # this is for our long dates
  • # $locale->text('January')
  • # $locale->text('February')
  • # $locale->text('March')
  • # $locale->text('April')
  • # $locale->text('May ')
  • # $locale->text('June')
  • # $locale->text('July')
  • # $locale->text('August')
  • # $locale->text('September')
  • # $locale->text('October')
  • # $locale->text('November')
  • # $locale->text('December')
  • # this is for our short month
  • # $locale->text('Jan')
  • # $locale->text('Feb')
  • # $locale->text('Mar')
  • # $locale->text('Apr')
  • # $locale->text('May')
  • # $locale->text('Jun')
  • # $locale->text('Jul')
  • # $locale->text('Aug')
  • # $locale->text('Sep')
  • # $locale->text('Oct')
  • # $locale->text('Nov')
  • # $locale->text('Dec')
  • # $locale->text('Balance Sheet')
  • # $locale->text('Income Statement')
  • # $locale->text('Trial Balance')
  • # $locale->text('AR Aging')
  • # $locale->text('AP Aging')
  • # $locale->text('Tax collected')
  • # $locale->text('Tax paid')
  • # $locale->text('Receipts')
  • # $locale->text('Payments')
  • # $locale->text('Project Transactions')
  • # $locale->text('Non-taxable Sales')
  • # $locale->text('Non-taxable Purchases')
  • sub report {
  • %report = ( balance_sheet => { title => 'Balance Sheet' },
  • income_statement => { title => 'Income Statement' },
  • trial_balance => { title => 'Trial Balance' },
  • ar_aging => { title => 'AR Aging', vc => 'customer' },
  • ap_aging => { title => 'AP Aging', vc => 'vendor' },
  • tax_collected => { title => 'Tax collected', vc => 'customer' },
  • tax_paid => { title => 'Tax paid' },
  • nontaxable_sales => { title => 'Non-taxable Sales', vc => 'customer' },
  • nontaxable_purchases => { title => 'Non-taxable Purchases' },
  • receipts => { title => 'Receipts', vc => 'customer' },
  • payments => { title => 'Payments' },
  • projects => { title => 'Project Transactions' },
  • inv_activity => { title => 'Inventory Activity'},
  • );
  • $form->{title} = $locale->text($report{$form->{report}}->{title});
  • $gifi = qq|
  • <tr>
  • <th align=right>|.$locale->text('Accounts').qq|</th>
  • <td><input name=accounttype class=radio type=radio value=standard checked> |.$locale->text('Standard').qq|
  • <input name=accounttype class=radio type=radio value=gifi> |.$locale->text('GIFI').qq|
  • </td>
  • </tr>
  • |;
  • # get departments
  • $form->all_departments(\%myconfig, undef, $report{$form->{report}}->{vc});
  • if (@{ $form->{all_department} }) {
  • $form->{selectdepartment} = "<option>\n";
  • for (@{ $form->{all_department} }) { $form->{selectdepartment} .= qq|<option value="$_->{description}--$_->{id}">$_->{description}\n| }
  • }
  • $department = qq|
  • <tr>
  • <th align=right nowrap>|.$locale->text('Department').qq|</th>
  • <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
  • </tr>
  • | if $form->{selectdepartment};
  • if (@{ $form->{all_years} }) {
  • # accounting years
  • $form->{selectaccountingyear} = "<option>\n";
  • for (@{ $form->{all_years} }) { $form->{selectaccountingyear} .= qq|<option>$_\n| }
  • $form->{selectaccountingmonth} = "<option>\n";
  • for (sort keys %{ $form->{all_month} }) { $form->{selectaccountingmonth} .= qq|<option value=$_>|.$locale->text($form->{all_month}{$_}).qq|\n| }
  • $selectfrom = qq|
  • <tr>
  • <th align=right>|.$locale->text('Period').qq|</th>
  • <td colspan=3>
  • <select name=month>$form->{selectaccountingmonth}</select>
  • <select name=year>$form->{selectaccountingyear}</select>
  • <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
  • <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
  • <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
  • <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
  • </td>
  • </tr>
  • |;
  • $selectto = qq|
  • <tr>
  • <th align=right></th>
  • <td>
  • <select name=month>$form->{selectaccountingmonth}</select>
  • <select name=year>$form->{selectaccountingyear}</select>
  • </td>
  • </tr>
  • |;
  • }
  • $summary = qq|
  • <tr>
  • <th></th>
  • <td><input name=summary type=radio class=radio value=1 checked> |.$locale->text('Summary').qq|
  • <input name=summary type=radio class=radio value=0> |.$locale->text('Detail').qq|
  • </td>
  • </tr>
  • |;
  • # get projects
  • $form->all_projects(\%myconfig);
  • if (@{ $form->{all_project} }) {
  • $form->{selectproject} = "<option>\n";
  • for (@{ $form->{all_project} }) { $form->{selectproject} .= qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n| }
  • $project = qq|
  • <tr>
  • <th align=right nowrap>|.$locale->text('Project').qq|</th>
  • <td colspan=3><select name=projectnumber>$form->{selectproject}</select></td>
  • </tr>|;
  • }
  • $form->header;
  • print qq|
  • <body>
  • <form method=post action=$form->{script}>
  • <input type=hidden name=title value="$form->{title}">
  • <table width=100%>
  • <tr>
  • <th class=listtop>$form->{title}</th>
  • </tr>
  • <tr height="5"></tr>
  • <tr>
  • <td>
  • <table>
  • $department
  • |;
  • if ($form->{report} eq "projects") {
  • print qq|
  • $project
  • <input type=hidden name=nextsub value=generate_projects>
  • <tr>
  • <th align=right>|.$locale->text('From').qq|</th>
  • <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
  • <th align=right>|.$locale->text('To').qq|</th>
  • <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
  • </tr>
  • $selectfrom
  • </table>
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <table>
  • <tr>
  • <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
  • <td><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Heading').qq|
  • <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|</td>
  • </tr>
  • |;
  • }
  • if ($form->{report} eq "inv_activity"){
  • $gifi = '';
  • print qq|
  • <input type=hidden name=nextsub value=generate_inv_activity>
  • <tr>
  • <th align=right>|.$locale->text('From').qq|</th>
  • <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
  • <th align=right>|.$locale->text('To').qq|</th>
  • <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
  • </tr>
  • <tr>
  • <th align=right>|.$locale->text('Period').qq|</th>
  • <td colspan=3>
  • <select name=frommonth>$form->{selectaccountingmonth}</select>
  • <select name=fromyear>$form->{selectaccountingyear}</select>
  • <input name=interval class=radio type=radio value=0 checked>|.$locale->text('Current').qq|
  • <input name=interval class=radio type=radio value=1>|.$locale->text('Month').qq|
  • <input name=interval class=radio type=radio value=3>|.$locale->text('Quarter').qq|
  • <input name=interval class=radio type=radio value=12>|.$locale->text('Year').qq|
  • </td>
  • </tr>
  • </table>
  • <table>
  • <tr>
  • <th>|.$locale->text("Part Number").qq|</th>
  • <td><input name=partnumber></td>
  • <th>|.$locale->text('Description').qq|</th>
  • <td><input type=text name=description></td>
  • </tr>|;
  • }
  • if ($form->{report} eq "income_statement") {
  • print qq|
  • $project
  • <input type=hidden name=nextsub value=generate_income_statement>
  • <tr>
  • <th align=right>|.$locale->text('From').qq|</th>
  • <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
  • <th align=right>|.$locale->text('To').qq|</th>
  • <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
  • </tr>
  • |;
  • if ($selectfrom) {
  • print qq|
  • <tr>
  • <th align=right>|.$locale->text('Period').qq|</th>
  • <td colspan=3>
  • <select name=frommonth>$form->{selectaccountingmonth}</select>
  • <select name=fromyear>$form->{selectaccountingyear}</select>
  • <input name=interval class=radio type=radio value=0 checked>&nbsp;|.$locale->text('Current').qq|
  • <input name=interval class=radio type=radio value=1>&nbsp;|.$locale->text('Month').qq|
  • <input name=interval class=radio type=radio value=3>&nbsp;|.$locale->text('Quarter').qq|
  • <input name=interval class=radio type=radio value=12>&nbsp;|.$locale->text('Year').qq|
  • </td>
  • </tr>
  • |;
  • }
  • print qq|
  • <tr>
  • <th align=right>|.$locale->text('Compare to').qq|</th>
  • </tr>
  • <tr>
  • <th align=right>|.$locale->text('From').qq|</th>
  • <td><input name=comparefromdate size=11 title="$myconfig{dateformat}"></td>
  • <th align=right>|.$locale->text('To').qq|</th>
  • <td><input name=comparetodate size=11 title="$myconfig{dateformat}"></td>
  • </tr>
  • |;
  • if ($selectto) {
  • print qq|
  • <tr>
  • <th align=right>|.$locale->text('Period').qq|</th>
  • <td>
  • <select name=comparemonth>$form->{selectaccountingmonth}</select>
  • <select name=compareyear>$form->{selectaccountingyear}</select>
  • </td>
  • </tr>
  • |;
  • }
  • print qq|
  • <tr>
  • <th align=right>|.$locale->text('Decimalplaces').qq|</th>
  • <td><input name=decimalplaces size=3 value=2></td>
  • </tr>
  • </table>
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <table>
  • <tr>
  • <th align=right>|.$locale->text('Method').qq|</th>
  • <td colspan=3><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
  • &nbsp;<input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
  • </tr>
  • <tr>
  • <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
  • <td colspan=3><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Heading').qq|
  • <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
  • <input name=l_accno class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Account Number').qq|</td>
  • </tr>
  • |;
  • }
  • if ($form->{report} eq "balance_sheet") {
  • print qq|
  • <input type=hidden name=nextsub value=generate_balance_sheet>
  • <tr>
  • <th align=right>|.$locale->text('as at').qq|</th>
  • <td><input name=asofdate size=11 title="$myconfig{dateformat}" value=$form->{asofdate}></td>
  • |;
  • if ($selectfrom) {
  • print qq|
  • <td>
  • <select name=asofmonth>$form->{selectaccountingmonth}</select>
  • <select name=asofyear>$form->{selectaccountingyear}</select>
  • </td>
  • |;
  • }
  • print qq|
  • </tr>
  • <th align=right nowrap>|.$locale->text('Compare to').qq|</th>
  • <td><input name=compareasofdate size=11 title="$myconfig{dateformat}"></td>
  • <td>
  • |;
  • if ($selectto) {
  • print qq|
  • <select name=compareasofmonth>$form->{selectaccountingmonth}</select>
  • <select name=compareasofyear>$form->{selectaccountingyear}</select>
  • </td>
  • |;
  • }
  • print qq|
  • </tr>
  • <tr>
  • <th align=right>|.$locale->text('Decimalplaces').qq|</th>
  • <td><input name=decimalplaces size=3 value=2></td>
  • </tr>
  • </table>
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <table>
  • <tr>
  • <th align=right>|.$locale->text('Method').qq|</th>
  • <td colspan=3><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
  • &nbsp;<input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
  • </tr>
  • <tr>
  • <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
  • <td><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Heading').qq|
  • <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
  • <input name=l_accno class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Account Number').qq|</td>
  • </tr>
  • |;
  • }
  • if ($form->{report} eq "trial_balance") {
  • print qq|
  • <input type=hidden name=nextsub value=generate_trial_balance>
  • <tr>
  • <th align=right>|.$locale->text('From').qq|</th>
  • <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
  • <th align=right>|.$locale->text('To').qq|</th>
  • <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
  • </tr>
  • $selectfrom
  • </table>
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <table>
  • <tr>
  • <th align=right nowrap>|.$locale->text('Include in Report').qq|</th>
  • <td><input name=l_heading class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Heading').qq|
  • <input name=l_subtotal class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('Subtotal').qq|
  • <input name=all_accounts class=checkbox type=checkbox value=Y>&nbsp;|.$locale->text('All Accounts').qq|</td>
  • </tr>
  • |;
  • }
  • if ($form->{report} =~ /^tax_/) {
  • $gifi = "";
  • $form->{db} = ($form->{report} =~ /_collected/) ? "ar" : "ap";
  • RP->get_taxaccounts(\%myconfig, \%$form);
  • print qq|
  • <input type=hidden name=nextsub value=generate_tax_report>
  • <tr>
  • <th align=right>|.$locale->text('From').qq|</th>
  • <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
  • <th align=right>|.$locale->text('To').qq|</th>
  • <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
  • </tr>
  • $selectfrom
  • $summary
  • <tr>
  • <th align=right>|.$locale->text('Report for').qq|</th>
  • <td colspan=3>
  • |;
  • $checked = "checked";
  • foreach $ref (@{ $form->{taxaccounts} }) {
  • print qq|<input name=accno class=radio type=radio value=$ref->{accno} $checked>&nbsp;$ref->{description}
  • <input name="$ref->{accno}_description" type=hidden value="$ref->{description}">
  • <input name="$ref->{accno}_rate" type=hidden value="$ref->{rate}">|;
  • $checked = "";
  • }
  • print qq|
  • <input type=hidden name=db value=$form->{db}>
  • <input type=hidden name=sort value=transdate>
  • </td>
  • </tr>
  • |;
  • if (@{ $form->{gifi_taxaccounts} }) {
  • print qq|
  • <tr>
  • <th align=right>|.$locale->text('GIFI').qq|</th>
  • <td colspan=3>
  • |;
  • foreach $ref (@{ $form->{gifi_taxaccounts} }) {
  • print qq|<input name=accno class=radio type=radio value="gifi_$ref->{accno}">&nbsp;$ref->{description}
  • <input name="gifi_$ref->{accno}_description" type=hidden value="$ref->{description}">
  • <input name="gifi_$ref->{accno}_rate" type=hidden value="$ref->{rate}">|;
  • }
  • print qq|
  • </td>
  • </tr>
  • |;
  • }
  • print qq|
  • <tr>
  • <th align=right>|.$locale->text('Method').qq|</th>
  • <td colspan=3><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
  • &nbsp;<input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
  • </tr>
  • </table>
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <table>
  • <tr>
  • <th align=right>|.$locale->text('Include in Report').qq|</th>
  • <td>
  • <table>
  • <tr>
  • <td><input name="l_id" class=checkbox type=checkbox value=Y></td>
  • <td>|.$locale->text('ID').qq|</td>
  • <td><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
  • <td>|.$locale->text('Invoice').qq|</td>
  • <td><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
  • <td>|.$locale->text('Date').qq|</td>
  • </tr>
  • <tr>
  • <td><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
  • |;
  • if ($form->{db} eq 'ar') {
  • print qq|<td>|.$locale->text('Customer').qq|</td>|;
  • }
  • if ($form->{db} eq 'ap') {
  • print qq|<td>|.$locale->text('Vendor').qq|</td>|;
  • }
  • print qq|
  • <td><input name="l_description" class=checkbox type=checkbox value=Y checked></td>
  • <td>|.$locale->text('Description').qq|</td>
  • <td><input name="l_netamount" class=checkbox type=checkbox value=Y checked></td>
  • <td>|.$locale->text('Amount').qq|</td>
  • <td><input name="l_tax" class=checkbox type=checkbox value=Y checked></td>
  • <td>|.$locale->text('Tax').qq|</td>
  • <td><input name="l_total" class=checkbox type=checkbox value=Y checked></td>
  • <td>|.$locale->text('Total').qq|</td>
  • </tr>
  • <tr>
  • </tr>
  • <tr>
  • <td><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
  • <td>|.$locale->text('Subtotal').qq|</td>
  • </tr>
  • </table>
  • </td>
  • </tr>
  • |;
  • }
  • if ($form->{report} =~ /^nontaxable_/) {
  • $gifi = "";
  • $form->{db} = ($form->{report} =~ /_sales/) ? "ar" : "ap";
  • print qq|
  • <input type=hidden name=nextsub value=generate_tax_report>
  • <input type=hidden name=db value=$form->{db}>
  • <input type=hidden name=sort value=transdate>
  • <input type=hidden name=report value=$form->{report}>
  • <tr>
  • <th align=right>|.$locale->text('From').qq|</th>
  • <td><input name=fromdate size=11 title="$myconfig{dateformat}" value=$form->{fromdate}></td>
  • <th align=right>|.$locale->text('To').qq|</th>
  • <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
  • </tr>
  • $selectfrom
  • $summary
  • <tr>
  • <th align=right>|.$locale->text('Method').qq|</th>
  • <td colspan=3><input name=method class=radio type=radio value=accrual checked>|.$locale->text('Accrual').qq|
  • &nbsp;<input name=method class=radio type=radio value=cash>|.$locale->text('Cash').qq|</td>
  • </tr>
  • <tr>
  • <th align=right>|.$locale->text('Include in Report').qq|</th>
  • <td colspan=3>
  • <table>
  • <tr>
  • <td><input name="l_id" class=checkbox type=checkbox value=Y></td>
  • <td>|.$locale->text('ID').qq|</td>
  • <td><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
  • <td>|.$locale->text('Invoice').qq|</td>
  • <td><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
  • <td>|.$locale->text('Date').qq|</td>
  • </tr>
  • <tr>
  • <td><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
  • |;
  • if ($form->{db} eq 'ar') {
  • print qq|<td>|.$locale->text('Customer').qq|</td>|;
  • }
  • if ($form->{db} eq 'ap') {
  • print qq|<td>|.$locale->text('Vendor').qq|</td>|;
  • }
  • print qq|
  • <td><input name="l_description" class=checkbox type=checkbox value=Y checked></td>
  • <td>|.$locale->text('Description').qq|</td>
  • <td><input name="l_netamount" class=checkbox type=checkbox value=Y checked></td>
  • <td>|.$locale->text('Amount').qq|</td>
  • </tr>
  • <tr>