Skip to content

Commit 09aaaf2

Browse files
authored
Merge pull request #49 from MVVYSHNAV/dev3
Validating the mobile number of Customer data
2 parents 64c1729 + c7dc541 commit 09aaaf2

5 files changed

Lines changed: 59 additions & 16 deletions

File tree

pos/src/lib/customer-api.ts

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,11 @@ export interface CreateCustomerData {
3838
}
3939

4040
export interface CreateCustomerResponse {
41-
data: Customer;
41+
data: CreateCustomerData;
4242
_server_messages?: string;
4343
}
4444

45+
4546
export async function getCustomerGroups() {
4647
const groups = await db.getDocList(DOCTYPES.CUSTOMER_GROUP, {
4748
fields: ['name'],
@@ -66,16 +67,31 @@ export async function getCustomerTerritories() {
6667
return territories;
6768
}
6869

69-
export async function addCustomer(customerData: CreateCustomerData): Promise<CreateCustomerResponse> {
70+
export async function addCustomer(
71+
customerData: CreateCustomerData
72+
): Promise<CreateCustomerResponse> {
7073
try {
71-
const response = await db.createDoc(DOCTYPES.CUSTOMER, customerData);
72-
return { data: response as Customer };
74+
const response = await call.post('ury.ury_pos.api.create_customer', customerData);
75+
const msg = response.message;
76+
if (!msg || msg.status !== "success") {
77+
throw new Error("Failed to create Customer,API Response error");
78+
}
79+
return {
80+
data: {
81+
customer_name: msg.customer_name,
82+
mobile_number: msg.mobile_number,
83+
customer_group: msg.customer_group,
84+
territory: msg.territory
85+
}
86+
};
87+
7388
} catch (error) {
7489
console.error('Error creating customer:', error);
7590
throw error;
7691
}
7792
}
7893

94+
7995
export async function searchCustomers(search: string, limit = 5) {
8096
if (!search.trim()) return [];
8197
try {

ury/hooks.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,6 @@
131131
"before_insert": "ury.ury.hooks.ury_sales_invoice.before_insert",
132132
"on_update":"ury.ury.hooks.ury_sales_invoice.on_update",
133133
},
134-
"Customer": {"before_save": "ury.ury.hooks.ury_customer.before_insert"},
135134
"Item": {"validate": "ury.ury.hooks.ury_item.validate"},
136135
"POS Opening Entry": {
137136
"validate":"ury.ury.hooks.ury_pos_opening_entry.set_cashier_room",

ury/ury/hooks/ury_customer.py

Lines changed: 0 additions & 10 deletions
This file was deleted.

ury/ury/workspace/ury/ury.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
"type": "Link"
112112
}
113113
],
114-
"modified": "2025-07-25 10:51:43.683224",
114+
"modified": "2026-01-16 11:47:19.008936",
115115
"modified_by": "Administrator",
116116
"module": "URY",
117117
"name": "URY",

ury/ury_pos/api.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import frappe
22
from frappe import _
33
from datetime import date, datetime, timedelta
4+
from frappe.utils import validate_phone_number
45

56

67

@@ -650,7 +651,44 @@ def getAggregatorMOP(aggregator):
650651
{"mode_of_payment": modeOfPayment, "opening_amount": float(0)}
651652
)
652653
return modeOfPaymentsList
654+
@frappe.whitelist()
655+
def create_customer(customer_name, mobile_number=None, customer_group="Individual", territory="India"):
656+
if not customer_name:
657+
frappe.throw("Customer name is required")
658+
if not mobile_number:
659+
frappe.throw("Mobile Number is required")
660+
try:
661+
validate_phone_number(mobile_number, throw=True)
662+
except Exception:
663+
frappe.throw("Invalid mobile number format")
664+
665+
"""Create a new customer"""
666+
try:
667+
customer = frappe.get_doc({
668+
"doctype": "Customer",
669+
"customer_name": customer_name,
670+
"mobile_number": mobile_number,
671+
"customer_group": customer_group,
672+
"territory": territory
673+
})
674+
customer.insert(ignore_permissions=True)
675+
frappe.db.commit()
676+
677+
return {
678+
"status": "success",
679+
"message": "Customer created successfully",
680+
"customer_name": customer_name,
681+
"mobile_number": mobile_number,
682+
"customer_group": customer_group,
683+
"territory": territory
684+
}
653685

686+
except Exception as e:
687+
frappe.log_error(message=frappe.get_traceback(), title="Customer Creation Failed")
688+
return {
689+
"status": "error",
690+
"message": str(e)
691+
}
654692

655693
@frappe.whitelist()
656694
def validate_pos_close(pos_profile):

0 commit comments

Comments
 (0)