Ejemplo n.º 1
0
 public function createOrder()
 {
     $paymentStatusOpen = $this->em->getReference('\\Shopware\\Models\\Order\\Status', 17);
     $orderStatusOpen = $this->em->getReference('\\Shopware\\Models\\Order\\Status', 0);
     $paymentDebit = $this->em->getReference('\\Shopware\\Models\\Payment\\Payment', 2);
     $dispatchDefault = $this->em->getReference('\\Shopware\\Models\\Dispatch\\Dispatch', 9);
     $defaultShop = $this->em->getReference('\\Shopware\\Models\\Shop\\Shop', 1);
     $partner = new \Shopware\Models\Partner\Partner();
     $partner->setCompany("Dummy");
     $partner->setIdCode("Dummy");
     $partner->setDate(new \DateTime());
     $partner->setContact('Dummy');
     $partner->setStreet('Dummy');
     $partner->setZipCode('Dummy');
     $partner->setCity('Dummy');
     $partner->setPhone('Dummy');
     $partner->setFax('Dummy');
     $partner->setCountryName('Dummy');
     $partner->setEmail('Dummy');
     $partner->setWeb('Dummy');
     $partner->setProfile('Dummy');
     $this->em->persist($partner);
     $order = new \Shopware\Models\Order\Order();
     $order->setNumber('abc');
     $order->setPaymentStatus($paymentStatusOpen);
     $order->setOrderStatus($orderStatusOpen);
     $order->setPayment($paymentDebit);
     $order->setDispatch($dispatchDefault);
     $order->setPartner($partner);
     $order->setShop($defaultShop);
     $order->setInvoiceAmount(5);
     $order->setInvoiceAmountNet(5);
     $order->setInvoiceShipping(5);
     $order->setInvoiceShippingNet(5);
     $order->setTransactionId(5);
     $order->setComment('Dummy');
     $order->setCustomerComment('Dummy');
     $order->setInternalComment('Dummy');
     $order->setNet(true);
     $order->setTaxFree(false);
     $order->setTemporaryId(5);
     $order->setReferer('Dummy');
     $order->setTrackingCode("Dummy");
     $order->setLanguageIso("Dummy");
     $order->setCurrency("EUR");
     $order->setCurrencyFactor(5);
     $order->setRemoteAddress("127.0.0.1");
     return $order;
 }
Ejemplo n.º 2
0
 /**
  * @param array $position
  * @param Shopware\Models\Order\Order $orderModel
  * @return array
  */
 private function createOrderDetail($position, $orderModel)
 {
     $orderDetailModel = new Shopware\Models\Order\Detail();
     $articleIds = Shopware()->Db()->fetchRow("SELECT a.id, ad.id AS detailId\n              FROM s_articles a, s_articles_details ad\n              WHERE a.id = ad.articleID\n              AND ad.ordernumber = ?", [$position['articleNumber']]);
     //checks if the article exists
     if (empty($articleIds)) {
         $articleIdentification = $this->createInvalidArticleIdentificationForErrorMessage($position);
         return ['success' => false, 'article' => $articleIdentification];
     }
     $articleId = $articleIds['id'];
     $articleDetailId = $articleIds['detailId'];
     /** @var Shopware\Models\Article\Article $articleModel */
     $articleModel = Shopware()->Models()->find('Shopware\\Models\\Article\\Article', $articleId);
     /** @var Shopware\Models\Article\Detail $articleDetailModel */
     $articleDetailModel = Shopware()->Models()->find('Shopware\\Models\\Article\\Detail', $articleDetailId);
     if (is_object($articleDetailModel->getUnit())) {
         $unitName = $articleDetailModel->getUnit()->getName();
     } else {
         $unitName = 0;
     }
     /** @var Shopware\Models\Tax\Tax $taxModel */
     $taxModel = Shopware()->Models()->find('Shopware\\Models\\Tax\\Tax', $position['taxId']);
     $orderDetailModel->setTax($taxModel);
     if ($orderModel->getNet()) {
         $orderDetailModel->setTaxRate(0);
     } else {
         $orderDetailModel->setTaxRate($position['taxRate']);
     }
     /** checks if it is an esdArticle */
     $orderDetailModel->setEsdArticle(0);
     /** @var Shopware\Models\Order\DetailStatus $detailStatusModel */
     $detailStatusModel = Shopware()->Models()->find('Shopware\\Models\\Order\\DetailStatus', 0);
     $orderDetailModel->setStatus($detailStatusModel);
     $orderDetailModel->setArticleId($articleModel->getId());
     $orderDetailModel->setArticleName($articleModel->getName());
     $orderDetailModel->setArticleNumber($articleDetailModel->getNumber());
     $orderDetailModel->setPrice($position['price']);
     $orderDetailModel->setMode($position['mode']);
     $orderDetailModel->setQuantity($position['quantity']);
     $orderDetailModel->setShipped(0);
     $orderDetailModel->setUnit($unitName);
     $orderDetailModel->setPackUnit($articleDetailModel->getPackUnit());
     $orderDetailModel->setNumber($orderModel->getNumber());
     $orderDetailModel->setOrder($orderModel);
     /** @var \Shopware\Models\Attribute\OrderDetail $orderDetailAttributeModel */
     $orderDetailAttributeModel = new \Shopware\Models\Attribute\OrderDetail();
     $orderDetailAttributeModel->setAttribute1('');
     $orderDetailAttributeModel->setAttribute2('');
     $orderDetailAttributeModel->setAttribute3('');
     $orderDetailAttributeModel->setAttribute4('');
     $orderDetailAttributeModel->setAttribute5('');
     $orderDetailAttributeModel->setAttribute6('');
     $orderDetailModel->setAttribute($orderDetailAttributeModel);
     return $orderDetailModel;
 }
 /**
  * Recalculates the Amount for the given items
  *
  * @param array $items
  *
  * @return float
  */
 private function getRecalculatedAmount($items)
 {
     $basket = array();
     foreach ($items as $item) {
         $detailModel = new \Shopware\Models\Order\Detail();
         $detailModel->setQuantity($item->getQuantity());
         $detailModel->setPrice($item->getUnitPriceGross());
         $detailModel->setTaxRate($item->getTaxRate());
         $detailModel->setArticleName($item->getArticleName());
         $detailModel->setArticleNumber($item->getArticleNumber());
         $basket[] = $detailModel;
     }
     $orderModel = new \Shopware\Models\Order\Order();
     $orderModel->setDetails($basket);
     $orderModel->calculateInvoiceAmount();
     return $orderModel->getInvoiceAmount();
 }
Ejemplo n.º 4
0
 /**
  * returns basket items as an array
  *
  * @param \Shopware\Models\Order\Order $order
  *
  * @return array
  */
 public function getBasket(Shopware\Models\Order\Order $order)
 {
     $basketItems = array();
     foreach ($items = $order->getDetails() as $item) {
         $basketItem = new Shopware_Plugins_Frontend_RpayRatePay_Component_Model_SubModel_item();
         $basketItem->setArticleName($item->getArticleName());
         $basketItem->setArticleNumber($item->getArticlenumber());
         $basketItem->setQuantity($item->getQuantity());
         $basketItem->setTaxRate($item->getTaxRate());
         $basketItem->setUnitPriceGross($item->getPrice());
         $basketItems[] = $basketItem;
     }
     return $basketItems;
 }