client creation bug fixes
This commit is contained in:
parent
cb33d0c3b3
commit
2ea20a86e3
@ -299,7 +299,6 @@ def upsert_client(data):
|
|||||||
"link_name": customer_doc.name
|
"link_name": customer_doc.name
|
||||||
}
|
}
|
||||||
address_doc.append("links", link)
|
address_doc.append("links", link)
|
||||||
address_doc.save(ignore_permissions=True)
|
|
||||||
contact_exists = frappe.db.exists("Contact", {"email_id": data.get("contact_email")})
|
contact_exists = frappe.db.exists("Contact", {"email_id": data.get("contact_email")})
|
||||||
if not contact_exists:
|
if not contact_exists:
|
||||||
contact_doc = frappe.get_doc({
|
contact_doc = frappe.get_doc({
|
||||||
@ -318,7 +317,8 @@ def upsert_client(data):
|
|||||||
else:
|
else:
|
||||||
contact_doc = frappe.get_doc("Contact", {"email_id": data.get("contact_email")})
|
contact_doc = frappe.get_doc("Contact", {"email_id": data.get("contact_email")})
|
||||||
print("Contact already exists:", contact_doc.as_dict())
|
print("Contact already exists:", contact_doc.as_dict())
|
||||||
|
address_doc.custom_contact = contact_doc.name
|
||||||
|
address_doc.save(ignore_permissions=True)
|
||||||
return build_success_response({
|
return build_success_response({
|
||||||
"customer": customer_doc.as_dict(),
|
"customer": customer_doc.as_dict(),
|
||||||
"address": address_doc.as_dict(),
|
"address": address_doc.as_dict(),
|
||||||
|
|||||||
@ -126,4 +126,20 @@ def build_success_response(data):
|
|||||||
"status": "success",
|
"status": "success",
|
||||||
"data": data
|
"data": data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def build_full_address(doc):
|
||||||
|
first_parts = [
|
||||||
|
doc.address_line1,
|
||||||
|
doc.address_line2,
|
||||||
|
doc.city
|
||||||
|
]
|
||||||
|
second_parts = [
|
||||||
|
doc.state,
|
||||||
|
doc.pincode
|
||||||
|
]
|
||||||
|
first = " ".join([p for p in first_parts if p])
|
||||||
|
second = " ".join([p for p in second_parts if p])
|
||||||
|
if first and second:
|
||||||
|
return f"{first}, {second}"
|
||||||
|
return first or second or ""
|
||||||
|
|
||||||
9
custom_ui/events/address.py
Normal file
9
custom_ui/events/address.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import frappe
|
||||||
|
from custom_ui.db_utils import build_full_address
|
||||||
|
|
||||||
|
def after_insert(doc, method):
|
||||||
|
print(doc.as_dict())
|
||||||
|
if not doc.full_address:
|
||||||
|
doc.full_address = build_full_address(doc)
|
||||||
|
doc.save()
|
||||||
|
|
||||||
@ -161,7 +161,10 @@ add_to_apps_screen = [
|
|||||||
doc_events = {
|
doc_events = {
|
||||||
"On-Site Meeting": {
|
"On-Site Meeting": {
|
||||||
"after_insert": "custom_ui.events.onsite_meeting.after_insert"
|
"after_insert": "custom_ui.events.onsite_meeting.after_insert"
|
||||||
}
|
},
|
||||||
|
"Address": {
|
||||||
|
"after_insert": "custom_ui.events.address.after_insert"
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
# Scheduled Tasks
|
# Scheduled Tasks
|
||||||
|
|||||||
@ -148,7 +148,8 @@ const localFormData = computed({
|
|||||||
set: (value) => emit("update:formData", value),
|
set: (value) => emit("update:formData", value),
|
||||||
});
|
});
|
||||||
|
|
||||||
const isNewContact = ref(false);
|
// Default to true for new-client flows; if editing keep it off
|
||||||
|
const isNewContact = ref(!props.isEditMode);
|
||||||
const selectedContact = ref(null);
|
const selectedContact = ref(null);
|
||||||
const sameAsClientName = ref(false);
|
const sameAsClientName = ref(false);
|
||||||
|
|
||||||
|
|||||||
@ -262,6 +262,7 @@ const formData = ref({
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (props.isNew) {
|
if (props.isNew) {
|
||||||
resetForm();
|
resetForm();
|
||||||
|
isNewClientMode.value = true; // Set to true for new client mode
|
||||||
console.log("Mounted in new client mode - initialized empty form");
|
console.log("Mounted in new client mode - initialized empty form");
|
||||||
} else if (props.clientData && Object.keys(props.clientData).length > 0) {
|
} else if (props.clientData && Object.keys(props.clientData).length > 0) {
|
||||||
populateFormFromClientData();
|
populateFormFromClientData();
|
||||||
|
|||||||
@ -19,10 +19,12 @@ import Api from "../../api";
|
|||||||
import { useLoadingStore } from "../../stores/loading";
|
import { useLoadingStore } from "../../stores/loading";
|
||||||
import { usePaginationStore } from "../../stores/pagination";
|
import { usePaginationStore } from "../../stores/pagination";
|
||||||
import { useFiltersStore } from "../../stores/filters";
|
import { useFiltersStore } from "../../stores/filters";
|
||||||
|
import { useNotificationStore } from "../../stores/notifications-primevue";
|
||||||
|
|
||||||
const loadingStore = useLoadingStore();
|
const loadingStore = useLoadingStore();
|
||||||
const paginationStore = usePaginationStore();
|
const paginationStore = usePaginationStore();
|
||||||
const filtersStore = useFiltersStore();
|
const filtersStore = useFiltersStore();
|
||||||
|
const notifications = useNotificationStore();
|
||||||
|
|
||||||
const tableData = ref([]);
|
const tableData = ref([]);
|
||||||
const totalRecords = ref(0);
|
const totalRecords = ref(0);
|
||||||
@ -146,24 +148,25 @@ const handleLazyLoad = async (event) => {
|
|||||||
|
|
||||||
// Load initial data
|
// Load initial data
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
notifications.addWarning("Jobs page coming soon");
|
||||||
// Initialize pagination and filters
|
// Initialize pagination and filters
|
||||||
paginationStore.initializeTablePagination("jobs", { rows: 10 });
|
// paginationStore.initializeTablePagination("jobs", { rows: 10 });
|
||||||
filtersStore.initializeTableFilters("jobs", columns);
|
// filtersStore.initializeTableFilters("jobs", columns);
|
||||||
filtersStore.initializeTableSorting("jobs");
|
// filtersStore.initializeTableSorting("jobs");
|
||||||
|
|
||||||
// Load first page
|
// // Load first page
|
||||||
const initialPagination = paginationStore.getTablePagination("jobs");
|
// const initialPagination = paginationStore.getTablePagination("jobs");
|
||||||
const initialFilters = filtersStore.getTableFilters("jobs");
|
// const initialFilters = filtersStore.getTableFilters("jobs");
|
||||||
const initialSorting = filtersStore.getTableSorting("jobs");
|
// const initialSorting = filtersStore.getTableSorting("jobs");
|
||||||
|
|
||||||
await handleLazyLoad({
|
// await handleLazyLoad({
|
||||||
page: initialPagination.page,
|
// page: initialPagination.page,
|
||||||
rows: initialPagination.rows,
|
// rows: initialPagination.rows,
|
||||||
first: initialPagination.first,
|
// first: initialPagination.first,
|
||||||
sortField: initialSorting.field || initialPagination.sortField,
|
// sortField: initialSorting.field || initialPagination.sortField,
|
||||||
sortOrder: initialSorting.order || initialPagination.sortOrder,
|
// sortOrder: initialSorting.order || initialPagination.sortOrder,
|
||||||
filters: initialFilters,
|
// filters: initialFilters,
|
||||||
});
|
// });
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang=""></style>
|
<style lang=""></style>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user