Merge branch 'master' of github.com:webnotes/erpnext
This commit is contained in:
commit
2166b24abb
@ -20,7 +20,7 @@ from webnotes import _, msgprint
|
||||
from webnotes.utils import flt, cint, today, cstr
|
||||
from setup.utils import get_company_currency, get_price_list_currency
|
||||
from accounts.utils import get_fiscal_year, validate_fiscal_year
|
||||
from utilities.transaction_base import TransactionBase, validate_conversion_rate, validate_uom_is_integer
|
||||
from utilities.transaction_base import TransactionBase, validate_conversion_rate
|
||||
import json
|
||||
|
||||
class AccountsController(TransactionBase):
|
||||
@ -55,15 +55,15 @@ class AccountsController(TransactionBase):
|
||||
label=self.meta.get_label(date_field))
|
||||
|
||||
def validate_for_freezed_account(self):
|
||||
for fld in ["customer", "supplier"]:
|
||||
if self.meta.get_field(fld):
|
||||
accounts = webnotes.conn.get_values("Account", {"master_type": fld.upper(),
|
||||
"master_name": self.doc.fields[fld], "company": self.doc.company},
|
||||
for fieldname in ["customer", "supplier"]:
|
||||
if self.meta.get_field(fieldname) and self.doc.fields.get(fieldname):
|
||||
accounts = webnotes.conn.get_values("Account", {"master_type": fieldname.title(),
|
||||
"master_name": self.doc.fields[fieldname], "company": self.doc.company},
|
||||
"freeze_account", as_dict=1)
|
||||
|
||||
if accounts:
|
||||
if not filter(lambda x: cstr(x.freeze_account) in ["", "No"], accounts):
|
||||
msgprint(_("Account for this ") + fld + _(" has been freezed. ") +
|
||||
msgprint(_("Account for this ") + fieldname + _(" has been freezed. ") +
|
||||
self.doc.doctype + _(" can not be made."), raise_exception=1)
|
||||
|
||||
def set_price_list_currency(self, buying_or_selling):
|
||||
|
@ -4,3 +4,18 @@
|
||||
}
|
||||
---
|
||||
The Calendar is a tool where you can create and share Events and also see auto-generated events from the system.
|
||||
|
||||
### Repeating Events
|
||||
|
||||
You can set events to repeat on every interval by Checking the "Repeat This Event"
|
||||
as shown in the example.
|
||||
|
||||
![Set Repeat This Event](img/event-1.png)
|
||||
|
||||
You can see the repeat events by switching back to the calendar.
|
||||
|
||||
![Event Repeated in Calendar](img/event-2.png)
|
||||
|
||||
### Reminders
|
||||
|
||||
You will also get a daily digest of all upcoming events for the day if any if the reminder field is checked.
|
@ -2,7 +2,7 @@
|
||||
{
|
||||
"creation": "2013-01-10 16:34:14",
|
||||
"docstatus": 0,
|
||||
"modified": "2013-07-22 15:27:26",
|
||||
"modified": "2013-07-26 15:24:31",
|
||||
"modified_by": "Administrator",
|
||||
"owner": "Administrator"
|
||||
},
|
||||
@ -16,11 +16,17 @@
|
||||
},
|
||||
{
|
||||
"doctype": "DocField",
|
||||
"fieldname": "grade_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "Grade",
|
||||
"name": "__common__",
|
||||
"oldfieldname": "grade_name",
|
||||
"oldfieldtype": "Data",
|
||||
"parent": "Grade",
|
||||
"parentfield": "fields",
|
||||
"parenttype": "DocType",
|
||||
"permlevel": 0
|
||||
"permlevel": 0,
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"cancel": 1,
|
||||
@ -42,22 +48,7 @@
|
||||
"name": "Grade"
|
||||
},
|
||||
{
|
||||
"doctype": "DocField",
|
||||
"fieldname": "trash_reason",
|
||||
"fieldtype": "Small Text",
|
||||
"label": "Trash Reason",
|
||||
"oldfieldname": "trash_reason",
|
||||
"oldfieldtype": "Small Text",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"doctype": "DocField",
|
||||
"fieldname": "grade_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "Grade",
|
||||
"oldfieldname": "grade_name",
|
||||
"oldfieldtype": "Data",
|
||||
"reqd": 1
|
||||
"doctype": "DocField"
|
||||
},
|
||||
{
|
||||
"doctype": "DocPerm"
|
||||
|
@ -294,7 +294,7 @@ class DocType(DocListController):
|
||||
|
||||
def get_calendar_events(self, user_id):
|
||||
from core.doctype.event.event import get_events
|
||||
events = get_events(self.future_from_date, self.future_to_date)
|
||||
events = get_events(self.future_from_date.strftime("%Y-%m-%d"), self.future_to_date.strftime("%Y-%m-%d"))
|
||||
|
||||
html = ""
|
||||
if events:
|
||||
|
@ -41,14 +41,10 @@ def get_things_todo():
|
||||
|
||||
def get_todays_events():
|
||||
"""Returns a count of todays events in calendar"""
|
||||
from core.doctype.event.event import get_events
|
||||
from webnotes.utils import nowdate
|
||||
todays_events = webnotes.conn.sql("""\
|
||||
SELECT COUNT(*) FROM `tabEvent`
|
||||
WHERE owner = %s
|
||||
AND event_type != 'Cancel'
|
||||
AND %s between date(starts_on) and date(ends_on)""", (
|
||||
webnotes.session.user, nowdate()))
|
||||
return todays_events[0][0]
|
||||
today = nowdate()
|
||||
return len(get_events(today, today))
|
||||
|
||||
def get_unread_messages():
|
||||
"returns unread (docstatus-0 messages for a user)"
|
||||
|
@ -39,6 +39,10 @@ def execute_all():
|
||||
run_fn(flush)
|
||||
|
||||
def execute_daily():
|
||||
# event reminders
|
||||
from core.doctype.event.event import send_event_digest
|
||||
run_fn(send_event_digest)
|
||||
|
||||
# email digest
|
||||
from setup.doctype.email_digest.email_digest import send
|
||||
run_fn(send)
|
||||
|
@ -185,9 +185,4 @@ fieldset[disabled] .btn-default:active,
|
||||
fieldset[disabled] .btn-default.active {
|
||||
background-color: #a7a9aa;
|
||||
border-color: #a7a9aa;
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
margin: 0 -20px 20px;
|
||||
border-radius: 0px;
|
||||
}
|
Loading…
Reference in New Issue
Block a user