Ejemplo n.º 1
0
 /**
  * Asignamos un número al asiento.
  */
 public function new_numero()
 {
     $this->numero = 1;
     $sql = "SELECT MAX(" . $this->db->sql_to_int('numero') . ") as num FROM " . $this->table_name . " WHERE codejercicio = " . $this->var2str($this->codejercicio) . ";";
     $data = $this->db->select($sql);
     if ($data) {
         $this->numero = 1 + intval($data[0]['num']);
     }
     /// Nos guardamos la secuencia para dar compatibilidad con eneboo
     $secc = new \secuencia_contabilidad();
     $secc0 = $secc->get_by_params2($this->codejercicio, 'nasiento');
     if ($secc0) {
         if ($this->numero >= $secc0->valorout) {
             $secc0->valorout = 1 + $this->numero;
             $secc0->save();
         }
     }
 }
Ejemplo n.º 2
0
 public function new_numero()
 {
     $secc = new secuencia_contabilidad();
     $secc0 = $secc->get_by_params2($this->codejercicio, 'nasiento');
     if ($secc0) {
         $this->numero = $secc0->valorout;
         $secc0->valorout++;
         $secc0->save();
     }
     if (!$secc0 or $this->numero <= 1) {
         $this->numero = 1;
         $sql = "SELECT MAX(" . $this->db->sql_to_int('numero') . ") as num FROM " . $this->table_name . " WHERE codejercicio = " . $this->var2str($this->codejercicio) . ";";
         $num = $this->db->select($sql);
         if ($num) {
             $this->numero = 1 + intval($num[0]['num']);
         }
         if ($secc0) {
             $secc0->valorout = 1 + $this->numero;
             $secc0->save();
         }
     }
 }
Ejemplo n.º 3
0
 public function renumerar()
 {
     $secc = new secuencia_contabilidad();
     $ejercicio = new ejercicio();
     foreach ($ejercicio->all_abiertos() as $eje) {
         $secc0 = $secc->get_by_params2($eje->codejercicio, 'nasiento');
         $posicion = 0;
         $numero = 1;
         $sql = '';
         $continuar = TRUE;
         $consulta = "SELECT idasiento,numero,fecha FROM " . $this->table_name . " WHERE codejercicio = '" . $eje->codejercicio . "'\n            ORDER BY codejercicio ASC, fecha ASC, idasiento ASC";
         $asientos = $this->db->select_limit($consulta, 1000, $posicion);
         while ($asientos and $continuar) {
             foreach ($asientos as $col) {
                 if ($col['numero'] != $numero) {
                     $sql .= "UPDATE " . $this->table_name . " SET numero = '" . $numero . "' WHERE idasiento = '" . $col['idasiento'] . "'; ";
                 }
                 $numero++;
             }
             $posicion += 1000;
             if ($sql != '') {
                 if (!$this->db->exec($sql)) {
                     $this->new_error_msg("Se ha producido un error mientras se\n                     renumeraban los asientos del ejercicio " . $eje->codejercicio);
                     $continuar = FALSE;
                 }
                 $sql = '';
             }
             $asientos = $this->db->select_limit($consulta, 1000, $posicion);
         }
         $secc0->valorout = $numero;
         $secc0->save();
     }
     return $continuar;
 }