/**
  * Prepares the search orders SOAP object
  * 
  * @see PlentymarketsImportEntityOrderAbstract::prepare()
  */
 public function prepare()
 {
     if (is_null(self::$orderStatus)) {
         self::$orderStatus = PlentymarketsConfig::getInstance()->getOutgoingItemsShopwareOrderStatusID(7);
     }
     $timestamp = PlentymarketsConfig::getInstance()->getImportOrderOutgoingItemsLastUpdateTimestamp(0);
     $this->log('LastUpdate: ' . date('r', $timestamp));
     if (PlentymarketsConfig::getInstance()->getOutgoingItemsOrderStatus(0)) {
         $this->Request_SearchOrders->LastUpdateFrom = $timestamp;
         $this->Request_SearchOrders->OrderStatus = (double) PlentymarketsConfig::getInstance()->getOutgoingItemsOrderStatus();
         $this->log('Mode: Status (' . $this->Request_SearchOrders->OrderStatus . ')');
     } else {
         $this->Request_SearchOrders->OrderCompletedFrom = $timestamp;
         $this->log('Mode: Outgoing items booked');
     }
 }
    /**
     * Updates the orders for each shop
     */
    public static function importOrders()
    {
        // Starttimestamp
        $timestamp = time();
        // Get the data from plentymarkets (for every mapped shop)
        $shopIds = Shopware()->Db()->fetchAll('
			SELECT plentyID FROM plenty_mapping_shop
		');
        foreach ($shopIds as $shopId) {
            $PlentymarketsImportEntityOrderIncomingPayments = new PlentymarketsImportEntityOrderIncomingPayments($shopId['plentyID']);
            $PlentymarketsImportEntityOrderIncomingPayments->import();
            $PlentymarketsImportEntityOrderOutgoingItems = new PlentymarketsImportEntityOrderOutgoingItems($shopId['plentyID']);
            $PlentymarketsImportEntityOrderOutgoingItems->import();
        }
        PlentymarketsConfig::getInstance()->setImportOrderIncomingPaymentsLastUpdateTimestamp($timestamp);
        PlentymarketsConfig::getInstance()->setImportOrderOutgoingItemsLastUpdateTimestamp($timestamp);
    }
    /**
     * Updates the orders for each shop
     */
    public static function importOrders()
    {
        // Starttimestamp
        $timestamp = time();
        // Ist ein Status-Mapping gesetzt?
        $methodOfPayment = Shopware()->Db()->fetchAssoc('
			SELECT 1 FROM plenty_mapping_payment_status
		');
        $order = Shopware()->Db()->fetchAssoc('
			SELECT 1 FROM plenty_mapping_order_status
		');
        $checkStatus = $methodOfPayment || $order;
        // Get the data from plentymarkets (for every mapped shop)
        $shopIds = Shopware()->Db()->fetchAll('
			SELECT plentyID FROM plenty_mapping_shop
		');
        foreach ($shopIds as $shopId) {
            if (PlentymarketsConfig::getInstance()->getCheckIncomingPayment(false)) {
                $PlentymarketsImportEntityOrderIncomingPayments = new PlentymarketsImportEntityOrderIncomingPayments($shopId['plentyID']);
                $PlentymarketsImportEntityOrderIncomingPayments->import();
            }
            if (PlentymarketsConfig::getInstance()->getCheckOutgoingItems(false)) {
                $PlentymarketsImportEntityOrderOutgoingItems = new PlentymarketsImportEntityOrderOutgoingItems($shopId['plentyID']);
                $PlentymarketsImportEntityOrderOutgoingItems->import();
            }
            if ($checkStatus) {
                $PlentymarketsImportEntityOrderStatusChange = new PlentymarketsImportEntityOrderStatusChange($shopId['plentyID']);
                $PlentymarketsImportEntityOrderStatusChange->import();
            }
        }
        PlentymarketsConfig::getInstance()->setImportOrderIncomingPaymentsLastUpdateTimestamp($timestamp);
        PlentymarketsConfig::getInstance()->setImportOrderOutgoingItemsLastUpdateTimestamp($timestamp);
        PlentymarketsConfig::getInstance()->setImportOrderStatusChangeLastUpdateTimestamp($timestamp);
    }