Exemple #1
0
      def draft_force_assign(self, cr, uid, ids, context=None):
          
          """ inherit to draft_force_assign to make custody id readable """
           
           
           
          custody_lines_obj = self.pool.get('custody.order.lines')
           
          rec = self.browse(cr,uid,ids)[0]
          wf_service = netsvc.LocalService('workflow')

          
          
          
          if rec.custody_line_ids:             
             for line in rec.custody_line_ids:
                 custody_lines_obj.write(cr,uid,[line.id], {'order_state'  : 'complete'  })
          
          wf_service.trg_validate(uid, 'stock.picking', rec.id,
                    'button_confirm', cr)
          if rec.order_type == 'admin' :     
                   send_mail(self, cr, uid, ids[0] , 'purchase_ntc.group_administrative_user', "New Stock Exchange Order", self.message,context=context)
          else:
                   send_mail(self, cr, uid, ids[0] , 'purchase_ntc.group_technical_user', "New Stock Exchange Order", self.message,context=context)
          return super(stock_picking_out,self).draft_force_assign(cr, uid, ids, context=context)
Exemple #2
0
    def purchase_confirm_order(self, cr, uid, ids, context=None):
        """ Function For Change Order State into Budget Approve """

        requisition = self.browse(cr, uid, ids)[0].requisition_id

        for user in requisition.user_ids:
            if not user.opinion:
                raise osv.except_osv(
                    _('Warning!'),
                    _('Some of Tender Members didnt sign on this tender like "%s" '
                      ) % (user.user_id.name))
        if requisition.exclusive == 'exclusive':

            for quote in requisition.purchase_ids:
                if quote.id != ids[0]:
                    self.write(cr, uid, [quote.id], {'state': 'cancel'})
                else:
                    self.write(cr, uid, ids, {'state': 'budget_approved'})
        else:
            self.write(cr, uid, ids, {'state': 'budget_approved'})
        send_mail(self,
                  cr,
                  uid,
                  ids[0],
                  'purchase_ntc.group_internal_auditor',
                  "New Purchase Requisition",
                  self.message,
                  user=False,
                  department=False,
                  context=context)
        return True
Exemple #3
0
    def tender_in_progress(self, cr, uid, ids, context=None):
        wf_service = netsvc.LocalService('workflow')
        purchase_order_pool = self.pool.get('purchase.order')
        for req in self.browse(cr, uid, ids, context=context):
            req.write({'state': 'in_progress'})
            if not req.purchase_ids:
                wf_service.trg_validate(uid, 'purchase.requisition', req.id,
                                        'tender_in_progress', cr)
                send_mail(self,
                          cr,
                          uid,
                          ids[0],
                          'purchase_wafi.group_committee_user',
                          "New Purchase Requisition",
                          self.message,
                          user=False,
                          department=False,
                          context=context)

            else:
                for order in req.purchase_ids:
                    if order.state == 'budget_approved':
                        wf_service.trg_validate(uid, 'purchase.order',
                                                order.id, 'create_picking_in',
                                                cr)

                wf_service.trg_validate(uid, 'purchase.requisition', req.id,
                                        'tender_done', cr)
        return True
Exemple #4
0
    def approve(self, cr, uid, ids, context=None):
        """
		Workflow function that changes the state to 'approved' and if the type is 
        'hr.approved.course' then it updates employee's record and set training to
        True to indicate that the employee is in training.

		@return: Boolean True 
        """
        obj_attachment = self.pool.get('ir.attachment')
        emp_obj = self.pool.get('hr.employee')
        emp_training_id = self.browse(cr, uid, ids, context=context)[0].id
        for emp_trainig in self.browse(cr, uid, ids, context=context):
            if emp_trainig.type == 'hr.approved.course':
                emp_ids = [l.employee_id.id for l in emp_trainig.line_ids]
                emp_obj.write(cr,
                              uid,
                              emp_ids, {'training': True},
                              context=context)
        attachment_ids = obj_attachment.search(
            cr,
            uid, [('res_model', 'in', ('hr.employee.training.approved',
                                       'hr.employee.training.suggested')),
                  ('res_id', '=', emp_training_id)],
            context=context)
        '''if attachment_ids:
            self.write(cr, uid, ids, {'state':'approved'}, context=context)
        else:
            raise osv.except_osv(_('Warning!'), _('Their Is No Attachments To Approved'))'''
        training_line_pool = self.pool.get('hr.employee.training.line')
        line_ids = training_line_pool.search(
            cr, uid, [('training_employee_id', 'in', ids)], context=context)
        emp_dict = [{
            'name': l.training_employee_id.course_id.name,
            'emp_id': l.employee_id.id,
            'place': l.training_employee_id.training_place,
            'from': l.training_employee_id.start_date,
            'to': l.training_employee_id.end_date,
            'trainer': l.training_employee_id.partner_id.name,
            'template': False,
            'user_id': l.employee_id.user_id.id,
            'course_id': ids[0]
        } for l in training_line_pool.browse(
            cr, uid, line_ids, context=context)]
        hr_employee_obj = self.pool.get('hr.employee')
        for emp in emp_dict:
            send_mail(hr_employee_obj,
                      cr,
                      uid,
                      emp['emp_id'],
                      '',
                      'Course',
                      unicode(' لديك دورة تدريبية ', 'utf-8') + emp['name'] +
                      unicode(' \n في ', 'utf-8') + emp['trainer'] +
                      unicode(' \n من ', 'utf-8') + emp['from'] +
                      unicode(' إلى ', 'utf-8') + emp['to'],
                      user=[emp['user_id']],
                      context=context or {})

        self.write(cr, uid, ids, {'state': 'approved'}, context=context)
        return True
