protected function private_core()
 {
     $this->asiento = new asiento();
     $anticipo = new anticipos_proveedor();
     if (isset($_GET['delete'])) {
         $asiento = $this->asiento->get($_GET['delete']);
         if ($asiento) {
             if ($asiento->delete()) {
                 $anticipo->modif_anticipo_idasiento($_GET['delete'], 0);
                 $this->new_message("Asiento eliminado correctamente.");
             } else {
                 $this->new_error_msg("¡Imposible eliminar el asiento!");
             }
         } else {
             $this->new_error_msg("¡Asiento no encontrado!");
         }
     } else {
         if (isset($_GET['renumerar'])) {
             if ($this->asiento->renumerar()) {
                 $this->new_message("Asientos renumerados.");
             }
         }
     }
     $this->offset = 0;
     if (isset($_GET['offset'])) {
         $this->offset = intval($_GET['offset']);
     }
     if (isset($_GET['descuadrados'])) {
         $this->resultados = $this->asiento->descuadrados();
     } else {
         if (isset($_GET['mayorizados'])) {
             $this->resultados = $this->asiento->all_mayorizados($this->offset);
         } else {
             if ($this->query) {
                 $this->resultados = $this->asiento->search($this->query, $this->offset);
             } else {
                 $this->resultados = $this->asiento->all_sin_mayorizar($this->offset);
             }
         }
     }
 }
 public function imprimir_anticipo($idanticipo)
 {
     $anticipo_ = new anticipos_proveedor();
     //		$anticipo_->idanticipo = $idanticipo;
     $anticipo = $anticipo_->get($idanticipo);
     $pdf_doc = new fs_pdf();
     $lineas_total = 0;
     $cant_lineas = 25;
     $linea_actual = 0;
     $pagina = 1;
     /////  Primer encabezado
     $pdf_doc->pdf->ezText("Página " . $pagina, 9, array('justification' => 'right'));
     $pdf_doc->pdf->ezText("<b>" . $this->empresa->nombre . "</b>", 16, array('justification' => 'left'));
     $pdf_doc->pdf->ezText("Fecha: " . $anticipo->fecha . "                ", 9, array('justification' => 'right'));
     $pdf_doc->pdf->ezText($this->empresa->direccion, 10, array('justification' => 'left'));
     $pdf_doc->pdf->ezText("\n", 10);
     $pdf_doc->pdf->ezText("<b>Anticipos</b>", 16, array('justification' => 'left'));
     $pdf_doc->pdf->ezText("\n", 10);
     $pdf_doc->pdf->ezText("<b>Proveedor:  " . $anticipo->nombreproveedor . "</b>", 10, array('justification' => 'left'));
     $pdf_doc->pdf->ezText("<b> Concepto:  " . $anticipo->concepto . "</b>", 10, array('justification' => 'left'));
     $pdf_doc->pdf->ezText("\n", 10);
     $pdf_doc->pdf->ezText("<b>Anticipo</b>", 12, array('justification' => 'left'));
     $pdf_doc->new_table();
     $pdf_doc->add_table_header(array('fecha' => '<b>Fecha </b>', 'concepto' => '<b>Concepto</b>', 'tipo' => '<b>Tipo</b>', 'detalle' => '<b>Detalle</b>', 'importe' => '<b>Importe </b>'));
     $pdf_doc->add_table_row(array('fecha' => $anticipo->fecha, 'concepto' => $anticipo->concepto, 'tipo' => $anticipo->tipo, 'detalle' => $anticipo->detalle, 'importe' => $anticipo->importe));
     $pdf_doc->save_table(array('cols' => array('campo1' => array('justification' => 'left'), 'dato1' => array('justification' => 'left'), 'campo2' => array('justification' => 'left'), 'dato2' => array('justification' => 'left')), 'showLines' => 3, 'width' => 520, 'shaded' => 1));
     $pdf_doc->set_y(560);
     $pdf_doc->pdf->ezText('FIRMA :  _________________________________________________  DNI: _________________________', 8, array('justification' => 'left'));
     $pdf_doc->pdf->ezText("\n", 10);
     $pdf_doc->pdf->ezText('ACLARACIÓN :  _________________________________________________ ', 8, array('justification' => 'left'));
     $pdf_doc->pdf->ezText("\n", 10);
     $pdf_doc->pdf->ezText('DOMICILIO :  ___________________________________________________ ', 8, array('justification' => 'left'));
     $pdf_doc->set_y(440);
     $pdf_doc->pdf->ezText('FIRMA RESPONSABLE :  ___________________________________________________ ', 8, array('justification' => 'left'));
     $pdf_doc->show();
 }
 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;
 }