if($excels) {
$sizeFiles = sizeof($excels);
- $sizeSheets = sizeof(call_user_func_array('array_merge', $excels));
+ $sizeSheets = sizeof(call_user_func_array('array_merge',array_merge(...$excels)));
// Parse product files
+
foreach ($excels as $key => $excel) {
$filename = key($excel);
// Parse product sheets
+ $ids = [];
foreach ($excel[$filename] as $sheet => $rows) {
- try {
+ if(!empty($rows[1][1])) {
$id = $rows[1][1];
- } catch(\Exception $e) {
+ $ids[$sheet] = $id;
+ }else {
$errorsMessage[] = "L'Identifiant pour la fiche $sheet est manquant.";
- $contentMail["details"][$filename][$sheet] = "Identifiant manquant";
+ $contentMail["details"][$filename][$sheet] = "[ERREUR] Identifiant manquant";
+ continue;
}
+
try {
// Parse rows of sheet
foreach ($rows as $row => $columns) {
}
} catch(\Exception $e) {
$errorsMessage[] = "La feuille : $sheet, contient des erreurs";
- $contentMail["details"][$filename][$sheet] = "Format invalide";
+ $contentMail["details"][$filename][$sheet] = "[ERREUR] Format invalide";
}
$optionId = -1;
}
foreach ($specifications as $product => $specification) {
$data[$product]['json'] = json_encode($specification);
}
-
- $product = Product::find($id);
- if($product) {
- $changes = $this->storeAndReturnChanges($data);
- // Remove empty array from the changes
- $changes = array_filter($changes);
- // Total changes
- $sizeChanges = sizeof($changes);
+ foreach ($ids as $sheet => $id) {
+ $product = Product::find($id);
+ if ($product) {
+ $changes = $this->storeAndReturnChanges($data);
- $contentMail["details"][$filename][$sheet] = "OK";
- if(!$changes) {
- $contentMail["details"][$filename][$sheet] .= " (aucune modification)";
- }
- }else {
- if($id) {
+ // Remove empty array from the changes
+ $changes = array_filter($changes);
+
+ // Total changes
+ $sizeChanges = sizeof($changes);
+
+ $contentMail["details"][$filename][$sheet] = "[OK]";
+
+ if (!$changes) {
+ $contentMail["details"][$filename][$sheet] .= " (aucune modification)";
+ }
+ } else {
$errorsMessage[] = "Aucun ID correspond pour le produit: $sheet";
- $contentMail["details"][$filename][$sheet] = "Identifiant inconnu";
+ if ($id) {
+ $contentMail["details"][$filename][$sheet] = "[ERREUR] Identifiant inconnu";
+ } else {
+ $contentMail["details"][$filename][$sheet] = "[ERREUR] Identifiant manquant";
+ }
}
}
}
}else{
$errorsMessage[] = "Erreur lors du téléchargement du fichier.";
- $contentMail["details"] = "Fichier incorrect";
+ $contentMail["details"] = "[ERREUR] Fichier incorrect";
}
$successMessage = "$sizeFiles fichier(s) chargé(s)";
$changes = [];
foreach ($datas as $id => $data) {
$product = Product::find($id);
- if($product)
+ if ($product) {
$product->update($data);
$product->save();
$changes[$id] = $product->wasChanged();
+ }
}
return $changes;
}
$message->sender(config('mail.from.address'), config('mail.from.name'));
$message->to("soufiane@cubedesigners.com");
$message->bcc('test+pmi@cubedesigners.com');
- $message->subject("Mise à jour");
+ $message->subject("[PM-Instrumentation] Mise à jour");
});
}
}