示例#1
0
def thirdaddon_accounting(item, xfer):
    if WrapAction.is_permission(xfer.request, 'accounting.change_entryaccount'):
        try:
            entry_lines_filter = Q(entrylineaccount__third=item)
            lines_filter = xfer.getparam('lines_filter', 0)
            if lines_filter == 0:
                entry_lines_filter &= Q(year=FiscalYear.get_current())
            elif lines_filter == 1:
                entry_lines_filter &= Q(year=FiscalYear.get_current()) & Q(close=False)
            xfer.new_tab(_('entry of account'))
            lbl = XferCompLabelForm('lbl_lines_filter')
            lbl.set_value_as_name(_('Accounts filter'))
            lbl.set_location(0, 1)
            xfer.add_component(lbl)
            edt = XferCompSelect("lines_filter")
            edt.set_select([(0, _('All entries of current fiscal year')), (1, _(
                'Only no-closed entries of current fiscal year')), (2, _('All entries for all fiscal year'))])
            edt.set_value(lines_filter)
            edt.set_location(1, 1)
            edt.set_action(xfer.request, xfer.get_action(),
                           modal=FORMTYPE_REFRESH, close=CLOSE_NO)
            xfer.add_component(edt)
            entries = EntryAccount.objects.filter(entry_lines_filter)
            link_grid_lines = XferCompGrid('entryaccount')
            link_grid_lines.set_model(entries, EntryAccount.get_default_fields(), xfer)
            link_grid_lines.set_location(0, 2, 2)
            link_grid_lines.add_action(xfer.request, ActionsManage.get_action_url('accounting.EntryAccount', 'OpenFromLine', xfer),
                                       modal=FORMTYPE_MODAL, unique=SELECT_SINGLE, close=CLOSE_NO)
            link_grid_lines.add_action(xfer.request, ActionsManage.get_action_url('accounting.EntryAccount', 'Close', xfer),
                                       modal=FORMTYPE_MODAL, unique=SELECT_MULTI, close=CLOSE_NO)
            link_grid_lines.add_action(xfer.request, ActionsManage.get_action_url('accounting.EntryAccount', 'Link', xfer),
                                       modal=FORMTYPE_MODAL, unique=SELECT_MULTI, close=CLOSE_NO)
            xfer.add_component(link_grid_lines)
        except LucteriosException:
            pass
示例#2
0
文件: editors.py 项目: htwalid/syndic
    def edit(self, xfer):
        set_comp = xfer.get_components('set')
        set_comp.set_select_query(Set.objects.filter(is_active=True))
        xfer.get_components('price').prec = Params.getvalue(
            "accounting-devise-prec")
        old_account = xfer.get_components("expense_account")
        xfer.remove_component("expense_account")
        sel_account = XferCompSelect("expense_account")
        sel_account.description = old_account.description
        sel_account.set_location(old_account.col, old_account.row,
                                 old_account.colspan, old_account.rowspan)
        for item in FiscalYear.get_current().chartsaccount_set.all().filter(
                code__regex=current_system_account().get_expence_mask(
                )).order_by('code'):
            sel_account.select_list.append((item.code, six.text_type(item)))
        sel_account.set_value(self.item.expense_account)
        xfer.add_component(sel_account)

        self.item.year = FiscalYear.get_current()
        btn = XferCompButton('add_account')
        btn.set_location(old_account.col + 1, old_account.row)
        btn.set_is_mini(True)
        btn.set_action(xfer.request,
                       ActionsManage.get_action_url('accounting.ChartsAccount',
                                                    'AddModify', xfer),
                       close=CLOSE_NO,
                       modal=FORMTYPE_MODAL,
                       params={'year': self.item.year.id})
        xfer.add_component(btn)
        xfer.get_components("set").colspan = old_account.colspan + 1
        xfer.get_components("designation").colspan = old_account.colspan + 1
        xfer.get_components("price").colspan = old_account.colspan + 1
示例#3
0
def default_setowner_fr(with_lots=True):
    if Params.getvalue("condominium-old-accounting"):
        create_account(['450'], 0, FiscalYear.get_current())
    else:
        create_account(['4501', '4502', '4503', '4504', '4505'], 0,
                       FiscalYear.get_current())
    create_account(['120', '103', '105'], 2, FiscalYear.get_current())
    create_account(['702'], 3, FiscalYear.get_current())
    set1 = Set.objects.create(name="AAA",
                              budget=1000,
                              revenue_account='701',
                              is_link_to_lots=with_lots,
                              type_load=0)
    _set_budget(set1, '604', 1000)
    set2 = Set.objects.create(name="BBB",
                              budget=100,
                              revenue_account='701',
                              type_load=0)
    _set_budget(set2, '604', 100)
    set3 = Set.objects.create(name="CCC",
                              budget=500,
                              revenue_account='702',
                              type_load=1)
    _set_budget(set3, '604', 500)
    set4 = Set.objects.create(name="OLD",
                              budget=100,
                              revenue_account='702',
                              type_load=1,
                              is_active=False)
    _set_budget(set4, '602', 100)
    _create_owners(set1, set2, set3, set4, with_lots)
    Owner.check_all_account()
示例#4
0
def editbudget_condo(xfer):
    if xfer.getparam('set') is not None:
        cost = xfer.getparam('cost_accounting')
        if cost is not None:
            set_item = Set.objects.get(id=xfer.getparam('set', 0))
            title_cost = xfer.get_components('title_cost')
            xfer.remove_component('title_year')
            year = xfer.getparam('year', 0)
            select_year = XferCompSelect('year')
            select_year.set_location(1, title_cost.row - 1)
            select_year.set_select_query(FiscalYear.objects.all())
            select_year.set_value(year)
            select_year.description = _('year')
            select_year.set_needed(set_item.type_load == Set.TYPELOAD_CURRENT)
            select_year.set_action(xfer.request,
                                   xfer.__class__.get_action(),
                                   close=CLOSE_NO,
                                   modal=FORMTYPE_REFRESH)
            xfer.add_component(select_year)
            btn = XferCompButton('confyear')
            btn.set_location(2, title_cost.row - 1)
            btn.set_action(xfer.request,
                           ActionsManage.get_action_url(
                               FiscalYear.get_long_name(), 'configuration',
                               xfer),
                           close=CLOSE_NO)
            btn.set_is_mini(True)
            xfer.add_component(btn)
            if year != 0:
                current_year = FiscalYear.get_current(year)
                xfer.params['readonly'] = str(
                    current_year.status == FiscalYear.STATUS_FINISHED)
                if set_item.type_load == 0:
                    if len(set_item.setcost_set.filter(
                            year=current_year)) == 0:
                        set_item.create_new_cost(year=current_year.id)
                    setcost_item = set_item.setcost_set.filter(
                        year=current_year)[0]
                else:
                    setcost_item = set_item.setcost_set.filter(year=None)[0]
                cost_item = setcost_item.cost_accounting
                xfer.params['cost_accounting'] = cost_item.id
                title_cost.set_value("{[b]}%s{[/b]} : %s" %
                                     (_('cost accounting'), cost_item))
            else:
                year = None
                xfer.params['readonly'] = 'True'
                cost_item = CostAccounting.objects.get(id=cost)
            if (cost_item.status
                    == CostAccounting.STATUS_OPENED) and not xfer.getparam(
                        'readonly', False):
                set_item.change_budget_product(cost_item, year)
    if xfer.getparam('type_of_account') is not None:
        xfer.params['readonly'] = 'True'
    return
