protected function private_core()
 {
     /// ¿El usuario tiene permiso para eliminar en esta página?
     $this->allow_delete = $this->user->allow_delete_on(__CLASS__);
     $this->divisa = new divisa();
     $subcuenta = new subcuenta();
     $this->subcuenta = FALSE;
     if (isset($_GET['id'])) {
         $this->subcuenta = $subcuenta->get($_GET['id']);
     }
     if ($this->subcuenta) {
         /// configuramos la página previa
         $this->ppage = $this->page->get('contabilidad_cuenta');
         $this->ppage->title = 'Cuenta: ' . $this->subcuenta->codcuenta;
         $this->ppage->extra_url = '&id=' . $this->subcuenta->idcuenta;
         $this->page->title = 'Subcuenta: ' . $this->subcuenta->codsubcuenta;
         $this->cuenta = $this->subcuenta->get_cuenta();
         $this->ejercicio = $this->subcuenta->get_ejercicio();
         $this->offset = 0;
         if (isset($_GET['offset'])) {
             $this->offset = intval($_GET['offset']);
         }
         $this->resultados = $this->subcuenta->get_partidas($this->offset);
         if (isset($_POST['puntear'])) {
             $this->puntear();
         }
         if (isset($_GET['genlm'])) {
             /// generamos el PDF del libro mayor si no existe
             $libro_mayor = new libro_mayor();
             $libro_mayor->libro_mayor($this->subcuenta);
             if (file_exists('tmp/' . FS_TMP_NAME . 'libro_mayor/' . $this->subcuenta->idsubcuenta . '.pdf')) {
                 header('Location: tmp/' . FS_TMP_NAME . 'libro_mayor/' . $this->subcuenta->idsubcuenta . '.pdf');
             } else {
                 $this->new_error_msg('Error al generar el libro mayor.');
             }
         }
         $this->pdf_libromayor = FALSE;
         if (file_exists('tmp/' . FS_TMP_NAME . 'libro_mayor/' . $this->subcuenta->idsubcuenta . '.pdf')) {
             $this->pdf_libromayor = 'tmp/' . FS_TMP_NAME . 'libro_mayor/' . $this->subcuenta->idsubcuenta . '.pdf';
         }
         /// comprobamos la subcuenta
         $this->subcuenta->test();
     } else {
         $this->new_error_msg("Subcuenta no encontrada.");
         $this->ppage = $this->page->get('contabilidad_cuentas');
     }
 }
 protected function process()
 {
     $this->divisa = new divisa();
     $subcuenta = new subcuenta();
     $this->subcuenta = FALSE;
     if (isset($_GET['id'])) {
         $this->subcuenta = $subcuenta->get($_GET['id']);
     }
     if ($this->subcuenta) {
         /// configuramos la página previa
         $this->ppage = $this->page->get('contabilidad_cuenta');
         $this->ppage->title = 'Cuenta: ' . $this->subcuenta->codcuenta;
         $this->ppage->extra_url = '&id=' . $this->subcuenta->idcuenta;
         $this->page->title = 'Subcuenta: ' . $this->subcuenta->codsubcuenta;
         $this->cuenta = $this->subcuenta->get_cuenta();
         $this->ejercicio = $this->subcuenta->get_ejercicio();
         $this->offset = 0;
         if (isset($_GET['offset'])) {
             $this->offset = intval($_GET['offset']);
         }
         $this->resultados = $this->subcuenta->get_partidas($this->offset);
         if (isset($_POST['puntear'])) {
             $this->puntear();
         }
         if (isset($_GET['genlm'])) {
             /// generamos el PDF del libro mayor si no existe
             $libro_mayor = new libro_mayor();
             $libro_mayor->libro_mayor($this->subcuenta);
         }
         if (file_exists('tmp/' . FS_TMP_NAME . 'libro_mayor/' . $this->subcuenta->idsubcuenta . '.pdf')) {
             $this->buttons[] = new fs_button_img('b_libro_mayor', 'Libro mayor', 'print.png', 'tmp/' . FS_TMP_NAME . 'libro_mayor/' . $this->subcuenta->idsubcuenta . '.pdf', FALSE, TRUE);
         } else {
             $this->buttons[] = new fs_button('b_libro_mayor', 'Generar libro mayor', $this->url() . '&genlm=TRUE');
         }
         $this->buttons[] = new fs_button_img('b_eliminar', 'Eliminar', 'trash.png', '#', TRUE);
         /// comprobamos la subcuenta
         $this->subcuenta->test();
     } else {
         $this->new_error_msg("Subcuenta no encontrada.");
         $this->ppage = $this->page->get('contabilidad_cuentas');
     }
 }
 private function get_lineas_asiento()
 {
     $lineas = $this->asiento->get_partidas();
     $subc = new subcuenta();
     foreach ($lineas as $i => $lin) {
         $subcuenta = $subc->get($lin->idsubcuenta);
         if ($subcuenta) {
             $lineas[$i]->alias = $subcuenta->alias;
             $lineas[$i]->desc_subcuenta = $subcuenta->descripcion;
             $lineas[$i]->saldo = $subcuenta->saldo;
         }
     }
     return $lineas;
 }
 protected function private_core()
 {
     /// ¿El usuario tiene permiso para eliminar en esta página?
     $this->allow_delete = $this->user->allow_delete_on(__CLASS__);
     $this->cuenta = FALSE;
     if (isset($_POST['nsubcuenta'])) {
         $subc0 = new subcuenta();
         $subc0->codcuenta = $_POST['codcuenta'];
         $subc0->codejercicio = $_POST['ejercicio'];
         $subc0->codsubcuenta = $_POST['nsubcuenta'];
         $subc0->descripcion = $_POST['descripcion'];
         $subc0->idcuenta = $_POST['idcuenta'];
         $subc0->alias = $_POST['alias'];
         if ($subc0->save()) {
             header('Location: ' . $subc0->url());
         } else {
             $this->new_error_msg('Error al crear la subcuenta.');
         }
         $this->cuenta = $subc0->get_cuenta();
     } else {
         if (isset($_GET['deletes'])) {
             $subc0 = new subcuenta();
             $subc1 = $subc0->get($_GET['deletes']);
             if ($subc1) {
                 $this->cuenta = $subc1->get_cuenta();
                 if ($subc1->delete()) {
                     $this->new_message('Subcuenta eliminada correctamente.');
                 } else {
                     $this->new_error_msg('Error al eliminar la subcuenta.');
                 }
             } else {
                 $this->new_error_msg('Subcuenta no encontrada.');
             }
         } else {
             if (isset($_GET['id'])) {
                 $cuenta = new cuenta();
                 $this->cuenta = $cuenta->get($_GET['id']);
                 if ($this->cuenta and isset($_POST['descripcion'])) {
                     $this->cuenta->descripcion = $_POST['descripcion'];
                     if ($_POST['idcuentaesp'] == '---') {
                         $this->cuenta->idcuentaesp = NULL;
                     } else {
                         $this->cuenta->idcuentaesp = $_POST['idcuentaesp'];
                     }
                     if ($this->cuenta->save()) {
                         $this->new_message('Cuenta modificada correctamente.');
                     } else {
                         $this->new_error_msg('Error al modificar la cuenta.');
                     }
                 }
             }
         }
     }
     if ($this->cuenta) {
         /// configuramos la página previa
         $this->ppage = $this->page->get('contabilidad_epigrafes');
         if ($this->ppage) {
             $this->ppage->title = 'Rubro: ' . $this->cuenta->codepigrafe;
             $this->ppage->extra_url = '&epi=' . $this->cuenta->idepigrafe;
         }
         $this->page->title = 'Cuenta: ' . $this->cuenta->codcuenta;
         $this->ejercicio = $this->cuenta->get_ejercicio();
         $this->nuevo_codsubcuenta = sprintf('%-0' . $this->ejercicio->longsubcuenta . 's', $this->cuenta->codcuenta);
     } else {
         $this->new_error_msg("Cuenta no encontrada.");
         $this->ppage = $this->page->get('contabilidad_cuentas');
     }
 }
