Merge pull request #47278 from barredterra/customer_supplier_ids

feat: store Customer Number at Supplier / Supplier Number at Customer
This commit is contained in:
ruthra kumar
2025-05-05 16:22:54 +05:30
committed by GitHub
10 changed files with 160 additions and 7 deletions

View File

@@ -0,0 +1,41 @@
{
"actions": [],
"allow_rename": 1,
"creation": "2025-04-27 12:05:44.989999",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"company",
"customer_number"
],
"fields": [
{
"fieldname": "company",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Company",
"options": "Company"
},
{
"fieldname": "customer_number",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Customer Number"
}
],
"grid_page_length": 50,
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
"modified": "2025-04-27 12:06:04.146431",
"modified_by": "Administrator",
"module": "Buying",
"name": "Customer Number At Supplier",
"owner": "Administrator",
"permissions": [],
"row_format": "Dynamic",
"sort_field": "creation",
"sort_order": "DESC",
"states": []
}

View File

@@ -0,0 +1,24 @@
# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
# import frappe
from frappe.model.document import Document
class CustomerNumberAtSupplier(Document):
# begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block.
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from frappe.types import DF
company: DF.Link | None
customer_number: DF.Data | None
parent: DF.Data
parentfield: DF.Data
parenttype: DF.Data
# end: auto-generated types
pass

View File

@@ -33,6 +33,7 @@
"column_break_30",
"website",
"language",
"customer_numbers",
"dashboard_tab",
"tax_tab",
"tax_id",
@@ -473,8 +474,15 @@
{
"fieldname": "column_break_mglr",
"fieldtype": "Column Break"
},
{
"fieldname": "customer_numbers",
"fieldtype": "Table",
"label": "Customer Numbers",
"options": "Customer Number At Supplier"
}
],
"grid_page_length": 50,
"icon": "fa fa-user",
"idx": 370,
"image_field": "image",
@@ -485,7 +493,7 @@
"link_fieldname": "party"
}
],
"modified": "2024-05-08 18:02:57.342931",
"modified": "2025-04-27 12:07:10.859758",
"modified_by": "Administrator",
"module": "Buying",
"name": "Supplier",
@@ -544,6 +552,7 @@
}
],
"quick_entry": 1,
"row_format": "Dynamic",
"search_fields": "supplier_group",
"show_name_in_global_search": 1,
"sort_field": "creation",
@@ -551,4 +560,4 @@
"states": [],
"title_field": "supplier_name",
"track_changes": 1
}
}

View File

@@ -32,6 +32,9 @@ class Supplier(TransactionBase):
AllowedToTransactWith,
)
from erpnext.accounts.doctype.party_account.party_account import PartyAccount
from erpnext.buying.doctype.customer_number_at_supplier.customer_number_at_supplier import (
CustomerNumberAtSupplier,
)
from erpnext.utilities.doctype.portal_user.portal_user import PortalUser
accounts: DF.Table[PartyAccount]
@@ -39,6 +42,7 @@ class Supplier(TransactionBase):
allow_purchase_invoice_creation_without_purchase_receipt: DF.Check
companies: DF.Table[AllowedToTransactWith]
country: DF.Link | None
customer_numbers: DF.Table[CustomerNumberAtSupplier]
default_bank_account: DF.Link | None
default_currency: DF.Link | None
default_price_list: DF.Link | None

View File

@@ -42,6 +42,7 @@
"language",
"column_break_45",
"customer_details",
"supplier_numbers",
"dashboard_tab",
"contact_and_address_tab",
"address_contacts",
@@ -597,6 +598,13 @@
"fieldtype": "Read Only",
"hidden": 1,
"label": "Last Name"
},
{
"description": "Supplier numbers assigned by the customer",
"fieldname": "supplier_numbers",
"fieldtype": "Table",
"label": "Supplier Numbers",
"options": "Supplier Number At Customer"
}
],
"icon": "fa fa-user",
@@ -610,7 +618,7 @@
"link_fieldname": "party"
}
],
"modified": "2025-03-05 10:01:47.885574",
"modified": "2025-04-27 12:01:29.549008",
"modified_by": "Administrator",
"module": "Selling",
"name": "Customer",
@@ -696,4 +704,4 @@
"states": [],
"title_field": "customer_name",
"track_changes": 1
}
}

View File

@@ -35,10 +35,11 @@ class Customer(TransactionBase):
AllowedToTransactWith,
)
from erpnext.accounts.doctype.party_account.party_account import PartyAccount
from erpnext.selling.doctype.customer_credit_limit.customer_credit_limit import (
CustomerCreditLimit,
)
from erpnext.selling.doctype.customer_credit_limit.customer_credit_limit import CustomerCreditLimit
from erpnext.selling.doctype.sales_team.sales_team import SalesTeam
from erpnext.selling.doctype.supplier_number_at_customer.supplier_number_at_customer import (
SupplierNumberAtCustomer,
)
from erpnext.utilities.doctype.portal_user.portal_user import PortalUser
account_manager: DF.Link | None
@@ -83,6 +84,7 @@ class Customer(TransactionBase):
sales_team: DF.Table[SalesTeam]
salutation: DF.Link | None
so_required: DF.Check
supplier_numbers: DF.Table[SupplierNumberAtCustomer]
tax_category: DF.Link | None
tax_id: DF.Data | None
tax_withholding_category: DF.Link | None

View File

@@ -0,0 +1,41 @@
{
"actions": [],
"allow_rename": 1,
"creation": "2025-04-27 11:59:08.238924",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"company",
"supplier_number"
],
"fields": [
{
"fieldname": "company",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Company",
"options": "Company"
},
{
"fieldname": "supplier_number",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Supplier Number"
}
],
"grid_page_length": 50,
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
"modified": "2025-04-27 12:00:04.890068",
"modified_by": "Administrator",
"module": "Selling",
"name": "Supplier Number At Customer",
"owner": "Administrator",
"permissions": [],
"row_format": "Dynamic",
"sort_field": "creation",
"sort_order": "DESC",
"states": []
}

View File

@@ -0,0 +1,24 @@
# Copyright (c) 2025, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
# import frappe
from frappe.model.document import Document
class SupplierNumberAtCustomer(Document):
# begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block.
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from frappe.types import DF
company: DF.Link | None
parent: DF.Data
parentfield: DF.Data
parenttype: DF.Data
supplier_number: DF.Data | None
# end: auto-generated types
pass