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
|
||||
}
|
||||
address_doc.append("links", link)
|
||||
address_doc.save(ignore_permissions=True)
|
||||
contact_exists = frappe.db.exists("Contact", {"email_id": data.get("contact_email")})
|
||||
if not contact_exists:
|
||||
contact_doc = frappe.get_doc({
|
||||
@ -318,7 +317,8 @@ def upsert_client(data):
|
||||
else:
|
||||
contact_doc = frappe.get_doc("Contact", {"email_id": data.get("contact_email")})
|
||||
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({
|
||||
"customer": customer_doc.as_dict(),
|
||||
"address": address_doc.as_dict(),
|
||||
|
||||
@ -126,4 +126,20 @@ def build_success_response(data):
|
||||
"status": "success",
|
||||
"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 = {
|
||||
"On-Site Meeting": {
|
||||
"after_insert": "custom_ui.events.onsite_meeting.after_insert"
|
||||
}
|
||||
},
|
||||
"Address": {
|
||||
"after_insert": "custom_ui.events.address.after_insert"
|
||||
},
|
||||
}
|
||||
|
||||
# Scheduled Tasks
|
||||
|
||||
@ -148,7 +148,8 @@ const localFormData = computed({
|
||||
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 sameAsClientName = ref(false);
|
||||
|
||||
|
||||
@ -262,6 +262,7 @@ const formData = ref({
|
||||
onMounted(() => {
|
||||
if (props.isNew) {
|
||||
resetForm();
|
||||
isNewClientMode.value = true; // Set to true for new client mode
|
||||
console.log("Mounted in new client mode - initialized empty form");
|
||||
} else if (props.clientData && Object.keys(props.clientData).length > 0) {
|
||||
populateFormFromClientData();
|
||||
|
||||
@ -19,10 +19,12 @@ import Api from "../../api";
|
||||
import { useLoadingStore } from "../../stores/loading";
|
||||
import { usePaginationStore } from "../../stores/pagination";
|
||||
import { useFiltersStore } from "../../stores/filters";
|
||||
import { useNotificationStore } from "../../stores/notifications-primevue";
|
||||
|
||||
const loadingStore = useLoadingStore();
|
||||
const paginationStore = usePaginationStore();
|
||||
const filtersStore = useFiltersStore();
|
||||
const notifications = useNotificationStore();
|
||||
|
||||
const tableData = ref([]);
|
||||
const totalRecords = ref(0);
|
||||
@ -146,24 +148,25 @@ const handleLazyLoad = async (event) => {
|
||||
|
||||
// Load initial data
|
||||
onMounted(async () => {
|
||||
notifications.addWarning("Jobs page coming soon");
|
||||
// Initialize pagination and filters
|
||||
paginationStore.initializeTablePagination("jobs", { rows: 10 });
|
||||
filtersStore.initializeTableFilters("jobs", columns);
|
||||
filtersStore.initializeTableSorting("jobs");
|
||||
// paginationStore.initializeTablePagination("jobs", { rows: 10 });
|
||||
// filtersStore.initializeTableFilters("jobs", columns);
|
||||
// filtersStore.initializeTableSorting("jobs");
|
||||
|
||||
// Load first page
|
||||
const initialPagination = paginationStore.getTablePagination("jobs");
|
||||
const initialFilters = filtersStore.getTableFilters("jobs");
|
||||
const initialSorting = filtersStore.getTableSorting("jobs");
|
||||
// // Load first page
|
||||
// const initialPagination = paginationStore.getTablePagination("jobs");
|
||||
// const initialFilters = filtersStore.getTableFilters("jobs");
|
||||
// const initialSorting = filtersStore.getTableSorting("jobs");
|
||||
|
||||
await handleLazyLoad({
|
||||
page: initialPagination.page,
|
||||
rows: initialPagination.rows,
|
||||
first: initialPagination.first,
|
||||
sortField: initialSorting.field || initialPagination.sortField,
|
||||
sortOrder: initialSorting.order || initialPagination.sortOrder,
|
||||
filters: initialFilters,
|
||||
});
|
||||
// await handleLazyLoad({
|
||||
// page: initialPagination.page,
|
||||
// rows: initialPagination.rows,
|
||||
// first: initialPagination.first,
|
||||
// sortField: initialSorting.field || initialPagination.sortField,
|
||||
// sortOrder: initialSorting.order || initialPagination.sortOrder,
|
||||
// filters: initialFilters,
|
||||
// });
|
||||
});
|
||||
</script>
|
||||
<style lang=""></style>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user