Main build

This commit is contained in:
2025-11-10 03:31:46 +00:00
parent cdaad4f992
commit 4d1847d7d9
37 changed files with 1323 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
{
"actions": [],
"allow_rename": 1,
"creation": "2025-11-09 09:57:45.397759",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"section_break_ppay"
],
"fields": [
{
"fieldname": "section_break_ppay",
"fieldtype": "Section Break"
}
],
"grid_page_length": 50,
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
"modified": "2025-11-09 09:57:45.397759",
"modified_by": "Administrator",
"module": "Member Management",
"name": "Associate List",
"owner": "Administrator",
"permissions": [],
"row_format": "Dynamic",
"rows_threshold_for_grid_search": 20,
"sort_field": "modified",
"sort_order": "DESC",
"states": []
}

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
# For license information, please see license.txt
# import frappe
from frappe.model.document import Document
class AssociateList(Document):
pass

View File

@@ -0,0 +1,48 @@
{
"actions": [],
"allow_rename": 1,
"autoname": "format:{member_id}_{member_doctype}_{YYYY}_{MM}_{DD}_{#####}",
"creation": "2025-11-09 09:55:54.869737",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"member_doctype",
"file"
],
"fields": [
{
"description": "See instructions. Not all applicants require all documents. ",
"fieldname": "member_doctype",
"fieldtype": "Select",
"in_list_view": 1,
"label": "Document Type",
"options": "Business Registration Certificate\nCertificate of Formation\nCertificate of Trade Name\nIRS EIN Letter\nSales Tax Authority",
"reqd": 1,
"search_index": 1
},
{
"fieldname": "file",
"fieldtype": "Attach",
"in_list_view": 1,
"label": "File Name",
"reqd": 1
}
],
"grid_page_length": 50,
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
"modified": "2025-11-09 11:14:45.962456",
"modified_by": "Administrator",
"module": "Member Management",
"name": "Corporate Documents",
"naming_rule": "Expression",
"owner": "Administrator",
"permissions": [],
"row_format": "Dynamic",
"rows_threshold_for_grid_search": 20,
"sort_field": "modified",
"sort_order": "DESC",
"states": []
}

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
# For license information, please see license.txt
# import frappe
from frappe.model.document import Document
class CorporateDocuments(Document):
pass

View File

@@ -0,0 +1,69 @@
{
"actions": [],
"allow_rename": 1,
"creation": "2025-11-09 09:57:03.492727",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"section_break_srta",
"manager_issuer",
"certificate",
"column_break_ysbr",
"issue_date",
"expire_date"
],
"fields": [
{
"fieldname": "section_break_srta",
"fieldtype": "Section Break"
},
{
"fieldname": "manager_issuer",
"fieldtype": "Select",
"in_list_view": 1,
"label": "Issuer",
"options": "360 Training\nAAA Food Manager\nAboveTraining/StateFoodSafety\nEnvironmental Health Testing\nMy Food Service License\nNational Restaurant Association\nServSafe Manager\nThe Always Food Safe Company\nTrust20\nWFSO Academy",
"reqd": 1
},
{
"fieldname": "certificate",
"fieldtype": "Attach",
"in_list_view": 1,
"label": "Certificate",
"reqd": 1
},
{
"fieldname": "column_break_ysbr",
"fieldtype": "Column Break"
},
{
"fieldname": "issue_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "Issue Date"
},
{
"fieldname": "expire_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "Expiration Date",
"reqd": 1
}
],
"grid_page_length": 50,
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
"modified": "2025-11-09 11:41:55.956305",
"modified_by": "Administrator",
"module": "Member Management",
"name": "Food Protection Manager Record",
"owner": "Administrator",
"permissions": [],
"row_format": "Dynamic",
"rows_threshold_for_grid_search": 20,
"sort_field": "modified",
"sort_order": "DESC",
"states": []
}

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
# For license information, please see license.txt
# import frappe
from frappe.model.document import Document
class FoodProtectionManagerRecord(Document):
pass

View File

@@ -0,0 +1,8 @@
// Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
// For license information, please see license.txt
// frappe.ui.form.on("Inspection Record", {
// refresh(frm) {
// },
// });

