move line up and down

This commit is contained in:
2020-10-16 16:39:47 +02:00
parent 50fea4710e
commit 71305e8002
5 changed files with 122 additions and 29 deletions

View File

@@ -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})