Beispiel #1
0
 public function migrate()
 {
     //busca o ultimo registro das OPs
     $op = new Op();
     $num = $op->lastNum();
     //verifica se essa OP está na lista
     $keys = array_keys($this->aOPs);
     if (!array_key_exists($num, $this->aOPs)) {
         $last = $keys[count($keys) - 1];
         if ($last <= $num) {
             return false;
         }
         //existem OPs maiores, mas não essa registrada na tabela
         //acretita-se nesse caso que o numero foi pulado
         //então recuar um a um até que o numero da chave seja
         //menor que o numero da OP
         //x+1 mostra o ponto de corte
         for ($x = count($keys) - 1; $x = 0; $x--) {
             if ($key[$x] <= $num) {
                 break;
             }
         }
     } else {
         $x = array_search($num, $keys);
     }
     //aqui estão as ops da lista que ainda não estão da tabela
     $aOps = array_slice($this->aOPs, $x + 1);
     foreach ($aOps as $data) {
         $aData = $this->extract($data);
         $op->set($aData);
         $op->save();
     }
 }