1
+ import json
2
+ from d2h .api import create_purchase_receipt
1
3
import frappe
2
4
3
5
def on_submit_purchase_receipt (doc , method ):
@@ -12,8 +14,30 @@ def on_submit_purchase_receipt(doc, method):
12
14
else :
13
15
item_order .custom_good_in_transit_qty = 0
14
16
item_order .save (ignore_permissions = True )
17
+ new_purchase_receipt_required = False
18
+ new_items = []
19
+ purchase_order = None
20
+ for item in doc .items :
21
+ if item .original_quantity - item .qty > 0 :
22
+ new_purchase_receipt_required = True
23
+ purchase_order = item .purchase_order
24
+ item_order = frappe .get_doc ("Purchase Order Item" , {
25
+ "item_code" : item .item_code ,
26
+ "parent" : item .purchase_order
27
+ })
28
+ new_items .append ({
29
+ "item_code" : item .item_code ,
30
+ "qty" : item .original_quantity - item .qty ,
31
+ "uom" : item .uom ,
32
+ "item_name" : item .item_name ,
33
+ "name" : item_order .name ,
34
+ })
35
+ if new_purchase_receipt_required :
36
+ create_purchase_receipt (purchase_order , json .dumps (new_items ))
15
37
16
38
def after_insert_purchase_receipt (doc , method ):
39
+ for item in doc .items :
40
+ item .original_quantity = item .qty
17
41
doc .custom_item_duplicate = []
18
42
for item in doc .items :
19
43
new_item = doc .append ("custom_item_duplicate" , {})
@@ -30,6 +54,9 @@ def after_insert_purchase_receipt(doc, method):
30
54
new_item .serial_and_batch_bundle = item .serial_and_batch_bundle
31
55
new_item .rejected_serial_and_batch_bundle = item .rejected_serial_and_batch_bundle
32
56
new_item .use_serial_batch_fields = item .use_serial_batch_fields
57
+ new_item .original_quantity = item .original_quantity
58
+
59
+ doc .save (ignore_permissions = True )
33
60
34
61
def validate_purchase_receipt (doc , method ):
35
62
user_roles = frappe .get_roles (frappe .session .user )
@@ -59,6 +86,7 @@ def validate_purchase_receipt(doc, method):
59
86
new_item .serial_and_batch_bundle = item .serial_and_batch_bundle
60
87
new_item .rejected_serial_and_batch_bundle = item .rejected_serial_and_batch_bundle
61
88
new_item .use_serial_batch_fields = item .use_serial_batch_fields
89
+ new_item .original_quantity = item .original_quantity
62
90
63
91
def on_delete_purchase_receipt (doc , method ):
64
92
on_submit_purchase_receipt (doc , method )
0 commit comments