my $query =
qq|SELECT a.id, a.invnumber, a.transdate, a.amount, a.paid, a.curr | .
- qq|FROM $arap a | .
+ qq|FROM $arap a | .
qq|WHERE (a.${vc}_id = ?) AND (a.curr = ? $curr_null) AND NOT (a.amount = paid)| .
- qq|ORDER BY a.id|;
+ qq|ORDER BY a.id|;
my $sth = prepare_execute_query($form, $dbh, $query,
conv_i($form->{"${vc}_id"}),
$form->{currency});
qq|INSERT INTO acc_trans (trans_id, chart_id, transdate, amount, | .
qq| cleared, fx_transaction) | .
qq|VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?, ?, ?)|;
- @values = (conv_i($form->{"id_$i"}), $paymentaccno,
+ @values = (conv_i($form->{"id_$i"}), $paymentaccno,
conv_date($form->{datepaid}), ($amount * $ml * -1), '0',
'1');
do_query($form, $dbh, $query, @values);
# update AR/AP transaction
$query = qq|UPDATE $arap SET $paid, datepaid = ? WHERE id = ?|;
- @values = (conv_date($form->{datepaid}), conv_i($form->{"id_$i"}));
+ @values = (conv_date($form->{datepaid}), conv_i($form->{"id_$i"}));
do_query($form, $dbh, $query, @values);
# saving the history
$form->{id} = $form->{"id_$i"};
return ($date_fields, $number_fields);
}
-=head2 VALIDITY
-
-Suppose the following scenario:
-
-You have a lot of parts in your database, and a set of properties cofigured. Now not every part has every of these properties, some combinations will just make no sense. In order to clean up your inputs a bit, you want to mark certain combinations as invalid, blocking them from modification and possibly display.
-
-Validity is assumed. If you modify validity, you actually save B<invalidity>.
-iNvalidity is saved as a function of config_id, and the trans_id
-
-In the naive way, disable an attribute for a specific id (simple)
-
-=cut
sub save_custom_variables_validity {
$main::lxdebug->enter_sub();
}
1;
+
+__END__
+
+=head1 NAME
+
+SL::CVar.pm - Custom Variables module
+
+=head1 SYNOPSIS
+
+ # dealing with configs
+
+ my $all_configs = CVar->get_configs()
+ my $config = CVar->get_config(id => '1234')
+
+ CVar->save_config($config);
+ CVar->delete->config($config)
+
+ # dealing with custom vars
+
+ CVar->get_custom_variables(module => 'ic')
+
+=head2 VALIDITY
+
+Suppose the following scenario:
+
+You have a lot of parts in your database, and a set of properties cofigured. Now not every part has every of these properties, some combinations will just make no sense. In order to clean up your inputs a bit, you want to mark certain combinations as invalid, blocking them from modification and possibly display.
+
+Validity is assumed. If you modify validity, you actually save B<invalidity>.
+Invalidity is saved as a function of config_id, and the trans_id
+
+In the naive way, disable an attribute for a specific id (simple)
+
+=cut
=back
-=head1 SEE ALSO
-
=head1 MODULE AUTHORS
Moritz Bunkus E<lt>m.bunkus@linet-services.deE<gt>
}
}
-=item _store_value()
-
-parses a complex var name, and stores it in the form.
-
-syntax:
- $form->_store_value($key, $value);
-
-keys must start with a string, and can contain various tokens.
-supported key structures are:
-
-1. simple access
- simple key strings work as expected
-
- id => $form->{id}
-
-2. hash access.
- separating two keys by a dot (.) will result in a hash lookup for the inner value
- this is similar to the behaviour of java and templating mechanisms.
-
- filter.description => $form->{filter}->{description}
-
-3. array+hashref access
-
- adding brackets ([]) before the dot will cause the next hash to be put into an array.
- using [+] instead of [] will force a new array index. this is useful for recurring
- data structures like part lists. put a [+] into the first varname, and use [] on the
- following ones.
-
- repeating these names in your template:
-
- invoice.items[+].id
- invoice.items[].parts_id
-
- will result in:
-
- $form->{invoice}->{items}->[
- {
- id => ...
- parts_id => ...
- },
- {
- id => ...
- parts_id => ...
- }
- ...
- ]
-
-4. arrays
-
- using brackets at the end of a name will result in a pure array to be created.
- note that you mustn't use [+], which is reserved for array+hash access and will
- result in undefined behaviour in array context.
-
- filter.status[] => $form->{status}->[ val1, val2, ... ]
-
-=cut
sub _store_value {
$main::lxdebug->enter_sub(2);
$jsscript = qq|
<script type="text/javascript" src="js/jquery.js"></script>
+ <script type='text/javascript' src='js/jquery.autocomplete.js'>
<script type="text/javascript" src="js/common.js"></script>
<style type="text/css">\@import url(js/jscalendar/calendar-win2k-1.css);</style>
<script type="text/javascript" src="js/jscalendar/calendar.js"></script>
$fokus
+ <link rel="stylesheet" href="css/jquery.autocomplete.css" type="text/css" />
+
<meta name="robots" content="noindex,nofollow" />
<script type="text/javascript" src="js/highlight_input.js"></script>
return $var;
}
-=item update_business
-
-PARAMS (not named):
- \%config, - config hashref
- $business_id, - business id
- $dbh - optional database handle
-
-handles business (thats customer/vendor types) sequences.
-
-special behaviour for empty strings in customerinitnumber field:
-will in this case not increase the value, and return undef.
-
-=cut
sub update_business {
$main::lxdebug->enter_sub();
}
1;
+
+__END__
+
+=head1 NAME
+
+SL::Form.pm - main data object.
+
+=head1 SYNOPSIS
+
+This is the main data object of Lx-Office.
+Unfortunately it also acts as a god object for certain data retrieval procedures used in the entry points.
+Points of interest for a beginner are:
+
+ - $form->error - renders a generic error in html. accepts an error message
+ - $form->get_standard_dbh - returns a database connection for the
+
+=head1 SPECIAL FUNCTIONS
+
+=over 4
+
+=item _store_value()
+
+parses a complex var name, and stores it in the form.
+
+syntax:
+ $form->_store_value($key, $value);
+
+keys must start with a string, and can contain various tokens.
+supported key structures are:
+
+1. simple access
+ simple key strings work as expected
+
+ id => $form->{id}
+
+2. hash access.
+ separating two keys by a dot (.) will result in a hash lookup for the inner value
+ this is similar to the behaviour of java and templating mechanisms.
+
+ filter.description => $form->{filter}->{description}
+
+3. array+hashref access
+
+ adding brackets ([]) before the dot will cause the next hash to be put into an array.
+ using [+] instead of [] will force a new array index. this is useful for recurring
+ data structures like part lists. put a [+] into the first varname, and use [] on the
+ following ones.
+
+ repeating these names in your template:
+
+ invoice.items[+].id
+ invoice.items[].parts_id
+
+ will result in:
+
+ $form->{invoice}->{items}->[
+ {
+ id => ...
+ parts_id => ...
+ },
+ {
+ id => ...
+ parts_id => ...
+ }
+ ...
+ ]
+
+4. arrays
+
+ using brackets at the end of a name will result in a pure array to be created.
+ note that you mustn't use [+], which is reserved for array+hash access and will
+ result in undefined behaviour in array context.
+
+ filter.status[] => $form->{status}->[ val1, val2, ... ]
+
+=item update_business PARAMS
+
+PARAMS (not named):
+ \%config, - config hashref
+ $business_id, - business id
+ $dbh - optional database handle
+
+handles business (thats customer/vendor types) sequences.
+
+special behaviour for empty strings in customerinitnumber field:
+will in this case not increase the value, and return undef.
+
+=back
+
+=cut
if (($form->{"make_$i"}) || ($form->{"model_$i"})) {
$query = qq|INSERT INTO makemodel (parts_id, make, model) | .
- qq|VALUES (?, ?, ?)|;
- @values = (conv_i($form->{id}), conv_i($form->{"make_$i"}), $form->{"model_$i"});
+ qq|VALUES (?, ?, ?)|;
+ @values = (conv_i($form->{id}), conv_i($form->{"make_$i"}), $form->{"model_$i"});
do_query($form, $dbh, $query, @values);
}
$query =
qq|INSERT INTO partstax (parts_id, chart_id)
VALUES (?, (SELECT id FROM chart WHERE accno = ?))|;
- @values = (conv_i($form->{id}), $item);
+ @values = (conv_i($form->{id}), $item);
do_query($form, $dbh, $query, @values);
}
}
if ($form->{"qty_$i"} != 0) {
$form->{"bom_$i"} *= 1;
$query = qq|INSERT INTO assembly (id, parts_id, qty, bom) | .
- qq|VALUES (?, ?, ?, ?)|;
- @values = (conv_i($form->{id}), conv_i($form->{"id_$i"}), conv_i($form->{"qty_$i"}), $form->{"bom_$i"} ? 't' : 'f');
+ qq|VALUES (?, ?, ?, ?)|;
+ @values = (conv_i($form->{id}), conv_i($form->{"id_$i"}), conv_i($form->{"qty_$i"}), $form->{"bom_$i"} ? 't' : 'f');
do_query($form, $dbh, $query, @values);
}
}
#my $order_clause = " ORDER BY $form->{sort} $sort_order";
- my $limit_clause = " LIMIT 100" if $form->{top100};
+ my $limit_clause;
+ $limit_clause = " LIMIT 100" if $form->{top100};
+ $limit_clause = " LIMIT " . $form->{limit} * 1 if $form->{limit} * 1;
#=== joins and complicated filters ========#
}
$main::lxdebug->leave_sub();
+
+ return wantarray ? @{ $form->{parts} } : $form->{parts};
}
sub _create_filter_for_priceupdate {
my $query =
qq|SELECT
v.id AS vendor_id, v.name AS vendor, v.discount as vendor_discount,
- v.creditlimit, v.terms, v.notes AS intnotes,
+ v.creditlimit, v.terms, v.notes AS intnotes,
v.email, v.cc, v.bcc, v.language_id, v.payment_id,
v.street, v.zipcode, v.city, v.country, v.taxzone_id,
$duedate + COALESCE(pt.terms_netto, 0) AS duedate,
#Es soll auch nach EAN gesucht werden, ohne Einschränkung durch Beschreibung
if ($form->{"partnumber_$i"} && !$form->{"description_$i"}) {
- $where .= qq| OR (NOT p.obsolete = '1' AND p.ean = ? )|;
- push @values, $form->{"partnumber_$i"};
+ $where .= qq| OR (NOT p.obsolete = '1' AND p.ean = ? )|;
+ push @values, $form->{"partnumber_$i"};
}
if ($form->{"description_$i"}) {
if (exists $self->{subs}{$text_rev}) {
$text = $self->{subs}{$text_rev};
} elsif ($self->{countrycode} && $self->{NLS_file}) {
- Form->error("$text not defined in locale/$self->{countrycode}/$self->{NLS_file}");
+ $main::form->error("$text not defined in locale/$self->{countrycode}/$self->{NLS_file}");
}
$main::lxdebug->leave_sub();
return 0;
}
-=item cross BLOCK ARRAY ARRAY
-
-Evaluates BLOCK for each combination of elements in ARRAY1 and ARRAY2
-and returns a new list consisting of BLOCK's return values.
-The two elements are set to $a and $b.
-Note that those two are aliases to the original value so changing them
-will modify the input arrays.
-
- # append each to each
- @a = qw/a b c/;
- @b = qw/1 2 3/;
- @x = cross { "$a$b" } @a, @b;
- # returns a1, a2, a3, b1, b2, b3, c1, c2, c3
-
-As cross expects an array but returns a list it is not directly chainable
-at the moment. This will be corrected in the future.
-
-=cut
sub cross(&\@\@) {
my $op = shift;
use vars qw/@A @B/;
}
1;
+
+__END__
+
+=head1 NAME
+
+SL::MoreCommon.pm - helper functions
+
+=head1 DESCRIPTION
+
+this is a collection of helper functions used in Lx-Office.
+Most of them are either obvious or too obscure to care about unless you really have to.
+The exceptions are documented here.
+
+=head2 FUNCTIONS
+
+=over 4
+
+=item save_form
+=item restore_form
+
+A lot of the old sql-ledger routines are strictly procedural. They search for params in the $form object, do stuff with it, and return a status code.
+
+Once in a while you'll want something from such a function without altering $form. Yeah, you could rewrite the routine from scratch... not. Just save you form, execute the routine, grab your results, and restore the previous form while you curse at the original design.
+
+=item cross BLOCK ARRAY ARRAY
+
+Evaluates BLOCK for each combination of elements in ARRAY1 and ARRAY2
+and returns a new list consisting of BLOCK's return values.
+The two elements are set to $a and $b.
+Note that those two are aliases to the original value so changing them
+will modify the input arrays.
+
+ # append each to each
+ @a = qw/a b c/;
+ @b = qw/1 2 3/;
+ @x = cross { "$a$b" } @a, @b;
+ # returns a1, a2, a3, b1, b2, b3, c1, c2, c3
+
+As cross expects an array but returns a list it is not directly chainable
+at the moment. This will be corrected in the future.
+
+=back
+
+=cut
use strict;
-=head1 NAME
-
-OE.pm - Order entry module
-
-=head1 DESCRIPTION
-
-OE.pm is part of the OE module. OE is responsible for sales and purchase orders, as well as sales quotations and purchase requests. This file abstracts the database tables C<oe> and C<orderitems>.
-
-=head1 FUNCTIONS
-
-=over 4
-
-=cut
-
sub transactions {
$main::lxdebug->enter_sub();
return $rc;
}
-=item retrieve_simple PARAMS
-
-simple OE retrieval by id. does not look up customer, vendor, units or any other stuff. only oe and orderitems.
-
- my $order = retrieve_simple(id => 2);
-
- $order => {
- %_OE_CONTENT,
- orderitems => [
- %_ORDERITEM_ROW_1,
- %_ORDERITEM_ROW_2,
- ...
- ]
- }
-
-=cut
sub retrieve_simple {
$main::lxdebug->enter_sub();
}
$query = qq|SELECT p.partnumber, p.description, p.unit, a.qty, | .
- qq|pg.partsgroup | .
- qq|FROM assembly a | .
- qq| JOIN parts p ON (a.parts_id = p.id) | .
- qq| LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id) | .
- qq| WHERE a.bom = '1' | .
- qq| AND a.id = ? | . $sortorder;
- @values = ($form->{"id_$i"});
+ qq|pg.partsgroup | .
+ qq|FROM assembly a | .
+ qq| JOIN parts p ON (a.parts_id = p.id) | .
+ qq| LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id) | .
+ qq| WHERE a.bom = '1' | .
+ qq| AND a.id = ? | . $sortorder;
+ @values = ($form->{"id_$i"});
$sth = $dbh->prepare($query);
$sth->execute(@values) || $form->dberror($query);
}
1;
+
+__END__
+
+=head1 NAME
+
+OE.pm - Order entry module
+
+=head1 DESCRIPTION
+
+OE.pm is part of the OE module. OE is responsible for sales and purchase orders, as well as sales quotations and purchase requests. This file abstracts the database tables C<oe> and C<orderitems>.
+
+=head1 FUNCTIONS
+
+=over 4
+
+=item retrieve_simple PARAMS
+
+simple OE retrieval by id. does not look up customer, vendor, units or any other stuff. only oe and orderitems.
+
+ my $order = retrieve_simple(id => 2);
+
+ $order => {
+ %_OE_CONTENT,
+ orderitems => [
+ %_ORDERITEM_ROW_1,
+ %_ORDERITEM_ROW_2,
+ ...
+ ]
+ }
+
+=back
+
+=cut
if ($form->{id}) {
$query = qq|UPDATE partsgroup SET partsgroup = ? WHERE id = ?|;
- push(@values, $form->{id});
+ push(@values, $form->{id});
} else {
$query = qq|INSERT INTO partsgroup (partsgroup) VALUES (?)|;
}
if ($form->{id}) {
$query = qq|UPDATE pricegroup SET pricegroup = ? WHERE id = ? |;
- push(@values, $form->{id});
+ push(@values, $form->{id});
} else {
$query = qq|INSERT INTO pricegroup (pricegroup) VALUES (?)|;
}
}
if ($form->{project_id}) {
- # Diese Bedingung wird derzeit niemals wahr sein, da man in Bericht->Bilanz keine
- # Projekte auswählen kann
+ # Diese Bedingung wird derzeit niemals wahr sein, da man in Bericht->Bilanz keine
+ # Projekte auswählen kann
$project = qq| AND (ac.project_id = | . conv_i($form->{project_id}, 'NULL') . qq|) |;
}
GROUP BY c.accno, c.description, c.category |;
if ($form->{project_id}) {
- # s.o. keine Projektauswahl in Bilanz
+ # s.o. keine Projektauswahl in Bilanz
$query .=
qq|
UNION ALL
}
} else { # if ($form->{method} eq 'cash')
- # ich sehe keinen sinn das nochmal explizit ohne conv_i aufzurufen
- # bitte prüfen und löschen jan 15.11.2009
+ # ich sehe keinen sinn das nochmal explizit ohne conv_i aufzurufen
+ # bitte prüfen und löschen jan 15.11.2009
# if ($department_id) {
# $dpt_join = qq| JOIN dpt_trans t ON (t.trans_id = ac.trans_id) |;
# $dpt_where = qq| AND t.department_id = $department_id |;
GROUP BY c.accno, c.description, c.category |;
if ($form->{project_id}) {
- # s.o. keine Projektauswahl in Bilanz
+ # s.o. keine Projektauswahl in Bilanz
$query .= qq|
UNION ALL
}
} else { # if ($form->{method} eq 'cash')
- # s.o. jan 15.11.2009
- # if ($department_id) {
- # ($dpt_join, $dpt_where) = sql_department($department_id);
- # }
+ # s.o. jan 15.11.2009
+# if ($department_id) {
+# ($dpt_join, $dpt_where) = sql_department($department_id);
+# }
$query = qq|
SELECT sum(ac.amount * chart_category_to_sgn(c.category)) AS amount, c.$category
&get_accounts_g($dbh, $last_period, $form->{fromdate}, $form->{todate}, $form, "pos_ustva");
# foreach $item (@categories_cent) {
- # if ($form->{$item}{"jetzt"} > 0) {
- # $form->{$item} = $form->{$item}{"jetzt"};
- # delete $form->{$item}{"jetzt"};
- # }
+ # if ($form->{$item}{"jetzt"} > 0) {
+ # $form->{$item} = $form->{$item}{"jetzt"};
+ # delete $form->{$item}{"jetzt"};
+ # }
# }
# foreach $item (@categories_euro) {
- # if ($form->{$item}{"jetzt"} > 0) {
- # $form->{$item} = $form->{$item}{"jetzt"};
- # delete $form->{$item}{"jetzt"};
- # } foreach $item (@categories_cent) {
- # if ($form->{$item}{"jetzt"} > 0) {
- # $form->{$item} = $form->{$item}{"jetzt"};
- # delete $form->{$item}{"jetzt"};
- # }
+ # if ($form->{$item}{"jetzt"} > 0) {
+ # $form->{$item} = $form->{$item}{"jetzt"};
+ # delete $form->{$item}{"jetzt"};
+ # } foreach $item (@categories_cent) {
+ # if ($form->{$item}{"jetzt"} > 0) {
+ # $form->{$item} = $form->{$item}{"jetzt"};
+ # delete $form->{$item}{"jetzt"};
+ # }
# }
# foreach $item (@categories_euro) {
- # if ($form->{$item}{"jetzt"} > 0) {
- # $form->{$item} = $form->{$item}{"jetzt"};
- # delete $form->{$item}{"jetzt"};
- # }
+ # if ($form->{$item}{"jetzt"} > 0) {
+ # $form->{$item} = $form->{$item}{"jetzt"};
+ # delete $form->{$item}{"jetzt"};
+ # }
# }
#
# }
=head1 DESCRIPTION
-=over 4
-
Transitive RecordLinks mit get_links_via.
get_links_via erwartet den zusätzlichen parameter via. via ist ein
oe:11 -> ar:13 -> do:14
-=back
-
=cut
# update counters and flags
@$self{ qw( INDEX COUNT FIRST LAST ) } = ( $max, $max + 1, 0, 1 );
$main::lxdebug->leave_sub();
- return \@data; ## RETURN ##
+ return \@data; ## RETURN ##
}
else {
$main::lxdebug->leave_sub();
my @vars = (
'FA_Land_Nr', # 0
'FA_BUFA_Nr', # 1
- #'FA_Verteiler', # 2
+ #'FA_Verteiler', # 2
'FA_Name', # 3
'FA_Strasse', # 4
'FA_PLZ', # 5
'FA_BLZ_1', # 12
'FA_Kontonummer_1', # 13
'FA_Bankbezeichnung_1', # 14
- #'FA_BankIBAN_1', # 15
- #'FA_BankBIC_1', # 16
- #'FA_BankInhaber_BUFA_Nr_1', # 17
+ #'FA_BankIBAN_1', # 15
+ #'FA_BankBIC_1', # 16
+ #'FA_BankInhaber_BUFA_Nr_1', # 17
'FA_BLZ_2', # 18
'FA_Kontonummer_2', # 19
'FA_Bankbezeichnung_2', # 20
- #'FA_BankIBAN_2', # 21
- #'FA_BankBIC_2', # 22
- #'FA_BankInhaber_BUFA_Nr_2', # 23
+ #'FA_BankIBAN_2', # 21
+ #'FA_BankBIC_2', # 22
+ #'FA_BankInhaber_BUFA_Nr_2', # 23
'FA_Oeffnungszeiten', # 24
'FA_Email', # 25
'FA_Internet' # 26
- #'FA_zustaendige_Hauptstelle_BUFA_Nr', # 27
- #'FA_zustaendige_vorgesetzte_Finanzbehoerde' # 28
+ #'FA_zustaendige_Hauptstelle_BUFA_Nr', # 27
+ #'FA_zustaendige_vorgesetzte_Finanzbehoerde' # 28
);
my $field = join(', ', @vars);
# my $query = qq|select parts_id,qty from assembly where id = ?|;
- my $query = qq|select parts_id,qty from assembly inner join parts on assembly.parts_id = parts.id where assembly.id = ? and (inventory_accno_id IS NOT NULL or parts.assembly = TRUE)|;
+ my $query = qq|select parts_id,qty from assembly inner join parts on assembly.parts_id = parts.id where assembly.id = ? and (inventory_accno_id IS NOT NULL or parts.assembly = TRUE)|;
my $sth_part_qty_assembly = prepare_execute_query($form, $dbh, $query, $params{assembly_id});
# Hier wird das prepared Statement für die Schleife über alle Lagerplätze vorbereitet
my $transferPartSQL = qq|INSERT INTO inventory (parts_id, warehouse_id, bin_id, chargenumber, comment, employee_id, qty, trans_id, trans_type_id)
- VALUES (?, ?, ?, ?, ?,(SELECT id FROM employee WHERE login = ?), ?, nextval('id'),
- (SELECT id FROM transfer_type WHERE direction = 'out' AND description = 'used'))|;
+ VALUES (?, ?, ?, ?, ?,(SELECT id FROM employee WHERE login = ?), ?, nextval('id'),
+ (SELECT id FROM transfer_type WHERE direction = 'out' AND description = 'used'))|;
my $sthTransferPartSQL = prepare_query($form, $dbh, $transferPartSQL);
- my $kannNichtFertigen =""; # der return-string für die fehlermeldung inkl. welche waren zum fertigen noch fehlen
+ my $kannNichtFertigen =""; # der return-string für die fehlermeldung inkl. welche waren zum fertigen noch fehlen
- while (my $hash_ref = $sth_part_qty_assembly->fetchrow_hashref()) { # Schleife für $query=select parts_id,qty from assembly
+ while (my $hash_ref = $sth_part_qty_assembly->fetchrow_hashref()) { # Schleife für $query=select parts_id,qty from assembly
my $partsQTY = $hash_ref->{qty} * $params{qty}; # benötigte teile * anzahl erzeugnisse
my $currentPart_ID = $hash_ref->{parts_id};
if ($partsQTY > $max_parts){
# Gibt es hier ein Problem mit nicht "escapten" Zeichen? 25.4.09 Antwort: Ja. Aber erst wenn im Frontend die locales-Funktion aufgerufen wird
- $kannNichtFertigen .= "Zum Fertigen fehlen:" . abs($partsQTY - $max_parts) . " Einheiten der Ware:" . get_part_description($self, parts_id => $currentPart_ID) . ", um das Erzeugnis herzustellen. <br>"; # Konnte die Menge nicht mit der aktuellen Anzahl der Waren fertigen
- next; # die weiteren Überprüfungen sind unnötig
+ $kannNichtFertigen .= "Zum Fertigen fehlen:" . abs($partsQTY - $max_parts) . " Einheiten der Ware:" . get_part_description($self, parts_id => $currentPart_ID) . ", um das Erzeugnis herzustellen. <br>"; # Konnte die Menge nicht mit der aktuellen Anzahl der Waren fertigen
+ next; # die weiteren Überprüfungen sind unnötig
}
# Eine kurze Vorabfrage, um den Lagerplatz und die Chargennummber zu bestimmen
# und lösen den Rest dann so wie bei xplace im Barcode-Programm
# S.a. Kommentar im bin/mozilla-Code mb übernimmt und macht das in ordentlich
- my $tempquery = qq|SELECT SUM(qty), bin_id, chargenumber FROM inventory WHERE warehouse_id = ? AND parts_id = ? GROUP BY bin_id, chargenumber having SUM(qty)>0|;
- my $tempsth = prepare_execute_query($form, $dbh, $tempquery, $params{dst_warehouse_id}, $currentPart_ID);
+ my $tempquery = qq|SELECT SUM(qty), bin_id, chargenumber FROM inventory WHERE warehouse_id = ? AND parts_id = ? GROUP BY bin_id, chargenumber having SUM(qty)>0|;
+ my $tempsth = prepare_execute_query($form, $dbh, $tempquery, $params{dst_warehouse_id}, $currentPart_ID);
# Alle Werte zu dem einzelnen Artikel, die wir später auslagern
my $tmpPartsQTY = $partsQTY;
while (my $temphash_ref = $tempsth->fetchrow_hashref()) {
- my $temppart_bin_id = $temphash_ref->{bin_id}; # kann man hier den quelllagerplatz beim verbauen angeben?
- my $temppart_chargenumber = $temphash_ref->{chargenumber};
- my $temppart_qty = $temphash_ref->{sum};
- if ($tmpPartsQTY > $temppart_qty) { # wir haben noch mehr waren zum wegbuchen. Wir buchen den kompletten Lagerplatzbestand und zählen die Hilfsvariable runter
- $tmpPartsQTY = $tmpPartsQTY - $temppart_qty;
- $temppart_qty = $temppart_qty * -1; # beim analyiseren des sql-trace, war dieser wert positiv, wenn * -1 als berechnung in der parameter-übergabe angegeben wird. Dieser Wert IST und BLEIBT positiv!! Hilfe. Liegt das daran, dass dieser Wert aus einem SQL-Statement stammt?
- do_statement($form, $sthTransferPartSQL, $transferPartSQL, $currentPart_ID, $params{dst_warehouse_id}, $temppart_bin_id, $temppart_chargenumber, 'Verbraucht für ' . get_part_description($self, parts_id => $params{assembly_id}), $params{login}, $temppart_qty);
-
- # hier ist noch ein fehler am besten mit definierten erzeugnissen debuggen 02/2009 jb
- # idee: ausbuch algorithmus mit rekursion lösen und an- und abschaltbar machen
- # das problem könnte sein, dass strict nicht an war und sth global eine andere zuweisung bekam
- # auf jeden fall war der internal-server-error nach aktivierung von strict und warnings plus ein paar my-definitionen weg
- } else { # okay, wir haben weniger oder gleich Waren die wir wegbuchen müssen, wir können also aufhören
- $tmpPartsQTY *=-1;
+ my $temppart_bin_id = $temphash_ref->{bin_id}; # kann man hier den quelllagerplatz beim verbauen angeben?
+ my $temppart_chargenumber = $temphash_ref->{chargenumber};
+ my $temppart_qty = $temphash_ref->{sum};
+ if ($tmpPartsQTY > $temppart_qty) { # wir haben noch mehr waren zum wegbuchen. Wir buchen den kompletten Lagerplatzbestand und zählen die Hilfsvariable runter
+ $tmpPartsQTY = $tmpPartsQTY - $temppart_qty;
+ $temppart_qty = $temppart_qty * -1; # beim analyiseren des sql-trace, war dieser wert positiv, wenn * -1 als berechnung in der parameter-übergabe angegeben wird. Dieser Wert IST und BLEIBT positiv!! Hilfe. Liegt das daran, dass dieser Wert aus einem SQL-Statement stammt?
+ do_statement($form, $sthTransferPartSQL, $transferPartSQL, $currentPart_ID, $params{dst_warehouse_id}, $temppart_bin_id, $temppart_chargenumber, 'Verbraucht für ' . get_part_description($self, parts_id => $params{assembly_id}), $params{login}, $temppart_qty);
+
+ # hier ist noch ein fehler am besten mit definierten erzeugnissen debuggen 02/2009 jb
+ # idee: ausbuch algorithmus mit rekursion lösen und an- und abschaltbar machen
+ # das problem könnte sein, dass strict nicht an war und sth global eine andere zuweisung bekam
+ # auf jeden fall war der internal-server-error nach aktivierung von strict und warnings plus ein paar my-definitionen weg
+ } else { # okay, wir haben weniger oder gleich Waren die wir wegbuchen müssen, wir können also aufhören
+ $tmpPartsQTY *=-1;
do_statement($form, $sthTransferPartSQL, $transferPartSQL, $currentPart_ID, $params{dst_warehouse_id}, $temppart_bin_id, $temppart_chargenumber, 'Verbraucht für ' . get_part_description($self, parts_id => $params{assembly_id}), $params{login}, $tmpPartsQTY);
- last; # beendet die schleife (springt zum letzten element)
+ last; # beendet die schleife (springt zum letzten element)
}
- } # ende while SELECT SUM(qty), bin_id, chargenumber FROM inventory WHERE warehouse_id
+ } # ende while SELECT SUM(qty), bin_id, chargenumber FROM inventory WHERE warehouse_id
} #ende while select parts_id,qty from assembly where id = ?
if ($kannNichtFertigen) {
return $kannNichtFertigen;
# soweit alles gut. Jetzt noch die wirkliche Lagerbewegung für das Erzeugnis ausführen ...
my $transferAssemblySQL = qq|INSERT INTO inventory (parts_id, warehouse_id, bin_id, chargenumber, comment, employee_id, qty, trans_id, trans_type_id)
- VALUES (?, ?, ?, ?, ?, (SELECT id FROM employee WHERE login = ?), ?, nextval('id'),
- (SELECT id FROM transfer_type WHERE direction = 'in' AND description = 'stock'))|;
+ VALUES (?, ?, ?, ?, ?, (SELECT id FROM employee WHERE login = ?), ?, nextval('id'),
+ (SELECT id FROM transfer_type WHERE direction = 'in' AND description = 'stock'))|;
my $sthTransferAssemblySQL = prepare_query($form, $dbh, $transferAssemblySQL);
do_statement($form, $sthTransferAssemblySQL, $transferAssemblySQL, $params{assembly_id}, $params{dst_warehouse_id}, $params{dst_bin_id}, $params{chargenumber}, $params{comment}, $params{login}, $params{qty});
$dbh->commit();
$main::lxdebug->leave_sub();
- return 1; # Alles erfolgreich
+ return 1; # Alles erfolgreich
}
sub get_warehouse_journal {
# - partsid - will return matches with this parts_id only
# - description - will return only matches where the given string is a substring of the description
# - chargenumber - will return only matches where the given string is a substring of the chargenumber
-# - ean - will return only matches where the given string is a substring of the ean as stored in the table parts (article)
+# - ean - will return only matches where the given string is a substring of the ean as stored in the table parts (article)
# - charge_ids - must be an arrayref. will return contents with these ids only
# - expires_in - will only return matches that expire within the given number of days
# will also add a column named 'has_expired' containing if the match has already expired or not
"bindescription" => "b.description",
"binid" => "b.id",
"chargenumber" => "i.chargenumber",
- "ean" => "p.ean",
+ "ean" => "p.ean",
"chargeid" => "c.id",
"warehousedescription" => "w.description",
"partunit" => "p.unit",
return map { $_->{bin_id} => $_ } @{ $result };
}
#
-# Eingabe: Teilenummer, Lagernummer (warehouse)
-# Ausgabe: Die maximale Anzahl der Teile in diesem Lager
+# Eingabe: Teilenummer, Lagernummer (warehouse)
+# Ausgabe: Die maximale Anzahl der Teile in diesem Lager
#
sub get_max_qty_parts {
$main::lxdebug->enter_sub();
my $sth_QTY = prepare_execute_query($form, $dbh, $query, ,$params{parts_id}, $params{warehouse_id}); #info: aufruf an DBUtils.pm
my $max_qty_parts = 0; #Initialisierung mit 0
- while (my $ref = $sth_QTY->fetchrow_hashref()) { # wir laufen über alle chargen und Lagerorte (s.a. SQL-Query oben)
+ while (my $ref = $sth_QTY->fetchrow_hashref()) { # wir laufen über alle chargen und Lagerorte (s.a. SQL-Query oben)
$max_qty_parts += $ref->{sum};
}
}
#
-# Eingabe: Teilenummer, Lagernummer (warehouse)
-# Ausgabe: Die Beschreibung der Ware bzw. Erzeugnis
+# Eingabe: Teilenummer, Lagernummer (warehouse)
+# Ausgabe: Die Beschreibung der Ware bzw. Erzeugnis
#
sub get_part_description {
$main::lxdebug->enter_sub();
map { print "$column_data{$_}\n" } @column_index;
print qq|
- </tr>
+ </tr>
|;
}
map { print "$column_header{$_}\n" } @column_index;
print qq|
- </tr>
+ </tr>
|;
my ($i, %column_data);
$i %= 2;
print qq|
- <tr valign=top class=listrow$i>
+ <tr valign=top class=listrow$i>
|;
-# $lead = $ref->{lead};
+# $lead = $ref->{lead};
$column_data{description} = qq|<td><a href="am.pl?action=edit_lead&id=$ref->{id}&callback=$callback">$ref->{lead}</td>|;
map { print "$column_data{$_}\n" } @column_index;
print qq|
- </tr>
+ </tr>
|;
}
map { print "$column_data{$_}\n" } @column_index;
print qq|
- </tr>
+ </tr>
|;
}
map { print "$column_data{$_}\n" } @column_index;
print qq|
- </tr>
+ </tr>
|;
}
map { print "$column_data{$_}\n" } @column_index;
print qq|
- </tr>
+ </tr>
|;
$row++;
if (!$main::eur) {
$linkaccounts = qq|
<tr>
- <th align=right>| . $locale->text('Inventory') . qq|</th>
- <td><select name=inventory_accno_id>$form->{selectIC}</select></td>
- <input name=selectIC type=hidden value="$form->{selectIC}">
- </tr>|;
+ <th align=right>| . $locale->text('Inventory') . qq|</th>
+ <td><select name=inventory_accno_id>$form->{selectIC}</select></td>
+ <input name=selectIC type=hidden value="$form->{selectIC}">
+ </tr>|;
} else {
$linkaccounts = qq|
<input type=hidden name=inventory_accno_id value=$form->{inventory_accno_id}>|;
$linkaccounts .= qq|
- <tr>
- <th align=right>| . $locale->text('National Revenues') . qq|</th>
- <td><select name=income_accno_id_0>$form->{selectIC_income}</select></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('National Expenses') . qq|</th>
- <td><select name=expense_accno_id_0>$form->{selectIC_expense}</select></td>
- </tr>|;
+ <tr>
+ <th align=right>| . $locale->text('National Revenues') . qq|</th>
+ <td><select name=income_accno_id_0>$form->{selectIC_income}</select></td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('National Expenses') . qq|</th>
+ <td><select name=expense_accno_id_0>$form->{selectIC_expense}</select></td>
+ </tr>|;
if ($form->{id}) {
$form->{selectIC_income} =~ s/selected//g;
$form->{selectIC_income} =~ s/ value=\Q$form->{income_accno_id_1}\E/ value=$form->{income_accno_id_1} selected/;
$form->{selectIC_expense} =~ s/selected//g;
$form->{selectIC_expense} =~ s/ value=\Q$form->{expense_accno_id_1}\E/ value=$form->{expense_accno_id_1} selected/;
}
- $linkaccounts .= qq| <tr>
- <th align=right>| . $locale->text('Revenues EU with UStId') . qq|</th>
- <td><select name=income_accno_id_1>$form->{selectIC_income}</select></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Expenses EU with UStId') . qq|</th>
- <td><select name=expense_accno_id_1>$form->{selectIC_expense}</select></td>
- </tr>|;
+ $linkaccounts .= qq| <tr>
+ <th align=right>| . $locale->text('Revenues EU with UStId') . qq|</th>
+ <td><select name=income_accno_id_1>$form->{selectIC_income}</select></td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('Expenses EU with UStId') . qq|</th>
+ <td><select name=expense_accno_id_1>$form->{selectIC_expense}</select></td>
+ </tr>|;
if ($form->{id}) {
$form->{selectIC_income} =~ s/selected//g;
$form->{selectIC_expense} =~ s/ value=\Q$form->{expense_accno_id_2}\E/ value=$form->{expense_accno_id_2} selected/;
}
- $linkaccounts .= qq| <tr>
- <th align=right>| . $locale->text('Revenues EU without UStId') . qq|</th>
- <td><select name=income_accno_id_2>$form->{selectIC_income}</select></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Expenses EU without UStId') . qq|</th>
- <td><select name=expense_accno_id_2>$form->{selectIC_expense}</select></td>
- </tr>|;
+ $linkaccounts .= qq| <tr>
+ <th align=right>| . $locale->text('Revenues EU without UStId') . qq|</th>
+ <td><select name=income_accno_id_2>$form->{selectIC_income}</select></td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('Expenses EU without UStId') . qq|</th>
+ <td><select name=expense_accno_id_2>$form->{selectIC_expense}</select></td>
+ </tr>|;
if ($form->{id}) {
$form->{selectIC_income} =~ s/selected//g;
$form->{selectIC_expense} =~ s/ value=\Q$form->{expense_accno_id_3}\E/ value=$form->{expense_accno_id_3} selected/;
}
- $linkaccounts .= qq| <tr>
- <th align=right>| . $locale->text('Foreign Revenues') . qq|</th>
- <td><select name=income_accno_id_3>$form->{selectIC_income}</select></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Foreign Expenses') . qq|</th>
- <td><select name=expense_accno_id_3>$form->{selectIC_expense}</select></td>
- </tr>
+ $linkaccounts .= qq| <tr>
+ <th align=right>| . $locale->text('Foreign Revenues') . qq|</th>
+ <td><select name=income_accno_id_3>$form->{selectIC_income}</select></td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('Foreign Expenses') . qq|</th>
+ <td><select name=expense_accno_id_3>$form->{selectIC_expense}</select></td>
+ </tr>
|;
map { print "$column_data{$_}\n" } @column_index;
print qq|
- </tr>
+ </tr>
|;
}
map { print "$column_data{$_}\n" } @column_index;
print qq|
- </tr>
+ </tr>
|;
$row++;
}
<tr>
<td>
<table>
- <tr>
- <th>| . $locale->text('Close Books up to') . qq|</th>
- <td><input name=closedto size=11 title="$myconfig{dateformat}" value=$form->{closedto}></td>
- </tr>
+ <tr>
+ <th>| . $locale->text('Close Books up to') . qq|</th>
+ <td><input name=closedto size=11 title="$myconfig{dateformat}" value=$form->{closedto}></td>
+ </tr>
</table>
</td>
</tr>
if ($form->{forex}) {
$exchangerate .= qq|
<tr>
- <th align=right>| . $locale->text('Exchangerate') . qq|</th>
+ <th align=right>| . $locale->text('Exchangerate') . qq|</th>
<td><input type=hidden name=exchangerate value=$form->{exchangerate}>$form->{exchangerate}</td>
</tr>
|;
} else {
$exchangerate .= qq|
- <th align=right>| . $locale->text('Exchangerate') . qq|</th>
+ <th align=right>| . $locale->text('Exchangerate') . qq|</th>
<td><input name=exchangerate size=10 value=$form->{exchangerate}></td>
|;
}
my $department = qq|
<tr>
- <th align="right" nowrap>| . $locale->text('Department') . qq|</th>
- <td colspan=3><select name=department>$form->{selectdepartment}</select>
- <input type=hidden name=selectdepartment value="$form->{selectdepartment}">
- </td>
- </tr>
+ <th align="right" nowrap>| . $locale->text('Department') . qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="$form->{selectdepartment}">
+ </td>
+ </tr>
| if $form->{selectdepartment};
my $n = ($form->{creditremaining} =~ /-/) ? "0" : "1";
<td>
<table width=100%>
<tr valign=top>
- <td>
- <table>
- <tr>
- <th align=right nowrap>| . $locale->text('Vendor') . qq|</th>
- <td colspan=3>$vendor <input type="button" value="D" onclick="show_vc_details('vendor')"></td>
- <input type=hidden name=selectvendor value="| . H($form->{selectvendor}) . qq|">
- <input type=hidden name=oldvendor value="| . H($form->{oldvendor}) . qq|">
- <input type=hidden name=vendor_id value="| . H($form->{vendor_id}) . qq|">
- <input type=hidden name=terms value="| . H($form->{terms}) . qq|">
- </tr>
- <tr>
- <td></td>
- <td colspan=3>
- <table width=100%>
- <tr>
- <th align=left nowrap>| . $locale->text('Credit Limit') . qq|</th>
- <td>$form->{creditlimit}</td>
- <th align=left nowrap>| . $locale->text('Remaining') . qq|</th>
- <td class="plus$n">$form->{creditremaining}</td>
- <input type=hidden name=creditlimit value=$form->{creditlimit}>
- <input type=hidden name=creditremaining value=$form->{creditremaining}>
- </tr>
- </table>
- </td>
- <tr>
- <th align=right nowrap>| . $locale->text('Currency') . qq|</th>
- <td><select name=currency>$form->{selectcurrency}</select></td>
- <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
- <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
- <input type=hidden name=fxgain_accno value=$form->{fxgain_accno}>
- <input type=hidden name=fxloss_accno value=$form->{fxloss_accno}>
- $exchangerate
- </tr>
- $department
- $taxincluded
- </table>
- </td>
- <td align=right>
- <table>
- <tr>
- <th align=right nowrap>| . $locale->text('Invoice Number') . qq|</th>
- <td><input name=invnumber size=11 value="$form->{invnumber}" $readonly></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Order Number') . qq|</th>
- <td><input name=ordnumber size=11 value="$form->{ordnumber}" $readonly></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Invoice Date') . qq|</th>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Vendor') . qq|</th>
+ <td colspan=3>$vendor <input type="button" value="D" onclick="show_vc_details('vendor')"></td>
+ <input type=hidden name=selectvendor value="| . H($form->{selectvendor}) . qq|">
+ <input type=hidden name=oldvendor value="| . H($form->{oldvendor}) . qq|">
+ <input type=hidden name=vendor_id value="| . H($form->{vendor_id}) . qq|">
+ <input type=hidden name=terms value="| . H($form->{terms}) . qq|">
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <table width=100%>
+ <tr>
+ <th align=left nowrap>| . $locale->text('Credit Limit') . qq|</th>
+ <td>$form->{creditlimit}</td>
+ <th align=left nowrap>| . $locale->text('Remaining') . qq|</th>
+ <td class="plus$n">$form->{creditremaining}</td>
+ <input type=hidden name=creditlimit value=$form->{creditlimit}>
+ <input type=hidden name=creditremaining value=$form->{creditremaining}>
+ </tr>
+ </table>
+ </td>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Currency') . qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td>
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
+ <input type=hidden name=fxgain_accno value=$form->{fxgain_accno}>
+ <input type=hidden name=fxloss_accno value=$form->{fxloss_accno}>
+ $exchangerate
+ </tr>
+ $department
+ $taxincluded
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Invoice Number') . qq|</th>
+ <td><input name=invnumber size=11 value="$form->{invnumber}" $readonly></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Order Number') . qq|</th>
+ <td><input name=ordnumber size=11 value="$form->{ordnumber}" $readonly></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Invoice Date') . qq|</th>
$button1
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Due Date') . qq|</th>
+ </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Due Date') . qq|</th>
$button2
- </tr>
- </table>
- </td>
- </tr>
+ </tr>
+ </table>
+ </td>
+ </tr>
</table>
</td>
</tr>
$jsscript
<input type=hidden name=rowcount value=$form->{rowcount}>
<tr>
- <td>
- <table width=100%>
- <tr class=listheading>
- <th class=listheading style="width:15%">|
- . $locale->text('Account') . qq|</th>
- <th class=listheading style="width:10%">|
- . $locale->text('Amount') . qq|</th>
- <th class=listheading style="width:10%">|
- . $locale->text('Tax') . qq|</th>
- <th class=listheading style="width:10%">|
- . $locale->text('Taxkey') . qq|</th>
- <th class=listheading style="width:10%">|
- . $locale->text('Project') . qq|</th>
- </tr>
+ <td>
+ <table width=100%>
+ <tr class=listheading>
+ <th class=listheading style="width:15%">| . $locale->text('Account') . qq|</th>
+ <th class=listheading style="width:10%">| . $locale->text('Amount') . qq|</th>
+ <th class=listheading style="width:10%">| . $locale->text('Tax') . qq|</th>
+ <th class=listheading style="width:10%">| . $locale->text('Taxkey') . qq|</th>
+ <th class=listheading style="width:10%">| . $locale->text('Project') . qq|</th>
+ </tr>
|;
my $amount = $locale->text('Amount');
'-default' => $form->{"project_id_$i"} ));
print qq|
- <tr>
+ <tr>
<td>$selectAP_amount</td>
<td><input name="amount_$i" size=10 value=$form->{"amount_$i"}></td>
<td><input type="hidden" name="tax_$i" value="$form->{"tax_$i"}">$form->{"tax_$i"}</td>
$tax
<td>$projectnumber</td>
- </tr>
+ </tr>
|;
$amount = "";
$project = "";
</td>
</tr>
<tr>
- <td>${APselected}</td>
- <th align=left>$form->{invtotal}</th>
+ <td>${APselected}</td>
+ <th align=left>$form->{invtotal}</th>
- <input type=hidden name=oldinvtotal value=$form->{oldinvtotal}>
- <input type=hidden name=oldtotalpaid value=$form->{oldtotalpaid}>
+ <input type=hidden name=oldinvtotal value=$form->{oldinvtotal}>
+ <input type=hidden name=oldtotalpaid value=$form->{oldtotalpaid}>
- <input type=hidden name=taxaccounts value="$form->{taxaccounts}">
+ <input type=hidden name=taxaccounts value="$form->{taxaccounts}">
- <td colspan=4></td>
+ <td colspan=4></td>
</tr>
- </table>
- </td>
+ </table>
+ </td>
</tr>
<tr>
<td>
<table width=100%>
<tr>
- <th align=left width=1%>| . $locale->text('Notes') . qq|</th>
- <td align=left>$notes</td>
- </tr>
+ <th align=left width=1%>| . $locale->text('Notes') . qq|</th>
+ <td align=left>$notes</td>
+ </tr>
</table>
</td>
</tr>
<tr>
<td>
<table width=100%>
- <tr class=listheading>
- <th class=listheading colspan=7>| . $locale->text('Payments') . qq|</th>
- </tr>
+ <tr class=listheading>
+ <th class=listheading colspan=7>| . $locale->text('Payments') . qq|</th>
+ </tr>
|;
my @column_index;
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
$form->{snumbers} = qq|invnumber_| . $form->{invnumber};
- $form->{addition} = "POSTED AS NEW";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "POSTED AS NEW";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
&post;
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|invnumber_| . $form->{invnumber};
- $form->{addition} = "DELETED";
+ $form->{addition} = "DELETED";
$form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
sub search {
$main::lxdebug->enter_sub();
+ $main::auth->assert('general_ledger | invoice_edit');
+
my $form = $main::form;
my %myconfig = %main::myconfig;
my $locale = $main::locale;
- my $cgi = $main::cgi;
-
- $main::auth->assert('general_ledger | vendor_invoice_edit');
- # setup vendor selection
+ # setup customer selection
$form->all_vc(\%myconfig, "vendor", "AP");
- my $vendor;
- if (@{ $form->{all_vendor} || [] }) {
- map { $vendor .= "<option>$_->{name}--$_->{id}\n" }
- @{ $form->{all_vendor} };
- $vendor = qq|<select name=vendor><option>\n$vendor\n</select>|;
- } else {
- $vendor = qq|<input name=vendor size=35>|;
- }
-
- # departments
- if (@{ $form->{all_departments} || [] }) {
- $form->{selectdepartment} = "<option>\n";
-
- map {
- $form->{selectdepartment} .=
- "<option>$_->{description}--$_->{id}\n"
- } (@{ $form->{all_departments} || [] });
- }
-
- my $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};
-
- $form->{title} = $locale->text('AP Transactions');
-
- # use JavaScript Calendar or not
+ $form->{title} = $locale->text('AP Transactions');
+ $form->{fokus} = "search.vendor";
$form->{jsscript} = 1;
- my $jsscript = "";
- my ($button1, $button2);
- if ($form->{jsscript}) {
- # with JavaScript Calendar
- $button1 = qq|
- <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
- <input type=button name=transdatefrom id="trigger1" value=|
- . $locale->text('button') . qq|></td>
- |;
- $button2 = qq|
- <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
- <input type=button name=transdateto name=transdateto id="trigger2" value=|
- . $locale->text('button') . qq|></td>
- |;
+ $form->get_lists("projects" => { "key" => "ALL_PROJECTS", "all" => 1 },
+ "departments" => "ALL_DEPARTMENTS",
+ "vendors" => "ALL_VC");
- #write Trigger
- $jsscript =
- Form->write_trigger(\%myconfig, "2", "transdatefrom", "BR", "trigger1",
- "transdateto", "BL", "trigger2");
- } else {
+ # constants and subs for template
+ $form->{jsscript} = 1;
+ $form->{vc_keys} = sub { "$_[0]->{name}--$_[0]->{id}" };
- # without JavaScript Calendar
- $button1 = qq|
- <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\"></td>|;
- $button2 = qq|
- <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\"></td>|;
- }
-
- $form->get_lists("projects" => { "key" => "ALL_PROJECTS",
- "all" => 1 });
-
- my %labels = ();
- my @values = ("");
- foreach my $item (@{ $form->{"ALL_PROJECTS"} }) {
- push(@values, $item->{"id"});
- $labels{$item->{"id"}} = $item->{"projectnumber"};
- }
- my $projectnumber =
- NTI($cgi->popup_menu('-name' => 'project_id', '-values' => \@values,
- '-labels' => \%labels));
- $form->{javascript} .= qq|<script type="text/javascript" src="js/common.js"></script>|;
$form->header;
- my $onload = qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|;
- $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
- print qq|
-<body onLoad="$onload">
-
-<form method=post action=$form->{script}>
-
-<table width=100%>
- <tr>
- <th class=listtop>$form->{title}</th>
- </tr>
- <tr height="5"></tr>
- <tr>
- <td>
- <table>
- <tr>
- <th align=right>| . $locale->text('Vendor') . qq|</th>
- <td colspan=3>$vendor</td>
- </tr>
- $department
- <tr>
- <th align=right nowrap>| . $locale->text('Invoice Number') . qq|</th>
- <td colspan=3><input name=invnumber size=20></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Order Number') . qq|</th>
- <td colspan=3><input name=ordnumber size=20></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Notes') . qq|</th>
- <td colspan=3><input name=notes size=40></td>
- </tr>
- <tr>
- <th align="right">| . $locale->text("Project Number") . qq|</th>
- <td colspan="3">$projectnumber</td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('From') . qq|</th>
- $button1
- <th align=right>| . $locale->text('Bis') . qq|</th>
- $button2
- </tr>
- <input type=hidden name=sort value=transdate>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <table>
- <tr>
- <th align=right nowrap>| . $locale->text('Include in Report') . qq|</th>
- <td>
- <table width=100%>
- <tr>
- <td align=right><input name=open class=checkbox type=checkbox value=Y checked></td>
- <td nowrap>| . $locale->text('Open') . qq|</td>
- <td align=right><input name=closed class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Closed') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_id" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('ID') . qq|</td>
- <td align=right><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
- <td nowrap>| . $locale->text('Invoice Number') . qq|</td>
- <td align=right><input name="l_ordnumber" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Order Number') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
- <td nowrap>| . $locale->text('Vendor') . qq|</td>
- <td align=right><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
- <td nowrap>| . $locale->text('Invoice Date') . qq|</td>
- <td align=right><input name="l_netamount" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Amount') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_tax" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Tax') . qq|</td>
- <td align=right><input name="l_amount" class=checkbox type=checkbox value=Y checked></td>
- <td nowrap>| . $locale->text('Total') . qq|</td>
- <td align=right><input name="l_datepaid" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Date Paid') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_paid" class=checkbox type=checkbox value=Y checked></td>
- <td nowrap>| . $locale->text('Paid') . qq|</td>
- <td align=right><input name="l_duedate" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Due Date') . qq|</td>
- <td align=right><input name="l_due" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Amount Due') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_notes" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Notes') . qq|</td>
- <td align=right><input name="l_employee" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Employee') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Subtotal') . qq|</td>
- <td align=right><input name="l_globalprojectnumber" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Project Number') . qq|</td>
- </tr>
- <tr>
- <td colspan=4 align=left><b>| . $locale->text('Vendor') . qq| </td>
- </tr>
- <tr>
- <td align=right><input name="l_vendornumber" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Vendor Number') . qq|</td>
- <td align=right><input name="l_country" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Country') . qq|</td>
- <td align=right><input name="l_ustid" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('USt-IdNr.') . qq|</td>
- <td align=right><input name="l_taxzone" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Steuersatz') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_payment_terms" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Payment Terms') . qq|</td>
- <td align=right><input name="l_charts" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Buchungskonto') . qq|</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td><hr size=3 noshade></td>
- </tr>
-</table>
-
-$jsscript
-
-<br>
-<input type=hidden name=nextsub value=$form->{nextsub}>
-
-<input class=submit type=submit name=action value="|
- . $locale->text('Continue') . qq|">
-</form>
-
-</body>
-</html>
-|;
+ print $form->parse_html_template('ap/search', { %myconfig });
$main::lxdebug->leave_sub();
}
# saving the history
if(!exists $form->{addition} && ($form->{id} ne "")) {
$form->{snumbers} = qq|invnumber_| . $form->{invnumber};
- $form->{addition} = "ADDED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "ADDED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
if ($form->{currency} ne $form->{defaultcurrency}) {
if ($form->{forex}) {
$exchangerate .= qq|
- <th align=right>| . $locale->text('Exchangerate') . qq|</th>
- <td><input type=hidden name=exchangerate value=$form->{exchangerate}>$form->{exchangerate}</td>
+ <th align=right>| . $locale->text('Exchangerate') . qq|</th>
+ <td><input type=hidden name=exchangerate value=$form->{exchangerate}>$form->{exchangerate}</td>
|;
} else {
$exchangerate .= qq|
}
$taxincluded = qq|
- <tr>
- <td align=right><input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td>
- <th align=left nowrap>| . $locale->text('Tax Included') . qq|</th>
- </tr>
+ <tr>
+ <td align=right><input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}></td>
+ <th align=left nowrap>| . $locale->text('Tax Included') . qq|</th>
+ </tr>
|;
if (($rows = $form->numtextrows($form->{notes}, 50)) < 2) {
qq|<textarea name=notes rows=$rows cols=50 wrap=soft>$form->{notes}</textarea>|;
$department = qq|
- <tr>
- <th align="right" nowrap>| . $locale->text('Department') . qq|</th>
- <td colspan=3><select name=department>$form->{selectdepartment}</select>
- <input type=hidden name=selectdepartment value="$form->{selectdepartment}">
- </td>
- </tr>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('Department') . qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select>
+ <input type=hidden name=selectdepartment value="$form->{selectdepartment}">
+ </td>
+ </tr>
| if $form->{selectdepartment};
my $n = ($form->{creditremaining} =~ /-/) ? "0" : "1";
if ($form->{selectemployee}) {
$employee = qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Salesperson') . qq|</th>
- <td colspan=2><select name=employee>$form->{selectemployee}</select></td>
- <input type=hidden name=selectemployee value="$form->{selectemployee}">
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Salesperson') . qq|</th>
+ <td colspan=2><select name=employee>$form->{selectemployee}</select></td>
+ <input type=hidden name=selectemployee value="$form->{selectemployee}">
+ </tr>
|;
}
<td>
<table width=100%>
<tr valign=top>
- <td>
- <table>
- <tr>
- <th align="right" nowrap>| . $locale->text('Customer') . qq|</th>
- <td colspan=3>$customer <input type="button" value="| . $locale->text('Details (one letter abbreviation)') . qq|" onclick="show_vc_details('customer')"></td>
- <input type=hidden name=selectcustomer value="$form->{selectcustomer}">
- <input type=hidden name=oldcustomer value="$form->{oldcustomer}">
- <input type=hidden name=customer_id value="$form->{customer_id}">
- <input type=hidden name=terms value=$form->{terms}>
- </tr>
- <tr>
- <td></td>
- <td colspan=3>
- <table width=100%>
- <tr>
- <th align=left nowrap>| . $locale->text('Credit Limit') . qq|</th>
- <td>$form->{creditlimit}</td>
- <th align=left nowrap>| . $locale->text('Remaining') . qq|</th>
- <td class="plus$n">$form->{creditremaining}</td>
- <input type=hidden name=creditlimit value=$form->{creditlimit}>
- <input type=hidden name=creditremaining value=$form->{creditremaining}>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Currency') . qq|</th>
- <td><select name=currency>$form->{selectcurrency}</select></td>
- <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
- <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
- <input type=hidden name=fxgain_accno value=$form->{fxgain_accno}>
- <input type=hidden name=fxloss_accno value=$form->{fxloss_accno}>
- $exchangerate
- </tr>
- $department
- $taxincluded
- </table>
- </td>
- <td align=right>
- <table>
- $employee
- <tr>
- <th align=right nowrap>| . $locale->text('Invoice Number') . qq|</th>
- <td><input name=invnumber size=11 value="$form->{invnumber}"></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Order Number') . qq|</th>
- <td><input name=ordnumber size=11 value="$form->{ordnumber}"></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Invoice Date') . qq|</th>
+ <td>
+ <table>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('Customer') . qq|</th>
+ <td colspan=3>$customer <input type="button" value="| . $locale->text('Details (one letter abbreviation)') . qq|" onclick="show_vc_details('customer')"></td>
+ <input type=hidden name=selectcustomer value="$form->{selectcustomer}">
+ <input type=hidden name=oldcustomer value="$form->{oldcustomer}">
+ <input type=hidden name=customer_id value="$form->{customer_id}">
+ <input type=hidden name=terms value=$form->{terms}>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan=3>
+ <table width=100%>
+ <tr>
+ <th align=left nowrap>| . $locale->text('Credit Limit') . qq|</th>
+ <td>$form->{creditlimit}</td>
+ <th align=left nowrap>| . $locale->text('Remaining') . qq|</th>
+ <td class="plus$n">$form->{creditremaining}</td>
+ <input type=hidden name=creditlimit value=$form->{creditlimit}>
+ <input type=hidden name=creditremaining value=$form->{creditremaining}>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('Currency') . qq|</th>
+ <td><select name=currency>$form->{selectcurrency}</select></td>
+ <input type=hidden name=selectcurrency value="$form->{selectcurrency}">
+ <input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
+ <input type=hidden name=fxgain_accno value=$form->{fxgain_accno}>
+ <input type=hidden name=fxloss_accno value=$form->{fxloss_accno}>
+ $exchangerate
+ </tr>
+ $department
+ $taxincluded
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ $employee
+ <tr>
+ <th align=right nowrap>| . $locale->text('Invoice Number') . qq|</th>
+ <td><input name=invnumber size=11 value="$form->{invnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Order Number') . qq|</th>
+ <td><input name=ordnumber size=11 value="$form->{ordnumber}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Invoice Date') . qq|</th>
$button1
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Due Date') . qq|</th>
+ </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Due Date') . qq|</th>
$button2
- </tr>
+ </tr>
</table>
- </td>
- </tr>
+ </td>
+ </tr>
</table>
</td>
</tr>
<tr>
<td>
<table width=100%>
- <tr class=listheading>
- <th class=listheading style="width:15%">|
+ <tr class=listheading>
+ <th class=listheading style="width:15%">|
. $locale->text('Account') . qq|</th>
- <th class=listheading style="width:10%">|
+ <th class=listheading style="width:10%">|
. $locale->text('Amount') . qq|</th>
<th class=listheading style="width:10%">|
. $locale->text('Tax') . qq|</th>
. $locale->text('Taxkey') . qq|</th>
<th class=listheading style="width:10%">|
. $locale->text('Project') . qq|</th>
- </tr>
+ </tr>
|;
$amount = $locale->text('Amount');
'-default' => $form->{"project_id_$i"} ));
print qq|
- <tr>
+ <tr>
<td>$selectAR_amount</td>
<td><input name="amount_$i" size=10 value=$form->{"amount_$i"}></td>
<td><input type="hidden" name="tax_$i" value="$form->{"tax_$i"}">$form->{"tax_$i"}</td>
$tax
<td>$projectnumber</td>
- </tr>
+ </tr>
|;
$amount = "";
$project = "";
</td>
</tr>
<tr>
- <td>${ARselected}</td>
- <th align=left>$form->{invtotal}</th>
+ <td>${ARselected}</td>
+ <th align=left>$form->{invtotal}</th>
- <input type=hidden name=oldinvtotal value=$form->{oldinvtotal}>
- <input type=hidden name=oldtotalpaid value=$form->{oldtotalpaid}>
+ <input type=hidden name=oldinvtotal value=$form->{oldinvtotal}>
+ <input type=hidden name=oldtotalpaid value=$form->{oldtotalpaid}>
- <input type=hidden name=taxaccounts value="$form->{taxaccounts}">
+ <input type=hidden name=taxaccounts value="$form->{taxaccounts}">
- <td colspan=4></td>
+ <td colspan=4></td>
</tr>
<td>
<table width=100%>
<tr>
- <th align=left width=1%>| . $locale->text('Notes') . qq|</th>
- <td align=left>$notes</td>
- </tr>
+ <th align=left width=1%>| . $locale->text('Notes') . qq|</th>
+ <td align=left>$notes</td>
+ </tr>
</table>
</td>
</tr>
<tr>
<td>
<table width=100%>
- <tr class=listheading>
- <th colspan=7 class=listheading>|
+ <tr class=listheading>
+ <th colspan=7 class=listheading>|
. $locale->text('Incoming Payments') . qq|</th>
- </tr>
+ </tr>
|;
if ($form->{currency} eq $form->{defaultcurrency}) {
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
$form->{snumbers} = qq|invnumber_| . $form->{invnumber};
- $form->{addition} = "POSTED AS NEW";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "POSTED AS NEW";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
&post;
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|invnumber_| . $form->{invnumber};
- $form->{addition} = "DELETED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$form->redirect($locale->text('Transaction deleted!'));
# setup customer selection
$form->all_vc(\%myconfig, "customer", "AR");
- if (@{ $form->{all_customer} || [] }) {
- map { $customer .= "<option>$_->{name}--$_->{id}\n" }
- @{ $form->{all_customer} };
- $customer = qq|<select name=customer><option>\n$customer</select>|;
- } else {
- $customer = qq|<input name=customer size=35>|;
- }
-
- # departments
- if (@{ $form->{all_departments} || [] }) {
- $form->{selectdepartment} = "<option>\n";
-
- map {
- $form->{selectdepartment} .=
- "<option>$_->{description}--$_->{id}\n"
- } (@{ $form->{all_departments} || [] });
- }
-
- $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};
-
- $form->{title} = $locale->text('AR Transactions');
-
- $form->{javascript} .= qq|<script type="text/javascript" src="js/common.js"></script>|;
-
- # use JavaScript Calendar or not
+ $form->{title} = $locale->text('AR Transactions');
+ $form->{fokus} = "search.customer";
$form->{jsscript} = 1;
- $jsscript = "";
- if ($form->{jsscript}) {
-
- # with JavaScript Calendar
- $button1 = qq|
- <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
- <input type=button name=transdatefrom id="trigger1" value=|
- . $locale->text('button') . qq|></td>
- |;
- $button2 = qq|
- <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
- <input type=button name=transdateto name=transdateto id="trigger2" value=|
- . $locale->text('button') . qq|></td>
- |;
-
- #write Trigger
- $jsscript =
- Form->write_trigger(\%myconfig, "2", "transdatefrom", "BR", "trigger1",
- "transdateto", "BL", "trigger2");
- } else {
-
- # without JavaScript Calendar
- $button1 = qq|
- <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\"></td>|;
- $button2 = qq|
- <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\"></td>|;
- }
- $form->get_lists("projects" => { "key" => "ALL_PROJECTS",
- "all" => 1 });
+ $form->get_lists("projects" => { "key" => "ALL_PROJECTS", "all" => 1 },
+ "departments" => "ALL_DEPARTMENTS",
+ "customers" => "ALL_VC");
- my %labels = ();
- my @values = ("");
- foreach my $item (@{ $form->{"ALL_PROJECTS"} }) {
- push(@values, $item->{"id"});
- $labels{$item->{"id"}} = $item->{"projectnumber"};
- }
- my $projectnumber =
- NTI($cgi->popup_menu('-name' => 'project_id', '-values' => \@values,
- '-labels' => \%labels));
+ # constants and subs for template
+ $form->{jsscript} = 1;
+ $form->{vc_keys} = sub { "$_[0]->{name}--$_[0]->{id}" };
- $form->{fokus} = "search.customer";
$form->header;
- $onload = qq|focus()|;
- $onload .= qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|;
- $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
- print qq|
-<body onLoad="$onload">
-
-<form method=post name="search" action=$form->{script}>
-
-<table width=100%>
- <tr><th class=listtop>$form->{title}</th></tr>
- <tr height="5"></tr>
- <tr>
- <td>
- <table>
- <tr>
- <th align=right>| . $locale->text('Customer') . qq|</th>
- <td colspan=3>$customer</td>
- </tr>
- $department
- <tr>
- <th align=right nowrap>| . $locale->text('Invoice Number') . qq|</th>
- <td colspan=3><input name=invnumber size=20></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Order Number') . qq|</th>
- <td colspan=3><input name=ordnumber size=20></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Transaction description') . qq|</th>
- <td colspan=3><input name=transaction_description size=40></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Notes') . qq|</th>
- <td colspan=3><input name=notes size=40></td>
- </tr>
- <tr>
- <th align="right">| . $locale->text("Project Number") . qq|</th>
- <td colspan="3">$projectnumber</td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('From') . qq|</th>
- $button1
- <th align=right>| . $locale->text('Bis') . qq|</th>
- $button2
- </tr>
- <input type=hidden name=sort value=transdate>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <table>
- <tr>
- <th align=right nowrap>| . $locale->text('Include in Report') . qq|</th>
- <td>
- <table width=100%>
- <tr>
- <td align=right><input name=open class=checkbox type=checkbox value=Y checked></td>
- <td nowrap>| . $locale->text('Open') . qq|</td>
- <td align=right><input name=closed class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Closed') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_id" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('ID') . qq|</td>
- <td align=right><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
- <td nowrap>| . $locale->text('Invoice Number') . qq|</td>
- <td align=right><input name="l_ordnumber" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Order Number') . qq|</td>
- <td align=right><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
- <td nowrap>| . $locale->text('Invoice Date') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
- <td nowrap>| . $locale->text('Customer') . qq|</td>
- <td align=right><input name="l_netamount" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Amount') . qq|</td>
- <td align=right><input name="l_tax" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Tax') . qq|</td>
- <td align=right><input name="l_amount" class=checkbox type=checkbox value=Y checked></td>
- <td nowrap>| . $locale->text('Total') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_datepaid" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Date Paid') . qq|</td>
- <td align=right><input name="l_paid" class=checkbox type=checkbox value=Y checked></td>
- <td nowrap>| . $locale->text('Paid') . qq|</td>
- <td align=right><input name="l_duedate" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Due Date') . qq|</td>
- <td align=right><input name="l_due" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Amount Due') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_notes" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Notes') . qq|</td>
- <td align=right><input name="l_salesman" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Salesperson') . qq|</td>
- <td align=right><input name="l_shippingpoint" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Shipping Point') . qq|</td>
- <td align=right><input name="l_shipvia" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Ship via') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_marge_total" class=checkbox type=checkbox value=Y></td>
- <td nowrap> | . $locale->text('Ertrag') . qq|</td>
- <td align=right><input name="l_marge_percent" class=checkbox type=checkbox value=Y></td>
- <td nowrap> | . $locale->text('Ertrag prozentual') . qq|</td>
- <td align=right><input name="l_employee" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Employee') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Subtotal') . qq|</td>
- <td align=right><input name="l_globalprojectnumber" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Project Number') . qq|</td>
- <td align=right><input name="l_transaction_description" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Transaction description') . qq|</td>
- </tr>
- <tr>
- <td colspan=4 align=left><b>| . $locale->text('Customer') . qq| </td>
- </tr>
- <tr>
- <td align=right><input name="l_customernumber" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Customer Number') . qq|</td>
- <td align=right><input name="l_country" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Country') . qq|</td>
- <td align=right><input name="l_ustid" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('USt-IdNr.') . qq|</td>
- <td align=right><input name="l_taxzone" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Steuersatz') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_payment_terms" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Payment Terms') . qq|</td>
- <td align=right><input name="l_charts" class=checkbox type=checkbox value=Y></td>
- <td nowrap>| . $locale->text('Buchungskonto') . qq|</td>
- </tr>
-
- </table>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td><hr size=3 noshade></td>
- </tr>
-</table>
-
-<input type=hidden name=nextsub value=$form->{nextsub}>
-
-<br>
-<input class=submit type=submit name=action value="|
- . $locale->text('Continue') . qq|">
-
-</form>
-
-</body>
-
-$jsscript
-
-</html>
-|;
+ print $form->parse_html_template('ar/search', { %myconfig });
$main::lxdebug->leave_sub();
}
<tr>
<td>
<table width=100%>
- <tr class=listheading>|;
+ <tr class=listheading>|;
map { print "\n$column_data{$_}" } @column_index;
print qq|
- </tr>
+ </tr>
|;
my $i = 0;
$j++;
$j %= 2;
print qq|
- <tr class=listrow$j>|;
+ <tr class=listrow$j>|;
map { print "\n$column_data{$_}" } @column_index;
print qq|
- </tr>
+ </tr>
<input name="new_id_$i" type=hidden value=$ref->{id}>
<tr>
<td>
<table width=100%>
- <tr class=listheading>|;
+ <tr class=listheading>|;
map { print "\n$column_data{$_}" } @column_index;
receipt => { title => 'Receipts', name => 'Customer' });
$label{invoice}{invnumber} = qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Invoice Number') . qq|</th>
- <td colspan=3><input name=invnumber size=20></td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Invoice Number') . qq|</th>
+ <td colspan=3><input name=invnumber size=20></td>
+ </tr>
|;
$label{invoice}{ordnumber} = qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Order Number') . qq|</th>
- <td colspan=3><input name=ordnumber size=20></td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Order Number') . qq|</th>
+ <td colspan=3><input name=ordnumber size=20></td>
+ </tr>
|;
$label{sales_quotation}{quonumber} = qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Quotation Number') . qq|</th>
- <td colspan=3><input name=quonumber size=20></td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Quotation Number') . qq|</th>
+ <td colspan=3><input name=quonumber size=20></td>
+ </tr>
|;
$label{check}{chknumber} = qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Reference') . qq|</th>
- <td colspan=3><input name=chknumber size=20></td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Reference') . qq|</th>
+ <td colspan=3><input name=chknumber size=20></td>
+ </tr>
|;
$label{packing_list}{invnumber} = $label{invoice}{invnumber};
if (BP->payment_accounts(\%myconfig, \%$form)) {
$account = qq|
<tr>
- <th align=right>| . $locale->text('Account') . qq|</th>
+ <th align=right>| . $locale->text('Account') . qq|</th>
|;
if ($form->{accounts}) {
$account .= qq|
- <td colspan=3><select name=account>
+ <td colspan=3><select name=account>
|;
foreach my $ref (@{ $form->{accounts} }) {
$account .= qq|
|;
} else {
$account .= qq|
- <td colspan=3><input name=account></td>
+ <td colspan=3><input name=account></td>
|;
}
$account .= qq|
- </tr>
+ </tr>
|;
}
<tr>
<td>
<table>
- <tr>
- <th align=right>Kunde</th>
- <td colspan=3>$name</td>
- </tr>
- $account
- $label{$form->{type}}{invnumber}
- $label{$form->{type}}{ordnumber}
- $label{$form->{type}}{quonumber}
- $label{$form->{type}}{chknumber}
- $label{$form->{type}}{rctnumber}
- <tr>
- <th align=right nowrap>| . $locale->text('From') . qq|</th>
+ <tr>
+ <th align=right>Kunde</th>
+ <td colspan=3>$name</td>
+ </tr>
+ $account
+ $label{$form->{type}}{invnumber}
+ $label{$form->{type}}{ordnumber}
+ $label{$form->{type}}{quonumber}
+ $label{$form->{type}}{chknumber}
+ $label{$form->{type}}{rctnumber}
+ <tr>
+ <th align=right nowrap>| . $locale->text('From') . qq|</th>
$button1
- <th align=right>| . $locale->text('Bis') . qq|</th>
+ <th align=right>| . $locale->text('Bis') . qq|</th>
$button2
- </tr>
- <input type=hidden name=sort value=transdate>
+ </tr>
+ <input type=hidden name=sort value=transdate>
</table>
</td>
</tr>
<tr>
<td>
<table width=100%>
- <tr class=listheading>
+ <tr class=listheading>
|;
map { print "\n$column_header{$_}" } @column_index;
print qq|
- </tr>
+ </tr>
|;
# add sort and escape callback, this one we use for the add sub
my $department = qq|
<tr>
- <th align=right nowrap>| . $locale->text('Department') . qq|</th>
- <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
- </tr>
+ <th align=right nowrap>| . $locale->text('Department') . qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
| if $form->{selectdepartment};
my $accrual = ($main::eur) ? "" : "checked";
my $cash = ($main::eur) ? "checked" : "";
</table>
<table>
- <tr>
- <th align=left><input name=reporttype class=radio type=radio value="custom" checked> |
+ <tr>
+ <th align=left><input name=reporttype class=radio type=radio value="custom" checked> |
. $locale->text('Customized Report') . qq|</th>
- </tr>
- <tr>
- <th colspan=1>| . $locale->text('Year') . qq|</th>
- <td><input name=year size=11 title="|
+ </tr>
+ <tr>
+ <th colspan=1>| . $locale->text('Year') . qq|</th>
+ <td><input name=year size=11 title="|
. $locale->text('YYYY') . qq|" value="$year"></td>
- </tr>
+ </tr>
|;
our $checked;
print qq|
- <tr>
- <td align=right>
+ <tr>
+ <td align=right>
<b> | . $locale->text('Yearly') . qq|</b> </td>
- <th align=left>| . $locale->text('Quarterly') . qq|</th>
- <th align=left colspan=3>| . $locale->text('Monthly') . qq|</th>
- </tr>
- <tr>
- <td align=right> <input name=duetyp class=radio type=radio value="13"
+ <th align=left>| . $locale->text('Quarterly') . qq|</th>
+ <th align=left colspan=3>| . $locale->text('Monthly') . qq|</th>
+ </tr>
+ <tr>
+ <td align=right> <input name=duetyp class=radio type=radio value="13"
$checked></td>
- <td><input name=duetyp class=radio type=radio value="A" $checked > 1. |
- . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="A" $checked > 1. | . $locale->text('Quarter') . qq|</td>
|;
$checked = "checked";
print qq|
- <td><input name=duetyp class=radio type=radio value="1" $checked > |
- . $locale->text('January') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="1" $checked > | . $locale->text('January') . qq|</td>
|;
$checked = "";
print qq|
- <td><input name=duetyp class=radio type=radio value="5" $checked > |
- . $locale->text('May') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="9" $checked > |
- . $locale->text('September') . qq|</td>
-
- </tr>
- <tr>
- <td align= right> </td>
- <td><input name=duetyp class=radio type=radio value="B" $checked> 2. |
- . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="2" $checked > |
- . $locale->text('February') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="6" $checked > |
- . $locale->text('June') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="10" $checked > |
- . $locale->text('October') . qq|</td>
- </tr>
- <tr>
- <td> </td>
- <td><input name=duetyp class=radio type=radio value="C" $checked> 3. |
- . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="3" $checked > |
- . $locale->text('March') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="7" $checked > |
- . $locale->text('July') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="11" $checked > |
- . $locale->text('November') . qq|</td>
-
- </tr>
- <tr>
- <td> </td>
- <td><input name=duetyp class=radio type=radio value="D" $checked> 4. |
- . $locale->text('Quarter') . qq| </td>
- <td><input name=duetyp class=radio type=radio value="4" $checked > |
- . $locale->text('April') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="8" $checked > |
- . $locale->text('August') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="12" $checked > |
- . $locale->text('December') . qq|</td>
-
- </tr>
- <tr>
- <td colspan=5><hr size=3 noshade></td>
- </tr>
- <tr>
- <th align=left><input name=reporttype class=radio type=radio value="free" $checked> |
- . $locale->text('Free report period') . qq|</th>
- <td align=left colspan=4>| . $locale->text('From') . qq|
- $button1
+ <td><input name=duetyp class=radio type=radio value="5" $checked > | . $locale->text('May') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="9" $checked > | . $locale->text('September') . qq|</td>
+
+ </tr>
+ <tr>
+ <td align= right> </td>
+ <td><input name=duetyp class=radio type=radio value="B" $checked> 2. | . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="2" $checked > | . $locale->text('February') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="6" $checked > | . $locale->text('June') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="10" $checked > | . $locale->text('October') . qq|</td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name=duetyp class=radio type=radio value="C" $checked> 3. | . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="3" $checked > | . $locale->text('March') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="7" $checked > | . $locale->text('July') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="11" $checked > | . $locale->text('November') . qq|</td>
+
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name=duetyp class=radio type=radio value="D" $checked> 4. | . $locale->text('Quarter') . qq| </td>
+ <td><input name=duetyp class=radio type=radio value="4" $checked > | . $locale->text('April') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="8" $checked > | . $locale->text('August') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="12" $checked > | . $locale->text('December') . qq|</td>
+
+ </tr>
+ <tr>
+ <td colspan=5><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <th align=left><input name=reporttype class=radio type=radio value="free" $checked> | . $locale->text('Free report period') . qq|</th>
+ <td align=left colspan=4>| . $locale->text('From') . qq|
+ $button1
$button1_2
- | . $locale->text('Bis') . qq|
- $button2
+ | . $locale->text('Bis') . qq|
+ $button2
$button2_2
</td>
</tr>
- <tr>
- <td colspan=5><hr size=3 noshade></td>
- </tr>
- <tr>
- <th align=leftt>| . $locale->text('Method') . qq|</th>
- <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>|
- . $locale->text('Accrual') . qq|
- <input name=method class=radio type=radio value=cash $cash>|
- . $locale->text('EUR') . qq|</td>
- </tr>
<tr>
- <th align=right colspan=4>|
- . $locale->text('Decimalplaces')
- . qq|</th>
+ <td colspan=5><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <th align=leftt>| . $locale->text('Method') . qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>| . $locale->text('Accrual') . qq|
+ <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . qq|</td>
+ </tr>
+ <tr>
+ <th align=right colspan=4>| . $locale->text('Decimalplaces') . qq|</th>
<td><input name=decimalplaces size=3 value="2"></td>
</tr>
<tr>
"nextsub" => "select_part_internal",
"callback_sub" => $callback_sub,
"has_charge" => $has_charge,
- "has_ean" => $has_ean,
+ "has_ean" => $has_ean,
"remap_parts_id" => $remap_parts_id,
"remap_partnumber" => $remap_partnumber });
# -------------------------------------------------------------------------
sub show_history {
- $main::lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
my $form = $main::form;
my %myconfig = %main::myconfig;
my $locale = $main::locale;
- my $dbh = $form->dbconnect(\%myconfig);
- my ($sort, $sortby) = split(/\-\-/, $form->{order});
+ my $dbh = $form->dbconnect(\%myconfig);
+ my ($sort, $sortby) = split(/\-\-/, $form->{order});
$sort =~ s/.*\.(.*)/$1/;
- $form->{title} = $locale->text("History");
- $form->header();
- print $form->parse_html_template( "common/show_history", {
- "DATEN" => $form->get_history($dbh,$form->{input_name},"",$form->{order}),
- "SUCCESS" => ($form->get_history($dbh,$form->{input_name}) ne "0"),
- uc($sort) => 1,
- uc($sort)."BY" => $sortby
- } );
-
- $dbh->disconnect();
- $main::lxdebug->leave_sub();
+ $form->{title} = $locale->text("History");
+ $form->header();
+ print $form->parse_html_template( "common/show_history", {
+ "DATEN" => $form->get_history($dbh,$form->{input_name},"",$form->{order}),
+ "SUCCESS" => ($form->get_history($dbh,$form->{input_name}) ne "0"),
+ uc($sort) => 1,
+ uc($sort)."BY" => $sortby
+ } );
+
+ $dbh->disconnect();
+ $main::lxdebug->leave_sub();
}
# -------------------------------------------------------------------------
# -------------------------------------------------------------------------
sub show_vc_details {
- $main::lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
my $form = $main::form;
my %myconfig = %main::myconfig;
$form->header();
print $form->parse_html_template("common/show_vc_details", { "is_customer" => $form->{vc} eq "customer" });
- $main::lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
# -------------------------------------------------------------------------
$form->format_amount(\%myconfig, $form->{exchangerate});
if ($form->{forex}) {
$exchangerate = qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Exchangerate') . qq|</th>
- <td colspan=3><input type=hidden name=exchangerate size=10 value=$form->{exchangerate}>$form->{exchangerate}</td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Exchangerate') . qq|</th>
+ <td colspan=3><input type=hidden name=exchangerate size=10 value=$form->{exchangerate}>$form->{exchangerate}</td>
+ </tr>
|;
} else {
$exchangerate = qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Exchangerate') . qq|</th>
- <td colspan=3><input name=exchangerate size=10 value=$form->{exchangerate}></td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Exchangerate') . qq|</th>
+ <td colspan=3><input name=exchangerate size=10 value=$form->{exchangerate}></td>
+ </tr>
|;
}
}
<tr>
<td>
<table width=100%>
- <tr>
- <th class=listheading colspan=$colspan>$invoice</th>
- </tr>
+ <tr>
+ <th class=listheading colspan=$colspan>$invoice</th>
+ </tr>
|;
$column_data{invnumber} =
$j++;
$j %= 2;
print qq|
- <tr class=listrow$j>
+ <tr class=listrow$j>
|;
map { print "$column_data{$_}\n" } @column_index;
print qq|
$format .= qq|
<option value=postscript $form->{DF}{postscript}>|
. $locale->text('Postscript') . qq|
- <option value=pdf $form->{DF}{pdf}>| . $locale->text('PDF');
+ <option value=pdf $form->{DF}{pdf}>| . $locale->text('PDF');
}
print qq|
# # saving the history
# if(!exists $form->{addition}) {
-# $form->{addition} = "ADD TRANSACTION";
-# $form->save_history($form->dbconnect(\%myconfig));
+# $form->{addition} = "ADD TRANSACTION";
+# $form->save_history($form->dbconnect(\%myconfig));
# }
# # /saving the history
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|invnumber_| . $form->{invnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
&add_transaction;
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|invnumber_| . $form->{invnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
&add_transaction;
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|invnumber_| . $form->{invnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
&add_transaction;
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
&add_transaction;
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
&add_transaction;
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
&add_transaction;
if(!exists $form->{addition}) {
$form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber});
$form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$form->redirect($locale->text($msg));
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber});
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
&edit;
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber});
- $form->{addition} = "DELETED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$form->redirect($locale->text($msg));
$main::lxdebug->leave_sub();
}
+sub ajax_autocomplete {
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+
+ $form->{column} = 'name' unless $form->{column} =~ /^name$/;
+ $form->{vc} = 'customer' unless $form->{vc} =~ /^customer|vendor$/;
+ $form->{db} = $form->{vc}; # CT expects this
+ $form->{$form->{column}} = $form->{q} || '';
+ $form->{limit} = ($form->{limit} * 1) || 10;
+ $form->{searchitems} ||= '';
+
+ CT->search(\%myconfig, $form);
+
+ print $form->ajax_response_header(),
+ $form->parse_html_template('ct/ajax_autocomplete');
+
+ $main::lxdebug->leave_sub();
+}
+
sub continue { call_sub($main::form->{nextsub}); }
<tr valign=top>
<td>
<table>
- <tr>
- <td align=left nowrap>| . $locale->text("Beraternummer") . qq|</td>
- <td><input name=beraternr size=10 maxlength=7 value="$form->{beraternr}"></td>
-
- <td align=left nowrap>| . $locale->text("DFV-Kennzeichen") . qq|</td>
- <td><input name=dfvkz size=5 maxlength=2 value="$form->{dfvkz}"></td>
- </tr>
- <tr>
- <td align=left nowrap>| . $locale->text("Beratername") . qq|</td>
- <td><input name=beratername size=10 maxlength=9 value="$form->{beratername}"></td>
-
- <td align=left nowrap>| . $locale->text("Password") . qq|</td>
- <td><input name=passwort size=5 maxlength=4 value="$form->{passwort}"></td>
- </tr>
- <tr>
- <td align=left nowrap>| . $locale->text("Mandantennummer") . qq|</td>
- <td><input name=mandantennr size=10 maxlength=5 value="$form->{mandantennr}"></td>
-
- <td align=left nowrap>| . $locale->text("Medium Number") . qq|</td>
- <td><input name=datentraegernr size=5 maxlength=3 value="$form->{datentraegernr}"></td>
- </tr>
- <tr>
- | . # OBE-Export noch nicht implementiert! <td><input checked name=kne type=checkbox class=checkbox value=1> | . $locale->text("Kontonummernerweiterung (KNE)") . qq|</td>
+ <tr>
+ <td align=left nowrap>| . $locale->text("Beraternummer") . qq|</td>
+ <td><input name=beraternr size=10 maxlength=7 value="$form->{beraternr}"></td>
+
+ <td align=left nowrap>| . $locale->text("DFV-Kennzeichen") . qq|</td>
+ <td><input name=dfvkz size=5 maxlength=2 value="$form->{dfvkz}"></td>
+ </tr>
+ <tr>
+ <td align=left nowrap>| . $locale->text("Beratername") . qq|</td>
+ <td><input name=beratername size=10 maxlength=9 value="$form->{beratername}"></td>
+
+ <td align=left nowrap>| . $locale->text("Password") . qq|</td>
+ <td><input name=passwort size=5 maxlength=4 value="$form->{passwort}"></td>
+ </tr>
+ <tr>
+ <td align=left nowrap>| . $locale->text("Mandantennummer") . qq|</td>
+ <td><input name=mandantennr size=10 maxlength=5 value="$form->{mandantennr}"></td>
+
+ <td align=left nowrap>| . $locale->text("Medium Number") . qq|</td>
+ <td><input name=datentraegernr size=5 maxlength=3 value="$form->{datentraegernr}"></td>
+ </tr>
+ <tr>
+ | . # OBE-Export noch nicht implementiert! <td><input checked name=kne type=checkbox class=checkbox value=1> | . $locale->text("Kontonummernerweiterung (KNE)") . qq|</td>
qq|<td><input type="hidden" name="kne" value="1"></td>
<td></td>
- <td align=left nowrap>| . $locale->text("Abrechnungsnummer") . qq|</td>
- <td><input name=abrechnungsnr size=5 maxlength=3 value="$form->{abrechnungsnr}"></td>
- </tr>
+ <td align=left nowrap>| . $locale->text("Abrechnungsnummer") . qq|</td>
+ <td><input name=abrechnungsnr size=5 maxlength=3 value="$form->{abrechnungsnr}"></td>
+ </tr>
<tr>
<td><input name=exporttype type=radio class=radio value=0 checked> |
. $locale->text("Export Buchungsdaten") . qq|</td>
<td></td>
- <td><input name=exporttype type=radio class=radio value=1> |
+ <td><input name=exporttype type=radio class=radio value=1> |
. $locale->text("Export Stammdaten") . qq|</td>
<td></td>
- </td>
+ </td>
</table>
</td>
</tr>
<tr valign=top>
<td>
<table>
- <tr>
+ <tr>
<td align=left><input checked name=zeitraum class=radio type=radio value=monat> </td><td align=left>|
. $locale->text('Monat') . qq|</td>
<td align=left></td>
- <td align=left></td>
+ <td align=left></td>
<td align=left><select name=monat>$form->{allemonate}</select></td>
</tr>
<tr>
<td align=left><input name=zeitraum class=radio type=radio value=quartal> </td><td align=left>|
. $locale->text('Quartal') . qq|</td>
- <td align=left></td>
+ <td align=left></td>
<td align=left></td>
<td align=left><select name=quartal>$form->{allequartale}</select></td>
</tr>
. $locale->text('Datum von') . qq|</td>
<td align=left><input id=transdatefrom name=transdatefrom size=10>
<input type="button" name="transdatefrom" id="trigger_transdatefrom" value="?"></td>
- <td align=left>| . $locale->text('bis') . qq|</td>
+ <td align=left>| . $locale->text('bis') . qq|</td>
<td align=left><input id=transdateto name=transdateto size=10>
<input type="button" name="transdateto" id="trigger_transdateto" value="?"></td>
- </tr>
+ </tr>
</table>
</td>
</tr>
<td>
<table>
<tr>
- <td align=left>| . $locale->text('Von Konto: ') . qq|</td>
+ <td align=left>| . $locale->text('Von Konto: ') . qq|</td>
<td align=left><input name=accnofrom size=8 maxlength=8></td>
</tr>
<tr>
- <td align=left>| . $locale->text('Bis Konto: ') . qq|</td>
+ <td align=left>| . $locale->text('Bis Konto: ') . qq|</td>
<td align=left><input name=accnoto size=8 maxlength=8></td>
</tr>
</table>
DN->save_config(\%myconfig, \%$form);
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
- $form->{snumbers} = qq|dunning_id_| . $form->{"dunning_id"};
+ $form->{snumbers} = qq|dunning_id_| . $form->{"dunning_id"};
$form->{addition} = "SAVED FOR DUNNING";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$form->redirect($locale->text('Dunning Process Config saved!'));
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
- $form->{snumbers} = qq|dunning_id_| . $form->{"dunning_id"};
+ $form->{snumbers} = qq|dunning_id_| . $form->{"dunning_id"};
$form->{addition} = "DUNNING STARTED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|donumber_| . $form->{donumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|donumber_| . $form->{donumber};
- $form->{addition} = "DELETED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
# zwischenspeichern (DO.pm) und als ' '-separierte Liste wieder zurueckschreiben
# Hinweis: delete gibt den wert zurueck und loescht danach das element (nett und einfach)
# $shell: perldoc perlunc; /delete EXPR
- $form->{donumber} = delete $form->{donumber_array};
+ $form->{donumber} = delete $form->{donumber_array};
$form->{deliverydate} = $form->{transdate};
$form->{transdate} = $form->current_date(\%myconfig);
$form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
$ref->{reqdate} ||= $ref->{dord_transdate}; # copy transdates into each invoice row
map { $form->{"${_}_$form->{rowcount}"} = $ref->{$_} } keys %{ $ref };
map { $form->{"${_}_$form->{rowcount}"} = $form->format_amount(\%myconfig, $ref->{$_}) } qw(qty sellprice discount lastcost);
- $form->{"discount_$form->{rowcount}"} = $form->{"discount_$form->{rowcount}"} * 100; #s.a. Bug 1151
- # Anm.: Eine Änderung des discounts in der SL/DO.pm->retrieve (select (doi.discount * 100) as discount) ergibt in psql einen
- # Wert von 10.0000001490116. Ferner ist der Rabatt in der Rechnung dann bei 1.0 (?). Deswegen lasse ich das hier. jb 10.10.09
+ $form->{"discount_$form->{rowcount}"} = $form->{"discount_$form->{rowcount}"} * 100; #s.a. Bug 1151
+ # Anm.: Eine Änderung des discounts in der SL/DO.pm->retrieve (select (doi.discount * 100) as discount) ergibt in psql einen
+ # Wert von 10.0000001490116. Ferner ist der Rabatt in der Rechnung dann bei 1.0 (?). Deswegen lasse ich das hier. jb 10.10.09
}
delete $form->{form_details};
}
my $department = qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Department') . qq|</th>
- <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Department') . qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
| if $form->{selectdepartment};
$form->get_lists("projects" => { "key" => "ALL_PROJECTS",
<tr>
<td>
<table>
- <tr>
- <th align=right>| . $locale->text('Reference') . qq|</th>
- <td><input name=reference size=20></td>
- <th align=right>| . $locale->text('Source') . qq|</th>
- <td><input name=source size=20></td>
- </tr>
- $department
- <tr>
- <th align=right>| . $locale->text('Description') . qq|</th>
- <td colspan=3><input name=description size=40></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Notes') . qq|</th>
- <td colspan=3><input name=notes size=40></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Project Number') . qq|</th>
- <td colspan=3>$projectnumber</td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('From') . qq|</th>
+ <tr>
+ <th align=right>| . $locale->text('Reference') . qq|</th>
+ <td><input name=reference size=20></td>
+ <th align=right>| . $locale->text('Source') . qq|</th>
+ <td><input name=source size=20></td>
+ </tr>
+ $department
+ <tr>
+ <th align=right>| . $locale->text('Description') . qq|</th>
+ <td colspan=3><input name=description size=40></td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('Notes') . qq|</th>
+ <td colspan=3><input name=notes size=40></td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('Project Number') . qq|</th>
+ <td colspan=3>$projectnumber</td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('From') . qq|</th>
$button1
- <th align=right>| . $locale->text('To (time)') . qq|</th>
+ <th align=right>| . $locale->text('To (time)') . qq|</th>
$button2
- </tr>
- <tr>
- <th align=right>| . $locale->text('Include in Report') . qq|</th>
- <td colspan=3>
- <table>
- <tr>
- <td>
- <input name="category" class=radio type=radio value=X checked> |
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('Include in Report') . qq|</th>
+ <td colspan=3>
+ <table>
+ <tr>
+ <td>
+ <input name="category" class=radio type=radio value=X checked> |
. $locale->text('All') . qq|
- <input name="category" class=radio type=radio value=A> |
+ <input name="category" class=radio type=radio value=A> |
. $locale->text('Asset') . qq|
- <input name="category" class=radio type=radio value=L> |
+ <input name="category" class=radio type=radio value=L> |
. $locale->text('Liability') . qq|
- <input name="category" class=radio type=radio value=I> |
+ <input name="category" class=radio type=radio value=I> |
. $locale->text('Revenue') . qq|
- <input name="category" class=radio type=radio value=E> |
+ <input name="category" class=radio type=radio value=E> |
. $locale->text('Expense') . qq|
- </td>
- </tr>
- <tr>
- <table>
- <tr>
- <td align=right><input name="l_id" class=checkbox type=checkbox value=Y></td>
- <td>| . $locale->text('ID') . qq|</td>
- <td align=right><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
- <td>| . $locale->text('Date') . qq|</td>
- <td align=right><input name="l_reference" class=checkbox type=checkbox value=Y checked></td>
- <td>| . $locale->text('Reference') . qq|</td>
- <td align=right><input name="l_description" class=checkbox type=checkbox value=Y checked></td>
- <td>| . $locale->text('Description') . qq|</td>
- <td align=right><input name="l_notes" class=checkbox type=checkbox value=Y></td>
- <td>| . $locale->text('Notes') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_debit" class=checkbox type=checkbox value=Y checked></td>
- <td>| . $locale->text('Debit') . qq|</td>
- <td align=right><input name="l_credit" class=checkbox type=checkbox value=Y checked></td>
- <td>| . $locale->text('Credit') . qq|</td>
- <td align=right><input name="l_source" class=checkbox type=checkbox value=Y checked></td>
- <td>| . $locale->text('Source') . qq|</td>
- <td align=right><input name="l_accno" class=checkbox type=checkbox value=Y checked></td>
- <td>| . $locale->text('Account') . qq|</td>
- </tr>
- <tr>
- <td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
- <td>| . $locale->text('Subtotal') . qq|</td>
- <td align=right><input name="l_projectnumbers" class=checkbox type=checkbox value=Y></td>
- <td>| . $locale->text('Project Number') . qq|</td>
- </tr>
- </table>
- </tr>
- </table>
- </tr>
+ </td>
+ </tr>
+ <tr>
+ <table>
+ <tr>
+ <td align=right><input name="l_id" class=checkbox type=checkbox value=Y></td>
+ <td>| . $locale->text('ID') . qq|</td>
+ <td align=right><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
+ <td>| . $locale->text('Date') . qq|</td>
+ <td align=right><input name="l_reference" class=checkbox type=checkbox value=Y checked></td>
+ <td>| . $locale->text('Reference') . qq|</td>
+ <td align=right><input name="l_description" class=checkbox type=checkbox value=Y checked></td>
+ <td>| . $locale->text('Description') . qq|</td>
+ <td align=right><input name="l_notes" class=checkbox type=checkbox value=Y></td>
+ <td>| . $locale->text('Notes') . qq|</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_debit" class=checkbox type=checkbox value=Y checked></td>
+ <td>| . $locale->text('Debit') . qq|</td>
+ <td align=right><input name="l_credit" class=checkbox type=checkbox value=Y checked></td>
+ <td>| . $locale->text('Credit') . qq|</td>
+ <td align=right><input name="l_source" class=checkbox type=checkbox value=Y checked></td>
+ <td>| . $locale->text('Source') . qq|</td>
+ <td align=right><input name="l_accno" class=checkbox type=checkbox value=Y checked></td>
+ <td>| . $locale->text('Account') . qq|</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td>| . $locale->text('Subtotal') . qq|</td>
+ <td align=right><input name="l_projectnumbers" class=checkbox type=checkbox value=Y></td>
+ <td>| . $locale->text('Project Number') . qq|</td>
+ </tr>
+ </table>
+ </tr>
+ </table>
+ </tr>
</table>
</td>
</tr>
my $department;
$department = qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Department') . qq|</th>
- <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
- <input type=hidden name=selectdepartment value="$form->{selectdepartment}">
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Department') . qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ <input type=hidden name=selectdepartment value="$form->{selectdepartment}">
+ </tr>
| if $form->{selectdepartment};
if ($init) {
$form->{fokus} = "gl.reference";
. " $form->{previous_gldate}"
. qq|</td>
</tr>
- <tr>
- <th align=right>| . $locale->text('Reference') . qq|</th>
- <td><input name=reference size=20 value="$form->{reference}" $readonly></td>
- <td align=left>
- <table>
- <tr>
- <th align=right nowrap>| . $locale->text('Date') . qq|</th>
+ <tr>
+ <th align=right>| . $locale->text('Reference') . qq|</th>
+ <td><input name=reference size=20 value="$form->{reference}" $readonly></td>
+ <td align=left>
+ <table>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Date') . qq|</th>
$button1
- </tr>
- </table>
- </td>
- </tr>|;
+ </tr>
+ </table>
+ </td>
+ </tr>|;
if ($form->{id}) {
print qq|
- <tr>
- <th align=right>| . $locale->text('Belegnummer') . qq|</th>
- <td><input name=id size=20 value="$form->{id}" $readonly></td>
- <td align=left>
- <table>
- <tr>
- <th align=right width=50%>| . $locale->text('Buchungsdatum') . qq|</th>
- <td align=left><input name=gldate size=11 title="$myconfig{dateformat}" value=$form->{gldate} $readonly onBlur=\"check_right_date_format(this)\"></td>
- </tr>
- </table>
- </td>
- </tr>|;
+ <tr>
+ <th align=right>| . $locale->text('Belegnummer') . qq|</th>
+ <td><input name=id size=20 value="$form->{id}" $readonly></td>
+ <td align=left>
+ <table>
+ <tr>
+ <th align=right width=50%>| . $locale->text('Buchungsdatum') . qq|</th>
+ <td align=left><input name=gldate size=11 title="$myconfig{dateformat}" value=$form->{gldate} $readonly onBlur=\"check_right_date_format(this)\"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>|;
}
print qq|
- $department|;
+ $department|;
if ($form->{id}) {
print qq|
- <tr>
- <th align=right width=1%>| . $locale->text('Description') . qq|</th>
- <td width=1%>$description</td>
+ <tr>
+ <th align=right width=1%>| . $locale->text('Description') . qq|</th>
+ <td width=1%>$description</td>
<td>
- <table>
- <tr>
- <th align=left>| . $locale->text('MwSt. inkl.') . qq|</th>
- <td><input type=checkbox name=taxincluded value=1 $taxincluded></td>
- </tr>
- </table>
- </td>
- <td align=left>
- <table width=100%>
- <tr>
- <th align=right width=50%>| . $locale->text('Mitarbeiter') . qq|</th>
- <td align=left><input name=employee size=20 value="| . H($form->{employee}) . qq|" readonly></td>
- </tr>
- </table>
- </td>
- </tr>|;
+ <table>
+ <tr>
+ <th align=left>| . $locale->text('MwSt. inkl.') . qq|</th>
+ <td><input type=checkbox name=taxincluded value=1 $taxincluded></td>
+ </tr>
+ </table>
+ </td>
+ <td align=left>
+ <table width=100%>
+ <tr>
+ <th align=right width=50%>| . $locale->text('Mitarbeiter') . qq|</th>
+ <td align=left><input name=employee size=20 value="| . H($form->{employee}) . qq|" readonly></td>
+ </tr>
+ </table>
+ </td>
+ </tr>|;
} else {
print qq|
- <tr>
- <th align=left width=1%>| . $locale->text('Description') . qq|</th>
- <td width=1%>$description</td>
- <td>
- <table>
- <tr>
- <th align=left>| . $locale->text('MwSt. inkl.') . qq|</th>
- <td><input type=checkbox name=taxincluded value=1 $taxincluded></td>
- </tr>
- </table>
- </td>
- </tr>|;
+ <tr>
+ <th align=left width=1%>| . $locale->text('Description') . qq|</th>
+ <td width=1%>$description</td>
+ <td>
+ <table>
+ <tr>
+ <th align=left>| . $locale->text('MwSt. inkl.') . qq|</th>
+ <td><input type=checkbox name=taxincluded value=1 $taxincluded></td>
+ </tr>
+ </table>
+ </td>
+ </tr>|;
}
print qq|
<tr>
<td colspan=4>
<table width=100%>
- <tr class=listheading>
- <th class=listheading style="width:15%">|
+ <tr class=listheading>
+ <th class=listheading style="width:15%">|
. $locale->text('Account') . qq|</th>
- <th class=listheading style="width:10%">| . $locale->text('Chart balance') . qq|</th>
- <th class=listheading style="width:10%">|
+ <th class=listheading style="width:10%">| . $locale->text('Chart balance') . qq|</th>
+ <th class=listheading style="width:10%">|
. $locale->text('Debit') . qq|</th>
- <th class=listheading style="width:10%">|
+ <th class=listheading style="width:10%">|
. $locale->text('Credit') . qq|</th>
<th class=listheading style="width:10%">|
. $locale->text('Tax') . qq|</th>
if ($form->{show_details}) {
print qq|
- <th class=listheading style="width:20%">| . $locale->text('Source') . qq|</th>
- <th class=listheading style="width:20%">| . $locale->text('Memo') . qq|</th>
- <th class=listheading style="width:20%">| . $locale->text('Project Number') . qq|</th>
+ <th class=listheading style="width:20%">| . $locale->text('Source') . qq|</th>
+ <th class=listheading style="width:20%">| . $locale->text('Memo') . qq|</th>
+ <th class=listheading style="width:20%">| . $locale->text('Project Number') . qq|</th>
|;
}
print qq|
- </tr>
+ </tr>
$jsscript
|;
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
- $form->{addition} = "DELETED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$form->redirect($locale->text('Transaction deleted!'))
# <th class=listtop colspan=6>| . $locale->text('choice part') . qq|</th>
# </tr>
# <tr height="5"></tr>
-# <tr class=listheading>
-# <th> </th>
-# <th class=listheading>| . $locale->text('Part Number') . qq|</th>
-# <th class=listheading>| . $locale->text('Part Description') . qq|</th>
-# <th class=listheading>| . $locale->text('Unit of measure') . qq|</th>
-# <th class=listheading>| . $locale->text('Sell Price') . qq|</th>
-# <th class=listheading>| . $locale->text('soldtotal') . qq|</th>
-# </tr>|;
+# <tr class=listheading>
+# <th> </th>
+# <th class=listheading>| . $locale->text('Part Number') . qq|</th>
+# <th class=listheading>| . $locale->text('Part Description') . qq|</th>
+# <th class=listheading>| . $locale->text('Unit of measure') . qq|</th>
+# <th class=listheading>| . $locale->text('Sell Price') . qq|</th>
+# <th class=listheading>| . $locale->text('soldtotal') . qq|</th>
+# </tr>|;
#
# my $j = 0;
# my $i = $form->{rows};
# <tr class=listrow| . ($j % 2) . qq|>|;
# if ($j == 1) {
# print qq|
-# <td><input name=ndx class=radio type=radio value=$j checked></td>|;
+# <td><input name=ndx class=radio type=radio value=$j checked></td>|;
# } else {
# print qq|
-# <td><input name=ndx class=radio type=radio value=$j></td>|;
+# <td><input name=ndx class=radio type=radio value=$j></td>|;
# }
# print qq|
-# <td><input name="new_partnumber_$j" type=hidden value="$form->{"partnumber_$j"}">$form->{"partnumber_$j"}</td>
-# <td><input name="new_description_$j" type=hidden value="$form->{"description_$j"}">$form->{"description_$j"}</td>
-# <td><input name="new_unit_$j" type=hidden value="$form->{"unit_$j"}">$form->{"unit_$j"}</td>
-# <td><input name="new_sellprice_$j" type=hidden value="$form->{"sellprice_$j"}">$form->{"sellprice_$j"}</td>
-# <td><input name="new_soldtotal_$j" type=hidden value="$form->{"soldtotal_$j"}">$form->{"soldtotal_$j"}</td>
+# <td><input name="new_partnumber_$j" type=hidden value="$form->{"partnumber_$j"}">$form->{"partnumber_$j"}</td>
+# <td><input name="new_description_$j" type=hidden value="$form->{"description_$j"}">$form->{"description_$j"}</td>
+# <td><input name="new_unit_$j" type=hidden value="$form->{"unit_$j"}">$form->{"unit_$j"}</td>
+# <td><input name="new_sellprice_$j" type=hidden value="$form->{"sellprice_$j"}">$form->{"sellprice_$j"}</td>
+# <td><input name="new_soldtotal_$j" type=hidden value="$form->{"soldtotal_$j"}">$form->{"soldtotal_$j"}</td>
# </tr>
#
-# <input name="new_id_$j" type=hidden value="$form->{"id_$j"}">|;
+# <input name="new_id_$j" type=hidden value="$form->{"id_$j"}">|;
# }
#
# print qq|
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|partnumber_| . $form->{partnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$parts_id = $form->{id};
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|partnumber_| . $form->{partnumber};
- $form->{addition} = "SAVED AS NEW";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED AS NEW";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$form->{id} = 0;
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|partnumber_| . $form->{partnumber};
- $form->{addition} = "DELETED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
my $rc = IC->delete(\%myconfig, \%$form);
$lxdebug->leave_sub();
}
+sub ajax_autocomplete {
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+
+ $form->{column} = 'description' unless $form->{column} =~ /^partnumber|description$/;
+ $form->{$form->{column}} = $form->{q} || '';
+ $form->{limit} = ($form->{limit} * 1) || 10;
+ $form->{searchitems} ||= '';
+
+ my @results = IC->all_parts(\%myconfig, $form);
+
+ print $form->ajax_response_header(),
+ $form->parse_html_template('ic/ajax_autocomplete');
+
+ $main::lxdebug->leave_sub();
+}
+
sub continue { call_sub($form->{"nextsub"}); }
use SL::PE;
use SL::AM;
use Data::Dumper;
-########################################
-# Eintrag fuer Version 2.2.0 geaendert #
-# neue Optik im Rechnungsformular #
-########################################
-#sub display_row {
-# $main::lxdebug->enter_sub();
-# my $numrows = shift;
-#
-# my $is_sales =
-# (substr($form->{type}, 0, 6) eq "sales_")
-# || (($form->{type} eq "invoice") && ($form->{script} eq "is.pl"))
-# || ($form->{type} eq 'credit_note');
-#
-# if ($lizenzen && $form->{vc} eq "customer") {
-# if ($form->{type} =~ /sales_order/) {
-# @column_index = (runningnumber, partnumber, description, ship, qty);
-# } elsif ($form->{type} =~ /sales_quotation/) {
-# @column_index = (runningnumber, partnumber, description, qty);
-# } else {
-# @column_index = (runningnumber, partnumber, description, qty);
-# }
-# } else {
-# if ( ($form->{type} =~ /purchase_order/)
-# || ($form->{type} =~ /sales_order/)) {
-# @column_index = (runningnumber, partnumber, description, ship, qty);
-# } else {
-# @column_index = (runningnumber, partnumber, description, qty);
-# }
-# }
-############### ENDE Neueintrag ##################
-#
-# my $all_units = AM->retrieve_units(\%myconfig, $form);
-# my $dimension_units = $all_units;
-# my $service_units = $all_units;
-#
-# my %price_factors = map { $_->{id} => $_->{factor} } @{ $form->{ALL_PRICE_FACTORS} };
-#
-# push @column_index, qw(unit);
-#
-# #for pricegroups column
-# if ( $form->{type} =~ (/sales_quotation/)
-# or (($form->{level} =~ /Sales/) and ($form->{type} =~ /invoice/))
-# or (($form->{level} eq undef) and ($form->{type} =~ /invoice/))
-# or ($form->{type} =~ /sales_order/)) {
-# push @column_index, qw(sellprice_pg);
-# }
-#
-# push @column_index, qw(sellprice);
-#
-# if ($form->{vc} eq 'customer') {
-# push @column_index, qw(discount);
-# }
-#
-# push @column_index, "linetotal";
-#
-# my $colspan = $#column_index + 1;
-#
-# $form->{invsubtotal} = 0;
-# map { $form->{"${_}_base"} = 0 } (split(/ /, $form->{taxaccounts}));
-#
-#########################################
-# # Eintrag fuer Version 2.2.0 geaendert #
-# # neue Optik im Rechnungsformular #
-#########################################
-# $column_data{runningnumber} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('No.') . qq|</th>|;
-# $column_data{partnumber} = qq|<th align="left" nowrap width="12%" class="listheading">| . $locale->text('Number') . qq|</th>|;
-# $column_data{description} = qq|<th align="left" nowrap width="30%" class="listheading">| . $locale->text('Part Description') . qq|</th>|;
-# if ($form->{"type"} eq "purchase_order") {
-# $column_data{ship} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('Ship rcvd') . qq|</th>|;
-# } else {
-# $column_data{ship} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('Ship') . qq|</th>|;
-# }
-# $column_data{qty} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('Qty') . qq|</th>|;
-# $column_data{unit} = qq|<th align="left" nowrap width="20%" class="listheading">| . $locale->text('Unit') . qq|</th>|;
-# $column_data{license} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('License') . qq|</th>|;
-# $column_data{serialnr} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('Serial No.') . qq|</th>|;
-# $column_data{projectnr} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('Project') . qq|</th>|;
-# $column_data{sellprice} = qq|<th align="left" nowrap width="15%" class="listheading">| . $locale->text('Price') . qq|</th>|;
-# $column_data{sellprice_pg} = qq|<th align="left" nowrap width="15%" class="listheading">| . $locale->text('Pricegroup') . qq|</th>|;
-# $column_data{discount} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('Discount') . qq|</th>|;
-# $column_data{linetotal} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('Extended') . qq|</th>|;
-# $column_data{bin} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('Bin') . qq|</th>|;
-############### ENDE Neueintrag ##################
-#
-# $myconfig{"show_form_details"} = 1
-# unless (defined($myconfig{"show_form_details"}));
-# $form->{"show_details"} = $myconfig{"show_form_details"}
-# unless (defined($form->{"show_details"}));
-# $form->{"show_details"} = $form->{"show_details"} ? 1 : 0;
-# my $show_details_new = 1 - $form->{"show_details"};
-# my $show_details_checked = $form->{"show_details"} ? "checked" : "";
-#
-# print qq|
-# <tr>
-# <td>| . $cgi->hidden("-name" => "show_details", "-value" => $form->{show_details}) . qq|
-# <input type="checkbox" id="cb_show_details" onclick="show_form_details($show_details_new);" $show_details_checked>
-# <label for="cb_show_details">| . $locale->text("Show details") . qq|</label><br>
-# <table width="100%">
-# <tr class="listheading">|;
-#
-# map { print "\n$column_data{$_}" } @column_index;
-#
-# print qq|
-# </tr>
-#|;
-#
-# $runningnumber = $locale->text('No.');
-# $deliverydate = $locale->text('Delivery Date');
-# $serialnumber = $locale->text('Serial No.');
-# $projectnumber = $locale->text('Project');
-# $partsgroup = $locale->text('Group');
-# $reqdate = $locale->text('Reqdate');
-#
-# $delvar = 'deliverydate';
-#
-# if ($form->{type} =~ /_order$/ || $form->{type} =~ /_quotation$/) {
-# $deliverydate = $locale->text('Required by');
-# $delvar = 'reqdate';
-# }
-#
-# $form->{marge_total} = 0;
-# $form->{sellprice_total} = 0;
-# $form->{lastcost_total} = 0;
-# my %projectnumber_labels = ();
-# my @projectnumber_values = ("");
-# foreach my $item (@{ $form->{"ALL_PROJECTS"} }) {
-# push(@projectnumber_values, $item->{"id"});
-# $projectnumber_labels{$item->{"id"}} = $item->{"projectnumber"};
-# }
-#
-# for $i (1 .. $numrows) {
-#
-# # undo formatting
-# map {
-# $form->{"${_}_$i"} =
-# $form->parse_amount(\%myconfig, $form->{"${_}_$i"})
-# } qw(qty ship discount sellprice price_new price_old) unless ($form->{simple_save});
-#
-# if (!$form->{"unit_old_$i"}) {
-# # Neue Ware aus der Datenbank. In diesem Fall ist unit_$i die
-# # Einheit, wie sie in den Stammdaten hinterlegt wurde.
-# # Es sollte also angenommen werden, dass diese ausgewaehlt war.
-# $form->{"unit_old_$i"} = $form->{"unit_$i"};
-# }
-#
-# # Die zuletzt ausgewaehlte mit der aktuell ausgewaehlten Einheit
-# # vergleichen und bei Unterschied den Preis entsprechend umrechnen.
-# $form->{"selected_unit_$i"} = $form->{"unit_$i"} unless ($form->{"selected_unit_$i"});
-#
-# my $check_units = $form->{"inventory_accno_$i"} ? $dimension_units : $service_units;
-# if (!$check_units->{$form->{"selected_unit_$i"}} ||
-# ($check_units->{$form->{"selected_unit_$i"}}->{"base_unit"} ne
-# $all_units->{$form->{"unit_old_$i"}}->{"base_unit"})) {
-# # Die ausgewaehlte Einheit ist fuer diesen Artikel nicht gueltig
-# # (z.B. Dimensionseinheit war ausgewaehlt, es handelt sich aber
-# # um eine Dienstleistung). Dann keinerlei Umrechnung vornehmen.
-# $form->{"unit_old_$i"} = $form->{"selected_unit_$i"} = $form->{"unit_$i"};
-# }
-# if ((!$form->{"prices_$i"}) || ($form->{"new_pricegroup_$i"} == $form->{"old_pricegroup_$i"})) {
-# if ($form->{"unit_old_$i"} ne $form->{"selected_unit_$i"}) {
-# my $basefactor = 1;
-# if (defined($all_units->{$form->{"unit_old_$i"}}->{"factor"}) &&
-# $all_units->{$form->{"unit_old_$i"}}->{"factor"}) {
-# $basefactor = $all_units->{$form->{"selected_unit_$i"}}->{"factor"} /
-# $all_units->{$form->{"unit_old_$i"}}->{"factor"};
-# }
-# $form->{"sellprice_$i"} *= $basefactor;
-# $form->{"unit_old_$i"} = $form->{"selected_unit_$i"};
-# }
-# }
-#
-# ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
-# $decimalplaces = max length($dec), 2;
-#
-# $price_factor = $price_factors{$form->{"price_factor_id_$i"}} || 1;
-# $discount = (100 - $form->{"discount_$i"} * 1) / 100;
-#
-# $linetotal = $form->round_amount($form->{"sellprice_$i"} * $form->{"qty_$i"} * $discount / $price_factor, $decimalplaces);
-#
-# my $real_sellprice = $form->{"sellprice_$i"} * $discount / $price_factor;
-#
-# # marge calculations
-# my ($marge_font_start, $marge_font_end);
-#
-# $form->{"lastcost_$i"} *= 1;
-#
-# $marge_price_factor = $form->{"marge_price_factor_$i"} * 1 || 1;
-#
-# if ($real_sellprice && ($form->{"qty_$i"} * 1)) {
-# $form->{"marge_percent_$i"} = ($real_sellprice - $form->{"lastcost_$i"} / $marge_price_factor) * 100 / $real_sellprice;
-# $myconfig{"marge_percent_warn"} = 15 unless (defined($myconfig{"marge_percent_warn"}));
-#
-# if ($form->{"id_$i"} &&
-# ($form->{"marge_percent_$i"} < (1 * $myconfig{"marge_percent_warn"}))) {
-# $marge_font_start = "<font color=\"#ff0000\">";
-# $marge_font_end = "</font>";
-# }
-#
-# } else {
-# $form->{"marge_percent_$i"} = 0;
-# }
-#
-# my $marge_adjust_credit_note = $form->{type} eq 'credit_note' ? -1 : 1;
-# $form->{"marge_total_$i"} = ($real_sellprice - $form->{"lastcost_$i"} / $marge_price_factor) * $form->{"qty_$i"} * $marge_adjust_credit_note;
-# $form->{"marge_total"} += $form->{"marge_total_$i"};
-# $form->{"lastcost_total"} += $form->{"lastcost_$i"} * $form->{"qty_$i"} / $marge_price_factor;
-# $form->{"sellprice_total"} += $real_sellprice * $form->{"qty_$i"};
-#
-# map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(marge_total marge_percent);
-#
-# # convert " to "
-# map { $form->{"${_}_$i"} =~ s/\"/"/g }
-# qw(partnumber description unit unit_old);
-#
-#########################################
-# # Eintrag fuer Version 2.2.0 geaendert #
-# # neue Optik im Rechnungsformular #
-#########################################
-# $column_data{runningnumber} =
-# qq|<td><input name="runningnumber_$i" size="5" value="$i"></td>|; # HuT
-############### ENDE Neueintrag ##################
-#
-# $column_data{partnumber} =
-# qq|<td><input name="partnumber_$i" size=12 value="$form->{"partnumber_$i"}"></td>|;
-#
-# if (($rows = $form->numtextrows($form->{"description_$i"}, 30, 6)) > 1) {
-# $column_data{description} =
-# qq|<td><textarea name="description_$i" rows="$rows" cols="30" wrap="soft">| . H($form->{"description_$i"}) . qq|</textarea><button type="button" onclick="set_longdescription_window('longdescription_$i')">| . $locale->text('L') . qq|</button></td>|;
-# } else {
-# $column_data{description} =
-# qq|<td><input name="description_$i" size="30" value="| . $form->quote($form->{"description_$i"}) . qq|"><button type="button" onclick="set_longdescription_window('longdescription_$i')">| . $locale->text('L') . qq|</button></td>|;
-# }
-#
-# (my $qty_dec) = ($form->{"qty_$i"} =~ /\.(\d+)/);
-# $qty_dec = length $qty_dec;
-#
-# $column_data{qty} =
-# qq|<td align="right" nowrap><input name="qty_$i" size="5" value="|
-# . $form->format_amount(\%myconfig, $form->{"qty_$i"}, $qty_dec) .qq|">|;
-# if ($form->{"formel_$i"}) {
-# $column_data{qty} .= qq|<button type="button" onclick="calculate_qty_selection_window('qty_$i','alu_$i', 'formel_$i', $i)">| . $locale->text('*/') . qq|</button>|
-# . $cgi->hidden("-name" => "formel_$i", "-value" => $form->{"formel_$i"}) . $cgi->hidden("-name" => "alu_$i", "-value" => $form->{"alu_$i"});
-# }
-# $column_data{qty} .= qq|</td>|;
-# $column_data{ship} =
-# qq|<td align="right"><input name="ship_$i" size=5 value="|
-# . $form->format_amount(\%myconfig, $form->{"ship_$i"})
-# . qq|"></td>|;
-#
-# my $is_part = $form->{"inventory_accno_$i"};
-# my $is_assembly = $form->{"assembly_$i"};
-# my $is_assigned = $form->{"id_$i"};
-# my $this_unit = $form->{"unit_$i"};
-# if ($form->{"selected_unit_$i"} && $this_unit &&
-# $all_units->{$form->{"selected_unit_$i"}} && $all_units->{$this_unit} &&
-# ($all_units->{$form->{"selected_unit_$i"}}->{"base_unit"} eq $all_units->{$this_unit}->{"base_unit"})) {
-# $this_unit = $form->{"selected_unit_$i"};
-# } elsif (!$is_assigned ||
-# ($is_part && !$this_unit && ($all_units->{$this_unit} && ($all_units->{$this_unit}->{"base_unit"} eq $all_units->{"kg"}->{"base_unit"})))) {
-# $this_unit = "kg";
-# }
-#
-# my $price_factor_select;
-# if (0 < scalar @{ $form->{ALL_PRICE_FACTORS} }) {
-# my @values = ('', map { $_->{id} } @{ $form->{ALL_PRICE_FACTORS} });
-# my %labels = map { $_->{id} => $_->{description} } @{ $form->{ALL_PRICE_FACTORS} };
-#
-# $price_factor_select =
-# NTI($cgi->popup_menu('-name' => "price_factor_id_$i",
-# '-default' => $form->{"price_factor_id_$i"},
-# '-values' => \@values,
-# '-labels' => \%labels,
-# '-style' => 'width:90px'))
-# . ' ';
-# }
-#
-# $column_data{"unit"} = "<td>" .
-# $price_factor_select .
-# AM->unit_select_html($is_part || $is_assembly ? $dimension_units :
-# $is_assigned ? $service_units : $all_units,
-# "unit_$i", $this_unit,
-# $is_assigned ? $form->{"unit_$i"} : undef)
-# . "</td>";
-#
-# # build in drop down list for pricesgroups
-# if ($form->{"prices_$i"}) {
-# if ($form->{"new_pricegroup_$i"} != $form->{"old_pricegroup_$i"}) {
-# $price_tmp = $form->format_amount(\%myconfig, $form->{"price_new_$i"}, $decimalplaces);
-# } else {
-# $price_tmp = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
-# }
-#
-# $column_data{sellprice_pg} =
-# qq|<td align="right"><select name="sellprice_pg_$i">$form->{"prices_$i"}</select></td>|;
-# $column_data{sellprice} =
-# qq|<td><input name="sellprice_$i" size="10" value="$price_tmp" onBlur=\"check_right_number_format(this)\"></td>|;
-# } else {
-#
-# # for last row and report
-# # set pricegroup drop down list from report menu
-# if ($form->{"sellprice_$i"} != 0) {
-# $prices =
-# qq|<option value="$form->{"sellprice_$i"}--$form->{"pricegroup_id_$i"}" selected>$form->{"pricegroup_$i"}</option>\n|;
-#
-# $form->{"pricegroup_old_$i"} = $form->{"pricegroup_id_$i"};
-#
-# $column_data{sellprice_pg} =
-# qq|<td align="right"><select name="sellprice_pg_$i">$prices</select></td>|;
-#
-# } else {
-#
-# # for last row
-# $column_data{sellprice_pg} = qq|<td align="right"> </td>|;
-# }
-#
-# $column_data{sellprice} =
-# qq|<td><input name="sellprice_$i" size="10" onBlur=\"check_right_number_format(this)\" value="|
-# . $form->format_amount(\%myconfig, $form->{"sellprice_$i"},
-# $decimalplaces)
-# . qq|"></td>|;
-# }
-# $column_data{discount} =
-# qq|<td align="right"><input name="discount_$i" size=3 value="|
-# . $form->format_amount(\%myconfig, $form->{"discount_$i"})
-# . qq|"></td>|;
-# $column_data{linetotal} =
-# qq|<td align="right">|
-# . $form->format_amount(\%myconfig, $linetotal, 2)
-# . qq|</td>|;
-# $column_data{bin} = qq|<td>$form->{"bin_$i"}</td>|;
-#
-#########################################
-# # Eintrag fuer Version 2.2.0 geaendert #
-# # neue Optik im Rechnungsformular #
-#########################################
-# # if ($lizenzen && $form->{type} eq "invoice" && $form->{vc} eq "customer") {
-# # $column_data{license} = qq|<td><select name="licensenumber_$i">$form->{"lizenzen_$i"}></select></td>|;
-# # }
-# #
-# # if ($form->{type} !~ /_quotation/) {
-# # $column_data{serialnr} = qq|<td><input name="serialnumber_$i" size=10 value="$form->{"serialnumber_$i"}"></td>|;
-# # }
-# #
-# # $column_data{projectnr} = qq|<td><input name="projectnumber_$i" size=10 value="$form->{"projectnumber_$i"}"></td>|;
-############### ENDE Neueintrag ##################
-# my $j = $i % 2;
-# print qq|
-#
-# <tr valign="top" class="listrow$j">|;
-#
-# map { print "\n$column_data{$_}" } @column_index;
-#
-# print("</tr>\n" .
-# $cgi->hidden("-name" => "unit_old_$i",
-# "-value" => $form->{"selected_unit_$i"})
-# . "\n" .
-# $cgi->hidden("-name" => "price_new_$i",
-# "-value" => $form->format_amount(\%myconfig, $form->{"price_new_$i"}))
-# . "\n");
-# map({ print($cgi->hidden("-name" => $_, "-value" => $form->{$_}) . "\n"); }
-# ("orderitems_id_$i", "bo_$i", "pricegroup_old_$i", "price_old_$i",
-# "id_$i", "inventory_accno_$i", "bin_$i", "partsgroup_$i", "partnotes_$i",
-# "income_accno_$i", "expense_accno_$i", "listprice_$i", "assembly_$i",
-# "taxaccounts_$i", "ordnumber_$i", "transdate_$i", "cusordnumber_$i",
-# "longdescription_$i", "basefactor_$i", "marge_total_$i", "marge_percent_$i", "lastcost_$i",
-# "marge_price_factor_$i"));
-#
-#########################################
-# # Eintrag fuer Version 2.2.0 geaendert #
-# # neue Optik im Rechnungsformular #
-#########################################
-#
-# my $row_style_attr =
-# 'style="display:none;"' if (!$form->{"show_details"});
-#
-# # print second row
-# print qq|
-# <tr class="listrow$j" $row_style_attr>
-# <td colspan="$colspan">
-#|;
-# if ($lizenzen && $form->{type} eq "invoice" && $form->{vc} eq "customer") {
-# my $selected = $form->{"licensenumber_$i"};
-# my $lizenzen_quoted;
-# $form->{"lizenzen_$i"} =~ s/ selected//g;
-# $form->{"lizenzen_$i"} =~
-# s/value="${selected}"\>/value="${selected}" selected\>/;
-# $lizenzen_quoted = $form->{"lizenzen_$i"};
-# $lizenzen_quoted =~ s/\"/"/g;
-# print qq|
-# <b>Lizenz\#</b> <select name="licensenumber_$i" size="1">
-# $form->{"lizenzen_$i"}
-# </select>
-# <input type="hidden" name="lizenzen_$i" value="${lizenzen_quoted}">
-#|;
-# }
-# if ($form->{type} !~ /_quotation/) {
-# print qq|
-# <b>$serialnumber</b> <input name="serialnumber_$i" size="15" value="$form->{"serialnumber_$i"}">|;
-# }
-#
-# print qq|<b>$projectnumber</b> | .
-# NTI($cgi->popup_menu('-name' => "project_id_$i",
-# '-values' => \@projectnumber_values,
-# '-labels' => \%projectnumber_labels,
-# '-default' => $form->{"project_id_$i"}));
-#
-# if ($form->{type} eq 'invoice' or $form->{type} =~ /order/) {
-# my $reqdate_term =
-# ($form->{type} eq 'invoice')
-# ? 'deliverydate'
-# : 'reqdate'; # invoice uses a different term for the same thing.
-# print qq|
-# <b>${$reqdate_term}</b> <input name="${reqdate_term}_$i" size="11" onBlur="check_right_date_format(this)" value="$form->{"${reqdate_term}_$i"}">
-#|;
-# }
-# my $subtotalchecked = ($form->{"subtotal_$i"}) ? "checked" : "";
-# print qq|
-# <b>|.$locale->text('Subtotal').qq|</b> <input type="checkbox" name="subtotal_$i" value="1" $subtotalchecked>
-#|;
-#
-# if ($form->{"id_$i"} && $is_sales) {
-# my $marge_price_factor;
-#
-# $form->{"marge_price_factor_$i"} *= 1;
-#
-# if ($form->{"marge_price_factor_$i"} && (1 != $form->{"marge_price_factor_$i"})) {
-# $marge_price_factor = '/' . $form->format_amount(\%myconfig, $form->{"marge_price_factor_$i"});
-# }
-#
-# print qq|
-# ${marge_font_start}<b>| . $locale->text('Ertrag') . qq|</b> $form->{"marge_total_$i"} $form->{"marge_percent_$i"} % ${marge_font_end}|;
-# }
-# print qq|
-# <b>| . $locale->text('LP') . qq|</b> | . $form->format_amount(\%myconfig, $form->{"listprice_$i"}, 2) . qq|
-# <b>| . $locale->text('EK') . qq|</b> | . $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2) . $marge_price_factor;
-#
-#
-# print qq|
-# </td>
-# </tr>
-#|;
-#
-############### ENDE Neueintrag ##################
-#
-# map { $form->{"${_}_base"} += $linetotal }
-# (split(/ /, $form->{"taxaccounts_$i"}));
-#
-# $form->{invsubtotal} += $linetotal;
-# }
-#
-# print qq|
-# </table>
-# </td>
-# </tr>
-#|;
-#
-# if (0 != ($form->{sellprice_total} * 1)) {
-# $form->{marge_percent} = ($form->{sellprice_total} - $form->{lastcost_total}) / $form->{sellprice_total} * 100;
-# }
-#
-# $main::lxdebug->leave_sub();
-#}
sub set_pricegroup {
$main::lxdebug->enter_sub();
#($form->{"sellprice_$i"},$form->{"$pricegroup_old_$i"}) = split /--/, $form->{"sellprice_$i"};
# fuer assemblies auskommentiert. siehe oben
- # $form->{sellprice} += ($form->{"qty_$i"} * $form->{"sellprice_$i"} / ($form->{"price_factor_$i"} || 1));
+ # $form->{sellprice} += ($form->{"qty_$i"} * $form->{"sellprice_$i"} / ($form->{"price_factor_$i"} || 1));
$form->{weight} += ($form->{"qty_$i"} * $form->{"weight_$i"} / ($form->{"price_factor_$i"} || 1));
$count++;
}
call_sub($display_form);
# saving the history
- if(!exists $form->{addition}) {
+ if(!exists $form->{addition}) {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
- $form->{addition} = "PRINTED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "PRINTED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
exit;
if(!exists $form->{addition}) {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
if($form->{media} =~ /printer/) {
- $form->{addition} = "PRINTED";
+ $form->{addition} = "PRINTED";
}
elsif($form->{media} =~ /email/) {
- $form->{addition} = "MAILED";
+ $form->{addition} = "MAILED";
}
elsif($form->{media} =~ /queue/) {
- $form->{addition} = "QUEUED";
+ $form->{addition} = "QUEUED";
}
elsif($form->{media} =~ /screen/) {
- $form->{addition} = "SCREENED";
+ $form->{addition} = "SCREENED";
}
$form->save_history($form->dbconnect(\%myconfig));
}
<tr>
<td>
<table>
- <tr class="listheading">
- <th class="listheading" colspan="2" width="50%">|
+ <tr class="listheading">
+ <th class="listheading" colspan="2" width="50%">|
. $locale->text('Billing Address') . qq|</th>
- <th class="listheading" width="50%">|
+ <th class="listheading" width="50%">|
. $locale->text('Shipping Address') . qq|</th>
- </tr>
- <tr height="5"></tr>
- <tr>
- <th align="right" nowrap>$number</th>
- <td>$form->{"$form->{vc}number"}</td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Company Name') . qq|</th>
- <td>$form->{name}</td>
- <td><input name="shiptoname" size="35" value="$form->{shiptoname}"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Department') . qq|</th>
- <td>$form->{department_1}</td>
- <td><input name="shiptodepartment_1" size="35" value="$form->{shiptodepartment_1}"></td>
- </tr>
- <tr>
- <th align="right" nowrap> </th>
- <td>$form->{department_2}</td>
- <td><input name="shiptodepartment_2" size="35" value="$form->{shiptodepartment_2}"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Street') . qq|</th>
- <td>$form->{street}</td>
- <td><input name="shiptostreet" size="35" value="$form->{shiptostreet}"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Zipcode') . qq|</th>
- <td>$form->{zipcode}</td>
- <td><input name="shiptozipcode" size="35" value="$form->{shiptozipcode}"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('City') . qq|</th>
- <td>$form->{city}</td>
- <td><input name="shiptocity" size="35" value="$form->{shiptocity}"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Country') . qq|</th>
- <td>$form->{country}</td>
- <td><input name="shiptocountry" size="35" value="$form->{shiptocountry}"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Contact') . qq|</th>
- <td>$form->{contact}</td>
- <td><input name="shiptocontact" size="35" value="$form->{shiptocontact}"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Phone') . qq|</th>
- <td>$form->{phone}</td>
- <td><input name="shiptophone" size="20" value="$form->{shiptophone}"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Fax') . qq|</th>
- <td>$form->{fax}</td>
- <td><input name="shiptofax" size="20" value="$form->{shiptofax}"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('E-mail') . qq|</th>
- <td>$form->{email}</td>
- <td><input name="shiptoemail" size="35" value="$form->{shiptoemail}"></td>
- </tr>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <th align="right" nowrap>$number</th>
+ <td>$form->{"$form->{vc}number"}</td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('Company Name') . qq|</th>
+ <td>$form->{name}</td>
+ <td><input name="shiptoname" size="35" value="$form->{shiptoname}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('Department') . qq|</th>
+ <td>$form->{department_1}</td>
+ <td><input name="shiptodepartment_1" size="35" value="$form->{shiptodepartment_1}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap> </th>
+ <td>$form->{department_2}</td>
+ <td><input name="shiptodepartment_2" size="35" value="$form->{shiptodepartment_2}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('Street') . qq|</th>
+ <td>$form->{street}</td>
+ <td><input name="shiptostreet" size="35" value="$form->{shiptostreet}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('Zipcode') . qq|</th>
+ <td>$form->{zipcode}</td>
+ <td><input name="shiptozipcode" size="35" value="$form->{shiptozipcode}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('City') . qq|</th>
+ <td>$form->{city}</td>
+ <td><input name="shiptocity" size="35" value="$form->{shiptocity}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('Country') . qq|</th>
+ <td>$form->{country}</td>
+ <td><input name="shiptocountry" size="35" value="$form->{shiptocountry}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('Contact') . qq|</th>
+ <td>$form->{contact}</td>
+ <td><input name="shiptocontact" size="35" value="$form->{shiptocontact}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('Phone') . qq|</th>
+ <td>$form->{phone}</td>
+ <td><input name="shiptophone" size="20" value="$form->{shiptophone}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('Fax') . qq|</th>
+ <td>$form->{fax}</td>
+ <td><input name="shiptofax" size="20" value="$form->{shiptofax}"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('E-mail') . qq|</th>
+ <td>$form->{email}</td>
+ <td><input name="shiptoemail" size="35" value="$form->{shiptoemail}"></td>
+ </tr>
</table>
</td>
</tr>
$main::auth->assert('vendor_invoice_edit');
+ $form->{vc} = 'vendor';
+
# create links
$form->{webdav} = $main::webdav;
$form->{jsscript} = 1;
my $locale = $main::locale;
my $cgi = $main::cgi;
- $main::auth->assert('vendor_invoice_edit');
+ $main::auth->assert('invoice_edit');
- push @{ $form->{AJAX} }, CGI::Ajax->new('set_duedate_vendor' => "$form->{script}?action=set_duedate_vendor");
+ our %TMPL_VAR = ();
+ my @custom_hiddens;
- # set option selected
- foreach my $item (qw(AP vendor currency department)) {
- $form->{"select$item"} =~ s/ selected//;
- $form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
- }
+ $form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id};
+ $form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id};
- $form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id};
- $form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id};
$form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
- $form->{radier} = ($form->current_date(\%myconfig) eq $form->{gldate}) ? 1 : 0;
- $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
- $form->{creditlimit} = $form->format_amount(\%myconfig, $form->{creditlimit}, 0, "0");
- $form->{creditremaining} = $form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0");
-
- my $exchangerate = "";
- if ($form->{currency} ne $form->{defaultcurrency}) {
- if ($form->{forex}) {
- $exchangerate .= qq| <th align=right nowrap>| . $locale->text('Exchangerate') . qq|</th>
- <td>$form->{exchangerate}<input type=hidden name=exchangerate value=$form->{exchangerate}></td>\n|;
- } else {
- $exchangerate .= qq| <th align=right nowrap>| . $locale->text('Exchangerate') . qq|</th>
- <td><input name=exchangerate size=10 value=$form->{exchangerate}></td>\n|;
- }
- }
- $exchangerate .= qq| <input type=hidden name=forex value=$form->{forex}>\n|;
+
+ my $set_duedate_url = "$form->{script}?action=set_duedate";
+
+ push @ { $form->{AJAX} }, new CGI::Ajax( 'set_duedate' => $set_duedate_url );
my @old_project_ids = ($form->{"globalproject_id"});
map { push @old_project_ids, $form->{"project_id_$_"} if $form->{"project_id_$_"}; } 1..$form->{"rowcount"};
$form->get_lists("contacts" => "ALL_CONTACTS",
- "projects" => { "key" => "ALL_PROJECTS",
- "all" => 0,
- "old_id" => \@old_project_ids },
+ "shipto" => "ALL_SHIPTO",
+ "projects" => { "key" => "ALL_PROJECTS",
+ "all" => 0,
+ "old_id" => \@old_project_ids },
+ "employees" => "ALL_EMPLOYEES",
"taxzones" => "ALL_TAXZONES",
- "employees" => "ALL_SALESMEN",
"currencies" => "ALL_CURRENCIES",
"vendors" => "ALL_VENDORS",
+ "departments" => "all_departments",
"price_factors" => "ALL_PRICE_FACTORS");
- my %labels;
- my @values = (undef);
- foreach my $item (@{ $form->{"ALL_CONTACTS"} }) {
- push(@values, $item->{"cp_id"});
- $labels{$item->{"cp_id"}} = $item->{"cp_name"} . ($item->{"cp_abteilung"} ? " ($item->{cp_abteilung})" : "");
- }
-
- my $contact;
- if (scalar @values > 1) {
- $contact = qq|
- <tr>
- <th align="right">| . $locale->text('Contact Person') . qq|</th>
- <td>| . NTI($cgi->popup_menu('-name' => 'cp_id', '-values' => \@values, '-style' => 'width: 250px',
- '-labels' => \%labels, '-default' => $form->{"cp_id"})) . qq|
- </td>
- </tr>|;
- }
-
- %labels = ();
- @values = ("");
- foreach my $item (@{ $form->{"ALL_PROJECTS"} }) {
- push(@values, $item->{"id"});
- $labels{$item->{"id"}} = $item->{"projectnumber"};
- }
- my $globalprojectnumber = NTI($cgi->popup_menu('-name' => 'globalproject_id', '-values' => \@values, '-labels' => \%labels,
- '-default' => $form->{"globalproject_id"}));
-
- %labels = ();
- @values = ();
- my $i = 0;
- foreach my $item (@{ $form->{"ALL_CURRENCIES"} }) {
- push(@values, $item);
- $labels{$item} = $item;
- }
-
- $form->{currency} = $form->{defaultcurrency} unless $form->{currency};
- my $currencies;
- if (scalar @values) {
- $currencies = qq|
- <tr>
- <th align="right">| . $locale->text('Currency') . qq|</th>
- <td>| . NTI($cgi->popup_menu('-name' => 'currency', '-default' => $form->{"currency"},
- '-values' => \@values, '-labels' => \%labels)) . qq|
- </td>
- </tr>|;
- }
-
- %labels = ();
- @values = ();
- foreach my $item (@{ $form->{"ALL_SALESMEN"} }) {
- push(@values, $item->{"id"});
- $labels{$item->{"id"}} = $item->{"name"};
- }
- my $employees = qq|
- <tr>
- <th align="right">| . $locale->text('Employee') . qq|</th>
- <td>| . NTI($cgi->popup_menu('-name' => 'employee_id', '-default' => $form->{"employee_id"},
- '-values' => \@values, '-labels' => \%labels)) . qq|
- </td>
- </tr>|;
-
- %labels = ();
- @values = ();
- foreach my $item (@{ $form->{"ALL_VENDORS"} }) {
- push(@values, $item->{name}.qq|--|.$item->{"id"});
- $labels{$item->{name}.qq|--|.$item->{"id"}} = $item->{"name"};
- }
-
- $form->{selectvendor} = ($myconfig{vclimit} > scalar(@values));
-
- my $vendors = qq|
- <th align="right">| . $locale->text('Vendor') . qq|</th>
- <td>| .
- (($myconfig{vclimit} <= scalar(@values))
- ? qq|<input type="text" value="| . H($form->{vendor}) . qq|" name="vendor">|
- : (NTI($cgi->popup_menu('-name' => 'vendor', '-default' => $form->{oldvendor},
- '-onChange' => 'document.getElementById(\'update_button\').click();',
- '-values' => \@values, '-labels' => \%labels, '-style' => 'width: 250px')))) . qq|
- <input type="button" value="| . $locale->text('Details (one letter abbreviation)') . qq|" onclick="show_vc_details('vendor')">
- </td>|;
-
- %labels = ();
- @values = ();
- foreach my $item (@{ $form->{"ALL_TAXZONES"} }) {
- push(@values, $item->{"id"});
- $labels{$item->{"id"}} = $item->{"description"};
- }
-
- my $taxzone;
- if (!$form->{"id"}) {
- $taxzone = qq|
- <tr>
- <th align="right">| . $locale->text('Steuersatz') . qq|</th>
- <td>| . NTI($cgi->popup_menu('-name' => 'taxzone_id', '-default' => $form->{"taxzone_id"},
- '-values' => \@values, '-labels' => \%labels, '-style' => 'width: 250px')) . qq|
- </td>
- </tr>|;
- } else {
- $taxzone = qq|
- <tr>
- <th align="right">| . $locale->text('Steuersatz') . qq|</th>
- <td>
- <input type="hidden" name="taxzone_id" value="| . H($form->{"taxzone_id"}) . qq|">
- | . H($labels{$form->{"taxzone_id"}}) . qq|
- </td>
- </tr>|;
- }
-
- my $department = qq|
- <tr>
- <th align="right" nowrap>| . $locale->text('Department') . qq|</th>
- <td colspan="3"><select name="department" style="width: 250px">$form->{selectdepartment}</select>
- <input type="hidden" name="selectdepartment" value="$form->{selectdepartment}">
- </td>
- </tr>\n| if $form->{selectdepartment};
-
- my $n = ($form->{creditremaining} =~ /-/) ? "0" : "1";
-
- # use JavaScript Calendar or not
- $form->{jsscript} = 1;
- my $jsscript = "";
-
- my $button1 = qq|
- <td nowrap>
- <input name=invdate id=invdate size=11 title="$myconfig{dateformat}" value="$form->{invdate}" onBlur=\"check_right_date_format(this)\"
- onChange="if (this.value) set_duedate_vendor(['invdate__' + this.value, 'old_duedate__' + document.getElementsByName('duedate')[0].value, 'vendor_id__' + document.getElementsByName('vendor_id')[0].value],['duedate'])">
- <input type=button name=invdate id="trigger1" value="?">
- </td>\n|;
-
-#, 'old_duedate__'' + document.getElementsByName('duedate')[0].value, 'vendor_id__' + document.getElementsByName('vendor_id')[0].value],['duedate'])">
- my $button2 = qq|
- <td width="13" nowrap>
- <input name=duedate id=duedate size=11 title="$myconfig{dateformat}" value="$form->{duedate}" onBlur=\"check_right_date_format(this)\">
- <input type=button name=duedate id="trigger2" value=| . $locale->text('button') . qq|>
- </td>\n|;
-
- #write Trigger
- $jsscript =
- Form->write_trigger(\%myconfig, "2",
- "invdate", "BL", "trigger1",
- "duedate", "BL", "trigger2");
+ $TMPL_VAR{sales_employee_labels} = sub { $_[0]->{name} || $_[0]->{login} };
+# $TMPL_VAR{shipto_labels} = sub { join "; ", grep { $_ } map { $_[0]->{"shipto${_}" } } qw(name department_1 street city) };
+ $TMPL_VAR{contact_labels} = sub { join(', ', $_[0]->{"cp_name"}, $_[0]->{"cp_givenname"}) . ($_[0]->{cp_abteilung} ? " ($_[0]->{cp_abteilung})" : "") };
+ $TMPL_VAR{department_labels} = sub { "$_[0]->{description}--$_[0]->{id}" };
+
+ # customer
+ $TMPL_VAR{vc_keys} = sub { "$_[0]->{name}--$_[0]->{id}" };
+ $TMPL_VAR{vclimit} = $myconfig{vclimit};
+ $TMPL_VAR{vc_select} = "customer_or_vendor_selection_window('vendor', '', 1, 0)";
+ push @custom_hiddens, "vendor_id";
+ push @custom_hiddens, "oldvendor";
+ push @custom_hiddens, "selectvendor";
+
+ # currencies and exchangerate
+ my @values = map { $_ } @{ $form->{ALL_CURRENCIES} };
+ my %labels = map { $_ => $_ } @{ $form->{ALL_CURRENCIES} };
+ $form->{currency} = $form->{defaultcurrency} unless $form->{currency};
+ $TMPL_VAR{show_exchangerate} = $form->{currency} ne $form->{defaultcurrency};
+ $TMPL_VAR{currencies} = NTI($cgi->popup_menu('-name' => 'currency', '-default' => $form->{"currency"},
+ '-values' => \@values, '-labels' => \%labels)) if scalar @values;
+ push @custom_hiddens, "forex";
+ push @custom_hiddens, "exchangerate" if $form->{forex};
+
+ $TMPL_VAR{creditwarning} = ($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update};
+ $TMPL_VAR{is_credit_remaining_negativ} = $form->{creditremaining} =~ /-/;
+
+ $form->{fokus} = "invoice.vendor";
my $follow_up_vc = $form->{vendor};
$follow_up_vc =~ s/--\d*\s*$//;
- my $follow_up_trans_info = "$form->{invnumber} ($follow_up_vc)";
-
- $form->{javascript} .= qq|<script type="text/javascript" src="js/show_form_details.js"></script>|;
- $form->{javascript} .= qq|<script type="text/javascript" src="js/common.js"></script>|;
- $form->{javascript} .= qq|<script type="text/javascript" src="js/show_vc_details.js"></script>|;
- $form->{javascript} .= qq|<script type="text/javascript" src="js/follow_up.js"></script>|;
-
- $jsscript .= $form->write_trigger(\%myconfig, 2, "orddate", "BL", "trigger_orddate", "quodate", "BL", "trigger_quodate");
+ $TMPL_VAR{vendor_name} = $follow_up_vc;
- $form->header;
- my $onload = qq|focus()|;
- $onload .= qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|;
- $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
- print qq|
-<body onLoad="$onload">
-<script type="text/javascript" src="js/common.js"></script>
-<form method="post" action="ir.pl" name="Form">
-|;
-
- $form->hide_form(qw(id title vc type level creditlimit creditremaining closedto locked shippted storno storno_id
- max_dunning_level dunning_amount vendor_id oldvendor selectvendor taxaccounts
- fxgain_accno fxloss_accno taxpart taxservice cursor_fokus
- convert_from_oe_ids convert_from_do_ids),
- map { $_.'_rate', $_.'_description' } split / /, $form->{taxaccounts} );
+# set option selected
+ foreach my $item (qw(AP)) {
+ $form->{"select$item"} =~ s/ selected//;
+ $form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
+ }
- print qq|<p>$form->{saved_message}</p>| if $form->{saved_message};
+ $TMPL_VAR{is_type_credit_note} = $form->{type} eq "credit_note";
+ $TMPL_VAR{is_format_html} = $form->{format} eq 'html';
+ $TMPL_VAR{dateformat} = $myconfig{dateformat};
+ $TMPL_VAR{numberformat} = $myconfig{numberformat};
- print qq|
+ # hiddens
+ $TMPL_VAR{HIDDENS} = [qw(
+ id action type media format queued printed emailed title vc discount
+ title creditlimit creditremaining tradediscount business closedto locked shipped storno storno_id
+ max_dunning_level dunning_amount
+ shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact shiptophone shiptofax
+ shiptoemail shiptodepartment_1 shiptodepartment_2 message email subject cc bcc taxaccounts cursor_fokus
+ convert_from_do_ids convert_from_oe_ids
+ ), @custom_hiddens,
+ map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts}];
-<div class="listtop" width="100%">$form->{title}</div>
-
-<table width=100%>
- <tr>
- <td valign="top">
- <table>
- $vendors
- $contact
- <tr>
- <td align="right">| . $locale->text('Credit Limit') . qq|</td>
- <td>$form->{creditlimit}; | . $locale->text('Remaining') . qq| <span class="plus$n">$form->{creditremaining}</span></td>
- </tr>
- <tr>
- <th align="right">| . $locale->text('Record in') . qq|</th>
- <td colspan="3"><select name="AP" style="width: 250px">$form->{selectAP}</select></td>
- <input type="hidden" name="selectAP" value="$form->{selectAP}">
- </tr>
- $taxzone
- $department
- <tr>
- $currencies
- $exchangerate
- </tr>
- </table>
- </td>
- <td align=right>
- <table>
- $employees
- <tr>
- <th align=right nowrap>| . $locale->text('Invoice Number') . qq|</th>
- <td><input name=invnumber size=11 value="$form->{invnumber}"></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Invoice Date') . qq|</th>
- $button1
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Due Date') . qq|</th>
- $button2
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Order Number') . qq|</th>
- <td><input name=ordnumber size=11 value="$form->{ordnumber}"></td>
-<input type=hidden name=quonumber value="$form->{quonumber}">
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Order Date') . qq|</th>
- <td><input name="orddate" id="orddate" size="11" title="$myconfig{dateformat}" value="| . Q($form->{orddate}) . qq|" onBlur=\"check_right_date_format(this)\">
- <input type="button" name="b_orddate" id="trigger_orddate" value="?"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Quotation Date') . qq|</th>
- <td><input name="quodate" id="quodate" size="11" title="$myconfig{dateformat}" value="| . Q($form->{quodate}) . qq|" onBlur=\"check_right_date_format(this)\">
- <input type="button" name="b_quodate" id="trigger_quodate" value="?"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Project Number') . qq|</th>
- <td>$globalprojectnumber</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </td>
- </tr>
-
-$jsscript
-
-<input type=hidden name=webdav value=$main::webdav>
-|;
+ $form->{jsscript} = 1;
+ $form->header();
- foreach my $item (split / /, $form->{taxaccounts}) {
- print qq|
-<input type=hidden name="${item}_rate" value=$form->{"${item}_rate"}>
-<input type=hidden name="${item}_description" value="$form->{"${item}_description"}">
-|;
- }
+ print $form->parse_html_template("ir/form_header", \%TMPL_VAR);
$main::lxdebug->leave_sub();
}
my $form = $main::form;
my %myconfig = %main::myconfig;
my $locale = $main::locale;
- my $cgi = $main::cgi;
-
- $main::auth->assert('vendor_invoice_edit');
-
- $form->{invtotal} = $form->{invsubtotal};
- my ($rows, $introws);
- if (($rows = $form->numtextrows($form->{notes}, 25, 8)) < 2) {
- $rows = 2;
- }
- if (($introws = $form->numtextrows($form->{intnotes}, 35, 8)) < 2) {
- $introws = 2;
- }
- $rows = ($rows > $introws) ? $rows : $introws;
- my $notes =
- qq|<textarea name=notes rows=$rows cols=25 wrap=soft>$form->{notes}</textarea>|;
- my $intnotes =
- qq|<textarea name=intnotes rows=$rows cols=35 wrap=soft>$form->{intnotes}</textarea>|;
-
- $form->{taxincluded} = ($form->{taxincluded}) ? "checked" : "";
-
- my $taxincluded = "";
- if ($form->{taxaccounts}) {
- $taxincluded = qq|
- <input name=taxincluded class=checkbox type=checkbox value=1 $form->{taxincluded}> <b>|
- . $locale->text('Tax Included') . qq|</b>
-|;
- }
-
- my ($tax, $subtotal);
- if (!$form->{taxincluded}) {
-
- foreach my $item (split / /, $form->{taxaccounts}) {
- if ($form->{"${item}_base"}) {
- $form->{invtotal} += $form->{"${item}_total"} =
- $form->round_amount(
- $form->{"${item}_base"} * $form->{"${item}_rate"},
- 2);
- $form->{"${item}_total"} =
- $form->format_amount(\%myconfig, $form->{"${item}_total"}, 2);
-
- $tax .= qq|
- <tr>
- <th align=right>$form->{"${item}_description"} |
- . $form->{"${item}_rate"} * 100 .qq|%</th>
- <td align=right>$form->{"${item}_total"}</td>
- </tr>
-|;
- }
- }
+ $main::auth->assert('invoice_edit');
- $form->{invsubtotal} =
- $form->format_amount(\%myconfig, $form->{invsubtotal}, 2, 0);
+ $form->{invtotal} = $form->{invsubtotal};
+ $form->{oldinvtotal} = $form->{invtotal};
- $subtotal = qq|
- <tr>
- <th align=right>| . $locale->text('Subtotal') . qq|</th>
- <td align=right>$form->{invsubtotal}</td>
- </tr>
-|;
+ # note rows
+ $form->{rows} = max 2,
+ $form->numtextrows($form->{notes}, 26, 8),
+ $form->numtextrows($form->{intnotes}, 35, 8);
- }
- if ($form->{taxincluded}) {
- foreach my $item (split / /, $form->{taxaccounts}) {
- if ($form->{"${item}_base"}) {
- $form->{"${item}_total"} =
- $form->round_amount(
- ($form->{"${item}_base"} * $form->{"${item}_rate"} /
- (1 + $form->{"${item}_rate"})
- ),
- 2);
- $form->{"${item}_base"} =
- $form->round_amount($form->{"${item}_base"}, 2);
- $form->{"${item}_netto"} =
- $form->round_amount(
- ($form->{"${item}_base"} - $form->{"${item}_total"}),
- 2);
- $form->{"${item}_netto"} =
- $form->format_amount(\%myconfig, $form->{"${item}_netto"}, 2);
- $form->{"${item}_total"} =
- $form->format_amount(\%myconfig, $form->{"${item}_total"}, 2);
-
- $tax .= qq|
- <tr>
- <th align=right>Enthaltene $form->{"${item}_description"} |
- . $form->{"${item}_rate"} * 100 .qq|%</th>
- <td align=right>$form->{"${item}_total"}</td>
- </tr>
- <tr>
- <th align=right>Nettobetrag</th>
- <td align=right>$form->{"${item}_netto"}</td>
- </tr>
-|;
+ # tax, total and subtotal calculations
+ my ($tax, $subtotal);
+ $form->{taxaccounts_array} = [ split / /, $form->{taxaccounts} ];
+
+ foreach my $item (@{ $form->{taxaccounts_array} }) {
+ if ($form->{"${item}_base"}) {
+ if ($form->{taxincluded}) {
+ $form->{"${item}_total"} = $form->round_amount( ($form->{"${item}_base"} * $form->{"${item}_rate"}
+ / (1 + $form->{"${item}_rate"})), 2);
+ $form->{"${item}_netto"} = $form->round_amount( ($form->{"${item}_base"} - $form->{"${item}_total"}), 2);
+ } else {
+ $form->{"${item}_total"} = $form->round_amount( $form->{"${item}_base"} * $form->{"${item}_rate"}, 2);
+ $form->{invtotal} += $form->{"${item}_total"};
}
}
-
}
- $form->{oldinvtotal} = $form->{invtotal};
- $form->{invtotal} =
- $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0);
-
- my $follow_ups_block;
+ # follow ups
if ($form->{id}) {
- my $follow_ups = FU->follow_ups('trans_id' => $form->{id});
-
- if (@{ $follow_ups} ) {
- my $num_due = sum map { $_->{due} * 1 } @{ $follow_ups };
- $follow_ups_block = qq|
- <tr>
- <td colspan="2">| . $locale->text("There are #1 unfinished follow-ups of which #2 are due.", scalar @{ $follow_ups }, $num_due) . qq|</td>
- </tr>
-|;
- }
- }
-
- our $colspan;
- print qq|
- <tr>
- <td colspan=$colspan>
- <table cellspacing="0">
- <tr valign=bottom>
- <td>
- <table>
- <tr>
- <th align=left>| . $locale->text('Notes') . qq|</th>
- <th align=left>| . $locale->text('Internal Notes') . qq|</th>
- </tr>
- <tr valign=top>
- <td>$notes</td>
- <td>$intnotes</td>
- </tr>
- $follow_ups_block
- </table>
- </td>
- <td colspan=2 align=right width=100%>
- $taxincluded
- <br>
- <table width=100%>
- $subtotal
- $tax
- <tr>
- <th align=right>| . $locale->text('Total') . qq|</th>
- <td align=right>$form->{invtotal}</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </td>
- </tr>
-|;
- my $webdav_list;
- if ($main::webdav) {
- $webdav_list = qq|
- <tr>
- <td><hr size=3 noshade></td>
- </tr>
- <tr>
- <th class=listtop align=left>Dokumente im Webdav-Repository</th>
- </tr>
- <table width=100%>
- <td align=left width=30%><b>Dateiname</b></td>
- <td align=left width=70%><b>Webdavlink</b></td>
-|;
- foreach my $file (@{ $form->{WEBDAV} }) {
- $webdav_list .= qq|
- <tr>
- <td align="left">$file->{name}</td>
- <td align="left"><a href="$file->{link}">$file->{type}</a></td>
- </tr>
-|;
- }
- $webdav_list .= qq|
- </table>
- </tr>
-|;
-
- print $webdav_list;
- }
- print qq|
- <tr>
- <td colspan=$colspan>
- <table width=100%>
- <tr>
- <th colspan=6 class=listheading>| . $locale->text('Payments') . qq|</th>
- </tr>
-|;
-
- my @column_index;
- if ($form->{currency} eq $form->{defaultcurrency}) {
- @column_index = qw(datepaid source memo paid AP_paid);
- } else {
- @column_index = qw(datepaid source memo paid exchangerate AP_paid);
+ $form->{follow_ups} = FU->follow_ups('trans_id' => $form->{id}) || [];
+ $form->{follow_ups_unfinished} = ( sum map { $_->{due} * 1 } @{ $form->{follow_ups} } ) || 0;
}
- my %column_data;
- $column_data{datepaid} = "<th>" . $locale->text('Date') . "</th>";
- $column_data{paid} = "<th>" . $locale->text('Amount') . "</th>";
- $column_data{exchangerate} = "<th>" . $locale->text('Exch') . "</th>";
- $column_data{AP_paid} = "<th>" . $locale->text('Account') . "</th>";
- $column_data{source} = "<th>" . $locale->text('Source') . "</th>";
- $column_data{memo} = "<th>" . $locale->text('Memo') . "</th>";
-
- print qq|
- <tr>
-|;
- map { print "$column_data{$_}\n" } @column_index;
- print qq|
- </tr>
-|;
-
- my @triggers = ();
+ # payments
my $totalpaid = 0;
-
$form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
- for my $i (1 .. $form->{paidaccounts}) {
-
- print qq|
- <tr>
-|;
+ $form->{paid_indices} = [ 1 .. $form->{paidaccounts} ];
+ for my $i (1 .. $form->{paidaccounts}) {
$form->{"selectAP_paid_$i"} = $form->{selectAP_paid};
- $form->{"selectAP_paid_$i"} =~
- s/option>\Q$form->{"AP_paid_$i"}\E/option selected>$form->{"AP_paid_$i"}/;
-
+ $form->{"selectAP_paid_$i"} =~ s/option>\Q$form->{"AP_paid_$i"}\E/option selected>$form->{"AP_paid_$i"}/;
$totalpaid += $form->{"paid_$i"};
-
- # format amounts
- if ($form->{"paid_$i"}) {
- $form->{"paid_$i"} =
- $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
- }
- $form->{"exchangerate_$i"} =
- $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
-
- my $exchangerate = qq| |;
- if ($form->{currency} ne $form->{defaultcurrency}) {
- if ($form->{"forex_$i"}) {
- $exchangerate =
- qq|<input type=hidden name="exchangerate_$i" value=$form->{"exchangerate_$i"}>$form->{"exchangerate_$i"}|;
- } else {
- $exchangerate =
- qq|<input name="exchangerate_$i" size=10 value=$form->{"exchangerate_$i"}>|;
- }
- }
- $exchangerate .= qq|
-<input type=hidden name="forex_$i" value=$form->{"forex_$i"}>
-|;
-
- $column_data{"paid_$i"} =
- qq|<td align=center><input name="paid_$i" size=11 value="$form->{"paid_$i"}" onBlur=\"check_right_number_format(this)\"></td>|;
- $column_data{"exchangerate_$i"} = qq|<td align=center>$exchangerate</td>|;
- $column_data{"AP_paid_$i"} =
- qq|<td align=center><select name="AP_paid_$i">$form->{"selectAP_paid_$i"}</select></td>|;
- $column_data{"datepaid_$i"} =
- qq|<td align=center><input name="datepaid_$i" id="datepaid_$i" size=11 title="$myconfig{dateformat}" value="$form->{"datepaid_$i"}" onBlur=\"check_right_date_format(this)\">
- <input type="button" name="datepaid_$i" id="trigger_datepaid_$i" value="?"></td>|;
- $column_data{"source_$i"} =
- qq|<td align=center><input name="source_$i" size=11 value="$form->{"source_$i"}"></td>|;
- $column_data{"memo_$i"} =
- qq|<td align=center><input name="memo_$i" size=11 value="$form->{"memo_$i"}"></td>|;
-
- map { print qq|$column_data{"${_}_$i"}\n| } @column_index;
-
- print qq|
- </tr>
-|;
- push(@triggers, "datepaid_$i", "BL", "trigger_datepaid_$i");
- }
-
- my $paid_missing = $form->{oldinvtotal} - $totalpaid;
-
- print qq|
- <tr>
- <td></td>
- <td></td>
- <td align="center">| . $locale->text('Total') . qq|</td>
- <td align="center">| . H($form->format_amount(\%myconfig, $totalpaid, 2)) . qq|</td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td align="center">| . $locale->text('Missing amount') . qq|</td>
- <td align="center">| . H($form->format_amount(\%myconfig, $paid_missing, 2)) . qq|</td>
- </tr>
-
- <input type=hidden name=oldinvtotal value=$form->{oldinvtotal}>
- <input type=hidden name=paidaccounts value=$form->{paidaccounts}>
- <input type=hidden name=selectAP_paid value="$form->{selectAP_paid}">
- </table>
- </td>
- </tr>
- <tr>
- <td><hr size=3 noshade></td>
- </tr>
-</table>
-<br>
-|;
-
- my $invdate = $form->datetonum($form->{invdate}, \%myconfig);
- my $closedto = $form->datetonum($form->{closedto}, \%myconfig);
-
- print qq|<input class=submit type=submit name=action id=update_button value="|
- . $locale->text('Update') . qq|">
-|;
-
- if ($form->{id}) {
- my $show_storno = !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ap") && (($totalpaid == 0) || ($totalpaid eq ""));
-
- print qq|<input class=submit type=submit name=action value="|
- . $locale->text('Post Payment') . qq|">
-|;
- print qq|<input class=submit type=submit name=action value="|
- . $locale->text('Storno') . qq|">
-| if ($show_storno);
- if ($form->{radier}) {
- print qq|
- <input class=submit type=submit name=action value="|
- . $locale->text('Delete') . qq|">
-|;
- }
- print qq|<input class=submit type=submit name=action value="|
- . $locale->text('Use As Template') . qq|">
- <input type="button" class="submit" onclick="follow_up_window()" value="|
- . $locale->text('Follow-Up')
- . qq|">
-|;
-
- }
-
- if (!$form->{id} && ($invdate > $closedto)) {
- print qq| <input class=submit type=submit name=action value="|
- . $locale->text('Post') . qq|"> | .
- NTI($cgi->submit('-name' => 'action', '-value' => $locale->text('Save draft'),
- '-class' => 'submit'));
}
- print $form->write_trigger(\%myconfig, scalar(@triggers) / 3, @triggers);
- $form->hide_form(qw(rowcount callback draft_id draft_description vendor_discount));
-
- # button for saving history
- if($form->{id} ne "") {
- print qq|
- <input type="button" class="submit" onclick="set_history_window(|
- . Q($form->{id})
- . qq|);" name="history" id="history" value="|
- . $locale->text('history')
- . qq|">|;
- }
- # /button for saving history
- # mark_as_paid button
- if($form->{id} ne "") {
- print qq| <input type="submit" class="submit" name="action" value="|
- . $locale->text('mark as paid') . qq|">|;
- }
- # /mark_as_paid button
-print qq|</form>
-</body>
-</html>
-|;
+ print $form->parse_html_template('ir/form_footer', {
+ is_type_credit_note => ($form->{type} eq "credit_note"),
+ totalpaid => $totalpaid,
+ paid_missing => $form->{invtotal} - $totalpaid,
+ show_storno => $form->{id} && !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ap") && !$totalpaid,
+ show_delete => ($form->current_date(\%myconfig) eq $form->{gldate}),
+ });
+##print $form->parse_html_template('ir/_payments'); # parser
+##print $form->parse_html_template('webdav/_list'); # parser
$main::lxdebug->leave_sub();
}
$main::auth->assert('vendor_invoice_edit');
- map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate creditlimit creditremaining);
+# map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate creditlimit creditremaining);
&check_name('vendor');
# override sellprice if there is one entered
my $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
- # ergaenzung fuer bug 736 Lieferanten-Rabatt auch in Einkaufsrechnungen vorbelegen jb
- $form->{"discount_$i"} = $form->format_amount(\%myconfig,
- $form->{vendor_discount} * 100 );
+ # ergaenzung fuer bug 736 Lieferanten-Rabatt auch in Einkaufsrechnungen vorbelegen jb
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{vendor_discount} * 100 );
map { $form->{item_list}[$i]{$_} =~ s/\"/"/g } qw(partnumber description unit);
map { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} } keys %{ $form->{item_list}[0] };
($form->{AP}) = split /--/, $form->{AP};
($form->{AP_paid}) = split /--/, $form->{AP_paid};
if (IR->post_payment(\%myconfig, \%$form)){
- if (!exists $form->{addition} && $form->{id} ne "") {
- # saving the history
+ if (!exists $form->{addition} && $form->{id} ne "") {
+ # saving the history
$form->{snumbers} = qq|invnumber_| . $form->{invnumber};
- $form->{addition} = "PAYMENT POSTED";
+ $form->{addition} = "PAYMENT POSTED";
$form->{what_done} = $form->{currency} . qq| | . $form->{paid} . qq| | . $locale->text("POSTED");
- $form->save_history($form->dbconnect(\%myconfig));
- # /saving the history
- }
+ $form->save_history($form->dbconnect(\%myconfig));
+ # /saving the history
+ }
$form->redirect($locale->text('Payment posted!'));
}
relink_accounts();
if (IR->post_invoice(\%myconfig, \%$form)){
- # saving the history
- if(!exists $form->{addition} && $form->{id} ne "") {
+ # saving the history
+ if(!exists $form->{addition} && $form->{id} ne "") {
$form->{snumbers} = qq|invnumber_| . $form->{invnumber};
$form->{addition} = "POSTED";
- #$form->{what_done} = $locale->text("Rechnungsnummer") . qq| | . $form->{invnumber};
- $form->save_history($form->dbconnect(\%myconfig));
- }
- # /saving the history
+ #$form->{what_done} = $locale->text("Rechnungsnummer") . qq| | . $form->{invnumber};
+ $form->save_history($form->dbconnect(\%myconfig));
+ }
+ # /saving the history
remove_draft() if $form->{remove_draft};
- $form->redirect( $locale->text('Invoice')
+ $form->redirect( $locale->text('Invoice')
. " $form->{invnumber} "
. $locale->text('posted!'));
}
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|invnumber_| . $form->{invnumber};
- $form->{addition} = "DELETED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$form->redirect($locale->text('Invoice deleted!'));
$form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id};
$form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
- $form->{radier} = ($form->current_date(\%myconfig) eq $form->{gldate}) ? 1 : 0;
my $set_duedate_url = "$form->{script}?action=set_duedate";
"taxzones" => "ALL_TAXZONES",
"currencies" => "ALL_CURRENCIES",
"customers" => "ALL_CUSTOMERS",
+ "departments" => "all_departments",
"price_factors" => "ALL_PRICE_FACTORS");
$TMPL_VAR{sales_employee_labels} = sub { $_[0]->{name} || $_[0]->{login} };
if (IS->delete_invoice(\%myconfig, \%$form, $main::spool)) {
# saving the history
- if(!exists $form->{addition}) {
+ if(!exists $form->{addition}) {
$form->{snumbers} = qq|invnumber_| . $form->{invnumber};
- $form->{addition} = "DELETED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$form->redirect($locale->text('Invoice deleted!'));
var thistime = hours+":"+minutes
function writeclock() {
- i_clock++
- if (document.all \|\| document.getElementById \|\| document.layers) {
- clockid[i_clock]="clock"+i_clock
- document.write("<font family=arial size=2><span id='"+clockid[i_clock]+"' style='position:relative'>"+thistime+"</span></font>")
- }
+ i_clock++
+ if (document.all \|\| document.getElementById \|\| document.layers) {
+ clockid[i_clock]="clock"+i_clock
+ document.write("<font family=arial size=2><span id='"+clockid[i_clock]+"' style='position:relative'>"+thistime+"</span></font>")
+ }
}
function clockon() {
- thistime= new Date()
- hours=thistime.getHours()
- minutes=thistime.getMinutes()
- seconds=thistime.getSeconds()
- if (eval(hours) <10) {hours="0"+hours}
- if (eval(minutes) < 10) {minutes="0"+minutes}
- if (seconds < 10) {seconds="0"+seconds}
- //thistime = hours+":"+minutes+":"+seconds
- thistime = hours+":"+minutes
+ thistime= new Date()
+ hours=thistime.getHours()
+ minutes=thistime.getMinutes()
+ seconds=thistime.getSeconds()
+ if (eval(hours) <10) {hours="0"+hours}
+ if (eval(minutes) < 10) {minutes="0"+minutes}
+ if (seconds < 10) {seconds="0"+seconds}
+ //thistime = hours+":"+minutes+":"+seconds
+ thistime = hours+":"+minutes
- if (document.all) {
- for (i=0;i<=clockid.length-1;i++) {
- var thisclock=eval(clockid[i])
- thisclock.innerHTML=thistime
- }
- }
+ if (document.all) {
+ for (i=0;i<=clockid.length-1;i++) {
+ var thisclock=eval(clockid[i])
+ thisclock.innerHTML=thistime
+ }
+ }
- if (document.getElementById) {
- for (i=0;i<=clockid.length-1;i++) {
- document.getElementById(clockid[i]).innerHTML=thistime
- }
- }
- var timer=setTimeout("clockon()",60000)
+ if (document.getElementById) {
+ for (i=0;i<=clockid.length-1;i++) {
+ document.getElementById(clockid[i]).innerHTML=thistime
+ }
+ }
+ var timer=setTimeout("clockon()",60000)
}
window.onload=clockon
//-->
<body bgcolor="#ffffff" text="#ffffff" link="#ffffff" vlink="#ffffff" alink="#ffffff" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" style="background-image: url('image/fade.png'); background-repeat:repeat-x;">
<table border="0" width="100%" background="image/bg_titel.gif" cellpadding="0" cellspacing="0">
- <tr>
- <td style="color:white; font-family:verdana,arial,sans-serif; font-size: 12px;"> [<a href="JavaScript:top.main_window.print()">| . $locale->text('drucken') . qq|</a>]</td>
- <td align="right" style="vertical-align:middle; color:white; font-family:verdana,arial,sans-serif; font-size: 12px;" nowrap>|
+ <tr>
+ <td style="color:white; font-family:verdana,arial,sans-serif; font-size: 12px;"> [<a href="JavaScript:top.main_window.print()">| . $locale->text('drucken') . qq|</a>]</td>
+ <td align="right" style="vertical-align:middle; color:white; font-family:verdana,arial,sans-serif; font-size: 12px;" nowrap>|
. $login . $datum . qq| <script>writeclock()</script>
- </td>
- </tr>
+ </td>
+ </tr>
</table>
</body>
</html>
//var KO = (navigator.appName=="Konqueror" \|\| navigator.appName=="Opera") ;
var KO = ((navigator.userAgent.indexOf('Opera',0) != -1) \|\| (navigator.userAgent.indexOf('Konqueror',0) != -1));
function getRef(id) {
- if (isDOM) return document.getElementById(id);
- if (isIE4) return document.all[id];
- if (isNS4) return document.layers[id];
+ if (isDOM) return document.getElementById(id);
+ if (isIE4) return document.all[id];
+ if (isNS4) return document.layers[id];
}
function getSty(id) {
- return (isNS4 ? getRef(id) : getRef(id).style);
+ return (isNS4 ? getRef(id) : getRef(id).style);
}
var popTimer = 0;
var litNow = new Array();
function popOver(menuNum, itemNum) {
- if (KO) document.getElementById("win1").style.visibility = "hidden";
- clearTimeout(popTimer);
- hideAllBut(menuNum);
- litNow = getTree(menuNum, itemNum);
- changeCol(litNow, true);
- targetNum = menu[menuNum][itemNum].target;
- if (targetNum > 0) {
- thisX = parseInt(menu[menuNum][0].ref.left) + parseInt(menu[menuNum][itemNum].ref.left);
- thisY = parseInt(menu[menuNum][0].ref.top) + parseInt(menu[menuNum][itemNum].ref.top);
- with (menu[targetNum][0].ref) {
- left = parseInt(thisX + menu[targetNum][0].x);
- top = parseInt(thisY + menu[targetNum][0].y);
- visibility = 'visible';
- }
- }
+ if (KO) document.getElementById("win1").style.visibility = "hidden";
+ clearTimeout(popTimer);
+ hideAllBut(menuNum);
+ litNow = getTree(menuNum, itemNum);
+ changeCol(litNow, true);
+ targetNum = menu[menuNum][itemNum].target;
+ if (targetNum > 0) {
+ thisX = parseInt(menu[menuNum][0].ref.left) + parseInt(menu[menuNum][itemNum].ref.left);
+ thisY = parseInt(menu[menuNum][0].ref.top) + parseInt(menu[menuNum][itemNum].ref.top);
+ with (menu[targetNum][0].ref) {
+ left = parseInt(thisX + menu[targetNum][0].x);
+ top = parseInt(thisY + menu[targetNum][0].y);
+ visibility = 'visible';
+ }
+ }
}
function popOut(menuNum, itemNum) {
- if ((menuNum == 0) && !menu[menuNum][itemNum].target)
- hideAllBut(0)
- if (KO) document.getElementById("win1").style.visibility = "visible";
- else
- popTimer = setTimeout('hideAllBut(0)', 500);
+ if ((menuNum == 0) && !menu[menuNum][itemNum].target)
+ hideAllBut(0)
+ if (KO) document.getElementById("win1").style.visibility = "visible";
+ else
+ popTimer = setTimeout('hideAllBut(0)', 500);
}
function getTree(menuNum, itemNum) {
- itemArray = new Array(menu.length);
- while(1) {
- itemArray[menuNum] = itemNum;
- if (menuNum == 0) return itemArray;
- itemNum = menu[menuNum][0].parentItem;
- menuNum = menu[menuNum][0].parentMenu;
- }
+ itemArray = new Array(menu.length);
+ while(1) {
+ itemArray[menuNum] = itemNum;
+ if (menuNum == 0) return itemArray;
+ itemNum = menu[menuNum][0].parentItem;
+ menuNum = menu[menuNum][0].parentMenu;
+ }
}
function changeCol(changeArray, isOver) {
- for (menuCount = 0; menuCount < changeArray.length; menuCount++) {
- if (changeArray[menuCount]) {
- newCol = isOver ? menu[menuCount][0].overCol : menu[menuCount][0].backCol;
- with (menu[menuCount][changeArray[menuCount]].ref) {
- if (isNS4) bgColor = newCol;
- else backgroundColor = newCol;
- }
- }
- }
+ for (menuCount = 0; menuCount < changeArray.length; menuCount++) {
+ if (changeArray[menuCount]) {
+ newCol = isOver ? menu[menuCount][0].overCol : menu[menuCount][0].backCol;
+ with (menu[menuCount][changeArray[menuCount]].ref) {
+ if (isNS4) bgColor = newCol;
+ else backgroundColor = newCol;
+ }
+ }
+ }
}
function hideAllBut(menuNum) {
- var keepMenus = getTree(menuNum, 1);
- for (count = 0; count < menu.length; count++)
- if (!keepMenus[count])
- menu[count][0].ref.visibility = 'hidden';
- changeCol(litNow, false);
+ var keepMenus = getTree(menuNum, 1);
+ for (count = 0; count < menu.length; count++)
+ if (!keepMenus[count])
+ menu[count][0].ref.visibility = 'hidden';
+ changeCol(litNow, false);
}
function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass) {
- this.isVert = isVert;
- this.popInd = popInd
- this.x = x;
- this.y = y;
- this.width = width;
- this.overCol = overCol;
- this.backCol = backCol;
- this.borderClass = borderClass;
- this.textClass = textClass;
- this.parentMenu = null;
- this.parentItem = null;
- this.ref = null;
+ this.isVert = isVert;
+ this.popInd = popInd
+ this.x = x;
+ this.y = y;
+ this.width = width;
+ this.overCol = overCol;
+ this.backCol = backCol;
+ this.borderClass = borderClass;
+ this.textClass = textClass;
+ this.parentMenu = null;
+ this.parentItem = null;
+ this.ref = null;
}
function Item(text, href, frame, length, spacing, target) {
- this.text = text;
- this.href = href;
- this.frame = frame;
- this.length = length;
- this.spacing = spacing;
- this.target = target;
- this.ref = null;
+ this.text = text;
+ this.href = href;
+ this.frame = frame;
+ this.length = length;
+ this.spacing = spacing;
+ this.target = target;
+ this.ref = null;
}
function go(link,frame) {
- tmp=eval("top."+frame);
- tmp.location=link;
+ tmp=eval("top."+frame);
+ tmp.location=link;
//top.main_window.location=link;
}
function writeMenus() {
- if (!isDOM && !isIE4 && !isNS4) return;
- for (currMenu = 0; currMenu < menu.length; currMenu++) with (menu[currMenu][0]) {
- var str = '', itemX = 0, itemY = 0;
- for (currItem = 1; currItem < menu[currMenu].length; currItem++) with (menu[currMenu][currItem]) {
- var itemID = 'menu' + currMenu + 'item' + currItem;
- var w = (isVert ? width : length);
- var h = (isVert ? length : width);
- if (isDOM \|\| isIE4) {
- str += '<div id="' + itemID + '" style="position: absolute; left: ' + itemX + '; top: ' + itemY + '; width: ' + w + '; height: ' + h + '; visibility: inherit; ';
- if (backCol) str += 'background: ' + backCol + '; ';
- str += '" ';
- }
- if (isNS4) {
- str += '<layer id="' + itemID + '" left="' + itemX + '" top="' + itemY + '" width="' + w + '" height="' + h + '" visibility="inherit" ';
- if (backCol) str += 'bgcolor="' + backCol + '" ';
- }
- if (borderClass) str += 'class="' + borderClass + '" "';
- str += 'onMouseOver="popOver(' + currMenu + ',' + currItem + ')" onMouseOut="popOut(' + currMenu + ',' + currItem + ')">';
- str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (!isNS4 && borderClass ? 3 : 0) + '">';
- str +='<tr><td class="' + textClass + '" style="cursor:pointer;" align="left" height="' + (h - 7) + '" onClick=\\'go("' + href + '","' + frame + '")\\'>' + text + '</a></td>';
- if (target > 0) {
- menu[target][0].parentMenu = currMenu;
- menu[target][0].parentItem = currItem;
- if (popInd) str += '<td class="' + textClass + '" align="right">' + popInd + '</td>';
- }
- str += '</tr></table>' + (isNS4 ? '</layer>' : '</div>');
- if (isVert) itemY += length + spacing;
- else itemX += length + spacing;
- }
- if (isDOM) {
- var newDiv = document.createElement('div');
- document.getElementsByTagName('body').item(0).appendChild(newDiv);
- newDiv.innerHTML = str;
- ref = newDiv.style;
- ref.position = 'absolute';
- ref.visibility = 'hidden';
- }
- if (isIE4) {
- document.body.insertAdjacentHTML('beforeEnd', '<div id="menu' + currMenu + 'div" ' + 'style="position: absolute; visibility: hidden">' + str + '</div>');
- ref = getSty('menu' + currMenu + 'div');
- }
- if (isNS4) {
- ref = new Layer(0);
- ref.document.write(str);
- ref.document.close();
- }
- for (currItem = 1; currItem < menu[currMenu].length; currItem++) {
- itemName = 'menu' + currMenu + 'item' + currItem;
- if (isDOM \|\| isIE4) menu[currMenu][currItem].ref = getSty(itemName);
- if (isNS4) menu[currMenu][currItem].ref = ref.document[itemName];
- }
- }
- with(menu[0][0]) {
- ref.left = x;
- ref.top = y;
- ref.visibility = 'visible';
+ if (!isDOM && !isIE4 && !isNS4) return;
+ for (currMenu = 0; currMenu < menu.length; currMenu++) with (menu[currMenu][0]) {
+ var str = '', itemX = 0, itemY = 0;
+ for (currItem = 1; currItem < menu[currMenu].length; currItem++) with (menu[currMenu][currItem]) {
+ var itemID = 'menu' + currMenu + 'item' + currItem;
+ var w = (isVert ? width : length);
+ var h = (isVert ? length : width);
+ if (isDOM \|\| isIE4) {
+ str += '<div id="' + itemID + '" style="position: absolute; left: ' + itemX + '; top: ' + itemY + '; width: ' + w + '; height: ' + h + '; visibility: inherit; ';
+ if (backCol) str += 'background: ' + backCol + '; ';
+ str += '" ';
+ }
+ if (isNS4) {
+ str += '<layer id="' + itemID + '" left="' + itemX + '" top="' + itemY + '" width="' + w + '" height="' + h + '" visibility="inherit" ';
+ if (backCol) str += 'bgcolor="' + backCol + '" ';
+ }
+ if (borderClass) str += 'class="' + borderClass + '" "';
+ str += 'onMouseOver="popOver(' + currMenu + ',' + currItem + ')" onMouseOut="popOut(' + currMenu + ',' + currItem + ')">';
+ str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (!isNS4 && borderClass ? 3 : 0) + '">';
+ str +='<tr><td class="' + textClass + '" style="cursor:pointer;" align="left" height="' + (h - 7) + '" onClick=\\'go("' + href + '","' + frame + '")\\'>' + text + '</a></td>';
+ if (target > 0) {
+ menu[target][0].parentMenu = currMenu;
+ menu[target][0].parentItem = currItem;
+ if (popInd) str += '<td class="' + textClass + '" align="right">' + popInd + '</td>';
+ }
+ str += '</tr></table>' + (isNS4 ? '</layer>' : '</div>');
+ if (isVert) itemY += length + spacing;
+ else itemX += length + spacing;
+ }
+ if (isDOM) {
+ var newDiv = document.createElement('div');
+ document.getElementsByTagName('body').item(0).appendChild(newDiv);
+ newDiv.innerHTML = str;
+ ref = newDiv.style;
+ ref.position = 'absolute';
+ ref.visibility = 'hidden';
+ }
+ if (isIE4) {
+ document.body.insertAdjacentHTML('beforeEnd', '<div id="menu' + currMenu + 'div" ' + 'style="position: absolute; visibility: hidden">' + str + '</div>');
+ ref = getSty('menu' + currMenu + 'div');
+ }
+ if (isNS4) {
+ ref = new Layer(0);
+ ref.document.write(str);
+ ref.document.close();
+ }
+ for (currItem = 1; currItem < menu[currMenu].length; currItem++) {
+ itemName = 'menu' + currMenu + 'item' + currItem;
+ if (isDOM \|\| isIE4) menu[currMenu][currItem].ref = getSty(itemName);
+ if (isNS4) menu[currMenu][currItem].ref = ref.document[itemName];
+ }
+ }
+ with(menu[0][0]) {
+ ref.left = x;
+ ref.top = y;
+ ref.visibility = 'visible';
}
}
var menu = new Array();
if (isNS4) document.captureEvents(Event.CLICK);
document.onclick = clickHandle;
function clickHandle(evt) {
- if (isNS4) document.routeEvent(evt);
- hideAllBut(0);
- if (KO) document.getElementById("win1").style.visibility = "visible";
+ if (isNS4) document.routeEvent(evt);
+ hideAllBut(0);
+ if (KO) document.getElementById("win1").style.visibility = "visible";
}
function moveRoot() {
- with(menu[0][0].ref) left = ((parseInt(left) < 100) ? 100 : 5);
+ with(menu[0][0].ref) left = ((parseInt(left) < 100) ? 100 : 5);
}
// End -->
</script>
# Untermen
if ($mlz{"s$ml"} > 1) {
- $z++;
- $sm = 1;
+ $z++;
+ $sm = 1;
} else {
- $z = $sm;
- $mlz{"s$ml"}++;
+ $z = $sm;
+ $mlz{"s$ml"}++;
}
print
qq|menu[$mlz{$ml}][$z] = new Item('$label', '#', '', defLength, 0, |
$sm = 1;
my $breit = 15 + length($label) * 6;
print
- qq|menu[0][$mm] = new Item(' $label', '#', '', $breit, 10, $pm); \n|;
+ qq|menu[0][$mm] = new Item(' $label', '#', '', $breit, 10, $pm); \n|;
print qq|menu[$pm] = new Array();\n|;
print
qq|menu[$pm][0] = new Menu(true, '>', 0, 20, 180, defOver, defBack, 'itemBorder', 'itemText');\n|;
$form->{"${item}_total"} = $form->format_amount(\%myconfig, $form->{"${item}_total"}, 2);
$TMPL_VAR{tax} .= qq|
- <tr>
- <th align=right>$form->{"${item}_description"} | . $form->{"${item}_rate"} * 100 .qq|%</th>
- <td align=right>$form->{"${item}_total"}</td>
- </tr> |;
+ <tr>
+ <th align=right>$form->{"${item}_description"} | . $form->{"${item}_rate"} * 100 .qq|%</th>
+ <td align=right>$form->{"${item}_total"}</td>
+ </tr> |;
}
}
$form->{"${item}_netto"} = $form->format_amount(\%myconfig, $form->{"${item}_netto"}, 2);
$TMPL_VAR{tax} .= qq|
- <tr>
- <th align=right>Enthaltene $form->{"${item}_description"} | . $form->{"${item}_rate"} * 100 .qq|%</th>
- <td align=right>$form->{"${item}_total"}</td>
- </tr>
- <tr>
- <th align=right>Nettobetrag</th>
- <td align=right>$form->{"${item}_netto"}</td>
- </tr> |;
+ <tr>
+ <th align=right>Enthaltene $form->{"${item}_description"} | . $form->{"${item}_rate"} * 100 .qq|%</th>
+ <td align=right>$form->{"${item}_total"}</td>
+ </tr>
+ <tr>
+ <th align=right>Nettobetrag</th>
+ <td align=right>$form->{"${item}_netto"}</td>
+ </tr> |;
}
}
}
my $rows = scalar @{ $form->{item_list} };
# hier ist das problem fuer bug 817 $form->{discount} wird nicht durchgeschliffen
- # ferner fallunterscheidung fuer verkauf oder einkauf s.a. bug 736 jb 04.05.2009
+ # ferner fallunterscheidung fuer verkauf oder einkauf s.a. bug 736 jb 04.05.2009
# select discount as vendor_discount from vendor ||
# select discount as customer_discount from customer
$form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{"$form->{vc}_discount"} * 100);
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
- $form->{addition} = "DELETED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$form->info($msg);
<td>
<table>
<tr>
- <th align=right>| . $locale->text('Currency') . qq|</th>
- <td>$form->{currency}</td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Date') . qq|</th>
- <td>$orddate</td>
- </tr>
+ <th align=right>| . $locale->text('Currency') . qq|</th>
+ <td>$form->{currency}</td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('Date') . qq|</th>
+ <td>$orddate</td>
+ </tr>
<tr>
- <th align=right>| . $locale->text('Exchangerate') . qq|</th>
- <td><input name=exchangerate size=11></td>
+ <th align=right>| . $locale->text('Exchangerate') . qq|</th>
+ <td><input name=exchangerate size=11></td>
</tr>
</table>
</td>
$form->{title} = $locale->text('Groups');
$number = qq|
- <tr>
- <th align=right width=1%>| . $locale->text('Group') . qq|</th>
- <td><input name=partsgroup size=20></td>
- </tr>
+ <tr>
+ <th align=right width=1%>| . $locale->text('Group') . qq|</th>
+ <td><input name=partsgroup size=20></td>
+ </tr>
|;
}
$form->{title} = $locale->text('Pricegroup');
$number = qq|
- <tr>
- <th align=right width=1%>| . $locale->text('Pricegroup') . qq|</th>
- <td><input name=pricegroup size=20></td>
- </tr>
+ <tr>
+ <th align=right width=1%>| . $locale->text('Pricegroup') . qq|</th>
+ <td><input name=pricegroup size=20></td>
+ </tr>
|;
}
<td>
<table width=100%>
$number
- <tr>
- <td></td>
- <td><input name=status class=radio type=radio value=all checked> |
- . $locale->text('All') . qq|
- <input name=status class=radio type=radio value=orphaned> |
- . $locale->text('Orphaned') . qq|</td>
- </tr>
+ <tr>
+ <td></td>
+ <td><input name=status class=radio type=radio value=all checked> | . $locale->text('All') . qq|
+ <input name=status class=radio type=radio value=orphaned> | . $locale->text('Orphaned') . qq|</td>
+ </tr>
</table>
</td>
</tr>
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
$form->{snumbers} = qq|projectnumber_| . $form->{projectnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|projectnumber_| . $form->{projectnumber};
- $form->{addition} = "DELETED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$main::lxdebug->leave_sub();
<tr>
<td>
<table width=100%>
- <tr class=listheading>
+ <tr class=listheading>
|;
map { print "$column_header{$_}\n" } @column_index;
<tr>
<td>
<table width=100%>
- <tr>
- <th align=right>| . $locale->text('Group') . qq|</th>
-
+ <tr>
+ <th align=right>| . $locale->text('Group') . qq|</th>
<td><input name=partsgroup size=30 value="$form->{partsgroup}"></td>
- </tr>
+ </tr>
</table>
</td>
</tr>
# button for saving history
print qq|
- <input type=button onclick=set_history_window(|
- . $form->{id}
- . qq|); name=history id=history value=|
- . $locale->text('history')
- . qq|>|;
+ <input type=button onclick=set_history_window(|
+ . $form->{id}
+ . qq|); name=history id=history value=|
+ . $locale->text('history')
+ . qq|>|;
# /button for saving history
print qq|
</form>
<tr>
<td>
<table width=100%>
- <tr class=listheading>
+ <tr class=listheading>
|;
map { print "$column_header{$_}\n" } @column_index;
<tr>
<td>
<table width=100%>
- <tr>
- <th align=right>| . $locale->text('Preisgruppe') . qq|</th>
+ <tr>
+ <th align=right>| . $locale->text('Preisgruppe') . qq|</th>
<td><input name=pricegroup size=30 value="$form->{pricegroup}"></td>
- </tr>
+ </tr>
</table>
</td>
</tr>
# button for saving history
print qq|
- <input type=button onclick=set_history_window(|
- . $form->{id}
- . qq|); name=history id=history value=|
- . $locale->text('history')
- . qq|>|;
+ <input type=button onclick=set_history_window(|
+ . $form->{id}
+ . qq|); name=history id=history value=|
+ . $locale->text('history')
+ . qq|>|;
# /button for saving history
print qq|
</form>
if(!exists $form->{addition} && $project->{id} ne "") {
$form->{id} = $project->{id};
$form->{snumbers} = qq|projectnumber_| . $project->{projectnumber};
- $form->{addition} = "SAVED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "SAVED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|projectnumber_| . $project->{projectnumber};
- $form->{addition} = "DELETED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
<tr>
<td>
<table>
- <tr>
- <th align=right nowrap>| . $locale->text('Account') . qq|</th>
- <td colspan=3><select name=accno>$selection</select>
- </td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('From') . qq|</th>
- <td><input name=fromdate id=fromdate size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
- <input type="button" name="fromdate" id="trigger_fromdate" value="?"></td>
- <th align=right>| . $locale->text('Until') . qq|</th>
- <td><input name=todate id=todate size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
- <input type="button" name="todate" id="trigger_todate" value="?"></td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Account') . qq|</th>
+ <td colspan=3><select name=accno>$selection</select>
+ </td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('From') . qq|</th>
+ <td><input name=fromdate id=fromdate size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
+ <input type="button" name="fromdate" id="trigger_fromdate" value="?"></td>
+ <th align=right>| . $locale->text('Until') . qq|</th>
+ <td><input name=todate id=todate size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
+ <input type="button" name="todate" id="trigger_todate" value="?"></td>
+ </tr>
</table>
</td>
</tr>
<tr>
<td>
<table width=100%>
- <tr class=listheading>
+ <tr class=listheading>
|;
map { print "\n$column_header{$_}" } @column_index;
. $form->format_amount(\%myconfig, $balance, 2, 0) . "</td>";
my $j = 0;
print qq|
- <tr class=listrow$j>
+ <tr class=listrow$j>
|;
map { print "\n$column_data{$_}" } @column_index;
print qq|
- </tr>
+ </tr>
|;
my $cleared;
$j++;
$j %= 2;
print qq|
- <tr class=listrow$j>
+ <tr class=listrow$j>
|;
map { print "\n$column_data{$_}" } @column_index;
print qq|
- </tr>
+ </tr>
|;
}
. $form->format_amount(\%myconfig, $totalcredits, 2, " ") . "</th>";
print qq|
- <tr class=listtotal>
+ <tr class=listtotal>
|;
map { print "\n$column_data{$_}" } @column_index;
if ($fx) {
$fx = $form->format_amount(\%myconfig, $fx, 2, 0);
$exchdiff = qq|
- <th align=right nowrap>|
- . $locale->text('Exchangerate Difference') . qq|</th>
- <td width=10%></td>
- <td align=right>$fx</td>
+ <th align=right nowrap>| . $locale->text('Exchangerate Difference') . qq|</th>
+ <td width=10%></td>
+ <td align=right>$fx</td>
|;
}
print qq|
- </tr>
+ </tr>
</table>
</td>
</tr>
<td>
<table width=100%>
<tr valign=top>
- <td>
- <table>
- <tr>
- <th align=right nowrap>| . $locale->text('Cleared Balance') . qq|</th>
- <td width=10%></td>
- <td align=right>$clearedbalance</td>
- </tr>
- <tr>
- $exchdiff
- </tr>
- </table>
- </td>
- <td align=right>
- <table>
- <tr>
- <th align=right nowrap>| . $locale->text('Statement Balance') . qq|</th>
- <td width=10%></td>
- <td align=right><input name=statementbalance size=11 value=$form->{statementbalance}></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Difference') . qq|</th>
- <td width=10%></td>
- <td align=right><input name=null size=11 value=$difference></td>
- <input type=hidden name=difference value=$difference>
- </tr>
- </table>
- </td>
- </tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Cleared Balance') . qq|</th>
+ <td width=10%></td>
+ <td align=right>$clearedbalance</td>
+ </tr>
+ <tr>
+ $exchdiff
+ </tr>
+ </table>
+ </td>
+ <td align=right>
+ <table>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Statement Balance') . qq|</th>
+ <td width=10%></td>
+ <td align=right><input name=statementbalance size=11 value=$form->{statementbalance}></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Difference') . qq|</th>
+ <td width=10%></td>
+ <td align=right><input name=null size=11 value=$difference></td>
+ <input type=hidden name=difference value=$difference>
+ </tr>
+ </table>
+ </td>
+ </tr>
</table>
</td>
</tr>
#
# Contributors: Antonio Gallardo <agssa@ibw.com.ni>
# Benjamin Lee <benjaminlee@consultant.com>
-# Philip Reetz <p.reetz@linet-services.de>
-# Udo Spallek
+# Philip Reetz <p.reetz@linet-services.de>
+# Udo Spallek
#
# 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
}
my $department = qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Department') . qq|</th>
- <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Department') . qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ </tr>
| if $form->{selectdepartment};
$form->get_lists("projects" => { "key" => "ALL_PROJECTS",
if ($form->{report} eq "projects") {
print qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Project') . qq|</th>
- <td colspan=5><input name=projectnumber size=25</td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Project') . qq|</th>
+ <td colspan=5><input name=projectnumber size=25</td>
+ </tr>
<input type=hidden name=nextsub value=generate_projects>
<tr>
- <th align=right>| . $locale->text('From') . qq|</th>
+ <th align=right>| . $locale->text('From') . qq|</th>
<td>$button1</td>
<td>$button1_2</td>
- <th align=right>| . $locale->text('Bis') . qq|</th>
+ <th align=right>| . $locale->text('Bis') . qq|</th>
<td>$button2</td>
<td>$button2_2</td>
- </tr>
+ </tr>
</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> | . $locale->text('Heading') . qq|
- <input name=l_subtotal class=checkbox type=checkbox value=Y> | . $locale->text('Subtotal') . 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> | . $locale->text('Heading') . qq|
+ <input name=l_subtotal class=checkbox type=checkbox value=Y> | . $locale->text('Subtotal') . qq|</td>
+ </tr>
$jsscript
|;
if ($form->{report} eq "income_statement") {
print qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Project') . qq|</th>
- <td colspan=3>$projectnumber</td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Project') . qq|</th>
+ <td colspan=3>$projectnumber</td>
+ </tr>
<input type=hidden name=nextsub value=generate_income_statement>
</table>
<table>
- <tr>
- <th align=left><input name=reporttype class=radio type=radio value="custom" checked> | . $locale->text('Customized Report') . qq|</th>
- </tr>
- <tr>
- <th colspan=1>| . $locale->text('Year') . qq|</th>
- <td><input name=year size=11 title="| . $locale->text('YYYY') . qq|" value="$year"></td>
- </tr>
+ <tr>
+ <th align=left><input name=reporttype class=radio type=radio value="custom" checked> | . $locale->text('Customized Report') . qq|</th>
+ </tr>
+ <tr>
+ <th colspan=1>| . $locale->text('Year') . qq|</th>
+ <td><input name=year size=11 title="| . $locale->text('YYYY') . qq|" value="$year"></td>
+ </tr>
|;
print qq|
- <tr>
- <td align=right> <b> | . $locale->text('Yearly') . qq|</b> </td>
- <th align=left>| . $locale->text('Quarterly') . qq|</th>
- <th align=left colspan=3>| . $locale->text('Monthly') . qq|</th>
- </tr>
- <tr>
- <td align=right> <input name=duetyp class=radio type=radio value="13" "checked"></td>
- <td><input name=duetyp class=radio type=radio value="A" $checked > 1. | . $locale->text('Quarter') . qq|</td>
+ <tr>
+ <td align=right> <b> | . $locale->text('Yearly') . qq|</b> </td>
+ <th align=left>| . $locale->text('Quarterly') . qq|</th>
+ <th align=left colspan=3>| . $locale->text('Monthly') . qq|</th>
+ </tr>
+ <tr>
+ <td align=right> <input name=duetyp class=radio type=radio value="13" "checked"></td>
+ <td><input name=duetyp class=radio type=radio value="A" $checked > 1. | . $locale->text('Quarter') . qq|</td>
|;
$checked = "";
print qq|
- <td><input name=duetyp class=radio type=radio value="1" $checked > | . $locale->text('January') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="1" $checked > | . $locale->text('January') . qq|</td>
|;
$checked = "";
print qq|
- <td><input name=duetyp class=radio type=radio value="5" $checked > | . $locale->text('May') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="9" $checked > | . $locale->text('September') . qq|</td>
-
- </tr>
- <tr>
- <td align= right> </td>
- <td><input name=duetyp class=radio type=radio value="B" $checked> 2. | . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="2" $checked > | . $locale->text('February') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="6" $checked > | . $locale->text('June') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="10" $checked > | . $locale->text('October') . qq|</td>
- </tr>
- <tr>
- <td> </td>
- <td><input name=duetyp class=radio type=radio value="C" $checked> 3. | . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="3" $checked > | . $locale->text('March') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="7" $checked > | . $locale->text('July') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="11" $checked > | . $locale->text('November') . qq|</td>
-
- </tr>
- <tr>
- <td> </td>
- <td><input name=duetyp class=radio type=radio value="D" $checked> 4. | . $locale->text('Quarter') . qq| </td>
- <td><input name=duetyp class=radio type=radio value="4" $checked > | . $locale->text('April') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="8" $checked > | . $locale->text('August') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="12" $checked > | . $locale->text('December') . qq|</td>
-
- </tr>
- <tr>
- <td colspan=5><hr size=3 noshade></td>
- </tr>
- <tr>
+ <td><input name=duetyp class=radio type=radio value="5" $checked > | . $locale->text('May') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="9" $checked > | . $locale->text('September') . qq|</td>
+
+ </tr>
+ <tr>
+ <td align= right> </td>
+ <td><input name=duetyp class=radio type=radio value="B" $checked> 2. | . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="2" $checked > | . $locale->text('February') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="6" $checked > | . $locale->text('June') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="10" $checked > | . $locale->text('October') . qq|</td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name=duetyp class=radio type=radio value="C" $checked> 3. | . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="3" $checked > | . $locale->text('March') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="7" $checked > | . $locale->text('July') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="11" $checked > | . $locale->text('November') . qq|</td>
+
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name=duetyp class=radio type=radio value="D" $checked> 4. | . $locale->text('Quarter') . qq| </td>
+ <td><input name=duetyp class=radio type=radio value="4" $checked > | . $locale->text('April') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="8" $checked > | . $locale->text('August') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="12" $checked > | . $locale->text('December') . qq|</td>
+
+ </tr>
+ <tr>
+ <td colspan=5><hr size=3 noshade></td>
+ </tr>
+ <tr>
<th align=left><input name=reporttype class=radio type=radio value="free" $checked> | . $locale->text('Free report period') . qq|</th>
- <td align=left colspan=4>| . $locale->text('From') . qq|
- $button1
+ <td align=left colspan=4>| . $locale->text('From') . qq|
+ $button1
$button1_2
- | . $locale->text('Bis') . qq|
+ | . $locale->text('Bis') . qq|
$button2
$button2_2
</td>
</tr>
- <tr>
- <td colspan=5><hr size=3 noshade></td>
- </tr>
- <tr>
- <th align=leftt>| . $locale->text('Method') . qq|</th>
- <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>| . $locale->text('Accrual') . qq|
- <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . qq|</td>
- </tr>
+ <tr>
+ <td colspan=5><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <th align=leftt>| . $locale->text('Method') . qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>| . $locale->text('Accrual') . qq|
+ <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . qq|</td>
+ </tr>
$jsscript
|;
if ($form->{report} eq "bwa") {
print qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Project') . qq|</th>
- <td colspan=3>$projectnumber</td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Project') . qq|</th>
+ <td colspan=3>$projectnumber</td>
+ </tr>
<input type=hidden name=nextsub value=generate_bwa>
</table>
<table>
- <tr>
- <th align=left><input name=reporttype class=radio type=radio value="custom" checked> | . $locale->text('Customized Report') . qq|</th>
- </tr>
- <tr>
- <th colspan=1>| . $locale->text('Year') . qq|</th>
- <td><input name=year size=11 title="| . $locale->text('YYYY') . qq|" value="$year"></td>
- </tr>
+ <tr>
+ <th align=left><input name=reporttype class=radio type=radio value="custom" checked> | . $locale->text('Customized Report') . qq|</th>
+ </tr>
+ <tr>
+ <th colspan=1>| . $locale->text('Year') . qq|</th>
+ <td><input name=year size=11 title="| . $locale->text('YYYY') . qq|" value="$year"></td>
+ </tr>
|;
print qq|
- <tr>
- <td align=right> <b> | . $locale->text('Yearly') . qq|</b> </td>
- <th align=left>| . $locale->text('Quarterly') . qq|</th>
- <th align=left colspan=3>| . $locale->text('Monthly') . qq|</th>
- </tr>
- <tr>
- <td align=right> <input name=duetyp class=radio type=radio value="13"
+ <tr>
+ <td align=right> <b> | . $locale->text('Yearly') . qq|</b> </td>
+ <th align=left>| . $locale->text('Quarterly') . qq|</th>
+ <th align=left colspan=3>| . $locale->text('Monthly') . qq|</th>
+ </tr>
+ <tr>
+ <td align=right> <input name=duetyp class=radio type=radio value="13"
$checked></td>
- <td><input name=duetyp class=radio type=radio value="A" $checked > 1. | . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="A" $checked > 1. | . $locale->text('Quarter') . qq|</td>
|;
$checked = "checked";
print qq|
- <td><input name=duetyp class=radio type=radio value="1" $checked > | . $locale->text('January') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="1" $checked > | . $locale->text('January') . qq|</td>
|;
$checked = "";
print qq|
- <td><input name=duetyp class=radio type=radio value="5" $checked > | . $locale->text('May') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="9" $checked > | . $locale->text('September') . qq|</td>
-
- </tr>
- <tr>
- <td align= right> </td>
- <td><input name=duetyp class=radio type=radio value="B" $checked> 2. | . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="2" $checked > | . $locale->text('February') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="6" $checked > | . $locale->text('June') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="10" $checked > | . $locale->text('October') . qq|</td>
- </tr>
- <tr>
- <td> </td>
- <td><input name=duetyp class=radio type=radio value="C" $checked> 3. | . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="3" $checked > | . $locale->text('March') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="7" $checked > | . $locale->text('July') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="11" $checked > | . $locale->text('November') . qq|</td>
-
- </tr>
- <tr>
- <td> </td>
- <td><input name=duetyp class=radio type=radio value="D" $checked> 4. | . $locale->text('Quarter') . qq| </td>
- <td><input name=duetyp class=radio type=radio value="4" $checked > | . $locale->text('April') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="8" $checked > | . $locale->text('August') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="12" $checked > | . $locale->text('December') . qq|</td>
-
- </tr>
- <tr>
- <td colspan=5><hr size=3 noshade></td>
- </tr>
- <tr>
+ <td><input name=duetyp class=radio type=radio value="5" $checked > | . $locale->text('May') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="9" $checked > | . $locale->text('September') . qq|</td>
+
+ </tr>
+ <tr>
+ <td align= right> </td>
+ <td><input name=duetyp class=radio type=radio value="B" $checked> 2. | . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="2" $checked > | . $locale->text('February') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="6" $checked > | . $locale->text('June') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="10" $checked > | . $locale->text('October') . qq|</td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name=duetyp class=radio type=radio value="C" $checked> 3. | . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="3" $checked > | . $locale->text('March') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="7" $checked > | . $locale->text('July') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="11" $checked > | . $locale->text('November') . qq|</td>
+
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name=duetyp class=radio type=radio value="D" $checked> 4. | . $locale->text('Quarter') . qq| </td>
+ <td><input name=duetyp class=radio type=radio value="4" $checked > | . $locale->text('April') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="8" $checked > | . $locale->text('August') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="12" $checked > | . $locale->text('December') . qq|</td>
+
+ </tr>
+ <tr>
+ <td colspan=5><hr size=3 noshade></td>
+ </tr>
+ <tr>
<th align=left><input name=reporttype class=radio type=radio value="free" $checked> | . $locale->text('Free report period') . qq|</th>
- <td align=left colspan=4>| . $locale->text('From') . qq|
- $button1
+ <td align=left colspan=4>| . $locale->text('From') . qq|
+ $button1
$button1_2
- | . $locale->text('Bis') . qq|
- $button2
+ | . $locale->text('Bis') . qq|
+ $button2
$button2_2
</td>
</tr>
- <tr>
- <td colspan=5><hr size=3 noshade></td>
- </tr>
- <tr>
- <th align=leftt>| . $locale->text('Method') . qq|</th>
- <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>| . $locale->text('Accrual') . qq|
- <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . qq|</td>
- </tr>
+ <tr>
+ <td colspan=5><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <th align=leftt>| . $locale->text('Method') . qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>| . $locale->text('Accrual') . qq|
+ <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . qq|</td>
+ </tr>
<tr>
<th align=right colspan=4>| . $locale->text('Decimalplaces') . qq|</th>
<td><input name=decimalplaces size=3 value="2"></td>
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>
+ <tr>
+ <th align=right>| . $locale->text('as at') . qq|</th>
+ <td>
$button1
$button1_2
</td>
- <th align=right nowrap>| . $locale->text('Compare to') . qq|</th>
- <td>
+ <th align=right nowrap>| . $locale->text('Compare to') . qq|</th>
+ <td>
$button2
$button2_2
</td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Decimalplaces') . qq|</th>
- <td><input name=decimalplaces size=3 value="2"></td>
- </tr>
+ </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 $accrual>| . $locale->text('Accrual') . qq|
- <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . 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> | . $locale->text('Heading') . qq|
- <input name=l_subtotal class=checkbox type=checkbox value=Y> | . $locale->text('Subtotal') . qq|
- <input name=l_accno class=checkbox type=checkbox value=Y> | . $locale->text('Account Number') . qq|</td>
- </tr>
+ <tr>
+ <th align=right>| . $locale->text('Method') . qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>| . $locale->text('Accrual') . qq|
+ <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . 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> | . $locale->text('Heading') . qq|
+ <input name=l_subtotal class=checkbox type=checkbox value=Y> | . $locale->text('Subtotal') . qq|
+ <input name=l_accno class=checkbox type=checkbox value=Y> | . $locale->text('Account Number') . qq|</td>
+ </tr>
$jsscript
|;
if ($form->{report} eq "trial_balance") {
print qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Project') . qq|</th>
- <td colspan=3>$projectnumber</td>
- </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Project') . qq|</th>
+ <td colspan=3>$projectnumber</td>
+ </tr>
<input type=hidden name=nextsub value=generate_trial_balance>
</table>
<table>
- <tr>
- <th align=left><input name=reporttype class=radio type=radio value="custom" checked> | . $locale->text('Customized Report') . qq|</th>
- </tr>
- <tr>
- <th colspan=1>| . $locale->text('Year') . qq|</th>
- <td><input name=year size=11 title="| . $locale->text('YYYY') . qq|" value="$year"></td>
- </tr>
+ <tr>
+ <th align=left><input name=reporttype class=radio type=radio value="custom" checked> | . $locale->text('Customized Report') . qq|</th>
+ </tr>
+ <tr>
+ <th colspan=1>| . $locale->text('Year') . qq|</th>
+ <td><input name=year size=11 title="| . $locale->text('YYYY') . qq|" value="$year"></td>
+ </tr>
|;
print qq|
- <tr>
- <td align=right> <b> | . $locale->text('Yearly') . qq|</b> </td>
- <th align=left>| . $locale->text('Quarterly') . qq|</th>
- <th align=left colspan=3>| . $locale->text('Monthly') . qq|</th>
- </tr>
- <tr>
- <td align=right> <input name=duetyp class=radio type=radio value="13" $checked></td>
- <td><input name=duetyp class=radio type=radio value="A" $checked > 1. | . $locale->text('Quarter') . qq|</td>
+ <tr>
+ <td align=right> <b> | . $locale->text('Yearly') . qq|</b> </td>
+ <th align=left>| . $locale->text('Quarterly') . qq|</th>
+ <th align=left colspan=3>| . $locale->text('Monthly') . qq|</th>
+ </tr>
+ <tr>
+ <td align=right> <input name=duetyp class=radio type=radio value="13" $checked></td>
+ <td><input name=duetyp class=radio type=radio value="A" $checked > 1. | . $locale->text('Quarter') . qq|</td>
|;
$checked = "checked";
print qq|
- <td><input name=duetyp class=radio type=radio value="1" $checked > | . $locale->text('January') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="1" $checked > | . $locale->text('January') . qq|</td>
|;
$checked = "";
print qq|
- <td><input name=duetyp class=radio type=radio value="5" $checked > | . $locale->text('May') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="9" $checked > | . $locale->text('September') . qq|</td>
-
- </tr>
- <tr>
- <td align= right> </td>
- <td><input name=duetyp class=radio type=radio value="B" $checked> 2. | . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="2" $checked > | . $locale->text('February') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="6" $checked > | . $locale->text('June') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="10" $checked > | . $locale->text('October') . qq|</td>
- </tr>
- <tr>
- <td> </td>
- <td><input name=duetyp class=radio type=radio value="C" $checked> 3. | . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="3" $checked > | . $locale->text('March') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="7" $checked > | . $locale->text('July') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="11" $checked > | . $locale->text('November') . qq|</td>
-
- </tr>
- <tr>
- <td> </td>
- <td><input name=duetyp class=radio type=radio value="D" $checked> 4. | . $locale->text('Quarter') . qq| </td>
- <td><input name=duetyp class=radio type=radio value="4" $checked > | . $locale->text('April') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="8" $checked > | . $locale->text('August') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="12" $checked > | . $locale->text('December') . qq|</td>
-
- </tr>
- <tr>
- <td colspan=5><hr size=3 noshade></td>
- </tr>
- <tr>
+ <td><input name=duetyp class=radio type=radio value="5" $checked > | . $locale->text('May') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="9" $checked > | . $locale->text('September') . qq|</td>
+
+ </tr>
+ <tr>
+ <td align= right> </td>
+ <td><input name=duetyp class=radio type=radio value="B" $checked> 2. | . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="2" $checked > | . $locale->text('February') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="6" $checked > | . $locale->text('June') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="10" $checked > | . $locale->text('October') . qq|</td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name=duetyp class=radio type=radio value="C" $checked> 3. | . $locale->text('Quarter') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="3" $checked > | . $locale->text('March') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="7" $checked > | . $locale->text('July') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="11" $checked > | . $locale->text('November') . qq|</td>
+
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name=duetyp class=radio type=radio value="D" $checked> 4. | . $locale->text('Quarter') . qq| </td>
+ <td><input name=duetyp class=radio type=radio value="4" $checked > | . $locale->text('April') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="8" $checked > | . $locale->text('August') . qq|</td>
+ <td><input name=duetyp class=radio type=radio value="12" $checked > | . $locale->text('December') . qq|</td>
+
+ </tr>
+ <tr>
+ <td colspan=5><hr size=3 noshade></td>
+ </tr>
+ <tr>
<th align=left><input name=reporttype class=radio type=radio value="free" $checked> | . $locale->text('Free report period') . qq|</th>
- <td align=left colspan=4>| . $locale->text('From') . qq|
- $button1
+ <td align=left colspan=4>| . $locale->text('From') . qq|
+ $button1
$button1_2
- | . $locale->text('Bis') . qq|
- $button2
+ | . $locale->text('Bis') . qq|
+ $button2
$button2_2
</td>
</tr>
- <tr>
- <td colspan=5><hr size=3 noshade></td>
- </tr>
- <tr>
- <th align=leftt>| . $locale->text('Method') . qq|</th>
- <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>| . $locale->text('Accrual') . qq|
- <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . qq|</td>
- </tr>
+ <tr>
+ <td colspan=5><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <th align=leftt>| . $locale->text('Method') . qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>| . $locale->text('Accrual') . qq|
+ <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . qq|</td>
+ </tr>
<tr>
<th align=right colspan=4>| . $locale->text('All Accounts') . qq|</th>
<td><input name=all_accounts type=checkbox value=1></td>
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('Bis') . qq|</th>
- <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Report for') . qq|</th>
- <td colspan=3>
+ <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('Bis') . qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('Report for') . qq|</th>
+ <td colspan=3>
|;
$checked = "checked";
<input type=hidden name=db value=$form->{db}>
<input type=hidden name=sort value=transdate>
- </td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Method') . qq|</th>
- <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>| . $locale->text('Accrual') . qq|
- <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . qq|</td>
- </tr>
+ </td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('Method') . qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>| . $locale->text('Accrual') . qq|
+ <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . qq|</td>
+ </tr>
</table>
</td>
</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>
- <td>|;
+ <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>
+ <td>|;
if ($form->{db} eq 'ar') {
print $locale->text('Customer');
print 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_amount" class=checkbox type=checkbox value=Y></td>
- <td>| . $locale->text('Total') . qq|</td>
- </tr>
- <tr>
- <td><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
- <td>| . $locale->text('Subtotal') . qq|</td>
- </tr>
- </table>
- </td>
- </tr>
+ <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_amount" class=checkbox type=checkbox value=Y></td>
+ <td>| . $locale->text('Total') . qq|</td>
+ </tr>
+ <tr>
+ <td><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td>| . $locale->text('Subtotal') . qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
|;
}
<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('Bis') . qq|</th>
- <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('Method') . qq|</th>
- <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>|
+ <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('Bis') . qq|</th>
+ <td><input name=todate size=11 title="$myconfig{dateformat}"></td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('Method') . qq|</th>
+ <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>|
. $locale->text('Accrual') . qq|
- <input name=method class=radio type=radio value=cash $cash>|
+ <input name=method class=radio type=radio value=cash $cash>|
. $locale->text('EUR') . 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>
- <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>
+ <td>|;
if ($form->{db} eq 'ar') {
print $locale->text('Customer');
print 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_amount" class=checkbox type=checkbox value=Y></td>
- <td>| . $locale->text('Total') . qq|</td>
- </tr>
- <tr>
- <td><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
- <td>| . $locale->text('Subtotal') . qq|</td>
- </tr>
- </table>
- </td>
- </tr>
+ <td>| . $locale->text('Amount') . qq|</td>
+ <td><input name="l_amount" class=checkbox type=checkbox value=Y></td>
+ <td>| . $locale->text('Total') . qq|</td>
+ </tr>
+ <tr>
+ <td><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td>| . $locale->text('Subtotal') . qq|</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
|;
}
: qq|<input name=$form->{vc} size=35>|;
print qq|
- <tr>
- <th align=right>| . $locale->text($label) . qq|</th>
- <td>$vc</td>
- </tr>
- <tr>
- <td align=left colspan=4>| . $locale->text('From') . qq|
- $button1
+ <tr>
+ <th align=right>| . $locale->text($label) . qq|</th>
+ <td>$vc</td>
+ </tr>
+ <tr>
+ <td align=left colspan=4>| . $locale->text('From') . qq|
+ $button1
$button1_2
- | . $locale->text('Bis') . qq|
- $button2
+ | . $locale->text('Bis') . qq|
+ $button2
$button2_2
</td>
- </tr>
+ </tr>
<input type=hidden name=type value=statement>
<input type=hidden name=format value=html>
- <input type=hidden name=media value=screen>
+ <input type=hidden name=media value=screen>
- <input type=hidden name=nextsub value=$nextsub>
- <input type=hidden name=action value=$nextsub>
+ <input type=hidden name=nextsub value=$nextsub>
+ <input type=hidden name=action value=$nextsub>
$jsscript
|;
print qq|
<input type=hidden name=nextsub value=list_payments>
<tr>
- <th align=right nowrap>| . $locale->text('Account') . qq|</th>
+ <th align=right nowrap>| . $locale->text('Account') . qq|</th>
<td colspan=3><select name=account>$selection</select>
- <input type=hidden name=paymentaccounts value="$paymentaccounts">
- </td>
- </tr>
+ <input type=hidden name=paymentaccounts value="$paymentaccounts">
+ </td>
+ </tr>
<tr>
- <th align=right>| . $locale->text('Reference') . qq|</th>
+ <th align=right>| . $locale->text('Reference') . qq|</th>
<td colspan=3><input name=reference></td>
- </tr>
+ </tr>
<tr>
- <th align=right nowrap>| . $locale->text('Source') . qq|</th>
+ <th align=right nowrap>| . $locale->text('Source') . qq|</th>
<td colspan=3><input name=source></td>
- </tr>
+ </tr>
<tr>
- <th align=right nowrap>| . $locale->text('Memo') . qq|</th>
+ <th align=right nowrap>| . $locale->text('Memo') . qq|</th>
<td colspan=3><input name=memo size=30></td>
- </tr>
- <tr>
- <th align=right>| . $locale->text('From') . qq|</th>
- <td>
+ </tr>
+ <tr>
+ <th align=right>| . $locale->text('From') . qq|</th>
+ <td>
$button1
$button1_2
</td>
- <th align=right>| . $locale->text('Bis') . qq|</th>
- <td>
+ <th align=right>| . $locale->text('Bis') . qq|</th>
+ <td>
$button2
$button2_2
</td>
- </tr>
+ </tr>
<tr>
- <td align=right><input type=checkbox style=checkbox name=fx_transaction value=1 checked></td>
- <th align=left colspan=3>| . $locale->text('Include Exchangerate Difference') . qq|</td>
- </tr>
+ <td align=right><input type=checkbox style=checkbox name=fx_transaction value=1 checked></td>
+ <th align=left colspan=3>| . $locale->text('Include Exchangerate Difference') . qq|</td>
+ </tr>
$jsscript
- <input type=hidden name=db value=$form->{db}>
- <input type=hidden name=sort value=transdate>
+ <input type=hidden name=db value=$form->{db}>
+ <input type=hidden name=sort value=transdate>
|;
}
if ($myconfig{role} eq 'admin') {
$bcc = qq|
<th align=right nowrap=true>| . $locale->text('Bcc') . qq|</th>
- <td><input name=bcc size=30 value="$form->{bcc}"></td>
+ <td><input name=bcc size=30 value="$form->{bcc}"></td>
|;
}
<td>
<table width=100%>
<tr>
- <th align=right nowrap>| . $locale->text('E-mail') . qq|</th>
- <td><input name=email size=30 value="$form->{email}"></td>
- <th align=right nowrap>| . $locale->text('Cc') . qq|</th>
- <td><input name=cc size=30 value="$form->{cc}"></td>
- </tr>
- <tr>
- <th align=right nowrap>| . $locale->text('Subject') . qq|</th>
- <td><input name=subject size=30 value="$form->{subject}"></td>
- $bcc
- </tr>
+ <th align=right nowrap>| . $locale->text('E-mail') . qq|</th>
+ <td><input name=email size=30 value="$form->{email}"></td>
+ <th align=right nowrap>| . $locale->text('Cc') . qq|</th>
+ <td><input name=cc size=30 value="$form->{cc}"></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Subject') . qq|</th>
+ <td><input name=subject size=30 value="$form->{subject}"></td>
+ $bcc
+ </tr>
</table>
</td>
</tr>
<td>
<table width=100%>
<tr>
- <th align=left nowrap>| . $locale->text('Message') . qq|</th>
- </tr>
- <tr>
- <td><textarea name=message rows=15 cols=60 wrap=soft>$form->{message}</textarea></td>
- </tr>
+ <th align=left nowrap>| . $locale->text('Message') . qq|</th>
+ </tr>
+ <tr>
+ <td><textarea name=message rows=15 cols=60 wrap=soft>$form->{message}</textarea></td>
+ </tr>
</table>
</td>
</tr>
# saving the history
if(!exists $form->{addition} && $form->{id} ne "") {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
- $form->{addition} = "PRINTED";
- $form->{what_done} = $form->{type};
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->{addition} = "PRINTED";
+ $form->{what_done} = $form->{type};
+ $form->save_history($form->dbconnect(\%myconfig));
}
# /saving the history
$main::lxdebug->leave_sub();
<tr>
<td>
<table width=100%>
- <tr class=listheading>
+ <tr class=listheading>
|;
map { print "$column_header{$_}\n" } @column_index;
print qq|
- </tr>
+ </tr>
|;
# add sort and escape callback
$i++;
$i %= 2;
print qq|
- <tr class=listrow$i>
+ <tr class=listrow$i>
|;
map { print "$column_data{$_}\n" } @column_index;
print qq|
- </tr>
+ </tr>
|;
}
print qq|
</tr>
- <tr class=listtotal>
+ <tr class=listtotal>
|;
my $total = $form->format_amount(\%myconfig, $totalnetamount + $totaltax, 2, " ");
$subtotaltax = 0;
print qq|
- <tr class=listsubtotal>
+ <tr class=listsubtotal>
|;
map { print "\n$column_data{$_}" } @column_index;
my ($media);
my $type = qq|
- <option value=statement $form->{PD}{statement}>|
- . $locale->text('Statement');
+ <option value=statement $form->{PD}{statement}>| . $locale->text('Statement');
if ($form->{media} eq 'email') {
$media = qq|
- <option value=attachment $form->{SM}{attachment}>|
- . $locale->text('Attachment') . qq|
- <option value=inline $form->{SM}{inline}>| . $locale->text('In-line');
+ <option value=attachment $form->{SM}{attachment}>| . $locale->text('Attachment') . qq|
+ <option value=inline $form->{SM}{inline}>| . $locale->text('In-line');
} else {
$media = qq|
- <option value=screen $form->{OP}{screen}>| . $locale->text('Screen');
+ <option value=screen $form->{OP}{screen}>| . $locale->text('Screen');
if ($myconfig{printer} && $main::latex_templates) {
$media .= qq|
- <option value=printer $form->{OP}{printer}>|
- . $locale->text('Printer');
+ <option value=printer $form->{OP}{printer}>| . $locale->text('Printer');
}
}
my @contents = WH->get_warehouse_report("warehouse_id" => $form->{warehouse_id},
"bin_id" => $form->{bin_id},
"chargenumber" => $form->{chargenumber},
- "partnumber" => $form->{partnumber},
- "ean" => $form->{ean},
+ "partnumber" => $form->{partnumber},
+ "ean" => $form->{ean},
"description" => $form->{description});
$form->show_generic_error($locale->text("The selected warehouse is empty.")) if (0 == scalar(@contents));
} elsif (($form->{partnumber} && ($form->{partnumber} ne $form->{old_partnumber})) || $form->{description} || $form->{ean}) {
$form->{no_services} = 1;
- $form->{no_assemblies} = 0; # assemblies duerfen eingelagert werden (z.B. bei retouren)
+ $form->{no_assemblies} = 0; # assemblies duerfen eingelagert werden (z.B. bei retouren)
my $parts = Common->retrieve_parts(\%myconfig, $form, 'description', 1);
$form->show_generic_error($locale->text('Invalid quantity.'), 'back_button' => 1);
}
# TODO Es wäre schön, hier schon die maximale Anzahl der zu fertigenden Erzeugnisse zu haben
- #else { if ($form->{qty} > $maxcreate) { #s.o.
- # $form->show_generic_error($locale->text('Can not create that quantity with current stock'), 'back_button' => 1);
- # $form->show_generic_error('Maximale Stückzahl' . $maxcreate , 'back_button' => 1);
- # }
+ #else { if ($form->{qty} > $maxcreate) { #s.o.
+ # $form->show_generic_error($locale->text('Can not create that quantity with current stock'), 'back_button' => 1);
+ # $form->show_generic_error('Maximale Stückzahl' . $maxcreate , 'back_button' => 1);
+ # }
# }
if (!$form->{warehouse_id} || !$form->{bin_id}) {
# Anm. jb 18.3. vielleicht auch nur meine unwissenheit in perl-datenstrukturen
my %TRANSFER = (
'transfer_type' => 'assembly',
- 'login' => $form->{login},
+ 'login' => $form->{login},
'dst_warehouse_id' => $form->{warehouse_id},
'dst_bin_id' => $form->{bin_id},
'chargenumber' => $form->{chargenumber},
return -1;
}
-=item new_item
-
-call new item dialogue from warehouse masks.
-
-PARAMS:
- action => name of sub to be called when new item is done
-
-=cut
sub new_item {
$main::lxdebug->enter_sub();
my %params = @_;
}
1;
+
+__END__
+
+=head1 NAME
+
+bin/mozilla/wh.pl - Warehouse frontend.
+
+=head1 FUNCTIONS
+
+=over 4
+
+=item new_item
+
+call new item dialogue from warehouse masks.
+
+PARAMS:
+ action => name of sub to be called when new item is done
+
+=back
+
+=cut
--- /dev/null
+.ac_results {
+ padding: 0px;
+ border: 1px solid black;
+ background-color: white;
+ overflow: hidden;
+ z-index: 99999;
+}
+
+.ac_results ul {
+ width: 100%;
+ list-style-position: outside;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+.ac_results li {
+ margin: 0px;
+ padding: 2px 5px;
+ cursor: default;
+ display: block;
+ /*
+ if width will be 100% horizontal scrollbar will apear
+ when scroll mode will be used
+ */
+ /*width: 100%;*/
+ font: menu;
+ font-size: 12px;
+ /*
+ it is very important, if line-height not setted or setted
+ in relative units scroll will be broken in firefox
+ */
+ line-height: 16px;
+ overflow: hidden;
+}
+
+.ac_loading {
+ background: white url('indicator.gif') right center no-repeat;
+}
+
+.ac_odd {
+ background-color: #eee;
+}
+
+.ac_over {
+ background-color: #0A246A;
+ color: white;
+}
--- /dev/null
+/*
+ * jQuery Autocomplete plugin 1.1
+ *
+ * Copyright (c) 2009 Jörn Zaefferer
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * Revision: $Id: jquery.autocomplete.js 15 2009-08-22 10:30:27Z joern.zaefferer $
+ */
+eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(3($){$.2e.1u({19:3(b,d){5 c=W b=="1B";d=$.1u({},$.M.1T,{Y:c?b:P,y:c?P:b,1J:c?$.M.1T.1J:10,X:d&&!d.1D?10:48},d);d.1y=d.1y||3(a){6 a};d.1v=d.1v||d.1R;6 A.I(3(){1M $.M(A,d)})},L:3(a){6 A.11("L",a)},1k:3(a){6 A.14("1k",[a])},2b:3(){6 A.14("2b")},28:3(a){6 A.14("28",[a])},24:3(){6 A.14("24")}});$.M=3(o,r){5 t={2Y:38,2S:40,2N:46,2I:9,2E:13,2B:27,2x:3I,2v:33,2p:34,2n:8};5 u=$(o).3r("19","3o").Q(r.2Q);5 p;5 m="";5 n=$.M.3c(r);5 s=0;5 k;5 h={1F:C};5 l=$.M.32(r,o,1Z,h);5 j;$.1Y.2X&&$(o.2U).11("45.19",3(){4(j){j=C;6 C}});u.11(($.1Y.2X?"43":"42")+".19",3(a){s=1;k=a.2M;3V(a.2M){O t.2Y:a.1d();4(l.N()){l.30()}w{12(0,D)}R;O t.2S:a.1d();4(l.N()){l.2D()}w{12(0,D)}R;O t.2v:a.1d();4(l.N()){l.2C()}w{12(0,D)}R;O t.2p:a.1d();4(l.N()){l.2A()}w{12(0,D)}R;O r.17&&$.1c(r.S)==","&&t.2x:O t.2I:O t.2E:4(1Z()){a.1d();j=D;6 C}R;O t.2B:l.Z();R;3J:1P(p);p=1O(12,r.1J);R}}).2t(3(){s++}).3E(3(){s=0;4(!h.1F){2r()}}).2q(3(){4(s++>1&&!l.N()){12(0,D)}}).11("1k",3(){5 c=(1r.7>1)?1r[1]:P;3 1N(q,a){5 b;4(a&&a.7){16(5 i=0;i<a.7;i++){4(a[i].L.J()==q.J()){b=a[i];R}}}4(W c=="3")c(b);w u.14("L",b&&[b.y,b.F])}$.I(15(u.K()),3(i,a){21(a,1N,1N)})}).11("2b",3(){n.1o()}).11("28",3(){$.1u(r,1r[1]);4("y"2h 1r[1])n.1e()}).11("24",3(){l.1p();u.1p();$(o.2U).1p(".19")});3 1Z(){5 e=l.2g();4(!e)6 C;5 v=e.L;m=v;4(r.17){5 b=15(u.K());4(b.7>1){5 f=r.S.7;5 c=$(o).18().1I;5 d,1H=0;$.I(b,3(i,a){1H+=a.7;4(c<=1H){d=i;6 C}1H+=f});b[d]=v;v=b.3f(r.S)}v+=r.S}u.K(v);1l();u.14("L",[e.y,e.F]);6 D}3 12(b,c){4(k==t.2N){l.Z();6}5 a=u.K();4(!c&&a==m)6;m=a;a=1m(a);4(a.7>=r.29){u.Q(r.26);4(!r.1s)a=a.J();21(a,3a,1l)}w{1q();l.Z()}};3 15(b){4(!b)6[""];4(!r.17)6[$.1c(b)];6 $.4h(b.23(r.S),3(a){6 $.1c(b).7?$.1c(a):P})}3 1m(a){4(!r.17)6 a;5 c=15(a);4(c.7==1)6 c[0];5 b=$(o).18().1I;4(b==a.7){c=15(a)}w{c=15(a.22(a.37(b),""))}6 c[c.7-1]}3 1G(q,a){4(r.1G&&(1m(u.K()).J()==q.J())&&k!=t.2n){u.K(u.K()+a.37(1m(m).7));$(o).18(m.7,m.7+a.7)}};3 2r(){1P(p);p=1O(1l,4g)};3 1l(){5 c=l.N();l.Z();1P(p);1q();4(r.36){u.1k(3(a){4(!a){4(r.17){5 b=15(u.K()).1n(0,-1);u.K(b.3f(r.S)+(b.7?r.S:""))}w{u.K("");u.14("L",P)}}})}};3 3a(q,a){4(a&&a.7&&s){1q();l.35(a,q);1G(q,a[0].F);l.20()}w{1l()}};3 21(f,d,g){4(!r.1s)f=f.J();5 e=n.31(f);4(e&&e.7){d(f,e)}w 4((W r.Y=="1B")&&(r.Y.7>0)){5 c={4f:+1M 4e()};$.I(r.2Z,3(a,b){c[a]=W b=="3"?b():b});$.4d({4c:"4b",4a:"19"+o.49,2V:r.2V,Y:r.Y,y:$.1u({q:1m(f),47:r.X},c),44:3(a){5 b=r.1A&&r.1A(a)||1A(a);n.1i(f,b);d(f,b)}})}w{l.2T();g(f)}};3 1A(c){5 d=[];5 b=c.23("\\n");16(5 i=0;i<b.7;i++){5 a=$.1c(b[i]);4(a){a=a.23("|");d[d.7]={y:a,F:a[0],L:r.1z&&r.1z(a,a[0])||a[0]}}}6 d};3 1q(){u.1h(r.26)}};$.M.1T={2Q:"41",2P:"3Z",26:"3Y",29:1,1J:3W,1s:C,1f:D,1w:C,1g:10,X:3U,36:C,2Z:{},1X:D,1R:3(a){6 a[0]},1v:P,1G:C,E:0,17:C,S:", ",1y:3(b,a){6 b.22(1M 3T("(?![^&;]+;)(?!<[^<>]*)("+a.22(/([\\^\\$\\(\\)\\[\\]\\{\\}\\*\\.\\+\\?\\|\\\\])/2K,"\\\\$1")+")(?![^<>]*>)(?![^&;]+;)","2K"),"<2J>$1</2J>")},1D:D,1E:3S};$.M.3c=3(g){5 h={};5 j=0;3 1f(s,a){4(!g.1s)s=s.J();5 i=s.2H(a);4(g.1w=="3R"){i=s.J().1k("\\\\b"+a.J())}4(i==-1)6 C;6 i==0||g.1w};3 1i(q,a){4(j>g.1g){1o()}4(!h[q]){j++}h[q]=a}3 1e(){4(!g.y)6 C;5 f={},2G=0;4(!g.Y)g.1g=1;f[""]=[];16(5 i=0,2F=g.y.7;i<2F;i++){5 c=g.y[i];c=(W c=="1B")?[c]:c;5 d=g.1v(c,i+1,g.y.7);4(d===C)1V;5 e=d.3Q(0).J();4(!f[e])f[e]=[];5 b={F:d,y:c,L:g.1z&&g.1z(c)||d};f[e].1U(b);4(2G++<g.X){f[""].1U(b)}};$.I(f,3(i,a){g.1g++;1i(i,a)})}1O(1e,25);3 1o(){h={};j=0}6{1o:1o,1i:1i,1e:1e,31:3(q){4(!g.1g||!j)6 P;4(!g.Y&&g.1w){5 a=[];16(5 k 2h h){4(k.7>0){5 c=h[k];$.I(c,3(i,x){4(1f(x.F,q)){a.1U(x)}})}}6 a}w 4(h[q]){6 h[q]}w 4(g.1f){16(5 i=q.7-1;i>=g.29;i--){5 c=h[q.3O(0,i)];4(c){5 a=[];$.I(c,3(i,x){4(1f(x.F,q)){a[a.7]=x}});6 a}}}6 P}}};$.M.32=3(e,g,f,k){5 h={H:"3N"};5 j,z=-1,y,1t="",1S=D,G,B;3 2y(){4(!1S)6;G=$("<3M/>").Z().Q(e.2P).T("3L","3K").1Q(1K.2w);B=$("<3H/>").1Q(G).3G(3(a){4(U(a).2u&&U(a).2u.3F()==\'2s\'){z=$("1L",B).1h(h.H).3D(U(a));$(U(a)).Q(h.H)}}).2q(3(a){$(U(a)).Q(h.H);f();g.2t();6 C}).3C(3(){k.1F=D}).3B(3(){k.1F=C});4(e.E>0)G.T("E",e.E);1S=C}3 U(a){5 b=a.U;3A(b&&b.3z!="2s")b=b.3y;4(!b)6[];6 b}3 V(b){j.1n(z,z+1).1h(h.H);2o(b);5 a=j.1n(z,z+1).Q(h.H);4(e.1D){5 c=0;j.1n(0,z).I(3(){c+=A.1a});4((c+a[0].1a-B.1b())>B[0].3x){B.1b(c+a[0].1a-B.3w())}w 4(c<B.1b()){B.1b(c)}}};3 2o(a){z+=a;4(z<0){z=j.1j()-1}w 4(z>=j.1j()){z=0}}3 2m(a){6 e.X&&e.X<a?e.X:a}3 2l(){B.2z();5 b=2m(y.7);16(5 i=0;i<b;i++){4(!y[i])1V;5 a=e.1R(y[i].y,i+1,b,y[i].F,1t);4(a===C)1V;5 c=$("<1L/>").3v(e.1y(a,1t)).Q(i%2==0?"3u":"3P").1Q(B)[0];$.y(c,"2k",y[i])}j=B.3t("1L");4(e.1X){j.1n(0,1).Q(h.H);z=0}4($.2e.2W)B.2W()}6{35:3(d,q){2y();y=d;1t=q;2l()},2D:3(){V(1)},30:3(){V(-1)},2C:3(){4(z!=0&&z-8<0){V(-z)}w{V(-8)}},2A:3(){4(z!=j.1j()-1&&z+8>j.1j()){V(j.1j()-1-z)}w{V(8)}},Z:3(){G&&G.Z();j&&j.1h(h.H);z=-1},N:3(){6 G&&G.3s(":N")},3q:3(){6 A.N()&&(j.2j("."+h.H)[0]||e.1X&&j[0])},20:3(){5 a=$(g).3p();G.T({E:W e.E=="1B"||e.E>0?e.E:$(g).E(),2i:a.2i+g.1a,1W:a.1W}).20();4(e.1D){B.1b(0);B.T({2L:e.1E,3n:\'3X\'});4($.1Y.3m&&W 1K.2w.3l.2L==="1x"){5 c=0;j.I(3(){c+=A.1a});5 b=c>e.1E;B.T(\'3k\',b?e.1E:c);4(!b){j.E(B.E()-2R(j.T("2O-1W"))-2R(j.T("2O-3j")))}}}},2g:3(){5 a=j&&j.2j("."+h.H).1h(h.H);6 a&&a.7&&$.y(a[0],"2k")},2T:3(){B&&B.2z()},1p:3(){G&&G.3i()}}};$.2e.18=3(b,f){4(b!==1x){6 A.I(3(){4(A.2d){5 a=A.2d();4(f===1x||b==f){a.4n("2c",b);a.3h()}w{a.4m(D);a.4l("2c",b);a.4k("2c",f);a.3h()}}w 4(A.3g){A.3g(b,f)}w 4(A.1C){A.1C=b;A.3e=f}})}5 c=A[0];4(c.2d){5 e=1K.18.4j(),3d=c.F,2a="<->",2f=e.3b.7;e.3b=2a;5 d=c.F.2H(2a);c.F=3d;A.18(d,d+2f);6{1I:d,39:d+2f}}w 4(c.1C!==1x){6{1I:c.1C,39:c.3e}}}})(4i);',62,272,'|||function|if|var|return|length|||||||||||||||||||||||||else||data|active|this|list|false|true|width|value|element|ACTIVE|each|toLowerCase|val|result|Autocompleter|visible|case|null|addClass|break|multipleSeparator|css|target|moveSelect|typeof|max|url|hide||bind|onChange||trigger|trimWords|for|multiple|selection|autocomplete|offsetHeight|scrollTop|trim|preventDefault|populate|matchSubset|cacheLength|removeClass|add|size|search|hideResultsNow|lastWord|slice|flush|unbind|stopLoading|arguments|matchCase|term|extend|formatMatch|matchContains|undefined|highlight|formatResult|parse|string|selectionStart|scroll|scrollHeight|mouseDownOnSelect|autoFill|progress|start|delay|document|li|new|findValueCallback|setTimeout|clearTimeout|appendTo|formatItem|needsInit|defaults|push|continue|left|selectFirst|browser|selectCurrent|show|request|replace|split|unautocomplete||loadingClass||setOptions|minChars|teststring|flushCache|character|createTextRange|fn|textLength|selected|in|top|filter|ac_data|fillList|limitNumberOfItems|BACKSPACE|movePosition|PAGEDOWN|click|hideResults|LI|focus|nodeName|PAGEUP|body|COMMA|init|empty|pageDown|ESC|pageUp|next|RETURN|ol|nullData|indexOf|TAB|strong|gi|maxHeight|keyCode|DEL|padding|resultsClass|inputClass|parseInt|DOWN|emptyList|form|dataType|bgiframe|opera|UP|extraParams|prev|load|Select|||display|mustMatch|substring||end|receiveData|text|Cache|orig|selectionEnd|join|setSelectionRange|select|remove|right|height|style|msie|overflow|off|offset|current|attr|is|find|ac_even|html|innerHeight|clientHeight|parentNode|tagName|while|mouseup|mousedown|index|blur|toUpperCase|mouseover|ul|188|default|absolute|position|div|ac_over|substr|ac_odd|charAt|word|180|RegExp|100|switch|400|auto|ac_loading|ac_results||ac_input|keydown|keypress|success|submit||limit|150|name|port|abort|mode|ajax|Date|timestamp|200|map|jQuery|createRange|moveEnd|moveStart|collapse|move'.split('|'),0,{}))
\ No newline at end of file
--- /dev/null
+jquery-autocomplete/jquery.autocomplete.pack.js
\ No newline at end of file
'Set eMail text' => 'eMail Text eingeben',
'Setup Menu' => 'Menüsetup',
'Setup Templates' => 'Vorlagen auswählen',
- 'Ship' => 'Lagerausgang',
- 'Ship rcvd' => 'Lagereingang',
'Ship to' => 'Lieferadresse',
'Ship via' => 'Transportmittel',
'Shipping Address' => 'Lieferadresse',
'Dunning' => 'Mahnung',
'ELSE' => 'Zusatz',
'Edit Accounts Payables Transaction' => 'Kreditorenbuchung bearbeiten',
- 'Employee' => 'Bearbeiter',
'Enter longdescription' => 'Langtext eingeben',
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s',
'Exch' => 'Wechselkurs.',
'General ledger and cash' => 'Finanzbuchhaltung und Zahlungsverkehr',
'History' => 'Historie',
'ID' => 'Buchungsnummer',
- 'Include in Report' => 'In Bericht aufnehmen',
'Invoice' => 'Rechnung',
'Invoice (one letter abbreviation)' => 'R',
'Invoice Date' => 'Rechnungsdatum',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
- 'Subtotal' => 'Zwischensumme',
'Tax' => 'Steuer',
'Tax Included' => 'Steuer im Preis inbegriffen',
'Taxkey' => 'Steuerschlüssel',
'General ledger and cash' => 'Finanzbuchhaltung und Zahlungsverkehr',
'History' => 'Historie',
'ID' => 'Buchungsnummer',
- 'Include in Report' => 'In Bericht aufnehmen',
'Incoming Payments' => 'Zahlungseingänge',
'Invoice' => 'Rechnung',
'Invoice (one letter abbreviation)' => 'R',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
- 'Subtotal' => 'Zwischensumme',
'Tax' => 'Steuer',
'Tax Included' => 'Steuer im Preis inbegriffen',
'Taxkey' => 'Steuerschlüssel',
'Q' => 'Q',
'add' => 'add',
'add_transaction' => 'add_transaction',
+ 'ajax_autocomplete' => 'ajax_autocomplete',
'ap_transaction' => 'ap_transaction',
'ar_transaction' => 'ar_transaction',
'build_std_url' => 'build_std_url',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Seriennummer',
- 'Ship' => 'Lagerausgang',
- 'Ship rcvd' => 'Lagereingang',
'Ship to' => 'Lieferadresse',
'Ship via' => 'Transportmittel',
'Shipping Address' => 'Lieferadresse',
- 'Show details' => 'Details anzeigen',
'Stock' => 'Einlagern',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Serial Number' => 'Seriennummer',
'Service Number missing!' => 'Dienstleistungsnummer fehlt!',
'Services' => 'Dienstleistungen',
- 'Ship' => 'Lagerausgang',
- 'Ship rcvd' => 'Lagereingang',
'Ship to' => 'Lieferadresse',
'Shipping Address' => 'Lieferadresse',
'Short' => 'Knapp',
- 'Show details' => 'Details anzeigen',
'Sold' => 'Verkauft',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'_update_ship' => '_update_ship',
'add' => 'add',
'addtop100' => 'addtop100',
+ 'ajax_autocomplete' => 'ajax_autocomplete',
'ap_transaction' => 'ap_transaction',
'ar_transaction' => 'ar_transaction',
'assembly_row' => 'assembly_row',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Seriennummer',
- 'Ship' => 'Lagerausgang',
- 'Ship rcvd' => 'Lagereingang',
'Ship to' => 'Lieferadresse',
'Shipping Address' => 'Lieferadresse',
- 'Show details' => 'Details anzeigen',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Street' => 'Straße',
'AP Transaction' => 'Kreditorenbuchung',
'AR' => 'Verkauf',
'AR Transaction' => 'Debitorenbuchung',
- 'Account' => 'Konto',
'Add Purchase Order' => 'Lieferantenauftrag erfassen',
'Add Quotation' => 'Angebot erfassen',
'Add Request for Quotation' => 'Anfrage erfassen',
'Address' => 'Adresse',
'Advance turnover tax return' => 'Umsatzsteuervoranmeldung',
'All reports' => 'Alle Berichte (Kontenübersicht, Summen- u. Saldenliste, GuV, BWA, Bilanz, Projektbuchungen)',
- 'Amount' => 'Betrag',
'Apr' => 'Apr',
'April' => 'April',
'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
'Confirm!' => 'Bestätigen Sie!',
'Confirmation' => 'Auftragsbestätigung',
'Contact' => 'Kontakt',
- 'Contact Person' => 'Ansprechpartner',
'Continue' => 'Weiter',
'Country' => 'Land',
'Create and edit RFQs' => 'Lieferantenanfragen erfassen und bearbeiten',
'Create and edit sales orders' => 'Auftragsbestätigungen erfassen und bearbeiten',
'Create and edit sales quotations' => 'Angebote erfassen und bearbeiten',
'Create and edit vendor invoices' => 'Eingangsrechnungen erfassen und bearbeiten',
- 'Credit Limit' => 'Kreditlimit',
'Credit Note' => 'Gutschrift',
- 'Currency' => 'Währung',
'Customer' => 'Kunde',
'Customer Number' => 'Kundennummer',
'Customer details' => 'Kundendetails',
'Date' => 'Datum',
'Dec' => 'Dez',
'December' => 'Dezember',
- 'Delete' => 'Löschen',
'Delete drafts' => 'Entwürfe löschen',
'Delivered' => 'Geliefert',
'Delivery Date' => 'Lieferdatum',
'Department' => 'Abteilung',
'Dependency loop detected:' => 'Schleife in den Abhängigkeiten entdeckt:',
'Description' => 'Beschreibung',
- 'Details (one letter abbreviation)' => 'D',
'Directory' => 'Verzeichnis',
'Discount' => 'Rabatt',
'Draft saved.' => 'Entwurf gespeichert.',
- 'Due Date' => 'Fälligkeitsdatum',
'Dunning' => 'Mahnung',
'E-mail' => 'eMail',
'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
'EK' => 'EK',
'ELSE' => 'Zusatz',
'Edit Vendor Invoice' => 'Einkaufsrechnung bearbeiten',
- 'Employee' => 'Bearbeiter',
'Enter longdescription' => 'Langtext eingeben',
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s',
'Ertrag' => 'Ertrag',
- 'Exch' => 'Wechselkurs.',
- 'Exchangerate' => 'Wechselkurs',
'Exchangerate for payment missing!' => 'Es fehlt der Wechselkurs für die Bezahlung!',
'Exchangerate missing!' => 'Es fehlt der Wechselkurs!',
'Extended' => 'Gesamt',
- 'Falsches Datumsformat!' => 'Falsches Datumsformat!',
'Fax' => 'Fax',
'Feb' => 'Feb',
'February' => 'Februar',
'File' => 'Datei',
- 'Follow-Up' => 'Wiedervorlage',
'GL Transaction' => 'Dialogbuchung',
'General ledger and cash' => 'Finanzbuchhaltung und Zahlungsverkehr',
'Group' => 'Warengruppe',
'History' => 'Historie',
'In-line' => 'im Text',
- 'Internal Notes' => 'interne Bemerkungen',
'Invnumber missing!' => 'Rechnungsnummer fehlt!',
'Invoice' => 'Rechnung',
- 'Invoice Date' => 'Rechnungsdatum',
'Invoice Date missing!' => 'Rechnungsdatum fehlt!',
- 'Invoice Number' => 'Rechnungsnummer',
'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
'Invoice deleted!' => 'Rechnung gelöscht!',
'Invoice has already been storno\'d!' => 'Diese Rechnung wurde bereits storniert.',
'May' => 'Mai',
'May ' => 'Mai',
'May set the BCC field when sending emails' => 'Beim Verschicken von Emails das Feld \'BCC\' setzen',
- 'Memo' => 'Memo',
'Message' => 'Nachricht',
'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.',
'Missing \'tag\' field.' => 'Fehlendes Feld \'tag\'.',
- 'Missing amount' => 'Fehlbetrag',
'Missing parameter #1 in call to sub #2.' => 'Fehlernder Parameter \'#1\' in Funktionsaufruf \'#2\'.',
'Missing parameter (at least one of #1) in call to sub #2.' => 'Fehlernder Parameter (mindestens einer aus \'#1\') in Funktionsaufruf \'#2\'.',
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'No.' => 'Position',
- 'Notes' => 'Bemerkungen',
'Nov' => 'Nov',
'November' => 'November',
'Number' => 'Nummer',
'October' => 'Oktober',
'On Hand' => 'Auf Lager',
'OpenDocument/OASIS' => 'OpenDocument/OASIS',
- 'Order Date' => 'Auftragsdatum',
'Order Date missing!' => 'Auftragsdatum fehlt!',
- 'Order Number' => 'Auftragsnummer',
'Order Number missing!' => 'Auftragsnummer fehlt!',
'Others' => 'Andere',
'PAYMENT POSTED' => 'Rechung gebucht',
'Part description' => 'Artikelbeschreibung',
'Payment date missing!' => 'Tag der Zahlung fehlt!',
'Payment posted!' => 'Zahlung gebucht!',
- 'Payments' => 'Zahlungsausgänge',
'Phone' => 'Telefon',
'Pick List' => 'Sammelliste',
'Please enter values' => 'Bitte Werte eingeben',
- 'Post' => 'Buchen',
- 'Post Payment' => 'Zahlung buchen',
'Postscript' => 'Postscript',
'Preview' => 'Druckvorschau',
'Price' => 'Preis',
'Printer' => 'Drucker',
'Proforma Invoice' => 'Proformarechnung',
'Project' => 'Projekt',
- 'Project Number' => 'Projektnummer',
'Project not on file!' => 'Dieses Projekt ist nicht in der Datenbank!',
'Purchase Order' => 'Lieferantenauftrag',
'Qty' => 'Menge',
'Queue' => 'Warteschlange',
'Quotation' => 'Angebot',
- 'Quotation Date' => 'Angebotsdatum',
'Quotation Date missing!' => 'Angebotsdatum fehlt!',
'Quotation Number missing!' => 'Angebotsnummer fehlt!',
'RFQ' => 'Anfrage',
'ROP' => 'Mindestlagerbestand',
'Receipt, payment, reconciliation' => 'Zahlungseingang, Zahlungsausgang, Kontenabgleich',
'Rechnungsnummer' => 'Rechnungsnummer',
- 'Record in' => 'Buchen auf',
'Release From Stock' => 'Lagerausgang',
- 'Remaining' => 'Rest',
'Reports' => 'Berichte',
'Reqdate' => 'Lieferdatum',
'Request for Quotation' => 'Anfrage',
'Sales Invoice' => 'Rechnung',
'Sales Order' => 'Kundenauftrag',
'Sales quotation' => 'Angebot',
- 'Save draft' => 'Entwurf speichern',
'Screen' => 'Bildschirm',
'Select a Customer' => 'Endkunde auswählen',
'Select a customer' => 'Einen Kunden auswählen',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Seriennummer',
- 'Ship' => 'Lagerausgang',
- 'Ship rcvd' => 'Lagereingang',
'Ship to' => 'Lieferadresse',
'Shipping Address' => 'Lieferadresse',
- 'Show details' => 'Details anzeigen',
'Skip' => 'Überspringen',
- 'Source' => 'Beleg',
- 'Steuersatz' => 'Steuersatz',
- 'Storno' => 'Storno',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Street' => 'Straße',
'Subject' => 'Betreff',
'Subtotal' => 'Zwischensumme',
- 'Tax Included' => 'Steuer im Preis inbegriffen',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte überprüfen Sie die Angaben in config/authentication.pl.',
'The config file "config/authentication.pl" contained invalid Perl code:' => 'Die Konfigurationsdatei "config/authentication.pl" enthielt ungütigen Perl-Code:',
'The connection to the authentication database failed:' => 'Die Verbindung zur Authentifizierungsdatenbank schlug fehl:',
'The connection to the template database failed:' => 'Die Verbindung zur Vorlagendatenbank schlug fehl:',
'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
- 'There are #1 unfinished follow-ups of which #2 are due.' => 'Es gibt #1 Wiedervorlage(n), von denen #2 fällig ist/sind.',
'To (email)' => 'An',
- 'Total' => 'Summe',
'Transactions, AR transactions, AP transactions' => 'Dialogbuchen, Debitorenrechnungen, Kreditorenrechnungen',
'Transfer To Stock' => 'Lagereingang',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'Unknown dependency \'%s\'.' => 'Unbekannte Abhängigkeit \'%s\'.',
- 'Update' => 'Erneuern',
- 'Use As Template' => 'Als Vorlage verwenden',
'Value' => 'Wert',
'Variable' => 'Variable',
'Vendor' => 'Lieferant',
'Zipcode' => 'PLZ',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
- 'button' => '?',
'config/authentication.pl: Key "DB_config" is missing.' => 'config/authentication.pl: Das Schlüsselwort "DB_config" fehlt.',
'config/authentication.pl: Key "LDAP_config" is missing.' => 'config/authentication.pl: Der Schlüssel "LDAP_config" fehlt.',
'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".' => 'config/authentication.pl: Fehlende Parameter in "DB_config". Benötigte Parameter sind "host", "db" und "user".',
'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".' => 'config/authentication.pl: Fehlende Parameter in "LDAP_config". Benötigt werden "host", "attribute" und "base_dn".',
'customer' => 'Kunde',
'emailed to' => 'gemailt an',
- 'history' => 'Historie',
'invoice' => 'Rechnung',
- 'mark as paid' => 'als bezahlt markieren',
'no' => 'nein',
'none (pricegroup)' => 'keine',
'packing_list' => 'Versandliste',
'sent' => 'gesendet',
'sent to printer' => 'an Drucker geschickt',
'vendor' => 'Lieferant',
- 'wrongformat' => 'Falsches Format',
'yes' => 'ja',
};
'buchen' => 'post',
'zahlung_buchen' => 'post_payment',
'entwurf_speichern' => 'save_draft',
+ 'entwurf_speichern' => 'save_draft',
'Überspringen' => 'skip',
'storno' => 'storno',
'erneuern' => 'update',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Seriennummer',
- 'Ship' => 'Lagerausgang',
- 'Ship rcvd' => 'Lagereingang',
'Ship to' => 'Lieferadresse',
'Shipping Address' => 'Lieferadresse',
- 'Show details' => 'Details anzeigen',
'Skip' => 'Überspringen',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Seriennummer',
- 'Ship' => 'Lagerausgang',
- 'Ship rcvd' => 'Lagereingang',
'Ship to' => 'Lieferadresse',
'Ship via' => 'Transportmittel',
'Shipping Address' => 'Lieferadresse',
- 'Show details' => 'Details anzeigen',
'Stock' => 'Einlagern',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Seriennummer',
- 'Ship' => 'Lagerausgang',
- 'Ship rcvd' => 'Lagereingang',
'Ship to' => 'Lieferadresse',
'Ship via' => 'Transportmittel',
'Shipping Address' => 'Lieferadresse',
- 'Show details' => 'Details anzeigen',
'Stock' => 'Einlagern',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Seriennummer',
- 'Ship' => 'Lagerausgang',
- 'Ship rcvd' => 'Lagereingang',
'Ship to' => 'Lieferadresse',
'Ship via' => 'Transportmittel',
'Shipping Address' => 'Lieferadresse',
- 'Show details' => 'Details anzeigen',
'Stock' => 'Einlagern',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Account deleted!' => '',
'Account for fees' => '',
'Account for interest' => '',
+ 'Account number' => '',
+ 'Account number #1, bank code #2, #3' => '',
'Account saved!' => '',
'Accounting Group deleted!' => '',
'Accounting Group saved!' => '',
'Add Warehouse' => '',
'Add a new group' => '',
'Add and edit units' => '',
+ 'Add bank account' => '',
'Add custom variable' => '',
'Add note' => '',
'Add to group' => '',
'All changes in that file have been reverted.' => '',
'All database upgrades have been applied.' => '',
'All general ledger entries' => '',
+ 'All of the exports you have selected were already closed.' => '',
'All reports' => '',
+ 'All the selected exports have already been closed, or all of their items have already been executed.' => '',
'Allow access' => '',
'Allow the following users access to my follow-ups:' => '',
'Alternatively you can create a new part which will then be selected.' => '',
'Bank Code Number' => '',
'Bank Connection Tax Office' => '',
'Bank Connections' => '',
+ 'Bank accounts' => '',
+ 'Bank code' => '',
+ 'Bank transfer amount' => '',
+ 'Bank transfer payment list for export #1' => '',
+ 'Bank transfer via SEPA' => '',
+ 'Bank transfers via SEPA' => '',
'Base unit' => '',
'Basic data' => '',
'Batch Printing' => '',
'Change Lx-Office installation settings (all menu entries beneath \'System\')' => '',
'Charge Number' => '',
'Charge number' => '',
+ 'Chart' => '',
'Chart Type' => '',
'Chart balance' => '',
'Chart of Accounts' => '',
'Click on login name to edit!' => '',
'Close' => '',
'Close Books up to' => '',
+ 'Close SEPA exports' => '',
'Close Window' => '',
'Closed' => '',
'Collective Orders only work for orders from one customer!' => '',
'Create and edit sales orders' => '',
'Create and edit sales quotations' => '',
'Create and edit vendor invoices' => '',
+ 'Create bank transfer' => '',
+ 'Create bank transfer via SEPA XML' => '',
'Create invoice?' => '',
'Create new' => '',
'Create tables' => '',
'Description (Click on Description for details)' => '',
'Description missing!' => '',
'Description must not be empty!' => '',
+ 'Destination BIC' => '',
+ 'Destination IBAN' => '',
'Destination bin' => '',
'Destination warehouse' => '',
'Destination warehouse and bin' => '',
'Display' => '',
'Display file' => '',
'Display options' => '',
+ 'Do you really want to close the following SEPA exports? No payment will be recorded for bank transfers that haven\'t been marked as executed yet.' => '',
'Do you really want to delete AP transaction #1?' => '',
'Do you really want to delete AR transaction #1?' => '',
'Do you really want to delete GL transaction #1?' => '',
'Document' => '',
'Documents in the WebDAV repository' => '',
'Done' => '',
+ 'Download SEPA XML export file' => '',
'Download the backup' => '',
'Draft saved.' => '',
'Drawing' => '',
'Edit Vendor Invoice' => '',
'Edit Warehouse' => '',
'Edit and delete a group' => '',
+ 'Edit bank account' => '',
'Edit custom variable' => '',
'Edit file' => '',
'Edit greetings' => '',
'Edit the stylesheet' => '',
'Edit units' => '',
'Editable' => '',
+ 'Either there are no open invoices, or you have already initiated bank transfers with the open amounts for those that are still open.' => '',
'Element disabled' => '',
'Employee' => '',
'Empty transaction!' => '',
'Enter a description for this new draft.' => '',
'Enter longdescription' => '',
+ 'Enter the requested execution date or leave empty for the quickest possible execution:' => '',
'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => '',
'Equity' => '',
'Error' => '',
'Exchangerate Difference' => '',
'Exchangerate for payment missing!' => '',
'Exchangerate missing!' => '',
+ 'Executed' => '',
+ 'Execution date' => '',
+ 'Execution date from' => '',
+ 'Execution date to' => '',
'Existing Buchungsgruppen' => '',
'Existing Datasets' => '',
'Existing pending follow-ups for this item' => '',
'Export Stammdaten' => '',
'Export as CSV' => '',
'Export as PDF' => '',
+ 'Export date' => '',
+ 'Export date from' => '',
+ 'Export date to' => '',
'Extended' => '',
'Extension Of Time' => '',
'Factor' => '',
'Invoice deleted!' => '',
'Invoice for fees' => '',
'Invoice has already been storno\'d!' => '',
+ 'Invoice number' => '',
'Invoice with Storno (abbreviation)' => '',
'Invoices' => '',
'Is this a summary account to record' => '',
'List Tax' => '',
'List Transactions' => '',
'List Warehouses' => '',
+ 'List bank accounts' => '',
'List export' => '',
+ 'List of bank accounts' => '',
+ 'List of bank transfers' => '',
'List of custom variables' => '',
+ 'List open SEPA exports' => '',
'Load draft' => '',
'Local Tax Office Preferences' => '',
'Lock System' => '',
'Mar' => '',
'March' => '',
'Margins' => '',
+ 'Mark as closed' => '',
'Mark as paid?' => '',
'Mark closed' => '',
'Marked as paid' => '',
'Monat' => '',
'Monthly' => '',
'More than one control file with the tag \'%s\' exist.' => '',
+ 'Multi mode not supported.' => '',
'Multibyte Encoding' => '',
'MwSt. inkl.' => '',
'Name' => '',
'New Buchungsgruppe [% loop.count %]' => '',
'New Templates' => '',
'New assembly' => '',
+ 'New bank account' => '',
'New contact' => '',
'New customer' => '',
'New invoice' => '',
'No Vendor was found matching the search parameters.' => '',
'No action defined.' => '',
'No backup file has been uploaded.' => '',
+ 'No bank information has been entered in this vendor\'s master data entry. You cannot create bank transfers unless you enter bank information.' => '',
'No bins have been added to this warehouse yet.' => '',
'No customer has been selected yet.' => '',
'No data was found.' => '',
'No part was found matching the search parameters.' => '',
'No prices will be updated because no prices have been entered.' => '',
'No problems were recognized.' => '',
+ 'No transfers were executed in this export.' => '',
'No unknown units where found.' => '',
'No user has been selected.' => '',
'No valid number entered for pricegroup "#1".' => '',
'One or more Perl modules missing' => '',
'Only due follow-ups' => '',
'Open' => '',
+ 'Open amount' => '',
'OpenDocument/OASIS' => '',
'Openings' => '',
'Optional comment' => '',
'Payment Terms missing in row ' => '',
'Payment Terms saved!' => '',
'Payment date missing!' => '',
+ 'Payment list as PDF' => '',
'Payment posted!' => '',
'Payment terms deleted!' => '',
'Payments' => '',
'Phone1' => '',
'Phone2' => '',
'Pick List' => '',
+ 'Please Check the bank information for each vendor:' => '',
'Please ask your administrator to create warehouses and bins.' => '',
'Please enter a license key.' => '',
'Please enter a number of licenses.' => '',
'Please select a vendor from the list below.' => '',
'Please select the chart of accounts this installation is using from the list below.' => '',
'Please select the database you want to backup' => '',
+ 'Please select the source bank account for the transfers:' => '',
'Please seletct the dataset you want to delete:' => '',
'Please specify a description for the warehouse designated for these goods.' => '',
'Plural' => '',
'Portrait' => '',
'Post' => '',
'Post Payment' => '',
+ 'Post payments' => '',
'Postscript' => '',
'Posustva_coa' => '',
'Preferences' => '',
'Preis' => '',
'Preisgruppe' => '',
'Preisklasse' => '',
+ 'Prepare bank transfer via SEPA XML' => '',
'Prepayment' => '',
'Preview' => '',
'Previous transdate text' => '',
'Purchase Prices' => '',
'Purchase delivery order' => '',
'Purchase invoices' => '',
+ 'Purpose' => '',
'Qty' => '',
'Qty according to delivery order' => '',
'Qty in stock' => '',
'Request for Quotation' => '',
'Request for Quotations' => '',
'Request quotation' => '',
+ 'Requested execution date' => '',
+ 'Requested execution date from' => '',
+ 'Requested execution date to' => '',
'Required by' => '',
'Restore Dataset' => '',
'Revenue' => '',
'SAVED' => '',
'SAVED FOR DUNNING' => '',
'SCREENED' => '',
+ 'SEPA XML download' => '',
+ 'SEPA exports:' => '',
'Saldo Credit' => '',
'Saldo Debit' => '',
'Saldo neu' => '',
'Sat. Phone' => '',
'Satz %' => '',
'Save' => '',
+ 'Save Draft' => '',
'Save account first to insert taxkeys' => '',
'Save and AP Transaction' => '',
'Save and AR Transaction' => '',
'Set eMail text' => '',
'Setup Menu' => '',
'Setup Templates' => '',
- 'Ship' => '',
- 'Ship rcvd' => '',
'Ship to' => '',
'Ship via' => '',
'Shipping Address' => '',
'Shopartikel' => '',
'Short' => '',
'Show' => '',
+ 'Show Salesman' => '',
'Show TODO list' => '',
'Show by default' => '',
+ 'Show custom variable search inputs' => '',
'Show details' => '',
'Show follow ups...' => '',
'Show old dunnings' => '',
'Sold' => '',
'Solution' => '',
'Source' => '',
+ 'Source BIC' => '',
+ 'Source IBAN' => '',
+ 'Source bank account' => '',
'Source bin' => '',
'Spoolfile' => '',
'Start Dunning Process' => '',
'Statement sent to' => '',
'Statements sent to printer!' => '',
'Step 1 of 3: Parts' => '',
+ 'Step 2' => '',
'Step 2 of 3: Services' => '',
'Step 3 of 3: Assemblies' => '',
'Step 3 of 3: Default units' => '',
'TODO list options' => '',
'TOP100' => '',
'TOTAL' => '',
+ 'Target bank account' => '',
'Tax' => '',
'Tax Consultant' => '',
'Tax Included' => '',
'Text field variables: \'WIDTH=w HEIGHT=h\' sets the width and height of the text field. They default to 30 and 5 respectively.' => '',
'Text variables: \'MAXLENGTH=n\' sets the maximum entry length to \'n\'.' => '',
'Text, text field and number variables: The default value will be used as-is.' => '',
+ 'That export does not exist.' => '',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => '',
'The AP transaction #1 has been deleted.' => '',
'The AR transaction #1 has been deleted.' => '',
'The GL transaction #1 has been deleted.' => '',
'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => '',
+ 'The SEPA export has been created.' => '',
'The access rights have been saved.' => '',
'The assembly has been created.' => '',
'The assistant could not find anything wrong with #1. Maybe the problem has been solved in the meantime.' => '',
'The authentication database is not reachable at the moment. Either it hasn\'t been set up yet or the database server might be down. Please contact your administrator.' => '',
'The available options depend on the varibale type:' => '',
'The backup you upload here has to be a file created with "pg_dump -o -Ft".' => '',
+ 'The bank information must not be empty.' => '',
'The base unit does not exist or it is about to be deleted in row %d.' => '',
'The base unit does not exist.' => '',
'The base unit relations must not contain loops (e.g. by saying that unit A\'s base unit is B, B\'s base unit is C and C\'s base unit is A) in row %d.' => '',
'The parts have been removed.' => '',
'The parts have been stocked.' => '',
'The parts have been transferred.' => '',
+ 'The payments have been posted.' => '',
'The pg_dump process could not be started.' => '',
'The pg_restore process could not be started.' => '',
'The preferred one is to install packages provided by your operating system distribution (e.g. Debian or RPM packages).' => '',
'The second reason is that Lx-Office allowed the user to enter the tax amount manually regardless of the taxkey used.' => '',
'The second way is to use Perl\'s CPAN module and let it download and install the module for you.' => '',
'The selected PostgreSQL installation uses UTF-8 as its encoding. Therefore you have to configure Lx-Office to use UTF-8 as well.' => '',
+ 'The selected bank account does not exist anymore.' => '',
'The selected bin does not exist.' => '',
+ 'The selected exports have been closed.' => '',
'The selected warehouse does not exist.' => '',
'The selected warehouse is empty.' => '',
'The session is invalid or has expired.' => '',
'Verrechnungseinheit' => '',
'Version' => '',
'View License' => '',
+ 'View SEPA export' => '',
'View warehouse content' => '',
'Von Konto: ' => '',
'WEBDAV access' => '',
'You did not enter a name!' => '',
'You do not have the permissions to access this function.' => '',
'You have entered or selected the following shipping address for this customer:' => '',
+ 'You have not added bank accounts yet.' => '',
'You have not selected any delivery order.' => '',
+ 'You have not selected any export.' => '',
+ 'You have not selected any item.' => '',
+ 'You have selected none of the invoices.' => '',
'You have to chose a dimension unit and a service unit which will then be assigned to those entries.' => '',
'You have to chose which unit to save for each of them.' => '',
'You have to create at least one group, grant it access to Lx-Office\'s functions and assign users to it.' => '',
'You have to create new Buchungsgruppen for all the combinations of inventory, income and expense accounts that have been used already.' => '',
+ 'You have to enter a company name in your user preferences (see the "Program" menu, "Preferences").' => '',
+ 'You have to fill in at least an account number, the bank code, the IBAN and the BIC.' => '',
+ 'You have to specify an execution date for each antry.' => '',
'You must chose a user.' => '',
'You will now be forwarded to the administration panel.' => '',
'You\'re not editing a file.' => '',
'as at' => '',
'assembly_list' => '',
'back' => '',
+ 'bank_transfer_payment_list_#1' => '',
+ 'bankaccounts' => '',
+ 'banktransfers' => '',
'bin_list' => '',
'bis' => '',
'button' => '',
'chart_of_accounts' => '',
'choice' => '',
'choice part' => '',
+ 'click here to edit cvars' => '',
'close' => '',
+ 'closed' => '',
'config/authentication.pl: Key "DB_config" is missing.' => '',
'config/authentication.pl: Key "LDAP_config" is missing.' => '',
'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".' => '',
'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".' => '',
'continue' => '',
'correction' => '',
+ 'cp_greeting to cp_gender migration' => '',
'customer' => '',
'customer_list' => '',
'customernumber not unique!' => '',
'eMail?' => '',
'ea' => '',
'emailed to' => '',
+ 'executed' => '',
'female' => '',
'follow_up_list' => '',
'for' => '',
'no' => '',
'no chargenumber' => '',
'none (pricegroup)' => '',
+ 'not executed' => '',
'not transferred in yet' => '',
'not transferred out yet' => '',
+ 'not yet executed' => '',
'number' => '',
'oe.pl::search called with unknown type' => '',
+ 'open' => '',
'order' => '',
'our vendor number at customer' => '',
'packing_list' => '',
'Dunning' => 'Dunning',
'ELSE' => 'ELSE',
'Edit Accounts Payables Transaction' => 'Edit Creditor Transaction',
- 'Employee' => 'Employee',
'Enter longdescription' => 'Enter longdescription',
'Error in database control file \'%s\': %s' => 'Error in database control file \'%s\': %s',
'Exch' => 'Exch',
'General ledger and cash' => 'General ledger and cash',
'History' => 'History',
'ID' => 'ID',
- 'Include in Report' => 'Include in Report',
'Invoice' => 'Invoice',
'Invoice (one letter abbreviation)' => 'Invoice (one letter abbreviation)',
'Invoice Date' => 'Invoice Date',
'Storno Invoice' => 'Storno Invoice',
'Storno Packing List' => 'Storno Packing List',
'Subject' => 'Subject',
- 'Subtotal' => 'Subtotal',
'Tax' => 'Tax',
'Tax Included' => 'Tax Included',
'Taxkey' => 'Taxkey',
'General ledger and cash' => 'General ledger and cash',
'History' => 'History',
'ID' => 'ID',
- 'Include in Report' => 'Include in Report',
'Incoming Payments' => 'Incoming Payments',
'Invoice' => 'Invoice',
'Invoice (one letter abbreviation)' => 'Invoice (one letter abbreviation)',
'Storno Invoice' => 'Storno Invoice',
'Storno Packing List' => 'Storno Packing List',
'Subject' => 'Subject',
- 'Subtotal' => 'Subtotal',
'Tax' => 'Tax',
'Tax Included' => 'Tax Included',
'Taxkey' => 'Taxkey',
--- /dev/null
+#!/usr/bin/perl
+
+$self->{texts} = {
+ 'A temporary file could not be created. Please verify that the directory "#1" is writeable by the webserver.' => 'A temporary file could not be created. Please verify that the directory "#1" is writeable by the webserver.',
+ 'ADDED' => 'ADDED',
+ 'AP' => 'Purchases',
+ 'AR' => 'Sales',
+ 'Account number' => 'Account number',
+ 'Add bank account' => 'Add bank account',
+ 'Address' => 'Address',
+ 'Advance turnover tax return' => 'Advance turnover tax return',
+ 'All reports' => 'All reports',
+ 'Attempt to call an undefined sub named \'%s\'' => 'Attempt to call an undefined sub named \'%s\'',
+ 'BIC' => 'BIC',
+ 'Bank' => 'Bank',
+ 'Bank code' => 'Bank code',
+ 'Bcc' => 'Bcc',
+ 'Bin List' => 'Bin List',
+ 'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.' => 'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.',
+ 'CANCELED' => 'CANCELED',
+ 'CR' => 'CR',
+ 'CRM admin' => 'CRM admin',
+ 'CRM create customers, vendors and contacts' => 'CRM create customers, vendors and contacts',
+ 'CRM follow up' => 'CRM follow up',
+ 'CRM know how' => 'CRM know how',
+ 'CRM notices' => 'CRM notices',
+ 'CRM opportunity' => 'CRM opportunity',
+ 'CRM optional software' => 'CRM optional software',
+ 'CRM other' => 'CRM other',
+ 'CRM search' => 'CRM search',
+ 'CRM send email' => 'CRM send email',
+ 'CRM services' => 'CRM services',
+ 'CRM status' => 'CRM status',
+ 'CRM termin' => 'CRM termin',
+ 'CRM user' => 'CRM user',
+ 'CSV export -- options' => 'CSV export -- options',
+ 'Cc' => 'Cc',
+ 'Change Lx-Office installation settings (all menu entries beneath \'System\')' => 'Change Lx-Office installation settings (all menu entries beneath \'System\')',
+ 'Confirmation' => 'Confirmation',
+ 'Contact' => 'Contact',
+ 'Could not spawn the printer command.' => 'Could not spawn the printer command.',
+ 'Create and edit RFQs' => 'Create and edit RFQs',
+ 'Create and edit customers and vendors' => 'Create and edit customers and vendors',
+ 'Create and edit dunnings' => 'Create and edit dunnings',
+ 'Create and edit invoices and credit notes' => 'Create and edit invoices and credit notes',
+ 'Create and edit parts, services, assemblies' => 'Create and edit parts, services, assemblies',
+ 'Create and edit projects' => 'Create and edit projects',
+ 'Create and edit purchase delivery orders' => 'Create and edit purchase delivery orders',
+ 'Create and edit purchase orders' => 'Create and edit purchase orders',
+ 'Create and edit sales delivery orders' => 'Create and edit sales delivery orders',
+ 'Create and edit sales orders' => 'Create and edit sales orders',
+ 'Create and edit sales quotations' => 'Create and edit sales quotations',
+ 'Create and edit vendor invoices' => 'Create and edit vendor invoices',
+ 'Credit Note' => 'Credit Note',
+ 'Customer Number' => 'Customer Number',
+ 'Customer details' => 'Customer details',
+ 'DATEV Export' => 'DATEV Export',
+ 'DELETED' => 'DELETED',
+ 'DR' => 'DR',
+ 'DUNNING STARTED' => 'DUNNING STARTED',
+ 'Dataset upgrade' => 'Dataset upgrade',
+ 'Date' => 'Date',
+ 'Delivery Order' => 'Delivery Order',
+ 'Dependency loop detected:' => 'Dependency loop detected:',
+ 'Directory' => 'Directory',
+ 'Dunning' => 'Dunning',
+ 'ELSE' => 'ELSE',
+ 'Edit bank account' => 'Edit bank account',
+ 'Enter longdescription' => 'Enter longdescription',
+ 'Error in database control file \'%s\': %s' => 'Error in database control file \'%s\': %s',
+ 'File' => 'File',
+ 'General ledger and cash' => 'General ledger and cash',
+ 'History' => 'History',
+ 'IBAN' => 'IBAN',
+ 'Invoice' => 'Invoice',
+ 'List of bank accounts' => 'List of bank accounts',
+ 'MAILED' => 'MAILED',
+ 'Manage license keys' => 'Manage license keys',
+ 'Mark as paid?' => 'Mark as paid?',
+ 'Marked as paid' => 'Marked as paid',
+ 'Master Data' => 'Master Data',
+ 'May set the BCC field when sending emails' => 'May set the BCC field when sending emails',
+ 'Message' => 'Message',
+ 'Missing \'description\' field.' => 'Missing \'description\' field.',
+ 'Missing \'tag\' field.' => 'Missing \'tag\' field.',
+ 'Missing parameter #1 in call to sub #2.' => 'Missing parameter #1 in call to sub #2.',
+ 'Missing parameter (at least one of #1) in call to sub #2.' => 'Missing parameter (at least one of #1) in call to sub #2.',
+ 'More than one control file with the tag \'%s\' exist.' => 'More than one control file with the tag \'%s\' exist.',
+ 'Name' => 'Name',
+ 'No %s was found matching the search parameters.' => 'No %s was found matching the search parameters.',
+ 'No Customer was found matching the search parameters.' => 'No Customer was found matching the search parameters.',
+ 'No Vendor was found matching the search parameters.' => 'No Vendor was found matching the search parameters.',
+ 'No action defined.' => 'No action defined.',
+ 'No customer has been selected yet.' => 'No customer has been selected yet.',
+ 'No or an unknown authenticantion module specified in "config/authentication.pl".' => 'No or an unknown authenticantion module specified in "config/authentication.pl".',
+ 'No part was found matching the search parameters.' => 'No part was found matching the search parameters.',
+ 'No vendor has been selected yet.' => 'No vendor has been selected yet.',
+ 'Others' => 'Others',
+ 'PAYMENT POSTED' => 'PAYMENT POSTED',
+ 'PDF export -- options' => 'PDF export -- options',
+ 'POSTED' => 'POSTED',
+ 'POSTED AS NEW' => 'POSTED AS NEW',
+ 'PRINTED' => 'PRINTED',
+ 'Packing List' => 'Packing List',
+ 'Page #1/#2' => 'Page #1/#2',
+ 'Part Number' => 'Part Number',
+ 'Part description' => 'Part description',
+ 'Pick List' => 'Pick List',
+ 'Please enter values' => 'Please enter values',
+ 'Preview' => 'Preview',
+ 'Proforma Invoice' => 'Proforma Invoice',
+ 'Purchase Order' => 'Purchase Order',
+ 'Quotation' => 'Quotation',
+ 'RFQ' => 'RFQ',
+ 'Receipt, payment, reconciliation' => 'Receipt, payment, reconciliation',
+ 'Reports' => 'Reports',
+ 'SAVED' => 'SAVED',
+ 'SAVED FOR DUNNING' => 'SAVED FOR DUNNING',
+ 'SCREENED' => 'SCREENED',
+ 'Select a Customer' => 'Select a Customer',
+ 'Select a customer' => 'Select a customer',
+ 'Select a part' => 'Select a part',
+ 'Select a vendor' => 'Select a vendor',
+ 'Storno Invoice' => 'Storno Invoice',
+ 'Storno Packing List' => 'Storno Packing List',
+ 'Subject' => 'Subject',
+ 'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )',
+ 'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.',
+ 'The config file "config/authentication.pl" contained invalid Perl code:' => 'The config file "config/authentication.pl" contained invalid Perl code:',
+ 'The config file "config/authentication.pl" was not found.' => 'The config file "config/authentication.pl" was not found.',
+ 'The connection to the LDAP server cannot be encrypted (SSL/TLS startup failure). Please check config/authentication.pl.' => 'The connection to the LDAP server cannot be encrypted (SSL/TLS startup failure). Please check config/authentication.pl.',
+ 'The connection to the authentication database failed:' => 'The connection to the authentication database failed:',
+ 'The connection to the template database failed:' => 'The connection to the template database failed:',
+ 'The creation of the authentication database failed:' => 'The creation of the authentication database failed:',
+ 'The list has been printed.' => 'The list has been printed.',
+ 'To (email)' => 'To (email)',
+ 'Transactions, AR transactions, AP transactions' => 'Transactions, AR transactions, AP transactions',
+ 'Trying to call a sub without a name' => 'Trying to call a sub without a name',
+ 'Unit' => 'Unit',
+ 'Unknown dependency \'%s\'.' => 'Unknown dependency \'%s\'.',
+ 'Value' => 'Value',
+ 'Variable' => 'Variable',
+ 'Vendor details' => 'Vendor details',
+ 'View warehouse content' => 'View warehouse content',
+ 'Warehouse management' => 'Warehouse management',
+ 'You do not have the permissions to access this function.' => 'You do not have the permissions to access this function.',
+ 'You have to fill in at least an account number, the bank code, the IBAN and the BIC.' => 'You have to fill in at least an account number, the bank code, the IBAN and the BIC.',
+ 'Your PostgreSQL installationen uses UTF-8 as its encoding. Therefore you have to configure Lx-Office to use UTF-8 as well.' => 'Your PostgreSQL installationen uses UTF-8 as its encoding. Therefore you have to configure Lx-Office to use UTF-8 as well.',
+ '[email]' => '[email]',
+ 'bankaccounts' => 'bankaccounts',
+ 'bin_list' => 'bin_list',
+ 'config/authentication.pl: Key "DB_config" is missing.' => 'config/authentication.pl: Key "DB_config" is missing.',
+ 'config/authentication.pl: Key "LDAP_config" is missing.' => 'config/authentication.pl: Key "LDAP_config" is missing.',
+ 'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".' => 'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".',
+ 'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".' => 'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".',
+ 'customer' => 'customer',
+ 'invoice' => 'invoice',
+ 'no' => 'no',
+ 'packing_list' => 'packing_list',
+ 'pick_list' => 'pick_list',
+ 'proforma' => 'proforma',
+ 'purchase_order' => 'purchase_order',
+ 'report_generator_dispatch_to is not defined.' => 'report_generator_dispatch_to is not defined.',
+ 'report_generator_nextsub is not defined.' => 'report_generator_nextsub is not defined.',
+ 'request_quotation' => 'request_quotation',
+ 'sales_order' => 'sales_order',
+ 'sales_quotation' => 'sales_quotation',
+ 'vendor' => 'vendor',
+ 'yes' => 'yes',
+};
+
+$self->{subs} = {
+ 'E' => 'E',
+ 'H' => 'H',
+ 'NTI' => 'NTI',
+ 'Q' => 'Q',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'bank_account_add' => 'bank_account_add',
+ 'bank_account_display_form' => 'bank_account_display_form',
+ 'bank_account_edit' => 'bank_account_edit',
+ 'bank_account_list' => 'bank_account_list',
+ 'bank_account_save' => 'bank_account_save',
+ 'build_std_url' => 'build_std_url',
+ 'calculate_qty' => 'calculate_qty',
+ 'call_sub' => 'call_sub',
+ 'cov_selection_internal' => 'cov_selection_internal',
+ 'delivery_customer_selection' => 'delivery_customer_selection',
+ 'dispatcher' => 'dispatcher',
+ 'format_dates' => 'format_dates',
+ 'gl_transaction' => 'gl_transaction',
+ 'mark_as_paid_common' => 'mark_as_paid_common',
+ 'part_selection_internal' => 'part_selection_internal',
+ 'reformat_numbers' => 'reformat_numbers',
+ 'report_generator_back' => 'report_generator_back',
+ 'report_generator_dispatcher' => 'report_generator_dispatcher',
+ 'report_generator_do' => 'report_generator_do',
+ 'report_generator_export_as_csv' => 'report_generator_export_as_csv',
+ 'report_generator_export_as_pdf' => 'report_generator_export_as_pdf',
+ 'report_generator_set_default_sort' => 'report_generator_set_default_sort',
+ 'retrieve_partunits' => 'retrieve_partunits',
+ 'sales_invoice' => 'sales_invoice',
+ 'select_part' => 'select_part',
+ 'select_part_internal' => 'select_part_internal',
+ 'set_longdescription' => 'set_longdescription',
+ 'show_history' => 'show_history',
+ 'show_vc_details' => 'show_vc_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_selection' => 'vendor_selection',
+ 'add' => 'add',
+ 'back' => 'back',
+ 'close' => 'close',
+ 'continue' => 'continue',
+ 'delete' => 'delete',
+ 'export_as_csv' => 'export_as_csv',
+ 'export_as_pdf' => 'export_as_pdf',
+ 'new_part' => 'new_part',
+ 'save' => 'save',
+};
+
+1;
--- /dev/null
+#!/usr/bin/perl
+
+$self->{texts} = {
+ 'Database update error:' => 'Database update error:',
+};
+
+$self->{subs} = {
+ 'do_query' => 'do_query',
+ 'do_update' => 'do_update',
+ 'migrate_data' => 'migrate_data',
+ 'mydberror' => 'mydberror',
+ 'print_question' => 'print_question',
+ 'query_result' => 'query_result',
+ 'set_default_greetings' => 'set_default_greetings',
+};
+
+1;
'Q' => 'Q',
'add' => 'add',
'add_transaction' => 'add_transaction',
+ 'ajax_autocomplete' => 'ajax_autocomplete',
'ap_transaction' => 'ap_transaction',
'ar_transaction' => 'ar_transaction',
'build_std_url' => 'build_std_url',
'SCREENED' => 'SCREENED',
'Sales Invoice' => 'Sales Invoice',
'Sales Order' => 'Sales Order',
- 'Salesperson' => 'Salesperson',
'Sales quotation' => 'Sales quotation',
+ 'Salesperson' => 'Salesperson',
'Screen' => 'Screen',
'Select a Customer' => 'Select a Customer',
'Select a customer' => 'Select a customer',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Serial No.',
- 'Ship' => 'Ship',
- 'Ship rcvd' => 'Ship rcvd',
'Ship to' => 'Ship to',
'Ship via' => 'Ship via',
'Shipping Address' => 'Shipping Address',
- 'Show details' => 'Show details',
'Stock' => 'Stock',
'Storno Invoice' => 'Storno Invoice',
'Storno Packing List' => 'Storno Packing List',
'Serial Number' => 'Serial Number',
'Service Number missing!' => 'Service Number missing!',
'Services' => 'Services',
- 'Ship' => 'Ship',
- 'Ship rcvd' => 'Ship rcvd',
'Ship to' => 'Ship to',
'Shipping Address' => 'Shipping Address',
'Short' => 'Short',
- 'Show details' => 'Show details',
'Sold' => 'Sold',
'Storno Invoice' => 'Storno Invoice',
'Storno Packing List' => 'Storno Packing List',
'_update_ship' => '_update_ship',
'add' => 'add',
'addtop100' => 'addtop100',
+ 'ajax_autocomplete' => 'ajax_autocomplete',
'ap_transaction' => 'ap_transaction',
'ar_transaction' => 'ar_transaction',
'assembly_row' => 'assembly_row',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Serial No.',
- 'Ship' => 'Ship',
- 'Ship rcvd' => 'Ship rcvd',
'Ship to' => 'Ship to',
'Shipping Address' => 'Shipping Address',
- 'Show details' => 'Show details',
'Storno Invoice' => 'Storno Invoice',
'Storno Packing List' => 'Storno Packing List',
'Street' => 'Street',
'AP Transaction' => 'Purchase Transaction',
'AR' => 'Sales',
'AR Transaction' => 'Sales Transaction',
- 'Account' => 'Account',
'Add Purchase Order' => 'Add Purchase Order',
'Add Quotation' => 'Add Quotation',
'Add Request for Quotation' => 'Add Request for Quotation',
'Address' => 'Address',
'Advance turnover tax return' => 'Advance turnover tax return',
'All reports' => 'All reports',
- 'Amount' => 'Amount',
'Apr' => 'Apr',
'April' => 'April',
'Are you sure you want to delete Invoice Number' => 'Are you sure you want to delete Invoice Number',
'Confirm!' => 'Confirm!',
'Confirmation' => 'Confirmation',
'Contact' => 'Contact',
- 'Contact Person' => 'Contact Person',
'Continue' => 'Continue',
'Country' => 'Country',
'Create and edit RFQs' => 'Create and edit RFQs',
'Create and edit sales orders' => 'Create and edit sales orders',
'Create and edit sales quotations' => 'Create and edit sales quotations',
'Create and edit vendor invoices' => 'Create and edit vendor invoices',
- 'Credit Limit' => 'Credit Limit',
'Credit Note' => 'Credit Note',
- 'Currency' => 'Currency',
'Customer' => 'Customer',
'Customer Number' => 'Customer Number',
'Customer details' => 'Customer details',
'Date' => 'Date',
'Dec' => 'Dec',
'December' => 'December',
- 'Delete' => 'Delete',
'Delete drafts' => 'Delete drafts',
'Delivered' => 'Delivered',
'Delivery Date' => 'Delivery Date',
'Department' => 'Department',
'Dependency loop detected:' => 'Dependency loop detected:',
'Description' => 'Description',
- 'Details (one letter abbreviation)' => 'Details (one letter abbreviation)',
'Directory' => 'Directory',
'Discount' => 'Discount',
'Draft saved.' => 'Draft saved.',
- 'Due Date' => 'Due Date',
'Dunning' => 'Dunning',
'E-mail' => 'E-mail',
'E-mail address missing!' => 'E-mail address missing!',
'EK' => 'EK',
'ELSE' => 'ELSE',
'Edit Vendor Invoice' => 'Edit Vendor Invoice',
- 'Employee' => 'Employee',
'Enter longdescription' => 'Enter longdescription',
'Error in database control file \'%s\': %s' => 'Error in database control file \'%s\': %s',
'Ertrag' => 'Ertrag',
- 'Exch' => 'Exch',
- 'Exchangerate' => 'Exchangerate',
'Exchangerate for payment missing!' => 'Exchangerate for payment missing!',
'Exchangerate missing!' => 'Exchangerate missing!',
'Extended' => 'Extended',
- 'Falsches Datumsformat!' => 'Falsches Datumsformat!',
'Fax' => 'Fax',
'Feb' => 'Feb',
'February' => 'February',
'File' => 'File',
- 'Follow-Up' => 'Follow-Up',
'GL Transaction' => 'GL Transaction',
'General ledger and cash' => 'General ledger and cash',
'Group' => 'Group',
'History' => 'History',
'In-line' => 'In-line',
- 'Internal Notes' => 'Internal Notes',
'Invnumber missing!' => 'Invnumber missing!',
'Invoice' => 'Invoice',
- 'Invoice Date' => 'Invoice Date',
'Invoice Date missing!' => 'Invoice Date missing!',
- 'Invoice Number' => 'Invoice Number',
'Invoice Number missing!' => 'Invoice Number missing!',
'Invoice deleted!' => 'Invoice deleted!',
'Invoice has already been storno\'d!' => 'Invoice has already been storno\'d!',
'May' => 'May',
'May ' => 'May ',
'May set the BCC field when sending emails' => 'May set the BCC field when sending emails',
- 'Memo' => 'Memo',
'Message' => 'Message',
'Missing \'description\' field.' => 'Missing \'description\' field.',
'Missing \'tag\' field.' => 'Missing \'tag\' field.',
- 'Missing amount' => 'Missing amount',
'Missing parameter #1 in call to sub #2.' => 'Missing parameter #1 in call to sub #2.',
'Missing parameter (at least one of #1) in call to sub #2.' => 'Missing parameter (at least one of #1) in call to sub #2.',
'More than one control file with the tag \'%s\' exist.' => 'More than one control file with the tag \'%s\' exist.',
'No part was found matching the search parameters.' => 'No part was found matching the search parameters.',
'No vendor has been selected yet.' => 'No vendor has been selected yet.',
'No.' => 'No.',
- 'Notes' => 'Notes',
'Nov' => 'Nov',
'November' => 'November',
'Number' => 'Number',
'October' => 'October',
'On Hand' => 'On Hand',
'OpenDocument/OASIS' => 'OpenDocument/OASIS',
- 'Order Date' => 'Order Date',
'Order Date missing!' => 'Order Date missing!',
- 'Order Number' => 'Order Number',
'Order Number missing!' => 'Order Number missing!',
'Others' => 'Others',
'PAYMENT POSTED' => 'PAYMENT POSTED',
'Part description' => 'Part description',
'Payment date missing!' => 'Payment date missing!',
'Payment posted!' => 'Payment posted!',
- 'Payments' => 'Payments',
'Phone' => 'Phone',
'Pick List' => 'Pick List',
'Please enter values' => 'Please enter values',
- 'Post' => 'Post',
- 'Post Payment' => 'Post Payment',
'Postscript' => 'Postscript',
'Preview' => 'Preview',
'Price' => 'Price',
'Printer' => 'Printer',
'Proforma Invoice' => 'Proforma Invoice',
'Project' => 'Project',
- 'Project Number' => 'Project Number',
'Project not on file!' => 'Project not on file!',
'Purchase Order' => 'Purchase Order',
'Qty' => 'Qty',
'Queue' => 'Queue',
'Quotation' => 'Quotation',
- 'Quotation Date' => 'Quotation Date',
'Quotation Date missing!' => 'Quotation Date missing!',
'Quotation Number missing!' => 'Quotation Number missing!',
'RFQ' => 'RFQ',
'ROP' => 'ROP',
'Receipt, payment, reconciliation' => 'Receipt, payment, reconciliation',
'Rechnungsnummer' => 'Rechnungsnummer',
- 'Record in' => 'Record in',
'Release From Stock' => 'Release From Stock',
- 'Remaining' => 'Remaining',
'Reports' => 'Reports',
'Reqdate' => 'Reqdate',
'Request for Quotation' => 'Request for Quotation',
'Sales Invoice' => 'Sales Invoice',
'Sales Order' => 'Sales Order',
'Sales quotation' => 'Sales quotation',
- 'Save draft' => 'Save draft',
'Screen' => 'Screen',
'Select a Customer' => 'Select a Customer',
'Select a customer' => 'Select a customer',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Serial No.',
- 'Ship' => 'Ship',
- 'Ship rcvd' => 'Ship rcvd',
'Ship to' => 'Ship to',
'Shipping Address' => 'Shipping Address',
- 'Show details' => 'Show details',
'Skip' => 'Skip',
- 'Source' => 'Source',
- 'Steuersatz' => 'Steuersatz',
- 'Storno' => 'Storno',
'Storno Invoice' => 'Storno Invoice',
'Storno Packing List' => 'Storno Packing List',
'Street' => 'Street',
'Subject' => 'Subject',
'Subtotal' => 'Subtotal',
- 'Tax Included' => 'Tax Included',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )',
'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.',
'The config file "config/authentication.pl" contained invalid Perl code:' => 'The config file "config/authentication.pl" contained invalid Perl code:',
'The connection to the authentication database failed:' => 'The connection to the authentication database failed:',
'The connection to the template database failed:' => 'The connection to the template database failed:',
'The creation of the authentication database failed:' => 'The creation of the authentication database failed:',
- 'There are #1 unfinished follow-ups of which #2 are due.' => 'There are #1 unfinished follow-ups of which #2 are due.',
'To (email)' => 'To (email)',
- 'Total' => 'Total',
'Transactions, AR transactions, AP transactions' => 'Transactions, AR transactions, AP transactions',
'Transfer To Stock' => 'Transfer To Stock',
'Trying to call a sub without a name' => 'Trying to call a sub without a name',
'Unit' => 'Unit',
'Unknown dependency \'%s\'.' => 'Unknown dependency \'%s\'.',
- 'Update' => 'Update',
- 'Use As Template' => 'Use As Template',
'Value' => 'Value',
'Variable' => 'Variable',
'Vendor' => 'Vendor',
'Zipcode' => 'Zipcode',
'[email]' => '[email]',
'bin_list' => 'bin_list',
- 'button' => 'button',
'config/authentication.pl: Key "DB_config" is missing.' => 'config/authentication.pl: Key "DB_config" is missing.',
'config/authentication.pl: Key "LDAP_config" is missing.' => 'config/authentication.pl: Key "LDAP_config" is missing.',
'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".' => 'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".',
'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".' => 'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".',
'customer' => 'customer',
'emailed to' => 'emailed to',
- 'history' => 'history',
'invoice' => 'invoice',
- 'mark as paid' => 'mark as paid',
'no' => 'no',
'none (pricegroup)' => 'none (pricegroup)',
'packing_list' => 'packing_list',
'sent' => 'sent',
'sent to printer' => 'sent to printer',
'vendor' => 'vendor',
- 'wrongformat' => 'wrongformat',
'yes' => 'yes',
};
'NTI' => 'NTI',
'Q' => 'Q',
'_check_io_auth' => '_check_io_auth',
+ '_max_datepaid' => '_max_datepaid',
'_render_custom_variables_inputs' => '_render_custom_variables_inputs',
'_update_custom_variables' => '_update_custom_variables',
'_update_part_information' => '_update_part_information',
'post' => 'post',
'post_payment' => 'post_payment',
'save_draft' => 'save_draft',
+ 'save_draft' => 'save_draft',
'skip' => 'skip',
'storno' => 'storno',
'update' => 'update',
'AP Transaction' => 'Purchase Transaction',
'AR' => 'Sales',
'AR Transaction' => 'Sales Transaction',
- 'Account' => 'Account',
'Add Credit Note' => 'Add Credit Note',
'Add Purchase Order' => 'Add Purchase Order',
'Add Quotation' => 'Add Quotation',
'Address' => 'Address',
'Advance turnover tax return' => 'Advance turnover tax return',
'All reports' => 'All reports',
- 'Amount' => 'Amount',
'Apr' => 'Apr',
'April' => 'April',
'Are you sure you want to delete Invoice Number' => 'Are you sure you want to delete Invoice Number',
'Cannot storno storno invoice!' => 'Cannot storno storno invoice!',
'Cc' => 'Cc',
'Change Lx-Office installation settings (all menu entries beneath \'System\')' => 'Change Lx-Office installation settings (all menu entries beneath \'System\')',
- 'Choose Customer' => 'Choose Customer',
- 'Choose Vendor' => 'Choose Vendor',
'City' => 'City',
'Company Name' => 'Company Name',
'Confirm!' => 'Confirm!',
'Confirmation' => 'Confirmation',
'Contact' => 'Contact',
- 'Contact Person' => 'Contact Person',
'Continue' => 'Continue',
'Country' => 'Country',
'Create and edit RFQs' => 'Create and edit RFQs',
'Create and edit sales orders' => 'Create and edit sales orders',
'Create and edit sales quotations' => 'Create and edit sales quotations',
'Create and edit vendor invoices' => 'Create and edit vendor invoices',
- 'Credit Limit' => 'Credit Limit',
- 'Credit Limit exceeded!!!' => 'Credit Limit exceeded!!!',
'Credit Note' => 'Credit Note',
- 'Credit Note Date' => 'Credit Note Date',
- 'Credit Note Number' => 'Credit Note Number',
- 'Currency' => 'Currency',
'Customer' => 'Customer',
'Customer Number' => 'Customer Number',
- 'Customer Order Number' => 'Customer Order Number',
'Customer details' => 'Customer details',
'Customer missing!' => 'Customer missing!',
'Customer not on file or locked!' => 'Customer not on file or locked!',
'Customer not on file!' => 'Customer not on file!',
- 'Customer type' => 'Customer type',
'DATEV Export' => 'DATEV Export',
'DELETED' => 'DELETED',
'DR' => 'DR',
'Date' => 'Date',
'Dec' => 'Dec',
'December' => 'December',
- 'Delete' => 'Delete',
'Delete drafts' => 'Delete drafts',
'Delivered' => 'Delivered',
'Delivery Date' => 'Delivery Date',
'Delivery Order' => 'Delivery Order',
- 'Delivery Order Number' => 'Delivery Order Number',
'Department' => 'Department',
'Dependency loop detected:' => 'Dependency loop detected:',
'Description' => 'Description',
- 'Details (one letter abbreviation)' => 'Details (one letter abbreviation)',
'Directory' => 'Directory',
'Discount' => 'Discount',
'Draft saved.' => 'Draft saved.',
- 'Due Date' => 'Due Date',
'Dunning' => 'Dunning',
- 'Dunning Amount' => 'Dunning Amount',
'E-mail' => 'E-mail',
'E-mail address missing!' => 'E-mail address missing!',
'EK' => 'EK',
'Edit Sales Invoice' => 'Edit Sales Invoice',
'Edit Storno Credit Note' => 'Edit Storno Credit Note',
'Edit Storno Invoice' => 'Edit Storno Invoice',
- 'Employee' => 'Employee',
'Enter longdescription' => 'Enter longdescription',
'Error in database control file \'%s\': %s' => 'Error in database control file \'%s\': %s',
'Ertrag' => 'Ertrag',
- 'Ertrag prozentual' => 'Ertrag prozentual',
- 'Exch' => 'Exch',
- 'Exchangerate' => 'Exchangerate',
'Exchangerate for payment missing!' => 'Exchangerate for payment missing!',
'Exchangerate missing!' => 'Exchangerate missing!',
'Extended' => 'Extended',
- 'Falsches Datumsformat!' => 'Falsches Datumsformat!',
'Fax' => 'Fax',
'Feb' => 'Feb',
'February' => 'February',
'File' => 'File',
- 'Follow-Up' => 'Follow-Up',
'GL Transaction' => 'GL Transaction',
'General ledger and cash' => 'General ledger and cash',
'Group' => 'Group',
'History' => 'History',
'In-line' => 'In-line',
- 'Incoming Payments' => 'Incoming Payments',
- 'Internal Notes' => 'Internal Notes',
'Invoice' => 'Invoice',
- 'Invoice Date' => 'Invoice Date',
'Invoice Date missing!' => 'Invoice Date missing!',
- 'Invoice Number' => 'Invoice Number',
'Invoice Number missing!' => 'Invoice Number missing!',
'Invoice deleted!' => 'Invoice deleted!',
'Invoice has already been storno\'d!' => 'Invoice has already been storno\'d!',
'Mark as paid?' => 'Mark as paid?',
'Marked as paid' => 'Marked as paid',
'Master Data' => 'Master Data',
- 'Max. Dunning Level' => 'Max. Dunning Level',
'May' => 'May',
'May ' => 'May ',
'May set the BCC field when sending emails' => 'May set the BCC field when sending emails',
- 'Memo' => 'Memo',
'Message' => 'Message',
'Missing \'description\' field.' => 'Missing \'description\' field.',
'Missing \'tag\' field.' => 'Missing \'tag\' field.',
- 'Missing amount' => 'Missing amount',
'Missing parameter #1 in call to sub #2.' => 'Missing parameter #1 in call to sub #2.',
'Missing parameter (at least one of #1) in call to sub #2.' => 'Missing parameter (at least one of #1) in call to sub #2.',
'More than one control file with the tag \'%s\' exist.' => 'More than one control file with the tag \'%s\' exist.',
'No part was found matching the search parameters.' => 'No part was found matching the search parameters.',
'No vendor has been selected yet.' => 'No vendor has been selected yet.',
'No.' => 'No.',
- 'Notes' => 'Notes',
'Nov' => 'Nov',
'November' => 'November',
'Number' => 'Number',
'October' => 'October',
'On Hand' => 'On Hand',
'OpenDocument/OASIS' => 'OpenDocument/OASIS',
- 'Order' => 'Order',
- 'Order Date' => 'Order Date',
'Order Date missing!' => 'Order Date missing!',
- 'Order Number' => 'Order Number',
'Order Number missing!' => 'Order Number missing!',
'Others' => 'Others',
'PAYMENT POSTED' => 'PAYMENT POSTED',
'Part Description' => 'Part Description',
'Part Number' => 'Part Number',
'Part description' => 'Part description',
- 'Payment Terms' => 'Payment Terms',
'Payment date missing!' => 'Payment date missing!',
'Payment posted!' => 'Payment posted!',
- 'Payments' => 'Payments',
'Phone' => 'Phone',
'Pick List' => 'Pick List',
'Please enter values' => 'Please enter values',
- 'Post' => 'Post',
- 'Post Payment' => 'Post Payment',
'Postscript' => 'Postscript',
'Preview' => 'Preview',
'Price' => 'Price',
'Price Factor' => 'Price Factor',
'Pricegroup' => 'Pricegroup',
- 'Print' => 'Print',
- 'Print and Post' => 'Print and Post',
'Printer' => 'Printer',
'Proforma Invoice' => 'Proforma Invoice',
'Project' => 'Project',
- 'Project Number' => 'Project Number',
'Project not on file!' => 'Project not on file!',
'Purchase Order' => 'Purchase Order',
'Qty' => 'Qty',
'Queue' => 'Queue',
'Quotation' => 'Quotation',
- 'Quotation Date' => 'Quotation Date',
'Quotation Date missing!' => 'Quotation Date missing!',
- 'Quotation Number' => 'Quotation Number',
'Quotation Number missing!' => 'Quotation Number missing!',
'RFQ' => 'RFQ',
'ROP' => 'ROP',
'Receipt, payment, reconciliation' => 'Receipt, payment, reconciliation',
- 'Record in' => 'Record in',
'Release From Stock' => 'Release From Stock',
- 'Remaining' => 'Remaining',
'Reports' => 'Reports',
'Reqdate' => 'Reqdate',
'Request for Quotation' => 'Request for Quotation',
'Sales Invoice' => 'Sales Invoice',
'Sales Order' => 'Sales Order',
'Sales quotation' => 'Sales quotation',
- 'Salesman' => 'Salesman',
- 'Save draft' => 'Save draft',
'Screen' => 'Screen',
'Select a Customer' => 'Select a Customer',
'Select a customer' => 'Select a customer',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Serial No.',
- 'Ship' => 'Ship',
- 'Ship rcvd' => 'Ship rcvd',
'Ship to' => 'Ship to',
- 'Ship via' => 'Ship via',
'Shipping Address' => 'Shipping Address',
- 'Shipping Point' => 'Shipping Point',
- 'Show details' => 'Show details',
'Skip' => 'Skip',
- 'Source' => 'Source',
- 'Steuersatz' => 'Steuersatz',
- 'Storno' => 'Storno',
'Storno Invoice' => 'Storno Invoice',
'Storno Packing List' => 'Storno Packing List',
'Street' => 'Street',
'Subject' => 'Subject',
'Subtotal' => 'Subtotal',
- 'Tax Included' => 'Tax Included',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )',
'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.',
'The config file "config/authentication.pl" contained invalid Perl code:' => 'The config file "config/authentication.pl" contained invalid Perl code:',
'The connection to the authentication database failed:' => 'The connection to the authentication database failed:',
'The connection to the template database failed:' => 'The connection to the template database failed:',
'The creation of the authentication database failed:' => 'The creation of the authentication database failed:',
- 'There are #1 unfinished follow-ups of which #2 are due.' => 'There are #1 unfinished follow-ups of which #2 are due.',
'To (email)' => 'To (email)',
- 'Total' => 'Total',
- 'Trade Discount' => 'Trade Discount',
- 'Transaction description' => 'Transaction description',
'Transactions, AR transactions, AP transactions' => 'Transactions, AR transactions, AP transactions',
'Transfer To Stock' => 'Transfer To Stock',
'Trying to call a sub without a name' => 'Trying to call a sub without a name',
'Unit' => 'Unit',
'Unknown dependency \'%s\'.' => 'Unknown dependency \'%s\'.',
- 'Update' => 'Update',
- 'Use As Template' => 'Use As Template',
'Value' => 'Value',
'Variable' => 'Variable',
'Vendor' => 'Vendor',
'Zipcode' => 'Zipcode',
'[email]' => '[email]',
'bin_list' => 'bin_list',
- 'button' => 'button',
'config/authentication.pl: Key "DB_config" is missing.' => 'config/authentication.pl: Key "DB_config" is missing.',
'config/authentication.pl: Key "LDAP_config" is missing.' => 'config/authentication.pl: Key "LDAP_config" is missing.',
'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".' => 'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".',
'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".' => 'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".',
'customer' => 'customer',
'emailed to' => 'emailed to',
- 'history' => 'history',
'invoice' => 'invoice',
- 'mark as paid' => 'mark as paid',
'no' => 'no',
'none (pricegroup)' => 'none (pricegroup)',
'packing_list' => 'packing_list',
'sent' => 'sent',
'sent to printer' => 'sent to printer',
'vendor' => 'vendor',
- 'wrongformat' => 'wrongformat',
'yes' => 'yes',
};
'print' => 'print',
'print_and_post' => 'print_and_post',
'save_draft' => 'save_draft',
+ 'save_draft' => 'save_draft',
'ship_to' => 'ship_to',
'skip' => 'skip',
'storno' => 'storno',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Serial No.',
- 'Ship' => 'Ship',
- 'Ship rcvd' => 'Ship rcvd',
'Ship to' => 'Ship to',
'Ship via' => 'Ship via',
'Shipping Address' => 'Shipping Address',
- 'Show details' => 'Show details',
'Stock' => 'Stock',
'Storno Invoice' => 'Storno Invoice',
'Storno Packing List' => 'Storno Packing List',
# This file will be auto-generated by locales.pl. Do not edit it.
@lost = (
- { 'text' => 'Receipt printing failed!', 'translation' => '' },
- { 'text' => 'successfully deleted!', 'translation' => '' },
{ 'text' => 'C', 'translation' => '' },
{ 'text' => 'Sales', 'translation' => '' },
{ 'text' => 'collected on sales', 'translation' => '' },
{ 'text' => 'O', 'translation' => '' },
{ 'text' => 'Accounts', 'translation' => '' },
{ 'text' => 'Retained Earnings', 'translation' => '' },
+ { 'text' => 'Ship rcvd', 'translation' => '' },
+ { 'text' => 'Ship', 'translation' => '' },
);
1;
'Add Vendor' => 'Add Vendor',
'Add Vendor Invoice' => 'Add Vendor Invoice',
'Add Warehouse' => 'Add Warehouse',
+ 'Add bank account' => 'Add bank account',
'Administration area' => 'Administration area',
'Advance turnover tax return' => 'Advance turnover tax return',
'All reports' => 'All reports',
'Audit Control' => 'Audit Control',
'BWA' => 'BWA',
'Balance Sheet' => 'Balance Sheet',
+ 'Bank accounts' => 'Bank accounts',
+ 'Bank transfer via SEPA' => 'Bank transfer via SEPA',
+ 'Bank transfers via SEPA' => 'Bank transfers via SEPA',
'Batch Printing' => 'Batch Printing',
'Bcc' => 'Bcc',
'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.' => 'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.',
'List Printer' => 'List Printer',
'List Tax' => 'List Tax',
'List Warehouses' => 'List Warehouses',
+ 'List bank accounts' => 'List bank accounts',
'Logout' => 'Logout',
'Manage license keys' => 'Manage license keys',
'Master Data' => 'Master Data',
'Add Vendor' => 'Add Vendor',
'Add Vendor Invoice' => 'Add Vendor Invoice',
'Add Warehouse' => 'Add Warehouse',
+ 'Add bank account' => 'Add bank account',
'Administration area' => 'Administration area',
'Advance turnover tax return' => 'Advance turnover tax return',
'All reports' => 'All reports',
'Audit Control' => 'Audit Control',
'BWA' => 'BWA',
'Balance Sheet' => 'Balance Sheet',
+ 'Bank accounts' => 'Bank accounts',
+ 'Bank transfer via SEPA' => 'Bank transfer via SEPA',
+ 'Bank transfers via SEPA' => 'Bank transfers via SEPA',
'Batch Printing' => 'Batch Printing',
'Bcc' => 'Bcc',
'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.' => 'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.',
'List Printer' => 'List Printer',
'List Tax' => 'List Tax',
'List Warehouses' => 'List Warehouses',
+ 'List bank accounts' => 'List bank accounts',
'Logout' => 'Logout',
'Manage license keys' => 'Manage license keys',
'Master Data' => 'Master Data',
'Account deleted!' => '',
'Account for fees' => '',
'Account for interest' => '',
+ 'Account number' => '',
+ 'Account number #1, bank code #2, #3' => '',
'Account saved!' => '',
'Accounting Group deleted!' => '',
'Accounting Group saved!' => '',
'Add Warehouse' => '',
'Add a new group' => '',
'Add and edit units' => '',
+ 'Add bank account' => '',
'Add custom variable' => '',
'Add note' => '',
'Add to group' => '',
'All changes in that file have been reverted.' => '',
'All database upgrades have been applied.' => '',
'All general ledger entries' => '',
+ 'All of the exports you have selected were already closed.' => '',
'All reports' => '',
+ 'All the selected exports have already been closed, or all of their items have already been executed.' => '',
'Allow access' => '',
'Allow the following users access to my follow-ups:' => '',
'Alternatively you can create a new part which will then be selected.' => '',
'Bank Code Number' => '',
'Bank Connection Tax Office' => '',
'Bank Connections' => '',
+ 'Bank accounts' => '',
+ 'Bank code' => '',
+ 'Bank transfer amount' => '',
+ 'Bank transfer payment list for export #1' => '',
+ 'Bank transfer via SEPA' => '',
+ 'Bank transfers via SEPA' => '',
'Base unit' => '',
'Basic data' => '',
'Batch Printing' => '',
'Change Lx-Office installation settings (all menu entries beneath \'System\')' => '',
'Charge Number' => '',
'Charge number' => '',
+ 'Chart' => '',
'Chart Type' => '',
'Chart balance' => '',
'Chart of Accounts' => '',
'Click on login name to edit!' => '',
'Close' => '',
'Close Books up to' => '',
+ 'Close SEPA exports' => '',
'Close Window' => '',
'Closed' => '',
'Collective Orders only work for orders from one customer!' => '',
'Create and edit sales orders' => '',
'Create and edit sales quotations' => '',
'Create and edit vendor invoices' => '',
+ 'Create bank transfer' => '',
+ 'Create bank transfer via SEPA XML' => '',
'Create invoice?' => '',
'Create new' => '',
'Create tables' => '',
'Description (Click on Description for details)' => '',
'Description missing!' => '',
'Description must not be empty!' => '',
+ 'Destination BIC' => '',
+ 'Destination IBAN' => '',
'Destination bin' => '',
'Destination warehouse' => '',
'Destination warehouse and bin' => '',
'Display' => '',
'Display file' => '',
'Display options' => '',
+ 'Do you really want to close the following SEPA exports? No payment will be recorded for bank transfers that haven\'t been marked as executed yet.' => '',
'Do you really want to delete AP transaction #1?' => '',
'Do you really want to delete AR transaction #1?' => '',
'Do you really want to delete GL transaction #1?' => '',
'Document' => '',
'Documents in the WebDAV repository' => '',
'Done' => '',
+ 'Download SEPA XML export file' => '',
'Download the backup' => '',
'Draft saved.' => '',
'Drawing' => '',
'Edit Vendor Invoice' => '',
'Edit Warehouse' => '',
'Edit and delete a group' => '',
+ 'Edit bank account' => '',
'Edit custom variable' => '',
'Edit file' => '',
'Edit greetings' => '',
'Edit the stylesheet' => '',
'Edit units' => '',
'Editable' => '',
+ 'Either there are no open invoices, or you have already initiated bank transfers with the open amounts for those that are still open.' => '',
'Element disabled' => '',
'Employee' => '',
'Empty transaction!' => '',
'Enter a description for this new draft.' => '',
'Enter longdescription' => '',
+ 'Enter the requested execution date or leave empty for the quickest possible execution:' => '',
'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => '',
'Equity' => '',
'Error' => '',
'Exchangerate Difference' => '',
'Exchangerate for payment missing!' => '',
'Exchangerate missing!' => '',
+ 'Executed' => '',
+ 'Execution date' => '',
+ 'Execution date from' => '',
+ 'Execution date to' => '',
'Existing Buchungsgruppen' => '',
'Existing Datasets' => '',
'Existing pending follow-ups for this item' => '',
'Export Stammdaten' => '',
'Export as CSV' => '',
'Export as PDF' => '',
+ 'Export date' => '',
+ 'Export date from' => '',
+ 'Export date to' => '',
'Extended' => '',
'Extension Of Time' => '',
'Factor' => '',
'Invoice deleted!' => '',
'Invoice for fees' => '',
'Invoice has already been storno\'d!' => '',
+ 'Invoice number' => '',
'Invoice with Storno (abbreviation)' => '',
'Invoices' => '',
'Is this a summary account to record' => '',
'List Tax' => '',
'List Transactions' => '',
'List Warehouses' => '',
+ 'List bank accounts' => '',
'List export' => '',
+ 'List of bank accounts' => '',
+ 'List of bank transfers' => '',
'List of custom variables' => '',
+ 'List open SEPA exports' => '',
'Load draft' => '',
'Local Tax Office Preferences' => '',
'Lock System' => '',
'Mar' => '',
'March' => '',
'Margins' => '',
+ 'Mark as closed' => '',
'Mark as paid?' => '',
'Mark closed' => '',
'Marked as paid' => '',
'Monat' => '',
'Monthly' => '',
'More than one control file with the tag \'%s\' exist.' => '',
+ 'Multi mode not supported.' => '',
'Multibyte Encoding' => '',
'MwSt. inkl.' => '',
'Name' => '',
'New Buchungsgruppe [% loop.count %]' => '',
'New Templates' => '',
'New assembly' => '',
+ 'New bank account' => '',
'New contact' => '',
'New customer' => '',
'New invoice' => '',
'No Vendor was found matching the search parameters.' => '',
'No action defined.' => '',
'No backup file has been uploaded.' => '',
+ 'No bank information has been entered in this vendor\'s master data entry. You cannot create bank transfers unless you enter bank information.' => '',
'No bins have been added to this warehouse yet.' => '',
'No customer has been selected yet.' => '',
'No data was found.' => '',
'No part was found matching the search parameters.' => '',
'No prices will be updated because no prices have been entered.' => '',
'No problems were recognized.' => '',
+ 'No transfers were executed in this export.' => '',
'No unknown units where found.' => '',
'No user has been selected.' => '',
'No valid number entered for pricegroup "#1".' => '',
'One or more Perl modules missing' => '',
'Only due follow-ups' => '',
'Open' => '',
+ 'Open amount' => '',
'OpenDocument/OASIS' => '',
'Openings' => '',
'Optional comment' => '',
'Payment Terms missing in row ' => '',
'Payment Terms saved!' => '',
'Payment date missing!' => '',
+ 'Payment list as PDF' => '',
'Payment posted!' => '',
'Payment terms deleted!' => '',
'Payments' => '',
'Phone1' => '',
'Phone2' => '',
'Pick List' => '',
+ 'Please Check the bank information for each vendor:' => '',
'Please ask your administrator to create warehouses and bins.' => '',
'Please enter a license key.' => '',
'Please enter a number of licenses.' => '',
'Please select a vendor from the list below.' => '',
'Please select the chart of accounts this installation is using from the list below.' => '',
'Please select the database you want to backup' => '',
+ 'Please select the source bank account for the transfers:' => '',
'Please seletct the dataset you want to delete:' => '',
'Please specify a description for the warehouse designated for these goods.' => '',
'Plural' => '',
'Portrait' => '',
'Post' => '',
'Post Payment' => '',
+ 'Post payments' => '',
'Postscript' => '',
'Posustva_coa' => '',
'Preferences' => '',
'Preis' => '',
'Preisgruppe' => '',
'Preisklasse' => '',
+ 'Prepare bank transfer via SEPA XML' => '',
'Prepayment' => '',
'Preview' => '',
'Previous transdate text' => '',
'Purchase Prices' => '',
'Purchase delivery order' => '',
'Purchase invoices' => '',
+ 'Purpose' => '',
'Qty' => '',
'Qty according to delivery order' => '',
'Qty in stock' => '',
'Request for Quotation' => '',
'Request for Quotations' => '',
'Request quotation' => '',
+ 'Requested execution date' => '',
+ 'Requested execution date from' => '',
+ 'Requested execution date to' => '',
'Required by' => '',
'Restore Dataset' => '',
'Revenue' => '',
'SAVED' => '',
'SAVED FOR DUNNING' => '',
'SCREENED' => '',
+ 'SEPA XML download' => '',
+ 'SEPA exports:' => '',
'Saldo Credit' => '',
'Saldo Debit' => '',
'Saldo neu' => '',
'Sat. Phone' => '',
'Satz %' => '',
'Save' => '',
+ 'Save Draft' => '',
'Save account first to insert taxkeys' => '',
'Save and AP Transaction' => '',
'Save and AR Transaction' => '',
'Set eMail text' => '',
'Setup Menu' => '',
'Setup Templates' => '',
- 'Ship' => '',
- 'Ship rcvd' => '',
'Ship to' => '',
'Ship via' => '',
'Shipping Address' => '',
'Shopartikel' => '',
'Short' => '',
'Show' => '',
+ 'Show Salesman' => '',
'Show TODO list' => '',
'Show by default' => '',
+ 'Show custom variable search inputs' => '',
'Show details' => '',
'Show follow ups...' => '',
'Show old dunnings' => '',
'Sold' => '',
'Solution' => '',
'Source' => '',
+ 'Source BIC' => '',
+ 'Source IBAN' => '',
+ 'Source bank account' => '',
'Source bin' => '',
'Spoolfile' => '',
'Start Dunning Process' => '',
'Statement sent to' => '',
'Statements sent to printer!' => '',
'Step 1 of 3: Parts' => '',
+ 'Step 2' => '',
'Step 2 of 3: Services' => '',
'Step 3 of 3: Assemblies' => '',
'Step 3 of 3: Default units' => '',
'TODO list options' => '',
'TOP100' => '',
'TOTAL' => '',
+ 'Target bank account' => '',
'Tax' => '',
'Tax Consultant' => '',
'Tax Included' => '',
'Text field variables: \'WIDTH=w HEIGHT=h\' sets the width and height of the text field. They default to 30 and 5 respectively.' => '',
'Text variables: \'MAXLENGTH=n\' sets the maximum entry length to \'n\'.' => '',
'Text, text field and number variables: The default value will be used as-is.' => '',
+ 'That export does not exist.' => '',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => '',
'The AP transaction #1 has been deleted.' => '',
'The AR transaction #1 has been deleted.' => '',
'The GL transaction #1 has been deleted.' => '',
'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => '',
+ 'The SEPA export has been created.' => '',
'The access rights have been saved.' => '',
'The assembly has been created.' => '',
'The assistant could not find anything wrong with #1. Maybe the problem has been solved in the meantime.' => '',
'The authentication database is not reachable at the moment. Either it hasn\'t been set up yet or the database server might be down. Please contact your administrator.' => '',
'The available options depend on the varibale type:' => '',
'The backup you upload here has to be a file created with "pg_dump -o -Ft".' => '',
+ 'The bank information must not be empty.' => '',
'The base unit does not exist or it is about to be deleted in row %d.' => '',
'The base unit does not exist.' => '',
'The base unit relations must not contain loops (e.g. by saying that unit A\'s base unit is B, B\'s base unit is C and C\'s base unit is A) in row %d.' => '',
'The parts have been removed.' => '',
'The parts have been stocked.' => '',
'The parts have been transferred.' => '',
+ 'The payments have been posted.' => '',
'The pg_dump process could not be started.' => '',
'The pg_restore process could not be started.' => '',
'The preferred one is to install packages provided by your operating system distribution (e.g. Debian or RPM packages).' => '',
'The second reason is that Lx-Office allowed the user to enter the tax amount manually regardless of the taxkey used.' => '',
'The second way is to use Perl\'s CPAN module and let it download and install the module for you.' => '',
'The selected PostgreSQL installation uses UTF-8 as its encoding. Therefore you have to configure Lx-Office to use UTF-8 as well.' => '',
+ 'The selected bank account does not exist anymore.' => '',
'The selected bin does not exist.' => '',
+ 'The selected exports have been closed.' => '',
'The selected warehouse does not exist.' => '',
'The selected warehouse is empty.' => '',
'The session is invalid or has expired.' => '',
'Verrechnungseinheit' => '',
'Version' => '',
'View License' => '',
+ 'View SEPA export' => '',
'View warehouse content' => '',
'Von Konto: ' => '',
'WEBDAV access' => '',
'You did not enter a name!' => '',
'You do not have the permissions to access this function.' => '',
'You have entered or selected the following shipping address for this customer:' => '',
+ 'You have not added bank accounts yet.' => '',
'You have not selected any delivery order.' => '',
+ 'You have not selected any export.' => '',
+ 'You have not selected any item.' => '',
+ 'You have selected none of the invoices.' => '',
'You have to chose a dimension unit and a service unit which will then be assigned to those entries.' => '',
'You have to chose which unit to save for each of them.' => '',
'You have to create at least one group, grant it access to Lx-Office\'s functions and assign users to it.' => '',
'You have to create new Buchungsgruppen for all the combinations of inventory, income and expense accounts that have been used already.' => '',
+ 'You have to enter a company name in your user preferences (see the "Program" menu, "Preferences").' => '',
+ 'You have to fill in at least an account number, the bank code, the IBAN and the BIC.' => '',
+ 'You have to specify an execution date for each antry.' => '',
'You must chose a user.' => '',
'You will now be forwarded to the administration panel.' => '',
'You\'re not editing a file.' => '',
'as at' => '',
'assembly_list' => '',
'back' => '',
+ 'bank_transfer_payment_list_#1' => '',
+ 'bankaccounts' => '',
+ 'banktransfers' => '',
'bin_list' => '',
'bis' => '',
'button' => '',
'chart_of_accounts' => '',
'choice' => '',
'choice part' => '',
+ 'click here to edit cvars' => '',
'close' => '',
+ 'closed' => '',
'config/authentication.pl: Key "DB_config" is missing.' => '',
'config/authentication.pl: Key "LDAP_config" is missing.' => '',
'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".' => '',
'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".' => '',
'continue' => '',
'correction' => '',
+ 'cp_greeting to cp_gender migration' => '',
'customer' => '',
'customer_list' => '',
'customernumber not unique!' => '',
'eMail?' => '',
'ea' => '',
'emailed to' => '',
+ 'executed' => '',
'female' => '',
'follow_up_list' => '',
'for' => '',
'no' => '',
'no chargenumber' => '',
'none (pricegroup)' => '',
+ 'not executed' => '',
'not transferred in yet' => '',
'not transferred out yet' => '',
+ 'not yet executed' => '',
'number' => '',
'oe.pl::search called with unknown type' => '',
+ 'open' => '',
'order' => '',
'our vendor number at customer' => '',
'packing_list' => '',
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Serial No.',
- 'Ship' => 'Ship',
- 'Ship rcvd' => 'Ship rcvd',
'Ship to' => 'Ship to',
'Ship via' => 'Ship via',
'Shipping Address' => 'Shipping Address',
- 'Show details' => 'Show details',
'Stock' => 'Stock',
'Storno Invoice' => 'Storno Invoice',
'Storno Packing List' => 'Storno Packing List',
--- /dev/null
+#!/usr/bin/perl
+
+$self->{texts} = {
+ 'A temporary file could not be created. Please verify that the directory "#1" is writeable by the webserver.' => 'A temporary file could not be created. Please verify that the directory "#1" is writeable by the webserver.',
+ 'ADDED' => 'ADDED',
+ 'AP' => 'Purchases',
+ 'AP Transaction' => 'Purchase Transaction',
+ 'AR' => 'Sales',
+ 'AR Transaction' => 'Sales Transaction',
+ 'Account number #1, bank code #2, #3' => 'Account number #1, bank code #2, #3',
+ 'Address' => 'Address',
+ 'Advance turnover tax return' => 'Advance turnover tax return',
+ 'All of the exports you have selected were already closed.' => 'All of the exports you have selected were already closed.',
+ 'All reports' => 'All reports',
+ 'All the selected exports have already been closed, or all of their items have already been executed.' => 'All the selected exports have already been closed, or all of their items have already been executed.',
+ 'Amount' => 'Amount',
+ 'Attempt to call an undefined sub named \'%s\'' => 'Attempt to call an undefined sub named \'%s\'',
+ 'Bank transfer payment list for export #1' => 'Bank transfer payment list for export #1',
+ 'Bcc' => 'Bcc',
+ 'Bin List' => 'Bin List',
+ 'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.' => 'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.',
+ 'CANCELED' => 'CANCELED',
+ 'CR' => 'CR',
+ 'CRM admin' => 'CRM admin',
+ 'CRM create customers, vendors and contacts' => 'CRM create customers, vendors and contacts',
+ 'CRM follow up' => 'CRM follow up',
+ 'CRM know how' => 'CRM know how',
+ 'CRM notices' => 'CRM notices',
+ 'CRM opportunity' => 'CRM opportunity',
+ 'CRM optional software' => 'CRM optional software',
+ 'CRM other' => 'CRM other',
+ 'CRM search' => 'CRM search',
+ 'CRM send email' => 'CRM send email',
+ 'CRM services' => 'CRM services',
+ 'CRM status' => 'CRM status',
+ 'CRM termin' => 'CRM termin',
+ 'CRM user' => 'CRM user',
+ 'CSV export -- options' => 'CSV export -- options',
+ 'Cc' => 'Cc',
+ 'Change Lx-Office installation settings (all menu entries beneath \'System\')' => 'Change Lx-Office installation settings (all menu entries beneath \'System\')',
+ 'Close SEPA exports' => 'Close SEPA exports',
+ 'Closed' => 'Closed',
+ 'Confirmation' => 'Confirmation',
+ 'Contact' => 'Contact',
+ 'Could not spawn the printer command.' => 'Could not spawn the printer command.',
+ 'Create and edit RFQs' => 'Create and edit RFQs',
+ 'Create and edit customers and vendors' => 'Create and edit customers and vendors',
+ 'Create and edit dunnings' => 'Create and edit dunnings',
+ 'Create and edit invoices and credit notes' => 'Create and edit invoices and credit notes',
+ 'Create and edit parts, services, assemblies' => 'Create and edit parts, services, assemblies',
+ 'Create and edit projects' => 'Create and edit projects',
+ 'Create and edit purchase delivery orders' => 'Create and edit purchase delivery orders',
+ 'Create and edit purchase orders' => 'Create and edit purchase orders',
+ 'Create and edit sales delivery orders' => 'Create and edit sales delivery orders',
+ 'Create and edit sales orders' => 'Create and edit sales orders',
+ 'Create and edit sales quotations' => 'Create and edit sales quotations',
+ 'Create and edit vendor invoices' => 'Create and edit vendor invoices',
+ 'Create bank transfer via SEPA XML' => 'Create bank transfer via SEPA XML',
+ 'Credit Note' => 'Credit Note',
+ 'Customer' => 'Customer',
+ 'Customer Number' => 'Customer Number',
+ 'Customer details' => 'Customer details',
+ 'DATEV Export' => 'DATEV Export',
+ 'DELETED' => 'DELETED',
+ 'DR' => 'DR',
+ 'DUNNING STARTED' => 'DUNNING STARTED',
+ 'Dataset upgrade' => 'Dataset upgrade',
+ 'Date' => 'Date',
+ 'Delivery Order' => 'Delivery Order',
+ 'Dependency loop detected:' => 'Dependency loop detected:',
+ 'Destination BIC' => 'Destination BIC',
+ 'Destination IBAN' => 'Destination IBAN',
+ 'Directory' => 'Directory',
+ 'Dunning' => 'Dunning',
+ 'ELSE' => 'ELSE',
+ 'Either there are no open invoices, or you have already initiated bank transfers with the open amounts for those that are still open.' => 'Either there are no open invoices, or you have already initiated bank transfers with the open amounts for those that are still open.',
+ 'Employee' => 'Employee',
+ 'Enter longdescription' => 'Enter longdescription',
+ 'Error in database control file \'%s\': %s' => 'Error in database control file \'%s\': %s',
+ 'Executed' => 'Executed',
+ 'Execution date' => 'Execution date',
+ 'Execution date from' => 'Execution date from',
+ 'Execution date to' => 'Execution date to',
+ 'Export date' => 'Export date',
+ 'Export date from' => 'Export date from',
+ 'Export date to' => 'Export date to',
+ 'File' => 'File',
+ 'GL Transaction' => 'GL Transaction',
+ 'General ledger and cash' => 'General ledger and cash',
+ 'History' => 'History',
+ 'Invoice' => 'Invoice',
+ 'Invoice number' => 'Invoice number',
+ 'List of bank transfers' => 'List of bank transfers',
+ 'MAILED' => 'MAILED',
+ 'Manage license keys' => 'Manage license keys',
+ 'Mark as paid?' => 'Mark as paid?',
+ 'Marked as paid' => 'Marked as paid',
+ 'Master Data' => 'Master Data',
+ 'May set the BCC field when sending emails' => 'May set the BCC field when sending emails',
+ 'Message' => 'Message',
+ 'Missing \'description\' field.' => 'Missing \'description\' field.',
+ 'Missing \'tag\' field.' => 'Missing \'tag\' field.',
+ 'Missing parameter #1 in call to sub #2.' => 'Missing parameter #1 in call to sub #2.',
+ 'Missing parameter (at least one of #1) in call to sub #2.' => 'Missing parameter (at least one of #1) in call to sub #2.',
+ 'More than one control file with the tag \'%s\' exist.' => 'More than one control file with the tag \'%s\' exist.',
+ 'Multi mode not supported.' => 'Multi mode not supported.',
+ 'Name' => 'Name',
+ 'No' => 'No',
+ 'No %s was found matching the search parameters.' => 'No %s was found matching the search parameters.',
+ 'No Customer was found matching the search parameters.' => 'No Customer was found matching the search parameters.',
+ 'No Vendor was found matching the search parameters.' => 'No Vendor was found matching the search parameters.',
+ 'No action defined.' => 'No action defined.',
+ 'No customer has been selected yet.' => 'No customer has been selected yet.',
+ 'No or an unknown authenticantion module specified in "config/authentication.pl".' => 'No or an unknown authenticantion module specified in "config/authentication.pl".',
+ 'No part was found matching the search parameters.' => 'No part was found matching the search parameters.',
+ 'No transfers were executed in this export.' => 'No transfers were executed in this export.',
+ 'No vendor has been selected yet.' => 'No vendor has been selected yet.',
+ 'Number' => 'Number',
+ 'Others' => 'Others',
+ 'PAYMENT POSTED' => 'PAYMENT POSTED',
+ 'PDF export -- options' => 'PDF export -- options',
+ 'POSTED' => 'POSTED',
+ 'POSTED AS NEW' => 'POSTED AS NEW',
+ 'PRINTED' => 'PRINTED',
+ 'Packing List' => 'Packing List',
+ 'Page #1/#2' => 'Page #1/#2',
+ 'Part Number' => 'Part Number',
+ 'Part description' => 'Part description',
+ 'Pick List' => 'Pick List',
+ 'Please enter values' => 'Please enter values',
+ 'Prepare bank transfer via SEPA XML' => 'Prepare bank transfer via SEPA XML',
+ 'Preview' => 'Preview',
+ 'Proforma Invoice' => 'Proforma Invoice',
+ 'Purchase Order' => 'Purchase Order',
+ 'Quotation' => 'Quotation',
+ 'RFQ' => 'RFQ',
+ 'Receipt, payment, reconciliation' => 'Receipt, payment, reconciliation',
+ 'Reference' => 'Reference',
+ 'Reports' => 'Reports',
+ 'Request quotation' => 'Request quotation',
+ 'Requested execution date from' => 'Requested execution date from',
+ 'Requested execution date to' => 'Requested execution date to',
+ 'SAVED' => 'SAVED',
+ 'SAVED FOR DUNNING' => 'SAVED FOR DUNNING',
+ 'SCREENED' => 'SCREENED',
+ 'Sales Invoice' => 'Sales Invoice',
+ 'Sales Order' => 'Sales Order',
+ 'Sales quotation' => 'Sales quotation',
+ 'Select a Customer' => 'Select a Customer',
+ 'Select a customer' => 'Select a customer',
+ 'Select a part' => 'Select a part',
+ 'Select a vendor' => 'Select a vendor',
+ 'Source BIC' => 'Source BIC',
+ 'Source IBAN' => 'Source IBAN',
+ 'Storno Invoice' => 'Storno Invoice',
+ 'Storno Packing List' => 'Storno Packing List',
+ 'Subject' => 'Subject',
+ 'That export does not exist.' => 'That export does not exist.',
+ 'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )',
+ 'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.',
+ 'The bank information must not be empty.' => 'The bank information must not be empty.',
+ 'The config file "config/authentication.pl" contained invalid Perl code:' => 'The config file "config/authentication.pl" contained invalid Perl code:',
+ 'The config file "config/authentication.pl" was not found.' => 'The config file "config/authentication.pl" was not found.',
+ 'The connection to the LDAP server cannot be encrypted (SSL/TLS startup failure). Please check config/authentication.pl.' => 'The connection to the LDAP server cannot be encrypted (SSL/TLS startup failure). Please check config/authentication.pl.',
+ 'The connection to the authentication database failed:' => 'The connection to the authentication database failed:',
+ 'The connection to the template database failed:' => 'The connection to the template database failed:',
+ 'The creation of the authentication database failed:' => 'The creation of the authentication database failed:',
+ 'The list has been printed.' => 'The list has been printed.',
+ 'The payments have been posted.' => 'The payments have been posted.',
+ 'The selected bank account does not exist anymore.' => 'The selected bank account does not exist anymore.',
+ 'The selected exports have been closed.' => 'The selected exports have been closed.',
+ 'To (email)' => 'To (email)',
+ 'Transactions, AR transactions, AP transactions' => 'Transactions, AR transactions, AP transactions',
+ 'Trying to call a sub without a name' => 'Trying to call a sub without a name',
+ 'Unit' => 'Unit',
+ 'Unknown dependency \'%s\'.' => 'Unknown dependency \'%s\'.',
+ 'Value' => 'Value',
+ 'Variable' => 'Variable',
+ 'Vendor' => 'Vendor',
+ 'Vendor Invoice' => 'Vendor Invoice',
+ 'Vendor details' => 'Vendor details',
+ 'View SEPA export' => 'View SEPA export',
+ 'View warehouse content' => 'View warehouse content',
+ 'Warehouse management' => 'Warehouse management',
+ 'Yes' => 'Yes',
+ 'You do not have the permissions to access this function.' => 'You do not have the permissions to access this function.',
+ 'You have not added bank accounts yet.' => 'You have not added bank accounts yet.',
+ 'You have not selected any export.' => 'You have not selected any export.',
+ 'You have not selected any item.' => 'You have not selected any item.',
+ 'You have selected none of the invoices.' => 'You have selected none of the invoices.',
+ 'You have to enter a company name in your user preferences (see the "Program" menu, "Preferences").' => 'You have to enter a company name in your user preferences (see the "Program" menu, "Preferences").',
+ 'You have to specify an execution date for each antry.' => 'You have to specify an execution date for each antry.',
+ 'Your PostgreSQL installationen uses UTF-8 as its encoding. Therefore you have to configure Lx-Office to use UTF-8 as well.' => 'Your PostgreSQL installationen uses UTF-8 as its encoding. Therefore you have to configure Lx-Office to use UTF-8 as well.',
+ '[email]' => '[email]',
+ 'bank_transfer_payment_list_#1' => 'bank_transfer_payment_list_#1',
+ 'banktransfers' => 'banktransfers',
+ 'bin_list' => 'bin_list',
+ 'closed' => 'closed',
+ 'config/authentication.pl: Key "DB_config" is missing.' => 'config/authentication.pl: Key "DB_config" is missing.',
+ 'config/authentication.pl: Key "LDAP_config" is missing.' => 'config/authentication.pl: Key "LDAP_config" is missing.',
+ 'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".' => 'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".',
+ 'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".' => 'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".',
+ 'customer' => 'customer',
+ 'executed' => 'executed',
+ 'invoice' => 'invoice',
+ 'no' => 'no',
+ 'not yet executed' => 'not yet executed',
+ 'open' => 'open',
+ 'packing_list' => 'packing_list',
+ 'pick_list' => 'pick_list',
+ 'proforma' => 'proforma',
+ 'purchase_order' => 'purchase_order',
+ 'report_generator_dispatch_to is not defined.' => 'report_generator_dispatch_to is not defined.',
+ 'report_generator_nextsub is not defined.' => 'report_generator_nextsub is not defined.',
+ 'request_quotation' => 'request_quotation',
+ 'sales_order' => 'sales_order',
+ 'sales_quotation' => 'sales_quotation',
+ 'vendor' => 'vendor',
+ 'yes' => 'yes',
+};
+
+$self->{subs} = {
+ 'E' => 'E',
+ 'H' => 'H',
+ 'NTI' => 'NTI',
+ 'Q' => 'Q',
+ 'ap_transaction' => 'ap_transaction',
+ 'ar_transaction' => 'ar_transaction',
+ 'bank_transfer_add' => 'bank_transfer_add',
+ 'bank_transfer_create' => 'bank_transfer_create',
+ 'bank_transfer_download_sepa_xml' => 'bank_transfer_download_sepa_xml',
+ 'bank_transfer_edit' => 'bank_transfer_edit',
+ 'bank_transfer_list' => 'bank_transfer_list',
+ 'bank_transfer_mark_as_closed_step1' => 'bank_transfer_mark_as_closed_step1',
+ 'bank_transfer_mark_as_closed_step2' => 'bank_transfer_mark_as_closed_step2',
+ 'bank_transfer_payment_list_as_pdf' => 'bank_transfer_payment_list_as_pdf',
+ 'bank_transfer_post_payments' => 'bank_transfer_post_payments',
+ 'bank_transfer_search' => 'bank_transfer_search',
+ 'build_std_url' => 'build_std_url',
+ 'calculate_qty' => 'calculate_qty',
+ 'call_sub' => 'call_sub',
+ 'cov_selection_internal' => 'cov_selection_internal',
+ 'delivery_customer_selection' => 'delivery_customer_selection',
+ 'dispatcher' => 'dispatcher',
+ 'format_dates' => 'format_dates',
+ 'gl_transaction' => 'gl_transaction',
+ 'mark_as_paid_common' => 'mark_as_paid_common',
+ 'part_selection_internal' => 'part_selection_internal',
+ 'reformat_numbers' => 'reformat_numbers',
+ 'report_generator_back' => 'report_generator_back',
+ 'report_generator_dispatcher' => 'report_generator_dispatcher',
+ 'report_generator_do' => 'report_generator_do',
+ 'report_generator_export_as_csv' => 'report_generator_export_as_csv',
+ 'report_generator_export_as_pdf' => 'report_generator_export_as_pdf',
+ 'report_generator_set_default_sort' => 'report_generator_set_default_sort',
+ 'retrieve_partunits' => 'retrieve_partunits',
+ 'sales_invoice' => 'sales_invoice',
+ 'select_part' => 'select_part',
+ 'select_part_internal' => 'select_part_internal',
+ 'set_longdescription' => 'set_longdescription',
+ 'show_history' => 'show_history',
+ 'show_vc_details' => 'show_vc_details',
+ 'vendor_invoice' => 'vendor_invoice',
+ 'vendor_selection' => 'vendor_selection',
+ 'back' => 'back',
+ 'close' => 'close',
+ 'continue' => 'continue',
+ 'create_bank_transfer' => 'create_bank_transfer',
+ 'export_as_csv' => 'export_as_csv',
+ 'export_as_pdf' => 'export_as_pdf',
+ 'mark_as_closed' => 'mark_as_closed',
+ 'new_part' => 'new_part',
+ 'payment_list_as_pdf' => 'payment_list_as_pdf',
+ 'post_payments' => 'post_payments',
+ 'sepa_xml_download' => 'sepa_xml_download',
+ 'step_2' => 'step_2',
+};
+
+1;
'Sep' => 'Sep',
'September' => 'September',
'Serial No.' => 'Serial No.',
- 'Ship' => 'Ship',
- 'Ship rcvd' => 'Ship rcvd',
'Ship to' => 'Ship to',
'Ship via' => 'Ship via',
'Shipping Address' => 'Shipping Address',
- 'Show details' => 'Show details',
'Stock' => 'Stock',
'Storno Invoice' => 'Storno Invoice',
'Storno Packing List' => 'Storno Packing List',
while (my $row = $sth2->fetchrow_hashref()) {
if ($main::form->{"gender_$i"} eq "f" ) {
- $mchecked = "";
- $fchecked = "checked";
+ $mchecked = "";
+ $fchecked = "checked";
} else {
- $mchecked = "checked";
- $fchecked = "";
+ $mchecked = "checked";
+ $fchecked = "";
};
$gender_table .= "<tr><input type=hidden name=\"cp_id_$i\" value=\"$row->{cp_id}\"> <td>$row->{cp_givenname}</td> <td>$row->{cp_name}</td> <td>$row->{cp_title} </td> <td>$row->{cp_greeting} </td><td> <input type=\"radio\" name=\"gender_$i\" value=\"m\" $mchecked> <input type=\"radio\" name=\"gender_$i\" value=\"f\" $fchecked></td></tr>\n";
use Support::Files;
-use Test::More tests => scalar @Support::Files::testitems * 2;
+use Test::More tests => scalar @Support::Files::testitems * 3;
my @testitems = @Support::Files::testitems; # get the files to test.
}
}
+
+# note, the html checker is not really thorough.
+# in particular it will not find standard tags with parameters.
+# the estimate wether a file is dirty or not is still pretty helpful, as it will catch most of the closing tags.
+# if you are in doubt about a specific file, you still have to check it manually.
+my $tags = qr/b|i|u|h[1-6]|a href.*|input|form|br|textarea|table|tr|td|th|body|head|html|p|button|select|option|script/;
+foreach my $file (@testitems) {
+ my $found_html_count = 0;
+ my $found_html = '';
+ $file =~ s/\s.*$//; # nuke everything after the first space (#comment)
+ next if (!$file); # skip null entries
+ if (! open (FILE, $file)) {
+ ok(0,"could not open $file --WARNING");
+ next;
+ }
+ while (my $file_line = <FILE>) {
+ if ($file_line =~ m/(<\/?$tags>)/) {
+ $found_html_count++;
+ $found_html .= $1;
+ }
+ }
+ close (FILE);
+ if (!$found_html_count) {
+ ok(1,"$file does not contain HTML");
+ } elsif ($found_html_count < 50) {
+ TODO: { local $TODO = q(Even little amounts of HTML should go away....);
+ ok(0,"$file contains at least $found_html_count html tags.");
+ }
+ } else {
+ ok(0,"$file contains at least $found_html_count html tags.");
+ }
+}
+
exit 0;
if (grep /\t/, <FILE>) {
ok(0, "$file contains tabs --WARNING");
} else {
+ TODO: { local $TODO = q(Tabfreeness is not enforced at the moment.);
ok(1, "$file has no tabs");
+ }
}
close (FILE);
}
@evilwords = qw(
anyways
arbitary
+custemer
databasa
dependan
existance
</select>
</td>
</tr>
+
+ <tr>
+ <th align="right">Show custom variable search inputs</th>
+ <td>
+ <select name="hide_cvar_search_options">
+ <option value="0"[% IF !myconfig_hide_cvar_search_options %] selected[% END %]>Show by default</option>
+ <option value="1"[% IF myconfig_hide_cvar_search_options %] selected[% END %]>Hide by default</option>
+ </select>
+ </td>
+ </tr>
</table>
<br style="clear: left" />
<th align="left">BWA</th>
<td colspan="3"><select name="pos_bwa">[% select_bwa %]</select></td>
</tr>
- <!-- Diese Steuerfunktion hat keine Auswirkung in der Bilanz und wird erstmal deaktiviert. -->
+ <!-- Diese Steuerfunktion hat keine Auswirkung in der Bilanz und wird erstmal deaktiviert. -->
<!-- tr>
<th align="left">Bilanz</th>
<td colspan="3"><select name="pos_bilanz">[% select_bilanz %]</select></td>
<th align="left">BWA</th>
<td colspan="3"><select name="pos_bwa">[% select_bwa %]</select></td>
</tr>
- <!-- Diese Steuerfunktion hat keine Auswirkung in der Bilanz und wird erstmal deaktiviert. -->
+ <!-- Diese Steuerfunktion hat keine Auswirkung in der Bilanz und wird erstmal deaktiviert. -->
<!-- tr>
<th align="left">Bilanz</th>
<td colspan="3"><select name="pos_bilanz">[% select_bilanz %]</select></td>
<th align="left"><translate>BWA</translate></th>
<td colspan="3"><select name="pos_bwa">[% select_bwa %]</select></td>
</tr>
- <!-- Diese Steuerfunktion hat keine Auswirkung in der Bilanz und wird erstmal deaktiviert. -->
+ <!-- Diese Steuerfunktion hat keine Auswirkung in der Bilanz und wird erstmal deaktiviert. -->
<!-- tr>
<th align="left"><translate>Bilanz</translate></th>
<td colspan="3"><select name="pos_bilanz">[% select_bilanz %]</select></td>
[%- FOREACH var = variables %]
[%- IF var.searchable %]
- <tr>
+ <tr id='cvar_filter_[% var.name %]'>
<td align="right" valign="top">[% HTML.escape(var.description) %]</td>
<td valign="top">
</tr>
[%- END %]
[%- END %]
+[% IF hidden_cvar_filters %]
+ <tr><td></td><td colspan="3"><a href="#" id="cvar_filter-toggle"><i>click here to edit cvars</i></a></td></tr>
+ <script type='text/javascript'>
+ $('#cvar_filter-toggle').click(function() { $('[id^="cvar_filter"]').toggle(); $('[id^="l_cvartd_"]').toggle(); });
+ $(document).ready(function(){ $('[id^="cvar_filter_"]').hide(); $('[id^="l_cvartd_"]').hide(); });
+ </script>
+[% END %]
<tr>
[%- SET start_new_row = '0' %]
[%- END %]
- <td>
+ <td id="[% HTML.escape(include_prefix) %]cvartd_[% HTML.escape(var.name) %]">
<input type="checkbox"
name="[% HTML.escape(include_prefix) %]cvar_[% HTML.escape(var.name) %]"
id="[% HTML.escape(include_prefix) %]cvar_[% HTML.escape(var.name) %]"
--- /dev/null
+<body>
+
+ <form method=post name="search" action=[% script %]>
+
+ <table width=100%>
+ <tr><th class=listtop>[% title %]</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>Lieferant</th>
+ <td colspan=3>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'vendor',
+ default = oldvendor,
+ style = 'width: 250px',
+ DATA = ALL_VC,
+ id_sub = 'vc_keys',
+ label_key = 'name',
+ select = vc_select,
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 1,
+ -%]
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="vendor"]', params => { vc => 'vendor' } },
+]
+%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Abteilung</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'department',
+ style = 'width: 250px',
+ DATA = ALL_DEPARTMENTS,
+ id_key = 'id',
+ label_key = 'description',
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Rechnungsnummer</th>
+ <td colspan=3><input name=invnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Auftragsnummer</th>
+ <td colspan=3><input name=ordnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Bemerkungen</th>
+ <td colspan=3><input name=notes size=40></td>
+ </tr>
+ <tr>
+ <th align="right">Projektnummer</th>
+ <td colspan="3">
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'project_id',
+ style = "width: 250px",
+ DATA = ALL_PROJECTS,
+ id_key = 'id',
+ label_key = 'projectnumber',
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Von</th>
+ <td>
+ <input name=transdatefrom id=transdatefrom size=11 title="dateformat | html %]" onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdatefrom id="trigger1" value=?>
+ </td>
+ <th align=right>bis</th>
+ <td>
+ <input name=transdateto id=transdateto size=11 title="[% dateformat | html %]" onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdateto name=transdateto id="trigger2" value=?>
+ </td>
+ </tr>
+ <input type=hidden name=sort value=transdate>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>In Bericht aufnehmen</th>
+ <td>
+ <table width=100%>
+ <tr>
+ <td align=right><input name=open class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Offen</td>
+ <td align=right><input name=closed class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Geschlossen</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_id" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Buchungsnummer</td>
+ <td align=right><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Rechnungsnummer</td>
+ <td align=right><input name="l_ordnumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Auftragsnummer</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Lieferant</td>
+ <td align=right><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Rechnungsdatum</td>
+ <td align=right><input name="l_netamount" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Betrag</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_tax" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Steuer</td>
+ <td align=right><input name="l_amount" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Summe</td>
+ <td align=right><input name="l_datepaid" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Zahlungsdatum</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_paid" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>bezahlt</td>
+ <td align=right><input name="l_duedate" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Fälligkeitsdatum</td>
+ <td align=right><input name="l_due" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Betrag fällig</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_notes" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Bemerkungen</td>
+ <td align=right><input name="l_employee" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Bearbeiter</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Zwischensumme</td>
+ <td align=right><input name="l_globalprojectnumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Projektnummer</td>
+ </tr>
+ <tr>
+ <td colspan=4 align=left><b>Lieferant </td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_vendornumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Lieferantennummer</td>
+ <td align=right><input name="l_country" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Land</td>
+ <td align=right><input name="l_ustid" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>USt-IdNr.</td>
+ <td align=right><input name="l_taxzone" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Steuersatz</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_payment_terms" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Zahlungskonditionen</td>
+ <td align=right><input name="l_charts" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Buchungskonto</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ </table>
+ <input type=hidden name=nextsub value=[% nextsub %]>
+ <br>
+ <input class=submit type=submit name=action value="Weiter">
+ </form>
+ </body>
+ <script type="text/javascript">
+ <!--
+ Calendar.setup( { inputField : "transdatefrom", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BR", button : "trigger1" });
+ Calendar.setup( { inputField : "transdateto", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger2" });
+ $(document).ready(function(){
+ focus();
+ setupDateFormat('[% dateformat | html %]','Falsches Datumsformat!');
+ setupPoints('[% numberformat | html %]','Falsches Format');
+ })
+ //-->
+ </script>
+</html>
--- /dev/null
+<body>
+
+ <form method=post name="search" action=[% script %]>
+
+ <table width=100%>
+ <tr><th class=listtop>[% title %]</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>Vendor</th>
+ <td colspan=3>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'vendor',
+ default = oldvendor,
+ style = 'width: 250px',
+ DATA = ALL_VC,
+ id_sub = 'vc_keys',
+ label_key = 'name',
+ select = vc_select,
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 1,
+ -%]
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="vendor"]', params => { vc => 'vendor' } },
+]
+%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Department</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'department',
+ style = 'width: 250px',
+ DATA = ALL_DEPARTMENTS,
+ id_key = 'id',
+ label_key = 'description',
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Invoice Number</th>
+ <td colspan=3><input name=invnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Order Number</th>
+ <td colspan=3><input name=ordnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Notes</th>
+ <td colspan=3><input name=notes size=40></td>
+ </tr>
+ <tr>
+ <th align="right">Project Number</th>
+ <td colspan="3">
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'project_id',
+ style = "width: 250px",
+ DATA = ALL_PROJECTS,
+ id_key = 'id',
+ label_key = 'projectnumber',
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>From</th>
+ <td>
+ <input name=transdatefrom id=transdatefrom size=11 title="dateformat | html %]" onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdatefrom id="trigger1" value=button>
+ </td>
+ <th align=right>Bis</th>
+ <td>
+ <input name=transdateto id=transdateto size=11 title="[% dateformat | html %]" onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdateto name=transdateto id="trigger2" value=button>
+ </td>
+ </tr>
+ <input type=hidden name=sort value=transdate>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>Include in Report</th>
+ <td>
+ <table width=100%>
+ <tr>
+ <td align=right><input name=open class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Open</td>
+ <td align=right><input name=closed class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Closed</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_id" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>ID</td>
+ <td align=right><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Invoice Number</td>
+ <td align=right><input name="l_ordnumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Order Number</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Vendor</td>
+ <td align=right><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Invoice Date</td>
+ <td align=right><input name="l_netamount" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Amount</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_tax" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Tax</td>
+ <td align=right><input name="l_amount" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Total</td>
+ <td align=right><input name="l_datepaid" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Date Paid</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_paid" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Paid</td>
+ <td align=right><input name="l_duedate" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Due Date</td>
+ <td align=right><input name="l_due" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Amount Due</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_notes" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Notes</td>
+ <td align=right><input name="l_employee" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Employee</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Subtotal</td>
+ <td align=right><input name="l_globalprojectnumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Project Number</td>
+ </tr>
+ <tr>
+ <td colspan=4 align=left><b>Vendor </td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_vendornumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Vendor Number</td>
+ <td align=right><input name="l_country" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Country</td>
+ <td align=right><input name="l_ustid" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>USt-IdNr.</td>
+ <td align=right><input name="l_taxzone" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Steuersatz</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_payment_terms" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Payment Terms</td>
+ <td align=right><input name="l_charts" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Buchungskonto</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ </table>
+ <input type=hidden name=nextsub value=[% nextsub %]>
+ <br>
+ <input class=submit type=submit name=action value="Continue">
+ </form>
+ </body>
+ <script type="text/javascript">
+ <!--
+ Calendar.setup( { inputField : "transdatefrom", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BR", button : "trigger1" });
+ Calendar.setup( { inputField : "transdateto", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger2" });
+ $(document).ready(function(){
+ focus();
+ setupDateFormat('[% dateformat | html %]','Falsches Datumsformat!');
+ setupPoints('[% numberformat | html %]','wrongformat');
+ })
+ //-->
+ </script>
+</html>
--- /dev/null
+<body>
+
+ <form method=post name="search" action=[% script %]>
+
+ <table width=100%>
+ <tr><th class=listtop>[% title %]</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right><translate>Vendor</translate></th>
+ <td colspan=3>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'vendor',
+ default = oldvendor,
+ style = 'width: 250px',
+ DATA = ALL_VC,
+ id_sub = 'vc_keys',
+ label_key = 'name',
+ select = vc_select,
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 1,
+ -%]
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="vendor"]', params => { vc => 'vendor' } },
+]
+%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap><translate>Department</translate></th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'department',
+ style = 'width: 250px',
+ DATA = ALL_DEPARTMENTS,
+ id_key = 'id',
+ label_key = 'description',
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap><translate>Invoice Number</translate></th>
+ <td colspan=3><input name=invnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap><translate>Order Number</translate></th>
+ <td colspan=3><input name=ordnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap><translate>Notes</translate></th>
+ <td colspan=3><input name=notes size=40></td>
+ </tr>
+ <tr>
+ <th align="right"><translate>Project Number</translate></th>
+ <td colspan="3">
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'project_id',
+ style = "width: 250px",
+ DATA = ALL_PROJECTS,
+ id_key = 'id',
+ label_key = 'projectnumber',
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap><translate>From</translate></th>
+ <td>
+ <input name=transdatefrom id=transdatefrom size=11 title="dateformat | html %]" onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdatefrom id="trigger1" value=<translate>button</translate>>
+ </td>
+ <th align=right><translate>Bis</translate></th>
+ <td>
+ <input name=transdateto id=transdateto size=11 title="[% dateformat | html %]" onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdateto name=transdateto id="trigger2" value=<translate>button</translate>>
+ </td>
+ </tr>
+ <input type=hidden name=sort value=transdate>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap><translate>Include in Report</translate></th>
+ <td>
+ <table width=100%>
+ <tr>
+ <td align=right><input name=open class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap><translate>Open</translate></td>
+ <td align=right><input name=closed class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Closed</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_id" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>ID</translate></td>
+ <td align=right><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap><translate>Invoice Number</translate></td>
+ <td align=right><input name="l_ordnumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Order Number</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap><translate>Vendor</translate></td>
+ <td align=right><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap><translate>Invoice Date</translate></td>
+ <td align=right><input name="l_netamount" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Amount</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_tax" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Tax</translate></td>
+ <td align=right><input name="l_amount" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap><translate>Total</translate></td>
+ <td align=right><input name="l_datepaid" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Date Paid</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_paid" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap><translate>Paid</translate></td>
+ <td align=right><input name="l_duedate" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Due Date</translate></td>
+ <td align=right><input name="l_due" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Amount Due</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_notes" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Notes</translate></td>
+ <td align=right><input name="l_employee" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Employee</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Subtotal</translate></td>
+ <td align=right><input name="l_globalprojectnumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Project Number</translate></td>
+ </tr>
+ <tr>
+ <td colspan=4 align=left><b><translate>Vendor</translate> </td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_vendornumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Vendor Number</translate></td>
+ <td align=right><input name="l_country" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Country</translate></td>
+ <td align=right><input name="l_ustid" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>USt-IdNr.</translate></td>
+ <td align=right><input name="l_taxzone" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Steuersatz</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_payment_terms" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Payment Terms</translate></td>
+ <td align=right><input name="l_charts" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Buchungskonto</translate></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ </table>
+ <input type=hidden name=nextsub value=[% nextsub %]>
+ <br>
+ <input class=submit type=submit name=action value="<translate>Continue</translate>">
+ </form>
+ </body>
+ <script type="text/javascript">
+ <!--
+ Calendar.setup( { inputField : "transdatefrom", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BR", button : "trigger1" });
+ Calendar.setup( { inputField : "transdateto", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger2" });
+ $(document).ready(function(){
+ focus();
+ setupDateFormat('[% dateformat | html %]','<translate>Falsches Datumsformat!</translate>');
+ setupPoints('[% numberformat | html %]','<translate>wrongformat</translate>');
+ })
+ //-->
+ </script>
+</html>
--- /dev/null
+<body>
+
+ <form method=post name="search" action=[% script %]>
+
+ <table width=100%>
+ <tr><th class=listtop>[% title %]</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>Kunde</th>
+ <td colspan=3>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'customer',
+ default = oldcustomer,
+ style = 'width: 250px',
+ DATA = ALL_VC,
+ id_sub = 'vc_keys',
+ label_key = 'name',
+ select = vc_select,
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 1,
+ -%]
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="customer"]', params => { vc => 'customer' } },
+]
+%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Abteilung</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'department',
+ style = 'width: 250px',
+ DATA = ALL_DEPARTMENTS,
+ id_key = 'id',
+ label_key = 'description',
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Rechnungsnummer</th>
+ <td colspan=3><input name=invnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Auftragsnummer</th>
+ <td colspan=3><input name=ordnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Vorgangsbezeichnung</th>
+ <td colspan=3><input name=transaction_description size=40></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Bemerkungen</th>
+ <td colspan=3><input name=notes size=40></td>
+ </tr>
+ <tr>
+ <th align="right">Projektnummer</th>
+ <td colspan="3">
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'project_id',
+ style = "width: 250px",
+ DATA = ALL_PROJECTS,
+ id_key = 'id',
+ label_key = 'projectnumber',
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Von</th>
+ <td>
+ <input name=transdatefrom id=transdatefrom size=11 title="dateformat | html %]" onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdatefrom id="trigger1" value=?>
+ </td>
+ <th align=right>bis</th>
+ <td>
+ <input name=transdateto id=transdateto size=11 title="[% dateformat | html %]" onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdateto name=transdateto id="trigger2" value=?>
+ </td>
+ </tr>
+ <input type=hidden name=sort value=transdate>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>In Bericht aufnehmen</th>
+ <td>
+ <table width=100%>
+ <tr>
+ <td align=right><input name=open class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Offen</td>
+ <td align=right><input name=closed class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Geschlossen</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_id" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Buchungsnummer</td>
+ <td align=right><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Rechnungsnummer</td>
+ <td align=right><input name="l_ordnumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Auftragsnummer</td>
+ <td align=right><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Rechnungsdatum</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Kunde</td>
+ <td align=right><input name="l_netamount" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Betrag</td>
+ <td align=right><input name="l_tax" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Steuer</td>
+ <td align=right><input name="l_amount" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Summe</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_datepaid" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Zahlungsdatum</td>
+ <td align=right><input name="l_paid" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>bezahlt</td>
+ <td align=right><input name="l_duedate" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Fälligkeitsdatum</td>
+ <td align=right><input name="l_due" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Betrag fällig</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_notes" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Bemerkungen</td>
+ <td align=right><input name="l_salesman" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Verkäufer</td>
+ <td align=right><input name="l_shippingpoint" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Versandort</td>
+ <td align=right><input name="l_shipvia" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Transportmittel</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_marge_total" class=checkbox type=checkbox value=Y></td>
+ <td nowrap> Ertrag</td>
+ <td align=right><input name="l_marge_percent" class=checkbox type=checkbox value=Y></td>
+ <td nowrap> Ertrag prozentual</td>
+ <td align=right><input name="l_employee" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Bearbeiter</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Zwischensumme</td>
+ <td align=right><input name="l_globalprojectnumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Projektnummer</td>
+ <td align=right><input name="l_transaction_description" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Vorgangsbezeichnung</td>
+ </tr>
+ <tr>
+ <td colspan=4 align=left><b>Kunde </td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_customernumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Kundennummer</td>
+ <td align=right><input name="l_country" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Land</td>
+ <td align=right><input name="l_ustid" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>USt-IdNr.</td>
+ <td align=right><input name="l_taxzone" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Steuersatz</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_payment_terms" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Zahlungskonditionen</td>
+ <td align=right><input name="l_charts" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Buchungskonto</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ </table>
+ <input type=hidden name=nextsub value=[% nextsub %]>
+ <br>
+ <input class=submit type=submit name=action value="Weiter">
+ </form>
+ </body>
+ <script type="text/javascript">
+ <!--
+ Calendar.setup( { inputField : "transdatefrom", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BR", button : "trigger1" });
+ Calendar.setup( { inputField : "transdateto", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger2" });
+ $(document).ready(function(){
+ focus();
+ setupDateFormat('[% dateformat | html %]','Falsches Datumsformat!');
+ setupPoints('[% numberformat | html %]','Falsches Format');
+ })
+ //-->
+ </script>
+</html>
--- /dev/null
+<body>
+
+ <form method=post name="search" action=[% script %]>
+
+ <table width=100%>
+ <tr><th class=listtop>[% title %]</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right>Customer</th>
+ <td colspan=3>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'customer',
+ default = oldcustomer,
+ style = 'width: 250px',
+ DATA = ALL_VC,
+ id_sub = 'vc_keys',
+ label_key = 'name',
+ select = vc_select,
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 1,
+ -%]
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="customer"]', params => { vc => 'customer' } },
+]
+%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Department</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'department',
+ style = 'width: 250px',
+ DATA = ALL_DEPARTMENTS,
+ id_key = 'id',
+ label_key = 'description',
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Invoice Number</th>
+ <td colspan=3><input name=invnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Order Number</th>
+ <td colspan=3><input name=ordnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Transaction description</th>
+ <td colspan=3><input name=transaction_description size=40></td>
+ </tr>
+ <tr>
+ <th align=right nowrap>Notes</th>
+ <td colspan=3><input name=notes size=40></td>
+ </tr>
+ <tr>
+ <th align="right">Project Number</th>
+ <td colspan="3">
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'project_id',
+ style = "width: 250px",
+ DATA = ALL_PROJECTS,
+ id_key = 'id',
+ label_key = 'projectnumber',
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap>From</th>
+ <td>
+ <input name=transdatefrom id=transdatefrom size=11 title="dateformat | html %]" onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdatefrom id="trigger1" value=button>
+ </td>
+ <th align=right>Bis</th>
+ <td>
+ <input name=transdateto id=transdateto size=11 title="[% dateformat | html %]" onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdateto name=transdateto id="trigger2" value=button>
+ </td>
+ </tr>
+ <input type=hidden name=sort value=transdate>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap>Include in Report</th>
+ <td>
+ <table width=100%>
+ <tr>
+ <td align=right><input name=open class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Open</td>
+ <td align=right><input name=closed class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Closed</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_id" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>ID</td>
+ <td align=right><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Invoice Number</td>
+ <td align=right><input name="l_ordnumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Order Number</td>
+ <td align=right><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Invoice Date</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Customer</td>
+ <td align=right><input name="l_netamount" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Amount</td>
+ <td align=right><input name="l_tax" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Tax</td>
+ <td align=right><input name="l_amount" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Total</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_datepaid" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Date Paid</td>
+ <td align=right><input name="l_paid" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap>Paid</td>
+ <td align=right><input name="l_duedate" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Due Date</td>
+ <td align=right><input name="l_due" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Amount Due</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_notes" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Notes</td>
+ <td align=right><input name="l_salesman" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Salesperson</td>
+ <td align=right><input name="l_shippingpoint" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Shipping Point</td>
+ <td align=right><input name="l_shipvia" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Ship via</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_marge_total" class=checkbox type=checkbox value=Y></td>
+ <td nowrap> Ertrag</td>
+ <td align=right><input name="l_marge_percent" class=checkbox type=checkbox value=Y></td>
+ <td nowrap> Ertrag prozentual</td>
+ <td align=right><input name="l_employee" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Employee</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Subtotal</td>
+ <td align=right><input name="l_globalprojectnumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Project Number</td>
+ <td align=right><input name="l_transaction_description" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Transaction description</td>
+ </tr>
+ <tr>
+ <td colspan=4 align=left><b>Customer </td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_customernumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Customer Number</td>
+ <td align=right><input name="l_country" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Country</td>
+ <td align=right><input name="l_ustid" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>USt-IdNr.</td>
+ <td align=right><input name="l_taxzone" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Steuersatz</td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_payment_terms" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Payment Terms</td>
+ <td align=right><input name="l_charts" class=checkbox type=checkbox value=Y></td>
+ <td nowrap>Buchungskonto</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ </table>
+ <input type=hidden name=nextsub value=[% nextsub %]>
+ <br>
+ <input class=submit type=submit name=action value="Continue">
+ </form>
+ </body>
+ <script type="text/javascript">
+ <!--
+ Calendar.setup( { inputField : "transdatefrom", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BR", button : "trigger1" });
+ Calendar.setup( { inputField : "transdateto", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger2" });
+ $(document).ready(function(){
+ focus();
+ setupDateFormat('[% dateformat | html %]','Falsches Datumsformat!');
+ setupPoints('[% numberformat | html %]','wrongformat');
+ })
+ //-->
+ </script>
+</html>
--- /dev/null
+<body>
+
+ <form method=post name="search" action=[% script %]>
+
+ <table width=100%>
+ <tr><th class=listtop>[% title %]</th></tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right><translate>Customer</translate></th>
+ <td colspan=3>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'customer',
+ default = oldcustomer,
+ style = 'width: 250px',
+ DATA = ALL_VC,
+ id_sub = 'vc_keys',
+ label_key = 'name',
+ select = vc_select,
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 1,
+ -%]
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="customer"]', params => { vc => 'customer' } },
+]
+%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap><translate>Department</translate></th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'department',
+ style = 'width: 250px',
+ DATA = ALL_DEPARTMENTS,
+ id_key = 'id',
+ label_key = 'description',
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap><translate>Invoice Number</translate></th>
+ <td colspan=3><input name=invnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap><translate>Order Number</translate></th>
+ <td colspan=3><input name=ordnumber size=20></td>
+ </tr>
+ <tr>
+ <th align=right nowrap><translate>Transaction description</translate></th>
+ <td colspan=3><input name=transaction_description size=40></td>
+ </tr>
+ <tr>
+ <th align=right nowrap><translate>Notes</translate></th>
+ <td colspan=3><input name=notes size=40></td>
+ </tr>
+ <tr>
+ <th align="right"><translate>Project Number</translate></th>
+ <td colspan="3">
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'project_id',
+ style = "width: 250px",
+ DATA = ALL_PROJECTS,
+ id_key = 'id',
+ label_key = 'projectnumber',
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
+ <tr>
+ <th align=right nowrap><translate>From</translate></th>
+ <td>
+ <input name=transdatefrom id=transdatefrom size=11 title="dateformat | html %]" onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdatefrom id="trigger1" value=<translate>button</translate>>
+ </td>
+ <th align=right><translate>Bis</translate></th>
+ <td>
+ <input name=transdateto id=transdateto size=11 title="[% dateformat | html %]" onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdateto name=transdateto id="trigger2" value=<translate>button</translate>>
+ </td>
+ </tr>
+ <input type=hidden name=sort value=transdate>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align=right nowrap><translate>Include in Report</translate></th>
+ <td>
+ <table width=100%>
+ <tr>
+ <td align=right><input name=open class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap><translate>Open</translate></td>
+ <td align=right><input name=closed class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Closed</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_id" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>ID</translate></td>
+ <td align=right><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap><translate>Invoice Number</translate></td>
+ <td align=right><input name="l_ordnumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Order Number</translate></td>
+ <td align=right><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap><translate>Invoice Date</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap><translate>Customer</translate></td>
+ <td align=right><input name="l_netamount" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Amount</translate></td>
+ <td align=right><input name="l_tax" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Tax</translate></td>
+ <td align=right><input name="l_amount" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap><translate>Total</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_datepaid" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Date Paid</translate></td>
+ <td align=right><input name="l_paid" class=checkbox type=checkbox value=Y checked></td>
+ <td nowrap><translate>Paid</translate></td>
+ <td align=right><input name="l_duedate" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Due Date</translate></td>
+ <td align=right><input name="l_due" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Amount Due</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_notes" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Notes</translate></td>
+ <td align=right><input name="l_salesman" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Salesperson</translate></td>
+ <td align=right><input name="l_shippingpoint" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Shipping Point</translate></td>
+ <td align=right><input name="l_shipvia" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Ship via</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_marge_total" class=checkbox type=checkbox value=Y></td>
+ <td nowrap> <translate>Ertrag</translate></td>
+ <td align=right><input name="l_marge_percent" class=checkbox type=checkbox value=Y></td>
+ <td nowrap> <translate>Ertrag prozentual</translate></td>
+ <td align=right><input name="l_employee" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Employee</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Subtotal</translate></td>
+ <td align=right><input name="l_globalprojectnumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Project Number</translate></td>
+ <td align=right><input name="l_transaction_description" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Transaction description</translate></td>
+ </tr>
+ <tr>
+ <td colspan=4 align=left><b><translate>Customer</translate> </td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_customernumber" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Customer Number</translate></td>
+ <td align=right><input name="l_country" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Country</translate></td>
+ <td align=right><input name="l_ustid" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>USt-IdNr.</translate></td>
+ <td align=right><input name="l_taxzone" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Steuersatz</translate></td>
+ </tr>
+ <tr>
+ <td align=right><input name="l_payment_terms" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Payment Terms</translate></td>
+ <td align=right><input name="l_charts" class=checkbox type=checkbox value=Y></td>
+ <td nowrap><translate>Buchungskonto</translate></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><hr size=3 noshade></td>
+ </tr>
+ </table>
+ <input type=hidden name=nextsub value=[% nextsub %]>
+ <br>
+ <input class=submit type=submit name=action value="<translate>Continue</translate>">
+ </form>
+ </body>
+ <script type="text/javascript">
+ <!--
+ Calendar.setup( { inputField : "transdatefrom", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BR", button : "trigger1" });
+ Calendar.setup( { inputField : "transdateto", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger2" });
+ $(document).ready(function(){
+ focus();
+ setupDateFormat('[% dateformat | html %]','<translate>Falsches Datumsformat!</translate>');
+ setupPoints('[% numberformat | html %]','<translate>wrongformat</translate>');
+ })
+ //-->
+ </script>
+</html>
--- /dev/null
+[% USE HTML %]
+<body>
+
+[%- IF params.error %]
+ <p><div class="error_message">[% params.error %]</div></p>
+[%- END %]
+
+ <p><div class="listtop">[% title %]</div></p>
+
+ <form method="post" action="bankaccounts.pl">
+
+ <p>
+ <table>
+ <tr>
+ <td align="right">Account number</td>
+ <td><input name="account.account_number" size="20" maxlength="100" value="[% HTML.escape(account.account_number) %]"></td>
+ </tr>
+
+ <tr>
+ <td align="right">Bank code</td>
+ <td><input name="account.bank_code" size="20" maxlength="100" value="[% HTML.escape(account.bank_code) %]"></td>
+ </tr>
+
+ <tr>
+ <td align="right">Bank</td>
+ <td><input name="account.bank" size="30" value="[% HTML.escape(account.bank) %]"></td>
+ </tr>
+
+ <tr>
+ <td align="right">IBAN</td>
+ <td><input name="account.iban" size="30" maxlength="100" value="[% HTML.escape(account.iban) %]"></td>
+ </tr>
+
+ <tr>
+ <td align="right">BIC</td>
+ <td><input name="account.bic" size="30" maxlength="100" value="[% HTML.escape(account.bic) %]"></td>
+ </tr>
+
+ <tr>
+ <td align="right">Chart</td>
+ <td>
+ [%- INCLUDE generic/multibox.html
+ name = 'account.chart_id',
+ DATA = CHARTS,
+ id_key = 'id',
+ label_sub = 'chart_label',
+ style = 'width: 300px',
+ -%]
+ </td>
+ </tr>
+
+ </table>
+ </p>
+
+ <p>
+ <input type="hidden" name="action" value="dispatcher">
+ <input type="hidden" name="account.id" value="[% HTML.escape(account.id) %]">
+ <input type="hidden" name="callback" value="[% HTML.escape(callback) %]">
+
+[%- IF account.id %]
+ <input type="submit" name="action_bank_account_save" value="Save">
+ <input type="submit" name="action_bank_account_delete" value="Delete">
+[%- ELSE %]
+ <input type="submit" name="action_bank_account_save" value="Add">
+[%- END %]
+ </p>
+ </form>
+
+</body>
+</html>
--- /dev/null
+[% USE HTML %]
+ <form action="bankaccounts.pl" method="post">
+ <p>
+ New bank account<br>
+ <input type="submit" value="Add">
+ </p>
+
+ <input type="hidden" name="action" value="bank_account_add">
+ <input type="hidden" name="callback" value="[% HTML.escape(callback) %]">
+ </form>
+
<input type="hidden" name="action" value="show_am_history">
- <table>
- <tr>
- <th class ="listtop">Historien Suchmaschine</th>
- </th>
- </tr>
- <tr>
- <td>
- <script type="text/javascript">
- <!--
+ <table>
+ <tr>
+ <th class ="listtop">Historien Suchmaschine</th>
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <script type="text/javascript">
+ <!--
function uncheckOther(id) {
- if(!(
- (document.getElementById('non-deleted').checked == false)
- &&
- (document.getElementById('both').checked == false)
- &&
- (document.getElementById('deleted').checked == false)
- )) {
- if(id == "deleted") {
- document.getElementById('non-deleted').checked = false;
- document.getElementById('both').checked = false;
- }
- if(id == "non-deleted") {
- document.getElementById('deleted').checked = false;
- document.getElementById('both').checked = false;
- }
- if(id == "both") {
- document.getElementById('non-deleted').checked = false;
- document.getElementById('deleted').checked = false;
- }
- }
- }
+ if(!(
+ (document.getElementById('non-deleted').checked == false)
+ &&
+ (document.getElementById('both').checked == false)
+ &&
+ (document.getElementById('deleted').checked == false)
+ )) {
+ if(id == "deleted") {
+ document.getElementById('non-deleted').checked = false;
+ document.getElementById('both').checked = false;
+ }
+ if(id == "non-deleted") {
+ document.getElementById('deleted').checked = false;
+ document.getElementById('both').checked = false;
+ }
+ if(id == "both") {
+ document.getElementById('non-deleted').checked = false;
+ document.getElementById('deleted').checked = false;
+ }
+ }
+ }
- var defaults = new Array('SAVED', 'DELETED', 'ADDED', 'PAYMENT POSTED', 'POSTED', 'POSTED AS NEW', 'SAVED FOR DUNNING', 'DUNNING STARTED', 'PRINTED');
- var translated = new Object();
- translated['SAVED'] = 'Gespeichert';
- translated['DELETED'] = 'Gelöscht';
- translated['ADDED'] = 'Hinzugefügt';
- translated['PAYMENT POSTED'] = 'Rechung gebucht';
- translated['POSTED'] = 'Gebucht';
- translated['POSTED AS NEW'] = 'Als neu gebucht'
- translated['SAVED FOR DUNNING'] = 'Gespeichert';
- translated['DUNNING STARTED'] = 'Mahnprozess gestartet';
- translated['PRINTED'] = 'Gedruckt';
+ var defaults = new Array('SAVED', 'DELETED', 'ADDED', 'PAYMENT POSTED', 'POSTED', 'POSTED AS NEW', 'SAVED FOR DUNNING', 'DUNNING STARTED', 'PRINTED');
+ var translated = new Object();
+ translated['SAVED'] = 'Gespeichert';
+ translated['DELETED'] = 'Gelöscht';
+ translated['ADDED'] = 'Hinzugefügt';
+ translated['PAYMENT POSTED'] = 'Rechung gebucht';
+ translated['POSTED'] = 'Gebucht';
+ translated['POSTED AS NEW'] = 'Als neu gebucht'
+ translated['SAVED FOR DUNNING'] = 'Gespeichert';
+ translated['DUNNING STARTED'] = 'Mahnprozess gestartet';
+ translated['PRINTED'] = 'Gedruckt';
- var jscalender = "<table valign=\"top\">"
- + "<tr><td colspan=\"2\"><b>Zeitraum: </b></td></tr>"
- + "<tr><td>von: "
- + "<input name=\"fromdate\" id=\"fromdate\" size=\"11\" title=\"[% HTML.escape(myconfig_dateformat) %]\" value=\"[% HTML.escape(fromdate) %]\">"
- + "<input type=\"button\" name=\"fromdate\" id=\"trigger1\" value=\"?\">"
- + " </td><td>bis: "
- + "<input name=\"todate\" id=\"todate\" size=\"11\" title=\"[% HTML.escape(myconfig_dateformat) %]\" value=\"[% HTML.escape(todate) %]\">"
- + "<input type=\"button\" name=\"todate\" id=\"trigger2\" value=\"?\"></td></tr></table>";
- var mitarbeiter = "<table valign=\"top\">"
- + "<tr><td><b>Mitarbeiter:</b> </td>"
- + "<td><input type='text' name='mitarbeiter' id='mitarbeiter'></td>"
- + "</tr></table>";
+ var jscalender = "<table valign=\"top\">"
+ + "<tr><td colspan=\"2\"><b>Zeitraum: </b></td></tr>"
+ + "<tr><td>von: "
+ + "<input name=\"fromdate\" id=\"fromdate\" size=\"11\" title=\"[% HTML.escape(myconfig_dateformat) %]\" value=\"[% HTML.escape(fromdate) %]\">"
+ + "<input type=\"button\" name=\"fromdate\" id=\"trigger1\" value=\"?\">"
+ + " </td><td>bis: "
+ + "<input name=\"todate\" id=\"todate\" size=\"11\" title=\"[% HTML.escape(myconfig_dateformat) %]\" value=\"[% HTML.escape(todate) %]\">"
+ + "<input type=\"button\" name=\"todate\" id=\"trigger2\" value=\"?\"></td></tr></table>";
+ var mitarbeiter = "<table valign=\"top\">"
+ + "<tr><td><b>Mitarbeiter:</b> </td>"
+ + "<td><input type='text' name='mitarbeiter' id='mitarbeiter'></td>"
+ + "</tr></table>";
- var tempString = "";
- function addForm(last, remove) {
- if(last == "INIT") {
- tempString = "<select id='selectForm'><option></option>";
- for(i=0;i<defaults.length;i++) {
- tempString += "\<option value\=\'" + defaults[i] + "\'\ onClick=\"javascript:addForm(\'" + defaults[i] + "\', " + i + ");\">" + translated[defaults[i]] + "\<\/option\>" + "\n";
- }
- tempString += "</select>";
- document.getElementById('selectEmployee').innerHTML = mitarbeiter;
- document.getElementById('selectDate').innerHTML = jscalender;
- document.getElementById('selectTable').innerHTML = tempString;
+ var tempString = "";
+ function addForm(last, remove) {
+ if(last == "INIT") {
+ tempString = "<select id='selectForm'><option></option>";
+ for(i=0;i<defaults.length;i++) {
+ tempString += "\<option value\=\'" + defaults[i] + "\'\ onClick=\"javascript:addForm(\'" + defaults[i] + "\', " + i + ");\">" + translated[defaults[i]] + "\<\/option\>" + "\n";
+ }
+ tempString += "</select>";
+ document.getElementById('selectEmployee').innerHTML = mitarbeiter;
+ document.getElementById('selectDate').innerHTML = jscalender;
+ document.getElementById('selectTable').innerHTML = tempString;
- Calendar.setup(
- {
- inputField : "fromdate",
- ifFormat :"%d.%m.%Y",
- align : "BL",
- button : "trigger1"
- });
+ Calendar.setup(
+ {
+ inputField : "fromdate",
+ ifFormat :"%d.%m.%Y",
+ align : "BL",
+ button : "trigger1"
+ });
- Calendar.setup(
- {
- inputField : "todate",
- ifFormat :"%d.%m.%Y",
- align : "BL",
- button : "trigger2"
- });
- }
- else {
- defaults.splice(remove,1);
- document.getElementById('inputText').innerHTML += ((document.getElementById('inputText').innerHTML == "") ? ("<b>Sie haben bereits die folgenden Einschränkungen vorgenommen:</b><br>") : ("<br>")) + translated[last];
- if(defaults.length > 0) {
- document.getElementById('einschraenkungen').value += ((document.getElementById('einschraenkungen').value == "") ? ("") : (",")) + last;
- tempString = "<select id='selectForm'><option></option>";
- for(i=0;i<defaults.length;i++) {
- tempString += "\<option value\=\'" + defaults[i] + "\'\ onClick=\"javascript:addForm(\'" + defaults[i] + "\', " + i + ");\">" + translated[defaults[i]] + "\<\/option\>" + "\n";
- }
- tempString += "</select>";
- document.getElementById('selectTable').innerHTML = tempString;
- }
- else {
- document.getElementById('selectTable').innerHTML = "";
- }
- }
- }
+ Calendar.setup(
+ {
+ inputField : "todate",
+ ifFormat :"%d.%m.%Y",
+ align : "BL",
+ button : "trigger2"
+ });
+ }
+ else {
+ defaults.splice(remove,1);
+ document.getElementById('inputText').innerHTML += ((document.getElementById('inputText').innerHTML == "") ? ("<b>Sie haben bereits die folgenden Einschränkungen vorgenommen:</b><br>") : ("<br>")) + translated[last];
+ if(defaults.length > 0) {
+ document.getElementById('einschraenkungen').value += ((document.getElementById('einschraenkungen').value == "") ? ("") : (",")) + last;
+ tempString = "<select id='selectForm'><option></option>";
+ for(i=0;i<defaults.length;i++) {
+ tempString += "\<option value\=\'" + defaults[i] + "\'\ onClick=\"javascript:addForm(\'" + defaults[i] + "\', " + i + ");\">" + translated[defaults[i]] + "\<\/option\>" + "\n";
+ }
+ tempString += "</select>";
+ document.getElementById('selectTable').innerHTML = tempString;
+ }
+ else {
+ document.getElementById('selectTable').innerHTML = "";
+ }
+ }
+ }
- function resetAll() {
- document.getElementById('selectTable').innerHTML = "<a href=\"javascript:addForm('INIT')\">Ja";
- document.getElementById('inputText').innerHTML = "";
- }
- //-->
- </script>
- <table>
- <tr>
- <td>
- <b>Wonach</b> wollen Sie suchen?:
- </td>
- <td>
- <select name="what2search" id="what2search">
- <option name="Artikelnummer" value="Artikelnummer" id="Artikelnummer">Artikelnummer</option>
- <option name="Kundennummer" value="Kundennummer" id="Kundennummer">Kundennummer</option>
- <option name="Lieferantennummer" value="Lieferantennummer" id="Lieferantennummer">Lieferantennummer</option>
- <option name="Projektnummer" value="Projektnummer" id="Projektnummer">Projektnummer</option>
- <option name="Buchungsnummer" value="Buchungsnummer" id="Buchungsnummer">Buchungsnummer</option>
- <option name="Eingangsrechnungnummer" value="Eingangsrechnungnummer" id="Eingangsrechnungnummer">Eingangsrechnungsnummer</option>
- <option name="Ausgangsrechnungnummer" value="Ausgangsrechnungnummer" id="Ausgangsrechnungnummer">Ausgangsrechnungsnummer</option>
+ function resetAll() {
+ document.getElementById('selectTable').innerHTML = "<a href=\"javascript:addForm('INIT')\">Ja";
+ document.getElementById('inputText').innerHTML = "";
+ }
+ //-->
+ </script>
+ <table>
+ <tr>
+ <td>
+ <b>Wonach</b> wollen Sie suchen?:
+ </td>
+ <td>
+ <select name="what2search" id="what2search">
+ <option name="Artikelnummer" value="Artikelnummer" id="Artikelnummer">Artikelnummer</option>
+ <option name="Kundennummer" value="Kundennummer" id="Kundennummer">Kundennummer</option>
+ <option name="Lieferantennummer" value="Lieferantennummer" id="Lieferantennummer">Lieferantennummer</option>
+ <option name="Projektnummer" value="Projektnummer" id="Projektnummer">Projektnummer</option>
+ <option name="Buchungsnummer" value="Buchungsnummer" id="Buchungsnummer">Buchungsnummer</option>
+ <option name="Eingangsrechnungnummer" value="Eingangsrechnungnummer" id="Eingangsrechnungnummer">Eingangsrechnungsnummer</option>
+ <option name="Ausgangsrechnungnummer" value="Ausgangsrechnungnummer" id="Ausgangsrechnungnummer">Ausgangsrechnungsnummer</option>
<option name="Mahnungsnummer" value="Mahnungsnummer" id="Mahnungsnummer">Mahnungsnummer</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>
- Nach welchem <b>Begriff</b> wollen Sie suchen?
- </td>
- <td>
- <input type="text" name="searchid" id="searchid" value="[% HTML.escape(searchid) %]">
- </td>
- </tr>
- <tr>
- <td valign="top">
- Wollen Sie Ihre Suche <b>spezialisieren</b>?
- </td>
- <td>
- <table valign=\"top\" cellpadding=\"0\" marginheight=\"0\" marginwidth=\"0\" cellspacing=\"0\" topmargin=\"0\" leftmargin=\"0\">
- <tr>
- <td>
- <div id="selectTable"><a href="javascript:addForm('INIT')">Ja</div>
- <div id="inputText"></div>
- </td>
- </tr>
- <tr>
- <td>
- <div id="selectEmployee"></div>
- </td>
- </tr>
- <tr>
- <td>
- <div id="selectDate"></div>
- </td>
- </tr>
- </table>
- <input type="hidden" name="einschraenkungen" id="einschraenkungen" value="">
- </td>
- </tr>
- </tr>
- <tr>
- <td colspan="6">
- <input type="submit" class="submit" value="abschicken">
- <input type="reset" class="submit" value="zurücksetzen" onClick="javascript:resetAll();">
- </td>
- <td>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ Nach welchem <b>Begriff</b> wollen Sie suchen?
+ </td>
+ <td>
+ <input type="text" name="searchid" id="searchid" value="[% HTML.escape(searchid) %]">
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">
+ Wollen Sie Ihre Suche <b>spezialisieren</b>?
+ </td>
+ <td>
+ <table valign=\"top\" cellpadding=\"0\" marginheight=\"0\" marginwidth=\"0\" cellspacing=\"0\" topmargin=\"0\" leftmargin=\"0\">
+ <tr>
+ <td>
+ <div id="selectTable"><a href="javascript:addForm('INIT')">Ja</a></div>
+ <div id="inputText"></div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div id="selectEmployee"></div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div id="selectDate"></div>
+ </td>
+ </tr>
+ </table>
+ <input type="hidden" name="einschraenkungen" id="einschraenkungen" value="">
+ </td>
+ </tr>
+ </tr>
+ <tr>
+ <td colspan="6">
+ <input type="submit" class="submit" value="abschicken">
+ <input type="reset" class="submit" value="zurücksetzen" onClick="javascript:resetAll();">
+ </td>
+ <td>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
</form>
<input type="hidden" name="action" value="show_am_history">
- <table>
- <tr>
- <th class ="listtop">history search engine</th>
- </th>
- </tr>
- <tr>
- <td>
- <script type="text/javascript">
- <!--
+ <table>
+ <tr>
+ <th class ="listtop">history search engine</th>
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <script type="text/javascript">
+ <!--
function uncheckOther(id) {
- if(!(
- (document.getElementById('non-deleted').checked == false)
- &&
- (document.getElementById('both').checked == false)
- &&
- (document.getElementById('deleted').checked == false)
- )) {
- if(id == "deleted") {
- document.getElementById('non-deleted').checked = false;
- document.getElementById('both').checked = false;
- }
- if(id == "non-deleted") {
- document.getElementById('deleted').checked = false;
- document.getElementById('both').checked = false;
- }
- if(id == "both") {
- document.getElementById('non-deleted').checked = false;
- document.getElementById('deleted').checked = false;
- }
- }
- }
+ if(!(
+ (document.getElementById('non-deleted').checked == false)
+ &&
+ (document.getElementById('both').checked == false)
+ &&
+ (document.getElementById('deleted').checked == false)
+ )) {
+ if(id == "deleted") {
+ document.getElementById('non-deleted').checked = false;
+ document.getElementById('both').checked = false;
+ }
+ if(id == "non-deleted") {
+ document.getElementById('deleted').checked = false;
+ document.getElementById('both').checked = false;
+ }
+ if(id == "both") {
+ document.getElementById('non-deleted').checked = false;
+ document.getElementById('deleted').checked = false;
+ }
+ }
+ }
- var defaults = new Array('SAVED', 'DELETED', 'ADDED', 'PAYMENT POSTED', 'POSTED', 'POSTED AS NEW', 'SAVED FOR DUNNING', 'DUNNING STARTED', 'PRINTED');
- var translated = new Object();
- translated['SAVED'] = 'SAVED';
- translated['DELETED'] = 'DELETED';
- translated['ADDED'] = 'ADDED';
- translated['PAYMENT POSTED'] = 'PAYMENT POSTED';
- translated['POSTED'] = 'POSTED';
- translated['POSTED AS NEW'] = 'POSTED AS NEW'
- translated['SAVED FOR DUNNING'] = 'SAVED FOR DUNNING';
- translated['DUNNING STARTED'] = 'DUNNING STARTED';
- translated['PRINTED'] = 'PRINTED';
+ var defaults = new Array('SAVED', 'DELETED', 'ADDED', 'PAYMENT POSTED', 'POSTED', 'POSTED AS NEW', 'SAVED FOR DUNNING', 'DUNNING STARTED', 'PRINTED');
+ var translated = new Object();
+ translated['SAVED'] = 'SAVED';
+ translated['DELETED'] = 'DELETED';
+ translated['ADDED'] = 'ADDED';
+ translated['PAYMENT POSTED'] = 'PAYMENT POSTED';
+ translated['POSTED'] = 'POSTED';
+ translated['POSTED AS NEW'] = 'POSTED AS NEW'
+ translated['SAVED FOR DUNNING'] = 'SAVED FOR DUNNING';
+ translated['DUNNING STARTED'] = 'DUNNING STARTED';
+ translated['PRINTED'] = 'PRINTED';
- var jscalender = "<table valign=\"top\">"
- + "<tr><td colspan=\"2\"><b>Period: </b></td></tr>"
- + "<tr><td>from (time): "
- + "<input name=\"fromdate\" id=\"fromdate\" size=\"11\" title=\"[% HTML.escape(myconfig_dateformat) %]\" value=\"[% HTML.escape(fromdate) %]\">"
- + "<input type=\"button\" name=\"fromdate\" id=\"trigger1\" value=\"?\">"
- + " </td><td>to (time): "
- + "<input name=\"todate\" id=\"todate\" size=\"11\" title=\"[% HTML.escape(myconfig_dateformat) %]\" value=\"[% HTML.escape(todate) %]\">"
- + "<input type=\"button\" name=\"todate\" id=\"trigger2\" value=\"?\"></td></tr></table>";
- var mitarbeiter = "<table valign=\"top\">"
- + "<tr><td><b>Mitarbeiter:</b> </td>"
- + "<td><input type='text' name='mitarbeiter' id='mitarbeiter'></td>"
- + "</tr></table>";
+ var jscalender = "<table valign=\"top\">"
+ + "<tr><td colspan=\"2\"><b>Period: </b></td></tr>"
+ + "<tr><td>from (time): "
+ + "<input name=\"fromdate\" id=\"fromdate\" size=\"11\" title=\"[% HTML.escape(myconfig_dateformat) %]\" value=\"[% HTML.escape(fromdate) %]\">"
+ + "<input type=\"button\" name=\"fromdate\" id=\"trigger1\" value=\"?\">"
+ + " </td><td>to (time): "
+ + "<input name=\"todate\" id=\"todate\" size=\"11\" title=\"[% HTML.escape(myconfig_dateformat) %]\" value=\"[% HTML.escape(todate) %]\">"
+ + "<input type=\"button\" name=\"todate\" id=\"trigger2\" value=\"?\"></td></tr></table>";
+ var mitarbeiter = "<table valign=\"top\">"
+ + "<tr><td><b>Mitarbeiter:</b> </td>"
+ + "<td><input type='text' name='mitarbeiter' id='mitarbeiter'></td>"
+ + "</tr></table>";
- var tempString = "";
- function addForm(last, remove) {
- if(last == "INIT") {
- tempString = "<select id='selectForm'><option></option>";
- for(i=0;i<defaults.length;i++) {
- tempString += "\<option value\=\'" + defaults[i] + "\'\ onClick=\"javascript:addForm(\'" + defaults[i] + "\', " + i + ");\">" + translated[defaults[i]] + "\<\/option\>" + "\n";
- }
- tempString += "</select>";
- document.getElementById('selectEmployee').innerHTML = mitarbeiter;
- document.getElementById('selectDate').innerHTML = jscalender;
- document.getElementById('selectTable').innerHTML = tempString;
+ var tempString = "";
+ function addForm(last, remove) {
+ if(last == "INIT") {
+ tempString = "<select id='selectForm'><option></option>";
+ for(i=0;i<defaults.length;i++) {
+ tempString += "\<option value\=\'" + defaults[i] + "\'\ onClick=\"javascript:addForm(\'" + defaults[i] + "\', " + i + ");\">" + translated[defaults[i]] + "\<\/option\>" + "\n";
+ }
+ tempString += "</select>";
+ document.getElementById('selectEmployee').innerHTML = mitarbeiter;
+ document.getElementById('selectDate').innerHTML = jscalender;
+ document.getElementById('selectTable').innerHTML = tempString;
- Calendar.setup(
- {
- inputField : "fromdate",
- ifFormat :"%d.%m.%Y",
- align : "BL",
- button : "trigger1"
- });
+ Calendar.setup(
+ {
+ inputField : "fromdate",
+ ifFormat :"%d.%m.%Y",
+ align : "BL",
+ button : "trigger1"
+ });
- Calendar.setup(
- {
- inputField : "todate",
- ifFormat :"%d.%m.%Y",
- align : "BL",
- button : "trigger2"
- });
- }
- else {
- defaults.splice(remove,1);
- document.getElementById('inputText').innerHTML += ((document.getElementById('inputText').innerHTML == "") ? ("<b>You've already chosen the following limitations:</b><br>") : ("<br>")) + translated[last];
- if(defaults.length > 0) {
- document.getElementById('einschraenkungen').value += ((document.getElementById('einschraenkungen').value == "") ? ("") : (",")) + last;
- tempString = "<select id='selectForm'><option></option>";
- for(i=0;i<defaults.length;i++) {
- tempString += "\<option value\=\'" + defaults[i] + "\'\ onClick=\"javascript:addForm(\'" + defaults[i] + "\', " + i + ");\">" + translated[defaults[i]] + "\<\/option\>" + "\n";
- }
- tempString += "</select>";
- document.getElementById('selectTable').innerHTML = tempString;
- }
- else {
- document.getElementById('selectTable').innerHTML = "";
- }
- }
- }
+ Calendar.setup(
+ {
+ inputField : "todate",
+ ifFormat :"%d.%m.%Y",
+ align : "BL",
+ button : "trigger2"
+ });
+ }
+ else {
+ defaults.splice(remove,1);
+ document.getElementById('inputText').innerHTML += ((document.getElementById('inputText').innerHTML == "") ? ("<b>You've already chosen the following limitations:</b><br>") : ("<br>")) + translated[last];
+ if(defaults.length > 0) {
+ document.getElementById('einschraenkungen').value += ((document.getElementById('einschraenkungen').value == "") ? ("") : (",")) + last;
+ tempString = "<select id='selectForm'><option></option>";
+ for(i=0;i<defaults.length;i++) {
+ tempString += "\<option value\=\'" + defaults[i] + "\'\ onClick=\"javascript:addForm(\'" + defaults[i] + "\', " + i + ");\">" + translated[defaults[i]] + "\<\/option\>" + "\n";
+ }
+ tempString += "</select>";
+ document.getElementById('selectTable').innerHTML = tempString;
+ }
+ else {
+ document.getElementById('selectTable').innerHTML = "";
+ }
+ }
+ }
- function resetAll() {
- document.getElementById('selectTable').innerHTML = "<a href=\"javascript:addForm('INIT')\">Yes";
- document.getElementById('inputText').innerHTML = "";
- }
- //-->
- </script>
- <table>
- <tr>
- <td>
- <b>What</b> do you want to look for?:
- </td>
- <td>
- <select name="what2search" id="what2search">
- <option name="Artikelnummer" value="Artikelnummer" id="Artikelnummer">Part Number</option>
- <option name="Kundennummer" value="Kundennummer" id="Kundennummer">Customer Number</option>
- <option name="Lieferantennummer" value="Lieferantennummer" id="Lieferantennummer">Vendor Number</option>
- <option name="Projektnummer" value="Projektnummer" id="Projektnummer">Project Number</option>
- <option name="Buchungsnummer" value="Buchungsnummer" id="Buchungsnummer">ID</option>
- <option name="Eingangsrechnungnummer" value="Eingangsrechnungnummer" id="Eingangsrechnungnummer">Incoming invoice number</option>
- <option name="Ausgangsrechnungnummer" value="Ausgangsrechnungnummer" id="Ausgangsrechnungnummer">Sales invoice number</option>
+ function resetAll() {
+ document.getElementById('selectTable').innerHTML = "<a href=\"javascript:addForm('INIT')\">Yes";
+ document.getElementById('inputText').innerHTML = "";
+ }
+ //-->
+ </script>
+ <table>
+ <tr>
+ <td>
+ <b>What</b> do you want to look for?:
+ </td>
+ <td>
+ <select name="what2search" id="what2search">
+ <option name="Artikelnummer" value="Artikelnummer" id="Artikelnummer">Part Number</option>
+ <option name="Kundennummer" value="Kundennummer" id="Kundennummer">Customer Number</option>
+ <option name="Lieferantennummer" value="Lieferantennummer" id="Lieferantennummer">Vendor Number</option>
+ <option name="Projektnummer" value="Projektnummer" id="Projektnummer">Project Number</option>
+ <option name="Buchungsnummer" value="Buchungsnummer" id="Buchungsnummer">ID</option>
+ <option name="Eingangsrechnungnummer" value="Eingangsrechnungnummer" id="Eingangsrechnungnummer">Incoming invoice number</option>
+ <option name="Ausgangsrechnungnummer" value="Ausgangsrechnungnummer" id="Ausgangsrechnungnummer">Sales invoice number</option>
<option name="Mahnungsnummer" value="Mahnungsnummer" id="Mahnungsnummer">Dunning number</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>
- What's the <b>term</b> you're looking for?
- </td>
- <td>
- <input type="text" name="searchid" id="searchid" value="[% HTML.escape(searchid) %]">
- </td>
- </tr>
- <tr>
- <td valign="top">
- Do you want to <b>limit</b> your search?
- </td>
- <td>
- <table valign=\"top\" cellpadding=\"0\" marginheight=\"0\" marginwidth=\"0\" cellspacing=\"0\" topmargin=\"0\" leftmargin=\"0\">
- <tr>
- <td>
- <div id="selectTable"><a href="javascript:addForm('INIT')">Yes</div>
- <div id="inputText"></div>
- </td>
- </tr>
- <tr>
- <td>
- <div id="selectEmployee"></div>
- </td>
- </tr>
- <tr>
- <td>
- <div id="selectDate"></div>
- </td>
- </tr>
- </table>
- <input type="hidden" name="einschraenkungen" id="einschraenkungen" value="">
- </td>
- </tr>
- </tr>
- <tr>
- <td colspan="6">
- <input type="submit" class="submit" value="submit">
- <input type="reset" class="submit" value="reset" onClick="javascript:resetAll();">
- </td>
- <td>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ What's the <b>term</b> you're looking for?
+ </td>
+ <td>
+ <input type="text" name="searchid" id="searchid" value="[% HTML.escape(searchid) %]">
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">
+ Do you want to <b>limit</b> your search?
+ </td>
+ <td>
+ <table valign=\"top\" cellpadding=\"0\" marginheight=\"0\" marginwidth=\"0\" cellspacing=\"0\" topmargin=\"0\" leftmargin=\"0\">
+ <tr>
+ <td>
+ <div id="selectTable"><a href="javascript:addForm('INIT')">Yes</a></div>
+ <div id="inputText"></div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div id="selectEmployee"></div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div id="selectDate"></div>
+ </td>
+ </tr>
+ </table>
+ <input type="hidden" name="einschraenkungen" id="einschraenkungen" value="">
+ </td>
+ </tr>
+ </tr>
+ <tr>
+ <td colspan="6">
+ <input type="submit" class="submit" value="submit">
+ <input type="reset" class="submit" value="reset" onClick="javascript:resetAll();">
+ </td>
+ <td>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
</form>
<input type="hidden" name="action" value="show_am_history">
- <table>
- <tr>
- <th class ="listtop"><translate>history search engine</translate></th>
- </th>
- </tr>
- <tr>
- <td>
- <script type="text/javascript">
- <!--
+ <table>
+ <tr>
+ <th class ="listtop"><translate>history search engine</translate></th>
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <script type="text/javascript">
+ <!--
function uncheckOther(id) {
- if(!(
- (document.getElementById('non-deleted').checked == false)
- &&
- (document.getElementById('both').checked == false)
- &&
- (document.getElementById('deleted').checked == false)
- )) {
- if(id == "deleted") {
- document.getElementById('non-deleted').checked = false;
- document.getElementById('both').checked = false;
- }
- if(id == "non-deleted") {
- document.getElementById('deleted').checked = false;
- document.getElementById('both').checked = false;
- }
- if(id == "both") {
- document.getElementById('non-deleted').checked = false;
- document.getElementById('deleted').checked = false;
- }
- }
- }
+ if(!(
+ (document.getElementById('non-deleted').checked == false)
+ &&
+ (document.getElementById('both').checked == false)
+ &&
+ (document.getElementById('deleted').checked == false)
+ )) {
+ if(id == "deleted") {
+ document.getElementById('non-deleted').checked = false;
+ document.getElementById('both').checked = false;
+ }
+ if(id == "non-deleted") {
+ document.getElementById('deleted').checked = false;
+ document.getElementById('both').checked = false;
+ }
+ if(id == "both") {
+ document.getElementById('non-deleted').checked = false;
+ document.getElementById('deleted').checked = false;
+ }
+ }
+ }
- var defaults = new Array('SAVED', 'DELETED', 'ADDED', 'PAYMENT POSTED', 'POSTED', 'POSTED AS NEW', 'SAVED FOR DUNNING', 'DUNNING STARTED', 'PRINTED');
- var translated = new Object();
- translated['SAVED'] = '<translate>SAVED</translate>';
- translated['DELETED'] = '<translate>DELETED</translate>';
- translated['ADDED'] = '<translate>ADDED</translate>';
- translated['PAYMENT POSTED'] = '<translate>PAYMENT POSTED</translate>';
- translated['POSTED'] = '<translate>POSTED</translate>';
- translated['POSTED AS NEW'] = '<translate>POSTED AS NEW</translate>'
- translated['SAVED FOR DUNNING'] = '<translate>SAVED FOR DUNNING</translate>';
- translated['DUNNING STARTED'] = '<translate>DUNNING STARTED</translate>';
- translated['PRINTED'] = '<translate>PRINTED</translate>';
+ var defaults = new Array('SAVED', 'DELETED', 'ADDED', 'PAYMENT POSTED', 'POSTED', 'POSTED AS NEW', 'SAVED FOR DUNNING', 'DUNNING STARTED', 'PRINTED');
+ var translated = new Object();
+ translated['SAVED'] = '<translate>SAVED</translate>';
+ translated['DELETED'] = '<translate>DELETED</translate>';
+ translated['ADDED'] = '<translate>ADDED</translate>';
+ translated['PAYMENT POSTED'] = '<translate>PAYMENT POSTED</translate>';
+ translated['POSTED'] = '<translate>POSTED</translate>';
+ translated['POSTED AS NEW'] = '<translate>POSTED AS NEW</translate>'
+ translated['SAVED FOR DUNNING'] = '<translate>SAVED FOR DUNNING</translate>';
+ translated['DUNNING STARTED'] = '<translate>DUNNING STARTED</translate>';
+ translated['PRINTED'] = '<translate>PRINTED</translate>';
- var jscalender = "<table valign=\"top\">"
- + "<tr><td colspan=\"2\"><b><translate>Period</translate>: </b></td></tr>"
- + "<tr><td><translate>from (time)</translate>: "
- + "<input name=\"fromdate\" id=\"fromdate\" size=\"11\" title=\"[% HTML.escape(myconfig_dateformat) %]\" value=\"[% HTML.escape(fromdate) %]\">"
- + "<input type=\"button\" name=\"fromdate\" id=\"trigger1\" value=\"?\">"
- + " </td><td><translate>to (time)</translate>: "
- + "<input name=\"todate\" id=\"todate\" size=\"11\" title=\"[% HTML.escape(myconfig_dateformat) %]\" value=\"[% HTML.escape(todate) %]\">"
- + "<input type=\"button\" name=\"todate\" id=\"trigger2\" value=\"?\"></td></tr></table>";
- var mitarbeiter = "<table valign=\"top\">"
- + "<tr><td><b>Mitarbeiter:</b> </td>"
- + "<td><input type='text' name='mitarbeiter' id='mitarbeiter'></td>"
- + "</tr></table>";
+ var jscalender = "<table valign=\"top\">"
+ + "<tr><td colspan=\"2\"><b><translate>Period</translate>: </b></td></tr>"
+ + "<tr><td><translate>from (time)</translate>: "
+ + "<input name=\"fromdate\" id=\"fromdate\" size=\"11\" title=\"[% HTML.escape(myconfig_dateformat) %]\" value=\"[% HTML.escape(fromdate) %]\">"
+ + "<input type=\"button\" name=\"fromdate\" id=\"trigger1\" value=\"?\">"
+ + " </td><td><translate>to (time)</translate>: "
+ + "<input name=\"todate\" id=\"todate\" size=\"11\" title=\"[% HTML.escape(myconfig_dateformat) %]\" value=\"[% HTML.escape(todate) %]\">"
+ + "<input type=\"button\" name=\"todate\" id=\"trigger2\" value=\"?\"></td></tr></table>";
+ var mitarbeiter = "<table valign=\"top\">"
+ + "<tr><td><b>Mitarbeiter:</b> </td>"
+ + "<td><input type='text' name='mitarbeiter' id='mitarbeiter'></td>"
+ + "</tr></table>";
- var tempString = "";
- function addForm(last, remove) {
- if(last == "INIT") {
- tempString = "<select id='selectForm'><option></option>";
- for(i=0;i<defaults.length;i++) {
- tempString += "\<option value\=\'" + defaults[i] + "\'\ onClick=\"javascript:addForm(\'" + defaults[i] + "\', " + i + ");\">" + translated[defaults[i]] + "\<\/option\>" + "\n";
- }
- tempString += "</select>";
- document.getElementById('selectEmployee').innerHTML = mitarbeiter;
- document.getElementById('selectDate').innerHTML = jscalender;
- document.getElementById('selectTable').innerHTML = tempString;
+ var tempString = "";
+ function addForm(last, remove) {
+ if(last == "INIT") {
+ tempString = "<select id='selectForm'><option></option>";
+ for(i=0;i<defaults.length;i++) {
+ tempString += "\<option value\=\'" + defaults[i] + "\'\ onClick=\"javascript:addForm(\'" + defaults[i] + "\', " + i + ");\">" + translated[defaults[i]] + "\<\/option\>" + "\n";
+ }
+ tempString += "</select>";
+ document.getElementById('selectEmployee').innerHTML = mitarbeiter;
+ document.getElementById('selectDate').innerHTML = jscalender;
+ document.getElementById('selectTable').innerHTML = tempString;
- Calendar.setup(
- {
- inputField : "fromdate",
- ifFormat :"%d.%m.%Y",
- align : "BL",
- button : "trigger1"
- });
+ Calendar.setup(
+ {
+ inputField : "fromdate",
+ ifFormat :"%d.%m.%Y",
+ align : "BL",
+ button : "trigger1"
+ });
- Calendar.setup(
- {
- inputField : "todate",
- ifFormat :"%d.%m.%Y",
- align : "BL",
- button : "trigger2"
- });
- }
- else {
- defaults.splice(remove,1);
- document.getElementById('inputText').innerHTML += ((document.getElementById('inputText').innerHTML == "") ? ("<b><translate>You've already chosen the following limitations:</translate></b><br>") : ("<br>")) + translated[last];
- if(defaults.length > 0) {
- document.getElementById('einschraenkungen').value += ((document.getElementById('einschraenkungen').value == "") ? ("") : (",")) + last;
- tempString = "<select id='selectForm'><option></option>";
- for(i=0;i<defaults.length;i++) {
- tempString += "\<option value\=\'" + defaults[i] + "\'\ onClick=\"javascript:addForm(\'" + defaults[i] + "\', " + i + ");\">" + translated[defaults[i]] + "\<\/option\>" + "\n";
- }
- tempString += "</select>";
- document.getElementById('selectTable').innerHTML = tempString;
- }
- else {
- document.getElementById('selectTable').innerHTML = "";
- }
- }
- }
+ Calendar.setup(
+ {
+ inputField : "todate",
+ ifFormat :"%d.%m.%Y",
+ align : "BL",
+ button : "trigger2"
+ });
+ }
+ else {
+ defaults.splice(remove,1);
+ document.getElementById('inputText').innerHTML += ((document.getElementById('inputText').innerHTML == "") ? ("<b><translate>You've already chosen the following limitations:</translate></b><br>") : ("<br>")) + translated[last];
+ if(defaults.length > 0) {
+ document.getElementById('einschraenkungen').value += ((document.getElementById('einschraenkungen').value == "") ? ("") : (",")) + last;
+ tempString = "<select id='selectForm'><option></option>";
+ for(i=0;i<defaults.length;i++) {
+ tempString += "\<option value\=\'" + defaults[i] + "\'\ onClick=\"javascript:addForm(\'" + defaults[i] + "\', " + i + ");\">" + translated[defaults[i]] + "\<\/option\>" + "\n";
+ }
+ tempString += "</select>";
+ document.getElementById('selectTable').innerHTML = tempString;
+ }
+ else {
+ document.getElementById('selectTable').innerHTML = "";
+ }
+ }
+ }
- function resetAll() {
- document.getElementById('selectTable').innerHTML = "<a href=\"javascript:addForm('INIT')\"><translate>Yes</translate>";
- document.getElementById('inputText').innerHTML = "";
- }
- //-->
- </script>
- <table>
- <tr>
- <td>
- <translate><b>What</b> do you want to look for?</translate>:
- </td>
- <td>
- <select name="what2search" id="what2search">
- <option name="Artikelnummer" value="Artikelnummer" id="Artikelnummer"><translate>Part Number</translate></option>
- <option name="Kundennummer" value="Kundennummer" id="Kundennummer"><translate>Customer Number</translate></option>
- <option name="Lieferantennummer" value="Lieferantennummer" id="Lieferantennummer"><translate>Vendor Number</translate></option>
- <option name="Projektnummer" value="Projektnummer" id="Projektnummer"><translate>Project Number</translate></option>
- <option name="Buchungsnummer" value="Buchungsnummer" id="Buchungsnummer"><translate>ID</translate></option>
- <option name="Eingangsrechnungnummer" value="Eingangsrechnungnummer" id="Eingangsrechnungnummer"><translate>Incoming invoice number</translate></option>
- <option name="Ausgangsrechnungnummer" value="Ausgangsrechnungnummer" id="Ausgangsrechnungnummer"><translate>Sales invoice number</translate></option>
+ function resetAll() {
+ document.getElementById('selectTable').innerHTML = "<a href=\"javascript:addForm('INIT')\"><translate>Yes</translate>";
+ document.getElementById('inputText').innerHTML = "";
+ }
+ //-->
+ </script>
+ <table>
+ <tr>
+ <td>
+ <translate><b>What</b> do you want to look for?</translate>:
+ </td>
+ <td>
+ <select name="what2search" id="what2search">
+ <option name="Artikelnummer" value="Artikelnummer" id="Artikelnummer"><translate>Part Number</translate></option>
+ <option name="Kundennummer" value="Kundennummer" id="Kundennummer"><translate>Customer Number</translate></option>
+ <option name="Lieferantennummer" value="Lieferantennummer" id="Lieferantennummer"><translate>Vendor Number</translate></option>
+ <option name="Projektnummer" value="Projektnummer" id="Projektnummer"><translate>Project Number</translate></option>
+ <option name="Buchungsnummer" value="Buchungsnummer" id="Buchungsnummer"><translate>ID</translate></option>
+ <option name="Eingangsrechnungnummer" value="Eingangsrechnungnummer" id="Eingangsrechnungnummer"><translate>Incoming invoice number</translate></option>
+ <option name="Ausgangsrechnungnummer" value="Ausgangsrechnungnummer" id="Ausgangsrechnungnummer"><translate>Sales invoice number</translate></option>
<option name="Mahnungsnummer" value="Mahnungsnummer" id="Mahnungsnummer"><translate>Dunning number</translate></option>
- </select>
- </td>
- </tr>
- <tr>
- <td>
- <translate>What's the <b>term</b> you're looking for?</translate>
- </td>
- <td>
- <input type="text" name="searchid" id="searchid" value="[% HTML.escape(searchid) %]">
- </td>
- </tr>
- <tr>
- <td valign="top">
- <translate>Do you want to <b>limit</b> your search?</translate>
- </td>
- <td>
- <table valign=\"top\" cellpadding=\"0\" marginheight=\"0\" marginwidth=\"0\" cellspacing=\"0\" topmargin=\"0\" leftmargin=\"0\">
- <tr>
- <td>
- <div id="selectTable"><a href="javascript:addForm('INIT')"><translate>Yes</translate></div>
- <div id="inputText"></div>
- </td>
- </tr>
- <tr>
- <td>
- <div id="selectEmployee"></div>
- </td>
- </tr>
- <tr>
- <td>
- <div id="selectDate"></div>
- </td>
- </tr>
- </table>
- <input type="hidden" name="einschraenkungen" id="einschraenkungen" value="">
- </td>
- </tr>
- </tr>
- <tr>
- <td colspan="6">
- <input type="submit" class="submit" value="<translate>submit</translate>">
- <input type="reset" class="submit" value="<translate>reset</translate>" onClick="javascript:resetAll();">
- </td>
- <td>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <translate>What's the <b>term</b> you're looking for?</translate>
+ </td>
+ <td>
+ <input type="text" name="searchid" id="searchid" value="[% HTML.escape(searchid) %]">
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">
+ <translate>Do you want to <b>limit</b> your search?</translate>
+ </td>
+ <td>
+ <table valign=\"top\" cellpadding=\"0\" marginheight=\"0\" marginwidth=\"0\" cellspacing=\"0\" topmargin=\"0\" leftmargin=\"0\">
+ <tr>
+ <td>
+ <div id="selectTable"><a href="javascript:addForm('INIT')"><translate>Yes</translate></a></div>
+ <div id="inputText"></div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div id="selectEmployee"></div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <div id="selectDate"></div>
+ </td>
+ </tr>
+ </table>
+ <input type="hidden" name="einschraenkungen" id="einschraenkungen" value="">
+ </td>
+ </tr>
+ </tr>
+ <tr>
+ <td colspan="6">
+ <input type="submit" class="submit" value="<translate>submit</translate>">
+ <input type="reset" class="submit" value="<translate>reset</translate>" onClick="javascript:resetAll();">
+ </td>
+ <td>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
</form>
[% END %]
<table>
- <tr>
- <th class="listtop">
+ <tr>
+ <th class="listtop">
<table height="0" width="0" cellpadding="0" cellspacing="0" marginheight="0" marginwidth="0" border="0">
<tr>
<td align="center" valign="middle">
- Zeitpunkt
+ Zeitpunkt
</td>
<td valign="top">
[% PROCESS column_header THIS_COLUMN=ITIME THIS_COLUMN_DOWN=ITIMEBY column='h.itime' %]
</td>
</tr>
</table>
- </th>
- <th class=listtop>
+ </th>
+ <th class=listtop>
<table height="0" width="0" cellpadding="0" cellspacing="0" marginheight="0" marginwidth="0" border="0">
<tr>
<td align="center" valign="middle">
</td>
</tr>
</table>
- </th>
- <th class=listtop>
+ </th>
+ <th class=listtop>
<table>
<tr>
<td>
- Aktion
+ Aktion
</td>
</tr>
</table>
- </th>
- <th class=listtop>
+ </th>
+ <th class=listtop>
<table>
<tr>
<td>
</tr>
</table>
</th>
- </tr>
+ </tr>
<tbody>
[% FOREACH row = DATEN %]
<tr class="listrow[% loop.count % 2 %]">
- <td nowrap>
- [% HTML.escape(row.itime) %]
- </td>
- <td nowrap>
- [% HTML.escape(row.name) %]
- </td>
- <td>
- [% HTML.escape(row.addition) %]
- </td>
- <td>
+ <td nowrap>
+ [% HTML.escape(row.itime) %]
+ </td>
+ <td nowrap>
+ [% HTML.escape(row.name) %]
+ </td>
+ <td>
+ [% HTML.escape(row.addition) %]
+ </td>
+ <td>
[% HTML.escape(row.what_done) %]
</td>
<td>
<td>
[% HTML.escape(row.snumbers) %]
</td>
- </tr>
+ </tr>
[% END %]
</tbody>
</table>
[% END %]
<table>
- <tr>
- <th class="listtop">
+ <tr>
+ <th class="listtop">
<table height="0" width="0" cellpadding="0" cellspacing="0" marginheight="0" marginwidth="0" border="0">
<tr>
<td align="center" valign="middle">
- Zeitpunkt
+ Zeitpunkt
</td>
<td valign="top">
[% PROCESS column_header THIS_COLUMN=ITIME THIS_COLUMN_DOWN=ITIMEBY column='h.itime' %]
</td>
</tr>
</table>
- </th>
- <th class=listtop>
+ </th>
+ <th class=listtop>
<table height="0" width="0" cellpadding="0" cellspacing="0" marginheight="0" marginwidth="0" border="0">
<tr>
<td align="center" valign="middle">
</td>
</tr>
</table>
- </th>
- <th class=listtop>
+ </th>
+ <th class=listtop>
<table>
<tr>
<td>
- Aktion
+ Aktion
</td>
</tr>
</table>
- </th>
- <th class=listtop>
+ </th>
+ <th class=listtop>
<table>
<tr>
<td>
</tr>
</table>
</th>
- </tr>
+ </tr>
<tbody>
[% FOREACH row = DATEN %]
<tr class="listrow[% loop.count % 2 %]">
- <td nowrap>
- [% HTML.escape(row.itime) %]
- </td>
- <td nowrap>
- [% HTML.escape(row.name) %]
- </td>
- <td>
- [% HTML.escape(row.addition) %]
- </td>
- <td>
+ <td nowrap>
+ [% HTML.escape(row.itime) %]
+ </td>
+ <td nowrap>
+ [% HTML.escape(row.name) %]
+ </td>
+ <td>
+ [% HTML.escape(row.addition) %]
+ </td>
+ <td>
[% HTML.escape(row.what_done) %]
</td>
<td>
<td>
[% HTML.escape(row.snumbers) %]
</td>
- </tr>
+ </tr>
[% END %]
</tbody>
</table>
[% END %]
<table>
- <tr>
- <th class="listtop">
+ <tr>
+ <th class="listtop">
<table height="0" width="0" cellpadding="0" cellspacing="0" marginheight="0" marginwidth="0" border="0">
<tr>
<td align="center" valign="middle">
- <translate>Zeitpunkt</translate>
+ <translate>Zeitpunkt</translate>
</td>
<td valign="top">
[% PROCESS column_header THIS_COLUMN=ITIME THIS_COLUMN_DOWN=ITIMEBY column='h.itime' %]
</td>
</tr>
</table>
- </th>
- <th class=listtop>
+ </th>
+ <th class=listtop>
<table height="0" width="0" cellpadding="0" cellspacing="0" marginheight="0" marginwidth="0" border="0">
<tr>
<td align="center" valign="middle">
</td>
</tr>
</table>
- </th>
- <th class=listtop>
+ </th>
+ <th class=listtop>
<table>
<tr>
<td>
- <translate>Aktion</translate>
+ <translate>Aktion</translate>
</td>
</tr>
</table>
- </th>
- <th class=listtop>
+ </th>
+ <th class=listtop>
<table>
<tr>
<td>
</tr>
</table>
</th>
- </tr>
+ </tr>
<tbody>
[% FOREACH row = DATEN %]
<tr class="listrow[% loop.count % 2 %]">
- <td nowrap>
- [% HTML.escape(row.itime) %]
- </td>
- <td nowrap>
- [% HTML.escape(row.name) %]
- </td>
- <td>
- [% HTML.escape(row.addition) %]
- </td>
- <td>
+ <td nowrap>
+ [% HTML.escape(row.itime) %]
+ </td>
+ <td nowrap>
+ [% HTML.escape(row.name) %]
+ </td>
+ <td>
+ [% HTML.escape(row.addition) %]
+ </td>
+ <td>
[% HTML.escape(row.what_done) %]
</td>
<td>
<td>
[% HTML.escape(row.snumbers) %]
</td>
- </tr>
+ </tr>
[% END %]
</tbody>
</table>
--- /dev/null
+[%- USE HTML %]
+[%- FOREACH vc = CT %]
+[%- IF loop.count < limit %]
+[% vc.$column %]
+[%- END %]
+[%- END %]
--- /dev/null
+[%- USE HTML %]
+[%- FOREACH vc = CT %]
+[%- IF loop.count < limit %]
+[% vc.$column %]
+[%- END %]
+[%- END %]
--- /dev/null
+[%- USE HTML %]
+[%- FOREACH vc = CT %]
+[%- IF loop.count < limit %]
+[% vc.$column %]
+[%- END %]
+[%- END %]
<tr>
<th align="right">Steuernummer</th>
<td><input name="taxnumber" size="20" value="[% HTML.escape(taxnumber) %]"></td>
- <!-- Anm.: R&B 15.11.2008 VAT Reg No ist Ust-ID in GB, aber generell sollte es laut Richardson die sales tax id sein -->
- <th align="right">USt-IdNr.</th>
+ <!-- Anm.: R&B 15.11.2008 VAT Reg No ist Ust-ID in GB, aber generell sollte es laut Richardson die sales tax id sein -->
+ <th align="right">USt-IdNr.</th>
<td><input name="ustid" maxlength="14" size="20" value="[% HTML.escape(ustid) %]"></td>
[%- IF is_customer %]
<th align="right">unsere Lieferanten-Nr. beim Kunden</th>
<td><input name="c_vendor_id" size="10" value="[% HTML.escape(c_vendor_id) %]"></td>
[%- ELSE %]
<th align="right">Kundennummer</th>
- <td><input name="v_customer_id" size="10" value="[% HTML.escape(v_customer_id) %]"></td>
+ <td><input name="v_customer_id" size="10" value="[% HTML.escape(v_customer_id) %]"></td>
[%- END %]
</tr>
}
}
-->
-
+
</script>
<tr>
<th align="right">Tax Number / SSN</th>
<td><input name="taxnumber" size="20" value="[% HTML.escape(taxnumber) %]"></td>
- <!-- Anm.: R&B 15.11.2008 VAT Reg No ist Ust-ID in GB, aber generell sollte es laut Richardson die sales tax id sein -->
- <th align="right">sales tax identification number</th>
+ <!-- Anm.: R&B 15.11.2008 VAT Reg No ist Ust-ID in GB, aber generell sollte es laut Richardson die sales tax id sein -->
+ <th align="right">sales tax identification number</th>
<td><input name="ustid" maxlength="14" size="20" value="[% HTML.escape(ustid) %]"></td>
[%- IF is_customer %]
<th align="right">our vendor number at customer</th>
<td><input name="c_vendor_id" size="10" value="[% HTML.escape(c_vendor_id) %]"></td>
[%- ELSE %]
<th align="right">Customer Number</th>
- <td><input name="v_customer_id" size="10" value="[% HTML.escape(v_customer_id) %]"></td>
+ <td><input name="v_customer_id" size="10" value="[% HTML.escape(v_customer_id) %]"></td>
[%- END %]
</tr>
}
}
-->
-
+
</script>
<tr>
<th align="right"><translate>Tax Number / SSN</translate></th>
<td><input name="taxnumber" size="20" value="[% HTML.escape(taxnumber) %]"></td>
- <!-- Anm.: R&B 15.11.2008 VAT Reg No ist Ust-ID in GB, aber generell sollte es laut Richardson die sales tax id sein -->
- <th align="right"><translate>sales tax identification number</translate></th>
+ <!-- Anm.: R&B 15.11.2008 VAT Reg No ist Ust-ID in GB, aber generell sollte es laut Richardson die sales tax id sein -->
+ <th align="right"><translate>sales tax identification number</translate></th>
<td><input name="ustid" maxlength="14" size="20" value="[% HTML.escape(ustid) %]"></td>
[%- IF is_customer %]
<th align="right"><translate>our vendor number at customer</translate></th>
<td><input name="c_vendor_id" size="10" value="[% HTML.escape(c_vendor_id) %]"></td>
[%- ELSE %]
<th align="right"><translate>Customer Number</translate></th>
- <td><input name="v_customer_id" size="10" value="[% HTML.escape(v_customer_id) %]"></td>
+ <td><input name="v_customer_id" size="10" value="[% HTML.escape(v_customer_id) %]"></td>
[%- END %]
</tr>
}
}
-->
-
+
</script>
<label for="l_fax">Fax</label>
</td>
<td>
- <input name="l_zipcode" id="l_zipcode" type="checkbox" class="checkbox" value="Y" checked>
+ <input name="l_zipcode" id="l_zipcode" type="checkbox" class="checkbox" value="Y" checked>
<label for="l_zipcode">PLZ</label>
</td>
</tr>
<input name="l_business" id="l_business" type="checkbox" class="checkbox" value="Y">
<label for="l_business">[% IF IS_CUSTOMER %]Kundentyp[% ELSE %]Lieferantentyp[% END %]</label>
</td>
- <td>
+ <td>
<input name="l_city" id="l_city" type="checkbox" class="checkbox" value="Y" checked>
<label for="l_city">Stadt</label>
- </td>
+ </td>
</tr>
<tr>
<input name="l_quonumber" id="l_quonumber" type="checkbox" class="checkbox" value="Y">
<label for="l_quonumber">[% IF IS_CUSTOMER %]Angebote[% ELSE %]Preisanfragen[% END %]</label>
</td>
- <td>
- </td>
+ <td>
+ </td>
</tr>
[% CUSTOM_VARIABLES_INCLUSION_CODE %]
<label for="l_fax">Fax</label>
</td>
<td>
- <input name="l_zipcode" id="l_zipcode" type="checkbox" class="checkbox" value="Y" checked>
+ <input name="l_zipcode" id="l_zipcode" type="checkbox" class="checkbox" value="Y" checked>
<label for="l_zipcode">Zipcode</label>
</td>
</tr>
<input name="l_business" id="l_business" type="checkbox" class="checkbox" value="Y">
<label for="l_business">[% IF IS_CUSTOMER %]Customer type[% ELSE %]Vendor type[% END %]</label>
</td>
- <td>
+ <td>
<input name="l_city" id="l_city" type="checkbox" class="checkbox" value="Y" checked>
<label for="l_city">City</label>
- </td>
+ </td>
</tr>
<tr>
<input name="l_quonumber" id="l_quonumber" type="checkbox" class="checkbox" value="Y">
<label for="l_quonumber">[% IF IS_CUSTOMER %]Quotations[% ELSE %]RFQs[% END %]</label>
</td>
- <td>
- </td>
+ <td>
+ </td>
</tr>
[% CUSTOM_VARIABLES_INCLUSION_CODE %]
<label for="l_fax"><translate>Fax</translate></label>
</td>
<td>
- <input name="l_zipcode" id="l_zipcode" type="checkbox" class="checkbox" value="Y" checked>
+ <input name="l_zipcode" id="l_zipcode" type="checkbox" class="checkbox" value="Y" checked>
<label for="l_zipcode"><translate>Zipcode</translate></label>
</td>
</tr>
<input name="l_business" id="l_business" type="checkbox" class="checkbox" value="Y">
<label for="l_business">[% IF IS_CUSTOMER %]<translate>Customer type</translate>[% ELSE %]<translate>Vendor type</translate>[% END %]</label>
</td>
- <td>
+ <td>
<input name="l_city" id="l_city" type="checkbox" class="checkbox" value="Y" checked>
<label for="l_city"><translate>City</translate></label>
- </td>
+ </td>
</tr>
<tr>
<input name="l_quonumber" id="l_quonumber" type="checkbox" class="checkbox" value="Y">
<label for="l_quonumber">[% IF IS_CUSTOMER %]<translate>Quotations</translate>[% ELSE %]<translate>RFQs</translate>[% END %]</label>
</td>
- <td>
- </td>
+ <td>
+ </td>
</tr>
[% CUSTOM_VARIABLES_INCLUSION_CODE %]
--- /dev/null
+[% USE HTML %]<div class="listtop">cp_greeting to cp_gender migration</div>
+
+
+<form action="[% script %]" method="POST">
+<br>
+<p> The method for generating greetings ("Dear Mr. Smith") is being changed so the greeting is controlled by the gender. For this a new database field cp_gender is introduced, while the old database field cp_greeting will be removed. The various translations (Mr./Herr/Monsieur) will be stored in the database, under generic_translations. The print variable cp_greeting still exists, however, so print templates don't have to be changed, and the variable is assigned according to the gender of the contact person and the desired language.</p>
+
+<p>During the conversion process all contact persons need to be assigned a gender. The gender is detected automatically where possible, but in some cases will have to be set manually.</p>
+
+During the conversion process:<br>
+1. All contact persons will have their gender set to "m" (male) as a default<br>
+2. All contact persons where the greeting contains "frau,mrs,miss" are set to "f" (female)<br>
+
+<p>The gender of the following contact persons couldn't be determined automatically from the greeting, please set the gender manually:</p>
+[% gender_table %]
+
+
+<p>Please enter your desired default greeting for men and women. To change the
+default greeting or add a greeting in more languages, go to: System -> Languages -> Greetings
+</p>
+
+<p>
+Greeting for men: [% default_greeting_text_male %] <br>
+Greeting for women: [% default_greeting_text_female %] <br>
+</p>
+
+<br><br>
+The data from the cp_greeting field will now be dropped. To prevent any data loss if you used the cp_greeting field for anything else, we suggest you transfer this information to the cp_title field:
+<br>
+[% title_table %]
+
+<input type=hidden name="do_migrate" value="1">
+<input type=submit VALUE="submit">
+
+</form>
+
<td>
[%- UNLESS !delivered && SHOW_VC_DROP_DOWN %]
<input type="text" value="[% HTML.escape(oldvcname) %]" name="[% HTML.escape(vc) %]"[% RO %]>
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
[%- ELSE %]
<select name="[% vc %]" class="fixed_width" onchange="document.do.update_button.click();"[% RO %]>
[%- FOREACH row = ALL_VC %]
</td>
</tr>
[%- END %]
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
[%- IF ALL_SHIPTO.size %]
<tr>
<td>
[%- UNLESS !delivered && SHOW_VC_DROP_DOWN %]
<input type="text" value="[% HTML.escape(oldvcname) %]" name="[% HTML.escape(vc) %]"[% RO %]>
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
[%- ELSE %]
<select name="[% vc %]" class="fixed_width" onchange="document.do.update_button.click();"[% RO %]>
[%- FOREACH row = ALL_VC %]
</td>
</tr>
[%- END %]
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
[%- IF ALL_SHIPTO.size %]
<tr>
<td>
[%- UNLESS !delivered && SHOW_VC_DROP_DOWN %]
<input type="text" value="[% HTML.escape(oldvcname) %]" name="[% HTML.escape(vc) %]"[% RO %]>
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
[%- ELSE %]
<select name="[% vc %]" class="fixed_width" onchange="document.do.update_button.click();"[% RO %]>
[%- FOREACH row = ALL_VC %]
</td>
</tr>
[%- END %]
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
[%- IF ALL_SHIPTO.size %]
<tr>
<td colspan="3">
[%- UNLESS SHOW_VC_DROP_DOWN %]
<input type="text" name="[% HTML.escape(vc) %]" class="fixed_width">
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
[%- ELSE %]
<select name="[% vc %]" class="fixed_width">
<option></option>
<td colspan="3">
[%- UNLESS SHOW_VC_DROP_DOWN %]
<input type="text" name="[% HTML.escape(vc) %]" class="fixed_width">
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
[%- ELSE %]
<select name="[% vc %]" class="fixed_width">
<option></option>
<td colspan="3">
[%- UNLESS SHOW_VC_DROP_DOWN %]
<input type="text" name="[% HTML.escape(vc) %]" class="fixed_width">
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
[%- ELSE %]
<select name="[% vc %]" class="fixed_width">
<option></option>
<input type="button" name="dunningto" id="trigger4" value="?">
</td>
</tr>
-
+ <tr>
+ <th align="right">Salesman</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'salesman_id',
+ style = 'width: 250px',
+ DATA = ALL_SALESMEN,
+ id_key = 'id',
+ label_sub = 'salesman_labels',
+ limit = vclimit,
+ show_empty = 1,
+ allow_textbox = 0,
+ -%]
+ </td>
+ </tr>
</table>
</td>
</tr>
<tr>
<th align="right" nowrap>Show old dunnings</th>
<td><input type="checkbox" value="1" name="showold"></td>
+ <th align="right" nowrap>Show Salesman</th>
+ <td><input type="checkbox" value="1" name="l_salesman"></td>
</tr>
</table>
</td>
--- /dev/null
+[%#-
+ Autocompletion
+
+ This template enables auto completion for input fields.
+ Calling Syntax is:
+
+ INCLUDE 'generic/autocomplete', [
+ { SPEC_1 },
+ { SPEC_2 },
+ ...
+ ]
+
+ where SPEC is a hash containing the following keys:
+
+ script : the script that is called for autocompletion, defaults to the invoking script
+ action : action in the ajax script, defaults to 'ajax_autocomplete'
+ selector : a jquery selector, specifying the input fields
+ column : specifies the column that is represented by the bound field. typically description or name.
+ params : additional params that should be included in the request, like customer/vendor information. expects a hash.
+
+ TODO FIELDS:
+ - addition fields like type, vc etc.
+ - additional dependencies, see jquery.autocomplete documentation
+ - hook function on select, again see jquery documentation
+ - limit: maximum number of results shown.
+
+ a simple SPEC would look like this:
+
+ { selector => '#description', column => 'description' }
+ # field with id="description" should be autocompleted with descriptions
+
+ { script => 'ic.pl', selector => '[name^="partnumber_"]', column => 'partnumber' }
+ # let ic.pl autocomplete by partnumbers, bind this to all fields where the name begins with "partnumber_"
+
+
+
+ The Backend Side
+
+ The called function will recieve the queried string as hashkey "q" in form, as well as every other param specified here.
+ It should generate a generic ajax header (see form), followed by newline separated list of possible completion values.
+
+%]
+<script type='text/javascript'>
+[%- FOREACH token = AUTOCOMPLETES %]
+[%- DEFAULT token.script = script %]
+[%- DEFAULT token.action = 'ajax_autocomplete' %]
+[%- DEFAULT token.INPUT_ENCODING = 'utf8' %]
+[%- FOREACH key = token.params.keys %]
+[%- token.additional_url = token.additional_url _ '&' _ key _ '=' _ token.params.$key %]
+[%- END %]
+[%- token.url = token.script
+ _ '?action=' _ token.action
+ _ '&INPUT_ENCODING=' _ token.INPUT_ENCODING %]
+[%- SET token.url = token.url _ '&column=' _ token.column IF token.column %]
+[%- SET token.url = token.url _ token.additional_url IF token.additional_url %]
+$(document).ready( $('[% token.selector %]').autocomplete('[% token.url %]'));
+[%- END %]
+</script>
--- /dev/null
+[%- USE HTML %]
+[%- FOREACH part = parts %]
+[% IF loop.count < limit %]
+[% part.$column %]
+[%- END %]
+[%- END %]
--- /dev/null
+[%- USE HTML %]
+[%- FOREACH part = parts %]
+[% IF loop.count < limit %]
+[% part.$column %]
+[%- END %]
+[%- END %]
--- /dev/null
+[%- USE HTML %]
+[%- FOREACH part = parts %]
+[% IF loop.count < limit %]
+[% part.$column %]
+[%- END %]
+[%- END %]
<table border="0" width="100%">
<tr>
<th colspan="2" align=right>Summe </th>
- <th align=right>Einkaufspreis:[% LxERP.format_amount(assembly_purchase_price_total, 2) %] Verkaufspreis: [% LxERP.format_amount(assemblytotal, 2) %]</th>
+ <th align=right>Einkaufspreis:[% LxERP.format_amount(assembly_purchase_price_total, 2) %] Verkaufspreis: [% LxERP.format_amount(assemblytotal, 2) %]</th>
</tr>
</table>
</td>
<table border="0" width="100%">
<tr>
<th colspan="2" align=right>Total </th>
- <th align=right>Purchase Price:[% LxERP.format_amount(assembly_purchase_price_total, 2) %] Sell Price: [% LxERP.format_amount(assemblytotal, 2) %]</th>
+ <th align=right>Purchase Price:[% LxERP.format_amount(assembly_purchase_price_total, 2) %] Sell Price: [% LxERP.format_amount(assemblytotal, 2) %]</th>
</tr>
</table>
</td>
<table border="0" width="100%">
<tr>
<th colspan="2" align=right><translate>Total</translate> </th>
- <th align=right><translate>Purchase Price</translate>:[% LxERP.format_amount(assembly_purchase_price_total, 2) %] <translate>Sell Price</translate>: [% LxERP.format_amount(assemblytotal, 2) %]</th>
+ <th align=right><translate>Purchase Price</translate>:[% LxERP.format_amount(assembly_purchase_price_total, 2) %] <translate>Sell Price</translate>: [% LxERP.format_amount(assemblytotal, 2) %]</th>
</tr>
</table>
</td>
<label for="l_priceupdate">Erneuert am</label>
</td>
<td>
- <!-- auskommentiert fuer bug nummer 852 - ggf. fuer einen standardlagerplatz verwertet jb 18.5.09-->
+ <!-- auskommentiert fuer bug nummer 852 - ggf. fuer einen standardlagerplatz verwertet jb 18.5.09-->
<!--input name="l_bin" id="l_bin" class="checkbox" type="checkbox" value="Y">
<label for="l_bin">Lagerplatz</label -->
<input name="l_deliverydate" id="l_deliverydate" class="checkbox" type="checkbox" value="Y">
<label for="l_priceupdate">Updated</label>
</td>
<td>
- <!-- auskommentiert fuer bug nummer 852 - ggf. fuer einen standardlagerplatz verwertet jb 18.5.09-->
+ <!-- auskommentiert fuer bug nummer 852 - ggf. fuer einen standardlagerplatz verwertet jb 18.5.09-->
<!--input name="l_bin" id="l_bin" class="checkbox" type="checkbox" value="Y">
<label for="l_bin">Bin</label -->
<input name="l_deliverydate" id="l_deliverydate" class="checkbox" type="checkbox" value="Y">
<label for="l_priceupdate"><translate>Updated</translate></label>
</td>
<td>
- <!-- auskommentiert fuer bug nummer 852 - ggf. fuer einen standardlagerplatz verwertet jb 18.5.09-->
+ <!-- auskommentiert fuer bug nummer 852 - ggf. fuer einen standardlagerplatz verwertet jb 18.5.09-->
<!--input name="l_bin" id="l_bin" class="checkbox" type="checkbox" value="Y">
<label for="l_bin"><translate>Bin</translate></label -->
<input name="l_deliverydate" id="l_deliverydate" class="checkbox" type="checkbox" value="Y">
--- /dev/null
+[%- USE LxERP %]
+ <tr>
+ <td>
+ <table width="100%">
+ <tr class="listheading">
+[% IF is_type_credit_note %]
+ <th colspan="6" class="listheading">Zahlungsausgänge</th>
+[% ELSE %]
+ <th colspan="6" class="listheading">Zahlungseingänge</th>
+[%- END %]
+ </tr>
+
+
+ <tr>
+ <th>Datum</th>
+ <th>Beleg</th>
+ <th>Memo</th>
+ <th>Betrag</th>
+[% IF show_exchangerate %]
+ <th>Wechselkurs.</th>
+[% END %]
+ <th>Konto</th>
+ </tr>
+
+
+[% FOREACH i = paid_indices %]
+ [% SET datepaid = 'datepaid_' _ i %]
+ [% SET source = 'source_' _ i %]
+ [% SET memo = 'memo_' _ i %]
+ [% SET paid = 'paid_' _ i %]
+ [% SET selectAP_paid_ref = 'selectAP_paid_' _ i %]
+
+ <tr>
+
+ <td align="center">
+ <input id="datepaid_[% i %]" name="datepaid_[% i %]" size="11" title="[% dateformat %]" value="[% $datepaid %]">
+ <input type="button" name="datepaid_[% i %]" id="trigger_datepaid_[% i %]" value="?">
+ </td>
+ <td align=center><input name="source_[% i %]" size="11" value="[% $source %]"></td>
+ <td align="center"><input name="memo_[% i %]" size="11" value="[% $memo %]"></td>
+ <td align="center"><input name="paid_[% i %]" size="11" value="[% LxERP.format_amount($paid, 2, 1) %]"></td>
+[% IF show_exchangerate %]
+ <td align="center">
+ [% SET forex = 'forex_' _ i %]
+ [% SET exchangerate = 'exchangerate_' _ i %]
+ [% IF forex %]
+ <input type="hidden" name="exchangerate_[% i %]" value="[% LxERP.format_amount($exchangerate, 2) %]">
+ [% LxERP.format_amount(exchangerate, 2) %]
+ [% ELSE %]
+ <input name="exchangerate_[% i %]" size="10" value="[% LxERP.format_amount($exchangerate, 2, 1) %]">
+ [% END %]
+ <input type="hidden" name="forex_[% i %]" value="[% $forex %]">;
+ </td>
+[% END %]
+ <td align="center"><select name="AP_paid_[% i %]">[% $selectAP_paid_ref %]</select></td>
+
+ </tr>
+ <script type='text/javascript'>
+ Calendar.setup({ inputField : "datepaid_[% i %]", ifFormat :"[% myconfig_jsc_dateformat %]", align : "TR", button : "trigger_datepaid_[% i %]" });
+ $('input[name="paid_[% i %]"]').blur(function(){ check_right_number_format(this) });
+ $('#datepaid_[% i %]').blur(function(){ check_right_date_format(this) });
+ </script>
+
+[% END # foreach %]
+
+ <tr>
+ <td></td>
+ <td></td>
+ <td align="center">Summe</td>
+ <td align="center">[% LxERP.foramt_amount(totalpaid, 2) | html %]</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td align="center">Fehlbetrag</td>
+ <td align="center">[% LxERP.format_amount(paid_missing, 2) | html %]</td>
+ </tr>
+
+ <input type="hidden" name="paidaccounts" value="[% paidaccounts %]">
+ <input type="hidden" name="selectAP_paid" value="[% selectAP_paid %]">
+ <input type="hidden" name="oldinvtotal" value="[% oldinvtotal %]">
+
+ <input type="hidden" name="oldtotalpaid" value="[% totalpaid %]">
+ </table>
+
+ </td>
+ </tr>
--- /dev/null
+[%- USE LxERP %]
+ <tr>
+ <td>
+ <table width="100%">
+ <tr class="listheading">
+[% IF is_type_credit_note %]
+ <th colspan="6" class="listheading">Payments</th>
+[% ELSE %]
+ <th colspan="6" class="listheading">Incoming Payments</th>
+[%- END %]
+ </tr>
+
+
+ <tr>
+ <th>Date</th>
+ <th>Source</th>
+ <th>Memo</th>
+ <th>Amount</th>
+[% IF show_exchangerate %]
+ <th>Exch</th>
+[% END %]
+ <th>Account</th>
+ </tr>
+
+
+[% FOREACH i = paid_indices %]
+ [% SET datepaid = 'datepaid_' _ i %]
+ [% SET source = 'source_' _ i %]
+ [% SET memo = 'memo_' _ i %]
+ [% SET paid = 'paid_' _ i %]
+ [% SET selectAP_paid_ref = 'selectAP_paid_' _ i %]
+
+ <tr>
+
+ <td align="center">
+ <input id="datepaid_[% i %]" name="datepaid_[% i %]" size="11" title="[% dateformat %]" value="[% $datepaid %]">
+ <input type="button" name="datepaid_[% i %]" id="trigger_datepaid_[% i %]" value="?">
+ </td>
+ <td align=center><input name="source_[% i %]" size="11" value="[% $source %]"></td>
+ <td align="center"><input name="memo_[% i %]" size="11" value="[% $memo %]"></td>
+ <td align="center"><input name="paid_[% i %]" size="11" value="[% LxERP.format_amount($paid, 2, 1) %]"></td>
+[% IF show_exchangerate %]
+ <td align="center">
+ [% SET forex = 'forex_' _ i %]
+ [% SET exchangerate = 'exchangerate_' _ i %]
+ [% IF forex %]
+ <input type="hidden" name="exchangerate_[% i %]" value="[% LxERP.format_amount($exchangerate, 2) %]">
+ [% LxERP.format_amount(exchangerate, 2) %]
+ [% ELSE %]
+ <input name="exchangerate_[% i %]" size="10" value="[% LxERP.format_amount($exchangerate, 2, 1) %]">
+ [% END %]
+ <input type="hidden" name="forex_[% i %]" value="[% $forex %]">;
+ </td>
+[% END %]
+ <td align="center"><select name="AP_paid_[% i %]">[% $selectAP_paid_ref %]</select></td>
+
+ </tr>
+ <script type='text/javascript'>
+ Calendar.setup({ inputField : "datepaid_[% i %]", ifFormat :"[% myconfig_jsc_dateformat %]", align : "TR", button : "trigger_datepaid_[% i %]" });
+ $('input[name="paid_[% i %]"]').blur(function(){ check_right_number_format(this) });
+ $('#datepaid_[% i %]').blur(function(){ check_right_date_format(this) });
+ </script>
+
+[% END # foreach %]
+
+ <tr>
+ <td></td>
+ <td></td>
+ <td align="center">Total</td>
+ <td align="center">[% LxERP.foramt_amount(totalpaid, 2) | html %]</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td align="center">Missing amount</td>
+ <td align="center">[% LxERP.format_amount(paid_missing, 2) | html %]</td>
+ </tr>
+
+ <input type="hidden" name="paidaccounts" value="[% paidaccounts %]">
+ <input type="hidden" name="selectAP_paid" value="[% selectAP_paid %]">
+ <input type="hidden" name="oldinvtotal" value="[% oldinvtotal %]">
+
+ <input type="hidden" name="oldtotalpaid" value="[% totalpaid %]">
+ </table>
+
+ </td>
+ </tr>
--- /dev/null
+[%- USE LxERP %]
+ <tr>
+ <td>
+ <table width="100%">
+ <tr class="listheading">
+[% IF is_type_credit_note %]
+ <th colspan="6" class="listheading"><translate>Payments</translate></th>
+[% ELSE %]
+ <th colspan="6" class="listheading"><translate>Incoming Payments</translate></th>
+[%- END %]
+ </tr>
+
+
+ <tr>
+ <th><translate>Date</translate></th>
+ <th><translate>Source</translate></th>
+ <th><translate>Memo</translate></th>
+ <th><translate>Amount</translate></th>
+[% IF show_exchangerate %]
+ <th><translate>Exch</translate></th>
+[% END %]
+ <th><translate>Account</translate></th>
+ </tr>
+
+
+[% FOREACH i = paid_indices %]
+ [% SET datepaid = 'datepaid_' _ i %]
+ [% SET source = 'source_' _ i %]
+ [% SET memo = 'memo_' _ i %]
+ [% SET paid = 'paid_' _ i %]
+ [% SET selectAP_paid_ref = 'selectAP_paid_' _ i %]
+
+ <tr>
+
+ <td align="center">
+ <input id="datepaid_[% i %]" name="datepaid_[% i %]" size="11" title="[% dateformat %]" value="[% $datepaid %]">
+ <input type="button" name="datepaid_[% i %]" id="trigger_datepaid_[% i %]" value="?">
+ </td>
+ <td align=center><input name="source_[% i %]" size="11" value="[% $source %]"></td>
+ <td align="center"><input name="memo_[% i %]" size="11" value="[% $memo %]"></td>
+ <td align="center"><input name="paid_[% i %]" size="11" value="[% LxERP.format_amount($paid, 2, 1) %]"></td>
+[% IF show_exchangerate %]
+ <td align="center">
+ [% SET forex = 'forex_' _ i %]
+ [% SET exchangerate = 'exchangerate_' _ i %]
+ [% IF forex %]
+ <input type="hidden" name="exchangerate_[% i %]" value="[% LxERP.format_amount($exchangerate, 2) %]">
+ [% LxERP.format_amount(exchangerate, 2) %]
+ [% ELSE %]
+ <input name="exchangerate_[% i %]" size="10" value="[% LxERP.format_amount($exchangerate, 2, 1) %]">
+ [% END %]
+ <input type="hidden" name="forex_[% i %]" value="[% $forex %]">;
+ </td>
+[% END %]
+ <td align="center"><select name="AP_paid_[% i %]">[% $selectAP_paid_ref %]</select></td>
+
+ </tr>
+ <script type='text/javascript'>
+ Calendar.setup({ inputField : "datepaid_[% i %]", ifFormat :"[% myconfig_jsc_dateformat %]", align : "TR", button : "trigger_datepaid_[% i %]" });
+ $('input[name="paid_[% i %]"]').blur(function(){ check_right_number_format(this) });
+ $('#datepaid_[% i %]').blur(function(){ check_right_date_format(this) });
+ </script>
+
+[% END # foreach %]
+
+ <tr>
+ <td></td>
+ <td></td>
+ <td align="center"><translate>Total</translate></td>
+ <td align="center">[% LxERP.foramt_amount(totalpaid, 2) | html %]</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td align="center"><translate>Missing amount</translate></td>
+ <td align="center">[% LxERP.format_amount(paid_missing, 2) | html %]</td>
+ </tr>
+
+ <input type="hidden" name="paidaccounts" value="[% paidaccounts %]">
+ <input type="hidden" name="selectAP_paid" value="[% selectAP_paid %]">
+ <input type="hidden" name="oldinvtotal" value="[% oldinvtotal %]">
+
+ <input type="hidden" name="oldtotalpaid" value="[% totalpaid %]">
+ </table>
+
+ </td>
+ </tr>
--- /dev/null
+[%- USE HTML %]
+[%- USE LxERP %]
+ <tr>
+ <td>
+ <table width="100%">
+ <tr valign="bottom">
+ <td>
+ <table>
+ <tr>
+ <th align="left">Bemerkungen</th>
+ <th align="left">interne Bemerkungen</th>
+ </tr>
+ <tr valign="top">
+ <td>
+ <textarea name="notes" rows="[% rows %]" cols="26" wrap="soft">[% notes %]</textarea>
+ </td>
+ <td>
+ <textarea name="intnotes" rows="[% rows %]" cols="35" wrap="soft">[% intnotes %]</textarea>
+ </td>
+ </tr>
+[%- IF id && follow_ups.size %]
+ <tr>
+ <td colspan="2">
+ [%- LxERP.format_string('Es gibt #1 Wiedervorlage(n), von denen #2 fällig ist/sind.',
+ follow_ups.size, follow_ups_unfinished) | html
+ %]
+ <td>
+ </tr>
+[%- END %]
+ </table>
+ </td>
+ <td align="right">
+ [%- IF taxaccounts %]
+ <input name="taxincluded" class="checkbox" type="checkbox" [% IF taxincluded %]checked[% END %]>
+ <b>Steuer im Preis inbegriffen</b>
+ <br>
+ <br>
+ [%- END %]
+ <table>
+
+[%- UNLESS taxincluded %]
+ <tr>
+ <th align="right">Zwischensumme</th>
+ <td align="right">[% LxERP.format_amount(invsubtotal, 2) %]</td>
+ </tr>
+[%- END %]
+
+[%# tax %]
+[% FOREACH item = taxaccounts_array %]
+[% SET description_ref = item _ '_description' %]
+[% SET rate_ref = item _ '_rate' %]
+[% SET total_ref = item _ '_total' %]
+[% SET netto_ref = item _ '_netto' %]
+ <tr>
+ <th align="right">Enthaltene [% $description_ref | html %] [% $rate_ref * 100 %]%</th>
+ <td align="right">[% LxERP.format_amount($total_ref, 2) %]</td>
+ </tr>
+ [%- IF taxincluded %]
+ <tr>
+ <th align="right">Nettobetrag</th>
+ <td align="right">[% LxERP.format_amount($netto_ref, 2) %]</td>
+ </tr>
+ [%- END %]
+[%- END %]
+
+ <tr>
+ <th align="right">Summe</th>
+ <td align="right">[% LxERP.format_amount(invtotal, 2) %]</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+[% PROCESS 'webdav/_list_de.html' %]
+
+[% PROCESS 'ir/_payments_de.html' %]
+
+ <tr>
+ <td><hr size="3" noshade></td>
+ </tr>
+ <tr>
+ <td>
+[% print_options %]
+ </td>
+ </tr>
+ </table>
+
+
+
+ [% IF id %]
+
+ <input class="submit" type="submit" accesskey="u" name="action" id="update_button" value="Erneuern">
+[% IF show_storno %]
+ <input class="submit" type="submit" name="action" value="Storno">
+[% END %]
+ <input class="submit" type="submit" name="action" value="Zahlung buchen">
+ <input class="submit" type="submit" name="action" value="Als Vorlage verwenden">
+
+[% IF show_delete %]
+ <input class="submit" type="submit" name="action" value="Löschen">
+[% END %]
+
+ <input type="button" class="submit" onclick="follow_up_window()" value="Wiedervorlage">
+
+ [% ELSE # no id %]
+ [% UNLESS locked %]
+ <input class="submit" type="submit" name="action" id="update_button" value="Erneuern">
+ <input class="submit" type="submit" name="action" value="Buchen">
+ <input class="submit" type="submit" name="action" value="Entwurf speichern">
+ [%- END %]
+ [% END # id %]
+
+ [% IF id %]
+ [%#- button for saving history %]
+ <input type="button" class="submit" onclick="set_history_window([% id | html %]);" name="history" id="history" value="Historie">
+
+ <input type="submit" class="submit" name="action" value="als bezahlt markieren">
+ [% END %]
+
+<input type="hidden" name="rowcount" value="[% rowcount %]">
+<input type="hidden" name="callback" value="[% callback %]">
+<input type="hidden" name="draft_id" value="[% draft_id %]">
+<input type="hidden" name="draft_description" value="[% draft_description %]">
+<input type="hidden" name="vendor_discount" value="[% vendor_discount %]">
+
+</form>
+
+</body>
+
+</html>
--- /dev/null
+[%- USE HTML %]
+[%- USE LxERP %]
+ <tr>
+ <td>
+ <table width="100%">
+ <tr valign="bottom">
+ <td>
+ <table>
+ <tr>
+ <th align="left">Notes</th>
+ <th align="left">Internal Notes</th>
+ </tr>
+ <tr valign="top">
+ <td>
+ <textarea name="notes" rows="[% rows %]" cols="26" wrap="soft">[% notes %]</textarea>
+ </td>
+ <td>
+ <textarea name="intnotes" rows="[% rows %]" cols="35" wrap="soft">[% intnotes %]</textarea>
+ </td>
+ </tr>
+[%- IF id && follow_ups.size %]
+ <tr>
+ <td colspan="2">
+ [%- LxERP.format_string('There are #1 unfinished follow-ups of which #2 are due.',
+ follow_ups.size, follow_ups_unfinished) | html
+ %]
+ <td>
+ </tr>
+[%- END %]
+ </table>
+ </td>
+ <td align="right">
+ [%- IF taxaccounts %]
+ <input name="taxincluded" class="checkbox" type="checkbox" [% IF taxincluded %]checked[% END %]>
+ <b>Tax Included</b>
+ <br>
+ <br>
+ [%- END %]
+ <table>
+
+[%- UNLESS taxincluded %]
+ <tr>
+ <th align="right">Subtotal</th>
+ <td align="right">[% LxERP.format_amount(invsubtotal, 2) %]</td>
+ </tr>
+[%- END %]
+
+[%# tax %]
+[% FOREACH item = taxaccounts_array %]
+[% SET description_ref = item _ '_description' %]
+[% SET rate_ref = item _ '_rate' %]
+[% SET total_ref = item _ '_total' %]
+[% SET netto_ref = item _ '_netto' %]
+ <tr>
+ <th align="right">Enthaltene [% $description_ref | html %] [% $rate_ref * 100 %]%</th>
+ <td align="right">[% LxERP.format_amount($total_ref, 2) %]</td>
+ </tr>
+ [%- IF taxincluded %]
+ <tr>
+ <th align="right">Nettobetrag</th>
+ <td align="right">[% LxERP.format_amount($netto_ref, 2) %]</td>
+ </tr>
+ [%- END %]
+[%- END %]
+
+ <tr>
+ <th align="right">Total</th>
+ <td align="right">[% LxERP.format_amount(invtotal, 2) %]</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+[% PROCESS 'webdav/_list_master.html' %]
+
+[% PROCESS 'ir/_payments_master.html' %]
+
+ <tr>
+ <td><hr size="3" noshade></td>
+ </tr>
+ <tr>
+ <td>
+[% print_options %]
+ </td>
+ </tr>
+ </table>
+
+
+
+ [% IF id %]
+
+ <input class="submit" type="submit" accesskey="u" name="action" id="update_button" value="Update">
+[% IF show_storno %]
+ <input class="submit" type="submit" name="action" value="Storno">
+[% END %]
+ <input class="submit" type="submit" name="action" value="Post Payment">
+ <input class="submit" type="submit" name="action" value="Use As Template">
+
+[% IF show_delete %]
+ <input class="submit" type="submit" name="action" value="Delete">
+[% END %]
+
+ <input type="button" class="submit" onclick="follow_up_window()" value="Follow-Up">
+
+ [% ELSE # no id %]
+ [% UNLESS locked %]
+ <input class="submit" type="submit" name="action" id="update_button" value="Update">
+ <input class="submit" type="submit" name="action" value="Post">
+ <input class="submit" type="submit" name="action" value="Save Draft">
+ [%- END %]
+ [% END # id %]
+
+ [% IF id %]
+ [%#- button for saving history %]
+ <input type="button" class="submit" onclick="set_history_window([% id | html %]);" name="history" id="history" value="history">
+
+ <input type="submit" class="submit" name="action" value="mark as paid">
+ [% END %]
+
+<input type="hidden" name="rowcount" value="[% rowcount %]">
+<input type="hidden" name="callback" value="[% callback %]">
+<input type="hidden" name="draft_id" value="[% draft_id %]">
+<input type="hidden" name="draft_description" value="[% draft_description %]">
+<input type="hidden" name="vendor_discount" value="[% vendor_discount %]">
+
+</form>
+
+</body>
+
+</html>
--- /dev/null
+[%- USE HTML %]
+[%- USE LxERP %]
+ <tr>
+ <td>
+ <table width="100%">
+ <tr valign="bottom">
+ <td>
+ <table>
+ <tr>
+ <th align="left"><translate>Notes</translate></th>
+ <th align="left"><translate>Internal Notes</translate></th>
+ </tr>
+ <tr valign="top">
+ <td>
+ <textarea name="notes" rows="[% rows %]" cols="26" wrap="soft">[% notes %]</textarea>
+ </td>
+ <td>
+ <textarea name="intnotes" rows="[% rows %]" cols="35" wrap="soft">[% intnotes %]</textarea>
+ </td>
+ </tr>
+[%- IF id && follow_ups.size %]
+ <tr>
+ <td colspan="2">
+ [%- LxERP.format_string('<translate>There are #1 unfinished follow-ups of which #2 are due.</translate>',
+ follow_ups.size, follow_ups_unfinished) | html
+ %]
+ <td>
+ </tr>
+[%- END %]
+ </table>
+ </td>
+ <td align="right">
+ [%- IF taxaccounts %]
+ <input name="taxincluded" class="checkbox" type="checkbox" [% IF taxincluded %]checked[% END %]>
+ <b><translate>Tax Included</translate></b>
+ <br>
+ <br>
+ [%- END %]
+ <table>
+
+[%- UNLESS taxincluded %]
+ <tr>
+ <th align="right"><translate>Subtotal</translate></th>
+ <td align="right">[% LxERP.format_amount(invsubtotal, 2) %]</td>
+ </tr>
+[%- END %]
+
+[%# tax %]
+[% FOREACH item = taxaccounts_array %]
+[% SET description_ref = item _ '_description' %]
+[% SET rate_ref = item _ '_rate' %]
+[% SET total_ref = item _ '_total' %]
+[% SET netto_ref = item _ '_netto' %]
+ <tr>
+ <th align="right">Enthaltene [% $description_ref | html %] [% $rate_ref * 100 %]%</th>
+ <td align="right">[% LxERP.format_amount($total_ref, 2) %]</td>
+ </tr>
+ [%- IF taxincluded %]
+ <tr>
+ <th align="right">Nettobetrag</th>
+ <td align="right">[% LxERP.format_amount($netto_ref, 2) %]</td>
+ </tr>
+ [%- END %]
+[%- END %]
+
+ <tr>
+ <th align="right"><translate>Total</translate></th>
+ <td align="right">[% LxERP.format_amount(invtotal, 2) %]</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+[% PROCESS 'webdav/_list_<translate>master</translate>.html' %]
+
+[% PROCESS 'ir/_payments_<translate>master</translate>.html' %]
+
+ <tr>
+ <td><hr size="3" noshade></td>
+ </tr>
+ <tr>
+ <td>
+[% print_options %]
+ </td>
+ </tr>
+ </table>
+
+
+
+ [% IF id %]
+
+ <input class="submit" type="submit" accesskey="u" name="action" id="update_button" value="<translate>Update</translate>">
+[% IF show_storno %]
+ <input class="submit" type="submit" name="action" value="<translate>Storno</translate>">
+[% END %]
+ <input class="submit" type="submit" name="action" value="<translate>Post Payment</translate>">
+ <input class="submit" type="submit" name="action" value="<translate>Use As Template</translate>">
+
+[% IF show_delete %]
+ <input class="submit" type="submit" name="action" value="<translate>Delete</translate>">
+[% END %]
+
+ <input type="button" class="submit" onclick="follow_up_window()" value="<translate>Follow-Up</translate>">
+
+ [% ELSE # no id %]
+ [% UNLESS locked %]
+ <input class="submit" type="submit" name="action" id="update_button" value="<translate>Update</translate>">
+ <input class="submit" type="submit" name="action" value="<translate>Post</translate>">
+ <input class="submit" type="submit" name="action" value="<translate>Save Draft</translate>">
+ [%- END %]
+ [% END # id %]
+
+ [% IF id %]
+ [%#- button for saving history %]
+ <input type="button" class="submit" onclick="set_history_window([% id | html %]);" name="history" id="history" value="<translate>history</translate>">
+
+ <input type="submit" class="submit" name="action" value="<translate>mark as paid</translate>">
+ [% END %]
+
+<input type="hidden" name="rowcount" value="[% rowcount %]">
+<input type="hidden" name="callback" value="[% callback %]">
+<input type="hidden" name="draft_id" value="[% draft_id %]">
+<input type="hidden" name="draft_description" value="[% draft_description %]">
+<input type="hidden" name="vendor_discount" value="[% vendor_discount %]">
+
+</form>
+
+</body>
+
+</html>
--- /dev/null
+[%- USE HTML %]
+[%- USE LxERP %]
+[%- SET follow_up_trans_info = invnumber _ ' (' _ vendor_name _ ')' %]
+<body>
+<script type="text/javascript" src="js/common.js"></script>
+<script type="text/javascript" src="js/delivery_vendor_selection.js"></script>
+<script type="text/javascript" src="js/vendor_selection.js"></script>
+<script type="text/javascript" src="js/calculate_qty.js"></script>
+<script type="text/javascript" src="js/follow_up.js"></script>
+<script type="text/javascript" src="js/customer_or_vendor_selection.js"></script>
+
+<form method="post" name="invoice" action="[% script %]">
+
+<p>[% saved_message %]</p>
+
+[%- FOREACH key = HIDDENS %]
+<input type="hidden" name="[% HTML.escape(key) %]" value="[% HTML.escape($key) %]">
+[%- END %]
+<input type="hidden" name="follow_up_trans_id_1" value="[% id %]">
+<input type="hidden" name="follow_up_trans_type_1" value="sales_invoice">
+<input type="hidden" name="follow_up_trans_info_1" value="[% HTML.escape(follow_up_trans_info) %]">
+<input type="hidden" name="follow_up_rowcount" value="1">
+
+<input type="hidden" name="lizenzen" value="[% lizenzen %]">
+
+<p><div class="listtop" width="100%">[% title %]</div></p>
+
+<table width="100%">
+ <tr>
+ <td valign="top">
+ <table>
+ <tr>
+ <th align="right">Lieferant</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'vendor',
+ style = 'width: 250px',
+ DATA = ALL_VENDORS,
+ id_sub = 'vc_keys',
+ label_key = 'name',
+ select = vc_select,
+ limit = vclimit,
+ allow_textbox = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ <input type="button" value="D" onclick="show_vc_details('[% vc | html %]')">
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[id="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
+ </td>
+ <input type="hidden" name="vendor_klass" value="[% HTML.escape(vendor_klass) %]">
+ <input type="hidden" name="vendor_id" value="[% HTML.escape(vendor_id) %]">
+ <input type="hidden" name="oldvendor" value="[% HTML.escape(oldvendor) %]">
+ <input type="hidden" name="selectvendor" value="[% HTML.escape(selectvendor) %]">
+ </tr>
+[%- IF ALL_CONTACTS.size %]
+ <tr>
+ <th align="right">Ansprechpartner</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'cp_id',
+ style = 'width: 250px',
+ DATA = ALL_CONTACTS,
+ id_key = 'cp_id',
+ label_sub = 'contact_labels',
+ show_empty = 1 -%]
+ </td>
+ </tr>
+[%- END %]
+ <tr>
+ <td align="right">Kreditlimit</td>
+ <td>
+ [% LxERP.format_amount(creditlimit, 0, '0') %]; Rest
+ <span class="plus[% IF is_credit_remaining_negativ %]0[% ELSE %]1[% END %]">[% LxERP.format_amount(creditremaining,0 ,'0') %]</span>
+ </td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Buchen auf</th>
+ <td colspan="3"><select name="AP" style="width:250px;">[% selectAP %]</select></td>
+ <input type="hidden" name="selectAP" value="[% selectAP %]">
+ </tr>
+ <tr>
+ <th align="right">Steuersatz</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'taxzone_id'
+ style = 'width: 250px'
+ DATA = ALL_TAXZONES
+ id_key = 'id'
+ readonly = (id ? 1 : 0)
+ label_key = 'description' -%]
+ </td>
+ [%- IF id %]
+ <input type='hidden' name='taxzone_id' value='[% taxzone_id %]'>
+ [%- END %]
+ </tr>
+[%- IF all_departments %]
+ <tr>
+ <th align="right" nowrap>Abteilung</th>
+ <td colspan="3">
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'department_id',
+ style = 'width: 250px',
+ DATA = all_departments,
+ id_key = 'id',
+ label_sub = 'department_labels',
+ show_empty = 1 -%]
+ </td>
+ </tr>
+[%- END %]
+[%- IF currencies %]
+ <tr>
+ <th align="right">Währung</th>
+ <td>[% currencies %]</td>
+ </tr>
+[%- END %]
+ <input type="hidden" name="fxgain_accno" value="[% fxgain_accno %]">
+ <input type="hidden" name="fxloss_accno" value="[% fxloss_accno %]">
+[%- IF show_exchangerate %]
+ <tr>
+ <th align="right">Wechselkurs</th>
+ <td>
+ [%- IF forex %]
+ [% LxERP.format_amount(exchangerate, 2) %]
+ [%- ELSE %]
+ <input name="exchangerate" size="10" value="[% HTML.escape(LxERP.format_amount(exchangerate)) %]">
+ [%- END %]
+ </td>
+ </tr>
+[%- END %]
+ </table>
+ </td>
+ <td align="right" valign="top">
+ <table>
+ <tr>
+ <th align="right">Bearbeiter</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'employee_id',
+ DATA = ALL_EMPLOYEES,
+ id_key = 'id',
+ label_sub = 'sales_employee_labels' -%]
+ </td>
+ </tr>
+
+[%- IF is_type_credit_note %]
+ <tr>
+ <th align="right" nowrap>Gutschriftnummer</th>
+ <td colspan="3"><input size='11' name="invnumber" value="[% HTML.escape(invnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right">Gutschriftdatum</th>
+ <td nowrap>
+ <input name="invdate" id="invdate" size="11" title="[% dateformat %]" value="[% invdate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="invdate_button" id="trigger1" value="?">
+ </td>
+ </tr>
+[%- ELSE %]
+ <tr>
+ <th align="right" nowrap>Rechnungsnummer</th>
+ <td colspan="3"><input size='11' name="invnumber" value="[% HTML.escape(invnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right">Rechnungsdatum</th>
+ <td nowrap>
+ <input name="invdate" id="invdate" size="11" title="[% dateformat %]" value="[% invdate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="invdate_button" id="trigger1" value="?">
+ </td>
+ </tr>
+ <tr>
+ <th align="right">Fälligkeitsdatum</th>
+ <td width="13">
+ <input name="duedate" id="duedate" size="11" title="[% dateformat %]" value="[% duedate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="duedate_button" id="trigger2" value="?">
+ </td>
+ </tr>
+[%- END %]
+
+ <tr>
+ <th align="right" nowrap>Auftragsnummer</th>
+ <td colspan="3"><input size='11' name="ordnumber" value="[% HTML.escape(ordnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Auftragsdatum</th>
+ <td><input name="orddate" id="orddate" size="11" title="[% dateformat %]" value="[% orddate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="b_orddate" id="trigger_orddate" value="?"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Angebotsdatum</th>
+ <td><input name="quodate" id="quodate" size="11" title="[% dateformat %]" value="[% quodate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="b_quodate" id="trigger_quodate" value="?"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Projektnummer</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'globalproject_id',
+ DATA = ALL_PROJECTS,
+ id_key = 'id',
+ label_key = 'projectnumber',
+ show_empty = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ </td>
+ </tr>
+ <script type="text/javascript" src="js/show_form_details.js"></script>
+ <script type="text/javascript" src="js/show_vc_details.js"></script>
+ <script type="text/javascript" src="js/show_history.js"></script>
+ <script type="text/javascript">
+ <!--
+ Calendar.setup({ inputField : "invdate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger1" });
+ Calendar.setup({ inputField : "duedate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger2" });
+ Calendar.setup({ inputField : "orddate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger_orddate" });
+ Calendar.setup({ inputField : "quodate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger_quodate" });
+ $('document').ready(function(){
+[% IF creditwarning != '' %]
+ alert('Kreditlimit überschritten!');
+[% ELSE %]
+ focus();
+[% END %]
+ setupDateFormat('[% dateformat %]', 'Falsches Datumsformat!');
+ setupPoints('[% numberformat %]', 'Falsches Format');
+ });
+ //-->
+ </script>
+
+ <input type="hidden" name="webdav" value="[% webdav %]">
--- /dev/null
+[%- USE HTML %]
+[%- USE LxERP %]
+[%- SET follow_up_trans_info = invnumber _ ' (' _ vendor_name _ ')' %]
+<body>
+<script type="text/javascript" src="js/common.js"></script>
+<script type="text/javascript" src="js/delivery_vendor_selection.js"></script>
+<script type="text/javascript" src="js/vendor_selection.js"></script>
+<script type="text/javascript" src="js/calculate_qty.js"></script>
+<script type="text/javascript" src="js/follow_up.js"></script>
+<script type="text/javascript" src="js/customer_or_vendor_selection.js"></script>
+
+<form method="post" name="invoice" action="[% script %]">
+
+<p>[% saved_message %]</p>
+
+[%- FOREACH key = HIDDENS %]
+<input type="hidden" name="[% HTML.escape(key) %]" value="[% HTML.escape($key) %]">
+[%- END %]
+<input type="hidden" name="follow_up_trans_id_1" value="[% id %]">
+<input type="hidden" name="follow_up_trans_type_1" value="sales_invoice">
+<input type="hidden" name="follow_up_trans_info_1" value="[% HTML.escape(follow_up_trans_info) %]">
+<input type="hidden" name="follow_up_rowcount" value="1">
+
+<input type="hidden" name="lizenzen" value="[% lizenzen %]">
+
+<p><div class="listtop" width="100%">[% title %]</div></p>
+
+<table width="100%">
+ <tr>
+ <td valign="top">
+ <table>
+ <tr>
+ <th align="right">Vendor</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'vendor',
+ style = 'width: 250px',
+ DATA = ALL_VENDORS,
+ id_sub = 'vc_keys',
+ label_key = 'name',
+ select = vc_select,
+ limit = vclimit,
+ allow_textbox = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ <input type="button" value="Details (one letter abbreviation)" onclick="show_vc_details('[% vc | html %]')">
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[id="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
+ </td>
+ <input type="hidden" name="vendor_klass" value="[% HTML.escape(vendor_klass) %]">
+ <input type="hidden" name="vendor_id" value="[% HTML.escape(vendor_id) %]">
+ <input type="hidden" name="oldvendor" value="[% HTML.escape(oldvendor) %]">
+ <input type="hidden" name="selectvendor" value="[% HTML.escape(selectvendor) %]">
+ </tr>
+[%- IF ALL_CONTACTS.size %]
+ <tr>
+ <th align="right">Contact Person</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'cp_id',
+ style = 'width: 250px',
+ DATA = ALL_CONTACTS,
+ id_key = 'cp_id',
+ label_sub = 'contact_labels',
+ show_empty = 1 -%]
+ </td>
+ </tr>
+[%- END %]
+ <tr>
+ <td align="right">Credit Limit</td>
+ <td>
+ [% LxERP.format_amount(creditlimit, 0, '0') %]; Remaining
+ <span class="plus[% IF is_credit_remaining_negativ %]0[% ELSE %]1[% END %]">[% LxERP.format_amount(creditremaining,0 ,'0') %]</span>
+ </td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Record in</th>
+ <td colspan="3"><select name="AP" style="width:250px;">[% selectAP %]</select></td>
+ <input type="hidden" name="selectAP" value="[% selectAP %]">
+ </tr>
+ <tr>
+ <th align="right">Steuersatz</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'taxzone_id'
+ style = 'width: 250px'
+ DATA = ALL_TAXZONES
+ id_key = 'id'
+ readonly = (id ? 1 : 0)
+ label_key = 'description' -%]
+ </td>
+ [%- IF id %]
+ <input type='hidden' name='taxzone_id' value='[% taxzone_id %]'>
+ [%- END %]
+ </tr>
+[%- IF all_departments %]
+ <tr>
+ <th align="right" nowrap>Department</th>
+ <td colspan="3">
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'department_id',
+ style = 'width: 250px',
+ DATA = all_departments,
+ id_key = 'id',
+ label_sub = 'department_labels',
+ show_empty = 1 -%]
+ </td>
+ </tr>
+[%- END %]
+[%- IF currencies %]
+ <tr>
+ <th align="right">Currency</th>
+ <td>[% currencies %]</td>
+ </tr>
+[%- END %]
+ <input type="hidden" name="fxgain_accno" value="[% fxgain_accno %]">
+ <input type="hidden" name="fxloss_accno" value="[% fxloss_accno %]">
+[%- IF show_exchangerate %]
+ <tr>
+ <th align="right">Exchangerate</th>
+ <td>
+ [%- IF forex %]
+ [% LxERP.format_amount(exchangerate, 2) %]
+ [%- ELSE %]
+ <input name="exchangerate" size="10" value="[% HTML.escape(LxERP.format_amount(exchangerate)) %]">
+ [%- END %]
+ </td>
+ </tr>
+[%- END %]
+ </table>
+ </td>
+ <td align="right" valign="top">
+ <table>
+ <tr>
+ <th align="right">Employee</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'employee_id',
+ DATA = ALL_EMPLOYEES,
+ id_key = 'id',
+ label_sub = 'sales_employee_labels' -%]
+ </td>
+ </tr>
+
+[%- IF is_type_credit_note %]
+ <tr>
+ <th align="right" nowrap>Credit Note Number</th>
+ <td colspan="3"><input size='11' name="invnumber" value="[% HTML.escape(invnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right">Credit Note Date</th>
+ <td nowrap>
+ <input name="invdate" id="invdate" size="11" title="[% dateformat %]" value="[% invdate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="invdate_button" id="trigger1" value="button">
+ </td>
+ </tr>
+[%- ELSE %]
+ <tr>
+ <th align="right" nowrap>Invoice Number</th>
+ <td colspan="3"><input size='11' name="invnumber" value="[% HTML.escape(invnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right">Invoice Date</th>
+ <td nowrap>
+ <input name="invdate" id="invdate" size="11" title="[% dateformat %]" value="[% invdate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="invdate_button" id="trigger1" value="button">
+ </td>
+ </tr>
+ <tr>
+ <th align="right">Due Date</th>
+ <td width="13">
+ <input name="duedate" id="duedate" size="11" title="[% dateformat %]" value="[% duedate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="duedate_button" id="trigger2" value="button">
+ </td>
+ </tr>
+[%- END %]
+
+ <tr>
+ <th align="right" nowrap>Order Number</th>
+ <td colspan="3"><input size='11' name="ordnumber" value="[% HTML.escape(ordnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Order Date</th>
+ <td><input name="orddate" id="orddate" size="11" title="[% dateformat %]" value="[% orddate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="b_orddate" id="trigger_orddate" value="?"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Quotation Date</th>
+ <td><input name="quodate" id="quodate" size="11" title="[% dateformat %]" value="[% quodate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="b_quodate" id="trigger_quodate" value="?"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Project Number</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'globalproject_id',
+ DATA = ALL_PROJECTS,
+ id_key = 'id',
+ label_key = 'projectnumber',
+ show_empty = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ </td>
+ </tr>
+ <script type="text/javascript" src="js/show_form_details.js"></script>
+ <script type="text/javascript" src="js/show_vc_details.js"></script>
+ <script type="text/javascript" src="js/show_history.js"></script>
+ <script type="text/javascript">
+ <!--
+ Calendar.setup({ inputField : "invdate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger1" });
+ Calendar.setup({ inputField : "duedate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger2" });
+ Calendar.setup({ inputField : "orddate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger_orddate" });
+ Calendar.setup({ inputField : "quodate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger_quodate" });
+ $('document').ready(function(){
+[% IF creditwarning != '' %]
+ alert('Credit Limit exceeded!!!');
+[% ELSE %]
+ focus();
+[% END %]
+ setupDateFormat('[% dateformat %]', 'Falsches Datumsformat!');
+ setupPoints('[% numberformat %]', 'wrongformat');
+ });
+ //-->
+ </script>
+
+ <input type="hidden" name="webdav" value="[% webdav %]">
--- /dev/null
+[%- USE HTML %]
+[%- USE LxERP %]
+[%- SET follow_up_trans_info = invnumber _ ' (' _ vendor_name _ ')' %]
+<body>
+<script type="text/javascript" src="js/common.js"></script>
+<script type="text/javascript" src="js/delivery_vendor_selection.js"></script>
+<script type="text/javascript" src="js/vendor_selection.js"></script>
+<script type="text/javascript" src="js/calculate_qty.js"></script>
+<script type="text/javascript" src="js/follow_up.js"></script>
+<script type="text/javascript" src="js/customer_or_vendor_selection.js"></script>
+
+<form method="post" name="invoice" action="[% script %]">
+
+<p>[% saved_message %]</p>
+
+[%- FOREACH key = HIDDENS %]
+<input type="hidden" name="[% HTML.escape(key) %]" value="[% HTML.escape($key) %]">
+[%- END %]
+<input type="hidden" name="follow_up_trans_id_1" value="[% id %]">
+<input type="hidden" name="follow_up_trans_type_1" value="sales_invoice">
+<input type="hidden" name="follow_up_trans_info_1" value="[% HTML.escape(follow_up_trans_info) %]">
+<input type="hidden" name="follow_up_rowcount" value="1">
+
+<input type="hidden" name="lizenzen" value="[% lizenzen %]">
+
+<p><div class="listtop" width="100%">[% title %]</div></p>
+
+<table width="100%">
+ <tr>
+ <td valign="top">
+ <table>
+ <tr>
+ <th align="right"><translate>Vendor</translate></th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'vendor',
+ style = 'width: 250px',
+ DATA = ALL_VENDORS,
+ id_sub = 'vc_keys',
+ label_key = 'name',
+ select = vc_select,
+ limit = vclimit,
+ allow_textbox = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ <input type="button" value="<translate>Details (one letter abbreviation)</translate>" onclick="show_vc_details('[% vc | html %]')">
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[id="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
+ </td>
+ <input type="hidden" name="vendor_klass" value="[% HTML.escape(vendor_klass) %]">
+ <input type="hidden" name="vendor_id" value="[% HTML.escape(vendor_id) %]">
+ <input type="hidden" name="oldvendor" value="[% HTML.escape(oldvendor) %]">
+ <input type="hidden" name="selectvendor" value="[% HTML.escape(selectvendor) %]">
+ </tr>
+[%- IF ALL_CONTACTS.size %]
+ <tr>
+ <th align="right"><translate>Contact Person</translate></th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'cp_id',
+ style = 'width: 250px',
+ DATA = ALL_CONTACTS,
+ id_key = 'cp_id',
+ label_sub = 'contact_labels',
+ show_empty = 1 -%]
+ </td>
+ </tr>
+[%- END %]
+ <tr>
+ <td align="right"><translate>Credit Limit</translate></td>
+ <td>
+ [% LxERP.format_amount(creditlimit, 0, '0') %]; <translate>Remaining</translate>
+ <span class="plus[% IF is_credit_remaining_negativ %]0[% ELSE %]1[% END %]">[% LxERP.format_amount(creditremaining,0 ,'0') %]</span>
+ </td>
+ </tr>
+ <tr>
+ <th align="right" nowrap><translate>Record in</translate></th>
+ <td colspan="3"><select name="AP" style="width:250px;">[% selectAP %]</select></td>
+ <input type="hidden" name="selectAP" value="[% selectAP %]">
+ </tr>
+ <tr>
+ <th align="right"><translate>Steuersatz</translate></th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'taxzone_id'
+ style = 'width: 250px'
+ DATA = ALL_TAXZONES
+ id_key = 'id'
+ readonly = (id ? 1 : 0)
+ label_key = 'description' -%]
+ </td>
+ [%- IF id %]
+ <input type='hidden' name='taxzone_id' value='[% taxzone_id %]'>
+ [%- END %]
+ </tr>
+[%- IF all_departments %]
+ <tr>
+ <th align="right" nowrap><translate>Department</translate></th>
+ <td colspan="3">
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'department_id',
+ style = 'width: 250px',
+ DATA = all_departments,
+ id_key = 'id',
+ label_sub = 'department_labels',
+ show_empty = 1 -%]
+ </td>
+ </tr>
+[%- END %]
+[%- IF currencies %]
+ <tr>
+ <th align="right"><translate>Currency</translate></th>
+ <td>[% currencies %]</td>
+ </tr>
+[%- END %]
+ <input type="hidden" name="fxgain_accno" value="[% fxgain_accno %]">
+ <input type="hidden" name="fxloss_accno" value="[% fxloss_accno %]">
+[%- IF show_exchangerate %]
+ <tr>
+ <th align="right"><translate>Exchangerate</translate></th>
+ <td>
+ [%- IF forex %]
+ [% LxERP.format_amount(exchangerate, 2) %]
+ [%- ELSE %]
+ <input name="exchangerate" size="10" value="[% HTML.escape(LxERP.format_amount(exchangerate)) %]">
+ [%- END %]
+ </td>
+ </tr>
+[%- END %]
+ </table>
+ </td>
+ <td align="right" valign="top">
+ <table>
+ <tr>
+ <th align="right"><translate>Employee</translate></th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'employee_id',
+ DATA = ALL_EMPLOYEES,
+ id_key = 'id',
+ label_sub = 'sales_employee_labels' -%]
+ </td>
+ </tr>
+
+[%- IF is_type_credit_note %]
+ <tr>
+ <th align="right" nowrap><translate>Credit Note Number</translate></th>
+ <td colspan="3"><input size='11' name="invnumber" value="[% HTML.escape(invnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right"><translate>Credit Note Date</translate></th>
+ <td nowrap>
+ <input name="invdate" id="invdate" size="11" title="[% dateformat %]" value="[% invdate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="invdate_button" id="trigger1" value="<translate>button</translate>">
+ </td>
+ </tr>
+[%- ELSE %]
+ <tr>
+ <th align="right" nowrap><translate>Invoice Number</translate></th>
+ <td colspan="3"><input size='11' name="invnumber" value="[% HTML.escape(invnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right"><translate>Invoice Date</translate></th>
+ <td nowrap>
+ <input name="invdate" id="invdate" size="11" title="[% dateformat %]" value="[% invdate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="invdate_button" id="trigger1" value="<translate>button</translate>">
+ </td>
+ </tr>
+ <tr>
+ <th align="right"><translate>Due Date</translate></th>
+ <td width="13">
+ <input name="duedate" id="duedate" size="11" title="[% dateformat %]" value="[% duedate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="duedate_button" id="trigger2" value="<translate>button</translate>">
+ </td>
+ </tr>
+[%- END %]
+
+ <tr>
+ <th align="right" nowrap><translate>Order Number</translate></th>
+ <td colspan="3"><input size='11' name="ordnumber" value="[% HTML.escape(ordnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap><translate>Order Date</translate></th>
+ <td><input name="orddate" id="orddate" size="11" title="[% dateformat %]" value="[% orddate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="b_orddate" id="trigger_orddate" value="?"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap><translate>Quotation Date</translate></th>
+ <td><input name="quodate" id="quodate" size="11" title="[% dateformat %]" value="[% quodate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="b_quodate" id="trigger_quodate" value="?"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap><translate>Project Number</translate></th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'globalproject_id',
+ DATA = ALL_PROJECTS,
+ id_key = 'id',
+ label_key = 'projectnumber',
+ show_empty = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ </td>
+ </tr>
+ <script type="text/javascript" src="js/show_form_details.js"></script>
+ <script type="text/javascript" src="js/show_vc_details.js"></script>
+ <script type="text/javascript" src="js/show_history.js"></script>
+ <script type="text/javascript">
+ <!--
+ Calendar.setup({ inputField : "invdate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger1" });
+ Calendar.setup({ inputField : "duedate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger2" });
+ Calendar.setup({ inputField : "orddate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger_orddate" });
+ Calendar.setup({ inputField : "quodate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger_quodate" });
+ $('document').ready(function(){
+[% IF creditwarning != '' %]
+ alert('<translate>Credit Limit exceeded!!!</translate>');
+[% ELSE %]
+ focus();
+[% END %]
+ setupDateFormat('[% dateformat %]', '<translate>Falsches Datumsformat!</translate>');
+ setupPoints('[% numberformat %]', '<translate>wrongformat</translate>');
+ });
+ //-->
+ </script>
+
+ <input type="hidden" name="webdav" value="[% webdav %]">
--- /dev/null
+[%- USE LxERP %]
+ <tr>
+ <td>
+ <table width="100%">
+ <tr class="listheading">
+[% IF is_type_credit_note %]
+ <th colspan="6" class="listheading">Payments</th>
+[% ELSE %]
+ <th colspan="6" class="listheading">Incoming Payments</th>
+[%- END %]
+ </tr>
+
+
+ <tr>
+ <th>Date</th>
+ <th>Source</th>
+ <th>Memo</th>
+ <th>Amount</th>
+[% IF show_exchangerate %]
+ <th>Exch</th>
+[% END %]
+ <th>Account</th>
+ </tr>
+
+
+[% FOREACH i = paid_indices %]
+ [% SET datepaid = 'datepaid_' _ i %]
+ [% SET source = 'source_' _ i %]
+ [% SET memo = 'memo_' _ i %]
+ [% SET paid = 'paid_' _ i %]
+ [% SET selectAR_paid_ref = 'selectAR_paid_' _ i %]
+
+ <tr>
+
+ <td align="center">
+ <input id="datepaid_[% i %]" name="datepaid_[% i %]" size="11" title="[% dateformat %]" value="[% $datepaid %]">
+ <input type="button" name="datepaid_[% i %]" id="trigger_datepaid_[% i %]" value="?">
+ </td>
+ <td align=center><input name="source_[% i %]" size="11" value="[% $source %]"></td>
+ <td align="center"><input name="memo_[% i %]" size="11" value="[% $memo %]"></td>
+ <td align="center"><input name="paid_[% i %]" size="11" value="[% LxERP.format_amount($paid, 2, 1) %]"></td>
+[% IF show_exchangerate %]
+ <td align="center">
+ [% SET forex = 'forex_' _ i %]
+ [% SET exchangerate = 'exchangerate_' _ i %]
+ [% IF forex %]
+ <input type="hidden" name="exchangerate_[% i %]" value="[% LxERP.format_amount($exchangerate, 2) %]">
+ [% LxERP.format_amount(exchangerate, 2) %]
+ [% ELSE %]
+ <input name="exchangerate_[% i %]" size="10" value="[% LxERP.format_amount($exchangerate, 2, 1) %]">
+ [% END %]
+ <input type="hidden" name="forex_[% i %]" value="[% $forex %]">;
+ </td>
+[% END %]
+ <td align="center"><select name="AR_paid_[% i %]">[% $selectAR_paid_ref %]</select></td>
+
+ </tr>
+ <script type='text/javascript'>
+ Calendar.setup({ inputField : "datepaid_[% i %]", ifFormat :"[% myconfig_jsc_dateformat %]", align : "TR", button : "trigger_datepaid_[% i %]" });
+ $('input[name="paid_[% i %]"]').blur(function(){ check_right_number_format(this) });
+ $('#datepaid_[% i %]').blur(function(){ check_right_date_format(this) });
+ </script>
+
+[% END # foreach %]
+
+ <tr>
+ <td></td>
+ <td></td>
+ <td align="center">Total</td>
+ <td align="center">[% LxERP.foramt_amount(totalpaid, 2) | html %]</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td align="center">Missing amount</td>
+ <td align="center">[% LxERP.format_amount(paid_missing, 2) | html %]</td>
+ </tr>
+
+ <input type="hidden" name="paidaccounts" value="[% paidaccounts %]">
+ <input type="hidden" name="selectAR_paid" value="[% selectAR_paid %]">
+ <input type="hidden" name="oldinvtotal" value="[% oldinvtotal %]">
+
+ <input type="hidden" name="oldtotalpaid" value="[% totalpaid %]">
+ </table>
+
+ </td>
+ </tr>
--- /dev/null
+[%- USE HTML %]
+[%- USE LxERP %]
+ <tr>
+ <td>
+ <table width="100%">
+ <tr valign="bottom">
+ <td>
+ <table>
+ <tr>
+ <th align="left">Notes</th>
+ <th align="left">Internal Notes</th>
+ <th align="right">Payment Terms</th>
+ </tr>
+ <tr valign="top">
+ <td>
+ <textarea name="notes" rows="[% rows %]" cols="26" wrap="soft">[% notes %]</textarea>
+ </td>
+ <td>
+ <textarea name="intnotes" rows="[% rows %]" cols="35" wrap="soft">[% intnotes %]</textarea>
+ </td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'payment_id',
+ style = 'width: 250px',
+ DATA = payment_terms,
+ id_key = 'id',
+ label_key = 'description',
+ show_empty = 1
+ allow_textbox = 0 -%]
+ <script type='text/javascript'>$('#payment_id').change(function(){
+ if (this.value) set_duedate(['payment_id__' + this.value, 'invdate__' + invdate.value],['duedate'])})
+ </script>
+ </td>
+ </tr>
+[%- IF id && follow_ups.size %]
+ <tr>
+ <td colspan="2">
+ [%- LxERP.format_string('There are #1 unfinished follow-ups of which #2 are due.',
+ follow_ups.size, follow_ups_unfinished) | html
+ %]
+ <td>
+ </tr>
+[%- END %]
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <th align=left>Ertrag</th>
+ <td>[% LxERP.format_amount(marge_total, 2, 0) %]</td>
+ </tr>
+ <tr>
+ <th align=left>Ertrag prozentual</th>
+ <td>[% LxERP.format_amount(marge_percent, 2, 0) %] %</td>
+ </tr>
+ <input type=hidden name="marge_total" value="[% marge_total %]">
+ <input type=hidden name="marge_percent" value="[% marge_percent %]">
+ </table>
+ </td>
+ <td align="right">
+ [%- IF taxaccounts %]
+ <input name="taxincluded" class="checkbox" type="checkbox" [% IF taxincluded %]checked[% END %]>
+ <b>Tax Included</b>
+ <br>
+ <br>
+ [%- END %]
+ <table>
+
+[%- UNLESS taxincluded %]
+ <tr>
+ <th align="right">Subtotal</th>
+ <td align="right">[% LxERP.format_amount(invsubtotal, 2) %]</td>
+ </tr>
+[%- END %]
+
+[%# tax %]
+[% FOREACH item = taxaccounts_array %]
+[% SET description_ref = item _ '_description' %]
+[% SET rate_ref = item _ '_rate' %]
+[% SET total_ref = item _ '_total' %]
+[% SET netto_ref = item _ '_netto' %]
+ <tr>
+ <th align="right">Enthaltene [% $description_ref | html %] [% $rate_ref * 100 %]%</th>
+ <td align="right">[% LxERP.format_amount($total_ref, 2) %]</td>
+ </tr>
+ [%- IF taxincluded %]
+ <tr>
+ <th align="right">Nettobetrag</th>
+ <td align="right">[% LxERP.format_amount($netto_ref, 2) %]</td>
+ </tr>
+ [%- END %]
+[%- END %]
+
+ <tr>
+ <th align="right">Total</th>
+ <td align="right">[% LxERP.format_amount(invtotal, 2) %]</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+[% PROCESS 'webdav/_list_master.html' %]
+
+[% PROCESS 'is/_payments_master.html' %]
+
+ <tr>
+ <td><hr size="3" noshade></td>
+ </tr>
+ <tr>
+ <td>
+[% print_options %]
+ </td>
+ </tr>
+ </table>
+
+
+
+ [% IF id %]
+
+ <input class="submit" type="submit" accesskey="u" name="action" id="update_button" value="Update">
+ <input class="submit" type="submit" name="action" value="Ship to">
+ <input class="submit" type="submit" name="action" value="Print">
+ <input class="submit" type="submit" name="action" value="E-mail">
+[% IF show_storno %]
+ <input class="submit" type="submit" name="action" value="Storno">
+[% END %]
+ <input class="submit" type="submit" name="action" value="Post Payment">
+ <input class="submit" type="submit" name="action" value="Use As Template">
+
+[% IF id && !is_type_credit_note %]
+ <input class="submit" type="submit" name="action" value="Credit Note">
+[% END %]
+[% IF show_delete %]
+ <input class="submit" type="submit" name="action" value="Delete">
+[% END %]
+
+ [%- UNLESS locked %]
+ <input class="submit" type="submit" name="action" value="Order">
+ [%- END %]
+
+ <input type="button" class="submit" onclick="follow_up_window()" value="Follow-Up">
+
+ [% ELSE # no id %]
+ [% UNLESS locked %]
+ <input class="submit" type="submit" name="action" id="update_button" value="Update">
+ <input class="submit" type="submit" name="action" value="Ship to">
+ <input class="submit" type="submit" name="action" value="Preview">
+ <input class="submit" type="submit" name="action" value="E-mail">
+ <input class="submit" type="submit" name="action" value="Print and Post">
+ <input class="submit" type="submit" name="action" value="Post">
+ <input class="submit" type="submit" name="action" value="Save Draft">
+ [%- END %]
+ [% END # id %]
+
+ [% IF id %]
+ [%#- button for saving history %]
+ <input type="button" class="submit" onclick="set_history_window([% id | html %]);" name="history" id="history" value="history">
+
+ <input type="submit" class="submit" name="action" value="mark as paid">
+ [% END %]
+
+<input type="hidden" name="rowcount" value="[% rowcount %]">
+<input type="hidden" name="callback" value="[% callback %]">
+<input type="hidden" name="draft_id" value="[% draft_id %]">
+<input type="hidden" name="draft_description" value="[% draft_description %]">
+<input type="hidden" name="customer_discount" value="[% customer_discount %]">
+
+</form>
+
+</body>
+
+</html>
allow_textbox = 1,
onChange = "document.getElementById('update_button').click();" -%]
<input type="button" value="D" onclick="show_vc_details('[% HTML.escape(vc) %]')">
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[id="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
</td>
<input type="hidden" name="customer_klass" value="[% HTML.escape(customer_klass) %]">
<input type="hidden" name="customer_id" value="[% HTML.escape(customer_id) %]">
<script type="text/javascript" src="js/show_form_details.js"></script>
<script type="text/javascript" src="js/show_vc_details.js"></script>
<script type="text/javascript" src="js/show_history.js"></script>
- <script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
<!--
Calendar.setup({ inputField : "invdate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger1" });
--- /dev/null
+[%- USE HTML %]
+[%- USE LxERP %]
+[%- SET follow_up_trans_info = invnumber _ ' (' _ customer_name _ ')' %]
+<body>
+<script type="text/javascript" src="js/common.js"></script>
+<script type="text/javascript" src="js/delivery_customer_selection.js"></script>
+<script type="text/javascript" src="js/vendor_selection.js"></script>
+<script type="text/javascript" src="js/calculate_qty.js"></script>
+<script type="text/javascript" src="js/follow_up.js"></script>
+<script type="text/javascript" src="js/customer_or_vendor_selection.js"></script>
+
+<form method="post" name="invoice" action="[% script %]">
+
+<p>[% saved_message %]</p>
+
+[%- FOREACH key = HIDDENS %]
+<input type="hidden" name="[% HTML.escape(key) %]" value="[% HTML.escape($key) %]">
+[%- END %]
+<input type="hidden" name="follow_up_trans_id_1" value="[% id %]">
+<input type="hidden" name="follow_up_trans_type_1" value="sales_invoice">
+<input type="hidden" name="follow_up_trans_info_1" value="[% HTML.escape(follow_up_trans_info) %]">
+<input type="hidden" name="follow_up_rowcount" value="1">
+
+<input type="hidden" name="lizenzen" value="[% lizenzen %]">
+
+<p><div class="listtop" width="100%">[% title %]</div></p>
+
+<table width="100%">
+ <tr>
+ <td valign="top">
+ <table>
+ <tr>
+ <th align="right">Customer</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'customer',
+ style = 'width: 250px',
+ DATA = ALL_CUSTOMERS,
+ id_sub = 'vc_keys',
+ label_key = 'name',
+ select = vc_select,
+ limit = vclimit,
+ allow_textbox = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ <input type="button" value="Details (one letter abbreviation)" onclick="show_vc_details('[% HTML.escape(vc) %]')">
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[id="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
+ </td>
+ <input type="hidden" name="customer_klass" value="[% HTML.escape(customer_klass) %]">
+ <input type="hidden" name="customer_id" value="[% HTML.escape(customer_id) %]">
+ <input type="hidden" name="oldcustomer" value="[% HTML.escape(oldcustomer) %]">
+ <input type="hidden" name="selectcustomer" value="[% HTML.escape(selectcustomer) %]">
+ </tr>
+[%- IF ALL_CONTACTS.size %]
+ <tr>
+ <th align="right">Contact Person</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'cp_id',
+ style = 'width: 250px',
+ DATA = ALL_CONTACTS,
+ id_key = 'cp_id',
+ label_sub = 'contact_labels',
+ show_empty = 1 -%]
+ </td>
+ </tr>
+[%- END %]
+[%- IF ALL_SHIPTO.size %]
+ <tr>
+ <th align="right">Shipping Address</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'shipto_id',
+ style = 'width: 250px',
+ DATA = ALL_SHIPTO,
+ id_key = 'shipto_id',
+ label_sub = 'shipto_labels',
+ show_empty = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ </td>
+ </tr>
+[%- END %]
+ <tr>
+ <td align="right">Credit Limit</td>
+ <td>
+ [% LxERP.format_amount(creditlimit, 0, '0') %]; Remaining
+ <span class="plus[% IF is_credit_remaining_negativ %]0[% ELSE %]1[% END %]">[% LxERP.format_amount(creditremaining,0 ,'0') %]</span>
+ </td>
+ </tr>
+[%- IF max_dunning_level %]
+ <tr>
+ <th align="right">Max. Dunning Level:</th>
+ <td>
+ <b>[% max_dunning_level %]</b>; Dunning Amount: <b>[% LxERP.format_amount(dunning_amount,2) %]</b>
+ </td>
+ </tr>
+[%- END %]
+[%- IF business %]
+ <tr>
+ <th align="right">Customer type</th>
+ <td>[% business %]; Trade Discount [% LxERP.format_amount(tradediscount * 100) %] %</td>
+ </tr>
+[%- END %]
+ <tr>
+ <th align="right" nowrap>Record in</th>
+ <td colspan="3"><select name="AR" style="width:250px;">[% selectAR %]</select></td>
+ <input type="hidden" name="selectAR" value="[% selectAR %]">
+ </tr>
+ <tr>
+ <th align="right">Steuersatz</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'taxzone_id'
+ stype = '250px'
+ DATA = ALL_TAXZONES
+ id_key = 'id'
+ readonly = (id ? 1 : 0)
+ label_key = 'description' -%]
+ </td>
+ [%- IF id %]
+ <input type='hidden' name='taxzone_id' value='[% taxzone_id %]'>
+ [%- END %]
+ </tr>
+[%- IF all_departments %]
+ <tr>
+ <th align="right" nowrap>Department</th>
+ <td colspan="3">
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'department_id',
+ style = 'width: 250px',
+ DATA = all_departments,
+ id_key = 'id',
+ label_sub = 'department_labels',
+ show_empty = 1 -%]
+ </td>
+ </tr>
+[%- END %]
+[%- IF currencies %]
+ <tr>
+ <th align="right">Currency</th>
+ <td>[% currencies %]</td>
+ </tr>
+[%- END %]
+ <input type="hidden" name="fxgain_accno" value="[% fxgain_accno %]">
+ <input type="hidden" name="fxloss_accno" value="[% fxloss_accno %]">
+[%- IF show_exchangerate %]
+ <tr>
+ <th align="right">Exchangerate</th>
+ <td>
+ [%- IF forex %]
+ [% LxERP.format_amount(exchangerate, 2) %]
+ [%- ELSE %]
+ <input name="exchangerate" size="10" value="[% HTML.escape(LxERP.format_amount(exchangerate)) %]">
+ [%- END %]
+ </td>
+ </tr>
+[%- END %]
+ <tr>
+ <th align="right" nowrap>Shipping Point</th>
+ <td colspan="3"><input size='35' name="shippingpoint" value="[% HTML.escape(shippingpoint) %]"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Ship via</th>
+ <td colspan="3"><input size='35' name="shipvia" value="[% HTML.escape(shipvia) %]"></td>
+ </tr>
+ <tr>
+ <th align="right">Transaction description</th>
+ <td colspan="3"><input size='35' name="transaction_description" value="[% HTML.escape(transaction_description) %]"></td>
+ </tr>
+ </table>
+ </td>
+ <td align="right" valign="top">
+ <table>
+ <tr>
+ <th align="right">Employee</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'employee_id',
+ DATA = ALL_EMPLOYEES,
+ id_key = 'id',
+ label_sub = 'sales_employee_labels' -%]
+ </td>
+ </tr>
+[%- IF ALL_SALESMEN.size %]
+ <tr>
+ <th align="right">Salesman</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'salesman_id',
+ default = salesman_id ? salesman_id : employee_id,
+ DATA = ALL_SALESMEN,
+ id_key = 'id',
+ label_sub = 'sales_employee_labels' -%]
+ </td>
+ </tr>
+[%- END %]
+
+[%- IF is_type_credit_note %]
+ <tr>
+ <th align="right" nowrap>Credit Note Number</th>
+ <td colspan="3"><input size='11' name="invnumber" value="[% HTML.escape(invnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right">Credit Note Date</th>
+ <td nowrap>
+ <input name="invdate" id="invdate" size="11" title="[% dateformat %]" value="[% invdate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="invdate_button" id="trigger1" value="button">
+ </td>
+ </tr>
+[%- ELSE %]
+ <tr>
+ <th align="right" nowrap>Invoice Number</th>
+ <td colspan="3"><input size='11' name="invnumber" value="[% HTML.escape(invnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right">Invoice Date</th>
+ <td nowrap>
+ <input name="invdate" id="invdate" size="11" title="[% dateformat %]" value="[% invdate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="invdate_button" id="trigger1" value="button">
+ </td>
+ </tr>
+ <tr>
+ <th align="right">Due Date</th>
+ <td width="13">
+ <input name="duedate" id="duedate" size="11" title="[% dateformat %]" value="[% duedate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="duedate_button" id="trigger2" value="button">
+ </td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Delivery Order Number</th>
+ <td colspan="3"><input size='11' name="donumber" value="[% HTML.escape(donumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right">Delivery Date</th>
+ <td width="13">
+ <input name="deliverydate" id="deliverydate" size="11" title="[% dateformat %]" value="[% deliverydate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="deliverydate_button" id="trigger3" value="button">
+ </td>
+ </tr>
+[%- END %]
+
+ <tr>
+ <th align="right" nowrap>Order Number</th>
+ <td colspan="3"><input size='11' name="ordnumber" value="[% HTML.escape(ordnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Order Date</th>
+ <td><input name="orddate" id="orddate" size="11" title="[% dateformat %]" value="[% orddate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="b_orddate" id="trigger_orddate" value="?"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Quotation Number</th>
+ <td colspan="3"><input size='11' name="quonumber" value="[% HTML.escape(quonumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Quotation Date</th>
+ <td><input name="quodate" id="quodate" size="11" title="[% dateformat %]" value="[% quodate %]" onBlur="check_right_date_format(this)">
+ <input type="button" name="b_quodate" id="trigger_quodate" value="?"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Customer Order Number</th>
+ <td colspan="3"><input size='11' name="cusordnumber" value="[% HTML.escape(cusordnumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Project Number</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'globalproject_id',
+ DATA = ALL_PROJECTS,
+ id_key = 'id',
+ label_key = 'projectnumber',
+ show_empty = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ </td>
+ </tr>
+ <script type="text/javascript" src="js/show_form_details.js"></script>
+ <script type="text/javascript" src="js/show_vc_details.js"></script>
+ <script type="text/javascript" src="js/show_history.js"></script>
+ <script type="text/javascript">
+ <!--
+ Calendar.setup({ inputField : "invdate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger1" });
+[% IF !is_type_credit_note %]
+ Calendar.setup({ inputField : "duedate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger2" });
+ Calendar.setup({ inputField : "deliverydate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger3" });
+[% END %]
+ Calendar.setup({ inputField : "orddate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger_orddate" });
+ Calendar.setup({ inputField : "quodate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger_quodate" });
+ $('document').ready(function(){
+[% IF resubmit && is_format_html %]
+ window.open('about:blank','Beleg');
+ document.invoice.target = 'Beleg';
+ document.invoice.submit();
+[% ELSIF resubmit %]
+ document.invoice.submit();
+[% ELSIF creditwarning != '' %]
+ alert('Credit Limit exceeded!!!');
+[% ELSE %]
+ focus();
+[% END %]
+ setupDateFormat('[% dateformat %]', 'Falsches Datumsformat!');
+ setupPoints('[% numberformat %]', 'wrongformat');
+ });
+ //-->
+ </script>
+
+ <input type="hidden" name="webdav" value="[% webdav %]">
allow_textbox = 1,
onChange = "document.getElementById('update_button').click();" -%]
<input type="button" value="<translate>Details (one letter abbreviation)</translate>" onclick="show_vc_details('[% HTML.escape(vc) %]')">
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[id="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
</td>
<input type="hidden" name="customer_klass" value="[% HTML.escape(customer_klass) %]">
<input type="hidden" name="customer_id" value="[% HTML.escape(customer_id) %]">
<script type="text/javascript" src="js/show_form_details.js"></script>
<script type="text/javascript" src="js/show_vc_details.js"></script>
<script type="text/javascript" src="js/show_history.js"></script>
- <script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
<!--
Calendar.setup({ inputField : "invdate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger1" });
<td align="left" width="30%"><b>Dateiname</b></td>
<td align="left" width="70%"><b>Webdavlink</b></td>
</tr>
- [%- FOREACH file=WEBDAV %]
+ [%- FOREACH file = WEBDAV %]
<tr>
<td align="left">[% HTML.escape(file.name) %]</td>
<td align="left"><a href="[% file.link %]">[% HTML.escape(file.type) %]</a></td>
onChange = "document.getElementById('update_button').click();" -%]
<input type="button" value="D" onclick="show_vc_details('[% HTML.escape(vc) %]')">
</td>
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[id="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
</tr>
[%- IF ALL_CONTACTS.size %]
<tr>
onChange = "document.getElementById('update_button').click();" -%]
<input type="button" value="Details (one letter abbreviation)" onclick="show_vc_details('[% HTML.escape(vc) %]')">
</td>
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[id="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
</tr>
[%- IF ALL_CONTACTS.size %]
<tr>
onChange = "document.getElementById('update_button').click();" -%]
<input type="button" value="<translate>Details (one letter abbreviation)</translate>" onclick="show_vc_details('[% HTML.escape(vc) %]')">
</td>
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[id="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
</tr>
[%- IF ALL_CONTACTS.size %]
<tr>
</table>
</td>
</tr>
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ic.pl', column => 'description', selector => '[name^="description_"]' },
+ { script => 'ic.pl', column => 'partnumber', selector => '[name^="partnumber_"]' },
+]
+%]
[% USE HTML %]
<tr>
<td>
- <input type="hidden" name="show_details" value="[% HTML.escape(show_details) %]">
- <input type="checkbox" id="cb_show_details" onclick="show_form_details([% IF show_details %]0[% ELSE %]1[% END %]);"[%- IF show_details %] checked[% END %]>
+ <input type="checkbox" id="cb_show_details" name="show_details" [%- IF show_details %] checked[% END %]>
<label for="cb_show_details">Show details</label><br>
+ <script type="text/javascript">
+ $('#cb_show_details').click(function(){ $('[id$="row2"]').toggle() });
+ </script>
<table width="100%">
<tr class="listheading">[% FOREACH header = HEADER %][% IF header.display %]
<th align="left" nowrap width="[% header.width %]" class="listheading">[% header.value %]</th>[% END %][% END %]
[% FOREACH hidden = row.HIDDENS %][% hidden.value %]
[% END %]
- <tr class="listrow[% loop.count % 2 %]" [% UNLESS show_details %]style="display:none;"[% END %]><td colspan="[% row.colspan %]">[% FOREACH row2 = row.ROW2 %]
+ <tr class="listrow[% loop.count % 2 %]" id="[% loop.count %].row2" [% UNLESS show_details %]style="display:none;"[% END %]><td colspan="[% row.colspan %]">[% FOREACH row2 = row.ROW2 %]
[% IF row2.line_break %]<br/>[% END %]
[% row2.value %][% END %]
</td></tr>
</table>
</td>
</tr>
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ic.pl', column => 'description', selector => '[name^="description_"]' },
+ { script => 'ic.pl', column => 'partnumber', selector => '[name^="partnumber_"]' },
+]
+%]
</table>
</td>
</tr>
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ic.pl', column => 'description', selector => '[name^="description_"]' },
+ { script => 'ic.pl', column => 'partnumber', selector => '[name^="partnumber_"]' },
+]
+%]
show_empty = 1,
allow_textbox = 1,
-%]
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
</td>
</tr>
[%- IF ALL_DEPARTMENTS.size %]
[%- USE HTML %]
[%- SET vclabel = vc == 'customer' ? 'Customer' : 'Vendor' %]
+[%- SET vcnumberlabel = vc == 'customer' ? 'Customer Number' : 'Vendor Number' %]
<body>
<form method="post" action="oe.pl">
show_empty = 1,
allow_textbox = 1,
-%]
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
</td>
</tr>
[%- IF ALL_DEPARTMENTS.size %]
</td>
</tr>
<tr>
- <td colspan=4 align=left><b>Customer</td>
+ <td colspan=4 align=left><b>[% HTML.escape(vclabel) %]</td>
</tr>
<tr>
+ <td>
+ <input name="l_vcnumber" id="l_vcnumber" class="checkbox" type="checkbox" value="Y">
+ <label for="l_vcnumber">[% HTML.escape(vcnumberlabel) %]</label>
+ </td>
<td>
<input name="l_country" id="l_country" class="checkbox" type="checkbox" value="Y">
<label for="l_country">Country</label>
show_empty = 1,
allow_textbox = 1,
-%]
+[% INCLUDE 'generic/autocomplete.html', AUTOCOMPLETES => [
+ { script => 'ct.pl', column => 'name', selector => 'input[name="' _ vc _ '"]', params => { vc => vc } },
+]
+%]
</td>
</tr>
[%- IF ALL_DEPARTMENTS.size %]
[%- IF row.BORDER_BOTTOM %][%- SET tdclass = "$tdclass bottom_border" %][%- END %]
[%- IF col.class %][%- SET tdclass = "$tdclass $col.class" %][%- END %]
[%- IF tdclass %] class="[% tdclass %]"[%- END %]>
- [%- IF col.raw_data %][%- col.raw_data %][%- END %]
- [%- USE iterator(col.CELL_ROWS) %][%- FOREACH cell_row = iterator %]
- [%- IF cell_row.data != '' %]
- [%- IF cell_row.link %]<a href="[% cell_row.link %]">[%- END %]
- [%- cell_row.data %]
- [%- IF cell_row.link %]</a>[%- END %]
+ [%- IF col.raw_data %]
+ [%- col.raw_data %]
+ [%- ELSE %]
+ [%- USE iterator(col.CELL_ROWS) %][%- FOREACH cell_row = iterator %]
+ [%- IF cell_row.data != '' %]
+ [%- IF cell_row.link %]<a href="[% cell_row.link %]">[%- END %]
+ [%- cell_row.data %]
+ [%- IF cell_row.link %]</a>[%- END %]
+ [%- END %]
+ [%- UNLESS iterator.last %]<br>[%- END %]
[%- END %]
- [%- UNLESS iterator.last %]<br>[%- END %]
[%- END %]
</td>
[%- END %]
--- /dev/null
+[% USE HTML %][% USE LxERP %]
+<body>
+
+ <p><div class="listtop">[% title %]</div></p>
+
+ <form action="sepa.pl" method="post">
+ <p>
+ Please select the source bank account for the transfers:
+ <br>
+ [%- INCLUDE generic/multibox.html
+ name = 'bank_account.id',
+ DATA = BANK_ACCOUNTS,
+ id_key = 'id',
+ label_sub = 'bank_account_label',
+ -%]
+ </p>
+
+ <p>
+ <table>
+ <tr>
+ <th class="listheading" align="center"><input type="checkbox" id="select_all"></th>
+ <th class="listheading">Vendor</th>
+ <th class="listheading">Invoice</th>
+ <th class="listheading" align="right">Amount</th>
+ <th class="listheading" align="right">Open amount</th>
+ <th class="listheading">Purpose</th>
+ <th class="listheading" align="right">Bank transfer amount</th>
+ </tr>
+
+ [%- FOREACH invoice = INVOICES %]
+ <input type="hidden" name="bank_transfers[+].ap_id" value="[% HTML.escape(invoice.id) %]">
+
+ <tr class="listrow[% loop.count % 2 %]">
+ <td align="center">
+ [%- IF invoice.vendor_bank_info_ok %]
+ <input type="checkbox" name="bank_transfers[].selected" value="1">
+ [%- END %]
+ </td>
+ <td>
+ [%- IF loop.first || (previous_vendorname != invoice.vendorname) %]
+ <a href="ct.pl?action=edit&db=vendor&id=[% HTML.url(invoice.vendor_id) %]&callback=[% HTML.url('sepa.pl?action=bank_transfer_add') %]">
+ [%- GET HTML.escape(invoice.vendorname);
+ SET previous_vendorname = invoice.vendorname;
+ IF !invoice.vendor_bank_info_ok;
+ GET ' <sup>(1)</sup>';
+ SET show_vendor_bank_info_footnote = '1';
+ END; -%]
+ </a>
+ [%- END -%]
+ </td>
+
+ <td>
+ <a href="[% IF invoice.invoice %]ir[% ELSE %]ap[% END %].pl?action=edit&id=[% HTML.escape(invoice.id) %]">
+ [% HTML.escape(invoice.invnumber) %]
+ </a>
+ </td>
+
+ <td align="right">[% LxERP.format_amount(invoice.invoice_amount, -2) %]</td>
+ <td align="right">[% LxERP.format_amount(invoice.open_amount, -2) %]</td>
+ <td><input name="bank_transfers[].reference" value="[% HTML.escape(invoice.invnumber) %]"></td>
+ <td align="right">
+ <input name="bank_transfers[].amount" value="[% LxERP.format_amount(invoice.invoice_amount, -2) %]" style="text-align: right">
+ </td>
+ </tr>
+ [%- END %]
+ </table>
+ </p>
+
+ [%- IF show_vendor_bank_info_footnote %]
+ <p>
+ <sup>(1)</sup> No bank information has been entered in this vendor's master data entry. You cannot create bank transfers unless you enter bank information.
+ </p>
+ [%- END %]
+
+ <p>
+ <input type="submit" class="submit" name="action_bank_transfer_create" value="Step 2">
+ </p>
+
+ <input type="hidden" name="action" value="dispatcher">
+ </form>
+
+ <script type="text/javascript" src="js/jquery.js"></script>
+ <script type="text/javascript">
+ <!--
+ $(document).ready(function() {
+ $("#select_all").click(function() {
+ var checked = $(this).attr('checked');
+ $('INPUT[name="bank_transfers[].selected"]').each(function() {
+ $(this).attr('checked', checked);
+ });
+ });
+ });
+ -->
+ </script>
+
+</body>
+</html>
--- /dev/null
+[% USE HTML %][% USE LxERP %]
+<body>
+
+ [%- IF error_message %]
+ <p><div class="error_message">[% error_message %]</div></p>
+ [%- END %]
+
+ <p><div class="listtop">[% title %]</div></p>
+
+ <form action="sepa.pl" method="post">
+ <p>1. Please select the source bank account for the transfers:
+ <br>
+ [%- INCLUDE generic/multibox.html
+ name = 'bank_account.id',
+ DATA = BANK_ACCOUNTS,
+ id_key = 'id',
+ label_sub = 'bank_account_label',
+ -%]
+ </p>
+
+ <p>
+ 2. Please Check the bank information for each vendor:
+ <br>
+ <table>
+ <tr>
+ <th class="listheading">Vendor</th>
+ <th class="listheading">IBAN</th>
+ <th class="listheading">BIC</th>
+ <th class="listheading">Bank</th>
+ </tr>
+
+ [%- FOREACH vbi = VENDOR_BANK_INFO %]
+ <tr class="listrow[% loop.count % 1 %]">
+ <td>
+ <input type="hidden" name="vendor_bank_info[+].id" value="[% HTML.escape(vbi.id) %]">
+ <input type="hidden" name="vendor_bank_info[].name" value="[% HTML.escape(vbi.name) %]">
+ [% HTML.escape(vbi.name) %]
+ </td>
+ <td><input name="vendor_bank_info[].iban" size="20" value="[% HTML.escape(vbi.iban) %]"></td>
+ <td><input name="vendor_bank_info[].bic" size="20" value="[% HTML.escape(vbi.bic) %]"></td>
+ <td><input name="vendor_bank_info[].bank" size="30" value="[% HTML.escape(vbi.bank) %]"></td>
+ </tr>
+ [%- END %]
+ </table>
+ </p>
+
+ <p>
+ 3. Enter the requested execution date or leave empty for the quickest possible execution:
+ <br>
+ <table>
+ <tr>
+ <th class="listheading">Vendor</th>
+ <th class="listheading">Invoice</th>
+ <th class="listheading" align="right">Amount</th>
+ <th class="listheading" align="right">Open amount</th>
+ <th class="listheading">Purpose</th>
+ <th class="listheading" align="right">Bank transfer amount</th>
+ <th class="listheading">Execution date</th>
+ </tr>
+
+ [%- FOREACH bank_transfer = BANK_TRANSFERS %]
+ <input type="hidden" name="bank_transfers[+].ap_id" value="[% HTML.escape(bank_transfer.id) %]">
+ <input type="hidden" name="bank_transfers[].vendor_id" value="[% HTML.escape(bank_transfer.vendor_id) %]">
+ <input type="hidden" name="bank_transfers[].selected" value="1">
+
+ <tr class="listrow[% loop.count % 2 %]">
+ <td>
+ [%- IF loop.first || (previous_vendorname != bank_transfer.vendorname) %]
+ <a href="ct.pl?action=edit&db=vendor&id=[% HTML.url(bank_transfer.vendor_id) %]&callback=[% HTML.url('sepa.pl?action=bank_transfer_add') %]">
+ [%- GET HTML.escape(bank_transfer.vendorname);
+ SET previous_vendorname = bank_transfer.vendorname; -%]
+ </a>
+ [%- END -%]
+ </td>
+
+ <td>
+ <a href="[% IF bank_transfer.invoice %]ir[% ELSE %]ap[% END %].pl?action=edit&id=[% HTML.escape(bank_transfer.id) %]">
+ [% HTML.escape(bank_transfer.invnumber) %]
+ </a>
+ </td>
+
+ <td align="right">[% LxERP.format_amount(bank_transfer.invoice_amount, -2) %]</td>
+ <td align="right">[% LxERP.format_amount(bank_transfer.open_amount, -2) %]</td>
+ <td><input name="bank_transfers[].reference" value="[% HTML.escape(bank_transfer.reference) %]"></td>
+ <td align="right"><input name="bank_transfers[].amount" value="[% LxERP.format_amount(bank_transfer.amount, -2) %]" style="text-align: right"></td>
+ <td nowrap>
+ <input name="bank_transfers[].requested_execution_date"
+ id="requested_execution_date_[% loop.count %]"
+ value="[% HTML.escape(bank_transfer.requested_execution_date) %]"
+ size="11">
+ <input type="button" name="requested_execution_date_[% loop.count %]_trigger" id="requested_execution_date_[% loop.count %]_trigger" value="?">
+ </td>
+ </tr>
+ [%- END %]
+ </table>
+ </p>
+
+ <p>
+ <input type="submit" class="submit" name="action_bank_transfer_create" value="Create bank transfer">
+ </p>
+
+ <input type="hidden" name="action" value="dispatcher">
+ <input type="hidden" name="confirmation" value="1">
+ </form>
+
+ <script type="text/javascript">
+ <!--
+ [%- FOREACH row = BANK_TRANSFERS %]
+ Calendar.setup({ inputField : "requested_execution_date_[% loop.count %]",
+ ifFormat : "[% myconfig_jsc_dateformat %]",
+ align : "BL",
+ button : "requested_execution_date_[% loop.count %]_trigger" });
+ [%- END %]
+ -->
+ </script>
+
+</body>
+</html>
--- /dev/null
+[% USE HTML %]
+<body>
+
+ <p><div class="listtop">[% title %]</div></p>
+
+ <p>
+ The SEPA export has been created.
+ </p>
+
+ <p>
+ <ul>
+ <li>
+ <a href="sepa.pl?action=bank_transfer_download_sepa_xml&id=[% HTML.url(id) %]">
+ Download SEPA XML export file
+ </a>
+ </li>
+
+ <li>
+ <a href="sepa.pl?action=bank_transfer_list&l_open=1&l_not_executed=1">
+ List open SEPA exports
+ </a>
+ </li>
+ </ul>
+ </p>
+
+</body>
+</html>
--- /dev/null
+[% USE HTML %]
+[% USE LxERP %]
+<body>
+
+ <p><div class="listtop">[% title %]: [% HTML.escape(export.ids.join(', ')) %]</div></p>
+
+ <form action="sepa.pl" method="post">
+ <input type="hidden" name="action" value="dispatcher">
+
+ <p>
+ <table>
+ <tr>
+ [%- IF show_post_payments_button %]
+ <th class="listheading" align="center"><input type="checkbox" id="select_all"></th>
+ [%- END %]
+ <th class="listheading">Invoice</th>
+ <th class="listheading">Vendor</th>
+ <th class="listheading" colspan="2">Source bank account</th>
+ <th class="listheading" colspan="2">Target bank account</th>
+ <th class="listheading" align="right">Amount</th>
+ <th class="listheading">Reference</th>
+ <th class="listheading" align="right">Requested execution date</th>
+ <th class="listheading" align="right">Execution date</th>
+ </tr>
+ <tr>
+ <th class="listheading" colspan="[% IF show_post_payments_button %]3[% ELSE %]2[% END %]"> </th>
+ <th class="listheading">IBAN</th>
+ <th class="listheading">BIC</th>
+ <th class="listheading">IBAN</th>
+ <th class="listheading">BIC</th>
+ [%- IF show_post_payments_button %]
+ <th class="listheading" colspan="3"> </th>
+ <th class="listheading">
+ <input name="set_all_execution_date" id="set_all_execution_date" size="11">
+ <input type="button" name="set_all_execution_date_trigger" id="set_all_execution_date_trigger" value="?">
+ </th>
+ [%- ELSE %]
+ <th class="listheading" colspan="4"> </th>
+ [%- END %]
+ </tr>
+
+ [%- FOREACH item = export.items %]
+ <tr class="listrow[% loop.count % 2 %]">
+ [%- IF show_post_payments_button %]
+ <input type="hidden" name="items[+].id" value="[% HTML.escape(item.id) %]">
+ <input type="hidden" name="items[].sepa_export_id" value="[% HTML.escape(item.sepa_export_id) %]">
+ <td align="center">
+ [%- UNLESS item.executed %]
+ <input type="checkbox" name="items[].selected" value="1">
+ [%- END %]
+ </td>
+ [%- END %]
+ <td>
+ <a href="[% IF item.invoice %]ir[% ELSE %]ap[% END %].pl?action=edit&type=invoice&id=[% HTML.url(item.ap_id) %]">[% HTML.escape(item.invnumber) %]</a>
+ </td>
+ <td>[% HTML.escape(item.vendor_name) %]</td>
+ <td>[% HTML.escape(item.our_iban) %]</td>
+ <td>[% HTML.escape(item.our_bic) %]</td>
+ <td>[% HTML.escape(item.vendor_iban) %]</td>
+ <td>[% HTML.escape(item.vendor_bic) %]</td>
+ <td align="right">[% HTML.escape(LxERP.format_amount(item.amount, 2)) %]</td>
+ <td>[% HTML.escape(item.reference) %]</td>
+ <td align="right">[% HTML.escape(item.requested_execution_date) %]</td>
+ <td align="right" nowrap>
+ [%- IF item.executed %]
+ [% HTML.escape(item.execution_date) %]
+ [%- ELSIF item.export_closed %]
+ not executed
+ [%- ELSE %]
+ <input name="items[].execution_date" id="execution_date_[% loop.count %]" size="11"
+ value="[% IF item.requested_execution_date %][% HTML.escape(item.requested_execution_date) %][% ELSE %][% HTML.escape(current_date) %][% END %]">
+ <input type="button" name="execution_date_[% loop.count %]_trigger" id="execution_date_[% loop.count %]_trigger" value="?">
+ [%- END %]
+ </td>
+ </tr>
+ [%- END %]
+ </table>
+ </p>
+
+ <p><hr></p>
+
+ [%- IF show_post_payments_button %]
+ <p>
+ <input type="submit" class="submit" name="action_bank_transfer_post_payments" value="Post payments">
+ </p>
+
+ <script type="text/javascript" src="js/jquery.js"></script>
+ <script type="text/javascript">
+ <!--
+ function set_all_execution_date_fields() {
+ var new_date = $('#set_all_execution_date').attr('value');
+ $('INPUT[name="items[].execution_date"]').each(function() {
+ $(this).attr('value', new_date);
+ });
+ }
+
+ $(document).ready(function() {
+ $("#select_all").click(function() {
+ var checked = $(this).attr('checked');
+ $('INPUT[name="items[].selected"]').each(function() {
+ $(this).attr('checked', checked);
+ });
+ });
+
+ [%- IF show_post_payments_button %]
+ Calendar.setup({ inputField : "set_all_execution_date",
+ ifFormat : "[% myconfig_jsc_dateformat %]",
+ align : "BL",
+ button : "set_all_execution_date_trigger",
+ onUpdate : set_all_execution_date_fields });
+
+ [%- FOREACH item = export.items %]
+ [%- IF !item.executed %]
+ Calendar.setup({ inputField : "execution_date_[% loop.count %]",
+ ifFormat : "[% myconfig_jsc_dateformat %]",
+ align : "BL",
+ button : "execution_date_[% loop.count %]_trigger" });
+ [%- END %]
+ [%- END %]
+ [%- END %]
+ });
+ -->
+ </script>
+
+ [%- ELSE %]
+ <p>
+ <input type="submit" class="submit" name="action_bank_transfer_payment_list_as_pdf" value="Payment list as PDF">
+ </p>
+
+ [%- FOREACH item = export.items %]
+ [%- IF item.executed %]
+ <input type="hidden" name="items[+].id" value="[% HTML.escape(item.id) %]">
+ <input type="hidden" name="items[].export_id" value="[% HTML.escape(item.export_id) %]">
+ [%- END %]
+ [%- END %]
+ [%- END %]
+ </form>
+
+</body>
+</html>
--- /dev/null
+[% USE HTML %]
+
+[%- IF show_buttons %]
+ <input type="hidden" name="action" value="dispatcher">
+ <input type="hidden" name="mode" value="multi">
+
+ <p>
+ <input type="submit" class="submit" name="action_bank_transfer_download_sepa_xml" value="SEPA XML download">
+ <input type="submit" class="submit" name="action_bank_transfer_edit" value="Post payments">
+ <input type="submit" class="submit" name="action_bank_transfer_mark_as_closed_step1" value="Mark as closed">
+ </p>
+
+ <script type="text/javascript" src="js/jquery.js"></script>
+ <script type="text/javascript">
+ <!--
+ $(document).ready(function() {
+ $("#select_all").click(function() {
+ var checked = $(this).attr('checked');
+ $('INPUT[name="exports[].selected"]').each(function() {
+ $(this).attr('checked', checked);
+ });
+ });
+ });
+ -->
+ </script>
+[%- END %]
+
+</form>
--- /dev/null
+<form action="sepa.pl" method="post">
--- /dev/null
+[% USE HTML %]
+<body>
+
+ <p><div class="listtop">[% title %]</div></p>
+
+ <form action="sepa.pl" method="post">
+ <p>
+ Do you really want to close the following SEPA exports? No payment will be recorded for bank transfers that haven't been marked as executed yet.
+ </p>
+
+ <p>
+ SEPA exports:
+ [%- FOREACH id = OPEN_EXPORT_IDS %]
+ [%- UNLESS loop.first %], [%- END %]
+ <input type="hidden" name="open_export_ids[]" value="[% HTML.escape(id) %]">
+ <a href="sepa.pl?action=bank_transfer_edit&id=[% HTML.url(id) %]">[% HTML.escape(id) %]</a>
+ [%- END %]
+ </p>
+
+ <p>
+ <input type="submit" class="submit" name="action_bank_transfer_mark_as_closed_step2" value="Mark as closed">
+ <input type="button" class="submit" value="Back" onclick="history.back()">
+ </p>
+
+ <input type="hidden" name="action" value="dispatcher">
+ </form>
+
+</body>
+</html>
--- /dev/null
+[% USE HTML %]
+<body>
+
+ <p><div class="listtop">[% title %]</div></p>
+
+ <form action="sepa.pl" method="post">
+ <p>
+ <table>
+ <tr>
+ <td align="right">Vendor</td>
+ <td><input name="f_vendor"></td>
+ </tr>
+
+ <tr>
+ <td align="right">Invoice number</td>
+ <td><input name="f_invnumber"></td>
+ </tr>
+
+ <tr>
+ <td align="right">Export date from</td>
+ <td>
+ <input name="f_export_date_from" id="f_export_date_from" size="11">
+ <input type="button" name="f_export_date_from_trigger" id="f_export_date_from_trigger" value="?">
+ to (time)
+ <input name="f_export_date_to" id="f_export_date_to" size="11">
+ <input type="button" name="f_export_date_to_trigger" id="f_export_date_to_trigger" value="?">
+ </td>
+ </tr>
+
+ <tr>
+ <td align="right">Requested execution date from</td>
+ <td>
+ <input name="f_requested_execution_date_from" id="f_requested_execution_date_from" size="11">
+ <input type="button" name="f_requested_execution_date_from_trigger" id="f_requested_execution_date_from_trigger" value="?">
+ to (time)
+ <input name="f_requested_execution_date_to" id="f_requested_execution_date_to" size="11">
+ <input type="button" name="f_requested_execution_date_to_trigger" id="f_requested_execution_date_to_trigger" value="?">
+ </td>
+ </tr>
+
+ <tr>
+ <td align="right">Execution date from</td>
+ <td>
+ <input name="f_execution_date_from" id="f_execution_date_from" size="11">
+ <input type="button" name="f_execution_date_from_trigger" id="f_execution_date_from_trigger" value="?">
+ to (time)
+ <input name="f_execution_date_to" id="f_execution_date_to" size="11">
+ <input type="button" name="f_execution_date_to_trigger" id="f_execution_date_to_trigger" value="?">
+ </td>
+ </tr>
+
+ <tr>
+ <td align="right" valign="top">Include in Report</td>
+ <td valign="top">
+ <table>
+ <tr>
+ <td>
+ <input type="checkbox" name="l_open" id="l_open" value="1" checked>
+ <label for="l_open">open</label>
+ </td>
+
+ <td>
+ <input type="checkbox" name="l_closed" id="l_closed" value="1">
+ <label for="l_closed">closed</label>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <input type="checkbox" name="l_not_executed" id="l_not_executed" value="1" checked>
+ <label for="l_not_executed">not yet executed</label>
+ </td>
+
+ <td>
+ <input type="checkbox" name="l_executed" id="l_executed" value="1" checked>
+ <label for="l_executed">executed</label>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ </table>
+ </p>
+
+ <p>
+ <input type="hidden" name="action" value="dispatcher">
+ <input type="submit" class="submit" name="action_bank_transfer_list" value="Continue">
+ </p>
+ </form>
+
+ <script type="text/javascript">
+ <!--
+ Calendar.setup({ inputField : "f_export_date_from",
+ ifFormat : "[% myconfig_jsc_dateformat %]",
+ align : "BL",
+ button : "f_export_date_from_trigger" });
+ Calendar.setup({ inputField : "f_export_date_to",
+ ifFormat : "[% myconfig_jsc_dateformat %]",
+ align : "BL",
+ button : "f_export_date_to_trigger" });
+
+ Calendar.setup({ inputField : "f_requested_execution_date_from",
+ ifFormat : "[% myconfig_jsc_dateformat %]",
+ align : "BL",
+ button : "f_requested_execution_date_from_trigger" });
+ Calendar.setup({ inputField : "f_requested_execution_date_to",
+ ifFormat : "[% myconfig_jsc_dateformat %]",
+ align : "BL",
+ button : "f_requested_execution_date_to_trigger" });
+
+ Calendar.setup({ inputField : "f_execution_date_from",
+ ifFormat : "[% myconfig_jsc_dateformat %]",
+ align : "BL",
+ button : "f_execution_date_from_trigger" });
+ Calendar.setup({ inputField : "f_execution_date_to",
+ ifFormat : "[% myconfig_jsc_dateformat %]",
+ align : "BL",
+ button : "f_execution_date_to_trigger" });
+
+ -->
+ </script>
+
+</body>
+</html>
<tr>
<td>
<table>
- <tr>
- <td width="50%" align="left" valign="top">
+ <tr>
+ <td width="50%" align="left" valign="top">
<fieldset>
<legend>
<b>Firma</b>
<tr>
<td>
<table>
- <tr>
- <td width="50%" align="left" valign="top">
+ <tr>
+ <td width="50%" align="left" valign="top">
<fieldset>
<legend>
<b>Company</b>
<tr>
<td>
<table>
- <tr>
- <td width="50%" align="left" valign="top">
+ <tr>
+ <td width="50%" align="left" valign="top">
<fieldset>
<legend>
<b><translate>Company</translate></b>
--- /dev/null
+
+[%- IF webdav %]
+ <tr>
+ <td><hr size="3" noshade></td>
+ </tr>
+ <tr>
+ <th class="listtop" align="left">Dokumente im Webdav-Repository</th>
+ </tr>
+ <table width="100%">
+ <tr>
+ <td align="left" width="30%"><b>Dateiname</b></td>
+ <td align="left" width="70%"><b>Webdavlink</b></td>
+ </tr>
+ [%- FOREACH file = WEBDAV %]
+ <tr>
+ <td align="left">[% file.name %]</td>
+ <td align="left"><a href="[% file.link %]">[% file.type %]</a></td>
+ </tr>
+ [%- END %]
+ </table>
+ </tr>
+[% END %]