$payi->reduceAmount($payi->getBalance());*/
     } elseif ($amount_return > 0) {
         $payi->finesCanceledAmount($amount_return / 100);
     }
 } else {
     //sequencenumber received = sequencenumber submitted
     if ($payi->detail['invoice_complete_status'] == 'F' || $payi->detail['invoice_complete_status'] == 'A' || $payi->detail['invoice_complete_status'] == 'U' || $payi->detail['invoice_complete_status'] == 'P' || $payi->detail['invoice_complete_status'] == 'D' || $payi->detail['invoice_complete_status'] == '1') {
         /* Handling debit response which debit transactions triggered by payone-return-sender.php which are:
          * 1) Overpayment (last status = F)
          * 2) Closing small amount payment (last status = A or U)
          * 3) Return process (last status = F, P, D, 1)
          */
         if ($amount_return < 0) {
             $payi->overPaymentAmount($amount_return / 100);
         } else {
             $payi->debitAmount($amount_return / 100);
         }
     }
 }
 //UPDATE INVOICE STATUS
 if ($request['balance'] <= 0) {
     if ($request['balance'] == 0) {
         if ($payi->detail['invoice_complete_status'] == 'F') {
             //set as refund processed for refund
             $status = 'D';
         } elseif ($payi->detail['invoice_complete_status'] == 'A' || $payi->detail['invoice_complete_status'] == 'B') {
             //if user not paid yet or this is before process is captured submitted "B" then returned all products, set as invoice cancelled
             $status = '3';
         } else {
             //set as paid for non-refund
             $status = 'P';
                 }
             } elseif ($class_pi->detail['invoice_order_type'] == 'S') {
                 //CLOSED RETURN (REMOVE FROM Return List on SP Orders Management on Tab "Cancel & Return")
                 //if(count($rid_arr)>0) {
                 //    foreach($rid_arr as $return_id) if($return_id>0) $class_jo->returnItemUpdate($return_id, 'confirm_return', '1');
                 //}
                 //Don't do this, the returns in SP Orders Management will be removed when the returns are reported to SP
                 //By doing this here we prevent the returns to be reported to our SP which is very important
             }
             $class_payone->payoneReturnItemHistory($return_hist);
             if ($return_hist['amount_return_submitted'] == 0) {
                 //REFUND >> $returns['amount_return'] is negative
                 //$class_pi->overPaymentAmount($return_hist['amount_return']/100);
                 $class_pi->overPaymentAmount($amount_return_total / 100);
             } else {
                 $class_pi->debitAmount($request['amount'] / 100 * -1);
                 //$request['amount'] = round($return_hist['amount_return_submitted']);
                 $last_balance = $class_pi->getBalance();
                 if ($last_balance < 0) {
                     $class_pi->overPaymentAmount($last_balance);
                     $class_pi->updateCompleteStatus('F');
                     //F = REFUND SUBMITTED
                 }
             }
         } else {
             $failed[] = $return_id;
         }
     }
 } else {
     //                $counter_is_refund++;
     $counter_is_refund[] = $request['txid'];