} | } | ||||
$newEntity = $entityComponent->duplicateEntity($context->getEntity()->getInstance()); | $newEntity = $entityComponent->duplicateEntity($context->getEntity()->getInstance()); | ||||
$em->create($newEntity); | |||||
$em->create($newEntity, false); | |||||
$em->flush(); | $em->flush(); | ||||
$url = $this->get(AdminUrlGenerator::class) | $url = $this->get(AdminUrlGenerator::class) |
trait ControllerTrait | trait ControllerTrait | ||||
{ | { | ||||
/* | |||||
* Fonctions privées | |||||
*/ | |||||
protected function _setNoLimitMemoryAndTime() | |||||
{ | |||||
ini_set('memory_limit', '-1'); | |||||
set_time_limit(0); | |||||
} | |||||
//TODO si vous avez une erreur avec le :array c'est qu'il faut passer à symfony 5.4. | //TODO si vous avez une erreur avec le :array c'est qu'il faut passer à symfony 5.4. | ||||
//Suivez la procédure suivante : https://symfony.com/doc/current/setup/unstable_versions.html#upgrading-your-project-to-an-unstable-symfony-version | //Suivez la procédure suivante : https://symfony.com/doc/current/setup/unstable_versions.html#upgrading-your-project-to-an-unstable-symfony-version | ||||
//En gros il faut changer tout les dépendances symfony/ qui sont en 5.3 par 5.4 dans composer.json | //En gros il faut changer tout les dépendances symfony/ qui sont en 5.3 par 5.4 dans composer.json |
use EasyCorp\Bundle\EasyAdminBundle\Field\IntegerField; | use EasyCorp\Bundle\EasyAdminBundle\Field\IntegerField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextareaField; | use EasyCorp\Bundle\EasyAdminBundle\Field\TextareaField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | ||||
use Lc\CaracoleBundle\Field\AssociationField; | |||||
use Lc\SovBundle\Field\CKEditorField; | use Lc\SovBundle\Field\CKEditorField; | ||||
use Lc\SovBundle\Field\CollectionField; | use Lc\SovBundle\Field\CollectionField; | ||||
use Lc\SovBundle\Field\ImageManagerField; | use Lc\SovBundle\Field\ImageManagerField; | ||||
'status' => StatusField::new('status')->setSortable(true), | 'status' => StatusField::new('status')->setSortable(true), | ||||
'createdAt' => DateTimeField::new('createdAt')->setSortable(true), | 'createdAt' => DateTimeField::new('createdAt')->setSortable(true), | ||||
'updatedAt' => DateTimeField::new('updatedAt')->setSortable(true), | 'updatedAt' => DateTimeField::new('updatedAt')->setSortable(true), | ||||
'createdBy' => AssociationField::new('createdBy'), | |||||
'updatedBy' => AssociationField::new('updatedBy') | |||||
]; | ]; | ||||
} | } | ||||
} | } | ||||
.badge.stripped{background-image: url('../img/stripped.png');} | .badge.stripped{background-image: url('../img/stripped.png');} | ||||
.ui-sortable-helper { | |||||
display: table; | |||||
} | |||||
.lc-draggable{width: 100%;} | |||||
.sortable{width: 100%} |
export class SovPrices { | export class SovPrices { | ||||
static getPrice(priceWithTax, taxRate) { | |||||
return parseFloat(parseFloat(priceWithTax) / ((taxRate/100) + 1)).toFixed(4); | |||||
static getPrice(priceWithTax, taxRate,round) { | |||||
let price = parseFloat(parseFloat(priceWithTax) / ((taxRate/100) + 1)); | |||||
if(round ==false){ | |||||
return price; | |||||
} | |||||
return price.toFixed(4); | |||||
} | } | ||||
static getPriceWithTax(priceWithoutTax, taxRate) { | |||||
return parseFloat(parseFloat(priceWithoutTax) * ((taxRate/100) + 1)).toFixed(2); | |||||
static getPriceWithTax(priceWithoutTax, taxRate, round) { | |||||
let priceWithTax = parseFloat(parseFloat(priceWithoutTax) * ((taxRate/100) + 1)); | |||||
if(round ==false){ | |||||
return priceWithTax; | |||||
} | |||||
return priceWithTax.toFixed(2); | |||||
} | } | ||||
static getMargin(price, buyingPrice){ | static getMargin(price, buyingPrice){ | ||||
return parseFloat(((price - buyingPrice) / price) * 100).toFixed(2); | return parseFloat(((price - buyingPrice) / price) * 100).toFixed(2); | ||||
} | } | ||||
static applyReductionPercent(price, percentage) | |||||
static applyReductionPercent(price, percentage, round) | |||||
{ | { | ||||
return this.applyPercent(price, -percentage); | |||||
return this.applyPercent(price, -percentage,round); | |||||
} | } | ||||
static applyReductionAmount(price, amount) | |||||
static applyReductionAmount(price, amount, round) | |||||
{ | { | ||||
return parseFloat(price - amount).toFixed(2); | |||||
let priceWithReduction = parseFloat(price - amount); | |||||
if(round ==false){ | |||||
return priceWithReduction; | |||||
} | |||||
return priceWithReduction.toFixed(2); | |||||
} | } | ||||
static applyPercent(price, percentage) | |||||
static applyPercent(price, percentage, round) | |||||
{ | { | ||||
return parseFloat(price * (percentage / 100 + 1)).toFixed(2); | |||||
let priceWithReduction = parseFloat(price * (percentage / 100 + 1)); | |||||
if(round ==false){ | |||||
return priceWithReduction; | |||||
} | |||||
return priceWithReduction.toFixed(2); | |||||
} | } | ||||
} | } |
options.width = 'auto' | options.width = 'auto' | ||||
} | } | ||||
options.placeholder = ""; | |||||
// @TODO : génère une erreur | // @TODO : génère une erreur | ||||
/*if ($select.find('option[value=""]')) { | |||||
if ($select.find('option[value=""]').length) { | |||||
options.placeholder = $select.find('option[value=""]').html() | options.placeholder = $select.find('option[value=""]').html() | ||||
}*/ | |||||
options.placeholder = ""; | |||||
} | |||||
var myselect = $select.select2(options); | var myselect = $select.select2(options); | ||||
label_plurial: Blocs | label_plurial: Blocs | ||||
default: | default: | ||||
fields: | fields: | ||||
placeholder: Sélectionner une valeur | |||||
id: Id | id: Id | ||||
confirmDelete: Confirmer la suppression | confirmDelete: Confirmer la suppression | ||||
createdAt: Créé le | createdAt: Créé le |