/doc/users/

ss="hl kwb">$invlabel = $locale->text('Sales Invoices');
  • $ordlabel = $locale->text('Sales Orders');
  • $quolabel = $locale->text('Quotations');
  • }
  • else {
  • $invlabel = $locale->text('Vendor Invoices');
  • $ordlabel = $locale->text('Purchase Orders');
  • $quolabel = $locale->text('Request for Quotations');
  • }
  • $form->{title} = $locale->text($label);
  • $form->{nextsub} = "list_history";
  • $transactions = qq|
  • <tr>
  • <td></td>
  • <td>
  • <table>
  • <tr>
  • <td>
  • <table>
  • <tr>
  • <td><input name=type type=radio class=radio value=invoice checked> $invlabel</td>
  • </tr>
  • <tr>
  • <td><input name=type type=radio class=radio value=order> $ordlabel</td>
  • </tr>
  • <tr>
  • <td><input name="type" type=radio class=radio value=quotation> $quolabel</td>
  • </tr>
  • </table>
  • </td>
  • <td>
  • <table>
  • <tr>
  • <th>| . $locale->text('From') . qq|</th>
  • <td><input name=transdatefrom size=11 title="$myconfig{dateformat}"></td>
  • <th>| . $locale->text('To') . qq|</th>
  • <td><input name=transdateto size=11 title="$myconfig{dateformat}"></td>
  • </tr>
  • <tr>
  • <td></td>
  • <td colspan=3>
  • <input name="open" type=checkbox class=checkbox value=Y checked>&nbsp;|
  • . $locale->text('Open') . qq|
  • <input name="closed" type=checkbox class=checkbox value=Y checked>&nbsp;|
  • . $locale->text('Closed') . qq|
  • </td>
  • </tr>
  • </table>
  • </td>
  • </tr>
  • </table>
  • </td>
  • </tr>
  • |;
  • $include = qq|
  • <tr>
  • <th align=right nowrap>| . $locale->text('Include in Report') . qq|</th>
  • <td>
  • <table>
  • <tr>
  • <td><input name=history type=radio class=radio value=summary checked> |
  • . $locale->text('Summary')
  • . qq|</td>
  • <td><input name=history type=radio class=radio value=detail> |
  • . $locale->text('Detail') . qq|
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <input name="l_partnumber" type=checkbox class=checkbox value=Y checked>&nbsp;|
  • . $locale->text('Part Number') . qq|
  • </td>
  • <td>
  • <input name="l_description" type=checkbox class=checkbox value=Y checked>&nbsp;|
  • . $locale->text('Description') . qq|
  • </td>
  • <td>
  • <input name="l_sellprice" type=checkbox class=checkbox value=Y checked>&nbsp;|
  • . $locale->text('Sell Price') . qq|
  • </td>
  • <td>
  • <input name="l_curr" type=checkbox class=checkbox value=Y>&nbsp;|
  • . $locale->text('Currency') . qq|
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <input name="l_qty" type=checkbox class=checkbox value=Y>&nbsp;|
  • . $locale->text('Qty') . qq|
  • </td>
  • <td>
  • <input name="l_unit" type=checkbox class=checkbox value=Y>&nbsp;|
  • . $locale->text('Unit') . qq|
  • </td>
  • <td>
  • <input name="l_discount" type=checkbox class=checkbox value=Y>&nbsp;|
  • . $locale->text('Discount') . qq|
  • </td>
  • <tr>
  • </tr>
  • <td>
  • <input name="l_deliverydate" type=checkbox class=checkbox value=Y>&nbsp;|
  • . $locale->text('Delivery Date') . qq|
  • </td>
  • <td>
  • <input name="l_projectnumber" type=checkbox class=checkbox value=Y>&nbsp;|
  • . $locale->text('Project Number') . qq|
  • </td>
  • <td>
  • <input name="l_serialnumber" type=checkbox class=checkbox value=Y>&nbsp;|
  • . $locale->text('Serial Number') . qq|
  • </td>
  • </tr>
  • </table>
  • </td>
  • </tr>
  • |;
  • &search_name;
  • if ( $form->{lynx} ) {
  • require "bin/menu.pl";
  • &menubar;
  • }
  • print qq|
  • </body>
  • </html>
  • |;
  • }
  • sub transactions {
  • if ( $form->{db} eq 'customer' ) {
  • $translabel = $locale->text('AR Transactions');
  • $invlabel = $locale->text('Sales Invoices');
  • $ordlabel = $locale->text('Sales Orders');
  • $quolabel = $locale->text('Quotations');
  • }
  • else {
  • $translabel = $locale->text('AP Transactions');
  • $invlabel = $locale->text('Vendor Invoices');
  • $ordlabel = $locale->text('Purchase Orders');
  • $quolabel = $locale->text('Request for Quotations');
  • }
  • $transactions = qq|
  • <tr>
  • <td></td>
  • <td>
  • <table>
  • <tr>
  • <td>
  • <table>
  • <tr>
  • <td><input name="l_transnumber" type=checkbox class=checkbox value=Y> $translabel</td>
  • </tr>
  • <tr>
  • <td><input name="l_invnumber" type=checkbox class=checkbox value=Y> $invlabel</td>
  • </tr>
  • <tr>
  • <td><input name="l_ordnumber" type=checkbox class=checkbox value=Y> $ordlabel</td>
  • </tr>
  • <tr>
  • <td><input name="l_quonumber" type=checkbox class=checkbox value=Y> $quolabel</td>
  • </tr>
  • </table>
  • </td>
  • <td>
  • <table>
  • <tr>
  • <th>| . $locale->text('From') . qq|</th>
  • <td><input name=transdatefrom size=11 title="$myconfig{dateformat}"></td>
  • <th>| . $locale->text('To') . qq|</th>
  • <td><input name=transdateto size=11 title="$myconfig{dateformat}"></td>
  • </tr>
  • <tr>
  • <td></td>
  • <td colspan=3>
  • <input name="open" type=checkbox class=checkbox value=Y checked>&nbsp;|
  • . $locale->text('Open') . qq|
  • <input name="closed" type=checkbox class=checkbox value=Y checked>&nbsp;|
  • . $locale->text('Closed') . qq|
  • </td>
  • </tr>
  • <tr>
  • <td></td>
  • <td colspan=3>
  • <input name="l_amount" type=checkbox class=checkbox value=Y checked>&nbsp;|
  • . $locale->text('Amount') . qq|
  • <input name="l_tax" type=checkbox class=checkbox value=Y checked>&nbsp;|
  • . $locale->text('Tax') . qq|
  • <input name="l_total" type=checkbox class=checkbox value=Y checked>&nbsp;|
  • . $locale->text('Total') . qq|
  • <input name="l_subtotal" type=checkbox class=checkbox value=Y>&nbsp;|
  • . $locale->text('Subtotal') . qq|
  • </td>
  • </tr>
  • </table>
  • </td>
  • </tr>
  • </table>
  • </td>
  • </tr>
  • |;
  • }
  • sub include_in_report {
  • $label = ucfirst $form->{db};
  • @a = ();
  • push @a, qq|<input name="l_ndx" type=checkbox class=checkbox value=Y> |
  • . $locale->text('No.');
  • push @a, qq|<input name="l_id" type=checkbox class=checkbox value=Y> |
  • . $locale->text('ID');
  • push @a,
  • qq|<input name="l_$form->{db}number" type=checkbox class=checkbox value=Y> |
  • . $locale->text( $label . ' Number' );
  • push @a,
  • qq|<input name="l_name" type=checkbox class=checkbox value=Y $form->{l_name}> |
  • . $locale->text('Company Name');
  • push @a,
  • qq|<input name="l_contact" type=checkbox class=checkbox value=Y $form->{l_contact}> |
  • . $locale->text('Contact');
  • push @a,
  • qq|<input name="l_email" type=checkbox class=checkbox value=Y $form->{l_email}> |
  • . $locale->text('E-mail');
  • push @a, qq|<input name="l_address" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Address');
  • push @a, qq|<input name="l_city" type=checkbox class=checkbox value=Y> |
  • . $locale->text('City');
  • push @a, qq|<input name="l_state" type=checkbox class=checkbox value=Y> |
  • . $locale->text('State/Province');
  • push @a, qq|<input name="l_zipcode" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Zip/Postal Code');
  • push @a, qq|<input name="l_country" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Country');
  • push @a,
  • qq|<input name="l_phone" type=checkbox class=checkbox value=Y $form->{l_phone}> |
  • . $locale->text('Phone');
  • push @a, qq|<input name="l_fax" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Fax');
  • push @a, qq|<input name="l_cc" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Cc');
  • if ( $myconfig{role} =~ /(admin|manager)/ ) {
  • push @a, qq|<input name="l_bcc" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Bcc');
  • }
  • push @a, qq|<input name="l_notes" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Notes');
  • push @a, qq|<input name="l_discount" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Discount');
  • push @a,
  • qq|<input name="l_taxaccount" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Tax Account');
  • push @a,
  • qq|<input name="l_taxnumber" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Tax Number');
  • if ( $form->{db} eq 'customer' ) {
  • push @a,
  • qq|<input name="l_employee" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Salesperson');
  • push @a,
  • qq|<input name="l_manager" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Manager');
  • push @a,
  • qq|<input name="l_pricegroup" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Pricegroup');
  • }
  • else {
  • push @a,
  • qq|<input name="l_employee" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Employee');
  • push @a,
  • qq|<input name="l_manager" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Manager');
  • push @a,
  • qq|<input name="l_gifi_accno" type=checkbox class=checkbox value=Y> |
  • . $locale->text('GIFI');
  • }
  • push @a, qq|<input name="l_sic_code" type=checkbox class=checkbox value=Y> |
  • . $locale->text('SIC');
  • push @a, qq|<input name="l_iban" type=checkbox class=checkbox value=Y> |
  • . $locale->text('IBAN');
  • push @a, qq|<input name="l_bic" type=checkbox class=checkbox value=Y> |
  • . $locale->text('BIC');
  • push @a, qq|<input name="l_business" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Type of Business');
  • push @a, qq|<input name="l_terms" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Terms');
  • push @a, qq|<input name="l_language" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Language');
  • push @a,
  • qq|<input name="l_startdate" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Startdate');
  • push @a, qq|<input name="l_enddate" type=checkbox class=checkbox value=Y> |
  • . $locale->text('Enddate');
  • $include = qq|
  • <tr>
  • <th align=right nowrap>| . $locale->text('Include in Report') . qq|</th>
  • <td>
  • <table>
  • |;
  • while (@a) {
  • $include .= qq|<tr>\n|;
  • for ( 1 .. 5 ) {
  • $include .= qq|<td nowrap>| . shift @a;
  • $include .= qq|</td>\n|;
  • }
  • $include .= qq|</tr>\n|;
  • }
  • $include .= qq|
  • </table>
  • </td>
  • </tr>
  • |;
  • }
  • sub search {
  • # $locale->text('Customers')
  • # $locale->text('Vendors')
  • $form->{title} = $locale->text('Search') unless $form->{title};
  • for (qw(name contact phone email)) { $form->{"l_$_"} = 'checked' }
  • $form->{nextsub} = "list_names";
  • $orphan = qq|
  • <tr>
  • <td></td>
  • <td><input name=status class=radio type=radio value=all checked>&nbsp;|
  • . $locale->text('All') . qq|
  • <input name=status class=radio type=radio value=active>&nbsp;|
  • . $locale->text('Active') . qq|
  • <input name=status class=radio type=radio value=inactive>&nbsp;|
  • . $locale->text('Inactive') . qq|
  • <input name=status class=radio type=radio value=orphaned>&nbsp;|
  • . $locale->text('Orphaned')
  • . qq|</td>
  • </tr>
  • |;
  • &transactions;
  • &include_in_report;
  • &search_name;
  • if ( $form->{lynx} ) {
  • require "bin/menu.pl";
  • &menubar;
  • }
  • print qq|
  • </body>
  • </html>
  • |;
  • }
  • sub search_name {
  • $label = ucfirst $form->{db};
  • if ( $form->{db} eq 'customer' ) {
  • $employee = qq|
  • <th align=right nowrap>| . $locale->text('Salesperson') . qq|</th>
  • <td><input name=employee size=32></td>
  • |;
  • }
  • if ( $form->{db} eq 'vendor' ) {
  • $employee = qq|
  • <th align=right nowrap>| . $locale->text('Employee') . qq|</th>
  • <td><input name=employee size=32></td>
  • |;
  • }
  • $form->header;
  • print qq|
  • <body>
  • <form method=post action=$form->{script}>
  • <input type=hidden name=db value=$form->{db}>
  • <table width=100%>
  • <tr>
  • <th class=listtop>$form->{title}</th>
  • </tr>
  • <tr height="5"></tr>
  • <tr valign=top>
  • <td>
  • <table>
  • <tr valign=top>
  • <td>
  • <table>
  • <tr>
  • <th align=right nowrap>| . $locale->text('Company Name') . qq|</th>
  • <td><input name=name size=32></td>
  • </tr>
  • <tr>
  • <th align=right nowrap>| . $locale->text('Contact') . qq|</th>
  • <td><input name=contact size=32></td>
  • </tr>
  • <tr>
  • <th align=right nowrap>| . $locale->text('E-mail') . qq|</th>
  • <td><input name=email size=32></td>
  • </tr>
  • <tr>
  • <th align=right nowrap>| . $locale->text('Phone') . qq|</th>
  • <td><input name=phone size=20></td>
  • </tr>
  • <tr>
  • $employee
  • </tr>
  • <tr>
  • <th align=right nowrap>| . $locale->text('Notes') . qq|</th>
  • <td colspan=3><textarea name=notes rows=3 cols=32></textarea></td>
  • </tr>
  • </table>
  • </td>
  • <td>
  • <table>
  • <tr>
  • <th align=right nowrap>| . $locale->text( $label . ' Number' ) . qq|</th>
  • <td><input name=$form->{db}number size=32></td>
  • </tr>
  • <tr>
  • <th align=right nowrap>| . $locale->text('Address') . qq|</th>
  • <td><input name=address size=32></td>
  • </tr>
  • <tr>
  • <th align=right nowrap>| . $locale->text('City') . qq|</th>
  • <td><input name=city size=32></td>
  • </tr>
  • <tr>
  • <th align=right nowrap>| . $locale->text('State/Province') . qq|</th>
  • <td><input name=state size=32></td>
  • </tr>
  • <tr>
  • <th align=right nowrap>| . $locale->text('Zip/Postal Code') . qq|</th>
  • <td><input name=zipcode size=10></td>
  • </tr>
  • <tr>
  • <th align=right nowrap>| . $locale->text('Country') . qq|</th>
  • <td><input name=country size=32></td>
  • </tr>
  • <tr>
  • <th align=right nowrap>| . $locale->text('Startdate') . qq|</th>
  • <td>|
  • . $locale->text('From')
  • . qq| <input name=startdatefrom size=11 title="$myconfig{dateformat}"> |
  • . $locale->text('To')
  • . qq| <input name=startdateto size=11 title="$myconfig{dateformat}"></td>
  • </tr>
  • </table>
  • </td>
  • </tr>
  • </table>
  • </td>
  • </tr>
  • <tr>
  • <td>
  • <table>
  • $orphan
  • $transactions
  • $include
  • </table>
  • </td>
  • </tr>
  • <tr>
  • <td><hr size=3 noshade></td>
  • </tr>
  • </table>
  • <input type="hidden" name="nextsub" value="$form->{nextsub}">
  • <input type="hidden" name="path" value="$form->{path}">
  • <input type="hidden" name="login" value="$form->{login}">
  • <input type="hidden" name="sessionid" value="$form->{sessionid}">
  • <br>
  • <button type="submit" class="submit" name="action" value="continue">|
  • . $locale->text('Continue')
  • . qq|</button>
  • </form>
  • |;
  • }
  • sub list_names {
  • CT->search( \%myconfig, \%$form );
  • $href =
  • "$form->{script}?action=list_names&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}&l_subtotal=$form->{l_subtotal}";
  • $form->sort_order();
  • $callback =
  • "$form->{script}?action=list_names&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}&l_subtotal=$form->{l_subtotal}";
  • @columns = $form->sort_columns( id, name, "$form->{db}number", address,
  • city, state, zipcode, country,
  • contact, phone, fax, email,
  • cc, bcc, employee, manager,
  • notes, discount, terms, taxaccount,
  • taxnumber, gifi_accno, sic_code, business,
  • pricegroup, language, iban, bic,
  • startdate, enddate, invnumber, invamount,
  • invtax, invtotal, ordnumber, ordamount,
  • ordtax, ordtotal, quonumber, quoamount,
  • quotax, quototal
  • );
  • unshift @columns, "ndx";
  • $form->{l_invnumber} = "Y" if $form->{l_transnumber};
  • foreach $item (qw(inv ord quo)) {
  • if ( $form->{"l_${item}number"} ) {
  • for (qw(amount tax total)) {
  • $form->{"l_$item$_"} = $form->{"l_$_"};
  • }
  • $removeemployee = 1;
  • $openclosed = 1;
  • }
  • }
  • $form->{open} = $form->{closed} = "" if !$openclosed;
  • foreach $item (@columns) {
  • if ( $form->{"l_$item"} eq "Y" ) {
  • push @column_index, $item;
  • # add column to href and callback
  • $callback .= "&l_$item=Y";
  • $href .= "&l_$item=Y";
  • }
  • }
  • foreach $item (qw(amount tax total transnumber)) {
  • if ( $form->{"l_$item"} eq "Y" ) {
  • $callback .= "&l_$item=Y";
  • $href .= "&l_$item=Y";
  • }
  • }
  • if ( $form->{status} eq 'all' ) {
  • $option = $locale->text('All');
  • }
  • if ( $form->{status} eq 'orphaned' ) {
  • $option = $locale->text('Orphaned');
  • }
  • if ( $form->{status} eq 'active' ) {
  • $option = $locale->text('Active');
  • }
  • if ( $form->{status} eq 'inactive' ) {
  • $option = $locale->text('Inactive');
  • }
  • if ( $form->{name} ) {
  • $callback .= "&name=" . $form->escape( $form->{name}, 1 );
  • $href .= "&name=" . $form->escape( $form->{name} );
  • $option .= "\n<br>" . $locale->text('Name') . " : $form->{name}";
  • }
  • if ( $form->{address} ) {
  • $callback .= "&address=" . $form->escape( $form->{address}, 1 );
  • $href .= "&address=" . $form->escape( $form->{address} );
  • $option .= "\n<br>" . $locale->text('Address') . " : $form->{address}";
  • }
  • if ( $form->{city} ) {
  • $callback .= "&city=" . $form->escape( $form->{city}, 1 );
  • $href .= "&city=" . $form->escape( $form->{city} );
  • $option .= "\n<br>" . $locale->text('City') . " : $form->{city}";
  • }
  • if ( $form->{state} ) {
  • $callback .= "&state=" . $form->escape( $form->{state}, 1 );
  • $href .= "&state=" . $form->escape( $form->{state} );
  • $option .= "\n<br>" . $locale->text('State') . " : $form->{state}";
  • }
  • if ( $form->{zipcode} ) {
  • $callback .= "&zipcode=" . $form->escape( $form->{zipcode}, 1 );
  • $href .= "&zipcode=" . $form->escape( $form->{zipcode} );
  • $option .=
  • "\n<br>" . $locale->text('Zip/Postal Code') . " : $form->{zipcode}";
  • }
  • if ( $form->{country} ) {
  • $callback .= "&country=" . $form->escape( $form->{country}, 1 );
  • $href .= "&country=" . $form->escape( $form->{country} );
  • $option .= "\n<br>" . $locale->text('Country') . " : $form->{country}";
  • }
  • if ( $form->{contact} ) {
  • $callback .= "&contact=" . $form->escape( $form->{contact}, 1 );
  • $href .= "&contact=" . $form->escape( $form->{contact} );
  • $option .= "\n<br>" . $locale->text('Contact') . " : $form->{contact}";
  • }
  • if ( $form->{employee} ) {
  • $callback .= "&employee=" . $form->escape( $form->{employee}, 1 );
  • $href .= "&employee=" . $form->escape( $form->{employee} );
  • $option .= "\n<br>";
  • if ( $form->{db} eq 'customer' ) {
  • $option .= $locale->text('Salesperson');
  • }
  • if ( $form->{db} eq 'vendor' ) {
  • $option .= $locale->text('Employee');
  • }
  • $option .= " : $form->{employee}";
  • }
  • $fromdate = "";
  • $todate = "";
  • if ( $form->{startdatefrom} ) {
  • $callback .= "&startdatefrom=$form->{startdatefrom}";
  • $href .= "&startdatefrom=$form->{startdatefrom}";
  • $fromdate = $locale->date( \%myconfig, $form->{startdatefrom}, 1 );
  • }
  • if ( $form->{startdateto} ) {
  • $callback .= "&startdateto=$form->{startdateto}";
  • $href .= "&startdateto=$form->{startdateto}";
  • $todate = $locale->date( \%myconfig, $form->{startdateto}, 1 );
  • }
  • if ( $fromdate || $todate ) {
  • $option .=
  • "\n<br>" . $locale->text('Startdate') . " $fromdate - $todate";
  • }
  • if ( $form->{notes} ) {
  • $callback .= "&notes=" . $form->escape( $form->{notes}, 1 );
  • $href .= "&notes=" . $form->escape( $form->{notes} );
  • $option .= "\n<br>" . $locale->text('Notes') . " : $form->{notes}";
  • }
  • if ( $form->{"$form->{db}number"} ) {
  • $callback .=
  • qq|&$form->{db}number=|
  • . $form->escape( $form->{"$form->{db}number"}, 1 );
  • $href .=
  • "&$form->{db}number=" . $form->escape( $form->{"$form->{db}number"} );
  • $option .= "\n<br>"
  • . $locale->text('Number')
  • . qq| : $form->{"$form->{db}number"}|;
  • }
  • if ( $form->{phone} ) {
  • $callback .= "&phone=" . $form->escape( $form->{phone}, 1 );
  • $href .= "&phone=" . $form->escape( $form->{phone} );
  • $option .= "\n<br>" . $locale->text('Phone') . " : $form->{phone}";
  • }
  • if ( $form->{email} ) {
  • $callback .= "&email=" . $form->escape( $form->{email}, 1 );
  • $href .= "&email=" . $form->escape( $form->{email} );
  • $option .= "\n<br>" . $locale->text('E-mail') . " : $form->{email}";
  • }
  • if ( $form->{transdatefrom} ) {
  • $callback .= "&transdatefrom=$form->{transdatefrom}";
  • $href .= "&transdatefrom=$form->{transdatefrom}";
  • $option .= "\n<br>" if ($option);
  • $option .=
  • $locale->text('From') . "&nbsp;"
  • . $locale->date( \%myconfig, $form->{transdatefrom}, 1 );
  • }
  • if ( $form->{transdateto} ) {
  • $callback .= "&transdateto=$form->{transdateto}";
  • $href .= "&transdateto=$form->{transdateto}";
  • if ( $form->{transdatefrom} ) {
  • $option .= " ";
  • }
  • else {
  • $option .= "\n<br>" if ($option);
  • }
  • $option .=
  • $locale->text('To') . "&nbsp;"
  • . $locale->date( \%myconfig, $form->{transdateto}, 1 );
  • }
  • if ( $form->{open} ) {
  • $callback .= "&open=$form->{open}";
  • $href .= "&open=$form->{open}";
  • $option .= "\n<br>" if ($option);
  • $option .= $locale->text('Open');
  • }
  • if ( $form->{closed} ) {
  • $callback .= "&closed=$form->{closed}";
  • $href .= "&closed=$form->{closed}";
  • $option .= "\n<br>" if ($option);
  • $option .= $locale->text('Closed');
  • }
  • $form->{callback} = "$callback&sort=$form->{sort}";
  • $callback = $form->escape( $form->{callback} );
  • $column_header{ndx} = qq|<th class=listheading>&nbsp;</th>|;
  • $column_header{id} =
  • qq|<th class=listheading>| . $locale->text('ID') . qq|</th>|;
  • $column_header{"$form->{db}number"} =
  • qq|<th><a class=listheading href=$href&sort=$form->{db}number>|
  • . $locale->text('Number')
  • . qq|</a></th>|;
  • $column_header{name} =
  • qq|<th><a class=listheading href=$href&sort=name>|
  • . $locale->text('Name')
  • . qq|</a></th>|;
  • $column_header{address} =
  • qq|<th class=listheading>| . $locale->text('Address') . qq|</th>|;
  • $column_header{city} =
  • qq|<th><a class=listheading href=$href&sort=city>|
  • . $locale->text('City')
  • . qq|</a></th>|;
  • $column_header{state} =
  • qq|<th><a class=listheading href=$href&sort=state>|
  • . $locale->text('State/Province')
  • . qq|</a></th>|;
  • $column_header{zipcode} =
  • qq|<th><a class=listheading href=$href&sort=zipcode>|
  • . $locale->text('Zip/Postal Code')
  • . qq|</a></th>|;
  • $column_header{country} =
  • qq|<th><a class=listheading href=$href&sort=country>|
  • . $locale->text('Country')
  • . qq|</a></th>|;
  • $column_header{contact} =
  • qq|<th><a class=listheading href=$href&sort=contact>|
  • . $locale->text('Contact')
  • . qq|</a></th>|;
  • $column_header{phone} =
  • qq|<th><a class=listheading href=$href&sort=phone>|
  • . $locale->text('Phone')
  • . qq|</a></th>|;
  • $column_header{fax} =
  • qq|<th><a class=listheading href=$href&sort=fax>|
  • . $locale->text('Fax')
  • . qq|</a></th>|;
  • $column_header{email} =
  • qq|<th><a class=listheading href=$href&sort=email>|
  • . $locale->text('E-mail')
  • . qq|</a></th>|;
  • $column_header{cc} =
  • qq|<th><a class=listheading href=$href&sort=cc>|
  • . $locale->text('Cc')
  • . qq|</a></th>|;
  • $column_header{bcc} =
  • qq|<th><a class=listheading href=$href&sort=cc>|
  • . $locale->text('Bcc')
  • . qq|</a></th>|;
  • $column_header{notes} =
  • qq|<th><a class=listheading href=$href&sort=notes>|
  • . $locale->text('Notes')
  • . qq|</a></th>|;
  • $column_header{discount} = qq|<th class=listheading>%</th>|;
  • $column_header{terms} =
  • qq|<th class=listheading>| . $locale->text('Terms') . qq|</th>|;
  • $column_header{taxnumber} =
  • qq|<th><a class=listheading href=$href&sort=taxnumber>|
  • . $locale->text('Tax Number')
  • . qq|</a></th>|;
  • $column_header{taxaccount} =
  • qq|<th class=listheading>| . $locale->text('Tax Account') . qq|</th>|;
  • $column_header{gifi_accno} =
  • qq|<th><a class=listheading href=$href&sort=gifi_accno>|
  • . $locale->text('GIFI')
  • . qq|</a></th>|;
  • $column_header{sic_code} =
  • qq|<th><a class=listheading href=$href&sort=sic_code>|
  • . $locale->text('SIC')
  • . qq|</a></th>|;
  • $column_header{business} =
  • qq|<th><a class=listheading href=$href&sort=business>|
  • . $locale->text('Type of Business')
  • . qq|</a></th>|;
  • $column_header{iban} =
  • qq|<th class=listheading>| . $locale->text('IBAN') . qq|</th>|;
  • $column_header{bic} =
  • qq|<th class=listheading>| . $locale->text('BIC') . qq|</th>|;
  • $column_header{startdate} =
  • qq|<th><a class=listheading href=$href&sort=startdate>|
  • . $locale->text('Startdate')
  • . qq|</a></th>|;
  • $column_header{enddate} =
  • qq|<th><a class=listheading href=$href&sort=enddate>|
  • . $locale->text('Enddate')
  • . qq|</a></th>|;
  • $column_header{invnumber} =
  • qq|<th><a class=listheading href=$href&sort=invnumber>|
  • . $locale->text('Invoice')
  • . qq|</a></th>|;
  • $column_header{ordnumber} =
  • qq|<th><a class=listheading href=$href&sort=ordnumber>|
  • . $locale->text('Order')
  • . qq|</a></th>|;
  • $column_header{quonumber} =
  • qq|<th><a class=listheading href=$href&sort=quonumber>|
  • . $locale->text('Quotation')
  • . qq|</a></th>|;
  • if ( $form->{db} eq 'customer' ) {
  • $column_header{employee} =
  • qq|<th><a class=listheading href=$href&sort=employee>|
  • . $locale->text('Salesperson')
  • . qq|</a></th>|;
  • }
  • else {
  • $column_header{employee} =
  • qq|<th><a class=listheading href=$href&sort=employee>|
  • . $locale->text('Employee')
  • . qq|</a></th>|;
  • }
  • $column_header{manager} =
  • qq|<th><a class=listheading href=$href&sort=manager>|
  • . $locale->text('Manager')
  • . qq|</a></th>|;
  • $column_header{pricegroup} =
  • qq|<th><a class=listheading href=$href&sort=pricegroup>|
  • . $locale->text('Pricegroup')
  • . qq|</a></th>|;
  • $column_header{language} =
  • qq|<th><a class=listheading href=$href&sort=language>|
  • . $locale->text('Language')
  • . qq|</a></th>|;
  • $amount = $locale->text('Amount');
  • $tax = $locale->text('Tax');
  • $total = $locale->text('Total');
  • $column_header{invamount} = qq|<th class=listheading>$amount</th>|;
  • $column_header{ordamount} = qq|<th class=listheading>$amount</th>|;
  • $column_header{quoamount} = qq|<th class=listheading>$amount</th>|;
  • $column_header{invtax} = qq|<th class=listheading>$tax</th>|;
  • $column_header{ordtax} = qq|<th class=listheading>$tax</th>|;
  • $column_header{quotax} = qq|<th class=listheading>$tax</th>|;
  • $column_header{invtotal} = qq|<th class=listheading>$total</th>|;
  • $column_header{ordtotal} = qq|<th class=listheading>$total</th>|;
  • $column_header{quototal} = qq|<th class=listheading>$total</th>|;
  • if ( $form->{status} ) {
  • $label = ucfirst $form->{db} . "s";
  • $form->{title} = $locale->text($label);
  • }
  • else {
  • $label = ucfirst $form->{db};
  • $form->{title} = $locale->text( $label . " Transactions" );
  • }
  • $form->header;
  • print qq|
  • <body>
  • <table width=100%>
  • <tr>
  • <th class=listtop>$form->{title}</th>
  • </tr>
  • <tr height="5"></tr>
  • <tr>
  • <td>$option</td>
  • </tr>
  • <tr>
  • <td>
  • <table width=100%>
  • <tr class=listheading>
  • |;
  • for (@column_index) { print "$column_header{$_}\n" }
  • print qq|
  • </tr>
  • |;
  • $ordertype =
  • ( $form->{db} eq 'customer' ) ? 'sales_order' : 'purchase_order';
  • $quotationtype =
  • ( $form->{db} eq 'customer' ) ? 'sales_quotation' : 'request_quotation';
  • $subtotal = 0;
  • $i = 0;
  • foreach $ref ( @{ $form->{CT} } ) {
  • if ( $ref->{ $form->{sort} } ne $sameitem && $form->{l_subtotal} ) {
  • # print subtotal
  • if ($subtotal) {
  • for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
  • &list_subtotal;
  • }
  • }
  • if ( $ref->{id} eq $sameid ) {
  • for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
  • }
  • else {
  • $i++;
  • $ref->{notes} =~ s/\r?\n/<br>/g;
  • for (@column_index) {
  • $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>";
  • }
  • $column_data{ndx} = "<td align=right>$i</td>";
  • if ( $ref->{ $form->{sort} } eq $sameitem ) {
  • $column_data{ $form->{sort} } = "<td>&nbsp;</td>";
  • }
  • $column_data{address} =
  • "<td>$ref->{address1} $ref->{address2}&nbsp;</td>";
  • $column_data{name} =
  • "<td><a href=$form->{script}?action=edit&id=$ref->{id}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}&callback=$callback>$ref->{name}&nbsp;</td>";
  • $email = "";
  • if ( $form->{sort} =~ /(email|cc)/ ) {
  • if ( $ref->{ $form->{sort} } ne $sameitem ) {
  • $email = 1;
  • }
  • }
  • else {
  • $email = 1;
  • }
  • if ($email) {
  • foreach $item (qw(email cc bcc)) {
  • if ( $ref->{$item} ) {
  • $email = $ref->{$item};
  • $email =~ s/</\&lt;/;
  • $email =~ s/>/\&gt;/;
  • $column_data{$item} =
  • qq|<td><a href="mailto:$ref->{$item}">$email</a></td>|;
  • }
  • }
  • }
  • }
  • if ( $ref->{formtype} eq 'invoice' ) {
  • $column_data{invnumber} =
  • "<td><a href=$ref->{module}.pl?action=edit&id=$ref->{invid}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{invnumber}&nbsp;</td>";
  • $column_data{invamount} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $ref->{netamount}, 2,
  • "&nbsp;" )
  • . "</td>";
  • $column_data{invtax} = "<td align=right>"
  • . $form->format_amount( \%myconfig,
  • $ref->{amount} - $ref->{netamount},
  • 2, "&nbsp;" )
  • . "</td>";
  • $column_data{invtotal} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $ref->{amount}, 2, "&nbsp;" )
  • . "</td>";
  • $invamountsubtotal += $ref->{netamount};
  • $invtaxsubtotal += ( $ref->{amount} - $ref->{netamount} );
  • $invtotalsubtotal += $ref->{amount};
  • $subtotal = 1;
  • }
  • if ( $ref->{formtype} eq 'order' ) {
  • $column_data{ordnumber} =
  • "<td><a href=$ref->{module}.pl?action=edit&id=$ref->{invid}&type=$ordertype&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{ordnumber}&nbsp;</td>";
  • $column_data{ordamount} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $ref->{netamount}, 2,
  • "&nbsp;" )
  • . "</td>";
  • $column_data{ordtax} = "<td align=right>"
  • . $form->format_amount( \%myconfig,
  • $ref->{amount} - $ref->{netamount},
  • 2, "&nbsp;" )
  • . "</td>";
  • $column_data{ordtotal} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $ref->{amount}, 2, "&nbsp;" )
  • . "</td>";
  • $ordamountsubtotal += $ref->{netamount};
  • $ordtaxsubtotal += ( $ref->{amount} - $ref->{netamount} );
  • $ordtotalsubtotal += $ref->{amount};
  • $subtotal = 1;
  • }
  • if ( $ref->{formtype} eq 'quotation' ) {
  • $column_data{quonumber} =
  • "<td><a href=$ref->{module}.pl?action=edit&id=$ref->{invid}&type=$quotationtype&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{quonumber}&nbsp;</td>";
  • $column_data{quoamount} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $ref->{netamount}, 2,
  • "&nbsp;" )
  • . "</td>";
  • $column_data{quotax} = "<td align=right>"
  • . $form->format_amount( \%myconfig,
  • $ref->{amount} - $ref->{netamount},
  • 2, "&nbsp;" )
  • . "</td>";
  • $column_data{quototal} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $ref->{amount}, 2, "&nbsp;" )
  • . "</td>";
  • $quoamountsubtotal += $ref->{netamount};
  • $quotaxsubtotal += ( $ref->{amount} - $ref->{netamount} );
  • $quototalsubtotal += $ref->{amount};
  • $subtotal = 1;
  • }
  • if ( $sameid ne "$ref->{id}" ) {
  • if ( $form->{l_discount} ) {
  • $column_data{discount} = "<td align=right>"
  • . $form->format_amount( \%myconfig, $ref->{discount} * 100,
  • "", "&nbsp;" )
  • . "</td>";
  • }
  • if ( $form->{l_terms} ) {
  • $column_data{terms} = "<td align=right>"
  • . $form->format_amount( \%myconfig, $ref->{terms}, "",
  • "&nbsp;" )
  • . "</td>";
  • }
  • }
  • $j++;
  • $j %= 2;
  • print "
  • <tr class=listrow$j>
  • ";
  • for (@column_index) { print "$column_data{$_}\n" }
  • print qq|
  • </tr>
  • |;
  • $sameitem = "$ref->{$form->{sort}}";
  • $sameid = $ref->{id};
  • }
  • if ( $form->{l_subtotal} && $subtotal ) {
  • for (@column_index) { $column_data{$_} = "<td>&nbsp;</td>" }
  • &list_subtotal;
  • }
  • $i = 1;
  • if ( $myconfig{acs} !~ /AR--AR/ ) {
  • if ( $form->{db} eq 'customer' ) {
  • $button{'AR--Customers--Add Customer'}{code} =
  • qq|<button class="submit" type="submit" name="action" value="add_customer">|
  • . $locale->text('Add Customer')
  • . qq|</button> |;
  • $button{'AR--Customers--Add Customer'}{order} = $i++;
  • }
  • }
  • if ( $myconfig{acs} !~ /AP--AP/ ) {
  • if ( $form->{db} eq 'vendor' ) {
  • $button{'AP--Vendors--Add Vendor'}{code} =
  • qq|<button class="submit" type="submit" name="action" value="add_vendor">|
  • . $locale->text('Add Vendor')
  • . qq|</button> |;
  • $button{'AP--Vendors--Add Vendor'}{order} = $i++;
  • }
  • }
  • foreach $item ( split /;/, $myconfig{acs} ) {
  • delete $button{$item};
  • }
  • print qq|
  • </table>
  • </td>
  • </tr>
  • <tr>
  • <td><hr size=3 noshade></td>
  • </tr>
  • </table>
  • <br>
  • <form method=post action=$form->{script}>
  • |;
  • $form->hide_form(qw(callback db path login sessionid));
  • if ( $form->{status} ) {
  • foreach $item ( sort { $a->{order} <=> $b->{order} } %button ) {
  • print $item->{code};
  • }
  • }
  • if ( $form->{lynx} ) {
  • require "bin/menu.pl";
  • &menubar;
  • }
  • print qq|
  • </form>
  • </body>
  • </html>
  • |;
  • }
  • sub list_subtotal {
  • $column_data{invamount} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $invamountsubtotal, 2, "&nbsp;" )
  • . "</td>";
  • $column_data{invtax} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $invtaxsubtotal, 2, "&nbsp;" )
  • . "</td>";
  • $column_data{invtotal} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $invtotalsubtotal, 2, "&nbsp;" )
  • . "</td>";
  • $invamountsubtotal = 0;
  • $invtaxsubtotal = 0;
  • $invtotalsubtotal = 0;
  • $column_data{ordamount} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $ordamountsubtotal, 2, "&nbsp;" )
  • . "</td>";
  • $column_data{ordtax} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $ordtaxsubtotal, 2, "&nbsp;" )
  • . "</td>";
  • $column_data{ordtotal} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $ordtotalsubtotal, 2, "&nbsp;" )
  • . "</td>";
  • $ordamountsubtotal = 0;
  • $ordtaxsubtotal = 0;
  • $ordtotalsubtotal = 0;
  • $column_data{quoamount} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $quoamountsubtotal, 2, "&nbsp;" )
  • . "</td>";
  • $column_data{quotax} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $quotaxsubtotal, 2, "&nbsp;" )
  • . "</td>";
  • $column_data{quototal} =
  • "<td align=right>"
  • . $form->format_amount( \%myconfig, $quototalsubtotal, 2, "&nbsp;" )
  • . "</td>";
  • $quoamountsubtotal = 0;
  • $quotaxsubtotal = 0;
  • $quototalsubtotal = 0;
  • print "
  • <tr class=listsubtotal>
  • ";
  • for (@column_index) { print "$column_data{$_}\n" }
  • print qq|
  • </tr>
  • |;
  • }
  • sub list_history {
  • CT->get_history( \%myconfig, \%$form );
  • $href =
  • "$form->{script}?action=list_history&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&transdatefrom=$form->{transdatefrom}&transdateto=$form->{transdateto}&history=$form->{history}";
  • $form->sort_order();
  • $callback =
  • "$form->{script}?action=list_history&direction=$form->{direction}&oldsort=$form->{oldsort}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&type=$form->{type}&transdatefrom=$form->{transdatefrom}&transdateto=$form->{transdateto}&history=$form->{history}";
  • $form->{l_fxsellprice} = $form->{l_curr};
  • @columns = $form->sort_columns( partnumber, description, qty, unit,
  • sellprice, fxsellprice, curr, discount,
  • deliverydate, projectnumber, serialnumber
  • );
  • if ( $form->{history} eq 'summary' ) {
  • @columns =
  • $form->sort_columns( partnumber, description, qty, unit, sellprice,
  • curr );
  • }
  • foreach $item (@columns) {
  • if ( $form->{"l_$item"} eq "Y" ) {
  • push @column_index, $item;
  • # add column to href and callback
  • $callback .= "&l_$item=Y";
  • $href .= "&l_$item=Y";
  • }
  • }
  • if ( $form->{history} eq 'detail' ) {
  • $option = $locale->text('Detail');
  • }
  • if ( $form->{history} eq 'summary' ) {
  • $option .= $locale->text('Summary');
  • }
  • if ( $form->{name} ) {
  • $callback .= "&name=" . $form->escape( $form->{name}, 1 );
  • $href .= "&name=" . $form->escape( $form->{name} );
  • $option .= "\n<br>" . $locale->text('Name') . " : $form->{name}";
  • }
  • if ( $form->{contact} ) {
  • $callback .= "&contact=" . $form->escape( $form->{contact}, 1 );
  • $href .= "&contact=" . $form->escape( $form->{contact} );
  • $option .= "\n<br>" . $locale->text('Contact') . " : $form->{contact}";
  • }
  • if ( $form->{"$form->{db}number"} ) {
  • $callback .=
  • qq|&$form->{db}number=|
  • . $form->escape( $form->{"$form->{db}number"}, 1 );
  • $href .=
  • "&$form->{db}number=" . $form->escape( $form->{"$form->{db}number"} );
  • $option .= "\n<br>"
  • . $locale->text('Number')
  • . qq| : $form->{"$form->{db}number"}|;
  • }
  • if ( $form->{email} ) {
  • $callback .= "&email=" . $form->escape( $form->{email}, 1 );
  • $href .= "&email=" . $form->escape( $form->{email} );
  • $option .= "\n<br>" . $locale->text('E-mail') . " : $form->{email}";
  • }
  • if ( $form->{transdatefrom} ) {
  • $callback .= "&transdatefrom=$form->{transdatefrom}";
  • $href .= "&transdatefrom=$form->{transdatefrom}";
  • $option .= "\n<br>" if ($option);
  • $option .=
  • $locale->text('From') . "&nbsp;"
  • . $locale->date( \%myconfig, $form->{transdatefrom}, 1 );
  • }
  • if ( $form->{transdateto} ) {
  • $callback .= "&transdateto=$form->{transdateto}";
  • $href .= "&transdateto=$form->{transdateto}";
  • if ( $form->{transdatefrom} ) {
  • $option .= " ";
  • }
  • else {
  • $option .= "\n<br>" if ($option);
  • }
  • $option .=
  • $locale->text('To') . "&nbsp;"
  • . $locale->date( \%myconfig, $form->{transdateto}, 1 );
  • }
  • if ( $form->{open} ) {
  • $callback .= "&open=$form->{open}";
  • $href .= "&open=$form->{open}";
  • $option .= "\n<br>" if ($option);
  • $option .= $locale->text('Open');
  • }
  • if ( $form->{closed} ) {
  • $callback .= "&closed=$form->{closed}";
  • $href .= "&closed=$form->{closed}";
  • $option .= "\n<br>" if ($option);
  • $option .= $locale->text('Closed');
  • }
  • $form->{callback} = "$callback&sort=$form->{sort}";
  • $callback = $form->escape( $form->{callback} );
  • $column_header{partnumber} =
  • qq|<th><a class=listheading href=$href&sort=partnumber>|
  • . $locale->text('Part Number')
  • . qq|</a></th>|;
  • $column_header{description} =
  • qq|<th><a class=listheading href=$href&sort=description>|
  • . $locale->text('Description')
  • . qq|</a></th>|;
  • if ( $form->{history} eq 'summary' ) {
  • $column_header{sellprice} =
  • qq|<th class=listheading>| . $locale->text('Total') . qq|</th>|;
  • }
  • else {
  • $column_header{sellprice} =
  • qq|<th class=listheading>| . $locale->text('Sell Price') . qq|</th>|;
  • }
  • $column_header{fxsellprice} = qq|<th>&nbsp;</th>|;
  • $column_header{curr} =
  • qq|<th class=listheading>| . $locale->text('Curr') . qq|</th>|;
  • $column_header{discount} =
  • qq|<th class=listheading>| . $locale->text('Discount') . qq|</th>|;
  • $column_header{qty} =
  • qq|<th class=listheading>| . $locale->text('Qty') . qq|</th>|;
  • $column_header{unit} =
  • qq|<th class=listheading>| . $locale->text('Unit') . qq|</th>|;
  • $column_header{deliverydate} =
  • qq|<th><a class=listheading href=$href&sort=deliverydate>|
  • . $locale->text('Delivery Date')
  • . qq|</a></th>|;
  • $column_header{projectnumber} =
  • qq|<th><a class=listheading href=$href&sort=projectnumber>|
  • . $locale->text('Project Number')
  • . qq|</a></th>|;
  • $column_header{serialnumber} =
  • qq|<th><a class=listheading href=$href&sort=serialnumber>|
  • . $locale->text('Serial Number')
  • . qq|</a></th>|;
  • # $locale->text('Customer History')
  • # $locale->text('Vendor History')
  • $label = ucfirst $form->{db};
  • $form->{title} = $locale->text( $label . " History" );
  • $colspan = $#column_index + 1;
  • $form->header;
  • print qq|
  • <body>
  • <table width=100%>
  • <tr>
  • <th class=listtop>$form->{title}</th>
  • </tr>
  • <tr height="5"></tr>
  • <tr>
  • <td>$option</td>
  • </tr>
  • <tr>
  • <td>
  • <table width=100%>
  • <tr class=listheading>
  • |;
  • for (@column_index) { print "$column_header{$_}\n" }
  • print qq|
  • </tr>
  • |;
  • $module = 'oe';
  • if ( $form->{db} eq 'customer' ) {
  • $invlabel = $locale->text('Sales Invoice');
  • $ordlabel = $locale->text('Sales Order');
  • $quolabel = $locale->text('Quotation');
  • $ordertype = 'sales_order';
  • $quotationtype = 'sales_quotation';
  • if ( $form->{type} eq 'invoice' ) {
  • $module = 'is';
  • }
  • }
  • else {
  • $invlabel = $locale->text('Vendor Invoice');
  • $ordlabel = $locale->text('Purchase Order');
  • $quolabel = $locale->text('RFQ');
  • $ordertype = 'purchase_order';
  • $quotationtype = 'request_quotation';
  • if ( $form->{type} eq 'invoice' ) {
  • $module = 'ir';
  • }
  • }
  • $ml = ( $form->{db} eq 'vendor' ) ? -1 : 1;
  • foreach $ref ( @{ $form->{CT} } ) {
  • if ( $ref->{id} ne $sameid ) {
  • # print the header
  • print qq|
  • <tr class=listheading>
  • <th colspan=$colspan><a class=listheading href=$form->{script}?action=edit&id=$ref->{ctid}&db=$form->{db}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{name} $ref->{address}</a></th>
  • </tr>
  • |;
  • }
  • if ( $form->{type} ne 'invoice' ) {
  • $ref->{fxsellprice} = $ref->{sellprice};
  • $ref->{sellprice} *= $ref->{exchangerate};
  • }
  • if ( $form->{history} eq 'detail' and $ref->{invid} ne $sameinvid ) {
  • # print inv, ord, quo number
  • $i++;
  • $i %= 2;
  • print qq|
  • <tr class=listrow$i>
  • |;
  • if ( $form->{type} eq 'invoice' ) {
  • print
  • qq|<th align=left colspan=$colspan><a href=${module}.pl?action=edit&id=$ref->{invid}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$invlabel $ref->{invnumber} / $ref->{employee}</a></th>|;
  • }
  • if ( $form->{type} eq 'order' ) {
  • print
  • qq|<th align=left colspan=$colspan><a href=${module}.pl?action=edit&id=$ref->{invid}&type=$ordertype&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ordlabel $ref->{ordnumber} / $ref->{employee}</a></th>|;
  • }
  • if ( $form->{type} eq 'quotation' ) {
  • print
  • qq|<th align=left colspan=$colspan><a href=${module}.pl?action=edit&id=$ref->{invid}&type=$quotationtype&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$quolabel $ref->{quonumber} / $ref->{employee}</a></th>|;
  • }
  • print qq|
  • </tr>
  • |;
  • }
  • for (@column_index) { $column_data{$_} = "<td>$ref->{$_}&nbsp;</td>" }
  • if ( $form->{l_curr} ) {
  • $column_data{fxsellprice} =
  • qq|<td align=right>|
  • . $form->format_amount( \%myconfig, $ref->{fxsellprice}, 2 )
  • . "</td>";
  • }
  • $column_data{sellprice} =
  • qq|<td align=right>|
  • . $form->format_amount( \%myconfig, $ref->{sellprice}, 2 ) . "</td>";
  • $column_data{qty} =
  • qq|<td align=right>|
  • . $form->format_amount( \%myconfig, $ref->{qty} * $ml ) . "</td>";
  • $column_data{discount} = qq|<td align=right>|
  • . $form->format_amount( \%myconfig, $ref->{discount} * 100,
  • "", "&nbsp;" )
  • . "</td>";
  • $column_data{partnumber} =
  • qq|<td><a href=ic.pl?action=edit&id=$ref->{pid}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partnumber}</td>|;
  • $i++;
  • $i %= 2;
  • print qq|
  • <tr class=listrow$i>
  • |;
  • for (@column_index) { print "$column_data{$_}\n" }
  • print qq|
  • </tr>
  • |;
  • $sameid = $ref->{id};
  • $sameinvid = $ref->{invid};
  • }
  • print qq|
  • </table>
  • </td>
  • </tr>
  • <tr>
  • <td><hr size=3 noshade></td>
  • </tr>
  • </table>
  • |;
  • if ( $form->{lynx} ) {
  • require "bin/menu.pl";
  • &menubar;
  • }
  • print qq|
  • </form>
  • </body>
  • </html>
  • |;
  • }
  • sub edit {
  • # $locale->text('Edit Customer')
  • # $locale->text('Edit Vendor')
  • CT->create_links( \%myconfig, \%$form );
  • for ( keys %$form ) { $form->{$_} = $form->quote( $form->{$_} ) }
  • $form->{title} = "Edit";
  • # format discount
  • $form->{discount} *= 100;
  • &form_header;
  • &form_footer;
  • }
  • sub form_header {
  • $form->{taxincluded} = ( $form->{taxincluded} ) ? "checked" : "";
  • $form->{creditlimit} =
  • $form->format_amount( \%myconfig, $form->{creditlimit}, 0 );
  • $form->{discount} =
  • $form->format_amount( \%myconfig, $form->{discount}, "" );
  • $form->{terms} = $form->format_amount( \%myconfig, $form->{terms}, "" );
  • if ( $myconfig{role} =~ /(admin|manager)/ ) {
  • $bcc = qq|
  • <tr>
  • <th align=right nowrap>| . $locale->text('Bcc') . qq|</th>
  • <td><input name=bcc size=35 value="$form->{bcc}"></td>
  • </tr>
  • |;
  • }
  • if ( $form->{currencies} ) {
  • # currencies
  • for ( split /:/, $form->{currencies} ) {
  • $form->{selectcurrency} .= "<option>$_\n";
  • }
  • $form->{selectcurrency} =~ s/option>($form->{curr})/option selected>$1/;
  • $currency = qq|
  • <th>| . $locale->text('Currency') . qq|</th>
  • <td><select name=curr>$form->{selectcurrency}</select></td>
  • |;
  • }
  • foreach $item ( split / /, $form->{taxaccounts} ) {
  • if ( $form->{tax}{$item}{taxable} ) {
  • $taxable .=
  • qq| <input name="tax_$item" value=1 class=checkbox type=checkbox checked>&nbsp;<b>$form->{tax}{$item}{description}</b>|;
  • }
  • else {
  • $taxable .=
  • qq| <input name="tax_$item" value=1 class=checkbox type=checkbox>&nbsp;<b>$form->{tax}{$item}{description}</b>|;
  • }
  • }
  • if ($taxable) {
  • $tax = qq|
  • <tr>
  • <th align=right>| . $locale->text('Taxable') . qq|</th>
  • <td colspan=5>
  • <table>
  • <tr>
  • <td>$taxable</td>
  • <td><input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td>
  • <th align=left>| . $locale->text('Tax Included') . qq|</th>
  • </tr>
  • </table>
  • </td>
  • </tr>
  • |;
  • }
  • $typeofbusiness = qq|
  • <th></th>
  • <td></td>
  • |;
  • if ( @{ $form->{all_business} } ) {
  • $form->{selectbusiness} = qq|<option>\n|;
  • for ( @{ $form->{all_business} } ) {
  • $form->{selectbusiness} .=
  • qq|<option value="$_->{description}--$_->{id}">$_->{description}\n|;
  • }
  • $form->{selectbusiness} =~
  • s/(<option value="\Q$form->{business}--$form->{business_id}\E")>/$1 selected>/;
  • $typeofbusiness = qq|
  • <th align=right>| . $locale->text('Type of Business') . qq|</th>
  • <td><select name=business>$form->{selectbusiness}</select></td>
  • |;
  • }
  • $pricegroup = qq|
  • <th></th>
  • <td></td>
  • |;
  • if ( @{ $form->{all_pricegroup} } && $form->{db} eq 'customer' ) {
  • $form->{selectpricegroup} = qq|<option>\n|;
  • for ( @{ $form->{all_pricegroup} } ) {
  • $form->{selectpricegroup} .=
  • qq|<option value="$_->{pricegroup}--$_->{id}">$_->{pricegroup}\n|;
  • }
  • $form->{selectpricegroup} =~
  • s/(<option value="\Q$form->{pricegroup}--$form->{pricegroup_id}\E")/$1 selected/;
  • $pricegroup = qq|
  • <th align=right>| . $locale->text('Pricegroup') . qq|</th>
  • <td><select name=pricegroup>$form->{selectpricegroup}</select></td>
  • |;
  • }
  • $lang = qq|
  • <th></th>
  • <td></td>
  • |;
  • if ( @{ $form->{all_language} } ) {
  • $form->{selectlanguage} = qq|<option>\n|;
  • for ( @{ $form->{all_language} } ) {
  • $form->{selectlanguage} .=