Open hodkovdd opened 9 years ago
Входит в план-минимум #95
@hodkoff2 заведи задачу на реализацию возвратов денег из кассы и опиши там, как это должно происходить.
Смотри задачу #101
Добавлена поддержка съема денег из кассы. Для того, чтобы выполнить съем и создать запись об этом на клиенте нужно создать и сохранить объект profit
DS.Model.extend({
changeTime: attr("date", {
defaultValue: () => new Date()
}),
amount: attr("number"),
rent: DS.belongsTo("rent", {inverse: null, async: true}),
comment: attr("string"),
creationDate: attr("date"),
editDate: attr("date"),
creator: DS.belongsTo("user", {inverse: null, async: true}),
editor: DS.belongsTo("user", {inverse: null, async: true}),
});
При этом, если amount не указан, то будет снята вся касса. Если указано меньше, чем есть в кассе (по расчетам), то будет снята указанная сумма, а касса будет считаться пустой. Если указано больше, чем есть в кассе (по расчетам), то выбросится ошибка.
Сумма в кассе рассчитывается, исходя из даты предыдущего съема и суммы всех положительных операций с тех пор минус сумма всех возвратов с тех пор.
Давайте пока на клиенте не давать выбирать, какую сумму снимать из кассы, т.е. всегда оставляем поле amount пустым.
Пока нет простого механизма получения суммы в кассе на клиент. Можно только запросить все объекты this.store.find('refund')
(или как-то так, не успеваю точно сказать) и из них уже выбрать последний по changeTime
.
Успехов, парни :sparkles:
@Argelein ты можешь по этой задаче работать сейчас?
@sedovalx в объекте profit свойство rent лишнее, на мой взгляд. это так или я что-то не понимаю?
@hodkoff2 Вобщем сделал маршрут, шаблон и прочее, можно посмотреть, как выглядит, но ничего не работает.
@sedovalx сохранить объект типа profit не дает: POST http://localhost:9000/api/profits 404 (Not Found) возможно я что-то не понял, т.к. у тебя то profit, то refund упоминается.
Profit - количество денег, снятых их кассы. Refund - возврат денег водителю. Это разные вещи.
Да, в Profit свойство rent лишнее конечно. И, парни, кажется я обдолбался и забыл закоммитить изменения по Profit перед уходом.
Главное хорошо обдолбаться :)
@hodkoff2 посмотри, снятие денег из кассы вроде работает теперь. Делается это по нажатию на кнопку "Касса" в кассовой форме.
Залоги забыл учитывать. Сейчас поправлю.
Сумма в кассе = Сумма(положительные операции) + Сумма(залоги) - Сумма(возвраты)
все со времени последнего снятия кассы.
@hodkoff2 все, можно проверять
@sedovalx ТЕОРИЯ Из двух счетов предприятия главный для нас счет1 - "В Кассе". Это те деньги которые копятся в сейфе до выемки. В момент выемки необходим контроль соответствия фактической суммы сумме "по чекам", отсюда важность счета.
Расчет происходит на основе диапазона дат (дата предыдущей выемки - дата текущей выемки), платежей связанных с этим диапазоном, возвратов денег из кассы (сейчас есть понимание что это возврат залога для аренд в статусе "Под расчет"), а также Авансы которые вносят новые водители, их же тоже вносят в кассу:
Что должно быть по Фунционалу:
Кассовая форма -> Кнопка "Касса" -> Форма просмотра "В Кассе". на ней нередактируемое значение счета "Сумма в Кассе" и кнопка "Снять Кассу" (доступна только админу) -> Подтверждение -> обнуление счета "в Кассе", добавление новой даты выемки в таблицу выемок и сумму выемок.
ИТОГО: