Хорошо, так скажем, у меня есть
Баланс $6.00
создан из кредита.
Счет-фактура $12.00
созданный администратором.
Вы вычитаете сумму счета из баланса и получаете в общей сложности $-6.00
Как бы вы вычли два, пока не достигнете $0.00
рассчитать сумму, снятую с баланса для оплаты счета.
Таким образом, вы получите, что баланс был оплачен в общей сложности $6.00
и клиент все еще должен $6.00
Мой код PHP выглядит следующим образом!
if($balance >= $due)
{
$amount = $due;
}
else
{
$amount = $due - $balance;
}
if($balance > '0')
{
$data = array(
'invoice_id' => $invoice_id,
'balance_pay' => '1',
'amount' =>
);
$this->payment->create($data);
}
ОБНОВИТЬ
Я просто пытаюсь выяснить, сколько еще должно быть в счете. Если я не пойму это из-за того, как настроено мое приложение, оно покажет, что общая сумма счета была оплачена, когда на самом деле была оплачена только половина.
Это ОЧЕНЬ простая проблема, которая без необходимости усложнялась, что часто случается. Просто нужно сделать шаг назад, а не углубляться в проблему (если это вообще возможно) и еще больше усложнить проблему.
Во-первых, вам не нужно вычитать, чтобы достичь $0.00
,
В наиболее общем случае сумма текущего кредитного баланса может быть отрицательной (клиент в настоящее время должен вам деньги), 0 (клиент не должен вам никаких денег в настоящее время) или положительной (вы в настоящее время должны деньги клиента). Но фактический расчет одинаков во всех трех случаях. Пусть текущий кредитный баланс для клиента будет x
,
Теперь вы хотите сгенерировать счет. Пусть эта сумма счета будет y
, (Я предполагаю, что y
всегда будет позитивным, но на самом деле не имеет значения.)
Затем, z = x - y
это новый кредитный баланс для клиента:
z < 0
: клиенту не хватило кредитного баланса для оплаты нового счета. Клиент все еще должен заплатить z
,z = 0
: у клиента было достаточно кредитного баланса, чтобы полностью оплатить новый счет, и новый кредитный баланс 0
,z > 0
: у клиента было более чем достаточно кредита для оплаты нового счета, а новый кредитный баланс z
,Это просто прямое сложение / вычитание, без необходимости усложняющееся в вашей голове из-за знаков кредит / дебет / плюс / минус, с дополнительной путаницей в результате желания баланс до нуля когда ты действительно не должен.
Других решений пока нет …