$main::auth->assert('invoice_edit');
+ our %TMPL_VAR = ();
+ my @custom_hiddens;
+
$form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id};
$form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id};
"projects" => { "key" => "ALL_PROJECTS",
"all" => 0,
"old_id" => \@old_project_ids },
- "employees" => "ALL_SALESMEN",
+ "employees" => "ALL_EMPLOYEES",
+ "salesmen" => "ALL_SALESMEN",
"taxzones" => "ALL_TAXZONES",
"currencies" => "ALL_CURRENCIES",
"customers" => "ALL_CUSTOMERS",
"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"}} = join(',', $item->{"cp_name"}, $item->{"cp_givenname"}) . ($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_SALESMEN"} }) {
- push(@values, $item->{"id"});
- $labels{$item->{id}} = $item->{name} ne "" ? $item->{name} : $item->{login};
- }
-
- 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_CUSTOMERS"} }) {
- push(@values, $item->{name}.qq|--|.$item->{"id"});
- $labels{$item->{name}.qq|--|.$item->{"id"}} = $item->{"name"};
- }
-
- $form->{selectcustomer} = ($myconfig{vclimit} > scalar(@values));
-
- my $customers = qq|
- <th align="right">| . $locale->text('Customer') . qq|</th>
- <td>| .
- (($myconfig{vclimit} <= scalar(@values))
- ? qq|<input type="text" value="| . H($form->{customer}) . qq|" name="customer">|
- : (NTI($cgi->popup_menu('-name' => 'customer', '-default' => $form->{oldcustomer},
- '-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('customer')">
- </td>|;
-
- %labels = ();
- @values = ("");
- foreach my $item (@{ $form->{"ALL_SHIPTO"} }) {
- push(@values, $item->{"shipto_id"});
- $labels{$item->{"shipto_id"}} = join "; ", grep { $_ } map { $item->{"shipto${_}" } } qw(name department_1 street city);
- }
-
- my $shipto;
- if (scalar @values > 1) {
- $shipto = qq|
- <tr>
- <th align="right">| . $locale->text('Shipping Address') . qq|</th>
- <td>| . NTI($cgi->popup_menu('-name' => 'shipto_id', '-values' => \@values, '-style' => 'width: 250px',
- '-labels' => \%labels, '-default' => $form->{"shipto_id"})). qq|
- </td>|;
- }
-
- %labels = ();
- @values = ();
- foreach my $item (@{ $form->{"ALL_CURRENCIES"} }) {
- push(@values, $item);
- $labels{$item} = $item;
- }
+ $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('$form->{vc}', '', @{[ $form->{vc} eq 'vendor' ? 1 : 0 ]}, 0)";
+ push @custom_hiddens, "$form->{vc}_id";
+ push @custom_hiddens, "old$form->{vc}";
+ push @custom_hiddens, "select$form->{vc}";
+
+ # 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->{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_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 = ();
- foreach my $item (@{ $form->{ALL_SALESMEN} }) {
- push(@values, $item->{id});
- $labels{$item->{id}} = $item->{name} ne "" ? $item->{name} : $item->{login};
- }
-
- my $salesman =
- qq|<tr> <th align="right">| . $locale->text('Salesman') . qq|</th>
- <td>| . NTI($cgi->popup_menu('-name' => 'salesman_id', '-values' => \@values, '-labels' => \%labels,
- '-default' => $form->{salesman_id} ? $form->{salesman_id} : $form->{employee_id})) . qq|
- </td>
- </tr>|;
-
- %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>|;
+ $form->{fokus} = "invoice.customer";
- } 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 $follow_up_vc = $form->{customer};
+ $follow_up_vc =~ s/--\d*\s*$//;
+ $TMPL_VAR{customer_name} = $follow_up_vc;
- # set option selected
+# set option selected
foreach my $item (qw(AR customer currency department employee)) {
$form->{"select$item"} =~ s/ selected//;
$form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
}
- my $creditwarning = (($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update}) ? 1 : 0;
+ $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};
- $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");
+ # hiddens
+ $TMPL_VAR{HIDDEN} = [qw(
+ id action type media format queued printed emailed title vc discount
+ 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}];
- my $exchangerate = "";
- if ($form->{currency} ne $form->{defaultcurrency}) {
- if ($form->{forex}) {
- $exchangerate .= qq|<th align="right">| . $locale->text('Exchangerate') . qq|</th>
- <td>$form->{exchangerate}<input type="hidden" name="exchangerate" value="$form->{exchangerate}"></td>|;
- } else {
- $exchangerate .= qq|<th align="right">| . $locale->text('Exchangerate') . qq|</th>
- <td><input name="exchangerate" size="10" value="$form->{exchangerate}"></td>|;
- }
- }
- $exchangerate .= qq|\n<input type="hidden" name="forex" value="$form->{forex}">\n|;
-
- 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>
-| if $form->{selectdepartment};
-
- my $n = ($form->{creditremaining} =~ /-/) ? "0" : "1";
-
- my $business;
- if ($form->{business}) {
- $business = qq|
- <tr>
- <th align="right">| . $locale->text('Customer type') . qq|</th>
- <td>$form->{business}; | . $locale->text('Trade Discount') . qq| |
- . $form->format_amount(\%myconfig, $form->{tradediscount} * 100)
- . qq| %</td>
- </tr>
-|;
- }
-
- my $dunning;
- if ($form->{max_dunning_level}) {
- $dunning = qq|
- <tr>
- <th align="right">| . $locale->text('Max. Dunning Level') . qq|:</th>
- <td>
- <b>$form->{max_dunning_level}</b>;
- | . $locale->text('Dunning Amount') . qq|: <b>|
- . $form->format_amount(\%myconfig, $form->{dunning_amount},2)
- . qq|</b>
- </td>
- </tr>
-|;
- }
-
- $form->{fokus} = "invoice.customer";
-
- # use JavaScript Calendar or not
$form->{jsscript} = 1;
- my $jsscript = "";
- my ($button1, $button2, $button3);
- if ($form->{type} eq "credit_note") {
- $button1 = qq|
- <td nowrap><input name="invdate" id="invdate" size="11" title="$myconfig{dateformat}" value="$form->{invdate}" onBlur=\"check_right_date_format(this)\">
- <input type="button" name="invdate_button" id="trigger1" value="|
- . $locale->text('button') . qq|"></td>|;
-
- #write Trigger
- $jsscript =
- Form->write_trigger(\%myconfig, "1",
- "invdate", "BL",
- "trigger1");
- } else {
- $button1 = qq|
- <td nowrap><input name="invdate" id="invdate" size="11" title="$myconfig{dateformat}" value="$form->{invdate}" onBlur=\"check_right_date_format(this)\">
- <input type="button" name="invdate_button" id="trigger1" value="|
- . $locale->text('button') . qq|"></td>
- |;
- $button2 = qq|
- <td width="13"><input name="duedate" id="duedate" size="11" title="$myconfig{dateformat}" value="$form->{duedate}" onBlur=\"check_right_date_format(this)\">
- <input type="button" name="duedate_button" id="trigger2" value="|
- . $locale->text('button') . qq|"></td>
- |;
- $button3 = qq|
- <td width="13"><input name="deliverydate" id="deliverydate" size="11" title="$myconfig{dateformat}" value="$form->{deliverydate}" onBlur=\"check_right_date_format(this)\">
- <input type="button" name="deliverydate_button" id="trigger3" value="|
- . $locale->text('button') . qq|"></td>
- |;
-
- #write Trigger
- $jsscript =
- Form->write_trigger(\%myconfig, "3",
- "invdate", "BL", "trigger1",
- "duedate", "BL", "trigger2",
- "deliverydate", "BL", "trigger3");
- }
-
- my $credittext = $locale->text('Credit Limit exceeded!!!');
-
- my $follow_up_vc = $form->{customer};
- $follow_up_vc =~ s/--\d*\s*$//;
- my $follow_up_trans_info = "$form->{invnumber} ($follow_up_vc)";
-
- my $onload = ($form->{resubmit} && ($form->{format} eq "html")) ? qq|window.open('about:blank','Beleg'); document.invoice.target = 'Beleg';document.invoice.submit()|
- : ($form->{resubmit}) ? qq|document.invoice.submit()|
- : ($creditwarning) ? qq|alert('$credittext')|
- : "focus()";
- $onload .= qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|;
- $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
-
- $form->{javascript} .= qq|<script type="text/javascript" src="js/show_form_details.js"></script>|;
- $form->{javascript} .= qq|<script type="text/javascript" src="js/show_vc_details.js"></script>|;
-
- $jsscript .=
- $form->write_trigger(\%myconfig, 2,
- "orddate", "BL", "trigger_orddate",
- "quodate", "BL", "trigger_quodate");
- # show history button js
- $form->{javascript} .= qq|<script type="text/javascript" src="js/show_history.js"></script>|;
- #/show history button js
- $form->header;
-
- print qq|
-<body onLoad="$onload">
-<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>
-
-<form method="post" name="invoice" action="$form->{script}">
-| ;
-
- $form->hide_form(qw(id action type media format queued printed emailed title vc discount
- 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),
- map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts} );
-
- print qq|<p>$form->{saved_message}</p>| if $form->{saved_message};
-
- print qq|
-
-<input type="hidden" name="follow_up_trans_id_1" value="| . H($form->{id}) . qq|">
-<input type="hidden" name="follow_up_trans_type_1" value="sales_invoice">
-<input type="hidden" name="follow_up_trans_info_1" value="| . H($follow_up_trans_info) . qq|">
-<input type="hidden" name="follow_up_rowcount" value="1">
-
-<input type="hidden" name="lizenzen" value="$main::lizenzen">
-
-<div class="listtop" width="100%">$form->{title}</div>
-
-<table width="100%">
- <tr>
- <td valign="top">
- <table>
- <tr>
- $customers
- <input type="hidden" name="customer_klass" value="| . H($form->{customer_klass}) . qq|">
- <input type="hidden" name="customer_id" value="| . H($form->{customer_id}) . qq|">
- <input type="hidden" name="oldcustomer" value="| . H($form->{oldcustomer}) . qq|">
- <input type="hidden" name="selectcustomer" value="| . H($form->{selectcustomer}) . qq|">
- </tr>
- $contact
- $shipto
- <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>
- $dunning
- $business
- <tr>
- <th align="right" nowrap>| . $locale->text('Record in') . qq|</th>
- <td colspan="3"><select name="AR" style="width:250px;">$form->{selectAR}</select></td>
- <input type="hidden" name="selectAR" value="$form->{selectAR}">
- </tr>
- $taxzone
- $department
- <tr>
- $currencies
- <input type="hidden" name="fxgain_accno" value="$form->{fxgain_accno}">
- <input type="hidden" name="fxloss_accno" value="$form->{fxloss_accno}">
- $exchangerate
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Shipping Point') . qq|</th>
- <td colspan="3"> | .
- $cgi->textfield("-name" => "shippingpoint", "-size" => 35, "-value" => $form->{shippingpoint}) .
- qq| </td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Ship via') . qq|</th>
- <td colspan="3"> | .
- $cgi->textfield("-name" => "shipvia", "-size" => 35, "-value" => $form->{shipvia}) .
- qq| </td>
- </tr>
- <tr>
- <th align="right">| . $locale->text('Transaction description') . qq|</th>
- <td colspan="3">| . $cgi->textfield("-name" => "transaction_description", "-size" => 35, "-value" => $form->{transaction_description}) . qq|</td>
- </tr>|;
-# <tr>
-# <td colspan=4>
-# <table>
-# <tr>
-# <td colspan=2>
-# <button type="button" onclick="delivery_customer_selection_window('delivery_customer_string','delivery_customer_id')">| . $locale->text('Choose Customer') . qq|</button>
-# </td>
-# <td colspan=2><input type=hidden name=delivery_customer_id value="$form->{delivery_customer_id}">
-# <input size=45 id=delivery_customer_string name=delivery_customer_string value="$form->{delivery_customer_string}"></td>
-# </tr>
-# <tr>
-# <td colspan=2>
-# <button type="button" onclick="vendor_selection_window('delivery_vendor_string','delivery_vendor_id')">| . $locale->text('Choose Vendor') . qq|</button>
-# </td>
-# <td colspan=2><input type=hidden name=delivery_vendor_id value="$form->{delivery_vendor_id}">
-# <input size=45 id=delivery_vendor_string name=delivery_vendor_string value="$form->{delivery_vendor_string}"></td>
-# </tr>
-# </table>
-# </td>
-# </tr>
-print qq| </table>
- </td>
- <td align="right" valign="top">
- <table>
- $employees
- $salesman
-|;
-
-#ergänzung in der maske um das feld Lieferscheinnummer (Delivery Order Number), meiner meinung nach sinnvoll ueber dem feld lieferscheindatum 12.02.2009 jb
-if ($form->{type} eq "credit_note") {
-print qq| <tr>
- <th align="right" nowrap>| . $locale->text('Credit Note Number') . qq|</th>
- <td> |.
- $cgi->textfield("-name" => "invnumber", "-size" => 11, "-value" => $form->{invnumber}) .
- qq| </td>
- </tr>
- <tr>
- <th align="right">| . $locale->text('Credit Note Date') . qq|</th>
- $button1
- </tr>|;
-} else {
-print qq| <tr>
- <th align="right" nowrap>| . $locale->text('Invoice Number') . qq|</th>
- <td> |.
- $cgi->textfield("-name" => "invnumber", "-size" => 11, "-value" => $form->{invnumber}) .
- qq| </td>
- </tr>
- <tr>
- <th align="right">| . $locale->text('Invoice Date') . qq|</th>
- $button1
- </tr>
- <tr>
- <th align="right">| . $locale->text('Due Date') . qq|</th>
- $button2
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Delivery Order Number') . qq|</th>
- <td> |.
- $cgi->textfield("-name" => "donumber", "-size" => 11, "-value" => $form->{donumber}) .
- qq| </td>
- </tr>
- <tr>
- <th align="right">| . $locale->text('Delivery Date') . qq|</th>
- $button3
- </tr>|;
-}
-print qq| <tr>
- <th align="right" nowrap>| . $locale->text('Order Number') . qq|</th>
- <td> |.
- $cgi->textfield("-name" => "ordnumber", "-size" => 11, "-value" => $form->{ordnumber}) .
- qq| </td>
- </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 Number') . qq|</th>
- <td> |.
- $cgi->textfield("-name" => "quonumber", "-size" => 11, "-value" => $form->{quonumber}) .
- qq| </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('Customer Order Number') . qq|</th>
- <td> |.
- $cgi->textfield("-name" => "cusordnumber", "-size" => 11, "-value" => $form->{cusordnumber}) .
- qq| </td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Project Number') . qq|</th>
- <td>$globalprojectnumber</td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- </td>
- </tr>
- $jsscript
-|;
- print qq|<input type="hidden" name="webdav" value="$main::webdav">|;
+ $form->header();
+
+# print qq|
+#<body onLoad="$onload">
+#<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>
+#
+#<form method="post" name="invoice" action="$form->{script}">
+#| ;
+#
+# $form->hide_form(qw(id action type media format queued printed emailed title vc discount
+# 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),
+# map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts} );
+#
+# print qq|<p>$form->{saved_message}</p>| if $form->{saved_message};
+#
+# print qq|
+#
+#<input type="hidden" name="follow_up_trans_id_1" value="| . H($form->{id}) . qq|">
+#<input type="hidden" name="follow_up_trans_type_1" value="sales_invoice">
+#<input type="hidden" name="follow_up_trans_info_1" value="| . H($follow_up_trans_info) . qq|">
+#<input type="hidden" name="follow_up_rowcount" value="1">
+#
+#<input type="hidden" name="lizenzen" value="$lizenzen">
+#
+#<div class="listtop" width="100%">$form->{title}</div>
+#
+#<table width="100%">
+# <tr>
+# <td valign="top">
+# <table>
+# <tr>
+# $customers
+# <input type="hidden" name="customer_klass" value="| . H($form->{customer_klass}) . qq|">
+# <input type="hidden" name="customer_id" value="| . H($form->{customer_id}) . qq|">
+# <input type="hidden" name="oldcustomer" value="| . H($form->{oldcustomer}) . qq|">
+# <input type="hidden" name="selectcustomer" value="| . H($form->{selectcustomer}) . qq|">
+# </tr>
+# $contact
+# $shipto
+# <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>
+# $dunning
+# $business
+# <tr>
+# <th align="right" nowrap>| . $locale->text('Record in') . qq|</th>
+# <td colspan="3"><select name="AR" style="width:250px;">$form->{selectAR}</select></td>
+# <input type="hidden" name="selectAR" value="$form->{selectAR}">
+# </tr>
+# $taxzone
+# $department
+# <tr>
+# $currencies
+# <input type="hidden" name="fxgain_accno" value="$form->{fxgain_accno}">
+# <input type="hidden" name="fxloss_accno" value="$form->{fxloss_accno}">
+# $exchangerate
+# </tr>
+# <tr>
+# <th align="right" nowrap>| . $locale->text('Shipping Point') . qq|</th>
+# <td colspan="3"> | .
+# $cgi->textfield("-name" => "shippingpoint", "-size" => 35, "-value" => $form->{shippingpoint}) .
+# qq| </td>
+# </tr>
+# <tr>
+# <th align="right" nowrap>| . $locale->text('Ship via') . qq|</th>
+# <td colspan="3"> | .
+# $cgi->textfield("-name" => "shipvia", "-size" => 35, "-value" => $form->{shipvia}) .
+# qq| </td>
+# </tr>
+# <tr>
+# <th align="right">| . $locale->text('Transaction description') . qq|</th>
+# <td colspan="3">| . $cgi->textfield("-name" => "transaction_description", "-size" => 35, "-value" => $form->{transaction_description}) . qq|</td>
+# </tr>|;
+## <tr>
+## <td colspan=4>
+## <table>
+## <tr>
+## <td colspan=2>
+## <button type="button" onclick="delivery_customer_selection_window('delivery_customer_string','delivery_customer_id')">| . $locale->text('Choose Customer') . qq|</button>
+## </td>
+## <td colspan=2><input type=hidden name=delivery_customer_id value="$form->{delivery_customer_id}">
+## <input size=45 id=delivery_customer_string name=delivery_customer_string value="$form->{delivery_customer_string}"></td>
+## </tr>
+## <tr>
+## <td colspan=2>
+## <button type="button" onclick="vendor_selection_window('delivery_vendor_string','delivery_vendor_id')">| . $locale->text('Choose Vendor') . qq|</button>
+## </td>
+## <td colspan=2><input type=hidden name=delivery_vendor_id value="$form->{delivery_vendor_id}">
+## <input size=45 id=delivery_vendor_string name=delivery_vendor_string value="$form->{delivery_vendor_string}"></td>
+## </tr>
+## </table>
+## </td>
+## </tr>
+#print qq| </table>
+# </td>
+# <td align="right" valign="top">
+# <table>
+# $employees
+# $salesman
+#|;
+#
+##ergänzung in der maske um das feld Lieferscheinnummer (Delivery Order Number), meiner meinung nach sinnvoll ueber dem feld lieferscheindatum 12.02.2009 jb
+#if ($form->{type} eq "credit_note") {
+#print qq| <tr>
+# <th align="right" nowrap>| . $locale->text('Credit Note Number') . qq|</th>
+# <td> |.
+# $cgi->textfield("-name" => "invnumber", "-size" => 11, "-value" => $form->{invnumber}) .
+# qq| </td>
+# </tr>
+# <tr>
+# <th align="right">| . $locale->text('Credit Note Date') . qq|</th>
+# $button1
+# </tr>|;
+#} else {
+#print qq| <tr>
+# <th align="right" nowrap>| . $locale->text('Invoice Number') . qq|</th>
+# <td> |.
+# $cgi->textfield("-name" => "invnumber", "-size" => 11, "-value" => $form->{invnumber}) .
+# qq| </td>
+# </tr>
+# <tr>
+# <th align="right">| . $locale->text('Invoice Date') . qq|</th>
+# $button1
+# </tr>
+# <tr>
+# <th align="right">| . $locale->text('Due Date') . qq|</th>
+# $button2
+# </tr>
+# <tr>
+# <th align="right" nowrap>| . $locale->text('Delivery Order Number') . qq|</th>
+# <td> |.
+# $cgi->textfield("-name" => "donumber", "-size" => 11, "-value" => $form->{donumber}) .
+# qq| </td>
+# </tr>
+# <tr>
+# <th align="right">| . $locale->text('Delivery Date') . qq|</th>
+# $button3
+# </tr>|;
+#}
+#print qq| <tr>
+# <th align="right" nowrap>| . $locale->text('Order Number') . qq|</th>
+# <td> |.
+# $cgi->textfield("-name" => "ordnumber", "-size" => 11, "-value" => $form->{ordnumber}) .
+# qq| </td>
+# </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 Number') . qq|</th>
+# <td> |.
+# $cgi->textfield("-name" => "quonumber", "-size" => 11, "-value" => $form->{quonumber}) .
+# qq| </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('Customer Order Number') . qq|</th>
+# <td> |.
+# $cgi->textfield("-name" => "cusordnumber", "-size" => 11, "-value" => $form->{cusordnumber}) .
+# qq| </td>
+# </tr>
+# <tr>
+# <th align="right" nowrap>| . $locale->text('Project Number') . qq|</th>
+# <td>$globalprojectnumber</td>
+# </tr>
+# </table>
+# </td>
+# </tr>
+# </table>
+# </td>
+# </tr>
+# <tr>
+# <td>
+# </td>
+# </tr>
+# $jsscript
+#|;
+# print qq|<input type="hidden" name="webdav" value="$webdav">|;
+
+ print $form->parse_html_template("is/form_header", \%TMPL_VAR);
$main::lxdebug->leave_sub();
}
'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 quotations' => 'Angebote erfassen und bearbeiten',
'Create and edit vendor invoices' => 'Eingangsrechnungen erfassen und bearbeiten',
'Credit Limit' => 'Kreditlimit',
- 'Credit Limit exceeded!!!' => 'Kreditlimit überschritten!',
'Credit Note' => 'Gutschrift',
'Credit Note Date' => 'Gutschriftdatum',
'Credit Note Number' => 'Gutschriftnummer',
- 'Currency' => 'Währung',
'Customer' => 'Kunde',
'Customer Number' => 'Kundennummer',
'Customer Order Number' => 'Bestellnummer des Kunden',
'Customer missing!' => 'Kundenname fehlt!',
'Customer not on file or locked!' => 'Dieser Kunde existiert nicht oder ist gesperrt.',
'Customer not on file!' => 'Kunde ist nicht in der Datenbank!',
- 'Customer type' => 'Kundentyp',
'DATEV Export' => 'DATEV-Export',
'DELETED' => 'Gelöscht',
'DR' => 'S',
'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',
- 'Dunning Amount' => 'gemahnter Betrag',
'E-mail' => 'eMail',
'E-mail address missing!' => 'E-Mail-Adresse fehlt!',
'EK' => 'EK',
'Edit Sales Invoice' => 'Rechnung bearbeiten',
'Edit Storno Credit Note' => 'Storno Gutschrift bearbeiten',
'Edit Storno Invoice' => 'Stornorechnung bearbeiten',
- 'Employee' => 'Bearbeiter',
'Enter longdescription' => 'Langtext eingeben',
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s',
'Ertrag' => 'Ertrag',
'Ertrag prozentual' => 'Ertrag prozentual',
'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',
'Mark as paid?' => 'Als bezahlt markieren?',
'Marked as paid' => 'Als bezahlt markiert',
'Master Data' => 'Stammdaten',
- 'Max. Dunning Level' => 'höchste Mahnstufe',
'May' => 'Mai',
'May ' => 'Mai',
'May set the BCC field when sending emails' => 'Beim Verschicken von Emails das Feld \'BCC\' setzen',
'Sales Invoice' => 'Rechnung',
'Sales Order' => 'Kundenauftrag',
'Sales quotation' => 'Angebot',
- 'Salesman' => 'Verkäufer/in',
'Save draft' => 'Entwurf speichern',
'Screen' => 'Bildschirm',
'Select a Customer' => 'Endkunde auswählen',
'Show details' => 'Details anzeigen',
'Skip' => 'Überspringen',
'Source' => 'Beleg',
- 'Steuersatz' => 'Steuersatz',
'Storno' => 'Storno',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'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',
- 'Trade Discount' => 'Rabatt',
'Transaction description' => 'Vorgangsbezeichnung',
'Transactions, AR transactions, AP transactions' => 'Dialogbuchen, Debitorenrechnungen, Kreditorenrechnungen',
'Transfer To Stock' => 'Lagereingang',
'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".',
'sent' => 'gesendet',
'sent to printer' => 'an Drucker geschickt',
'vendor' => 'Lieferant',
- 'wrongformat' => 'Falsches Format',
'yes' => 'ja',
};
select : java function call for a selection popup or other magic
allow_textbox : allow to display a textbox instead of a drop down box if there are more entries than 'limit' entries.
limit : defines the limit of entries, after which a textbox is generated. defaults to vclimit, or, failing to find that, 200.
+ readonly : softly prevents modification
-%]
[%- DEFAULT
limit = limit != '' ? limit : vclimit != '' ? vclimit : 200
[%- IF id %] id="[% HTML.escape(id) %]"[% END -%]
[%- IF default %] value="[% HTML.escape(default) %]"[% END -%]
[%- IF style %] style="[% HTML.escape(style) %]"[% END -%]
+ [%- IF readonly %] readonly[% END -%]
[%- -%]>
[%- IF select -%]
<input type="button" onclick="[% select %]" value="?">
[%- IF id %] id="[% HTML.escape(id) %]"[% END -%]
[%- IF style %] style="[% HTML.escape(style) %]"[% END -%]
[%- IF onChange %] onChange="[% HTML.escape(onChange) %]"[% END -%]
+ [%- IF readonly %] disabled[% END -%]
[%- -%]>
[%- IF show_empty %]
<option value=""></option>
--- /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>
+
+<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">Kunde</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="D" onclick="show_vc_details('[% HTML.escape(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">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 %]
+[%- IF ALL_SHIPTO.size %]
+ <tr>
+ <th align="right">Lieferadresse</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">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>
+[%- IF max_dunning_level %]
+ <tr>
+ <th align="right">höchste Mahnstufe:</th>
+ <td>
+ <b>[% max_dunning_level %]</b>; gemahnter Betrag: <b>[% LxERP.format_amount(dunning_amount,2) %]</b>
+ </td>
+ </tr>
+[%- END %]
+[%- IF business %]
+ <tr>
+ <th align="right">Kundentyp</th>
+ <td>[% business %]; Rabatt [% LxERP.format_amount(tradediscount * 100) %] %</td>
+ </tr>
+[%- END %]
+ <tr>
+ <th align="right" nowrap>Buchen auf</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>
+ </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 %]
+ <tr>
+ <th align="right" nowrap>Versandort</th>
+ <td colspan="3"><input size='35' name="shippingpoint" value="[% HTML.escape(shippingpoint) %]"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Transportmittel</th>
+ <td colspan="3"><input size='35' name="shipvia" value="[% HTML.escape(shipvia) %]"></td>
+ </tr>
+ <tr>
+ <th align="right">Vorgangsbezeichnung</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">Bearbeiter</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">Verkäufer/in</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>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>
+ <tr>
+ <th align="right" nowrap>Lieferscheinnummer</th>
+ <td colspan="3"><input size='11' name="donumber" value="[% HTML.escape(donumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right">Lieferdatum</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="?">
+ </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>Angebotsnummer</th>
+ <td colspan="3"><input size='11' name="quonumber" value="[% HTML.escape(quonumber) %]"></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>Bestellnummer des Kunden</th>
+ <td colspan="3"><input size='11' name="cusordnumber" value="[% HTML.escape(cusordnumber) %]"></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>
+ [% jsscript %]
+ <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" });
+[% 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('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 _ ' (' _ 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>
+
+<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>Customer</translate></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="<translate>Details (one letter abbreviation)</translate>" onclick="show_vc_details('[% HTML.escape(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"><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 %]
+[%- IF ALL_SHIPTO.size %]
+ <tr>
+ <th align="right"><translate>Shipping Address</translate></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"><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>
+[%- IF max_dunning_level %]
+ <tr>
+ <th align="right"><translate>Max. Dunning Level</translate>:</th>
+ <td>
+ <b>[% max_dunning_level %]</b>; <translate>Dunning Amount</translate>: <b>[% LxERP.format_amount(dunning_amount,2) %]</b>
+ </td>
+ </tr>
+[%- END %]
+[%- IF business %]
+ <tr>
+ <th align="right"><translate>Customer type</translate></th>
+ <td>[% business %]; <translate>Trade Discount</translate> [% LxERP.format_amount(tradediscount * 100) %] %</td>
+ </tr>
+[%- END %]
+ <tr>
+ <th align="right" nowrap><translate>Record in</translate></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"><translate>Steuersatz</translate></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>
+ </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 %]
+ <tr>
+ <th align="right" nowrap><translate>Shipping Point</translate></th>
+ <td colspan="3"><input size='35' name="shippingpoint" value="[% HTML.escape(shippingpoint) %]"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap><translate>Ship via</translate></th>
+ <td colspan="3"><input size='35' name="shipvia" value="[% HTML.escape(shipvia) %]"></td>
+ </tr>
+ <tr>
+ <th align="right"><translate>Transaction description</translate></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"><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 ALL_SALESMEN.size %]
+ <tr>
+ <th align="right"><translate>Salesman</translate></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><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>
+ <tr>
+ <th align="right" nowrap><translate>Delivery Order Number</translate></th>
+ <td colspan="3"><input size='11' name="donumber" value="[% HTML.escape(donumber) %]"></td>
+ </tr>
+ <tr>
+ <th align="right"><translate>Delivery Date</translate></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="<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 Number</translate></th>
+ <td colspan="3"><input size='11' name="quonumber" value="[% HTML.escape(quonumber) %]"></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>Customer Order Number</translate></th>
+ <td colspan="3"><input size='11' name="cusordnumber" value="[% HTML.escape(cusordnumber) %]"></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>
+ [% jsscript %]
+ <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" });
+[% 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('<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 %]">