diff -r 7af1d472475a -r 85521c6e0022 www/rec_print.php --- a/www/rec_print.php Thu Nov 08 20:30:32 2018 +0100 +++ b/www/rec_print.php Sat Nov 10 17:23:53 2018 +0100 @@ -1,26 +1,36 @@ SetFont('Helvetica','B',9); $this->SetX($this->TableX); - $this->SetFillColor($this->HeaderColor[0],$this->HeaderColor[1],$this->HeaderColor[2]); + $this->SetFillColor(255,150,100); foreach($this->aCols as $col) $this->Cell($col['w'],5,$col['c'],0,0,$col['a'],true); $this->Ln(); @@ -41,23 +51,20 @@ $this->aCols[]=array('c'=>$caption,'w'=>$width,'a'=>$align); } - function TableGlobal($row,$prop) { + function TableGlobal($row) { /* 2 Columns */ $vul = $this->w - $this->rMargin - $this->lMargin - 170; $cMargin=$this->cMargin; - $this->cMargin=$prop['padding']; + $this->cMargin=2; $this->TableX=$this->lMargin; - $this->HeaderColor=$prop['HeaderColor']; - $this->TotalColor=$prop['TotalColor']; - $this->RowColors=array($prop['color1'],$prop['color2']); - $this->SetFont('Helvetica','B',11); + $this->SetFont('Helvetica','B',9); $this->SetX($this->TableX); - $this->SetFillColor($this->HeaderColor[0],$this->HeaderColor[1],$this->HeaderColor[2]); - $this->Cell(0, 6, 'Recept overzicht',0,0,'C',true); + $this->SetFillColor(255,150,100); + $this->Cell(0, 5, 'Recept overzicht',0,0,'C',true); $this->Ln(); $this->SetFont('Helvetica','',9); - $this->SetFillColor($this->RowColors[0][0],$this->RowColors[0][1],$this->RowColors[0][2]); + $this->SetFillColor(210,245,255); $this->SetX($this->TableX); $this->Cell(35,5,'Type',0,0,'L',true); @@ -101,8 +108,11 @@ $this->SetX($this->TableX); $this->Cell(35,5,'Kleur ('.$row['color_method'].')',0,0,'L',true); + $beercolor = ebc_to_color($row['est_color']); + $this->SetFillColor($beercolor[0],$beercolor[1],$beercolor[2]); $this->Cell(25,5,$row['est_color'].' EBC',0,0,'L',true); $this->Cell(25,5,'('.$row['st_color_min'].' - '.$row['st_color_max'].' EBC)',0,0,'L',true); + $this->SetFillColor(210,245,255); $this->Cell($vul,5,'',0,0,'L',false); $this->Cell(35,5,'Bitterheid ('.$row['ibu_method'].')',0,0,'L',true); $this->Cell(25,5,sprintf("%.0f",$row['est_ibu']).' IBU',0,0,'L',true); @@ -112,31 +122,32 @@ $this->cMargin=$cMargin; } - function TableFermentables($row,$prop) { - $vul = $this->w - $this->rMargin - $this->lMargin - 130; + function TableFermentables($row) { + global $cost_fermentables; + global $total_fermentables; + $vul = $this->w - $this->rMargin - $this->lMargin - 130; $this->AddCol($vul,'Grondstof','L'); - $this->AddCol( 30,'Leverancier','L'); - $this->AddCol( 15,'EBC','R'); - $this->AddCol( 15,'Moment','L'); - $this->AddCol( 20,'Kg','R'); - $this->AddCol( 15,'Procent','R'); - $this->AddCol( 15,'Opbr.','R'); - $this->AddCol( 20,'Prijs','R'); + $this->AddCol(30,'Leverancier','L'); + $this->AddCol(15,'EBC','R'); + $this->AddCol(15,'Moment','L'); + $this->AddCol(20,'Kg','R'); + $this->AddCol(15,'Procent','R'); + $this->AddCol(15,'Opbr.','R'); + $this->AddCol(20,'Prijs','R'); $cMargin=$this->cMargin; - $this->cMargin=$prop['padding']; + $this->cMargin=2; $this->TableX=$this->lMargin; $this->TableHeader(); - $this->ColorIndex=0; $this->ProcessingTable=true; $this->SetFont('Helvetica','',9); - $this->SetFillColor($this->RowColors[0][0],$this->RowColors[0][1],$this->RowColors[0][2]); + $this->SetFillColor(250, 195, 65); $arr = json_decode($row['json_fermentables'], true); foreach($arr as $item) { //foreach element in $arr - $name = $item['f_name']; - $supplier = $item['f_supplier']; + $name = iconv('UTF-8','windows-1252',$item['f_name']); + $supplier = iconv('UTF-8','windows-1252',$item['f_supplier']); $amount = floatval($item['f_amount']); $costkg = floatval($item['f_cost']); $yield = floatval($item['f_yield']); @@ -149,6 +160,8 @@ else $add = $item['f_added']; $cost = $amount * $costkg; + $cost_fermentables += $cost; + $total_fermentables += $amount; $this->Cell($vul,5,$name,0,0,'L',true); $this->Cell(30,5,$supplier,0,0,'L',true); $this->Cell(15,5,sprintf("%.0f",$color),0,0,'R',true); @@ -160,10 +173,200 @@ $this->Ln(); } + $this->SetFillColor(210,245,255); + $this->Cell($vul+60,5,'',0,0,'L',false); + $this->Cell(20,5,sprintf("%8.3f",$total_fermentables),0,0,'R',true); + $this->Cell(30,5,'',0,0,'L',false); + $this->Cell(20,5,sprintf("%8.3f",$cost_fermentables).EURO,0,0,'R',true); + $this->Ln(); $this->ProcessingTable=false; $this->cMargin=$cMargin; $this->aCols=array(); } + + function TableHops($row) { + global $total_hops; + global $cost_hops; + $vul = $this->w - $this->rMargin - $this->lMargin - 135; + $this->AddCol($vul,'Hop','L'); + $this->AddCol(35,'Land','L'); + $this->AddCol(15,'Soort','L'); + $this->AddCol(20,'Moment','L'); + $this->AddCol(15,'Alpha','R'); + $this->AddCol(12,'IBU','R'); + $this->AddCol(18,'Gram','R'); + $this->AddCol(20,'Prijs','R'); + + $cMargin=$this->cMargin; + $this->cMargin=2; + $this->TableX=$this->lMargin; + $this->TableHeader(); + $this->ProcessingTable=true; + + $this->SetFont('Helvetica','',9); + $this->SetFillColor(100, 250, 65); + + $arr = json_decode($row['json_hops'], true); + foreach($arr as $item) { //foreach element in $arr + $name = iconv('UTF-8','windows-1252',$item['h_name']); + $origin = iconv('UTF-8','windows-1252',$item['h_origin']); + $useat = iconv('UTF-8','windows-1252',$item['h_useat']); + $form = iconv('UTF-8','windows-1252',$item['h_form']); + $amount = floatval($item['h_amount']) * 1000; + $mass = $amount; + $costkg = floatval($item['h_cost']); + $time = floatval($item['h_time']); + $alpha = floatval($item['h_alpha']); + + $cost = ($amount * $costkg) / 1000; + $cost_hops += $cost; + $total_hops += $amount; + + $fmoment = 1.0; + $moment = "Kook@".$time; + if (($useat == "Dry Hop") || ($useat == "Dry hop")) { + $fmoment = 0.0; + $moment = "Dry-hop"; + } else if ($useat == "Whirlpool") { + $fmoment = 0.0; + $moment = "Whirlpool"; + } else if ($useat == "Mash") { + $fmoment = 0.7; // Brouwhulp + $moment = "Maischen"; + } else if (($useat == "First Wort") || ($useat == "First wort")) { + $fmoment = 1.1; // Brouwhulp, Louis, Ozzie + $moment = "First wort"; + } else if ($useat == "Aroma") { + $fmoment = 0.0; // Brouwhulp 1.0 redeneert vlamuit. + $moment = "Vlamuit"; + } + + $pfactor = 1.0; + if ($form == "Pellet") { + $pfactor = 1.1; + } + + /* Tinseth only for now */ + $AddedAlphaAcids = (($alpha / 100) * $mass * 1000) / floatval($row['batch_size']); + $Bigness_factor = 1.65 * pow( 0.000125, floatval($row['est_og']) - 1); + $BoilTime_factor = ((1 - exp(-0.04 * $time)) / 4.15); + $utiisation = $Bigness_factor * $BoilTime_factor; + $ibu = (round($utiisation * $AddedAlphaAcids * $fmoment * $pfactor * 10) / 10.0); + + $this->Cell($vul,5,$name,0,0,'L',true); + $this->Cell(35,5,$origin,0,0,'L',true); + $this->Cell(15,5,$form,0,0,'L',true); + $this->Cell(20,5,$moment,0,0,'L',true); + $this->Cell(15,5,sprintf("%.1f%%",$alpha),0,0,'R',true); + $this->Cell(12,5,sprintf("%.1f",$ibu),0,0,'R',true); + $this->Cell(18,5,sprintf("%.1f",$amount),0,0,'R',true); + $this->Cell(20,5,sprintf("%8.3f",$cost).EURO,0,0,'R',true); + $this->Ln(); + } + + $this->SetFillColor(210,245,255); + $this->Cell($vul+97,5,'',0,0,'L',false); + $this->Cell(18,5,sprintf("%.1f",$total_hops),0,0,'R',true); + $this->Cell(20,5,sprintf("%8.3f",$cost_hops).EURO,0,0,'R',true); + $this->Ln(); + $this->ProcessingTable=false; + $this->cMargin=$cMargin; + $this->aCols=array(); + } + + function TableYeasts($row) { + global $cost_yeasts; + $vul = $this->w - $this->rMargin - $this->lMargin - 140; + $this->AddCol(27,'Laboratorium','L'); + $this->AddCol(18,'Product','L'); + $this->AddCol($vul,'Gist','L'); + $this->AddCol(20,'Gebruik','L'); + $this->AddCol(15,'Attn','R'); + $this->AddCol(22,'Vorm','L'); + $this->AddCol(18,'Gram','R'); + $this->AddCol(20,'Prijs','R'); + + $cMargin=$this->cMargin; + $this->cMargin=2; + $this->TableX=$this->lMargin; + $this->TableHeader(); + $this->ProcessingTable=true; + + $this->SetFont('Helvetica','',9); + $this->SetFillColor(175, 175, 255); + $svg = 70; /* Conservative SVG% as default */ + + $arr = json_decode($row['json_yeasts'], true); + foreach($arr as $item) { //foreach element in $arr + $name = iconv('UTF-8','windows-1252',$item['y_name']); + $laboratory = iconv('UTF-8','windows-1252',$item['y_laboratory']); + $product_id = iconv('UTF-8','windows-1252',$item['y_product_id']); + $form = iconv('UTF-8','windows-1252',$item['y_form']); + $use = iconv('UTF-8','windows-1252',$item['y_use']); + $amount = floatval($item['y_amount']) * 1000; + $costg = floatval($item['y_cost']); + $attenuation = floatval($item['y_attenuation']); + $cost = $amount * $costg; + $cost_yeasts += $cost; + + if ($use == "Primary") { + $svg = $attenuation; + $gebruik = 'Hoofdgist'; + } else if ($use == "Bottle") + $gebruik = 'Bottelgist'; + else + $gebruik = $use; + + if ($form == "Liquid") + $vorm = 'Vloeibaar'; + else if ($form == "Dry") + $vorm = 'Droog'; + else if ($form == "Slant") + $vorm = 'Schuine buis'; + else if ($form == "Culture") + $vorm = 'Slurry'; + else if ($form == "Frozen") + $vorm = 'Ingevroren'; + else if ($form == "Bottel") + $vorm = 'Depot'; + else + $vorm = $form; + + $this->Cell(27,5,$laboratory,0,0,'L',true); + $this->Cell(18,5,$product_id,0,0,'L',true); + $this->Cell($vul,5,$name,0,0,'L',true); + $this->Cell(20,5,$gebruik,0,0,'L',true); + $this->Cell(15,5,sprintf("%.1f%%",$attenuation),0,0,'R',true); + $this->Cell(22,5,$vorm,0,0,'L',true); + $this->Cell(18,5,sprintf("%.1f",$amount),0,0,'R',true); + $this->Cell(20,5,sprintf("%8.3f",$cost).EURO,0,0,'R',true); + $this->Ln(); + } + + $this->SetFillColor(210,245,255); + $this->Cell($vul+120,5,'',0,0,'L',false); + $this->Cell(20,5,sprintf("%8.3f",$cost_yeasts).EURO,0,0,'R',true); + $this->Ln(); + + $og = floatval($row['est_og']); + $fg = $og - ($svg * ($og - 1.0)) / 100; + $this->Cell(0,5,'FG: '.sprintf("%5.3f",$fg),0,0,'L',false); + $this->Ln(); + $this->ProcessingTable=false; + $this->cMargin=$cMargin; + $this->aCols=array(); + } + + /* + MiscColor:= RGBtoColor(240, 250, 65); + WaterAgentColor:= RGBtoColor(240, 140, 130); + FiningColor:= RGBtoColor(95, 180, 25); + WaterColor:= RGBtoColor(120, 255, 250); + */ + function TableMiscs($row) { + global $cost_miscs; + $vul = $this->w - $this->rMargin - $this->lMargin - 135; + } } @@ -188,13 +391,18 @@ */ $pdf = new PDF(); $pdf->AddPage(); -$prop = array('HeaderColor'=>array(255,150,100), 'color1'=>array(210,245,255), - 'color2'=>array(255,255,210), 'TotalColor'=>array(255,150,100), 'padding'=>2); -$pdf->TableGlobal($row,$prop); +$pdf->TableGlobal($row); +$pdf->Ln(10); +$pdf->TableFermentables($row); $pdf->Ln(10); -$pdf->TableFermentables($row,$prop); +$pdf->TableHops($row); +$pdf->Ln(10); +$pdf->TableYeasts($row); +$pdf->Ln(10); +$pdf->TableMiscs($row); //$pdf->SetFont('Helvetica','',10); //$pdf->Cell(0,10,'Receptje '.$record,0,1,'C'); - +// Disclaimer toeveogen dat dit alleen recept ontwikkeling is. +// Footer sectie met berekende/geschatte uitkomsten zoals FG, ABV, kostprijs per liter enz. $pdf->Output();