Wed, 16 Oct 2019 21:05:03 +0200
Added dutch array strings to a global php script. Changed fermentables, hops, yeast and misc inventory scripts to use these strings between the database scripts and javascript scripts. This makes filtering on types strings useable. Added these changes to the product/recipe forum and print exports too.
454 | 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 = 100 * ($og - $fg) / ($og - 1); | |
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(); |