En fait c'est un peu compliqué...
J'ai réussi à mettre pour chaque produit l'identifiant de l'administrateur qui l'a créé.
Maintenant il faut que je fasse de même avec les commandes.
Dans une commande on a des produits. Il faut que je regarde si ces produits appartiennent tous au même administrateur, si oui, je dois rentrer dans la table order l'identifiant de l'administrateur concerné.
Pour cela je récupère les produits de la commande qui vient d'être créée, je passe donc par order_product pour faire le joint entre la commande et le créateur des produits de la commande.
Je fais une boucle pour tous les produits de la commande : je vais chercher le créateur de chaque produit.
En suite il faut que je regarde si les produits de la commande proviennent tous du même administrateur ou non.
Si oui, il faut que j'ajoute dans la table order l'identifiant de l'administrateur concerné.
En mode brouillon ça donne ça ...:
$ref_product = array();
$sql1 = 'SELECT `order_id`, `product_ref` FROM `order_product` WHERE `order_id`=' . $pk;
var_dump($sql1);
$stmt = $con->prepare($sql1);
// $stmt->execute();
var_dump("ok");
foreach($stmt->execute() as $row) {
var_dump('foreaach');
$sql2 = sprintf('SELECT `id`,`ref`, `version_created_by` FROM `product` WHERE `ref`=(%s)',
$row['product_ref']
);
foreach ($con->query($sql2) as $row2) {
array_push($ref_product, $row2['version_created_by']);
}
}
var_dump($ref_product);
$valeur_precedante = $ref_product[1];
$idem_fournisseur = false;
foreach ($ref_product as $value) {
if ($valeur_precedante == $value) {
$idem_fournisseur = true;
} else {
$idem_fournisseur = false;
break;
}
}
var_dump($idem_fournisseur);
if ($idem_fournisseur == true) {
$sql3 = sprintf(
'INSERT INTO `order` (%s) VALUES (%s)',
'`VERSION_CREATED_BY`',
$_SESSION['_sf2_attributes']['thelia.admin_user']->getId()
);
Il y a encore du boulot.... Mais rien que le premier foreach me bloque ...