Beispiel #1
0
def _admin_password_warn(uid):
    """ Admin still has `admin` password, flash a message via chatter.

    Uses a private mail.channel from the system (/ eaglebot) to the user, as
    using a more generic mail.thread could send an email which is undesirable

    Uses mail.channel directly because using mail.thread might send an email instead.
    """
    if request.params['password'] != 'admin':
        return
    if ipaddress.ip_address(request.httprequest.remote_addr).is_private:
        return
    admin = request.env.ref('base.partner_admin')
    if uid not in admin.user_ids.ids:
        return

    user = request.env(user=uid)['res.users']
    MailChannel = request.env(user=SUPERUSER_ID,
                              context=user.context_get(),
                              su=True)['mail.channel']
    MailChannel.browse(MailChannel.channel_get([admin.id])['id'])\
        .message_post(
            body=_("Your password is the default (admin)! If this system is exposed to untrusted users it is important to change it immediately for security reasons. I will keep nagging you about it!"),
            message_type='comment',
            subtype='mail.mt_comment'
        )
Beispiel #2
0
 def render_student_verification(self, **post):
     """
     inherit render_student_verification method,
     student additional form should student admission form.
     ------------------------------------------------------
     @param self : object pointer
     @param type : http
     @param auth : public
     @param website : booleab(True)
     @return :
     """
     if 'DATE' in post and post['DATE']:
         data = post['DATE']
         link_date = self.decode_base64(data)
         if link_date == '':
             return request.render("website_student_enquiry.student_link_expired_templet",{})
         if 'ENQUIRY' in post and post['ENQUIRY']:
             eq_no = str(post['ENQUIRY'])
             env = request.env(context=dict(request.env.context, show_address=True, no_tag_br=True))
             reg_obj = env['registration']
             reg_rec = reg_obj.sudo().search([('enquiry_no','=',eq_no)],limit=1)
             if reg_rec.id:
                 if reg_rec.add_form_filled != True:
                     if link_date != '0000-00-00':
                         s_date = datetime.strptime(link_date, '%Y-%m-%d').date()
                         l_date = s_date + timedelta(days=10)
                         c_date = date.today()
                         if s_date <= c_date < l_date:
                             if 'ENQUIRY' in post and post['ENQUIRY']:
                                 student_obj = env['res.partner']
                                 student_rec = student_obj.sudo().search(['|',('active','=',True),
                                                                          ('strike_off','=',True),
                                                                          ('is_student','=',True),
                                                                          ('reg_no','=',eq_no)],limit=1)
                                 if student_rec.id:
                                     e_student_id = base64.b64encode(str(student_rec.id))
                                     return request.redirect(
                                         "/student/verification/pagecode?student_id=%s" % (e_student_id))
                         else:
                             return request.render("website_student_enquiry.student_link_expired_templet",{})
                     else:
                         if 'ENQUIRY' in post and post['ENQUIRY']:
                             eq_no = str(post['ENQUIRY'])
                             env = request.env(context=dict(request.env.context, show_address=True, no_tag_br=True))
                             student_obj = env['res.partner']
                             student_rec = student_obj.sudo().search(['|',('active','=',True),
                                                                      ('strike_off','=',True),
                                                                      ('is_student','=',True),
                                                                      ('reg_no','=',eq_no)],limit=1)
                             if student_rec.id:
                                 e_student_id = base64.b64encode(str(student_rec.id))
                                 return request.redirect(
                                     "/student/verification/pagecode?student_id=%s" % (e_student_id))
                 else:
                     return request.render("website_student_enquiry.student_link_expired_templet",{})
Beispiel #3
0
    def render_re_registration_request(self, **post):
        """
        this method is used to call webpage for re-registraton,
        confirmation.
        parent book seat for next academic year in advance,
        ------------------------------------------
        @param self : object pointer
        @param type : http
        @param auth : public
        @param website : True
        @return : call templet also pass dictonary for
                required data
        """

        child_rec_list_length = 0
        env = request.env(user=SUPERUSER_ID)
        if 'REREG' in post and post.get('REREG'):
            data = post.get('REREG')
            code_re_reg = self.decode_base64(data)
            env = request.env(context=dict(
                request.env.context, show_address=True, no_tag_br=True))
            parents_re_reg_obj = env['re.reg.waiting.responce.parents']
            student_re_reg_obj = env['re.reg.waiting.responce.student']
            parent_re_reg_rec = parents_re_reg_obj.sudo().search(
                [('code', '=', code_re_reg)], limit=1)
            student_re_reg_rec = student_re_reg_obj.sudo().search(
                [('code', '=', code_re_reg)], limit=1)
            if parent_re_reg_rec.id:
                child_rec_list = []
                for ch_rec in parent_re_reg_rec.student_ids:
                    if not ch_rec.confirm:
                        child_rec_list.append(ch_rec)
                child_rec_list_length = len(child_rec_list)

                return http.request.render(
                    "edsys_edu_re_registration.re_registration_request", {
                        'parent_rec': parent_re_reg_rec,
                        'children_rec_list': child_rec_list,
                        'child_rec_list_length': child_rec_list_length
                    })

            elif student_re_reg_rec.id:
                child_rec_list = [student_re_reg_rec]
                child_rec_list_length = len(child_rec_list)

                return http.request.render(
                    "edsys_edu_re_registration.re_registration_request", {
                        'parent_rec': student_re_reg_rec.re_reg_parents,
                        'children_rec_list': child_rec_list,
                        'child_rec_list_length': child_rec_list_length
                    })
        return http.request.render(
            "edsys_edu_re_registration.re_registration_request", {})
Beispiel #4
0
    def render_employement_form(self, **post):
        """
        this method is used to Student email varification,
        if write email id then move to page that he is
        update his information and fill other details.
        ------------------------------------------
        @param self : object pointer
        @param type : http
        @param auth : public
        @param website : True
        @return : call templet also pass dictonary for
                  required data
        """
        
        employee_id = post.get('employee')
        env = request.env(context=dict(request.env.context))
        hr_emp_obj = env['hr.employee']
        ir_model_fields_obj = env['ir.model.fields']
        hr_emp_rec = hr_emp_obj.sudo().search([('id','=',employee_id)])
#         if hr_emp_rec.employment_form_filled == True:
#             return request.render("edsys_hrm.employement_link_expired_templet",{})
        orm_country = env['res.country']
        orm_currency = env['res.currency']
        state_orm = env['res.country.state']
        orm_visa_type = env['visa.type']
        orm_ir_attachment = env['ir.attachment']
        countries = orm_country.sudo().search([])
        currencies = orm_currency.sudo().search([])
        states = state_orm.sudo().search([])
        visa_type_ids = orm_visa_type.sudo().search([])
        resume_ids = orm_ir_attachment.sudo().search([('name','=','Resume'),('res_model','=', 'hr.employee'), ('res_id','=',hr_emp_rec.id)])
        if not resume_ids :
            resume_ids = False
        salary_certificate_ids = orm_ir_attachment.sudo().search([('name','=','Salary Certificate'),('res_model','=', 'hr.employee'), ('res_id','=',hr_emp_rec.id)])
        if not salary_certificate_ids :
            salary_certificate_ids = False
        passport_copy_ids = orm_ir_attachment.sudo().search([('name','=','Passport'),('res_model','=', 'hr.employee'), ('res_id','=',hr_emp_rec.id)])
        if not passport_copy_ids :
            passport_copy_ids = False
        relieving_letter_ids = orm_ir_attachment.sudo().search([('name','=','Relieving Letter'),('res_model','=', 'hr.employee'), ('res_id','=',hr_emp_rec.id)])
        if not relieving_letter_ids :
            relieving_letter_ids = False
        if hr_emp_rec.id :
            if hr_emp_rec.image_medium :
                image_medium =  True
            else :
                image_medium = False
            hr_web_data = {
                            'hr_emp_rec' : hr_emp_rec, 
                            'countries' : countries, 
                            'currencies' : currencies,
                            'states' : states,
                            'visa_type_ids' : visa_type_ids,
                            'resume_ids' : resume_ids,
                            'salary_certificate_ids' : salary_certificate_ids,
                            'relieving_letter_ids' : relieving_letter_ids,
                            'passport_copy_ids' : passport_copy_ids,
                            'image_medium' : image_medium,
                           }
            return request.render("edsys_hrm.website_epmloyement_application_form",hr_web_data)
Beispiel #5
0
    def render_page3(self, **post):
        """
        this method store data from current(3) page,
        and redirect to page next page(4)
        ------------------------------------------
        @param self : object pointer
        @param type : http
        @param auth : public
        @param website : True
        @return :
        """
        env = request.env(context=dict(request.env.context, show_address=True, no_tag_br=True))
        student_obj = env['res.partner']
        student_rec = student_obj.sudo().browse(int(post.get('student_id')))
        if not student_rec.id:
            return request.redirect("/student/verification/expired")
        else:
            Special_Learning_Disability_Details = False
            if post.get('Special_Learning_Disability'):
                Special_Learning_Disability_Details = post.get('Special_Learning_Disability_Details')
            student_data = {
                'prev_institute': post.get('Current_School_Name') or '',
                'prev_academic_city': post.get('Prev_Academic_City') or '',
                'curriculum': post.get('Curriculum') or '',
                'medium_of_instruction': post.get('Medium_of_Instruction') or '',
                'last_attendance': post.get('Last_Attendance_Date') or False,
                'tranfer_reason': post.get('Reason_for_Transfer') or '',
                'received_double_promotion': post.get('Received_Double_Promotion') or '',
                'identified_gifted_or_talented': post.get('Identified_Gifted_or_Talented') or '',
                'has_child_detained': post.get('Has_Child_Detained') or '',
                'child_received_academic_distinction': post.get('Child_Received_Academic_Distinction') or '',
                'child_received_academic_distinction_details': post.get(
                    'Child_Received_Academic_Distinction_Details') or '',
                'has_suspended_expelled_by_school' : post.get('Has_Suspended_Expelled_by_School') or '',
                'has_suspended_expelled_by_school_details' : post.get('Has_Suspended_Expelled_by_School_Details') or '',
                'child_associated_with_awareness' : post.get('Child_Associated_with_Awareness') or '',
                'child_associated_with_awareness_details' : post.get('Child_Associated_with_Awareness_Details') or '',
                'member_of_environment_protection' : post.get('Member_of_Environment_Protection') or '',
                'member_of_environment_protection_details' : post.get('Member_of_Environment_Protection_Details') or '',
                'leadership_positions_in_school' : post.get('Leadership_Positions_in_School') or '',
                'leadership_positions_in_school_details' : post.get('Leadership_Positions_in_School_Details') or '',
                'special_education_programme' : post.get('Special_Education_Programme') or '',
                'special_education_programme_details' : post.get('Special_Education_Programme_Details') or '',
                'special_learning_disability' : post.get('Special_Learning_Disability') or False,
                'special_learning_disability_details' : Special_Learning_Disability_Details or False,
                'has_other_than_english_languages' : post.get('Has_Other_than_English_Languages') or '',
                'other_than_english_languages' : post.get('Other_than_English_Languages') or '',
                'other_lang_id' : post.get('Optional_Lang') or '',
                'has_child_detained_grade' : post.get('Has_Child_Detained_Grade') or '',
            }
            student_rec.sudo().write(student_data)
	    reg_obj = env['registration']            
	    reg_rec = reg_obj.sudo().search([('enquiry_no','=',student_rec.reg_no)],limit=1)            
	    reg_rec.sudo().write(student_data)
        e_page_code = base64.b64encode('4')
        e_student_id = base64.b64encode(str(post.get('student_id')))
        return request.redirect("/student/verification/pagecode?page_code=%s&student_id=%s" % (e_page_code,e_student_id))
