Пример #1
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $wcOrdersSecondPage = $wcOrders = null;
     try {
         $client = new RESTAPI();
         $wcOrders = $client->getCompletedOrders();
         $wcOrdersSecondPage = $client->getCompletedOrdersSecondPage();
     } catch (WC_API_Client_HTTP_Exception $exc) {
         //TODO: do something
     }
     $em = $this->getContainer()->get('doctrine')->getManager();
     if ($wcOrders) {
         foreach ($wcOrders['orders'] as $wcOrder) {
             if (true == $wcOrder['payment_details']['paid']) {
                 $order = $em->getRepository('MeVisaERPBundle:Orders')->findOneBy(array('channel' => 'MeVisa.ru', 'wcId' => $wcOrder['order_number']));
                 if (!$order) {
                     $order = $this->newOrder($em, $wcOrder);
                 }
                 $em->persist($order);
             }
             //            $wcOrderNotes = $client->getOrderNotes($wcOrder['order_number']);
             //            $this->updateOrderNotes($em, $order, $wcOrderNotes['order_notes']);
         }
     }
     if ($wcOrdersSecondPage) {
         foreach ($wcOrdersSecondPage['orders'] as $wcOrder) {
             if (true == $wcOrder['payment_details']['paid']) {
                 $order = $em->getRepository('MeVisaERPBundle:Orders')->findOneBy(array('wcId' => $wcOrder['order_number']));
                 if (!$order) {
                     $order = $this->newOrder($em, $wcOrder);
                 }
                 $em->persist($order);
             }
         }
     }
     $em->flush();
 }
Пример #2
0
 public function apiAction()
 {
     $client = new RESTAPI();
     //TODO: make a function that tests the webhook is active periodically, if not create a new one
     //TODO: make a function that keeps checking on orders
     $em = $this->getDoctrine()->getManager();
     $wcOrders = $client->getCompletedOrders();
     foreach ($wcOrders['orders'] as $wcOrder) {
         $order = $em->getRepository('MeVisaERPBundle:Orders')->findOneBy(array('wcId' => $wcOrder['order_number']));
         if ($order) {
             if (\is_null($order->getUpdatedAt())) {
                 $order = $this->updateOrder($em, $wcOrder, $order);
             }
         } else {
             $order = $this->newOrder($em, $wcOrder);
         }
         $wcOrderNotes = $client->getOrderNotes($wcOrder['order_number']);
         $this->updateOrderNotes($em, $order, $wcOrderNotes['order_notes']);
         $em->persist($order);
     }
     $em->flush();
     // TODO: parse links
     //        $links = explode(',', $order->response->headers['Link']);
     //        foreach ($links as $link) {
     //            $linkPart = explode(';', $link);
     //            if (count($linkPart) < 2)
     //                continue;
     //            $links[] = $linkPart;
     //        }
     return array('wcOrders' => $wcOrders);
 }