//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 {