View File

@@ -0,0 +1,76 @@
{
"actions": [],
"allow_rename": 1,
"creation": "2025-11-09 09:56:19.768362",
"doctype": "DocType",
"engine": "InnoDB",
"field_order": [
"jurisdiction",
"inspection_type",
"inspection_file",
"column_break_urym",
"issue_date",
"expire_date"
],
"fields": [
{
"description": "Authorizing Jurisdiction (County, State, Federal Agency)",
"fieldname": "jurisdiction",
"fieldtype": "Data",
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Jurisdiction",
"reqd": 1
},
{
"description": "See Instructions. Not all applicants will need to supply all docuuments.",
"fieldname": "inspection_type",
"fieldtype": "Select",
"in_list_view": 1,
"in_preview": 1,
"label": "Document Type",
"options": "Mobile Application\nMobile Certificate\nMobile Inspection Report\nFacility Application\nFacility Certificate\nFacility Inspection Report",
"reqd": 1
},
{
"fieldname": "inspection_file",
"fieldtype": "Attach",
"in_list_view": 1,
"in_preview": 1,
"label": "File",
"reqd": 1
},
{
"fieldname": "column_break_urym",
"fieldtype": "Column Break"
},
{
"fieldname": "issue_date",
"fieldtype": "Date",
"label": "Issue Date"
},
{
"description": "County sanitation certificates expire at calendar year end",
"fieldname": "expire_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "Expiration Date",
"reqd": 1
}
],
"grid_page_length": 50,
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
"modified": "2025-11-09 11:40:46.022312",
"modified_by": "Administrator",
"module": "Member Management",
"name": "Inspection Record",
"owner": "Administrator",
"permissions": [],
"row_format": "Dynamic",
"rows_threshold_for_grid_search": 20,
"sort_field": "modified",
"sort_order": "DESC",
"states": []
}

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
# For license information, please see license.txt
# import frappe
from frappe.model.document import Document
class InspectionRecord(Document):
pass

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and Contributors
# See license.txt
# import frappe
from frappe.tests.utils import FrappeTestCase
class TestInspectionRecord(FrappeTestCase):
pass

View File

@@ -0,0 +1,8 @@
// Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
// For license information, please see license.txt
// frappe.ui.form.on("Insurance Record", {
// refresh(frm) {
// },
// });

View File

@@ -0,0 +1,60 @@
{
"actions": [],
"allow_rename": 1,
"creation": "2025-11-09 09:57:22.638768",
"doctype": "DocType",
"engine": "InnoDB",
"field_order": [
"insurer",
"declaration",
"column_break_wgkt",
"issue_date",
"expire_date"
],
"fields": [
{
"fieldname": "insurer",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Insurer"
},
{
"fieldname": "declaration",
"fieldtype": "Attach",
"in_list_view": 1,
"label": "File",
"reqd": 1
},
{
"fieldname": "column_break_wgkt",
"fieldtype": "Column Break"
},
{
"fieldname": "issue_date",
"fieldtype": "Date",
"label": "Issue Date"
},
{
"fieldname": "expire_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "Expiration Date",
"reqd": 1
}
],
"grid_page_length": 50,
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
"modified": "2025-11-09 11:39:42.856785",
"modified_by": "Administrator",
"module": "Member Management",
"name": "Insurance Record",
"owner": "Administrator",
"permissions": [],
"row_format": "Dynamic",
"rows_threshold_for_grid_search": 20,
"sort_field": "modified",
"sort_order": "DESC",
"states": []
}

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
# For license information, please see license.txt
# import frappe
from frappe.model.document import Document
class InsuranceRecord(Document):
pass

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and Contributors
# See license.txt
# import frappe
from frappe.tests.utils import FrappeTestCase
class TestInsuranceRecord(FrappeTestCase):
pass

View File

