Exemple #1
0
    def on_confirm(self):
        self.model.base_value = self.model.value
        facet = self.person.read()
        if facet and facet is not ValueUnset:
            setattr(self.model.group, self.person_attribute, facet.person)

        self.model.attachment = self.fields['attachment'].attachment

        # We can only change the identifier if the object is branch new (not edit_mode). If the
        # object is being edited and the identifier is not temporary, it has already being synced
        # with the destination branch and the identifier should no longer change.
        # XXX: We can probably remove the temporary identifiers now that we have the station_id as
        # part of the key in the identifiable domain.
        other_branch = self._is_for_another_branch()
        if other_branch and not self.edit_mode:
            self.model.identifier = Payment.get_temporary_identifier(
                self.store)

        self.store.add(self.model.group)
        self.store.add(self.model)

        if self.repeat.get_selected() != _ONCE:
            Payment.create_repeated(self.store,
                                    self.model,
                                    self.repeat.get_selected(),
                                    self.model.due_date.date(),
                                    self.end_date.get_date(),
                                    temporary_identifiers=other_branch)
Exemple #2
0
    def on_confirm(self):
        self.model.base_value = self.model.value
        facet = self.person.read()
        if facet and facet is not ValueUnset:
            setattr(self.model.group,
                    self.person_attribute,
                    facet.person)

        self.model.attachment = self.fields['attachment'].attachment

        # We can only change the identifier if the object is branch new (not edit_mode). If the
        # object is being edited and the identifier is not temporary, it has already being synced
        # with the destination branch and the identifier should no longer change.
        # XXX: We can probably remove the temporary identifiers now that we have the station_id as
        # part of the key in the identifiable domain.
        other_branch = self._is_for_another_branch()
        if other_branch and not self.edit_mode:
            self.model.identifier = Payment.get_temporary_identifier(self.store)

        self.store.add(self.model.group)
        self.store.add(self.model)

        if self.repeat.get_selected() != _ONCE:
            Payment.create_repeated(self.store, self.model,
                                    self.repeat.get_selected(),
                                    self.model.due_date.date(),
                                    self.end_date.get_date(),
                                    temporary_identifiers=other_branch)
Exemple #3
0
    def on_confirm(self):
        self.model.base_value = self.model.value
        facet = self.person.read()
        if facet and facet is not ValueUnset:
            setattr(self.model.group, self.person_attribute, facet.person)

        self.model.attachment = self.fields['attachment'].attachment

        self.store.add(self.model.group)
        self.store.add(self.model)

        if self.repeat.get_selected() != _ONCE:
            Payment.create_repeated(self.store, self.model,
                                    self.repeat.get_selected(),
                                    self.model.due_date.date(),
                                    self.end_date.get_date())
Exemple #4
0
 def test_create_repeated_with_temporary_identifier(self):
     payment = self.create_payment()
     payment.description = u'temporary'
     payments = Payment.create_repeated(self.store, payment,
                                        INTERVALTYPE_MONTH,
                                        localdate(2012, 1, 1).date(),
                                        localdate(2012, 3, 1).date(),
                                        temporary_identifiers=True)
     (self.assertTrue(p.identifier < 0) for p in payments)
Exemple #5
0
    def on_confirm(self):
        self.model.base_value = self.model.value
        facet = self.person.read()
        if facet and facet is not ValueUnset:
            setattr(self.model.group,
                    self.person_attribute,
                    facet.person)

        self.model.attachment = self.fields['attachment'].attachment

        self.store.add(self.model.group)
        self.store.add(self.model)

        if self.repeat.get_selected() != _ONCE:
            Payment.create_repeated(self.store, self.model,
                                    self.repeat.get_selected(),
                                    self.model.due_date.date(),
                                    self.end_date.get_date())
Exemple #6
0
    def on_confirm(self):
        self.model.base_value = self.model.value
        person = self.person.get_selected_data()
        if (person is not None and person is not ValueUnset and
                # FIXME: PersonField should never let get_selected_data()
                #        return anything different from None and the model.
                person != ""):
            setattr(self.model.group, self.person_attribute,
                    self.store.fetch(person.person))

        self.model.attachment = self.fields['attachment'].attachment

        self.store.add(self.model.group)
        self.store.add(self.model)

        if self.repeat.get_selected() != _ONCE:
            Payment.create_repeated(self.store, self.model,
                                    self.repeat.get_selected(),
                                    self.model.due_date.date(),
                                    self.end_date.get_date())