示例#5
0
def default_setowner(with_lots=True):
    def set_partition(setpart, owner, value):
        part = Partition.objects.get(set=setpart, owner=owner)
        part.value = value
        part.save()
    if Params.getvalue("condominium-old-accounting"):
        create_account(['450'], 0, FiscalYear.get_current())
    else:
        create_account(['4501', '4502', '4503', '4504'], 0, FiscalYear.get_current())
    create_account(['120', '103'], 2, FiscalYear.get_current())
    create_account(['702'], 3, FiscalYear.get_current())

    owner1 = Owner.objects.create(third_id=4)
    owner1.editor.before_save(None)
    owner1.save()
    owner2 = Owner.objects.create(third_id=5)
    owner2.editor.before_save(None)
    owner2.save()
    owner3 = Owner.objects.create(third_id=7)
    owner3.editor.before_save(None)
    owner3.save()
    if with_lots:
        PropertyLot.objects.create(num=1, value=45.0, description="Appart A", owner=owner1)
        PropertyLot.objects.create(num=2, value=35.0, description="Appart B", owner=owner2)
        PropertyLot.objects.create(num=3, value=20.0, description="Appart C", owner=owner3)

    set1 = Set.objects.create(
        name="AAA", budget=1000, revenue_account='701', is_link_to_lots=with_lots, type_load=0, cost_accounting_id=2)
    set1.convert_budget()
    set2 = Set.objects.create(
        name="BBB", budget=100, revenue_account='701', type_load=0, cost_accounting_id=0)
    set2.convert_budget()
    set3 = Set.objects.create(
        name="CCC", budget=500, revenue_account='702', type_load=1, cost_accounting_id=0)
    set3.convert_budget()
    set4 = Set.objects.create(
        name="OLD", budget=100, revenue_account='702', type_load=1, cost_accounting_id=0, is_active=False)
    set4.convert_budget()
    if with_lots:
        set1.set_of_lots = PropertyLot.objects.all()
        set1.save()
    else:
        set_partition(setpart=set1, owner=owner1, value=45.0)
        set_partition(setpart=set1, owner=owner2, value=35.0)
        set_partition(setpart=set1, owner=owner3, value=20.0)
    set_partition(setpart=set2, owner=owner1, value=75.0)
    set_partition(setpart=set2, owner=owner2, value=0.0)
    set_partition(setpart=set2, owner=owner3, value=25.0)
    set_partition(setpart=set3, owner=owner1, value=45.0)
    set_partition(setpart=set3, owner=owner2, value=35.0)
    set_partition(setpart=set3, owner=owner3, value=20.0)
    set_partition(setpart=set4, owner=owner1, value=45.0)
    set_partition(setpart=set4, owner=owner2, value=35.0)
    set_partition(setpart=set4, owner=owner3, value=20.0)
示例#6
0
def thirdaddon_invoice(item, xfer):
    if WrapAction.is_permission(xfer.request, 'invoice.change_bill'):
        try:
            FiscalYear.get_current()
            xfer.new_tab(_('Invoice'))
            current_filter, status_filter = _add_bill_filter(xfer, 1)
            current_filter &= Q(third=item)
            bills = Bill.objects.filter(current_filter)
            bill_grid = XferCompGrid('bill')
            bill_grid.set_model(bills, Bill.get_default_fields(status_filter), xfer)
            bill_grid.set_location(0, 2, 2)
            bill_grid.add_action(xfer.request, ActionsManage.get_action_url('invoice.Bill', 'Show', xfer), modal=FORMTYPE_MODAL, unique=SELECT_SINGLE, close=CLOSE_NO)
            xfer.add_component(bill_grid)
        except LucteriosException:
            pass
示例#7
0
    def fillresponse(self):
        current_year = FiscalYear.get_current()
        if self.item.type_load == 0:
            for year_item in FiscalYear.objects.filter(
                    begin__gte=current_year.begin):
                costs = self.item.setcost_set.filter(year=year_item)
                if len(costs) == 0:
                    self.item.create_new_cost(year=year_item.id)

        img = XferCompImage('img')
        img.set_value(self.icon_path())
        img.set_location(0, 0)
        self.add_component(img)
        lbl = XferCompLabelForm('title')
        lbl.set_value_as_title(self.item.name)
        lbl.set_location(1, 0)
        self.add_component(lbl)
        self.fill_grid(
            0, CostAccounting, 'costaccounting',
            CostAccounting.objects.filter(
                setcost__set=self.item).order_by('-setcost__year__begin'))
        grid = self.get_components('costaccounting')
        grid.delete_header("is_default")
        new_actions = []
        grid = self.get_components('costaccounting')
        for grid_action in grid.actions:
            if grid_action[0].icon_path.endswith('images/print.png'):
                new_actions.append(grid_action)
        grid.actions = new_actions
        grid.add_action(self.request,
                        ClassCategoryBudget.get_action(),
                        close=CLOSE_NO,
                        unique=SELECT_SINGLE)
        self.add_action(WrapAction(TITLE_CLOSE, 'images/close.png'))
示例#8
0
 def check_date(self, date):
     info = []
     fiscal_year = FiscalYear.get_current()
     if (fiscal_year.begin.isoformat() > date) or (fiscal_year.end.isoformat() < date):
         info.append(
             six.text_type(_("date not include in current fiscal year")))
     return info
示例#9
0
    def fillresponse_header(self):
        status_filter = self.getparam('status_filter', 0)
        self.params['status_filter'] = status_filter
        date_filter = self.getparam('date_filter', 0)
        self.fieldnames = Expense.get_default_fields(status_filter)
        lbl = XferCompLabelForm('lbl_status_filter')
        lbl.set_value_as_name(_('Filter by type'))
        lbl.set_location(0, 3)
        self.add_component(lbl)
        dep_field = self.item.get_field_by_name('status')
        sel_list = list(dep_field.choices)
        edt = XferCompSelect("status_filter")
        edt.set_select(sel_list)
        edt.set_value(status_filter)
        edt.set_location(1, 3)
        edt.set_action(self.request, self.get_action(), modal=FORMTYPE_REFRESH, close=CLOSE_NO)
        self.add_component(edt)

        lbl = XferCompLabelForm('lbl_date_filter')
        lbl.set_value_as_name(_('Filter by date'))
        lbl.set_location(0, 4)
        self.add_component(lbl)
        edt = XferCompSelect("date_filter")
        edt.set_select([(0, _('only current fiscal year')), (1, _('all expenses'))])
        edt.set_value(date_filter)
        edt.set_location(1, 4)
        edt.set_action(self.request, self.get_action(), modal=FORMTYPE_REFRESH, close=CLOSE_NO)
        self.add_component(edt)

        self.filter = Q(status=status_filter)
        if date_filter == 0:
            current_year = FiscalYear.get_current()
            self.filter &= Q(date__gte=current_year.begin) & Q(date__lte=current_year.end)
