//set as refund processed for refund
                 $status = 'D';
             } elseif ($payi->detail['invoice_complete_status'] == 'A') {
                 //if user not paid yet then returned all products, set as invoice cancelled
                 $status = '3';
             } else {
                 //set as paid for non-refund
                 $status = 'P';
             }
             if ($payi->getBalance() < 0) {
                 /* If refund was processed on captured while invoice_amount_paid > invoice_amount
                  * (means we not prepared return container for this),
                  * after we received captured from payone: balance = 0, getBalance < 0
                  * so we need to save the difference as overPaymentAmount
                  */
                 $payi->overPaymentAmount($payi->getBalance());
             } elseif ($payi->getBalance() > 0) {
                 /* If there any adjusted to closed small amount on capture,
                  * after received captured from payone: balance = 0, getBalance > 0
                  * so we need to save the difference as reduceAmount
                  */
                 $payi->reduceAmount($payi->getBalance());
             }
         } else {
             $status = 'O';
         }
         $payi->updateCompleteStatus($status);
     }
     $payi->payoneSaldo($request['balance']);
     break;
 case 'paid':
                    }
                    $success[] = $invoice_id;
                    if (isset($response['settleaccount']) && $response['settleaccount'] == 'yes') {
                        $update_status = '';
                        $balance = $inv->getBalance();
                        if ($inv->detail['invoice_complete_status'] == 'O') {
                            $update_status = 'F';
                            //REFUND SUBMITTED
                        } elseif (in_array($inv->detail['invoice_complete_status'], array('U', 'P', '2', '3')) && $balance < 0) {
                            $inv->saveStatusChangeHistory('O');
                            //SET OVERPAID AS HISTORY ONLY
                            $update_status = 'F';
                        }
                        if ($update_status != '') {
                            if ($update_status == 'F') {
                                $inv->overPaymentAmount($balance);
                            }
                            $inv->updateCompleteStatus($update_status);
                        }
                    }
                } else {
                    $failed[] = $invoice_id;
                }
            }
        } else {
            $counter_capture_no_txid++;
        }
        unset($request, $inv);
    }
}
echo "Total Preauth Captured : {$counter_preauth_captured} \n";
                         }
                     }
                 }
             } 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 {