Beispiel #1
0
 /**
  * @param array $data
  * @return Invoice
  * @throws UnsupportedCurrencyException
  */
 public static function fromArray(array $data)
 {
     $invoice = new Invoice();
     if (isset($data['number'])) {
         $invoice->setNumber($data['number']);
     }
     if (isset($data['name'])) {
         $invoice->setName($data['name']);
     }
     if (isset($data['id'])) {
         $invoice->setId($data['id']);
     }
     if (isset($data['created'])) {
         $invoice->setCreated($data['created']);
     }
     if (isset($data['delivered'])) {
         $invoice->setDelivered($data['delivered']);
     }
     if (isset($data['due'])) {
         $invoice->setDue($data['due']);
     }
     if (isset($data['due'])) {
         $invoice->setDue($data['due']);
     }
     if (isset($data['status'])) {
         $invoice->setStatus($data['status']);
     }
     if (isset($data['shipping_address']) && is_array($data['shipping_address'])) {
         $invoice->setShippingAddress(Address::fromArray($data['shipping_address']));
     }
     if (isset($data['description'])) {
         $invoice->setDescription($data['description']);
     }
     if (isset($data['variable_symbol'])) {
         $invoice->setVariableSymbol($data['variable_symbol']);
     }
     if (isset($data['constant_symbol'])) {
         $invoice->setConstantSymbol($data['constant_symbol']);
     }
     if (isset($data['issuer']) && is_array($data['issuer'])) {
         $invoice->setIssuer(Issuer::fromArray($data['issuer']));
     }
     if (isset($data['client']) && is_array($data['client'])) {
         $invoice->setClient(Client::fromArray($data['client']));
     }
     if (isset($data['price'])) {
         $invoice->setPrice($data['price']);
     }
     if (isset($data['price_total'])) {
         $invoice->setPriceTotal($data['price_total']);
     }
     if (isset($data['currency'])) {
         if (!Currency::isValid($data['currency'])) {
             throw new UnsupportedCurrencyException("Unsupported currency '{$data['currency']}'");
         }
         $invoice->setCurrency($data['currency']);
     }
     if (isset($data['items']) && is_array($data['items'])) {
         foreach ($data['items'] as $item) {
             $invoice->addItem(InvoiceItem::fromArray($item));
         }
     }
     if (isset($data['discount']) && is_array($data['discount'])) {
         $invoice->setDiscount(Discount::fromArray($data['discount']));
     }
     return $invoice;
 }