Exemplo n.º 1
0
 protected function private_core()
 {
     $this->share_extensions();
     if (isset($_GET['opcion'])) {
         if ($_GET['opcion'] == 'moneda') {
             $div0 = new divisa();
             $divisa = $div0->get('PEN');
             if (!$divisa) {
                 $div0->coddivisa = 'PEN';
                 $div0->codiso = '604';
                 $div0->descripcion = 'NUEVOS SOLES';
                 $div0->simbolo = 'S/.';
                 $div0->tasaconv = 3.4272;
                 $div0->save();
             }
             $this->empresa->coddivisa = 'PEN';
             if ($this->empresa->save()) {
                 $this->new_message('Datos guardados correctamente.');
             }
         } else {
             if ($_GET['opcion'] == 'pais') {
                 $pais0 = new pais();
                 $pais = $pais0->get('PER');
                 if (!$pais) {
                     $pais0->codpais = 'PER';
                     $pais0->codiso = 'PE';
                     $pais0->nombre = 'Perú';
                     $pais0->save();
                 }
                 $this->empresa->codpais = 'PER';
                 if ($this->empresa->save()) {
                     $this->new_message('Datos guardados correctamente.');
                 }
             }
         }
     }
 }
 public function generar_pdf($archivo = FALSE)
 {
     ///// INICIO - Factura Detallada
     /// Creamos el PDF y escribimos sus metadatos
     ob_end_clean();
     $pdf_doc = new PDF_MC_Table('P', 'mm', 'A4');
     define('EEURO', chr(128));
     $lineas = $this->factura->get_lineas();
     if ($this->impresion['print_dto']) {
         $this->impresion['print_dto'] = FALSE;
         /// leemos las líneas para ver si de verdad mostramos los descuentos
         foreach ($lineas as $lin) {
             if ($lin->dtopor != 0) {
                 $this->impresion['print_dto'] = TRUE;
                 break;
             }
         }
     }
     $pdf_doc->SetTitle('Factura: ' . $this->factura->codigo . " " . $this->factura->numero2);
     $pdf_doc->SetSubject('Factura del cliente: ' . $this->factura->nombrecliente);
     $pdf_doc->SetAuthor($this->empresa->nombre);
     $pdf_doc->SetCreator('FacturaSctipts V_' . $this->version());
     $pdf_doc->Open();
     $pdf_doc->AliasNbPages();
     $pdf_doc->SetAutoPageBreak(true, 40);
     // Definimos el color de relleno (gris, rojo, verde, azul)
     $pdf_doc->SetColorRelleno('azul');
     /// Definimos todos los datos de la cabecera de la factura
     /// Datos de la empresa
     $pdf_doc->fde_nombre = $this->empresa->nombre;
     $pdf_doc->fde_FS_CIFNIF = FS_CIFNIF;
     $pdf_doc->fde_cifnif = $this->empresa->cifnif;
     $pdf_doc->fde_direccion = $this->empresa->direccion;
     $pdf_doc->fde_codpostal = $this->empresa->codpostal;
     $pdf_doc->fde_ciudad = $this->empresa->ciudad;
     $pdf_doc->fde_provincia = $this->empresa->provincia;
     $pdf_doc->fde_telefono = 'Teléfono: ' . $this->empresa->telefono;
     $pdf_doc->fde_fax = 'Fax: ' . $this->empresa->fax;
     $pdf_doc->fde_email = $this->empresa->email;
     $pdf_doc->fde_web = $this->empresa->web;
     $pdf_doc->fde_piefactura = $this->empresa->pie_factura;
     /// Insertamos el Logo y Marca de Agua
     if (file_exists('tmp/' . FS_TMP_NAME . 'logo.png') or file_exists('tmp/' . FS_TMP_NAME . 'logo.jpg')) {
         $pdf_doc->fdf_verlogotipo = '1';
         // 1/0 --> Mostrar Logotipo
         $pdf_doc->fdf_Xlogotipo = '15';
         // Valor X para Logotipo
         $pdf_doc->fdf_Ylogotipo = '35';
         // Valor Y para Logotipo
         $pdf_doc->fdf_vermarcaagua = '1';
         // 1/0 --> Mostrar Marca de Agua
         $pdf_doc->fdf_Xmarcaagua = '25';
         // Valor X para Marca de Agua
         $pdf_doc->fdf_Ymarcaagua = '110';
         // Valor Y para Marca de Agua
     } else {
         $pdf_doc->fdf_verlogotipo = '0';
         $pdf_doc->fdf_Xlogotipo = '0';
         $pdf_doc->fdf_Ylogotipo = '0';
         $pdf_doc->fdf_vermarcaagua = '0';
         $pdf_doc->fdf_Xmarcaagua = '0';
         $pdf_doc->fdf_Ymarcaagua = '0';
     }
     // Tipo de Documento
     $pdf_doc->fdf_tipodocumento = 'FACTURA';
     // (FACTURA, FACTURA PROFORMA, ¿ALBARAN, PRESUPUESTO?...)
     $pdf_doc->fdf_codigo = $this->factura->codigo . " " . $this->factura->numero2;
     // Fecha, Codigo Cliente y observaciones de la factura
     $pdf_doc->fdf_fecha = $this->factura->fecha;
     $pdf_doc->fdf_codcliente = $this->factura->codcliente;
     $pdf_doc->fdf_observaciones = iconv("UTF-8", "CP1252", $this->fix_html($this->factura->observaciones));
     // Datos del Cliente
     $pdf_doc->fdf_nombrecliente = $this->fix_html($this->factura->nombrecliente);
     $pdf_doc->fdf_FS_CIFNIF = FS_CIFNIF;
     $pdf_doc->fdf_cifnif = $this->factura->cifnif;
     $pdf_doc->fdf_direccion = $this->fix_html($this->factura->direccion);
     $pdf_doc->fdf_codpostal = $this->factura->codpostal;
     $pdf_doc->fdf_ciudad = $this->factura->ciudad;
     $pdf_doc->fdf_provincia = $this->factura->provincia;
     $pdf_doc->fdc_telefono1 = $this->cliente->telefono1;
     $pdf_doc->fdc_telefono2 = $this->cliente->telefono2;
     $pdf_doc->fdc_fax = $this->cliente->fax;
     $pdf_doc->fdc_email = $this->cliente->email;
     $pdf_doc->fdf_epago = $pdf_doc->fdf_divisa = $pdf_doc->fdf_pais = '';
     // Forma de Pago de la Factura
     $pago = new forma_pago();
     $epago = $pago->get($this->factura->codpago);
     if ($epago) {
         $pdf_doc->fdf_epago = $epago->descripcion;
     }
     // Divisa de la Factura
     $divisa = new divisa();
     $edivisa = $divisa->get($this->factura->coddivisa);
     if ($edivisa) {
         $pdf_doc->fdf_divisa = $edivisa->descripcion;
     }
     // Pais de la Factura
     $pais = new pais();
     $epais = $pais->get($this->factura->codpais);
     if ($epais) {
         $pdf_doc->fdf_pais = $epais->nombre;
     }
     // Cabecera Titulos Columnas
     if ($this->impresion['print_dto']) {
         $pdf_doc->Setdatoscab(array('ALB', 'DESCRIPCION', 'CANT', 'PRECIO', 'DTO', FS_IVA, 'IMPORTE'));
         $pdf_doc->SetWidths(array(16, 102, 10, 20, 10, 10, 22));
         $pdf_doc->SetAligns(array('C', 'L', 'R', 'R', 'R', 'R', 'R'));
         $pdf_doc->SetColors(array('6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109'));
     } else {
         $pdf_doc->Setdatoscab(array('ALB', 'DESCRIPCION', 'CANT', 'PRECIO', FS_IVA, 'IMPORTE'));
         $pdf_doc->SetWidths(array(16, 107, 10, 20, 15, 22));
         $pdf_doc->SetAligns(array('C', 'L', 'R', 'R', 'R', 'R'));
         $pdf_doc->SetColors(array('6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109'));
     }
     /// Definimos todos los datos del PIE de la factura
     /// Lineas de IVA
     $lineas_iva = $this->factura->get_lineas_iva();
     if (count($lineas_iva) > 3) {
         $pdf_doc->fdf_lineasiva = $lineas_iva;
     } else {
         $filaiva = array();
         $i = 0;
         foreach ($lineas_iva as $li) {
             $i++;
             $filaiva[$i][0] = $li->iva ? FS_IVA . $li->iva : '';
             $filaiva[$i][1] = $li->neto ? $this->ckeckEuro($li->neto) : '';
             $filaiva[$i][2] = $li->iva ? $li->iva . "%" : '';
             $filaiva[$i][3] = $li->totaliva ? $this->ckeckEuro($li->totaliva) : '';
             $filaiva[$i][4] = $li->recargo ? $li->recargo . "%" : '';
             $filaiva[$i][5] = $li->totalrecargo ? $this->ckeckEuro($li->totalrecargo) : '';
             $filaiva[$i][6] = '';
             //// POR CREARRRRRR
             $filaiva[$i][7] = '';
             //// POR CREARRRRRR
             $filaiva[$i][8] = $li->totallinea ? $this->ckeckEuro($li->totallinea) : '';
         }
         if ($filaiva) {
             $filaiva[1][6] = $this->factura->irpf . ' %';
             $filaiva[1][7] = $this->ckeckEuro(0 - $this->factura->totalirpf);
         }
         $pdf_doc->fdf_lineasiva = $filaiva;
     }
     // Total factura numerico
     $pdf_doc->fdf_numtotal = $this->ckeckEuro($this->factura->total);
     // Total factura numeros a texto
     $pdf_doc->fdf_textotal = $this->factura->total;
     /// Agregamos la pagina inicial de la factura
     $pdf_doc->AddPage();
     // Lineas de la Factura
     //$lineas = $this->factura->get_lineas();
     if ($lineas) {
         $neto = 0;
         for ($i = 0; $i < count($lineas); $i++) {
             $neto += $lineas[$i]->pvptotal;
             $pdf_doc->neto = $this->ckeckEuro($neto);
             $articulo = new articulo();
             $art = $articulo->get($lineas[$i]->referencia);
             if ($art) {
                 $observa = "\n" . utf8_decode($this->fix_html($art->observaciones));
             } else {
                 // $observa = null; // No mostrar mensaje de error
                 $observa = "\n";
             }
             if ($this->impresion['print_dto']) {
                 $lafila = array('0' => utf8_decode($lineas[$i]->albaran_numero()), '1' => utf8_decode(strtoupper($lineas[$i]->descripcion)) . $observa, '2' => utf8_decode($lineas[$i]->cantidad), '3' => $this->ckeckEuro($lineas[$i]->pvpunitario), '4' => utf8_decode($this->show_numero($lineas[$i]->dtopor, 0) . " %"), '5' => utf8_decode($this->show_numero($lineas[$i]->iva, 0) . " %"), '6' => $this->ckeckEuro($lineas[$i]->total_iva()));
             } else {
                 $lafila = array('0' => utf8_decode($lineas[$i]->albaran_numero()), '1' => utf8_decode(strtoupper($lineas[$i]->descripcion)) . $observa, '2' => utf8_decode($lineas[$i]->cantidad), '3' => $this->ckeckEuro($lineas[$i]->pvpunitario), '4' => utf8_decode($this->show_numero($lineas[$i]->iva, 0) . " %"), '5' => $this->ckeckEuro($lineas[$i]->total_iva()));
             }
             $pdf_doc->Row($lafila, '1');
             // Row(array, Descripcion del Articulo -- ultimo valor a imprimir)
         }
         $pdf_doc->piepagina = true;
     }
     // Damos salida al archivo PDF
     if ($archivo) {
         if (!file_exists('tmp/' . FS_TMP_NAME . 'enviar')) {
             mkdir('tmp/' . FS_TMP_NAME . 'enviar');
         }
         $pdf_doc->Output('tmp/' . FS_TMP_NAME . 'enviar/' . $archivo, 'F');
     } else {
         $pdf_doc->Output();
     }
 }
