public function listClaimFilesAction() { $visitId = (int) $this->_getParam('visitId'); $rows = array(); $iterator = array(); if ($visitId > 0) { $iterator = new ClaimFileIterator(); $iterator->setFilters(array('visitId' => $visitId)); } foreach ($iterator as $claimFile) { $claimLine = ClaimFile::claimLine($visitId, explode(',', $claimFile->claimIds)); $claimLineId = (int) $claimLine->claimLineId; $total = 0; $billed = 0; $paid = 0; $writeoff = 0; $balance = 0; if ($claimLineId > 0) { $miscCharge = $claimLine->totalMiscCharge; $fees = $claimLine->getTotal(true); $baseFee = $fees['baseFee']; $adjustedFee = $fees['adjustedFee']; $total = $baseFee + $miscCharge; //$billed = $miscCharge; $billed += (double) $claimLine->baseFee; //if ($baseFee > 0) $billed += $baseFee - $adjustedFee; $writeoff = $claimLine->overallWriteOff; $paid = $claimLine->overallPayment + $writeoff; $balance = abs($billed) - $paid; } $color = ''; if ($total > 0 && $balance <= 0) { $color = '#82CA9D'; // pastel green for fully zeroed claims } else { if ($paid > 0) { $color = '#F7977A'; // pastel red for claims partly paid or with a denial status } } $row = array(); $id = (int) $claimFile->claimFileId; $row['id'] = $id; $row['data'] = array(); $row['data'][] = $claimFile->dateTime; $row['data'][] = $billed; $row['data'][] = $paid; $row['data'][] = InsuranceProgram::getInsuranceProgram($claimLine->insuranceProgramId); $row['data'][] = $claimFile->status; $row['userdata']['color'] = $color; $rows[] = $row; } $data = array('rows' => $rows); $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json'); $json->suppressExit = true; $json->direct($data); }