Esempio n. 1
0
    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'
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
	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)