def fillresponse_body(self): self.get_components("title").colspan = 2 row_id = self.get_max_row() + 1 lbl = XferCompLabelForm('title_exp') lbl.set_value_as_headername(_("Expense")) lbl.set_location(0, row_id, 2) self.add_component(lbl) lbl = XferCompLabelForm('title_rev') lbl.set_value_as_headername(_("Revenue")) lbl.set_location(2, row_id, 2) self.add_component(lbl) row_id = self.get_max_row() self.fill_grid(row_id, self.model, 'budget_revenue', self.model.objects.filter(self.filter & Q(code__regex=current_system_account().get_revenue_mask()))) self.move_components('budget_revenue', 2, 0) self.fill_grid(row_id, self.model, 'budget_expense', self.model.objects.filter(self.filter & Q(code__regex=current_system_account().get_expence_mask()))) self.remove_component('nb_budget_expense') self.remove_component('nb_budget_revenue') resultat_budget = Budget.get_total(self.getparam('year'), self.getparam('cost_accounting')) if abs(resultat_budget) > 0.0001: row_id = self.get_max_row() + 1 lbl = XferCompLabelForm('title_result') if resultat_budget > 0: lbl.set_value_as_name(_('result (profit)')) else: lbl.set_value_as_name(_('result (deficit)')) lbl.set_location(0, row_id) self.add_component(lbl) lbl = XferCompLabelForm('result') lbl.set_value(format_devise(resultat_budget, 5)) lbl.set_location(1, row_id) self.add_component(lbl)
def edit_account_for_line(self, xfer, column, row, debit_rest, credit_rest): num_cpt_txt = xfer.getparam('num_cpt_txt', '') num_cpt = xfer.getparam('num_cpt', 0) lbl = XferCompLabelForm('numCptlbl') lbl.set_location(column, row, 3) lbl.set_value_as_headername(_('account')) xfer.add_component(lbl) edt = XferCompEdit('num_cpt_txt') edt.set_location(column, row + 1, 2) edt.set_value(num_cpt_txt) edt.set_size(20, 25) edt.set_action(xfer.request, xfer.get_action(), close=CLOSE_NO, modal=FORMTYPE_REFRESH) xfer.add_component(edt) sel_val = [] current_account = None if num_cpt_txt != '': year = FiscalYear.get_current(xfer.getparam('year')) sel_val, current_account = year.get_account_list(num_cpt_txt, num_cpt) sel = XferCompSelect('num_cpt') sel.set_location(column + 2, row + 1, 1) sel.set_select(sel_val) sel.set_size(20, 150) sel.set_action(xfer.request, xfer.get_action(), close=CLOSE_NO, modal=FORMTYPE_REFRESH) if current_account is not None: sel.set_value(current_account.id) self.item.account = current_account self.item.set_montant( float(xfer.getparam('debit_val', 0.0)), float(xfer.getparam('credit_val', 0.0))) if abs(self.item.amount) < 0.0001: self.item.set_montant(debit_rest, credit_rest) xfer.add_component(sel) return lbl, edt
def _create_custom_for_profit(self, year, custom, val_profit): from lucterios.framework.xfercomponents import XferCompImage, XferCompLabelForm, XferCompSelect from diacamma.accounting.models import format_devise if val_profit > 0.0001: type_profit = 'bénéfice' else: type_profit = 'déficite' img = XferCompImage("img") img.set_location(0, 0) img.set_value(get_icon_path("diacamma.accounting/images/account.png")) custom.add_component(img) lbl = XferCompLabelForm("title") lbl.set_value_as_headername("Bénéfices et Pertes") lbl.set_location(1, 0) custom.add_component(lbl) text = "{[i]}Vous avez un %s de %s.{[br/]}Vous devez definir sur quel compte l'affecter.{[br/]}{[/i]}" % ( type_profit, format_devise(val_profit, 4)) text += "{[br/]}En validant, vous commencerez '%s'{[br/]}{[br/]}{[i]}{[u]}Attention:{[/u]} Votre report à nouveau doit être totalement fait.{[/i]}" % six.text_type( year) lbl = XferCompLabelForm("info") lbl.set_value(text) lbl.set_location(0, 1, 2) custom.add_component(lbl) sel_cmpt = [] for account in year.chartsaccount_set.all().filter(code__startswith='10').order_by('code'): sel_cmpt.append((account.id, six.text_type(account))) sel = XferCompSelect("profit_account") sel.set_select(sel_cmpt) sel.set_location(1, 2) custom.add_component(sel) return custom
def conf_wizard_member(wizard_ident, xfer): if isinstance(wizard_ident, list) and (xfer is None): wizard_ident.append(("member_season", 11)) wizard_ident.append(("member_subscriptiontype", 12)) wizard_ident.append(("member_category", 13)) wizard_ident.append(("member_params", 14)) elif (xfer is not None) and (wizard_ident == "member_season"): xfer.add_title(_("Diacamma member"), _('Season'), _('Configuration of season')) xfer.fill_grid(5, Season, "season", Season.objects.all()) elif (xfer is not None) and (wizard_ident == "member_subscriptiontype"): xfer.add_title(_("Diacamma member"), _('Subscriptions'), _('Configuration of subscription')) xfer.fill_grid(15, SubscriptionType, "subscriptiontype", SubscriptionType.objects.all()) xfer.get_components("subscriptiontype").colspan = 6 fill_params(xfer, [ "member-subscription-mode", "member-connection", "member-family-type", "member-tax-receipt", "member-subscription-message" ], True) elif (xfer is not None) and (wizard_ident == "member_category"): xfer.add_title(_("Diacamma member"), _("Categories"), _('Configuration of categories')) xfer.new_tab(_('Parameters')) fill_params(xfer, [ "member-team-enable", "member-team-text", "member-activite-enable", "member-activite-text", "member-age-enable" ], True) if Params.getvalue("member-age-enable") == 1: xfer.new_tab(_('Age')) xfer.fill_grid(1, Age, "age", Age.objects.all()) if Params.getvalue("member-team-enable") == 1: xfer.new_tab(Params.getvalue("member-team-text")) xfer.fill_grid(1, Team, "team", Team.objects.all()) if Params.getvalue("member-activite-enable") == 1: xfer.new_tab(Params.getvalue("member-activite-text")) xfer.fill_grid(1, Activity, "activity", Activity.objects.all()) grid = xfer.get_components("activity") if hasattr(settings, "DIACAMMA_MAXACTIVITY") and (getattr( settings, "DIACAMMA_MAXACTIVITY") <= grid.nb_lines): lbl = XferCompLabelForm("limit_activity") lbl.set_color('red') lbl.set_value_as_headername( _('You have the maximum of activities!')) lbl.set_location(grid.col, xfer.get_max_row() + 1) xfer.add_component(lbl) grid.delete_action("diacamma.member/activityAddModify", True) elif (xfer is not None) and (wizard_ident == "member_params"): xfer.add_title(_("Diacamma member"), _('Parameters'), _('Configuration of main parameters')) fill_params(xfer, [ "member-licence-enabled", "member-filter-genre", "member-numero", "member-birth", "member-fields" ], True)
def fill_header(self): img = XferCompImage('img') img.set_value(self.icon_path()) img.set_location(0, 0, 1, 2) self.add_component(img) select_year = self.getparam('fiscal_year') lbl = XferCompLabelForm('lbl_title') lbl.set_value_as_headername(_('Statistics in date of %s') % formats.date_format(date.today(), "DATE_FORMAT")) lbl.set_location(1, 0, 2) self.add_component(lbl) self.item.fiscal_year = FiscalYear.get_current(select_year) self.fill_from_model(1, 1, False, ['fiscal_year']) fiscal_year = self.get_components('fiscal_year') fiscal_year.set_needed(True) fiscal_year.set_action(self.request, self.get_action(), close=CLOSE_NO, modal=FORMTYPE_REFRESH)
def fillresponse_body(self): if Params.getvalue("member-age-enable") == 1: self.new_tab(_('Age')) self.fill_grid(0, Age, "age", Age.objects.all()) if Params.getvalue("member-team-enable") == 1: show_only_enabled_team = self.getparam('show_only_enabled_team', True) self.new_tab(Params.getvalue("member-team-text")) if show_only_enabled_team: team_list = Team.objects.filter(unactive=False) else: team_list = Team.objects.all() self.fill_grid(0, Team, "team", team_list) if show_only_enabled_team: grid = self.get_components('team') grid.delete_header('unactive') check = XferCompCheck('show_only_enabled_team') check.set_location(0, 2) check.set_value(show_only_enabled_team) check.description = _('show only enabled team') check.set_action(self.request, self.get_action(), modal=FORMTYPE_REFRESH, close=CLOSE_NO) self.add_component(check) if Params.getvalue("member-activite-enable") == 1: self.new_tab(Params.getvalue("member-activite-text")) self.fill_grid(0, Activity, "activity", Activity.objects.all()) grid = self.get_components("activity") if WrapAction.is_permission(self.request, 'CORE.add_parameter'): grid.add_action(self.request, ObjectMerge.get_action(_("Merge"), "images/clone.png"), close=CLOSE_NO, unique=SELECT_MULTI, params={ 'modelname': 'member.Activity', 'field_id': 'activity' }) if hasattr(settings, "DIACAMMA_MAXACTIVITY") and (getattr( settings, "DIACAMMA_MAXACTIVITY") <= grid.nb_lines): lbl = XferCompLabelForm("limit_activity") lbl.set_color('red') lbl.set_value_as_headername( _('You have the maximum of activities!')) lbl.set_location(grid.col, self.get_max_row() + 1) self.add_component(lbl) grid.delete_action("diacamma.member/activityAddModify", True)
def fillresponse(self): XferListEditor.fillresponse(self) if hasattr(settings, "DIACAMMA_MAXOWNER"): grid = self.get_components("owner") if getattr(settings, "DIACAMMA_MAXOWNER") <= grid.nb_lines: grid.delete_action("diacamma.condominium/ownerAdd") lbl = XferCompLabelForm("limit_activity") lbl.set_color('red') lbl.set_value_as_headername(_('You have the maximum of owners!')) lbl.set_location(grid.col, self.get_max_row() + 1) self.add_component(lbl) self.new_tab(_("Property lots")) self.fill_grid(self.get_max_row(), PropertyLot, 'propertylot', PropertyLot.objects.all()) lbl = XferCompLabelForm("total_lot") lbl.set_location(1, 5) lbl.set_value(_("Total of lot parts: %d") % PropertyLot.get_total_part()) self.add_component(lbl)
def summary_member(xfer): is_right = WrapAction.is_permission(xfer.request, 'member.change_adherent') try: current_adherent = Adherent.objects.get(user=xfer.request.user) except: current_adherent = None if is_right or (current_adherent is not None): row = xfer.get_max_row() + 1 lab = XferCompLabelForm('membertitle') lab.set_value_as_infocenter(_("Adherents")) lab.set_location(0, row, 4) xfer.add_component(lab) if current_adherent is not None: ident = [] if Params.getvalue("member-numero"): ident.append("%s %s" % (_('numeros'), current_adherent.num)) if Params.getvalue("member-licence-enabled"): current_license = current_adherent.license if current_license is not None: ident.append(current_license) row = xfer.get_max_row() + 1 lab = XferCompLabelForm('membercurrent') lab.set_value_as_header("{[br/]}".join(ident)) lab.set_location(0, row, 4) xfer.add_component(lab) if is_right: row = xfer.get_max_row() + 1 try: current_season = Season.current_season() dateref = current_season.date_ref lab = XferCompLabelForm('memberseason') lab.set_value_as_headername(six.text_type(current_season)) lab.set_location(0, row + 1, 4) xfer.add_component(lab) nb_adh = len(Adherent.objects.filter(Q(subscription__begin_date__lte=dateref) & Q( subscription__end_date__gte=dateref) & Q(subscription__status=2))) lab = XferCompLabelForm('membernb') lab.set_value_as_header(_("Active adherents: %d") % nb_adh) lab.set_location(0, row + 2, 4) xfer.add_component(lab) nb_adhcreat = len(Adherent.objects.filter( Q(subscription__begin_date__lte=dateref) & Q(subscription__end_date__gte=dateref) & Q(subscription__status=1))) if nb_adhcreat > 0: lab = XferCompLabelForm('memberadhcreat') lab.set_value_as_header(_("No validated adherents: %d") % nb_adhcreat) lab.set_location(0, row + 3, 4) xfer.add_component(lab) nb_adhwait = len(Adherent.objects.filter( Q(subscription__begin_date__lte=dateref) & Q(subscription__end_date__gte=dateref) & Q(subscription__status=0))) if nb_adhwait > 0: lab = XferCompLabelForm('memberadhwait') lab.set_value_as_header(_("Adherents waiting moderation: %d") % nb_adhwait) lab.set_location(0, row + 4, 4) xfer.add_component(lab) except LucteriosException as lerr: lbl = XferCompLabelForm("member_error") lbl.set_value_center(six.text_type(lerr)) lbl.set_location(0, row + 1, 4) xfer.add_component(lbl) if is_right or (current_adherent is not None): lab = XferCompLabelForm('member') lab.set_value_as_infocenter("{[hr/]}") lab.set_location(0, row + 5, 4) xfer.add_component(lab) return True else: return False
def fillresponse(self, season): if season is None: working_season = Season.current_season() else: working_season = Season.objects.get(id=season) img = XferCompImage('img') img.set_value(self.icon_path()) img.set_location(0, 0) self.add_component(img) sel = XferCompSelect('season') sel.set_needed(True) sel.set_select_query(Season.objects.all()) sel.set_value(working_season.id) sel.set_location(1, 0) sel.description = _('season') sel.set_action(self.request, self.get_action('', ''), modal=FORMTYPE_REFRESH, close=CLOSE_NO) self.add_component(sel) stat_result = Degree.get_statistic(working_season) if len(stat_result) == 0: lab = XferCompLabelForm('lbl_season') lab.set_color('red') lab.set_value_as_infocenter(_('no degree!')) lab.set_location(1, 1, 2) self.add_component(lab) else: total = 0 pos_y = 2 for activity, sublist in stat_result: subtotal = 0 if activity is not None: lab = XferCompLabelForm("lblactivite_%d" % activity.id) lab.set_italic() lab.set_value(six.text_type(activity)) lab.set_location(0, pos_y, 3) self.add_component(lab) pos_y += 1 for degree_name, val in sublist: lab = XferCompLabelForm("title_%d" % pos_y) lab.set_value(degree_name) lab.set_location(1, pos_y) self.add_component(lab) lab = XferCompLabelForm("val_%d" % pos_y) lab.set_value(six.text_type(val)) lab.set_location(2, pos_y) self.add_component(lab) subtotal += val total += val pos_y += 1 if activity is not None: lab = XferCompLabelForm("lblsubtotal_%d" % activity.id) lab.set_value_as_header(_("Total")) lab.set_location(1, pos_y) self.add_component(lab) lab = XferCompLabelForm("subtotal_%d" % activity.id) lab.set_italic() lab.set_value(six.text_type(subtotal)) lab.set_location(2, pos_y) self.add_component(lab) pos_y += 1 lab = XferCompLabelForm("lbltotal") lab.set_value_as_headername(_("Total")) lab.set_location(1, pos_y) self.add_component(lab) lab = XferCompLabelForm("total") lab.set_value_as_name(six.text_type(total)) lab.set_location(2, pos_y) self.add_component(lab) self.add_action(DegreeStatisticPrint.get_action( TITLE_PRINT, "images/print.png"), close=CLOSE_NO, params={'classname': self.__class__.__name__}) self.add_action(WrapAction(TITLE_CLOSE, 'images/close.png'))
def fillresponse(self, season): if season is None: working_season = Season.current_season() else: working_season = Season.objects.get(id=season) img = XferCompImage('img') img.set_value(self.icon_path()) img.set_location(0, 0) self.add_component(img) lab = XferCompLabelForm('lbl_season') lab.set_value_as_name(_('season')) lab.set_location(1, 0) self.add_component(lab) sel = XferCompSelect('season') sel.set_needed(True) sel.set_select_query(Season.objects.all()) sel.set_value(working_season.id) sel.set_location(2, 0) sel.set_action(self.request, self.get_action('', ''), modal=FORMTYPE_REFRESH, close=CLOSE_NO) self.add_component(sel) stat_result = Degree.get_statistic(working_season) if len(stat_result) == 0: lab = XferCompLabelForm('lbl_season') lab.set_color('red') lab.set_value_as_infocenter(_('no degree!')) lab.set_location(1, 1, 2) self.add_component(lab) else: total = 0 pos_y = 2 for activity, sublist in stat_result: subtotal = 0 if activity is not None: lab = XferCompLabelForm("lblactivite_%d" % activity.id) lab.set_italic() lab.set_value(six.text_type(activity)) lab.set_location(0, pos_y, 3) self.add_component(lab) pos_y += 1 for degree_name, val in sublist: lab = XferCompLabelForm("title_%d" % pos_y) lab.set_value(degree_name) lab.set_location(1, pos_y) self.add_component(lab) lab = XferCompLabelForm("val_%d" % pos_y) lab.set_value(six.text_type(val)) lab.set_location(2, pos_y) self.add_component(lab) subtotal += val total += val pos_y += 1 if activity is not None: lab = XferCompLabelForm("lblsubtotal_%d" % activity.id) lab.set_value_as_header(_("Total")) lab.set_location(1, pos_y) self.add_component(lab) lab = XferCompLabelForm("subtotal_%d" % activity.id) lab.set_italic() lab.set_value(six.text_type(subtotal)) lab.set_location(2, pos_y) self.add_component(lab) pos_y += 1 lab = XferCompLabelForm("lbltotal") lab.set_value_as_headername(_("Total")) lab.set_location(1, pos_y) self.add_component(lab) lab = XferCompLabelForm("total") lab.set_value_as_name(six.text_type(total)) lab.set_location(2, pos_y) self.add_component(lab) self.add_action(DegreeStatisticPrint.get_action(TITLE_PRINT, "images/print.png"), close=CLOSE_NO, params={'classname': self.__class__.__name__}) self.add_action(WrapAction(TITLE_CLOSE, 'images/close.png'))