]> wagnertech.de Git - mfinanz.git/blobdiff - bin/mozilla/oe.pl
Einkaufs-/Verkaufsprozesse: optionale Einschränkungen für gewisse Aktionen
[mfinanz.git] / bin / mozilla / oe.pl
index e59e95c8faf67e0c9acec90dc49c602148059d50..12a74464a039cd130fee6a74d638ae4a120f0f63 100644 (file)
@@ -35,6 +35,7 @@
 use Carp;
 use POSIX qw(strftime);
 
+use SL::DB::Order;
 use SL::DO;
 use SL::FU;
 use SL::OE;
@@ -89,6 +90,16 @@ sub check_oe_access {
   $main::auth->assert($right);
 }
 
+sub check_oe_conversion_to_sales_invoice_allowed {
+  return 1 if  $::form->{type} !~ m/^sales/;
+  return 1 if ($::form->{type} =~ m/quotation/) && $::instance_conf->get_allow_sales_invoice_from_sales_quotation;
+  return 1 if ($::form->{type} =~ m/order/)     && $::instance_conf->get_allow_sales_invoice_from_sales_order;
+
+  $::form->show_generic_error($::locale->text("You do not have the permissions to access this function."));
+
+  return 0;
+}
+
 sub set_headings {
   $main::lxdebug->enter_sub();
 
@@ -312,6 +323,18 @@ sub form_header {
   # Container for template variables. Unfortunately this has to be
   # visible in form_footer too, so package local level and not my here.
   %TMPL_VAR = ();
+  if ($form->{id}) {
+    my $obj = SL::DB::Order->new(id => $form->{id})->load;
+    $TMPL_VAR{warn_save_active_periodic_invoice} =
+         $obj->is_type('sales_order')
+      && $obj->periodic_invoices_config
+      && $obj->periodic_invoices_config->active
+      && (   !$obj->periodic_invoices_config->end_date
+          || ($obj->periodic_invoices_config->end_date > DateTime->today_local))
+      && $obj->periodic_invoices_config->get_previous_billed_period_start_date;
+
+    $TMPL_VAR{oe_obj} = $obj;
+  }
 
   $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
 
@@ -429,7 +452,7 @@ sub form_header {
     }
   }
 
-  $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.SalesPurchase show_form_details show_history show_vc_details));
+  $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.SalesPurchase show_form_details show_history show_vc_details ckeditor/ckeditor ckeditor/adapters/jquery));
 
   $form->header;
   if ($form->{CFDD_shipto} && $form->{CFDD_shipto_id} ) {
@@ -1300,6 +1323,7 @@ sub invoice {
   my $locale   = $main::locale;
 
   check_oe_access();
+  check_oe_conversion_to_sales_invoice_allowed();
   $main::auth->assert($form->{type} eq 'purchase_order' || $form->{type} eq 'request_quotation' ? 'vendor_invoice_edit' : 'invoice_edit');
 
   $form->{old_salesman_id} = $form->{salesman_id};