Beispiel #6
0
    def oauth2callback(self, **kw):
        """ This route/function is called by Google when user Accept/Refuse the consent of Google """
        state = json.loads(kw['state'])
        dbname = state.get('d')
        service = state.get('s')
        url_return = state.get('f')

        with registry(dbname).cursor() as cr:
            if kw.get('code'):
                request.env(cr, request.session.uid)['google.%s' %
                                                     service].set_all_tokens(
                                                         kw['code'])
                return redirect(url_return)
            elif kw.get('error'):
                return redirect("%s%s%s" %
                                (url_return, "?error=", kw['error']))
            else:
                return redirect("%s%s" % (url_return, "?error=Unknown_error"))
Beispiel #7
0
    def render_page4(self, **post):
        """
        this method store data from current(4) page,
        and redirect to page next page(5)
        ------------------------------------------
        @param self : object pointer
        @param type : http
        @param auth : public
        @param website : True
        @return :
        """
        env = request.env(context=dict(request.env.context, show_address=True, no_tag_br=True))
        student_obj = env['res.partner']
        student_rec = student_obj.sudo().browse(int(post.get('student_id')))
        if not student_rec.id:
            return request.redirect("/student/verification/expired")
        else:
            student_data = {
                'hobbies_interests': post.get('Hobbies_Interests') or '',
                'has_play_any_musical_instrument': post.get('Has_Play_any_Musical_Instrument') or '',
                'musical_instrument_details': post.get('Musical_Instrument_Details') or '',
                'has_formal_training_in_music': post.get('Has_Formal_Training_in_Music') or '',
                'training_in_music_details': post.get('Training_in_Music_Details') or '',
                'sport_child_play': post.get('Sport_Child_Play') or '',
                'has_training_or_interest_art': post.get('Has_Training_or_Interest_Art') or '',
                'has_training_or_interest_art_details': post.get('Training_or_Interest_Art_Details') or '',
                'inter_school_competitions': post.get('Inter_School_Competitions') or '',
                'inter_school_competitions_details': post.get('Inter_School_Competitions_Details') or '',
                'special_activity_interested': post.get('Special_Activity_Interested') or '',
                'adjusts_new_situations_with_ease': self.get_check_box_value(
                    post.get('Adjusts_New_Situations_with_Ease')) or '',
                'has_small_group_of_friends': self.get_check_box_value(
                    post.get('Has_Small_Group_of_Friends')) or '',
                'has_never_adjust_new_situation': self.get_check_box_value(
                    post.get('Has_Never_Adjust_New_Situation')) or '',
                'has_many_friends': self.get_check_box_value(
                    post.get('Has_Many_Friends')) or '',
                'likes_be_active_in_school': self.get_check_box_value(
                    post.get('Likes_be_Active_in_School')) or '',
                'expressions_describe_your_child': post.get('Expressions_Describe_your_Child') or '',
                'social_emotional_behavioural_difficulties': post.get('Social_Emotional_Behavioural_Difficulties') or '',
                'social_emotional_behavioural_difficulties_details': post.get(
                    'Social_Emotional_Behavioural_Difficulties_Details') or '',
                'useful_information_for_educating': post.get('Useful_Information_for_Educating') or '',
                'person_to_call' : post.get('Person_to_Call') or '',
                'emergency_relationship' : post.get('Emergency_Relationship') or '',
                'emergency_contact' : post.get('Emergency_Tel_No') or '',
                'has_use_bus_facility' : post.get('Has_Use_Bus_Facility') or '',
                'pick_up' : post.get('Pick_Up') or '',
            }
            student_rec.sudo().write(student_data)
	    reg_obj = env['registration']            
	    reg_rec = reg_obj.sudo().search([('enquiry_no','=',student_rec.reg_no)],limit=1)            
	    reg_rec.sudo().write(student_data)
        e_page_code = base64.b64encode('5')
        e_student_id = base64.b64encode(str(post.get('student_id')))
        return request.redirect("/student/verification/pagecode?page_code=%s&student_id=%s" % (e_page_code,e_student_id))
Beispiel #8
0
 def new_employee(self,**post):
     env = request.env(user=SUPERUSER_ID)
     orm_country = env['res.country']
     orm_hr_job = env['hr.job']
     countries = orm_country.sudo().search([])
     hr_job_ids = orm_hr_job.sudo().search([])
     hr_web_data = {
                     'countries' : countries, 
                     'hr_job_ids' : hr_job_ids,
                    }
     return request.render("edsys_hrm.new_employement_form",hr_web_data)
Beispiel #9
0
    def render_page5(self, **post):
        """
        this method store data from current(5) page,
        and redirect to page next page(6)
        ------------------------------------------
        @param self : object pointer
        @param type : http
        @param auth : public
        @param website : True
        @return : call templet also pass dictonary for
                  required data
        """
        env = request.env(context=dict(request.env.context, show_address=True, no_tag_br=True))
        student_obj = env['res.partner']
        student_rec = student_obj.sudo().browse(int(post.get('student_id')))
        if not student_rec.id:
            return request.redirect("/student/verification/expired")
        else:
            under_medi = False
            if post.get('Under_Medication') == True or post.get('Under_Medication') == 'True':
                under_medi = True
            student_data = {
                'normal_delivery' : post.get('Normal_Delivery') or '',
                'caesarean' : post.get('Caesarean') or '',
                'premature' : post.get('Premature') or '',
                # 'developmental_milestones' : post.get('Developmental_Milestones') or '',
                'age_your_child_talk' : post.get('Age_Your_Child_Talk') or '',
                'hand_preference' : post.get('Hand_Preference') or '',
                'can_button_his_shirt' : post.get('Can_Button_his_Shirt') or '',
                'can_zip_his_pant' : post.get('Can_Zip_his_Pant') or '',
                'can_child_indicate_his_toilet_needs' : post.get('Can_Child_Indicate_his_Toilet_Needs') or '',
                'child_indicate_his_toilet_needs_details' : post.get('Child_Indicate_his_Toilet_Needs_Details') or '',
                'child_know_his_phone_number' : post.get('Child_Know_his_Phone_Number') or '',
                'toys_likes_to_play_with' : post.get('Toys_Likes_to_Play_With') or '',
                'special_interest' : post.get('Special_Interest') or '',
                'child_like_to_play_with' : post.get('Child_Like_to_Play_With') or '',
                'child_like_to_look_at_picture' : post.get('Child_Like_to_Look_at_Picture') or '',
                'child_like_to_watch_tv_programmes' : post.get('Child_Like_to_Watch_TV_Programmes') or '',
                'channels_like_to_watch' : post.get('Channels_Like_to_Watch') or '',
                'child_have_any_health_problem' : post.get('Child_Have_Any_Health_Problem') or '',
                'health_problem_details' : post.get('Health_Problem_Details') or '',
                'under_medication' : under_medi or False,
                'w_medication_mention' : post.get('W_Medication_Mention') or '',
            }
            student_rec.sudo().write(student_data)
	    reg_obj = env['registration']            
	    reg_rec = reg_obj.sudo().search([('enquiry_no','=',student_rec.reg_no)],limit=1)            
	    reg_rec.sudo().write(student_data)
        e_page_code = base64.b64encode('6')
        e_student_id = base64.b64encode(str(post.get('student_id')))
        return request.redirect("/student/verification/pagecode?page_code=%s&student_id=%s" % (e_page_code,e_student_id))
Beispiel #10
0
    def get_page_wise_value(self, student_id, page_code):
        """
        this method is use to get student id and page code,
        based on that return page wise value in proper formate.
        -------------------------------------------------------
        :param student_id: student id
        :param page_code: page code
        :return: return list of tuple formate.
        """
        res = []
        env = request.env(context=dict(request.env.context, show_address=True, no_tag_br=True))
        student_obj = env['res.partner']
        student_rec = student_obj.sudo().browse(int(student_id))
        if page_code == '0':
            res = [
                ('allergic',student_rec.child_allergic),
                ('under_medication',student_rec.under_medication),
                ('transport_type',student_rec.transport_type),
            ]
        if page_code == '3':
            res = [
                ('has_child_detained',student_rec.has_child_detained),
                ('child_received_academic_distinction',student_rec.child_received_academic_distinction),
                ('has_suspended_expelled_by_school',student_rec.has_suspended_expelled_by_school),
                ('child_associated_with_awareness',student_rec.child_associated_with_awareness),
                ('member_of_environment_protection',student_rec.member_of_environment_protection),
                ('leadership_positions_in_school',student_rec.leadership_positions_in_school),
                ('special_education_programme',student_rec.special_education_programme),
                ('special_learning_disability',student_rec.special_learning_disability),
                ('has_other_than_english_languages',student_rec.has_other_than_english_languages),
            ]
        if page_code == '4':
            res = [
                ('has_play_any_musical_instrument',student_rec.has_play_any_musical_instrument),
                ('has_formal_training_in_music',student_rec.has_formal_training_in_music),
                ('has_training_or_interest_art',student_rec.has_training_or_interest_art),
                ('inter_school_competitions',student_rec.inter_school_competitions),
                ('social_emotional_behavioural_difficulties',student_rec.social_emotional_behavioural_difficulties),
                ('has_use_bus_facility',student_rec.has_use_bus_facility),
            ]
        if page_code == '5':
            res = [
                ('can_child_indicate_his_toilet_needs',student_rec.can_child_indicate_his_toilet_needs),
                ('child_like_to_watch_tv_programmes',student_rec.child_like_to_watch_tv_programmes),
                ('child_have_any_health_problem',student_rec.child_have_any_health_problem),
                ('under_medication',student_rec.under_medication)
            ]

        return res
