Create Delivery Note Using Script

Hi,

I want to create a “Delivery Note” from a custom form using Server Script. I am getting error messages. Anyone has working sample script? If so, pls share.

Attaching my script.

Thanks,
Joseph

del_doc = frappe.new_doc('Delivery Note') ;
#
del_doc.naming_series = "DN-.YY.-" ;
del_doc.company = doc.company ;
del_doc.customer = doc.customer ;
del_doc.posting_date = doc.delivery_date ;
del_doc.project = doc.project_no ;
del_doc.ignore_pricing_rule = 1 ;
del_doc.currency = 'INR' ;
del_doc.selling_price_list = 'Standard Selling' ;
del_doc.price_list_currency = 'INR' ;
del_doc.plc_conversion_rate = 1.00 ;
del_doc.total = doc.delivery_amount ;
#
for dd in doc.delivery_details:
    dd_doc = frappe.new_doc('Delivery Note Item') ;
    #
    dd_doc.item_code = dd.item_code ;
    dd_doc.item_name = dd.name ;
    dd_doc.description = dd.task_detail ;
    dd_doc.uom = dd.uom ;
    dd_doc.qty = dd.del_qty ;
    dd_doc.rate = dd.del_rate ;
    dd_doc.price_list_rate = dd.del_rate ;
    dd_doc.amount = dd.del_val ;
    dd_doc.conversion_factor = 1 ;
    #
    del_doc.append("items", dd_doc) ;
    #
del_doc.insert(ignore_permissions=True) ;

Hi @pjoseph,

Please check the code:

del_doc = frappe.new_doc('Delivery Note')

# Set Delivery Note fields
del_doc.naming_series = "DN-.YY.-"
del_doc.company = doc.company
del_doc.customer = doc.customer
del_doc.posting_date = doc.delivery_date
del_doc.project = doc.project_no
del_doc.ignore_pricing_rule = 1
del_doc.currency = 'INR'
del_doc.selling_price_list = 'Standard Selling'
del_doc.price_list_currency = 'INR'
del_doc.plc_conversion_rate = 1.00
del_doc.total = doc.delivery_amount

# Iterate through delivery details and create Delivery Note Items
for dd in doc.delivery_details:
    # Append the Delivery Note Item to the parent Delivery Note
    del_doc.append("items", {
        'item_code': dd.item_code,
        'item_name': dd.name,
        'description': dd.task_detail,
        'uom': dd.uom,
        'qty': dd.del_qty,
        'rate': dd.del_rate,
        'price_list_rate': dd.del_rate,
        'amount': dd.del_val,
        'conversion_factor': 1
    })

del_doc.insert(ignore_permissions=True)

Please check and set the field name according to the custom doctype.

I hope this helps.

Thank You!

Thanks a lot @NCP . There is a spelling mistake in the custom code. It works.