def save_payment(request, bill_id): """Enregistre le paiement """ bill = get_object_or_404(Facture, pk=bill_id) if bill.in_use_by != request.user: messages.add_message(request, messages.ERROR, "Facture en cours" " d'édition par %s" % request.user) return redirect('bill_view', bill.id) if request.session.get('type_selected', False): type_payment = request.session['type_selected'] else: messages.add_message(request, messages.ERROR, "Paiement invalide") return redirect('prepare_payment', bill_id) if type(type_payment) != type(PaiementType()): messages.add_message(request, messages.ERROR, "Paiement invalide") return redirect('prepare_payment', bill_id) left = request.session.get('left', "0") right = request.session.get('right', "0") montant = "%s.%s" % (left, right) if type_payment.fixed_value: count = request.session.get('tickets_count', 1) try: result = bill.add_payment(type_payment, count, montant) except: messages.add_message(request, messages.ERROR, "Paiement invalide") return redirect('prepare_payment', bill_id) else: try: result = bill.add_payment(type_payment, montant) except: messages.add_message(request, messages.ERROR, "Paiement invalide") return redirect('prepare_payment', bill_id) if not result: messages.add_message(request, messages.ERROR, "Le paiement n'a pu être enregistré.") return redirect('prepare_payment', bill_id) cleanup_payment(request) if bill.est_soldee(): messages.add_message(request, messages.SUCCESS, "La facture a été soldée.") # bill.used_by() # if "bill_in_use" in request.session.keys(): # request.session.pop("bill_in_use") remove_edition(request) return redirect('bill_home') else: messages.add_message(request, messages.SUCCESS, "Le paiement a été enregistré.") return redirect('prepare_payment', bill_id)
def save_payment(request, bill_id): """Enregistre le paiement :param HttpRequest request: :param bill_id: """ bill = get_object_or_404(Facture, pk=bill_id) if bill.in_use_by != request.user: messages.add_message(request, messages.ERROR, "%s %s" % ( _("Bill is being edited by"), request.user)) return redirect('bill_view', bill.id) if request.session.get('type_selected', False): type_payment = request.session['type_selected'] else: messages.add_message(request, messages.ERROR, _("Invalid payment")) return redirect('prepare_payment', bill_id) if not isinstance(type_payment, type(PaiementType())): messages.add_message(request, messages.ERROR, _("Invalid payment")) return redirect('prepare_payment', bill_id) left = request.session.get('left', "0") right = request.session.get('right', "0") montant = "%s.%s" % (left, right) if type_payment.fixed_value: count = request.session.get('tickets_count', 1) try: result = bill.add_payment(type_payment, count, montant) except: messages.add_message(request, messages.ERROR, _("Invalid payment")) return redirect('prepare_payment', bill_id) else: try: result = bill.add_payment(type_payment, montant) except: messages.add_message(request, messages.ERROR, _("Invalid payment")) return redirect('prepare_payment', bill_id) if not result: messages.add_message(request, messages.ERROR, _("Payment could not be saved")) return redirect('prepare_payment', bill_id) cleanup_payment(request) if bill.est_soldee(): messages.add_message(request, messages.SUCCESS, _("This invoice has been ended")) # bill.used_by() # if "bill_in_use" in request.session.keys(): # request.session.pop("bill_in_use") remove_edition(request) return redirect('bill_home') else: return redirect('prepare_payment', bill_id)
def save_payment(request, bill_id): """Enregistre le paiement """ bill = get_object_or_404(Facture, pk=bill_id) if bill.in_use_by != request.user: messages.add_message( request, messages.ERROR, "%s %s" % (_("Bill is being edited by"), request.user)) return redirect('bill_view', bill.id) if request.session.get('type_selected', False): type_payment = request.session['type_selected'] else: messages.add_message(request, messages.ERROR, _("Invalid payment")) return redirect('prepare_payment', bill_id) if type(type_payment) != type(PaiementType()): messages.add_message(request, messages.ERROR, _("Invalid payment")) return redirect('prepare_payment', bill_id) left = request.session.get('left', "0") right = request.session.get('right', "0") montant = "%s.%s" % (left, right) if type_payment.fixed_value: count = request.session.get('tickets_count', 1) try: result = bill.add_payment(type_payment, count, montant) except: messages.add_message(request, messages.ERROR, _("Invalid payment")) return redirect('prepare_payment', bill_id) else: try: result = bill.add_payment(type_payment, montant) except: messages.add_message(request, messages.ERROR, _("Invalid payment")) return redirect('prepare_payment', bill_id) if not result: messages.add_message(request, messages.ERROR, _("Payment could not be saved")) return redirect('prepare_payment', bill_id) cleanup_payment(request) if bill.est_soldee(): messages.add_message(request, messages.SUCCESS, _("This invoice has been ended")) # bill.used_by() # if "bill_in_use" in request.session.keys(): # request.session.pop("bill_in_use") remove_edition(request) return redirect('bill_home') else: messages.add_message(request, messages.SUCCESS, _("Payment saved")) return redirect('prepare_payment', bill_id)
def set_edition_status(request, bill): """Only one user can add a payment or a products on a bill at a time. We use a key in request.session to update edition status for a bill. :param HttpRequest request: :param Facture bill: """ if not bill: LOG.warning("We need a bill") return False if bill.in_use_by and bill.in_use_by != request.user: LOG.warning("[F%s] Bill already in edition mode" % bill.pk) messages.add_message(request, messages.ERROR, "%s %s" % (_("Bill is being edited by"), request.user)) return False if request.session.get('bill_in_use', None) and\ request.session['bill_in_use'] != bill.id: request = remove_edition(request) request.session['bill_in_use'] = bill.id bill.used_by(request.user) return True
def bill_home(request): """Get current list of bills, and set a parameter to indicate long time bill without activities :param HttpRequest request: """ request = remove_edition(request) context = {'menu_bills': True, } context['need_auto_refresh'] = 45 context['factures'] = Facture().non_soldees() for bill in context['factures']: sec = bill.get_last_change() if sec > settings.CRITICAL: bill.alert = "alert-danger" elif sec > settings.WARNING: bill.alert = "alert-warning" elif sec > settings.INFO: bill.alert = "alert-info" else: bill.alert = "alert-success" context['critical'] = int(settings.CRITICAL) / 60 context['warning'] = int(settings.WARNING) / 60 context['info'] = int(settings.INFO) / 60 context['count'] = len(context['factures']) return render(request, 'bill/facture_list.html', context)
def profile(request): ''' :param HttpRequest request: :return rtype: HttpResponse ''' request = remove_edition(request) context = {'menu_profile': True, } context['perms_list'] = settings.PERMS old = request.POST.get('old', '').strip() new1 = request.POST.get('new1', '').strip() new2 = request.POST.get('new2', '').strip() if old: username = request.user.username if request.user.check_password(old): if new1 and new1 == new2: request.user.set_password(new1) request.user.save() messages.add_message(request, messages.SUCCESS, _("Password changed")) LOG.info('[%s] password changed' % username) else: messages.add_message(request, messages.ERROR, _("New password invalid")) LOG.warning('[%s] new password invalid' % username) else: messages.add_message(request, messages.ERROR, _("Invalid password")) LOG.warning('[%s] chk password failed' % username) return render(request, 'base/profile.html', context)
def set_edition_status(request, bill): """Only one user can add a payment or a products on a bill at a time. We use a key in request.session to update edition status for a bill. bill: Facture() """ if not bill: return False if bill.in_use_by: if bill.in_use_by != request.user: messages.add_message(request, messages.ERROR, "Facture en cours d'édition par %s" % request.user) return False else: if request.session.get('bill_in_use', None): if request.session['bill_in_use'] != bill.id: request = remove_edition(request) request.session['bill_in_use'] = bill.id bill.used_by(request.user) return True
def set_edition_status(request, bill): """Only one user can add a payment or a products on a bill at a time. We use a key in request.session to update edition status for a bill. bill: Facture() """ if not bill: return False if bill.in_use_by: if bill.in_use_by != request.user: messages.add_message( request, messages.ERROR, "%s %s" % (_("Bill is being edited by"), request.user)) return False else: if request.session.get('bill_in_use', None): if request.session['bill_in_use'] != bill.id: request = remove_edition(request) request.session['bill_in_use'] = bill.id bill.used_by(request.user) return True
def bill_home(request): request = remove_edition(request) context = { 'menu_bills': True, } context['need_auto_refresh'] = 30 context['factures'] = Facture().non_soldees() return render(request, 'bill/home.html', context)
def bill_view(request, bill_id): """Get a bill.""" request = remove_edition(request) context = {'menu_bills': True, } bill = get_object_or_404(Facture, pk=bill_id) context['facture'] = bill context['products_sold'] = bill.reduced_sold_list(bill.produits.all()) if context['facture'].est_soldee(): messages.add_message(request, messages.ERROR, _("This invoice has already been ended")) return redirect('bill_home') return render(request, 'bill/bill.html', context)
def bill_view(request, bill_id): """Get a bill.""" request = remove_edition(request) context = { 'menu_bills': True, } bill = get_object_or_404(Facture, pk=bill_id) context['facture'] = bill context['products_sold'] = bill.reduced_sold_list(bill.produits.all()) if context['facture'].est_soldee(): messages.add_message(request, messages.ERROR, _("This invoice has already been ended")) return redirect('bill_home') return render(request, 'bill/bill.html', context)
def profile(request): request = remove_edition(request) context = {'menu_profile': True, } context['perms_list'] = settings.PERMS old = request.POST.get('old', '').strip() new1 = request.POST.get('new1', '').strip() new2 = request.POST.get('new2', '').strip() if old: if context['user'].check_password(old): if new1 and new1 == new2: context['user'].set_password(new1) context['user'].save() context['success'] = "Le mot de passe a été changé." logger.info('[%s] password changed' % context['user'].username) else: context['error'] = "Le nouveau mot de passe n'est pas valide." logger.warning('[%s] new password is not correct' % context['user'].username) else: context['error'] = "Le mot de passe fourni n'est pas bon." logger.warning('[%s] check password failed' % context['user'].username) return render(request, 'base/profile.html', context)
def bill_home(request): request = remove_edition(request) context = {'menu_bills': True, } context['need_auto_refresh'] = 30 context['factures'] = Facture().non_soldees() return render(request, 'bill/home.html', context)