www/prod_r_yeast.php

changeset 802
4a9f469d2201
parent 801
55c2510891b8
child 803
45e87aa8d02c
equal deleted inserted replaced
801:55c2510891b8 802:4a9f469d2201
1 <?php
2 require_once($_SERVER['DOCUMENT_ROOT'].'/includes/global.inc.php');
3 require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php');
4 require_once($_SERVER['DOCUMENT_ROOT'].'/fpdf/fpdf.php');
5
6
7 $link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME);
8 if (! $link) {
9 die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
10 }
11 if (! mysqli_set_charset($link, "utf8" )) {
12 echo "error";
13 return 1;
14 }
15
16 setlocale ( LC_ALL, 'nl_NL.UTF-8');
17
18 date_default_timezone_set('Europe/Amsterdam');
19 $prdate = date(DATE_RFC2822);
20
21 class PDF_MySQL_Table extends FPDF
22 {
23 protected $ProcessingTable=false;
24 protected $aCols=array();
25 protected $TableX;
26
27 function Header() {
28 // Print the table header if necessary
29 if ($this->ProcessingTable)
30 $this->TableHeader();
31 }
32
33 function TableHeader() {
34 $this->SetFont('Helvetica','B',9);
35 $this->SetX($this->TableX);
36 $this->SetFillColor(255,150,100);
37 foreach($this->aCols as $col)
38 $this->Cell($col['w'],5,$col['c'],0,0,$col['a'],true);
39 $this->Ln();
40 }
41
42 function AddCol($width=-1, $caption='', $align='L') {
43 $this->aCols[]=array('c'=>$caption,'w'=>$width,'a'=>$align);
44 }
45
46 function TableTotals() {
47
48 global $link;
49
50 $vul = $this->w - $this->rMargin - $this->lMargin - 151;
51 $this->AddCol(16,'Code','L');
52 $this->AddCol($vul,'Naam','L');
53 $this->AddCol(35,'Gist','L');
54 $this->AddCol(20,'Hoofdgisting','R');
55 $this->AddCol(20,'Nagisten','R');
56 $this->AddCol(20,'Lageren','R');
57 $this->AddCol(10,'Duur','R');
58 $this->AddCol(10,'OG','R');
59 $this->AddCol(10,'FG','R');
60 $this->AddCol(12,'SVG','R');
61
62 $cMargin=$this->cMargin;
63 $this->cMargin=2;
64 $this->TableX=$this->lMargin;
65 $this->TableHeader();
66 $this->ProcessingTable=true;
67
68 $this->SetFont('Helvetica','',9);
69 $this->SetFillColor(210,245,255);
70
71 $result = mysqli_query($link, "SELECT * FROM products WHERE package_date AND type='2' ORDER BY json_yeasts");
72 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
73 /*
74 * Data is not always available, try to calculate the mssing pieces.
75 */
76 $y_name = $y_lab = $y_product = '';
77 $yeasts = json_decode($row['json_yeasts'], true);
78 foreach($yeasts as $item) {
79 if ($item['y_use'] == 0) {
80 $y_name = iconv('UTF-8','windows-1252',$item['y_name']);
81 $y_lab = iconv('UTF-8','windows-1252',$item['y_laboratory']);
82 $y_product = iconv('UTF-8','windows-1252',$item['y_product_id']);
83 break;
84 }
85 }
86
87 // name,brew_date_end,primary_end_date,secondary_end_date,package_date
88 $d1 = new DateTime($row['brew_date_end']);
89 $d2 = new DateTime($row['primary_end_date']);
90 $d3 = new DateTime($row['secondary_end_date']);
91 $d4 = new DateTime($row['package_date']);
92
93 $diff = $d2->diff($d1);
94 $primary_days = $diff->days;
95 $diff = $d3->diff($d2);
96 $secondary_days = $diff->days;
97 $diff = $d4->diff($d3);
98 $tertiary_days = $diff->days;
99 $diff = $d4->diff($d1);
100 $total_days = $diff->days;
101
102 $og = floatval($row['brew_fermenter_sg']);
103 $fg = floatval($row['fg']);
104 $svg = calc_svg($og, $fg);
105
106 $name = iconv('UTF-8','windows-1252',$row['name']);
107 $this->SetX($this->TableX);
108 $this->Cell(16,5,$row['code'],0,0,'L',true);
109 $this->Cell($vul,5,$name,0,0,'L',true);
110 $this->Cell(35,5,$y_lab.' '.$y_product,0,0,'L',true);
111 $this->Cell(13,5,sprintf("%.1f",$row['primary_end_temp']).DEG,0,0,'R',true);
112 $this->Cell( 7,5,sprintf("%d",$primary_days),0,0,'R',true);
113 $this->Cell(13,5,sprintf("%.1f",$row['secondary_temp']).DEG,0,0,'R',true);
114 $this->Cell( 7,5,sprintf("%d",$secondary_days),0,0,'R',true);
115 $this->Cell(13,5,sprintf("%.1f",$row['tertiary_temp']).DEG,0,0,'R',true);
116 $this->Cell( 7,5,sprintf("%d",$tertiary_days),0,0,'R',true);
117 $this->Cell(10,5,sprintf("%d",$total_days),0,0,'R',true);
118 $this->Cell(10,5,sprintf("%.3f",$og),0,0,'R',true);
119 $this->Cell(10,5,sprintf("%.3f",$fg),0,0,'R',true);
120 $this->Cell(12,5,sprintf("%.1f",$svg).'%',0,0,'R',true);
121 $this->Ln();
122 }
123 $this->ProcessingTable=false;
124 $this->cMargin=$cMargin;
125 $this->aCols=array();
126 $this->Ln();
127 }
128 }
129
130
131
132 class PDF extends PDF_MySQL_Table {
133 function Header() {
134 global $prdate;
135 global $my_brewery_name;
136 $this->Image('images/logo.png',10,10,30);
137 // Title
138 $this->SetFont('Helvetica','B',18);
139 $this->SetX(45);
140 $this->Cell(0,8,"Vergisting ".$my_brewery_name,0,1,'L');
141 $this->Ln(1);
142 $this->SetFont('Helvetica','',10);
143 $this->SetX(45);
144 $this->Cell(17,5,'Datum:',0,0,'L');
145 $this->Cell(0,5,$prdate,0,1,'L');
146 $this->Ln(20);
147 // Ensure table header is printed
148 parent::Header();
149 }
150 }
151
152
153
154 /*
155 * Generate PDF
156 */
157 $pdf = new PDF();
158 $pdf->AddPage();
159 $pdf->TableTotals();
160 $pdf->Output();

mercurial