Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5074cc50

Von Moritz Bunkus vor etwa 13 Jahren hinzugefügt

  • ID 5074cc502811728e2bbaf42cfd5ea39974ba6e2a
  • Vorgänger d232a246
  • Nachfolger 62ffcb1a

Artikelauswahl gefixt: das Ausgewählte nehmen, nicht den ersten Treffer

Hintergrund: Suche in SL/IS.pm hat (sehr außergewöhnlich) ein
Suchkriterium nach EAN mit "OR" verknüpft. Dadurch, dass die Suche
nach ID schlicht ans Ende mit "AND" gestellt wurde, ergab sich grob
"(NOT OBSOLETE) OR (ean = ? AND id = ?)", wodurch wieder mehr als ein
Treffer gefunden wurde.

Bug wurde in Revision cb253140 eingebaut.

Unterschiede anzeigen:

SL/IR.pm
106 106
    if ( $::instance_conf->get_inventory_system eq 'periodic') {
107 107
      # inventory account number is overwritten with expense account number, so
108 108
      # never book incoming to inventory account but always to expense account
109
      $form->{"inventory_accno_$i"} = $form->{"expense_accno_$i"} 
109
      $form->{"inventory_accno_$i"} = $form->{"expense_accno_$i"}
110 110
    };
111 111

  
112 112
    # get item baseunit
......
226 226
           # ORDER BY transdate guarantees FIFO
227 227

  
228 228
# sold two items without having bought them yet, example result of query:
229
# id | qty | allocated | trans_id | inventory_accno_id | expense_accno_id | transdate  
229
# id | qty | allocated | trans_id | inventory_accno_id | expense_accno_id | transdate
230 230
# ---+-----+-----------+----------+--------------------+------------------+------------
231 231
#  9 |   2 |         0 |        9 |                 15 |              151 | 2011-01-05
232 232

  
233 233
# base_qty + allocated > 0 if article has already been sold but not bought yet
234 234

  
235 235
# select qty,allocated,base_qty,sellprice from invoice where trans_id = 9;
236
#  qty | allocated | base_qty | sellprice  
236
#  qty | allocated | base_qty | sellprice
237 237
# -----+-----------+----------+------------
238 238
#    2 |         0 |        2 | 1000.00000
239 239

  
......
1093 1093
      push @values, $form->{"partnumber_$i"};
1094 1094
   }
1095 1095

  
1096
  # Search for part ID overrides all other criteria.
1096 1097
  if ($form->{"id_${i}"}) {
1097
    $where .= qq| AND p.id = ?|;
1098
    push @values, $form->{"id_${i}"};
1098
    $where  = qq|p.id = ?|;
1099
    @values = ($form->{"id_${i}"});
1099 1100
  }
1100 1101

  
1101 1102
  if ($form->{"description_$i"}) {

Auch abrufbar als: Unified diff