示例#10
0
文件: views.py 项目: julienM77/syndic
def finalizeyear_condo(xfer):
    year = FiscalYear.get_current(xfer.getparam('year'))
    if year is not None:
        ventilate = xfer.getparam("ventilate", 0)
        if xfer.observer_name == "core.custom":
            if year.check_to_close() > 0:
                raise LucteriosException(IMPORTANT, _("This fiscal year has entries not closed!"))
            result = year.total_revenue - year.total_expense
            if abs(result) > 0.001:
                row = xfer.get_max_row() + 1
                lbl = XferCompLabelForm('title_condo')
                lbl.set_value(_('This fiscal year has a result no null equals to %s.') % format_devise(result, 5))
                lbl.set_location(0, row, 2)
                xfer.add_component(lbl)
                lbl = XferCompLabelForm('question_condo')
                lbl.set_value(_('Where do you want to ventilate this amount?'))
                lbl.set_location(0, row + 1)
                xfer.add_component(lbl)
                sel_cmpt = [('0', _("For each owner"))]
                for account in year.chartsaccount_set.filter(type_of_account=2).order_by('code'):
                    sel_cmpt.append((account.id, six.text_type(account)))
                sel = XferCompSelect("ventilate")
                sel.set_select(sel_cmpt)
                sel.set_value(ventilate)
                sel.set_location(1, row + 1)
                xfer.add_component(sel)
        elif xfer.observer_name == "core.acknowledge":
            for set_cost in year.setcost_set.filter(year=year, set__is_active=True, set__type_load=0):
                if ventilate == 0:
                    current_system_condo().ventilate_costaccounting(set_cost.set, set_cost.cost_accounting, 1, Params.getvalue("condominium-current-revenue-account"))
                set_cost.cost_accounting.close()
            current_system_condo().ventilate_result(year, ventilate)
示例#11
0
    def fillresponse_header(self):
        status_filter = self.getparam('status_filter', 0)
        self.params['status_filter'] = status_filter
        date_filter = self.getparam('date_filter', 0)
        self.fieldnames = Expense.get_default_fields(status_filter)
        dep_field = self.item.get_field_by_name('status')
        sel_list = list(dep_field.choices)
        edt = XferCompSelect("status_filter")
        edt.set_select(sel_list)
        edt.set_value(status_filter)
        edt.description = _('Filter by type')
        edt.set_location(0, 3)
        edt.set_action(self.request,
                       self.get_action(),
                       modal=FORMTYPE_REFRESH,
                       close=CLOSE_NO)
        self.add_component(edt)

        edt = XferCompSelect("date_filter")
        edt.set_select([(0, _('only current fiscal year')),
                        (1, _('all expenses'))])
        edt.set_value(date_filter)
        edt.set_location(0, 4)
        edt.description = _('Filter by date')
        edt.set_action(self.request,
                       self.get_action(),
                       modal=FORMTYPE_REFRESH,
                       close=CLOSE_NO)
        self.add_component(edt)

        self.filter = Q(status=status_filter)
        if date_filter == 0:
            current_year = FiscalYear.get_current()
            self.filter &= Q(date__gte=current_year.begin) & Q(
                date__lte=current_year.end)
示例#12
0
文件: views.py 项目: Diacamma2/syndic
def finalizeyear_condo(xfer):
    year = FiscalYear.get_current(xfer.getparam('year'))
    if year is not None:
        ventilate = xfer.getparam("ventilate", 0)
        if xfer.observer_name == "core.custom":
            if year.check_to_close() > 0:
                raise LucteriosException(IMPORTANT, _("This fiscal year has entries not closed!"))
            result = year.total_revenue - year.total_expense
            if abs(result) > 0.001:
                row = xfer.get_max_row() + 1
                lbl = XferCompLabelForm('title_condo')
                lbl.set_value(_('This fiscal year has a result no null equals to %s.') % format_devise(result, 5))
                lbl.set_location(0, row, 2)
                xfer.add_component(lbl)
                lbl = XferCompLabelForm('question_condo')
                lbl.set_value(_('Where do you want to ventilate this amount?'))
                lbl.set_location(0, row + 1)
                xfer.add_component(lbl)
                sel_cmpt = [('0', _("For each owner"))]
                for account in year.chartsaccount_set.filter(type_of_account=2).order_by('code'):
                    sel_cmpt.append((account.id, six.text_type(account)))
                sel = XferCompSelect("ventilate")
                sel.set_select(sel_cmpt)
                sel.set_value(ventilate)
                sel.set_location(1, row + 1)
                xfer.add_component(sel)
        elif xfer.observer_name == "core.acknowledge":
            for set_cost in year.setcost_set.filter(year=year, set__is_active=True, set__type_load=0):
                if ventilate == 0:
                    set_cost.set.ventilate_costaccounting(set_cost.cost_accounting, 1,
                                                          Params.getvalue("condominium-current-revenue-account"))
                set_cost.cost_accounting.close()
            ventilate_result(year, ventilate)
示例#13
0
    def fill_header(self):
        self.item = FiscalYear.get_current(self.getparam("year"))
        new_begin = convert_date(self.getparam("begin"), self.item.begin)
        new_end = convert_date(self.getparam("end"), self.item.end)
        if (new_begin >= self.item.begin) and (new_end <= self.item.end):
            self.item.begin = new_begin
            self.item.end = new_end
        img = XferCompImage('img')
        img.set_value(self.current_image())
        if not img.value.startswith('/static/'):
            img.type = 'jpg'
        img.set_location(0, 0, 1, 5)
        self.add_component(img)

        if self.item.last_fiscalyear is not None:
            lbl = XferCompLabelForm('year_1')
            lbl.set_location(1, 0, 3)
            lbl.description = _('year N-1')
            lbl.set_value(six.text_type(self.item.last_fiscalyear))
            self.add_component(lbl)
        select_year = XferCompSelect(self.field_id)
        select_year.set_location(1, 1, 3)
        select_year.set_select_query(FiscalYear.objects.all())
        select_year.description = _('year N')
        select_year.set_value(self.item.id)
        select_year.set_needed(True)
        select_year.set_action(self.request,
                               self.__class__.get_action(),
                               close=CLOSE_NO,
                               modal=FORMTYPE_REFRESH)
        self.add_component(select_year)
        self.filter = Q(entry__year=self.item)
        self.lastfilter = Q(entry__year=self.item.last_fiscalyear)
