Ejemplo n.º 1
0
 def write_global_total_ttc(self):
     """
     Write the total tva in the upper part of the sheet
     """
     self._write_inline(
         u"Total TTC",
         u"%s €" % strings.format_amount(self.model.total, grouping=False))
Ejemplo n.º 2
0
 def write_global_total_km(self):
     """
     Write the total number of kilometers registered
     """
     self._write_inline(
         u"Total Kilométrique", u"%s km" %
         strings.format_amount(self.model.total_km, grouping=False))
Ejemplo n.º 3
0
def deferred_bank_remittance_id_default(node, kw):
    """
        default value for the payment amount
    """
    return format_amount(get_amount_topay(kw),
                         precision=AMOUNT_PRECISION,
                         grouping=False)
Ejemplo n.º 4
0
 def help_message(self):
     return (
         u"Enregistrer un paiement pour la facture {0} dont le montant "
         u"ttc restant à payer est de {1} €".format(
             self.context.official_number,
             format_amount(self.context.topay(), precision=5)
         )
     )
Ejemplo n.º 5
0
def deferred_bank_remittance_id_default(node, kw):
    """
        default value for the payment amount
    """
    return format_amount(
        get_amount_topay(kw),
        precision=AMOUNT_PRECISION,
        grouping=False
    )
Ejemplo n.º 6
0
def task_formatter(task):
    from autonomie.utils.strings import format_amount
    res = {
        'official_number': task.official_number,
        'date': task.date,
        'ht': format_amount(task.ht, grouping=False, precision=5),
        'tva': format_amount(task.tva, grouping=False, precision=5),
        'ttc': format_amount(task.ttc, grouping=False, precision=5),
        'company': task.project.company.name,
        'code': task.project.company.code_compta,
        'quantity': sum([line.quantity for line in task.all_lines]),
        'customer': task.customer.label,
        'description': task.description,
        'payment': '',
    }
    if task.payments:
        res['payment'] = task.payments[0].mode
    return res
Ejemplo n.º 7
0
 def write_global_total_km(self):
     """
     Write the total number of kilometers registered
     """
     self._write_inline(
         u"Total Kilométrique",
         u"%s km" % strings.format_amount(
             self.model.total_km, grouping=False
         )
     )
Ejemplo n.º 8
0
 def write_global_total_ttc(self):
     """
     Write the total tva in the upper part of the sheet
     """
     self._write_inline(
         u"Total TTC",
         u"%s €" % strings.format_amount(
             self.model.total, grouping=False
         )
     )
Ejemplo n.º 9
0
 def format_debit(self, debit):
     """
         Format the debit entry to get a clean float in our export
         12000 => 120,00
     """
     if debit == '':
         return 0
     else:
         return format_amount(debit,
                              grouping=False,
                              precision=self.amount_precision)
Ejemplo n.º 10
0
 def format_debit(self, debit):
     """
         Format the debit entry to get a clean float in our export
         12000 => 120,00
     """
     if debit == '':
         return 0
     else:
         return format_amount(
             debit,
             grouping=False,
             precision=self.amount_precision
         )
Ejemplo n.º 11
0
def deferred_total_validator(node, kw):
    """
        validate the amount to keep the sum under the total
    """
    topay = get_amount_topay(kw)
    max_msg = u"Le montant ne doit pas dépasser %s (total ttc - somme \
des paiements + montant d'un éventuel avoir)" % (
        format_amount(topay, precision=AMOUNT_PRECISION, grouping=False)
    )
    min_msg = u"Le montant doit être positif"

    # We insert a large epsilon to allow larger payments to be registered
    max_value = topay + PAYMENT_EPSILON
    return colander.Range(
        min=0, max=max_value, min_err=min_msg, max_err=max_msg,
    )
Ejemplo n.º 12
0
def deferred_total_validator(node, kw):
    """
        validate the amount to keep the sum under the total
    """
    topay = get_amount_topay(kw)
    max_msg = u"Le montant ne doit pas dépasser %s (total ttc - somme \
des paiements + montant d'un éventuel avoir)" % (format_amount(
        topay, precision=AMOUNT_PRECISION, grouping=False))
    min_msg = u"Le montant doit être positif"

    # We insert a large epsilon to allow larger payments to be registered
    max_value = topay + PAYMENT_EPSILON
    return colander.Range(
        min=0,
        max=max_value,
        min_err=min_msg,
        max_err=max_msg,
    )
Ejemplo n.º 13
0
 def help_message(self):
     return (u"Enregistrer un paiement pour la facture {0} dont le montant "
             u"ttc restant à payer est de {1} €".format(
                 self.context.official_number,
                 format_amount(self.context.topay(), precision=5)))
Ejemplo n.º 14
0
    def test_format_amount(self):
        a = 1525
        b = 1525.3
        locale.setlocale(locale.LC_ALL, 'fr_FR.UTF-8')
        self.assertEqual(strings.format_amount(a), "15,25")
        self.assertEqual(strings.format_amount(a, trim=False), "15,25")

        self.assertEqual(strings.format_amount(b), "15,25")
        self.assertEqual(strings.format_amount(b, trim=False), "15,25")

        c = 210000
        self.assertEqual(strings.format_amount(c, grouping=False), "2100,00")
        self.assertEqual(strings.format_amount(c, grouping=True),
                         "2 100,00")

        c = 21000000.0
        self.assertEqual(strings.format_amount(c, trim=False, precision=5),
                         "210,00")
        c = 21000004.0
        self.assertEqual(strings.format_amount(c, trim=False, precision=5),
                         "210,00004")
        c = 21000040.0
        self.assertEqual(strings.format_amount(c, trim=False, precision=5),
                         "210,0004")

        self.assertEqual(strings.format_amount(c, trim=True, precision=5),
                         "210,00")
        c = 21012000.0
        self.assertEqual(strings.format_amount(c, trim=False, precision=5),
                         "210,12")

        # With None input
        self.assertEqual(strings.format_amount(None), "")
Ejemplo n.º 15
0
    def test_format_amount(self):
        a = 1525
        b = 1525.3
        locale.setlocale(locale.LC_ALL, 'fr_FR.UTF-8')
        self.assertEqual(strings.format_amount(a), u"15,25")
        self.assertEqual(strings.format_amount(a, trim=False), u"15,25")

        self.assertEqual(strings.format_amount(b), u"15,25")
        self.assertEqual(strings.format_amount(b, trim=False), u"15,25")

        c = 210000
        self.assertEqual(
            strings.format_amount(c, grouping=False),
            u"2100,00"
        )
        self.assertEqual(
            strings.format_amount(c, grouping=True),
            u"2 100,00"
        )

        c = 21000000.0
        self.assertEqual(
            strings.format_amount(c, trim=False, precision=5),
            u"210,00"
        )
        c = 21000004.0
        self.assertEqual(
            strings.format_amount(c, trim=False,precision=5),
            u"210,00004"
        )
        c = 21000040.0
        self.assertEqual(
            strings.format_amount(c, trim=False,precision=5),
            u"210,0004"
        )

        self.assertEqual(
            strings.format_amount(c, trim=True, precision=5),
            u"210,00"
        )
        c = 21012000.0
        self.assertEqual(
            strings.format_amount(c, trim=False, precision=5),
            u"210,12"
        )

        # With None input
        self.assertEqual(
            strings.format_amount(None),
            u""
        )