def validate(self): super(SalesOrder, self).validate() self.validate_order_type() self.validate_delivery_date() self.validate_proj_cust() self.validate_po() self.validate_uom_is_integer("stock_uom", "stock_qty") self.validate_uom_is_integer("uom", "qty") self.validate_for_items() self.validate_warehouse() self.validate_drop_ship() self.validate_serial_no_based_delivery() validate_inter_company_party(self.doctype, self.customer, self.company, self.inter_company_order_reference) if self.coupon_code: from erpnext.accounts.doctype.pricing_rule.utils import validate_coupon_code validate_coupon_code(self.coupon_code) from erpnext.stock.doctype.packed_item.packed_item import make_packing_list make_packing_list(self) self.validate_with_previous_doc() self.set_status() if not self.billing_status: self.billing_status = 'Not Billed' if not self.delivery_status: self.delivery_status = 'Not Delivered'
def apply_coupon_code(applied_code, applied_referral_sales_partner): quotation = True if applied_code: coupon_list = frappe.get_all('Coupon Code', filters={ "docstatus": ("<", "2"), 'coupon_code': applied_code }, fields=['name']) if coupon_list: coupon_name = coupon_list[0].name from erpnext.accounts.doctype.pricing_rule.utils import validate_coupon_code validate_coupon_code(coupon_name) quotation = _get_cart_quotation() quotation.coupon_code = coupon_name quotation.flags.ignore_permissions = True quotation.save() if applied_referral_sales_partner: sales_partner_list = frappe.get_all( 'Sales Partner', filters={ 'docstatus': 0, 'referral_code': applied_referral_sales_partner }, fields=['name']) if sales_partner_list: sales_partner_name = sales_partner_list[0].name quotation.referral_sales_partner = sales_partner_name quotation.flags.ignore_permissions = True quotation.save() else: frappe.throw(_("Please enter valid coupon code !!")) else: frappe.throw(_("Please enter coupon code !!")) return quotation
def apply_coupon_code(applied_code, applied_referral_sales_partner): quotation = True if not applied_code: frappe.throw(_("Please enter a coupon code")) coupon_list = frappe.get_all('Coupon Code', filters={'coupon_code': applied_code}) if not coupon_list: frappe.throw(_("Please enter a valid coupon code")) coupon_name = coupon_list[0].name from erpnext.accounts.doctype.pricing_rule.utils import validate_coupon_code validate_coupon_code(coupon_name) quotation = _get_cart_quotation() quotation.coupon_code = coupon_name quotation.flags.ignore_permissions = True quotation.save() if applied_referral_sales_partner: sales_partner_list = frappe.get_all( 'Sales Partner', filters={'referral_code': applied_referral_sales_partner}) if sales_partner_list: sales_partner_name = sales_partner_list[0].name quotation.referral_sales_partner = sales_partner_name quotation.flags.ignore_permissions = True quotation.save() return quotation
def validate(self): if not cint(self.is_pos): frappe.throw( _("POS Invoice should have {} field checked.").format(frappe.bold("Include Payment")) ) # run on validate method of selling controller super(SalesInvoice, self).validate() self.validate_auto_set_posting_time() self.validate_mode_of_payment() self.validate_uom_is_integer("stock_uom", "stock_qty") self.validate_uom_is_integer("uom", "qty") self.validate_debit_to_acc() self.validate_write_off_account() self.validate_change_amount() self.validate_change_account() self.validate_item_cost_centers() self.validate_warehouse() self.validate_serialised_or_batched_item() self.validate_stock_availablility() self.validate_return_items_qty() self.set_status() self.set_account_for_mode_of_payment() self.validate_pos() self.validate_payment_amount() self.validate_loyalty_transaction() if self.coupon_code: from erpnext.accounts.doctype.pricing_rule.utils import validate_coupon_code validate_coupon_code(self.coupon_code)