Example #1
0
 protected function clonePriceList($clone_id, $list_id)
 {
     $clone = Listini::findFirst($clone_id);
     if ($clone) {
         $n_v = 0;
         $n_p = 0;
         $n_i = 0;
         $clone_versioni = ListiniVersioni::find(array('pr_listini_id = ?0', 'bind' => array($clone_id)));
         foreach ($clone_versioni as $clone_versione) {
             $parameters = $clone_versione->toArray();
             unset($parameters['id']);
             unset($parameters['pr_listini_id']);
             $nuova_versione = Model::cloneResult(new ListiniVersioni(), $parameters);
             $nuova_versione->pr_listini_id = $list_id;
             if ($nuova_versione->save()) {
                 $n_v++;
                 $clone_info = InfoProdotti::find(array('pr_listini_versioni_id = ?0', 'bind' => array($clone_versione->id)));
                 foreach ($clone_info as $ci) {
                     $parameters = $ci->toArray();
                     unset($parameters['id']);
                     unset($parameters['pr_listini_versioni_id']);
                     $nuovo_info = Model::cloneResult(new InfoProdotti(), $parameters);
                     $nuovo_info->pr_listini_versioni_id = $nuova_versione->id;
                     if ($nuovo_info->save()) {
                         $n_i++;
                         $clone_prezzo = PrezziProdotti::findFirst(array('pr_info_prodotti_id = ?0', 'bind' => array($ci->id)));
                         if ($clone_prezzo) {
                             $parameters = $clone_prezzo->toArray();
                             unset($parameters['id']);
                             unset($parameters['pr_listini_versioni_id']);
                             unset($parameters['pr_info_prodotti_id']);
                             $nuovo_prezzo = Model::cloneResult(new PrezziProdotti(), $parameters);
                             $nuovo_prezzo->pr_listini_versioni_id = $nuova_versione->id;
                             $nuovo_prezzo->pr_info_prodotti_id = $nuovo_info->id;
                             if ($nuovo_prezzo->save()) {
                                 $n_p++;
                             }
                         }
                     }
                 }
             }
         }
         $format = _('Listino clonato correttamente') . '<br>' . _('Versioni clonate : %s') . '<br>' . _('Prodotti clonati : %s') . '<br>' . _('Prezzi clonati : %s');
         return sprintf($format, $n_v, $n_i, $n_p);
     }
     return false;
 }