commit melhorias sgf
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
namespace App\Modules\Purchasing;
|
||||
|
||||
/** Classification only; balances/terms remain in their existing authoritative readers. */
|
||||
final class PayableAge
|
||||
{
|
||||
public static function classify(array $row,?string $reference):array
|
||||
{
|
||||
$days=null;$bucket=null;
|
||||
if($reference!==null){
|
||||
if(!$row['obligation_id'])$bucket='unrecognised';
|
||||
elseif($row['source_conflict']||$row['balance_minor']===null)$bucket='indeterminate';
|
||||
elseif($row['balance_minor']==='0')$bucket='settled';
|
||||
elseif(($due=$row['reviewed_terms']['due_on']??null)===null)$bucket='unknown';
|
||||
else{$zone=new \DateTimeZone('UTC');$days=max(0,(int)(new \DateTimeImmutable($due,$zone))->diff(new \DateTimeImmutable($reference,$zone))->format('%r%a'));$bucket=$days===0?'not_due':($days<=30?'days_1_30':($days<=60?'days_31_60':($days<=90?'days_61_90':'days_over_90')));}
|
||||
}
|
||||
return ['reviewed_age_days'=>$days,'reviewed_age_bucket'=>$bucket];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user