Example #1
0
    def save_to_focus(self, parent=None):
        first_name, last_name = self.name.rsplit(maxsplit=1)
        total_price = self.price()
        parent = '' if parent is None else str(parent)

        # Yearbook
        receive_yearbook = self.receive_yearbook()
        if self.enrollment.country != 'NO' and receive_yearbook:
            total_price += FOREIGN_SHIPMENT_PRICE

        # Address
        adr1 = self.enrollment.address1
        if self.enrollment.country == 'NO':
            adr2 = ''
            adr3 = ''
            zipcode = self.enrollment.zipcode
            area = self.enrollment.area
        elif self.enrollment.country == 'DK' or self.enrollment.country == 'SE':
            adr2 = ''
            adr3 = "%s-%s %s" % (self.enrollment.country, self.enrollment.zipcode, self.enrollment.area)
            zipcode = '0000'
            area = ''
        else:
            adr2 = self.enrollment.address2
            adr3 = self.enrollment.address3
            zipcode = '0000'
            area = ''

        if self.get_age() >= Enrollment.PARTNEROFFERS_OPTIN_MIN_AGE:
            partneroffers_optin = self.enrollment.partneroffers_optin
        else:
            partneroffers_optin = False

        if partneroffers_optin:
            partneroffers_optin_date = datetime.now()
        else:
            partneroffers_optin_date = None

        # Fetch and increment memberid with stored procedure
        cursor = current_focus_db_connection().cursor()
        cursor.execute("exec sp_custTurist_updateMemberId")
        memberid = cursor.fetchall()[0][0]

        focus_user = FocusEnrollment(
            memberid=memberid,
            last_name=last_name,
            first_name=first_name,
            birth_date=self.dob,
            gender=Actor.convert_gender(self.gender),
            parent=parent,
            adr1=adr1,
            adr2=adr2,
            adr3=adr3,
            country_code=self.enrollment.country,
            phone_home='',
            email=self.email,
            receive_yearbook=receive_yearbook,
            type=self.focus_type(),
            yearbook=ENROLLMENT_YEARBOOK_TYPE if receive_yearbook else '',
            payment_method=PAYMENT_METHOD_CODES[self.enrollment.payment_method],
            phone_mobile=self.phone,
            zipcode_id=zipcode,
            area=area,
            language='nb_no',
            totalprice=total_price,
            partneroffers_optin=partneroffers_optin,
            partneroffers_optin_date=partneroffers_optin_date,
        )
        focus_user.save()

        self.memberid = memberid
        self.save()