Esempio n. 1
0
 protected static function _getData()
 {
     if (count(self::$_dateRange) === 0) {
         $yesterdayLocal = new UDate('now', 'Australia/Melbourne');
         $yesterdayLocal->modify('-1 day');
         $fromDate = new UDate($yesterdayLocal->format('Y-m-d') . ' 00:00:00', 'Australia/Melbourne');
         $fromDate->setTimeZone('UTC');
         $toDate = new UDate($yesterdayLocal->format('Y-m-d') . ' 23:59:59', 'Australia/Melbourne');
         $toDate->setTimeZone('UTC');
     } else {
         $fromDate = self::$_dateRange['start'];
         $toDate = self::$_dateRange['end'];
     }
     $dataType = 'created';
     $items = Payment::getAllByCriteria($dataType . ' >= :fromDate and ' . $dataType . ' < :toDate', array('fromDate' => trim($fromDate), 'toDate' => trim($toDate)));
     $now = new UDate();
     $now->setTimeZone('Australia/Melbourne');
     $return = array();
     foreach ($items as $item) {
         $return[] = array('Type' => $item->getOrder() instanceof Order ? 'Payment' : 'Credit', 'InvNo' => $item->getOrder() instanceof Order ? trim($item->getOrder()->getInvNo()) === '' ? '' : $item->getOrder()->getInvNo() : '', 'Payment Date' => $item->getPaymentDate()->setTimeZone('Australia/Melbourne')->format('Y-m-d'), 'Customer Name' => $item->getOrder() instanceof Order ? $item->getOrder()->getCustomer() instanceof Customer ? $item->getOrder()->getCustomer()->getName() : '' : '', 'Order No.' => $item->getOrder() instanceof Order ? $item->getOrder()->getOrderNo() : '', 'CreditNote No' => $item->getCreditNote() instanceof CreditNote ? $item->getCreditNote()->getCreditNoteNo() : '', 'Processed Date' => trim($item->getCreated()->setTimeZone('Australia/Melbourne')), 'Processed By' => $item->getCreatedBy() instanceof UserAccount ? $item->getCreatedBy()->getPerson()->getFullName() : '', 'Method' => $item->getMethod() instanceof PaymentMethod ? trim($item->getMethod()->getName()) : '', 'Amount' => StringUtilsAbstract::getCurrency($item->getCreditNote() instanceof CreditNote ? 0 - $item->getValue() : $item->getValue()), 'Comments' => trim(implode(',', array_map(create_function('$a', 'return $a->getComments();'), Comments::getAllByCriteria('entityName = ? and entityId = ?', array(get_class($item), $item->getId()))))));
     }
     return $return;
 }
Esempio n. 2
0
 /**
  * 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);
 }
Esempio n. 3
0
 /**
  * (non-PHPdoc)
  * @see BaseEntityAbstract::preSave()
  */
 public function preSave()
 {
     if (trim($this->getId()) !== '') {
         $items = CreditNoteItem::getAllByCriteria('creditNoteId = ?', array($this->getId()));
         $total = $this->getShippingValue();
         foreach ($items as $item) {
             $total = $total * 1 + $item->getTotalPrice() * 1;
         }
         $this->setTotalValue($total);
         $payments = Payment::getAllByCriteria('creditNoteId = ?', array($this->getId()));
         $totalPaid = 0;
         foreach ($payments as $payment) {
             $totalPaid += $payment->getValue();
         }
         $this->setTotalPaid($totalPaid);
     } else {
         if ($this->getOrder() instanceof Order && intval($this->getOrder()->getStatus()->getId()) === OrderStatus::ID_CANCELLED) {
             throw new EntityException('You can NOT create a credit note against a CANCELED order(OrderNo: ' . $this->getOrder()->getOrderNo() . ')');
         }
         $this->setTotalValue($this->getTotalValue() + $this->getShippingValue());
     }
 }