示例#14
0
def default_setowner_be(with_lots=True):
    create_account(['410000', '410100'], 0, FiscalYear.get_current())
    create_account(['100000', '160000'], 2, FiscalYear.get_current())
    create_account(['700100', '701100', '701200'], 3, FiscalYear.get_current())
    set1 = Set.objects.create(name="AAA",
                              is_link_to_lots=with_lots,
                              type_load=0)
    _set_budget(set1, '602000', 1200)
    set2 = Set.objects.create(name="BBB", type_load=0)
    _set_budget(set2, '602000', 120)
    set3 = Set.objects.create(name="CCC", type_load=1)
    _set_budget(set3, '602000', 600)
    set4 = Set.objects.create(name="OLD", type_load=1, is_active=False)
    _set_budget(set4, '601000', 120)
    _create_owners(set1, set2, set3, set4, with_lots)
    Owner.check_all_account()
示例#15
0
 def get_info_state(self):
     info = []
     if self.status == 0:
         info = Supporting.get_info_state(
             self, current_system_account().get_customer_mask())
     details = self.detail_set.all()
     if len(details) == 0:
         info.append(six.text_type(_("no detail")))
     else:
         for detail in details:
             if detail.article is not None:
                 detail_code = detail.article.sell_account
             else:
                 detail_code = Params.getvalue(
                     "invoice-default-sell-account")
             detail_account = None
             if match(current_system_account().get_revenue_mask(), detail_code) is not None:
                 try:
                     detail_account = ChartsAccount.get_account(
                         detail_code, FiscalYear.get_current())
                 except LucteriosException:
                     break
             if detail_account is None:
                 info.append(
                     six.text_type(_("article has code account unknown!")))
                 break
     try:
         info.extend(self.check_date(self.date.isoformat()))
     except LucteriosException:
         pass
     return "{[br/]}".join(info)
示例#16
0
def summary_accounting(xfer):
    if WrapAction.is_permission(xfer.request, 'accounting.change_chartsaccount'):
        row = xfer.get_max_row() + 1
        lab = XferCompLabelForm('accountingtitle')
        lab.set_value_as_infocenter(_("Bookkeeping"))
        lab.set_location(0, row, 4)
        xfer.add_component(lab)
        try:
            year = FiscalYear.get_current()
            lbl = XferCompLabelForm("accounting_year")
            lbl.set_value_center(six.text_type(year))
            lbl.set_location(0, row + 1, 4)
            xfer.add_component(lbl)
            lbl = XferCompLabelForm("accounting_result")
            lbl.set_value_center(year.total_result_text)
            lbl.set_location(0, row + 2, 4)
            xfer.add_component(lbl)
        except LucteriosException as lerr:
            lbl = XferCompLabelForm("accounting_error")
            lbl.set_value_center(six.text_type(lerr))
            lbl.set_location(0, row + 1, 4)
            xfer.add_component(lbl)
            btn = XferCompButton("accounting_conf")
            btn.set_action(xfer.request, Configuration.get_action(_("conf."), ""), close=CLOSE_NO)
            btn.set_location(0, row + 2, 4)
            xfer.add_component(btn)
        lab = XferCompLabelForm('accountingend')
        lab.set_value_center('{[hr/]}')
        lab.set_location(0, row + 3, 4)
        xfer.add_component(lab)
        return True
    else:
        return False
示例#17
0
    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
示例#18
0
def conf_wizard_accounting(wizard_ident, xfer):
    if isinstance(wizard_ident, list) and (xfer is None):
        wizard_ident.append(("accounting_params", 21))
        wizard_ident.append(("accounting_fiscalyear", 22))
        wizard_ident.append(("accounting_journal", 23))
    elif (xfer is not None) and (wizard_ident == "accounting_params"):
        xfer.add_title(_("Diacamma accounting"), _('Parameters'), _('Configuration of accounting parameters'))
        select_account_system(xfer)
        fill_params(xfer, True)
    elif (xfer is not None) and (wizard_ident == "accounting_fiscalyear"):
        xfer.add_title(_("Diacamma accounting"), _('Fiscal year list'), _('Configuration of fiscal years'))
        xfer.fill_grid(5, FiscalYear, 'fiscalyear', FiscalYear.objects.all())
        try:
            current_year = FiscalYear.get_current()
            nb_account = len(ChartsAccount.objects.filter(year=current_year))
            lbl = XferCompLabelForm('nb_account')
            lbl.set_value(_("Total of charts of accounts in current fiscal year: %d") % nb_account)
            lbl.set_location(0, 10)
            xfer.add_component(lbl)
            if nb_account == 0:
                xfer.item = ChartsAccount()
                xfer.item.year = current_year
                btn = XferCompButton('initialfiscalyear')
                btn.set_location(1, 10)
                btn.set_action(xfer.request, ActionsManage.get_action_url(ChartsAccount.get_long_name(), 'AccountInitial', xfer), close=CLOSE_NO)
                xfer.add_component(btn)
        except LucteriosException as lerr:
            lbl = XferCompLabelForm('nb_account')
            lbl.set_value(six.text_type(lerr))
            lbl.set_location(0, 10, 2)
            xfer.add_component(lbl)
    elif (xfer is not None) and (wizard_ident == "accounting_journal"):
        xfer.add_title(_("Diacamma accounting"), _('Journals'), _('Configuration of journals'))
        xfer.fill_grid(5, Journal, 'journal', Journal.objects.all())
示例#19
0
 def _filter_by_year(self):
     select_year = self.getparam('year')
     self.item.year = FiscalYear.get_current(select_year)
     self.item.journal = Journal.objects.get(id=1)
     self.fill_from_model(0, 1, False, ['year', 'journal'])
     self.get_components('year').set_action(self.request, self.get_action(), modal=FORMTYPE_REFRESH, close=CLOSE_NO)
     self.filter = Q(year=self.item.year)
示例#20
0
def init_compta():
    year = FiscalYear.get_current()
    if Params.getvalue("condominium-old-accounting"):
        add_entry(year.id, 1, '2015-01-01', 'Report à nouveau',
                  '-1|2|0|23.450000|0|0|None|\n-2|17|4|-23.450000|0|0|None|',
                  True)
    elif get_accounting_system() == 'FR':
        add_entry(
            year.id, 1, '2015-01-01', 'Report à nouveau',
            """-1|2|0|16.680000|0|0|None|
-2|17|4|-23.450000|0|0|None|
-3|18|4|-5.730000|0|0|None|
-4|17|5|10.500000|0|0|None|
-5|18|5|0.7500000|0|0|None|
-6|19|5|0.6000000|0|0|None|
-7|20|5|0.250000|0|0|None|
-8|21|5|0.400000|0|0|None|""", True)
    elif get_accounting_system() == 'BE':
        add_entry(
            year.id, 1, '2015-01-01', 'Report à nouveau',
            """-1|2|0|16.680000|0|0|None|
-2|17|4|-23.450000|0|0|None|
-3|18|4|-5.730000|0|0|None|
-4|17|5|12.500000|0|0|None|""", True)
    add_entry(year.id, 5, '2015-02-20', 'Frais bancaire',
              '-1|2|0|-12.340000|0|0|None|\n-2|15|0|12.340000|0|0|None|', True)
