def _issue(self, issue_date=None, due_date=None): if issue_date: self.issue_date = datetime.strptime(issue_date, '%Y-%m-%d').date() elif not self.issue_date and not issue_date: self.issue_date = timezone.now().date() if not self.transaction_xe_rate: if not self.transaction_xe_date: self.transaction_xe_date = self.issue_date try: xe_rate = CurrencyConverter.convert(1, self.currency, self.transaction_currency, self.transaction_xe_date) except RateNotFound: raise TransitionNotAllowed('Couldn\'t automatically obtain an ' 'exchange rate.') self.transaction_xe_rate = xe_rate if due_date: self.due_date = datetime.strptime(due_date, '%Y-%m-%d').date() elif not self.due_date and not due_date: delta = timedelta(days=PAYMENT_DUE_DAYS) self.due_date = timezone.now().date() + delta if not self.sales_tax_name: self.sales_tax_name = self.customer.sales_tax_name if not self.sales_tax_percent: self.sales_tax_percent = self.customer.sales_tax_percent if not self.number: self.number = self._generate_number() self.archived_customer = self.customer.get_archivable_field_values()
def _issue(self, issue_date=None, due_date=None): if issue_date: self.issue_date = datetime.strptime(issue_date, '%Y-%m-%d').date() elif not self.issue_date and not issue_date: self.issue_date = timezone.now().date() if not self.transaction_xe_rate: if not self.transaction_xe_date: self.transaction_xe_date = self.issue_date try: xe_rate = CurrencyConverter.convert(1, self.currency, self.transaction_currency, self.transaction_xe_date) except RateNotFound: raise TransitionNotAllowed('Couldn\'t automatically obtain an ' 'exchange rate.') self.transaction_xe_rate = xe_rate if due_date: self.due_date = datetime.strptime(due_date, '%Y-%m-%d').date() elif not self.due_date and not due_date: delta = timedelta(days=PAYMENT_DUE_DAYS) self.due_date = timezone.now().date() + delta if not self.sales_tax_name: self.sales_tax_name = self.customer.sales_tax_name if not self.sales_tax_percent: self.sales_tax_percent = self.customer.sales_tax_percent if not self.number: self.number = self._generate_number() self.archived_customer = self.customer.get_archivable_field_values() self._total = self.compute_total() self._total_in_transaction_currency = self.compute_total_in_transaction_currency()