{$address->address->toString('
')} IPSCONTENT; if ( isset( $address->address->vat ) and $address->address->vat ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cm_checkout_vat_number', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<address->vat, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; if ( !$address->primary_billing ): $return .= <<
  • IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'set_as_address', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
  • IPSCONTENT; if ( !$address->primary_billing ): $return .= <<
    id}" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "clientsaddresses", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'address_billing', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<
    IPSCONTENT; if ( $billingAddress ): $return .= << IPSCONTENT; if ( $billingAddress ): $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'address_default_billing', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "clients", "nexus" )->address( $billingAddress ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'address_other_addresses', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      IPSCONTENT; foreach ( $otherAddresses as $address ): $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "clients", "nexus" )->address( $address ); $return .= << IPSCONTENT; endforeach; $return .= <<

    IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function alternatives( $protected=FALSE ) { $return = ''; $return .= <<
    IPSCONTENT; if ( !$protected ): $return .= <<alternativeContacts() ) ): $return .= << IPSCONTENT; $sprintf = array(\IPS\Member::loggedIn()->language()->addToStack('altcontact_add')); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'altcontact_none', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; elseif ( $invoice->status === $invoice::STATUS_EXPIRED ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_invoice_expired', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; elseif ( $invoice->status === $invoice::STATUS_CANCELED ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_invoice_cancelled', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; elseif ( $invoice->status === $invoice::STATUS_PAID ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_invoice_paid', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; if ( $invoice->billaddress AND \count( $invoice->transactions( array( \IPS\nexus\Transaction::STATUS_PAID, \IPS\nexus\Transaction::STATUS_WAITING, \IPS\nexus\Transaction::STATUS_HELD, \IPS\nexus\Transaction::STATUS_REVIEW, \IPS\nexus\Transaction::STATUS_REFUSED, \IPS\nexus\Transaction::STATUS_REFUNDED, \IPS\nexus\Transaction::STATUS_PART_REFUNDED, \IPS\nexus\Transaction::STATUS_GATEWAY_PENDING ) ) ) > 0 ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_view_payment', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $invoice->billaddress ): $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "clients", "nexus" )->paymentLog( $invoice ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $summary = $invoice->summary(); $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_details', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      IPSCONTENT; foreach ( $summary['items'] as $k => $item ): $return .= <<
      IPSCONTENT; if ( $image = $item->image() ): $return .= << IPSCONTENT; elseif ( $item::$icon ): $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; endif; $return .= <<

      IPSCONTENT; if ( $url = $item->url() ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->quantity, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->quantity, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
      {$item->detailsForDisplay( 'invoice' )}

      IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->linePrice(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; if ( $item->quantity > 1 ): $return .= << IPSCONTENT; $sprintf = array($item->price); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'each_short', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; endif; $return .= <<
      IPSCONTENT; endif; $return .= <<
      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'coupon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
      IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->linePrice(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= <<
      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'subtotal', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $summary['subtotal'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; foreach ( $summary['tax'] as $taxId => $tax ): $return .= <<
      IPSCONTENT; $val = "nexus_tax_{$taxId}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $tax['amount'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endforeach; $return .= <<
      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'total', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $summary['total'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
    IPSCONTENT; return $return; } function invoiceList( $invoice, $fromBillingAgreement=NULL ) { $return = ''; $return .= <<
    IPSCONTENT; if ( !$fromBillingAgreement ): $return .= << IPSCONTENT; $summary = $invoice->summary(); $return .= << IPSCONTENT; foreach ( $summary['items'] as $k => $item ): $return .= <<
    IPSCONTENT; if ( $image = $item->image() ): $return .= << IPSCONTENT; elseif ( $item::$icon ): $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; endif; $return .= <<
    IPSCONTENT; if ( $url = $item->url() ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'quantity', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<quantity, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'invoice_unit_price', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<price, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<

    IPSCONTENT; endforeach; $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'orders_no_items', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $val = ( $invoice->date instanceof \IPS\DateTime ) ? $invoice->date : \IPS\DateTime::ts( $invoice->date );$return .= $val->html(); $return .= <<
    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<

    IPSCONTENT; $val = "istatus_{$invoice->status}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $invoice->total, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<

    IPSCONTENT; return $return; } function invoices( $invoices, $pagination ) { $return = ''; $return .= <<getTemplate( "global", "core" )->pageHeader( \IPS\Member::loggedIn()->language()->addToStack('orders_title') ); $return .= << IPSCONTENT; if ( \count( $invoices ) ): $return .= <<
    {$pagination}
    IPSCONTENT; endif; $return .= <<