Exemple #7
0
    def test_create_repeated_month(self):
        p = self.create_payment()
        p.description = u'Rent'
        p.category = self.create_payment_category()
        with self.assertRaises(AssertionError):
            Payment.create_repeated(self.store, p, INTERVALTYPE_MONTH,
                                    localdate(2012, 1, 1).date(),
                                    localdate(2012, 1, 1).date())
        payments = Payment.create_repeated(self.store, p, INTERVALTYPE_MONTH,
                                           localdate(2012, 1, 1).date(),
                                           localdate(2012, 12, 31).date())
        self.assertEqual(len(payments), 11)
        self.assertEqual(p.due_date, localdatetime(2012, 1, 1))
        self.assertEqual(p.description, u'1/12 Rent')

        self.assertEqual(payments[0].due_date, localdatetime(2012, 2, 1))
        self.assertEqual(payments[1].due_date, localdatetime(2012, 3, 1))
        self.assertEqual(payments[10].due_date, localdatetime(2012, 12, 1))

        self.assertEqual(payments[0].description, u'2/12 Rent')
        self.assertEqual(payments[10].description, u'12/12 Rent')
Exemple #8
0
    def test_create_repeated_month(self):
        p = self.create_payment()
        p.description = u"Rent"
        p.category = self.create_payment_category()
        with self.assertRaises(AssertionError):
            Payment.create_repeated(
                self.store, p, INTERVALTYPE_MONTH, localdate(2012, 1, 1).date(), localdate(2012, 1, 1).date()
            )
        payments = Payment.create_repeated(
            self.store, p, INTERVALTYPE_MONTH, localdate(2012, 1, 1).date(), localdate(2012, 12, 31).date()
        )
        self.assertEquals(len(payments), 11)
        self.assertEquals(p.due_date, localdatetime(2012, 1, 1))
        self.assertEquals(p.description, u"1/12 Rent")

        self.assertEquals(payments[0].due_date, localdatetime(2012, 2, 1))
        self.assertEquals(payments[1].due_date, localdatetime(2012, 3, 1))
        self.assertEquals(payments[10].due_date, localdatetime(2012, 12, 1))

        self.assertEquals(payments[0].description, u"2/12 Rent")
        self.assertEquals(payments[10].description, u"12/12 Rent")
Exemple #9
0
    def on_confirm(self):
        self.model.base_value = self.model.value
        person = self.person.get_selected_data()
        if (person is not None and person is not ValueUnset and
            # FIXME: PersonField should never let get_selected_data()
            #        return anything different from None and the model.
            person != ""):
            setattr(self.model.group,
                    self.person_attribute,
                    self.store.fetch(person.person))

        self.model.attachment = self.fields['attachment'].attachment

        self.store.add(self.model.group)
        self.store.add(self.model)

        if self.repeat.get_selected() != _ONCE:
            Payment.create_repeated(self.store, self.model,
                                    self.repeat.get_selected(),
                                    self.model.due_date.date(),
                                    self.end_date.get_date())
Exemple #10
0
    def testCreateRepeatedMonth(self):
        p = self.create_payment()
        p.description = u"Rent"
        p.category = self.create_payment_category()
        payments = Payment.create_repeated(
            self.store, p, INTERVALTYPE_MONTH, datetime.date(2012, 1, 1), datetime.date(2012, 12, 31)
        )
        self.assertEquals(len(payments), 11)
        self.assertEquals(p.due_date, datetime.datetime(2012, 1, 1))
        self.assertEquals(p.description, u"1/12 Rent")

        self.assertEquals(payments[0].due_date, datetime.datetime(2012, 2, 1))
        self.assertEquals(payments[1].due_date, datetime.datetime(2012, 3, 1))
        self.assertEquals(payments[10].due_date, datetime.datetime(2012, 12, 1))

        self.assertEquals(payments[0].description, u"2/12 Rent")
        self.assertEquals(payments[10].description, u"12/12 Rent")
Exemple #11
0
    def test_create_repeated_month(self):
        p = self.create_payment()
        p.description = u'Rent'
        p.category = self.create_payment_category()
        payments = Payment.create_repeated(self.store, p,
                                           INTERVALTYPE_MONTH,
                                           localdate(2012, 1, 1).date(),
                                           localdate(2012, 12, 31).date())
        self.assertEquals(len(payments), 11)
        self.assertEquals(p.due_date, localdatetime(2012, 1, 1))
        self.assertEquals(p.description, u'1/12 Rent')

        self.assertEquals(payments[0].due_date, localdatetime(2012, 2, 1))
        self.assertEquals(payments[1].due_date, localdatetime(2012, 3, 1))
        self.assertEquals(payments[10].due_date, localdatetime(2012, 12, 1))

        self.assertEquals(payments[0].description, u'2/12 Rent')
        self.assertEquals(payments[10].description, u'12/12 Rent')