Browse Source

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

wushaodong 3 years ago
parent
commit
2a1f0918dc
1 changed files with 38 additions and 1 deletions
  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.goods.models import GoodsGodownEntryDetail
 from apps.material.models import DeliverDetail, DeliverReturnDetail
 from apps.material.models import DeliverDetail, DeliverReturnDetail
 from apps.supplier.models import Supplier
 from apps.supplier.models import Supplier
+from apps.config.models import Config
 
 
 from apps.purchase.filters import PurchasePlanFilter, PurchaseOrderFilter, PurchasePriceFilter, GodownEntryFilter, \
 from apps.purchase.filters import PurchasePlanFilter, PurchaseOrderFilter, PurchasePriceFilter, GodownEntryFilter, \
     PurchasePaymentFilter, PurchaseOrderDetailFilter, GodownEntryReturnFilter, GodownEntryReturnDetailFilter, PurchasePriceExportFilter
     PurchasePaymentFilter, PurchaseOrderDetailFilter, GodownEntryReturnFilter, GodownEntryReturnDetailFilter, PurchasePriceExportFilter
@@ -1718,7 +1719,6 @@ def godownentry_list(request):
 @csrf_exempt
 @csrf_exempt
 @token_required
 @token_required
 def godownentry_save(request):
 def godownentry_save(request):
-    #todo 简易流程:添加入库单,同时生成合同,自动审核合同。
     id = request.GET.get('id')
     id = request.GET.get('id')
     main_data = json.loads(request.POST.get('main'))
     main_data = json.loads(request.POST.get('main'))
     items_data = json.loads(request.POST.get('item'))
     items_data = json.loads(request.POST.get('item'))
@@ -1731,12 +1731,49 @@ def godownentry_save(request):
                 raise CustomError(u'该入库单已审核,禁止修改!')
                 raise CustomError(u'该入库单已审核,禁止修改!')
             serializer = serializer.validSave()
             serializer = serializer.validSave()
             valid_permission(request.user, serializer.getPermission('add'))
             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()
             GodownEntryDetail.objects.filter(main=serializer).delete()
             for item in items_data:
             for item in items_data:
                 item['main'] = serializer.id
                 item['main'] = serializer.id
                 detail_serializer = GodownEntryDetailSerializer.factory(request.user, data=item)
                 detail_serializer = GodownEntryDetailSerializer.factory(request.user, data=item)
                 detail_serializer.validSave()
                 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()
             serializer.update_total()
+            if pb:
+                pb.count = serializer.total_count
+                pb.amount = serializer.total_amount
+                pb.save()
     except CustomError, e:
     except CustomError, e:
         return JSONError(e.get_error_msg())
         return JSONError(e.get_error_msg())
     except Exception, e:
     except Exception, e: