Ignore:
Timestamp:
1 Sep 2020, 06:11:13 (4 years ago)
Author:
Henrik Bettermann
Message:

Implement Required Combi Payment.

Location:
main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/students
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/students/tests/test_utils.py

    r16136 r16222  
    5252        self.assertEqual(error,
    5353            'Registration Fee, Book Deposit, Development Fee, Municipal Fee, '
    54             'Parents Consultative Forum (PCF) Fee must be paid before Tution Fee.')
     54            'Parents Consultative Forum (PCF) Fee must be paid before Tution Fee. '
     55            'Make either single payments or make a \'Required Combi Payment\'.')
     56        # A 'Required Combi Payment' is sufficient.
    5557        reg_payment = createObject('waeup.StudentOnlinePayment')
    56         reg_payment.p_category = u'registration'
     58        reg_payment.p_category = u'required_combi'
    5759        reg_payment.p_id = u'anyid'
    5860        reg_payment.p_state = u'paid'
     
    6062        self.student['payments']['anykey'] = reg_payment
    6163        error, payment = utils.setPaymentDetails('schoolfee',self.student)
     64        self.assertEqual(error, None)
     65        # Let's try with single payments.
     66        reg_payment.p_category = u'registration'
     67        error, payment = utils.setPaymentDetails('schoolfee',self.student)
    6268        self.assertEqual(error,
    6369            'Book Deposit, Development Fee, Municipal Fee, Parents Consultative '
    64             'Forum (PCF) Fee must be paid before Tution Fee.')
     70            'Forum (PCF) Fee must be paid before Tution Fee. '
     71            'Make either single payments or make a \'Required Combi Payment\'.')
    6572        IWorkflowState(self.student).setState('returning')
    6673        configuration = createObject('waeup.SessionConfiguration')
     
    7178        self.assertEqual(error,
    7279            'Registration Fee, Book Deposit, Development Fee, Municipal Fee, '
    73             'Parents Consultative Forum (PCF) Fee must be paid before Tution Fee.')
     80            'Parents Consultative Forum (PCF) Fee must be paid before Tution Fee. '
     81            'Make either single payments or make a \'Required Combi Payment\'.')
    7482        reg_payment.p_session = 2005
    7583        error, payment = utils.setPaymentDetails('schoolfee',self.student)
    7684        self.assertEqual(error,
    7785            'Book Deposit, Development Fee, Municipal Fee, Parents Consultative '
    78             'Forum (PCF) Fee must be paid before Tution Fee.')
     86            'Forum (PCF) Fee must be paid before Tution Fee. '
     87            'Make either single payments or make a \'Required Combi Payment\'.')
    7988        pcf_payment = createObject('waeup.StudentOnlinePayment')
    8089        pcf_payment.p_category = u'parentsconsult'
     
    8594        error, payment = utils.setPaymentDetails('schoolfee',self.student)
    8695        self.assertEqual(error,
    87             'Book Deposit, Development Fee, Municipal Fee must be paid before Tution Fee.')
     96            'Book Deposit, Development Fee, Municipal Fee must be paid before Tution Fee. '
     97            'Make either single payments or make a \'Required Combi Payment\'.')
    8898        munic_payment = createObject('waeup.StudentOnlinePayment')
    8999        munic_payment.p_category = u'municipal_fresh'
     
    94104        error, payment = utils.setPaymentDetails('schoolfee',self.student)
    95105        self.assertEqual(error,
    96             'Book Deposit, Development Fee must be paid before Tution Fee.')
     106            'Book Deposit, Development Fee must be paid before Tution Fee. '
     107            'Make either single payments or make a \'Required Combi Payment\'.')
    97108        book_payment = createObject('waeup.StudentOnlinePayment')
    98109        book_payment.p_category = u'book'
  • main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/students/utils.py

    r16140 r16222  
    6868            for category in self.REQUIRED_PAYMENTS.keys():
    6969                for ticket in student['payments'].values():
     70                    if ticket.p_category == 'required_combi' and \
     71                        ticket.p_session == session and \
     72                        ticket.p_state == 'paid':
     73                        cats_missing = None
     74                        break
    7075                    if ticket.p_state == 'paid' and \
    7176                        ticket.p_category.startswith(category) and \
    7277                        ticket.p_session == session:
    7378                        del cats_missing[category]
    74         if cats_missing:
    75             return "%s must be paid before Tution Fee." % ', '.join(
    76                 cats_missing.values())
    77         return
     79                if not cats_missing:
     80                    return
     81        return "%s must be paid before Tution Fee. Make either single payments or make a 'Required Combi Payment'." % ', '.join(
     82            cats_missing.values())
    7883
    7984    def setPaymentDetails(self, category, student,
     
    194199                p_item += u'%s + ' % categories[cat]
    195200            p_item = p_item.strip(' + ')
     201        elif category == 'required_combi':
     202            rp = deepcopy(self.REQUIRED_PAYMENTS)
     203            for cat in rp:
     204                fee_name = cat + '_fee'
     205                cat_amount = getattr(academic_session, fee_name, 0.0)
     206                if not cat_amount:
     207                    return _('%s undefined.' % rp[cat]), None
     208                amount += cat_amount
     209                p_item += u'%s + ' % rp[cat]
     210            p_item = p_item.strip(' + ')
    196211        else:
    197212            fee_name = category + '_fee'
Note: See TracChangeset for help on using the changeset viewer.