Add Compliance Deadline + Compliance Calendar DocTypes for ERPNext
Compliance Deadline: created by job_server after filing completion, tracks annual filing deadlines (RMD, CPNI, 499-A, BDC). Compliance Calendar: used by renewal_worker for billing cycle, tracks due dates, invoices, and recurring renewal entries. Both were referenced in code but never created — caused 417 errors. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d6da7f4d7b
commit
05eec47528
6 changed files with 346 additions and 0 deletions
|
|
@ -0,0 +1,198 @@
|
||||||
|
{
|
||||||
|
"actions": [],
|
||||||
|
"autoname": "hash",
|
||||||
|
"creation": "2026-05-04 00:00:00.000000",
|
||||||
|
"doctype": "DocType",
|
||||||
|
"editable_grid": 0,
|
||||||
|
"engine": "InnoDB",
|
||||||
|
"field_order": [
|
||||||
|
"title",
|
||||||
|
"compliance_type",
|
||||||
|
"category",
|
||||||
|
"status",
|
||||||
|
"dates_section",
|
||||||
|
"due_date",
|
||||||
|
"reminder_date",
|
||||||
|
"entity_section",
|
||||||
|
"entity_name",
|
||||||
|
"customer",
|
||||||
|
"order_reference",
|
||||||
|
"state_code",
|
||||||
|
"details_section",
|
||||||
|
"description",
|
||||||
|
"amount_usd",
|
||||||
|
"amount_cad",
|
||||||
|
"billing_section",
|
||||||
|
"invoice",
|
||||||
|
"recurring",
|
||||||
|
"recurrence_period",
|
||||||
|
"renewal_of"
|
||||||
|
],
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldname": "title",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Title",
|
||||||
|
"reqd": 1,
|
||||||
|
"in_list_view": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "compliance_type",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Compliance Type",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"description": "e.g. FCC RMD, FCC CPNI, State PUC, CRTC"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "category",
|
||||||
|
"fieldtype": "Select",
|
||||||
|
"label": "Category",
|
||||||
|
"options": "Federal\nState\nCanada\nOther",
|
||||||
|
"default": "Other"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "status",
|
||||||
|
"fieldtype": "Select",
|
||||||
|
"label": "Status",
|
||||||
|
"options": "Upcoming\nDue Soon\nInvoice Sent\nPaid\nOverdue\nCompleted\nCancelled",
|
||||||
|
"default": "Upcoming",
|
||||||
|
"in_list_view": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "dates_section",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "Dates"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "due_date",
|
||||||
|
"fieldtype": "Date",
|
||||||
|
"label": "Due Date",
|
||||||
|
"reqd": 1,
|
||||||
|
"in_list_view": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "reminder_date",
|
||||||
|
"fieldtype": "Date",
|
||||||
|
"label": "Reminder Date",
|
||||||
|
"description": "Date to start sending reminders (typically 30 days before due)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "entity_section",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "Entity"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "entity_name",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Entity Name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "customer",
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"label": "Customer",
|
||||||
|
"options": "Customer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "order_reference",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Order Reference",
|
||||||
|
"description": "Original compliance order number"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "state_code",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "State Code",
|
||||||
|
"description": "US state code for state-specific filings (e.g. CA, TX)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "details_section",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "Details"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "description",
|
||||||
|
"fieldtype": "Small Text",
|
||||||
|
"label": "Description"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "amount_usd",
|
||||||
|
"fieldtype": "Currency",
|
||||||
|
"label": "Amount (USD)",
|
||||||
|
"default": "0",
|
||||||
|
"options": "USD"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "amount_cad",
|
||||||
|
"fieldtype": "Currency",
|
||||||
|
"label": "Amount (CAD)",
|
||||||
|
"default": "0",
|
||||||
|
"options": "CAD"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "billing_section",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "Billing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "invoice",
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"label": "Invoice",
|
||||||
|
"options": "Sales Invoice"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "recurring",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Recurring",
|
||||||
|
"default": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "recurrence_period",
|
||||||
|
"fieldtype": "Select",
|
||||||
|
"label": "Recurrence Period",
|
||||||
|
"options": "\nAnnual\nQuarterly\nMonthly",
|
||||||
|
"depends_on": "recurring"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "renewal_of",
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"label": "Renewal Of",
|
||||||
|
"options": "Compliance Calendar",
|
||||||
|
"description": "Previous calendar entry this renews"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"index_web_pages_for_search": 0,
|
||||||
|
"issingle": 0,
|
||||||
|
"istable": 0,
|
||||||
|
"links": [],
|
||||||
|
"modified": "2026-05-04 00:00:00.000000",
|
||||||
|
"modified_by": "Administrator",
|
||||||
|
"module": "Compliance",
|
||||||
|
"name": "Compliance Calendar",
|
||||||
|
"naming_rule": "Random",
|
||||||
|
"owner": "Administrator",
|
||||||
|
"permissions": [
|
||||||
|
{
|
||||||
|
"create": 1,
|
||||||
|
"delete": 1,
|
||||||
|
"email": 1,
|
||||||
|
"export": 1,
|
||||||
|
"print": 1,
|
||||||
|
"read": 1,
|
||||||
|
"report": 1,
|
||||||
|
"role": "System Manager",
|
||||||
|
"share": 1,
|
||||||
|
"write": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"create": 1,
|
||||||
|
"read": 1,
|
||||||
|
"report": 1,
|
||||||
|
"role": "Accounting Advisor",
|
||||||
|
"write": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sort_field": "due_date",
|
||||||
|
"sort_order": "ASC",
|
||||||
|
"title_field": "title",
|
||||||
|
"track_changes": 1
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
import frappe
|
||||||
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
class ComplianceCalendar(Document):
|
||||||
|
pass
|
||||||
|
|
@ -0,0 +1,138 @@
|
||||||
|
{
|
||||||
|
"actions": [],
|
||||||
|
"autoname": "hash",
|
||||||
|
"creation": "2026-05-04 00:00:00.000000",
|
||||||
|
"doctype": "DocType",
|
||||||
|
"editable_grid": 0,
|
||||||
|
"engine": "InnoDB",
|
||||||
|
"field_order": [
|
||||||
|
"title",
|
||||||
|
"filing_type",
|
||||||
|
"deadline_date",
|
||||||
|
"status",
|
||||||
|
"entity_section",
|
||||||
|
"entity_name",
|
||||||
|
"frn",
|
||||||
|
"customer",
|
||||||
|
"details_section",
|
||||||
|
"notes",
|
||||||
|
"linked_order",
|
||||||
|
"published",
|
||||||
|
"route"
|
||||||
|
],
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldname": "title",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Title",
|
||||||
|
"reqd": 1,
|
||||||
|
"in_list_view": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "filing_type",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Filing Type",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"description": "e.g. RMD Recertification, CPNI Annual Certification, 499-A Filing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "deadline_date",
|
||||||
|
"fieldtype": "Date",
|
||||||
|
"label": "Deadline Date",
|
||||||
|
"reqd": 1,
|
||||||
|
"in_list_view": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "status",
|
||||||
|
"fieldtype": "Select",
|
||||||
|
"label": "Status",
|
||||||
|
"options": "Upcoming\nDue Soon\nFiled\nOverdue\nWaived",
|
||||||
|
"default": "Upcoming",
|
||||||
|
"in_list_view": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "entity_section",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "Entity"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "entity_name",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Entity Name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "frn",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "FRN"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "customer",
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"label": "Customer",
|
||||||
|
"options": "Customer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "details_section",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "Details"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "notes",
|
||||||
|
"fieldtype": "Small Text",
|
||||||
|
"label": "Notes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "linked_order",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Linked Order",
|
||||||
|
"description": "Compliance order number (CO-XXXXXXXX)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "published",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Published",
|
||||||
|
"default": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "route",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Route",
|
||||||
|
"hidden": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"index_web_pages_for_search": 0,
|
||||||
|
"issingle": 0,
|
||||||
|
"istable": 0,
|
||||||
|
"links": [],
|
||||||
|
"modified": "2026-05-04 00:00:00.000000",
|
||||||
|
"modified_by": "Administrator",
|
||||||
|
"module": "Compliance",
|
||||||
|
"name": "Compliance Deadline",
|
||||||
|
"naming_rule": "Random",
|
||||||
|
"owner": "Administrator",
|
||||||
|
"permissions": [
|
||||||
|
{
|
||||||
|
"create": 1,
|
||||||
|
"delete": 1,
|
||||||
|
"email": 1,
|
||||||
|
"export": 1,
|
||||||
|
"print": 1,
|
||||||
|
"read": 1,
|
||||||
|
"report": 1,
|
||||||
|
"role": "System Manager",
|
||||||
|
"share": 1,
|
||||||
|
"write": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"create": 1,
|
||||||
|
"read": 1,
|
||||||
|
"report": 1,
|
||||||
|
"role": "Accounting Advisor",
|
||||||
|
"write": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sort_field": "deadline_date",
|
||||||
|
"sort_order": "ASC",
|
||||||
|
"title_field": "title",
|
||||||
|
"track_changes": 1
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
import frappe
|
||||||
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
class ComplianceDeadline(Document):
|
||||||
|
pass
|
||||||
Loading…
Add table
Add a link
Reference in a new issue