Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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
Esempio n. 5
0
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)
Esempio n. 6
0
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)
Esempio n. 7
0
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
Esempio n. 8
0
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
Esempio n. 9
0
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)
Esempio n. 10
0
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)
Esempio n. 11
0
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)
Esempio n. 12
0
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)
Esempio n. 13
0
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)