source: pmb4.2/trunk/fuentes/pmb/tejuelo.php @ 1276

Last change on this file since 1276 was 1276, checked in by jrpelegrina, 5 years ago

WIP in compatibility with php5-lliurex

File size: 7.4 KB
Line 
1<?php
2
3if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
4
5$base_path=".";                           
6$base_auth = "ADMINISTRATION_AUTH"; 
7$base_title = "\$msg[7]";
8$class_path= "./classes";
9$include_path= "./includes";
10
11//---------------------LLIUREX 12/02/2015 -------------------------
12require_once ("$base_path/includes/init.inc.php");
13//--------------------- FIN LLIUREX 12/02/2015 -------------------------
14require_once("$class_path/notice.class.php");
15require_once("$class_path/expl.class.php");
16require_once("$class_path/indexint.class.php");
17require_once("$include_path/notice_authors.inc.php");
18require_once("$include_path/notice_categories.inc.php");
19//--------------------- LLIUREX 14/03/2016-----------------------
20//require '/usr/share/php/fpdf/fpdf.php';
21//--------------------- FIN LLIUREX 14/03/2016-------------------
22
23
24define(CONVERSION,(1/25.4));//Conversión inch/mm
25define(COLS_PER_PAGE, 3); // Nº columnas por página
26define(ROWS_PER_PAGE, 8); // Nº filas por página
27define(BARCODE_HEIGHT, 54); // en pixels
28define(BARCODE_WIDTH, 175); // en pixels
29define(ALIGN, 'C');
30define(LABEL_WIDTH, (70.8*CONVERSION)); // en mm
31define(LABEL_HEIGHT, (36.5*CONVERSION));  // en mm
32define(H_MARGIN, (7*CONVERSION)); // horizontal (izquierda y derecha) margenes de la pagina, en mm
33define(V_MARGIN, (12*CONVERSION)); // vertical (top & bottom) margins of page, in mm
34
35//define(SPACE_BETWEEN_LABELS, ($parametros["SPACE_BETWEEN_LABELS"])*CONVERSION); // espacio horizontal entre etiquetas
36//define(SPACE_BETWEEN_LABELS_VERTICAL, ($parametros["SPACE_BETWEEN_LABELS_VERTICAL"])*CONVERSION); // espacio vertical entre etiquetas
37
38function f_rellena_ceros($as_dato) {
39        if(strlen($as_dato)>0 && strlen($as_dato)<9){
40                for($i=strlen($as_dato); $i<9; $i++)
41                        $as_dato="0".$as_dato;}
42       
43        return $as_dato; 
44       
45}
46
47function str_squeeze($test) {
48    return trim(ereg_replace( ' +', '', $test));
49}
50
51$codigos=$_GET['codigos'];
52//$codigos=str_replace(" ", "", $codigos);
53
54
55switch ($codigos){
56
57case '':{
58 //---------------------LLIUREX 12/02/2015 -------------------------   
59       //require_once ("$base_path/includes/init.inc.php");
60 //---------------------FIN LLIUREX 12/02/215 ----------------------
61        echo "<center><form class='form-admin' name='form2' ENCTYPE=\"multipart/form-data\" method='get' action=\"./tejuelo.php?codigos=\".$codigos·\"\"><b>$msg[tejuelo]&nbsp;</b><input name='codigos' accept='text/plain' type='text'  size='80'><input align='center' type='button' name='continuar' value='Continuar' onclick='form.submit()'></form></center>";
62break;}
63
64
65
66default:{
67$matriz=array();
68$base_noheader = 1;
69
70
71$codigos=str_squeeze($codigos);
72
73if((strpos($codigos, ",")!== false)) $aux=explode(",",$codigos);
74else $aux=$codigos;
75
76require("$base_path/includes/db_param.inc.php");
77
78$link2 = @mysql_connect(SQL_SERVER, USER_NAME, USER_PASS) OR die("Error MySQL");
79
80
81if (is_array($aux)) {
82        foreach ($aux as $codi) {
83                if(strpos($codi, "-") === false && strlen($codi) <= 9 ){
84                        if (is_numeric($codi)) $matriz[]= (int) $codi;
85                        else $matriz[]= $codi;
86                }
87                else if (strpos($codi, "-") !== false) { 
88                        $aux2=explode("-",$codi);
89                        if ( is_numeric($aux2[0]) && is_numeric($aux2[1]) ) {
90                                $aux2[0]= (int) $aux2[0];
91                                $aux2[1]= (int) $aux2[1];
92                                while($aux2[0] <= $aux2[1]){
93                                                if (strlen($aux2[0]) <= 9) $matriz[] = (int) $aux2[0];
94                                                $aux2[0]++;
95                                        }
96                          }
97                }
98
99        }
100}
101elseif ($aux === "*"){
102                $q ='SELECT expl_cb FROM exemplaires';
103
104                $resultData = @mysql_query($q, $link2);
105                if (@mysql_num_rows($resultData) != 0) {
106
107                        while ($rowData = mysql_fetch_array($resultData)) {     
108                                if (strlen($rowData['expl_cb']) <= 9) $matriz[]= $rowData['expl_cb'];
109                        }
110                }
111                mysql_free_result($resultData);
112}
113else {
114        if(strpos($aux, "-") === false && strlen($aux) <= 9 ){
115                        if (is_numeric($aux)) $matriz[]= (int) $aux;
116                        else $matriz[]= $aux;
117                }
118                else if (strpos($aux, "-") !== false) { 
119                        $aux2=explode("-",$aux);
120                        if ( is_numeric($aux2[0]) && is_numeric($aux2[1]) ) {
121                                $aux2[0]= (int) $aux2[0];
122                                $aux2[1]= (int) $aux2[1];
123                                while($aux2[0] <= $aux2[1]){
124                                                if (strlen($aux2[0]) <= 9) $matriz[] = (int) $aux2[0];
125                                                $aux2[0]++;
126                                        }
127                          }
128                }
129}
130
131$size = count($matriz);
132
133//Determinamos margenes de los barcode
134$barcode_h_margin = ((LABEL_WIDTH-(BARCODE_WIDTH/72))/2); 
135$barcode_v_margin = ((LABEL_HEIGHT-(BARCODE_HEIGHT/72))/2);
136
137// Creamos objeto PDF
138//-----------------------LLIUREX 14/03/2016------------------
139require '/usr/share/php/fpdf/fpdf.php';
140//----------------------- FIN LLIUREX 14/03/2016-------------
141$pdf=new FPDF('P','in','A4');
142
143// Metadata
144$pdf->SetAuthor('Lliurex');
145$pdf->SetTitle('Tejuelo Lliurex');
146
147//Otras características
148$pdf->SetDisplayMode('real'); // Mostramos el zoom al 100%
149
150// Añadimos una pagina al documento PDF
151$pdf->AddPage();
152
153// Fijamos los márgenes
154$pdf->SetMargins(H_MARGIN, V_MARGIN);
155
156// Manejamos nosotros cuando la pagina debe acabar
157$pdf->SetAutoPageBreak(false);
158$pdf->AddFont('barcode', '', "barcode.php");
159$y = V_MARGIN; //Esta variable sigue la posición y (vertical)
160$x = H_MARGIN; // Nueva fila, reseteamos x-position
161
162
163$new_row=1;
164$new_col=1;
165
166
167foreach ($matriz as $exe_cote) {
168
169        if (is_numeric($exe_cote)) {
170                $q ='SELECT expl_cote, expl_cb FROM exemplaires WHERE expl_cb='.f_rellena_ceros($exe_cote).'';
171        }else {
172                $q ='SELECT expl_cote, expl_cb FROM exemplaires WHERE expl_cb=\''.$exe_cote.'\'';
173        }
174       
175        //if ((strlen($exe_cote)==9) || $all == true){
176        $resultData = @mysql_query($q, $link2);
177       
178        if (@mysql_num_rows($resultData) != 0) {
179
180                //Recuperamos los datos de cada solicitud confirmada
181                               
182                while ($rowData = mysql_fetch_array($resultData)) {     
183                                       
184                //dato cote
185                                       
186                $cote=$rowData['expl_cote'];
187                if (is_numeric($exe_cote)) {
188                        if (is_numeric($rowData['expl_cb'])) {
189                                if ((int) $exe_cote === (int) $rowData['expl_cb']) $cb=(int)$rowData['expl_cb'];
190                                else continue;
191                        } else continue;
192                } else $cb=$rowData['expl_cb'];
193               
194
195                if ($new_row > 8) // Nueva pagina, reseteamos x-position
196                {
197                       
198                       // Creamos una nueva pagina
199                        $pdf->AddPage();
200                        $pdf->SetMargins(H_MARGIN, V_MARGIN);
201                        $pdf->SetAutoPageBreak(false);
202                        $y = V_MARGIN;
203                        $x = H_MARGIN;
204                        $new_row=1;
205                        $new_col=1;
206                        } 
207
208                $matriz2=explode(" ",$cote);                   
209                $pdf->SetFont('Arial','B',10);
210                $pdf->SetY($y);
211                $pdf->SetX($x);
212                if (strlen($matriz2[0])>6) $align="";
213                else $align="C";
214                $pdf->Cell(LABEL_WIDTH/5, ($barcode_v_margin*1),$matriz2[0],"LT", 0, $align);
215                $pdf->Cell(LABEL_WIDTH-1, ($barcode_v_margin*1),"","TR", 0,'C');
216                $pdf->Ln();
217                $pdf->SetX($x);
218                $pdf->Cell(LABEL_WIDTH/5, ($barcode_v_margin*1),$matriz2[1],"L", 0,'C');
219                $pdf->setFont('barcode',"",25);
220                $pdf->Cell(LABEL_WIDTH-1, ($barcode_v_margin*1),"*".f_rellena_ceros($cb)."*","R", 0,'C');
221                $pdf->SetFont('Arial','B',10);
222                $pdf->Ln();
223                $pdf->SetX($x);
224                $pdf->Cell(LABEL_WIDTH/5, ($barcode_v_margin*1),$matriz2[2],"LB", 0,'C');
225                $pdf->Cell(LABEL_WIDTH-1, ($barcode_v_margin*1),f_rellena_ceros($cb),"BR", 0,'C');
226
227                if (($new_col%COLS_PER_PAGE)==0) {
228                        $x = H_MARGIN;
229                        $y += LABEL_HEIGHT-0.03;
230                        $new_row++;
231                        $new_col=1;
232                } else {
233                        $new_col++;
234                        $x += LABEL_WIDTH-0.10;
235                        }
236
237
238                }
239                @mysql_free_result($resultData);
240
241        }else continue;
242        //} else continue;
243
244}
245
246
247
248// Desconexión de la Base de Datos
249mysql_close();
250
251// Limpiar (ELIMINAR) el búfer de salida y Deshabilitar el Almacenamiento en El Mismo -12/02/2015
252ob_end_clean();
253
254$pdf->Output('tejuelo.pdf', 'D'); // Salida es un pdf descargable
255
256
257}
258
259
260}
261?>
Note: See TracBrowser for help on using the repository browser.