food-market/.gitignore
nns 9ba1edb236
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker API / Build + push API (push) Waiting to run
Docker API / Deploy API on stage (push) Blocked by required conditions
Docker Web / Build + push Web (push) Waiting to run
Docker Web / Deploy Web on stage (push) Blocked by required conditions
feat(stock): разрешение продажи в минус + предупреждения об отрицательных остатках
Решение владельца 08.10: продавать/списывать в минус РАЗРЕШЕНО, но с постоянным
предупреждением и требованием провести инвентаризацию.

- Снята блокировка «недостаточно остатка» (409 oversell): розница, касса (POS-синк),
  опт-отгрузка, списание, перемещение, возврат поставщику, отмена приёмки. Деньги
  (минус счёта) — по-прежнему запрещены (другое правило).
- NegativeStockAlert (сущность + миграция Phase39): создаётся/обновляется при уходе
  остатка < 0 (единая точка — StockService), авто-закрытие при возврате ≥ 0. Частичный
  уникальный индекс: один открытый алерт на (org, store, product). Причина: тип/номер
  документа/автор/время.
- API /api/negative-stock: список (с подсказкой «возможно, не проведена приёмка П-…»),
  /count (для баннеров), /recount (черновик инвентаризации по минусам склада). Отчёт
  «Остатки» — фильтр negativeOnly.
- Веб: постоянный баннер «N товаров в минусе — нужна инвентаризация» (сворачивается,
  крестиком не закрыть) + «Пересчитать эти товары»; в остатках — красная пометка и
  фильтр «Только минусы».
- Тесты: integration 2/2 (минус разрешён → алерт → recount → авто-закрытие; фильтр);
  full-chain шаг 9/13 переписаны (oversell/отмена приёмки → проведено + предупреждение).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 02:18:29 +05:00

101 lines
1.3 KiB
Plaintext

## .NET
bin/
obj/
out/
publish/
*.user
*.suo
*.userosscache
*.sln.docstates
*.pidb
*.svclog
.vs/
.vscode/
!.vscode/launch.json
!.vscode/settings.json
!.vscode/extensions.json
*.rsuser
*.userprefs
project.lock.json
project.fragment.lock.json
artifacts/
*.pubxml
*.publishproj
PublishScripts/
*.VisualState.xml
TestResult.xml
nunit-*.xml
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
.idea/
*.iml
.DS_Store
Thumbs.db
## Node / web
node_modules/
dist/
dist-ssr/
.vite/
.turbo/
.next/
.nuxt/
.cache/
coverage/
*.local
.env
.env.*
!.env.example
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
## Secrets
*.pfx
*.snk
*.pem
secrets.json
appsettings.Development.local.json
appsettings.Production.local.json
## OpenIddict dev keys (local only, never commit)
src/food-market.api/App_Data/
**/App_Data/openiddict-dev-key.xml
## Docker / local
.docker-data/
postgres-data/
*.sqlite
*.db
*.db-journal
## OS / editors
*.swp
*.swo
*~
.vscode-test/
## Claude Code personal settings
.claude/settings.local.json
src/food-market.public/.astro/
src/food-market.public/dist/
src/food-market.public/node_modules/
## POS build artifacts (self-contained сборки кассы — не в git)
deploy/pos-dist/
tests/**/TestResults/
src/food-market.api/uploads/