Exemplo n.º 3
0
 public function pais()
 {
     $pais0 = new pais();
     $pais = $pais0->get('DOM');
     if (!$pais) {
         $pais0->codpais = 'DOM';
         $pais0->codiso = 'DO';
         $pais0->nombre = 'República Dominicana';
         $pais0->save();
     }
     $pais = $pais0->get('USA');
     if (!$pais) {
         $pais0->codpais = 'USA';
         $pais0->codiso = 'US';
         $pais0->nombre = 'Estados Unidos';
         $pais0->save();
     }
     $this->empresa->codpais = 'DOM';
     if ($this->empresa->save()) {
         $this->new_message('Datos guardados correctamente.');
     }
 }
 public function generar_pdf($pdf_doc)
 {
     if (!empty($pdf_doc)) {
         ///// INICIO - Factura Detallada
         /// Creamos el PDF y escribimos sus metadatos
         $pdf_doc->StartPageGroup();
         $pdf_doc->AliasNbPages();
         $pdf_doc->SetAutoPageBreak(true, 40);
         $pdf_doc->lineaactual = 0;
         $pdf_doc->fdf_observaciones = "";
         // Definimos el color de relleno (gris, rojo, verde, azul)
         $pdf_doc->SetColorRelleno('gris');
         /// Definimos todos los datos de la cabecera de la factura
         /// Datos de la empresa
         $pdf_doc->fde_nombre = $this->empresa->nombre;
         $pdf_doc->fde_FS_CIFNIF = FS_CIFNIF;
         $pdf_doc->fde_cifnif = $this->empresa->cifnif;
         $pdf_doc->fde_direccion = $this->empresa->direccion;
         $pdf_doc->fde_codpostal = $this->empresa->codpostal;
         $pdf_doc->fde_ciudad = $this->empresa->ciudad;
         $pdf_doc->fde_provincia = $this->empresa->provincia;
         $pdf_doc->fde_telefono = 'Teléfono: ' . $this->empresa->telefono;
         $pdf_doc->fde_fax = 'Fax: ' . $this->empresa->fax;
         $pdf_doc->fde_email = $this->empresa->email;
         $pdf_doc->fde_web = $this->empresa->web;
         $pdf_doc->fde_piefactura = $this->empresa->pie_factura;
         /// Insertamos el Logo y Marca de Agua
         if (file_exists(FS_MYDOCS . 'images/logo.png')) {
             $pdf_doc->fdf_verlogotipo = '1';
             // 1/0 --> Mostrar Logotipo
             $pdf_doc->fdf_Xlogotipo = '15';
             // Valor X para Logotipo
             $pdf_doc->fdf_Ylogotipo = '35';
             // Valor Y para Logotipo
             $pdf_doc->fdf_vermarcaagua = '1';
             // 1/0 --> Mostrar Marca de Agua
             $pdf_doc->fdf_Xmarcaagua = '25';
             // Valor X para Marca de Agua
             $pdf_doc->fdf_Ymarcaagua = '110';
             // Valor Y para Marca de Agua
         } elseif (file_exists(FS_MYDOCS . 'images/logo.jpg')) {
             $pdf_doc->fdf_verlogotipo = '1';
             // 1/0 --> Mostrar Logotipo
             $pdf_doc->fdf_Xlogotipo = '15';
             // Valor X para Logotipo
             $pdf_doc->fdf_Ylogotipo = '35';
             // Valor Y para Logotipo
             $pdf_doc->fdf_vermarcaagua = '1';
             // 1/0 --> Mostrar Marca de Agua
             $pdf_doc->fdf_Xmarcaagua = '25';
             // Valor X para Marca de Agua
             $pdf_doc->fdf_Ymarcaagua = '110';
             // Valor Y para Marca de Agua
         } else {
             $pdf_doc->fdf_verlogotipo = '0';
             $pdf_doc->fdf_Xlogotipo = '0';
             $pdf_doc->fdf_Ylogotipo = '0';
             $pdf_doc->fdf_vermarcaagua = '0';
             $pdf_doc->fdf_Xmarcaagua = '0';
             $pdf_doc->fdf_Ymarcaagua = '0';
         }
         // Tipo de Documento
         $pdf_doc->fdf_tipodocumento = $this->factura->tipo_comprobante;
         // (FACTURA, FACTURA PROFORMA, ¿ALBARAN, PRESUPUESTO?...)
         $pdf_doc->fdf_codigo = $this->factura->ncf;
         $pdf_doc->fdf_codigorect = $this->factura->ncf_afecta;
         $pdf_doc->fdf_estado = $this->factura->estado ? "" : "DOCUMENTO ANULADO";
         // Fecha, Codigo Cliente y observaciones de la factura
         $pdf_doc->fdf_fecha = $this->factura->fecha;
         $pdf_doc->fdf_codcliente = $this->factura->codcliente;
         $pdf_doc->fdf_observaciones = utf8_decode($this->fix_html($this->factura->observaciones));
         // Datos del Cliente
         $pdf_doc->fdf_nombrecliente = $this->fix_html($this->factura->nombrecliente);
         $pdf_doc->fdf_FS_CIFNIF = FS_CIFNIF;
         $pdf_doc->fdf_cifnif = $this->factura->cifnif;
         $pdf_doc->fdf_direccion = $this->fix_html($this->factura->direccion);
         $pdf_doc->fdf_codpostal = $this->factura->codpostal;
         $pdf_doc->fdf_ciudad = $this->factura->ciudad;
         $pdf_doc->fdf_provincia = $this->factura->provincia;
         $pdf_doc->fdc_telefono1 = $this->cliente->telefono1;
         $pdf_doc->fdc_telefono2 = $this->cliente->telefono2;
         $pdf_doc->fdc_fax = $this->cliente->fax;
         $pdf_doc->fdc_email = $this->cliente->email;
         $pdf_doc->fdf_epago = $pdf_doc->fdf_divisa = $pdf_doc->fdf_pais = '';
         // Conduce asociado
         $pdf_doc->fdf_transporte = $this->idtransporte;
         // Forma de Pago de la Factura
         $pago = new forma_pago();
         $epago = $pago->get($this->factura->codpago);
         if ($epago) {
             $pdf_doc->fdf_epago = $epago->descripcion;
         }
         // Divisa de la Factura
         $divisa = new divisa();
         $edivisa = $divisa->get($this->factura->coddivisa);
         if ($edivisa) {
             $pdf_doc->fdf_divisa = $edivisa->descripcion;
         }
         // Pais de la Factura
         $pais = new pais();
         $epais = $pais->get($this->factura->codpais);
         if ($epais) {
             $pdf_doc->fdf_pais = $epais->nombre;
         }
         // Cabecera Titulos Columnas
         $pdf_doc->Setdatoscab(array('ALB', 'DESCRIPCION', 'CANT', 'PRECIO', 'DTO', FS_IVA, 'IMPORTE'));
         $pdf_doc->SetWidths(array(16, 102, 10, 20, 10, 10, 22));
         $pdf_doc->SetAligns(array('C', 'L', 'R', 'R', 'R', 'R', 'R'));
         $pdf_doc->SetColors(array('6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109'));
         /// Agregamos la pagina inicial de la factura
         $pdf_doc->AddPage();
         /// Definimos todos los datos del PIE de la factura
         /// Lineas de IVA
         $lineas_iva = $this->factura->get_lineas_iva();
         $negativo = !empty($this->factura->idfacturarect) ? -1 : 1;
         if (count($lineas_iva) > 3) {
             $pdf_doc->fdf_lineasiva = $lineas_iva;
         } else {
             $filaiva = array();
             $i = 0;
             foreach ($lineas_iva as $li) {
                 $i++;
                 $filaiva[$i][0] = $li->iva ? FS_IVA . $li->iva * $negativo : '';
                 $filaiva[$i][1] = $li->neto ? $this->ckeckEuro($li->neto * $negativo) : '';
                 $filaiva[$i][2] = $li->iva ? $li->iva * $negativo . "%" : '';
                 $filaiva[$i][3] = $li->totaliva ? $this->ckeckEuro($li->totaliva * $negativo) : '';
                 $filaiva[$i][4] = $li->recargo ? $li->recargo . "%" : '';
                 $filaiva[$i][5] = $li->totalrecargo ? $this->ckeckEuro($li->totalrecargo * $negativo) : '';
                 $filaiva[$i][6] = '';
                 //// POR CREARRRRRR
                 $filaiva[$i][7] = '';
                 //// POR CREARRRRRR
                 $filaiva[$i][8] = $li->totallinea ? $this->ckeckEuro($li->totallinea * $negativo) : '';
             }
             if ($filaiva) {
                 $filaiva[1][6] = $this->factura->irpf . ' %';
                 $filaiva[1][7] = $this->ckeckEuro(0 - $this->factura->totalirpf * $negativo);
             }
             $pdf_doc->fdf_lineasiva = $filaiva;
         }
         // Total factura numerico
         $pdf_doc->fdf_numtotal = $this->ckeckEuro($this->factura->total * $negativo);
         // Total factura numeros a texto
         $pdf_doc->fdf_textotal = $this->factura->total * $negativo;
         // Lineas de la Factura
         $lineas = $this->factura->get_lineas();
         if ($lineas) {
             $neto = 0;
             for ($i = 0; $i < count($lineas); $i++) {
                 $neto += $lineas[$i]->pvptotal * $negativo;
                 $pdf_doc->neto = $this->ckeckEuro($neto);
                 $articulo = new articulo();
                 $art = $articulo->get($lineas[$i]->referencia);
                 if ($art) {
                     $observa = "\n" . utf8_decode($this->fix_html($art->observaciones));
                 } else {
                     //$observa = null; // No mostrar mensaje de error
                     $observa = "\n";
                 }
                 $lafila = array('0' => utf8_decode($lineas[$i]->albaran_numero()), '1' => utf8_decode(strtoupper($lineas[$i]->descripcion)) . $observa, '2' => utf8_decode($lineas[$i]->cantidad * $negativo), '3' => $this->ckeckEuro($lineas[$i]->pvpunitario), '4' => utf8_decode($this->show_numero($lineas[$i]->dtopor, 0) . " %"), '5' => utf8_decode($this->show_numero($lineas[$i]->iva, 0) . " %"), '6' => $this->ckeckEuro($lineas[$i]->total_iva() * $negativo));
                 $pdf_doc->Row($lafila, '1');
                 // Row(array, Descripcion del Articulo -- ultimo valor a imprimir)
             }
             $pdf_doc->piepagina = true;
         }
     }
 }