$form->{"marge_percent_$i"} = 0;
my $marge_color;
- my $real_sellprice = $linetotal;
+ my $real_sellprice;
+ if ( $form->{taxincluded} and $form->{"qty_$i"} * 1 and $form->{$form->{"taxaccounts_$i"} . "_rate"} * 1) {
+ # if we use taxincluded we need to calculate the marge from the net_value
+ # all the marge calculations are based on linetotal which we need to
+ # convert to net first
+
+ # there is no direct form value for the tax_rate of the item, but
+ # form->{taxaccounts_$i} gives the tax account (e.g. 3806) and 3806_rate
+ # gives the tax percentage (e.g. 0.19)
+ $real_sellprice = $linetotal / (1 + $form->{$form->{"taxaccounts_$i"} . "_rate"});
+ } else {
+ $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 ($is_delivery_order) {
map { $form->{"${_}_${i}"} = $form->format_amount(\%myconfig, $form->{"${_}_${i}"}) } qw(sellprice discount lastcost);
- push @hidden_vars, qw(sellprice discount not_discountable price_factor_id lastcost);
+ push @hidden_vars, qw(sellprice discount not_discountable price_factor_id lastcost pricegroup_id);
push @hidden_vars, "stock_${stock_in_out}_sum_qty", "stock_${stock_in_out}";
}
$form->{"sellprice_$i"} =
$form->round_amount($form->{"sellprice_$i"}, $decimalplaces);
}
+
+ # tradediscount
+ if ($::form->{tradediscount}) {
+ $::form->{"sellprice_$i"} *= 1 - $::form->{tradediscount};
+ }
}
map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
$form->{"email"} = $form->{"cp_email"} if $form->{"cp_email"};
}
+ $form->{language} = $form->get_template_language(\%myconfig);
+ $form->{language} = "_" . $form->{language} if $form->{language};
+
my $title = $locale->text('E-mail') . " " . $form->get_formname_translation();
$form->{oldmedia} = $form->{media};
my $salesman_id_saved = $form->{salesman_id};
my $cp_id_saved = $form->{cp_id};
my $taxzone_id_saved = $form->{taxzone_id};
+ my $currency_saved = $form->{currency};
call_sub("$form->{vc}_details") if ($form->{vc});
$form->{language_id} = $language_saved;
$form->{payment_id} = $payment_id_saved;
$form->{taxzone_id} = $taxzone_id_saved;
+ $form->{currency} = $currency_saved;
$form->{"email"} = $saved_email if ($saved_email);
$form->{"cc"} = $saved_cc if ($saved_cc);
$form->get_shipto(\%myconfig);
}
- my @a = qw(name street zipcode city country contact);
+ my @a = qw(name department_1 department_2 street zipcode city country contact phone fax email);
my $shipto = 1;
format_dates($output_dateformat, $output_longdates,
qw(invdate orddate quodate pldate duedate reqdate transdate
shippingdate deliverydate validitydate paymentdate
- datepaid transdate_oe deliverydate_oe
+ datepaid transdate_oe deliverydate_oe dodate
employee_startdate employee_enddate
),
grep({ /^datepaid_\d+$/ ||
delete $form->{OUT};
if ($form->{media} eq 'printer') {
- #$form->{OUT} = "| $form->{printer_command} &>/dev/null";
$form->{OUT} = $form->{printer_command};
$form->{OUT_MODE} = '|-';
$form->{printed} .= " $form->{formname}";
media => $form->{media},
extension => $extension,
printer => SL::DB::Manager::Printer->find_by_or_create(id => $form->{printer_id}),
+ today => DateTime->today,
};
$form->parse_template(\%myconfig);