Beispiel #11
0
 def verification_success(self, **post):
     """
     ---------------------------------------------------
     :param post:
     :return:
     """
     env = request.env(context=dict(request.env.context, show_address=True, no_tag_br=True))
     student_obj = env['res.partner']
     e_student_id = self.decode_base64(str(post.get('student_id')))
     student_rec = student_obj.sudo().browse(int(e_student_id))
     if not student_rec.id:
         return request.redirect("/student/verification/expired")
     else:
         return request.render("edsys_paperless_registrations.paper_less_success_verification_templet",{
             'student_rec' : student_rec
         })
Beispiel #12
0
 def render_page2(self, **post):
     """
     this method store data from current(2) page,
     and redirect to page next page(3)
     ------------------------------------------
     @param self : object pointer
     @param type : http
     @param auth : public
     @param website : True
     @return :
     """
     env = request.env(context=dict(request.env.context, show_address=True, no_tag_br=True))
     student_obj = env['res.partner']
     student_rec = student_obj.sudo().browse(int(post.get('student_id')))
     if not student_rec.id:
         return request.redirect("/student/verification/expired")
     else:
         parent_data = {
             'name' : post.get('Father_name') or '',
             'father_nationality' : post.get('Father_Nationality') or '',
             'father_passport' : post.get('Father_Passport') or '',
             'father_emirates_id' : post.get('Father_Emirates_Id') or '',
             'parent_profession' : post.get('Father_Designation') or '',
             'parent_address' : post.get('Parent_Address') or '',
             'parents_office_contact' : post.get('Parents_Office_Contact') or '',
             'parent_contact' : post.get('Parent_Contact') or '',
             'parents_email' : post.get('Parents_Email') or '',
             'mother_name' : post.get('Mother_Name') or '',
             'mother_nationality' : post.get('Mother_Nationality') or '',
             'mother_passport' : post.get('Mother_Passport') or '',
             'mother_emirates_id' : post.get('Mother_Emirates_Id') or '',
             'mother_profession' : post.get('Mother_Designation') or '',
             'mother_address' : post.get('Mother_Address') or '',
             'mother_office_contact' : post.get('Mother_Office_Contact') or '',
             'mother_contact' : post.get('Mother_Contact') or '',
             'mother_email' : post.get('Mother_Email') or '',
             'spe_contribution' : post.get('Special_Contribution') or '',
             'special_contribution_any_other' : post.get('Special_Contribution_Any_Other') or '',
         }
         student_rec.parents1_id.sudo().write(parent_data)
     e_page_code = base64.b64encode('3')
     e_student_id = base64.b64encode(str(post.get('student_id')))
     return request.redirect("/student/verification/pagecode?page_code=%s&student_id=%s" % (e_page_code,e_student_id))
Beispiel #13
0
 def create_attachment_re_reg_payment_receipt(self, voucher, re_regi):
     """
     this method is use for create receipt re-registration payment
     also store in back end.
     -------------------------------------------------------------
     :param voucher: voucher record set
     :param re_regi:re registration record set
     :return:
     """
     env = request.env(user=SUPERUSER_ID)
     attachment_obj = env['ir.attachment']
     result = False
     for record in voucher:
         ir_actions_report = env['ir.actions.report.xml']
         matching_report = ir_actions_report.search([
             ('name', '=', 'Student Payment Receipt')
         ])
         if matching_report:
             result, format = eagle.report.render_report(
                 request.cr, env.uid, [record.id],
                 matching_report.report_name, {'model': 'account.payment'})
             eval_context = {'time': time, 'object': record}
             if not matching_report.attachment or not eval(
                     matching_report.attachment, eval_context):
                 result = base64.b64encode(result)
                 file_name = record.name_get()[0][1]
                 file_name = re.sub(r'[^a-zA-Z0-9_-]', '_', file_name)
                 file_name += ".pdf"
                 attachment_id = attachment_obj.create({
                     'name':
                     file_name,
                     'datas':
                     result,
                     'datas_fname':
                     file_name,
                     'res_model':
                     re_regi._name,
                     'res_id':
                     re_regi.id,
                     'type':
                     'binary'
                 })
Beispiel #14
0
    def user_avatar(self, user_id=0, **post):
        status, headers, content = binary_content(
            model='res.users',
            id=user_id,
            field='image_medium',
            default_mimetype='image/png',
            env=request.env(user=SUPERUSER_ID))

        if not content:
            img_path = modules.get_module_resource('web', 'static/src/img',
                                                   'placeholder.png')
            with open(img_path, 'rb') as f:
                image = f.read()
            content = base64.b64encode(image)
        if status == 304:
            return werkzeug.wrappers.Response(status=304)
        image_base64 = base64.b64decode(content)
        headers.append(('Content-Length', len(image_base64)))
        response = request.make_response(image_base64, headers)
        response.status = str(status)
        return response
Beispiel #15
0
    def get_orignal_amount_new(self, amount, original_amount):
        """
        this method use to convert orignal amount
        ---------------------------------------------
        :param amount: get amount from payfort link
        :return: return orignal amount of payment.
        """
        env = request.env(user=SUPERUSER_ID)
        active_payforts_rec = env['payfort.config'].sudo().search(
            [('active', '=', 'True')], limit=1)
        amount = float(amount)
        original_amount = float(original_amount)
        bank_service_charge = 0.0
        transaction_charg_amount = 0.0
        charge = 0.0
        if active_payforts_rec:
            if active_payforts_rec.transaction_charg_amount > 0:
                transaction_charg_amount = active_payforts_rec.transaction_charg_amount
            else:
                transaction_charg_amount = 0.00

            amount -= transaction_charg_amount
            #             if active_payforts_rec.bank_service_charge:
            #                 bank_service_charge = (original_amount/100) * active_payforts_rec.bank_service_charge
            #             else:
            #                 bank_service_charge = 0.0
            # removed payfort charge amount
            if active_payforts_rec.charge > 0:
                charge = (original_amount / 100) * active_payforts_rec.charge
            else:
                charge = 0.0

            total_amount = amount - charge
            return round(total_amount, 2)

        else:
            amount -= 0.00
            dummy_amount = 100.00 + 0.00
            act_amount = round(((amount / dummy_amount) * 100.00), 2)
            return act_amount
Beispiel #16
0
    def calculate_payfort_charges_value(self, paid_amount):
        """
        this method use to calculate payfort charges.
        ---------------------------------------------
        :param amount: get amount from payfort link
        :return: return orignal amount of payment.
        """
        env = request.env(user=SUPERUSER_ID)
        active_payforts_rec = env['payfort.config'].sudo().search(
            [('active', '=', 'True')], limit=1)
        amount = float(paid_amount)
        bank_charges = 0.00
        transaction_charges = 0.00
        gross_transaction_value = 0.00

        net_amount = 0.00
        if len(active_payforts_rec) == 1:
            if active_payforts_rec.charge > 0.00:
                bank_charges = (paid_amount * active_payforts_rec.charge) / 100
            else:
                bank_charges = 0.00
            transaction_charges = active_payforts_rec.transaction_charg_amount
            gross_transaction_value = round(paid_amount + bank_charges +
                                            transaction_charges)
            if active_payforts_rec.bank_service_charge > 0.00:
                transaction_charges_deducted_by_bank = \
                    (gross_transaction_value * active_payforts_rec.bank_service_charge) / 100
            else:
                transaction_charges_deducted_by_bank = 0.00
            net_amount = gross_transaction_value - transaction_charges_deducted_by_bank
        else:
            bank_charges = 0.00
            transaction_charges = 0.00
            gross_transaction_value = paid_amount + bank_charges + transaction_charges
            transaction_charges_deducted_by_bank = 0.00
            net_amount = gross_transaction_value - transaction_charges_deducted_by_bank

        return bank_charges, transaction_charges, gross_transaction_value,\
               net_amount, transaction_charges_deducted_by_bank
Beispiel #17
0
    def render_student_re_reg_responce(self, **post):
        """
        this method is use for getting response of parent
        for conformation of re-registration process.
        :param post:
        :return:
        """
        if post:
            env = request.env(user=SUPERUSER_ID)
            for key, child_code in post.items():
                if key != 'parent_code':
                    student_re_reg_obj = env['re.reg.waiting.responce.student']
                    ch_code = str(child_code[:-2])
                    student_rec = student_re_reg_obj.sudo().search(
                        [('code', '=', ch_code)], limit=1)
                    if child_code[-2:] == '01':
                        student_rec.sudo().write({
                            'confirm':
                            True,
                            'response':
                            True,
                            'confirmation_date':
                            date.today()
                        })
                    elif child_code[-2:] == '00':
                        student_rec.sudo().write({
                            'confirm': False,
                            'response': True,
                        })

            parents_re_reg_obj = env['re.reg.waiting.responce.parents']
            parent_rec = parents_re_reg_obj.sudo().search(
                [('code', '=', post.get('parent_code'))], limit=1)
            parent_rec.come_to_awaiting_fee()

            return http.request.render(
                "edsys_edu_re_registration.re_registration_request_thankyou",
                {})