예제 #5
0
 public function get_contrapartida()
 {
     if (is_null($this->idcontrapartida)) {
         return FALSE;
     } else {
         $subc = new subcuenta();
         return $subc->get($this->idcontrapartida);
     }
 }
 public function get_subcuenta()
 {
     $subc = new \subcuenta();
     return $subc->get($this->idsubcuenta);
 }
 protected function private_core()
 {
     $this->tipo = FALSE;
     $this->subcuenta = FALSE;
     $this->cuenta = new cuenta();
     /// seleccionamos el ejercicio
     $ejercicio = new ejercicio();
     $eje0 = $ejercicio->get_by_fecha(date('d-m-Y'));
     if (isset($_POST['codejercicio'])) {
         $this->codejercicio = $_POST['codejercicio'];
     } else {
         if ($eje0) {
             $this->codejercicio = $eje0->codejercicio;
         } else {
             $this->codejercicio = $this->default_items->codejercicio();
         }
     }
     if (isset($_POST['ejercicio']) and isset($_POST['query'])) {
         $this->new_search();
     } else {
         if (isset($_REQUEST['cli'])) {
             $this->tipo = 'cli';
             $cliente = new cliente();
             $this->cliente = $cliente->get($_REQUEST['cli']);
             if ($this->cliente) {
                 $subcuenta_cliente = new subcuenta_cliente();
                 if (isset($_GET['delete_sca'])) {
                     $aux_sca = $subcuenta_cliente->get2($_GET['delete_sca']);
                     if ($aux_sca) {
                         if ($aux_sca->delete()) {
                             $this->new_message('El cliente ya no está asocuado a esa subcuenta.');
                         } else {
                             $this->new_error_msg('Imposible quitar la subcuenta.');
                         }
                     } else {
                         $this->new_error_msg('Relación con la subcuenta no encontrada.');
                     }
                 } else {
                     if (isset($_GET['idsc'])) {
                         $this->subcuenta_a = $subcuenta_cliente->get($_GET['cli'], $_GET['idsc']);
                         if ($this->subcuenta_a) {
                             $this->subcuenta = $this->subcuenta_a->get_subcuenta();
                             $this->codejercicio = $this->subcuenta_a->codejercicio;
                         }
                     } else {
                         if (isset($_POST['idsc'])) {
                             $this->subcuenta_a = $subcuenta_cliente->get($_POST['cli'], $_POST['idsc']);
                             if ($this->subcuenta_a) {
                                 $subc = new subcuenta();
                                 $subc0 = $subc->get($_POST['idsc2']);
                                 if ($subc0) {
                                     $this->subcuenta_a->idsubcuenta = $subc0->idsubcuenta;
                                     $this->subcuenta_a->codsubcuenta = $subc0->codsubcuenta;
                                     $this->subcuenta_a->codejercicio = $subc0->codejercicio;
                                     if ($this->subcuenta_a->save()) {
                                         $this->new_message('Datos guardados correctamente.');
                                     } else {
                                         $this->new_error_msg('Imposible asignar la subcuenta al cliente.');
                                     }
                                     $this->subcuenta = $subc0;
                                 } else {
                                     $this->new_error_msg('Subcuenta no encontrada.');
                                     $this->subcuenta = $this->subcuenta_a->get_subcuenta();
                                 }
                             }
                         } else {
                             if (isset($_POST['idsc2'])) {
                                 $subc = new subcuenta();
                                 $subc0 = $subc->get($_POST['idsc2']);
                                 if ($subc0) {
                                     $subcuenta_cliente->codcliente = $this->cliente->codcliente;
                                     $subcuenta_cliente->idsubcuenta = $subc0->idsubcuenta;
                                     $subcuenta_cliente->codsubcuenta = $subc0->codsubcuenta;
                                     $subcuenta_cliente->codejercicio = $subc0->codejercicio;
                                     if ($subcuenta_cliente->save()) {
                                         $this->new_message('Datos guardados correctamente.');
                                     } else {
                                         $this->new_error_msg('Imposible asignar la subcuenta al cliente.');
                                     }
                                     $this->subcuenta = $subc0;
                                 } else {
                                     $this->new_error_msg('Subcuenta no encontrada.');
                                 }
                             } else {
                                 if (isset($_POST['cuenta'])) {
                                     $cuenta0 = $this->cuenta->get($_POST['cuenta']);
                                     if ($cuenta0) {
                                         $subc0 = new subcuenta();
                                         $subc0->codcuenta = $cuenta0->codcuenta;
                                         $subc0->coddivisa = $this->default_items->coddivisa();
                                         $subc0->codejercicio = $cuenta0->codejercicio;
                                         $subc0->codsubcuenta = $_POST['codsubcuenta'];
                                         $subc0->descripcion = $this->cliente->nombre;
                                         $subc0->idcuenta = $cuenta0->idcuenta;
                                         if ($subc0->save()) {
                                             $subcuenta_cliente->codcliente = $this->cliente->codcliente;
                                             $subcuenta_cliente->idsubcuenta = $subc0->idsubcuenta;
                                             $subcuenta_cliente->codsubcuenta = $subc0->codsubcuenta;
                                             $subcuenta_cliente->codejercicio = $subc0->codejercicio;
                                             if ($subcuenta_cliente->save()) {
                                                 $this->new_message('Datos guardados correctamente.');
                                             } else {
                                                 $this->new_error_msg('Imposible asignar la subcuenta al cliente.');
                                             }
                                             $this->subcuenta = $subc0;
                                         } else {
                                             $this->new_error_msg('Imposible crear la sucuenta.');
                                         }
                                     } else {
                                         $this->new_error_msg('Cuenta no encontrada.');
                                     }
                                 } else {
                                     foreach ($subcuenta_cliente->all_from_cliente($_REQUEST['cli']) as $sca) {
                                         if ($sca->codejercicio == $this->codejercicio) {
                                             $this->subcuenta_a = $sca;
                                             $this->subcuenta = $sca->get_subcuenta();
                                             break;
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         } else {
             if (isset($_REQUEST['pro'])) {
                 $this->tipo = 'pro';
                 $proveedor = new proveedor();
                 $this->proveedor = $proveedor->get($_REQUEST['pro']);
                 if ($this->proveedor) {
                     $subcuenta_proveedor = new subcuenta_proveedor();
                     if (isset($_GET['delete_sca'])) {
                         $aux_sca = $subcuenta_proveedor->get2($_GET['delete_sca']);
                         if ($aux_sca) {
                             if ($aux_sca->delete()) {
                                 $this->new_message('El proveedor ya no está asocuado a esa subcuenta.');
                             } else {
                                 $this->new_error_msg('Imposible quitar la subcuenta.');
                             }
                         } else {
                             $this->new_error_msg('Relación con la subcuenta no encontrada.');
                         }
                     } else {
                         if (isset($_GET['idsc'])) {
                             $this->subcuenta_a = $subcuenta_proveedor->get($_GET['pro'], $_GET['idsc']);
                             if ($this->subcuenta_a) {
                                 $this->subcuenta = $this->subcuenta_a->get_subcuenta();
                                 $this->codejercicio = $this->subcuenta_a->codejercicio;
                             }
                         } else {
                             if (isset($_POST['idsc'])) {
                                 $this->subcuenta_a = $subcuenta_proveedor->get($_POST['pro'], $_POST['idsc']);
                                 if ($this->subcuenta_a) {
                                     $subc = new subcuenta();
                                     $subc0 = $subc->get($_POST['idsc2']);
                                     if ($subc0) {
                                         $this->subcuenta_a->idsubcuenta = $subc0->idsubcuenta;
                                         $this->subcuenta_a->codsubcuenta = $subc0->codsubcuenta;
                                         $this->subcuenta_a->codejercicio = $subc0->codejercicio;
                                         if ($this->subcuenta_a->save()) {
                                             $this->new_message('Datos guardados correctamente.');
                                         } else {
                                             $this->new_error_msg('Imposible asignar la subcuenta al proveedor.');
                                         }
                                         $this->subcuenta = $subc0;
                                     } else {
                                         $this->new_error_msg('Subcuenta no encontrada.');
                                         $this->subcuenta = $this->subcuenta_a->get_subcuenta();
                                     }
                                 }
                             } else {
                                 if (isset($_POST['idsc2'])) {
                                     $subc = new subcuenta();
                                     $subc0 = $subc->get($_POST['idsc2']);
                                     if ($subc0) {
                                         $subcuenta_proveedor->codproveedor = $this->proveedor->codproveedor;
                                         $subcuenta_proveedor->idsubcuenta = $subc0->idsubcuenta;
                                         $subcuenta_proveedor->codsubcuenta = $subc0->codsubcuenta;
                                         $subcuenta_proveedor->codejercicio = $subc0->codejercicio;
                                         if ($subcuenta_proveedor->save()) {
                                             $this->new_message('Datos guardados correctamente.');
                                         } else {
                                             $this->new_error_msg('Imposible asignar la subcuenta al cliente.');
                                         }
                                         $this->subcuenta = $subc0;
                                     } else {
                                         $this->new_error_msg('Subcuenta no encontrada.');
                                     }
                                 } else {
                                     if (isset($_POST['cuenta'])) {
                                         $cuenta0 = $this->cuenta->get($_POST['cuenta']);
                                         if ($cuenta0) {
                                             $subc0 = new subcuenta();
                                             $subc0->codcuenta = $cuenta0->codcuenta;
                                             $subc0->coddivisa = $this->default_items->coddivisa();
                                             $subc0->codejercicio = $cuenta0->codejercicio;
                                             $subc0->codsubcuenta = $_POST['codsubcuenta'];
                                             $subc0->descripcion = $this->proveedor->nombre;
                                             $subc0->idcuenta = $cuenta0->idcuenta;
                                             if ($subc0->save()) {
                                                 $subcuenta_proveedor->codproveedor = $this->proveedor->codproveedor;
                                                 $subcuenta_proveedor->idsubcuenta = $subc0->idsubcuenta;
                                                 $subcuenta_proveedor->codsubcuenta = $subc0->codsubcuenta;
                                                 $subcuenta_proveedor->codejercicio = $subc0->codejercicio;
                                                 if ($subcuenta_proveedor->save()) {
                                                     $this->new_message('Datos guardados correctamente.');
                                                 } else {
                                                     $this->new_error_msg('Imposible asignar la subcuenta al proveedor.');
                                                 }
                                                 $this->subcuenta = $subc0;
                                             } else {
                                                 $this->new_error_msg('Imposible crear la sucuenta.');
                                             }
                                         } else {
                                             $this->new_error_msg('Cuenta no encontrada.');
                                         }
                                     } else {
                                         foreach ($subcuenta_proveedor->all_from_proveedor($_REQUEST['pro']) as $sca) {
                                             if ($sca->codejercicio == $this->codejercicio) {
                                                 $this->subcuenta_a = $sca;
                                                 $this->subcuenta = $sca->get_subcuenta();
                                                 break;
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }
 private function contenido()
 {
     $subcuenta = new subcuenta();
     $this->subcuenta = FALSE;
     $this->subcuenta = $subcuenta->get($this->idsubcuenta);
     $this->ejercicio = $this->subcuenta->get_ejercicio();
     if ($this->subcuenta) {
         /// configuramos la página previa
         $this->ppage = $this->page->get('contabilidad_cuenta');
         $this->ppage->title = 'Cuenta: ' . $this->subcuenta->codcuenta;
         $this->ppage->extra_url = '&id=' . $this->subcuenta->idcuenta;
         ////////////////////////////////
         $this->offset = 0;
         if (isset($_GET['offset'])) {
             $this->offset = intval($_GET['offset']);
         }
         $this->resultados = $this->subcuenta->get_partidas($this->offset);
         $this->saldo_anterior = $this->subcuenta->get_partidas_saldo_anterior();
         $this->mes = substr($this->subcuenta->get_partidas_mes($this->offset), 5, 2);
         $this->periodo = $this->subcuenta->get_nom_mes($this->mes) . '  ' . $this->ejercicio->codejercicio;
         $this->periodo_seleccionado = $this->subcuenta->get_partidas_libros($this->mes, $this->offset);
         $this->count_periodo_selecc = count($this->subcuenta->get_partidas_libros_total($this->mes));
         $this->periodo_generado = $this->subcuenta->get_partidas_libros_ver($this->mes, $this->offset);
     }
 }
 protected function process()
 {
     $this->cuenta = FALSE;
     if (isset($_POST['nsubcuenta'])) {
         $subc0 = new subcuenta();
         $subc0->codcuenta = $_POST['codcuenta'];
         $subc0->codejercicio = $_POST['ejercicio'];
         $subc0->codsubcuenta = $_POST['nsubcuenta'];
         $subc0->descripcion = $_POST['descripcion'];
         $subc0->idcuenta = $_POST['idcuenta'];
         if ($subc0->save()) {
             header('Location: ' . $subc0->url());
         } else {
             $this->new_error_msg('Error al crear la subcuenta.');
         }
         $this->cuenta = $subc0->get_cuenta();
     } else {
         if (isset($_GET['deletes'])) {
             $subc0 = new subcuenta();
             $subc1 = $subc0->get($_GET['deletes']);
             if ($subc1) {
                 $this->cuenta = $subc1->get_cuenta();
                 if ($subc1->delete()) {
                     $this->new_message('Subcuenta eliminada correctamente.');
                 } else {
                     $this->new_error_msg('Error al eliminar la subcuenta.');
                 }
             } else {
                 $this->new_error_msg('Subcuenta no encontrada.');
             }
         } else {
             if (isset($_GET['id'])) {
                 $cuenta = new cuenta();
                 $this->cuenta = $cuenta->get($_GET['id']);
                 if ($this->cuenta and isset($_POST['descripcion'])) {
                     $this->cuenta->descripcion = $_POST['descripcion'];
                     if ($_POST['idcuentaesp'] == '---') {
                         $this->cuenta->idcuentaesp = NULL;
                     } else {
                         $this->cuenta->idcuentaesp = $_POST['idcuentaesp'];
                     }
                     if ($this->cuenta->save()) {
                         $this->new_message('Cuenta modificada correctamente.');
                     } else {
                         $this->new_error_msg('Error al modificar la cuenta.');
                     }
                 }
             }
         }
     }
     if ($this->cuenta) {
         /// configuramos la página previa
         $this->ppage = $this->page->get('contabilidad_epigrafes');
         if ($this->ppage) {
             $this->ppage->title = 'Epígrafe: ' . $this->cuenta->codepigrafe;
             $this->ppage->extra_url = '&epi=' . $this->cuenta->idepigrafe;
         }
         $this->page->title = 'Cuenta: ' . $this->cuenta->codcuenta;
         $this->ejercicio = $this->cuenta->get_ejercicio();
         $this->buttons[] = new fs_button_img('b_eliminar', 'Eliminar', 'trash.png', '#', TRUE);
     } else {
         $this->new_error_msg("Cuenta no encontrada.");
         $this->ppage = $this->page->get('contabilidad_cuentas');
     }
 }
 public function asiento_pago_anticipo($id)
 {
     $varanticipo = new anticipos_proveedor();
     $anticipo = $varanticipo->get($id);
     //	  $varorden = new orden_prov();
     ///	  $orden =  $varorden->get($id);
     //	  $varanticipo = new anticipos_proveedor();
     //	  $anticipo =  $varanticipo->get($id);
     $ok = FALSE;
     $this->asiento = FALSE;
     $proveedor0 = new proveedor();
     $subcuenta_prov = FALSE;
     $proveedor = $proveedor0->get($anticipo->codproveedor);
     if ($proveedor) {
         $subcuenta_prov = $proveedor->get_subcuenta($anticipo->codejercicio);
     }
     if (!$subcuenta_prov) {
         $eje0 = $this->ejercicio->get($anticipo->codejercicio);
         $this->new_message("No se ha podido generar una subcuenta para el proveedor ");
         if (!$this->soloasiento) {
             $this->new_message("Aun así la <a href='" . $anticipo->url() . "'>anticipo</a> se ha generado correctamente,\n          pero sin asiento contable.");
         }
     } else {
         $asiento = new asiento();
         $asiento->codejercicio = $anticipo->codejercicio;
         //         $asiento->concepto = "Orden de pago ".$orden->codigo." - ".$orden->nombre;
         //         $asiento->documento = $orden->codigo;
         $asiento->concepto = "Anticipo " . $anticipo->fecha . " - " . $anticipo->codproveedor;
         $asiento->documento = $anticipo->fecha;
         $asiento->concepto = "Anticipo  - " . $anticipo->codproveedor;
         $asiento->editable = TRUE;
         $asiento->fecha = $anticipo->fecha;
         $asiento->importe = $anticipo->importe;
         $asiento->tipodocumento = "Egreso proveedor";
         if ($asiento->save()) {
             $asiento_correcto = TRUE;
             $subcuenta = new subcuenta();
             $partida0 = new partida();
             $subc = $subcuenta->get($anticipo->idsubcuenta);
             $partida0->idasiento = $asiento->idasiento;
             $partida0->concepto = $asiento->concepto;
             $partida0->idsubcuenta = $subc->idsubcuenta;
             $partida0->codsubcuenta = $subc->codsubcuenta;
             ///////////  Proveedor  debe			/////////
             $partida0->debe = $anticipo->importe;
             $partida0->coddivisa = 0;
             $partida0->tasaconv = 0;
             $partida0->codserie = 0;
             if (!$partida0->save()) {
                 $asiento_correcto = FALSE;
                 $this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida0->codsubcuenta . "!");
             }
             $subcuenta_compras = $subcuenta->get_cuentaesp('CAJA', $asiento->codejercicio);
             if ($subcuenta_compras and $asiento_correcto) {
                 $partida2 = new partida();
                 $partida2->idasiento = $asiento->idasiento;
                 $partida2->concepto = $asiento->concepto;
                 $partida2->idsubcuenta = $subcuenta_compras->idsubcuenta;
                 $partida2->codsubcuenta = $subcuenta_compras->codsubcuenta;
                 ///////// Proveedor compra haber  ////////////////////////
                 $partida2->haber = $anticipo->importe;
                 $partida2->coddivisa = 0;
                 $partida2->tasaconv = 0;
                 $partida2->codserie = 0;
                 if (!$partida2->save()) {
                     $asiento_correcto = FALSE;
                     $this->new_error_msg("¡Imposible generar la partida para la subcuenta " . $partida2->codsubcuenta . "!");
                 }
             }
             if ($asiento_correcto) {
                 $anticipo->idasiento = $asiento->idasiento;
                 if ($anticipo->save()) {
                     $ok = TRUE;
                     $this->asiento = $asiento;
                 } else {
                     $this->new_error_msg("¡Imposible añadir el asiento a la factura!");
                 }
             } else {
                 if ($asiento->delete()) {
                     $this->new_message("El asiento se ha borrado.");
                 } else {
                     $this->new_error_msg("¡Imposible borrar el asiento!");
                 }
             }
         }
     }
     return $ok;
 }