mirror of
https://gitlab.com/signalytic/client-external/streamline/streamline-emr.git
synced 2026-09-11 18:51:31 +00:00
68 lines
2.3 KiB
PHP
Executable File
68 lines
2.3 KiB
PHP
Executable File
<?php
|
|
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class DataCorrectionHospitalBillPayableAccountSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeders.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function run()
|
|
{
|
|
$bills = \Streamline\Models\HospitalBill::all();
|
|
|
|
foreach ($bills as $bill){
|
|
$payable_account_array = []; $item_amount_paid = []; $item_balance_remaining = []; $deductions = [];
|
|
$items_array = explode(',', $bill->item_ids);
|
|
$items_subtotal_array = explode(',', $bill->item_subtotals);
|
|
|
|
$bill_balance = $bill->balance;
|
|
$bill_total = $bill->total_amount;
|
|
$bill_amount_paid = (is_null($bill_balance) ? 0 : (int)$bill_total - (int)$bill_balance);
|
|
|
|
for($x = 0; $x < count($items_array); $x++){
|
|
|
|
$new_amount = $bill_amount_paid - array_sum($deductions);
|
|
|
|
$payable_account = get_name($items_array[$x], 'id', 'payable_account','payment_items');
|
|
$payable_account_array[] = ($bill->bill_type == 'GEN') ? $payable_account : 14;
|
|
|
|
if(is_null($bill_balance)){
|
|
|
|
$item_amount_paid[] = 0;
|
|
$item_balance_remaining[] = $items_subtotal_array[$x];
|
|
|
|
}else if($bill_balance == 0){
|
|
|
|
$item_amount_paid[] = $items_subtotal_array[$x];
|
|
$item_balance_remaining[] = 0;
|
|
|
|
}
|
|
else{
|
|
|
|
if($items_subtotal_array[$x] <= $new_amount){
|
|
|
|
$item_amount_paid[] = $items_subtotal_array[$x];
|
|
$item_balance_remaining[] = 0;
|
|
$deductions[] = $items_subtotal_array[$x];
|
|
|
|
}else{
|
|
|
|
$item_amount_paid[] = $new_amount;
|
|
$item_balance_remaining[] = (int)$items_subtotal_array[$x] - (int)$new_amount;
|
|
$deductions[] = $new_amount;
|
|
}
|
|
}
|
|
}
|
|
|
|
\Streamline\Models\HospitalBill::where('id', $bill->id)->update([
|
|
'payable_account' => implode(',', $payable_account_array),
|
|
'item_amount_paid' => implode(',', $item_amount_paid),
|
|
'item_balance_remaining' => implode(',', $item_balance_remaining)
|
|
]);
|
|
}
|
|
}
|
|
}
|