def __str__(self): billtype = get_value_if_choices( self.bill_type, self.get_field_by_name('bill_type')) if self.num is None: return "%s - %s" % (billtype, get_value_converted(self.date)) else: return "%s %s - %s" % (billtype, self.num_txt, get_value_converted(self.date))
def __init__(self, comp, owner): PrintItem.__init__(self, comp, owner) try: if isinstance(self.comp, XferCompDate): if isinstance(self.comp.value, datetime.date): self.value = self.comp.value else: self.value = datetime.date( *[int(subvalue) for subvalue in re.split(r'[^\d]', six.text_type(self.comp.value))[:3]]) elif isinstance(self.comp, XferCompDateTime): if isinstance(self.comp.value, datetime.datetime): self.value = self.comp.value else: self.value = datetime.datetime( *[int(subvalue) for subvalue in re.split(r'[^\d]', six.text_type(self.comp.value))]) elif isinstance(self.comp, XferCompTime): if isinstance(self.comp.value, datetime.time): self.value = self.comp.value else: self.value = datetime.time( *[int(subvalue) for subvalue in re.split(r'[^\d]', six.text_type(self.comp.value))[:2]]) elif isinstance(self.comp, XferCompSelect): self.value = self.comp.get_value_text() elif isinstance(self.comp, XferCompCheck): self.value = get_value_converted(bool(self.comp.value), True) else: self.value = self.comp.value except Exception as err: logging.getLogger("lucterios.core.print").exception( six.text_type(err)) self.value = six.text_type(self.comp.value) self.value = get_value_converted(self.value, True) self.size_x, self.height = calcul_text_size(self.value) self.height = self.height * 1.1
def generate_account_callfunds(self, call_funds, fiscal_year): for type_call, type_title in self.get_callfunds_list(): calldetails = call_funds.calldetail_set.filter(type_call=type_call) if len(calldetails) > 0: designation = _( 'call of funds "%(type)s" #%(num)d - %(date)s') % { 'num': call_funds.num, 'type': type_title, 'date': get_value_converted(call_funds.date) } new_entry = EntryAccount.objects.create( year=fiscal_year, date_value=call_funds.date, designation=designation, journal_id=3) owner_account_filter = call_funds.supporting.get_third_mask( type_owner=type_call + 1) owner_account = call_funds.owner.third.get_account( fiscal_year, owner_account_filter) total = self._generate_account_callfunds_by_type( new_entry, type_call, calldetails) EntryLineAccount.objects.create(account=owner_account, amount=total, entry=new_entry, third=call_funds.owner.third)
def compute_table_size(self): for header in self.comp.headers: size_cx, size_cy = calcul_text_size( header.descript, 9, 10, "center", True) column = [header.descript, size_cx * self.RATIO] self.size_rows[0] = max(self.size_rows[0], size_cy) row_idx = 0 for record in self.comp.records.values(): while len(self.rows) <= row_idx: self.rows.append([]) while len(self.size_rows) <= (row_idx + 1): self.size_rows.append(0) value = get_value_converted(record[header.name], True) if header.type == 'icon': value = BASE64_PREFIX + value img_size = get_image_size(value) size_x = int(round(img_size[0] * DPI)) size_y = int(round(img_size[1] * DPI)) else: size_x, size_y = calcul_text_size( value, 9, 10, "start", True) self.rows[row_idx].append(six.text_type(value)) self.size_rows[ row_idx + 1] = max(self.size_rows[row_idx + 1], size_y) column[1] = max(column[1], size_x * self.RATIO) row_idx += 1 self.columns.append(column)
def __init__(self, comp, owner): PrintItem.__init__(self, comp, owner) try: if isinstance(self.comp, XferCompDate): if isinstance(self.comp.value, datetime.date): self.value = self.comp.value else: self.value = datetime.date( *[int(subvalue) for subvalue in re.split(r'[^\d]', six.text_type(self.comp.value))[:3]]) elif isinstance(self.comp, XferCompDateTime): if isinstance(self.comp.value, datetime.datetime): self.value = self.comp.value else: self.value = datetime.datetime( *[int(subvalue) for subvalue in re.split(r'[^\d]', six.text_type(self.comp.value))]) elif isinstance(self.comp, XferCompTime): if isinstance(self.comp.value, datetime.time): self.value = self.comp.value else: self.value = datetime.time( *[int(subvalue) for subvalue in re.split(r'[^\d]', six.text_type(self.comp.value))[:2]]) elif isinstance(self.comp, XferCompSelect): self.value = self.comp.get_value_text() elif isinstance(self.comp, XferCompCheck): self.value = get_value_converted(bool(self.comp.value), True) else: self.value = self.comp.value except Exception: getLogger("lucterios.core.print").exception('PrintLabel') self.value = six.text_type(self.comp.value) self.init_label()
def compute_table_size(self): for header in self.comp.headers: size_cx, size_cy = calcul_text_size(header.descript, 9, 10, "center", True) self.size_rows[0] = max(self.size_rows[0], size_cy) self.columns.append([header.descript, size_cx * self.RATIO]) row_idx = 0 for recordid in self.comp.record_ids: record = self.comp.records[recordid] while len(self.rows) <= row_idx: self.rows.append([]) while len(self.size_rows) <= (row_idx + 1): self.size_rows.append(0) hd_idx = 0 for header in self.comp.headers: value = get_value_converted(record[header.name], True) if header.htype == 'icon': value = BASE64_PREFIX + value img_size = get_image_size(value) size_x = int(round(img_size[0] * DPI)) size_y = int(round(img_size[1] * DPI)) else: size_x, size_y = calcul_text_size(value, 9, 10, "start", True) self.rows[row_idx].append(six.text_type(value)) self.columns[hd_idx][1] = max(self.columns[hd_idx][1], size_x * self.RATIO) hd_idx += 1 self.size_rows[row_idx + 1] = max(self.size_rows[row_idx + 1], size_y) row_idx += 1
def get_json_value(self): compjson = [] for key in self.record_ids: record = self.records[key] json_record = {} json_record['id'] = key for header in self.headers: json_record[header.name] = six.text_type(get_value_converted(record[header.name], convert_datetime=False)) for rec_name in record.keys(): if rec_name.startswith('__') and (rec_name not in self.headers): json_record[rec_name] = record[rec_name] compjson.append(json_record) return compjson
def CurrentCallFundsAdding(self, to_create): nb_seq = 0 if Params.getvalue("condominium-mode-current-callfunds") == 0: nb_seq = 4 if Params.getvalue("condominium-mode-current-callfunds") == 1: nb_seq = 12 year = FiscalYear.get_current() calls = CallFunds.objects.filter(date__gte=year.begin, date__lte=year.end, calldetail__type_call=0).distinct() nb_curent = len(calls) if to_create: year = FiscalYear.get_current() date = same_day_months_after(year.begin, int(nb_curent * 12 / nb_seq)) new_call = CallFunds.objects.create( date=date, comment=_( "Call of funds #%(num)d of year from %(begin)s to %(end)s") % { 'num': nb_curent + 1, 'begin': get_value_converted(year.begin), 'end': get_value_converted(year.end) }, status=0) for category in Set.objects.filter(type_load=0, is_active=True): CallDetail.objects.create( set=category, type_call=0, callfunds=new_call, price=category.get_new_current_callfunds(), designation=_("%(type)s - #%(num)d") % { 'type': _('current'), 'num': nb_curent + 1 }) else: return nb_curent < nb_seq
def get_json_value(self): compjson = [] for key in self.record_ids: record = self.records[key] json_record = {} json_record['id'] = key for header in self.headers: json_record[header.name] = six.text_type( get_value_converted(record[header.name], convert_datetime=False)) for rec_name in record.keys(): if rec_name.startswith('__') and (rec_name not in self.headers): json_record[rec_name] = record[rec_name] compjson.append(json_record) return compjson
def get_reading_comp(self, field_name): sub_value = self.item for fieldname in field_name.split('.'): if sub_value is not None: sub_value = getattr(sub_value, fieldname) value = get_value_converted(sub_value, True) dep_field = self.item.get_field_by_name( field_name) if isinstance(dep_field, EmailField): comp = XferCompLinkLabel(field_name) comp.set_link('mailto:' + value) else: comp = XferCompLabelForm(field_name) value = get_value_if_choices(value, dep_field) comp.set_value(value) return comp
def get_reading_comp(self, field_name): sub_value = self.item for fieldname in field_name.split('.'): if sub_value is not None: try: sub_value = getattr(sub_value, fieldname) except ObjectDoesNotExist: getLogger("lucterios.core").exception( "fieldname '%s' not found", fieldname) sub_value = None value = get_value_converted(sub_value, True) dep_field = self.item.get_field_by_name(field_name) if isinstance(dep_field, EmailField): comp = XferCompLinkLabel(field_name) comp.set_link('mailto:' + value) else: comp = XferCompLabelForm(field_name) value = get_value_if_choices(value, dep_field) comp.set_value(value) return comp
def get_reading_comp(self, field_name): sub_value = self.item for fieldname in field_name.split('.'): if sub_value is not None: try: sub_value = getattr(sub_value, fieldname) except ObjectDoesNotExist: getLogger("lucterios.core").exception("fieldname '%s' not found", fieldname) sub_value = None value = get_value_converted(sub_value, True) dep_field = self.item.get_field_by_name( field_name) if isinstance(dep_field, EmailField): comp = XferCompLinkLabel(field_name) comp.set_link('mailto:' + value) else: comp = XferCompLabelForm(field_name) value = get_value_if_choices(value, dep_field) comp.set_value(value) return comp
def documents(self): value = "" for doc in self.current_subscription.docadherent_set.all(): if doc.value: color = "green" else: color = "red" value += "%s: {[font color='%s']}%s{[/font]}{[br/]}" % (six.text_type(doc.document), color, get_value_converted(doc.value, True)) return value
def __str__(self): return "%s %s" % (self.reference, get_value_converted(self.date))
def date_txt(self): if self.event_type == 0: return get_value_converted(self.date) else: return "%s -> %s" % (get_value_converted(self.date), get_value_converted(self.date_end))
def init_label(self): self.value = get_value_converted(self.value, True) self.size_x, self.height = calcul_text_size(self.value) self.height = self.height * 1.1