61 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
| # -*- coding: utf-8 -*-
 | |
| 
 | |
| ##############################################################################
 | |
| #
 | |
| #    TicTac allows several HR functionalities. This program bases on Odoo v. 8. Copyright
 | |
| #    (C) 2018 ITIS www.itis.de commissioned by Wikimedia Deutschland e.V.
 | |
| #
 | |
| #    This program is free software: you can redistribute it and/or modify it under the
 | |
| #    terms of the GNU Affero General Public License as published by the Free Software
 | |
| #    Foundation, either version 3 of the License, or (at your option) any later version.
 | |
| #
 | |
| #    This program is distributed in the hope that it will be useful, but WITHOUT ANY
 | |
| #    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 | |
| #    PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
 | |
| #
 | |
| #    You should have received a copy of the GNU Affero General Public License along with
 | |
| #    this program. If not, see <https://www.gnu.org/licenses/>.
 | |
| #
 | |
| ##############################################################################
 | |
| 
 | |
| from openerp import models, api, fields, _, osv
 | |
| 
 | |
| class SignInTask(models.TransientModel):
 | |
| 
 | |
|     _name = "sign.in.task"
 | |
| 
 | |
|     analytic_account_id = fields.Many2one("account.analytic.account", "Analytic Account")
 | |
|     service_desc_id = fields.Many2one('service.description',string="Service Desc")
 | |
|     emp_comment = fields.Text("Comment")
 | |
| 
 | |
|     @api.multi
 | |
|     def set_task(self):
 | |
|         return True
 | |
| 
 | |
|     @api.multi
 | |
|     def do_entry_timesheet(self):
 | |
|         timesheet_id = False
 | |
|         if self.analytic_account_id.id:
 | |
|             timesheet_obj = self.pool.get('hr.analytic.timesheet')
 | |
|             cr = self.env.cr
 | |
|             uid = self.env.uid
 | |
|             emp_obj = self.env['hr.employee']
 | |
|             hour = 0.0
 | |
|             res = timesheet_obj.default_get(cr, uid, ['product_id','product_uom_id'])
 | |
| 
 | |
|             if not res['product_uom_id']:
 | |
|                 raise osv.except_osv(_('User Error!'), _('Please define cost unit for this employee.'))
 | |
|             up = timesheet_obj.on_change_unit_amount(cr, uid, False, res['product_id'], hour,False, res['product_uom_id'])['value']
 | |
|             res['name'] = "From Time Tracker"
 | |
|             res['account_id'] = self.analytic_account_id.id
 | |
|             res['unit_amount'] = hour
 | |
|             res['service_desc_id'] = self.service_desc_id.id
 | |
|             res['emp_comment'] = self.emp_comment
 | |
|             emp_journal = emp_obj.search([('user_id', '=', self.env.uid)]).journal_id
 | |
|             res['journal_id'] = emp_journal and emp_journal.id or False
 | |
|             res.update(up)
 | |
|             up = timesheet_obj.on_change_account_id(cr, uid, [], res['account_id']).get('value', {})
 | |
|             res.update(up)
 | |
|             timesheet_id = timesheet_obj.create(cr, uid, res)
 | |
|         return timesheet_id
 |