Jump to content

Bllidz

Members
  • Posts

    197
  • Joined

  • Last visited

Posts posted by Bllidz

  1. 6 minutes ago, Bllidz said:

    Bah c'est quand j'ajoute un produit... J'ai vidé le cache mais maintenant quand j'ajoute un produit dans la commande ça m'ajoute le dernier produit de la commande.. 

    image.thumb.png.6f06ee8c9d8242267d39124fe301d6a2.png

    exemple là ca ne va pas m'ajouter l'illustration mais le COST 

    Et pour le insert toujours bloqué... il ne se fait pas .. 

    et quand je recharge la page il disparait.. 

  2. Bah c'est quand j'ajoute un produit... J'ai vidé le cache mais maintenant quand j'ajoute un produit dans la commande ça m'ajoute le dernier produit de la commande.. 

    image.thumb.png.6f06ee8c9d8242267d39124fe301d6a2.png

    exemple là ca ne va pas m'ajouter l'illustration mais le COST 

    Et pour le insert toujours bloqué... il ne se fait pas .. 

  3. La requête actuelle 

     

       foreach( $id_order_details as $id_order_detail ){
                $id = (int)$id_order_detail['id_order_detail'];
                $sql= Db::getInstance()->execute('INSERT INTO `' . _DB_PREFIX_ . 'order_date_liv` (`id_order_detail`, `Date`) VALUES ('.$id. ', ' .$date_liv.')' );
               
              
                return $sql ;
            }       

     

    donc ça doit donner ca ? 

       foreach( $id_order_details as $id_order_detail ){
                $id = (int)$id_order_detail['id_order_detail'];
                $sql= Db::getInstance()->execute('INSERT INTO `' . _DB_PREFIX_ . 'order_date_liv` (`id_order_detail`, `Date`) VALUES ('.$id. ', "' .$date_liv.'"'')' );
               
    
                return $sql ;
            }       

     

  4. Just now, Alexandre Carette said:

    si tu veux rajouter des ligne faut faire des INSERT en sql

    Justement d'où mon insert à la base, car de base à la création d'une commande y'a tout les lignes de produit sauf la date qui est dans ma table . Et justement mon bouton doit les créer la date de chaque produit  à j+2 

  5. 7 minutes ago, Alexandre Carette said:

    fait un

    echo "<pre>";
    var_dump($id_order_details)
    echo "</pre>";
    die();

    verifie le typage des champs met des (int)$var sur tes variables le cas echéant

    cdt

    Cependant le update que je fais via phpmyadmin , ça ne me met pas d'erreur, mais ça ne me rajoute pas de nouvelle ligne dans la bdd donc ça provient surement de là ? 

  6. 54 minutes ago, Alexandre Carette said:

    fait des var dump, die pour tester toute tes varaibles,

    egalement teste ta requete sur phpmyadmin (pas en format php mais SQL), il va te dire ce qu 'il ne va pas, cdt

    Le update passe bien  fin il n'y a pas d'erreur mais par contre dans ma BDD ça ne fait rien, ça ne rajoute pas un tuple 

  7. Le code  du foreach et le     $order_detail['id-order_detail'] c'était un mauvais copier coller du $id_order_detail dans la boucle for mais j'ai toujours la même erreur de syntaxe 

     foreach( $id_order_details as $id_order_detail ){
            return Db::getInstance()->execute('UPDATE `'._DB_PREFIX_.'order_date_liv` odl SET odl.Date ='.$date_liv.' WHERE  odl.id_order_detail = '.$id_order_detail['id-order_detail'] );
            }       

     

  8. 21 minutes ago, Alexandre Carette said:

    ton return faut le mettre dans le foreach il va s executer sur chaque ligne de id_order_detail qu il trouve, la tu ne l execute qu une seul fois

    Je m'étais dit ça aussi mais les  retour dans les boucles je me suis tâté. 

     return Db::getInstance()->execute('UPDATE `'._DB_PREFIX_.'order_date_liv` odl SET odl.Date ='.$DateLiv.' WHERE  odl.id_order_detail = '.$order_detail['id-order_detail'] );

    donc normalement cette ligne c'est mieux 

    Mais ça me mets ça...

    image.png.c9fce0d2fb284c13c76166b37ee2adb6.png

  9. 18 minutes ago, Alexandre Carette said:

    ok donc au lieu de faire un INSERT INTO tu fais un

    UPDATE ps_ta_new-table SET Date = $DateLiv WHERE id_order_detail = $order_detail['id_order_detail']

    c vite fait faut refacto bien sur

     

    Ce qui donne un truc comme ça ? 

    image.thumb.png.b254f06a01735311788a47a1f4497c56.png

     

    Qu'entends tu par refacto ? 

  10. 6 minutes ago, Alexandre Carette said:

    ah oui ok d'accord je vois, tu aurais du faire un nouvel objet, mais bon c pas grave. donc  de ce que je comprend tu veux garder un historique des changement de date ?

    du coup fait moi un screenshot de la structure de ta nouvelle table, via phpmyadmin, regarde si l'id_ta_new_table est bien en primary et en auto increment

    Non pas forcément, c'est juste que j'ai pas pensé à ajouter un champ date_liv dans la table order_detail et que ça me paraissait plus simple de créer une nouvelle table  tout simplement. Car là le but est de créer grace au bouton la date en j+2 et de pouvoir la changer seulement en cas ou ce serait une date différente.

    Tiens le screen de la structure de la table.

    image.thumb.png.48f2a6faaca904261aed027f66ce6dca.png

    2 minutes ago, Alexandre Carette said:

    sinon a partir du moment ou tu cree une nouvelle table dans la bdd, faudrais faire un objet pour etre propre

    Oui c'est vrai.. 

  11. 3 minutes ago, Alexandre Carette said:

    tu instancie l'objet OrderDetail, oui c une classe ou plutot un objet, en gros tu recupere l'enregistrement de la ligne detail de la commande via son ID : new OrderDetail(285); -> ca te permet de recup tout l objet 285.  De la  tu update la data, je ne comprend pas pk tu veux faire un insert, c'est comme si tu crée une nouvelle ligne de produit dans ta commande, la fonction $order_d->update(); update la data dans l'objet

    Oui autant pour moi je me suis perdu dans la vision du fonctionnement. 

    Mais cependant $order_d->ton_champ_date = $date_liv;  je n'ai pas de champs date dans la classe order_detail 

    car la date qui est affiché provient d'une function dans la classe product que j'appelle dans view.tpl qui cette date même vient d'une table 

    J'ai peur de mal comprendre.. car je comprends que je récupère l'objetX x étant l'id_d'order_detail et qu'après je dis à la la variable de cet objet de prendre la valeur de $date_liv et qu'ensuite j'update l'objet juste pour le mettre à jour et que il prenne bien en compte le changement de la date.. Mais vu que je n'ai pas de champs date je ne vois pas trop..

  12. 13 minutes ago, Alexandre Carette said:

    deja je pense qu'il faut faire un update et non pas un insert de ligne... et on va tout recup ce sera plus simple,

            $order_details= Db::getInstance()->executeS('SELECT * FROM`' . _DB_PREFIX_ .'order_detail` where id_order = '. $id_order);

    dans le foreach on va instancier l'objet OrderDetail au lieu de faire une requete je trouve ca plus propre

    foreach( $order_details as $order_detail ){
    
              $order_d = new OrderDetail((int)$order_detail['id_order_detail']); 
              $order_d->ton_champ_date = $date_liv;
              $order_d->update();
    
    }    

    dans le code du dessus tu oublie de faire un return de $sql, c pour ce que ta requete ne execute pas

    Oui j'ai remarqué après que j'avais oublié le return mais même avec ça ne change rien.. 

     

    Cependant pour ta solution si je comprends bien dans le foreach  je créer un objet de la classe order_detail 

    et dans la classe order_detail je créer une variable "ton_champ_date" que j''instancie avec $date_liv (soit j+2) et je créer  une fonction update() qui elle aura seulement les insert, c'et bien cela ? 

  13. 30 minutes ago, Alexandre Carette said:

    ok dans ta function alors au lieu d un getValue, faut faire un executeS et oui y a plusieurs order_detail

            $order_details= Db::getInstance()->executeS('SELECT od.id_order_detail od.tonchampsdedatecustom FROM`' . _DB_PREFIX_ .'order_detail` od where id_order = '. $id_order);

    de la tu va pouvoir foreach $order_details

    Super merci beaucoup je récupère bien tout les id_order_detail 

    Cependant quand je clique les ou l'insert ne passe pas, est-ce que ça provient de execute () ? 

      public function ajaxProcessaddDateLivProd(){
            
            $id_order = Tools::getValue('id_order');
            $id_order_details=  Db::getInstance()->executeS('Select id_order_detail FROM`' . _DB_PREFIX_ .'order_detail` where id_order = '. $id_order);
            $date_liv=date("d-m-Y", strtotime("+2 day"));   //Date du jour +2 
            foreach( $id_order_details as $id_od ){
               $sql= Db::getInstance()->execute('INSERT INTO `' . _DB_PREFIX_ . 'order_date_liv` (`id_order_detail`, `date`) VALUES (' . (int) $id_od . ', ' . $date_liv . ')');
            }       
            
        }

     

  14. Bonjour, 

    Je souhaiterai créer un bouton et quand je clique sur le bouton ça me crée des dates sur tout les produit de la commande en J+2 

    image.thumb.png.df3de4fb1338fbaeb8e286d21029544b.png

     

    J'ai créé un bouton dans adminXXXX/themes/default/template/controllers/orders/helpers/view/view.tpl

    Le code du bouton 

    <button type="button" class="btn btn-default submitAjoutDateLiv" style="display : block;" >
    			            <i class="icon-ok"></i>
    		            	{l s='Création date' d='Admin.Actions'}
    	              	</button>

    Mon code Js et ajax qui envoie l'id de la commande dans order.js

    $('button.submitAjoutDateLiv').unbind('click').click(function(e) {
    		e.preventDefault();
    		
    		query = 'ajax=1&token='+token+'&action=addDateLivProd&id_order='+id_order+'&';
    		
    		$.ajax({
    			type:'POST',
    			url: admin_order_tab_link,
    			cache: false,
    			dataType: 'json',
    			data : query,
    			success: function(data)
    			{
    				if (data.result)
    				{
    					console.log('ok');
    				}
    				else	
    					jAlert(data.error);
    			}
    		});
    
    		return false;
    
    	});

    Mon code dans le AdminOrdercontroller

      public function ajaxProcessaddDateLivProd(){
           
            $id_order = Tools::getValue('id_order');
            $id_order_detail= Db::getInstance()->getvalue('Select id_order_detail FROM`' . _DB_PREFIX_ .'order_detail` where id_order = '. $id_order);
            $date_liv=date("d-m-Y", strtotime("+2 day"));   //Date du jour +2 
            var_dump($id_order_detail);
            die();
            
            
        }

     

    Donc l'idée est que je récupère l'id de la commande et que grâce à l'id_order je récupère tout les  id_order_detail et que ensuite avec un foreach je mets un insert pour chaque id_order_detail (je ne sais pas si c'est faisable réellement)   cependant actuellement je récupère bien l'id_order mais le var_dump me donne bool(true). Donc est-ce que quelqu'un aurait une idée pour que je puisse récupérer mes id_order_detail et que je puisse faire un insert pour chaque produit de la commande 

     

    Merci d'avance de votre aide 

    Ma version PS : 1.7.6.9

     

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More