Exemple #5
0
    def done(self, cr, uid, ids, context={}):
        """
        Workflow function that changes the state to 'done' and updates employee's record 
        by setting training to False to indicate that the employee has finished the training.

		@return: Boolean True 
        """
        training_line_pool = self.pool.get('hr.employee.training.line')
        line_ids = training_line_pool.search(
            cr, uid, [('training_employee_id', 'in', ids)], context=context)
        emp_ids = [
            l.employee_id.id for l in training_line_pool.browse(
                cr, uid, line_ids, context=context)
        ]
        self.pool.get('hr.employee').write(cr,
                                           uid,
                                           emp_ids, {'training': False},
                                           context=context)

        ####
        training_eva_obj = self.pool.get('training.eva')
        #training_eva_ids = training_eva_obj.search(cr, uid, [('template','=', True)], context=context)
        #close for something
        training_eva_id = self.read(cr, uid, ids[0],
                                    context=context)['eva_template_id'][0]

        emp_dict = [{
            'name': l.training_employee_id.course_id.name,
            'emp_id': l.employee_id.id,
            'place': l.training_employee_id.training_place,
            'from': l.training_employee_id.start_date,
            'to': l.training_employee_id.end_date,
            'trainer': l.training_employee_id.partner_id.name,
            'template': False,
            'user_id': l.employee_id.user_id.id,
            'course_id': ids[0]
        } for l in training_line_pool.browse(
            cr, uid, line_ids, context=context)]

        for emp in emp_dict:
            new_id = training_eva_obj.copy(cr,
                                           uid,
                                           training_eva_id,
                                           emp,
                                           context=context)
            #for email perpuse
            context['action'] = 'hr_ntc_custom.training_eva_form_action_menud'

            send_mail(training_eva_obj,
                      cr,
                      uid,
                      new_id,
                      '',
                      unicode(' طلب تقييم ', 'utf-8'),
                      unicode(' طلب تقييم في', 'utf-8'),
                      user=[emp['user_id']],
                      context=context or {})

        return self.write(cr, uid, ids, {'state': 'done'}, context=context)
Exemple #6
0
 def mail(self, cr, uid, ids, context=None):
     send_mail(self,
               cr,
               uid,
               ids[0],
               'attendance_ntc.group_attendace_direct_manager',
               unicode(' إشعار الحضور', 'utf-8'),
               unicode(' يرجى اﻹطلاع على سجلات الحضور', 'utf-8'),
               context=context)
Exemple #7
0
 def tender_GM_approve2(self, cr, uid, ids, context=None):
     send_mail(self,
               cr,
               uid,
               ids[0],
               'base_custom.group_account_general_manager',
               "New Purchase Requisition",
               self.message,
               user=False,
               department=False,
               context=context)
     self.write(cr, uid, ids, {'state': 'GM_approve2'})
     return True
Exemple #8
0
 def tender_approve(self, cr, uid, ids, context=None):
     send_mail(self,
               cr,
               uid,
               ids[0],
               '',
               "New Purchase Requisition",
               self.message,
               user=self.get_manager_id(cr, uid, ids, uid),
               department=False,
               context=context)
     self.write(cr, uid, ids, {'state': 'approve'})
     return True
Exemple #9
0
    def check_manager_email(self, cr, uid, ids, context=None):
        """
            Method that send mail notification
        """
        # just to use the common method dep_manager_user() in model the 'hr.employee.substitution' to get manager user_id
        emp_sub_obj = self.pool.get('hr.employee.substitution')
        for h in self.browse(cr, uid, ids, context=context):
            if h.state == 'completed' :
                group = False
                dep_cat = h.department_id.cat_id
                if dep_cat.category_type == 'section':
                    department_id = h.department_id.parent_id.parent_id.id
                else:
                    department_id =  h.department_id.parent_id.id

                manager_user_id = emp_sub_obj.dep_manager_user(cr, uid, ids, {'department_id':department_id}, context=context)
                send_mail(self, cr, uid, ids[0], group,u'تصديق مأمورية'.encode('utf-8'), 
                    u'هناك سجل مأمورية في انتظار تصديق مدير الادارة العامة'.encode('utf-8'), 
                    [manager_user_id[0]['user_id']] ,context=context)
            if h.state == 'validated' :
                send_mail(self, cr, uid, ids[0], 'base_custom.group_general_hr_manager',
                    u'تصديق مأمورية و نثرية'.encode('utf-8'), u'هناك سجل مأمورية في انتظار تصديق مدير الادارة العامة للموارد البشرية و المالية'.encode('utf-8'),
                     context=context)
            if h.state == 'hr_approved' :
                send_mail(self, cr, uid, ids[0], 'purchase_ntc.group_internal_auditor',u'تصديق بدل مأمورية'.encode('utf-8'), u'هناك سجل مأمورية في انتظار تصديق المراجع لحساب بدل المأمورية'.encode('utf-8'), context=context)
            if h.state == 'reviewed' :
                send_mail(self, cr, uid, ids[0], 'base.group_hr_manager',u'تصديق و ترحيل بدل المامورية'.encode('utf-8'), u'هناك سجل مأمورية في انتظار تصديق مدير الموارد البشرية'.encode('utf-8'), context=context)
