/** * Borra una factura emitida, sus líneas, los posibles recibos * y marca el/los albaranes y lineas de albaranres asociados como no facturados * Siempre que no esté traspasa a contabilidad (Asiento=0) * * @return boolean */ public function erase() { if ($this->Asiento == 0) { if ($this->borraVctos()) { if ($this->borraLineas()) { // Actualiza la cabecera del albaran $albaranes = new AlbaranesCab(); $albaranes->queryUpdate(array("IDFactura" => 0, "IDEstado" => 2), "IDFactura='{$this->IDFactura}'"); unset($albaranes); // Borrar la cabecera de la factura parent::erase(); } } } else { $this->_errores[] = "No se puede borrar. Está traspasada a contabilidad"; } return count($this->_errores) == 0; }
/** * Realiza el cambio de cliente en la factura, albaranes y recibos */ private function cambiarCliente() { $ok = false; // Cambiar factura $femitidas = new FemitidasCab(); $filtro = "NumeroFactura='{$this->request['numeroFactura']}' AND IDCliente='{$this->request['idClienteAnterior']}'"; $okFactura = $femitidas->queryUpdate(array("IDCliente" => $this->request['idClienteNuevo']), $filtro); $this->values['errores'] = $femitidas->getErrores(); if ($okFactura) { $this->values['mensaje'][] = "Se ha cambiado " . $okFactura . " factura."; // Cambiar albaran/es $albaranes = new AlbaranesCab(); $filtro = "IDFactura='{$this->request['idFactura']}' AND IDCliente='{$this->request['idClienteAnterior']}'"; $nAlbaranes = $albaranes->queryUpdate(array("IDCliente" => $this->request['idClienteNuevo']), $filtro); $this->values['errores'] = $albaranes->getErrores(); $this->values['mensaje'][] = "Se han cambiado " . $nAlbaranes . " albaranes."; // Cambiar recibos $recibos = new RecibosClientes(); $filtro = "IDFactura='{$this->request['idFactura']}' AND IDCliente='{$this->request['idClienteAnterior']}'"; $nRecibos = $recibos->queryUpdate(array("IDCliente" => $this->request['idClienteNuevo']), $filtro); $this->values['errores'] = $recibos->getErrores(); $this->values['mensaje'][] = "Se han cambiado " . $nRecibos . " recibos."; } }