1
0
forked from erp-dev/erp

feat: running on docker fully, and added rabbitmq/worker container

This commit is contained in:
2025-11-25 15:56:13 +08:00
parent cd6a2370fc
commit d90917e764
34 changed files with 2474 additions and 74 deletions

0
business/__init__.py Normal file
View File

11
business/admin.py Normal file
View File

@@ -0,0 +1,11 @@
from django.contrib import admin
from . import models
@admin.register(models.PurchaseOrder)
class PurchaseOrderAdmin(admin.ModelAdmin):
list_display = ('id', 'supplier', 'order_date', 'total_amount')
search_fields = ('supplier__name',)
list_filter = ('order_date',)
ordering = ('-order_date',)

7
business/apps.py Normal file
View File

@@ -0,0 +1,7 @@
from django.apps import AppConfig
class BusinessConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'business'
verbose_name = '业务模块'

View File

@@ -0,0 +1,43 @@
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
('basic_info', '0013_alter_customer_options'),
('stock', '0005_stockchangedetail_consume_fields'),
]
operations = [
migrations.SeparateDatabaseAndState(
database_operations=[
migrations.RunSQL(
sql="ALTER TABLE IF EXISTS stock_purchaseorder RENAME TO business_purchaseorder;",
reverse_sql="ALTER TABLE IF EXISTS business_purchaseorder RENAME TO stock_purchaseorder;",
),
],
state_operations=[
migrations.CreateModel(
name='PurchaseOrder',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('order_date', models.DateField(verbose_name='订单日期')),
('total_amount', models.DecimalField(decimal_places=2, max_digits=15, verbose_name='总金额')),
('remarks', models.TextField(blank=True, null=True, verbose_name='备注')),
('merchant', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='purchase_orders', to='basic_info.merchant', verbose_name='所属商户')),
('supplier', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='purchase_orders', to='basic_info.supplier', verbose_name='供应商')),
],
options={
'verbose_name': '采购单',
'verbose_name_plural': '采购单',
},
),
],
),
]

View File

31
business/models.py Normal file
View File

@@ -0,0 +1,31 @@
from django.db import models
from flower.common import ModelBase
from basic_info import models as basic_info_models
class PurchaseOrder(ModelBase):
"""采购单模型(业务模块)"""
id = models.BigAutoField(primary_key=True)
merchant = models.ForeignKey(
basic_info_models.Merchant,
on_delete=models.PROTECT,
related_name='purchase_orders',
verbose_name='所属商户',
)
supplier = models.ForeignKey(
basic_info_models.Supplier,
on_delete=models.PROTECT,
related_name='purchase_orders',
verbose_name='供应商',
)
order_date = models.DateField(verbose_name='订单日期')
total_amount = models.DecimalField(max_digits=15, decimal_places=2, verbose_name='总金额')
remarks = models.TextField(blank=True, null=True, verbose_name='备注')
def __str__(self):
return f'采购订单 {self.id} - {self.supplier.name}'
class Meta:
verbose_name = '采购单'
verbose_name_plural = '采购单'

3
business/tests.py Normal file
View File

@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

3
business/views.py Normal file
View File

@@ -0,0 +1,3 @@
from django.shortcuts import render
# Create your views here.