@@ -256,7 +256,8 @@ class DocumentController extends BackendController | |||
'TVA', | |||
'Total TVA', | |||
'Total HT', | |||
'Créateur', | |||
'Classification vente', | |||
'Code Classification vente', | |||
]; | |||
foreach ($documentManager->getProductsOrders($document) as $productOrderArray) { | |||
@@ -311,7 +312,8 @@ class DocumentController extends BackendController | |||
$productOrder->taxRate->value * 100, // TVA | |||
$tva, // Total TVA | |||
$priceTotal, // Total HT | |||
'', // Créateur | |||
'', // Classification vente | |||
'01', // Code Classification vente | |||
]; | |||
} | |||
} |
@@ -382,8 +382,13 @@ class ProductController extends BackendController | |||
else { | |||
unset($productPriceCsvArray[0]); | |||
$countUpdate = 0; | |||
$countCreate = 0; | |||
$cptLine = 1; | |||
$dataNotFound = false; | |||
$dataNotFoundArray = []; | |||
foreach ($productPriceCsvArray as $productPriceCsv) { | |||
$cptLine ++; | |||
if (count($productPriceCsv) != 6) { | |||
$dataNotFound = true; | |||
continue; | |||
@@ -407,6 +412,7 @@ class ProductController extends BackendController | |||
|| ($pointSaleName && !$pointSale)) { | |||
$dataNotFound = true; | |||
$dataNotFoundArray[] = $cptLine; | |||
continue; | |||
} | |||
@@ -423,20 +429,29 @@ class ProductController extends BackendController | |||
$productPrice->price = $price; | |||
$productPriceManager->saveUpdate($productPrice); | |||
$countUpdate++; | |||
} else { | |||
$dataNotFound = true; | |||
} | |||
// Création automatique du prix spécifique | |||
else { | |||
$productPrice = $productPriceManager->instanciateProductPrice($product, $price, $user, $userGroup, $pointSale, $quantityFrom); | |||
$productPriceManager->saveCreate($productPrice); | |||
$countCreate ++; | |||
} | |||
} | |||
} | |||
} | |||
if ($dataNotFound) { | |||
$this->addFlash('error', "Attention, certaines lignes du fichier n'ont pas été prises en compte. Veuillez réessayer en repartant du fichier d'export.<br />Contacter l'administrateur du site si le problème persiste."); | |||
$strLinesDataNotFound = '('.implode(', ', $dataNotFoundArray).')'; | |||
$this->addFlash('error', "Attention, certaines lignes ".$strLinesDataNotFound." du fichier n'ont pas été prises en compte. Veuillez réessayer en repartant du fichier d'export.<br />Contacter l'administrateur du site si le problème persiste."); | |||
} | |||
if ($countUpdate) { | |||
$this->addFlash('success', $countUpdate . ' prix produits mis à jour.'); | |||
} | |||
if($countCreate) { | |||
$this->addFlash('success', $countCreate . ' prix produits créés.'); | |||
} | |||
} | |||
} | |||
} |
@@ -91,7 +91,7 @@ $documentPriceDecimals = (int) $producerManager->getConfig('option_document_pric | |||
<?php foreach ($document->orders as $order): ?> | |||
<tr> | |||
<td> | |||
<strong><?= Html::encode($orderManager->getOrderUsername($order)); ?></strong> | |||
<strong><?= $orderManager->getOrderUsername($order); ?></strong> | |||
<?php if ($order->distribution): ?> | |||
le <?= date('d/m/Y', strtotime($order->distribution->date)) ?> | |||
<?php endif; ?> |
@@ -36,6 +36,8 @@ pris connaissance de la licence CeCILL, et que vous en avez accepté les | |||
termes. | |||
*/ | |||
use common\helpers\Price; | |||
$producerManager = $this->getProducerManager(); | |||
$producerPriceRangeManager = $this->getProducerPriceRangeManager(); | |||
@@ -38,7 +38,7 @@ termes. | |||
use yii\helpers\Html; | |||
$this->setTitle('Modifier un client') ; | |||
$this->setTitle('Modifier un client (#'.$model->id.')') ; | |||
$this->addBreadcrumb(['label' => 'Utilisateurs', 'url' => ['index']]) ; | |||
$this->addBreadcrumb(['label' => Html::encode($model->lastname.' '.$model->name)]) ; | |||
$this->addBreadcrumb('Modifier') ; |
@@ -3,14 +3,43 @@ | |||
namespace common\logic\Product\ProductPrice\Service; | |||
use common\logic\AbstractBuilder; | |||
use common\logic\PointSale\PointSale\Model\PointSale; | |||
use common\logic\Product\Product\Model\Product; | |||
use common\logic\Product\ProductPrice\Model\ProductPrice; | |||
use common\logic\User\User\Model\User; | |||
use common\logic\User\UserGroup\Model\UserGroup; | |||
class ProductPriceBuilder extends AbstractBuilder | |||
{ | |||
public function instanciateProductPrice(): ProductPrice | |||
public function instanciateProductPrice( | |||
Product $product, | |||
float $price, | |||
User $user = null, | |||
UserGroup $userGroup = null, | |||
PointSale $pointSale = null, | |||
float $quantityFrom = null): ProductPrice | |||
{ | |||
$productPrice = new ProductPrice(); | |||
$productPrice->populateProduct($product); | |||
$productPrice->price = $price; | |||
if($user) { | |||
$productPrice->populateUser($user); | |||
} | |||
if($userGroup) { | |||
$productPrice->populateUserGroup($userGroup); | |||
} | |||
if($pointSale) { | |||
$productPrice->populatePointSale($pointSale); | |||
} | |||
if($quantityFrom) { | |||
$productPrice->quantity_from = $quantityFrom; | |||
} | |||
return $productPrice; | |||
} | |||