121 lines
4.5 KiB
PHP
121 lines
4.5 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\Product;
|
|
use App\Models\ProductCategory;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class ProductSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
$products = [
|
|
[
|
|
'nom' => 'Soin de thanatopraxie standard',
|
|
'reference' => 'INT-THAN-001',
|
|
'category_code' => 'SOINS_THANATO',
|
|
'fabricant' => 'Thanasoft Care',
|
|
'stock_actuel' => 50,
|
|
'stock_minimum' => 10,
|
|
'unite' => 'prestation',
|
|
'prix_unitaire' => 320.00,
|
|
'conditionnement_nom' => 'Unité',
|
|
'conditionnement_quantite' => 1,
|
|
'conditionnement_unite' => 'prestation',
|
|
],
|
|
[
|
|
'nom' => 'Toilette mortuaire complète',
|
|
'reference' => 'INT-TOIL-001',
|
|
'category_code' => 'PREPARATION_DEFUNT',
|
|
'fabricant' => 'Thanasoft Care',
|
|
'stock_actuel' => 40,
|
|
'stock_minimum' => 8,
|
|
'unite' => 'prestation',
|
|
'prix_unitaire' => 180.00,
|
|
'conditionnement_nom' => 'Unité',
|
|
'conditionnement_quantite' => 1,
|
|
'conditionnement_unite' => 'prestation',
|
|
],
|
|
[
|
|
'nom' => 'Retrait pacemaker',
|
|
'reference' => 'INT-PACE-001',
|
|
'category_code' => 'PREPARATION_DEFUNT',
|
|
'fabricant' => 'Thanasoft Care',
|
|
'stock_actuel' => 20,
|
|
'stock_minimum' => 4,
|
|
'unite' => 'prestation',
|
|
'prix_unitaire' => 95.00,
|
|
'conditionnement_nom' => 'Unité',
|
|
'conditionnement_quantite' => 1,
|
|
'conditionnement_unite' => 'prestation',
|
|
],
|
|
[
|
|
'nom' => 'Kit de soins de conservation',
|
|
'reference' => 'PROD-SOIN-001',
|
|
'category_code' => 'CONSOMMABLES_SOINS',
|
|
'fabricant' => 'Mortuary Supply',
|
|
'stock_actuel' => 120,
|
|
'stock_minimum' => 25,
|
|
'unite' => 'kit',
|
|
'prix_unitaire' => 42.50,
|
|
'conditionnement_nom' => 'Carton',
|
|
'conditionnement_quantite' => 10,
|
|
'conditionnement_unite' => 'kit',
|
|
],
|
|
[
|
|
'nom' => 'Housse funéraire premium',
|
|
'reference' => 'PROD-HOUS-001',
|
|
'category_code' => 'ACCESSOIRES_FUNERAIRES',
|
|
'fabricant' => 'Funeral Equip',
|
|
'stock_actuel' => 75,
|
|
'stock_minimum' => 15,
|
|
'unite' => 'unité',
|
|
'prix_unitaire' => 28.90,
|
|
'conditionnement_nom' => 'Paquet',
|
|
'conditionnement_quantite' => 5,
|
|
'conditionnement_unite' => 'unité',
|
|
],
|
|
[
|
|
'nom' => 'Produit de désinfection mortuaire',
|
|
'reference' => 'PROD-DES-001',
|
|
'category_code' => 'CONSOMMABLES_SOINS',
|
|
'fabricant' => 'Mortuary Supply',
|
|
'stock_actuel' => 90,
|
|
'stock_minimum' => 20,
|
|
'unite' => 'litre',
|
|
'prix_unitaire' => 14.75,
|
|
'conditionnement_nom' => 'Bidon',
|
|
'conditionnement_quantite' => 5,
|
|
'conditionnement_unite' => 'litre',
|
|
],
|
|
];
|
|
|
|
foreach ($products as $data) {
|
|
$category = ProductCategory::where('code', $data['category_code'])->first();
|
|
|
|
if (! $category) {
|
|
continue;
|
|
}
|
|
|
|
Product::updateOrCreate(
|
|
['reference' => $data['reference']],
|
|
[
|
|
'nom' => $data['nom'],
|
|
'categorie_id' => $category->id,
|
|
'fabricant' => $data['fabricant'],
|
|
'stock_actuel' => $data['stock_actuel'],
|
|
'stock_minimum' => $data['stock_minimum'],
|
|
'unite' => $data['unite'],
|
|
'prix_unitaire' => $data['prix_unitaire'],
|
|
'conditionnement_nom' => $data['conditionnement_nom'],
|
|
'conditionnement_quantite' => $data['conditionnement_quantite'],
|
|
'conditionnement_unite' => $data['conditionnement_unite'],
|
|
'date_expiration' => null,
|
|
'numero_lot' => null,
|
|
'fournisseur_id' => null,
|
|
]
|
|
);
|
|
}
|
|
}
|
|
} |