Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: link contact_person (LAN-699) #226

Closed
wants to merge 17 commits into from
Closed
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions landa/organization_management/doctype/landa_member/landa_member.js
diePuppe marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ frappe.ui.form.on("LANDA Member", {
};
});


frm.make_methods = {
"User": () => {
frappe.new_doc("User", {
Expand All @@ -24,6 +25,7 @@ frappe.ui.form.on("LANDA Member", {
}
},
refresh: function (frm) {

// Automatically add the backlink to LANDA Member when a new Address or
// Contact is added.
frappe.dynamic_link = { doc: frm.doc, fieldname: "name", doctype: "LANDA Member" };
Expand Down Expand Up @@ -54,5 +56,24 @@ frappe.ui.form.on("LANDA Member", {
});
});
}
frm.add_custom_button(__('Linking as Contact Person'), function() {
diePuppe marked this conversation as resolved.
Show resolved Hide resolved
frappe.call({
method: 'landa.organization_management.doctype.landa_member.landa_member.link_contact_person',
args: {
member_name: frm.doc.name
}
});
});
frm.add_custom_button(__('Remove as Contact Person'), function() {
frappe.call({
method: 'landa.organization_management.doctype.landa_member.landa_member.unlink_contact_person',
args: {
member_name: frm.doc.name
}
});
});
},
});



diePuppe marked this conversation as resolved.
Show resolved Hide resolved
43 changes: 43 additions & 0 deletions landa/organization_management/doctype/landa_member/landa_member.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,46 @@

def get_full_name(first_name, last_name):
return (first_name or "") + (" " if (last_name and first_name) else "") + (last_name or "")


@frappe.whitelist()
def link_contact_person(member_name):
member = frappe.get_doc("LANDA Member", member_name)
organization = frappe.get_doc("Organization", member.organization)
link_member_to_organization(member, organization)
frappe.msgprint("Contact person successfully added.")


def link_member_to_organization(member, organization):
member_address = frappe.get_doc(
"Address", member.first_name + " " + member.last_name + " - " + member.name
)
member_contact = frappe.get_doc("Contact", member.first_name + "-" + member.name)
Fixed Show fixed Hide fixed
organization_address = frappe.get_doc(
"Address", organization.organization_name + " - " + organization.name
)
diePuppe marked this conversation as resolved.
Show resolved Hide resolved
organization_address.address_type = member_address.address_type
organization_address.address_line1 = member_address.address_line1
organization_address.address_line2 = member_address.address_line2
organization_address.city = member_address.city
organization_address.state = member_address.state
organization_address.pincode = member_address.pincode
organization_address.save()
organization.save()


@frappe.whitelist()
def unlink_contact_person(member_name):
member = frappe.get_doc("LANDA Member", member_name)
organization = frappe.get_doc("Organization", member.organization)

unlink_member_from_organization(organization)

frappe.msgprint("Contact person successfully removed.")


def unlink_member_from_organization(organization):
organization_address = frappe.get_doc(
"Address", organization.organization_name + " - " + organization.name
)
organization_address.delete()
diePuppe marked this conversation as resolved.
Show resolved Hide resolved
Loading