X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=bin%2Fmozilla%2Foe.pl;h=addf693c5a586d431b214b981d8d17edab806893;hb=1167841707ec8fe4ac5964830cd292f129e9f98d;hp=2e9ab7f90e4bafddec54fef44abe14d3db53192e;hpb=6f7c3b1044f67c26a7c7355e991224a7bab733f9;p=kivitendo-erp.git diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl index 2e9ab7f90..addf693c5 100644 --- a/bin/mozilla/oe.pl +++ b/bin/mozilla/oe.pl @@ -41,6 +41,7 @@ use SL::IS; use SL::MoreCommon qw(ary_diff); use SL::PE; use SL::ReportGenerator; +use List::MoreUtils qw(any none); use List::Util qw(max reduce sum); use Data::Dumper; @@ -180,7 +181,8 @@ sub edit { my ($language_id, $printer_id); if ($form->{print_and_save}) { - $form->{action} = "print"; + $form->{action} = "dispatcher"; + $form->{action_print} = "1"; $form->{resubmit} = 1; $language_id = $form->{language_id}; $printer_id = $form->{printer_id}; @@ -221,7 +223,7 @@ sub order_links { $form->all_vc(\%myconfig, $form->{vc}, ($form->{vc} eq 'customer') ? "AR" : "AP"); # retrieve order/quotation - $form->{webdav} = $main::webdav; + $form->{webdav} = $::lx_office_conf{features}->{webdav}; $form->{jsscript} = 1; my $editing = $form->{id}; @@ -237,14 +239,14 @@ sub order_links { $form->{"$form->{vc}_id"} ||= $form->{"all_$form->{vc}"}->[0]->{id} if $form->{"all_$form->{vc}"}; - $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded cp_id intnotes)); + $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded cp_id intnotes shipto_id)); $form->{shipto} = 1 if $form->{id}; # get customer / vendor IR->get_vendor(\%myconfig, \%$form) if $form->{type} =~ /(purchase_order|request_quotation)/; IS->get_customer(\%myconfig, \%$form) if $form->{type} =~ /sales_(order|quotation)/; - $form->restore_vars(qw(payment_id language_id taxzone_id intnotes cp_id)); + $form->restore_vars(qw(payment_id language_id taxzone_id intnotes cp_id shipto_id)); $form->restore_vars(qw(taxincluded)) if $form->{id}; $form->restore_vars(qw(salesman_id)) if $editing; $form->{forex} = $form->{exchangerate}; @@ -296,7 +298,7 @@ sub form_header { my $form = $main::form; my %myconfig = %main::myconfig; my $locale = $main::locale; - my $cgi = $main::cgi; + my $cgi = $::request->{cgi}; check_oe_access(); @@ -387,14 +389,31 @@ sub form_header { } } - my $onload = ($form->{resubmit} && ($form->{format} eq "html")) ? "window.open('about:blank','Beleg'); document.oe.target = 'Beleg';document.oe.submit()" - : ($form->{resubmit}) ? "document.oe.submit()" - : ($creditwarning) ? "alert('$credittext')" - : ""; + my $onload = ""; + if ($form->{resubmit} && ($form->{format} eq "html")) { + $onload = "window.open('about:blank','Beleg'); document.oe.target = 'Beleg';"; + $onload .= "document.do.submit();"; + } elsif ($form->{resubmit}) { + # emulate click for resubmitting actions + $onload = "document.oe.${_}.click(); " for grep { /^action_/ } keys %$form; + $onload .= "document.oe.submit();"; + } elsif ($creditwarning) { + $onload = "alert('$credittext')"; + } - $onload .= qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|; - $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|; $TMPL_VAR{onload} = $onload; + $TMPL_VAR{dateformat} = $myconfig{dateformat}; + $TMPL_VAR{numberformat} = $myconfig{numberformat}; + + if ($form->{type} eq 'sales_order') { + if (!$form->{periodic_invoices_config}) { + $form->{periodic_invoices_status} = $locale->text('not configured'); + + } else { + my $config = YAML::Load($form->{periodic_invoices_config}); + $form->{periodic_invoices_status} = $config->{active} ? $locale->text('active') : $locale->text('inactive'); + } + } $form->{javascript} .= qq||; $form->{javascript} .= qq||; @@ -407,7 +426,7 @@ sub form_header { title creditlimit creditremaining tradediscount business max_dunning_level dunning_amount shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact shiptophone shiptofax - shiptodepartment_1 shiptodepartment_2 shiptoemail + shiptodepartment_1 shiptodepartment_2 shiptoemail shiptocp_gender message email subject cc bcc taxpart taxservice taxaccounts cursor_fokus), @custom_hiddens, map { $_.'_rate', $_.'_description' } split / /, $form->{taxaccounts} ]; # deleted: discount @@ -442,8 +461,8 @@ sub form_footer { my $introws = max 2, $form->numtextrows($form->{intnotes}, 35, 8); $rows = max $rows, $introws; - $TMPL_VAR{notes} = qq||; - $TMPL_VAR{intnotes} = qq||; + $TMPL_VAR{notes} = qq||; + $TMPL_VAR{intnotes} = qq||; if (!$form->{taxincluded}) { @@ -487,7 +506,7 @@ sub form_footer { print $form->parse_html_template("oe/form_footer", { %TMPL_VAR, - webdav => $main::webdav, + webdav => $::lx_office_conf{features}->{webdav}, print_options => print_options(inline => 1), label_edit => $locale->text("Edit the $form->{type}"), label_workflow => $locale->text("Workflow $form->{type}"), @@ -505,15 +524,13 @@ sub form_footer { sub update { $main::lxdebug->enter_sub(); - my ($recursive_call) = shift; + my ($recursive_call) = @_; my $form = $main::form; my %myconfig = %main::myconfig; check_oe_access(); -# $main::lxdebug->message(0, Dumper($form)); - set_headings($form->{"id"} ? "edit" : "add"); map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate) unless $recursive_call; @@ -540,10 +557,13 @@ sub update { &check_form; } else { + my $mode; if ($form->{type} =~ /^sales/) { IS->retrieve_item(\%myconfig, \%$form); + $mode = 'IS'; } else { IR->retrieve_item(\%myconfig, \%$form); + $mode = 'IR'; } my $rows = scalar @{ $form->{item_list} }; @@ -561,7 +581,7 @@ sub update { if ($rows > 1) { - &select_item; + select_item(mode => $mode); ::end_of_request(); } else { @@ -691,7 +711,7 @@ sub search { print $form->parse_html_template('oe/search', { %myconfig, - is_order => $form->{type} =~ /_order/, + is_order => scalar($form->{type} =~ /_order/), }); $main::lxdebug->leave_sub(); @@ -724,7 +744,7 @@ sub orders { my $form = $main::form; my %myconfig = %main::myconfig; my $locale = $main::locale; - my $cgi = $main::cgi; + my $cgi = $::request->{cgi}; check_oe_access(); @@ -747,7 +767,8 @@ sub orders { "salesman", "shipvia", "globalprojectnumber", "transaction_description", "open", - "delivered", "marge_total", "marge_percent", + "delivered", "periodic_invoices", + "marge_total", "marge_percent", "vcnumber", "ustid", "country", ); @@ -758,8 +779,9 @@ sub orders { unshift @columns, "ids"; } - $form->{l_open} = $form->{l_closed} = "Y" if ($form->{open} && $form->{closed}); - $form->{l_delivered} = "Y" if ($form->{delivered} && $form->{notdelivered}); + $form->{l_open} = $form->{l_closed} = "Y" if ($form->{open} && $form->{closed}); + $form->{l_delivered} = "Y" if ($form->{delivered} && $form->{notdelivered}); + $form->{l_periodic_invoices} = "Y" if ($form->{periodic_invoices_active} && $form->{periodic_invoices_inactive}); my $attachment_basename; if ($form->{vc} eq 'vendor') { @@ -786,7 +808,7 @@ sub orders { my @hidden_variables = map { "l_${_}" } @columns; push @hidden_variables, "l_subtotal", $form->{vc}, qw(l_closed l_notdelivered open closed delivered notdelivered ordnumber quonumber transaction_description transdatefrom transdateto type vc employee_id salesman_id - reqdatefrom reqdateto projectnumber project_id); + reqdatefrom reqdateto projectnumber project_id periodic_invoices_active periodic_invoices_inactive); my $href = build_std_url('action=orders', grep { $form->{$_} } @hidden_variables); @@ -814,6 +836,7 @@ sub orders { 'vcnumber' => { 'text' => $form->{vc} eq 'customer' ? $locale->text('Customer Number') : $locale->text('Vendor Number'), }, 'country' => { 'text' => $locale->text('Country'), }, 'ustid' => { 'text' => $locale->text('USt-IdNr.'), }, + 'periodic_invoices' => { 'text' => $locale->text('Per. Inv.'), }, ); foreach my $name (qw(id transdate reqdate quonumber ordnumber name employee salesman shipvia transaction_description)) { @@ -855,6 +878,7 @@ sub orders { push @options, $locale->text('Closed') if $form->{closed}; push @options, $locale->text('Delivered') if $form->{delivered}; push @options, $locale->text('Not delivered') if $form->{notdelivered}; + push @options, $locale->text('Periodic invoices active') if $form->{periodic_invoices_actibe}; $report->set_options('top_info_text' => join("\n", @options), 'raw_top_info_text' => $form->parse_html_template('oe/orders_top'), @@ -864,6 +888,7 @@ sub orders { 'attachment_basename' => $attachment_basename . strftime('_%Y%m%d', localtime time), ); $report->set_options_from_form(); + $locale->set_numberformat_wo_thousands_separator(\%myconfig) if lc($report->{options}->{output_format}) eq 'csv'; # add sort and escape callback, this one we use for the add sub $form->{callback} = $href .= "&sort=$form->{sort}"; @@ -883,9 +908,10 @@ sub orders { foreach my $oe (@{ $form->{OE} }) { map { $oe->{$_} *= $oe->{exchangerate} } @subtotal_columns; - $oe->{tax} = $oe->{amount} - $oe->{netamount}; - $oe->{open} = $oe->{closed} ? $locale->text('No') : $locale->text('Yes'); - $oe->{delivered} = $oe->{delivered} ? $locale->text('Yes') : $locale->text('No'); + $oe->{tax} = $oe->{amount} - $oe->{netamount}; + $oe->{open} = $oe->{closed} ? $locale->text('No') : $locale->text('Yes'); + $oe->{delivered} = $oe->{delivered} ? $locale->text('Yes') : $locale->text('No'); + $oe->{periodic_invoices} = $oe->{periodic_invoices} ? $locale->text('On') : $locale->text('Off'); map { $subtotals{$_} += $oe->{$_}; $totals{$_} += $oe->{$_} } @subtotal_columns; @@ -1185,56 +1211,28 @@ sub save { } sub delete { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - my $locale = $main::locale; + $::lxdebug->enter_sub; check_oe_access(); - $form->header; - - my ($msg, $ordnumber); - if ($form->{type} =~ /_order$/) { - $msg = $locale->text('Are you sure you want to delete Order Number'); - $ordnumber = 'ordnumber'; - } else { - $msg = $locale->text('Are you sure you want to delete Quotation Number'); - $ordnumber = 'quonumber'; - } - - print qq| -
- - - -