/** * Getting the payments * * @param unknown $sender * @param unknown $param */ public function getPayments($sender, $param) { $result = $error = array(); try { $pageNo = 1; $pageSize = $this->pageSize; if (isset($param->CallbackParameter->pagination)) { $pageNo = isset($param->CallbackParameter->pagination->pageNo) ? $param->CallbackParameter->pagination->pageNo : $pageNo; $pageSize = isset($param->CallbackParameter->pagination->pageSize) ? $param->CallbackParameter->pagination->pageSize : $pageSize; } if (!isset($param->CallbackParameter->entity) || !isset($param->CallbackParameter->entityId) || ($entityName = trim($param->CallbackParameter->entity)) === '' || !($entity = $entityName::get(trim($param->CallbackParameter->entityId))) instanceof $entityName) { throw new Exception('System Error: invalid Order or CreditNote provided. Can NOT get any payments at all.'); } if ($entity instanceof Order) { $where = 'orderId = ?'; } else { if ($entity instanceof CreditNote) { $where = 'creditNoteId = ?'; } else { throw new Exception('System Error: you can ONLY get payments for a Order or a CreditNote'); } } $stats = $items = array(); foreach (Payment::getAllByCriteria($where, array($entity->getId()), true, $pageNo, $pageSize, array('id' => 'desc'), $stats) as $payment) { $items[] = $payment->getJson(); } $result['pagination'] = $stats; $result['items'] = $items; if ($pageNo === 1) { $result['paymentMethods'] = array_map(create_function('$a', 'return $a->getJson();'), PaymentMethod::findAll()); } } catch (Exception $ex) { $error[] = $ex->getMessage(); } $param->ResponseData = StringUtilsAbstract::getJson($result, $error); }