www/inv_yeastlab.php

changeset 626
571473f62c1e
child 630
ffe0416614b3
equal deleted inserted replaced
625:57bc32b5f411 626:571473f62c1e
1 <?php
2 require_once($_SERVER['DOCUMENT_ROOT'].'/includes/global.inc.php');
3 require_once($_SERVER['DOCUMENT_ROOT'].'/includes/constants.php');
4 require_once($_SERVER['DOCUMENT_ROOT'].'/fpdf/fpdf.php');
5
6 define('EURO', chr(128) );
7
8 $link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME);
9 if (! $link) {
10 die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
11 }
12 if (! mysqli_set_charset($link, "utf8" )) {
13 echo "error";
14 return 1;
15 }
16
17 setlocale ( LC_ALL, 'nl_NL.UTF-8');
18 date_default_timezone_set('Europe/Amsterdam');
19 $prdate = date(DATE_RFC2822);
20
21 $sql = "SELECT brewery_name,my_yeastlab FROM profile_setup WHERE record = '1';";
22 $result = mysqli_query($link, $sql);
23 if ($row=mysqli_fetch_array($result)) {
24 $my_brewery = iconv('UTF-8','windows-1252',$row['brewery_name']);
25 $my_lab = $row['my_yeastlab'];
26 } else {
27 $my_brewery = $my_lab = '';
28 }
29
30
31 class PDF_MySQL_Table extends FPDF
32 {
33 protected $ProcessingTable=false;
34 protected $aCols=array();
35 protected $TableX;
36 protected $HeaderColor;
37 protected $RowColors;
38 protected $TotalColor;
39 protected $ColorIndex;
40
41 function Header() {
42 // Print the table header if necessary
43 if ($this->ProcessingTable)
44 $this->TableHeader();
45 }
46
47 function TableHeader() {
48 $this->SetFont('Helvetica','B',9);
49 $this->SetX($this->TableX);
50 $this->SetFillColor($this->HeaderColor[0],$this->HeaderColor[1],$this->HeaderColor[2]);
51 foreach($this->aCols as $col)
52 $this->Cell($col['w'],5,$col['c'],0,0,$col['a'],true);
53 $this->Ln();
54 }
55
56 function CalcWidths($width, $align) {
57 // Compute the widths of the columns
58 $TableWidth=0;
59 foreach($this->aCols as $i=>$col) {
60 $w=$col['w'];
61 if($w==-1)
62 $w=$width/count($this->aCols);
63 elseif(substr($w,-1)=='%')
64 $w=$w/100*$width;
65 $this->aCols[$i]['w']=$w;
66 $TableWidth+=$w;
67 }
68 // Compute the abscissa of the table
69 if($align=='C')
70 $this->TableX=max(($this->w-$TableWidth)/2,0);
71 elseif($align=='R')
72 $this->TableX=max($this->w-$this->rMargin-$TableWidth,0);
73 else
74 $this->TableX=$this->lMargin;
75 }
76
77 function AddCol($width=-1, $caption='', $align='L') {
78 $this->aCols[]=array('c'=>$caption,'w'=>$width,'a'=>$align);
79 }
80
81 function TableYeasts($link,$prop) {
82 global $yeasttype;
83 global $yeastform;
84 global $my_lab;
85 $this->AddCol( 20,'Product','L');
86 $this->AddCol( 70,'Gist','L');
87 $this->AddCol( 18,'Soort','L');
88 $this->AddCol( 18,'Vorm','L');
89 $this->AddCol( 20,'Voorraad','R');
90 $this->AddCol( 25,'Datum','L');
91 $prop['width']=$this->w-$this->lMargin-$this->rMargin;
92 $prop['align']='L';
93 $cMargin=$this->cMargin;
94 $this->cMargin=$prop['padding'];
95 $this->HeaderColor=$prop['HeaderColor'];
96 $this->TotalColor=$prop['TotalColor'];
97 $this->RowColors=array($prop['color1'],$prop['color2']);
98 $this->CalcWidths($prop['width'],$prop['align']);
99 $this->TableHeader();
100 $this->SetFont('Helvetica','',9);
101 $this->ColorIndex=0;
102 $this->ProcessingTable=true;
103
104 $sql = "SELECT name,product_id,type,form,inventory,production_date FROM inventory_yeasts ";
105 $sql .= "WHERE inventory > 0 AND laboratory = '".$my_lab."' ORDER BY product_id";
106 $result = mysqli_query($link, $sql);
107
108 while ($row=mysqli_fetch_array($result)) {
109 if ($row['form'] == 0)
110 $stock = floatval($row['inventory']);
111 else
112 $stock = floatval($row['inventory']) * 1000.0;
113 $form = array( 'pak', 'gr', 'ml', 'ml', 'ml', 'ml', 'gr' );
114
115 $this->SetX($this->TableX);
116 $ci=$this->ColorIndex;
117 $this->SetFillColor($this->RowColors[$ci][0],$this->RowColors[$ci][1],$this->RowColors[$ci][2]);
118 $this->Cell(20,5,iconv('UTF-8','windows-1252',$row['product_id']),0,0,'L',true);
119 $this->Cell(70,5,iconv('UTF-8','windows-1252',$row['name']),0,0,'L',true);
120 $this->Cell(18,5,iconv('UTF-8','windows-1252',$yeasttype[$row['type']]),0,0,'L',true);
121 $this->Cell(18,5,iconv('UTF-8','windows-1252',$yeastform[$row['form']]),0,0,'L',true);
122 $this->Cell(20,5,sprintf("%10.1f ",$stock).$form[$row['form']],0,0,'R',true);
123 $this->Cell(25,5,$row['production_date'],0,0,'L',true);
124 $this->Ln();
125 $this->ColorIndex=1-$ci;
126 }
127
128 $this->ProcessingTable=false;
129 $this->cMargin=$cMargin;
130 $this->aCols=array();
131 }
132 }
133
134
135
136 class PDF extends PDF_MySQL_Table {
137 function Header() {
138 global $prdate;
139 global $my_brewery;
140 $this->Image('images/logo.png',10,6,30);
141 // Title
142 $this->SetFont('Helvetica','',18);
143 $this->SetX(45);
144 $this->Cell(0,10,'Gistbank van '.$my_brewery,0,1,'L');
145 $this->Ln(1);
146 $this->SetFont('Helvetica','',10);
147 $this->SetX(45);
148 $this->Cell(17,5,'Datum:',0,0,'L');
149 $this->Cell(0,5,$prdate,0,1,'L');
150 $this->Ln(18);
151 // Ensure table header is printed
152 parent::Header();
153 }
154 }
155
156
157 $pdf = new PDF();
158 $pdf->AddPage();
159 $prop = array('HeaderColor'=>array(255,150,100), 'color1'=>array(210,245,255),
160 'color2'=>array(255,255,210), 'TotalColor'=>array(255,150,100), 'padding'=>2);
161 $pdf->TableYeasts($link,$prop);
162 $pdf->Output();

mercurial