Ignore:
Timestamp:
6 Mar 2018, 16:10:56 (7 years ago)
Author:
Henrik Bettermann
Message:

Implement school fee installment payment.

Location:
main/waeup.uniben/trunk/src/waeup/uniben
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.uniben/trunk/src/waeup/uniben/remita/browser.py

    r14902 r14960  
    8181            if student.current_mode == 'ug_pt':
    8282                return '2067091679'
     83            if student.current_mode == 'special_ft':
     84                return '2750318564' # Module 2
    8385            if student.is_jupeb:
    8486                return '1946888188'
     
    101103        if self.context.p_category == 'jupeb':
    102104            return '1947198586'
     105        if self.context.p_category == 'pharmd_1':
     106            return '2750314820' # Clerkship
     107        if self.context.p_category == 'pharmd_2':
     108            return '2750174184' # Module 1
    103109        return ''
    104110
     
    124130    @property
    125131    def lineitems(self):
     132        inst_bankcode = "000"
     133        inst_acct = "0040217361011"
    126134        provider_amt = 0.0
    127135        if self.context.p_category == 'schoolfee' and \
     
    130138        elif self.context.p_category == 'clearance':
    131139            provider_amt = self.dynamic_provider_amt(self.context.student)
    132         inst_amt = self.context.amount_auth - provider_amt
     140        elif self.context.p_category == 'pharmd_1':
     141            inst_acct = "0020197061015"
     142            provider_amt = 0.0
    133143        if self.context.student.is_jupeb \
    134144            or self.context.student.current_mode == 'dp_ft':
    135145            inst_acct = "0040217361038"
    136         else:
    137             inst_acct = "0040217361011"
     146        inst_amt = self.context.amount_auth - provider_amt
    138147        if provider_amt:
    139148            lineitems = (
    140149                          {"lineItemsId":"itemid1","beneficiaryName":"Uniben",
    141                           "beneficiaryAccount":inst_acct,"bankCode":"000",
     150                          "beneficiaryAccount":inst_acct,"bankCode":inst_bankcode,
    142151                          "beneficiaryAmount":inst_amt,"deductFeeFrom":"1"},
    143152                          {"lineItemsId":"itemid2","beneficiaryName":"WAeAC",
     
    148157            lineitems = (
    149158                          {"lineItemsId":"itemid1","beneficiaryName":"Uniben",
    150                           "beneficiaryAccount":inst_acct,"bankCode":"000",
     159                          "beneficiaryAccount":inst_acct,"bankCode":inst_bankcode,
    151160                          "beneficiaryAmount":inst_amt,"deductFeeFrom":"1"},
    152161                        )
     162        # Split pharmd school fee payments into 3 parts if students decide to pay the
     163        # entire school fee at once. If the amount is less than N240000, the student
     164        # has obviously paid the first installment of N80000 (pharmd_1)
     165        if self.context.p_category == 'schoolfee' \
     166            and self.context.student.current_mode == 'special_ft' \
     167            and self.context.amount_auth >= 240000:
     168            pcn_amt = 80000.0
     169            inst_amt -= pcn_amt
     170            lineitems = (
     171                          {"lineItemsId":"itemid1","beneficiaryName":"Uniben",
     172                          "beneficiaryAccount":inst_acct,"bankCode":inst_bankcode,
     173                          "beneficiaryAmount":inst_amt,"deductFeeFrom":"1"},
     174                          {"lineItemsId":"itemid2","beneficiaryName":"PCN",
     175                          "beneficiaryAccount":"0020197061015","bankCode":inst_bankcode,
     176                          "beneficiaryAmount":pcn_amt,"deductFeeFrom":"0"},
     177                          {"lineItemsId":"itemid3","beneficiaryName":"WAeAC",
     178                          "beneficiaryAccount":"1014261520","bankCode":"057",
     179                          "beneficiaryAmount":provider_amt,"deductFeeFrom":"0"}
     180                        )
     181        self.context.provider_amt = provider_amt
    153182        return lineitems
    154183
     
    240269                      "beneficiaryAmount":provider_amt,"deductFeeFrom":"0"}
    241270                    )
     271        self.context.provider_amt = provider_amt
    242272        return lineitems
    243273
  • main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py

    r14932 r14960  
    178178    #    return False
    179179
     180    def _pharmdInstallments(self, student):
     181        installments = 0.0
     182        if len(student['payments']):
     183            for ticket in student['payments'].values():
     184                if ticket.p_state == 'paid' and \
     185                    ticket.p_category.startswith('pharmd') and \
     186                    ticket.p_session == student.current_session:
     187                    installments += ticket.amount_auth
     188        return installments
     189
    180190    def setPaymentDetails(self, category, student,
    181191            previous_session, previous_level):
     
    218228        elif category == 'clinexam':
    219229            amount = academic_session.clinexam_fee
     230        elif category.startswith('pharmd') \
     231            and student.current_mode == 'special_ft':
     232            amount = 80000.0
    220233        elif category == 'bed_allocation':
    221234            p_item = self.getAccommodationDetails(student)['bt']
     
    348361                            and certificate.custom_float_1:
    349362                            amount -= certificate.custom_float_1
     363                # PHARMD school fee amount is fixed and previously paid
     364                # installments in current session are deducted.
     365                if student.current_mode == 'special_ft':
     366                    amount = 240000.0 - self._pharmdInstallments(student)
    350367            # Give 50% school fee discount to staff members.
    351368            if student.is_staff:
  • main/waeup.uniben/trunk/src/waeup/uniben/utils/utils.py

    r14811 r14960  
    8686        'registration': 'Total Registration Fee',
    8787        'clinexam':'Clinical Examination Fee',
     88        'pharmd_1':'Clerkship Fee',
     89        'pharmd_2':'Module 1 Fee',
    8890        }
    8991
     
    103105        'jupeb': 'JUPEB Examination Fee',
    104106        'clinexam':'Clinical Examination Fee',
     107        'pharmd_1':'PharmD Clerkship Fee (1st school fee prepayment)',
     108        'pharmd_2':'PharmD Module 1 Fee (2nd school fee prepayment)',
    105109        }
    106110
Note: See TracChangeset for help on using the changeset viewer.