Files
kupshop/bundles/KupShop/MarketingBundle/Controller/CrispController.php
2025-08-02 16:30:27 +02:00

51 lines
1.6 KiB
PHP

<?php
namespace KupShop\MarketingBundle\Controller;
use KupShop\KupShopBundle\Context\UserContext;
use Query\Operator;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class CrispController extends AbstractController
{
/**
* @Route(path="/getCrispData/")
*
* @return JsonResponse
*/
public function getCrispDataAction(Request $request, UserContext $userContext)
{
/** @var \User $user */
$user = $userContext->getActive();
if (!empty($user->id)) {
$data = sqlQueryBuilder()
->select("MAX(DATE(o.date_created)) 'Posledni_objednavka',
MAX(o.order_no) 'Kod_posledni_objednavky',
CONCAT(CEIL(SUM(o.total_price)),' ' , o.currency) 'Celkem',
COUNT(o.id) 'Pocet_objednavek',
SUM(o.status_storno) 'Pocet_stornovanych_objednavek'"
)
->from('orders', 'o')
->where(Operator::equals(['o.id_user' => $user->id]))
->execute()
->fetch();
$data['B2B'] = $userContext->isDealer() ? 'ANO' : 'NE';
$data = array_map(function ($value, $key) {
return [$key, $value];
}, array_values($data), array_keys($data));
} else {
$data = [];
}
$response = new JsonResponse($data);
return $response;
}
}