|
@@ -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:
|