Files
streamline-emr/docker/_streamline-src/database/seeders/DataCorrectionHospitalBillPayableAccountSeeder.php
T

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)
]);
}
}
}