{ 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_index = map { $_->{id} } grep { $_->{display} } @HEADER;
+
# cache units
my $all_units = AM->retrieve_units(\%myconfig, $form);
my %column_data = ();
# undo formatting
- map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) } qw(qty discount sellprice price_new price_old) unless ($form->{simple_save});
+ map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) }
+ qw(qty discount sellprice lastcost price_new price_old)
+ unless ($form->{simple_save});
# unit begin
$form->{"unit_old_$i"} ||= $form->{"unit_$i"};
}
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| |;
}
$column_data{sellprice} = $cgi->textfield(-name => "sellprice_$i", -size => 10, -onBlur => "check_right_number_format(this)", -value =>
$form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces));
+
}
$column_data{discount} = $cgi->textfield(-name => "discount_$i", -size => 3, -value => $form->format_amount(\%myconfig, $form->{"discount_$i"}));
$column_data{linetotal} = $form->format_amount(\%myconfig, $linetotal, 2);
$locale->text('Subtotal'), $form->{"subtotal_$i"} ? 'checked' : '' };
# begin marge calculations
- my $marge_color;
- my $real_sellprice = ($form->{"sellprice_$i"} - $discount) / $price_factor;
- my $marge_price_factor = $form->{"marge_price_factor_$i"} * 1 || 1;
-
- $form->{"lastcost_$i"} *= 1;
+ $form->{"lastcost_$i"} *= 1;
$form->{"marge_percent_$i"} = 0;
- 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;
- $marge_color = 'color="#ff0000"' if $form->{"id_$i"} && ($form->{"marge_percent_$i"} < (1 * $myconfig{marge_percent_warn}));
+ my $marge_color;
+ my $real_sellprice = $linetotal;
+ my $real_lastcost = $form->{"lastcost_$i"} * $form->{"qty_$i"} / ( $form->{"marge_price_factor_$i"} || 1 );
+ my $marge_percent_warn = $myconfig{marge_percent_warn} * 1 || 15;
+ my $marge_adjust_credit_note = $form->{type} eq 'credit_note' ? -1 : 1;
+
+ if ($real_sellprice * 1 && ($form->{"qty_$i"} * 1)) {
+ $form->{"marge_percent_$i"} = ($real_sellprice - $real_lastcost) * 100 / $real_sellprice;
+ $marge_color = 'color="#ff0000"' if $form->{"id_$i"} && $form->{"marge_percent_$i"} < $marge_percent_warn;
}
- my $marge_adjust_credit_note = $form->{type} eq 'credit_note' ? -1 : 1;
- $form->{"marge_absolut_$i"} = ($real_sellprice - $form->{"lastcost_$i"} / $marge_price_factor) * $form->{"qty_$i"} * $marge_adjust_credit_note;
+ $form->{"marge_absolut_$i"} = ($real_sellprice - $real_lastcost) * $marge_adjust_credit_note;
$form->{"marge_total"} += $form->{"marge_absolut_$i"};
- $form->{"lastcost_total"} += $form->{"lastcost_$i"} * $form->{"qty_$i"} / $marge_price_factor;
- $form->{"sellprice_total"} += $real_sellprice * $form->{"qty_$i"};
+ $form->{"lastcost_total"} += $real_lastcost;
+ $form->{"sellprice_total"} += $real_sellprice;
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 <b>%s</b> %s|,
+ push @ROW2, { value => sprintf qq|
+ <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),
$locale->text('EK'), $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2) }
my @hidden_vars;
if ($is_delivery_order) {
- map { $form->{"${_}_${i}"} = $form->format_amount(\%myconfig, $form->{"${_}_${i}"}) } qw(sellprice discount);
- push @hidden_vars, qw(sellprice discount price_factor_id);
+ map { $form->{"${_}_${i}"} = $form->format_amount(\%myconfig, $form->{"${_}_${i}"}) } qw(sellprice discount lastcost);
+ push @hidden_vars, qw(sellprice discount price_factor_id lastcost);
push @hidden_vars, "stock_${stock_in_out}_sum_qty", "stock_${stock_in_out}";
}
map { ($cgi->hidden("-name" => $_, "-value" => $form->{$_})); } map { $_."_$i" }
(qw(orderitems_id bo pricegroup_old price_old id inventory_accno bin partsgroup partnotes
income_accno expense_accno listprice assembly taxaccounts ordnumber transdate cusordnumber
- longdescription basefactor marge_absolut marge_percent marge_price_factor lastcost), @hidden_vars)
+ longdescription basefactor marge_absolut marge_percent marge_price_factor), @hidden_vars)
);
map { $form->{"${_}_base"} += $linetotal } (split(/ /, $form->{"taxaccounts_$i"}));
map {
$form->{"${_}_$i"} =
$form->format_amount(\%myconfig, $form->{"${_}_$i"}, $decimalplaces)
- } qw(sellprice listprice) if $form->{item} ne 'assembly';
+ } qw(sellprice listprice lastcost) if $form->{item} ne 'assembly';
# get pricegroups for parts
IS->get_pricegroups_for_parts(\%myconfig, \%$form);
#($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++;
}
map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(listprice sellprice lastcost);
} else {
- my @flds = qw(id partnumber description qty ship sellprice unit
- discount inventory_accno income_accno expense_accno listprice
- taxaccounts bin assembly weight projectnumber project_id
- oldprojectnumber runningnumber serialnumber partsgroup payment_id
- not_discountable shop ve gv buchungsgruppen_id language_values
- 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);
-
- my $ic_cvar_configs = CVar->get_configs(module => 'IC');
- push @flds, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs };
-
- # this section applies to invoices and orders
- # remove any empty numbers
- if ($form->{rowcount}) {
- for my $i (1 .. $form->{rowcount} - 1) {
- if ($form->{"partnumber_$i"}) {
- push @a, {};
- my $j = $#a;
-
- map { $a[$j]->{$_} = $form->{"${_}_$i"} } @flds;
- $count++;
- if ($main::lizenzen) {
- if ($form->{"licensenumber_$i"} == -1) {
- &new_license($i);
- exit;
- }
- }
- }
- }
-
- $form->redo_rows(\@flds, \@a, $count, $form->{rowcount});
- $form->{rowcount} = $count;
+ remove_emptied_rows(1);
- $form->{creditremaining} -= &invoicetotal;
-
- }
+ $form->{creditremaining} -= &invoicetotal;
}
#sk
$main::lxdebug->leave_sub();
}
+sub remove_emptied_rows {
+ my $dont_add_empty = shift;
+ my $form = $::form;
+
+ return unless $form->{rowcount};
+
+ my @flds = qw(id partnumber description qty ship sellprice unit
+ discount inventory_accno income_accno expense_accno listprice
+ taxaccounts bin assembly weight projectnumber project_id
+ oldprojectnumber runningnumber serialnumber partsgroup payment_id
+ not_discountable shop ve gv buchungsgruppen_id language_values
+ 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 reqdate);
+
+ my $ic_cvar_configs = CVar->get_configs(module => 'IC');
+ push @flds, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs };
+
+ my @new_rows;
+ for my $i (1 .. $form->{rowcount} - 1) {
+ next unless $form->{"partnumber_$i"};
+
+ push @new_rows, { map { $_ => $form->{"${_}_$i" } } @flds };
+ }
+
+ my $new_rowcount = scalar @new_rows;
+ $form->redo_rows(\@flds, \@new_rows, $new_rowcount, $form->{rowcount});
+ $form->{rowcount} = $new_rowcount + ($dont_add_empty ? 0 : 1);
+}
+
sub invoicetotal {
$main::lxdebug->enter_sub();
# 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
(!$options{no_html}) ?
opthash("html", $form->{DF}{html}, "HTML") : undef,
($main::opendocument_templates && !$options{no_opendocument}) ?
- opthash("opendocument", $form->{DF}{opendocument}, $locale->text("OpenDocument/OASIS")) : undef;
+ opthash("opendocument", $form->{DF}{opendocument}, $locale->text("OpenDocument/OASIS")) : undef,
+ ($main::excel_templates && !$options{no_excel}) ?
+ opthash("excel", $form->{DF}{excel}, $locale->text("Excel")) : undef;
push @LANGUAGE_ID,
map { opthash($_->{id}, ($_->{id} eq $form->{language_id} ? 'selected' : ''), $_->{description}) } +{}, @{ $form->{languages} }
&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!')
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;
}
# /saving the history
- exit;
+ ::end_of_request();
}
}
} elsif ($form->{"format"} =~ /opendocument/) {
$form->{opendocument} = 1;
$extension = 'odt';
+ } elsif ($form->{"format"} =~ /excel/) {
+ $form->{excel} = 1;
+ $extension = 'xls';
}
my $email_extension = '_email' if (($form->{media} eq 'email') && (-f "$myconfig{templates}/$form->{formname}_email$form->{language}${printer_code}.${extension}"));
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));
+ $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);
<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('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>
+ <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>
# delete shipto
- map({ delete $form->{$_} } (@shipto_vars, qw(header)));
+ map({ delete $form->{$_} } (@shipto_vars, qw(header shipto_id)));
$form->{title} = $title;
foreach my $key (keys %$form) {
$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();
}
sub _render_custom_variables_inputs {
- $main::lxdebug->enter_sub();
+ $main::lxdebug->enter_sub(2);
my $form = $main::form;
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();
+ $main::lxdebug->leave_sub(2);
}