Просмотр исходного кода

简易流程:添加入库单,同时生成合同,自动审核合同。

wushaodong 3 лет назад
Родитель
Сommit
2a1f0918dc
1 измененных файлов с 38 добавлено и 1 удалено
  1. 38 1
      apps/purchase/views.py

+ 38 - 1
apps/purchase/views.py

@@ -27,6 +27,7 @@ from apps.warehouse.models import WarehouseStock, InventoryDetail
 from apps.goods.models import GoodsGodownEntryDetail
 from apps.material.models import DeliverDetail, DeliverReturnDetail
 from apps.supplier.models import Supplier
+from apps.config.models import Config
 
 from apps.purchase.filters import PurchasePlanFilter, PurchaseOrderFilter, PurchasePriceFilter, GodownEntryFilter, \
     PurchasePaymentFilter, PurchaseOrderDetailFilter, GodownEntryReturnFilter, GodownEntryReturnDetailFilter, PurchasePriceExportFilter
@@ -1718,7 +1719,6 @@ def godownentry_list(request):
 @csrf_exempt
 @token_required
 def godownentry_save(request):
-    #todo 简易流程:添加入库单,同时生成合同,自动审核合同。
     id = request.GET.get('id')
     main_data = json.loads(request.POST.get('main'))
     items_data = json.loads(request.POST.get('item'))
@@ -1731,12 +1731,49 @@ def godownentry_save(request):
                 raise CustomError(u'该入库单已审核,禁止修改!')
             serializer = serializer.validSave()
             valid_permission(request.user, serializer.getPermission('add'))
+            # 简易流程:添加入库单,同时生成合同,自动审核合同。
+            godownentry_process = Config.getValue('godownentry_process')
+            pb = None
+            if godownentry_process == '1':
+                order_data = {
+                    'supplier':serializer.supplier.id,
+                    'status':PurchaseOrder.TAKE_EFFECT,
+                    'arrval':PurchaseOrder.ALL_ARRVAL,
+                    'check_time':timezone.now(),
+                    'check_user':request.user.id,
+                    'count':0,
+                    'amount':0,
+                }
+                pb = PurchaseOrderSerializer.factory(request.user, order_data)
+                pb = pb.validSave()
+                pb.no = pb.order_no
+                serializer.purchase_order = pb
+                serializer.save()
+
             GodownEntryDetail.objects.filter(main=serializer).delete()
             for item in items_data:
                 item['main'] = serializer.id
                 detail_serializer = GodownEntryDetailSerializer.factory(request.user, data=item)
                 detail_serializer.validSave()
+
+                if godownentry_process == '1':
+                    detail = detail_serializer.instance
+                    dict = {
+                        'main':pb.id,
+                        'product':detail.product_base.id,
+                        'count':detail.count,
+                        'price':detail.price,
+                        'amount':detail.amount,
+                        'arrval_count':detail.count,
+                        'is_arrval':True,
+                    }
+                    pbd = PurchaseOrderDetailSerializer.factory(request.user, dict)
+                    pbd.validSave()
             serializer.update_total()
+            if pb:
+                pb.count = serializer.total_count
+                pb.amount = serializer.total_amount
+                pb.save()
     except CustomError, e:
         return JSONError(e.get_error_msg())
     except Exception, e: