Оцените сложность поставленной задачи

Alex7965

Новичок
Приветствую всех.
Мне сегодня на работе поставили решить следующую задачу.
Система учета товаров. Есть приходные накладные (приход товаров), расходные накладные и накладные на перемещение товаров. Соответственно может быть энное кол-во складов и номенклатуры. Предлагается ее решить следующим способом. нельзя категорически использовать никаких таблиц наподобие регистров накопления в 1С, которые собственно и фиксируют приход, расход.
Решение должно быть реализовано на симфони (но это в принципе не меняет сути), подсчет только программный.

Например, есть 1000 различных наименований товаров и 10 складов, товары в разное время оприходовались по разным складам, потом перемещались между ними (накладные на перемещение) и списывались (расходовались). Когда сотрудник запрашивает информацию по остаткам на том или ином складе, система должна проанализаровать все накладные по приходным, расходным и на перемещение товаров и вывести инф-цию какие товары и какое количество есть на каждом конкретном складе.
Задача должна быть решена только таким способом. Тимлид говорит, что подобные задачи они уже таким способом решали и он наиболее оптимальный. Что думаете? Я честно говоря голову уже сломал. Вам такие задачи приходилось решать? Если да, то приведите в качестве образца примерный алгоритм решения.
 

Alex7965

Новичок
М-да ...отвечаю самому себе )) Решение есть, но уродливое. Здец полный, сродни удалению гланд через задницу.......
 

Yoskaldyr

"Спамер"
Партнер клуба
Если задача описана именно так, то согласен что тимлид идиот. Особенно весело когда накладных будет дофига и больше ( обычно на реальных складах по другому не бывает )
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Если задача описана именно так, то согласен что тимлид идиот.
В реальности, конечно, если вас не вместе с тимлидом вчера набрали по обьявлению, скорее всего кто-то тупой другой, и не понял, что ему говорили. Я такое почему-то видел гораздо чаще.
 

Alex7965

Новичок
Нет, по поводу задачи я все правильно понял. Он меня вогнал в ступор, когда сказал, что решение использовать что-то наподобие однаэсовских регистров накопления будут нарушать 3 нормальную форму. Тимлид уже в этой компании 4 года. Тут я думаю все гораздо проще, он меня просто "топит", черт его знает, наверное что-то личное. Вообще фигня какая-то все время. Есть техническое задание. Я выполняю задачу, он говорит, нет в техническом задании ошибка, надо было делать по другому, и так постоянно. Или делаешь задание и уже наполовину написал, а он бросай это, начинай сейчас делать другое. Я ему говорю, давай продумаем и разберем архитектуру, а потом я сделаю все за раз. Говорит нет, делай вот это и сейчас, когда заканчиваешь, он ту же задачу переформулирует и все по-новому. Говорит у нас творчески подход, а тех. задание всего лишь "канва". Заранее ту или иную задачу тоже не обсудишь, начинает забалтывать, уводить от разговора, говорит что нет времени, делай как там написано, а дальше все повторяется. У меня уже ..ять руки начинают трястить и курю по пачке в день. Не понимаю таких людей, ну скажи ты прямо как есть, я возьму расчет и уйду, нет бл... надо человека вымотать и извести.
 

Alex7965

Новичок
Я постараюсь на него в понедельник как следует "насесть", типа если вы уже так делали не раз, ну покажи тогда конкретный пример кода. Если откажется, то значит просто гнилой человек и надо искать другую работу.
 

Andkorol

Новичок
Не понимаю таких людей, ну скажи ты прямо как есть, я возьму расчет и уйду, нет бл... надо человека вымотать и извести.
А что тут понимать?
Ему просто в кайф тебя гнобить, и возможно не тебя одного.
Если бы ты был реально слабым звеном – уволили бы давно, и все дела.
А так тимлид чешет об тебя своё ЧСВ, ему нужна стабильная жертва.
Уволить тебя – тогда придется взять другого, а он может оказаться менее терпимым к подобным фокусам, возьмёт да и набьёт лицо тимлиду на первом же корпоративе «типа по пьянке» – оно ему надо? :)
Не нравятся условия или отношение – уходи, другой работы вокруг полно.
 

WMix

герр M:)ller
Партнер клуба
очень правильное задание, поначалу смутило
нельзя категорически использовать никаких таблиц наподобие регистров накопления
но предполагаю внимание нужно обратить на слово "накопления" те не суммировать заранее.

вся задача грубо решается одной таблицей "журнал" с полями: дата, нр. склада, нр. товара, приход/расход (едениц), документ (накладная)
чтоб посчитать кол-во на конкретном складе группируем по товару для склада, вычисляем сумма "приход/расход"