Exemple #10
0
 def tender_confirm(self, cr, uid, ids, context=None):
     super(purchase_requisition, self).tender_confirm(cr,
                                                      uid,
                                                      ids,
                                                      context=context)
     send_mail(self,
               cr,
               uid,
               ids[0],
               '',
               "New Purchase Requisition",
               self.message,
               user=self.get_manager_id(cr, uid, ids, uid),
               department=False,
               context=context)
     return True
Exemple #11
0
    def commite_confirm(self, cr, uid, ids, context=None):
        """ Function For Change Order State into commite_confirm """

        for rec in self.browse(cr, uid, ids):
            if rec.purchase_ids:
                for quote in rec.purchase_ids:
                    if quote.state == 'budget_approved':
                        self.pool.get('purchase.order').action_invoice_create(
                            cr, uid, [quote.id], context=context)

            self.write(cr, uid, ids, {'state': 'commite_confirm'})
        send_mail(self,
                  cr,
                  uid,
                  ids[0],
                  'purchase_ntc.group_commite_members_manager',
                  "New Purchase Requisition",
                  self.message,
                  user=False,
                  department=False,
                  context=context)
        return True
Exemple #12
0
    def write(self, cr, uid, ids, vals, context=None):
        """
        Method thats overwrite the write method and send email to the alternative employee

        @param vals: Values that have been entered
        @return: Supper copy Method 
        """

        write_boolean = super(granted_rights_order, self).write(cr, uid, ids, vals, context=context)
        rec = self.browse(cr, uid, ids, context=context)[0]
        
        
        ## to send notification
        if vals.has_key('state') and vals['state'] == 'granted' :
            group = False
            text = u'تم نقل صلاحيات الموظف  '.encode('utf-8') + (rec.employee_donor.name).encode('utf-8') + u' إليك للفترة من '.encode('utf-8') 
            text += str(rec.start_grant_date).encode('utf-8') + u' إلى '.encode('utf-8') + str(rec.end_grant_date).encode('utf-8') + u' وذلك لعدم توفره في هذه الفترة'.encode('utf-8')
            #text = text.encode('utf-8')
            send_mail(self, cr, uid, ids[0], group,u'الموظف البديل'.encode('utf-8'), 
                    text, 
                    [rec.employee_candidate.user_id.id] ,context=context)
            
        return write_boolean
Exemple #13
0
    def back_to_quatations_entry(self, cr, uid, ids, context=None):
        """ Back To Quatations Entry """

        for rec in self.browse(cr, uid, ids):
            if not rec.purchase_ids:
                raise osv.except_osv(_('Error!'),
                                     _('The Order havent Quotations .... '))
            for quote in rec.purchase_ids:

                self.pool.get('purchase.order').action_cancel_draft(
                    cr, uid, [quote.id], context=context)
            send_mail(
                self,
                cr,
                uid,
                ids[0],
                'purchase_ntc.group_commite_members_manager',
                "Purchase Requisition Returned from Internal Auditor For Correction",
                self.message,
                user=False,
                department=False,
                context=context)
            return True
Exemple #14
0
    def test_roof(self, cr, uid, ids, context=None):
        wf_service = netsvc.LocalService('workflow')
        total = 0.0
        limite = self.pool.get('purchase.config.settings').get_limit_amount(
            cr, uid, ids)
        #requisition_pool = self.pool.get('purchase.requisition')
        for requisition in self.browse(cr, uid, ids, context={}):

            for purchase in requisition.purchase_ids:
                total += purchase.amount_total

                if total < limite:
                    send_mail(
                        self,
                        cr,
                        uid,
                        ids[0],
                        'base_custom.group_general_hr_manager',
                        "Purchase Requisition After Entry The Quotations",
                        self.message,
                        user=False,
                        department=False,
                        context=context)
                    return False
                    #wf_service.trg_validate(uid, 'purchase.requisition', requisition_id.id, 'tender_HRM_approve2', cr)

        send_mail(self,
                  cr,
                  uid,
                  ids[0],
                  'base_custom.group_account_general_manager',
                  "Purchase Requisition After Entry The Quotations",
                  self.message,
                  user=False,
                  department=False,
                  context=context)
        return True