diff -r 3775ee26657f -r 55c2510891b8 www/js/inv_fermentables.js --- a/www/js/inv_fermentables.js Mon Aug 01 09:56:23 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,446 +0,0 @@ -/***************************************************************************** - * Copyright (C) 2014-2022 - * - * Michiel Broek - * - * 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); - } - - var dataRecord = {}, - url = 'includes/db_inventory_fermentables.php', - source = { - datatype: 'json', - cache: false, - datafields: [ - { name: 'record', type: 'number' }, - { name: 'uuid', type: 'string' }, - { name: 'name', type: 'string' }, - { name: 'type', type: 'string' }, - { name: 'yield', type: 'float' }, - { name: 'color', type: 'float' }, - { name: 'add_after_boil', type: 'int' }, - { name: 'origin', type: 'string' }, - { name: 'supplier', type: 'string' }, - { name: 'notes', type: 'string' }, - { name: 'coarse_fine_diff', type: 'float' }, - { name: 'moisture', type: 'float' }, - { name: 'diastatic_power', type: 'float' }, - { name: 'protein', type: 'float' }, - { name: 'dissolved_protein', type: 'float' }, - { name: 'max_in_batch', type: 'float' }, - { name: 'recommend_mash', type: 'int' }, - { name: 'added', type: 'string' }, - { name: 'always_on_stock', type: 'int' }, - { name: 'di_ph', type: 'float' }, - { name: 'acid_to_ph_57', type: 'float' }, - { name: 'graintype', type: 'string' }, - { name: 'inventory', type: 'float' }, - { name: 'cost', type: 'float' }, - { name: 'production_date', type: 'string' }, - { name: 'tht_date', type: 'string' } - ], - 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 }); - $('#type').jqxDropDownList({ - theme: theme, - source: FermentableTypeAdapter, - valueMember: 'nl', - displayMember: 'nl', - width: 180, - height: 23, - autoDropDownHeight: true - }); - $('#yield').jqxNumberInput(Spin1dec); - $('#color').jqxNumberInput(Spin1dec); - $('#add_after_boil').jqxCheckBox({ theme: theme, width: 120, height: 23 }); - $('#origin').jqxInput({ theme: theme, width: 250, height: 23 }); - $('#supplier').jqxInput({ theme: theme, width: 250, height: 23 }); - $('#notes').jqxInput({ theme: theme, width: 640, height: 100 }); - $('#coarse_fine_diff').jqxNumberInput(Spin1dec); - $('#moisture').jqxNumberInput(Spin1dec); - $('#diastatic_power').jqxNumberInput(PosInt); - $('#protein').jqxNumberInput(Spin1dec); - $('#dissolved_protein').jqxNumberInput(Spin1dec); - $('#max_in_batch').jqxNumberInput(Perc1dec); - $('#recommend_mash').jqxCheckBox({ theme: theme, width: 120, height: 23 }); - $('#added').jqxDropDownList({ - theme: theme, - source: AddedAdapter, - valueMember: 'nl', - displayMember: 'nl', - width: 180, - height: 23, - autoDropDownHeight: true - }); - $('#always_on_stock').jqxCheckBox({ theme: theme, width: 120, height: 23 }); - $('#di_ph').jqxNumberInput(Spin2pH); - $('#acid_to_ph_57').jqxNumberInput({ inputMode: 'simple', theme: theme, width: 110, height: 23, min: -1000, max: 1000, decimalDigits: 4, spinButtons: true }); - $('#graintype').jqxDropDownList({ - theme: theme, - source: GrainTypeAdapter, - valueMember: 'nl', - displayMember: 'nl', - width: 180, - height: 23, - autoDropDownHeight: true - }); - $('#inventory').jqxNumberInput(Spin3dec); - $('#production_date').jqxDateTimeInput(Dateopts); - $('#cost').jqxNumberInput(Spin2dec); - $('#tht_date').jqxDateTimeInput(Dateopts); - $('#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('
Aantal items: ' + rowCount + '
'); - var container, addButton, impButton; - container = $('
'); - addButton = $('
Nieuw
'); - impButton = $('
Import
'); - expButton = $('
Export
'); - 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('Nieuw product'); - dataRecord.uuid = ''; - $('#type').val('Mout'); - $('#origin').val(''); - $('#supplier').val(''); - $('#notes').val(''); - $('#yield').val(80); - $('#color').val(3); - $('#coarse_fine_diff').val(3); - $('#moisture').val(4); - $('#diastatic_power').val(0); - $('#protein').val(0); - $('#dissolved_protein').val(0); - $('#max_in_batch').val(100); - $('#recommend_mash').val(1); - $('#always_on_stock').val(0); - $('#di_ph').val(0); - $('#acid_to_ph_57').val(0); - $('#graintype').val('Basismout'); - $('#add_after_boil').val(0); - $('#added').val('Maischen'); - $('#inventory').val(0); - $('#cost').val(0); - $('#production_date').val(''); - $('#tht_date').val(''); - $('#popupWindow').jqxWindow('open'); - }); - impButton.click(function(event) { - window.location.href = 'import_ingredients.php?select=fermentables'; - }); - expButton.click(function(event) { - window.open('export_fermentables.php'); - }); - }, - ready: function () { - $("#jqxgrid").jqxGrid('localizestrings', localizationobj); - }, - filterable: true, - showfilterrow: true, - columns: [ - { text: 'Herkomst', datafield: 'origin', width: 150, filtertype: 'list' }, - { text: 'Producent', datafield: 'supplier', width: 140, filtertype: 'list' }, - { text: 'Vergistbaar product', datafield: 'name', filtertype: 'textbox' }, - { text: 'Soort', datafield: 'type', width: 135, filtertype: 'list' }, - { text: 'Graan type', datafield: 'graintype', width: 125, align: 'center', cellsalign: 'center', filtertype: 'list' }, - { text: 'EBC', datafield: 'color', width: 70, align: 'right', cellsalign: 'right', filtertype: 'number' }, - { text: 'Opbrengst', datafield: 'yield', width: 70, align: 'right', cellsalign: 'right', cellsformat: 'p1', filterable: false }, - { 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 < 1.000) - amount = dataAdapter.formatNumber(value * 1000, 'f0') + ' gr'; - else - amount = dataAdapter.formatNumber(value, 'f1') + ' kg'; - } - return '' + amount + ''; - } - }, - { text: '', datafield: 'Edit', width: 100, align: 'center', columntype: 'button', 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); - $('#type').val(dataRecord.type); - $('#yield').val(dataRecord.yield); - $('#color').val(dataRecord.color); - $('#add_after_boil').val(dataRecord.add_after_boil); - $('#origin').val(dataRecord.origin); - $('#supplier').val(dataRecord.supplier); - $('#notes').val(dataRecord.notes); - $('#coarse_fine_diff').val(dataRecord.coarse_fine_diff); - $('#moisture').val(dataRecord.moisture); - $('#diastatic_power').val(lintner_to_kolbach(dataRecord.diastatic_power)); - $('#protein').val(dataRecord.protein); - $('#dissolved_protein').val(dataRecord.dissolved_protein); - $('#max_in_batch').val(dataRecord.max_in_batch); - $('#recommend_mash').val(dataRecord.recommend_mash); - $('#added').val(dataRecord.added); - $('#always_on_stock').val(dataRecord.always_on_stock); - $('#di_ph').val(dataRecord.di_ph); - $('#acid_to_ph_57').val(dataRecord.acid_to_ph_57); - $('#graintype').val(dataRecord.graintype); - $('#inventory').val(dataRecord.inventory); - $('#cost').val(dataRecord.cost); - $('#production_date').val(dataRecord.production_date); - $('#tht_date').val(dataRecord.tht_date); - 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: '', - type: $('#type').val(), - yield: parseFloat($('#yield').jqxNumberInput('decimal')), - color: parseFloat($('#color').jqxNumberInput('decimal')), - add_after_boil: $('#add_after_boil').val(), - origin: $('#origin').val(), - supplier: $('#supplier').val(), - notes: $('#notes').val(), - coarse_fine_diff: parseFloat($('#coarse_fine_diff').jqxNumberInput('decimal')), - moisture: parseFloat($('#moisture').jqxNumberInput('decimal')), - diastatic_power: kolbach_to_lintner(parseFloat($('#diastatic_power').jqxNumberInput('decimal'))), - protein: parseFloat($('#protein').jqxNumberInput('decimal')), - dissolved_protein: parseFloat($('#dissolved_protein').jqxNumberInput('decimal')), - max_in_batch: parseFloat($('#max_in_batch').jqxNumberInput('decimal')), - recommend_mash: $('#recommend_mash').val(), - added: $('#added').val(), - always_on_stock: $('#always_on_stock').val(), - di_ph: parseFloat($('#di_ph').jqxNumberInput('decimal')), - acid_to_ph_57: parseFloat($('#acid_to_ph_57').jqxNumberInput('decimal')), - graintype: $('#graintype').val(), - inventory: 0, - cost: parseFloat($('#cost').jqxNumberInput('decimal')), - production_date: '', - tht_date: '' - }; - $('#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, - type: $('#type').val(), - yield: parseFloat($('#yield').jqxNumberInput('decimal')), - color: parseFloat($('#color').jqxNumberInput('decimal')), - add_after_boil: $('#add_after_boil').val(), - origin: $('#origin').val(), - supplier: $('#supplier').val(), - notes: $('#notes').val(), - coarse_fine_diff: parseFloat($('#coarse_fine_diff').jqxNumberInput('decimal')), - moisture: parseFloat($('#moisture').jqxNumberInput('decimal')), - diastatic_power: kolbach_to_lintner(parseFloat($('#diastatic_power').jqxNumberInput('decimal'))), - protein: parseFloat($('#protein').jqxNumberInput('decimal')), - dissolved_protein: parseFloat($('#dissolved_protein').jqxNumberInput('decimal')), - max_in_batch: parseFloat($('#max_in_batch').jqxNumberInput('decimal')), - recommend_mash: $('#recommend_mash').val(), - added: $('#added').val(), - always_on_stock: $('#always_on_stock').val(), - di_ph: parseFloat($('#di_ph').jqxNumberInput('decimal')), - acid_to_ph_57: parseFloat($('#acid_to_ph_57').jqxNumberInput('decimal')), - graintype: $('#graintype').val(), - inventory: parseFloat($('#inventory').jqxNumberInput('decimal')), - cost: parseFloat($('#cost').jqxNumberInput('decimal')), - production_date: $('#production_date').val(), - tht_date: $('#tht_date').val(), - }; - if (editrow >= 0) { - $('#jqxgrid').jqxGrid('updaterow', rowID, row); - } else { - $('#jqxgrid').jqxGrid('addrow', null, row); - } - $('#popupWindow').jqxWindow('hide'); - }); - createDelElements(); -}); -