curl = new curl\Curl(); $this->producer_tiller = Producer::getConfig('tiller') ; $this->provider_token = Producer::getConfig('tiller_provider_token') ; $this->restaurant_token = Producer::getConfig('tiller_restaurant_token') ; } public function getOrders($date) { if($this->producer_tiller) { $orders = $this->curl->setGetParams([ 'provider_token' => $this->provider_token, 'restaurant_token' => $this->restaurant_token, 'dateFrom' => date('Y-m-d H-i-s', strtotime($date)), 'dateTo' => date('Y-m-d H-i-s', strtotime($date) + 24*60*60 - 1), 'status' => 'CLOSED', ])->get($this->url_api.'orders'); return json_decode($orders) ; } } public function isSynchro($date) { if($this->producer_tiller) { $ordersTiller = $this->getOrders($date) ; $ordersOpendistrib = Order::searchAll([ 'distribution.date' => $date, 'order.tiller_synchronization' => 1 ]) ; $ordersOpendistribSynchro = [] ; if($ordersOpendistrib) { foreach($ordersOpendistrib as $orderOpendistrib) { $ordersOpendistribSynchro[$orderOpendistrib->id] = false ; foreach($ordersTiller->orders as $orderTiller) { if($orderOpendistrib->id == $orderTiller->externalId && ($orderOpendistrib->getAmount(Order::AMOUNT_TOTAL) * 100) == $orderTiller->currentBill) { $ordersOpendistribSynchro[$orderOpendistrib->id] = true ; } } } } foreach($ordersOpendistribSynchro as $idOrder => $isSynchro) { if(!$isSynchro) { return false ; } } return true ; } } public function postOrder($params) { if($this->producer_tiller) { return $this->curl->setPostParams(array_merge([ 'provider_token' => $this->provider_token, 'restaurant_token' => $this->restaurant_token, ], $params)) ->post($this->url_api.'orders') ; } } }