This commit is contained in:
Ludovic Stephan 2017-02-05 03:42:02 -02:00
parent 1d5e693045
commit b404c989ff

View file

@ -1095,6 +1095,7 @@ def kpsul_perform_operations(request):
consumers.KPsul.group_send('kfet.kpsul', websocket_data) consumers.KPsul.group_send('kfet.kpsul', websocket_data)
return JsonResponse(data) return JsonResponse(data)
@teamkfet_required @teamkfet_required
def kpsul_cancel_operations(request): def kpsul_cancel_operations(request):
# Pour la réponse # Pour la réponse
@ -1142,10 +1143,14 @@ def kpsul_cancel_operations(request):
required_perms = set() required_perms = set()
stop_all = False stop_all = False
cancel_duration = Settings.CANCEL_DURATION() cancel_duration = Settings.CANCEL_DURATION()
to_accounts_balances = defaultdict(lambda:0) # Modifs à faire sur les balances des comptes # Modifs à faire sur les balances des comptes
to_groups_amounts = defaultdict(lambda:0) # ------ sur les montants des groupes d'opé to_accounts_balances = defaultdict(lambda: 0)
to_checkouts_balances = defaultdict(lambda:0) # ------ sur les balances de caisses # ------ sur les montants des groupes d'opé
to_articles_stocks = defaultdict(lambda:0) # ------ sur les stocks d'articles to_groups_amounts = defaultdict(lambda: 0)
# ------ sur les balances de caisses
to_checkouts_balances = defaultdict(lambda: 0)
# ------ sur les stocks d'articles
to_articles_stocks = defaultdict(lambda: 0)
for ope in opes_all: for ope in opes_all:
if ope.canceled_at: if ope.canceled_at:
# Opération déjà annulée, va pour un warning en Response # Opération déjà annulée, va pour un warning en Response
@ -1176,7 +1181,8 @@ def kpsul_cancel_operations(request):
# par `.save()`, amount_error est recalculé automatiquement, # par `.save()`, amount_error est recalculé automatiquement,
# ce qui n'est pas le cas en faisant un update sur queryset # ce qui n'est pas le cas en faisant un update sur queryset
# TODO ? : Maj les balance_old de relevés pour modifier l'erreur # TODO ? : Maj les balance_old de relevés pour modifier l'erreur
last_statement = (CheckoutStatement.objects last_statement = \
(CheckoutStatement.objects
.filter(checkout=ope.group.checkout) .filter(checkout=ope.group.checkout)
.order_by('at') .order_by('at')
.last()) .last())
@ -1321,6 +1327,7 @@ def kpsul_cancel_operations(request):
data['warnings']['already_canceled'] = already_canceled data['warnings']['already_canceled'] = already_canceled
return JsonResponse(data) return JsonResponse(data)
@login_required @login_required
def history_json(request): def history_json(request):
# Récupération des paramètres # Récupération des paramètres
@ -1356,11 +1363,12 @@ def history_json(request):
queryset=transfer_queryset_prefetch, queryset=transfer_queryset_prefetch,
to_attr='filtered_transfers') to_attr='filtered_transfers')
# Construction de la requête principale # Construction de la requête principale
opegroups = (OperationGroup.objects opegroups = (
OperationGroup.objects
.prefetch_related(ope_prefetch) .prefetch_related(ope_prefetch)
.select_related('on_acc__trigramme', 'valid_by__trigramme') .select_related('on_acc__trigramme',
'valid_by__trigramme')
.order_by('at') .order_by('at')
) )
@ -1368,7 +1376,8 @@ def history_json(request):
TransferGroup.objects TransferGroup.objects
.prefetch_related(transfer_prefetch) .prefetch_related(transfer_prefetch)
.select_related('valid_by__trigramme') .select_related('valid_by__trigramme')
.order_by('at')) .order_by('at')
)
# Application des filtres # Application des filtres
if from_date: if from_date:
@ -1388,7 +1397,6 @@ def history_json(request):
if not request.user.has_perm('kfet.is_team'): if not request.user.has_perm('kfet.is_team'):
opegroups = opegroups.filter(on_acc=request.user.profile.account_kfet) opegroups = opegroups.filter(on_acc=request.user.profile.account_kfet)
# Construction de la réponse # Construction de la réponse
opegroups_list = [] opegroups_list = []
for opegroup in opegroups: for opegroup in opegroups:
@ -1437,9 +1445,9 @@ def history_json(request):
} }
if request.user.has_perm('kfet.is_team'): if request.user.has_perm('kfet.is_team'):
transfergroup_dict['valid_by__trigramme'] = ( transfergroup_dict['valid_by__trigramme'] = (
transfergroup.valid_by transfergroup.valid_by and
and transfergroup.valid_by.trigramme transfergroup.valid_by.trigramme or
or None) None)
for transfer in transfergroup.filtered_transfers: for transfer in transfergroup.filtered_transfers:
transfer_dict = { transfer_dict = {
@ -1451,9 +1459,9 @@ def history_json(request):
} }
if request.user.has_perm('kfet.is_team'): if request.user.has_perm('kfet.is_team'):
transfer_dict['canceled_by__trigramme'] = ( transfer_dict['canceled_by__trigramme'] = (
transfer.canceled_by transfer.canceled_by and
and transfer.canceled_by.trigramme transfer.canceled_by.trigramme or
or None) None)
transfergroup_dict['opes'].append(transfer_dict) transfergroup_dict['opes'].append(transfer_dict)
opegroups_list.append(transfergroup_dict) opegroups_list.append(transfergroup_dict)
@ -1527,6 +1535,7 @@ def transfers_create(request):
return render(request, 'kfet/transfers_create.html', return render(request, 'kfet/transfers_create.html',
{ 'transfer_formset': transfer_formset }) { 'transfer_formset': transfer_formset })
@teamkfet_required @teamkfet_required
def perform_transfers(request): def perform_transfers(request):
data = {'errors': {}, 'transfers': [], 'transfergroup': 0} data = {'errors': {}, 'transfers': [], 'transfergroup': 0}
@ -1534,13 +1543,16 @@ def perform_transfers(request):
# Checking transfer_formset # Checking transfer_formset
transfer_formset = TransferFormSet(request.POST) transfer_formset = TransferFormSet(request.POST)
if not transfer_formset.is_valid(): if not transfer_formset.is_valid():
return JsonResponse({ 'errors': list(transfer_formset.errors)}, status=400) return JsonResponse({'errors': list(transfer_formset.errors)},
status=400)
transfers = transfer_formset.save(commit=False) transfers = transfer_formset.save(commit=False)
# Initializing vars # Initializing vars
required_perms = set(['kfet.add_transfer']) # Required perms to perform all transfers # Required perms to perform all transfers
to_accounts_balances = defaultdict(lambda:0) # For balances of accounts required_perms = set(['kfet.add_transfer'])
# For balances of accounts
to_accounts_balances = defaultdict(lambda: 0)
for transfer in transfers: for transfer in transfers:
to_accounts_balances[transfer.from_acc] -= transfer.amount to_accounts_balances[transfer.from_acc] -= transfer.amount
@ -1589,8 +1601,8 @@ def perform_transfers(request):
negative = AccountNegative( negative = AccountNegative(
account=account, start=timezone.now()) account=account, start=timezone.now())
negative.save() negative.save()
elif (hasattr(account, 'negative') elif (hasattr(account, 'negative') and
and not account.negative.balance_offset): not account.negative.balance_offset):
account.negative.delete() account.negative.delete()
# Saving transfer group # Saving transfer group