Beispiel #18
0
    def create_new_employee(self,**post):
        
        env = request.env(user=SUPERUSER_ID)
        offer_letter =  post.get('offer_letter') or None
        if offer_letter :
                offer_letter_encoded = base64.encodestring(offer_letter.read()),
            
        birthday = post.get('birthday') or None
        if birthday:
            birthday_datetime = datetime.strptime(str(birthday), "%d/%m/%Y")
        else :
            birthday_datetime = None
            
        date_of_interview = post.get('date_of_interview') or None
        if date_of_interview:
            date_of_interview_datetime = datetime.strptime(str(date_of_interview), "%d/%m/%Y")
        
        offer_letter_sent_date = post.get('offer_letter_sent_date') or None
        if offer_letter_sent_date:
            offer_letter_sent_datetime = datetime.strptime(str(offer_letter_sent_date), "%d/%m/%Y")
        
        joining_date = post.get('joining_date') or None
        if joining_date:
            joining_datetime = datetime.strptime(str(joining_date), "%d/%m/%Y")
            
        labour_card_exist = post.get('labour_card_exist') or None
        if labour_card_exist == 'yes' :
            permit_card_no = post.get('permit_card_no') or None
            permit_expiry_date = post.get('permit_expiry_date') or None
            if permit_expiry_date:
                permit_expiry_datetime = datetime.strptime(str(permit_expiry_date), "%d/%m/%Y")
        else :
            permit_card_no = False
            permit_expiry_date = False
            
        emirates_id_exist = post.get('emirates_id_exist') or None
        if emirates_id_exist == 'yes' :
            emirates_card_no = post.get('emirates_card_no') or None
            emirates_expiry_date = post.get('emirates_expiry_date') or None
            if emirates_expiry_date:
                emirates_expiry_datetime = datetime.strptime(str(emirates_expiry_date), "%d/%m/%Y")
        else :
            emirates_card_no = False
            emirates_expiry_date = False
                
            
        employee_data = {
                            'name': post.get('name') or None,
                            'middle_name': post.get('middle_name') or None, 
                            'last_name': post.get('last_name') or None, 
                            'email_id': post.get('email_id') or None, 
                            'contact_number1': post.get('contact_number1') or None,  
                            'isd_contact_number1': post.get('isd_contact_number1') or None,  
                            'contact_number2': post.get('contact_number2') or None,  
                            'isd_contact_number2': post.get('isd_contact_number2') or None,  
                            'contact_number3': post.get('contact_number3') or None,  
                            'isd_contact_number3': post.get('isd_contact_number3') or None,  
                            'country_id': post.get('nationality') or None, 
                            'job_id': post.get('job_id') or None, 
                            'date_of_interview': date_of_interview_datetime,
                            'offer_letter_sent_date': offer_letter_sent_datetime,
                            'joining_date': joining_datetime, 
                            'birthday': birthday_datetime, 
                            'is_existing_employee' : 'no',
                            #===================================================
                            # 'permit_card_no':post.get('permit_card_no') or None, 
                            # 'permit_expiry_date': post.get('permit_expiry_date') or None, 
                            # 'emirates_card_no': post.get('emirates_card_no') or None, 
                            # 'emirates_expiry_date': post.get('emirates_expiry_date') or None, 
                            #===================================================
                            'offer_letter' : offer_letter_encoded,
                            'passport_number': post.get('passport_number') or None, 
                            'visa_required': post.get('visa_required') or None, 
                            'accommodation': post.get('accommodation') or None, 
                            'medical_insurance': post.get('medical_insurance') or None, 
                            'health_card': post.get('health_card') or None, 
                            'remark': post.get('remark') or None, 
                            'identification_id': post.get('identification_id') or None, 
                            'labour_card_exist':labour_card_exist ,
                            'emirates_id_exist': emirates_id_exist ,
                            'employee_state' : 'new',
                            'active_employee' : False,
                        }
                
        employee_obj = env['hr.employee']
        employee_id = employee_obj.sudo().search([('email_id','=',post.get('email_id'))])
        if employee_id:
            return request.render("edsys_hrm.employee_duplicate_email",{})
#            raise except_orm(_('UserError'), _('Recursivity Detected.'))
        new_employee = employee_obj.sudo().create(employee_data)
         #Labour_card_details
        labour_card_details_obj = env['labour.card.details']
        labour_card_details = {}
        labour_card_exist = post.get('labour_card_exist') or None
        if labour_card_exist == 'yes' :
            if post.get('permit_card_no') or post.get('permit_expiry_date')  :
                labour_card_details = {
                                         'permit_card_no': permit_card_no, 
                                         'permit_expiry_date': permit_expiry_datetime, 
                                         'employee_id' : new_employee.id,
                                         'labour_card_status' : 'initiated',
                                         'confirm' : True,
                                         }
                
                labour_card_details_id  = env['labour.card.details'].sudo().create(labour_card_details)
        
        #Emirates Id details
        if post.get('emirates_card_no') or post.get('emirates_expiry_date')  :
            emirates_id_details_obj = env['emirates.id.details']
            emirates_id_details = {}
            emirates_id_exist = post.get('emirates_id_exist') or None
            if emirates_id_exist == 'yes' :
                emirates_id_details = {
                                         'emirates_card_no': emirates_card_no, 
                                         'emirates_expiry_date': emirates_expiry_datetime, 
                                         'employee_id' : new_employee.id,
                                         'emirates_id_status':'initiated',
                                         'confirm' : True,
                                         }
                emirates_id_details_id  = emirates_id_details_obj.sudo().create(emirates_id_details)
        
        return request.render("edsys_hrm.employee_complete_template",{})
Beispiel #19
0
    def show_acd_payment(self, **post):
        """
        This method use to online payment by student/parent
        for Re-Registration
        ---------------------------------------------------
        :param post:
        :return:
        """
        env = request.env(user=SUPERUSER_ID)
        if post:
            cr = env.cr
            current_date = time.strftime('%Y-%m-%d')
            re_registration_parent_rec = env[
                're.reg.waiting.responce.parents'].sudo().search([
                    ('re_registration_number', '=', post['merchant_reference'])
                ],
                                                                 limit=1)
            #------------------new code-------------------------
            re_reg_amount = re_registration_parent_rec.residual
            #------------------new code-------------------------

            if len(re_registration_parent_rec) > 0:
                if post['status'] == '14':
                    order_id = post['merchant_reference']
                    c_amount = post['amount']
                    c_amount = float(c_amount) / 100
                    payment_id = post['fort_id']
                    #------------------new code-------------------------
                    c_amount = re_reg_amount
                    #------------------new code-------------------------

                    self.re_registration_parent_payment(
                        env=env,
                        re_reg_parent_rec=re_registration_parent_rec,
                        amount=c_amount,
                        pay_id=payment_id,
                        order_id=order_id,
                    )

                    #----------------------New Code For Payment Capture========================
                    payfort_capture_obj = env['payfort.payment.capture']
                    bank_charges, transaction_charges, gross_transaction_value, net_amount, transaction_charges_deducted_by_bank =\
                        self.calculate_payfort_charges_value(re_reg_amount)
                    re_registration_parent_rec = env[
                        're.reg.waiting.responce.parents'].sudo().search(
                            [('re_registration_number', '=',
                              post['merchant_reference'])],
                            limit=1)
                    partner = False
                    if len(re_registration_parent_rec) > 0:
                        partner = re_registration_parent_rec.name.id
                    payfort_capture_rec = payfort_capture_obj.sudo().search(
                        [('pay_id', '=', post.get('fort_id')),
                         ('reference_number', '=',
                          post.get('merchant_reference'))],
                        limit=1)
                    if not payfort_capture_rec.id:

                        payfort_capture_data = {
                            'date': current_date,
                            'partner': partner,
                            'pay_id': post.get('fort_id') or '',
                            'reference_number': post.get('merchant_reference'),
                            'paid_amount': re_reg_amount,
                            'bank_charges': bank_charges,
                            'gross_transaction_value': gross_transaction_value,
                            'transaction_charges_deducted_by_bank':
                            transaction_charges_deducted_by_bank,
                            'transaction_charges': transaction_charges,
                            'net_amount': net_amount,
                        }
                        temp = payfort_capture_obj.sudo().create(
                            payfort_capture_data)
                    cr.commit()

                    #----------------------New Code For Payment Capture========================
                    return request.render(
                        "website_student_enquiry.thankyou_acd_fee_paid",
                        {'pay_id': post['fort_id']})
                else:
                    return request.render(
                        "website_student_enquiry.thankyou_acd_fee_fail", {})
            res = super(payfort_payment_status_inherit,
                        self).show_acd_payment(**post)
            return res
Beispiel #20
0
    def re_registration_parent_payment(self, env, re_reg_parent_rec, amount,
                                       pay_id, order_id):
        """
        when parent pay re-registration fee online.
        -----------------
        :param env:
        :param re_reg_parent_rec: re-registration parent payment
        :param amount: amount
        :param pay_id: payment id
        :param order_id:order id
        :return:
        """
        env = request.env(user=SUPERUSER_ID)
        account_payment_obj = self.env['account.payment']
        voucher_obj = env['account.voucher']
        currency_id = self._get_currency()
        c_date = time.strftime('%Y-%m-%d')
        t_date = date.today()
        # order_id = parent_re_reg_rec.code
        period_id = self._get_period().id
        journal_id = self.get_journal_from_payfort()
        account_id = env['account.journal'].sudo().browse(
            journal_id).default_debit_account_id.id
        total_amount = amount
        for student_re_reg_rec in re_reg_parent_rec.student_ids:
            if student_re_reg_rec.fee_status != 're_Paid' and total_amount > 0:
                student_data = '<table border="2"><tr><td><b>Student Name</b></td><td><b>Class-Sec</b></td><td><b>Re-Registrition Confirm</b></td><td><b>Amount Recived for Re-Registration</b></td></tr>'
                student_rec = student_re_reg_rec.name
                re_reg_advance_account = student_rec.re_reg_advance_account or False
                s_payable_amount = 0.00
                if total_amount > student_re_reg_rec.residual:
                    s_payable_amount = student_re_reg_rec.residual
                    total_amount -= s_payable_amount
                else:
                    s_payable_amount = total_amount
                    total_amount -= s_payable_amount

                if s_payable_amount > 0.00:
                    #                     voucher_data = {
                    #                         'period_id': period_id,
                    #                         'account_id': account_id,
                    #                         'partner_id': student_rec.id,
                    #                         'journal_id': journal_id,
                    #                         'currency_id': currency_id,
                    #                         'reference': student_re_reg_rec.code,
                    #                         'amount': s_payable_amount,
                    #                         'type': 'receipt' or 'payment',
                    #                         'state': 'draft',
                    #                         'pay_now': 'pay_later',
                    #                         'name': '',
                    #                         'date': c_date,
                    #                         'company_id': 1,
                    #                         'tax_id': False,
                    #                         'payment_option': 'without_writeoff',
                    #                         'comment': _('Write-Off'),
                    #                         'advance_account_id':re_reg_advance_account.id or student_rec.property_account_customer_advance.id or False,
                    #                         'payfort_payment_id' : pay_id,
                    #                         'payfort_pay_date' : t_date,
                    #                         're_reg_fee' : True,
                    #                     }

                    payment_vals = {
                        'partner_type': 'customer',
                        'partner_id': student_rec.id,
                        'journal_id': journal_id,
                        'amount': s_payable_amount,
                        'payment_method_id': 1,
                        'payment_type': 'inbound',
                    }
                    payment_rec = account_payment_obj.create(payment_vals)
                    payment_rec.post()
                    exist_payment = account_payment_obj.sudo().search([
                        ('partner_id', '=', student_rec.id),
                        ('payfort_payment_id', '=', 'payfort_payment_id')
                    ])
                    if not exist_payment.id:
                        s_payment_rec = account_payment_obj.create(
                            payment_vals)

                        # update on re-registration student
                        student_re_reg_rec.total_paid_amount += s_payable_amount
                        if student_re_reg_rec.residual <= 0:
                            student_re_reg_rec.fee_status = 're_Paid'
                            student_re_reg_rec.state = 're_registration_confirmed'
                            student_re_reg_rec.name.re_reg_next_academic_year = 'yes'
                        elif student_re_reg_rec.total_paid_amount < student_re_reg_rec.total_amount and student_re_reg_rec.total_paid_amount != 0.00:
                            student_re_reg_rec.fee_status = 're_partially_paid'
                            student_re_reg_rec.state = 'awaiting_re_registration_fee'
                            student_re_reg_rec.name.re_reg_next_academic_year = 'no'

                        # Add Journal Entries


