Gets the total of the invoice with a defined decimal precision
        @param precision: int Number of decimal places
        @return: Decimal

def compute_total(self, precision=None):
        '''
        Gets the total of the invoice with a defined decimal precision
        @param precision: int Number of decimal places
        @return: Decimal
        '''
        return quantize(sum([group.compute_total(precision) for group
                             in self.__groups]), places=precision) or ZERO