diff -r cf145b35d65f -r 3775ee26657f www/js/inv_hops.js --- 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 - * - * 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('
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('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 '' + amount + ''; - } - }, - { 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(); -}); -