Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop
This commit is contained in:
commit
b580f858eb
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
class InmConfig(AppConfig):
|
||||||
|
name = 'apps.inm'
|
||||||
|
verbose_name = '库存管理'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
# Generated by Django 3.2.6 on 2021-09-02 08:22
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
import django.utils.timezone
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='WareHouse',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||||
|
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||||
|
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||||
|
('number', models.CharField(max_length=20, unique=True, verbose_name='仓库编号')),
|
||||||
|
('name', models.CharField(max_length=20, unique=True, verbose_name='仓库名称')),
|
||||||
|
('place', models.CharField(max_length=50, verbose_name='具体地点')),
|
||||||
|
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='warehouse_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||||
|
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='warehouse_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': '仓库信息',
|
||||||
|
'verbose_name_plural': '仓库信息',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
from django.db import models
|
||||||
|
from django.db.models.base import Model
|
||||||
|
import django.utils.timezone as timezone
|
||||||
|
from django.db.models.query import QuerySet
|
||||||
|
from apps.system.models import CommonAModel, CommonBModel, Organization, User, Dict, File
|
||||||
|
from utils.model import SoftModel, BaseModel
|
||||||
|
from simple_history.models import HistoricalRecords
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class WareHouse(CommonAModel):
|
||||||
|
"""
|
||||||
|
仓库信息
|
||||||
|
"""
|
||||||
|
number = models.CharField('仓库编号', max_length=20, unique=True)
|
||||||
|
name = models.CharField('仓库名称', max_length=20, unique=True)
|
||||||
|
place = models.CharField('具体地点', max_length=50)
|
||||||
|
class Meta:
|
||||||
|
verbose_name = '仓库信息'
|
||||||
|
verbose_name_plural = verbose_name
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
from rest_framework import serializers
|
||||||
|
|
||||||
|
from apps.inm.models import WareHouse
|
||||||
|
|
||||||
|
from apps.system.serializers import UserSimpleSerializer
|
||||||
|
|
||||||
|
class WareHouseSerializer(serializers. ModelSerializer):
|
||||||
|
create_by_=UserSimpleSerializer('create_by', read_only=True)
|
||||||
|
class Meta:
|
||||||
|
model = WareHouse
|
||||||
|
fields = '__all__'
|
||||||
|
|
||||||
|
class WareHouseCreateUpdateSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = WareHouse
|
||||||
|
fields = ['name', 'number', 'place']
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
from django.db.models import base
|
||||||
|
from rest_framework import urlpatterns
|
||||||
|
from apps.inm.views import WarehouseViewSet
|
||||||
|
from django.urls import path, include
|
||||||
|
from rest_framework.routers import DefaultRouter
|
||||||
|
|
||||||
|
router = DefaultRouter()
|
||||||
|
router.register('warehouse', WarehouseViewSet, basename='warehouse')
|
||||||
|
urlpatterns = [
|
||||||
|
path('', include(router.urls)),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
from django.shortcuts import render
|
||||||
|
from rest_framework.viewsets import ModelViewSet
|
||||||
|
|
||||||
|
from apps.inm.models import WareHouse
|
||||||
|
from apps.inm.serializers import WareHouseSerializer, WareHouseCreateUpdateSerializer
|
||||||
|
from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
|
||||||
|
|
||||||
|
|
||||||
|
# Create your views here.
|
||||||
|
class WarehouseViewSet(CreateUpdateModelAMixin, ModelViewSet):
|
||||||
|
"""
|
||||||
|
仓库-增删改查
|
||||||
|
"""
|
||||||
|
perms_map = {'*': '*'}
|
||||||
|
queryset = WareHouse.objects.select_related('create_by').all()
|
||||||
|
serializer_class = WareHouseSerializer
|
||||||
|
search_fields = ['name', 'number', 'place']
|
||||||
|
filterset_fields = []
|
||||||
|
ordering_fields = ['create_time']
|
||||||
|
ordering = ['-create_time']
|
||||||
|
|
||||||
|
def get_serializer_class(self):
|
||||||
|
if self.action in ['create', 'update']:
|
||||||
|
return WareHouseCreateUpdateSerializer
|
||||||
|
return WareHouseSerializer
|
||||||
|
|
@ -51,7 +51,8 @@ INSTALLED_APPS = [
|
||||||
'apps.em',
|
'apps.em',
|
||||||
'apps.hrm',
|
'apps.hrm',
|
||||||
'apps.wf',
|
'apps.wf',
|
||||||
'apps.mtm'
|
'apps.mtm',
|
||||||
|
'apps.inm',
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,7 @@ urlpatterns = [
|
||||||
path('api/hrm/', include('apps.hrm.urls')),
|
path('api/hrm/', include('apps.hrm.urls')),
|
||||||
path('api/wf/', include('apps.wf.urls')),
|
path('api/wf/', include('apps.wf.urls')),
|
||||||
path('api/mtm/', include('apps.mtm.urls')),
|
path('api/mtm/', include('apps.mtm.urls')),
|
||||||
|
path('api/inm/', include('apps.inm.urls')),
|
||||||
# 工具
|
# 工具
|
||||||
path('api/utils/signature/', GenSignature.as_view()),
|
path('api/utils/signature/', GenSignature.as_view()),
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue