def remove(self, cash_item): """Удалить запись из менеджера :param cash_item: удаляемая запись """ log(f"Удаляю запись из менеджера {cash_item}") cash_item.delete() self.update()
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}")
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}")
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()
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}")
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
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}")
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}\"")