[opportunity] not submittable

This commit is contained in:
Rushabh Mehta 2015-04-13 16:21:58 +05:30
parent 20bcf6aeff
commit fd0f1cb8b7
5 changed files with 27 additions and 24 deletions

View File

@ -13,12 +13,10 @@ status_map = {
["Opportunity", "has_opportunity"], ["Opportunity", "has_opportunity"],
], ],
"Opportunity": [ "Opportunity": [
["Draft", None], ["Open", None],
["Submitted", "eval:self.docstatus==1"],
["Lost", "eval:self.status=='Lost'"], ["Lost", "eval:self.status=='Lost'"],
["Quotation", "has_quotation"], ["Quotation", "has_quotation"],
["Converted", "has_ordered_quotation"], ["Converted", "has_ordered_quotation"]
["Cancelled", "eval:self.docstatus==2"],
], ],
"Quotation": [ "Quotation": [
["Draft", None], ["Draft", None],

View File

@ -119,10 +119,10 @@
"no_copy": 1, "no_copy": 1,
"oldfieldname": "status", "oldfieldname": "status",
"oldfieldtype": "Select", "oldfieldtype": "Select",
"options": "Draft\nSubmitted\nQuotation\nLost\nCancelled\nReplied\nOpen", "options": "Open\nQuotation\nLost\nReplied",
"permlevel": 0, "permlevel": 0,
"print_hide": 1, "print_hide": 1,
"read_only": 1, "read_only": 0,
"reqd": 1 "reqd": 1
}, },
{ {
@ -406,17 +406,17 @@
], ],
"icon": "icon-info-sign", "icon": "icon-info-sign",
"idx": 1, "idx": 1,
"is_submittable": 1, "is_submittable": 0,
"modified": "2015-04-02 22:03:52.841173", "modified": "2015-04-13 06:50:43.198407",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "CRM", "module": "CRM",
"name": "Opportunity", "name": "Opportunity",
"owner": "Administrator", "owner": "Administrator",
"permissions": [ "permissions": [
{ {
"amend": 1, "amend": 0,
"apply_user_permissions": 1, "apply_user_permissions": 1,
"cancel": 1, "cancel": 0,
"create": 1, "create": 1,
"delete": 1, "delete": 1,
"email": 1, "email": 1,
@ -426,12 +426,12 @@
"report": 1, "report": 1,
"role": "Sales User", "role": "Sales User",
"share": 1, "share": 1,
"submit": 1, "submit": 0,
"write": 1 "write": 1
}, },
{ {
"amend": 1, "amend": 0,
"cancel": 1, "cancel": 0,
"create": 1, "create": 1,
"delete": 1, "delete": 1,
"email": 1, "email": 1,
@ -441,7 +441,7 @@
"report": 1, "report": 1,
"role": "Sales Manager", "role": "Sales Manager",
"share": 1, "share": 1,
"submit": 1, "submit": 0,
"write": 1 "write": 1
} }
], ],

View File

@ -28,6 +28,10 @@ class Opportunity(TransactionBase):
def set_subject(self, subject): def set_subject(self, subject):
self.title = subject self.title = subject
def after_insert(self):
if self.lead:
frappe.get_doc("Lead", self.lead).set_status(update=True)
def validate(self): def validate(self):
self._prev = frappe._dict({ self._prev = frappe._dict({
"contact_date": frappe.db.get_value("Opportunity", self.name, "contact_date") if \ "contact_date": frappe.db.get_value("Opportunity", self.name, "contact_date") if \
@ -51,15 +55,6 @@ class Opportunity(TransactionBase):
from erpnext.accounts.utils import validate_fiscal_year from erpnext.accounts.utils import validate_fiscal_year
validate_fiscal_year(self.transaction_date, self.fiscal_year, _("Opportunity Date"), self) validate_fiscal_year(self.transaction_date, self.fiscal_year, _("Opportunity Date"), self)
def on_submit(self):
if self.lead:
frappe.get_doc("Lead", self.lead).set_status(update=True)
def on_cancel(self):
if self.has_quotation():
frappe.throw(_("Cannot Cancel Opportunity as Quotation Exists"))
self.set_status(update=True)
def declare_enquiry_lost(self,arg): def declare_enquiry_lost(self,arg):
if not self.has_quotation(): if not self.has_quotation():
frappe.db.set(self, 'status', 'Lost') frappe.db.set(self, 'status', 'Lost')

View File

@ -137,4 +137,4 @@ erpnext.patches.v5_0.newsletter
execute:frappe.delete_doc("DocType", "Chart of Accounts") execute:frappe.delete_doc("DocType", "Chart of Accounts")
execute:frappe.delete_doc("DocType", "Style Settings") execute:frappe.delete_doc("DocType", "Style Settings")
erpnext.patches.v5_0.update_opportunity erpnext.patches.v5_0.update_opportunity
erpnext.patches.v5_0.opportunity_not_submittable

View File

@ -0,0 +1,10 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
def execute():
frappe.reload_doctype("Opportunity")
frappe.db.sql("update tabDocPerm set submit=0, cancel=0, amend=0 where parent='Opportunity'")
frappe.db.sql("update tabOpportunity set docstatus=0 where docstatus=1")