forked from erp-dev/erp
feat: sse && multi_merchant completed
This commit is contained in:
@@ -29,7 +29,6 @@ class InventoryAdmin(StockAdminBase):
|
||||
'warehouse',
|
||||
'quantity',
|
||||
'num_of_rolls',
|
||||
'minimum_quantity',
|
||||
'frozen_quantity',
|
||||
'updated_at',
|
||||
)
|
||||
|
||||
17
stock/migrations/0003_remove_inventory_minimum_quantity.py
Normal file
17
stock/migrations/0003_remove_inventory_minimum_quantity.py
Normal file
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 5.2.7 on 2025-11-10 07:52
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('stock', '0002_stockfreeze'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='inventory',
|
||||
name='minimum_quantity',
|
||||
),
|
||||
]
|
||||
@@ -206,7 +206,7 @@ class Inventory(ModelBase):
|
||||
)
|
||||
quantity = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='库存数量')
|
||||
num_of_rolls = models.IntegerField(default=1, verbose_name='匹数')
|
||||
minimum_quantity = models.IntegerField(null=True, blank=True, verbose_name='最低库存量')
|
||||
# minimum_quantity = models.IntegerField(null=True, blank=True, verbose_name='最低库存量')
|
||||
spec = models.CharField(max_length=100, blank=True, null=True, verbose_name='规格')
|
||||
description = models.TextField(blank=True, null=True, verbose_name='备注描述')
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from . import models
|
||||
from django.db.models import Sum
|
||||
from django.utils import timezone
|
||||
from sse.services import push_simple_message_with_object_id
|
||||
import logging
|
||||
|
||||
|
||||
@@ -84,13 +85,10 @@ def make_stock_change_completed(stock_change_record: models.StockChangeRecord) -
|
||||
# 更新现有库存记录
|
||||
inventory_record.quantity += detail.quantity * positive
|
||||
inventory_record.num_of_rolls += positive
|
||||
|
||||
logger.info(
|
||||
f'更新库存记录 {inventory_record.id},新数量: {inventory_record.quantity}, '
|
||||
f'新匹数: {inventory_record.num_of_rolls}'
|
||||
)
|
||||
|
||||
inventory_record.save()
|
||||
else:
|
||||
# 创建新库存记录
|
||||
inventory_record = models.Inventory(
|
||||
@@ -100,11 +98,17 @@ def make_stock_change_completed(stock_change_record: models.StockChangeRecord) -
|
||||
quantity=detail.quantity * positive,
|
||||
num_of_rolls=1 if stock_change_record.is_incoming else -1,
|
||||
)
|
||||
inventory_record.save()
|
||||
logger.info(
|
||||
f'创建新库存记录 {inventory_record.id},数量: {inventory_record.quantity}, '
|
||||
f'匹数: {inventory_record.num_of_rolls}'
|
||||
)
|
||||
inventory_record.save()
|
||||
# 发送库存变动通知
|
||||
push_simple_message_with_object_id(
|
||||
event_type='stock_change',
|
||||
message=f'产品ID {detail.product_id} 位于 {stock_change_record.warehouse_id} 的库存已更新',
|
||||
object_id=inventory_record.id
|
||||
)
|
||||
|
||||
# 无论库存记录原本是否存在都创建库存快照
|
||||
create_stock_snapshot(detail, inventory_record)
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
from ninja import NinjaAPI
|
||||
|
||||
|
||||
router = NinjaAPI()
|
||||
|
||||
|
||||
@router.get('/')
|
||||
async def index(request):
|
||||
return {'message': 'Welcome to the Stock API'}
|
||||
Reference in New Issue
Block a user