X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fis.pl;h=15105d31d97cbc9fd2ea8260970ffe438ded23fa;hb=9508e215c78bc172721e14d41d21858abb23672e;hp=6eae18e3964508ab4c6ef8a8379a78210962c4a2;hpb=10852277fadcc965e883724a6e9b6fefc5026d8c;p=kivitendo-erp.git diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index 6eae18e39..15105d31d 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -256,7 +256,8 @@ sub setup_is_action_bar { my $form = $::form; my $change_never = $::instance_conf->get_is_changeable == 0; my $change_on_same_day_only = $::instance_conf->get_is_changeable == 2 && ($form->current_date(\%::myconfig) ne $form->{gldate}); - my @req_trans_desc = qw(kivi.SalesPurchase.check_transaction_description) x!!$::instance_conf->get_require_transaction_description_ps; + my $payments_balanced = ($::form->{oldtotalpaid} == 0); + my $has_storno = ($::form->{storno} && !$::form->{storno_id}); for my $bar ($::request->layout->get('actionbar')) { $bar->add( @@ -265,6 +266,7 @@ sub setup_is_action_bar { submit => [ '#form', { action => "update" } ], disabled => $form->{locked} ? t8('The billing period has already been locked.') : undef, id => 'update_button', + checks => [ 'kivi.validate_form' ], accesskey => 'enter', ], @@ -272,7 +274,7 @@ sub setup_is_action_bar { action => [ t8('Post'), submit => [ '#form', { action => "post" } ], - checks => [ @req_trans_desc ], + checks => [ 'kivi.validate_form' ], disabled => $form->{locked} ? t8('The billing period has already been locked.') : $form->{storno} ? t8('A canceled invoice cannot be posted.') : ($form->{id} && $change_never) ? t8('Changing invoices has been disabled in the configuration.') @@ -282,31 +284,35 @@ sub setup_is_action_bar { action => [ t8('Post Payment'), submit => [ '#form', { action => "post_payment" } ], - checks => [ @req_trans_desc ], + checks => [ 'kivi.validate_form' ], disabled => !$form->{id} ? t8('This invoice has not been posted yet.') : undef, ], - (action => [ t8('Mark as paid'), + action => [ t8('Mark as paid'), submit => [ '#form', { action => "mark_as_paid" } ], confirm => t8('This will remove the invoice from showing as unpaid even if the unpaid amount does not match the amount. Proceed?'), disabled => !$form->{id} ? t8('This invoice has not been posted yet.') : undef, - ]) x !!$::instance_conf->get_is_show_mark_as_paid, + only_if => $::instance_conf->get_is_show_mark_as_paid, + ], ], # end of combobox "Post" combobox => [ action => [ t8('Storno'), submit => [ '#form', { action => "storno" } ], confirm => t8('Do you really want to cancel this invoice?'), - checks => [ @req_trans_desc ], - disabled => !$form->{id} ? t8('This invoice has not been posted yet.') : undef, + checks => [ 'kivi.validate_form' ], + disabled => !$form->{id} ? t8('This invoice has not been posted yet.') + : !$payments_balanced ? t8('Cancelling is disallowed. Either undo or balance the current payments until the open amount matches the invoice amount') + : undef, ], action => [ t8('Delete'), submit => [ '#form', { action => "delete" } ], confirm => t8('Do you really want to delete this object?'), - checks => [ @req_trans_desc ], + checks => [ 'kivi.validate_form' ], disabled => !$form->{id} ? t8('This invoice has not been posted yet.') : $form->{locked} ? t8('The billing period has already been locked.') : $change_never ? t8('Changing invoices has been disabled in the configuration.') : $change_on_same_day_only ? t8('Invoices can only be changed on the day they are posted.') + : $has_storno ? t8('Can only delete the "Storno zu" part of the cancellation pair.') : undef, ], ], # end of combobox "Storno" @@ -318,19 +324,21 @@ sub setup_is_action_bar { action => [ t8('Use As New'), submit => [ '#form', { action => "use_as_new" } ], + checks => [ 'kivi.validate_form' ], disabled => !$form->{id} ? t8('This invoice has not been posted yet.') : undef, ], action => [ t8('Credit Note'), submit => [ '#form', { action => "credit_note" } ], - checks => [ @req_trans_desc ], + checks => [ 'kivi.validate_form' ], disabled => $form->{type} eq "credit_note" ? t8('Credit notes cannot be converted into other credit notes.') : !$form->{id} ? t8('This invoice has not been posted yet.') : undef, ], action => [ t8('Sales Order'), - submit => [ '#form', { action => "sales_order" } ], + submit => [ '#form', { action => "order" } ], + checks => [ 'kivi.validate_form' ], disabled => !$form->{id} ? t8('This invoice has not been posted yet.') : undef, ], ], # end of combobox "Workflow" @@ -340,12 +348,17 @@ sub setup_is_action_bar { action => [ ($form->{id} ? t8('Print') : t8('Preview')), call => [ 'kivi.SalesPurchase.show_print_dialog', $form->{id} ? 'print' : 'preview' ], - checks => [ @req_trans_desc ], + checks => [ 'kivi.validate_form' ], disabled => !$form->{id} && $form->{locked} ? t8('The billing period has already been locked.') : undef, ], + action => [ t8('Print and Post'), + call => [ 'kivi.SalesPurchase.show_print_dialog', $form->{id} ? 'print' : 'print_and_post' ], + checks => [ 'kivi.validate_form' ], + disabled => $form->{id} ? t8('This invoice has already been posted.') : undef,, + ], action => [ t8('E Mail'), call => [ 'kivi.SalesPurchase.show_email_dialog' ], - checks => [ @req_trans_desc ], + checks => [ 'kivi.validate_form' ], disabled => !$form->{id} ? t8('This invoice has not been posted yet.') : undef, ], ], # end of combobox "Export" @@ -354,7 +367,7 @@ sub setup_is_action_bar { action => [ t8('more') ], action => [ t8('History'), - call => [ 'set_history_window', $form->{id} * 1, 'id' ], + call => [ 'set_history_window', $form->{id} * 1, 'glid' ], disabled => !$form->{id} ? t8('This invoice has not been posted yet.') : undef, ], action => [ @@ -372,6 +385,7 @@ sub setup_is_action_bar { ], # end of combobox "more" ); } + $::request->layout->add_javascripts('kivi.Validator.js'); } sub form_header { @@ -390,8 +404,11 @@ sub form_header { $TMPL_VAR{customer_obj} = SL::DB::Customer->load_cached($form->{customer_id}) if $form->{customer_id}; $TMPL_VAR{invoice_obj} = SL::DB::Invoice->load_cached($form->{id}) if $form->{id}; - $form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id}; - $form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id}; + my $current_employee = SL::DB::Manager::Employee->current; + $form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id}; + $form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id}; + $form->{employee_id} ||= $current_employee->id; + $form->{salesman_id} ||= $current_employee->id; $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); @@ -473,7 +490,7 @@ sub form_header { ), @custom_hiddens, map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts}]; - $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.Draft kivi.File kivi.SalesPurchase kivi.Part ckeditor/ckeditor ckeditor/adapters/jquery kivi.io autocomplete_customer client_js)); + $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.Draft kivi.File kivi.SalesPurchase kivi.Part kivi.CustomerVendor kivi.Validator ckeditor/ckeditor ckeditor/adapters/jquery kivi.io client_js)); $TMPL_VAR{payment_terms_obj} = get_payment_terms_for_invoice(); $form->{duedate} = $TMPL_VAR{payment_terms_obj}->calc_date(reference_date => $form->{invdate}, due_date => $form->{duedate})->to_kivitendo if $TMPL_VAR{payment_terms_obj}; @@ -625,6 +642,9 @@ sub mark_as_paid { } sub show_draft { + # unless no lazy implementation of save draft without invdate + # set the current date like in version <= 3.4.1 + $::form->{invdate} = DateTime->today->to_lxoffice; update(); } @@ -756,7 +776,7 @@ sub update { # ask if it is a part or service item if ( $form->{"partsgroup_$i"} - && ($form->{"partsnumber_$i"} eq "") + && ($form->{"partnumber_$i" } eq "") && ($form->{"description_$i"} eq "")) { $form->{rowcount}--; $form->{"discount_$i"} = ""; @@ -939,7 +959,7 @@ sub post { 1; }) { push @errors, $EVAL_ERROR; - die 'transaction error'; + $form->error($locale->text('Cannot post invoice and/or transfer out! Error message:') . "\n" . join("\n", @errors)); } 1;