';
$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');
}
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', filterUI: 't'",
'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', filterUI: 't'",
'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']);
$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;
}
?>