#                         s_voucher_rec.button_proforma_voucher()

                        self.create_attachment_re_reg_payment_receipt(
                            payment_rec, student_re_reg_rec)
                        #===================commented by shraddha because production server was creating 0 bytes pdf, so added send mail in more ref:send_for_re_registration.py ====================================
                        # # Send mail to Parent For Payment Receipt
                        # student_data += '<tr><td>%s</td><td>%s</td><td>Yes</td><td>%s</td></tr></table>'%(
                        #     student_re_reg_rec.name.name,student_re_reg_rec.next_year_course_id.name,s_payable_amount)
                        # email_server = env['ir.mail_server']
                        # email_sender = email_server.search([], limit=1)
                        # ir_model_data = env['ir.model.data']
                        # template_id = ir_model_data.get_object_reference('edsys_edu_re_registration','email_template_re_registration_fee_receipt_paid')[1]
                        # template_rec = env['email.template'].sudo().browse(template_id)
                        # body_html = template_rec.body_html
                        # body_dynamic_html = template_rec.body_html
                        # body_dynamic_html += '%s'%(student_data)
                        # template_rec.write({'email_to': student_re_reg_rec.name.parents1_id.parents_email,
                        #                     'email_from': email_sender.smtp_user,
                        #                     'email_cc': '',
                        #                     'body_html': body_dynamic_html})
                        # template_rec.send_mail(s_voucher_rec.id, force_send=False)
                        # template_rec.body_html = body_html
                        #=======================================================
        flag_fee_status = True
        for student_fee_status in re_reg_parent_rec.student_ids:
            if student_fee_status.fee_status == 're_unpaid':
                flag_fee_status = False
        if flag_fee_status == True:
            re_reg_parent_rec.come_to_confirm()

        if total_amount > 0.00:
            # parent pay amount in advance
            partner_rec = re_reg_parent_rec.name
            parent_voucher_data = {
                'period_id':
                period_id,
                'account_id':
                account_id,
                'partner_id':
                partner_rec.id,
                'journal_id':
                journal_id,
                'currency_id':
                currency_id,
                'reference':
                re_reg_parent_rec.code,
                'amount':
                total_amount,
                'type':
                'receipt' or 'payment',
                'state':
                'draft',
                'pay_now':
                'pay_later',
                'name':
                '',
                'date':
                c_date,
                'company_id':
                1,
                'tax_id':
                False,
                'payment_option':
                'without_writeoff',
                'comment':
                _('Write-Off'),
                'advance_account_id':
                partner_rec.property_account_customer_advance.id,
                're_reg_fee':
                True,
                'payfort_payment_id':
                pay_id,
                'payfort_pay_date':
                t_date,
                # 'invoice_id':inv_obj.id,
            }
            p_voucher_rec_exist = voucher_obj.sudo().search([
                ('partner_id', '=', partner_rec.id),
                ('payfort_payment_id', '=', pay_id)
            ])
            if not p_voucher_rec_exist.id:
                p_voucher_rec = voucher_obj.sudo().create(parent_voucher_data)

                # Add Journal Entries
                p_voucher_rec.button_proforma_voucher()
Beispiel #21
0
    def jobs(self, country=None, department=None, office_id=None, **kwargs):
        env = request.env(context=dict(
            request.env.context, show_address=True, no_tag_br=True))

        Country = env['res.country']
        Jobs = env['hr.job']

        # List jobs available to current UID
        domain = request.website.website_domain()
        job_ids = Jobs.search(
            domain, order="website_published desc,no_of_recruitment desc").ids
        # Browse jobs as superuser, because address is restricted
        jobs = Jobs.sudo().browse(job_ids)

        # Default search by user country
        if not (country or department or office_id
                or kwargs.get('all_countries')):
            country_code = request.session['geoip'].get('country_code')
            if country_code:
                countries_ = Country.search([('code', '=', country_code)])
                country = countries_[0] if countries_ else None
                if not any(j for j in jobs if j.address_id
                           and j.address_id.country_id == country):
                    country = False

        # Filter job / office for country
        if country and not kwargs.get('all_countries'):
            jobs = [
                j for j in jobs
                if j.address_id is None or j.address_id.country_id
                and j.address_id.country_id.id == country.id
            ]
            offices = set(j.address_id for j in jobs
                          if j.address_id is None or j.address_id.country_id
                          and j.address_id.country_id.id == country.id)
        else:
            offices = set(j.address_id for j in jobs if j.address_id)

        # Deduce departments and countries offices of those jobs
        departments = set(j.department_id for j in jobs if j.department_id)
        countries = set(o.country_id for o in offices if o.country_id)

        if department:
            jobs = [
                j for j in jobs
                if j.department_id and j.department_id.id == department.id
            ]
        if office_id and office_id in [x.id for x in offices]:
            jobs = [
                j for j in jobs
                if j.address_id and j.address_id.id == office_id
            ]
        else:
            office_id = False

        # Render page
        return request.render(
            "website_hr_recruitment.index", {
                'jobs': jobs,
                'countries': countries,
                'departments': departments,
                'offices': offices,
                'country_id': country,
                'department_id': department,
                'office_id': office_id,
            })
Beispiel #22
0
 def avatar(self, res_model, res_id, partner_id):
     headers = [('Content-Type', 'image/png')]
     status = 200
     content = 'R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='  # default image is one white pixel
     if res_model in request.env:
         try:
             # if the current user has access to the document, get the partner avatar as sudo()
             request.env[res_model].browse(res_id).check_access_rule('read')
             if partner_id in request.env[res_model].browse(res_id).sudo().exists().message_ids.mapped('author_id').ids:
                 status, headers, _content = binary_content(model='res.partner', id=partner_id, field='image_medium', default_mimetype='image/png', env=request.env(user=SUPERUSER_ID))
                 # binary content return an empty string and not a placeholder if obj[field] is False
                 if _content != '':
                     content = _content
                 if status == 304:
                     return werkzeug.wrappers.Response(status=304)
         except AccessError:
             pass
     image_base64 = base64.b64decode(content)
     headers.append(('Content-Length', len(image_base64)))
     response = request.make_response(image_base64, headers)
     response.status = str(status)
     return response
Beispiel #23
0
 def render_page6(self, **post):
     """
     this method store data from current(6) page,
     ------------------------------------------
     @param self : object pointer
     @param type : http
     @param auth : public
     @param website : True
     @return : call templet also pass dictonary for
               required data
     """
     env = request.env(context=dict(request.env.context, show_address=True, no_tag_br=True))
     student_obj = env['res.partner']
     student_rec = student_obj.sudo().browse(int(post.get('student_id')))
     if not student_rec.id:
         return request.redirect("/student/verification/expired")
     else:
         parents_data = {
             'name' : post.get('Father_Name') or '',
             'mother_name' : post.get('Mother_Name') or '',
             'parents_office_contact' : post.get('Parents_Office_Contact') or '',
             'parent_contact' : post.get('F_Mobile') or '',
             'mother_contact' : post.get('Mother_Contact') or '',
         }
         student_data = {
             'health_card_no' : post.get('Health_Card_No') or '',
             'street' : post.get('Residential_Address') or '',
             'mobile' : post.get('S_Mobile') or '',
             'prev_institute' : post.get('Previous_School_Name') or '',
             'prev_academic_country' : post.get('Prev_Academic_Country') or '',
             'diphtheria' : post.get('Diphtheria') or '',
             'accident' : post.get('Accident') or '',
             'dysentery' : post.get('Dysentery') or '',
             'allergies' : post.get('Allergies') or '',
             'infective_hepatitis' : post.get('Infective_Hepatitis') or '',
             'bronchial_asthma' : post.get('Bronchial_Asthma') or '',
             'measles' : post.get('Measles') or '',
             'congenital_heart_disease' : post.get('Congenital_Heart_Disease') or '',
             'mumps' : post.get('Mumps') or '',
             'diabetes_mellitus' : post.get('Diabetes_Mellitus') or '',
             'poliomyelitis' : post.get('Poliomyelitis') or '',
             'epilepsy' : post.get('Epilepsy') or '',
             'rubella' : post.get('Rubella') or '',
             'G6PD' : post.get('G6PD') or '',
             'scarlet_fever' : post.get('Scarlet_Fever') or '',
             'rheumatic_fever' : post.get('Rheumatic_Fever') or '',
             'tuberculosis' : post.get('Tuberculosis') or '',
             'surgical_operation' : post.get('Surgical_Operation') or '',
             'whooping_cough' : post.get('Whooping_Cough') or '',
             'thalassemia' : post.get('Thalassemia') or '',
             'chicken_pox' : post.get('Chicken_Pox') or '',
             'physically_challenged' : post.get('Physically_Challenged') or '',
             'infectious_disease_other' : post.get('Infectious_Disease_Other') or '',
             'hearing_speech_defect' : post.get('Hearing_Speech_Defect') or '',
             'vision_problems' : post.get('Vision_Problems') or '',
             'history_of_blood_transfusion' : post.get('History_Of_Blood_Transfusion') or '',
             'hospitalization' : post.get('Hospitalization') or '',
             'hospitalization_reason' : post.get('Hospitalization_Reason') or '',
             'diabetes' : post.get('Diabetes') or False,
             'HTN' : post.get('HTN') or False,
             'mental' : post.get('Mental') or False,
             # 'disorders' : post.get('Disorders') or False,
             'stroke' : post.get('Stroke') or False,
             'TB' : post.get('TB') or False,
             'HTN_other' : post.get('HTN_other') or '',
             'medicine_or_drugs' : post.get('Medicine_or_Drugs') or '',
             'medicine_or_drugs_details' : post.get('Medicine_or_Drugs_Details') or '',
             'w_medication_mention' : post.get('Medication_Mention') or '',
             'under_medication' : post.get('Under_Medication') or '',
             'give_consent_oral_analgesic' : post.get('Give_Consent_Oral_Analgesic') or '',
             'give_consent_hospital_treatment' : post.get('Give_Consent_Hospital_Treatment') or False,
             'give_consent_immunization' : post.get('Give_Consent_Immunization') or '',
             'add_form_filled' : True
         }
         student_rec.parents1_id.sudo().write(parents_data)
         student_rec.sudo().write(student_data)
         reg_obj = env['registration']
         reg_rec = reg_obj.sudo().search([('enquiry_no','=',student_rec.reg_no)],limit=1)
         reg_rec.add_form_filled = True
     e_student_id = base64.b64encode(str(post.get('student_id')))
     return request.redirect("/student/verification/success?student_id=%s" % (e_student_id))
