brotherton-erpnext/startup/open_count.py

70 lines
2.0 KiB
Python

# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
# License: GNU General Public License v3. 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 core.doctype.event.event import get_events
from webnotes.utils import nowdate
today = nowdate()
return len(get_events(today, today))
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_doctypes = {
"ToDo": "To Do",
"Event": "Calendar",
"Comment": "Messages"
}
for_module = {
"To Do": get_things_todo,
"Calendar": get_todays_events,
"Messages": get_unread_messages
}