示例#21
0
 def fillresponse(self):
     year_item = FiscalYear.get_current()
     if self.item.type_load == 0:
         if len(self.item.setcost_set.filter(year=year_item)) == 0:
             self.item.create_new_cost(year=year_item.id)
     cost_item = self.item.setcost_set.filter(year=year_item)[0]
     params = {'costaccounting': cost_item.cost_accounting.id}
     self.redirect_action(CostAccountingIncomeStatement.get_action(), close=CLOSE_YES, params=params)
示例#22
0
def _set_budget(setitem, code, amount):
    year = FiscalYear.get_current()
    cost = setitem.current_cost_accounting
    Budget.objects.create(cost_accounting=cost,
                          year=year,
                          code=code,
                          amount=amount)
    setitem.change_budget_product(cost, year.id)
示例#23
0
 def CurrentCallFundsAdding(self, to_create):
     if 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()
         for num in range(nb_seq):
             date = same_day_months_after(year.begin, int(num * 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': num + 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_current_budget() / nb_seq, designation=_("%(type)s - #%(num)d") % {'type': _('current'), 'num': num + 1})
     else:
         year = FiscalYear.get_current()
         calls = CallFunds.objects.filter(date__gte=year.begin, date__lte=year.end, calldetail__type_call=0).distinct()
         return len(calls) == 0
示例#24
0
def default_articles():
    default_costaccounting()

    create_account(['709'], 3, FiscalYear.get_current())
    create_account(['4455'], 1, FiscalYear.get_current())
    vat1 = Vat.objects.create(name="5%", rate=5.0, isactif=True)
    vat2 = Vat.objects.create(name="20%", rate=20.0, isactif=True)
    Article.objects.create(reference='ABC1', designation="Article 01",
                           price="12.34", unit="kg", isdisabled=False, sell_account="701", vat=None)
    Article.objects.create(reference='ABC2', designation="Article 02",
                           price="56.78", unit="l", isdisabled=False, sell_account="707", vat=vat1)
    Article.objects.create(reference='ABC3', designation="Article 03",
                           price="324.97", unit="", isdisabled=False, sell_account="601", vat=None)
    Article.objects.create(reference='ABC4', designation="Article 04",
                           price="1.31", unit="", isdisabled=False, sell_account="708", vat=None)
    Article.objects.create(reference='ABC5', designation="Article 05",
                           price="64.10", unit="m", isdisabled=True, sell_account="701", vat=vat2)
示例#25
0
 def get_filter(self):
     if self.getparam('CRITERIA') is None:
         select_year = self.getparam('year')
         select_type = self.getparam('type_of_account', 0)
         new_filter = Q(year=FiscalYear.get_current(select_year))
         if select_type != -1:
             new_filter &= Q(type_of_account=select_type)
     else:
         new_filter = XferPrintListing.get_filter(self)
     return new_filter
示例#26
0
def init_compta():
    year = FiscalYear.get_current()
    if Params.getvalue("condominium-old-accounting"):
        add_entry(year.id, 1, '2015-01-01', 'Report à nouveau',
                  '-1|2|0|23.450000|None|\n-2|17|4|-23.450000|None|', True)
    else:
        add_entry(year.id, 1, '2015-01-01', 'Report à nouveau',
                  '-1|2|0|29.180000|None|\n-2|17|4|-23.450000|None|\n-3|18|4|-5.730000|None|', True)
    add_entry(year.id, 5, '2015-02-20', 'Frais bancaire',
              '-1|2|0|-12.340000|None|\n-2|15|0|12.340000|None|', True)
示例#27
0
def init_compta():
    year = FiscalYear.get_current()
    if Params.getvalue("condominium-old-accounting"):
        add_entry(year.id, 1, '2015-01-01', 'Report à nouveau',
                  '-1|2|0|23.450000|0|None|\n-2|17|4|-23.450000|0|None|', True)
    else:
        add_entry(
            year.id, 1, '2015-01-01', 'Report à nouveau',
            '-1|2|0|16.680000|0|None|\n-2|17|4|-23.450000|0|None|\n-3|18|4|-5.730000|0|None|\n-4|17|5|12.500000|0|None|',
            True)
    add_entry(year.id, 5, '2015-02-20', 'Frais bancaire',
              '-1|2|0|-12.340000|0|None|\n-2|15|0|12.340000|0|None|', True)
示例#28
0
 def valid(self):
     self.fiscal_year = FiscalYear.get_current()
     bill_list = Bill.objects.filter(Q(bill_type=self.bill_type) & Q(fiscal_year=self.fiscal_year)).exclude(status=0)
     val = bill_list.aggregate(Max('num'))
     if val['num__max'] is None:
         self.num = 1
     else:
         self.num = val['num__max'] + 1
     self.status = 1
     if self.bill_type != 0:
         self.generate_entry()
     self.save()
     Signal.call_signal("change_bill", 'valid', self, None)
示例#29
0
 def fillresponse_header(self):
     select_year = self.getparam('year')
     select_type = self.getparam('type_of_account', 0)
     self.item.year = FiscalYear.get_current(select_year)
     self.fill_from_model(0, 1, False, ['year', 'type_of_account'])
     self.get_components('year').set_action(self.request, self.get_action(), close=CLOSE_NO, modal=FORMTYPE_REFRESH)
     type_of_account = self.get_components('type_of_account')
     type_of_account.select_list.append((-1, '---'))
     type_of_account.set_value(select_type)
     type_of_account.set_action(self.request, ChartsAccountList.get_action(), close=CLOSE_NO, modal=FORMTYPE_REFRESH)
     self.filter = Q(year=self.item.year)
     if select_type != -1:
         self.filter &= Q(type_of_account=select_type)
示例#30
0
 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)
示例#31
0
 def edit(self, xfer):
     old_account = xfer.get_components("code")
     xfer.remove_component("code")
     sel_code = XferCompSelect("code")
     sel_code.set_location(old_account.col, old_account.row,
                           old_account.colspan + 1, old_account.rowspan)
     existed_codes = []
     for acc_ratio in RecoverableLoadRatio.objects.all():
         existed_codes.append(acc_ratio.code)
     for item in FiscalYear.get_current().chartsaccount_set.all().filter(
             code__regex=current_system_account().get_expence_mask(
             )).exclude(code__in=existed_codes).order_by('code'):
         sel_code.select_list.append((item.code, str(item)))
     sel_code.set_value(self.item.code)
     xfer.add_component(sel_code)
示例#32
0
def add_years():
    year_N_1 = FiscalYear.objects.create(begin='2014-01-01',
                                         end='2014-12-31',
                                         status=2)
    year = FiscalYear.get_current()
    year.last_fiscalyear = year_N_1
    year.save()
    year_N1 = FiscalYear.objects.create(begin='2016-01-01',
                                        end='2016-12-31',
                                        status=0,
                                        last_fiscalyear=year)
    FiscalYear.objects.create(begin='2017-01-01',
                              end='2017-12-31',
                              status=0,
                              last_fiscalyear=year_N1)
示例#33
0
    def edit(self, xfer):
        set_comp = xfer.get_components('set')
        set_comp.set_select_query(Set.objects.filter(is_active=True))
        xfer.get_components('price').prec = Params.getvalue(
            "accounting-devise-prec")
        old_account = xfer.get_components("expense_account")
        xfer.remove_component("expense_account")
        sel_account = XferCompSelect("expense_account")
        sel_account.set_location(old_account.col, old_account.row, old_account.colspan, old_account.rowspan)
        for item in FiscalYear.get_current().chartsaccount_set.all().filter(code__regex=current_system_account().get_expence_mask()).order_by('code'):
            sel_account.select_list.append((item.code, six.text_type(item)))
        sel_account.set_value(self.item.expense_account)
        xfer.add_component(sel_account)

        self.item.year = FiscalYear.get_current()
        btn = XferCompButton('add_account')
        btn.set_location(old_account.col + 1, old_account.row)
        btn.set_is_mini(True)
        btn.set_action(xfer.request, ActionsManage.get_action_url('accounting.ChartsAccount', 'AddModify', xfer),
                       close=CLOSE_NO, modal=FORMTYPE_MODAL, params={'year': self.item.year.id})
        xfer.add_component(btn)
        xfer.get_components("set").colspan = old_account.colspan + 1
        xfer.get_components("designation").colspan = old_account.colspan + 1
        xfer.get_components("price").colspan = old_account.colspan + 1
示例#34
0
 def ventilate_costaccounting(self, own_set, cost_accounting, type_owner,
                              initial_code):
     if type_owner == 2:
         result = currency_round(
             CallDetail.objects.filter(set=own_set).aggregate(
                 sum=Sum('price'))['sum'])
     else:
         result = cost_accounting.get_total_revenue()
     result -= cost_accounting.get_total_expense()
     if abs(result) > 0.0001:
         fiscal_year = FiscalYear.get_current()
         close_entry = EntryAccount(year=fiscal_year,
                                    designation=_("Ventilation for %s") %
                                    own_set,
                                    journal_id=5)
         close_entry.check_date()
         close_entry.save()
         amount = 0
         last_line = None
         for part in own_set.partition_set.all().order_by('value'):
             value = currency_round(result * part.get_ratio() / 100.0)
             if abs(value) > 0.0001:
                 owner_account = part.owner.third.get_account(
                     fiscal_year, part.owner.get_third_mask(type_owner))
                 last_line = EntryLineAccount.objects.create(
                     account=owner_account,
                     amount=-1 * value,
                     entry=close_entry,
                     third=part.owner.third)
                 amount += value
         if last_line is None:
             raise LucteriosException(
                 IMPORTANT,
                 _('The class load %s has no owner') % own_set)
         diff = currency_round(result - amount)
         if abs(diff) > 0.0001:
             last_line.amount -= diff
             last_line.save()
         reserve_account = ChartsAccount.get_account(
             initial_code, fiscal_year)
         EntryLineAccount.objects.create(account=reserve_account,
                                         amount=-1 * result,
                                         entry=close_entry,
                                         costaccounting=cost_accounting)
         close_entry.closed()
示例#35
0
def thirdaddon_expense(item, xfer):
    if WrapAction.is_permission(xfer.request, 'condominium.change_expense'):
        try:
            status_filter = xfer.getparam('status_filter',
                                          Expense.STATUS_BUILDING)
            date_filter = xfer.getparam('date_filter', 0)
            current_year = FiscalYear.get_current()
            item.get_account(current_year,
                             current_system_account().get_provider_mask())
            xfer.new_tab(_('Expenses'))
            edt = XferCompSelect("status_filter")
            edt.set_select(list(Expense.get_field_by_name('status').choices))
            edt.set_value(status_filter)
            edt.description = _('Filter by type')
            edt.set_location(0, 1)
            edt.set_action(xfer.request,
                           xfer.return_action(),
                           modal=FORMTYPE_REFRESH,
                           close=CLOSE_NO)
            xfer.add_component(edt)
            edt = XferCompSelect("date_filter")
            edt.set_select([(0, _('only current fiscal year')),
                            (1, _('all expenses'))])
            edt.set_value(date_filter)
            edt.set_location(0, 2)
            edt.description = _('Filter by date')
            edt.set_action(xfer.request,
                           xfer.return_action(),
                           modal=FORMTYPE_REFRESH,
                           close=CLOSE_NO)
            xfer.add_component(edt)
            expense_filter = Q(status=status_filter) & Q(third=item)
            if date_filter == 0:
                expense_filter &= Q(date__gte=current_year.begin) & Q(
                    date__lte=current_year.end)
            expenses = Expense.objects.filter(expense_filter).distinct()
            expense_grid = XferCompGrid('expense')
            expense_grid.set_model(expenses,
                                   Expense.get_default_fields(status_filter),
                                   xfer)
            expense_grid.add_action_notified(xfer, Expense)
            expense_grid.set_location(0, 3, 2)
            xfer.add_component(expense_grid)
        except LucteriosException:
            pass
示例#36
0
 def fillresponse(self, journal=0):
     if self.getparam('SAVE') is None:
         dlg = self.create_custom()
         image = XferCompImage('image')
         image.set_value(self.icon_path())
         image.set_location(0, 0, 1, 6)
         dlg.add_component(image)
         lbl = XferCompLabelForm('lblmodel')
         lbl.set_value(_('model name'))
         lbl.set_location(1, 0)
         dlg.add_component(lbl)
         if journal > 0:
             mod_query = ModelEntry.objects.filter(journal=journal)
         else:
             mod_query = ModelEntry.objects.all()
         sel = XferCompSelect('model')
         sel.set_location(2, 0)
         sel.set_needed(True)
         sel.set_select_query(mod_query)
         dlg.add_component(sel)
         lbl = XferCompLabelForm('lblfactor')
         lbl.set_value(_('factor'))
         lbl.set_location(1, 1)
         dlg.add_component(lbl)
         fact = XferCompFloat('factor', 0.00, 1000000.0, 2)
         fact.set_value(1.0)
         fact.set_location(2, 1)
         dlg.add_component(fact)
         dlg.add_action(self.get_action(TITLE_OK, 'images/ok.png'), params={"SAVE": "YES"})
         dlg.add_action(WrapAction(TITLE_CANCEL, 'images/cancel.png'))
     else:
         factor = self.getparam('factor', 1.0)
         model = ModelEntry.objects.get(id=self.getparam('model', 0))
         for old_key in ['SAVE', 'model', 'factor']:
             if old_key in self.params.keys():
                 del self.params[old_key]
         year = FiscalYear.get_current(self.getparam('year'))
         serial_entry = model.get_serial_entry(factor, year)
         date_value = date.today().isoformat()
         entry = EntryAccount.objects.create(year=year, date_value=date_value, designation=model.designation,
                                             journal=model.journal, costaccounting=model.costaccounting)
         entry.editor.before_save(self)
         self.params["entryaccount"] = entry.id
         self.redirect_action(EntryAccountEdit.get_action(), params={"serial_entry": serial_entry})
示例#37
0
 def fillresponse(self):
     if self.getparam("year") is None:
         self.item = FiscalYear.get_current()
     destination_file = self.item.get_xml_export()
     img = XferCompImage('img')
     img.set_value(self.icon_path())
     img.set_location(0, 0, 1, 6)
     self.add_component(img)
     lbl = XferCompLabelForm('title')
     lbl.set_value_as_title(_('Export fiscal year'))
     lbl.set_location(1, 0)
     self.add_component(lbl)
     down = XferCompDownLoad('filename')
     down.compress = False
     down.set_value('export_year_%s_%s.xml' %
                    (self.item.begin.isoformat(), self.item.end.isoformat()))
     down.set_download(destination_file)
     down.set_location(1, 1)
     self.add_component(down)
示例#38
0
 def fillresponse_header(self):
     self.filter = Q()
     if self.getparam('year') is not None:
         year = FiscalYear.get_current(self.getparam('year'))
         self.filter &= Q(year=year)
         row_id = self.get_max_row() + 1
         lbl = XferCompLabelForm('title_year')
         lbl.set_italic()
         lbl.set_value("{[b]}%s{[/b]} : %s" % (_('fiscal year'), year))
         lbl.set_location(1, row_id, 1)
         self.add_component(lbl)
     if self.getparam('cost_accounting') is not None:
         cost = CostAccounting.objects.get(id=self.getparam('cost_accounting', 0))
         self.filter &= Q(cost_accounting=cost)
         row_id = self.get_max_row() + 1
         lbl = XferCompLabelForm('title_cost')
         lbl.set_italic()
         lbl.set_value("{[b]}%s{[/b]} : %s" % (_('cost accounting'), cost))
         lbl.set_location(1, row_id, 1)
         self.add_component(lbl)
     Signal.call_signal('editbudget', self)
示例#39
0
    def fillresponse_header(self):
        status_filter = self.getparam('status_filter',
                                      Expense.STATUS_BUILDING_WAITING)
        self.params['status_filter'] = status_filter
        date_filter = self.getparam('date_filter', 0)
        self.fieldnames = Expense.get_default_fields(status_filter)
        edt = XferCompSelect("status_filter")
        edt.set_select(Expense.SELECTION_STATUS)
        edt.set_value(status_filter)
        edt.description = _('Filter by type')
        edt.set_location(0, 3)
        edt.set_action(self.request,
                       self.return_action(),
                       modal=FORMTYPE_REFRESH,
                       close=CLOSE_NO)
        self.add_component(edt)

        edt = XferCompSelect("date_filter")
        edt.set_select([(0, _('only current fiscal year')),
                        (1, _('all expenses'))])
        edt.set_value(date_filter)
        edt.set_location(0, 4)
        edt.description = _('Filter by date')
        edt.set_action(self.request,
                       self.return_action(),
                       modal=FORMTYPE_REFRESH,
                       close=CLOSE_NO)
        self.add_component(edt)

        if status_filter == Expense.STATUS_BUILDING_WAITING:
            self.filter = Q(status=Expense.STATUS_BUILDING) | Q(
                status=Expense.STATUS_WAITING)
        elif status_filter != Expense.STATUS_ALL:
            self.filter = Q(status=status_filter)
        else:
            self.filter = Q()
        if date_filter == 0:
            current_year = FiscalYear.get_current()
            self.filter &= Q(date__gte=current_year.begin) & Q(
                date__lte=current_year.end)
示例#40
0
 def generate_accounting(self, third_amounts, designation=None):
     supporting = self.supporting.get_final_child()
     if self.supporting.is_revenu:
         is_revenu = -1
     else:
         is_revenu = 1
     fiscal_year = FiscalYear.get_current()
     if designation is None:
         designation = _("payoff for %s") % six.text_type(supporting)
     new_entry = EntryAccount.objects.create(
         year=fiscal_year, date_value=self.date, designation=designation,
         journal=Journal.objects.get(id=4), costaccounting=supporting.default_costaccounting())
     amount_to_bank = 0
     for third, amount in third_amounts:
         third_account = third.get_account(fiscal_year, supporting.get_third_mask())
         if third_account.type_of_account == 0:
             is_liability = 1
         else:
             is_liability = -1
         EntryLineAccount.objects.create(account=third_account, amount=is_liability * is_revenu * amount, third=third, entry=new_entry)
         amount_to_bank += float(amount)
     if self.bank_account is None:
         bank_code = Params.getvalue("payoff-cash-account")
     else:
         bank_code = self.bank_account.account_code
     bank_account = ChartsAccount.get_account(bank_code, fiscal_year)
     if bank_account is None:
         raise LucteriosException(
             IMPORTANT, _("account is not defined!"))
     fee_code = Params.getvalue("payoff-bankcharges-account")
     if (fee_code != '') and (float(self.bank_fee) > 0.001):
         fee_account = ChartsAccount.get_account(fee_code, fiscal_year)
         if fee_account is not None:
             EntryLineAccount.objects.create(account=fee_account,
                                             amount=-1 * is_revenu * float(self.bank_fee), entry=new_entry)
             amount_to_bank -= float(self.bank_fee)
     EntryLineAccount.objects.create(account=bank_account,
                                     amount=-1 * is_revenu * amount_to_bank, entry=new_entry)
     return new_entry
示例#41
0
 def get_filter(self):
     if self.getparam('CRITERIA') is None:
         select_year = self.getparam('year')
         select_journal = self.getparam('journal', 4)
         select_filter = self.getparam('filter', 1)
         new_filter = Q(entry__year=FiscalYear.get_current(select_year))
         if select_filter == 1:
             new_filter &= Q(entry__close=False)
         elif select_filter == 2:
             new_filter &= Q(entry__close=True)
         elif select_filter == 3:
             new_filter &= Q(entry__link__id__gt=0)
         elif select_filter == 4:
             new_filter &= Q(entry__link=None)
         if select_journal != -1:
             new_filter &= Q(entry__journal__id=select_journal)
     else:
         self.item = EntryAccount()
         entries = EntryAccount.objects.filter(XferPrintListing.get_filter(self))
         self.item = EntryLineAccount()
         new_filter = Q(entry_id__in=[entry.id for entry in entries])
     return new_filter
示例#42
0
    def fillresponse_header(self):
        status_filter = self.getparam('status_filter', -1)
        year_filter = self.getparam('year_filter', FiscalYear.get_current().id)
        lbl = XferCompLabelForm('lbl_statusfilter')
        lbl.set_value_as_name(_('Filter by status'))
        lbl.set_location(0, 1)
        self.add_component(lbl)
        dep_field = DepositSlip.get_field_by_name('status')
        sel_list = list(dep_field.choices)
        sel_list.insert(0, (-1, '---'))
        edt = XferCompSelect("status_filter")
        edt.set_select(sel_list)
        edt.set_value(status_filter)
        edt.set_needed(False)
        edt.set_location(1, 1)
        edt.set_action(self.request, self.get_action(), modal=FORMTYPE_REFRESH, close=CLOSE_NO)
        self.add_component(edt)

        lbl = XferCompLabelForm('lbl_yearfilter')
        lbl.set_value_as_name(_('Filter by year'))
        lbl.set_location(0, 2)
        self.add_component(lbl)
        edt = XferCompSelect("year_filter")
        edt.set_needed(False)
        edt.set_select_query(FiscalYear.objects.all())
        edt.set_value(year_filter)
        edt.set_location(1, 2)
        edt.set_action(self.request, self.get_action(), modal=FORMTYPE_REFRESH, close=CLOSE_NO)
        self.add_component(edt)

        self.filter = Q()
        if status_filter >= 0:
            self.filter &= Q(status=status_filter)
        if year_filter > 0:
            year = FiscalYear.objects.get(id=year_filter)
            self.filter &= Q(date__gte=year.begin)
            self.filter &= Q(date__lte=year.end)
示例#43
0
 def check_account_config(self):
     from diacamma.accounting.tools import current_system_account
     try:
         lettering_check = Params.getvalue(
             "accounting-lettering-check").split('{[br/]}')
         changed = False
         new_lettering = []
         for letter in lettering_check:
             if match(current_system_account().get_third_mask(),
                      letter) is not None:
                 new_lettering.append(letter)
             else:
                 changed = True
         for account in ChartsAccount.objects.filter(
                 year=FiscalYear.get_current(),
                 code__regex=current_system_account().get_societary_mask()):
             if account.code not in new_lettering:
                 new_lettering.append(account.code)
                 changed = True
         if changed:
             Params.setvalue("accounting-lettering-check",
                             '{[br/]}'.join(new_lettering))
     except LucteriosException:
         pass
示例#44
0
    def fill_header(self):
        self.item = FiscalYear.get_current(self.getparam("year"))
        new_begin = convert_date(self.getparam("begin"), self.item.begin)
        new_end = convert_date(self.getparam("end"), self.item.end)
        if (new_begin >= self.item.begin) and (new_end <= self.item.end):
            self.item.begin = new_begin
            self.item.end = new_end
        img = XferCompImage('img')
        img.set_value(self.icon_path())
        img.set_location(0, 0, 1, 3)
        self.add_component(img)

        select_year = XferCompSelect(self.field_id)
        select_year.set_location(1, 0, 4)
        select_year.set_select_query(FiscalYear.objects.all())
        select_year.set_value(self.item.id)
        select_year.set_needed(True)
        select_year.set_action(self.request, self.__class__.get_action(), close=CLOSE_NO, modal=FORMTYPE_REFRESH)
        self.add_component(select_year)
        self.filter = Q(entry__year=self.item)
        if self.item.status != 2:
            self.fill_from_model(1, 1, False, ['begin'])
            self.fill_from_model(3, 1, False, ['end'])
            begin_filter = self.get_components('begin')
            begin_filter.set_action(self.request, self.__class__.get_action(), close=CLOSE_NO, modal=FORMTYPE_REFRESH)
            end_filter = self.get_components('end')
            end_filter.set_action(self.request, self.__class__.get_action(), close=CLOSE_NO, modal=FORMTYPE_REFRESH)
            self.filter &= Q(entry__date_value__gte=self.item.begin)
            self.filter &= Q(entry__date_value__lte=self.item.end)
        self.fill_filterCode()
        lbl = XferCompLabelForm("result")
        lbl.set_value_center(self.item.total_result_text)
        lbl.set_location(0, 6, 6)
        self.add_component(lbl)
        self.fill_filterheader()
        self.define_gridheader()
示例#45
0
def create_account(codes, type_of_account, year=None):
    if year is None:
        year = FiscalYear.get_current()
    for code in codes:
        ChartsAccount.objects.create(
            code=code, name=code, type_of_account=type_of_account, year=year)
示例#46
0
def default_bankaccount():
    create_account(["581"], 0, FiscalYear.get_current())
    BankAccount.objects.create(designation="My bank", reference="0123 456789 321654 12", account_code="512")
    BankAccount.objects.create(designation="PayPal", reference="*****@*****.**", account_code="581")
示例#47
0
文件: views.py 项目: loudubewe/syndic
def finalize_year_after_condo(xfer):
    year = FiscalYear.get_current(xfer.getparam('year'))
    if year is not None:
        year.set_context(xfer)
        generate_pdfreport(year)
示例#48
0
 def fillresponse(self, year):
     fiscal_year = FiscalYear.get_current(year)
     read_only = (fiscal_year.status == 2)
     self.redirect_action(BudgetList.get_action(), close=CLOSE_YES, params={'year': fiscal_year.id, 'readonly': read_only})
示例#49
0
 def get_info_state(self, third_mask=None):
     info = []
     if third_mask is None:
         third_mask = self.get_third_mask()
     if self.status == 0:
         if self.third is None:
             info.append(six.text_type(_("no third selected")))
         else:
             accounts = self.third.accountthird_set.filter(
                 code__regex=third_mask)
             try:
                 if (len(accounts) == 0) or (ChartsAccount.get_account(accounts[0].code, FiscalYear.get_current()) is None):
                     info.append(
                         six.text_type(_("third has not correct account")))
             except LucteriosException as err:
                 info.append(six.text_type(err))
     return info
示例#50
0
 def fillresponse(self, confirme):
     account_list = []
     signal_and_lock.Signal.call_signal("initial_account", account_list)
     if self.confirme(_('Do you want to import initial accounts?')):
         ChartsAccount.import_initial(FiscalYear.get_current(self.getparam('year')), account_list)