use SL::IC;
use SL::IO;
+use SL::DB::Default;
use SL::DB::Language;
use SL::DB::Printer;
use SL::Helper::Flash;
sub _check_io_auth {
$main::auth->assert('part_service_assembly_edit | vendor_invoice_edit | sales_order_edit | invoice_edit |' .
'request_quotation_edit | sales_quotation_edit | purchase_order_edit | ' .
- 'purchase_delivery_order_edit | sales_delivery_order_edit');
+ 'purchase_delivery_order_edit | sales_delivery_order_edit | part_service_assembly_details');
}
########################################
my $count = 0;
# remove any makes or model rows
- if ($form->{item} eq 'part') {
- map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
- qw(listprice sellprice lastcost weight rop);
-
- } elsif ($form->{item} eq 'assembly') {
+ if ($form->{item} eq 'assembly') {
# fuer assemblies auskommentiert. seiteneffekte? ;-) wird die woanders benoetigt?
#$form->{sellprice} = 0;
$form->redo_rows(\@flds, \@a, $count, $form->{assembly_rows});
$form->{assembly_rows} = $count;
- } elsif ($form->{item} eq 'service') {
- map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(listprice sellprice lastcost);
-
- } else {
+ } elsif ($form->{item} !~ m{^(?:part|service)$}) {
remove_emptied_rows(1);
$form->{creditremaining} -= &invoicetotal;
map({ $form->{"${_}_${i}"} = $form->parse_amount(\%myconfig,
$form->{"${_}_${i}"})
if ($form->{"${_}_${i}"}) }
- qw(ship qty sellprice listprice basefactor discount));
+ qw(ship qty sellprice listprice basefactor discount lastcost));
}
&prepare_order;
my $attachment_filename = $form->generate_attachment_filename();
my $subject = $form->{subject} || $form->generate_email_subject();
- $::request->{layout}->focus($form->{"email"} ? "#subject" : "#email");
$form->header;
my (@dont_hide_key_list, %dont_hide_key, @hidden_keys);
_check_io_auth();
+ my $defaults = SL::DB::Default->get;
+ $form->error($::locale->text('No print templates have been created for this client yet. Please do so in the client configuration.')) if !$defaults->templates;
+ $form->{templates} = $defaults->templates;
+
my ($old_form) = @_;
my $inv = "inv";
my $language_saved = $form->{language_id};
my $payment_id_saved = $form->{payment_id};
+ my $delivery_term_id_saved = $form->{delivery_term_id};
my $salesman_id_saved = $form->{salesman_id};
my $cp_id_saved = $form->{cp_id};
my $taxzone_id_saved = $form->{taxzone_id};
$form->{language_id} = $language_saved;
$form->{payment_id} = $payment_id_saved;
+ $form->{delivery_term_id} = $delivery_term_id_saved;
$form->{taxzone_id} = $taxzone_id_saved;
$form->{currency} = $currency_saved;
if ($shipto) {
if ( $form->{formname} eq 'purchase_order'
|| $form->{formname} eq 'request_quotation') {
- $form->{shiptoname} = $myconfig{company};
- $form->{shiptostreet} = $myconfig{address};
+ $form->{shiptoname} = $defaults->company;
+ $form->{shiptostreet} = $defaults->address;
} else {
map { $form->{"shipto$_"} = $form->{$_} } @a;
}
$form->{notes} =~ s/^\s+//g;
- $form->{templates} = "$myconfig{templates}";
-
delete $form->{printer_command};
$form->{language} = $form->get_template_language(\%myconfig);
push @template_files, "$form->{formname}.$extension";
push @template_files, "default.$extension";
@template_files = uniq @template_files;
- $form->{IN} = first { -f "$myconfig{templates}/$_" } @template_files;
+ $form->{IN} = first { -f ($defaults->templates . "/$_") } @template_files;
if (!defined $form->{IN}) {
$::form->error($::locale->text('Cannot find matching template for this print request. Please contact your template maintainer. I tried these: #1.', join ', ', map { "'$_'"} @template_files));