@@ -0,0 +1,65 @@
{
"actions": [],
"allow_rename": 1,
"creation": "2025-11-09 09:59:42.069937",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"contract_type",
"file",
"column_break_bkzm",
"date_effective",
"date_end"
],
"fields": [
{
"fieldname": "contract_type",
"fieldtype": "Select",
"in_list_view": 1,
"in_preview": 1,
"label": "Contract Type",
"options": "Facilities Use Agreement\nStorage Addendum\nMobile Base Station Addendum\nEquipment Rental\nEvent Room Rental",
"reqd": 1
},
{
"fieldname": "file",
"fieldtype": "Attach",
"in_list_view": 1,
"label": "File",
"reqd": 1
},
{
"fieldname": "column_break_bkzm",
"fieldtype": "Column Break"
},
{
"fieldname": "date_effective",
"fieldtype": "Date",
"in_list_view": 1,
"label": "Effective Date",
"reqd": 1
},
{
"fieldname": "date_end",
"fieldtype": "Date",
"in_list_view": 1,
"label": "Date End"
}
],
"grid_page_length": 50,
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
"modified": "2025-11-09 11:48:36.156523",
"modified_by": "Administrator",
"module": "Member Management",
"name": "Member Agreements",
"owner": "Administrator",
"permissions": [],
"row_format": "Dynamic",
"rows_threshold_for_grid_search": 20,
"sort_field": "modified",
"sort_order": "DESC",
"states": []
}

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
# For license information, please see license.txt
# import frappe
from frappe.model.document import Document
class MemberAgreements(Document):
pass

View File

@@ -0,0 +1,8 @@
// Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
// For license information, please see license.txt
// frappe.ui.form.on("Member File", {
// refresh(frm) {
// },
// });

View File

@@ -0,0 +1,235 @@
{
"actions": [],
"autoname": "field:member_id",
"creation": "2025-11-09 09:55:16.302059",
"default_view": "List",
"doctype": "DocType",
"document_type": "Document",
"engine": "InnoDB",
"field_order": [
"member_data_section",
"column_break_vdps",
"member_name",
"member_ein",
"risk_class",
"column_break_jznx",
"member_id",
"join_date",
"onboard_date",
"membership_details_section",
"membership_type",
"column_break_iofm",
"dashboard_tab",
"documents",
"agreements_section",
"table_cabr",
"corporate_documents_section",
"table_rkkt",
"food_manager_records_section",
"table_wsni",
"insurance_records_section",
"table_wmpy",
"inspection_records_section",
"table_yzvn",
"menus_section",
"tempattach",
"associates_tab",
"associates_section",
"table_cdln"
],
"fields": [
{
"fieldname": "member_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Name",
"reqd": 1,
"unique": 1
},
{
"fieldname": "dashboard_tab",
"fieldtype": "Tab Break",
"label": "Dashboard",
"show_dashboard": 1
},
{
"fieldname": "documents",
"fieldtype": "Tab Break",
"label": "Documents"
},
{
"fieldname": "agreements_section",
"fieldtype": "Section Break",
"label": "Agreements"
},
{
"fieldname": "table_cabr",
"fieldtype": "Table",
"options": "Member Agreements"
},
{
"fieldname": "corporate_documents_section",
"fieldtype": "Section Break",
"label": "Corporate Documents"
},
{
"fieldname": "table_rkkt",
"fieldtype": "Table",
"options": "Corporate Documents"
},
{
"fieldname": "food_manager_records_section",
"fieldtype": "Section Break",
"label": "Food Manager Records"
},
{
"fieldname": "table_wsni",
"fieldtype": "Table",
"options": "Food Protection Manager Record"
},
{
"fieldname": "insurance_records_section",
"fieldtype": "Section Break",
"label": "Insurance Records"
},
{
"fieldname": "table_wmpy",
"fieldtype": "Table",
"options": "Insurance Record"
},
{
"fieldname": "inspection_records_section",
"fieldtype": "Section Break",
"label": "Inspection Records"
},
{
"fieldname": "table_yzvn",
"fieldtype": "Table",
"options": "Inspection Record"
},
{
"fieldname": "menus_section",
"fieldtype": "Section Break",
"label": "Menus"
},
{
"fieldname": "tempattach",
"fieldtype": "Attach"
},
{
"fieldname": "associates_tab",
"fieldtype": "Tab Break",
"label": "Associates"
},
{
"fieldname": "associates_section",
"fieldtype": "Section Break",
"label": "Associates"
},
{
"fieldname": "table_cdln",
"fieldtype": "Table",
"options": "Associate List"
},
{
"fieldname": "join_date",
"fieldtype": "Date",
"label": "Joined"
},
{
"fieldname": "onboard_date",
"fieldtype": "Date",
"label": "Onboarded"
},
{
"fieldname": "risk_class",
"fieldtype": "Select",
"label": "Risk Class",
"options": "1\n2\n3"
},
{
"fieldname": "member_ein",
"fieldtype": "Data",
"label": "EIN"
},
{
"columns": 1,
"fieldname": "column_break_jznx",
"fieldtype": "Column Break"
},
{
"description": "For API Integrations",
"fieldname": "member_id",
"fieldtype": "Int",
"label": "Member ID",
"length": 12,
"non_negative": 1,
"reqd": 1,
"unique": 1
},
{
"fieldname": "member_data_section",
"fieldtype": "Section Break",
"label": "Member Data"
},
{
"fieldname": "column_break_vdps",
"fieldtype": "Column Break"
},
{
"fieldname": "membership_details_section",
"fieldtype": "Section Break",
"label": "Membership Details"
},
{
"fieldname": "membership_type",
"fieldtype": "Select",
"label": "Membership Type",
"options": "Standard\nCold Pack\nMobile Only\nWarewashing Only"
},
{
"fieldname": "column_break_iofm",
"fieldtype": "Column Break"
}
],
"grid_page_length": 50,
"links": [],
"modified": "2025-11-09 13:17:36.571988",
"modified_by": "Administrator",
"module": "Member Management",
"name": "Member File",
"naming_rule": "By fieldname",
"owner": "Administrator",
"permissions": [
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"share": 1,
"write": 1
},
{
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Member",
"share": 1,
"write": 1
}
],
"row_format": "Dynamic",
"rows_threshold_for_grid_search": 20,
"show_preview_popup": 1,
"show_title_field_in_link": 1,
"sort_field": "modified",
"sort_order": "DESC",
"states": [],
"title_field": "member_name"
}

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
# For license information, please see license.txt
# import frappe
from frappe.model.document import Document
class MemberFile(Document):
pass

