brotherton-erpnext/startup/open_count.py
2013-06-18 15:46:32 +05:30

68 lines
2.0 KiB
Python

# ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
# GNU General Public Licnese. See "license.txt"
from __future__ import unicode_literals
import webnotes
for_doctype = {
"Support Ticket": {"status":"Open"},
"Customer Issue": {"status":"Open"},
"Task": {"status":"Open"},
"Lead": {"status":"Open"},
"Contact": {"status":"Open"},
"Opportunity": {"docstatus":0},
"Quotation": {"docstatus":0},
"Sales Order": {"docstatus":0},
"Journal Voucher": {"docstatus":0},
"Sales Invoice": {"docstatus":0},
"Purchase Invoice": {"docstatus":0},
"Leave Application": {"status":"Open"},
"Expense Claim": {"approval_status":"Draft"},
"Job Applicant": {"status":"Open"},
"Purchase Receipt": {"docstatus":0},
"Delivery Note": {"docstatus":0},
"Stock Entry": {"docstatus":0},
"Material Request": {"docstatus":0},
"Purchase Order": {"docstatus":0},
"Production Order": {"docstatus":0},
"BOM": {"docstatus":0},
"Timesheet": {"docstatus":0},
"Time Log": {"status":"Draft"},
"Time Log Batch": {"status":"Draft"},
}
def get_things_todo():
"""Returns a count of incomplete todos"""
incomplete_todos = webnotes.conn.sql("""\
SELECT COUNT(*) FROM `tabToDo`
WHERE IFNULL(checked, 0) = 0
AND (owner = %s or assigned_by=%s)""", (webnotes.session.user, webnotes.session.user))
return incomplete_todos[0][0]
def get_todays_events():
"""Returns a count of todays events in calendar"""
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]
def get_unread_messages():
"returns unread (docstatus-0 messages for a user)"
return webnotes.conn.sql("""\
SELECT count(*)
FROM `tabComment`
WHERE comment_doctype IN ('My Company', 'Message')
AND comment_docname = %s
AND ifnull(docstatus,0)=0
""", webnotes.user.name)[0][0]
for_module = {
"To Do": get_things_todo,
"Calendar": get_todays_events,
"Messages": get_unread_messages
}