source: pmb4.2/trunk/fuentes/pmb/tejuelo3.php @ 828

Last change on this file since 828 was 828, checked in by jrpelegrina, 4 years ago

WIP in lliurex features and modifications 4

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