Browse Source

[Administration] Distributions : optimisation mise à jour des quantités maximum

feature/rotating_product
Guillaume Bourgeois 4 months ago
parent
commit
63f04d9605
2 changed files with 19 additions and 3 deletions
  1. +7
    -1
      backend/controllers/DistributionController.php
  2. +12
    -2
      backend/web/js/vuejs/distribution-index.js

+ 7
- 1
backend/controllers/DistributionController.php View File

$productDistributionModule = $this->getProductDistributionModule(); $productDistributionModule = $this->getProductDistributionModule();
$productDistribution = $this->getProductDistribution($idProduct, $idDistribution); $productDistribution = $this->getProductDistribution($idProduct, $idDistribution);
$productDistributionModule->updateProductDistributionQuantityMax($productDistribution, (float) $quantityMax); $productDistributionModule->updateProductDistributionQuantityMax($productDistribution, (float) $quantityMax);
return ['success'];
return [
'quantity_remaining' => $this->getOrderModule()->getResolver()
->getProductQuantityRemaining(
$productDistribution->product,
$productDistribution->distribution
)
];
} }


public function actionAjaxProcessActiveProduct(int $idDistribution, int $idProduct, int $active) public function actionAjaxProcessActiveProduct(int $idDistribution, int $idProduct, int $active)

+ 12
- 2
backend/web/js/vuejs/distribution-index.js View File

productQuantityMaxChange: function (event) { productQuantityMaxChange: function (event) {
var app = this; var app = this;
var quantityMax = event.currentTarget.value; var quantityMax = event.currentTarget.value;
var idProduct = event.currentTarget.getAttribute('data-id-product');
axios.get("ajax-process-product-quantity-max", { axios.get("ajax-process-product-quantity-max", {
params: { params: {
idDistribution: this.distribution.id, idDistribution: this.distribution.id,
idProduct: event.currentTarget.getAttribute('data-id-product'),
idProduct: idProduct,
quantityMax: (!quantityMax || quantityMax.length === 0) ? -1 : quantityMax quantityMax: (!quantityMax || quantityMax.length === 0) ? -1 : quantityMax
} }
}) })
.then(function (response) { .then(function (response) {
app.init(app.idActivePointSale);
Vue.set(app.products[app.getProductIndex(idProduct)], 'quantity_remaining', response.data.quantity_remaining);
}); });
}, },
productActiveClick: function (event) { productActiveClick: function (event) {


return false; return false;
}, },
getProductIndex: function(idProduct) {
for (var i = 0; i < this.products.length; i++) {
if (this.products[i].id == idProduct) {
return i;
}
}

return false;
},
countDocuments: function (order) { countDocuments: function (order) {
var count = 0; var count = 0;



Loading…
Cancel
Save