Skip to content

Commit

Permalink
fix: manually mark e-Invoice as generated
Browse files Browse the repository at this point in the history
(cherry picked from commit 4511437)

# Conflicts:
#	india_compliance/patches.txt
  • Loading branch information
Sanket322 authored and mergify[bot] committed Sep 16, 2024
1 parent 50cd8ba commit 915e422
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 2 deletions.
54 changes: 54 additions & 0 deletions india_compliance/gst_india/client_scripts/e_invoice_actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,12 @@ frappe.ui.form.on("Sales Invoice", {
},
"e-Invoice"
);

frm.add_custom_button(
__("Mark as Generated"),
() => show_mark_e_invoice_as_generated_dialog(frm),
"e-Invoice"
);
}
if (
frm.doc.irn &&
Expand Down Expand Up @@ -182,6 +188,54 @@ function show_cancel_e_invoice_dialog(frm, callback) {
`).prependTo(d.wrapper);
}

function show_mark_e_invoice_as_generated_dialog(frm) {
const d = new frappe.ui.Dialog({
title: __("Update e-Invoice Details"),
fields: get_generated_e_invoice_dialog_fields(),
primary_action_label: __("Update"),
primary_action(values) {
frappe.call({
method: "india_compliance.gst_india.utils.e_invoice.mark_e_invoice_as_generated",
args: {
doctype: frm.doctype,
docname: frm.doc.name,
values,
},
callback: () => {
d.hide();
frm.refresh();
},
});
},
});

d.show();
}

function get_generated_e_invoice_dialog_fields() {
let fields = [
{
label: "IRN Number",
fieldname: "irn",
fieldtype: "Data",
reqd: 1,
},
{
label: "Acknowledgement Number",
fieldname: "ack_no",
fieldtype: "Data",
reqd: 1,
},
{
label: "Acknowledged On",
fieldname: "ack_dt",
fieldtype: "Datetime",
reqd: 1,
},
];
return fields;
}

function show_mark_e_invoice_as_cancelled_dialog(frm) {
const d = new frappe.ui.Dialog({
title: __("Update Cancelled e-Invoice Details"),
Expand Down
2 changes: 1 addition & 1 deletion india_compliance/gst_india/constants/custom_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -967,7 +967,7 @@
"label": "e-Invoice Status",
"fieldtype": "Select",
"insert_after": "status",
"options": "\nPending\nGenerated\nAuto-Retry\nCancelled\nManually Cancelled\nFailed\nNot Applicable\nPending Cancellation",
"options": "\nPending\nGenerated\nManually Generated\nAuto-Retry\nCancelled\nManually Cancelled\nFailed\nNot Applicable\nPending Cancellation",
"default": None,
"hidden": 1,
"no_copy": 1,
Expand Down
19 changes: 18 additions & 1 deletion india_compliance/gst_india/utils/e_invoice.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ def generate_e_invoice(docname, throw=True, force=False):
doc.db_set(
{
"irn": result.Irn,
"einvoice_status": "Generated",
"einvoice_status": result.get("einvoice_status") or "Generated",
}
)

Expand Down Expand Up @@ -289,6 +289,23 @@ def log_and_process_e_invoice_cancellation(doc, values, result, message):
frappe.msgprint(_(message), indicator="green", alert=True)


@frappe.whitelist()
def mark_e_invoice_as_generated(doctype, docname, values):
doc = load_doc(doctype, docname, "submit")

values = frappe.parse_json(values)
result = frappe._dict(
{
"Irn": values.irn,
"AckDt": values.ack_dt,
"AckNo": values.ack_no,
"einvoice_status": "Manually Generated",
}
)

return log_and_process_e_invoice_generation(doc, result)


@frappe.whitelist()
def mark_e_invoice_as_cancelled(doctype, docname, values):
doc = load_doc(doctype, docname, "cancel")
Expand Down
6 changes: 6 additions & 0 deletions india_compliance/patches.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,15 @@ execute:import frappe; frappe.delete_doc_if_exists("DocType", "GSTIN")

[post_model_sync]
india_compliance.patches.v14.set_default_for_overridden_accounts_setting
<<<<<<< HEAD
execute:from india_compliance.gst_india.setup import create_custom_fields; create_custom_fields() #51
execute:from india_compliance.gst_india.setup import create_property_setters; create_property_setters() #7
execute:from india_compliance.income_tax_india.setup import create_custom_fields; create_custom_fields() #1
=======
execute:from india_compliance.gst_india.setup import create_custom_fields; create_custom_fields() #58
execute:from india_compliance.gst_india.setup import create_property_setters; create_property_setters() #8
execute:from india_compliance.income_tax_india.setup import create_custom_fields; create_custom_fields() #2
>>>>>>> 4511437b (fix: manually mark e-Invoice as generated)
india_compliance.patches.post_install.remove_old_fields #2
india_compliance.patches.post_install.set_gst_tax_type
india_compliance.patches.post_install.set_gst_tax_type_in_journal_entry
Expand Down

0 comments on commit 915e422

Please sign in to comment.