| Lines 23-29
          use C4::CourseReserves qw/ModCourseItem ModCourseReserve DelCourseReserve GetCou
      
      
        Link Here | 
        
          | 23 | use C4::Context; | 23 | use C4::Context; | 
        
          | 24 | use Koha::Items; | 24 | use Koha::Items; | 
        
          | 25 |  | 25 |  | 
          
            
              | 26 | use Test::More tests => 34; | 26 | use Test::More tests => 35; | 
        
          | 27 |  | 27 |  | 
        
          | 28 | BEGIN { | 28 | BEGIN { | 
        
          | 29 |     require_ok('C4::CourseReserves'); | 29 |     require_ok('C4::CourseReserves'); | 
  
    | Lines 202-207
          DelCourseReserve( cr_id => $cr_id2 );
      
      
        Link Here | 
        
          | 202 | $item = Koha::Items->find($itemnumber); | 202 | $item = Koha::Items->find($itemnumber); | 
        
          | 203 | is($item->ccode, '', 'Item ccode should be set back to empty'); | 203 | is($item->ccode, '', 'Item ccode should be set back to empty'); | 
        
          | 204 |  | 204 |  | 
            
              |  |  | 205 | subtest 'Ensure modifying fields on existing course items updates the item and course item' => sub { | 
            
              | 206 |     plan tests => 60; | 
            
              | 207 |  | 
            
              | 208 |     my ($biblionumber, $itemnumber) = create_bib_and_item(); | 
            
              | 209 |     my $ci_id = ModCourseItem( | 
            
              | 210 |         itemnumber            => $itemnumber, | 
            
              | 211 |         itype_enabled         => 0, | 
            
              | 212 |         ccode_enabled         => 0, | 
            
              | 213 |         homebranch_enabled    => 0, | 
            
              | 214 |         holdingbranch_enabled => 0, | 
            
              | 215 |         location_enabled      => 0, | 
            
              | 216 |     ); | 
            
              | 217 |  | 
            
              | 218 |     my $course = $builder->build({ | 
            
              | 219 |         source => 'CourseReserve', | 
            
              | 220 |         value => { | 
            
              | 221 |             ci_id => $ci_id, | 
            
              | 222 |             enabled => 'no', | 
            
              | 223 |         } | 
            
              | 224 |     }); | 
            
              | 225 |  | 
            
              | 226 |     my $cr_id = ModCourseReserve( | 
            
              | 227 |         course_id   => $course->{course_id}, | 
            
              | 228 |         ci_id       => $ci_id, | 
            
              | 229 |         staff_note  => '', | 
            
              | 230 |         public_note => '', | 
            
              | 231 |     ); | 
            
              | 232 |  | 
            
              | 233 |     my $course_item = GetCourseItem( ci_id => $ci_id ); | 
            
              | 234 |     is($course_item->{itype_storage}, undef, 'Course item itype storage should be undef'); | 
            
              | 235 |     is($course_item->{ccode_storage}, undef, 'Course item ccode storage should be undef'); | 
            
              | 236 |     is($course_item->{homebranch_storage}, undef, 'Course item holding branch storage should be undef'); | 
            
              | 237 |     is($course_item->{holdingbranch_storage}, undef, 'Course item holding branch storage should be undef'); | 
            
              | 238 |     is($course_item->{location_storage}, undef, 'Course item location storage should be undef'); | 
            
              | 239 |  | 
            
              | 240 |     is($course_item->{itype}, undef, 'Course item itype should be undef'); | 
            
              | 241 |     is($course_item->{ccode}, undef, 'Course item ccode should be undef'); | 
            
              | 242 |     is($course_item->{homebranch}, undef, 'Course item holding branch should be undef'); | 
            
              | 243 |     is($course_item->{holdingbranch}, undef, 'Course item holding branch should be undef'); | 
            
              | 244 |     is($course_item->{location}, undef, 'Course item location should be undef'); | 
            
              | 245 |  | 
            
              | 246 |     is($course_item->{itype_enabled}, 0, 'Course item itype enabled should be 0'); | 
            
              | 247 |     is($course_item->{ccode_enabled}, 0, 'Course item ccode enabled should be 0'); | 
            
              | 248 |     is($course_item->{homebranch_enabled}, 0, 'Course item holding branch enabled should be 0'); | 
            
              | 249 |     is($course_item->{holdingbranch_enabled}, 0, 'Course item holding branch enabled should be 0'); | 
            
              | 250 |     is($course_item->{location_enabled}, 0, 'Course item location enabled should be 0'); | 
            
              | 251 |  | 
            
              | 252 |     my $item = Koha::Items->find($itemnumber); | 
            
              | 253 |     is($item->effective_itemtype, 'CD_foo', 'Item type in course should be CD_foo'); | 
            
              | 254 |     is($item->ccode, 'CD', 'Item ccode in course should be CD'); | 
            
              | 255 |     is($item->homebranch, 'B1', 'Item home branch in course should be B1'); | 
            
              | 256 |     is($item->holdingbranch, 'B1', 'Item holding branch in course should be B1'); | 
            
              | 257 |     is($item->location, 'HR', 'Item location in course should be HR'); | 
            
              | 258 |  | 
            
              | 259 |     ModCourseItem( | 
            
              | 260 |         itemnumber            => $itemnumber, | 
            
              | 261 |         itype_enabled         => 1, | 
            
              | 262 |         ccode_enabled         => 1, | 
            
              | 263 |         homebranch_enabled    => 1, | 
            
              | 264 |         holdingbranch_enabled => 1, | 
            
              | 265 |         location_enabled      => 1, | 
            
              | 266 |         itype                 => 'BK_foo', | 
            
              | 267 |         ccode                 => 'BOOK', | 
            
              | 268 |         homebranch            => 'B2', | 
            
              | 269 |         holdingbranch         => 'B2', | 
            
              | 270 |         location              => 'TH', | 
            
              | 271 |     ); | 
            
              | 272 |  | 
            
              | 273 |     $course_item = GetCourseItem( ci_id => $ci_id ); | 
            
              | 274 |     is($course_item->{itype_storage}, 'CD_foo', 'Course item itype storage should be CD_foo'); | 
            
              | 275 |     is($course_item->{ccode_storage}, 'CD', 'Course item ccode storage should be CD'); | 
            
              | 276 |     is($course_item->{homebranch_storage}, 'B1', 'Course item holding branch storage should be B1'); | 
            
              | 277 |     is($course_item->{holdingbranch_storage}, 'B1', 'Course item holding branch storage should be B1'); | 
            
              | 278 |     is($course_item->{location_storage}, 'HR', 'Course item location storage should be HR'); | 
            
              | 279 |  | 
            
              | 280 |     is($course_item->{itype}, 'BK_foo', 'Course item itype should be BK_foo'); | 
            
              | 281 |     is($course_item->{ccode}, 'BOOK', 'Course item ccode should be BOOK'); | 
            
              | 282 |     is($course_item->{homebranch}, 'B2', 'Course item holding branch should be B2'); | 
            
              | 283 |     is($course_item->{holdingbranch}, 'B2', 'Course item holding branch should be B2'); | 
            
              | 284 |     is($course_item->{location}, 'TH', 'Course item location should be TH'); | 
            
              | 285 |  | 
            
              | 286 |     is($course_item->{itype_enabled}, 1, 'Course item itype enabled should be 1'); | 
            
              | 287 |     is($course_item->{ccode_enabled}, 1, 'Course item ccode enabled should be 1'); | 
            
              | 288 |     is($course_item->{homebranch_enabled}, 1, 'Course item holding branch enabled should be 1'); | 
            
              | 289 |     is($course_item->{holdingbranch_enabled}, 1, 'Course item holding branch enabled should be 1'); | 
            
              | 290 |     is($course_item->{location_enabled}, 1, 'Course item location enabled should be 1'); | 
            
              | 291 |  | 
            
              | 292 |     $item = Koha::Items->find($itemnumber); | 
            
              | 293 |     is($item->effective_itemtype, 'BK_foo', 'Item type in course should be BK_foo'); | 
            
              | 294 |     is($item->ccode, 'BOOK', 'Item ccode in course should be BOOK'); | 
            
              | 295 |     is($item->homebranch, 'B2', 'Item home branch in course should be B2'); | 
            
              | 296 |     is($item->holdingbranch, 'B2', 'Item holding branch in course should be B2'); | 
            
              | 297 |     is($item->location, 'TH', 'Item location in course should be TH'); | 
            
              | 298 |  | 
            
              | 299 |     # Test removing fields from an active course item | 
            
              | 300 |     ModCourseItem( | 
            
              | 301 |         itemnumber            => $itemnumber, | 
            
              | 302 |         itype_enabled         => 0, | 
            
              | 303 |         ccode_enabled         => 0, | 
            
              | 304 |         homebranch_enabled    => 0, | 
            
              | 305 |         holdingbranch_enabled => 0, | 
            
              | 306 |         location_enabled      => 0, | 
            
              | 307 |     ); | 
            
              | 308 |  | 
            
              | 309 |     $course_item = GetCourseItem( ci_id => $ci_id ); | 
            
              | 310 |     is($course_item->{itype_storage}, undef, 'Course item itype storage should be undef'); | 
            
              | 311 |     is($course_item->{ccode_storage}, undef, 'Course item ccode storage should be undef'); | 
            
              | 312 |     is($course_item->{homebranch_storage}, undef, 'Course item holding branch storage should be undef'); | 
            
              | 313 |     is($course_item->{holdingbranch_storage}, undef, 'Course item holding branch storage should be undef'); | 
            
              | 314 |     is($course_item->{location_storage}, undef, 'Course item location storage should be undef'); | 
            
              | 315 |  | 
            
              | 316 |     is($course_item->{itype}, undef, 'Course item itype should be undef'); | 
            
              | 317 |     is($course_item->{ccode}, undef, 'Course item ccode should be undef'); | 
            
              | 318 |     is($course_item->{homebranch}, undef, 'Course item holding branch should be undef'); | 
            
              | 319 |     is($course_item->{holdingbranch}, undef, 'Course item holding branch should be undef'); | 
            
              | 320 |     is($course_item->{location}, undef, 'Course item location should be undef'); | 
            
              | 321 |  | 
            
              | 322 |     is($course_item->{itype_enabled}, 0, 'Course item itype enabled should be 0'); | 
            
              | 323 |     is($course_item->{ccode_enabled}, 0, 'Course item ccode enabled should be 0'); | 
            
              | 324 |     is($course_item->{homebranch_enabled}, 0, 'Course item holding branch enabled should be 0'); | 
            
              | 325 |     is($course_item->{holdingbranch_enabled}, 0, 'Course item holding branch enabled should be 0'); | 
            
              | 326 |     is($course_item->{location_enabled}, 0, 'Course item location enabled should be 0'); | 
            
              | 327 |  | 
            
              | 328 |     $item = Koha::Items->find($itemnumber); | 
            
              | 329 |     is($item->effective_itemtype, 'CD_foo', 'Item type in course should be CD_foo'); | 
            
              | 330 |     is($item->ccode, 'CD', 'Item ccode in course should be CD'); | 
            
              | 331 |     is($item->homebranch, 'B1', 'Item home branch in course should be B1'); | 
            
              | 332 |     is($item->holdingbranch, 'B1', 'Item holding branch in course should be B1'); | 
            
              | 333 |     is($item->location, 'HR', 'Item location in course should be HR'); | 
            
              | 334 | }; | 
            
              | 335 |  | 
        
          | 205 | subtest 'Ensure item info is preserved' => sub { | 336 | subtest 'Ensure item info is preserved' => sub { | 
        
          | 206 |     plan tests => 8; | 337 |     plan tests => 8; | 
        
          | 207 |  | 338 |  | 
            
              | 208 | -  |  |  |