Explorar el Código

[backend] Tiller : vérification que l'option est bien activée au niveau du producteur

dev
Guillaume Bourgeois hace 5 años
padre
commit
62eb4d2a84
Se han modificado 1 ficheros con 44 adiciones y 36 borrados
  1. +44
    -36
      common/helpers/Tiller.php

+ 44
- 36
common/helpers/Tiller.php Ver fichero

@@ -43,6 +43,7 @@ use linslin\yii2\curl;
class Tiller
{
var $curl ;
var $producer_tiller ;
var $provider_token ;
var $restaurant_token ;
var $url_api = 'https://developers.tillersystems.com/api/' ;
@@ -50,60 +51,67 @@ class Tiller
public function __construct()
{
$this->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)
{
$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) ;
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)
{
$ordersTiller = $this->getOrders($date) ;
$ordersOpendistrib = Order::searchAll([
'distribution.date' => $date
]) ;
$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 ;
if($this->producer_tiller) {
$ordersTiller = $this->getOrders($date) ;
$ordersOpendistrib = Order::searchAll([
'distribution.date' => $date
]) ;

$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 ;
foreach($ordersOpendistribSynchro as $idOrder => $isSynchro) {
if(!$isSynchro) {
return false ;
}
}

return true ;
}
return true ;
}
public function postOrder($params)
{
return $this->curl->setPostParams(array_merge([
'provider_token' => $this->provider_token,
'restaurant_token' => $this->restaurant_token,
], $params))
->post($this->url_api.'orders') ;
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') ;
}
}
}

Cargando…
Cancelar
Guardar