move line up and down
This commit is contained in:
@@ -156,3 +156,40 @@ def sum_devis_totaux(request, nodossier):
|
||||
totalttc = totalht + totaltva
|
||||
WHERE societe=:societe AND no_id=:no_id;"""
|
||||
execute_query(request, query, {'societe': societe, 'no_id': no_id})
|
||||
|
||||
def delete_devis_ligne(request, nodossier, nolig):
|
||||
societe = nodossier[0:2]
|
||||
no_id = nodossier[5:]
|
||||
|
||||
query = "DELETE FROM devis_lignes WHERE societe = :societe and no_id=:no_id and nolig=%s;"
|
||||
execute_query(request, query, {'societe': societe, 'no_id': no_id})
|
||||
|
||||
def move_devis_ligne(request, nodossier, nolig, move):
|
||||
societe = nodossier[0:2]
|
||||
no_id = nodossier[5:]
|
||||
|
||||
# get max no ligne du devis
|
||||
query = "SELECT count(*) AS max_no FROM devis_lignes WHERE societe = :societe and no_id=:no_id;"
|
||||
results = request.dbsession.execute(query, {'societe': societe, 'no_id': no_id}).first()
|
||||
max_no = results.max_no + 1
|
||||
|
||||
step = 0
|
||||
if move == 'up':
|
||||
# déplacement vers le haut
|
||||
if nolig > 1:
|
||||
step = -1
|
||||
else:
|
||||
# déplacement vers le haut
|
||||
if nolig < max_no:
|
||||
step = +1
|
||||
|
||||
if step != 0:
|
||||
# déplacer le suivant ou précédent vers la fin
|
||||
query = """UPDATE devis_lignes SET nolig = :max_no WHERE societe = :societe and no_id=:no_id and nolig = :nolig + :step;"""
|
||||
execute_query(request, query, {'societe': societe, 'no_id': no_id, 'nolig': nolig, 'max_no': max_no, 'step': step})
|
||||
# permuter avec le suivant ou précédent
|
||||
query = """UPDATE devis_lignes SET nolig = nolig + :step WHERE societe = :societe and no_id=:no_id and nolig = :nolig;"""
|
||||
execute_query(request, query, {'societe': societe, 'no_id': no_id, 'nolig': nolig, 'step': step})
|
||||
# remettre le précédent ou suivant à la place de la ligne déplacée
|
||||
query = """UPDATE devis_lignes SET nolig = :nolig WHERE societe = :societe and no_id=:no_id and nolig = :max_no;"""
|
||||
execute_query(request, query, {'societe': societe, 'no_id': no_id, 'nolig': nolig, 'max_no': max_no})
|
||||
|
||||
Reference in New Issue
Block a user