X-Git-Url: https://scm.cri.minesparis.psl.eu/git/photoprint.git/blobdiff_plain/ccaba0f54cbd41250107d36a49154353425da8b3..b521f0db73266a7bd6b69e6a9891046a03c482ee:/price.py?ds=inline diff --git a/price.py b/price.py deleted file mode 100755 index 83a23bf..0000000 --- a/price.py +++ /dev/null @@ -1,105 +0,0 @@ -# -*- coding: utf-8 -*- -####################################################################################### -# Copyright © 2009 Benoît Pin # -# Plinn - http://plinn.org # -# # -# # -# This program is free software; you can redistribute it and/or # -# modify it under the terms of the GNU General Public License # -# as published by the Free Software Foundation; either version 2 # -# of the License, or (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # -####################################################################################### -""" -Pricing types - - - -""" - -from Globals import Persistent -from AccessControl import ModuleSecurityInfo -from utils import Message as _ -from utils import translate -from zope.globalrequest import getRequest - -msecurity = ModuleSecurityInfo('Products.photoprint.price') -msecurity.declarePublic('Price') - -class Price(object, Persistent) : - """ - Price of an object which have VAT tax. - """ - __allow_access_to_unprotected_subobjects__ = 1 - - def __init__(self, taxedPrice, rate=0) : - """price is initialized with taxed value""" - self._rate = float(rate) - self._setTaxed(taxedPrice) - - @property - def rate(self): - return self._localeStrNum(self._rate) - - def _setTaxed(self, value) : - self._taxed = value - self._price = value / (1 + self._rate) - - @property - def taxed(self) : - return self._localeStrNum(self._taxed) - - @property - def value(self) : - return self._localeStrNum(self._price) - - @property - def tax(self) : - tax = self._rate * self._price - return self._localeStrNum(tax) - - @property - def vat(self) : - "returns vat rate in percent" - vat = self._rate * 100 - return self._localeStrNum(vat) - - def _localeStrNum(self, n) : - i = int(n) - if i == n : - return str(i) - else : - n = str(round(n, 2)) - i, d = n.split('.') - ds = _(u'${i}.${d}', mapping={'i':i, 'd':d}, default=n) - return translate(ds).encode('utf-8') - - def getValues(self) : - values = {'value':self._price, - 'taxed': self._taxed, - 'rate':self._rate} - return values - - - def __add__(self, other) : - taxed = self._taxed + other._taxed - value = self._price + other._price - rate = (taxed - value ) / float(value) - return Price(taxed, rate) - - def __div__(self, other) : - return Price(self._taxed / other, self._rate) - - def __mul__(self, other) : - return Price(self._taxed * other, self._rate) - - def __repr__(self): - return '%s with VAT' % self.taxed