<label for="form_preis">Preis</label><br>
<input id="form_preis" name="preis" size="10">
<div class="buttons" style="margin-top: 15px;">
-<button onclick="return add_price(this);">Hinzufügen</button>
+<button class="custom" onclick="return add_price(this);">Hinzufügen</button>
</div>
</form>
</div>
';
$javascript = <<<EOC
+var custom_this = false;
+function custom_save_callback(data)
+{
+ if (data.count > 0) {
+ var text = "Diese Artikelnummer ist bereits " + data.count + " mal vorhanden.\\nSoll der Artikel trotzdem gespeichert werden?";
+ if (confirm(text))
+ form_save(custom_this);
+ } else {
+ form_save(custom_this);
+ }
+}
+
+function custom_save(obj)
+{
+ custom_this = obj;
+ var id = document.getElementById('edit_id');
+
+ if (!id.value.length)
+ return custom_insert(obj);
+
+ var artnr = document.getElementById('edit_artnr');
+
+ var parms = 'source=' + source.innerHTML + '&callback=artnr';
+ parms += '&artnr=' + artnr.value;
+ parms += '&artikel=' + id.value;
+ ajax_request('function', parms, custom_save_callback);
+
+ return false;
+}
+
+function custom_insert_callback(data)
+{
+ if (data.count > 0) {
+ var text = "Diese Artikelnummer ist bereits " + data.count + " mal vorhanden.\\nSoll der Artikel trotzdem hinzugefügt werden?";
+ if (confirm(text))
+ form_insert(custom_this);
+ } else {
+ form_insert(custom_this);
+ }
+}
+
+function custom_insert(obj)
+{
+ custom_this = obj;
+ var artnr = document.getElementById('edit_artnr');
+
+ var parms = 'source=' + source.innerHTML + '&callback=artnr';
+ parms += '&artnr=' + artnr.value;
+ ajax_request('function', parms, custom_insert_callback);
+
+ return false;
+}
+
var price_popup = false;
function price_popup_open()
{
return false;
}
+Rico.onLoad(function(){
+ var btn = document.getElementById('button_save');
+ btn.onclick = function () {return custom_save(this);};
+ var btn = document.getElementById('button_insert');
+ btn.onclick = function () {return custom_insert(this);};
+});
EOC;
$jscode[] = str_replace('CONTENT_FORM', str_replace(array("\n"),
$buttons = <<<EOC
<p style="margin-top: 5px; margin-bottom: 4px; text-align: center;">
-<button onclick="return open_popup()">Preis hinzufügen</button>
+<button class="custom" onclick="return open_popup()">Preis hinzufügen</button>
</p>
EOC;
'artnr' => array(
'name' => 'ArtNr',
'width' => 60,
+ 'type' => 'number',
+ 'specs' => "decPlaces: 0, thouSep: '', filterUI: 't='",
),
'menge' => array(
'name' => 'Menge',
'width' => 60,
- 'specs' => "ClassName: 'alignrightpad'",
+ 'specs' => "ClassName: 'alignrightpad', filterUI: 't3'",
),
'bezeichnung' => array(
'name' => 'Bezeichnung',
'width' => 200,
'specs' => "filterUI: 's'",
'control' => "new Rico.TableColumn.lookup(".grid_lookup_sql('metro_abteilung','id','name').", 0, '')",
+ 'distinct' => "SELECT DISTINCT abteilung,metro_abteilung.name FROM metro_artikel JOIN metro_abteilung ON abteilung = metro_abteilung.id ORDER BY name",
'visible' => false,
),
'gang' => array(
'width' => 70,
'specs' => "ClassName: 'aligncenter', filterUI: 's'",
'control' => "new Rico.TableColumn.lookup(".grid_lookup_sql('metro_vpe','id','name').", 0, '')",
+ 'distinct' => "SELECT DISTINCT vpe,metro_vpe.name FROM metro_artikel JOIN metro_vpe ON vpe = metro_vpe.id ORDER BY name",
),
),
'edit' => array(
'size' => 21,
'null' => true,
),
+ 'removed' => array(
+ 'name' => 'Artikel nicht mehr im Programm',
+ 'type' => 'boolean',
+ ),
'buttons' => array(
'type' => 'html',
'code' => $buttons,
),
'callbacks' => array(
'price' => cb_price,
+ 'artnr' => cb_artnr,
),
);
return true;
}
+function cb_artnr()
+{
+ global $db;
+
+ if (empty($_POST['artnr']))
+ return array('error' => 'Nicht ausreichend Daten übermittelt');
+
+ $sql = sprintf("SELECT count(*) AS count FROM metro_artikel WHERE artnr = %d", $_POST['artnr']);
+ if (!empty($_POST['artikel']))
+ $sql .= sprintf(" AND id <> %d", $_POST['artikel']);
+
+ $sth = $db->query($sql);
+ $row = $sth->fetch();
+
+ return array('count' => $row['count']);
+}
+
?>