X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fis.pl;h=a83897a45a37c2f681ca2b1403ecd92728662586;hb=85c4af4a97e002a6ec7804c7fb28d3c4c0972398;hp=b8851ff6a3ec2a63fd3c44e790e9404987f2c9eb;hpb=0f0cb3b708f9078b774a07cecd996e5bdc5fac63;p=kivitendo-erp.git diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index b8851ff6a..a83897a45 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -36,6 +36,7 @@ use SL::IS; use SL::PE; use SL::OE; use Data::Dumper; +use DateTime; use List::Util qw(max sum); use SL::DB::Default; @@ -153,6 +154,7 @@ sub invoice_links { taxincluded currency cp_id intnotes id shipto_id delivery_term_id)); + $form->{shipto} = 1 if $editing || $form->{convert_from_oe_ids} || $form->{convert_from_do_ids}; IS->get_customer(\%myconfig, \%$form); #quote all_customer Bug 133 @@ -315,12 +317,12 @@ sub form_header { "departments" => "all_departments", "price_factors" => "ALL_PRICE_FACTORS"); - $TMPL_VAR{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{employee_id}, deleted => 0 ] ]); - $TMPL_VAR{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]); - $TMPL_VAR{ALL_SHIPTO} = SL::DB::Manager::Shipto->get_all(query => [ + $TMPL_VAR{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all_sorted(query => [ or => [ id => $::form->{employee_id}, deleted => 0 ] ]); + $TMPL_VAR{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all_sorted(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]); + $TMPL_VAR{ALL_SHIPTO} = SL::DB::Manager::Shipto->get_all_sorted(query => [ or => [ trans_id => $::form->{"$::form->{vc}_id"} * 1, and => [ shipto_id => $::form->{shipto_id} * 1, trans_id => undef ] ] ]); - $TMPL_VAR{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all(query => [ + $TMPL_VAR{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all_sorted(query => [ or => [ cp_cv_id => $::form->{"$::form->{vc}_id"} * 1, and => [ @@ -377,9 +379,12 @@ sub form_header { shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact shiptophone shiptofax shiptoemail shiptodepartment_1 shiptodepartment_2 shiptocp_gender message email subject cc bcc taxaccounts cursor_fokus convert_from_do_ids convert_from_oe_ids + show_details ), @custom_hiddens, map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts}]; + $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.SalesPurchase)); + $form->header(); print $form->parse_html_template("is/form_header", \%TMPL_VAR); @@ -811,11 +816,14 @@ sub use_as_new { $main::auth->assert('invoice_edit'); - delete @{ $form }{qw(printed emailed queued invnumber invdate deliverydate id datepaid_1 gldate_1 acc_trans_id_1 source_1 memo_1 paid_1 exchangerate_1 AP_paid_1 storno locked)}; - $form->{paidaccounts} = 1; + delete @{ $form }{qw(printed emailed queued invnumber invdate exchangerate forex deliverydate id datepaid_1 gldate_1 acc_trans_id_1 source_1 memo_1 paid_1 exchangerate_1 AP_paid_1 storno locked)}; $form->{rowcount}--; - $form->{invdate} = $form->current_date(\%myconfig); - $form->{duedate} = $form->get_duedate(\%myconfig, $form->{invdate}) || $form->{invdate}; + $form->{paidaccounts} = 1; + $form->{invdate} = $form->current_date(\%myconfig); + $form->{duedate} = $form->get_duedate(\%myconfig, $form->{invdate}) || $form->{invdate}; + $form->{employee_id} = SL::DB::Manager::Employee->current->id; + $form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, 'buy'); + $form->{exchangerate} = $form->{forex} if $form->{forex}; # remember pricegroups for "use as new" IS->get_pricegroups_for_parts(\%myconfig, \%$form); @@ -842,6 +850,9 @@ sub storno { if (IS->has_storno(\%myconfig, $form, "ar")) { $form->error($locale->text("Invoice has already been storno'd!")); } + if ($form->datetonum($form->{invdate}, \%myconfig) <= $form->datetonum($form->{closedto}, \%myconfig)) { + $form->error($locale->text('Cannot storno invoice for a closed period!')); + } map({ my $key = $_; delete($form->{$key}) unless (grep({ $key eq $_ } qw(id login password type))); } keys(%{ $form })); @@ -857,6 +868,7 @@ sub storno { $form->{storno} = 1; $form->{id} = ""; $form->{invnumber} = "Storno zu " . $form->{invnumber}; + $form->{invdate} = DateTime->today->to_lxoffice; $form->{rowcount}++; post(); @@ -1016,6 +1028,10 @@ sub yes { $main::lxdebug->leave_sub(); } +sub post_and_e_mail { + e_mail(); +}; + sub e_mail { $main::lxdebug->enter_sub();