<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>
price_popup = new Rico.Popup(options, false, false);
price_popup.createWindow('<strong>Verbinden</strong>',content,'auto','130px');
- }
+
+ price_popup.openPopup(100,300);
+ } else
+ price_popup.openPopup();
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;
- Debug.write('id: ' + form_id.value);
- price_popup.openPopup(100,300);
+ var datum = document.getElementById('form_datum');
+ var preis = document.getElementById('form_preis');
+ if (datum.value.length)
+ preis.activate();
+ else
+ datum.activate();
}
function open_popup()
function add_price_callback(data)
{
info('Preis gespeichert');
+ grid_update(grid);
}
function add_price(obj)
if (!source) return false;
var parms = 'source=' + source.innerHTML + '&callback=price&';
- Debug.write(parms+Form.serialize(obj.form));
ajax_request('function', parms+Form.serialize(obj.form), add_price_callback);
preis.value = '';
$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' => 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', filterUI: 't'",
+ '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)',
),
+ 'datum' => array(
+ 'name' => 'Datum',
+ 'width' => 85,
+ 'type' => 'text',
+ 'sql' => '(SELECT datum FROM metro_artikel_preis ' .
+ 'WHERE artikel = metro_artikel.id ORDER BY datum DESC LIMIT 1)',
+ 'visible' => false,
+ ),
'hersteller' => array(
'name' => 'Hersteller',
'width' => 100,
'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,
'required' => true,
),
+ 'hinweis' => array(
+ 'name' => 'Hinweis',
+ 'type' => 'text',
+ 'size' => 21,
+ 'null' => true,
+ ),
'hersteller' => array(
'name' => 'Hersteller',
'type' => 'text',
'sql' => false,
),
),
+ 'second' => array(
+ 'title' => 'Preisverlauf',
+ 'rows' => 5,
+ 'table' => 'metro_artikel_preis',
+ 'where' => 'artikel = {id} ORDER BY datum DESC',
+ 'list' => array(
+ 'id' => array(
+ 'name' => 'ID',
+ 'visible' => false,
+ ),
+ 'datum' => array(
+ 'name' => 'Datum',
+ 'width' => 180,
+ ),
+ 'steuersatz' => array(
+ 'name' => 'Steuer',
+ 'width' => 60,
+ 'type' => 'number',
+ 'specs' => "decPlaces: 2, ClassName: 'alignrightpad'",
+ ),
+ 'preis' => array(
+ 'name' => 'netto',
+ 'width' => 60,
+ 'type' => 'number',
+ 'specs' => "decPlaces: 2, ClassName: 'alignrightpad'",
+ ),
+ 'brutto' => array(
+ 'name' => 'Preis',
+ 'width' => 60,
+ 'type' => 'number',
+ 'specs' => "decPlaces: 2, ClassName: 'alignrightpad'",
+ 'sql' => 'preis * ((100 + steuersatz)/100)',
+ ),
+ 'empty' => array(
+ 'name' => '',
+ 'width' => 10,
+ 'sql' => "''",
+ ),
+ ),
+ ),
'callbacks' => array(
'price' => cb_price,
),
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())",