class appointment (osv.osv): _name = "medical.appointment" _inherit = "medical.appointment" def copy(self, cr, uid, id, default=None, context={}): default.update({'validity_status':'tobe'}) return super(appointment,self).copy(cr, uid, id, default, context) def onchange_appointment_date(self, cr, uid, ids, apt_date): if apt_date: validity_date = datetime.datetime.fromtimestamp(time.mktime(time.strptime(apt_date,"%Y-%m-%d %H:%M:%S"))) validity_date = validity_date+datetime.timedelta(days=7) v = {'appointment_validity_date':str(validity_date)} return {'value': v} return {} _columns = { 'no_invoice' : fields.boolean ('Invoice exempt'), 'appointment_validity_date' : fields.datetime ('Validity Date'), 'validity_status' : fields.selection([('invoiced','Invoiced'),('tobe','To be Invoiced')],'Status'), 'consultations' : fields.many2one ('product.product', 'Consultation Service', domain=[('type', '=', "service")], help="Consultation Services", required=True), } _defaults = { 'validity_status': lambda *a: 'tobe', 'no_invoice': lambda *a: True }
class hr_accrual_job(models.Model): _name = 'hr.policy.line.accrual.job' _description = 'Accrual Policy Line Job Run' _columns = { 'name': fields.date('Date', required=True, readonly=True), 'exec': fields.datetime('Execution Date/Time', required=True, readonly=True), 'policy_line_id': fields.many2one('hr.policy.line.accrual', 'Accrual Policy Line', required=True, readonly=True), 'accrual_line_ids': fields.many2many('hr.accrual.line', 'hr_policy_job_accrual_line_rel', 'job_id', 'accrual_line_id', 'Accrual Lines', readonly=True), 'holiday_ids': fields.many2many('hr.holidays', 'hr_policy_job_holiday_rel', 'job_id', 'holiday_id', 'Leave Allocation Requests', readonly=True), }
class pos_stock_inventory_categ(osv.osv): _name = 'pos.stock.inventory.categ' _description = 'Reporte Inventario por Categoria' _columns = { 'report_lines': fields.one2many('pos.stock.inventory.categ.line', 'report_id', 'Lineas del Inventario'), 'company_id': fields.many2one('res.company', 'Compañia'), 'date': fields.datetime('Fecha Consulta'), 'name': fields.char('Descripcion del Inventario', size=128), 'location_id': fields.many2one('stock.location', 'Ubicacion Inventariada'), 'user_id': fields.many2one('res.users', 'Usuario Audito'), } def _get_company(self, cr, uid, context=None): user_br = self.pool.get('res.users').browse(cr, uid, uid, context) company_id = user_br.company_id.id return company_id def _get_date(self, cr, uid, context=None): date = datetime.now().strftime('%Y-%m-%d') date_now = datetime.now().strftime('%Y-%m-%d %H:%M:%S') return date_now # start = datetime.strptime(date_now, "%Y-%m-%d %H:%M:%S") # user = self.pool.get('res.users').browse(cr, uid, uid) # tz = pytz.timezone(user.tz) if user.tz else pytz.utc # start = pytz.utc.localize(start).astimezone(tz) # convert start in user's timezone # tz_date = start.strftime("%Y-%m-%d %H:%M:%S") # return tz_date def _get_uid(self, cr, uid, context=None): return uid _defaults = { 'company_id': _get_company, 'date': _get_date, 'user_id': _get_uid, } _order = 'id desc'
class surgery(osv.osv): _name = "medical.surgery" _description = "Surgery" _columns = { 'name': fields.many2one( 'medical.procedure', 'Code', help= "Procedure Code, for example ICD-10-PCS Code 7-character string"), 'pathology': fields.many2one('medical.pathology', 'Base condition', help="Base Condition / Reason"), 'classification': fields.selection([ ('o', 'Optional'), ('r', 'Required'), ('u', 'Urgent'), ], 'Surgery Classification', select=True), 'surgeon': fields.many2one('medical.physician', 'Surgeon', help="Surgeon who did the procedure"), 'date': fields.datetime('Date of the surgery'), 'age': fields.char( 'Patient age', size=3, help='Patient age at the moment of the surgery. Can be estimative' ), 'description': fields.char('Description', size=128), 'extra_info': fields.text('Extra Info'), }
class produce_sale_price_history(osv.osv): """ Keep track of the ``product.template`` sale prices as they are changed. """ _name = 'product.sale.price.history' _rec_name = 'datetime' _order = 'datetime desc' _columns = { 'company_id': fields.many2one('res.company', required=True), 'product_template_id': fields.many2one('product.template', 'Product Template', required=True, ondelete='cascade'), 'datetime': fields.datetime('Historization Time'), 'list_price': fields.float('Historized list price'), } def _get_default_company(self, cr, uid, context=None): if 'force_company' in context: return context['force_company'] else: company = self.pool['res.users'].browse(cr, uid, uid, context=context).company_id return company.id if company else False _defaults = { 'datetime': fields.datetime.now, 'company_id': _get_default_company, }
class hr_payroll_register(models.Model): _name = 'hr.payroll.register' _columns = { 'name': fields.char('Description', size=256), 'state': fields.selection([ ('draft', 'Draft'), ('close', 'Close'), ], 'Status', select=True, readonly=True), 'date_start': fields.datetime('Date From', required=True, readonly=True, states={'draft': [('readonly', False)]}), 'date_end': fields.datetime('Date To', required=True, readonly=True, states={'draft': [('readonly', False)]}), 'run_ids': fields.one2many('hr.payslip.run', 'register_id', readonly=True, states={'draft': [('readonly', False)]}), 'company_id': fields.many2one('res.company', 'Company'), } _sql_constraints = [ ('unique_name', 'UNIQUE(name)', _('Payroll Register description must be unique.')), ] def _get_default_name(self, cr, uid, context=None): nMonth = datetime.now().strftime('%B') year = datetime.now().year name = _('Payroll for the Month of %s %s' % (nMonth, year)) return name def _get_company(self, cr, uid, context=None): users_pool = self.pool.get('res.users') return users_pool.browse(cr, uid, users_pool.search(cr, uid, [('id', '=', uid)], context=context), context=context)[0].company_id.id _defaults = { 'name': _get_default_name, 'state': 'draft', 'company_id': _get_company, } def action_delete_runs(self, cr, uid, ids, context=None): pool = self.pool.get('hr.payslip.run') ids = pool.search(cr, uid, [('register_id', 'in', ids)], context=context) pool.unlink(cr, uid, ids, context=context) return True
class pos_order_report_jasper(osv.osv): _name = 'pos.order.report.jasper' _description = 'Reporte Detallado de Ventas' _columns = { 'sale_order_ids': fields.one2many('pos.order.report.jasper.line', 'report_id', 'Pedidos de Venta Relacionados'), 'sale_journal_ids': fields.one2many('pos.order.report.journal.line', 'report_id', 'Metodos de Pago'), 'sale_tax_ids': fields.one2many('pos.order.report.tax.line', 'report_id', 'Impuestos'), 'user_ids': fields.many2many('res.users', 'pos_details_report_user_rel2', 'user_id', 'report_id', 'Usuarios'), 'date_start': fields.date('Date Start', required=True), 'date_end': fields.date('Date End', required=True), 'company_id': fields.many2one('res.company', 'Compañia'), 'name': fields.char('Referencia', size=256), 'date': fields.datetime('Fecha Consulta'), 'total_invoiced': fields.float('Total Facturado', digits=(14, 2)), 'total_discount': fields.float('Descuento Total', digits=(14, 2)), 'total_of_the_day': fields.float('Total del dia', digits=(14, 2)), 'total_paid': fields.float('Total Pagado', digits=(14, 2)), 'total_qty': fields.float('Cantidad de Producto', digits=(14, 2)), 'total_sale': fields.float('Total de Ventas', digits=(14, 2)), } def _get_company(self, cr, uid, context=None): user_br = self.pool.get('res.users').browse(cr, uid, uid, context) company_id = user_br.company_id.id return company_id def _get_date(self, cr, uid, context=None): date = datetime.now().strftime('%Y-%m-%d') date_now = datetime.now().strftime('%Y-%m-%d %H:%M:%S') return date_now # start = datetime.strptime(date_now, "%Y-%m-%d %H:%M:%S") # user = self.pool.get('res.users').browse(cr, uid, uid) # tz = pytz.timezone(user.tz) if user.tz else pytz.utc # start = pytz.utc.localize(start).astimezone(tz) # convert start in user's timezone # tz_date = start.strftime("%Y-%m-%d %H:%M:%S") # return tz_date _defaults = { 'company_id': _get_company, 'date': _get_date, } _order = 'id desc'