Bug 23590: Add the ability to notify a new manager
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 7 Nov 2019 13:42:12 +0000 (14:42 +0100)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 25 Mar 2020 09:34:48 +0000 (09:34 +0000)
Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt
suggestion/suggestion.pl

index 9b50d29..ec3798e 100644 (file)
                         <a id="restore_previous_manager" href="#"><i class="fa fa-trash"></i> Keep existing manager</a>
                     [% END %]
                     <input type="hidden" name="managedby" id="managedby" value="[% logged_in_user.borrowernumber | html %]" />
+
+                    <br/>
+                    <label for="notify">Notify manager:</label>
+                    <input type="checkbox" id="notify" name="notify" value="notify" disabled="disabled" title="A TO_PROCESS notice will be generated and send to the manager if a valid email address is defined. This can be checked if a new manager has been selected." />
                 </div>
             </li>
         </ol>
                 $('#managedby_name').html(managerlink);
                 $('#managedby').val(borrowernumber);
             }
+
+            var notify = $('#notify');
+            if ( notify.length ) {
+                if ( borrowernumber == [% logged_in_user.borrowernumber | html %] || borrowernumber == [% managedby_patron.borrowernumber | html %] ) {
+                    $(notify).prop('checked', false).prop('disabled', true);
+                } else {
+                    $(notify).prop('disabled', false);
+                }
+            }
         }
 
         $(document).ready(function(){
                         + borrowername + '</a>';
                     $('#managedby_name').html(managerlink);
                     $('#managedby').val([% managedby_patron.borrowernumber | html %]);
+                    $('#notify').prop('checked', false).prop('disabled', true);
                 });
 
             });
index 7e8e2b2..1dad30a 100755 (executable)
@@ -91,6 +91,7 @@ my $managedby       = $input->param('managedby');
 my $displayby       = $input->param('displayby') || '';
 my $tabcode         = $input->param('tabcode');
 my $save_confirmed  = $input->param('save_confirmed') || 0;
+my $notify          = $input->param('notify');
 
 my $reasonsloop     = GetAuthorisedValues("SUGGEST");
 
@@ -103,7 +104,7 @@ my $columns = ' '.join(' ', $schema->source('Suggestion')->columns).' ';
 my $suggestion_only = { map { $columns =~ / $_ / ? ($_ => $suggestion_ref->{$_}) : () } keys %$suggestion_ref };
 $suggestion_only->{STATUS} = $suggestion_ref->{STATUS};
 
-delete $$suggestion_ref{$_} foreach qw( suggestedbyme op displayby tabcode edit_field );
+delete $$suggestion_ref{$_} foreach qw( suggestedbyme op displayby tabcode edit_field notify );
 foreach (keys %$suggestion_ref){
     delete $$suggestion_ref{$_} if (!$$suggestion_ref{$_} && ($op eq 'else' ));
 }
@@ -163,7 +164,39 @@ if ( $op =~ /save/i ) {
         }
 
         if ( $suggestion_only->{'suggestionid'} > 0 ) {
+
             &ModSuggestion($suggestion_only);
+
+            if ( $notify ) {
+                my $patron = Koha::Patrons->find( $suggestion_only->{managedby} );
+                my $email_address = $patron->notice_email_address;
+                if ($patron->notice_email_address) {
+                    my $budget = C4::Budgets::GetBudget( $suggestion_only->{budgetid} );
+                    my $library = $patron->library;
+                    my $admin_email_address = $library->branchemail
+                      || C4::Context->preference('KohaAdminEmailAddress');
+
+                    my $letter = C4::Letters::GetPreparedLetter(
+                        module      => 'suggestions',
+                        letter_code => 'TO_PROCESS',
+                        branchcode  => $patron->branchcode,
+                        lang        => $patron->lang,
+                        tables      => {
+                            suggestions => $suggestion_only->{suggestionid},
+                            branches    => $patron->branchcode,
+                            borrowers   => $patron->borrowernumber,
+                        },
+                    );
+                    C4::Letters::EnqueueLetter(
+                        {
+                            letter                 => $letter,
+                            borrowernumber         => $patron->borrowernumber,
+                            message_transport_type => 'email',
+                            from_address           => $admin_email_address,
+                        }
+                    );
+                }
+            }
         } else {
             ###FIXME:Search here if suggestion already exists.
             my $suggestions_loop =