www/prod_checklist.php

changeset 817
6ee186182c70
parent 816
d76f623d487c
child 818
f9c071906643
--- a/www/prod_checklist.php	Fri Aug 05 11:02:01 2022 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,682 +0,0 @@
-<?php
-require_once($_SERVER['DOCUMENT_ROOT'].'/includes/global.inc.php');
-require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php');
-require_once($_SERVER['DOCUMENT_ROOT'].'/includes/constants.php');
-require_once($_SERVER['DOCUMENT_ROOT'].'/fpdf/fpdf.php');
-
-
-$link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME);
-if (! $link) {
-	die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
-}
-if (! mysqli_set_charset($link, "utf8" )) {
-	echo "error";
-	return 1;
-}
-
-setlocale ( LC_ALL, 'nl_NL.UTF-8');
-$record = $_GET["record"];
-$result = mysqli_query($link, "SELECT * FROM products WHERE record='".$record."'");
-$row = mysqli_fetch_array($result);
-
-date_default_timezone_set('Europe/Amsterdam');
-$prdate = date(DATE_RFC2822);
-
-
-class PDF_MySQL_Table extends FPDF
-{
-	function Checkheader($text) {
-		$this->SetFont('Arial','B',10);
-		$this->Cell(0, 4,$text,0,0,'L',true);
-		$this->SetFont('Arial','',10);
-		$this->Ln(6);
-	}
-
-	function Checkline($text) {
-		$this->Cell(2, 4,' ',0,0,'L',true);
-		$this->Cell(4, 4,' ',1,0,'L',true);
-		$this->Cell(0, 4,' '.$text,0,1,'L',true);
-		$this->Ln(1);
-	}
-
-	function CheckInput($text, $prompt) {
-		if (strlen($text)) {
-			$this->Cell(2, 4,' ',0,0,'L',true);
-			$this->Cell(4, 4,' ',1,0,'L',true);
-			$this->Cell(130, 4,' '.$text,0,0,'L',true);
-		} else {
-			$this->Cell(136, 4,' ',0,0,'L',true);
-		}
-		$this->Cell(0, 4, 'Gemeten: _________ '.$prompt,0,1,'L',true);
-		$this->Ln(1);
-	}
-
-	function Checksplit($moment, $row) {
-		global $splitat;
-		if ($row['divide_type'] && $row['divide_type'] == $moment) {
-			$this->Ln(2);
-			$this->SetFont('Helvetica','B',14);
-               		$this->Cell(0, 4,$splitat[$row['divide_type']]." splits de batch hier!",0,0,'C',true);
-               		$this->SetFont('Arial','',10);
-			$this->AddPage();
-			return true;
-		}
-		return false;
-	}
-
-	function Checklist($row) {
-
-		global $my_grain_absorbtion;
-		global $my_brix_correction;
-		global $acidtype;
-		$mashwater = 0;
-		$numsalts = 0;
-		$factor = 1 / $row['divide_factor'];
-
-		$this->AddPage();
-		$this->SetFillColor(255,255,255);
-
-		$ferms = json_decode($row['json_fermentables'], true);
-		$hops = json_decode($row['json_hops'], true);
-		$miscs = json_decode($row['json_miscs'], true);
-		$yeasts = json_decode($row['json_yeasts'], true);
-
-		if ($row['starter_enable'] && $row['prop1_volume']) {
-			$this->Checkheader('Giststarter maken');
-			$days = 0;
-			$last = 0;
-			for ($i = 1; $i < 5; $i++) {
-				$pt = "prop".$i."_type";
-				$pv = "prop".$i."_volume";
-				if (floatval($row[$pv])) {
-					$last = $i;
-					if ($row[$pt] == 0)
-						$days += 2;
-					else if ($row[$pt] == 1)
-						$days += 4;
-					else
-						$days += 6;
-				}
-			}
-			$this->Checkline("begin ongeveer ".$days." dagen voor de brouwdag met de giststarter");
-			for ($i = 1; $i < 5; $i++) {
-				$pt = "prop".$i."_type";
-				$pv = "prop".$i."_volume";
-				if (floatval($row[$pv])) {
-					$s  = "Starter stap ".$i.", van ".sprintf("%.3f",floatval($row[$pv]));
-					$s .= " liter maken met SG ".sprintf("%.3f",floatval($row['starter_sg']));
-					$this->Checkline($s);
-					if ($row[$pt] == 0) {
-						$s = "ongeveer 24 uur op een magneetroerder";
-					} else if ($row[$pt] == 1) {
-						$s = "enkele dagen regelmatig schudden";
-					} else {
-						$s = "bijna een week rustig laten staan";
-					}
-					$s .= " tot er voldoende gist is";
-					$this->Checkline($s);
-					if ($i < $last) {
-						$this->Checkline("starter minstens 24 uur in de koeling laten uitzakken");
-						$this->Checkline("starter uit de koelkast halen en afgieten");
-					} else {
-						$this->Checkline("starter in de koeling zetten tot de brouwdag");
-						$this->Checkline("starter op de brouwdag uit de koelkast halen en afgieten");
-					}
-				}
-			}
-			$this->Ln(5);
-		}
-
-		$this->Checkheader('Water en -behandeling');
-		if ($row['w1_name']) {
-			$this->Checkline(sprintf("%.1f",floatval($row['w1_amount'] * $factor)).' liter water '.$row['w1_name']);
-			$mashwater += floatval($row['w1_amount'] * $factor);
-		}
-		if ($row['w2_name'] && floatval($row['w2_amount'])) {
-			$this->Checkline(sprintf("%.1f",floatval($row['w2_amount'] * $factor)).' liter water '.$row['w2_name']);
-			$mashwater += floatval($row['w2_amount'] * $factor);
-		}
-		foreach($miscs as $item) {
-			if ($item['m_type'] == 4) {	// Only the water agents
-				$unit = ($item['m_amount_is_weight']) ? " gr ":" ml ";
-				$this->Checkline(sprintf("%.2f",floatval($item['m_amount'] * 1000 * $factor)).$unit.$item['m_name']);
-				$numsalts++;
-			}
-		}
-		$this->Ln(5);
-
-		$this->Checkheader('Mout afwegen en schroten');
-		foreach($ferms as $item) {
-			if ($item['f_added'] == 0) {	// to mash
-				$s = sprintf("%.3f",floatval($item['f_amount'] * $factor)).' kg `';
-				$s .= iconv('UTF-8','windows-1252',$item['f_name']);
-				$s .= '` ('.iconv('UTF-8','windows-1252',$item['f_supplier']).')';
-				$this->Checkline($s);
-			}
-		}
-		$this->Checkline('mout schroten');
-		$this->Ln(5);
-
-		$this->Checkheader('Maischen');
-		$mvol = 0;
-		$msugars = 0;	// mash sugars
-		$grainabsorbtion = 0;
-		$arr = json_decode($row['json_mashs'], true);
-		if (count($arr) > 0) {
-			$loop = 0;
-			foreach($arr as $item) {
-				if ($item['step_type'] == 0)
-					$mvol += $item['step_infuse_amount'] * $factor;	// We need this later.
-				if ($loop == 0) {
-					if ($item['step_type'] == 0)
-						$l = $item['step_infuse_amount'] * $factor;
-					else
-						$l = $mashwater;
-					$s = sprintf("%.1f",$l).' liter water opwarmen tot ';
-					$s .= sprintf("%.1f",$item['step_infuse_temp']).DEG.'C (';
-					$s .= sprintf("%.1f",kettle_cm($l,$row['eq_tun_volume'],$row['eq_tun_height']));
-					$s .= ' cm onder de rand)';
-					$this->Checkline($s);
-					if ($numsalts > 0)
-						$this->Checkline('brouwzouten en -zuren toevoegen');
-					$this->Checkline('mout storten en inmaischen');
-					foreach($hops as $item2) {
-						if ($item2['h_useat'] == 0) {
-							$s = sprintf("%.1f",$item2['h_amount']*1000 * $factor).' gr `';
-							$s .= iconv('UTF-8','windows-1252',$item2['h_name']).'` toevoegen';
-							$this->Checkline($s);
-						}
-					}
-					foreach($miscs as $item3) {
-						if ($item3['m_use_use'] == 1 && $item3['m_type'] != 4) {	// Only if not a water agent
-							$unit = ($item3['m_amount_is_weight']) ? " gr ":" ml ";
-							$s = sprintf("%.2f",$item3['m_amount']*1000 * $factor).$unit.'`';
-							$s .= iconv('UTF-8','windows-1252',$item3['m_name']).'` toevoegen';
-							$this->Checkline($s);
-						}
-					}
-					if ($item['step_temp'] != $item['end_temp']) {
-						$this->CheckInput($item['step_time'].' minuten bij '.$item['step_temp'].DEG.'C'.' tot '.$item['end_temp'].DEG.'C', 'Brix');
-					} else {
-						$this->CheckInput($item['step_time'].' minuten bij '.$item['step_temp'].DEG.'C', 'Brix');
-					}
-					$this->CheckInput('pH meten en bijstellen (doel pH beslag: '.sprintf("%.1f",$row['mash_ph']).' pH)', 'pH');
-				} else {
-					if ($item['step_type'] == 0) {	// Infusion
-						$s = 'toevoegen '.sprintf("%.1f",$item['step_infuse_amount'] * $factor).' liter water van ';
-						$s .= $item['step_infuse_temp'].DEG.'C';
-					} else if ($item['step_type'] == 1) {	// Direct heat
-						$s = 'opwarmen tot '.$item['step_temp'].DEG.'C';
-					} else {	// Decoction
-						$s = 'uitnemen, opwarmen, koken en terugstorten van '.sprintf("%.1f",$item['step_infuse_amount']*$factor);
-						$s .= ' liter deelbeslag';
-					}
-					$this->Checkline($s);
-					if ($item['step_temp'] != $item['end_temp']) {
-						$this->CheckInput($item['step_time'].' minuten bij '.$item['step_temp'].DEG.'C'.' tot '.$item['end_temp'].DEG.'C', 'Brix');
-					} else {
-						$this->CheckInput($item['step_time'].' minuten bij '.$item['step_temp'].DEG.'C', 'Brix');
-					}
-				}
-				$loop++;
-			}
-			$est_mash_sg = 0;
-			foreach($ferms as $item) {
-				if ($item['f_added'] == 0) {
-					$d = $item['f_amount'] * $factor * ($item['f_yield'] / 100) * (1 - $item['f_moisture'] / 100);
-					$mvol += $item['f_amount'] * $factor * $item['f_moisture'] / 100;
-					$grainabsorbtion += $my_grain_absorbtion * $item['f_amount'] * $factor;
-					$msugars += $d;
-				}
-			}
-			$sugardensity = 1.611;
-			$v = $msugars / $sugardensity + $mvol;
-			$plato = 1000 * $msugars / ($v * 10);	// deg. Plato
-			$mash_sg = plato_to_sg($plato);
-			$this->CheckInput('doel SG eind maischen: '.density_str($mash_sg), 'SG');
-		}
-		if ($this->GetY() > 200)
-			$this->AddPage();
-		else
-			$this->Ln(5);
-
-		$this->Checkheader('Filteren en spoelen');
-		$s = sprintf("%.1f",$row['sparge_volume'] * $factor).' liter spoelwater opwarmen tot '.sprintf("%.1f",$row['sparge_temp']).DEG.'C';
-		$this->Checkline($s);
-		$s = 'spoelwater aanzuren tot pH <= '.sprintf("%.1f",$row['sparge_ph']).' met ';
-		$s .= sprintf("%.2f",$row['sparge_acid_amount']*1000*$factor).' ml. '.$acidtype[$row['sparge_acid_type']];
-		$this->CheckInput($s, 'pH');
-		$spoelw = (($row['boil_size']*$factor) - $mashwater + $grainabsorbtion + $row['eq_lauter_deadspace']) * 1.03;	// A small heat correction
-		$this->Checkline('spoelen met ongeveer '.sprintf("%.1f",$spoelw).' liter spoelwater');
-		$s = 'doelvolume in kookketel: '.sprintf("%.1f",$row['boil_size'] * $factor * 1.04).' liter (';
-		$s .= sprintf("%.1f",kettle_cm($row['boil_size'] * $factor * 1.04,$row['eq_kettle_volume'],$row['eq_kettle_height'])).' cm onder de rand)';
-		$this->CheckInput($s, 'cm');
-		$pre_sg = estimate_sg($msugars * floatval($row['efficiency']) / 100,floatval($row['boil_size'] * $factor));
-		$this->CheckInput('doel SG in kookketel: '.density_str($pre_sg), 'SG');
-		$this->CheckInput('', 'pH');
-		foreach($hops as $item2) {
-			if ($item2['h_useat'] == 1) {
-				$s = sprintf("%.1f",$item2['h_amount']*1000*$factor).' gr `';
-				$s .= iconv('UTF-8','windows-1252',$item2['h_name']).'` toevoegen na het spoelen';
-				$this->Checkline($s);
-			}
-		}
-		if ($this->Checksplit(1, $row))
-			$factor = 1;
-		if ($this->GetY() > 200 && $row['boil_time'] > 0)
-			$this->AddPage();
-		else if ($this->GetY() > 270 && $row['boil_time'] == 0)
-			$this->AddPage();
-		else
-			$this->Ln(5);
-
-		$this->Checkheader('Koken');
-		if ($row['boil_time'] > 0) {
-			$this->Checkline('totale kooktijd: '.$row['boil_time'].' min.');
-			for ($i = $row['boil_time']; $i >= 0; $i--) {
-				if ($i == 10) {
-					foreach($ferms as $item1) {
-						if ($item1['f_added'] == 1) {
-							$s = sprintf("%.3f",$item1['f_amount']*$factor).' kg `';
-							$s .= iconv('UTF-8','windows-1252',$item1['f_name']).'` bij 10 minuten voor einde koken';
-							$this->Checkline($s);
-						}
-					}
-					if ($row['brew_cooling_method'] == 1)
-						$this->Checkline('Plaats dompelkoeler bij 10 minuten voor einde koken');
-				}
-				foreach($hops as $item2) {
-					if (($item2['h_useat'] == 2 || $item2['h_useat'] == 3) && ($item2['h_time'] == $i)) {
-						$s = sprintf("%.2f",$item2['h_amount']*1000*$factor).' gr `';
-						$s .= iconv('UTF-8','windows-1252',$item2['h_name']).'` bij ';
-						if ($i > 0)
-							$s .= $i.' minuten voor einde koken';
-						else
-							$s .= 'vlamuit';
-						$this->Checkline($s);
-					}
-				}
-				foreach($miscs as $item3) {
-					if ($item3['m_use_use'] == 2 && $item3['m_time'] == $i) {
-						$unit = ($item3['m_amount_is_weight']) ? " gr ":" ml ";
-						$s = sprintf("%.2f",$item3['m_amount']*1000*$factor).$unit.'`';
-						$s .= iconv('UTF-8','windows-1252',$item3['m_name']).'` bij ';
-						if ($i > 0)
-							$s .= $i.' minuten voor einde koken';
-						else
-							$s .= 'vlamuit';
-						$this->Checkline($s);
-					}
-				}
-
-			}
-			$s = 'doelvolume einde koken: '.sprintf("%.1f",$row['batch_size']*$factor*1.04).' liter (';
-			$s .= sprintf("%.1f",kettle_cm($row['batch_size']*$factor*1.04,$row['eq_kettle_volume'],$row['eq_kettle_height']));
-			$s .= ' cm onder de rand)';
-			$this->CheckInput($s, 'cm');
-			$this->CheckInput('doel SG einde koken: '.density_str($row['est_og3']), 'SG');
-			$this->CheckInput('', 'pH');
-			if ($this->Checksplit(2, $row))
-				$factor = 1;
-		} else {
-			$this->Checkline('Dit is een `no-boil\' recept');
-		}
-		if ($this->GetY() > 200)
-			$this->AddPage();
-		else
-			$this->Ln(5);
-
-		if (($row['brew_whirlpool9'] + $row['brew_whirlpool7'] + $row['brew_whirlpool6'] + $row['brew_whirlpool2']) > 0) {
-			$this->Checkheader('Whirlpool en koelen');
-			if ($row['brew_whirlpool9'] > 0) {
-				$s = 'Whirlpool voor '.$row['brew_whirlpool9'].' min. Temperatuur boven 85'.DEG.'C houden';
-				$this->Checkline($s);
-			}
-			if ($row['brew_whirlpool7'] > 0) {
-				$this->Checkline('koelen tot 79'.DEG.'C');
-				$s = 'Whirlpool voor '.$row['brew_whirlpool7'].' min. Temperatuur tussen 72 en 79'.DEG.'C houden';
-				$this->Checkline($s);
-			}
-			if ($row['brew_whirlpool6'] > 0) {
-				$this->Checkline('koelen tot 66'.DEG.'C');
-				$s = 'Whirlpool voor '.$row['brew_whirlpool6'].' min. Temperatuur tussen 60 en 66'.DEG.'C houden';
-				$this->Checkline($s);
-			}
-			foreach($hops as $item2) {
-				if ($item2['h_useat'] == 4) {
-					$s = sprintf("%.1f",$item2['h_amount']*1000*$factor).' gr `';
-					$s .= iconv('UTF-8','windows-1252',$item2['h_name']).'` voor ';
-					$s .= $item2['h_time'].' minuten in de whirlpool';
-					$this->Checkline($s);
-				}
-			}
-			$this->Checkline('koelen tot '.sprintf("%.1f",$row['brew_cooling_to']).DEG.'C');
-			if ($row['brew_whirlpool2'] > 0) {
-				$s = 'Whirlpool voor '.$row['brew_whirlpool2'].' min.';
-				$this->Checkline($s);
-			}
-		} else {
-			$this->Checkheader('Koelen');
-			$this->Checkline('koelen tot '.sprintf("%.1f",$row['brew_cooling_to']).DEG.'C');
-		}
-		$this->Checkline('gistvat ontsmetten en evt. pomp en slangen ontsmetten');
-		$this->CheckInput('wort naar gistvat overbrengen', 'Liter');
-		if ($this->Checksplit(3, $row))
-			$factor = 1;
-		if ($this->GetY() > 240)
-			$this->AddPage();
-		else
-			$this->Ln(5);
-
-		$climate = $row['brew_cooling_to'];
-		$this->Checkheader('Gist enten');
-		$dry = 0;
-		foreach ($yeasts as $item) {
-			$name       = iconv('UTF-8','windows-1252',$item['y_name']);
-                        $product_id = iconv('UTF-8','windows-1252',$item['y_product_id']);
-			if ($item['y_use'] == 0) { // primary
-				if ($item['y_form'] == 0) { // Liquid
-					$this->Checkline(($item['y_amount']*$factor).' pak '.$product_id.', '.$name.' gist');
-				} else if ($item['y_form'] == 1 || $item['y_form'] == 6) { // Dry or dried Kveik
-					$s = sprintf("%.1f",$item['y_amount']*$factor*1000).' gram '.$product_id.', '.$name;
-					$s .= ' gist';
-					if ($item['y_form'] == 1)
-						$dry += $item['y_amount']*$factor*10000;
-					$this->Checkline($s);
-				} else { // Slant/Culture/Frozen/Bottle
-					$s = sprintf("%.0f",$item['y_amount']*$factor*1000).' ml '.$product_id.', '.$name.' gist';
-					$this->Checkline($s);
-				}
-				if ($item['y_type'] == 6 && floatval($item['y_pitch_temperature']) > 0) {
-					$s = 'Gist enten bij ' . sprintf("%.1f",floatval($item['y_pitch_temperature'])).DEG.'C';
-					$this->Checkline($s);
-					$climate = $item['y_pitch_temperature'];
-				}
-			}
-		}
-		if ($dry > 0) {
-			$this->Checkline('Gist rechtstreeks over het wort strooien');
-		} else {
-			if ($row['starter_enable'] && $row['prop1_volume'])
-				$this->Checkline('giststarter toevoegen');
-			else
-				$this->Checkline('gist toevoegen');
-		}
-		if ($row['brew_fermenter_extrawater'] > 0)
-			$this->Checkline(sprintf("%.1f", $row['brew_fermenter_extrawater']*$factor).' liter water toevoegen in gistvat');
-		if ($row['brew_aeration_type'] > 0) {
-			$s = 'wort '.$row['brew_aeration_time'].' minuten beluchten met ';
-			$s .= ($row['brew_aeration_type'] == 1) ? "lucht":"zuurstof";
-			$this->Checkline($s);
-		}
-		if ($this->GetY() > 200)
-			$this->AddPage();
-		else
-			$this->Ln(5);
-
-		$this->Checkheader('Vergisting starten');
-		$this->Checkline('klimaatkast instellen op '.sprintf("%.1f",$climate).DEG.'C');
-
-		/*
-		 * During primary fermentation: fermentables, misc
-		 */
-		$lines = 0;
-                foreach($ferms as $item1) {
-                        if ($item1['f_added'] == 2)
-				$lines++;
-		}
-                foreach($miscs as $item3) {
-                	if ($item3['m_use_use'] == 3)
-				$lines++;
-		}
-		if ($lines) {
-			if ($this->GetY() > (270 - (5 * $lines)))
-                        	$this->AddPage();
-                	else
-                        	$this->Ln(5);
-			$this->Checkheader('Hoofdgisting');
-		}
-		foreach($ferms as $item1) {
-                        if ($item1['f_added'] == 2) {
-				$s = sprintf("%.3f",$item1['f_amount']*$factor).' kg `';
-                                $s .= iconv('UTF-8','windows-1252',$item1['f_name']).'` op dag 3 of 4 toevoegen';
-                                $this->Checkline($s);
-			}
-                }
-                foreach($miscs as $item3) {
-                        if ($item3['m_use_use'] == 3) {
-				$unit = ($item3['m_amount_is_weight']) ? " gr ":" ml ";
-				$s = sprintf("%.1f",$item3['m_amount']*$factor*1000).$unit.'`';
-                                $s .= iconv('UTF-8','windows-1252',$item3['m_name']).'` op dag 3 of 4 toevoegen';
-                                $this->Checkline($s);
-			}
-                }
-		if ($this->Checksplit(4, $row))
-			$factor = 1;
-
-		/*
-		 * During secondary fermentation: yeast
-		 */
-		$lines = 0;
-                foreach ($yeasts as $item4) {
-                        if ($item4['y_use'] == 1)
-				$lines++;
-			if ($item4['y_harvest_time'] > 0)
-				$lines++;
-		}
-		if ($lines) {
-			if ($this->GetY() > (270 - (5 * $lines)))
-                        	$this->AddPage();
-                	else
-                        	$this->Ln(5);
-                        $this->Checkheader('Nagisting');
-                }
-		foreach ($yeasts as $item4) {
-                        if ($item4['y_use'] == 1) {
-				$name       = iconv('UTF-8','windows-1252',$item4['y_name']);
-                                $product_id = iconv('UTF-8','windows-1252',$item4['y_product_id']);
-				if ($item4['y_form'] == 0) { // Liquid
-                                        $this->Checkline(($item4['y_amount']*$factor).' pak '.$product_id.', '.$name.' gist (eventueel met starter)');
-                                } else if ($item['y_form'] == 1) { // Dry
-                                        $s = sprintf("%.1f",$item4['y_amount']*$factor*1000).' gram '.$product_id.', '.$name;
-                                        $s .= ' gist';
-                                        $this->Checkline($s);
-                                } else { // Slant/Culture/Frozen/Bottle
-                                        $s = sprintf("%.0f",$item4['y_amount']*$factor*1000).' ml '.$product_id.', '.$name.' gist (eventueel met starter)';
-                                        $this->Checkline($s);
-                                }
-			}
-			if ($item4['y_harvest_time'] > 0) {
-				$s = 'Na ' . $item4['y_harvest_time'] . ' uur gist oogsten vanaf de ';
-				if ($item4['y_harvest_top'] > 0)
-					$s .= 'bovenzijde';
-				else
-					$s .= 'bodem';
-				$this->Checkline($s);
-			}
-                }
-		if ($this->Checksplit(5, $row))
-			$factor = 1;
-
-		/*
-		 * During tertiary fermentation: fermentables, hop, yeast, misc
-		 */
-		$lines = 0;
-		foreach($ferms as $item1) {
-                        if ($item1['f_added'] == 3)
-                                $lines++;
-                }
-                foreach($hops as $item2) {
-                        if ($item2['h_useat'] == 5)
-				$lines++;
-		}
-                foreach ($yeasts as $item4) {
-                        if ($item4['y_use'] == 2)
-                                $lines++;
-                }
-                foreach($miscs as $item3) {
-                        if ($item3['m_use_use'] == 4)
-                                $lines++;
-                }
-		if ($lines) {
-			if ($this->GetY() > (270 - (5 * $lines)))
-                                $this->AddPage();
-                        else
-                                $this->Ln(5);
-                        $this->Checkheader('Lagering');
-                }
-		foreach($ferms as $item1) {
-                        if ($item1['f_added'] == 3) {
-                                $s = sprintf("%.3f",$item1['f_amount']*$factor).' kg `';
-                                $s .= iconv('UTF-8','windows-1252',$item1['f_name']).'` toevoegen';
-                                $this->Checkline($s);
-                        }
-                }
-		foreach($hops as $item2) {
-                        if ($item2['h_useat'] == 5) {
-                                $s = sprintf("%.1f",$item2['h_amount']*$factor*1000).' gr `';
-                                $s .= iconv('UTF-8','windows-1252',$item2['h_name']).'` voor ';
-				$s .= sprintf("%.0f",$item2['h_time']/1440).' dagen toevoegen';
-                                $this->Checkline($s);
-                        }
-                }
-		foreach ($yeasts as $item4) {
-                        if ($item4['y_use'] == 2) {
-				$name       = iconv('UTF-8','windows-1252',$item4['y_name']);
-                                $product_id = iconv('UTF-8','windows-1252',$item4['y_product_id']);
-                                if ($item4['y_form'] == 0) { // Liquid
-                                        $s = ($item4['y_amount']*$factor).' pak '.$product_id.', '.$name.' gist (eventueel met starter)';
-                                } else if ($item4['y_form'] == 1) { // Dry
-                                        $s = sprintf("%.1f",$item4['y_amount']*$factor*1000).' gram '.$product_id.', '.$name;
-                                        $s .= ' gist';
-                                } else { // Slant/Culture/Frozen/Bottle
-                                        $s = sprintf("%.0f",$item4['y_amount']*$factor*1000).' ml '.$product_id.', '.$name;
-					$s .= ' gist (eventueel met starter)';
-                                }
-				$this->Checkline($s);
-                        }
-                }
-		foreach($miscs as $item3) {
-                        if ($item3['m_use_use'] == 4) {
-				$unit = ($item3['m_amount_is_weight']) ? " gr ":" ml ";
-                                $s = sprintf("%.1f",$item3['m_amount']*$factor*1000).$unit.'`';
-                                $s .= iconv('UTF-8','windows-1252',$item3['m_name']).'` voor ';
-				$s .= sprintf("%.0f",$item3['m_time']/1440).' dagen toevoegen';
-                                $this->Checkline($s);
-                        }
-                }
-		if ($this->Checksplit(6, $row))
-			$factor = 1;
-
-		/*
-		 * During packaging: fermentables, yeast, misc
-		 */
-		$lines = 0;
-		foreach($ferms as $item1) {
-                        if ($item1['f_added'] >= 4)
-                                $lines++;
-                }
-		$yeasts = json_decode($row['json_yeasts'], true);
-                foreach ($yeasts as $item4) {
-                        if ($item4['y_use'] == 3)
-                                $lines++;
-                }
-		$miscs = json_decode($row['json_miscs'], true);
-                foreach($miscs as $item3) {
-                        if ($item3['m_use_use'] == 5)
-                                $lines++;
-                }
-		if ($lines) {
-			if ($this->GetY() > (270 - (5 * $lines)))
-                                $this->AddPage();
-                        else
-                                $this->Ln(5);
-                        $this->Checkheader('Verpakken');
-                }
-		foreach($ferms as $item1) {
-                        if ($item1['f_added'] == 4) {
-                                $s = sprintf("%.3f",$item1['f_amount']*$factor).' kg `';
-                                $s .= iconv('UTF-8','windows-1252',$item1['f_name']).'`';
-				if ($row['bottle_priming_water'] > 0)
-					$s .= ' met '.sprintf("%.3f",$row['bottle_priming_water']*$factor).' liter water';
-				$s .= ' bij bottelen';
-                                $this->Checkline($s);
-                        }
-			if ($item1['f_added'] == 5) {
-                                $s = sprintf("%.3f",$item1['f_amount']*$factor).' kg `';
-                                $s .= iconv('UTF-8','windows-1252',$item1['f_name']).'`';
-				if ($row['keg_priming_water'] > 0)
-					$s .= ' met '.sprintf("%.3f",$row['keg_priming_water']*$factor).' liter water';
-				$s .= ' bij op fust zetten';
-                                $this->Checkline($s);
-                        }
-                }
-		foreach ($yeasts as $item4) {
-                        if ($item4['y_use'] == 3) {
-				$name       = iconv('UTF-8','windows-1252',$item4['y_name']);
-                        	$product_id = iconv('UTF-8','windows-1252',$item4['y_product_id']);
-                                if ($item4['y_form'] == 0) { // Liquid
-                                        $s = '`'.$product_id.', '.$name;
-                                } else if ($item4['y_form'] == 1) { // Dry
-                                        $s = sprintf("%.1f",$item4['y_amount']*$factor*1000).' gram `'.$product_id.', '.$name;
-                                } else { // Slant/Culture/Frozen/Bottle
-                                        $s = sprintf("%.0f",$item4['y_amount']*$factor*1000).' ml `'.$product_id.', '.$name;
-                                }
-				$s .= '` als bottelgist';
-				$this->Checkline($s);
-                        }
-                }
-		foreach($miscs as $item3) {
-                        if ($item3['m_use_use'] == 5) {
-				$unit = ($item3['m_amount_is_weight']) ? " gr ":" ml ";
-                                $s = sprintf("%.1f",$item3['m_amount']*$factor*1000).$unit.'`';
-                                $s .= iconv('UTF-8','windows-1252',$item3['m_name']).'` bij bottelen toevoegen';
-                                $this->Checkline($s);
-                        }
-                }
-	}
-}
-
-
-
-class PDF extends PDF_MySQL_Table {
-	function Header() {
-		global $row;
-		global $prdate;
-		global $stage;
-		$this->Image('images/logo.png',10,10,30);
-		// Title
-		$this->SetFont('Helvetica','B',18);
-		$this->SetX(45);
-		$this->Cell(0,8,$row['code'].' '.$row['name'],0,1,'L');
-		$this->Ln(1);
-		$this->SetFont('Helvetica','',10);
-		$this->SetX(45);
-		$this->Cell(17,5,'Datum:',0,0,'L');
-		$this->Cell(0,5,$prdate,0,1,'L');
-		$this->SetX(45);
-		$this->Cell(17,5,'Stijl:',0,0,'L');
-		$st_name = iconv('UTF-8','windows-1252',$row['st_name']);
-		$this->Cell(0,5,$st_name,0,1,'L');
-		$this->SetX(45);
-		$this->Cell(17,5,'Fase:',0,0,'L');
-		$this->Cell(0,5,$stage[$row['stage']],0,1,'L');
-		$this->SetX(45);
-                $this->Cell(17,5,'Batch:',0,0,'L');
-                if ($row['divide_parts'] == 0)
-                        $this->Cell(0,5,"Niet gespitst",0,1,'L');
-                else
-                        $this->Cell(0,5,"Split batch ".($row['divide_part'] + 1)." van ".($row['divide_parts'] + 1),0,1,'L');
-                $this->Ln(2);
-		// Ensure table header is printed
-		parent::Header();
-	}
-}
-
-
-/*
- * Generate checklist PDF from recipe data
- */
-$pdf = new PDF();
-$pdf->Checklist($row);
-$pdf->Output();

mercurial