Exemplo n.º 1
0
 /**
  * Devuelve el ejercicio para la fecha indicada.
  * Si no existe, lo crea.
  */
 public function get_by_fecha($fecha, $solo_abierto = TRUE, $crear = TRUE)
 {
     $sql = "SELECT * FROM " . $this->table_name . " WHERE fechainicio <= " . $this->var2str($fecha) . " AND fechafin >= " . $this->var2str($fecha) . ";";
     $data = $this->db->select($sql);
     if ($data) {
         $eje = new ejercicio($data[0]);
         if ($eje->abierto() or !$solo_abierto) {
             return $eje;
         } else {
             return FALSE;
         }
     } else {
         if ($crear) {
             $eje = new ejercicio();
             $eje->codejercicio = $eje->get_new_codigo(Date('Y', strtotime($fecha)));
             $eje->nombre = Date('Y', strtotime($fecha));
             $eje->fechainicio = Date('1-1-Y', strtotime($fecha));
             $eje->fechafin = Date('31-12-Y', strtotime($fecha));
             if (strtotime($fecha) < 1) {
                 $this->new_error_msg("Fecha no válida: " . $fecha);
             } else {
                 if ($eje->save()) {
                     return $eje;
                 } else {
                     return FALSE;
                 }
             }
         } else {
             return FALSE;
         }
     }
 }
Exemplo n.º 2
0
 /**
  * 
  * @param recibo_cliente $recibo
  * @param pago_recibo_cliente $pago
  * @param ejercicio $ejercicio
  * @param subcuenta $subcli
  * @return type
  */
 private function nuevo_asiento_pago(&$recibo, &$pago, &$ejercicio, &$subcli)
 {
     $asiento = new asiento();
     $asiento->fecha = $pago->fecha;
     $asiento->codejercicio = $ejercicio->codejercicio;
     $asiento->editable = FALSE;
     $asiento->importe = $recibo->importe;
     if ($pago->tipo == 'Pago') {
         $asiento->concepto = 'Cobro recibo ' . $recibo->codigo . ' - ' . $recibo->nombrecliente;
     } else {
         $asiento->concepto = $pago->tipo . ' recibo ' . $recibo->codigo . ' - ' . $recibo->nombrecliente;
     }
     if (!$ejercicio->abierto()) {
         $this->new_error_msg('El ejercicio ' . $ejercicio->codejercicio . ' está cerrado.');
     } else {
         if ($asiento->save()) {
             $partida1 = new partida();
             $partida1->idasiento = $asiento->idasiento;
             $partida1->concepto = $asiento->concepto;
             $partida1->idsubcuenta = $subcli->idsubcuenta;
             $partida1->codsubcuenta = $subcli->codsubcuenta;
             $partida1->haber = $recibo->importe;
             $partida1->coddivisa = $recibo->coddivisa;
             $partida1->tasaconv = $recibo->tasaconv;
             $partida1->codserie = $recibo->codserie;
             $partida1->save();
             $partida2 = new partida();
             $partida2->idasiento = $asiento->idasiento;
             $partida2->concepto = $asiento->concepto;
             $partida2->idsubcuenta = $pago->idsubcuenta;
             $partida2->codsubcuenta = $pago->codsubcuenta;
             $partida2->debe = $recibo->importe;
             $partida2->coddivisa = $recibo->coddivisa;
             $partida2->tasaconv = $recibo->tasaconv;
             $partida2->codserie = $recibo->codserie;
             $partida2->save();
         } else {
             $this->new_error_msg('Error al guardar el asiento.');
         }
     }
     return $asiento->idasiento;
 }