Beispiel #24
0
    def redirect_payfort(self, **post):
        """
        create payfort payment link and
        redirect to Payfort Page.
        -------------------------------
        :return: redirect to payfort payment getway page.
        """
        #----------------new code---------------------
        currency = 'AED'
        #----------------new code---------------------
        env = request.env(user=SUPERUSER_ID)
        user_id = 1
        if user_id:
            res_user_obj = env['res.users']
            res_user_obj_rec = res_user_obj.sudo().search(
                [('id', '=', user_id)], limit=1)
            #----------------new code---------------------
            currency = str(res_user_obj_rec.company_id.currency_id.name)
            #----------------new code---------------------
        payfort_conf_obj = env['payfort.config']
        payfort_conf_rec = payfort_conf_obj.sudo().search(
            [('active', '=', 'True')], limit=1)
        if payfort_conf_rec.id:
            order_id = str(post.get('ORDERID'))
            total_amount = float(post.get('AMOUNT')) or 0.00
            payment_method = str(post.get('payment_method'))

            #------------------------get partner email------------------------------#
            reg_ids = env['registration'].sudo().search([
                ('registration_number', '=', order_id)
            ])
            invoice_ids = env['account.invoice'].sudo().search(
                [('invoice_number', '=', order_id)], limit=1)
            voucher_rec = env['account.voucher'].sudo().search(
                [('payfort_type', '=', True),
                 ('voucher_number', '=', order_id)],
                limit=1)
            next_year_advance_fee_rec = env['next.year.advance.fee'].sudo(
            ).search([('order_id', '=', order_id)])
            re_registration_parent_rec = env[
                're.reg.waiting.responce.parents'].sudo().search(
                    [('re_registration_number', '=', order_id)], limit=1)
            tc_student_rec = env['trensfer.certificate'].sudo().search(
                [('transfer_certificate_number', '=', order_id)], limit=1)
            #                                                                                           limit=1)
            customer_email = False
            if len(reg_ids) > 0:
                customer_email = reg_ids.parent_email
            elif len(invoice_ids) > 0:
                customer_email = invoice_ids.partner_id.email
            elif len(voucher_rec) > 0:
                customer_email = voucher_rec.partner_id.parents_email
            elif len(next_year_advance_fee_rec) > 0:
                customer_email = next_year_advance_fee_rec.partner_id.email

            elif len(tc_student_rec) > 0:
                customer_email = tc_student_rec.name.email
            elif len(re_registration_parent_rec) > 0:
                customer_email = re_registration_parent_rec.name.parents_email
            #------------------------get partner email------------------------------#

            #------------------------calculate payfort charge-----------------------#
            amount = 0.00
            payfort_charge_amount = 0
            payfort_transaction_charge = 0
            payfort_url = payfort_conf_rec.payfort_url
            payfort_bank_charge = 0
            access_code = str(payfort_conf_rec.access_code)
            merchant_identifier = str(payfort_conf_rec.merchant_identifier)
            return_url = str(payfort_conf_rec.return_url)
            language = str(payfort_conf_rec.language)
            if payfort_conf_rec.id and payfort_conf_rec.charge > 0:
                payfort_charge_amount = (total_amount /
                                         100) * payfort_conf_rec.charge
            if payfort_conf_rec.transaction_charg_amount > 0.00:
                payfort_transaction_charge = payfort_conf_rec.transaction_charg_amount


#             if payfort_conf_rec.id and payfort_conf_rec.bank_service_charge > 0:
#                 payfort_bank_charge = (total_amount / 100 )  * payfort_conf_rec.bank_service_charge
            total_payfort_charge = payfort_charge_amount + payfort_transaction_charge + payfort_bank_charge
            #------------------------calculate payfort charge-----------------------#

            #------------------------add payfort charge in amount-------------------#
            total_payable_amount = total_amount + total_payfort_charge
            total_net_amount = round(total_payable_amount)
            amount = int(total_net_amount * 100)
            #------------------------add payfort charge in amount-------------------#

            #----------------Redirection to sbcheckout page-------------------------#
            command = "PURCHASE"
            cart_details = '{"cart_items":[{"item_name":"Xbox360","item_description":"Xbox","item_quantity":"1","item_price":"300","item_image":"http://image.com"}],"sub_total":"300"}'
            #
            if payment_method == 'MASTERPASS':
                digital_wallet = payment_method
                message = 'TESTSHAINaccess_code=%samount=%scart_details=%scommand=%scurrency=%scustomer_email=%sdigital_wallet=%slanguage=%smerchant_identifier=%smerchant_reference=%sreturn_url=%sTESTSHAIN' % (
                    access_code, amount, cart_details, command, currency,
                    customer_email, digital_wallet, language,
                    merchant_identifier, order_id, return_url)
                signature = hashlib.sha256(message)
                return """
                                                  <html>
                                                      <body>
                                                      <form action=%s method='post' id="payu" name="payu">
                                                          <input type="hidden" name="access_code" value="%s" />
                                                          <input type="hidden" name="amount" value="%s" />
                                                          <input type="hidden" name="cart_details" value='{"cart_items":[{"item_name":"Xbox360","item_description":"Xbox","item_quantity":"1","item_price":"300","item_image":"http://image.com"}],"sub_total":"300"}'/>
                                                          <input type="hidden" name="command" value="%s" />
                                                          <input type="hidden" name="currency" value="%s" />
                                                          <input type="hidden" name="customer_email" value ="%s" />
                                                          <input type="hidden" name="digital_wallet" value ="%s" />
                                                          <input type="hidden" name="language" value="%s" />
                                                          <input type="hidden" name="merchant_identifier" value="%s" />
                                                          <input type="hidden" name="merchant_reference" value="%s" />
                                                          <input type="hidden" name="return_url" value="%s" />
                                                          <input type="hidden" name="signature" value="%s" />
                                                      </form>
                                                      </body>
                                                      <script type='text/javascript'>
                                                       window.onload = function(){
                                                       document.forms['payu'].submit()
                                                      }
                                                      </script>
                                                  </html>
      
                                              """ % (
                    payfort_url, access_code, amount, command, currency,
                    customer_email, digital_wallet, language,
                    merchant_identifier, order_id, return_url,
                    signature.hexdigest())

            if payment_method == 'VISA_CHECKOUT':
                digital_wallet = payment_method
                message = 'TESTSHAINaccess_code=%samount=%scommand=%scurrency=%scustomer_email=%sdigital_wallet=%slanguage=%smerchant_identifier=%smerchant_reference=%sreturn_url=%sTESTSHAIN' % (
                    access_code, amount, command, currency, customer_email,
                    digital_wallet, language, merchant_identifier, order_id,
                    return_url)
                signature = hashlib.sha256(message)
                #                 cart_details = json.dumps(cart_details)
                return """
                                                  <html>
                                                      <body>
                                                      <form action=%s method='post' id="payu" name="payu">
                                                          <input type="hidden" name="access_code" value="%s" />
                                                          <input type="hidden" name="amount" value="%s" />
                                                          <input type="hidden" name="command" value="%s" />
                                                          <input type="hidden" name="currency" value="%s" />
                                                          <input type="hidden" name="customer_email" value ="%s" />
                                                          <input type="hidden" name="digital_wallet" value ="%s" />
                                                          <input type="hidden" name="language" value="%s" />
                                                          <input type="hidden" name="merchant_identifier" value="%s" />
                                                          <input type="hidden" name="merchant_reference" value="%s" />
                                                          <input type="hidden" name="return_url" value="%s" />
                                                          <input type="hidden" name="signature" value="%s" />
                                                      </form>
                                                      </body>
                                                      <script type='text/javascript'>
                                                       window.onload = function(){
                                                       document.forms['payu'].submit()
                                                      }
                                                      </script>
                                                  </html>
      
                                              """ % (
                    payfort_url, access_code, amount, command, currency,
                    customer_email, digital_wallet, language,
                    merchant_identifier, order_id, return_url,
                    signature.hexdigest())

            if payment_method == 'CREDIT_CARD':
                message = 'TESTSHAINaccess_code=%samount=%scommand=%scurrency=%scustomer_email=%slanguage=%smerchant_identifier=%smerchant_reference=%sreturn_url=%sTESTSHAIN' % (
                    access_code, amount, command, currency, customer_email,
                    language, merchant_identifier, order_id, return_url)
                signature = hashlib.sha256(message)
                return """
                                                  <html>
                                                      <body>
                                                      <form action=%s method='post' id="payu" name="payu">
                                                          <input type="hidden" name="access_code" value="%s" />
                                                          <input type="hidden" name="amount" value="%s" />
                                                          <input type="hidden" name="command" value="%s" />
                                                          <input type="hidden" name="currency" value="%s" />
                                                          <input type="hidden" name="customer_email" value ="%s" />
                                                          <input type="hidden" name="language" value="%s" />
                                                          <input type="hidden" name="merchant_identifier" value="%s" />
                                                          <input type="hidden" name="merchant_reference" value="%s" />
                                                          <input type="hidden" name="return_url" value="%s" />
                                                          <input type="hidden" name="signature" value="%s" />
                                                      </form>
                                                      </body>
                                                      <script type='text/javascript'>
                                                       window.onload = function(){
                                                       document.forms['payu'].submit()
                                                      }
                                                      </script>
                                                  </html>
                                              """ % (
                    payfort_url, access_code, amount, command, currency,
                    customer_email, language, merchant_identifier, order_id,
                    return_url, signature.hexdigest())
Beispiel #25
0
    def get_payment_amount(self, partner_id):
        env = request.env(user=SUPERUSER_ID)
        account_voucher_obj = env['account.voucher']
        account_invoice_obj = env['account.invoice']
        voucher_line_obj = env['account.voucher.line']
        total_amount = 0.0
        if partner_id:
            for parent_rec in partner_id:
                chield_ids = parent_rec.chield1_ids
                table_data = ''
                student_id_list = []
                stud_advance_table = ''
                total_advance = 0.0
                parent_cedit = 0.00
                if chield_ids:
                    for chield_id in chield_ids:
                        student_id_list.append(chield_id.id)
                stud_rec = env['res.partner'].browse(student_id_list)
                if len(stud_rec) > 0:
                    # check for parent advance payment#this is my logic
                    if parent_rec.credit:
                        parent_cedit += parent_rec.credit

                    total_amount_table = 0.00
                    total_amount = 0.0
                    move_ids_list = []
                    stud_lst_invoice = []
                    stud_balance = 0.0
                    total_amount += parent_cedit

                    for student_rec in stud_rec:
                        invoice_residual_amount = 0

                        # COLLECT STUDENT ADVANCES
                        total_advance += student_rec.advance_total_recivable + student_rec.re_reg_total_recivable
                        advance_total_recivable = 0.0
                        if student_rec.advance_total_recivable == False and student_rec.re_reg_total_recivable == False:
                            advance_total_recivable = 0.0
                        elif student_rec.advance_total_recivable > 0.0 or student_rec.re_reg_total_recivable > 0.0:
                            advance_total_recivable = student_rec.advance_total_recivable + student_rec.re_reg_total_recivable

                        stud_advance_table += '<tr><td>%s</td><td>%s</td><td>%s</td></tr>' \
                                              %(parent_rec.parent1_id, student_rec.name, advance_total_recivable)

                        for invoice_rec in account_invoice_obj.search([
                            ('partner_id', '=', student_rec.id),
                            ('type', '!=', 'out_refund')
                        ]):
                            #GET OPEN INVOICES
                            if invoice_rec.state == 'open' and invoice_rec.residual > 0.00:

                                # CHECK FOR NEGATIVE AMOUNT
                                if invoice_rec.amount_total < 0:
                                    invoice_residual_amount = -invoice_rec.residual

                                else:
                                    invoice_residual_amount = invoice_rec.residual

                                #total_amount_table += invoice_rec.residual
                                total_amount_table += invoice_residual_amount
                                table_data += '<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>' \
                                              %(student_rec.name,invoice_rec.number,invoice_rec.date_invoice,invoice_rec.amount_total,invoice_residual_amount)
