Beispiel #1
0
 def get_amount(self):
     """
     Returns the reversed tva amount
     """
     tva_amount = self.payment.tva.value
     ht_value = reverse_tva(self.payment.amount, tva_amount)
     tva_value = compute_tva(ht_value, tva_amount)
     return floor(tva_value)
Beispiel #2
0
 def get_amount(self):
     """
     Returns the reversed tva amount
     """
     tva_amount = self.payment.tva.value
     ht_value = reverse_tva(self.payment.amount, tva_amount)
     tva_value = compute_tva(ht_value, tva_amount)
     return floor(tva_value)
Beispiel #3
0
    def manual_payment_line_amounts(self):
        """
            Computes the ht and tva needed to reach each payment line total

            self.payment_lines are configured with TTC amounts


            return a list of dict:
                [{tva1:ht_amount, tva2:ht_amount}]
            each dict represents a configured payment line
        """
        # Cette méthode recompose un paiement qui a été configuré TTC, sous
        # forme de part HT + TVA au regard des différentes tva configurées dans
        # le devis
        ret_data = []
        parts = self.tva_ht_parts()
        # On enlève déjà ce qui est inclu dans l'accompte
        for tva, ht_amount in self.deposit_amounts().items():
            parts[tva] -= ht_amount

        for payment in self.payment_lines[:-1]:
            payment_ttc = payment.amount
            payment_lines = {}

            for tva, total_ht in parts.items():
                payment_ht = math_utils.reverse_tva(
                    payment_ttc,
                    tva,
                    False,
                )
                if total_ht >= payment_ht:
                    # Le total ht de cette tranche de tva est suffisant pour
                    # recouvrir notre paiement
                    # on la récupère
                    payment_lines[tva] = payment_ht
                    # On enlève ce qu'on vient de prendre de la tranche de tva
                    # pour le calcul des autres paiements
                    parts[tva] = total_ht - payment_ht
                    ret_data.append(payment_lines)
                    break
                else:
                    # On a besoin d'une autre tranche de tva pour atteindre
                    # notre paiement, on prend déjà ce qu'il y a
                    payment_lines[tva] = parts.pop(tva)
                    # On enlève la part qu'on a récupéré dans cette tranche de
                    # tva du total de notre paiement
                    payment_ttc -= total_ht + math_utils.compute_tva(
                        total_ht,
                        tva,
                    )

        # Ce qui reste c'est donc pour notre facture de solde
        sold = parts
        ret_data.append(sold)
        return ret_data
Beispiel #4
0
    def manual_payment_line_amounts(self):
        """
            Computes the ht and tva needed to reach each payment line total

            self.payment_lines are configured with TTC amounts


            return a list of dict:
                [{tva1:ht_amount, tva2:ht_amount}]
            each dict represents a configured payment line
        """
        # Cette méthode recompose un paiement qui a été configuré TTC, sous
        # forme de part HT + TVA au regard des différentes tva configurées dans
        # le devis
        ret_data = []
        parts = self.tva_ht_parts()
        # On enlève déjà ce qui est inclu dans l'accompte
        for tva, ht_amount in self.deposit_amounts().items():
            parts[tva] -= ht_amount

        for payment in self.payment_lines[:-1]:
            payment_ttc = payment.amount
            payment_lines = {}

            for tva, total_ht in parts.items():
                payment_ht = math_utils.reverse_tva(
                    payment_ttc,
                    tva,
                    False,
                )
                if total_ht >= payment_ht:
                    # Le total ht de cette tranche de tva est suffisant pour
                    # recouvrir notre paiement
                    # on la récupère
                    payment_lines[tva] = payment_ht
                    # On enlève ce qu'on vient de prendre de la tranche de tva
                    # pour le calcul des autres paiements
                    parts[tva] = total_ht - payment_ht
                    ret_data.append(payment_lines)
                    break
                else:
                    # On a besoin d'une autre tranche de tva pour atteindre
                    # notre paiement, on prend déjà ce qu'il y a
                    payment_lines[tva] = parts.pop(tva)
                    # On enlève la part qu'on a récupéré dans cette tranche de
                    # tva du total de notre paiement
                    payment_ttc -= total_ht + math_utils.compute_tva(
                        total_ht,
                        tva,
                    )

        # Ce qui reste c'est donc pour notre facture de solde
        sold = parts
        ret_data.append(sold)
        return ret_data
Beispiel #5
0
 def tva_amount(self):
     """
         compute the tva amount of a line
     """
     totalht = self.total_ht()
     return math_utils.compute_tva(totalht, self.tva)
def test_compute_tva():
    assert compute_tva(10000, 2000) == 2000
Beispiel #7
0
 def tva_amount(self):
     """
         compute the tva amount of a line
     """
     totalht = self.total_ht()
     return math_utils.compute_tva(totalht, self.tva)
Beispiel #8
0
def test_compute_tva():
    assert compute_tva(10000, 2000) == 2000