'; $javascript = <<Verbinden',content,'auto','130px'); } price_popup.titleDiv.childNodes[0].innerHTML = 'Preis hinzufügen'; var form_id = document.getElementById('edit_id'); var artikel = document.getElementById('form_artikel'); artikel.value = form_id.value; price_popup.openPopup(100,300); var datum = document.getElementById('form_datum'); datum.activate(); } function open_popup() { var eid = document.getElementById('edit_id'); if (!eid || !eid.value.length) return false; price_popup_open(); return false; } function add_price_callback(data) { info('Preis gespeichert'); grid_update(grid); } function add_price(obj) { price_popup.closePopup(); var datum = document.getElementById('form_datum'); if (!datum.value.length) { error('Kein Rechnungsdatum angegeben'); return false; } var steuer = document.getElementById('form_steuer'); if (!steuer.value.length) { error('Kein Steuersatz angegeben'); return false; } var preis = document.getElementById('form_preis'); if (!preis.value.length) { error('Kein Preis angegeben'); return false; } var source = document.getElementById('source'); if (!source) return false; var parms = 'source=' + source.innerHTML + '&callback=price&'; ajax_request('function', parms+Form.serialize(obj.form), add_price_callback); preis.value = ''; return false; } EOC; $jscode[] = str_replace('CONTENT_FORM', str_replace(array("\n"), array("\\\n"), $form), $javascript); $buttons = <<

EOC; $mask = array( 'table' => 'metro_artikel', 'title' => 'Artikelstammdaten', 'join' => array('metro_abteilung ON abteilung = metro_abteilung.id'), 'list' => array( 'id' => array( 'name' => 'ID', 'visible' => false, 'sql' => 'metro_artikel.id', ), 'artnr' => array( 'name' => 'ArtNr', 'width' => 60, ), 'menge' => array( 'name' => 'Menge', 'width' => 60, 'specs' => "ClassName: 'alignrightpad'", ), 'bezeichnung' => array( 'name' => 'Bezeichnung', 'width' => 300, 'specs' => "filterUI: 't'", ), 'netto' => array( 'name' => 'netto', 'width' => 60, 'type' => 'number', 'specs' => "decPlaces: 2, ClassName: 'alignrightpad'", 'sql' => '(SELECT preis FROM metro_artikel_preis ' . 'WHERE artikel = metro_artikel.id ORDER BY datum DESC LIMIT 1)', ), 'preis' => array( 'name' => 'Preis', 'width' => 60, 'type' => 'number', 'specs' => "decPlaces: 2, ClassName: 'alignrightpad'", 'sql' => '(SELECT preis * ((100 + steuersatz)/100) FROM metro_artikel_preis ' . 'WHERE artikel = metro_artikel.id ORDER BY datum DESC LIMIT 1)', ), 'hersteller' => array( 'name' => 'Hersteller', 'width' => 100, 'specs' => "filterUI: 't'", ), 'abteilung' => array( 'name' => 'Abteilung', 'width' => 200, 'specs' => "filterUI: 's'", 'control' => "new Rico.TableColumn.lookup(".grid_lookup_sql('metro_abteilung','id','name').", 0, '')", 'visible' => false, ), 'gang' => array( 'name' => 'Gang', 'width' => 50, 'specs' => "ClassName: 'aligncenter', filterUI: 's'", 'visible' => false, ), 'vpe' => array( 'name' => 'Einheit', 'width' => 70, 'specs' => "ClassName: 'aligncenter', filterUI: 's'", 'control' => "new Rico.TableColumn.lookup(".grid_lookup_sql('metro_vpe','id','name').", 0, '')", ), ), 'edit' => array( 'artnr' => array( 'name' => 'Artikelnummer', 'type' => 'number', 'size' => 15, 'required' => true, ), 'abteilung' => array( 'name' => 'Abteilung', 'type' => 'select', 'options' => 'SELECT id,name AS text FROM metro_abteilung ORDER BY name', 'option_empty' => '-- select --', 'required' => true, ), 'vpe' => array( 'name' => 'Verpackungseinheit', 'type' => 'select', 'options' => 'SELECT id,name AS text FROM metro_vpe ORDER BY name', 'option_empty' => '-- select --', 'required' => true, ), 'menge' => array( 'name' => 'Menge', 'type' => 'text', 'size' => 15, 'null' => true, ), 'bezeichnung' => array( 'name' => 'Bezeichnung', 'type' => 'text', 'size' => 21, 'required' => true, ), 'hersteller' => array( 'name' => 'Hersteller', 'type' => 'text', 'size' => 21, 'null' => true, ), 'buttons' => array( 'type' => 'html', 'code' => $buttons, 'sql' => false, ), ), 'callbacks' => array( 'price' => cb_price, ), ); function cb_price() { global $db; if (empty($_POST['artikel']) || empty($_POST['datum']) || empty($_POST['preis'])) return array('error' => 'Nicht ausreichend Daten übermittelt'); $date = format_date($_POST['datum']); $_POST['preis'] = str_replace(',','.',$_POST['preis']); $sql = sprintf("INSERT INTO metro_artikel_preis (artikel,preis,steuersatz,datum,sys_user,sys_edit) " . "VALUES (%d,%.3f,%d,'%s',%s,now())", $_POST['artikel'], $_POST['preis'], $_POST['steuer'], $date, $db->quote($_SESSION['sys']['login']), $row['id']); $sth = $db->query($sql); return true; } ?>