public function generar_asiento_faltante(&$faltante, $ejercicio) { $ok = FALSE; $this->asiento = FALSE; $tipo = $faltante->estado; $conductor0 = new distribucion_conductores(); $subcuenta_conductor = FALSE; $concepto = $tipo == 'pendiente' ? "Faltante " : "Pago Faltante "; $conductor = $conductor0->get($faltante->idempresa, $faltante->conductor); if ($conductor) { $subcuenta_conductor = $this->get_subcuenta($ejercicio); } if (!$subcuenta_conductor) { $eje0 = $this->ejercicio->get($ejercicio); return "No se ha podido generar una subcuenta para el conductor <a href='" . $eje0->url() . "'>¿Has importado los datos del ejercicio?</a>"; if (!$this->soloasiento) { return "Aun así el <a href='" . $faltante->url() . "'>faltante</a> se ha generado correctamente, pero sin asiento contable."; } } else { $asiento = new asiento(); $asiento->codejercicio = $ejercicio; $asiento->concepto = $concepto . $faltante->idrecibo . " - " . $faltante->nombreconductor; $asiento->documento = $faltante->idrecibo; $asiento->editable = FALSE; $asiento->fecha = $faltante->fecha; $asiento->importe = $faltante->importe; $asiento->tipodocumento = $concepto . ' Liquidacion'; if ($asiento->save()) { $asiento_correcto = TRUE; $subcuenta = new subcuenta(); $partida0 = new partida(); $partida0->idasiento = $asiento->idasiento; $partida0->concepto = $asiento->concepto; $partida0->idsubcuenta = $subcuenta_conductor->idsubcuenta; $partida0->codsubcuenta = $subcuenta_conductor->codsubcuenta; if ($tipo == 'pendiente') { $partida0->debe = $faltante->importe; } elseif ($tipo == 'pagado') { $partida0->haber = $faltante->importe; } $partida0->coddivisa = $faltante->coddivisa; $partida0->tasaconv = 1; $partida0->codserie = NULL; if (!$partida0->save()) { $asiento_correcto = FALSE; } if ($asiento_correcto) { $faltante->idasiento = $asiento->idasiento; $faltante->idsubcuenta = $partida0->idsubcuenta; $faltante->codcuenta = $partida0->codsubcuenta; if ($faltante->save()) { $ok = TRUE; $this->asiento = $asiento; } else { return "¡Imposible añadir el asiento al faltante!"; } } else { if ($asiento->delete()) { return "El asiento se ha borrado."; } else { return "¡Imposible borrar el asiento!"; } } } else { return "¡Imposible guardar el asiento!"; } } return $ok; }
private function buscar_conductor() { /// desactivamos la plantilla HTML $this->template = FALSE; $con0 = new distribucion_conductores(); $json = array(); foreach ($con0->search($this->empresa->id, $_REQUEST['buscar_conductor']) as $con) { $json[] = array('value' => $con->nombre, 'data' => $con->licencia); } header('Content-Type: application/json'); echo json_encode(array('query' => $_REQUEST['buscar_conductor'], 'suggestions' => $json)); }