@@ -107,8 +107,6 @@ class DistributionController extends BackendController | |||
$distributionModule = $this-> getDistributionModule(); | |||
$orderModule = $this->getOrderModule(); | |||
$productModule = $this->getProductModule(); | |||
$userModule = $this->getUserModule(); | |||
$producerModule = $this->getProducerModule(); | |||
$producer = $this->getProducerCurrent(); | |||
$dateObject = DateTime::createFromFormat('Y-m-d', $date); | |||
@@ -126,6 +124,7 @@ class DistributionController extends BackendController | |||
$productsArray = $productModule->findProductsByDistribution($distribution, false); | |||
$json['products'] = $this->buildAjaxInfosResponseProducts($distribution, $productsArray, $ordersArray); | |||
$json['distribution_rotatings'] = $this->buildAjaxInfosResponseDistributionRotatings($distribution); | |||
$json['distribution'] = $this->buildAjaxInfosResponseDistribution($distribution, $ordersArrayObject, $productsArray); | |||
$json['orders'] = $this->buildAjaxInfosResponseOrders($ordersArray, $productsArray); | |||
$json['points_sale'] = $this->buildAjaxInfosResponsePointsSale($distribution); | |||
@@ -142,6 +141,22 @@ class DistributionController extends BackendController | |||
return $json; | |||
} | |||
public function buildAjaxInfosResponseDistributionRotatings(Distribution $distribution) | |||
{ | |||
$distributionRotatingsArray = []; | |||
$distributionRotatingsObjectsArray = $this->getDistributionRotatingModule()->getRepository() | |||
->findDistributionRotatingsByDistribution($distribution); | |||
foreach($distributionRotatingsObjectsArray as $distributionRotating) { | |||
$distributionRotatingsArray[] = array_merge($distributionRotating->getAttributes(), [ | |||
'rotating_name' => $distributionRotating->getRotating()->getName(), | |||
'rotating_product_name' => $distributionRotating->getRotatingProduct() ? $distributionRotating->getRotatingProduct()->getProduct()->name : '', | |||
]); | |||
} | |||
return $distributionRotatingsArray; | |||
} | |||
public function buildAjaxInfosResponseUsers() | |||
{ | |||
$usersArray = $this->getUserModule()->getRepository()->findUsers(); | |||
@@ -258,7 +273,8 @@ class DistributionController extends BackendController | |||
'credit' => $producer->credit, | |||
'tiller' => $producer->tiller, | |||
'option_distribution_export_orders_grid_pdf' => $producer->option_distribution_export_orders_grid_pdf, | |||
'feature_product_accessory_enabled' => $this->getFeatureModule()->getChecker()->isEnabled(Feature::ALIAS_PRODUCT_ACCESSORY) | |||
'feature_product_accessory_enabled' => $this->getFeatureModule()->getChecker()->isEnabled(Feature::ALIAS_PRODUCT_ACCESSORY), | |||
'feature_rotating_product_enabled' => $this->getFeatureModule()->getChecker()->isEnabled(Feature::ALIAS_ROTATING_PRODUCT), | |||
]; | |||
} | |||
@@ -117,6 +117,7 @@ $this->setPageTitle('Distributions') ; | |||
<template v-if="isOneProductMaximumQuantityExceeded()"><span class="glyphicon glyphicon-alert"></span> Quantités max dépassées<br /></template> | |||
<br /> | |||
<button class="btn btn-default" @click="showModalProducts = true">Configurer</button> | |||
<button class="btn btn-default" @click="showModalRotatings = true">Tournants</button> | |||
</span> | |||
</div> | |||
</div> | |||
@@ -176,6 +177,38 @@ $this->setPageTitle('Distributions') ; | |||
</div> | |||
</div> | |||
</modal> | |||
<modal v-if="producer.feature_rotating_product_enabled && showModalRotatings" id="modal-rotatings" @close="showModalRotatings = false"> | |||
<h3 slot="header">Produits tournants</h3> | |||
<div slot="body"> | |||
<table class="table table-condensed table-bordered table-hover"> | |||
<thead> | |||
<tr> | |||
<td>Actif</td> | |||
<td>Nom</td> | |||
<td>Produit</td> | |||
</tr> | |||
</thead> | |||
<tbody> | |||
<tr v-for="distributionRotating in distributionRotatings"> | |||
<td> | |||
{{ distributionRotating.status }} | |||
</td> | |||
<td> | |||
{{ distributionRotating.rotating_name }} | |||
</td> | |||
<td> | |||
{{ distributionRotating.rotating_product_name }} | |||
</td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
</div> | |||
<div slot="footer"> | |||
<div class="actions-form"> | |||
<button class="modal-default-button btn btn-default" @click="closeModalRotatings">Fermer</button> | |||
</div> | |||
</div> | |||
</modal> | |||
<div class="col-md-6"> | |||
<div class="info-box col-md-4"> |
@@ -52,6 +52,7 @@ if($(selector).length) { | |||
producer: null, | |||
oneDistributionWeekActive: false, | |||
products: [], | |||
distributionRotatings: [], | |||
countActiveProducts: 0, | |||
pointsSale: [], | |||
meansPayment: [], | |||
@@ -66,6 +67,7 @@ if($(selector).length) { | |||
users: [], | |||
deliveryNotes: [], | |||
showModalProducts: false, | |||
showModalRotatings: false, | |||
showModalPointsSale: false, | |||
showModalFormOrderCreate: false, | |||
orderCreate: null, | |||
@@ -168,6 +170,7 @@ if($(selector).length) { | |||
app.distribution = response.data.distribution; | |||
app.producer = response.data.producer; | |||
app.products = response.data.products; | |||
app.distributionRotatings = response.data.distribution_rotatings; | |||
app.initCountActiveProducts(); | |||
app.meansPayment = response.data.means_payment; | |||
app.oneDistributionWeekActive = response.data.one_distribution_week_active; | |||
@@ -621,6 +624,10 @@ if($(selector).length) { | |||
this.showModalProducts = false; | |||
this.init(this.idActivePointSale); | |||
}, | |||
closeModalRotatings: function () { | |||
this.showModalRotatings = false; | |||
//this.init(this.idActivePointSale); | |||
}, | |||
closeModalOrderForm: function (create) { | |||
if (create) { | |||
this.showModalFormOrderCreate = false |
@@ -33,4 +33,11 @@ class DistributionRotatingRepository extends AbstractRepository | |||
->filterByRotating($rotating) | |||
->findOne(); | |||
} | |||
public function findDistributionRotatingsByDistribution(Distribution $distribution): array | |||
{ | |||
return $this->createQuery() | |||
->filterByDistribution($distribution) | |||
->find(); | |||
} | |||
} |
@@ -86,7 +86,6 @@ class RotatingManager extends AbstractManager | |||
$this->initializeRotatingInDistribution($rotating, $distribution); | |||
$distribution = $this->rotatingResolver->getNextDistribution($rotating, $date); | |||
} | |||
die(); | |||
} | |||
/** | |||
@@ -94,7 +93,8 @@ class RotatingManager extends AbstractManager | |||
*/ | |||
public function initializeRotatingInDistribution(Rotating $rotating, Distribution $distribution) | |||
{ | |||
$rotatingProduct = $this->rotatingResolver->deductNextRotatingProductOfDistribution($rotating, $distribution); | |||
$rotatingProduct = $this->rotatingResolver->deductRotatingProductOfDistribution($rotating, $distribution); | |||
$this->distributionRotatingManager->createDistributionRotatingIfNotExist( | |||
$distribution, | |||
$rotatingProduct |
@@ -14,11 +14,13 @@ class RotatingResolver extends AbstractResolver | |||
{ | |||
protected DistributionRepository $distributionRepository; | |||
protected DistributionRotatingRepository $distributionRotatingRepository; | |||
protected RotatingProductRepository $rotatingProductRepository; | |||
public function loadDependencies(): void | |||
{ | |||
$this->distributionRepository = $this->loadService(DistributionRepository::class); | |||
$this->distributionRotatingRepository = $this->loadService(DistributionRotatingRepository::class); | |||
$this->rotatingProductRepository = $this->loadService(RotatingProductRepository::class); | |||
} | |||
public function getPreviousDistribution(Rotating $rotating, \DateTime $date): ?Distribution | |||
@@ -36,7 +38,7 @@ class RotatingResolver extends AbstractResolver | |||
/** | |||
* @throws ErrorException | |||
*/ | |||
public function deductNextRotatingProductOfDistribution(Rotating $rotating, Distribution $distribution): RotatingProduct | |||
public function deductRotatingProductOfDistribution(Rotating $rotating, Distribution $distribution): RotatingProduct | |||
{ | |||
$date = clone $distribution->getDate(); | |||
$previousDistribution = $this->getPreviousDistribution($rotating, $date); | |||
@@ -92,6 +94,7 @@ class RotatingResolver extends AbstractResolver | |||
$rotatingProductReturn = null; | |||
foreach($rotating->getRotatingProducts() as $rotatingProduct) { | |||
$rotatingProductReturn = $rotatingProduct; | |||
break; | |||
} | |||
if($rotatingProductReturn) { |