{"id":19045748,"url":"https://github.com/ivanjermakov/onlinewarehouse","last_synced_at":"2026-06-19T08:01:46.689Z","repository":{"id":105924952,"uuid":"152851628","full_name":"ivanjermakov/onlinewarehouse","owner":"ivanjermakov","description":"Web warehouse management system","archived":false,"fork":false,"pushed_at":"2018-12-25T18:09:26.000Z","size":1690,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-12T08:20:31.498Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivanjermakov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-13T08:30:51.000Z","updated_at":"2020-01-25T12:43:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"cfd78f77-5b6d-48d9-8d73-ce861812db2d","html_url":"https://github.com/ivanjermakov/onlinewarehouse","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ivanjermakov/onlinewarehouse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanjermakov%2Fonlinewarehouse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanjermakov%2Fonlinewarehouse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanjermakov%2Fonlinewarehouse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanjermakov%2Fonlinewarehouse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivanjermakov","download_url":"https://codeload.github.com/ivanjermakov/onlinewarehouse/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanjermakov%2Fonlinewarehouse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34522042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T22:51:17.887Z","updated_at":"2026-06-19T08:01:46.670Z","avatar_url":"https://github.com/ivanjermakov.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Как пишем \nБудем пробовать писать на подходе `feature level` т.е. группирововать по фичам в пакеты(кто помнит - недавняя лекция Сергея по спрингу когда он показывал примеры проектов).\nТесты нужны, если красиво, то вообще TDD, но там уже как пойдет.\nКаждую таску делаем в отдельной ветке, в описании коммита указываем номер таски, думаю будет достаточно. Потом мержим в dev. \n### Предложение по наименованию сущностей\nCarrier - Перевозчик;\nCommodityLot - Товарная партия;\nCLGoods - Товар товарной партии;\nCompany - Компания клиент\nConsignmentNote - ТТН;\nCNGoods - Товар ТТН;\nCounterparty - Контрагент;\nDriver - Водитель;\nGoods - Товар;\nPlacement - Помещение;\nPGoods - Товар помещения;\nRole - Роль;\nUser - Пользователь;\nWarehouse - Склад;\nWriteOffAct - Акт списания;\nAGoods - Товар акта.\n\nОписание полей в самих сущностях в тасках.\n\n### Примерное описание бизнес-логики движения товара\n1. От отправителя поступает заказ на хранение товара и он отправляет товар – условно, никак не связано с системой онлайн склад.\n2. Приходит условный водитель с ТТН и диспетчер склада начинает заполнять ТТН в системе. Он указывает товары и их количество. ///где-то тут должна быть проверка на количество товара\n3. В момент регистрации ТТН данные о товаре вносятся в таблицу «Товар» (только основные характеристики без количества) и «Товар ТТН»(количество и ссылка на товар), статус ТТН становаться «Зарегистрирована». ТТН помечается как «входящая»\n4. Контролер склада видит зарегистрированную ТТН и начинает проверку поступившего товара.\n4.1. В данном случае во время доставки водителем была утеряна часть товара и на эту часть контролер составляет акт (Условная кнопка создать акт). В акте контролер выбирает по товарам указанным из ТТН и указывает для каждого количество недостачи и причину. На момент сохранения сохраняется акт и в отдельную таблицу товар акта (каждая строка содержит ссылку на товар, количество и причину утраты). \n4.2. В данном случае с партией все хорошо и он нажимает кнопку «партия проверена». \n5. По результатом предыдущего этапа в таблице «Товарная партия» создается строка о данной партии, а в таблицу «Товары товарной партии» вносятся значения о фактическом количестве поступивших товаров (4.1 – ТТН-акт, 4.2 – по ТТН).\n6. Сведения о данной партии появляются у менеджера и он занимается распределением товара по помещениям склада. У каждого помещения есть «Товары помещения» - там ссылка на соответствующий товар из таблицы «Товар», количество, и срок хранения этого товара.\nПо сути товар помещения – есть фактическое количество товаров на складе.\n7. В период до отправки товара со склада также может быть составлен акт, по факту его составления мы отнимаем от количества «Товаров помещения» соответствующие значения.\n8. Менеджеру склада поступает условная заявка на товары (которая не задействована в нашей системе) и менеджер оформляет ТТН. Процесс аналогичен шагам 2-3, за исключением того, что вносятся значения в таблицу «Товар». ТТН помечается как «исходящая».\n9. Контролер видит созданную ТТН и идет сверять товар. Тут может быть составлен акт на то что товаров в таком количестве нет, (процедура для акта обычная) и тогда в товарную партию отгружается весь товар который есть. По сути аналогично с пунктом 4 (2 кнопки «отправить товар» или «создать акт и отправить товар»). После нажатия на кнопку сохранить «для акта или отправить товар» создается товарная партия которая по сути отражает количество фактически отравленного товара. Процесс аналогичен пункту 5.\n10. На этом работа системы «Онлайн-склад окончена»\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanjermakov%2Fonlinewarehouse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivanjermakov%2Fonlinewarehouse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanjermakov%2Fonlinewarehouse/lists"}