Bugzilla – Attachment 66974 Details for
Bug 18351
No warning when deleting budgets that have funds attached
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 18351: Able to delete budget with funds
Bug-18351-Able-to-delete-budget-with-funds.patch (text/plain), 9.73 KB, created by
Marcel de Rooy
on 2017-09-08 07:40:28 UTC
(
hide
)
Description:
Bug 18351: Able to delete budget with funds
Filename:
MIME Type:
Creator:
Marcel de Rooy
Created:
2017-09-08 07:40:28 UTC
Size:
9.73 KB
patch
obsolete
>From 3317b759a780445bd938e7e7c7b1e87fe151f48b Mon Sep 17 00:00:00 2001 >From: Aleisha Amohia <aleishaamohia@hotmail.com> >Date: Thu, 30 Mar 2017 04:15:54 +0000 >Subject: [PATCH] Bug 18351: Able to delete budget with funds >MIME-Version: 1.0 >Content-Type: text/plain; charset=utf-8 >Content-Transfer-Encoding: 8bit >Content-Type: text/plain; charset=utf-8 > >To test: >1) Create a budget, add a fund >2) Delete budget. Notice this is successful and triggers no warning >message etc. >3) Go to Funds. Notice the funds appear as if they are not there >4) Go into mysql and view the aqbudgetperiods table - notice the funds >are still there and are now inaccessible. >5) Apply patch >6) Create a budget, add a fund >7) Attempt to delete budget. Notice you can't click Delete button. >Confirm number of funds in hover message is correct. >8) Delete fund >9) Confirm you can now delete budget. > >Sponsored-by: Catalyst IT > >Signed-off-by: Felix Hemme <felix.hemme@thulb.uni-jena.de> > >Signed-off-by: Owen Leonard <oleonard@myacpl.org> > >Bug 18351: [FOLLOW-UP] Some code fixes > >See Comment 5. Ready to test. > >Signed-off-by: Lee Jamison <ldjamison@marywood.edu> > >Signed-off-by: Owen Leonard <oleonard@myacpl.org> > >Bug 18351: [FOLLOW-UP] Code fix > >See comment 10. >Ready for testing. > >Signed-off-by: Owen Leonard <oleonard@myacpl.org> > >Bug 18351: [FOLLOW-UP] Prevent deletion from forcing URL > >This patch adds a check in the script for existing funds so that the >budget cannot be deleted when forcing the URL and has other small fixes. > >Signed-off-by: Owen Leonard <oleonard@myacpl.org> > >Bug 18351: [FOLLOW-UP] Prevent deletion if funds are added after clicking 'Delete' and before confirming delete > >Followed test plan and patch works as described. > >Signed-off-by: Dilan Johnpullé <dilan@calyx.net.au> > >Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >--- > admin/aqbudgetperiods.pl | 30 +++++++++++----- > .../prog/en/modules/admin/aqbudgetperiods.tt | 40 +++++++++++++++------- > 2 files changed, 49 insertions(+), 21 deletions(-) > >diff --git a/admin/aqbudgetperiods.pl b/admin/aqbudgetperiods.pl >index ca2171f..fbe1938 100755 >--- a/admin/aqbudgetperiods.pl >+++ b/admin/aqbudgetperiods.pl >@@ -127,21 +127,31 @@ elsif ( $op eq 'add_validate' ) { > #-------------------------------------------------- > elsif ( $op eq 'delete_confirm' ) { > ## delete a budget period (preparation) >- my $dbh = C4::Context->dbh; >- ## $total = number of records linked to the record that must be deleted >+ my $funds = GetBudgets({ budget_period_id => $budget_period_id }); >+ my $fund_count = scalar @$funds; >+ if ( $fund_count > 0 ) { >+ $template->param( funds_exist => 1 ); >+ } >+ >+ #$total = number of records linked to the record that must be deleted > my $total = 0; > my $data = GetBudgetPeriod( $budget_period_id); >- > $template->param( >- %$data >+ %$data > ); > } > > elsif ( $op eq 'delete_confirmed' ) { >-## delete the budget period record >- >- my $data = GetBudgetPeriod( $budget_period_id); >- DelBudgetPeriod($budget_period_id); >+ ## confirm no funds have been added to budget >+ my $funds = GetBudgets({ budget_period_id => $budget_period_id }); >+ my $fund_count = scalar @$funds; >+ if ( $fund_count > 0 ) { >+ $template->param( failed_delete_funds_exist => 1 ); >+ } else { >+ ## delete the budget period record >+ my $data = GetBudgetPeriod( $budget_period_id); >+ DelBudgetPeriod($budget_period_id); >+ } > $op='else'; > } > >@@ -263,6 +273,8 @@ my @period_active_loop; > foreach my $result ( @{$results} ) { > my $budgetperiod = $result; > $budgetperiod->{budget_active} = 1; >+ my $funds = GetBudgets({ budget_period_id => $budgetperiod->{budget_period_id} }); >+ $budgetperiod->{count} = scalar @$funds; > push( @period_active_loop, $budgetperiod ); > } > >@@ -276,6 +288,8 @@ my @period_inactive_loop; > foreach my $result ( @{$results} ) { > my $budgetperiod = $result; > $budgetperiod->{budget_active} = 1; >+ my $funds = GetBudgets({ budget_period_id => $budgetperiod->{budget_period_id} }); >+ $budgetperiod->{count} = scalar @$funds; > push( @period_inactive_loop, $budgetperiod ); > } > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt >index 76f0701..3323b17 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt >@@ -3,24 +3,30 @@ > > [%- BLOCK action_menu %] > <div class="dropdown"> >- <a class="btn btn-default btn-xs dropdown-toggle" id="budgetmenu_[% block_budget_id %]" role="button" data-toggle="dropdown" href="#"> >+ <a class="btn btn-default btn-xs dropdown-toggle" id="budgetmenu_[% block_budget.budget_period_id %]" role="button" data-toggle="dropdown" href="#"> > Actions <b class="caret"></b> > </a> >- <ul class="dropdown-menu pull-right" role="menu" aria-labelledby="budgetmenu_[% block_budget_id %]"> >+ <ul class="dropdown-menu pull-right" role="menu" aria-labelledby="budgetmenu_[% block_budget.budget_period_id %]"> > <li> >- <a href="[% script_name %]?op=add_form&budget_period_id=[% block_budget_id |html %]"><i class="fa fa-pencil"></i> Edit</a> >- </li> >- <li> >- <a href="[% script_name %]?op=delete_confirm&budget_period_id=[% block_budget_id %]"><i class="fa fa-trash"></i> Delete</a> >+ <a href="[% script_name %]?op=add_form&budget_period_id=[% block_budget.budget_period_id |html %]"><i class="fa fa-pencil"></i> Edit</a> > </li> >+ [% IF block_budget.count %] >+ <li class="disabled"> >+ <a data-toggle="tooltip" data-placement="left" title="[% block_budget.count %] fund(s) are attached to this budget. You must delete all attached funds before deleting this budget." href="#"><i class="fa fa-trash"></i> Delete</a> >+ </li> >+ [% ELSE %] >+ <li> >+ <a href="[% script_name %]?op=delete_confirm&budget_period_id=[% block_budget.budget_period_id %]"><i class="fa fa-trash"></i> Delete</a> >+ </li> >+ [% END %] > <li> >- <a href="[% script_name %]?op=duplicate_form&budget_period_id=[% block_budget_id %]"><i class="fa fa-copy"></i> Duplicate</a> >+ <a href="[% script_name %]?op=duplicate_form&budget_period_id=[% block_budget.budget_period_id %]"><i class="fa fa-copy"></i> Duplicate</a> > </li> > <li> >- <a href="[% script_name %]?op=close_form&budget_period_id=[% block_budget_id %]"><i class="fa fa-times-circle"></i> Close</a> >+ <a href="[% script_name %]?op=close_form&budget_period_id=[% block_budget.budget_period_id %]"><i class="fa fa-times-circle"></i> Close</a> > </li> > <li> >- <a href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&budget_period_id=[% block_budget_id %]"><i class="fa fa-plus"></i> Add fund</a> >+ <a href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&budget_period_id=[% block_budget.budget_period_id %]"><i class="fa fa-plus"></i> Add fund</a> > </li> > </ul> > </div> >@@ -225,7 +231,7 @@ > [% END %] > [% IF ( delete_confirm ) %] > <a href="/cgi-bin/koha/admin/aqbudgetperiods.pl">Budgets</a> › >- [% IF ( total ) %] >+ [% IF ( total || funds_exist ) %] > <span>Cannot delete budget '[% budget_period_description %]'</span> > [% ELSE %] > <span>Delete budget '[% budget_period_description %]'?</span> >@@ -401,10 +407,13 @@ > <h3>Cannot delete budget</h3> > <p><strong>This record is used [% total %] times</strong> > . Deletion is not possible.</p> >+ [% ELSIF ( funds_exist ) %] >+ <div class="dialog message"> >+ <h3>Cannot delete budget</h3> >+ <p>This budget has funds attached. You must delete all attached funds before you can delete this budget.</p> > [% ELSE %] > <div class="dialog alert"> > <h3>Delete budget '[% budget_period_description %]'?</h3> >- [% END %] > > <!-- ############################################################# --> > <!-- "delete" and "cancel" buttons --> >@@ -418,6 +427,7 @@ > <form action="[% script_name %]" method="post"> > <button type="submit" class="deny"><i class="fa fa-fw fa-remove"></i> No, do not delete</button> > </form> >+ [% END %] > > </div> > [% END %] >@@ -532,6 +542,10 @@ > [% IF ( else ) %] > <h2>Budgets administration</h2> > >+ [% IF ( failed_delete_funds_exist ) %] >+ <div class="dialog message">Failed to delete budget because funds exist.</div> >+ [% END %] >+ > [% INCLUDE 'budgets-active-currency.inc' %] > > <div id="budgetsTabs" class="toptabs"> >@@ -566,7 +580,7 @@ > </td> > <td class="data">[% period_active.budget_period_total | $Price %]</td> > <td> >- [% PROCESS action_menu block_budget_id=period_active.budget_period_id %] >+ [% PROCESS action_menu block_budget=period_active %] > </td> > </tr> > [% END %] >@@ -598,7 +612,7 @@ > <td> [% IF ( period_loo.budget_period_locked ) %]<span style="color:green;">Locked</span> [% ELSE %][% END %] </td> > <td class="data">[% period_loo.budget_period_total | $Price %]</td> > <td> >- [% PROCESS action_menu block_budget_id=period_loo.budget_period_id %] >+ [% PROCESS action_menu block_budget=period_loo %] > </td> > </tr> > [% END %] >-- >2.1.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 18351
:
61846
|
61871
|
64251
|
64405
|
64664
|
65440
|
65569
|
65570
|
65571
|
65572
|
66160
|
66304
|
66791
| 66974