{ id => 'serialnr', width => 10, value => $locale->text('Serial No.'), display => 0, },
{ id => 'projectnr', width => 10, value => $locale->text('Project'), display => 0, },
{ id => 'sellprice', width => 15, value => $locale->text('Price'), display => !$is_delivery_order, },
- { id => 'sellprice_pg', width => 8, value => $locale->text('Pricegroup'), display => ($form->{type} =~ /^(sales_|invoice)/) && !$is_delivery_order, },
+ { id => 'sellprice_pg', width => 8, value => $locale->text('Pricegroup'), display => !$is_delivery_order && !$is_purchase, },
{ id => 'discount', width => 5, value => $locale->text('Discount'), display => !$is_delivery_order, },
{ id => 'linetotal', width => 10, value => $locale->text('Extended'), display => !$is_delivery_order, },
{ id => 'bin', width => 10, value => $locale->text('Bin'), display => 0, },
my %column_data = ();
# undo formatting
- map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
- qw(qty discount sellprice lastcost price_new price_old)
+ map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ qw(qty discount sellprice lastcost price_new price_old)
unless ($form->{simple_save});
# unit begin
}
my $this_unit = $form->{"unit_$i"};
$this_unit = $form->{"selected_unit_$i"} if AM->convert_unit($this_unit, $form->{"selected_unit_$i"}, $all_units);
- $this_unit ||= "kg";
if (0 < scalar @{ $form->{ALL_PRICE_FACTORS} }) {
my @values = ('', map { $_->{id} } @{ $form->{ALL_PRICE_FACTORS} });
# for last row and report
# set pricegroup drop down list from report menu
if ($form->{"sellprice_$i"} != 0) {
+ # remember the pricegroup_id in pricegroup_old
+ # but don't overwrite it
$form->{"pricegroup_old_$i"} = $form->{"pricegroup_id_$i"};
my $default_option = $form->{"sellprice_$i"}.'--'.$form->{"pricegroup_id_$i"};
- $column_data{sellprice_pg} = NTI($cgi->popup_menu("sellpricepg_$i", [ $default_option ], $default_option, { $default_option => $form->{"pricegroup_$i"} || '' }));
+ $column_data{sellprice_pg} = NTI($cgi->popup_menu("sellprice_pg_$i", [ $default_option ], $default_option, { $default_option => $form->{"pricegroup_$i"} || '' }));
} else {
$column_data{sellprice_pg} = qq| |;
}
map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(marge_absolut marge_percent);
push @ROW2, { value => sprintf qq|
- <font %s><b>%s</b> %s %s%% </font>
- <b>%s</b> %s
+ <font %s><b>%s</b> %s %s%% </font>
+ <b>%s</b> %s
<b>%s</b> <input size="5" name="lastcost_$i" value="%s">|,
$marge_color, $locale->text('Ertrag'),$form->{"marge_absolut_$i"}, $form->{"marge_percent_$i"},
$locale->text('LP'), $form->format_amount(\%myconfig, $form->{"listprice_$i"}, 2),
sellprice_pg pricegroup_old price_old price_new unit_old ordnumber
transdate longdescription basefactor marge_total marge_percent
marge_price_factor lastcost price_factor_id partnotes
- stock_out stock_in has_sernumber);
+ stock_out stock_in has_sernumber reqdate);
my $ic_cvar_configs = CVar->get_configs(module => 'IC');
push @flds, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs };
# check if items are valid
if ($form->{rowcount} == 1) {
&update;
- exit;
+ ::end_of_request();
}
for my $i (1 .. $form->{rowcount} - 1) {
$form->{email} = $form->{shiptoemail} if $form->{shiptoemail} && $form->{formname} =~ /(pick|packing|bin)_list/;
- if ($form->{"cp_id"} && !$form->{"email"}) {
+ if ($form->{"cp_id"}) {
CT->get_contact(\%myconfig, $form);
- $form->{"email"} = $form->{"cp_email"};
+ $form->{"email"} = $form->{"cp_email"} if $form->{"cp_email"};
}
my $title = $locale->text('E-mail') . " " . $form->get_formname_translation();
) : undef,
($form->{type} eq 'invoice' && $form->{storno}) ? (
opthash("storno_invoice", $form->{PD}{storno_invoice}, $locale->text('Storno Invoice')),
- opthash("storno_packing_list", $form->{PD}{storno_packing_list}, $locale->text('Storno Packing List'))
) : undef,
($form->{type} =~ /_delivery_order$/) ? (
opthash($form->{type}, $form->{PD}{$form->{type}}, $locale->text('Delivery Order')),
push @MEDIA, grep $_,
opthash("screen", $form->{OP}{screen}, $locale->text('Screen')),
- (scalar @{ $form->{printers} } && $main::latex_templates) ?
+ ($form->{printers} && scalar @{ $form->{printers} } && $main::latex_templates) ?
opthash("printer", $form->{OP}{printer}, $locale->text('Printer')) : undef,
($main::latex_templates && !$options{no_queue}) ?
opthash("queue", $form->{OP}{queue}, $locale->text('Queue')) : undef
&save();
$form->{formname} = $formname;
&edit();
- exit;
+ $::lxdebug->leave_sub();
+ ::end_of_request();
}
&print_form($old_form);
if ($form->{formname} eq "invoice") {
$form->{label} = $locale->text('Invoice');
}
- if ($form->{formname} eq "packing_list") {
-
- # this is from an invoice
- $form->{label} = $locale->text('Packing List');
- }
if ($form->{formname} eq 'sales_order') {
$inv = "ord";
$due = "req";
$order = 1;
}
- if ($form->{formname} eq 'packing_list' && $form->{type} ne 'invoice') {
-
- # we use the same packing list as from an invoice
- $inv = "ord";
- $due = "req";
- $form->{invdate} = $form->{"${inv}date"} = $form->{transdate};
- $form->{label} = $locale->text('Packing List');
- $order = 1;
- # set invnumber for template packing_list
- $form->{invnumber} = $form->{ordnumber};
- }
if ($form->{formname} eq 'purchase_order') {
$inv = "ord";
$due = "req";
# $locale->text('Invoice Number missing!')
# $locale->text('Invoice Date missing!')
- # $locale->text('Packing List Number missing!')
- # $locale->text('Packing List Date missing!')
# $locale->text('Order Number missing!')
# $locale->text('Order Date missing!')
# $locale->text('Quotation Number missing!')
if(!exists $form->{addition}) {
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
$form->{addition} = "PRINTED";
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->save_history;
}
# /saving the history
- exit;
+ ::end_of_request();
}
}
elsif($form->{media} =~ /screen/) {
$form->{addition} = "SCREENED";
}
- $form->save_history($form->dbconnect(\%myconfig));
+ $form->save_history;
}
# /saving the history
}
call_sub($display_form);
- exit;
+ ::end_of_request();
}
my $msg =
}
if ($form->{printing}) {
call_sub($display_form);
- exit;
+ ::end_of_request();
}
$main::lxdebug->leave_sub();
my @shipto_vars =
qw(shiptoname shiptostreet shiptozipcode shiptocity shiptocountry
- shiptocontact shiptophone shiptofax shiptoemail
+ shiptocontact shiptocp_gender shiptophone shiptofax shiptoemail
shiptodepartment_1 shiptodepartment_2);
my @addr_vars =
? $locale->text('Customer Number')
: $locale->text('Vendor Number');
+ # sieht nicht nett aus, funktioniert aber
+ # das vorausgewählte select-feld wird über shiptocp_gender
+ # entsprechend vorbelegt
+ my $selected_m='';
+ my $selected_f='';
+ if ($form->{shiptocp_gender} eq 'm') {
+ $selected_m='selected';
+ $selected_f='';
+ } elsif ($form->{shiptocp_gender} eq 'f') {
+ $selected_m='';
+ $selected_f='selected';
+ }
+
# get pricegroups for parts
IS->get_pricegroups_for_parts(\%myconfig, \%$form);
<td>$form->{contact}</td>
<td><input name="shiptocontact" size="35" value="$form->{shiptocontact}"></td>
</tr>
+ <tr>
+ <th align="right" nowrap>| . $locale->text('Gender') . qq|</th>
+ <td></td>
+ <td><select id="shiptocp_gender" name="shiptocp_gender">
+ <option value="m"| . $selected_m . qq|>| . $locale->text('male') . qq|</option>
+ <option value="f"| . $selected_f . qq|>| . $locale->text('female') . qq|</option>
+ </select>
+ </td>
+ </tr>
<tr>
<th align="right" nowrap>| . $locale->text('Phone') . qq|</th>
<td>$form->{phone}</td>
$form->{script} = "licenses.pl";
- our $name;
-
map { $form->{$_} = $form->{"old_$_"} } qw(partnumber description);
map { $form->{$_} = $form->escape($form->{$_}, 1) }
qw(partnumber description);
$form->{callback} =
- qq|$form->{script}?action=add&vc=$form->{db}&$form->{db}_id=$form->{id}&$form->{db}=$name&type=$form->{type}&customer=$customer&partnumber=$form->{partnumber}&description=$form->{description}&previousform="$previousform"&initial=1|;
+ qq|$form->{script}?action=add&vc=$form->{db}&$form->{db}_id=$form->{id}&$form->{db}=$form->{name}&type=$form->{type}&customer=$customer&partnumber=$form->{partnumber}&description=$form->{description}&previousform="$previousform"&initial=1|;
$form->redirect;
$main::lxdebug->leave_sub();
}
$form->{"taxaccounts"} = "";
- for (my $i = 1; $i <= $form->{"rowcount"}; $i++) {
- if ($form->{"id_$i"}) {
- IC->retrieve_accounts(\%myconfig, $form, $form->{"id_$i"}, $i, 1);
- }
- }
+ IC->retrieve_accounts(\%myconfig, $form, map { $_ => $form->{"id_$_"} } 1 .. $form->{rowcount});
$main::lxdebug->leave_sub();
}
my $form = $main::form;
- $form->{CVAR_CONFIGS} ||= { };
- $form->{CVAR_CONFIGS}->{IC} = CVar->get_configs(module => 'IC');
+ $form->{CVAR_CONFIGS} = { } unless ref $form->{CVAR_CONFIGS} eq 'HASH';
+ $form->{CVAR_CONFIGS}->{IC} ||= CVar->get_configs(module => 'IC');
$main::lxdebug->leave_sub();
}
return;
}
- foreach my $cvar (@{ $form->{CVAR_CONFIGS}->{IC} }) {
- $cvar->{valid} = $params{part_id}
- ? CVar->get_custom_variables_validity(config_id => $cvar->{id}, trans_id => $params{part_id})
- : 0;
-
- $cvar->{value} = $form->{"ic_cvar_" . $cvar->{name} . "_$params{row}"};
- }
-
- CVar->render_inputs(hide_non_editable => 1,
- variables => $form->{CVAR_CONFIGS}->{IC},
- name_prefix => 'ic_',
- name_postfix => "_$params{row}");
+ my $valid = CVar->custom_variables_validity_by_trans_id(trans_id => $params{part_id});
my $num_visible_cvars = 0;
foreach my $cvar (@{ $form->{CVAR_CONFIGS}->{IC} }) {
+ $cvar->{valid} = $params{part_id} && $valid->($cvar->{id});
+
my $description = '';
if ($cvar->{flag_editable} && $cvar->{valid}) {
$num_visible_cvars++;
$description = $cvar->{description} . ' ';
}
- push @{ $params{ROW2} }, { line_break => $num_visible_cvars == 1,
- value => $description . $cvar->{HTML_CODE},
- };
+ push @{ $params{ROW2} }, {
+ line_break => $num_visible_cvars == 1,
+ description => $description,
+ cvar => 1,
+ render_options => {
+ hide_non_editable => 1,
+ var => $cvar,
+ name_prefix => 'ic_',
+ name_postfix => "_$params{row}",
+ valid => $cvar->{valid},
+ value => $form->{"ic_cvar_" . $cvar->{name} . "_$params{row}"},
+ }
+ };
}
$main::lxdebug->leave_sub(2);