Pārlūkot izejas kodu

Produits tournants

feature/rotating_product
Guillaume Bourgeois pirms 7 mēnešiem
vecāks
revīzija
76b8f9372a
6 mainītis faili ar 72 papildinājumiem un 6 dzēšanām
  1. +19
    -3
      backend/controllers/DistributionController.php
  2. +33
    -0
      backend/views/distribution/index.php
  3. +7
    -0
      backend/web/js/vuejs/distribution-index.js
  4. +7
    -0
      domain/Distribution/DistributionRotating/DistributionRotatingRepository.php
  5. +2
    -2
      domain/Product/Rotating/RotatingManager.php
  6. +4
    -1
      domain/Product/Rotating/RotatingResolver.php

+ 19
- 3
backend/controllers/DistributionController.php Parādīt failu

@@ -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),
];
}


+ 33
- 0
backend/views/distribution/index.php Parādīt failu

@@ -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">

+ 7
- 0
backend/web/js/vuejs/distribution-index.js Parādīt failu

@@ -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

+ 7
- 0
domain/Distribution/DistributionRotating/DistributionRotatingRepository.php Parādīt failu

@@ -33,4 +33,11 @@ class DistributionRotatingRepository extends AbstractRepository
->filterByRotating($rotating)
->findOne();
}

public function findDistributionRotatingsByDistribution(Distribution $distribution): array
{
return $this->createQuery()
->filterByDistribution($distribution)
->find();
}
}

+ 2
- 2
domain/Product/Rotating/RotatingManager.php Parādīt failu

@@ -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

+ 4
- 1
domain/Product/Rotating/RotatingResolver.php Parādīt failu

@@ -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) {

Notiek ielāde…
Atcelt
Saglabāt