mohnstrudel / store_manager_v2

0 stars 0 forks source link

A: Add purchase check for sales #92

Open mohnstrudel opened 3 months ago

mohnstrudel commented 3 months ago

Зачем:

To-Do:

Пример:

evgeny-matveev commented 2 weeks ago

@mohnstrudel Я частично сделал эту задачу в рамках задачи по складам. Поэтому давай доделаем ее перед #102.

Сначала предлагаю убедиться, что мы правильно друг друга понимаем.

В чем задача. Нужна возможность связывать продажи и закупки. Примеры:

Вопросы из примеров — это то, что мы хотим решить.

Подзадача. Сделать так, чтобы закупки привязывались к продажам сразу после создания закупки. Например, мы создали закупку. Затем наша система ищет самую старую продажу и связывает её с закупкой.

mohnstrudel commented 2 weeks ago

Отвечаю на вопросы с точки зрения бизнес-логики:

  1. Как понять, какие продажи связаны с закупками, а какие — нет?

    1. Это должно работать по принципу FiFo - first in, first out. Т.е. пример:
    2. Вася купил товар А в январе 2022 года
    3. Петя купил товар А в феврале 2022 года
    4. Маша купила также товар А в декабре 2022 года
    5. Я делаю закупку на 2 товара А (т.е. один из клиентов уходит с ничем). Получается так как Вася и Петя купили товар раньше Маши, мы им "прикрепляем" закупки, а у Маши ничего нет.
  2. Мы перешли на страницу продажи - Как нам понять, связана ли продажа с закупками?

    1. В идеале как-то так:
    2. Image
  3. Как ее связать с закупками? - см. принцип выше. Если в ручном режиме, то на странице редактирования должна быть возможность выбрать закупку, либо открепить уже существующую

  4. Мы перешли на страницу закупки - Как понять, что к закупке привязаны продажи?

    1. Логика обработки такая же (см. выше)
    2. Визуально в идеале вот тут выводить информацию:
    3. Image
  5. Как привязать или отвязать? - думаю также, на странице редактирования удаляем связь либо добавляем вручную

  6. Как понять, есть ли еще свободные, не привязанные продажи? - именно на странице закупки в этой информации, кажется, смысла нет. Ведь если скрипт/метод работает, то там либо точно будут продажи, либо, если этой информации там не будет, значит на эту закупку ещё нет продажи. Я иногда бывает покупаю "впрок".

evgeny-matveev commented 3 days ago

@mohnstrudel У меня появился вопрос по закупкам, который можно решать в отдельной задаче.

Мы изменили amount (число закупленных товаров) в закупке (purchase) — что делать:

mohnstrudel commented 7 hours ago

Очень хороший вопрос. Интересно, а можно малой кровью реализовать возможность редактирования только в первые 5 минут, например? А потом нельзя. Т.е. если действительно я сделал ошибку и попал не туда на клавиатуре, то 5 минут хватит, чтобы отредактировать. А уведомления клиентам можно и так повесить на deliver_later и сделать всегда через пол часа.

Но теперь вопрос - даже если мы это можем реализовать, то что делать, если, например, действительно поставщик подтвердил только 1 штуку (хотя я купил и оплатил 2). Думаю в таком случае нужен отдельный функционал, что-то вроде "Убрать закупку". И здесь в идеале я захожу на страницу закупки и напротив той продажи, которой я "готов пожертвовать", нажимаю на тот же destroy. Только там должен будет confirm/alert всплывать и после удаления будем слать какое-нибудь трогательное письмо.

Image