#
                        total_amount += student_rec.credit
        return total_amount
Beispiel #26
0
 def bundle(self):
     env = request.env(user=SUPERUSER_ID)
     bundle = env.ref('test_assetsbundle.bundle1')
     views = env['ir.ui.view'].search([('inherit_id', '=', bundle.id)])
     return views.with_context(check_view_ids=views.ids).render_template(
         'test_assetsbundle.template1')
Beispiel #27
0
    def render_page_default(self, **post):
        print '===============post'
        """
        this method use to save default form data in
        database, and redirect to next page,
        ------------------------------------------
        @param self : object pointer
        @param type : http
        @param auth : public
        @param website : True
        @return : call templet also pass dictonary for
                  required data
        """
        env = request.env(context=dict(request.env.context, show_address=True, no_tag_br=True))
        student_obj = env['res.partner']
        attach_obj = env['ir.attachment']
        student_rec = student_obj.sudo().browse(int(post.get('student_id')))
        if not student_rec.id:
            return request.redirect("/student/verification/expired")
        else:
            parent_data = {
                'parents_email' : post.get('Father_Email') or '',
                'parents_office_contact' : post.get('office_no') or '',
                'street' : post.get('parents_address') or '',
                'mother_profession' : post.get('mother_profession') or '',
                'mother_contact' : post.get('mother_mobile_no') or '',
                'mother_office_contact' : post.get('mother_tel_no') or '',
                'mother_email' : post.get('mother_email') or '',
                'mother_address' : post.get('mother_address') or '',
                'emergency_contact' : post.get('emergency_mobile_no') or '',
            }
            for document,values in {'f_visa_copy1':'parent_visa_copy','f_emirates_copy1':'f_emirates_copy1',
                                    'f_emirates_copy2':'f_emirates_copy2','m_visa_copy1':'mother_visa_copy',
                                    'm_emirates_copy1':'m_emirates_copy1','m_emirates_copy2':'m_emirates_copy2'}.items():
                if post.get(document):
                    parent_data.update({values:base64.encodestring(post[document].read())})
            child_allergic = False
            under_medication = False
            if post.get('allergic') == 'y':
                child_allergic = True
            if post.get('under_medication') == 'y':
                under_medication = True
            student_data = {
                'emirati' : post.get('Emirati') or '',
                'arab' : post.get('Arab_v') or '',
                'emirates_id' : post.get('Emirates_id') or '',
                'blood_group' : post.get('Blood_Group') or '',
                's_height' : post.get('S_Height') or '',
                's_width' : post.get('S_Width') or '',
                'child_allergic' : child_allergic or False,
                'w_allergic' : post.get('yes_allergic') or '',
                'w_reaction' : post.get('reaction') or '',
                'w_treatment' : post.get('treatment') or '',
                'under_medication' : under_medication or False,
                'mention' : post.get('w_medication_mention') or '',
                'w_treatment_mention' : post.get('w_treatment') or '',
                'isd_code' : post.get('Isd_Code') or '',
                'mobile' : post.get('S_Mobile') or '',
                'transport_type' : post.get('transport_type') or '',
                'pick_up' : post.get('pick_up') or '',
                'droup_off_pick' : post.get('droup_off') or '',
            }
            for sdocument,svalues in {'transfer_certi':'transfer_certificate','s_emirates_copy1':'s_emirates_copy1',
                                      's_emirates_copy2':'s_emirates_copy2','s_pass_copy1':'passport_copy1',
                                      's_pass_copy2':'passport_copy2','s_visa':'medical_documents_file'}.items():
                if post.get(sdocument):
                    student_data.update({svalues:base64.encodestring(post[sdocument].read())})

            student_rec.sudo().write(student_data)
	    reg_obj = env['registration']            
	    reg_rec = reg_obj.sudo().search([('enquiry_no','=',student_rec.reg_no)],limit=1)            
	    reg_rec.sudo().write(student_data)
            student_rec.parents1_id.sudo().write(parent_data)
            for get_file in ['transfer_certi','s_visa','s_emirates_copy1','s_emirates_copy2','s_pass_copy1','s_pass_copy2']:
                attachment_value = {}
                if get_file in post and post[get_file]:
                    attachment_value = {
                        'type':'binary',
                        'name': post[get_file].filename,
                        'res_name': 'demo01',
                        'res_model': 'res.partner',
                        # 'res_id': stud_rec.id,
                        'datas': base64.encodestring(post[get_file].read()),
                        'datas_fname': post[get_file].filename,
                    }
                    attach_obj.sudo().create(attachment_value)

            for get_f_file in ['f_visa_copy1','f_emirates_copy1','f_emirates_copy2','m_visa_copy1','m_emirates_copy1','m_emirates_copy2']:
                attachment_value = {}
                if 'get_f_file' in post and post['get_f_file']:
                    res_name = ""
                    if get_f_file in ['f_visa_copy1','f_emirates_copy1','f_emirates_copy2']:
                        res_name = student_rec.parents1_id.name
                    else:
                        res_name = student_rec.parents1_id.mother_name

                    attachment_value = {
                        'type':'binary',
                        'name': post[get_file].filename,
                        'res_name': res_name,
                        'res_model': 'res.partner',
                        # 'res_id': stud_rec.parents1_id.id,
                        'datas': base64.encodestring(post[get_file].read()),
                        'datas_fname': post[get_file].filename,
                    }
                    attach_obj.sudo().create(attachment_value)
        e_page_code = base64.b64encode('1')
        e_student_id = base64.b64encode(str(post.get('student_id')))
        return request.redirect("/student/verification/pagecode?page_code=%s&student_id=%s" % (e_page_code,e_student_id))
Beispiel #28
0
    def show_acd_payment(self, **post):
        """
        This method use to online payment by student/parent
        for Re-Registration
        ---------------------------------------------------
        :param post:
        :return:
        """
        res = {}
        #----------new code 20-mar-2017 payment declined------------
        response_code = ''
        #----------new code 20-mar-2017 payment declined------------
        env = request.env(user=SUPERUSER_ID)
        if 'response_code' in post:
            response_code = post['response_code']
            if response_code == '00066':
                return request.render(
                    "website_student_enquiry.thankyou_payment_link_expired",
                    {})

        #----------new code 20-mar-2017 payment declined------------
        if 'response_code' in post:
            response_code = post['response_code']
            if response_code == '00047':
                return request.render(
                    "website_student_enquiry.thankyou_payment_order_already_processed",
                    {})

        if 'response_code' in post:
            response_code = post['response_code']
            if response_code != '14000':
                return request.render(
                    "website_student_enquiry.thankyou_acd_fee_fail", {})
        if 'response_code' in post:
            response_code = post['response_code']
            if response_code == '00066':
                return request.render(
                    "website_student_enquiry.thankyou_payment_link_expired",
                    {})

        if post.get('status') == '14':
            cr = env.cr
            env = request.env(user=SUPERUSER_ID)

            #======================new code for remove exception===================

            payfort_capture_obj = env['payfort.payment.capture']
            paid_amount = float(post.get('amount')) / 100
            paid_amount = self.get_orignal_amount(paid_amount)

            bank_charges, transaction_charges, gross_transaction_value, net_amount, transaction_charges_deducted_by_bank =\
                self.calculate_payfort_charges_value(paid_amount)
            payfort_capture_rec = payfort_capture_obj.sudo().search(
                [('pay_id', '=', post.get('fort_id'))], limit=1)
            reg_ids = env['registration'].sudo().search([
                ('registration_number', '=', post['merchant_reference'])
            ])
            invoice_ids = env['account.invoice'].sudo().search(
                [('invoice_number', '=', post['merchant_reference'])], limit=1)
            voucher_rec = env['account.voucher'].sudo().search(
                [('payfort_type', '=', True),
                 ('voucher_number', '=', post['merchant_reference'])],
                limit=1)
            next_year_advance_fee_rec = env['next.year.advance.fee'].sudo(
            ).search([('order_id', '=', post['merchant_reference'])])
            re_registration_parent_rec = env[
                're.reg.waiting.responce.parents'].sudo().search([
                    ('re_registration_number', '=', post['merchant_reference'])
                ],
                                                                 limit=1)
            tc_student_rec = env['trensfer.certificate'].sudo().search(
                [('transfer_certificate_number', '=',
                  post['merchant_reference'])],
                limit=1)
            partner = False
            if len(reg_ids) > 0:
                partner = False
            elif len(invoice_ids) > 0:
                partner = invoice_ids.partner_id.id
            elif len(voucher_rec) > 0:
                partner = voucher_rec.partner_id.id
            elif len(next_year_advance_fee_rec) > 0:
                partner = next_year_advance_fee_rec.partner_id.id
            elif len(re_registration_parent_rec) > 0:
                partner = re_registration_parent_rec.name.id
            elif len(tc_student_rec) > 0:
                partner = tc_student_rec.name.id

            #======================END new code for remove exception===================

            try:
                res = super(ShowAcdPaymentInheritPayfortCapture,
                            self).show_acd_payment(**post)
            except Exception as err_msg:
                #                 payfort_error_capture_obj = env['payfort.error.capture']

                #======================new code for remove exception===================
                payfort_capture_rec = payfort_capture_obj.search(
                    [('pay_id', '=', post.get('fort_id'))], limit=1)
                if not payfort_capture_rec:
                    payfort_capture_data = {
                        'date': date.today(),
                        'partner': partner,
                        'pay_id': post.get('fort_id') or '',
                        'reference_number': post.get('merchant_reference'),
                        'paid_amount': paid_amount,
                        'bank_charges': bank_charges,
                        'gross_transaction_value': gross_transaction_value,
                        'transaction_charges_deducted_by_bank':
                        transaction_charges_deducted_by_bank,
                        'transaction_charges': transaction_charges,
                        'net_amount': net_amount,
                    }
                    temp = payfort_capture_obj.sudo().create(
                        payfort_capture_data)
                    cr.commit()
                #======================new code for remove exception===================

                return request.render(
                    "edsys_capturing_online_payment.payfort_payment_error_templet",
                    {
                        'payment_id': post['fort_id'],
                        'order_id': post['merchant_reference'],
                        'err_msg': err_msg,
                    })
            except:
                import sys
                err_msg = sys.exc_info()[0]
                #======================new code for remove exception===================
                payfort_capture_rec = payfort_capture_obj.sudo().search(
                    [('pay_id', '=', post.get('fort_id'))], limit=1)
                if not payfort_capture_rec:
                    payfort_capture_data = {
                        'date': date.today(),
                        'partner': partner,
                        'pay_id': post.get('fort_id') or '',
                        'reference_number': post.get('merchant_reference'),
                        'paid_amount': paid_amount,
                        'bank_charges': bank_charges,
                        'gross_transaction_value': gross_transaction_value,
                        'transaction_charges_deducted_by_bank':
                        transaction_charges_deducted_by_bank,
                        'transaction_charges': transaction_charges,
                        'net_amount': net_amount,
                    }
                    temp = payfort_capture_obj.sudo().create(
                        payfort_capture_data)
                    cr.commit()
                #======================new code for remove exception===================

                return request.render(
                    "edsys_capturing_online_payment.payfort_payment_error_templet",
                    {
                        'payment_id': post['fort_id'],
                        'order_id': post['merchant_reference'],
                        'err_msg': err_msg,
                    })
            payfort_capture_rec = payfort_capture_obj.sudo().search(
                [('pay_id', '=', post.get('fort_id'))], limit=1)
            if not payfort_capture_rec.id:
                payfort_capture_data = {
                    'date': date.today(),
                    'partner': partner,
                    'pay_id': post.get('fort_id') or '',
                    'reference_number': post.get('merchant_reference'),
                    'paid_amount': paid_amount,
                    'bank_charges': bank_charges,
                    'gross_transaction_value': gross_transaction_value,
                    'transaction_charges_deducted_by_bank':
                    transaction_charges_deducted_by_bank,
                    'transaction_charges': transaction_charges,
                    'net_amount': net_amount,
                }
                temp = payfort_capture_obj.sudo().create(payfort_capture_data)
                cr.commit()

        return res
Beispiel #29
0
 def render_student_pagecode(self, **post):
     """
     this method should be redirect particuler page
     with proper data.
     ----------------------------------------------
     :param post:
     :return:
     """
     env = request.env(context=dict(request.env.context, show_address=True, no_tag_br=True))
     print env
     student_obj = env['res.partner']
     country_obj = env['res.country']
     religion_obj = env['religion']
     language_obj = env['res.lang']
     batch_obj = env['batch']
     country_rec_list = []
     religion_rec_list = []
     language_rec_list = []
     for country_rec in country_obj.sudo().search([]):
         country_rec_list.append(country_rec)
     for reg_rec in religion_obj.sudo().search([]):
         religion_rec_list.append(reg_rec)
     for lang_rec in language_obj.sudo().search([]):
         language_rec_list.append(lang_rec)
     if post.get('student_id') and not post.get('page_code'):
         student_id = self.decode_base64(post.get('student_id'))
         student_rec = student_obj.sudo().browse(int(student_id))
         if not student_rec.default_page:
             return request.render("edsys_paperless_registrations.student_other_information",{
                                   'student_rec' : student_rec,
                                   'page_code' : '0',
                                 })
         if not student_rec.is_fill_page1:
             lang_spoken_at_home_list = []
             for lang_rec in student_rec.lang_spoken_at_home:
                 lang_spoken_at_home_list.append(lang_rec.id)
             return request.render("edsys_paperless_registrations.student_other_information_page1",{
                 'student_rec' : student_rec,
                 'country_rec_list' : country_rec_list,
                 'religion_rec_list' : religion_rec_list,
                 'language_rec_list' : language_rec_list,
                 'lang_spoken_at_home_list' : lang_spoken_at_home_list,
                 'page_code' : '1',
             })
         if not student_rec.is_fill_page2:
             return request.render("edsys_paperless_registrations.student_other_information_page2",{
                 'student_rec' : student_rec,
                 'country_rec_list' : country_rec_list,
                 'page_code' : '2',
             })
         if not student_rec.is_fill_page3:
             course_rec_list = []
             for batch_rec in batch_obj.sudo().search([('id','=',student_rec.batch_id.id)]):
                 for class_rec in batch_rec.course_ids:
                     course_rec_list.append(class_rec)
             return request.render("edsys_paperless_registrations.student_other_information_page3",{
                 'student_rec' : student_rec,
                 'language_rec_list' : language_rec_list,
                 'course_rec_list' : course_rec_list,
                 'page_code' : '3',
             })
         if not student_rec.is_fill_page4:
             return request.render("edsys_paperless_registrations.student_other_information_page4",{
                 'student_rec' : student_rec,
                 'page_code' : '4',
             })
         if not student_rec.is_fill_page5:
             return request.render("edsys_paperless_registrations.student_other_information_page5",{
                 'student_rec' : student_rec,
                 'page_code' : '5',
             })
         if not student_rec.is_fill_page6:
             return request.render("edsys_paperless_registrations.student_other_information_page6",{
                 'student_rec' : student_rec,
                 'country_rec_list' : country_rec_list,
                 'page_code' : '6',
             })
     if post.get('student_id') and post.get('page_code'):
         student_id = self.decode_base64(post.get('student_id'))
         student_rec = student_obj.sudo().browse(int(student_id))
         page_code = self.decode_base64(post.get('page_code'))
         if post.get('page_code') and int(page_code) == 0:
             return request.render("edsys_paperless_registrations.student_other_information",{
                                   'student_rec' : student_rec,
                                   'page_code' : '0',
                                 })
         if post.get('page_code') and int(page_code) == 1:
             lang_spoken_at_home_list = []
             for lang_rec in student_rec.lang_spoken_at_home:
                 lang_spoken_at_home_list.append(lang_rec.id)
             return request.render("edsys_paperless_registrations.student_other_information_page1",{
                 'student_rec' : student_rec,
                 'country_rec_list' : country_rec_list,
                 'religion_rec_list' : religion_rec_list,
                 'language_rec_list' : language_rec_list,
                 'lang_spoken_at_home_list' : lang_spoken_at_home_list,
                 'page_code' : '1',
             })
         if post.get('page_code') and int(page_code) == 2:
             return request.render("edsys_paperless_registrations.student_other_information_page2",{
                 'student_rec' : student_rec,
                 'country_rec_list' : country_rec_list,
                 'page_code' : '2',
             })
         if post.get('page_code') and int(page_code) == 3:
             course_rec_list = []
             for batch_rec in batch_obj.sudo().search([('id','=',student_rec.batch_id.id)]):
                 for class_rec in batch_rec.course_ids:
                     course_rec_list.append(class_rec)
             return request.render("edsys_paperless_registrations.student_other_information_page3",{
                 'student_rec' : student_rec,
                 'language_rec_list' : language_rec_list,
                 'course_rec_list' : course_rec_list,
                 'page_code' : '3',
             })
         if post.get('page_code') and int(page_code) == 4:
             return request.render("edsys_paperless_registrations.student_other_information_page4",{
                 'student_rec' : student_rec,
                 'page_code' : '4',
             })
         if post.get('page_code') and int(page_code) == 5:
             return request.render("edsys_paperless_registrations.student_other_information_page5",{
                 'student_rec' : student_rec,
                 'page_code' : '5',
             })
         if post.get('page_code') and int(page_code) == 6:
             return request.render("edsys_paperless_registrations.student_other_information_page6",{
                 'student_rec' : student_rec,
                 'country_rec_list' : country_rec_list,
                 'page_code' : '6',
             })
Beispiel #30
0
    def render_page1(self, **post):
        """
        this method use to save first form data in
        database, and redirect to next page,
        ------------------------------------------
        @param self : object pointer
        @param type : http
        @param auth : public
        @param website : True
        @return : call templet also pass dictonary for
                  required data
        """
        env = request.env(context=dict(request.env.context, show_address=True, no_tag_br=True))
        student_obj = env['res.partner']
        student_rec = student_obj.sudo().browse(int(post.get('student_id')))
        if not student_rec.id:
            return request.redirect("/student/verification/expired")
        else:
            image = ''
            if post.get('Student_Photo'):
                image = base64.encodestring(post.get('Student_Photo').read()) or ''
            else:
                image = student_rec.image
            lang_spoken_home_ids = []
            if post.get('id_Lang_Spoken_Home_value') != '':
                for lang_id in post.get('id_Lang_Spoken_Home_value').split(','):
                    lang_spoken_home_ids.append(lang_id)
            # import ipdb;ipdb.set_trace()
            student_data = {
                'image' : image or '',
                'name':post.get('First_Name') or '',
                'middle_name':post.get('Middle_Name') or '',
                'last_name':post.get('Last_Name') or '',
                'birth_place':post.get('Place_of_Birth') or '',
                'gender':post.get('Gender') or 'm',
                'nationality' : post.get('Nationality') or '',
                'religion_id': post.get('Religion') or '',
                'lang_id' : post.get('Mother_Tongue') or '',
                'passport_no' : post.get('Passport_No') or '',
                'place_of_issue' : post.get('Pass_Place_of_issue') or '',
                'passport_issue_date' : post.get('Pass_Date_of_issue') or False,
                'passport_expiry_date' : post.get('Pass_Date_of_Expiry') or False,
                'visa_no' : post.get('Visa_Number') or '',
                'visa_issue_date' : post.get('Visa_Date_of_Issue') or False,
                'visa_expiry_date' : post.get('Visa_Date_of_Exp') or False,
                'emirates_id' : post.get('Emirates_Id') or '',
                'email' : post.get('S_Email') or '',
                'street' : post.get('Residential_Address') or '',
                'postal_address' : post.get('Postal_Address') or '',
                'mobile' : post.get('S_Mobile') or '',
                'student_is_living_with' : post.get('Student_is_Living_With') or '',
                # 'language_spoken_at_home' : [(6,0,lang_spoken_home_ids)],
                'english_is_spoken_at_home' : post.get('Eng_Spik_Home') or '',
                'english_written' : post.get('Written'),
                'english_spoken' : post.get('Spoken'),
                'english_reading' : post.get('Reading'),
            }
            student_rec.sudo().write(student_data)
	    reg_obj = env['registration']            
	    reg_rec = reg_obj.sudo().search([('enquiry_no','=',student_rec.reg_no)],limit=1)            
	    reg_rec.sudo().write(student_data)
            student_rec.lang_spoken_at_home = [(6, 0, lang_spoken_home_ids)]

        e_page_code = base64.b64encode('2')
        e_student_id = base64.b64encode(str(post.get('student_id')))
        return request.redirect("/student/verification/pagecode?page_code=%s&student_id=%s" % (e_page_code,e_student_id))