View File

@@ -0,0 +1,8 @@
// Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
// For license information, please see license.txt
// frappe.ui.form.on("Member Profile", {
// refresh(frm) {
// },
// });

View File

@@ -0,0 +1,254 @@
{
"actions": [],
"autoname": "format:{member_id}",
"creation": "2025-11-09 09:55:16.302059",
"default_view": "List",
"doctype": "DocType",
"document_type": "Document",
"engine": "InnoDB",
"field_order": [
"member_data_section",
"column_break_vdps",
"member_name",
"member_ein",
"join_date",
"onboard_date",
"risk_class",
"column_break_jznx",
"member_id",
"api_id",
"membership_details_section",
"membership_type",
"column_break_iofm",
"dashboard_tab",
"documents",
"agreements_section",
"table_cabr",
"corporate_documents_section",
"table_rkkt",
"food_manager_records_section",
"table_wsni",
"insurance_records_section",
"table_wmpy",
"inspection_records_section",
"table_yzvn",
"menus_section",
"tempattach",
"associates_tab",
"associates_section",
"table_cdln"
],
"fields": [
{
"fieldname": "member_data_section",
"fieldtype": "Section Break",
"label": "Member Data"
},
{
"fieldname": "column_break_vdps",
"fieldtype": "Column Break"
},
{
"bold": 1,
"description": "Legal Business Name",
"fieldname": "member_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Name",
"reqd": 1,
"unique": 1
},
{
"fieldname": "member_ein",
"fieldtype": "Data",
"label": "IRS Employer Identification Number (EIN)"
},
{
"description": "Department of Health Classification",
"fieldname": "risk_class",
"fieldtype": "Select",
"label": "Risk Class",
"options": "Undetermined\n1\n2\n3"
},
{
"columns": 1,
"fieldname": "column_break_jznx",
"fieldtype": "Column Break"
},
{
"description": "Not editable",
"fieldname": "member_id",
"fieldtype": "Data",
"label": "Member ID",
"reqd": 1,
"set_only_once": 1,
"unique": 1
},
{
"fieldname": "join_date",
"fieldtype": "Date",
"label": "Joined",
"permlevel": 2
},
{
"fieldname": "onboard_date",
"fieldtype": "Date",
"label": "Onboarded",
"permlevel": 3
},
{
"fieldname": "membership_details_section",
"fieldtype": "Section Break",
"label": "Membership Details"
},
{
"fieldname": "membership_type",
"fieldtype": "Select",
"label": "Membership Type",
"options": "Standard\nCold Pack\nMobile Only\nWarewashing Only",
"permlevel": 2
},
{
"fieldname": "column_break_iofm",
"fieldtype": "Column Break"
},
{
"fieldname": "dashboard_tab",
"fieldtype": "Tab Break",
"label": "Dashboard",
"show_dashboard": 1
},
{
"fieldname": "documents",
"fieldtype": "Tab Break",
"label": "Documents"
},
{
"fieldname": "agreements_section",
"fieldtype": "Section Break",
"label": "Agreements"
},
{
"fieldname": "table_cabr",
"fieldtype": "Table",
"options": "Member Agreements"
},
{
"fieldname": "corporate_documents_section",
"fieldtype": "Section Break",
"label": "Corporate Documents"
},
{
"fieldname": "table_rkkt",
"fieldtype": "Table",
"options": "Corporate Documents"
},
{
"fieldname": "food_manager_records_section",
"fieldtype": "Section Break",
"label": "Food Manager Records"
},
{
"fieldname": "table_wsni",
"fieldtype": "Table",
"options": "Food Protection Manager Record"
},
{
"fieldname": "insurance_records_section",
"fieldtype": "Section Break",
"label": "Insurance Records"
},
{
"fieldname": "table_wmpy",
"fieldtype": "Table",
"options": "Insurance Record"
},
{
"fieldname": "inspection_records_section",
"fieldtype": "Section Break",
"label": "Inspection Records"
},
{
"fieldname": "table_yzvn",
"fieldtype": "Table",
"options": "Inspection Record"
},
{
"fieldname": "menus_section",
"fieldtype": "Section Break",
"label": "Menus"
},
{
"fieldname": "tempattach",
"fieldtype": "Attach"
},
{
"fieldname": "associates_tab",
"fieldtype": "Tab Break",
"label": "Associates"
},
{
"fieldname": "associates_section",
"fieldtype": "Section Break",
"label": "Associates"
},
{
"fieldname": "table_cdln",
"fieldtype": "Table",
"options": "Associate List"
},
{
"description": "For API Integrations",
"fieldname": "api_id",
"fieldtype": "Data",
"label": "API ID",
"length": 32,
"non_negative": 1,
"unique": 1
}
],
"grid_page_length": 50,
"links": [
{
"group": "User",
"link_doctype": "User",
"link_fieldname": "full_name"
},
{
"group": "User",
"link_doctype": "Customer",
"link_fieldname": "customer_name"
}
],
"modified": "2025-11-09 17:42:12.364409",
"modified_by": "Administrator",
"module": "Member Management",
"name": "Member Profile",
"naming_rule": "Expression",
"owner": "Administrator",
"permissions": [
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"share": 1,
"write": 1
}
],
"protect_attached_files": 1,
"row_format": "Dynamic",
"rows_threshold_for_grid_search": 20,
"show_name_in_global_search": 1,
"show_preview_popup": 1,
"show_title_field_in_link": 1,
"sort_field": "modified",
"sort_order": "DESC",
"states": [],
"title_field": "member_name",
"track_seen": 1
}

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and contributors
# For license information, please see license.txt
# import frappe
from frappe.model.document import Document
class MemberProfile(Document):
pass

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and Contributors
# See license.txt
# import frappe
from frappe.tests.utils import FrappeTestCase
class TestMemberFile(FrappeTestCase):
pass

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2025, Haddon Kitchen Incubator LLC and Contributors
# See license.txt
# import frappe
from frappe.tests.utils import FrappeTestCase
class TestMemberProfile(FrappeTestCase):
pass

View File

@@ -0,0 +1,3 @@
frappe.ready(function() {
// bind events here
})

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,5 @@
import frappe
def get_context(context):
# do your magic here
pass