Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop
This commit is contained in:
commit
72ec880a45
|
@ -94,12 +94,12 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="客户">
|
<el-table-column label="客户">
|
||||||
<template slot-scope="scope" v-if="scope.row.to_order_.customer_">
|
<template slot-scope="scope" v-if="scope.row.to_order_">
|
||||||
{{scope.row.to_order_.customer_.name }}
|
{{scope.row.to_order_.customer_.name }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合同">
|
<el-table-column label="合同">
|
||||||
<template slot-scope="scope" v-if="scope.row.to_order_.contract_">
|
<template slot-scope="scope" v-if="scope.row.to_order_">
|
||||||
{{scope.row.to_order_.contract_.name }}
|
{{scope.row.to_order_.contract_.name }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
|
@ -88,7 +88,7 @@ class FIFO(CommonADModel):
|
||||||
pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单',
|
pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单',
|
||||||
null=True, blank=True, on_delete=models.CASCADE)
|
null=True, blank=True, on_delete=models.CASCADE)
|
||||||
sale = models.ForeignKey(Sale, verbose_name='关联销售记录',
|
sale = models.ForeignKey(Sale, verbose_name='关联销售记录',
|
||||||
null=True, blank=True, on_delete=models.CASCADE)
|
null=True, blank=True, on_delete=models.CASCADE, related_name='fifo_sale')
|
||||||
|
|
||||||
|
|
||||||
class FIFOItem(BaseModel):
|
class FIFOItem(BaseModel):
|
||||||
|
|
|
@ -269,7 +269,7 @@ class SubProductionPlanViewSet(CreateUpdateModelAMixin, ListModelMixin, UpdateMo
|
||||||
obj.save()
|
obj.save()
|
||||||
return Response(TestRecordDetailBaseSerializer(instance=tr).data)
|
return Response(TestRecordDetailBaseSerializer(instance=tr).data)
|
||||||
|
|
||||||
@action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=FirstTestAuditSerializer)
|
@action(methods=['post'], detail=True, perms_map={'post':'first_audit'}, serializer_class=FirstTestAuditSerializer)
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def first_audit(self, request, pk=None):
|
def first_audit(self, request, pk=None):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -162,8 +162,11 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge
|
||||||
})
|
})
|
||||||
return Response(SaleProductPackDetailSerializer(instance=obj).data)
|
return Response(SaleProductPackDetailSerializer(instance=obj).data)
|
||||||
elif request.method == 'POST':
|
elif request.method == 'POST':
|
||||||
if obj.sale.is_audited:
|
if not obj.sale.is_audited:
|
||||||
raise exceptions.APIException('该销售记录已审核,不可装箱')
|
raise exceptions.APIException('该销售记录未审核,不可装箱')
|
||||||
|
if obj.sale.fifo_sale.first().is_audited:
|
||||||
|
raise exceptions.APIException('该销售记录已出库,不可装箱')
|
||||||
|
|
||||||
serializer = SaleProductPackSerializer(data=request.data)
|
serializer = SaleProductPackSerializer(data=request.data)
|
||||||
serializer.is_valid(raise_exception=True)
|
serializer.is_valid(raise_exception=True)
|
||||||
vdata = serializer.validated_data
|
vdata = serializer.validated_data
|
||||||
|
@ -185,6 +188,8 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge
|
||||||
obj = self.get_object()
|
obj = self.get_object()
|
||||||
if obj.sale.is_audited:
|
if obj.sale.is_audited:
|
||||||
raise exceptions.APIException('该销售记录已审核,不可填写备注')
|
raise exceptions.APIException('该销售记录已审核,不可填写备注')
|
||||||
|
if obj.sale.fifo_sale.first().is_audited:
|
||||||
|
raise exceptions.APIException('该销售记录已出库,不可装箱')
|
||||||
serializer = self.get_serializer(data=request.data)
|
serializer = self.get_serializer(data=request.data)
|
||||||
serializer.is_valid(raise_exception=True)
|
serializer.is_valid(raise_exception=True)
|
||||||
vdata = serializer.validated_data
|
vdata = serializer.validated_data
|
||||||
|
|
|
@ -27,7 +27,7 @@ class ProcessYieldView(CreateAPIView):
|
||||||
"""
|
"""
|
||||||
工序成品率统计
|
工序成品率统计
|
||||||
"""
|
"""
|
||||||
perms_map = {'get':'*'}
|
perms_map = {'post':'*'}
|
||||||
serializer_class = ProcessYieldSerializer
|
serializer_class = ProcessYieldSerializer
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -348,6 +348,11 @@ class WfService(object):
|
||||||
# 如果目标状态是脚本则执行
|
# 如果目标状态是脚本则执行
|
||||||
if destination_state.participant_type == State.PARTICIPANT_TYPE_ROBOT:
|
if destination_state.participant_type == State.PARTICIPANT_TYPE_ROBOT:
|
||||||
getattr(HandleScripts, destination_state.participant)(ticket)
|
getattr(HandleScripts, destination_state.participant)(ticket)
|
||||||
|
|
||||||
|
if destination_state.type == State.STATE_TYPE_END:
|
||||||
|
TicketFlow.objects.create(ticket=ticket, state=destination_state,
|
||||||
|
participant_type=0, intervene_type=0,
|
||||||
|
participant=None)
|
||||||
|
|
||||||
return ticket
|
return ticket
|
||||||
|
|
||||||
|
|
|
@ -298,7 +298,7 @@ class WProductViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet):
|
||||||
WpmService.add_wproduct_flow_log(i, 'putins')
|
WpmService.add_wproduct_flow_log(i, 'putins')
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
@action(methods=['post'], detail=True, perms_map={'post': 'wp_putin'}, serializer_class=WproductPutInSerializer)
|
@action(methods=['post'], detail=True, perms_map={'post': 'wp_putins'}, serializer_class=WproductPutInSerializer)
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def putin(self, request, pk=None):
|
def putin(self, request, pk=None):
|
||||||
"""
|
"""
|
||||||
|
@ -752,6 +752,8 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd
|
||||||
oms_w = omos.filter(subproduction_progress__is_main=True)
|
oms_w = omos.filter(subproduction_progress__is_main=True)
|
||||||
if len(oms_w) == 1:
|
if len(oms_w) == 1:
|
||||||
oms_w = oms_w[0]
|
oms_w = oms_w[0]
|
||||||
|
if oms_w.count!=1:
|
||||||
|
raise exceptions.APIException('产出数量应为1')
|
||||||
# 校验单片数量是否正确, 暂时未写
|
# 校验单片数量是否正确, 暂时未写
|
||||||
newstep, needTest = WpmService.get_next_step(
|
newstep, needTest = WpmService.get_next_step(
|
||||||
oms_w.subproduction_plan, step)
|
oms_w.subproduction_plan, step)
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 6.9 KiB |
Loading…
Reference in New Issue