Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop
This commit is contained in:
commit
e13ae7ff9b
|
@ -147,7 +147,7 @@ class FIFOViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet):
|
||||||
|
|
||||||
def destroy(self, request, *args, **kwargs):
|
def destroy(self, request, *args, **kwargs):
|
||||||
obj = self.get_object()
|
obj = self.get_object()
|
||||||
if obj.is_submited:
|
if obj.is_audited:
|
||||||
raise exceptions.APIException('该记录已审核,不可删除')
|
raise exceptions.APIException('该记录已审核,不可删除')
|
||||||
return super().destroy(request, *args, **kwargs)
|
return super().destroy(request, *args, **kwargs)
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ class PlanFilterSet(filters.FilterSet):
|
||||||
create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte')
|
create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte')
|
||||||
create_time_end = filters.DateFilter(field_name="create_time", lookup_expr='lte')
|
create_time_end = filters.DateFilter(field_name="create_time", lookup_expr='lte')
|
||||||
tag = filters.CharFilter(method='filter_tag')
|
tag = filters.CharFilter(method='filter_tag')
|
||||||
|
material = filters.NumberFilter(method='filter_material')
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ProductionPlan
|
model = ProductionPlan
|
||||||
fields = ['product', 'order', 'create_time_start', 'create_time_end']
|
fields = ['product', 'order', 'create_time_start', 'create_time_end']
|
||||||
|
@ -19,10 +20,17 @@ class PlanFilterSet(filters.FilterSet):
|
||||||
elif value == 'working':
|
elif value == 'working':
|
||||||
queryset = queryset.exclude(state__in=[ProductionPlan.PLAN_STATE_DONE, ProductionPlan.PLAN_MTEST_DONE])
|
queryset = queryset.exclude(state__in=[ProductionPlan.PLAN_STATE_DONE, ProductionPlan.PLAN_MTEST_DONE])
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
def filter_material(self, queryset, name, value):
|
||||||
|
"""
|
||||||
|
按物料筛选
|
||||||
|
"""
|
||||||
|
return queryset.filter(subplan_plan__progress_subplan__material__id=value).distinct()
|
||||||
|
|
||||||
class SubproductionProgressFilterSet(filters.FilterSet):
|
class SubproductionProgressFilterSet(filters.FilterSet):
|
||||||
|
|
||||||
operation = filters.NumberFilter(method='filter_operation')
|
operation = filters.NumberFilter(method='filter_operation')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = SubProductionProgress
|
model = SubProductionProgress
|
||||||
fields = ['material', 'subproduction_plan', 'operation', 'type']
|
fields = ['material', 'subproduction_plan', 'operation', 'type']
|
||||||
|
@ -40,3 +48,5 @@ class SubproductionProgressFilterSet(filters.FilterSet):
|
||||||
queryset = queryset.exclude(material__type__in =[Material.MA_TYPE_HALFGOOD, Material.MA_TYPE_GOOD])
|
queryset = queryset.exclude(material__type__in =[Material.MA_TYPE_HALFGOOD, Material.MA_TYPE_GOOD])
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ class ProductionPlan(CommonAModel):
|
||||||
(PLAN_MTEST_DONE, '军检完成')
|
(PLAN_MTEST_DONE, '军检完成')
|
||||||
)
|
)
|
||||||
number = models.CharField('编号', max_length=50, unique=True)
|
number = models.CharField('编号', max_length=50, unique=True)
|
||||||
order = models.ForeignKey(Order, verbose_name='关联订单', null=True, blank=True, on_delete=models.SET_NULL)
|
order = models.ForeignKey(Order, verbose_name='关联订单', null=True, blank=True, on_delete=models.SET_NULL, related_name='plan_order')
|
||||||
state = models.PositiveIntegerField('状态', choices=state_choices, default=PLAN_STATE_PLANING)
|
state = models.PositiveIntegerField('状态', choices=state_choices, default=PLAN_STATE_PLANING)
|
||||||
product = models.ForeignKey(Material, verbose_name='生产产品', on_delete=models.CASCADE)
|
product = models.ForeignKey(Material, verbose_name='生产产品', on_delete=models.CASCADE)
|
||||||
count = models.PositiveIntegerField('生产数量', default=1)
|
count = models.PositiveIntegerField('生产数量', default=1)
|
||||||
|
|
|
@ -6,9 +6,16 @@ from apps.sam.models import Order
|
||||||
class OrderFilterSet(filters.FilterSet):
|
class OrderFilterSet(filters.FilterSet):
|
||||||
create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte')
|
create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte')
|
||||||
create_time_end = filters.DateFilter(field_name="create_time", lookup_expr='lte')
|
create_time_end = filters.DateFilter(field_name="create_time", lookup_expr='lte')
|
||||||
|
material = filters.NumberFilter(method='filter_material')
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Order
|
model = Order
|
||||||
fields = ['product', 'contract', 'customer', 'create_time_start', 'create_time_end']
|
fields = ['product', 'contract', 'customer', 'create_time_start', 'create_time_end']
|
||||||
|
|
||||||
|
def filter_material(self, queryset, name, value):
|
||||||
|
"""
|
||||||
|
按物料筛选
|
||||||
|
"""
|
||||||
|
return queryset.filter(plan_order__subplan_plan__progress_subplan__material__id=value).distinct()
|
||||||
|
|
||||||
|
|
||||||
class ContractFilterSet(filters.FilterSet):
|
class ContractFilterSet(filters.FilterSet):
|
||||||
|
|
Loading…
Reference in New Issue