60 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
| 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
 | |
| from apps.mtm.models import Material
 | |
| 
 | |
| 
 | |
| 
 | |
| 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
 | |
| 
 | |
| class Inventory(BaseModel):
 | |
|     """
 | |
|     库存物料
 | |
|     """
 | |
|     material = models.ForeignKey(Material, on_delete=models.CASCADE, verbose_name='物料信息')
 | |
|     count = models.IntegerField('仓库物料存量', default=0)
 | |
|     warehouse = models.ForeignKey(WareHouse, on_delete=models.CASCADE, verbose_name='所在仓库')
 | |
|     class Meta:
 | |
|         verbose_name = '库存表'
 | |
|         verbose_name_plural = verbose_name
 | |
| 
 | |
| class MaterialBatch(BaseModel):
 | |
|     """
 | |
|     物料批次
 | |
|     """
 | |
|     material = models.ForeignKey(Material, on_delete=models.CASCADE, verbose_name='物料信息')
 | |
|     warehouse = models.ForeignKey(WareHouse, on_delete=models.CASCADE, verbose_name='所在仓库')
 | |
|     count = models.IntegerField('存量', default=0)
 | |
|     batch = models.CharField('批次号', max_length=100, null=True, blank=True)
 | |
|     expiration_date = models.DateField('有效期', null=True, blank=True)
 | |
|     class Meta:
 | |
|         verbose_name = '库存表'
 | |
|         verbose_name_plural = verbose_name
 | |
| 
 | |
| class FIFO(CommonAModel):
 | |
|     """
 | |
|     出入库记录
 | |
|     """
 | |
|     type_choices = (
 | |
|         (1, '生产领料'),
 | |
|         (2, '销售提货'),
 | |
|         (3, '采购入库'),
 | |
|         (4, '生产入库')
 | |
|     )
 | |
|     type = models.IntegerField('出入库类型', default=1) |