Merge branch 'removed'
authorJoey Schulze <joey@infodrom.org>
Fri, 24 Jan 2014 12:12:38 +0000 (13:12 +0100)
committerJoey Schulze <joey@infodrom.org>
Fri, 24 Jan 2014 12:12:38 +0000 (13:12 +0100)
1  2 
artikel.php

diff --combined artikel.php
@@@ -29,59 -29,6 +29,59 @@@ $form = 
  ';
  
  $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()
  {
@@@ -158,12 -105,6 +158,12 @@@ function add_price(obj
      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"),
@@@ -298,6 -239,10 +298,10 @@@ $mask = 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,
                                ),
              );
  
@@@ -373,21 -317,4 +377,21 @@@ function cb_price(
    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']);
 +}
 +
  ?>