Beispiel #1
0
    def remove(self, cash_item):
        """Удалить запись из менеджера

        :param cash_item: удаляемая запись
        """
        log(f"Удаляю запись из менеджера {cash_item}")
        cash_item.delete()
        self.update()
Beispiel #2
0
    def set_period_manager(self, begin, end):
        """Установить период текущего менеджера

        :param begin: начало периода
        :param end: конец периода
        """
        self.date_begin = begin
        self.date_end = end
        self.update()
        log(f"Установлен текущий период: {begin} - {end}")
Beispiel #3
0
    def writeoff(self, summa, cashitem_name):
        """Списание средств по статье

        :param summa: сумма списания
        :param cashitem_name: статья списания
        """
        log(f"Списываю средства по статье {cashitem_name} в размере {summa}")
        cashitem = CashItem.get(name=cashitem_name, date=self.date_begin)
        cashitem.min_value += summa
        cashitem.value -= summa
        cashitem.save()
        log(f"-- теперь на статье {cashitem_name} min_value={cashitem.min_value}, value={cashitem.value}")
Beispiel #4
0
    def replace(self, dest_cash_item, source_cash_item):
        """Переписать запись таблицы менеджера. Статья не меняется!

        :param dest_cash_item: запись-приёмник
        :param source_cash_item: запись-источник
        """
        log(f"Перезаписываю {dest_cash_item} записью {source_cash_item}")
        dest_cash_item.min_value = source_cash_item.min_value
        dest_cash_item.value = source_cash_item.value
        dest_cash_item.plan_value = source_cash_item.plan_value
        dest_cash_item.date = source_cash_item.date
        dest_cash_item.virtual_value = source_cash_item.virtual_value
        dest_cash_item.save()
Beispiel #5
0
    def copy_all(self, dest_month):
        """Копировать статьи текущего периода в новый период

        :param dest_month: новый месяц
        """

        log(f"Начинаю процесс копирования статей из периода {self.date_begin} в период {dest_month}")
        self.update()
        for cash_item in self.cash_items:
            row = CashItem(name=cash_item.name,
                           date=dest_month,
                           min_value=0,
                           value=0,
                           plan_value=cash_item.plan_value,
                           virtual_value=0)
            row.save()
            log(f"Скопировал статью {cash_item.name}: {cash_item.plan_value}")
Beispiel #6
0
    def append(self, name_item, date_item):
        """Добавить запись в менеджер

        :param date_item: дата записи
        :param name_item: название статьи (строка)
        """
        name_cashitem = NamesCashItem.objects.filter(name=name_item)
        if name_cashitem.exists():
            name_cashitem = name_cashitem[0]
        else:
            name_cashitem = NamesCashItem(name=name_item)
            name_cashitem.save()

        row = CashItem(name=name_cashitem, date=date_item)
        row.save()
        self.update()
        log(f"Запись добавлена в менеджер: {name_cashitem} : {date_item}")
        return row
Beispiel #7
0
 def move(self, source_cashitem_name, dest_cashitem_name, summa):
     log(f"Перемещаю средства со статьи {source_cashitem_name} на статью {dest_cashitem_name} в размере {summa}")
     source_cashitem = CashItem.get(name=source_cashitem_name, date=self.date_begin)
     source_cashitem.value -= summa
     source_cashitem.save()
     log(f"-- теперь на статье {source_cashitem_name} value={source_cashitem.value}")
     dest_cashitem = CashItem.get(name=dest_cashitem_name, date=self.date_begin)
     dest_cashitem.value += summa
     dest_cashitem.save()
     log(f"-- теперь на статье {dest_cashitem_name} value={dest_cashitem.value}")
Beispiel #8
0
 def rename_cashitem(self, cashitem_name, cashitem_name_new):
     cash_item_name = NamesCashItem.get(NamesCashItem.name == cashitem_name.name)
     cash_item_name.name = cashitem_name_new
     cash_item_name.save()
     log(f"\tНазвание статьи \"{cashitem_name}\" изменилось на \"{cashitem_name_new}\"")