Mon, 01 Aug 2022 09:56:23 +0200
Removed inventory hops and suppliers editors.
config.status | file | annotate | diff | comparison | revisions | |
www/Makefile | file | annotate | diff | comparison | revisions | |
www/export_hops.php | file | annotate | diff | comparison | revisions | |
www/export_suppliers.php | file | annotate | diff | comparison | revisions | |
www/includes/global.inc.php | file | annotate | diff | comparison | revisions | |
www/inv_hops.php | file | annotate | diff | comparison | revisions | |
www/inv_suppliers.php | file | annotate | diff | comparison | revisions | |
www/js/inv_hops.js | file | annotate | diff | comparison | revisions | |
www/js/inv_suppliers.js | file | annotate | diff | comparison | revisions |
--- a/config.status Fri Jul 22 12:15:05 2022 +0200 +++ b/config.status Mon Aug 01 09:56:23 2022 +0200 @@ -433,7 +433,7 @@ This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." -ac_pwd='/mnt/home/mbroek/MyProjects/bms' +ac_pwd='/home/mbroek/MyProjects/bms' srcdir='.' test -n "$AWK" || AWK=awk # The default lists apply if the user does not specify any file. @@ -621,7 +621,7 @@ S["CC"]="gcc" S["CYEARS"]="2016-2022" S["COPYRIGHT"]="Copyright (C) 2016-2022 Michiel Broek, All Rights Reserved" -S["VERSION"]="0.3.40" +S["VERSION"]="0.3.41" S["PACKAGE"]="bms" S["SUBDIRS"]="bmsd doc script tools www" S["target_alias"]="" @@ -709,7 +709,7 @@ D["PACKAGE_STRING"]=" \"\"" D["PACKAGE_BUGREPORT"]=" \"\"" D["PACKAGE_URL"]=" \"\"" -D["VERSION"]=" \"0.3.40\"" +D["VERSION"]=" \"0.3.41\"" D["COPYRIGHT"]=" \"Copyright (C) 2016-2022 Michiel Broek, All Rights Reserved\"" D["STDC_HEADERS"]=" 1" D["HAVE_SYS_TYPES_H"]=" 1"
--- a/www/Makefile Fri Jul 22 12:15:05 2022 +0200 +++ b/www/Makefile Mon Aug 01 09:56:23 2022 +0200 @@ -4,15 +4,15 @@ include ../Makefile.global SRC = config.php.dist crontasks.php \ - export_equipments.php export_fermentables.php export_hops.php export_mashs.php \ - export_miscs.php export_styles.php export_suppliers.php export_waters.php \ + export_equipments.php export_fermentables.php export_mashs.php \ + export_miscs.php export_styles.php export_waters.php \ export_yeasts.php favicon.ico gen_about.php \ getbrewlog.php getco2meter.php getco2pressurelog.php getfermentablesources.php \ getfermenter.php getfermentlog.php gethopsources.php getmiscsources.php getnode.php \ getwatersources.php getyeastsources.php getispindel.php getispindellog.php \ import_ingredients.php index.php \ - inv_equipments.php inv_fermentables.php inv_hops.php \ - inv_miscs.php inv_suppliers.php inv_waters.php inv_yeasts.php \ + inv_equipments.php inv_fermentables.php \ + inv_miscs.php inv_waters.php inv_yeasts.php \ log_brew.php log_co2pressure.php log_fermentation.php log_ispindel.php \ mon_brewer.php mon_co2meter.php mon_fermenter.php mon_ispindel.php mon_node.php \ prod_archive_code.php prod_archive_date.php prod_archive_name.php prod_beerxml.php \
--- a/www/export_hops.php Fri Jul 22 12:15:05 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,124 +0,0 @@ -<?php -require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); -require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.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; -} - -$result = mysqli_query($link, "SELECT * FROM inventory_hops ORDER BY origin,name"); - - -$hoptype = array( 'Bittering', 'Aroma', 'Both' ); -$hopform = array( 'Pellet', 'Plug', 'Leaf', 'Leaf', 'Leaf' ); - - - -/* - * Create beerxml output - */ -$xw = xmlwriter_open_memory(); -xmlwriter_set_indent($xw, 1); -$res = xmlwriter_set_indent_string($xw, ' '); - -xmlwriter_start_document($xw, '1.0', 'UTF-8'); - - -xmlwriter_start_element($xw, 'HOPS'); -while ($row = mysqli_fetch_array($result)) { - - xmlwriter_start_element($xw, 'HOP'); - - xmlwriter_start_element($xw, 'VERSION'); - xmlwriter_text($xw, '1'); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'NAME'); - xmlwriter_text($xw, $row['name']); - xmlwriter_end_element($xw); - - if (strlen($row['notes'])) { - xmlwriter_start_element($xw, 'NOTES'); - xmlwriter_text($xw, $row['notes']); - xmlwriter_end_element($xw); - } - - xmlwriter_start_element($xw, 'ALWAYS_ON_STOCK'); - ($row['always_on_stock']) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE'); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'ALPHA'); - xmlwriter_text($xw, sprintf("%.4f",floatval($row['alpha']))); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'BETA'); - xmlwriter_text($xw, sprintf("%.4f",floatval($row['beta']))); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'HUMULENE'); - xmlwriter_text($xw, sprintf("%.4f",floatval($row['humulene']))); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'CAROPHYLLENE'); - xmlwriter_text($xw, sprintf("%.4f",floatval($row['caryophyllene']))); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'COHUMULONE'); - xmlwriter_text($xw, sprintf("%.4f",floatval($row['cohumulone']))); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'MYRCENE'); - xmlwriter_text($xw, sprintf("%.4f",floatval($row['myrcene']))); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'TOTAL_OIL'); - xmlwriter_text($xw, sprintf("%.4f",floatval($row['total_oil']))); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'HSI'); - xmlwriter_text($xw, sprintf("%.4f",floatval($row['hsi']))); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'TYPE'); - xmlwriter_text($xw, $hoptype[$row['type']]); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'FORM'); - xmlwriter_text($xw, $hopform[$row['form']]); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'ORIGIN'); - xmlwriter_text($xw, $row['origin']); - xmlwriter_end_element($xw); - - if (strlen($row['substitutes'])) { - xmlwriter_start_element($xw, 'SUBSTITUTES'); - xmlwriter_text($xw, $row['substitutes']); - xmlwriter_end_element($xw); - } - - if (floatval($row['cost']) > 0) { - xmlwriter_start_element($xw, 'COST'); - xmlwriter_text($xw, sprintf("%.4f",floatval($row['cost']))); - xmlwriter_end_element($xw); - } - - xmlwriter_end_element($xw); // HOP -} -xmlwriter_end_element($xw); // HOPS - -$beerxml = xmlwriter_output_memory($xw); - -Header('Content-type: text/xml'); -header('Content-Disposition: attachment; filename="hops.xml"'); -header('Content-Transfer-Encoding: binary'); -header('Expires: 0'); -header('Pragma: no-cache'); -header('Content-Length: '.strlen($beerxml)); -exit($beerxml);
--- a/www/export_suppliers.php Fri Jul 22 12:15:05 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -<?php -require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); -require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.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; -} - -$result = mysqli_query($link, "SELECT * FROM inventory_suppliers ORDER BY name"); - - - -/* - * Create beerxml output - */ -$xw = xmlwriter_open_memory(); -xmlwriter_set_indent($xw, 1); -$res = xmlwriter_set_indent_string($xw, ' '); - -xmlwriter_start_document($xw, '1.0', 'UTF-8'); - - -xmlwriter_start_element($xw, 'SUPPLIERS'); -while ($row = mysqli_fetch_array($result)) { - - xmlwriter_start_element($xw, 'SUPPLIER'); - - xmlwriter_start_element($xw, 'VERSION'); - xmlwriter_text($xw, '1'); - xmlwriter_end_element($xw); - - xmlwriter_start_element($xw, 'NAME'); - xmlwriter_text($xw, $row['name']); - xmlwriter_end_element($xw); - - if (strlen($row['notes'])) { - xmlwriter_start_element($xw, 'NOTES'); - xmlwriter_text($xw, $row['notes']); - xmlwriter_end_element($xw); - } - - if (strlen($row['address'])) { - xmlwriter_start_element($xw, 'ADDRESS'); - xmlwriter_text($xw, $row['address']); - xmlwriter_end_element($xw); - } - - if (strlen($row['city'])) { - xmlwriter_start_element($xw, 'CITY'); - xmlwriter_text($xw, $row['city']); - xmlwriter_end_element($xw); - } - - if (strlen($row['zip'])) { - xmlwriter_start_element($xw, 'ZIP'); - xmlwriter_text($xw, $row['zip']); - xmlwriter_end_element($xw); - } - - if (strlen($row['country'])) { - xmlwriter_start_element($xw, 'COUNTRY'); - xmlwriter_text($xw, $row['country']); - xmlwriter_end_element($xw); - } - - if (strlen($row['website'])) { - xmlwriter_start_element($xw, 'WEBSITE'); - xmlwriter_text($xw, $row['website']); - xmlwriter_end_element($xw); - } - - if (strlen($row['email'])) { - xmlwriter_start_element($xw, 'EMAIL'); - xmlwriter_text($xw, $row['email']); - xmlwriter_end_element($xw); - } - - if (strlen($row['phone'])) { - xmlwriter_start_element($xw, 'PHONE'); - xmlwriter_text($xw, $row['phone']); - xmlwriter_end_element($xw); - } - - xmlwriter_end_element($xw); // SUPPLIER -} -xmlwriter_end_element($xw); // SUPPLIERS - -$beerxml = xmlwriter_output_memory($xw); - -Header('Content-type: text/xml'); -header('Content-Disposition: attachment; filename="suppliers.xml"'); -header('Content-Transfer-Encoding: binary'); -header('Expires: 0'); -header('Pragma: no-cache'); -header('Content-Length: '.strlen($beerxml)); -exit($beerxml);
--- a/www/includes/global.inc.php Fri Jul 22 12:15:05 2022 +0200 +++ b/www/includes/global.inc.php Mon Aug 01 09:56:23 2022 +0200 @@ -255,9 +255,7 @@ </li> <li style='width: 80px;'>Inventaris <ul style='width: 250px;'> - <li><img style='float: left; margin-right: 5px;' src='images/address-book.png' /><a href="inv_suppliers.php">Leveranciers</a></li> <li><img style='float: left; margin-right: 5px;' src='images/graan.png' /><a href="inv_fermentables.php">Vergistbare ingredienten</a></li> - <li><img style='float: left; margin-right: 5px;' src='images/hop.png' /><a href="inv_hops.php">Hoppen</a></li> <li><img style='float: left; margin-left: 4px; margin-right: 9px;' src='images/erlenmeyer.png' /><a href="inv_yeasts.php">Gisten</a></li> <li><img style='float: left; margin-right: 5px;' src='images/peper.png' /><a href="inv_miscs.php">Overige ingredienten</a></li> <li><img style='float: left; margin-left: 3px; margin-right: 9px;' src='images/water.png' /><a href="inv_waters.php">Brouwwater</a></li>
--- a/www/inv_hops.php Fri Jul 22 12:15:05 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -<?php -require_once($_SERVER['DOCUMENT_ROOT'].'/includes/global.inc.php'); -page_header('Hoppen', 'inv_hops'); -?> - - <div id="jqxgrid"></div> - <div style="margin-top: 30px;"> - <div id="cellbegineditevent"></div> - <div style="margin-top: 10px;" id="cellendeditevent"></div> - </div> - - <!-- Popup editor window. --> - <div id="popupWindow"> - <div>Wijzig hop.</div> - <div style="overflow: hidden;"> - <table style="width: 100%;"> - <tr> - <td align="right" style="vertical-align: top;">Hop naam:</td> - <td align="left" colspan="3" style="vertical-align: top;"><input id="name" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Opmerkingen:</td> - <td align="left" colspan="3"><textarea id="notes"></textarea></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Type hop:</td> - <td align="left"><div id="type"></div></td> - <td align="right" style="vertical-align: top;">Totaal oliegehalte %:</td> - <td align="left" colspan="3" style="vertical-align: top;"><input id="total_oil" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Herkomst:</td> - <td align="left" style="vertical-align: top;"><input id="origin" /></td> - <td align="right" style="vertical-align: top;">Humuleen %:</td> - <td align="left" style="vertical-align: top;"><input id="humulene" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Vervangen door:</td> - <td align="left" style="vertical-align: top;"><input id="substitutes" /></td> - <td align="right" style="vertical-align: top;">Caryofyleen %:</td> - <td align="left" style="vertical-align: top;"><input id="caryophyllene" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Hop stabiliteitindex:</td> - <td align="left" style="vertical-align: top;"><input id="hsi" /></td> - <td align="right" style="vertical-align: top;">Myrceen %:</td> - <td align="left" style="vertical-align: top;"><input id="myrcene" /></td> - </tr> - <tr> - <td colspan="2"> </td> - <td align="right" style="vertical-align: top;">Cohumuloon %:</td> - <td align="left" style="vertical-align: top;"><input id="cohumulone" /></td> - </tr> - <tr> - <td colspan="4"><hr></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Voorraad in gram:</td> - <td align="left"><div id="inventory"></div></td> - <td align="right" style="vertical-align: top;">Vorm van de voorraad:</td> - <td align="left"><div id="form"></div></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Prijs per kg.:</td> - <td align="left"><div id="cost"></div></td> - <td align="right" style="vertical-align: top;">Alphazuur %:</td> - <td align="left" style="vertical-align: top;"><input id="alpha" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Altijd op voorraad:</td> - <td align="left"><div id="always_on_stock"></div></td> - <td align="right" style="vertical-align: top;">Betazuur %:</td> - <td align="left" style="vertical-align: top;"><input id="beta" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Waarde voorraad:</td> - <td align="left"><div id="totval"></div></td> - <td align="right" style="vertical-align: top;">Oogst datum:</td> - <td align="left" style="vertical-align: top;"><div id="production_date"></div></td> - </tr> - <tr> - <td colspan="2"> </td> - <td align="right" style="vertical-align: top;">Gebruik voor datum:</td> - <td align="left" style="vertical-align: top;"><div id="tht_date"></div></td> - </tr> - <tr> - <td style="padding-top: 40px;" align="right"><input type="button" id="Delete" value="Verwijder" /></td> - <td style="padding-top: 40px;" align="left"><input type="button" id="Clone" value="Kloon" /></td> - <td align="right"></td> - <td style="padding-top: 40px;" align="left"><input style="margin-right: 5px;" type="button" id="Save" value="Sla op" /><input id="Cancel" type="button" value="Annuleer" /></td> - </tr> - </table> - </div> - </div> - -<?php -confirm_delete(); -page_footer(); -?>
--- a/www/inv_suppliers.php Fri Jul 22 12:15:05 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -<?php -require_once($_SERVER['DOCUMENT_ROOT'].'/includes/global.inc.php'); -page_header('Leveranciers', 'inv_suppliers'); -?> - - <div id="jqxgrid"></div> - <div style="margin-top: 30px;"> - <div id="cellbegineditevent"></div> - <div style="margin-top: 10px;" id="cellendeditevent"></div> - </div> - - <!-- Popup editor window. --> - <div id="popupWindow"> - <div>Wijzig leverancier.</div> - <div style="overflow: hidden;"> - <table style="width: 100%;"> - <tr> - <td align="right" style="vertical-align: top; padding: 3px;">Leverancier naam:</td> - <td colspan="3" style="vertical-align: top; padding: 3px;"><input id="name" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top; padding: 3px;">Adres:</td> - <td align="left" style="vertical-align: top; padding: 3px;"><input id="address" /></td> - <td align="right" style="vertical-align: top; padding: 3px;">Postcode:</td> - <td align="left" style="vertical-align: top; padding: 3px;"><input id="zip" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top; padding: 3px;">Plaats:</td> - <td align="left" colspan="3" style="vertical-align: top; padding: 3px;"><input id="city" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top; padding: 3px;">Land:</td> - <td align="left" colspan="3" style="vertical-align: top; padding: 3px;"><input id="country" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top; padding: 3px;">Website:</td> - <td align="left" colspan="3" style="vertical-align: top; padding: 3px;"><input id="website" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top; padding: 3px;">Email:</td> - <td align="left" colspan="3" style="vertical-align: top; padding: 3px;"><input id="email" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top; padding: 3px;">Telefoon:</td> - <td align="left" colspan="3" style="vertical-align: top; padding: 3px;"><input id="phone" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top; padding: 3px;">Opmerkingen:</td> - <td align="left" colspan="3" style=" padding: 3px;"><textarea id="notes"></textarea></td> - </tr> - <tr> - <td style="padding-top: 110px;" align="right"><input type="button" id="Delete" value="Verwijder" /></td> - <td align="right"></td> - <td align="right"></td> - <td style="padding-top: 110px;" align="left"> - <input style="margin-right: 5px;" type="button" id="Save" value="Sla op" /> - <input id="Cancel" type="button" value="Annuleer" /> - </td> - </tr> - </table> - </div> - </div> - -<?php -confirm_delete(); -page_footer(); -?>
--- a/www/js/inv_hops.js Fri Jul 22 12:15:05 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,411 +0,0 @@ -/***************************************************************************** - * Copyright (C) 2014-2022 - * - * Michiel Broek <mbroek at mbse dot eu> - * - * This file is part of Brewery Management System - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2, or (at your option) any - * later version. - * - * BrewCloud is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ThermFerm; see the file COPYING. If not, write to the Free - * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - *****************************************************************************/ - - -function createDelElements() { - $('#eventWindow').jqxWindow({ - theme: theme, - position: { x: 490, y: 210 }, - width: 300, - height: 175, - resizable: false, - isModal: true, - modalOpacity: 0.4, - okButton: $('#delOk'), - cancelButton: $('#delCancel'), - initContent: function() { - $('#delOk').jqxButton({ template: 'danger', width: '65px', theme: theme }); - $('#delCancel').jqxButton({ template: 'success', width: '65px', theme: theme }); - $('#delCancel').focus(); - } - }); - $('#eventWindow').jqxWindow('hide'); -} - - -$(document).ready(function() { - - function calcTotal(cost, inventory) { - $('#totval').val(cost * (inventory / 1000)); - } - - var dataRecord = {}, - url = 'includes/db_inventory_hops.php', - source = { - datatype: 'json', - cache: false, - datafields: [ - { name: 'record', type: 'number' }, - { name: 'name', type: 'string' }, - { name: 'uuid', type: 'string' }, - { name: 'alpha', type: 'float' }, - { name: 'beta', type: 'float' }, - { name: 'humulene', type: 'float' }, - { name: 'caryophyllene', type: 'float' }, - { name: 'cohumulone', type: 'float' }, - { name: 'myrcene', type: 'float' }, - { name: 'hsi', type: 'float' }, - { name: 'type', type: 'string' }, - { name: 'form', type: 'string' }, - { name: 'notes', type: 'string' }, - { name: 'origin', type: 'string' }, - { name: 'substitutes', type: 'string' }, - { name: 'always_on_stock', type: 'int' }, - { name: 'inventory', type: 'float' }, - { name: 'cost', type: 'float' }, - { name: 'production_date', type: 'string' }, - { name: 'tht_date', type: 'string' }, - { name: 'total_oil', type: 'float' } - ], - id: 'record', - url: url, - deleterow: function(rowid, commit) { - var data = 'delete=true&' + $.param({ record: rowid }); - $.ajax({ - dataType: 'json', - url: url, - cache: false, - data: data, - type: 'POST', - success: function(data) { - if (data.error) { - console.log('delete: ' + data.msg); - alert('Fout: ' + data.msg); - } else { - console.log('delete: success'); - } - location.reload(true); - }, - error: function(jqXHR, textStatus, errorThrown) { commit(false); } - }); - }, - addrow: function(rowid, rowdata, position, commit) { - var data = 'insert=true&' + $.param(rowdata); - $.ajax({ - dataType: 'json', - url: url, - cache: false, - data: data, - type: 'POST', - success: function(data) { - if (data.error) { - console.log('insert: ' + data.msg); - alert('Fout: ' + data.msg); - } else { - console.log('insert: success'); - } - location.reload(true); - }, - error: function(jqXHR, textStatus, errorThrown) { commit(false); } - }); - }, - updaterow: function(rowid, rowdata, commit) { - var data = 'update=true&' + $.param(rowdata); - $.ajax({ - dataType: 'json', - url: url, - cache: false, - data: data, - type: 'POST', - success: function(data) { - if (data.error) { - console.log('updaterow: ' + data.msg); - alert('Fout: ' + data.msg); - } else { - console.log('updaterow: success'); - } - location.reload(true); - }, - error: function(jqXHR, textStatus, errorThrown) { commit(false); } - }); - } - }, - dataAdapter = new $.jqx.dataAdapter(source), - editrow = -1; - - // initialize the input fields. - $('#name').jqxInput({ theme: theme, width: 640, height: 23 }); - $('#alpha').jqxNumberInput(Perc1dec); - $('#beta').jqxNumberInput(Perc1dec); - $('#humulene').jqxNumberInput(Perc1dec); - $('#caryophyllene').jqxNumberInput(Perc1dec); - $('#cohumulone').jqxNumberInput(Perc1dec); - $('#myrcene').jqxNumberInput(Perc1dec); - $('#hsi').jqxNumberInput(Perc1dec); - - $('#type').jqxDropDownList({ - theme: theme, - source: HopTypeAdapter, - valueMember: 'nl', - displayMember: 'nl', - width: 150, - height: 23, - autoDropDownHeight: true - }); - $('#form').jqxDropDownList({ - theme: theme, - source: HopFormAdapter, - valueMember: 'nl', - displayMember: 'nl', - width: 150, - height: 23, - autoDropDownHeight: true - }); - $('#notes').jqxInput({ theme: theme, width: 640, height: 100 }); - $('#origin').jqxInput({ theme: theme, width: 320, height: 23 }); - $('#substitutes').jqxInput({ theme: theme, width: 320, height: 23 }); - $('#always_on_stock').jqxCheckBox({ theme: theme, width: 120, height: 23 }); - $('#inventory').jqxNumberInput(Spin1dec); - $('#production_date').jqxDateTimeInput(Dateopts); - $('#cost').jqxNumberInput(Spin2dec); - $('#tht_date').jqxDateTimeInput(Dateopts); - $('#total_oil').jqxNumberInput(Perc1dec); - $('#totval').jqxNumberInput(Show2dec); - - var localizationobj = {}; - localizationobj.filterchoosestring= "Keuze:"; - - // initialize jqxGrid - $('#jqxgrid').jqxGrid({ - width: 1280, - height: 630, - source: dataAdapter, - theme: theme, - showstatusbar: true, - renderstatusbar: function(statusbar) { - var rowCount = $("#jqxgrid").jqxGrid('getrows').length; - statusbar.append('<div style="float: left; margin: 8px; color: orange !important;">Aantal items: ' + rowCount + '</div>'); - var container, addButton, impButton; - container = $('<div style="overflow: hidden; position: relative; margin: 5px;"></div>'); - addButton = $('<div style="float: right; margin-right: 15px;"><img style="position: relative; margin-top: 2px;" ' + - 'src="images/add.png"/><span style="margin-left: 4px; position: relative; top: -4px;">Nieuw</span></div>'); - impButton = $('<div style="float: right; margin-right: 50px;"><img style="position: relative; margin-top: 2px;" ' + - 'src="images/add.png"/><span style="margin-left: 4px; position: relative; top: -4px;">Import</span></div>'); - expButton = $('<div style="float: right; margin-right: 50px;"><img style="position: relative; margin-top: 2px;" ' + - 'src="images/database.png"/><span style="margin-left: 4px; position: relative; top: -10px;">Export</span></div>'); - container.append(addButton); - container.append(impButton); - container.append(expButton); - statusbar.append(container); - addButton.jqxButton({ theme: theme, width: 90, height: 17 }); - impButton.jqxButton({ theme: theme, width: 90, height: 17 }); - expButton.jqxButton({ theme: theme, width: 90, height: 17 }); - // add new row. - addButton.click(function(event) { - editrow = -1; - $('#popupWindow').jqxWindow({ position: { x: 110, y: 30 } }); - $('#name').val('Nieuwe hop'); - dataRecord.uuid = ''; - $('#alpha').val(0); - $('#beta').val(0); - $('#humulene').val(0); - $('#caryophyllene').val(0); - $('#cohumulone').val(0); - $('#myrcene').val(0); - $('#hsi').val(0); - $('#type').val('Bitterhop'); - $('#form').val('Pellets'); - $('#notes').val(''); - $('#origin').val(''); - $('#substitutes').val(''); - $('#always_on_stock').val(0); - $('#inventory').val(0); - $('#cost').val(0); - $('#production_date').val(''); - $('#tht_date').val(''); - $('#total_oil').val(0); - $('#popupWindow').jqxWindow('open'); - }); - impButton.click(function(event) { - window.location.href = 'import_ingredients.php?select=hops'; - }); - expButton.click(function(event) { - window.open('export_hops.php'); - }); - }, - ready: function () { - $("#jqxgrid").jqxGrid('localizestrings', localizationobj); - }, - filterable: true, - showfilterrow: true, - columns: [ - { text: 'Herkomst', datafield: 'origin', width: 150, filtertype: 'list' }, - { text: 'Hop Naam', datafield: 'name', filtertype: 'textbox' }, - { text: 'Soort', datafield: 'type', align: 'left', width: 90, filtertype: 'list' }, - { text: 'Vorm', datafield: 'form', align: 'left', width: 90, filtertype: 'list' }, - { text: 'Alpha %', datafield: 'alpha', width: 80, align: 'right', cellsalign: 'right', cellsformat: 'p1', filtertype: 'number' }, - { text: 'Beta %', datafield: 'beta', width: 80, align: 'right', cellsalign: 'right', cellsformat: 'p1', filtertype: 'number' }, - { text: 'Cohumuloon %%', datafield: 'cohumulone', width: 80, align: 'right', cellsalign: 'right', cellsformat: 'p1', filterable: false }, - { text: 'HSI', datafield: 'hsi', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f1', filterable: false }, - { text: 'Oogst datum', datafield: 'production_date', align: 'center', cellsalign: 'center', width: 110, filtertype: 'date' }, - { text: 'Voorraad', datafield: 'inventory', width: 100, align: 'right', filtertype: 'number', filtercondition: 'not_equal', - cellsrenderer: function(index, datafield, value, defaultvalue, column, rowdata) { - var amount = ''; - if (value > 0) { - if (value < 1000) - amount = dataAdapter.formatNumber(value, 'f1') + ' gr'; - else - amount = dataAdapter.formatNumber(value / 1000.0, 'f1') + ' kg'; - } - return '<span style="margin: 4px; margin-top: 6px; float: right;">' + amount + '</span>'; - } - }, - { text: '', datafield: 'Wijzig', columntype: 'button', width: 100, align: 'center', filterable: false, - cellsrenderer: function() { - return 'Wijzig'; - }, buttonclick: function(row) { - // open the popup window when the user clicks a button. - editrow = row; - $('#popupWindow').jqxWindow({ position: { x: 110, y: 30 } }); - // get the clicked row's data and initialize the input fields. - dataRecord = $('#jqxgrid').jqxGrid('getrowdata', editrow); - $('#name').val(dataRecord.name); - $('#alpha').val(dataRecord.alpha); - $('#beta').val(dataRecord.beta); - $('#humulene').val(dataRecord.humulene); - $('#caryophyllene').val(dataRecord.caryophyllene); - $('#cohumulone').val(dataRecord.cohumulone); - $('#myrcene').val(dataRecord.myrcene); - $('#hsi').val(dataRecord.hsi); - $('#type').val(dataRecord.type); - $('#form').val(dataRecord.form); - $('#notes').val(dataRecord.notes); - $('#origin').val(dataRecord.origin); - $('#substitutes').val(dataRecord.substitutes); - $('#always_on_stock').val(dataRecord.always_on_stock); - $('#inventory').val(dataRecord.inventory); - $('#cost').val(dataRecord.cost); - $('#production_date').val(dataRecord.production_date); - $('#tht_date').val(dataRecord.tht_date); - $('#total_oil').val(dataRecord.total_oil); - calcTotal(dataRecord.cost, dataRecord.inventory); - // show the popup window. - $('#popupWindow').jqxWindow('open'); - } - } - ] - }); - - $('#cost').on('change', function(event) { - dataRecord.cost = parseFloat(event.args.value); - calcTotal(dataRecord.cost, dataRecord.inventory); - }); - $('#inventory').on('change', function(event) { - dataRecord.inventory = parseFloat(event.args.value); - calcTotal(dataRecord.cost, dataRecord.inventory); - }); - - // initialize the popup window and buttons. - $('#popupWindow').jqxWindow({ - width: 1050, - height: 550, - resizable: false, - theme: theme, - isModal: true, - autoOpen: false, - cancelButton: $('#Cancel'), - modalOpacity: 0.40 - }); - $('#popupWindow').on('open', function() { - $('#name').jqxInput('selectAll'); - }); - $('#Delete').jqxButton({ template: 'danger', width: '90px', theme: theme }); - $('#Delete').click(function() { - if (editrow >= 0) { - // Open a popup to confirm this action. - $('#eventWindow').jqxWindow('open'); - $('#delOk').click(function() { - var rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); - $('#jqxgrid').jqxGrid('deleterow', rowID); - }); - } - $('#popupWindow').jqxWindow('hide'); - }); - $('#Cancel').jqxButton({ template: 'primary', width: '90px', theme: theme }); - $('#Clone').jqxButton({ template: 'warning', width: '90px', theme: theme }); - $('#Clone').click(function() { - var row = { - record: -1, - name: $('#name').val() + ' kopie', - uuid: '', - alpha: parseFloat($('#alpha').jqxNumberInput('decimal')), - beta: parseFloat($('#beta').jqxNumberInput('decimal')), - humulene: parseFloat($('#humulene').jqxNumberInput('decimal')), - caryophyllene: parseFloat($('#caryophyllene').jqxNumberInput('decimal')), - cohumulone: parseFloat($('#cohumulone').jqxNumberInput('decimal')), - myrcene: parseFloat($('#myrcene').jqxNumberInput('decimal')), - hsi: parseFloat($('#hsi').jqxNumberInput('decimal')), - type: $('#type').val(), - form: $('#form').val(), - notes: $('#notes').val(), - origin: $('#origin').val(), - substitutes: $('#substitutes').val(), - always_on_stock: $('#always_on_stock').val(), - inventory: 0, - cost: parseFloat($('#cost').jqxNumberInput('decimal')), - production_date: '', - tht_date: '', - total_oil: parseFloat($('#total_oil').jqxNumberInput('decimal')) - }; - $('#jqxgrid').jqxGrid('addrow', null, row); - $('#popupWindow').jqxWindow('hide'); - }); - $('#Save').jqxButton({ template: 'success', width: '90px', theme: theme }); - // update the edited row when the user clicks the 'Save' button. - $('#Save').click(function() { - var row, rowID = -1; - if (editrow >= 0) { - rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); - } - row = { - record: rowID, - name: $('#name').val(), - uuid: dataRecord.uuid, - alpha: parseFloat($('#alpha').jqxNumberInput('decimal')), - beta: parseFloat($('#beta').jqxNumberInput('decimal')), - humulene: parseFloat($('#humulene').jqxNumberInput('decimal')), - caryophyllene: parseFloat($('#caryophyllene').jqxNumberInput('decimal')), - cohumulone: parseFloat($('#cohumulone').jqxNumberInput('decimal')), - myrcene: parseFloat($('#myrcene').jqxNumberInput('decimal')), - hsi: parseFloat($('#hsi').jqxNumberInput('decimal')), - type: $('#type').val(), - form: $('#form').val(), - notes: $('#notes').val(), - origin: $('#origin').val(), - substitutes: $('#substitutes').val(), - always_on_stock: $('#always_on_stock').val(), - inventory: parseFloat($('#inventory').jqxNumberInput('decimal')), - cost: parseFloat($('#cost').jqxNumberInput('decimal')), - production_date: $('#production_date').val(), - tht_date: $('#tht_date').val(), - total_oil: parseFloat($('#total_oil').jqxNumberInput('decimal')) - }; - if (editrow >= 0) { - $('#jqxgrid').jqxGrid('updaterow', rowID, row); - } else { - $('#jqxgrid').jqxGrid('addrow', null, row); - } - $('#popupWindow').jqxWindow('hide'); - }); - createDelElements(); -}); -
--- a/www/js/inv_suppliers.js Fri Jul 22 12:15:05 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,289 +0,0 @@ -/***************************************************************************** - * Copyright (C) 2014-2022 - * - * Michiel Broek <mbroek at mbse dot eu> - * - * This file is part of Brewery Management System - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2, or (at your option) any - * later version. - * - * BrewCloud is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ThermFerm; see the file COPYING. If not, write to the Free - * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - *****************************************************************************/ - - - -function createDelElements() { - $('#eventWindow').jqxWindow({ - theme: theme, - position: { x: 490, y: 210 }, - width: 300, - height: 175, - resizable: false, - isModal: true, - modalOpacity: 0.4, - okButton: $('#delOk'), - cancelButton: $('#delCancel'), - initContent: function() { - $('#delOk').jqxButton({ template: 'danger', width: '65px', theme: theme }); - $('#delCancel').jqxButton({ template: 'success', width: '65px', theme: theme }); - $('#delCancel').focus(); - } - }); - $('#eventWindow').jqxWindow('hide'); -} - - - -$(document).ready(function() { - - // tooltips - $('#name').jqxTooltip({ content: 'De naam van de leverancier.' }); - $('#address').jqxTooltip({ content: 'Het adres en huisnummer.' }); - $('#city').jqxTooltip({ content: 'De woonplaats of gemeente.' }); - $('#zip').jqxTooltip({ content: 'De postcode.' }); - $('#country').jqxTooltip({ content: 'Het land.' }); - $('#website').jqxTooltip({ content: 'Het website adres.' }); - $('#email').jqxTooltip({ content: 'Het email adres.' }); - $('#phone').jqxTooltip({ content: 'Het telefoon nummer.' }); - $('#notes').jqxTooltip({ content: 'Opmerkingen over deze leverancier.' }); - - var dataRecord = {}, - url = 'includes/db_inventory_suppliers.php', - source = { - datatype: 'json', - cache: false, - datafields: [ - { name: 'record', type: 'number' }, - { name: 'uuid', type: 'string' }, - { name: 'name', type: 'string' }, - { name: 'address', type: 'string' }, - { name: 'city', type: 'string' }, - { name: 'zip', type: 'string' }, - { name: 'country', type: 'string' }, - { name: 'website', type: 'string' }, - { name: 'email', type: 'string' }, - { name: 'phone', type: 'string' }, - { name: 'notes', type: 'string' } - ], - id: 'record', - url: url, - deleterow: function(rowid, commit) { - // synchronize with the server - send delete command - var data = 'delete=true&' + $.param({ record: rowid }); - $.ajax({ - dataType: 'json', - url: url, - cache: false, - data: data, - type: 'POST', - success: function(data) { - if (data.error) { - console.log('delete: ' + data.msg); - alert('Fout: ' + data.msg); - } else { - console.log('delete: success'); - } - location.reload(true); - }, - error: function(jqXHR, textStatus, errorThrown) { - commit(false); - } - }); - }, - addrow: function(rowid, rowdata, position, commit) { - var data = 'insert=true&' + $.param(rowdata); - $.ajax({ - dataType: 'json', - url: url, - cache: false, - data: data, - type: 'POST', - success: function(data) { - if (data.error) { - console.log('insert: ' + data.msg); - alert('Fout: ' + data.msg); - } else { - console.log('insert: success'); - } - location.reload(true); - }, - error: function(jqXHR, textStatus, errorThrown) { - commit(false); - } - }); - }, - updaterow: function(rowid, rowdata, commit) { - var data = 'update=true&' + $.param(rowdata); - $.ajax({ - dataType: 'json', - url: url, - cache: false, - data: data, - type: 'POST', - success: function(data) { - if (data.error) { - console.log('updaterow: ' + data.msg); - alert('Fout: ' + data.msg); - } else { - console.log('updaterow: success'); - } - location.reload(true); - }, - error: function(jqXHR, textStatus, errorThrown) { - commit(false); - } - }); - } - }, - dataAdapter = new $.jqx.dataAdapter(source), - editrow = -1; - - // initialize the input fields. - $('#name').jqxInput({ theme: theme, width: 640, height: 23 }); - $('#address').jqxInput({ theme: theme, width: 350, height: 23 }); - $('#zip').jqxInput({ theme: theme, width: 120, height: 23 }); - $('#city').jqxInput({ theme: theme, width: 350, height: 23 }); - $('#country').jqxInput({ theme: theme, width: 250, height: 23 }); - $('#website').jqxInput({ theme: theme, width: 640, height: 23 }); - $('#email').jqxInput({ theme: theme, width: 640, height: 23 }); - $('#phone').jqxInput({ theme: theme, width: 175, height: 23 }); - $('#notes').jqxInput({ theme: theme, width: 800, height: 100 }); - - // initialize jqxGrid - $('#jqxgrid').jqxGrid({ - width: 1280, - height: 630, - source: dataAdapter, - theme: theme, - showstatusbar: true, - renderstatusbar: function(statusbar) { - var rowCount = $("#jqxgrid").jqxGrid('getrows').length; - statusbar.append('<div style="float: left; margin: 8px; color: orange !important;">Aantal items: ' + rowCount + '</div>'); - var addButton, container = $('<div style="overflow: hidden; position: relative; margin: 5px;"></div>'); - addButton = $('<div style="float: right; margin-right: 15px;"><img style="position: relative; margin-top: 2px;" ' + - 'src="images/add.png"/><span style="margin-left: 4px; position: relative; top: -3px;">Nieuw</span></div>'); - expButton = $('<div style="float: right; margin-right: 50px;"><img style="position: relative; margin-top: 2px;" ' + - 'src="images/database.png"/><span style="margin-left: 4px; position: relative; top: -3px;">Export</span></div>'); - container.append(addButton); - container.append(expButton); - statusbar.append(container); - addButton.jqxButton({ theme: theme, width: 90, height: 20 }); - expButton.jqxButton({ theme: theme, width: 90, height: 20 }); - // add new row. - addButton.click(function(event) { - editrow = -1; - $('#popupWindow').jqxWindow({ position: { x: 110, y: 30 } }); - $('#name').val('Nieuwe leverancier'); - dataRecord.uuid = ''; - $('#address').val(''); - $('#city').val(''); - $('#zip').val(''); - $('#country').val('Nederland'); - $('#website').val(''); - $('#email').val(''); - $('#phone').val(''); - $('#notes').val(''); - $('#popupWindow').jqxWindow('open'); - }); - expButton.click(function(event) { - window.open('export_suppliers.php'); - }); - }, - filterable: false, - columns: [ - { text: 'Leverancier naam', datafield: 'name' }, - { text: 'Adres', datafield: 'address', width: 300 }, - { text: 'Plaats', datafield: 'city', width: 250 }, - { text: 'Land', datafield: 'country', width: 200 }, - { text: 'Telefoon', datafield: 'phone', width: 175 }, - { text: 'Wijzig', datafield: 'Edit', width: 100, align: 'center', columntype: 'button', - cellsrenderer: function() { - return 'Wijzig'; - }, buttonclick: function(row) { - // open the popup window when the user clicks a button. - editrow = row; - $('#popupWindow').jqxWindow({ position: { x: 110, y: 30 } }); - // get the clicked row's data and initialize the input fields. - dataRecord = $('#jqxgrid').jqxGrid('getrowdata', editrow); - $('#name').val(dataRecord.name); - $('#address').val(dataRecord.address); - $('#city').val(dataRecord.city); - $('#zip').val(dataRecord.zip); - $('#country').val(dataRecord.country); - $('#website').val(dataRecord.website); - $('#email').val(dataRecord.email); - $('#phone').val(dataRecord.phone); - $('#notes').val(dataRecord.notes); - // show the popup window. - $('#popupWindow').jqxWindow('open'); - } - } - ] - }); - // initialize the popup window and buttons. - $('#popupWindow').jqxWindow({ - width: 1050, - height: 550, - resizable: false, - theme: theme, - isModal: true, - autoOpen: false, - cancelButton: $('#Cancel'), - modalOpacity: 0.40 - }); - $('#popupWindow').on('open', function() { - $('#name').jqxInput('selectAll'); - }); - $('#Delete').jqxButton({ template: 'danger', width: '90px', theme: theme }); - $('#Delete').click(function() { - if (editrow >= 0) { - // Open a popup to confirm this action. - $('#eventWindow').jqxWindow('open'); - $('#delOk').click(function() { - var rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); - $('#jqxgrid').jqxGrid('deleterow', rowID); - }); - } - $('#popupWindow').jqxWindow('hide'); - }); - $('#Cancel').jqxButton({ template: 'primary', width: '90px', theme: theme }); - $('#Save').jqxButton({ template: 'success', width: '90px', theme: theme }); - // update the edited row when the user clicks the 'Save' button. - $('#Save').click(function() { - var row, rowID = -1; - if (editrow >= 0) { - rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); - } - row = { - record: rowID, - name: $('#name').val(), - uuid: dataRecord.uuid, - address: $('#address').val(), - city: $('#city').val(), - zip: $('#zip').val(), - country: $('#country').val(), - website: $('#website').val(), - email: $('#email').val(), - phone: $('#phone').val(), - notes: $('#notes').val() - }; - if (editrow >= 0) { - $('#jqxgrid').jqxGrid('updaterow', rowID, row); - } else { - $('#jqxgrid').jqxGrid('addrow', null, row); - } - $('#popupWindow').jqxWindow('hide'); - }); - createDelElements(); -}); -