use Mojo::Base 'Mojolicious::Controller';
use Koha::Acquisition::Funds;
-use JSON qw(to_json);
use Try::Tiny;
my $filter;
for my $filter_param ( keys %$args ) {
- $filter->{$filter_param} = { LIKE => $args->{$filter_param} . "%" }
- if $args->{$filter_param};
+ if ($args->{$filter_param}) {
+ if ($filter_param eq "budget_owner_id") {
+ # Perform an exact search on the borrowernumber
+ $filter->{$filter_param} = { "=" => $args->{$filter_param} }
+ } else {
+ # And a "start with" search on the budget name
+ $filter->{$filter_param} = { LIKE => $args->{$filter_param} . "%" }
+ }
+ }
}
return try {
sub _to_api {
my $fund = shift;
my $returnfund;
- $returnfund->{id} = delete $fund->{budget_id};
+ $returnfund->{fund_id} = delete $fund->{budget_id};
$returnfund->{code} = delete $fund->{budget_code};
$returnfund->{name} = delete $fund->{budget_name};
+ $returnfund->{library_id} = delete $fund->{budget_branchcode};
+ $returnfund->{total_amount} = delete $fund->{budget_amount};
+ $returnfund->{warn_at_percentage} = delete $fund->{budget_encumb};
+ $returnfund->{warn_at_amount} = delete $fund->{budget_expend};
+ $returnfund->{notes} = delete $fund->{budget_notes};
+ $returnfund->{budget_id} = delete $fund->{budget_period_id};
+ $returnfund->{timestamp} = delete $fund->{timestamp};
+ $returnfund->{fund_owner_id} = delete $fund->{budget_owner_id};
+ $returnfund->{fund_access} = delete $fund->{budget_permission};
+ $returnfund->{statistic1_auth_value_category} = delete $fund->{sort1_authcat};
+ $returnfund->{statistic2_auth_value_category} = delete $fund->{sort2_authcat};
return $returnfund;
}
sub _to_model {
my $fund = shift;
+ my $returnfund;
# Rename back
- $fund->{budget_id} = delete $fund->{id};
- $fund->{budget_code} = delete $fund->{code};
- $fund->{budget_name} = delete $fund->{name};
+ $returnfund->{budget_id} = delete $fund->{fund_id};
+ $returnfund->{budget_code} = delete $fund->{code};
+ $returnfund->{budget_name} = delete $fund->{name};
+ $returnfund->{budget_branchcode} = delete $fund->{library_id};
+ $returnfund->{budget_amount} = delete $fund->{total_amount};
+ $returnfund->{budget_encumb} = delete $fund->{warn_at_percentage};
+ $returnfund->{budget_expend} = delete $fund->{warn_at_amount};
+ $returnfund->{budget_notes} = delete $fund->{notes};
+ $returnfund->{budget_period_id} = delete $fund->{budget_id};
+ $returnfund->{budget_owner_id} = delete $fund->{fund_owner_id};
+ $returnfund->{timestamp} = delete $fund->{timestamp};
+ $returnfund->{budget_permission} = delete $fund->{fund_access};
+ $returnfund->{sort1_authcat} = delete $fund->{statistic1_auth_value_category};
+ $returnfund->{sort2_authcat} = delete $fund->{statistic2_auth_value_category};
- return $fund;
+ return $returnfund;
}
1;
{
"type": "object",
"properties": {
- "id": {
+ "fund_id": {
"$ref": "../x-primitives.json#/fund_id"
},
"code": {
"string",
"null"
],
- "description": "Fund code"
+ "description": "Code assigned to the fund by the user"
},
"name": {
"type": [
"string",
"null"
],
- "description": "Fund name"
+ "description": "Name assigned to the fund by the user"
+ },
+ "library_id": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Internal identifier for the library that this fund belongs to"
+ },
+ "total_amount": {
+ "type": [
+ "number",
+ "null"
+ ],
+ "description": "Total amount for this fund"
+ },
+ "warn_at_percentage": {
+ "type": [
+ "number",
+ "null"
+ ],
+ "description": "Warning at percentage"
+ },
+ "warn_at_amount": {
+ "type": [
+ "number",
+ "null"
+ ],
+ "description": "Warning at amount"
+ },
+ "notes": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Notes related to this fund"
+ },
+ "budget_id": {
+ "type": [
+ "number",
+ "null"
+ ],
+ "description": "Internal identifier for the budget"
+ },
+ "timestamp": {
+ "type": [
+ "string"
+ ],
+ "format": "date-time",
+ "description": "Timestamp"
+ },
+ "fund_owner_id": {
+ "type": [
+ "number",
+ "null"
+ ],
+ "description": "Internal identifier for the fund owner"
+ },
+ "fund_access": {
+ "type": [
+ "number",
+ "null"
+ ],
+ "description": "Level of permission for this fund (1: owner, 2: owner, users and library, 3: owner and users)"
+ },
+ "statistic1_auth_value_category": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Statistical category for this fund"
+ },
+ "statistic2_auth_value_category": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Second statistical category for this fund"
}
},
"additionalProperties": false,