кстати даже в этом случае обычно ведется столбик (остаток) если уж про регистр накопления заговорили
буквально event sourcing
 

Alex7965

Новичок
очень правильное задание, поначалу смутило

но предполагаю внимание нужно обратить на слово "накопления" те не суммировать заранее.

вся задача грубо решается одной таблицей "журнал" с полями: дата, нр. склада, нр. товара, приход/расход (едениц), документ (накладная)
чтоб посчитать кол-во на конкретном складе группируем по товару для склада, вычисляем сумма "приход/расход"

кстати даже в этом случае обычно ведется столбик (остаток) если уж про регистр накопления заговорили
буквально event sourcing
 

Alex7965

Новичок
Нельзя использовать вообще никаких новых таблиц. Есть расходные, приходные и на перемещение товаров и только на их основании нужно проводить все вычисления. Примерно как получается....приход - расход, с отбором по складу. ну это как бы получаем разницу. Перемещение тоже можно отследить, есть поля из какого склада выбыло и куда пришло (to, from). Все это дело группируется ну и как то сопоставляется в пары друг с другом. Это навскидку, если очень примерно, я опускаю варианты конкретной реализации. Теоретически эта задача решаема, но пытаться решать ее подобным образом для меня это нечто за гранью. Когда есть совершенно логичный сто раз описанный во многих методичках и тысячу раз реализованный на практике. Зачет так извращаться? Объясните мне в чем профит, если он есть? Вот он мне сказал, что это якобы будет нарушать 3 нормальную форму. Но как? Это же бред сумасшедшего. Система пишется с нуля. Возможно я идиот, у меня наверное мало опыта, черт возьми похоже я не соответствую миддлу. коим меня взяли на испытательный срок в данную контору, но я не понимаю как эту задачу можно решать подобным образом и почему доп.таблица для фиксации прихода,расхода это неправильно.
 

WMix

герр M:)ller
Партнер клуба
@Alex7965, покажи эти накладные, мне кажется что они буквально повторяют выше описанный журнал
, но пытаться решать ее подобным образом для меня это нечто за гранью
так считали все время даже когда компутеров не было
Объясните мне в чем профит, если он есть
иначе вообще задача не решается или это решение теряет смысл. никому не интересно сколько товаров, интересно почему столько (особенно когда не хватает)
почему доп.таблица для фиксации прихода,расхода это неправильно.
она не нужна, это лишний раз запутать программу. пойми те кто работать будет ведут учет именно таким способом опираясь на конкретные документы а не на логику (возможно не соответствующему уровню миддла) разработчика
 

Alex7965

Новичок
Хорошо. Вот нужная вам информация (остальные поля опущу, как и всякого рода абстракции) . Склад в таблице инвойс (инвойсе различаются, там на каждый тип инвойса своя таблица) и соответственно таблицы "positions", в них номенклатура, количество. Сущность инвойс связана с соответствующей сущностью positions. Собственно тут все просто. Если можно, то Ваш пошаговый алгоритм решения. Буду крайне признателен.
 

Alex7965

Новичок
насчет того как считали раньше, я надеюсь Вы знаете как устроен Бух. учет ?
 

Alex7965

Новичок
Уважаемый, жду примера вашего решения, будьте добры...очень хотелось бы ознакомиться с вашим ходом мысли, только если можно не общими словами, а то начинает все пиздобольством попахивать.
 

WMix

герр M:)ller
Партнер клуба
Уважаемый, жду примера вашего решения, будьте добры...очень хотелось бы ознакомиться с вашим ходом мысли, только если можно не общими словами, а то начинает все пиздобольством попахивать.
мне кажется я достаточно понятно описал условия моей помощи тебе. фантазировать я не буду, решение на словах ищи тут
 

Alex7965

Новичок
решение никого не было. Я не прошу детального описания. Можно примерно в такой форме... отбираем по складу все из приходной, ту же выборку делаем по расходной и по перемещениям. далее групируем все по номенклатуре, далее...
продолжите пожалуйста, тут немного ведь, несколько строчек описывающих ход ваших мыслей )
 

WMix

герр M:)ller
Партнер клуба
часть первая заселектить заюнионить заджойнить таблички с накладными так чтоб получился журнал, далее group by товар и sum quantity

перемещение это если from то расход если to то приход
 

Alex7965

Новичок
ГЕНИАЛЬНО... бля ))))) Вас бы с моим тимлмдом свести, стопудово подружились бы. Пошел курить )
 
Сверху