def assigned_datetime(self, cr, uid, values, context=None): if context is None: context = {} res = {} if 'date_invoice' in values: if values['date_invoice']: date_ts = tools.server_to_local_timestamp( values['date_invoice'], tools.DEFAULT_SERVER_DATETIME_FORMAT, tools.DEFAULT_SERVER_DATETIME_FORMAT, context.get('tz_invoice_mx', 'America/Mexico_City')) now = datetime.datetime.now() time_invoice = datetime.time(now.hour, now.minute, now.second) date_invoice = datetime.datetime.strptime(date_ts, '%Y-%m-%d').date() dt_invoice = datetime.datetime.combine( date_invoice, time_invoice).strftime('%Y/%m/%d %H:%M:%S') res['invoice_datetime'] = dt_invoice if 'invoice_datetime' in values: if values['invoice_datetime']: date_ts = tools.server_to_local_timestamp( values['invoice_datetime'], tools.DEFAULT_SERVER_DATETIME_FORMAT, tools.DEFAULT_SERVER_DATETIME_FORMAT, context.get('tz_invoice_mx', 'America/Mexico_City')) date_invoice = datetime.datetime.strptime( date_ts, '%Y-%m-%d %H:%M:%S').date().strftime('%Y/%m/%d') res['date_invoice'] = date_invoice return res
def action_open(self, cr, uid, ids, context=None): self._logger.debug('FGF stock_location_product ids %s' % ids) self._logger.debug('FGF stock_location_product context %s' % context) if context is None: context = {} res = super(stock_location_product, self).action_open_window(cr, uid, ids, context) if context.get('open') == 'report': mod_obj = self.pool.get('ir.model.data') rep_obj = self.pool.get('ir.actions.report.xml') res1 = mod_obj.get_object_reference(cr, uid, 'c2c_stock_accounting', 'report_print_computed_product') id = res1 and res1[1] or False res.update( rep_obj.read(cr, uid, [id], context=context)[0]) self._logger.debug('FGF stock_location_product res %s' % res) location_products = self.read(cr, uid, ids, ['from_date','to_date','from_date2', 'to_date2', 'adjust_time'], context) self._logger.debug('FGF stock_location_products %s' % location_products) from_date1 = location_products[0]['from_date'] to_date1 = location_products[0]['to_date'] from_date2 = location_products[0]['from_date2'] to_date2 = location_products[0]['to_date2'] format = tools.DEFAULT_SERVER_DATETIME_FORMAT tz = context['tz'] date_local = tools.server_to_local_timestamp(date, format, format, tz) res['context']['local_from_date1'] = '' res['context']['local_to_date1'] = '' res['context']['local_from_date2'] = '' res['context']['local_to_date2'] = '' if from_date1: res['context']['local_from_date1'] = tools.server_to_local_timestamp(from_date1, format, format, tz) if to_date1: res['context']['local_to_date1'] = tools.server_to_local_timestamp(to_date1, format, format, tz) if from_date2: res['context']['local_from_date2'] = tools.server_to_local_timestamp(from_date2, format, format, tz) if to_date2: res['context']['local_to_date2'] = tools.server_to_local_timestamp(to_date2, format, format, tz) res['context']['from_date']= from_date1 res['context']['to_date']= to_date1 res['context']['from_date1']= from_date1 res['context']['to_date1']= to_date1 res['context']['from_date2']= from_date2 res['context']['to_date2']= to_date2 res['context']['location_name']= self.pool.get('stock.location').read(cr, uid, res['context']['location'],['name'])['name'] #res['context']['cr1'] = cr self._logger.debug('FGF stock_location_product res neu %s' % res) return res
def format_date_tz(date, tz=None): if isinstance(date, str): date = datetime.strptime(date, "%Y-%m-%d %H:%M:%S").replace(tzinfo=pytz.utc) if tz is None: tz = pytz.timezone(tools.detect_server_timezone()) f = tools.DEFAULT_SERVER_DATETIME_FORMAT return tools.server_to_local_timestamp(date, f, f, tz)
def _get_date_invoice_tz(self, cr, uid, ids, field_names=None, arg=False, context={}): if not context: context = {} res = {} dt_format = tools.DEFAULT_SERVER_DATETIME_FORMAT tz = context.get('tz_invoice_ve', 'America/Caracas') for invoice in self.browse(cr, uid, ids, context=context): res[invoice.id] = invoice.date_invoice and tools.server_to_local_timestamp( invoice.date_invoice, dt_format, dt_format, tz) or False return res
def _get_date_tz(self, cr, uid, ids, field_names=None, arg=False, context={}): context = context or self.pool['res.users'].context_get(cr, uid) res = {} dt_format = tools.DEFAULT_SERVER_DATETIME_FORMAT tz = context.get('tz', 'UTC') for hr_attendance in self.browse(cr, uid, ids, context=context): res[hr_attendance. id] = hr_attendance.name and tools.server_to_local_timestamp( hr_attendance.name, dt_format, dt_format, tz) or False return res
def onchange_date(self, cr, uid, ids, field_name, adjust_time, time, date, context=None): if adjust_time: format = tools.DEFAULT_SERVER_DATETIME_FORMAT tz = context['tz'] date_local = tools.server_to_local_timestamp(date, format, format, tz) date_local_new = date_local[0:10]+' '+ time server_tz = tools.get_server_timezone() if server_tz != 'UTC': raise osv.except_osv(_('Error'), _('Only UTC server time is currently supported')) # convet to UTC utc = pytz.utc local_tz = pytz.timezone(tz) fmt = '%Y-%m-%d %H:%M:%S' dt = datetime.strptime(date_local_new, fmt) local_dt = local_tz.localize(dt) date_r = utc.normalize(local_dt.astimezone(utc)).strftime(fmt) else: date_r = date result = {'value': { field_name : date_r } } return result
def format_date_tz(date, tz=None): if not date: return 'n/a' f = tools.DEFAULT_SERVER_DATETIME_FORMAT return tools.server_to_local_timestamp(date, f, f, tz)