function _commerce_invoice_suggest_invoice_status in Commerce Invoice 7.2
Suggests invoice status for a given order, considering previous invoice's status (given the previous invoice exists)
1 call to _commerce_invoice_suggest_invoice_status()
- commerce_invoice_create_from_order_form in ./
commerce_invoice.admin.inc - Form callback for invoicing orders.
File
- ./
commerce_invoice.module, line 512 - The Commerce Invoice module.
Code
function _commerce_invoice_suggest_invoice_status($order) {
/** @var Invoice $previous_invoice */
$previous_invoice = commerce_invoice_load_current($order);
if ($previous_invoice) {
$new_status = $previous_invoice->invoice_status;
// @todo: if previous invoice's status was STATUS_PAID but new invoice's total
// will differ (i.e. order total changed since last invoice was issued)
// new status should be STATUS_PENDING.
}
else {
switch ($order->status) {
case 'completed':
$new_status = Invoice::STATUS_PAID;
break;
case 'canceled':
$new_status = Invoice::STATUS_CANCELED;
break;
default:
$new_status = Invoice::STATUS_PENDING;
}
}
return $new_status;
}