// Création de la cammpagne $campagneenvoyer = $CampagneHandler->onSuccess(); if($campagneenvoyer){ //Selection du stock $req_selectstock = $em->getRepository('EmBackendBundle:Stocksms')->findBy(['utilise'=>true, 'fini'=>false]); if ($req_selectstock != NULL) { $res_selectstock = $req_selectstock->fetchAll(); $nbrestockrestant = count($res_selectstock); $totalstockrestant = 0; //connaitre le nombre total de produit restant selon les stocks combinés for ($i=0; $i < $nbrestockrestant; $i++) { // Selectionnons le mouvement de stock $req_selectmouvstock = $bdd->prepare("SELECT * FROM mouvementstock WHERE stockid=? ORDER BY id_mouvementstock DESC ")or die (print_r($bdd->errorinfo())); $req_selectmouvstock->execute(array($res_selectstock[$i]['id_newstock'])); $res_selectmouvstock = $req_selectmouvstock->fetch(); if ($res_selectmouvstock != "") { $totalstockrestant = $totalstockrestant + $res_selectmouvstock['qtefinale']; }else { $req_selectstock2 = $bdd->prepare("SELECT * FROM newstock WHERE id_newstock=? "); $req_selectstock2->execute(array($res_selectstock[$i]['id_newstock'])); $res_selectstock2 = $req_selectstock2->fetch(); $totalstockrestant = $totalstockrestant + $res_selectstock2['qteinitial']; } } //Verifions si le stock restant total peut honorer la commande if ($totalstockrestant >= $_POST['boitescc15']) { $nbreadeduit = 0; for ($i=0; $i < $nbrestockrestant; $i++) { //Selectionner le stock produit en cours if (isset($res_selectstock[$i]) AND $res_selectstock[$i]['utilise']==true AND $res_selectstock[$i]['fini']==false) { // Selectionnons le mouvement de stock $req_selectmouvstock = $bdd->prepare("SELECT * FROM mouvementstock WHERE stockid=? ORDER BY id_mouvementstock DESC ")or die (print_r($bdd->errorinfo())); $req_selectmouvstock->execute(array($res_selectstock[$i]['id_newstock'])); $res_selectmouvstock = $req_selectmouvstock->fetch(); //Verifions si res_selectmouvstock est non null if ($res_selectmouvstock != "") { if ($nbreadeduit == 0) { // Comparons si la quantité initiale de transaction est inférieur à celle en stock if ($res_selectmouvstock['qtefinale'] > $_POST['boitescc15']) { //Sauvegarde du voucher $req_insert = $bdd->prepare("INSERT INTO vaucher (parrainpseudo, filleulpseudo, collectioncode, capture, agence, bylifestarid, dateadd, typeoperation, statut) VALUES(?,?,?,?,?,?,NOW(),?,?)")or die (print_r($bdd->errorinfo())); $req_insert->execute(array($pseudoparrainid,$pseudofilleulid,$collectioncode,$newfilename,$agence,$bylifestarid,$operation,0)); $vaucherId = $bdd->lastInsertId(); //insertion de produit vaucher $req_insertprodvoucher = $bdd->prepare("INSERT INTO produitvaucher (produitsuperlife_id, qte, dateadd, vaucherid) VALUES(?,?,NOW(),?)")or die (print_r($bdd->errorinfo())); $req_insertprodvoucher->execute(array(1,$_POST['boitescc15'],$vaucherId)); $prodvaucherId = $bdd->lastInsertId(); //mouvement de stock $req_insertmouvstock = $bdd->prepare("INSERT INTO mouvementstock (qteinitial, qtefinale, produitvaucherid, stockid, description, dateadd) VALUES(?,?,?,?,?,NOW())")or die (print_r($bdd->errorinfo())); $totalqte = $res_selectmouvstock['qtefinale'] - $_POST['boitescc15']; $req_insertmouvstock->execute(array($res_selectmouvstock['qtefinale'],$totalqte,$prodvaucherId,$res_selectstock[0]['id_newstock'],$description.$res_leader['pseudo_lifestar'])); $statut=1; }else if ($res_selectmouvstock['qtefinale'] == $_POST['boitescc15']) { //Sauvegarde du voucher $req_insert = $bdd->prepare("INSERT INTO vaucher (parrainpseudo, filleulpseudo, collectioncode, capture, agence, bylifestarid, dateadd, typeoperation, statut) VALUES(?,?,?,?,?,?,NOW(),?,?)")or die (print_r($bdd->errorinfo())); $req_insert->execute(array($pseudoparrainid,$pseudofilleulid,$collectioncode,$newfilename,$agence,$bylifestarid,$operation,0)); $vaucherId = $bdd->lastInsertId(); //insertion de produit vaucher $req_insertprodvoucher = $bdd->prepare("INSERT INTO produitvaucher (produitsuperlife_id, qte, dateadd, vaucherid) VALUES(?,?,NOW(),?)")or die (print_r($bdd->errorinfo())); $req_insertprodvoucher->execute(array(1,$_POST['boitescc15'],$vaucherId)); $prodvaucherId = $bdd->lastInsertId(); //mouvement de stock $req_insertmouvstock = $bdd->prepare("INSERT INTO mouvementstock (qteinitial, qtefinale, produitvaucherid, stockid, description, dateadd) VALUES(?,?,?,?,?,NOW())")or die (print_r($bdd->errorinfo())); $totalqte = $res_selectmouvstock['qtefinale'] - $_POST['boitescc15']; $req_insertmouvstock->execute(array($res_selectmouvstock['qtefinale'],$totalqte,$prodvaucherId,$res_selectstock[0]['id_newstock'],$description.$res_leader['pseudo_lifestar'])); //Update utilise de newstock $req_updatestock = $bdd->prepare("UPDATE newstock SET fini=? WHERE id_newstock=? "); $req_updatestock->execute(array(1,$res_selectstock[0]['id_newstock'])); /******* envoie de mail de rupture de stock ********/ $pack="SCC+"; include("../email/email_rupture_stock.php"); $statut=1; }else { //Verifions si ce stock a été en mouvement if ($nbreadeduit == 0) { $nbreadeduit = $_POST['boitescc15']-$res_selectmouvstock['qtefinale']; }else{ $nbreadeduit = $nbreadeduit - $res_selectmouvstock['qtefinale']; } //Sauvegarde du voucher $req_insert = $bdd->prepare("INSERT INTO vaucher (parrainpseudo, filleulpseudo, collectioncode, capture, agence, bylifestarid, dateadd, typeoperation, statut) VALUES(?,?,?,?,?,?,NOW(),?,?)")or die (print_r($bdd->errorinfo())); $req_insert->execute(array($pseudoparrainid,$pseudofilleulid,$collectioncode,$newfilename,$agence,$bylifestarid,$operation,0)); $vaucherId = $bdd->lastInsertId(); //insertion de produit vaucher $req_insertprodvoucher = $bdd->prepare("INSERT INTO produitvaucher (produitsuperlife_id, qte, dateadd, vaucherid) VALUES(?,?,NOW(),?)")or die (print_r($bdd->errorinfo())); $req_insertprodvoucher->execute(array(1,$res_selectmouvstock['qtefinale'],$vaucherId)); $prodvaucherId = $bdd->lastInsertId(); //Finissons le premier stock $req_insertmouvstock1 = $bdd->prepare("INSERT INTO mouvementstock (qteinitial, qtefinale, produitvaucherid, stockid, description, dateadd) VALUES(?,?,?,?,?,NOW())")or die (print_r($bdd->errorinfo())); $req_insertmouvstock1->execute(array($res_selectmouvstock['qtefinale'],$res_selectmouvstock['qtefinale']-$res_selectmouvstock['qtefinale'],$prodvaucherId,$res_selectstock[$i]['id_newstock'],$description.$res_leader['pseudo_lifestar'])); //Update utilise de newstock $req_updatestock = $bdd->prepare("UPDATE newstock SET fini=? WHERE id_newstock=? "); $req_updatestock->execute(array(1,$res_selectstock[$i]['id_newstock'])); } }else{ if ($res_selectmouvstock['qtefinale'] > $nbreadeduit) { //Sauvegarde du voucher $req_insert = $bdd->prepare("INSERT INTO vaucher (parrainpseudo, filleulpseudo, collectioncode, capture, agence, bylifestarid, dateadd, typeoperation, statut) VALUES(?,?,?,?,?,?,NOW(),?,?)")or die (print_r($bdd->errorinfo())); $req_insert->execute(array($pseudoparrainid,$pseudofilleulid,$collectioncode,$newfilename,$agence,$bylifestarid,$operation,0)); $vaucherId = $bdd->lastInsertId(); //insertion de produit vaucher $req_insertprodvoucher = $bdd->prepare("INSERT INTO produitvaucher (produitsuperlife_id, qte, dateadd, vaucherid) VALUES(?,?,NOW(),?)")or die (print_r($bdd->errorinfo())); $req_insertprodvoucher->execute(array(1,$nbreadeduit,$vaucherId)); $prodvaucherId = $bdd->lastInsertId(); //mouvement de stock $req_insertmouvstock = $bdd->prepare("INSERT INTO mouvementstock (qteinitial, qtefinale, produitvaucherid, stockid, description, dateadd) VALUES(?,?,?,?,?,NOW())")or die (print_r($bdd->errorinfo())); $totalqte = $res_selectmouvstock['qtefinale'] - $nbreadeduit; $req_insertmouvstock->execute(array($res_selectmouvstock['qtefinale'],$totalqte,$prodvaucherId,$res_selectstock[$i]['id_newstock'],$description.$res_leader['pseudo_lifestar'])); $statut=1; }else if ($res_selectmouvstock['qtefinale'] == $nbreadeduit) { //Sauvegarde du voucher $req_insert = $bdd->prepare("INSERT INTO vaucher (parrainpseudo, filleulpseudo, collectioncode, capture, agence, bylifestarid, dateadd, typeoperation, statut) VALUES(?,?,?,?,?,?,NOW(),?,?)")or die (print_r($bdd->errorinfo())); $req_insert->execute(array($pseudoparrainid,$pseudofilleulid,$collectioncode,$newfilename,$agence,$bylifestarid,$operation,0)); $vaucherId = $bdd->lastInsertId(); //insertion de produit vaucher $req_insertprodvoucher = $bdd->prepare("INSERT INTO produitvaucher (produitsuperlife_id, qte, dateadd, vaucherid) VALUES(?,?,NOW(),?)")or die (print_r($bdd->errorinfo())); $req_insertprodvoucher->execute(array(1,$nbreadeduit,$vaucherId)); $prodvaucherId = $bdd->lastInsertId(); //mouvement de stock $req_insertmouvstock = $bdd->prepare("INSERT INTO mouvementstock (qteinitial, qtefinale, produitvaucherid, stockid, description, dateadd) VALUES(?,?,?,?,?,NOW())")or die (print_r($bdd->errorinfo())); $totalqte = $res_selectmouvstock['qtefinale'] - $nbreadeduit; $req_insertmouvstock->execute(array($res_selectmouvstock['qtefinale'],$totalqte,$prodvaucherId,$res_selectstock[$i]['id_newstock'],$description.$res_leader['pseudo_lifestar'])); //Update utilise de newstock $req_updatestock = $bdd->prepare("UPDATE newstock SET fini=? WHERE id_newstock=? "); $req_updatestock->execute(array(1,$res_selectstock[$i]['id_newstock'])); /******* envoie de mail de rupture de stock ********/ $pack="SCC+"; include("../email/email_rupture_stock.php"); $statut=1; }else { //Verifions si ce stock a été en mouvement if ($nbreadeduit == 0) { $nbreadeduit = $_POST['boitescc15']-$res_selectmouvstock['qtefinale']; }else{ $nbreadeduit = $nbreadeduit - $res_selectmouvstock['qtefinale']; } //Sauvegarde du voucher $req_insert = $bdd->prepare("INSERT INTO vaucher (parrainpseudo, filleulpseudo, collectioncode, capture, agence, bylifestarid, dateadd, typeoperation, statut) VALUES(?,?,?,?,?,?,NOW(),?,?)")or die (print_r($bdd->errorinfo())); $req_insert->execute(array($pseudoparrainid,$pseudofilleulid,$collectioncode,$newfilename,$agence,$bylifestarid,$operation,0)); $vaucherId = $bdd->lastInsertId(); //insertion de produit vaucher $req_insertprodvoucher = $bdd->prepare("INSERT INTO produitvaucher (produitsuperlife_id, qte, dateadd, vaucherid) VALUES(?,?,NOW(),?)")or die (print_r($bdd->errorinfo())); $req_insertprodvoucher->execute(array(1,$res_selectmouvstock['qtefinale'],$vaucherId)); $prodvaucherId = $bdd->lastInsertId(); //Finissons le premier stock $req_insertmouvstock1 = $bdd->prepare("INSERT INTO mouvementstock (qteinitial, qtefinale, produitvaucherid, stockid, description, dateadd) VALUES(?,?,?,?,?,NOW())")or die (print_r($bdd->errorinfo())); $req_insertmouvstock1->execute(array($res_selectmouvstock['qtefinale'],$res_selectmouvstock['qtefinale']-$res_selectmouvstock['qtefinale'],$prodvaucherId,$res_selectstock[$i]['id_newstock'],$description.$res_leader['pseudo_lifestar'])); //Update utilise de newstock $req_updatestock = $bdd->prepare("UPDATE newstock SET fini=? WHERE id_newstock=? "); $req_updatestock->execute(array(1,$res_selectstock[$i]['id_newstock'])); } } }else{ if ($res_selectstock[$i]['qteinitial'] > $_POST['boitescc15']) { //verifions d'abord si le voucher existe //Sauvegarde du voucher $req_insert = $bdd->prepare("INSERT INTO vaucher (parrainpseudo, filleulpseudo, collectioncode, capture, agence, bylifestarid, dateadd, typeoperation, statut) VALUES(?,?,?,?,?,?,NOW(),?,?)")or die (print_r($bdd->errorinfo())); $req_insert->execute(array($pseudoparrainid,$pseudofilleulid,$collectioncode,$newfilename,$agence,$bylifestarid,$operation,0)); $vaucherId = $bdd->lastInsertId(); //insertion de produit vaucher $req_insertprodvoucher = $bdd->prepare("INSERT INTO produitvaucher (produitsuperlife_id, qte, dateadd, vaucherid) VALUES(?,?,NOW(),?)")or die (print_r($bdd->errorinfo())); $req_insertprodvoucher->execute(array(1,$_POST['boitescc15'],$vaucherId)); $prodvaucherId = $bdd->lastInsertId(); # mouvement de stock $req_insertmouvstock = $bdd->prepare("INSERT INTO mouvementstock (qteinitial, qtefinale, produitvaucherid, stockid, description, dateadd) VALUES(?,?,?,?,?,NOW())")or die (print_r($bdd->errorinfo())); $req_insertmouvstock->execute(array($res_selectstock[$i]['qteinitial'],$res_selectstock[$i]['qteinitial']-$_POST['boitescc15'],$prodvaucherId,$res_selectstock[$i]['id_newstock'],$description.$res_leader['pseudo_lifestar'])); $statut=1; }else if ($res_selectstock[$i]['qteinitial'] == $_POST['boitescc15']) { //verifions d'abord si le voucher existe //Sauvegarde du voucher $req_insert = $bdd->prepare("INSERT INTO vaucher (parrainpseudo, filleulpseudo, collectioncode, capture, agence, bylifestarid, dateadd, typeoperation, statut) VALUES(?,?,?,?,?,?,NOW(),?,?)")or die (print_r($bdd->errorinfo())); $req_insert->execute(array($pseudoparrainid,$pseudofilleulid,$collectioncode,$newfilename,$agence,$bylifestarid,$operation,0)); $vaucherId = $bdd->lastInsertId(); //insertion de produit vaucher $req_insertprodvoucher = $bdd->prepare("INSERT INTO produitvaucher (produitsuperlife_id, qte, dateadd, vaucherid) VALUES(?,?,NOW(),?)")or die (print_r($bdd->errorinfo())); $req_insertprodvoucher->execute(array(1,$_POST['boitescc15'],$vaucherId)); $prodvaucherId = $bdd->lastInsertId(); //mouvement de stock $req_insertmouvstock = $bdd->prepare("INSERT INTO mouvementstock (qteinitial, qtefinale, produitvaucherid, stockid, description, dateadd) VALUES(?,?,?,?,?,NOW())")or die (print_r($bdd->errorinfo())); $totalqte = $res_selectstock[$i]['qteinitial'] - $_POST['boitescc15']; $req_insertmouvstock->execute(array($res_selectstock[$i]['qteinitial'],$totalqte,$prodvaucherId,$res_selectstock[0]['id_newstock'],$description.$res_leader['pseudo_lifestar'])); //Update utilise de newstock $req_updatestock = $bdd->prepare("UPDATE newstock SET fini=? WHERE id_newstock=? "); $req_updatestock->execute(array(1,$res_selectstock[$i]['id_newstock'])); /******* envoie de mail de rupture de stock ********/ $pack="SCC+"; include("../email/email_rupture_stock.php"); $statut=1; }else { /******* envoie de mail de rupture de stock ********/ $pack="SCC+"; include("../email/email_rupture_stock.php"); $statut=4; } } } if ($nbreadeduit == 0) { break; }else { continue; } } } //Création des historique dans mouvements //Envoie de la campagne }else { $req_selectstock2 = $em->getRepository('EmBackendBundle:Stocksms')->findBy(['utilise'=>false],['id'=>'ASC']); $req_selectstock2[0]->setUtilise(true); $em->flush(); //Selection du stock à nouveau $req_selectstock3 = $em->getRepository('EmBackendBundle:Stocksms')->findBy(['utilise'=>true, 'fini'=>false]); } $request->getSession()->getFlashBag()->add('Noticesuccess', ' Vous venez d\'ajouter un stock de sms !'); return $this->redirect($this->generateUrl('em_backend_campagne')); }else{ $request->getSession()->getFlashBag()->add('Noticeerror', " Erreur lors de l'opération !"); return $this->redirect($this->generateUrl('em_backend_campagne')); }