1092 } |
1092 } |
1093 |
1093 |
1094 function calcStage() { |
1094 function calcStage() { |
1095 |
1095 |
1096 var newstage = dataRecord.stage; |
1096 var newstage = dataRecord.stage; |
1097 |
1097 /* parseFloat$("#brew_date_start").val()) returns the year if it is a valid mysql style date. */ |
1098 if (newstage < 1 && dataRecord.est_og > 1.005 && dataRecord.est_color > 3 && dataRecord.est_ibu > 3) |
1098 if (newstage == 0 && dataRecord.est_og > 1.005 && dataRecord.est_color > 3 && dataRecord.est_ibu > 3) |
1099 newstage = 1; |
1099 newstage = 1; |
1100 if (newstage < 2 && dataRecord.brew_date_start != '') |
1100 if (newstage == 1 && parseFloat($("#brew_date_start").val()) > 2000) |
1101 newstage = 2; // Brewday |
1101 newstage = 2; // Brewday |
1102 if (newstage < 3 && dataRecord.brew_date_end != '') |
1102 if (newstage == 2 && parseFloat($("#brew_date_end").val()) > 2000) |
1103 newstage = 3; // Primary |
1103 newstage = 3; // Primary |
1104 if (newstage < 4 && dataRecord.primary_end_date != '') |
1104 if (newstage == 3 && parseFloat($("#primary_end_date").val()) > 2000) |
1105 newstage = 4; // Secondary |
1105 newstage = 4; // Secondary |
1106 if (newstage < 5 && dataRecord.secondary_end_date != '') |
1106 if (newstage == 4 && parseFloat($("#secondary_end_date").val()) > 2000) |
1107 newstage = 5; // Tertiary |
1107 newstage = 5; // Tertiary |
1108 if (newstage < 6 && dataRecord.package_date != '') |
1108 if (newstage == 5 && parseFloat($("#package_date").val()) > 2000) |
1109 newstage = 6; // Package |
1109 newstage = 6; // Package |
1110 if (newstage >= 6 && newstage < 10) { |
1110 if (newstage >= 6 && newstage < 9) { |
1111 var d = new Date(); |
1111 var d = new Date(); |
1112 var date2 = dataRecord.package_date; |
1112 var date2 = $("#package_date").val(); |
1113 date2 = date2.split('-'); |
1113 date2 = date2.split('-'); |
1114 // Now we convert the array to a Date object |
1114 // Now we convert the array to a Date object |
1115 date1 = new Date(d.getFullYear(), d.getMonth(), d.getDate()); |
1115 date1 = new Date(d.getFullYear(), d.getMonth(), d.getDate()); |
1116 date2 = new Date(date2[0], date2[1]-1, date2[2]); |
1116 date2 = new Date(date2[0], date2[1]-1, date2[2]); |
1117 // We use the getTime() method and get the unixtime |
1117 // We use the getTime() method and get the unixtime |
1119 date2_unixtime = parseInt(date2.getTime() / 1000); |
1119 date2_unixtime = parseInt(date2.getTime() / 1000); |
1120 // This is the calculated difference in seconds |
1120 // This is the calculated difference in seconds |
1121 var timeDifference = date1_unixtime - date2_unixtime; |
1121 var timeDifference = date1_unixtime - date2_unixtime; |
1122 var timeDifferenceInDays = timeDifference / 60 / 60 / 24; |
1122 var timeDifferenceInDays = timeDifference / 60 / 60 / 24; |
1123 console.log(date1+' '+date2+' days: '+timeDifferenceInDays); |
1123 console.log(date1+' '+date2+' days: '+timeDifferenceInDays); |
1124 if (newstage < 7 && timeDifferenceInDays < 14) // Carbonation period |
1124 if (timeDifferenceInDays > 0) { // At least one day |
1125 newstage = 7; |
1125 if (timeDifferenceInDays >= 42) // 6 weeks |
1126 else if (newstage < 8 && timeDifferenceInDays < 42) // Mature 6 weeks |
1126 newstage = 9; // Ready to taste |
1127 newstage = 8; |
1127 else if (timeDifferenceInDays >= 14) // 14 days |
1128 else |
1128 newstage = 8; // Mature |
1129 newstage = 9; |
1129 else |
1130 } |
1130 newstage = 7; // Carbonation |
1131 if (newstage < 10 && dataRecord.taste_date != '') |
1131 } |
|
1132 } |
|
1133 if (newstage == 9 && parseFloat($("#taste_date").val()) > 2000) |
1132 newstage = 10; // Ready |
1134 newstage = 10; // Ready |
1133 |
1135 |
1134 if (newstage > dataRecord.stage) { |
1136 if (newstage > dataRecord.stage) { |
1135 console.log("calcStage() old: "+dataRecord.stage+" new: "+newstage); |
1137 console.log("calcStage() old: "+dataRecord.stage+" new: "+newstage); |
1136 dataRecord.stage = newstage; |
1138 dataRecord.stage = newstage; |
3864 }); |
3867 }); |
3865 $("#sparge_acid_perc").jqxNumberInput( Perc0 ); |
3868 $("#sparge_acid_perc").jqxNumberInput( Perc0 ); |
3866 $("#sparge_acid_perc").jqxNumberInput({ symbol: '%', symbolPosition: 'right' }); |
3869 $("#sparge_acid_perc").jqxNumberInput({ symbol: '%', symbolPosition: 'right' }); |
3867 |
3870 |
3868 // Tab 9, Brewday |
3871 // Tab 9, Brewday |
3869 $("#brew_date_start").jqxDateTimeInput({ theme: theme, width: 230, height: 23, formatString: 'yyyy-MM-dd HH:mm:ss', showTimeButton: true }); |
3872 $("#brew_date_start").jqxTooltip({ content: 'Brouw datum en tijd. Voor planning laat de tijd op 00:00:00 staan.' }); |
3870 $("#brew_date_end").jqxDateTimeInput({ theme: theme, width: 230, height: 23, formatString: 'yyyy-MM-dd HH:mm:ss', showTimeButton: true }); |
3873 $("#brew_date_start").jqxDateTimeInput( DateTimeopts ); |
|
3874 $('#brew_date_start').on('close', function (event) { calcStage(); }); |
|
3875 $("#brew_date_end").jqxTooltip({ content: 'End datum en tijd van de brouw. Leeg laten als er nog niet gebrouwen is.' }); |
|
3876 $("#brew_date_end").jqxDateTimeInput( DateTimeopts ); |
|
3877 $('#brew_date_end').on('close', function (event) { calcStage(); }); |
|
3878 $("#brew_mash_ph").jqxTooltip({ content: 'De gemeten pH tijdens het maischen eventueel na correctie.' }); |
3871 $("#brew_mash_ph").jqxNumberInput( SpinpH ); |
3879 $("#brew_mash_ph").jqxNumberInput( SpinpH ); |
|
3880 $("#est_mash_ph").jqxTooltip({ content: 'De gewenste pH tijdens het maischen.' }); |
3872 $("#est_mash_ph").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); |
3881 $("#est_mash_ph").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); |
|
3882 $("#brew_preboil_ph").jqxTooltip({ content: 'De gemeten pH in de kookketel na het spoelen en voor de kook.' }); |
3873 $("#brew_preboil_ph").jqxNumberInput( SpinpH ); |
3883 $("#brew_preboil_ph").jqxNumberInput( SpinpH ); |
3874 // est_preboil_ph |
3884 // est_preboil_ph |
|
3885 $("#brew_aboil_ph").jqxTooltip({ content: 'De gemeten pH na het koken.' }); |
3875 $("#brew_aboil_ph").jqxNumberInput( SpinpH ); |
3886 $("#brew_aboil_ph").jqxNumberInput( SpinpH ); |
3876 // est_aboil_ph |
3887 // est_aboil_ph |
|
3888 $("#brew_mash_sg").jqxTooltip({ content: 'Het bereikte SG na het maischen.' }); |
3877 $("#brew_mash_sg").jqxNumberInput( SGopts ); |
3889 $("#brew_mash_sg").jqxNumberInput( SGopts ); |
3878 $("#brew_mash_sg").on('valueChanged', function () { calcMashEfficiency(); }); |
3890 $("#brew_mash_sg").on('valueChanged', function () { calcMashEfficiency(); }); |
|
3891 $("#est_mash_sg").jqxTooltip({ content: 'Het berekende verwachte SG na het maischen.' }); |
3879 $("#est_mash_sg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 3 }); |
3892 $("#est_mash_sg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 3 }); |
|
3893 $("#brew_preboil_sg").jqxTooltip({ content: 'Het gemeten SG in de kookketel na het spoelen en voor het koken.' }); |
3880 $("#brew_preboil_sg").jqxNumberInput( SGopts ); |
3894 $("#brew_preboil_sg").jqxNumberInput( SGopts ); |
|
3895 $("#brew_aboil_sg").jqxTooltip({ content: 'Het gemeten SG in de kookketel na het koken.' }); |
3881 $("#brew_aboil_sg").jqxNumberInput( SGopts ); |
3896 $("#brew_aboil_sg").jqxNumberInput( SGopts ); |
3882 $("#est_og3").jqxTooltip({ content: 'Het geschatte begin SG van dit product.' }); |
3897 $("#est_og3").jqxTooltip({ content: 'Het geschatte SG in de kookketel na het koken.' }); |
3883 $("#est_og3").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 70, height: 23, decimalDigits: 3, readOnly: true }); |
3898 $("#est_og3").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 70, height: 23, decimalDigits: 3, readOnly: true }); |
|
3899 $("#brew_mash_efficiency").jqxTooltip({ content: 'Het behaalde maisch rendement.' }); |
3884 $("#brew_mash_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); |
3900 $("#brew_mash_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); |
|
3901 $("#brew_preboil_volume").jqxTooltip({ content: 'Het volume van het wort voor het koken.' }); |
3885 $("#brew_preboil_volume").jqxNumberInput( Spin1dec5 ); |
3902 $("#brew_preboil_volume").jqxNumberInput( Spin1dec5 ); |
|
3903 $("#brew_aboil_volume").jqxTooltip({ content: 'Het volume van het wort na het koken.' }); |
3886 $("#brew_aboil_volume").jqxNumberInput( Spin1dec5 ); |
3904 $("#brew_aboil_volume").jqxNumberInput( Spin1dec5 ); |
|
3905 $("#brew_preboil_efficiency").jqxTooltip({ content: 'Het berekende rendement voor het koken.' }); |
3887 $("#brew_preboil_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); |
3906 $("#brew_preboil_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); |
|
3907 $("#brew_aboil_efficiency").jqxTooltip({ content: 'Het bereikte rendement na het koken.' }); |
3888 $("#brew_aboil_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); |
3908 $("#brew_aboil_efficiency").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 90, height: 23, decimalDigits: 1 }); |
3889 $("#brew_sparge_temperature").jqxNumberInput( Spin1dec5 ); |
3909 $("#brew_sparge_temperature").jqxNumberInput( Spin1dec5 ); |
3890 $("#brew_sparge_volume").jqxNumberInput( Spin1dec5 ); |
3910 $("#brew_sparge_volume").jqxNumberInput( Spin1dec5 ); |
3891 $("#brew_whirlpool9").jqxNumberInput( PosInt ); |
3911 $("#brew_whirlpool9").jqxNumberInput( PosInt ); |
3892 $("#brew_whirlpool9").jqxNumberInput({ max: 120 }); |
3912 $("#brew_whirlpool9").jqxNumberInput({ max: 120 }); |
3943 $("#primary_end_temp").jqxNumberInput( YeastT ); |
3963 $("#primary_end_temp").jqxNumberInput( YeastT ); |
3944 $("#primary_end_sg").jqxNumberInput( SGopts ); |
3964 $("#primary_end_sg").jqxNumberInput( SGopts ); |
3945 $("#primary_svg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); |
3965 $("#primary_svg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); |
3946 $("#primary_end_date").jqxTooltip({ content: 'De eind datum van de hoofdvergisting en eventueel overhevelen.' }); |
3966 $("#primary_end_date").jqxTooltip({ content: 'De eind datum van de hoofdvergisting en eventueel overhevelen.' }); |
3947 $("#primary_end_date").jqxDateTimeInput( Dateopts ); |
3967 $("#primary_end_date").jqxDateTimeInput( Dateopts ); |
|
3968 $('#primary_end_date').on('close', function (event) { calcStage(); }); |
3948 $("#secondary_temp").jqxNumberInput( YeastT ); |
3969 $("#secondary_temp").jqxNumberInput( YeastT ); |
3949 $("#secondary_end_date").jqxTooltip({ content: 'De eind datum van de navergisting en het begin van het lageren.' }); |
3970 $("#secondary_end_date").jqxTooltip({ content: 'De eind datum van de navergisting en het begin van het lageren.' }); |
3950 $("#secondary_end_date").jqxDateTimeInput( Dateopts ); |
3971 $("#secondary_end_date").jqxDateTimeInput( Dateopts ); |
|
3972 $('#secondary_end_date').on('close', function (event) { calcStage(); }); |
3951 $("#tertiary_temp").jqxNumberInput( YeastT ); |
3973 $("#tertiary_temp").jqxNumberInput( YeastT ); |
3952 $("#fg").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 90, height: 23, min: 0, decimalDigits: 3, spinButtons: true, spinButtonsStep: 0.001 }); |
3974 $("#fg").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 90, height: 23, min: 0, decimalDigits: 3, spinButtons: true, spinButtonsStep: 0.001 }); |
3953 $("#final_abv").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); |
3975 $("#final_abv").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); |
3954 $("#final_svg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); |
3976 $("#final_svg").jqxNumberInput({ inputMode: 'simple', readOnly: true, theme: theme, width: 70, height: 23, decimalDigits: 1 }); |
3955 $("#FLog").jqxButton({ template: "info", width: '150px', theme: theme }); |
3977 $("#FLog").jqxButton({ template: "info", width: '150px', theme: theme }); |
3961 |
3983 |
3962 // Tab 11, Packaging |
3984 // Tab 11, Packaging |
3963 // TODO: high gravity packaging, extra water and recalc abv, color and ibu. |
3985 // TODO: high gravity packaging, extra water and recalc abv, color and ibu. |
3964 $("#package_date").jqxTooltip({ content: 'De verpakkings datum van dit bier.' }); |
3986 $("#package_date").jqxTooltip({ content: 'De verpakkings datum van dit bier.' }); |
3965 $("#package_date").jqxDateTimeInput( Dateopts ); |
3987 $("#package_date").jqxDateTimeInput( Dateopts ); |
|
3988 $('#package_date').on('close', function (event) { calcStage(); }); |
3966 $("#st_carb_min2").jqxTooltip({ content: 'Het minimum aanbevolen koolzuur volume voor deze bierstijl.'}); |
3989 $("#st_carb_min2").jqxTooltip({ content: 'Het minimum aanbevolen koolzuur volume voor deze bierstijl.'}); |
3967 $("#st_carb_min2").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 1, readOnly: true }); |
3990 $("#st_carb_min2").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 1, readOnly: true }); |
3968 $("#st_carb_max2").jqxTooltip({ content: 'Het maximum aamnevolen koolzuur volume voor deze bierstijl.'}); |
3991 $("#st_carb_max2").jqxTooltip({ content: 'Het maximum aamnevolen koolzuur volume voor deze bierstijl.'}); |
3969 $("#st_carb_max2").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 1, readOnly: true }); |
3992 $("#st_carb_max2").jqxNumberInput({ inputMode: 'simple', theme: theme, width: 50, height: 23, decimalDigits: 1, readOnly: true }); |
3970 $("#bottle_amount").jqxTooltip({ content: 'De totale hoeveelheid te bottelen bier.' }); |
3993 $("#bottle_amount").jqxTooltip({ content: 'De totale hoeveelheid te bottelen bier.' }); |