| Lines 232-238
          subtest 'apply() tests' => sub {
      
      
        Link Here | 
        
          | 232 |     is( $offsets->count, 1, 'Only one offset is generated' ); | 232 |     is( $offsets->count, 1, 'Only one offset is generated' ); | 
        
          | 233 |     $THE_offset = $offsets->next; | 233 |     $THE_offset = $offsets->next; | 
        
          | 234 |     is( $THE_offset->amount * 1, -90, 'Amount was calculated correctly (less than the available credit)' ); | 234 |     is( $THE_offset->amount * 1, -90, 'Amount was calculated correctly (less than the available credit)' ); | 
          
            
              | 235 |     is( $THE_offset->type, 'Credit Applied', 'Defaults to \'Credit Applied\' offset type' ); | 235 |     is( $THE_offset->type, 'APPLY', 'Defaults to \'APPLY\' offset type' ); | 
        
          | 236 |  | 236 |  | 
        
          | 237 |     $debits = Koha::Account::Lines->search({ accountlines_id => $debit_1->id }); | 237 |     $debits = Koha::Account::Lines->search({ accountlines_id => $debit_1->id }); | 
        
          | 238 |     throws_ok | 238 |     throws_ok | 
  
    | Lines 978-984
          subtest "payout() tests" => sub {
      
      
        Link Here | 
        
          | 978 |  | 978 |  | 
        
          | 979 | subtest "reduce() tests" => sub { | 979 | subtest "reduce() tests" => sub { | 
        
          | 980 |  | 980 |  | 
          
            
              | 981 |     plan tests => 29; | 981 |     plan tests => 34; | 
        
          | 982 |  | 982 |  | 
        
          | 983 |     $schema->storage->txn_begin; | 983 |     $schema->storage->txn_begin; | 
        
          | 984 |  | 984 |  | 
  
    | Lines 1101-1112
          subtest "reduce() tests" => sub {
      
      
        Link Here | 
        
          | 1101 |     is( $reduction->status(),    'APPLIED', "Reduction status is 'APPLIED'" ); | 1101 |     is( $reduction->status(),    'APPLIED', "Reduction status is 'APPLIED'" ); | 
        
          | 1102 |  | 1102 |  | 
        
          | 1103 |     my $offsets = Koha::Account::Offsets->search( | 1103 |     my $offsets = Koha::Account::Offsets->search( | 
          
            
              | 1104 |         { credit_id => $reduction->id, debit_id => $debit1->id } ); | 1104 |         { credit_id => $reduction->id } ); | 
            
              | 1105 |     is( $offsets->count, 1, 'Only one offset is generated' ); | 1105 |     is( $offsets->count, 2, 'Two offsets generated' ); | 
        
          | 1106 |     my $THE_offset = $offsets->next; | 1106 |     my $THE_offset = $offsets->next; | 
            
              |  |  | 1107 |     is( $THE_offset->type, 'CREATE', 'CREATE offset added for discount line'); | 
        
          | 1107 |     is( $THE_offset->amount * 1, | 1108 |     is( $THE_offset->amount * 1, | 
          
            
              | 1108 |         -5, 'Correct amount was applied against debit' ); | 1109 |         -5, 'Correct offset amount recorded'); | 
            
              | 1109 |     is( $THE_offset->type, 'DISCOUNT', "Offset type set to 'DISCOUNT'" ); | 1110 |     $THE_offset = $offsets->next; | 
            
              |  |  | 1111 |     is( $THE_offset->type, 'APPLY', "APPLY offset added for 'DISCOUNT'" ); | 
            
              | 1112 |     is( $THE_offset->amount * 1, -5, 'Correct amount offset against debt'); | 
            
              | 1113 |     is( $THE_offset->debit_id, $debit1->accountlines_id, 'APPLY offset recorded the correct debit_id'); | 
        
          | 1110 |  | 1114 |  | 
        
          | 1111 |     # Zero offset created when zero outstanding | 1115 |     # Zero offset created when zero outstanding | 
        
          | 1112 |     # (Refund another 5 on paid debt of 20) | 1116 |     # (Refund another 5 on paid debt of 20) | 
  
    | Lines 1121-1132
          subtest "reduce() tests" => sub {
      
      
        Link Here | 
        
          | 1121 |     is( $debit1->status(), 'REFUNDED', "Debit status updated to REFUNDED"); | 1125 |     is( $debit1->status(), 'REFUNDED', "Debit status updated to REFUNDED"); | 
        
          | 1122 |  | 1126 |  | 
        
          | 1123 |     $offsets = Koha::Account::Offsets->search( | 1127 |     $offsets = Koha::Account::Offsets->search( | 
          
            
              | 1124 |         { credit_id => $reduction->id, debit_id => $debit1->id } ); | 1128 |         { credit_id => $reduction->id } ); | 
            
              | 1125 |     is( $offsets->count, 1, 'Only one new offset is generated' ); | 1129 |     is( $offsets->count, 2, 'Two offsets generated' ); | 
            
              |  |  | 1130 |     $THE_offset = $offsets->next; | 
            
              | 1131 |     is( $THE_offset->type, 'CREATE', 'CREATE offset added for refund line'); | 
            
              | 1132 |     is( $THE_offset->amount * 1, | 
            
              | 1133 |         -5, 'Correct offset amount recorded'); | 
        
          | 1126 |     $THE_offset = $offsets->next; | 1134 |     $THE_offset = $offsets->next; | 
            
              |  |  | 1135 |     is( $THE_offset->type, 'APPLY', "APPLY offset added for 'REFUND'" ); | 
        
          | 1127 |     is( $THE_offset->amount * 1, | 1136 |     is( $THE_offset->amount * 1, | 
        
          | 1128 |         0, 'Zero offset created for already paid off debit' ); | 1137 |         0, 'Zero offset created for already paid off debit' ); | 
            
              | 1129 |     is( $THE_offset->type, 'REFUND', "Offset type set to 'REFUND'" ); |  |  | 
        
          | 1130 |  | 1138 |  | 
        
          | 1131 |     # Compound reduction should not allow more than original amount | 1139 |     # Compound reduction should not allow more than original amount | 
        
          | 1132 |     # (Reduction of 5 + 5 + 20 > 20) | 1140 |     # (Reduction of 5 + 5 + 20 > 20) | 
  
    | Lines 1157-1163
          subtest "reduce() tests" => sub {
      
      
        Link Here | 
        
          | 1157 | }; | 1165 | }; | 
        
          | 1158 |  | 1166 |  | 
        
          | 1159 | subtest "cancel() tests" => sub { | 1167 | subtest "cancel() tests" => sub { | 
          
            
              | 1160 |     plan tests => 16; | 1168 |     plan tests => 18; | 
        
          | 1161 |  | 1169 |  | 
        
          | 1162 |     $schema->storage->txn_begin; | 1170 |     $schema->storage->txn_begin; | 
        
          | 1163 |  | 1171 |  | 
  
    | Lines 1243-1255
          subtest "cancel() tests" => sub {
      
      
        Link Here | 
        
          | 1243 |     is( $account->balance() * 1, 15, "Account balance is 15" ); | 1251 |     is( $account->balance() * 1, 15, "Account balance is 15" ); | 
        
          | 1244 |  | 1252 |  | 
        
          | 1245 |     my $offsets = Koha::Account::Offsets->search( | 1253 |     my $offsets = Koha::Account::Offsets->search( | 
          
            
              | 1246 |         { credit_id => $cancellation->id, debit_id => $debit1->id } ); | 1254 |         { credit_id => $cancellation->id } ); | 
            
              | 1247 |     is( $offsets->count, 1, 'Only one offset is generated' ); | 1255 |     is( $offsets->count, 2, 'Two offsets are generated' ); | 
        
          | 1248 |     my $THE_offset = $offsets->next; | 1256 |     my $THE_offset = $offsets->next; | 
            
              |  |  | 1257 |     is( $THE_offset->type, 'CREATE', 'CREATE offset added for cancel line'); | 
            
              | 1258 |     is( $THE_offset->amount * 1, -10, 'Correct offset amount recorded' ); | 
            
              | 1259 |     $THE_offset = $offsets->next; | 
            
              | 1260 |     is( $THE_offset->type, 'APPLY', "APPLY offset added" ); | 
        
          | 1249 |     is( $THE_offset->amount * 1, | 1261 |     is( $THE_offset->amount * 1, | 
        
          | 1250 |         -10, 'Correct amount was applied against debit' ); | 1262 |         -10, 'Correct amount was applied against debit' ); | 
            
              | 1251 |     is( $THE_offset->type, 'CANCELLATION', |  |  | 
            
              | 1252 |         "Offset type set to 'CANCELLATION'" ); | 
        
          | 1253 |  | 1263 |  | 
        
          | 1254 |     $schema->storage->txn_rollback; | 1264 |     $schema->storage->txn_rollback; | 
        
          | 1255 | }; | 1265 | }; | 
            
              | 1256 | -  |  |  |