From e6d78fa9d904934d608fbf02826defd1f8cf4153 Mon Sep 17 00:00:00 2001 From: Tyler Matteson Date: Tue, 14 May 2024 17:27:38 -0400 Subject: [PATCH 01/23] wip: print preview --- .../check_run/doctype/check_run/check_run.js | 18 +- .../check_run/doctype/check_run/check_run.py | 77 ++- check_run/check_run/page/__init__.py | 0 .../page/print_check_run/__init__.py | 0 .../page/print_check_run/print_check_run.js | 589 ++++++++++++++++++ .../page/print_check_run/print_check_run.json | 19 + check_run/www/print_check_run.html | 41 ++ check_run/www/print_check_run.py | 95 +++ 8 files changed, 810 insertions(+), 29 deletions(-) create mode 100644 check_run/check_run/page/__init__.py create mode 100644 check_run/check_run/page/print_check_run/__init__.py create mode 100644 check_run/check_run/page/print_check_run/print_check_run.js create mode 100644 check_run/check_run/page/print_check_run/print_check_run.json create mode 100644 check_run/www/print_check_run.html create mode 100644 check_run/www/print_check_run.py diff --git a/check_run/check_run/doctype/check_run/check_run.js b/check_run/check_run/doctype/check_run/check_run.js index 2b63df8f..7be993b5 100644 --- a/check_run/check_run/doctype/check_run/check_run.js +++ b/check_run/check_run/doctype/check_run/check_run.js @@ -9,7 +9,7 @@ frappe.ui.form.on('Check Run', { show_progress_bar(frm, data, 'Processing') }) frappe.realtime.on('render_check_progress', data => { - show_progress_bar(frm, data, 'Printing') + show_progress_bar(frm, data, 'Rendering') }) }, validate: frm => { @@ -64,6 +64,17 @@ frappe.ui.form.on('Check Run', { frm.set_df_property('final_check_number', 'read_only', 1) } check_settings(frm) + $('[data-original-title="Print"]').hide() + if (frappe.model.can_print(null, frm)) { + frm.page.add_action_icon( + 'printer', + () => { + frappe.set_route('print-check-run', frm.doc.name) + }, + '', + __('Print') + ) + } }, onload_post_render: frm => { frm.page.wrapper.find('.layout-side-section').hide() @@ -326,7 +337,10 @@ function ach_only(frm) { frm.add_custom_button(__('Re-Print Checks'), () => { reprint_checks(frm) }) - } else if (frm.doc.print_count == 0 && frm.doc.status == 'Submitted') { + } else if ( + frm.doc.print_count == 0 && + frm.doc.status == 'Submitted' && + frm.doc.__onload.print_preview == 'Automatically Render PDF after Submit') { render_checks(frm) } } diff --git a/check_run/check_run/doctype/check_run/check_run.py b/check_run/check_run/doctype/check_run/check_run.py index 8aa8a8d0..28f85b39 100644 --- a/check_run/check_run/doctype/check_run/check_run.py +++ b/check_run/check_run/doctype/check_run/check_run.py @@ -8,11 +8,12 @@ from typing_extensions import Self from PyPDF2 import PdfFileWriter +from bs4 import BeautifulSoup + import frappe from frappe.model.document import Document from frappe.utils.data import flt from frappe.utils.data import nowdate, getdate, now, get_datetime -from frappe.utils.print_format import read_multi_pdf from frappe.permissions import has_permission from frappe.utils.file_manager import save_file, remove_all from frappe.utils.password import get_decrypted_password @@ -415,14 +416,18 @@ def increment_print_count(self: Self, reprint_check_number: int | None = None) - frappe.enqueue_doc( self.doctype, self.name, - "render_check_pdf", + "render_check_run", reprint_check_number=reprint_check_number, queue="short", now=True, ) @frappe.whitelist() - def render_check_pdf(self: Self, reprint_check_number: int | None = None) -> None: + def render_check_run( + self: Self, reprint_check_number: int | None = None, pdf: bool = True + ) -> None | str: + from frappe.utils.print_format import read_multi_pdf # imported here to prevent circular imports + self.print_count = self.print_count + 1 self.set_status("Submitted") if not frappe.db.exists("File", "Home/Check Run"): @@ -438,6 +443,7 @@ def render_check_pdf(self: Self, reprint_check_number: int | None = None) -> Non self.initial_check_number = int(reprint_check_number) output = PdfFileWriter() se_print_output = PdfFileWriter() + html = [] transactions = json.loads(self.transactions) check_increment = 0 _transactions = [] @@ -455,19 +461,32 @@ def render_check_pdf(self: Self, reprint_check_number: int | None = None) -> Non "Payment Entry", pe, settings.secondary_print_format or frappe.get_meta("Payment Entry").default_print_format, - as_pdf=True, - output=se_print_output, + as_pdf=pdf, + output=se_print_output if pdf else "", no_letterhead=0, ) if docstatus == 1 and frappe.db.get_value("Mode of Payment", mode_of_payment, "type") == "Bank": - output = frappe.get_print( - "Payment Entry", - pe, - settings.print_format or frappe.get_meta("Payment Entry").default_print_format, - as_pdf=True, - output=output, - no_letterhead=0, - ) + if pdf: + output = frappe.get_print( + "Payment Entry", + pe, + settings.print_format or frappe.get_meta("Payment Entry").default_print_format, + as_pdf=True, + output=output, + no_letterhead=0, + ) + else: + _output = frappe.get_print( + "Payment Entry", + pe, + settings.print_format or frappe.get_meta("Payment Entry").default_print_format, + as_pdf=False, + no_letterhead=0, + ) + soup = BeautifulSoup(_output,"html.parser") + soup.find('div', class_="action-banner").decompose() + soup.find('div', class_="print-format-gutter").unwrap() + html.append(soup.prettify()) if initial_check_number != reprint_check_number: frappe.db.set_value( "Payment Entry", pe, "reference_no", self.initial_check_number + check_increment @@ -500,20 +519,24 @@ def render_check_pdf(self: Self, reprint_check_number: int | None = None) -> Non self.db_set("status", "Ready to Print") self.db_set("print_count", self.print_count) frappe.db.set_value("Bank Account", self.bank_account, "check_number", self.final_check_number) - save_file( - f"{self.name}.pdf", read_multi_pdf(output), "Check Run", self.name, "Home/Check Run", False, 0 - ) - save_file( - f"Chaque {self.name}.pdf", - read_multi_pdf(se_print_output), - "Check Run", - self.name, - "Home/Check Run", - False, - 0, - ) - frappe.db.commit() - frappe.publish_realtime("reload", "{}", doctype=self.doctype, docname=self.name) + if pdf: + save_file( + f"{self.name}.pdf", read_multi_pdf(output), "Check Run", self.name, "Home/Check Run", False, 0 + ) + save_file( + f"{self.name}.pdf", + read_multi_pdf(se_print_output), + "Check Run", + self.name, + "Home/Check Run", + False, + 0, + ) + frappe.db.commit() + frappe.publish_realtime("reload", "{}", doctype=self.doctype, docname=self.name) + return None + else: + return '


'.join(html) @frappe.whitelist() diff --git a/check_run/check_run/page/__init__.py b/check_run/check_run/page/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/check_run/check_run/page/print_check_run/__init__.py b/check_run/check_run/page/print_check_run/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/check_run/check_run/page/print_check_run/print_check_run.js b/check_run/check_run/page/print_check_run/print_check_run.js new file mode 100644 index 00000000..41ff5199 --- /dev/null +++ b/check_run/check_run/page/print_check_run/print_check_run.js @@ -0,0 +1,589 @@ +frappe.pages['print-check-run'].on_page_load = function (wrapper) { + frappe.ui.make_app_page({ + parent: wrapper, + }) + + let print_view = new frappe.ui.form.PrintView(wrapper) + + $(wrapper).bind('show', () => { + const route = frappe.get_route() + const doctype = 'Check Run' + const docname = route[1] + if (!frappe.route_options || !frappe.route_options.frm) { + frappe.model.with_doc(doctype, docname, () => { + let frm = { doctype: doctype, docname: docname } + frm.doc = frappe.get_doc(doctype, docname) + frappe.model.with_doctype(doctype, () => { + frm.meta = frappe.get_meta(route[1]) + print_view.show(frm) + }) + }) + } else { + print_view.frm = frappe.route_options.frm.doctype ? frappe.route_options.frm : frappe.route_options.frm.frm + frappe.route_options.frm = null + print_view.show(print_view.frm) + } + }) +} + +frappe.ui.form.PrintView = class { + constructor(wrapper) { + this.wrapper = $(wrapper) + this.page = wrapper.page + this.make() + } + + make() { + this.print_wrapper = this.page.main.empty().html( + `
+ +
+ ` + ) + + this.print_settings = frappe.model.get_doc(':Print Settings', 'Print Settings') + this.setup_menu() + this.setup_toolbar() + this.setup_sidebar() + this.setup_keyboard_shortcuts() + } + + set_title() { + this.page.set_title(this.frm.docname) + } + + setup_toolbar() { + this.page.set_primary_action(__('Print'), () => this.printit(), 'printer') + + this.page.add_button(__('Full Page'), () => this.render_page('/print_check_run?'), { + icon: 'full-page', + }) + + this.page.add_button(__('PDF'), () => this.render_pdf(), { icon: 'small-file' }) + + this.page.add_button(__('Refresh'), () => this.refresh_print_format(), { + icon: 'refresh', + }) + + this.page.add_action_icon( + 'file', + () => { + this.go_to_form_view() + }, + '', + __('Form') + ) + } + + setup_sidebar() { + this.sidebar = this.page.sidebar.addClass('print-preview-sidebar') + + this.doctype_to_print = this.add_sidebar_item({ + fieldtype: 'Select', + fieldname: 'doctype', + placeholder: 'Payment Entry', + options: ['Payment Entry', 'Payment Entry Secondary Format', 'Check Run'], + default: 'Payment Entry', + change: () => { + this.preview() + }, + }).$input + + this.print_sel = this.add_sidebar_item({ + fieldtype: 'Autocomplete', + fieldname: 'print_format', + label: 'Print Format', + options: 'Print Format', + change: () => this.refresh_print_format(), + default: '', + }).$input + + this.invoices_per_voucher = this.add_sidebar_item({ + fieldtype: 'Int', + fieldname: 'invoices_per_voucher', + label: 'Invoices Per Voucher', + change: () => this.refresh_print_format(), + default: 5, + }).$input + + this.secondary_print_format = this.add_sidebar_item({ + fieldtype: 'Autocomplete', + fieldname: 'secondary_print_format', + label: 'Secondary Print Format', + options: 'Print Format', + change: () => this.refresh_print_format(), + default: '', + }).$input + } + + add_sidebar_item(df, is_dynamic) { + if (df.fieldtype == 'Select') { + df.input_class = 'btn btn-default btn-sm text-left' + } + + let field = frappe.ui.form.make_control({ + df: df, + parent: is_dynamic ? this.sidebar_dynamic_section : this.sidebar, + render_input: 1, + }) + + if (df.default != null) { + field.set_input(df.default) + } + + return field + } + + get_default_option_for_select(value) { + return { + label: value, + value: value, + disabled: true, + } + } + + setup_menu() { + this.page.clear_menu() + + this.page.add_menu_item(__('Print Settings'), () => { + frappe.set_route('Form', 'Print Settings') + }) + + if (this.print_settings.enable_raw_printing == '1') { + this.page.add_menu_item(__('Raw Printing Setting'), () => { + this.printer_setting_dialog() + }) + } + + if (frappe.model.can_create('Print Format')) { + this.page.add_menu_item(__('Customize'), () => this.edit_print_format()) + } + + if (cint(this.print_settings.enable_print_server)) { + this.page.add_menu_item(__('Select Network Printer'), () => this.network_printer_setting_dialog()) + } + } + + show(frm) { + this.frm = frm + this.set_title() + + let tasks = [this.refresh_print_options, this.preview].map(fn => fn.bind(this)) + + return frappe.run_serially(tasks) + } + + refresh_print_format() { + this.preview() + } + + setup_keyboard_shortcuts() { + this.wrapper.find('.print-toolbar a.btn-default').each((i, el) => { + frappe.ui.keys.get_shortcut_group(this.frm.page).add($(el)) + }) + } + + preview() { + let print_format = this.get_print_format() + if (print_format.print_format_builder_beta) { + this.preview_beta() + return + } + + const $print_format = this.print_wrapper.find('iframe') + this.$print_format_body = $print_format.contents() + this.get_print_html(out => { + if (!out.html) { + out.html = this.get_no_preview_html() + } + + this.setup_print_format_dom(out, $print_format) + + const print_height = $print_format.get(0).offsetHeight + const $message = this.wrapper.find('.page-break-message') + + const print_height_inches = frappe.dom.pixel_to_inches(print_height) + // if contents are large enough, indicate that it will get printed on multiple pages + // Maximum height for an A4 document is 11.69 inches + if (print_height_inches > 11.69) { + $message.text(__('This may get printed on multiple pages')) + } else { + $message.text('') + } + }) + } + + preview_beta() { + let print_format = this.get_print_format() + const iframe = this.print_wrapper.find('.preview-beta-wrapper iframe') + let params = new URLSearchParams({ + doctype: this.frm.doc.doctype, + name: this.frm.doc.name, + print_format: print_format.name, + }) + iframe.prop('src', `/printpreview?${params.toString()}`) + } + + setup_print_format_dom(out, $print_format) { + this.print_wrapper.find('.print-format-skeleton').remove() + let base_url = frappe.urllib.get_base_url() + let print_css = frappe.assets.bundled_asset('print.bundle.css', frappe.utils.is_rtl(this.lang_code)) + this.$print_format_body.find('html').attr('dir', frappe.utils.is_rtl(this.lang_code) ? 'rtl' : 'ltr') + this.$print_format_body.find('html').attr('lang', this.lang_code) + this.$print_format_body.find('head').html( + ` + ` + ) + + this.$print_format_body.find('body').html(``) + + this.show_footer() + + this.$print_format_body.find('.print-format').css({ + display: 'flex', + flexDirection: 'column', + }) + + this.$print_format_body.find('.page-break').css({ + display: 'flex', + 'flex-direction': 'column', + flex: '1', + }) + + setTimeout(() => { + $print_format.height(this.$print_format_body.find('.print-format').outerHeight()) + }, 500) + } + + hide() { + if (this.frm.setup_done && this.frm.page.current_view_name === 'print') { + this.frm.page.set_view( + this.frm.page.previous_view_name === 'print' ? 'main' : this.frm.page.previous_view_name || 'main' + ) + } + } + + go_to_form_view() { + frappe.route_options = { + frm: this, + } + frappe.set_route('Form', this.frm.doctype, this.frm.docname) + } + + show_footer() { + // footer is hidden by default as reqd by pdf generation + // simple hack to show it in print preview + + this.$print_format_body.find('#footer-html').attr( + 'style', + ` + display: block !important; + order: 1; + margin-top: auto; + padding-top: var(--padding-xl) + ` + ) + } + + printit() { + let me = this + + if (cint(me.print_settings.enable_print_server)) { + if (localStorage.getItem('network_printer')) { + me.print_by_server() + } else { + me.network_printer_setting_dialog(() => me.print_by_server()) + } + } else if (me.get_mapped_printer().length === 1) { + // printer is already mapped in localstorage (applies for both raw and pdf ) + if (me.is_raw_printing()) { + me.get_raw_commands(function (out) { + frappe.ui.form + .qz_connect() + .then(function () { + let printer_map = me.get_mapped_printer()[0] + let data = [out.raw_commands] + let config = qz.configs.create(printer_map.printer) + return qz.print(config, data) + }) + .then(frappe.ui.form.qz_success) + .catch(err => { + frappe.ui.form.qz_fail(err) + }) + }) + } else { + frappe.show_alert( + { + message: __('PDF printing via "Raw Print" is not supported.'), + subtitle: __('Please remove the printer mapping in Printer Settings and try again.'), + indicator: 'info', + }, + 14 + ) + //Note: need to solve "Error: Cannot parse (FILE) as a PDF file" to enable qz pdf printing. + } + } else if (me.is_raw_printing()) { + // printer not mapped in localstorage and the current print format is raw printing + frappe.show_alert( + { + message: __('Printer mapping not set.'), + subtitle: __('Please set a printer mapping for this print format in the Printer Settings'), + indicator: 'warning', + }, + 14 + ) + me.printer_setting_dialog() + } else { + me.render_page('/print_check_run?', true) + } + } + + print_by_server() { + let me = this + if (localStorage.getItem('network_printer')) { + frappe.call({ + method: 'frappe.utils.print_format.print_by_server', + args: { + doctype: me.frm.doc.doctype, + name: me.frm.doc.name, + printer_setting: localStorage.getItem('network_printer'), + print_format: me.selected_format(), + no_letterhead: true, + letterhead: null, + }, + callback: function () {}, + }) + } + } + network_printer_setting_dialog(callback) { + frappe.call({ + method: 'frappe.printing.doctype.network_printer_settings.network_printer_settings.get_network_printer_settings', + callback: function (r) { + if (r.message) { + let d = new frappe.ui.Dialog({ + title: __('Select Network Printer'), + fields: [ + { + label: 'Printer', + fieldname: 'printer', + fieldtype: 'Select', + reqd: 1, + options: r.message, + }, + ], + primary_action: function () { + localStorage.setItem('network_printer', d.get_values().printer) + if (typeof callback == 'function') { + callback() + } + d.hide() + }, + primary_action_label: __('Select'), + }) + d.show() + } + }, + }) + } + + render_pdf() { + let print_format = this.get_print_format() + if (print_format.print_format_builder_beta) { + let params = new URLSearchParams({ + doctype: this.frm.doc.doctype, + name: this.frm.doc.name, + print_format: print_format.name, + letterhead: null, + }) + let w = window.open(`/api/method/frappe.utils.weasyprint.download_pdf?${params}`) + if (!w) { + frappe.msgprint(__('Please enable pop-ups')) + return + } + } else { + this.render_page('/api/method/frappe.utils.print_format.download_pdf?') + } + } + + render_page(method, printit = false) { + let w = window.open( + frappe.urllib.get_full_url( + method + + 'doctype=' + + encodeURIComponent(this.frm.doc.doctype) + + '&name=' + + encodeURIComponent(this.frm.doc.name) + + (printit ? '&trigger_print=1' : '') + + '&format=' + + encodeURIComponent(this.selected_format()) + + '&no_letterhead=0' + + '&settings=' + + encodeURIComponent(JSON.stringify(this.additional_settings)) + + (this.lang_code ? '&_lang=' + this.lang_code : '') + ) + ) + if (!w) { + frappe.msgprint(__('Please enable pop-ups')) + return + } + } + + get_print_html(callback) { + let print_format = this.get_print_format() + if (print_format.raw_printing) { + callback({ + html: this.get_no_preview_html(), + }) + return + } + if (this._req) { + this._req.abort() + } + this._req = frappe.call({ + method: 'check_run.www.print_check_run.get_html_and_style', + args: { + doc: this.frm.doc, + doctype_to_print: this.doctype_to_print.val(), + print_format: this.selected_format(), + no_letterhead: true, + letterhead: null, + settings: this.additional_settings, + _lang: this.lang_code, + }, + callback: function (r) { + if (!r.exc) { + callback(r.message) + } + }, + }) + } + + get_no_preview_html() { + return `
+ ${__('No Preview Available')} +
` + } + + get_mapped_printer() { + // returns a list of "print format: printer" mapping filtered by the current print format + let print_format_printer_map = this.get_print_format_printer_map() + if (print_format_printer_map[this.frm.doctype]) { + return print_format_printer_map[this.frm.doctype].filter( + printer_map => printer_map.print_format == this.selected_format() + ) + } else { + return [] + } + } + + get_print_format_printer_map() { + // returns the whole object "print_format_printer_map" stored in the localStorage. + try { + let print_format_printer_map = JSON.parse(localStorage.print_format_printer_map) + return print_format_printer_map + } catch (e) { + return {} + } + } + + refresh_print_options() { + this.print_formats = frappe.meta.get_print_formats(this.frm.doctype) + const print_format_select_val = this.print_sel.val() + this.print_sel + .empty() + .add_options([this.get_default_option_for_select(__('Select Print Format')), ...this.print_formats]) + return this.print_formats.includes(print_format_select_val) && this.print_sel.val(print_format_select_val) + } + + selected_format() { + return this.print_sel.val() || 'Standard' + } + + is_raw_printing(format) { + return this.get_print_format(format).raw_printing === 1 + } + + get_print_format(format) { + let print_format = {} + if (!format) { + format = this.selected_format() + } + + if (locals['Print Format'] && locals['Print Format'][format]) { + print_format = locals['Print Format'][format] + } + + return print_format + } + + set_style(style) { + frappe.dom.set_style(style || frappe.boot.print_css, 'print-style') + } + + printer_setting_dialog() { + // dialog for the Printer Settings + this.print_format_printer_map = this.get_print_format_printer_map() + this.data = this.print_format_printer_map[this.frm.doctype] || [] + this.printer_list = [] + frappe.ui.form.qz_get_printer_list().then(data => { + this.printer_list = data + const dialog = new frappe.ui.Dialog({ + title: __('Printer Settings'), + fields: [ + { + fieldtype: 'Section Break', + }, + { + fieldname: 'printer_mapping', + fieldtype: 'Table', + label: __('Printer Mapping'), + in_place_edit: true, + data: this.data, + get_data: () => { + return this.data + }, + fields: [ + { + fieldtype: 'Select', + fieldname: 'print_format', + default: 0, + options: this.print_formats, + read_only: 0, + in_list_view: 1, + label: __('Print Format'), + }, + { + fieldtype: 'Select', + fieldname: 'printer', + default: 0, + options: this.printer_list, + read_only: 0, + in_list_view: 1, + label: __('Printer'), + }, + ], + }, + ], + primary_action: () => { + let printer_mapping = dialog.get_values()['printer_mapping'] + if (printer_mapping && printer_mapping.length) { + let print_format_list = printer_mapping.map(a => a.print_format) + let has_duplicate = print_format_list.some((item, idx) => print_format_list.indexOf(item) != idx) + if (has_duplicate) frappe.throw(__('Cannot have multiple printers mapped to a single print format.')) + } else { + printer_mapping = [] + } + dialog.print_format_printer_map = this.get_print_format_printer_map() + dialog.print_format_printer_map[this.frm.doctype] = printer_mapping + localStorage.print_format_printer_map = JSON.stringify(dialog.print_format_printer_map) + dialog.hide() + }, + primary_action_label: __('Save'), + }) + dialog.show() + if (!(this.printer_list && this.printer_list.length)) { + frappe.throw(__('No Printer is Available.')) + } + }) + } +} diff --git a/check_run/check_run/page/print_check_run/print_check_run.json b/check_run/check_run/page/print_check_run/print_check_run.json new file mode 100644 index 00000000..dbd57462 --- /dev/null +++ b/check_run/check_run/page/print_check_run/print_check_run.json @@ -0,0 +1,19 @@ +{ + "content": null, + "creation": "2024-05-14 16:02:02.168387", + "docstatus": 0, + "doctype": "Page", + "idx": 0, + "modified": "2024-05-14 16:02:02.168387", + "modified_by": "Administrator", + "module": "Check Run", + "name": "print-check-run", + "owner": "Administrator", + "page_name": "print-check-run", + "roles": [], + "script": null, + "standard": "Yes", + "style": null, + "system_page": 0, + "title": "Check Run" +} \ No newline at end of file diff --git a/check_run/www/print_check_run.html b/check_run/www/print_check_run.html new file mode 100644 index 00000000..ae5f31b0 --- /dev/null +++ b/check_run/www/print_check_run.html @@ -0,0 +1,41 @@ + + + + + + {{ title }} + + {{ include_style('print.bundle.css') }} + {% if print_style %} + + {% endif %} + + + + + + +{%- if comment -%} + +{%- endif -%} + + \ No newline at end of file diff --git a/check_run/www/print_check_run.py b/check_run/www/print_check_run.py new file mode 100644 index 00000000..1bd870b3 --- /dev/null +++ b/check_run/www/print_check_run.py @@ -0,0 +1,95 @@ +import json + +import frappe +from frappe.www.printview import ( + get_html_and_style as frappe_get_html_and_style, + get_print_style, + escape_html, +) + + +from check_run.check_run.doctype.check_run.check_run import get_check_run_settings + + +def get_context(context): + """Build context for print""" + if not ((frappe.form_dict.doctype and frappe.form_dict.name) or frappe.form_dict.doc): + return { + "body": f""" +

Error

+

Parameters doctype and name required

+
{escape_html(frappe.as_json(frappe.form_dict, indent=2))}
+ """ + } + if frappe.form_dict.doc: + doc = frappe.form_dict.doc + else: + doc = frappe.get_doc(frappe.form_dict.doctype, frappe.form_dict.name) + + +@frappe.whitelist() +def get_html_and_style( + doc, + name=None, + print_format=None, + meta=None, + no_letterhead=None, + letterhead=None, + trigger_print=False, + style=None, + settings=None, + templates=None, +): + if isinstance(doc, str) and isinstance(name, str): + doc = frappe.get_doc(doc, name) + + if isinstance(doc, str): + doc = frappe.get_doc(json.loads(doc)) + if doc.doctype == "Check Run": + return get_check_run_format( + doc, + name, + print_format, + meta, + no_letterhead, + letterhead, + trigger_print, + style, + settings, + templates, + ) + return frappe_get_html_and_style( + doc, + name, + print_format, + meta, + no_letterhead, + letterhead, + trigger_print, + style, + settings, + templates, + ) + + +def get_check_run_format( + doc, + name=None, + print_format=None, + meta=None, + no_letterhead=None, + letterhead=None, + trigger_print=False, + style=None, + settings=None, + templates=None, +): + settings = json.loads(settings) if isinstance(doc, str) else settings + check_run_settings = get_check_run_settings(doc) + if not settings: + settings = {} + settings["payment_entry_format"] = check_run_settings.print_format + settings["secondary_print_format"] = check_run_settings.secondary_print_format + + html = doc.render_check_run(pdf=False) + return {"html": html, "style": get_print_style(style=style)} From efd19d2b083e1a10fe97c629f5746922ef8645f9 Mon Sep 17 00:00:00 2001 From: ViralKansodiya-Fosserp <141210323+viralkansodiya@users.noreply.github.com> Date: Sat, 29 Jun 2024 22:03:40 +0530 Subject: [PATCH 02/23] Print Preview Changes by FossERP (#245) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * remove print Get pdf * fetch all payment entry preview in one single preview * override a print button * print page breake issue resolve * print on specific url * fix: Url of print * PDF Button override * on draft stage only allow check run default print format * on draft stage only allow check run default print format * if check run in draft then print should show msg * remove unrelevent controll * ci: track overrides por Payment Entry (#248) * on change of doctype change list of print format * change the preview and print view on change of selcted options * render pdf base on selected print_sel * create new print format 'Check Run' * remove standard formats * added a background image in check format * set the size of check format background image * back ground image only allow in print not in pdf * Confirm print pop up * Secondary print format added * remove background image in pdf * reformat by pre-commit * Change syntex * closed the window after action on print window --------- Co-authored-by: Francisco Roldán --- .../check_run/doctype/check_run/check_run.py | 67 +- .../check_run_settings/check_run_settings.js | 8 + .../check_run_settings.json | 578 +++++++++--------- .../page/print_check_run/print_check_run.js | 197 +++++- .../print_skeleton_loading.html | 164 +++++ .../print_format/check_run/__init__.py | 0 .../print_format/check_run/check_run.json | 32 + .../example_voucher/example_voucher.json | 4 +- check_run/overrides/payment_entry.py | 10 +- check_run/www/__init__.py | 0 check_run/www/print_check_run.py | 90 ++- 11 files changed, 824 insertions(+), 326 deletions(-) create mode 100644 check_run/check_run/page/print_check_run/print_skeleton_loading.html create mode 100644 check_run/check_run/print_format/check_run/__init__.py create mode 100644 check_run/check_run/print_format/check_run/check_run.json create mode 100644 check_run/www/__init__.py diff --git a/check_run/check_run/doctype/check_run/check_run.py b/check_run/check_run/doctype/check_run/check_run.py index 28f85b39..1620aca9 100644 --- a/check_run/check_run/doctype/check_run/check_run.py +++ b/check_run/check_run/doctype/check_run/check_run.py @@ -6,7 +6,8 @@ from itertools import groupby, zip_longest from io import StringIO from typing_extensions import Self - +from frappe.www.printview import validate_print_permission +from frappe.translate import print_language from PyPDF2 import PdfFileWriter from bs4 import BeautifulSoup @@ -960,3 +961,67 @@ def ach_only(docname: str) -> dict: def process_check_run(docname: str) -> None: doc = frappe.get_doc("Check Run", docname) doc.process_check_run() + + +@frappe.whitelist(allow_guest=True) +def download_pdf( + doctype, + name, + formattype=None, + print_format=None, + doc=None, + no_letterhead=0, + language=None, + letterhead=None, + baseurl=None, + printcss=None, +): + doc = doc or frappe.get_doc(doctype, name) + validate_print_permission(doc) + from check_run.www.print_check_run import get_check_run_format + + out = get_check_run_format( + doc, name=doc.name, doctype_to_print=formattype, print_format=print_format + ) + data = "" + for d in out.get("html"): + data += d[0] + + style = out.get("style") + + hide_image = """ + @media print { + @print { + margin: 0; + } + + .back_image { + background: none !important; + } + } + """ + + html = """""".format( + style, baseurl, printcss + ) + + html += f"" + + modified_html_string = html.replace("", hide_image + "") + html = modified_html_string + with print_language(language): + pdf_file = frappe.get_print( + doctype, + name, + html=html, + doc=doc, + as_pdf=True, + letterhead=letterhead, + no_letterhead=no_letterhead, + ) + + frappe.local.response.filename = "{name}.pdf".format( + name=name.replace(" ", "-").replace("/", "-") + ) + frappe.local.response.filecontent = pdf_file + frappe.local.response.type = "pdf" diff --git a/check_run/check_run/doctype/check_run_settings/check_run_settings.js b/check_run/check_run/doctype/check_run_settings/check_run_settings.js index 9ba74675..3b09dad2 100644 --- a/check_run/check_run/doctype/check_run_settings/check_run_settings.js +++ b/check_run/check_run/doctype/check_run_settings/check_run_settings.js @@ -27,5 +27,13 @@ frappe.ui.form.on('Check Run Settings', { }, } }) + frm.set_query('secondary_print_format', () => { + return { + filters: { + disabled: 0, + doc_type: 'Payment Entry', + }, + } + }) }, }) diff --git a/check_run/check_run/doctype/check_run_settings/check_run_settings.json b/check_run/check_run/doctype/check_run_settings/check_run_settings.json index a59603ef..9da5c425 100644 --- a/check_run/check_run/doctype/check_run_settings/check_run_settings.json +++ b/check_run/check_run/doctype/check_run_settings/check_run_settings.json @@ -1,285 +1,297 @@ { - "actions": [], - "autoname": "format:ACC-CRS-{bank_account}-{pay_to_account}", - "creation": "2022-08-22 14:43:43.533105", - "doctype": "DocType", - "editable_grid": 1, - "engine": "InnoDB", - "field_order": [ - "company", - "bank_account", - "column_break_3", - "pay_to_account", - "print_format", - "section_break_4", - "include_purchase_invoices", - "include_journal_entries", - "include_expense_claims", - "pre_check_overdue_items", - "allow_cancellation", - "cascade_cancellation", - "validate_unique_check_number", - "column_break_9", - "number_of_invoices_per_voucher", - "secondary_print_format", - "split_by_address", - "automatically_release_on_hold_invoices", - "file_preview_threshold", - "allow_stand_alone_debit_notes", - "default_modes_of_payment_section_section", - "purchase_invoice", - "journal_entry", - "column_break_21", - "expense_claim", - "ach_settings_section", - "ach_file_extension", - "ach_service_class_code", - "ach_standard_class_code", - "ach_description", - "column_break_27", - "immediate_origin", - "company_discretionary_data", - "custom_post_processing_hook" - ], - "fields": [ - { - "fieldname": "company", - "fieldtype": "Link", - "label": "Company", - "options": "Company" - }, - { - "fieldname": "bank_account", - "fieldtype": "Link", - "label": "Bank Account", - "options": "Bank Account" - }, - { - "fieldname": "section_break_4", - "fieldtype": "Section Break" - }, - { - "default": "1", - "fieldname": "include_purchase_invoices", - "fieldtype": "Check", - "label": "Include Purchase Invoices" - }, - { - "default": "1", - "fieldname": "include_journal_entries", - "fieldtype": "Check", - "label": "Include Journal Entries " - }, - { - "default": "1", - "fieldname": "include_expense_claims", - "fieldtype": "Check", - "label": "Include Expense Claims" - }, - { - "default": "0", - "description": "Payment Entries will be unlinked when Check Run is cancelled", - "fieldname": "allow_cancellation", - "fieldtype": "Check", - "label": "Allow Cancellation" - }, - { - "fieldname": "column_break_9", - "fieldtype": "Column Break" - }, - { - "default": "ach", - "description": "Common file extensions are 'ach', 'txt' and 'dat'. Your bank may require one of these.", - "fieldname": "ach_file_extension", - "fieldtype": "Data", - "label": "ACH File Extension" - }, - { - "default": "0", - "description": "Pre-Check all payables that have a due date greater than the Check Run's posting date", - "fieldname": "pre_check_overdue_items", - "fieldtype": "Check", - "label": "Pre-Check Overdue Items" - }, - { - "default": "0", - "description": "When a Check Run is cancelled, all Payment Entries linked to it will also be cancelled. This is not recommended.", - "fieldname": "cascade_cancellation", - "fieldtype": "Check", - "label": "Cascade Cancellation" - }, - { - "description": "Defaults to 5 if no value is provided", - "fieldname": "number_of_invoices_per_voucher", - "fieldtype": "Int", - "label": "Number of Invoices per Voucher", - "non_negative": 1 - }, - { - "fieldname": "column_break_3", - "fieldtype": "Column Break" - }, - { - "fieldname": "pay_to_account", - "fieldtype": "Link", - "label": "Payable Account", - "options": "Account" - }, - { - "fieldname": "ach_service_class_code", - "fieldtype": "Select", - "label": "ACH Service Class Code", - "options": "200\n220\n225" - }, - { - "description": "PPD is only supported Entry format at this time", - "fieldname": "ach_standard_class_code", - "fieldtype": "Select", - "label": "ACH Standard Class Code", - "options": "PPD" - }, - { - "fieldname": "ach_description", - "fieldtype": "Data", - "label": "ACH Description", - "length": 10 - }, - { - "fieldname": "print_format", - "fieldtype": "Link", - "label": "Print Format", - "options": "Print Format" - }, - { - "default": "0", - "fieldname": "split_by_address", - "fieldtype": "Check", - "label": "Split Invoices by Address" - }, - { - "fieldname": "ach_settings_section", - "fieldtype": "Section Break", - "label": "ACH Settings" - }, - { - "fieldname": "column_break_21", - "fieldtype": "Column Break" - }, - { - "default": "0", - "fieldname": "automatically_release_on_hold_invoices", - "fieldtype": "Check", - "label": "Automatically Release On Hold Invoices" - }, - { - "fieldname": "immediate_origin", - "fieldtype": "Data", - "label": "Immediate Origin" - }, - { - "fieldname": "company_discretionary_data", - "fieldtype": "Data", - "label": "Company Discretionary Data", - "length": 20 - }, - { - "fieldname": "custom_post_processing_hook", - "fieldtype": "Data", - "label": "Custom Post Processing Hook", - "read_only": 1 - }, - { - "fieldname": "default_modes_of_payment_section_section", - "fieldtype": "Section Break", - "label": "Default Modes of Payment Section" - }, - { - "fieldname": "purchase_invoice", - "fieldtype": "Link", - "label": "Purchase Invoice", - "options": "Mode of Payment" - }, - { - "fieldname": "journal_entry", - "fieldtype": "Link", - "label": "Journal Entry", - "options": "Mode of Payment" - }, - { - "fieldname": "expense_claim", - "fieldtype": "Link", - "label": "Expense Claim", - "options": "Mode of Payment" - }, - { - "fieldname": "column_break_27", - "fieldtype": "Column Break" - }, - { - "default": "1000", - "description": "File preview is enabled up to this number of transactions", - "fieldname": "file_preview_threshold", - "fieldtype": "Int", - "label": "File Preview Threshold" - }, - { - "default": "0", - "fieldname": "validate_unique_check_number", - "fieldtype": "Check", - "label": "Validate Unique Check Number" - }, - { - - "fieldname": "secondary_print_format", - "fieldtype": "Link", - "label": "Secondary Print Format", - "options": "Print Format" - }, - { - - "default": "No", - "fieldname": "allow_stand_alone_debit_notes", - "fieldtype": "Select", - "label": "Allow stand-alone debit notes?", - "options": "Yes\nNo" - } - ], - "links": [], - "modified": "2024-04-30 04:53:43.492872", - "modified_by": "Administrator", - "module": "Check Run", - "name": "Check Run Settings", - "naming_rule": "Expression", - "owner": "Administrator", - "permissions": [ - { - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "share": 1, - "write": 1 - }, - { - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "print": 1, - "read": 1, - "report": 1, - "role": "Accounts Manager", - "share": 1, - "write": 1 - } - ], - "quick_entry": 1, - "sort_field": "modified", - "sort_order": "DESC", - "states": [], - "track_changes": 1 + "actions": [], + "autoname": "format:ACC-CRS-{bank_account}-{pay_to_account}", + "creation": "2022-08-22 14:43:43.533105", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "company", + "bank_account", + "column_break_3", + "pay_to_account", + "print_format", + "section_break_4", + "include_purchase_invoices", + "include_journal_entries", + "include_expense_claims", + "pre_check_overdue_items", + "allow_cancellation", + "cascade_cancellation", + "validate_unique_check_number", + "check_formats_with_background_image", + "background_image", + "column_break_9", + "number_of_invoices_per_voucher", + "secondary_print_format", + "split_by_address", + "automatically_release_on_hold_invoices", + "file_preview_threshold", + "allow_stand_alone_debit_notes", + "default_modes_of_payment_section_section", + "purchase_invoice", + "journal_entry", + "column_break_21", + "expense_claim", + "ach_settings_section", + "ach_file_extension", + "ach_service_class_code", + "ach_standard_class_code", + "ach_description", + "column_break_27", + "immediate_origin", + "company_discretionary_data", + "custom_post_processing_hook" + ], + "fields": [ + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company" + }, + { + "fieldname": "bank_account", + "fieldtype": "Link", + "label": "Bank Account", + "options": "Bank Account" + }, + { + "fieldname": "section_break_4", + "fieldtype": "Section Break" + }, + { + "default": "1", + "fieldname": "include_purchase_invoices", + "fieldtype": "Check", + "label": "Include Purchase Invoices" + }, + { + "default": "1", + "fieldname": "include_journal_entries", + "fieldtype": "Check", + "label": "Include Journal Entries " + }, + { + "default": "1", + "fieldname": "include_expense_claims", + "fieldtype": "Check", + "label": "Include Expense Claims" + }, + { + "default": "0", + "description": "Payment Entries will be unlinked when Check Run is cancelled", + "fieldname": "allow_cancellation", + "fieldtype": "Check", + "label": "Allow Cancellation" + }, + { + "fieldname": "column_break_9", + "fieldtype": "Column Break" + }, + { + "default": "ach", + "description": "Common file extensions are 'ach', 'txt' and 'dat'. Your bank may require one of these.", + "fieldname": "ach_file_extension", + "fieldtype": "Data", + "label": "ACH File Extension" + }, + { + "default": "0", + "description": "Pre-Check all payables that have a due date greater than the Check Run's posting date", + "fieldname": "pre_check_overdue_items", + "fieldtype": "Check", + "label": "Pre-Check Overdue Items" + }, + { + "default": "0", + "description": "When a Check Run is cancelled, all Payment Entries linked to it will also be cancelled. This is not recommended.", + "fieldname": "cascade_cancellation", + "fieldtype": "Check", + "label": "Cascade Cancellation" + }, + { + "description": "Defaults to 5 if no value is provided", + "fieldname": "number_of_invoices_per_voucher", + "fieldtype": "Int", + "label": "Number of Invoices per Voucher", + "non_negative": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "pay_to_account", + "fieldtype": "Link", + "label": "Payable Account", + "options": "Account" + }, + { + "fieldname": "ach_service_class_code", + "fieldtype": "Select", + "label": "ACH Service Class Code", + "options": "200\n220\n225" + }, + { + "description": "PPD is only supported Entry format at this time", + "fieldname": "ach_standard_class_code", + "fieldtype": "Select", + "label": "ACH Standard Class Code", + "options": "PPD" + }, + { + "fieldname": "ach_description", + "fieldtype": "Data", + "label": "ACH Description", + "length": 10 + }, + { + "fieldname": "print_format", + "fieldtype": "Link", + "label": "Print Format", + "options": "Print Format" + }, + { + "default": "0", + "fieldname": "split_by_address", + "fieldtype": "Check", + "label": "Split Invoices by Address" + }, + { + "fieldname": "ach_settings_section", + "fieldtype": "Section Break", + "label": "ACH Settings" + }, + { + "fieldname": "column_break_21", + "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "automatically_release_on_hold_invoices", + "fieldtype": "Check", + "label": "Automatically Release On Hold Invoices" + }, + { + "fieldname": "immediate_origin", + "fieldtype": "Data", + "label": "Immediate Origin" + }, + { + "fieldname": "company_discretionary_data", + "fieldtype": "Data", + "label": "Company Discretionary Data", + "length": 20 + }, + { + "fieldname": "custom_post_processing_hook", + "fieldtype": "Data", + "label": "Custom Post Processing Hook", + "read_only": 1 + }, + { + "fieldname": "default_modes_of_payment_section_section", + "fieldtype": "Section Break", + "label": "Default Modes of Payment Section" + }, + { + "fieldname": "purchase_invoice", + "fieldtype": "Link", + "label": "Purchase Invoice", + "options": "Mode of Payment" + }, + { + "fieldname": "journal_entry", + "fieldtype": "Link", + "label": "Journal Entry", + "options": "Mode of Payment" + }, + { + "fieldname": "expense_claim", + "fieldtype": "Link", + "label": "Expense Claim", + "options": "Mode of Payment" + }, + { + "fieldname": "column_break_27", + "fieldtype": "Column Break" + }, + { + "default": "1000", + "description": "File preview is enabled up to this number of transactions", + "fieldname": "file_preview_threshold", + "fieldtype": "Int", + "label": "File Preview Threshold" + }, + { + "default": "0", + "fieldname": "validate_unique_check_number", + "fieldtype": "Check", + "label": "Validate Unique Check Number" + }, + { + "default": "No", + "fieldname": "allow_stand_alone_debit_notes", + "fieldtype": "Select", + "label": "Allow stand-alone debit notes?", + "options": "Yes\nNo" + }, + { + "fieldname": "secondary_print_format", + "fieldtype": "Link", + "label": "Secondary Print Format", + "options": "Print Format" + }, + { + "default": "0", + "fieldname": "check_formats_with_background_image", + "fieldtype": "Check", + "label": "Check formats with background image" + }, + { + "depends_on": "eval:doc.check_formats_with_background_image", + "fieldname": "background_image", + "fieldtype": "Attach", + "label": "Background Image" + } + ], + "links": [], + "modified": "2024-06-06 06:57:27.879988", + "modified_by": "Administrator", + "module": "Check Run", + "name": "Check Run Settings", + "naming_rule": "Expression", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "states": [], + "track_changes": 1 } \ No newline at end of file diff --git a/check_run/check_run/page/print_check_run/print_check_run.js b/check_run/check_run/page/print_check_run/print_check_run.js index 41ff5199..a2e779b1 100644 --- a/check_run/check_run/page/print_check_run/print_check_run.js +++ b/check_run/check_run/page/print_check_run/print_check_run.js @@ -75,6 +75,10 @@ frappe.ui.form.PrintView = class { ) } + get_language_options() { + return frappe.get_languages() + } + setup_sidebar() { this.sidebar = this.page.sidebar.addClass('print-preview-sidebar') @@ -82,20 +86,22 @@ frappe.ui.form.PrintView = class { fieldtype: 'Select', fieldname: 'doctype', placeholder: 'Payment Entry', - options: ['Payment Entry', 'Payment Entry Secondary Format', 'Check Run'], + options: ['Check Run', 'Payment Entry', 'Payment Entry Secondary Format'], default: 'Payment Entry', change: () => { this.preview() + this.refresh_print_options() + this.preview() }, }).$input this.print_sel = this.add_sidebar_item({ - fieldtype: 'Autocomplete', + fieldtype: 'Select', fieldname: 'print_format', label: 'Print Format', - options: 'Print Format', + options: [this.get_default_option_for_select(__('Select Print Format'))], change: () => this.refresh_print_format(), - default: '', + default: __('Select Print Format'), }).$input this.invoices_per_voucher = this.add_sidebar_item({ @@ -104,15 +110,16 @@ frappe.ui.form.PrintView = class { label: 'Invoices Per Voucher', change: () => this.refresh_print_format(), default: 5, + read_only: 1, }).$input - this.secondary_print_format = this.add_sidebar_item({ - fieldtype: 'Autocomplete', - fieldname: 'secondary_print_format', - label: 'Secondary Print Format', - options: 'Print Format', + this.update_check_ref = this.add_sidebar_item({ + fieldtype: 'Select', + fieldname: 'update_check_ref', + label: 'Update Check Reference', + options: ['No', 'Yes'], change: () => this.refresh_print_format(), - default: '', + default: __('No'), }).$input } @@ -155,10 +162,6 @@ frappe.ui.form.PrintView = class { }) } - if (frappe.model.can_create('Print Format')) { - this.page.add_menu_item(__('Customize'), () => this.edit_print_format()) - } - if (cint(this.print_settings.enable_print_server)) { this.page.add_menu_item(__('Select Network Printer'), () => this.network_printer_setting_dialog()) } @@ -213,6 +216,10 @@ frappe.ui.form.PrintView = class { }) } + get_letterhead() { + return this.letterhead_selector.val() + } + preview_beta() { let print_format = this.get_print_format() const iframe = this.print_wrapper.find('.preview-beta-wrapper iframe') @@ -234,8 +241,19 @@ frappe.ui.form.PrintView = class { ` ` ) + if (this.doctype_to_print.val() == 'Check Run') { + this.$print_format_body.find('body').html(``) + } else { + this.$print_format_body.find('body').html(``) - this.$print_format_body.find('body').html(``) + let $parentDiv = this.$print_format_body.find('.print-format-preview') + + // Use forEach to append each HTML string to the parent div + out.html.forEach(function (htmlContent) { + $parentDiv.append(htmlContent) + $parentDiv.append(`
`) + }) + } this.show_footer() @@ -336,6 +354,7 @@ frappe.ui.form.PrintView = class { } else { me.render_page('/print_check_run?', true) } + this.confirm_print(me) } print_by_server() { @@ -401,27 +420,71 @@ frappe.ui.form.PrintView = class { return } } else { - this.render_page('/api/method/frappe.utils.print_format.download_pdf?') + this.render_check_run_pdf('/api/method/check_run.check_run.doctype.check_run.check_run.download_pdf?') } } + set_user_lang() { + console.log(this.language_sel.val()) + this.lang_code = this.language_sel.val() + } + + render_check_run_pdf(method) { + let base_url = frappe.urllib.get_base_url() + let print_css = frappe.assets.bundled_asset('print.bundle.css', frappe.utils.is_rtl(this.lang_code)) + let w = window.open( + frappe.urllib.get_full_url(`${method} + doctype=${encodeURIComponent(this.frm.doc.doctype)} + &name=${encodeURIComponent(this.frm.doc.name)} + &formattype=${encodeURIComponent(this.doctype_to_print.val())} + &print_format=${encodeURIComponent(this.print_sel.val())} + &baseurl=${encodeURIComponent(base_url)} + &printcss=${encodeURIComponent(print_css)} + &lang=${encodeURIComponent('en')}`) + ) + } + render_page(method, printit = false) { let w = window.open( - frappe.urllib.get_full_url( - method + - 'doctype=' + - encodeURIComponent(this.frm.doc.doctype) + - '&name=' + - encodeURIComponent(this.frm.doc.name) + - (printit ? '&trigger_print=1' : '') + - '&format=' + - encodeURIComponent(this.selected_format()) + - '&no_letterhead=0' + - '&settings=' + - encodeURIComponent(JSON.stringify(this.additional_settings)) + - (this.lang_code ? '&_lang=' + this.lang_code : '') - ) + frappe.urllib.get_full_url(`${method} + doctype=${encodeURIComponent(this.frm.doc.doctype)} + &name=${encodeURIComponent(this.frm.doc.name)} + &formattype=${encodeURIComponent(this.doctype_to_print)} + &lang=${encodeURIComponent('en')}`) ) + + this.get_print_html(out => { + let base_url = frappe.urllib.get_base_url() + let print_css = frappe.assets.bundled_asset('print.bundle.css', frappe.utils.is_rtl(this.lang_code)) + w.document.write(` + `) + w.document.write(``) + w.document.close() + if (printit) { + w.print() + } + var afterPrint = function () { + w.close() + } + if (w.matchMedia) { + var mediaQueryList = w.matchMedia('print') + mediaQueryList.addListener(function (mql) { + if (!mql.matches) { + console.log('out') + afterPrint() + } + }) + } + window.onafterprint = afterPrint + }) if (!w) { frappe.msgprint(__('Please enable pop-ups')) return @@ -486,8 +549,16 @@ frappe.ui.form.PrintView = class { } } - refresh_print_options() { + async refresh_print_options() { this.print_formats = frappe.meta.get_print_formats(this.frm.doctype) + if (this.doctype_to_print.val() == 'Payment Entry') { + this.print_formats = await frappe.xcall('check_run.www.print_check_run.get_formats', { doctype: 'Payment Entry' }) + } + if (this.doctype_to_print.val() == 'Payment Entry Secondary Format') { + this.print_formats = await frappe.xcall('check_run.www.print_check_run.get_formats', { + doctype: this.frm.docname, + }) + } const print_format_select_val = this.print_sel.val() this.print_sel .empty() @@ -516,10 +587,74 @@ frappe.ui.form.PrintView = class { return print_format } + with_letterhead() { + return cint(this.get_letterhead() !== __('No Letterhead')) + } + set_style(style) { frappe.dom.set_style(style || frappe.boot.print_css, 'print-style') } + confirm_print(me) { + if (this.update_check_ref.val() == 'No') { + return + } + + let frm = me.frm + let d = new frappe.ui.Dialog({ + title: __('Confirm Print'), + fields: [ + { + fieldname: 'ht', + fieldtype: 'HTML', + options: ` + +

`, + }, + { + fieldname: 'reprint_check_number', + fieldtype: 'Data', + label: __('New Initial Check Number'), + }, + ], + minimizable: false, + static: true, + }) + d.wrapper.find('#confirm-print').on('click', () => { + frappe + .xcall('check_run.check_run.doctype.check_run.check_run.confirm_print', { + docname: frm.doc.name, + }) + .then(() => { + d.hide() + }) + }) + d.wrapper.find('#reprint').on('click', () => { + d.fields_dict.reprint_check_number.df.reqd = 1 + let values = cur_dialog.get_values() + this.render_checks(me, frm, values.reprint_check_number || undefined) + frm.doc.status = 'Submitted' + me.page.set_indicator(__('Submitted'), 'blue') + d.hide() + }) + d.show() + } + + render_checks(me, frm, reprint_check_number = undefined) { + frappe + .call({ + method: 'increment_print_count', + doc: frm.doc, + args: { reprint_check_number: reprint_check_number }, + }) + .done(() => { + frappe.msgprint('Check Reference No updated successfully') + }) + .fail(r => {}) + } + printer_setting_dialog() { // dialog for the Printer Settings this.print_format_printer_map = this.get_print_format_printer_map() diff --git a/check_run/check_run/page/print_check_run/print_skeleton_loading.html b/check_run/check_run/page/print_check_run/print_skeleton_loading.html new file mode 100644 index 00000000..c1e6a0dd --- /dev/null +++ b/check_run/check_run/page/print_check_run/print_skeleton_loading.html @@ -0,0 +1,164 @@ + diff --git a/check_run/check_run/print_format/check_run/__init__.py b/check_run/check_run/print_format/check_run/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/check_run/check_run/print_format/check_run/check_run.json b/check_run/check_run/print_format/check_run/check_run.json new file mode 100644 index 00000000..1eb3ad2a --- /dev/null +++ b/check_run/check_run/print_format/check_run/check_run.json @@ -0,0 +1,32 @@ +{ + "absolute_value": 0, + "align_labels_right": 0, + "creation": "2024-06-04 04:59:24.275841", + "css": " .container_ {\n width:100%;\n display: flex;\n padding-right: 0px;\n padding-left: 0px;\n margin-right: auto;\n margin-left: auto;\n }\n.box {\n flex: 1; /* This makes each div take up equal space */\n margin: 10px;\n}\n.print-format td{\n padding:2px !important;\n}\n.print-format th{\n padding:2px !important;\n}\ntable{\n font-size:12px!important;\n}", + "custom_format": 1, + "default_print_language": "en", + "disabled": 0, + "doc_type": "Check Run", + "docstatus": 0, + "doctype": "Print Format", + "font_size": 14, + "html": "
\n\t
\n\t\t

\n\t\t\t
Check Run
\n\t\t\tACC-CR-2024-00001\n\t\t

\n\t
\n
\n
\n
\n

Check Run End Date:

\n {{doc.end_date or ''}}\n
\n
\n

Initial Check Number:

\n {{ doc.initial_check_number}}\n
\n
\n

Company

\n {{ doc.company }}\n
\n
\n
\n
\n

Posting Date:

\n {{doc.posting_date or ''}}\n
\n
\n

Final Check Number:

\n {{ doc.final_check_number }}\n
\n
\n

Paid From (Bank Account):

\n {{ doc.bank_account }}\n
\n
\n
\n
\n

Beginning Bank Account Balance:

\n {{frappe.format(doc.beg_balance,{'fieldtype':\"Currency\"} ) or ''}}\n
\n
\n

Amount in Check Run

\n {{frappe.format(doc.amount_check_run ,{'fieldtype':\"Currency\"} ) or ''}}\n
\n
\n

Accounts Payable:

\n {{ doc.pay_to_account }}\n
\n
\n{% set pe_list = frappe.db.get_list(\"Payment Entry\", {\"check_run\":doc.name}) %}\n\n \n \n \n \n \n \n \n \n \n \n {% for row in pe_list %}\n {% set doc_ = frappe.get_doc(\"Payment Entry\", row.name) %}\n {% for d in doc_.references %}\n \n \n \n \n \n \n \n \n {% endfor %}\n {% endfor %}\n \n
PartyDocumentDocument DateOutstanding AmountDue DateReference
{{ doc_.party }}{{ d.reference_name }}{{ frappe.db.get_value(d.reference_doctype, d.reference_name, \"posting_date\") or ''}}{{ doc_.paid_amount or '' }}{{ frappe.db.get_value(d.reference_doctype, d.reference_name, \"due_date\") or '' }}{{ doc_.name }}
\n\n \n \n\n", + "idx": 0, + "line_breaks": 0, + "margin_bottom": 15.0, + "margin_left": 15.0, + "margin_right": 15.0, + "margin_top": 15.0, + "modified": "2024-06-06 03:54:20.194111", + "modified_by": "Administrator", + "module": "Check Run", + "name": "Check Run", + "owner": "Administrator", + "page_number": "Hide", + "print_format_builder": 0, + "print_format_builder_beta": 0, + "print_format_type": "Jinja", + "raw_printing": 0, + "show_section_headings": 0, + "standard": "Yes" +} \ No newline at end of file diff --git a/check_run/check_run/print_format/example_voucher/example_voucher.json b/check_run/check_run/print_format/example_voucher/example_voucher.json index aae6b166..e617ecae 100644 --- a/check_run/check_run/print_format/example_voucher/example_voucher.json +++ b/check_run/check_run/print_format/example_voucher/example_voucher.json @@ -11,14 +11,14 @@ "doctype": "Print Format", "font": "Default", "font_size": 0, - "html": "
\r\n
\r\n {% if doc.docstatus == 0 %}\r\n VOID DRAFT\r\n VOID DRAFT\r\n {% elif doc.docstatus == 2 or overwrite_void %}\r\n VOID\r\n VOID\r\n VOID\r\n {% endif %}\r\n
\r\n \r\n {{ doc.company }}\r\n \r\n
\r\n \r\n {{ doc.get_formatted('posting_date') }} \r\n \r\n \r\n {{ doc.party_name }}\r\n \r\n \r\n
\r\n {{ doc.party_name }}
\r\n {% set address = get_default_address(doc.party_type, doc.party) %}\r\n {% if address %}\r\n {{ frappe.get_doc('Address', address).get_display() }}\r\n {% endif %}\r\n
\r\n
\r\n \r\n {% set money_number = doc.get_formatted('paid_amount')[1:].strip() %} \r\n {% if money_number|length < 18 %}\r\n {% set money_number = ( money_number + '***************************')[:18] %}\r\n {% endif %}\r\n {{ money_number }}\r\n \r\n \r\n {% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\r\n {% if money_in_words|length < 90 %}\r\n {% set money_in_words = (money_in_words + '************************************************************************')[:100] %}\r\n {% endif %}\r\n {{ money_in_words }}\r\n \r\n \r\n {{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\r\n \r\n \r\n SIGNATURE\r\n \r\n \r\n CHECK#\r\n \r\n \r\n ACCOUNT NUMBER {{ doc.account_no or '' }}\r\n \r\n \r\n ROUTING_NUMBER\r\n \r\n
\r\n
\r\n{% set number_of_invoice = frappe.db.get_value(\"Check Run Settings\", {'bank_account':doc.bank_account,'company':doc.company}, ['number_of_invoices_per_voucher']) %}\r\n\r\n{% for i in range(0,2) %}\r\n{% if i == 0 %}\r\n
\r\n{% endif %}\r\n{% if i == 1 and not doc.references|length >= number_of_invoice %}\r\n
\r\n {% endif %}\r\n{% if i == 1 and doc.references|length >= number_of_invoice %}\r\n
\r\n {% endif %}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {% if doc.references|length >= number_of_invoice %}\r\n \r\n \r\n \r\n {% else %}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {% for reference in doc.references %}\r\n \r\n {% if reference.reference_doctype == 'Purchase Invoice' %}\r\n \r\n \r\n {% elif reference.reference_doctype == 'Sales Invoice' %}\r\n \r\n \r\n {% elif reference.reference_doctype == 'Expense Claim' %}\r\n \r\n \r\n {% elif reference.reference_doctype == 'Journal Entry' %}\r\n \r\n \r\n {% endif %}\r\n \r\n \r\n \r\n {% endfor %}\r\n {% endif %}\r\n
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
\r\n {% for reference in doc.references %}\r\n {% if reference.reference_doctype == 'Purchase Invoice' %}\r\n {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\"}}, \r\n {% elif reference.reference_doctype == 'Sales Invoice' %}\r\n {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }},\r\n {% elif reference.reference_doctype == 'Expense Claim' %}\r\n {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }}, \r\n {% elif reference.reference_doctype == 'Journal Entry' %}\r\n {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }},\r\n {% endif %}\r\n {% endfor %}\r\n
Date Reference Amount Payment
{{i }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ frappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, doc.paid_from_account_currency) }}
\r\n
\r\n
\r\n{% endfor %}", + "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\":checkrun.bank_account, \"pay_to_account\":checkrun.pay_to_account , \"company\":checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n\n\n\n
\n\t
\n\t {% if doc.docstatus == 0 %}\n VOID DRAFT\n VOID DRAFT\n {% elif doc.docstatus == 2 or overwrite_void %}\n VOID\n VOID\n VOID\n {% endif %}\n\t \n\t
\n\t\t\n\t\t\t{{ doc.company }}\n\t\t\n\t\t
\n\t\t\n\t\t {{ doc.get_formatted('posting_date') }} \n\t\t\n\n\t\t\n\t\t\t{{ doc.party_name }}\n\t\t\n\t\t\n\t\t\n\t
\n\t {{ doc.party_name }}
\n\t {% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t{% if address %}\n\t\t\t {{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t{% endif %}\n\t\t\t
\n\t\t
\n\t\t\n\t\t\n\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %} \n\t\t\t\n\t\t\t{% if money_number|length < 18 %}\n\t\t\t\t {% set money_number = ( money_number + '***************************')[:18] %}\n\t\t\t{% endif %}\n\t\t\t{{ money_number }}\n\t\t\n\t\t\n\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t{% if money_in_words|length < 90 %}\n\t\t\t\t {% set money_in_words = (money_in_words + '************************************************************************')[:100] %}\n\t\t\t\t{% endif %}\n\t\t\t\t{{ money_in_words }}\n\t\t\n\t\t\n\t\t\n\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\n\n\t\t\n\t\t SIGNATURE\n\n\t\t\n \n\t\t\tCHECK#\n\t\t\n\t\t\t\t\n\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\n\t\t\n\t\t\tROUTING_NUMBER\n\t\t\n\t
\n
\n{% for i in range(0,2) %}\n {% if i == 0 %}\n
\n {% endif %}\n {% if i == 1 %}\n
\n {% endif %}\n
\n\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t {% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t {% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t\t{% endif %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{% endfor %}\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ reference.get_formatted('allocated_amount')}}
\n
\n
\n{% endfor %}", "idx": 0, "line_breaks": 0, "margin_bottom": 0.0, "margin_left": 0.0, "margin_right": 0.0, "margin_top": 0.0, - "modified": "2024-03-28 01:37:54.409479", + "modified": "2024-06-17 22:52:14.346055", "modified_by": "Administrator", "module": "Check Run", "name": "Example Voucher", diff --git a/check_run/overrides/payment_entry.py b/check_run/overrides/payment_entry.py index fe8f679c..8461bc64 100644 --- a/check_run/overrides/payment_entry.py +++ b/check_run/overrides/payment_entry.py @@ -15,7 +15,7 @@ class CheckRunPaymentEntry(PaymentEntry): def make_gl_entries(self, cancel=0, adv_adj=0): """ - HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 + HASH: 38cc28a4c34597e09dc8fe70884fefc30eaa24db REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: make_gl_entries @@ -41,7 +41,7 @@ def make_gl_entries(self, cancel=0, adv_adj=0): def set_status(self): """ - HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 + HASH: 38cc28a4c34597e09dc8fe70884fefc30eaa24db REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: set_status @@ -60,7 +60,7 @@ def set_status(self): # Bug Fix def get_valid_reference_doctypes(self): """ - HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 + HASH: 38cc28a4c34597e09dc8fe70884fefc30eaa24db REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: get_valid_reference_doctypes @@ -86,7 +86,7 @@ def get_valid_reference_doctypes(self): def validate_allocated_amount(self): """ - HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 + HASH: 38cc28a4c34597e09dc8fe70884fefc30eaa24db REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: validate_allocated_amount @@ -126,7 +126,7 @@ def validate_allocated_amount(self): def validate_allocated_amount_with_latest_data(self): """ - HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 + HASH: 38cc28a4c34597e09dc8fe70884fefc30eaa24db REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: validate_allocated_amount_with_latest_data diff --git a/check_run/www/__init__.py b/check_run/www/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/check_run/www/print_check_run.py b/check_run/www/print_check_run.py index 1bd870b3..6c4e1e9c 100644 --- a/check_run/www/print_check_run.py +++ b/check_run/www/print_check_run.py @@ -6,7 +6,7 @@ get_print_style, escape_html, ) - +from frappe.www.printview import set_link_titles, get_rendered_template, get_print_format_doc from check_run.check_run.doctype.check_run.check_run import get_check_run_settings @@ -31,6 +31,7 @@ def get_context(context): def get_html_and_style( doc, name=None, + doctype_to_print=None, print_format=None, meta=None, no_letterhead=None, @@ -49,6 +50,7 @@ def get_html_and_style( return get_check_run_format( doc, name, + doctype_to_print, print_format, meta, no_letterhead, @@ -58,6 +60,7 @@ def get_html_and_style( settings, templates, ) + return frappe_get_html_and_style( doc, name, @@ -75,6 +78,7 @@ def get_html_and_style( def get_check_run_format( doc, name=None, + doctype_to_print=None, print_format=None, meta=None, no_letterhead=None, @@ -84,12 +88,90 @@ def get_check_run_format( settings=None, templates=None, ): - settings = json.loads(settings) if isinstance(doc, str) else settings check_run_settings = get_check_run_settings(doc) if not settings: settings = {} settings["payment_entry_format"] = check_run_settings.print_format settings["secondary_print_format"] = check_run_settings.secondary_print_format - html = doc.render_check_run(pdf=False) - return {"html": html, "style": get_print_style(style=style)} + if doctype_to_print == "Check Run": + print_format = get_print_format_doc(print_format, meta=meta or frappe.get_meta("Check Run")) + set_link_titles(doc) + try: + html = get_rendered_template( + doc, + name=name, + print_format=print_format, + meta=meta, + no_letterhead=no_letterhead, + letterhead=letterhead, + trigger_print=trigger_print, + settings=frappe.parse_json(settings), + ) + except frappe.TemplateNotFoundError: + frappe.clear_last_message() + html = None + + return {"html": html, "style": get_print_style(style=style, print_format=print_format)} + + transaction = json.loads(doc.transactions) if isinstance(doc.transactions, str) else None + html = [] + pe = [] + if transaction and doc.docstatus == 1: + for row in transaction: + pe.append(row.get("payment_entry")) + + payment_entry = list(set(pe)) + for row in payment_entry: + pe_doc = frappe.get_doc("Payment Entry", row) + + settings = json.loads(settings) if isinstance(doc, str) else settings + + print_formats = get_print_format_doc( + print_format, meta=meta or frappe.get_meta("Payment Entry") + ) + set_link_titles(pe_doc) + + try: + html_ = [] + html_code = get_rendered_template( + pe_doc, + name=name, + print_format=print_formats, + meta=meta, + no_letterhead=no_letterhead, + letterhead=letterhead, + trigger_print=trigger_print, + settings=frappe.parse_json(settings), + ) + html_code += "
" + html_.append(html_code) + html.append(html_) + except frappe.TemplateNotFoundError: + frappe.clear_last_message() + html = None + + return {"html": html, "style": get_print_style(style=style, print_format=print_formats)} + return { + "html": [ + "

Please Process Check Run First And Create Payment Entry

" + ], + "style": None, + } + + +@frappe.whitelist() +def get_formats(doctype): + if doctype == "Check Run": + print_format = frappe.db.get_list("Print Format", filters={"doc_type": doctype}, pluck="name") + + return print_format + elif doctype == "Payment Entry": + print_format = frappe.db.get_list( + "Print Format", filters={"doc_type": "Payment Entry"}, pluck="name" + ) + return print_format + else: + doc = frappe.get_doc("Check Run", doctype) + check_run_settings = get_check_run_settings(doc) + return [check_run_settings.secondary_print_format] From 37bae70ed07ca1bf34e546477c96e8d85b0189b5 Mon Sep 17 00:00:00 2001 From: Tyler Matteson Date: Wed, 10 Jul 2024 12:57:44 -0400 Subject: [PATCH 03/23] wip: configurable PDF generation or preview --- .../check_run/doctype/check_run/check_run.js | 53 +++++++++++-------- .../check_run/doctype/check_run/check_run.py | 19 +++---- .../check_run_settings.json | 10 +++- .../example_secondary_print_format.json | 2 +- .../example_voucher/example_voucher.json | 2 +- 5 files changed, 51 insertions(+), 35 deletions(-) diff --git a/check_run/check_run/doctype/check_run/check_run.js b/check_run/check_run/doctype/check_run/check_run.js index 7be993b5..9025a6ff 100644 --- a/check_run/check_run/doctype/check_run/check_run.js +++ b/check_run/check_run/doctype/check_run/check_run.js @@ -294,6 +294,9 @@ function confirm_print(frm) { } function reprint_checks(frm) { + if (frm.settings.print_preview == 'Print from Print Preview') { + return + } frm.set_value('status', 'Submitted') let d = new frappe.ui.Dialog({ title: __('Re-Print'), @@ -326,16 +329,25 @@ function reprint_checks(frm) { } function ach_only(frm) { - frappe - .xcall('check_run.check_run.doctype.check_run.check_run.ach_only', { - docname: frm.doc.name, - }) - .then(r => { - if (!r.ach_only) { - if (frm.doc.docstatus == 1) { - if (frm.doc.print_count > 0 && frm.doc.status != 'Ready to Print') { - frm.add_custom_button(__('Re-Print Checks'), () => { - reprint_checks(frm) + if (frm.settings.print_preview != 'Print from Print Preview') { + frappe + .xcall('check_run.check_run.doctype.check_run.check_run.ach_only', { + docname: frm.doc.name, + }) + .then(r => { + if (!r.ach_only) { + if (frm.doc.docstatus == 1) { + if (frm.doc.print_count > 0 && frm.doc.status != 'Ready to Print') { + frm.add_custom_button(__('Re-Print Checks'), () => { + reprint_checks(frm) + }) + } else if (frm.doc.print_count == 0 && frm.doc.status == 'Submitted') { + render_checks(frm) + } + } + if (frm.doc.status == 'Ready to Print') { + frm.add_custom_button(__('Download Checks'), () => { + download_checks(frm) }) } else if ( frm.doc.print_count == 0 && @@ -344,20 +356,15 @@ function ach_only(frm) { render_checks(frm) } } - if (frm.doc.status == 'Ready to Print') { - frm.add_custom_button(__('Download Checks'), () => { - download_checks(frm) - }) - } - } - if (!r.print_checks_only) { - if (frm.doc.docstatus == 1) { - frm.add_custom_button(__('Download NACHA File'), () => { - download_nacha(frm) - }) + if (!r.print_checks_only) { + if (frm.doc.docstatus == 1) { + frm.add_custom_button(__('Download NACHA File'), () => { + download_nacha(frm) + }) + } } - } - }) + }) + } } function validate_mode_of_payment_mandatory(frm) { diff --git a/check_run/check_run/doctype/check_run/check_run.py b/check_run/check_run/doctype/check_run/check_run.py index 1620aca9..ddc2078f 100644 --- a/check_run/check_run/doctype/check_run/check_run.py +++ b/check_run/check_run/doctype/check_run/check_run.py @@ -524,15 +524,16 @@ def render_check_run( save_file( f"{self.name}.pdf", read_multi_pdf(output), "Check Run", self.name, "Home/Check Run", False, 0 ) - save_file( - f"{self.name}.pdf", - read_multi_pdf(se_print_output), - "Check Run", - self.name, - "Home/Check Run", - False, - 0, - ) + # TODO: this is raising an issue + # save_file( + # f"{self.name}.pdf", + # read_multi_pdf(se_print_output), + # "Check Run", + # self.name, + # "Home/Check Run", + # False, + # 0, + # ) frappe.db.commit() frappe.publish_realtime("reload", "{}", doctype=self.doctype, docname=self.name) return None diff --git a/check_run/check_run/doctype/check_run_settings/check_run_settings.json b/check_run/check_run/doctype/check_run_settings/check_run_settings.json index 9da5c425..63a42866 100644 --- a/check_run/check_run/doctype/check_run_settings/check_run_settings.json +++ b/check_run/check_run/doctype/check_run_settings/check_run_settings.json @@ -22,6 +22,7 @@ "check_formats_with_background_image", "background_image", "column_break_9", + "print_preview", "number_of_invoices_per_voucher", "secondary_print_format", "split_by_address", @@ -254,10 +255,17 @@ "fieldname": "background_image", "fieldtype": "Attach", "label": "Background Image" + }, + { + "default": "Automatically Render PDF After Submit", + "fieldname": "print_preview", + "fieldtype": "Select", + "label": "Print Preview", + "options": "Automatically Render PDF After Submit\nPrint from Print Preview" } ], "links": [], - "modified": "2024-06-06 06:57:27.879988", + "modified": "2024-07-10 12:03:31.615288", "modified_by": "Administrator", "module": "Check Run", "name": "Check Run Settings", diff --git a/check_run/check_run/print_format/example_secondary_print_format/example_secondary_print_format.json b/check_run/check_run/print_format/example_secondary_print_format/example_secondary_print_format.json index 6a4c6a78..c66d489e 100644 --- a/check_run/check_run/print_format/example_secondary_print_format/example_secondary_print_format.json +++ b/check_run/check_run/print_format/example_secondary_print_format/example_secondary_print_format.json @@ -18,7 +18,7 @@ "margin_left": 0.0, "margin_right": 0.0, "margin_top": 0.0, - "modified": "2024-03-28 01:38:34.472380", + "modified": "2024-07-10 12:56:54.277459", "modified_by": "Administrator", "module": "Check Run", "name": "Example Secondary Print Format", diff --git a/check_run/check_run/print_format/example_voucher/example_voucher.json b/check_run/check_run/print_format/example_voucher/example_voucher.json index e617ecae..4b820991 100644 --- a/check_run/check_run/print_format/example_voucher/example_voucher.json +++ b/check_run/check_run/print_format/example_voucher/example_voucher.json @@ -18,7 +18,7 @@ "margin_left": 0.0, "margin_right": 0.0, "margin_top": 0.0, - "modified": "2024-06-17 22:52:14.346055", + "modified": "2024-07-10 12:32:00.794389", "modified_by": "Administrator", "module": "Check Run", "name": "Example Voucher", From b0fc0a865802c0241fb229ca28abcd2de33937b0 Mon Sep 17 00:00:00 2001 From: Tyler Matteson Date: Mon, 22 Jul 2024 17:59:54 -0400 Subject: [PATCH 04/23] wip: print preview working --- .../page/print_check_run/print_check_run.js | 11 +++++++---- .../example_voucher/example_voucher.json | 4 ++-- check_run/tests/setup.py | 18 +++++++++--------- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/check_run/check_run/page/print_check_run/print_check_run.js b/check_run/check_run/page/print_check_run/print_check_run.js index a2e779b1..bee24f0e 100644 --- a/check_run/check_run/page/print_check_run/print_check_run.js +++ b/check_run/check_run/page/print_check_run/print_check_run.js @@ -35,10 +35,13 @@ frappe.ui.form.PrintView = class { make() { this.print_wrapper = this.page.main.empty().html( - `
- -
- ` + `` ) this.print_settings = frappe.model.get_doc(':Print Settings', 'Print Settings') diff --git a/check_run/check_run/print_format/example_voucher/example_voucher.json b/check_run/check_run/print_format/example_voucher/example_voucher.json index 4b820991..6820520f 100644 --- a/check_run/check_run/print_format/example_voucher/example_voucher.json +++ b/check_run/check_run/print_format/example_voucher/example_voucher.json @@ -11,14 +11,14 @@ "doctype": "Print Format", "font": "Default", "font_size": 0, - "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\":checkrun.bank_account, \"pay_to_account\":checkrun.pay_to_account , \"company\":checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n\n\n\n
\n\t
\n\t {% if doc.docstatus == 0 %}\n VOID DRAFT\n VOID DRAFT\n {% elif doc.docstatus == 2 or overwrite_void %}\n VOID\n VOID\n VOID\n {% endif %}\n\t \n\t
\n\t\t\n\t\t\t{{ doc.company }}\n\t\t\n\t\t
\n\t\t\n\t\t {{ doc.get_formatted('posting_date') }} \n\t\t\n\n\t\t\n\t\t\t{{ doc.party_name }}\n\t\t\n\t\t\n\t\t\n\t
\n\t {{ doc.party_name }}
\n\t {% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t{% if address %}\n\t\t\t {{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t{% endif %}\n\t\t\t
\n\t\t
\n\t\t\n\t\t\n\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %} \n\t\t\t\n\t\t\t{% if money_number|length < 18 %}\n\t\t\t\t {% set money_number = ( money_number + '***************************')[:18] %}\n\t\t\t{% endif %}\n\t\t\t{{ money_number }}\n\t\t\n\t\t\n\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t{% if money_in_words|length < 90 %}\n\t\t\t\t {% set money_in_words = (money_in_words + '************************************************************************')[:100] %}\n\t\t\t\t{% endif %}\n\t\t\t\t{{ money_in_words }}\n\t\t\n\t\t\n\t\t\n\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\n\n\t\t\n\t\t SIGNATURE\n\n\t\t\n \n\t\t\tCHECK#\n\t\t\n\t\t\t\t\n\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\n\t\t\n\t\t\tROUTING_NUMBER\n\t\t\n\t
\n
\n{% for i in range(0,2) %}\n {% if i == 0 %}\n
\n {% endif %}\n {% if i == 1 %}\n
\n {% endif %}\n
\n\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t {% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t {% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t\t{% endif %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{% endfor %}\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ reference.get_formatted('allocated_amount')}}
\n
\n
\n{% endfor %}", + "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account, \"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n\n\n
\n
\n\t
\n\t {% if doc.docstatus == 0 %}\n VOID DRAFT\n VOID DRAFT\n {% elif doc.docstatus == 2 or overwrite_void %}\n VOID\n VOID\n VOID\n {% endif %}\n\t \n\t
\n\t\t\n\t\t\t{{ doc.company }}\n\t\t\n\t\t
\n\t\t\n\t\t {{ doc.get_formatted('posting_date') }} \n\t\t\n\n\t\t\n\t\t\t{{ doc.party_name }}\n\t\t\n\t\t\n\t\t\n\t
\n\t {{ doc.party_name }}
\n\t {% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t{% if address %}\n\t\t\t {{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t{% endif %}\n\t\t\t
\n\t\t
\n\t\t\n\t\t\n\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %} \n\t\t\t\n\t\t\t{% if money_number|length < 18 %}\n\t\t\t\t {% set money_number = ( money_number + '***************************')[:18] %}\n\t\t\t{% endif %}\n\t\t\t{{ money_number }}\n\t\t\n\t\t\n\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t{% if money_in_words|length < 90 %}\n\t\t\t\t {% set money_in_words = (money_in_words + '************************************************************************')[:100] %}\n\t\t\t\t{% endif %}\n\t\t\t\t{{ money_in_words }}\n\t\t\n\t\t\n\t\t\n\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\n\n\t\t\n\t\t SIGNATURE\n\n\t\t\n \n\t\t\tCHECK#\n\t\t\n\t\t\t\t\n\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\n\t\t\n\t\t\tROUTING_NUMBER\n\t\t\n\t
\n
\n{% for i in range(0,2) %}\n {% if i == 0 %}\n
\n {% endif %}\n {% if i == 1 %}\n
\n {% endif %}\n
\n\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t {% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t {% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t\t{% endif %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{% endfor %}\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ reference.get_formatted('allocated_amount')}}
\n
\n
\n{% endfor %}\n
", "idx": 0, "line_breaks": 0, "margin_bottom": 0.0, "margin_left": 0.0, "margin_right": 0.0, "margin_top": 0.0, - "modified": "2024-07-10 12:32:00.794389", + "modified": "2024-07-22 17:55:19.747856", "modified_by": "Administrator", "module": "Check Run", "name": "Example Voucher", diff --git a/check_run/tests/setup.py b/check_run/tests/setup.py index 76f9b442..6b2b39f0 100644 --- a/check_run/tests/setup.py +++ b/check_run/tests/setup.py @@ -313,7 +313,7 @@ def create_invoices(settings): pi = frappe.new_doc("Purchase Invoice") pi.company = settings.company pi.set_posting_time = 1 - pi.posting_date = settings.day + pi.bill_date = pi.posting_date = settings.day pi.supplier = "Tireless Equipment Rental, Inc" pi.append( "items", @@ -334,7 +334,7 @@ def create_invoices(settings): pi = frappe.new_doc("Purchase Invoice") pi.company = settings.company pi.set_posting_time = 1 - pi.posting_date = settings.day + pi.bill_date = pi.posting_date = settings.day pi.supplier = supplier[0] pi.append( "items", @@ -350,7 +350,7 @@ def create_invoices(settings): pi = frappe.new_doc("Purchase Invoice") pi.company = settings.company pi.set_posting_time = 1 - pi.posting_date = settings.day + pi.bill_date = pi.posting_date = settings.day pi.supplier = suppliers[0][0] pi.append( "items", @@ -367,7 +367,7 @@ def create_invoices(settings): pi = frappe.new_doc("Purchase Invoice") pi.company = settings.company pi.set_posting_time = 1 - pi.posting_date = settings.day + pi.bill_date = pi.posting_date = settings.day pi.supplier = suppliers[4][0] pi.append( "items", @@ -390,7 +390,7 @@ def create_invoices(settings): pi = frappe.new_doc("Purchase Invoice") pi.company = settings.company pi.set_posting_time = 1 - pi.posting_date = next_day + pi.bill_date = pi.posting_date = next_day pi.supplier = supplier[0] pi.append( "items", @@ -408,7 +408,7 @@ def create_invoices(settings): pi = frappe.new_doc("Purchase Invoice") pi.company = settings.company pi.set_posting_time = 1 - pi.posting_date = next_day + pi.bill_date = pi.posting_date = next_day pi.supplier = suppliers[0][0] pi.append( "items", @@ -425,7 +425,7 @@ def create_invoices(settings): pi = frappe.new_doc("Purchase Invoice") pi.company = settings.company pi.set_posting_time = 1 - pi.posting_date = settings.day + pi.bill_date = pi.posting_date = settings.day pi.supplier = suppliers[4][0] pi.append( "items", @@ -443,7 +443,7 @@ def create_invoices(settings): pi = frappe.new_doc("Purchase Invoice") pi.company = settings.company pi.set_posting_time = 1 - pi.posting_date = settings.day + pi.bill_date = pi.posting_date = settings.day pi.supplier = suppliers[1][0] pi.append( "items", @@ -719,7 +719,7 @@ def create_extra_invoices(settings): pi = frappe.new_doc("Purchase Invoice") pi.company = settings.company pi.set_posting_time = 1 - pi.posting_date = _day + pi.bill_date = pi.posting_date = _day pi.supplier = supplier[0] pi.append( "items", From 9125970ae5d8f6869ac02ad2badc47e07bf6c9ab Mon Sep 17 00:00:00 2001 From: Tyler Matteson Date: Mon, 22 Jul 2024 18:02:50 -0400 Subject: [PATCH 05/23] chore: black --- check_run/check_run/doctype/check_run/check_run.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/check_run/check_run/doctype/check_run/check_run.py b/check_run/check_run/doctype/check_run/check_run.py index ddc2078f..dda8b719 100644 --- a/check_run/check_run/doctype/check_run/check_run.py +++ b/check_run/check_run/doctype/check_run/check_run.py @@ -484,9 +484,9 @@ def render_check_run( as_pdf=False, no_letterhead=0, ) - soup = BeautifulSoup(_output,"html.parser") - soup.find('div', class_="action-banner").decompose() - soup.find('div', class_="print-format-gutter").unwrap() + soup = BeautifulSoup(_output, "html.parser") + soup.find("div", class_="action-banner").decompose() + soup.find("div", class_="print-format-gutter").unwrap() html.append(soup.prettify()) if initial_check_number != reprint_check_number: frappe.db.set_value( @@ -538,7 +538,9 @@ def render_check_run( frappe.publish_realtime("reload", "{}", doctype=self.doctype, docname=self.name) return None else: - return '


'.join(html) + return '


'.join( + html + ) @frappe.whitelist() From de50489d414bd0f5608cd48ad037429e1435e6a6 Mon Sep 17 00:00:00 2001 From: Tyler Matteson Date: Mon, 22 Jul 2024 18:07:29 -0400 Subject: [PATCH 06/23] wip: update prettier approach --- .pre-commit-config.yaml | 23 +- .prettierrc.js => .prettierrc.cjs | 0 check_run/.editorconfig | 15 + .../check_run/doctype/check_run/check_run.js | 5 +- .../check_run_settings.json | 608 +++++++++--------- .../page/print_check_run/print_check_run.json | 36 +- .../print_skeleton_loading.html | 93 ++- .../print_format/check_run/check_run.json | 62 +- .../example_secondary_print_format.json | 64 +- .../example_voucher/example_voucher.json | 62 +- check_run/www/print_check_run.html | 78 ++- 11 files changed, 522 insertions(+), 524 deletions(-) rename .prettierrc.js => .prettierrc.cjs (100%) create mode 100644 check_run/.editorconfig diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bcf3bf1d..a9cbca8b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -30,22 +30,6 @@ repos: hooks: - id: black - - repo: https://github.com/pre-commit/mirrors-prettier - rev: v2.7.1 - hooks: - - id: prettier - types_or: [javascript] - # Ignore any files that might contain jinja / bundles - exclude: | - (?x)^( - frappe/public/dist/.*| - .*node_modules.*| - .*boilerplate.*| - frappe/www/website_script.js| - frappe/templates/includes/.*| - frappe/public/js/lib/.* - )$ - - repo: https://github.com/PyCQA/flake8 rev: 5.0.4 hooks: @@ -68,6 +52,13 @@ repos: language: system types: [python] + - repo: local + hooks: + - id: prettier + name: prettier + entry: npx prettier -w . --config .prettierrc.cjs --ignore-path .prettierignore + language: system + ci: autoupdate_schedule: weekly skip: [] diff --git a/.prettierrc.js b/.prettierrc.cjs similarity index 100% rename from .prettierrc.js rename to .prettierrc.cjs diff --git a/check_run/.editorconfig b/check_run/.editorconfig new file mode 100644 index 00000000..b72767b9 --- /dev/null +++ b/check_run/.editorconfig @@ -0,0 +1,15 @@ +# Root editor config file +root = true + +# Common settings +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +charset = utf-8 + +# python, js indentation settings +[{*.py,*.js,*.vue,*.css,*.scss,*.html}] +indent_style = tab +indent_size = 2 +max_line_length = 99 diff --git a/check_run/check_run/doctype/check_run/check_run.js b/check_run/check_run/doctype/check_run/check_run.js index 9025a6ff..44b2bb9f 100644 --- a/check_run/check_run/doctype/check_run/check_run.js +++ b/check_run/check_run/doctype/check_run/check_run.js @@ -350,9 +350,10 @@ function ach_only(frm) { download_checks(frm) }) } else if ( - frm.doc.print_count == 0 && + frm.doc.print_count == 0 && frm.doc.status == 'Submitted' && - frm.doc.__onload.print_preview == 'Automatically Render PDF after Submit') { + frm.doc.__onload.print_preview == 'Automatically Render PDF after Submit' + ) { render_checks(frm) } } diff --git a/check_run/check_run/doctype/check_run_settings/check_run_settings.json b/check_run/check_run/doctype/check_run_settings/check_run_settings.json index 63a42866..e8812428 100644 --- a/check_run/check_run/doctype/check_run_settings/check_run_settings.json +++ b/check_run/check_run/doctype/check_run_settings/check_run_settings.json @@ -1,305 +1,305 @@ { - "actions": [], - "autoname": "format:ACC-CRS-{bank_account}-{pay_to_account}", - "creation": "2022-08-22 14:43:43.533105", - "doctype": "DocType", - "editable_grid": 1, - "engine": "InnoDB", - "field_order": [ - "company", - "bank_account", - "column_break_3", - "pay_to_account", - "print_format", - "section_break_4", - "include_purchase_invoices", - "include_journal_entries", - "include_expense_claims", - "pre_check_overdue_items", - "allow_cancellation", - "cascade_cancellation", - "validate_unique_check_number", - "check_formats_with_background_image", - "background_image", - "column_break_9", - "print_preview", - "number_of_invoices_per_voucher", - "secondary_print_format", - "split_by_address", - "automatically_release_on_hold_invoices", - "file_preview_threshold", - "allow_stand_alone_debit_notes", - "default_modes_of_payment_section_section", - "purchase_invoice", - "journal_entry", - "column_break_21", - "expense_claim", - "ach_settings_section", - "ach_file_extension", - "ach_service_class_code", - "ach_standard_class_code", - "ach_description", - "column_break_27", - "immediate_origin", - "company_discretionary_data", - "custom_post_processing_hook" - ], - "fields": [ - { - "fieldname": "company", - "fieldtype": "Link", - "label": "Company", - "options": "Company" - }, - { - "fieldname": "bank_account", - "fieldtype": "Link", - "label": "Bank Account", - "options": "Bank Account" - }, - { - "fieldname": "section_break_4", - "fieldtype": "Section Break" - }, - { - "default": "1", - "fieldname": "include_purchase_invoices", - "fieldtype": "Check", - "label": "Include Purchase Invoices" - }, - { - "default": "1", - "fieldname": "include_journal_entries", - "fieldtype": "Check", - "label": "Include Journal Entries " - }, - { - "default": "1", - "fieldname": "include_expense_claims", - "fieldtype": "Check", - "label": "Include Expense Claims" - }, - { - "default": "0", - "description": "Payment Entries will be unlinked when Check Run is cancelled", - "fieldname": "allow_cancellation", - "fieldtype": "Check", - "label": "Allow Cancellation" - }, - { - "fieldname": "column_break_9", - "fieldtype": "Column Break" - }, - { - "default": "ach", - "description": "Common file extensions are 'ach', 'txt' and 'dat'. Your bank may require one of these.", - "fieldname": "ach_file_extension", - "fieldtype": "Data", - "label": "ACH File Extension" - }, - { - "default": "0", - "description": "Pre-Check all payables that have a due date greater than the Check Run's posting date", - "fieldname": "pre_check_overdue_items", - "fieldtype": "Check", - "label": "Pre-Check Overdue Items" - }, - { - "default": "0", - "description": "When a Check Run is cancelled, all Payment Entries linked to it will also be cancelled. This is not recommended.", - "fieldname": "cascade_cancellation", - "fieldtype": "Check", - "label": "Cascade Cancellation" - }, - { - "description": "Defaults to 5 if no value is provided", - "fieldname": "number_of_invoices_per_voucher", - "fieldtype": "Int", - "label": "Number of Invoices per Voucher", - "non_negative": 1 - }, - { - "fieldname": "column_break_3", - "fieldtype": "Column Break" - }, - { - "fieldname": "pay_to_account", - "fieldtype": "Link", - "label": "Payable Account", - "options": "Account" - }, - { - "fieldname": "ach_service_class_code", - "fieldtype": "Select", - "label": "ACH Service Class Code", - "options": "200\n220\n225" - }, - { - "description": "PPD is only supported Entry format at this time", - "fieldname": "ach_standard_class_code", - "fieldtype": "Select", - "label": "ACH Standard Class Code", - "options": "PPD" - }, - { - "fieldname": "ach_description", - "fieldtype": "Data", - "label": "ACH Description", - "length": 10 - }, - { - "fieldname": "print_format", - "fieldtype": "Link", - "label": "Print Format", - "options": "Print Format" - }, - { - "default": "0", - "fieldname": "split_by_address", - "fieldtype": "Check", - "label": "Split Invoices by Address" - }, - { - "fieldname": "ach_settings_section", - "fieldtype": "Section Break", - "label": "ACH Settings" - }, - { - "fieldname": "column_break_21", - "fieldtype": "Column Break" - }, - { - "default": "0", - "fieldname": "automatically_release_on_hold_invoices", - "fieldtype": "Check", - "label": "Automatically Release On Hold Invoices" - }, - { - "fieldname": "immediate_origin", - "fieldtype": "Data", - "label": "Immediate Origin" - }, - { - "fieldname": "company_discretionary_data", - "fieldtype": "Data", - "label": "Company Discretionary Data", - "length": 20 - }, - { - "fieldname": "custom_post_processing_hook", - "fieldtype": "Data", - "label": "Custom Post Processing Hook", - "read_only": 1 - }, - { - "fieldname": "default_modes_of_payment_section_section", - "fieldtype": "Section Break", - "label": "Default Modes of Payment Section" - }, - { - "fieldname": "purchase_invoice", - "fieldtype": "Link", - "label": "Purchase Invoice", - "options": "Mode of Payment" - }, - { - "fieldname": "journal_entry", - "fieldtype": "Link", - "label": "Journal Entry", - "options": "Mode of Payment" - }, - { - "fieldname": "expense_claim", - "fieldtype": "Link", - "label": "Expense Claim", - "options": "Mode of Payment" - }, - { - "fieldname": "column_break_27", - "fieldtype": "Column Break" - }, - { - "default": "1000", - "description": "File preview is enabled up to this number of transactions", - "fieldname": "file_preview_threshold", - "fieldtype": "Int", - "label": "File Preview Threshold" - }, - { - "default": "0", - "fieldname": "validate_unique_check_number", - "fieldtype": "Check", - "label": "Validate Unique Check Number" - }, - { - "default": "No", - "fieldname": "allow_stand_alone_debit_notes", - "fieldtype": "Select", - "label": "Allow stand-alone debit notes?", - "options": "Yes\nNo" - }, - { - "fieldname": "secondary_print_format", - "fieldtype": "Link", - "label": "Secondary Print Format", - "options": "Print Format" - }, - { - "default": "0", - "fieldname": "check_formats_with_background_image", - "fieldtype": "Check", - "label": "Check formats with background image" - }, - { - "depends_on": "eval:doc.check_formats_with_background_image", - "fieldname": "background_image", - "fieldtype": "Attach", - "label": "Background Image" - }, - { - "default": "Automatically Render PDF After Submit", - "fieldname": "print_preview", - "fieldtype": "Select", - "label": "Print Preview", - "options": "Automatically Render PDF After Submit\nPrint from Print Preview" - } - ], - "links": [], - "modified": "2024-07-10 12:03:31.615288", - "modified_by": "Administrator", - "module": "Check Run", - "name": "Check Run Settings", - "naming_rule": "Expression", - "owner": "Administrator", - "permissions": [ - { - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "share": 1, - "write": 1 - }, - { - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "print": 1, - "read": 1, - "report": 1, - "role": "Accounts Manager", - "share": 1, - "write": 1 - } - ], - "quick_entry": 1, - "sort_field": "modified", - "sort_order": "DESC", - "states": [], - "track_changes": 1 -} \ No newline at end of file + "actions": [], + "autoname": "format:ACC-CRS-{bank_account}-{pay_to_account}", + "creation": "2022-08-22 14:43:43.533105", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "company", + "bank_account", + "column_break_3", + "pay_to_account", + "print_format", + "section_break_4", + "include_purchase_invoices", + "include_journal_entries", + "include_expense_claims", + "pre_check_overdue_items", + "allow_cancellation", + "cascade_cancellation", + "validate_unique_check_number", + "check_formats_with_background_image", + "background_image", + "column_break_9", + "print_preview", + "number_of_invoices_per_voucher", + "secondary_print_format", + "split_by_address", + "automatically_release_on_hold_invoices", + "file_preview_threshold", + "allow_stand_alone_debit_notes", + "default_modes_of_payment_section_section", + "purchase_invoice", + "journal_entry", + "column_break_21", + "expense_claim", + "ach_settings_section", + "ach_file_extension", + "ach_service_class_code", + "ach_standard_class_code", + "ach_description", + "column_break_27", + "immediate_origin", + "company_discretionary_data", + "custom_post_processing_hook" + ], + "fields": [ + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company" + }, + { + "fieldname": "bank_account", + "fieldtype": "Link", + "label": "Bank Account", + "options": "Bank Account" + }, + { + "fieldname": "section_break_4", + "fieldtype": "Section Break" + }, + { + "default": "1", + "fieldname": "include_purchase_invoices", + "fieldtype": "Check", + "label": "Include Purchase Invoices" + }, + { + "default": "1", + "fieldname": "include_journal_entries", + "fieldtype": "Check", + "label": "Include Journal Entries " + }, + { + "default": "1", + "fieldname": "include_expense_claims", + "fieldtype": "Check", + "label": "Include Expense Claims" + }, + { + "default": "0", + "description": "Payment Entries will be unlinked when Check Run is cancelled", + "fieldname": "allow_cancellation", + "fieldtype": "Check", + "label": "Allow Cancellation" + }, + { + "fieldname": "column_break_9", + "fieldtype": "Column Break" + }, + { + "default": "ach", + "description": "Common file extensions are 'ach', 'txt' and 'dat'. Your bank may require one of these.", + "fieldname": "ach_file_extension", + "fieldtype": "Data", + "label": "ACH File Extension" + }, + { + "default": "0", + "description": "Pre-Check all payables that have a due date greater than the Check Run's posting date", + "fieldname": "pre_check_overdue_items", + "fieldtype": "Check", + "label": "Pre-Check Overdue Items" + }, + { + "default": "0", + "description": "When a Check Run is cancelled, all Payment Entries linked to it will also be cancelled. This is not recommended.", + "fieldname": "cascade_cancellation", + "fieldtype": "Check", + "label": "Cascade Cancellation" + }, + { + "description": "Defaults to 5 if no value is provided", + "fieldname": "number_of_invoices_per_voucher", + "fieldtype": "Int", + "label": "Number of Invoices per Voucher", + "non_negative": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "pay_to_account", + "fieldtype": "Link", + "label": "Payable Account", + "options": "Account" + }, + { + "fieldname": "ach_service_class_code", + "fieldtype": "Select", + "label": "ACH Service Class Code", + "options": "200\n220\n225" + }, + { + "description": "PPD is only supported Entry format at this time", + "fieldname": "ach_standard_class_code", + "fieldtype": "Select", + "label": "ACH Standard Class Code", + "options": "PPD" + }, + { + "fieldname": "ach_description", + "fieldtype": "Data", + "label": "ACH Description", + "length": 10 + }, + { + "fieldname": "print_format", + "fieldtype": "Link", + "label": "Print Format", + "options": "Print Format" + }, + { + "default": "0", + "fieldname": "split_by_address", + "fieldtype": "Check", + "label": "Split Invoices by Address" + }, + { + "fieldname": "ach_settings_section", + "fieldtype": "Section Break", + "label": "ACH Settings" + }, + { + "fieldname": "column_break_21", + "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "automatically_release_on_hold_invoices", + "fieldtype": "Check", + "label": "Automatically Release On Hold Invoices" + }, + { + "fieldname": "immediate_origin", + "fieldtype": "Data", + "label": "Immediate Origin" + }, + { + "fieldname": "company_discretionary_data", + "fieldtype": "Data", + "label": "Company Discretionary Data", + "length": 20 + }, + { + "fieldname": "custom_post_processing_hook", + "fieldtype": "Data", + "label": "Custom Post Processing Hook", + "read_only": 1 + }, + { + "fieldname": "default_modes_of_payment_section_section", + "fieldtype": "Section Break", + "label": "Default Modes of Payment Section" + }, + { + "fieldname": "purchase_invoice", + "fieldtype": "Link", + "label": "Purchase Invoice", + "options": "Mode of Payment" + }, + { + "fieldname": "journal_entry", + "fieldtype": "Link", + "label": "Journal Entry", + "options": "Mode of Payment" + }, + { + "fieldname": "expense_claim", + "fieldtype": "Link", + "label": "Expense Claim", + "options": "Mode of Payment" + }, + { + "fieldname": "column_break_27", + "fieldtype": "Column Break" + }, + { + "default": "1000", + "description": "File preview is enabled up to this number of transactions", + "fieldname": "file_preview_threshold", + "fieldtype": "Int", + "label": "File Preview Threshold" + }, + { + "default": "0", + "fieldname": "validate_unique_check_number", + "fieldtype": "Check", + "label": "Validate Unique Check Number" + }, + { + "default": "No", + "fieldname": "allow_stand_alone_debit_notes", + "fieldtype": "Select", + "label": "Allow stand-alone debit notes?", + "options": "Yes\nNo" + }, + { + "fieldname": "secondary_print_format", + "fieldtype": "Link", + "label": "Secondary Print Format", + "options": "Print Format" + }, + { + "default": "0", + "fieldname": "check_formats_with_background_image", + "fieldtype": "Check", + "label": "Check formats with background image" + }, + { + "depends_on": "eval:doc.check_formats_with_background_image", + "fieldname": "background_image", + "fieldtype": "Attach", + "label": "Background Image" + }, + { + "default": "Automatically Render PDF After Submit", + "fieldname": "print_preview", + "fieldtype": "Select", + "label": "Print Preview", + "options": "Automatically Render PDF After Submit\nPrint from Print Preview" + } + ], + "links": [], + "modified": "2024-07-10 12:03:31.615288", + "modified_by": "Administrator", + "module": "Check Run", + "name": "Check Run Settings", + "naming_rule": "Expression", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} diff --git a/check_run/check_run/page/print_check_run/print_check_run.json b/check_run/check_run/page/print_check_run/print_check_run.json index dbd57462..a40dce28 100644 --- a/check_run/check_run/page/print_check_run/print_check_run.json +++ b/check_run/check_run/page/print_check_run/print_check_run.json @@ -1,19 +1,19 @@ { - "content": null, - "creation": "2024-05-14 16:02:02.168387", - "docstatus": 0, - "doctype": "Page", - "idx": 0, - "modified": "2024-05-14 16:02:02.168387", - "modified_by": "Administrator", - "module": "Check Run", - "name": "print-check-run", - "owner": "Administrator", - "page_name": "print-check-run", - "roles": [], - "script": null, - "standard": "Yes", - "style": null, - "system_page": 0, - "title": "Check Run" -} \ No newline at end of file + "content": null, + "creation": "2024-05-14 16:02:02.168387", + "docstatus": 0, + "doctype": "Page", + "idx": 0, + "modified": "2024-05-14 16:02:02.168387", + "modified_by": "Administrator", + "module": "Check Run", + "name": "print-check-run", + "owner": "Administrator", + "page_name": "print-check-run", + "roles": [], + "script": null, + "standard": "Yes", + "style": null, + "system_page": 0, + "title": "Check Run" +} diff --git a/check_run/check_run/page/print_check_run/print_skeleton_loading.html b/check_run/check_run/page/print_check_run/print_skeleton_loading.html index c1e6a0dd..9cdae686 100644 --- a/check_run/check_run/page/print_check_run/print_skeleton_loading.html +++ b/check_run/check_run/page/print_check_run/print_skeleton_loading.html @@ -33,10 +33,10 @@
-
+
-
+
@@ -46,48 +46,48 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
{% for (let i=0; i<4; i++) { %} -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{% } %}
@@ -102,26 +102,23 @@
-
+
-
-
+
-
-
+
-
+
-
-
+
@@ -137,17 +134,15 @@
-
+
-
-
+
-
-
+
@@ -156,9 +151,9 @@
diff --git a/check_run/check_run/print_format/check_run/check_run.json b/check_run/check_run/print_format/check_run/check_run.json index 1eb3ad2a..d2edbe75 100644 --- a/check_run/check_run/print_format/check_run/check_run.json +++ b/check_run/check_run/print_format/check_run/check_run.json @@ -1,32 +1,32 @@ { - "absolute_value": 0, - "align_labels_right": 0, - "creation": "2024-06-04 04:59:24.275841", - "css": " .container_ {\n width:100%;\n display: flex;\n padding-right: 0px;\n padding-left: 0px;\n margin-right: auto;\n margin-left: auto;\n }\n.box {\n flex: 1; /* This makes each div take up equal space */\n margin: 10px;\n}\n.print-format td{\n padding:2px !important;\n}\n.print-format th{\n padding:2px !important;\n}\ntable{\n font-size:12px!important;\n}", - "custom_format": 1, - "default_print_language": "en", - "disabled": 0, - "doc_type": "Check Run", - "docstatus": 0, - "doctype": "Print Format", - "font_size": 14, - "html": "
\n\t
\n\t\t

\n\t\t\t
Check Run
\n\t\t\tACC-CR-2024-00001\n\t\t

\n\t
\n
\n
\n
\n

Check Run End Date:

\n {{doc.end_date or ''}}\n
\n
\n

Initial Check Number:

\n {{ doc.initial_check_number}}\n
\n
\n

Company

\n {{ doc.company }}\n
\n
\n
\n
\n

Posting Date:

\n {{doc.posting_date or ''}}\n
\n
\n

Final Check Number:

\n {{ doc.final_check_number }}\n
\n
\n

Paid From (Bank Account):

\n {{ doc.bank_account }}\n
\n
\n
\n
\n

Beginning Bank Account Balance:

\n {{frappe.format(doc.beg_balance,{'fieldtype':\"Currency\"} ) or ''}}\n
\n
\n

Amount in Check Run

\n {{frappe.format(doc.amount_check_run ,{'fieldtype':\"Currency\"} ) or ''}}\n
\n
\n

Accounts Payable:

\n {{ doc.pay_to_account }}\n
\n
\n{% set pe_list = frappe.db.get_list(\"Payment Entry\", {\"check_run\":doc.name}) %}\n\n \n \n \n \n \n \n \n \n \n \n {% for row in pe_list %}\n {% set doc_ = frappe.get_doc(\"Payment Entry\", row.name) %}\n {% for d in doc_.references %}\n \n \n \n \n \n \n \n \n {% endfor %}\n {% endfor %}\n \n
PartyDocumentDocument DateOutstanding AmountDue DateReference
{{ doc_.party }}{{ d.reference_name }}{{ frappe.db.get_value(d.reference_doctype, d.reference_name, \"posting_date\") or ''}}{{ doc_.paid_amount or '' }}{{ frappe.db.get_value(d.reference_doctype, d.reference_name, \"due_date\") or '' }}{{ doc_.name }}
\n\n \n \n\n", - "idx": 0, - "line_breaks": 0, - "margin_bottom": 15.0, - "margin_left": 15.0, - "margin_right": 15.0, - "margin_top": 15.0, - "modified": "2024-06-06 03:54:20.194111", - "modified_by": "Administrator", - "module": "Check Run", - "name": "Check Run", - "owner": "Administrator", - "page_number": "Hide", - "print_format_builder": 0, - "print_format_builder_beta": 0, - "print_format_type": "Jinja", - "raw_printing": 0, - "show_section_headings": 0, - "standard": "Yes" -} \ No newline at end of file + "absolute_value": 0, + "align_labels_right": 0, + "creation": "2024-06-04 04:59:24.275841", + "css": " .container_ {\n width:100%;\n display: flex;\n padding-right: 0px;\n padding-left: 0px;\n margin-right: auto;\n margin-left: auto;\n }\n.box {\n flex: 1; /* This makes each div take up equal space */\n margin: 10px;\n}\n.print-format td{\n padding:2px !important;\n}\n.print-format th{\n padding:2px !important;\n}\ntable{\n font-size:12px!important;\n}", + "custom_format": 1, + "default_print_language": "en", + "disabled": 0, + "doc_type": "Check Run", + "docstatus": 0, + "doctype": "Print Format", + "font_size": 14, + "html": "
\n\t
\n\t\t

\n\t\t\t
Check Run
\n\t\t\tACC-CR-2024-00001\n\t\t

\n\t
\n
\n
\n
\n

Check Run End Date:

\n {{doc.end_date or ''}}\n
\n
\n

Initial Check Number:

\n {{ doc.initial_check_number}}\n
\n
\n

Company

\n {{ doc.company }}\n
\n
\n
\n
\n

Posting Date:

\n {{doc.posting_date or ''}}\n
\n
\n

Final Check Number:

\n {{ doc.final_check_number }}\n
\n
\n

Paid From (Bank Account):

\n {{ doc.bank_account }}\n
\n
\n
\n
\n

Beginning Bank Account Balance:

\n {{frappe.format(doc.beg_balance,{'fieldtype':\"Currency\"} ) or ''}}\n
\n
\n

Amount in Check Run

\n {{frappe.format(doc.amount_check_run ,{'fieldtype':\"Currency\"} ) or ''}}\n
\n
\n

Accounts Payable:

\n {{ doc.pay_to_account }}\n
\n
\n{% set pe_list = frappe.db.get_list(\"Payment Entry\", {\"check_run\":doc.name}) %}\n\n \n \n \n \n \n \n \n \n \n \n {% for row in pe_list %}\n {% set doc_ = frappe.get_doc(\"Payment Entry\", row.name) %}\n {% for d in doc_.references %}\n \n \n \n \n \n \n \n \n {% endfor %}\n {% endfor %}\n \n
PartyDocumentDocument DateOutstanding AmountDue DateReference
{{ doc_.party }}{{ d.reference_name }}{{ frappe.db.get_value(d.reference_doctype, d.reference_name, \"posting_date\") or ''}}{{ doc_.paid_amount or '' }}{{ frappe.db.get_value(d.reference_doctype, d.reference_name, \"due_date\") or '' }}{{ doc_.name }}
\n\n \n \n\n", + "idx": 0, + "line_breaks": 0, + "margin_bottom": 15.0, + "margin_left": 15.0, + "margin_right": 15.0, + "margin_top": 15.0, + "modified": "2024-06-06 03:54:20.194111", + "modified_by": "Administrator", + "module": "Check Run", + "name": "Check Run", + "owner": "Administrator", + "page_number": "Hide", + "print_format_builder": 0, + "print_format_builder_beta": 0, + "print_format_type": "Jinja", + "raw_printing": 0, + "show_section_headings": 0, + "standard": "Yes" +} diff --git a/check_run/check_run/print_format/example_secondary_print_format/example_secondary_print_format.json b/check_run/check_run/print_format/example_secondary_print_format/example_secondary_print_format.json index c66d489e..c75a8f47 100644 --- a/check_run/check_run/print_format/example_secondary_print_format/example_secondary_print_format.json +++ b/check_run/check_run/print_format/example_secondary_print_format/example_secondary_print_format.json @@ -1,33 +1,33 @@ { - "absolute_value": 0, - "align_labels_right": 0, - "creation": "2024-03-06 04:31:54.619036", - "css": "@font-face {\n font-family: 'EntezareZohoor2';\n src: url('fonts/EntezareZohoor2.eot'), url('fonts/EntezareZohoor2.ttf') format('truetype'), url('fonts/EntezareZohoor2.svg') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n.print-format {\n\tpadding: 0px;\n}\n@media screen {\n\t.print-format {\n\t\tpadding: 0in;\n\t}\n}\n#payer_check_window_block {\n top: 0.7cm; \n left: 0.7cm;\n height: 2.2cm;\n width: 8.8cm;\n position: absolute;\n \n}\n\n#payer_name_block{\n top: 0.1cm; \n left: 1cm;\n position: absolute;\n}\n\n#payee_address_window_block {\n top:4.9cm;\n left: 1.9cm;\n position: absolute; \n width: 8.8cm; \n height:2.2cm;\n}\n\n#address_block{\n top: 0.2cm; \n left: 0.2cm;\n position: relative;\n}\n\n\n\n#memo_block {\n top:7.1cm;\n left: 2cm;\n position: absolute; \n width: 6cm;\n}\n\n\n#check_section_1 {\n font-size: 15px;\n width:20.0cm;\n height:8.9cm;\n}\n\n#check_section_2 {\n height:8.9cm;\n}\n\n#check_section_3 {\n height:8.9cm;\n}\n\n\n#payer_name_block {\ntext-align: center; \n\n}\n\n#payer_name_block {\nwidth:4cm;\ntext-align: center; \nposition: absolute;\n}\n\n#bank_info_block {\nfont-size: 10px;\nwidth:2.5cm;\nheight:1.8cm;\ntext-align: center; \nposition: absolute;\n}\n\n\n#payment_in_words_block {\n font-size: 13px;\n}\n\n#memo_block {\nfont-size: 10px;\n}\n\n#signature_block {\ncolor: blue;\nfont-family: cursive;\n\n}\n#payment_amount_block{\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n\n}\n\n.payment_reference_block {\npadding-left:1cm; \npadding-right:1cm; \n}\n\n.payment_name_cell {\ntext-align: right; \n}\n\n#payment_amount_number_block {\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n}\n\n\n.right_stamp {\n top:2.8cm;\n left: 16.6cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.sig_stamp {\n top:6.3cm;\n left: 13.8cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.big_stamp {\n top:2.8cm;\n left: 6.1cm;\n width: 7cm;\n\theight: 3cm;\n\tfont-size: 80px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n\n.stamp {\n\tmargin: 0px;\n\toverflow: hidden;\n display: flex;\n justify-content: space-around;\n align-items: center;\n vertical-align: middle;\n text-align: center;\n\n flex-direction: row;\n color: #555;\n\tfont-weight: 700;\n\tborder: 0.25rem solid #555;\n\tdisplay: inline-block;\n\t\n\ttext-transform: uppercase;\n\tborder-radius: 1rem;\n\tfont-family: 'Courier';\n\t-webkit-mask-image: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/8399/grunge.png');\n -webkit-mask-size: 944px 604px;\n mix-blend-mode: multiply;\n}\n\n\n.is-nope {\n color: #ff5858;\n border: 0.5rem double #D23;\n \t-webkit-mask-position: 2rem 3rem;\n \t\n \n}\n\n.is-draft {\n\tcolor: #ff5858;\n\tborder: 1rem double #ff5858;\n font-size: 6rem;\n font-family: \"Open sans\", Helvetica, Arial, sans-serif;\n border-radius: 0;\n padding: 0.5rem;\n} ", - "custom_format": 1, - "default_print_language": "en", - "disabled": 0, - "doc_type": "Payment Entry", - "docstatus": 0, - "doctype": "Print Format", - "font": "Default", - "font_size": 0, - "html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {% for reference in doc.references %}\r\n \r\n {% if reference.reference_doctype == 'Purchase Invoice' %}\r\n \r\n \r\n {% elif reference.reference_doctype == 'Sales Invoice' %}\r\n \r\n \r\n {% elif reference.reference_doctype == 'Expense Claim' %}\r\n \r\n \r\n {% elif reference.reference_doctype == 'Journal Entry' %}\r\n \r\n \r\n {% endif %}\r\n \r\n \r\n \r\n {% endfor %}\r\n
\r\n Cheque Number: {{ doc.reference_no or '' }}\r\n
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ reference.get_formatted('allocated_amount')}}
", - "idx": 0, - "line_breaks": 0, - "margin_bottom": 0.0, - "margin_left": 0.0, - "margin_right": 0.0, - "margin_top": 0.0, - "modified": "2024-07-10 12:56:54.277459", - "modified_by": "Administrator", - "module": "Check Run", - "name": "Example Secondary Print Format", - "owner": "Administrator", - "page_number": "Hide", - "print_format_builder": 0, - "print_format_builder_beta": 0, - "print_format_type": "Jinja", - "raw_printing": 0, - "show_section_headings": 0, - "standard": "Yes" -} \ No newline at end of file + "absolute_value": 0, + "align_labels_right": 0, + "creation": "2024-03-06 04:31:54.619036", + "css": "@font-face {\n font-family: 'EntezareZohoor2';\n src: url('fonts/EntezareZohoor2.eot'), url('fonts/EntezareZohoor2.ttf') format('truetype'), url('fonts/EntezareZohoor2.svg') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n.print-format {\n\tpadding: 0px;\n}\n@media screen {\n\t.print-format {\n\t\tpadding: 0in;\n\t}\n}\n#payer_check_window_block {\n top: 0.7cm; \n left: 0.7cm;\n height: 2.2cm;\n width: 8.8cm;\n position: absolute;\n \n}\n\n#payer_name_block{\n top: 0.1cm; \n left: 1cm;\n position: absolute;\n}\n\n#payee_address_window_block {\n top:4.9cm;\n left: 1.9cm;\n position: absolute; \n width: 8.8cm; \n height:2.2cm;\n}\n\n#address_block{\n top: 0.2cm; \n left: 0.2cm;\n position: relative;\n}\n\n\n\n#memo_block {\n top:7.1cm;\n left: 2cm;\n position: absolute; \n width: 6cm;\n}\n\n\n#check_section_1 {\n font-size: 15px;\n width:20.0cm;\n height:8.9cm;\n}\n\n#check_section_2 {\n height:8.9cm;\n}\n\n#check_section_3 {\n height:8.9cm;\n}\n\n\n#payer_name_block {\ntext-align: center; \n\n}\n\n#payer_name_block {\nwidth:4cm;\ntext-align: center; \nposition: absolute;\n}\n\n#bank_info_block {\nfont-size: 10px;\nwidth:2.5cm;\nheight:1.8cm;\ntext-align: center; \nposition: absolute;\n}\n\n\n#payment_in_words_block {\n font-size: 13px;\n}\n\n#memo_block {\nfont-size: 10px;\n}\n\n#signature_block {\ncolor: blue;\nfont-family: cursive;\n\n}\n#payment_amount_block{\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n\n}\n\n.payment_reference_block {\npadding-left:1cm; \npadding-right:1cm; \n}\n\n.payment_name_cell {\ntext-align: right; \n}\n\n#payment_amount_number_block {\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n}\n\n\n.right_stamp {\n top:2.8cm;\n left: 16.6cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.sig_stamp {\n top:6.3cm;\n left: 13.8cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.big_stamp {\n top:2.8cm;\n left: 6.1cm;\n width: 7cm;\n\theight: 3cm;\n\tfont-size: 80px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n\n.stamp {\n\tmargin: 0px;\n\toverflow: hidden;\n display: flex;\n justify-content: space-around;\n align-items: center;\n vertical-align: middle;\n text-align: center;\n\n flex-direction: row;\n color: #555;\n\tfont-weight: 700;\n\tborder: 0.25rem solid #555;\n\tdisplay: inline-block;\n\t\n\ttext-transform: uppercase;\n\tborder-radius: 1rem;\n\tfont-family: 'Courier';\n\t-webkit-mask-image: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/8399/grunge.png');\n -webkit-mask-size: 944px 604px;\n mix-blend-mode: multiply;\n}\n\n\n.is-nope {\n color: #ff5858;\n border: 0.5rem double #D23;\n \t-webkit-mask-position: 2rem 3rem;\n \t\n \n}\n\n.is-draft {\n\tcolor: #ff5858;\n\tborder: 1rem double #ff5858;\n font-size: 6rem;\n font-family: \"Open sans\", Helvetica, Arial, sans-serif;\n border-radius: 0;\n padding: 0.5rem;\n} ", + "custom_format": 1, + "default_print_language": "en", + "disabled": 0, + "doc_type": "Payment Entry", + "docstatus": 0, + "doctype": "Print Format", + "font": "Default", + "font_size": 0, + "html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {% for reference in doc.references %}\r\n \r\n {% if reference.reference_doctype == 'Purchase Invoice' %}\r\n \r\n \r\n {% elif reference.reference_doctype == 'Sales Invoice' %}\r\n \r\n \r\n {% elif reference.reference_doctype == 'Expense Claim' %}\r\n \r\n \r\n {% elif reference.reference_doctype == 'Journal Entry' %}\r\n \r\n \r\n {% endif %}\r\n \r\n \r\n \r\n {% endfor %}\r\n
\r\n Cheque Number: {{ doc.reference_no or '' }}\r\n
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ reference.get_formatted('allocated_amount')}}
", + "idx": 0, + "line_breaks": 0, + "margin_bottom": 0.0, + "margin_left": 0.0, + "margin_right": 0.0, + "margin_top": 0.0, + "modified": "2024-07-10 12:56:54.277459", + "modified_by": "Administrator", + "module": "Check Run", + "name": "Example Secondary Print Format", + "owner": "Administrator", + "page_number": "Hide", + "print_format_builder": 0, + "print_format_builder_beta": 0, + "print_format_type": "Jinja", + "raw_printing": 0, + "show_section_headings": 0, + "standard": "Yes" +} diff --git a/check_run/check_run/print_format/example_voucher/example_voucher.json b/check_run/check_run/print_format/example_voucher/example_voucher.json index 6820520f..b58f9fee 100644 --- a/check_run/check_run/print_format/example_voucher/example_voucher.json +++ b/check_run/check_run/print_format/example_voucher/example_voucher.json @@ -1,32 +1,32 @@ { - "absolute_value": 0, - "align_labels_right": 0, - "creation": "2022-08-30 12:27:45.736571", - "css": "@font-face {\n font-family: 'EntezareZohoor2';\n src: url('fonts/EntezareZohoor2.eot'), url('fonts/EntezareZohoor2.ttf') format('truetype'), url('fonts/EntezareZohoor2.svg') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n.print-format {\n\tpadding: 0px;\n}\n@media screen {\n\t.print-format {\n\t\tpadding: 0in;\n\t}\n}\n#payer_check_window_block {\n top: 0.7cm; \n left: 0.7cm;\n height: 2.2cm;\n width: 8.8cm;\n position: absolute;\n \n}\n\n#payer_name_block{\n top: 0.1cm; \n left: 1cm;\n position: absolute;\n}\n\n#payee_address_window_block {\n top:4.9cm;\n left: 1.9cm;\n position: absolute; \n width: 8.8cm; \n height:2.2cm;\n}\n\n#address_block{\n top: 0.2cm; \n left: 0.2cm;\n position: relative;\n}\n\n\n\n#memo_block {\n top:7.1cm;\n left: 2cm;\n position: absolute; \n width: 6cm;\n}\n\n\n#check_section_1 {\n font-size: 15px;\n width:20.0cm;\n height:8.9cm;\n}\n\n#check_section_2 {\n height:8.9cm;\n}\n\n#check_section_3 {\n height:8.9cm;\n}\n\n\n#payer_name_block {\ntext-align: center; \n\n}\n\n#payer_name_block {\nwidth:4cm;\ntext-align: center; \nposition: absolute;\n}\n\n#bank_info_block {\nfont-size: 10px;\nwidth:2.5cm;\nheight:1.8cm;\ntext-align: center; \nposition: absolute;\n}\n\n\n#payment_in_words_block {\n font-size: 13px;\n}\n\n#memo_block {\nfont-size: 10px;\n}\n\n#signature_block {\ncolor: blue;\nfont-family: cursive;\n\n}\n#payment_amount_block{\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n\n}\n\n.payment_reference_block {\npadding-left:1cm; \npadding-right:1cm; \n}\n\n.payment_name_cell {\ntext-align: right; \n}\n\n#payment_amount_number_block {\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n}\n\n\n.right_stamp {\n top:2.8cm;\n left: 16.6cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.sig_stamp {\n top:6.3cm;\n left: 13.8cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.big_stamp {\n top:2.8cm;\n left: 6.1cm;\n width: 7cm;\n\theight: 3cm;\n\tfont-size: 80px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n\n.stamp {\n\tmargin: 0px;\n\toverflow: hidden;\n display: flex;\n justify-content: space-around;\n align-items: center;\n vertical-align: middle;\n text-align: center;\n\n flex-direction: row;\n color: #555;\n\tfont-weight: 700;\n\tborder: 0.25rem solid #555;\n\tdisplay: inline-block;\n\t\n\ttext-transform: uppercase;\n\tborder-radius: 1rem;\n\tfont-family: 'Courier';\n\t-webkit-mask-image: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/8399/grunge.png');\n -webkit-mask-size: 944px 604px;\n mix-blend-mode: multiply;\n}\n\n\n.is-nope {\n color: #ff5858;\n border: 0.5rem double #D23;\n \t-webkit-mask-position: 2rem 3rem;\n \t\n \n}\n\n.is-draft {\n\tcolor: #ff5858;\n\tborder: 1rem double #ff5858;\n font-size: 6rem;\n font-family: \"Open sans\", Helvetica, Arial, sans-serif;\n border-radius: 0;\n padding: 0.5rem;\n} ", - "custom_format": 1, - "default_print_language": "en", - "disabled": 0, - "doc_type": "Payment Entry", - "docstatus": 0, - "doctype": "Print Format", - "font": "Default", - "font_size": 0, - "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account, \"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n\n\n
\n
\n\t
\n\t {% if doc.docstatus == 0 %}\n VOID DRAFT\n VOID DRAFT\n {% elif doc.docstatus == 2 or overwrite_void %}\n VOID\n VOID\n VOID\n {% endif %}\n\t \n\t
\n\t\t\n\t\t\t{{ doc.company }}\n\t\t\n\t\t
\n\t\t\n\t\t {{ doc.get_formatted('posting_date') }} \n\t\t\n\n\t\t\n\t\t\t{{ doc.party_name }}\n\t\t\n\t\t\n\t\t\n\t
\n\t {{ doc.party_name }}
\n\t {% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t{% if address %}\n\t\t\t {{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t{% endif %}\n\t\t\t
\n\t\t
\n\t\t\n\t\t\n\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %} \n\t\t\t\n\t\t\t{% if money_number|length < 18 %}\n\t\t\t\t {% set money_number = ( money_number + '***************************')[:18] %}\n\t\t\t{% endif %}\n\t\t\t{{ money_number }}\n\t\t\n\t\t\n\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t{% if money_in_words|length < 90 %}\n\t\t\t\t {% set money_in_words = (money_in_words + '************************************************************************')[:100] %}\n\t\t\t\t{% endif %}\n\t\t\t\t{{ money_in_words }}\n\t\t\n\t\t\n\t\t\n\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\n\n\t\t\n\t\t SIGNATURE\n\n\t\t\n \n\t\t\tCHECK#\n\t\t\n\t\t\t\t\n\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\n\t\t\n\t\t\tROUTING_NUMBER\n\t\t\n\t
\n
\n{% for i in range(0,2) %}\n {% if i == 0 %}\n
\n {% endif %}\n {% if i == 1 %}\n
\n {% endif %}\n
\n\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t {% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t {% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t\t{% endif %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{% endfor %}\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ reference.get_formatted('allocated_amount')}}
\n
\n
\n{% endfor %}\n
", - "idx": 0, - "line_breaks": 0, - "margin_bottom": 0.0, - "margin_left": 0.0, - "margin_right": 0.0, - "margin_top": 0.0, - "modified": "2024-07-22 17:55:19.747856", - "modified_by": "Administrator", - "module": "Check Run", - "name": "Example Voucher", - "owner": "Administrator", - "print_format_builder": 0, - "print_format_builder_beta": 0, - "print_format_type": "Jinja", - "raw_printing": 0, - "show_section_headings": 0, - "standard": "Yes" -} \ No newline at end of file + "absolute_value": 0, + "align_labels_right": 0, + "creation": "2022-08-30 12:27:45.736571", + "css": "@font-face {\n font-family: 'EntezareZohoor2';\n src: url('fonts/EntezareZohoor2.eot'), url('fonts/EntezareZohoor2.ttf') format('truetype'), url('fonts/EntezareZohoor2.svg') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n.print-format {\n\tpadding: 0px;\n}\n@media screen {\n\t.print-format {\n\t\tpadding: 0in;\n\t}\n}\n#payer_check_window_block {\n top: 0.7cm; \n left: 0.7cm;\n height: 2.2cm;\n width: 8.8cm;\n position: absolute;\n \n}\n\n#payer_name_block{\n top: 0.1cm; \n left: 1cm;\n position: absolute;\n}\n\n#payee_address_window_block {\n top:4.9cm;\n left: 1.9cm;\n position: absolute; \n width: 8.8cm; \n height:2.2cm;\n}\n\n#address_block{\n top: 0.2cm; \n left: 0.2cm;\n position: relative;\n}\n\n\n\n#memo_block {\n top:7.1cm;\n left: 2cm;\n position: absolute; \n width: 6cm;\n}\n\n\n#check_section_1 {\n font-size: 15px;\n width:20.0cm;\n height:8.9cm;\n}\n\n#check_section_2 {\n height:8.9cm;\n}\n\n#check_section_3 {\n height:8.9cm;\n}\n\n\n#payer_name_block {\ntext-align: center; \n\n}\n\n#payer_name_block {\nwidth:4cm;\ntext-align: center; \nposition: absolute;\n}\n\n#bank_info_block {\nfont-size: 10px;\nwidth:2.5cm;\nheight:1.8cm;\ntext-align: center; \nposition: absolute;\n}\n\n\n#payment_in_words_block {\n font-size: 13px;\n}\n\n#memo_block {\nfont-size: 10px;\n}\n\n#signature_block {\ncolor: blue;\nfont-family: cursive;\n\n}\n#payment_amount_block{\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n\n}\n\n.payment_reference_block {\npadding-left:1cm; \npadding-right:1cm; \n}\n\n.payment_name_cell {\ntext-align: right; \n}\n\n#payment_amount_number_block {\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n}\n\n\n.right_stamp {\n top:2.8cm;\n left: 16.6cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.sig_stamp {\n top:6.3cm;\n left: 13.8cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.big_stamp {\n top:2.8cm;\n left: 6.1cm;\n width: 7cm;\n\theight: 3cm;\n\tfont-size: 80px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n\n.stamp {\n\tmargin: 0px;\n\toverflow: hidden;\n display: flex;\n justify-content: space-around;\n align-items: center;\n vertical-align: middle;\n text-align: center;\n\n flex-direction: row;\n color: #555;\n\tfont-weight: 700;\n\tborder: 0.25rem solid #555;\n\tdisplay: inline-block;\n\t\n\ttext-transform: uppercase;\n\tborder-radius: 1rem;\n\tfont-family: 'Courier';\n\t-webkit-mask-image: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/8399/grunge.png');\n -webkit-mask-size: 944px 604px;\n mix-blend-mode: multiply;\n}\n\n\n.is-nope {\n color: #ff5858;\n border: 0.5rem double #D23;\n \t-webkit-mask-position: 2rem 3rem;\n \t\n \n}\n\n.is-draft {\n\tcolor: #ff5858;\n\tborder: 1rem double #ff5858;\n font-size: 6rem;\n font-family: \"Open sans\", Helvetica, Arial, sans-serif;\n border-radius: 0;\n padding: 0.5rem;\n} ", + "custom_format": 1, + "default_print_language": "en", + "disabled": 0, + "doc_type": "Payment Entry", + "docstatus": 0, + "doctype": "Print Format", + "font": "Default", + "font_size": 0, + "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account, \"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n\n\n
\n
\n\t
\n\t {% if doc.docstatus == 0 %}\n VOID DRAFT\n VOID DRAFT\n {% elif doc.docstatus == 2 or overwrite_void %}\n VOID\n VOID\n VOID\n {% endif %}\n\t \n\t
\n\t\t\n\t\t\t{{ doc.company }}\n\t\t\n\t\t
\n\t\t\n\t\t {{ doc.get_formatted('posting_date') }} \n\t\t\n\n\t\t\n\t\t\t{{ doc.party_name }}\n\t\t\n\t\t\n\t\t\n\t
\n\t {{ doc.party_name }}
\n\t {% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t{% if address %}\n\t\t\t {{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t{% endif %}\n\t\t\t
\n\t\t
\n\t\t\n\t\t\n\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %} \n\t\t\t\n\t\t\t{% if money_number|length < 18 %}\n\t\t\t\t {% set money_number = ( money_number + '***************************')[:18] %}\n\t\t\t{% endif %}\n\t\t\t{{ money_number }}\n\t\t\n\t\t\n\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t{% if money_in_words|length < 90 %}\n\t\t\t\t {% set money_in_words = (money_in_words + '************************************************************************')[:100] %}\n\t\t\t\t{% endif %}\n\t\t\t\t{{ money_in_words }}\n\t\t\n\t\t\n\t\t\n\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\n\n\t\t\n\t\t SIGNATURE\n\n\t\t\n \n\t\t\tCHECK#\n\t\t\n\t\t\t\t\n\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\n\t\t\n\t\t\tROUTING_NUMBER\n\t\t\n\t
\n
\n{% for i in range(0,2) %}\n {% if i == 0 %}\n
\n {% endif %}\n {% if i == 1 %}\n
\n {% endif %}\n
\n\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t {% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t {% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t\t{% endif %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{% endfor %}\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ reference.get_formatted('allocated_amount')}}
\n
\n
\n{% endfor %}\n
", + "idx": 0, + "line_breaks": 0, + "margin_bottom": 0.0, + "margin_left": 0.0, + "margin_right": 0.0, + "margin_top": 0.0, + "modified": "2024-07-22 17:55:19.747856", + "modified_by": "Administrator", + "module": "Check Run", + "name": "Example Voucher", + "owner": "Administrator", + "print_format_builder": 0, + "print_format_builder_beta": 0, + "print_format_type": "Jinja", + "raw_printing": 0, + "show_section_headings": 0, + "standard": "Yes" +} diff --git a/check_run/www/print_check_run.html b/check_run/www/print_check_run.html index ae5f31b0..6c57940d 100644 --- a/check_run/www/print_check_run.html +++ b/check_run/www/print_check_run.html @@ -1,41 +1,37 @@ - - - - - - {{ title }} - - {{ include_style('print.bundle.css') }} - {% if print_style %} - - {% endif %} - - - - - - -{%- if comment -%} - -{%- endif -%} - - \ No newline at end of file + + + + + + {{ title }} + + {{ include_style('print.bundle.css') }} {% if print_style %} + + {% endif %} + + + + + + + {%- if comment -%} + + {%- endif -%} + From 0ffc56d7932b1a0b98ebb099db8a43f4a39b942f Mon Sep 17 00:00:00 2001 From: Heather Kusmierz Date: Wed, 31 Jul 2024 15:10:02 -0400 Subject: [PATCH 07/23] ci: add auto-created rc file --- .backportrc.json | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.backportrc.json b/.backportrc.json index 53b5e3e5..3e7dddab 100644 --- a/.backportrc.json +++ b/.backportrc.json @@ -1,11 +1,8 @@ { "repoOwner": "agritheory", "repoName": "check_run", - "targetBranchChoices": [ - "version-14", - "version-15" - ], + "targetBranchChoices": ["version-14", "version-15"], "branchLabelMapping": { "^backport-to-(.+)$": "$1" } -} \ No newline at end of file +} From 1ea70a71d4a4429cd504867132e1f10fcfd6d8f5 Mon Sep 17 00:00:00 2001 From: Heather Kusmierz Date: Wed, 31 Jul 2024 15:10:24 -0400 Subject: [PATCH 08/23] ci: update override commit hashes --- check_run/overrides/payment_entry.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/check_run/overrides/payment_entry.py b/check_run/overrides/payment_entry.py index 8461bc64..beb8b1b6 100644 --- a/check_run/overrides/payment_entry.py +++ b/check_run/overrides/payment_entry.py @@ -15,7 +15,7 @@ class CheckRunPaymentEntry(PaymentEntry): def make_gl_entries(self, cancel=0, adv_adj=0): """ - HASH: 38cc28a4c34597e09dc8fe70884fefc30eaa24db + HASH: a694390a12e37319378c7a88c315da39a43a3ef5 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: make_gl_entries @@ -41,7 +41,7 @@ def make_gl_entries(self, cancel=0, adv_adj=0): def set_status(self): """ - HASH: 38cc28a4c34597e09dc8fe70884fefc30eaa24db + HASH: a694390a12e37319378c7a88c315da39a43a3ef5 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: set_status @@ -60,7 +60,7 @@ def set_status(self): # Bug Fix def get_valid_reference_doctypes(self): """ - HASH: 38cc28a4c34597e09dc8fe70884fefc30eaa24db + HASH: a694390a12e37319378c7a88c315da39a43a3ef5 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: get_valid_reference_doctypes @@ -86,7 +86,7 @@ def get_valid_reference_doctypes(self): def validate_allocated_amount(self): """ - HASH: 38cc28a4c34597e09dc8fe70884fefc30eaa24db + HASH: a694390a12e37319378c7a88c315da39a43a3ef5 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: validate_allocated_amount @@ -126,7 +126,7 @@ def validate_allocated_amount(self): def validate_allocated_amount_with_latest_data(self): """ - HASH: 38cc28a4c34597e09dc8fe70884fefc30eaa24db + HASH: a694390a12e37319378c7a88c315da39a43a3ef5 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: validate_allocated_amount_with_latest_data From 509225092bc0a868b9808b894e23e03e134541c4 Mon Sep 17 00:00:00 2001 From: Heather Kusmierz Date: Wed, 31 Jul 2024 15:11:11 -0400 Subject: [PATCH 09/23] test: fix duplicated date --- check_run/tests/setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check_run/tests/setup.py b/check_run/tests/setup.py index 6b2b39f0..5a069b58 100644 --- a/check_run/tests/setup.py +++ b/check_run/tests/setup.py @@ -70,8 +70,8 @@ def create_test_data(): create_employees(settings) create_expense_claim(settings) for month in range(1, 13): - create_payroll_journal_entry(settings) settings.day = settings.day.replace(month=month) + create_payroll_journal_entry(settings) create_manual_payment_entry(settings) From 36660bd73f800b5ab96c1a6f23e71864e929b2f4 Mon Sep 17 00:00:00 2001 From: Heather Kusmierz Date: Wed, 31 Jul 2024 15:28:10 -0400 Subject: [PATCH 10/23] feat: add printable MOP in settings, update print formats --- .../check_run_settings.json | 30 ++++-- .../page/print_check_run/print_check_run.js | 99 +++++++++++-------- .../example_secondary_print_format.json | 4 +- .../example_voucher/example_voucher.json | 4 +- 4 files changed, 86 insertions(+), 51 deletions(-) diff --git a/check_run/check_run/doctype/check_run_settings/check_run_settings.json b/check_run/check_run/doctype/check_run_settings/check_run_settings.json index e8812428..f410813a 100644 --- a/check_run/check_run/doctype/check_run_settings/check_run_settings.json +++ b/check_run/check_run/doctype/check_run_settings/check_run_settings.json @@ -10,7 +10,6 @@ "bank_account", "column_break_3", "pay_to_account", - "print_format", "section_break_4", "include_purchase_invoices", "include_journal_entries", @@ -19,16 +18,20 @@ "allow_cancellation", "cascade_cancellation", "validate_unique_check_number", - "check_formats_with_background_image", - "background_image", "column_break_9", - "print_preview", "number_of_invoices_per_voucher", - "secondary_print_format", "split_by_address", "automatically_release_on_hold_invoices", "file_preview_threshold", "allow_stand_alone_debit_notes", + "print_settings_section", + "print_preview", + "print_format", + "secondary_print_format", + "column_break_ctnqm", + "printable_mop_in_check_run", + "check_formats_with_background_image", + "background_image", "default_modes_of_payment_section_section", "purchase_invoice", "journal_entry", @@ -262,10 +265,25 @@ "fieldtype": "Select", "label": "Print Preview", "options": "Automatically Render PDF After Submit\nPrint from Print Preview" + }, + { + "fieldname": "print_settings_section", + "fieldtype": "Section Break", + "label": "Print Settings" + }, + { + "fieldname": "column_break_ctnqm", + "fieldtype": "Column Break" + }, + { + "fieldname": "printable_mop_in_check_run", + "fieldtype": "Table MultiSelect", + "label": "Printable Modes of Payment in Check Run", + "options": "Check Run Printable MOP" } ], "links": [], - "modified": "2024-07-10 12:03:31.615288", + "modified": "2024-07-31 13:23:01.397590", "modified_by": "Administrator", "module": "Check Run", "name": "Check Run Settings", diff --git a/check_run/check_run/page/print_check_run/print_check_run.js b/check_run/check_run/page/print_check_run/print_check_run.js index bee24f0e..b2db9a5d 100644 --- a/check_run/check_run/page/print_check_run/print_check_run.js +++ b/check_run/check_run/page/print_check_run/print_check_run.js @@ -83,47 +83,64 @@ frappe.ui.form.PrintView = class { } setup_sidebar() { - this.sidebar = this.page.sidebar.addClass('print-preview-sidebar') - - this.doctype_to_print = this.add_sidebar_item({ - fieldtype: 'Select', - fieldname: 'doctype', - placeholder: 'Payment Entry', - options: ['Check Run', 'Payment Entry', 'Payment Entry Secondary Format'], - default: 'Payment Entry', - change: () => { - this.preview() - this.refresh_print_options() - this.preview() - }, - }).$input - - this.print_sel = this.add_sidebar_item({ - fieldtype: 'Select', - fieldname: 'print_format', - label: 'Print Format', - options: [this.get_default_option_for_select(__('Select Print Format'))], - change: () => this.refresh_print_format(), - default: __('Select Print Format'), - }).$input - - this.invoices_per_voucher = this.add_sidebar_item({ - fieldtype: 'Int', - fieldname: 'invoices_per_voucher', - label: 'Invoices Per Voucher', - change: () => this.refresh_print_format(), - default: 5, - read_only: 1, - }).$input - - this.update_check_ref = this.add_sidebar_item({ - fieldtype: 'Select', - fieldname: 'update_check_ref', - label: 'Update Check Reference', - options: ['No', 'Yes'], - change: () => this.refresh_print_format(), - default: __('No'), - }).$input + frappe.db.get_doc('Check Run', frappe.get_route()[1]).then(checkrun => { + frappe.db + .get_value( + 'Check Run Settings', + { bank_account: checkrun.bank_account, pay_to_account: checkrun.pay_to_account, company: checkrun.company }, + ['number_of_invoices_per_voucher', 'print_format'] + ) + .then(r => { + let inv_per_voucher = + r && r.message && r.message.number_of_invoices_per_voucher > 0 + ? r.message.number_of_invoices_per_voucher + : 5 + let default_print_format = + r && r.message && r.message.print_format ? r.message.print_format : __('Select Print Format') + + this.sidebar = this.page.sidebar.addClass('print-preview-sidebar') + + this.doctype_to_print = this.add_sidebar_item({ + fieldtype: 'Select', + fieldname: 'doctype', + placeholder: 'Payment Entry', + options: ['Check Run', 'Payment Entry', 'Payment Entry Secondary Format'], + default: 'Payment Entry', + change: () => { + this.preview() + this.refresh_print_options() + this.preview() + }, + }).$input + + this.print_sel = this.add_sidebar_item({ + fieldtype: 'Select', + fieldname: 'print_format', + label: 'Print Format', + options: [this.get_default_option_for_select(__('Select Print Format'))], + change: () => this.refresh_print_format(), + default: __(default_print_format), // TODO: why isn't default showing as selected? + }).$input + + this.invoices_per_voucher = this.add_sidebar_item({ + fieldtype: 'Int', + fieldname: 'invoices_per_voucher', + label: 'Invoices Per Voucher', + change: () => this.refresh_print_format(), + default: inv_per_voucher, + read_only: 1, + }).$input + + this.update_check_ref = this.add_sidebar_item({ + fieldtype: 'Select', + fieldname: 'update_check_ref', + label: 'Update Check Reference', + options: ['No', 'Yes'], + change: () => this.refresh_print_format(), + default: __('No'), + }).$input + }) + }) } add_sidebar_item(df, is_dynamic) { diff --git a/check_run/check_run/print_format/example_secondary_print_format/example_secondary_print_format.json b/check_run/check_run/print_format/example_secondary_print_format/example_secondary_print_format.json index c75a8f47..88bbf036 100644 --- a/check_run/check_run/print_format/example_secondary_print_format/example_secondary_print_format.json +++ b/check_run/check_run/print_format/example_secondary_print_format/example_secondary_print_format.json @@ -11,14 +11,14 @@ "doctype": "Print Format", "font": "Default", "font_size": 0, - "html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {% for reference in doc.references %}\r\n \r\n {% if reference.reference_doctype == 'Purchase Invoice' %}\r\n \r\n \r\n {% elif reference.reference_doctype == 'Sales Invoice' %}\r\n \r\n \r\n {% elif reference.reference_doctype == 'Expense Claim' %}\r\n \r\n \r\n {% elif reference.reference_doctype == 'Journal Entry' %}\r\n \r\n \r\n {% endif %}\r\n \r\n \r\n \r\n {% endfor %}\r\n
\r\n Cheque Number: {{ doc.reference_no or '' }}\r\n
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ reference.get_formatted('allocated_amount')}}
", + "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account, \"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\", pluck=\"mode_of_payment\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {% for reference in doc.references %}\n \n {% if reference.reference_doctype == 'Purchase Invoice' %}\n \n \n {% elif reference.reference_doctype == 'Sales Invoice' %}\n \n \n {% elif reference.reference_doctype == 'Expense Claim' %}\n \n \n {% elif reference.reference_doctype == 'Journal Entry' %}\n \n \n {% endif %}\n \n \n \n {% endfor %}\n
\n Check Number: {{ doc.reference_no or '' }}\n
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ frappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}
\n{% endif %}", "idx": 0, "line_breaks": 0, "margin_bottom": 0.0, "margin_left": 0.0, "margin_right": 0.0, "margin_top": 0.0, - "modified": "2024-07-10 12:56:54.277459", + "modified": "2024-07-31 14:30:07.415365", "modified_by": "Administrator", "module": "Check Run", "name": "Example Secondary Print Format", diff --git a/check_run/check_run/print_format/example_voucher/example_voucher.json b/check_run/check_run/print_format/example_voucher/example_voucher.json index b58f9fee..4a99dfc8 100644 --- a/check_run/check_run/print_format/example_voucher/example_voucher.json +++ b/check_run/check_run/print_format/example_voucher/example_voucher.json @@ -11,14 +11,14 @@ "doctype": "Print Format", "font": "Default", "font_size": 0, - "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account, \"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n\n\n
\n
\n\t
\n\t {% if doc.docstatus == 0 %}\n VOID DRAFT\n VOID DRAFT\n {% elif doc.docstatus == 2 or overwrite_void %}\n VOID\n VOID\n VOID\n {% endif %}\n\t \n\t
\n\t\t\n\t\t\t{{ doc.company }}\n\t\t\n\t\t
\n\t\t\n\t\t {{ doc.get_formatted('posting_date') }} \n\t\t\n\n\t\t\n\t\t\t{{ doc.party_name }}\n\t\t\n\t\t\n\t\t\n\t
\n\t {{ doc.party_name }}
\n\t {% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t{% if address %}\n\t\t\t {{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t{% endif %}\n\t\t\t
\n\t\t
\n\t\t\n\t\t\n\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %} \n\t\t\t\n\t\t\t{% if money_number|length < 18 %}\n\t\t\t\t {% set money_number = ( money_number + '***************************')[:18] %}\n\t\t\t{% endif %}\n\t\t\t{{ money_number }}\n\t\t\n\t\t\n\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t{% if money_in_words|length < 90 %}\n\t\t\t\t {% set money_in_words = (money_in_words + '************************************************************************')[:100] %}\n\t\t\t\t{% endif %}\n\t\t\t\t{{ money_in_words }}\n\t\t\n\t\t\n\t\t\n\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\n\n\t\t\n\t\t SIGNATURE\n\n\t\t\n \n\t\t\tCHECK#\n\t\t\n\t\t\t\t\n\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\n\t\t\n\t\t\tROUTING_NUMBER\n\t\t\n\t
\n
\n{% for i in range(0,2) %}\n {% if i == 0 %}\n
\n {% endif %}\n {% if i == 1 %}\n
\n {% endif %}\n
\n\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t {% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t {% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t\t{% endif %}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{% endfor %}\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ reference.get_formatted('allocated_amount')}}
\n
\n
\n{% endfor %}\n
", + "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account, \"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\", pluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\n
\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\t\tVOID DRAFT\n\t\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\t\tVOID\n\t\t\t\tVOID\n\t\t\t\tVOID\n\t\t\t{% endif %}\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }} \n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %} \n\t\t\t\t\n\t\t\t\t{% if money_number|length < 18 %}\n\t\t\t\t\t\t{% set money_number = ( money_number + '***************************')[:18] %}\n\t\t\t\t{% endif %}\n\t\t\t\t{{ money_number }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t{% if money_in_words|length < 90 %}\n\t\t\t\t\t\t{% set money_in_words = (money_in_words + '************************************************************************')[:100] %}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t{{ money_in_words }}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\n\n\t\t\t\n\t\t\t\tSIGNATURE\n\t\t\t\n\n\t\t\t\n\t\t\t\tCHECK#\n\t\t\t\n\n\t\t\t\n\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\n\n\t\t\t\n\t\t\t\tROUTING_NUMBER\n\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t\n\t\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% endif %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ frappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}
\n\t\t
\n\t
\n
\n{% endif %}", "idx": 0, "line_breaks": 0, "margin_bottom": 0.0, "margin_left": 0.0, "margin_right": 0.0, "margin_top": 0.0, - "modified": "2024-07-22 17:55:19.747856", + "modified": "2024-07-31 14:28:49.098433", "modified_by": "Administrator", "module": "Check Run", "name": "Example Voucher", From 7240b9e99d83d1bda4cd10bfda6d5ed83e94d9a9 Mon Sep 17 00:00:00 2001 From: Heather Kusmierz Date: Wed, 31 Jul 2024 16:56:05 -0400 Subject: [PATCH 11/23] docs: update for print settings --- docs/version-14/en/assets/Settings_Main.png | Bin 206946 -> 214798 bytes .../assets/print_format_example_voucher.png | Bin 0 -> 179503 bytes .../en/assets/print_format_secondary.png | Bin 0 -> 117591 bytes .../en/assets/settings_print_section.png | Bin 0 -> 78523 bytes docs/version-14/en/exampleprint.md | 14 +++++++++++--- docs/version-14/en/settings.md | 15 +++++++++++++++ 6 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 docs/version-14/en/assets/print_format_example_voucher.png create mode 100644 docs/version-14/en/assets/print_format_secondary.png create mode 100644 docs/version-14/en/assets/settings_print_section.png diff --git a/docs/version-14/en/assets/Settings_Main.png b/docs/version-14/en/assets/Settings_Main.png index 86dfe3b46f31614e105b7cb042c9cee19d68edad..18a1b562dff2e7ddaa10ffb500caa9176c61164d 100644 GIT binary patch literal 214798 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
^Q}QnZZ8TZi4n}aV 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

q+U;8zcXU(SwFNJ!4G;ojyZk+=bQtk_N~4Y}qbr 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%0A}U$+IeRYH@tJMF!ui0D*Hy&(NIZ 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

G@S5Bu{Cb^#bCmwL+!>@H@@PmZ zyDKUvPN0m(U|hvbDGZ1e);IS1`Iya(MI8Dv5ntTeKM@fQgOzQYp?l!85L!K$P9vYN z+F44_h?X#YoppC2`GH6hWkYFCqv>R0m|a68y{|)BA2~Vq6!jw)yWD7}@1scYZW%~N z4FP7Vc)@EOk${nZU^`6;fE$1Q{DvoqH}1%O;!^*K2XlKy&k}lZE@G2AX*6Twag!RL z2fR^rYM=*G0cc9zQK#gcnRc_`ATr~N{OElKmkQ8&&aVotlG^O0p{yramU`| zFe8t#*a}%zqKhdO>FBHISqfYE)|6xNHbG6cJBBspwv@;2wFFscomz_6t0xw%8Y3)0 zz^1YtcC_#*Sn17lS7Q-Oa;(tLUf%a#-K^Fd+bV$ktm>~K4~g;r;AXp&AoebkMo95Y z|4$d2LEAeJX_|Xo$+8^EcZhjgfx7jjpQaem<{F^NYnNHhJ~)+b91W2fupNn6cDB3m z((%RYF+nkQ>AK<&?l-brj$qbBmQfzu+qMnNovC7L+aQ+_$azi0K}2tl8R#X>dU(M= z`0h--U98HQXyZdiW2b9NyX!q!r-Cyo3W2MJBo5M<-L~fFBccr*R@u15dYV+&KI0r$ zEJtQ#AhzOm9Q)IH?A(H1oE1x|re^(GiG_*EJ1SpCH!0C3>^@6Cby1)_Q)>{~Q30*41R#qA}&!?-$3r(H&T}*`L*;kB>*P6KnurfGADqAZmazRPq7uCAnc6I30@`NyUM*5HsQA*|l%-?UXB@<ajbwgA9=))WN52f#orMU`A5SKWG z9EEHn4(}|cfYa?1g=>G#TExqPvo)BxBu(5a6oNcu?YoSs6tBB|yvRN{V!{7}bu4_j zMvfm;Aa6ht%8*!cdP7oo8eYzc$rX@2+)^7c;j{b#(fTCa#wvMNw{gK9zowKC6kjz+ z;*C>auS2*Hn}|(`xaBDyE5I@hCxycqg_v2WqVlY}@4u%M4PUloumRV`!Zb+)lfmkiS z=_fa*V=rsc%|{Z}BZUM$mfE25X)-A|hc&f-=SNpz!X4(Ly*4h==-my_x3%8OvAQr| zY!}AW7t5Dv!<_aUF?!Ho_`cd-%27YGN!q;I!|o zqeD)YVqUDc&DbMjD49kWyXYy$W9nCip2R&n z)5dk)*ZP~sdLcThjjIBQDkhds0@c}A&tRSk$I7>>^BX+X77ETFTb&J@$+*?UL>}fN zefD%4!Jlef&&gT*5qF_lk$u{YQ)>8nsgWlQV?ztw$k2l3;`!rteAC#UiZpp zVmmgiVLQ(FZbM_>Smvrw<%21IjqjNUc7<^D8pBLA^HA1KPBLmuRuzv zi#k1%lj!U`HBj z-Mi06bh_m_IwvNwUkZLTvJ<&i4%vxFUqlx&G4od~`Tqt>jS@TQVpjMlzGm&Zr9b|p zZ}fXR&S{2^#=n0&<4pMC3BSlHfniXk?J5#XvuaR>?|y4^3tCKhJowY|wq?cAf)E>M zm|BxyhOW33^gW#Jcoo9L<7rBB-FtU~$L(1YjD!(Ru!EjbkQXMd_35jNZ*4Z2+%|Y% z8EjWSRl(KX6f`<4-XmXx-B70VlzTu=Nr)8M*a|PM@jf$$W09l90Z#=)%@Xb#?%}i$ z0H5GM>=d{thne^ss3FAA-WhBSdkA}3l4oCs?jpi9aeJws1IgRh;YouVj^W_R(pUIN z!Hwr%A0B3l$_neJSoCWLd>Y)fW;;sm1SVIC%>!YNTjD^9G z9o4iV`*DsDbV{w_nbXHbbBiUMy2V*LaA5o^T*Upxk;NLXjd{KFEg5UUWlA^8(2aO4 zM-bam-eI~osGA~ovW~mc@NNC1P;M@qI7`R>R$VF*zt4*F0UPPb*G)X`K425BHApKk zsy}fvzr3g4YoPrb9i>SyZM^KUxxAQ(uF_BzkW}-p6LBK~CNiLez8wyJtU);ER9mmy¥GRsDq-Xi=7MFxz$NFW{i`+!LyCvufil4XM4863ZWEl`mGMbmGRt zS9)B}E=4XnOBQOkZgm4Wxx$&&8bz!XFk>l2^4rT%O^d`v9h?QhMPB{#ew2ZzroXh6 zGQ5@9CGSSZIxSySpqlnZL*uKG!g)0#G!Rz;I>U2Y#@J%r;0e)+S>~SwWE|rtNJo+M zp7gb6GFEmur+Fn^mN^`2t0vb9b$7g$f!kKVBnih9X@i8iM{=g?XA>OXvsYU^_gblZ z)fDIxzF?r<&3c`@{^qQe%Koe~_^(+2E$jgL)Hmsrl$e&lUTv8j6VX*NHMbJJxng@< z!3p{?FylP;)Ok{ZE-LEfM@g-(0Kr}XdRq%8Y_za)o^UWexF-(zmgi@{YT=U+Cf2@J zxj}urPx8sM&%v!u&R5H^eH^hh#fnl*+comEY)LyEgSnpCeGH$k_Ez*9ZgLf!tKs)n zuUmv+XM!$R03q~}K9?NKE82YY*EojJ^^>~Z#Hx$z!kTPiB)k3BI!@LD>7NE`3v8TF zBW{$lC=*3|K5*HnKh6yCD@R(}eOdP2jTHuY)ix9!O{tbvarx9w2w_9v9)@q;^!u=xPE+luF?N_(%g3!wiXAOgHZ%JG28hf z9m}X901e%Y-T{gZQNJaGSnqwu{gY!36ZS&ZeG!t>4NO;bFFm{38x)me@_gz@jywV* z#SJg`nR!(?_Q|_B=ua^cPO%WsEHpaT1sBVVKT2*tkbH6&A$JrHX-&&^UjwR^m_!DA zCj)4B8zD}DpJ6kyF_HeXuoreFFdyvY=VCWCsq5MU3o-9c7S6B5n#2R9 zSFZ84MMUCOs`r6V?MQZiewGjUmQ35bJvTF(bob9HE0BLZDM8CJbMJO|Y;)zs%l7D)xJ1NUALBA!*uEe@pIrL*#2|AnZIv7iFTJC@6S`nLSz3TH zs^?)5b$%DjI%5IyL$l%h21#y5-CJ}&fzzNeAGSNa2e^Ll?y!h|F zL^0dRbeN4k{#33^>r6;p69ykxSHY9IHX_ZO`C#m#Ilaka`*cZ>Ye0GM@*wio_(-O= zeV&hb*K7Gi?=qWMBcn1u^8MtCaaL7JK>#lG?6bzn{!=sPw*$@vQ_$A$XDp0q`)nT% zG4I&F?#N$JNlt_pcEy{koiJlI9b}X!B1{^e*9>C2bACFTRZPPDodF`(%Zb*s>)cMRj*>WG%MP%Cdr(D1`Fd$^? zzS^F$3?RuZ~$t`Qc2Q zkn zE{mZxa}L7d1>sljd8+mqRVQ4uXu1j-7DK=^)h6EXR4=&ImlR7Z2#x&|oalJ3A1$o2 zJW1$5KX+;s>`KK_DYAN7aT9(&VE>I3V#o*sO=c^+$+Lh^#i}qV@9S$@=F=){@kde!LmuC6YkR0&dy6pKt4I!niGSlh2n-LmPgFsEWjr~R!mxr6voX|1N=dR&=nCHmUkqP2!ad^faI44d zNxjuv-fd8=$M=hdYTH_&7?Mndm2vmL8K7MPV$8C1BS(*ve9^#IsQh>#X(GT*zM>)v z|6hQ~!_-+ayMX7`U~@-2|49&29|s~jg!mf3)DctU+&w>(lAU^&8D^JAO`lm=<)c}Q zv8I0-vve-oFJ8MFJ;+c+X}@C6{mAAAN{f#pq~-P={JNmzTp6w5Ft*c=Nv8ATVn}h& z=+e5CC{8q*)YUsyZ8T7nWu!G<>w#<(7l3vSKb?}jhkpLmL| zPL&lbHNIkH)?~!Xc;zqeT6TUxR8!-=30;$DlP1x0oclCpl>ioFn2df^Z%3J4H73mjh`l zB^D((C}pGZ>jC&tT%t9Xm~yQLaj;DA*@SJd@jbRl0=EP)w~=d3N;)$XS0DV(sA5gM z@1>qHfV3ZbV)KG8aYBX(gb;#NcqUk+^CRr55#`kxurw-De)df-flSp_S4qkG@*V*E zv&Jh=DE?O&Mj2?;>27z%ODo^e8<)`@p|Fq_1Z(<_&JI@D@`T=9nU8Ioe));c)u}m; zCs9INim^k+;`iT}d|F&;97j{@oaSBy{iYHj_N%Q+OX>4!WIjZ{S?$$Y>>m{35ZfQl zJgx8YX+gDuMgPd^p+RyPKis&lmzHj-P@82!8`8ng=W*s|*-)GJNih*B)?l0FFMGuD zHH3tc+vHEdyqs%F$#pdNx=*tPg8L1(I#R+y?LMc_YK1K~slNqrukjw%4pnUPQjvKu zFF`3pcSe367x`%%ss{%eOTn788HCA$ublgbZMCf4pP8B-ncV2dh;usN_>vq-m14f^ z2s3vpL+|72^EXT2!R2Qhw!}upOLuHc1iF~7(u~F8cA#KmJ^A`Sf(5geb^Qsa9W|-b z2SCk7byDoE->&@8lDMJ}NZS27%n6tJiui-ED@EWcpF=GDW1u44$h%VQX2%aS!!@HN zEXdUx#pt8JsT^%;>(mF7EumTxcuTDP>(r;l(oaC85Ob&Z>l<-TVD#(i1+;T^IFe-D z23kjsU~feT9OSG5WT24y{s%3bszoag&?)}8F+33)cwl2}5G#kzfq=`3fzj&5w%;iO zyf0BIkNBb|-}@u<#JY2^yG+E`tGyhO1cZ{2F%SZZDO@K<0hIstLAEktDng5|FX)|7>w>;SmfvekL*B=dkZ$;UvE>YA^B# zJs;0Wr;`7Bw|^#`aE5sb`cB8-Mq`E=p=b9?hol|Rp=K=#xeAcouY-byFJ`o0UoBh{ zV1BF`wB(4Xtn+MLXOu!d?7@)nUhRpF`MuS@|*?KD( zvboWpW7)S&U(HF`NS*t=4i_3ICZ7iFhl)S?H49z(UVU_psml{yFk1j2Bo-Z*q`gAb z+{0!ph0XS6=|RKLm6oovzg1IEtkrs~teebH^3MaxmRcgIa7?g{pS}>=!Vbt1JWl$O zzqA6AKLNP@EJ(`JN!dkaH|)+zUyVtLr;Dq{bNr*L{No4i6f!DsIJmzIR%aRbs7MoK zU13&(y_(y5af97%jP2qBI@2p~=~C6|sa{mMof!B8iVS5WFAcF)jd}s)DD2Wt=hV5w zxUu#*mfTid!Gp`A&ri-YUNXT}p})8jm%FtMUr|@-iC8&o{Rk30oQIoa9#3Bu^7(n9 zsofUza&bP)gkIE2vfGH>6|u1kKn*iHS%r!t+qc!ALO7!(%>!kYLXPU?@b;FV-C*LL z7iQAu8JvipzwnJz)KtIRtX}7L1N||6{OB9?1{^)ZbGcq`aA%obaoqHgbVN^e4-Atm zOo&S3Y?)Yz($+PzHF2?{x!5BtGw3q-+3FmHEh>{Omy)!UrO<{ZRLLXYMRyH>4O|`Z zDB1dH#%3~`fU%y7;Mc9K?gU8zM2x=UR9=nr)?|pA;faQgya^{ySw@{}THJF7S-p5# zYk8OMv=m^)=FWl+BtBmNs?E2+uxq!?xtMD*yF;if*Y2irg~h_5S9MP#Qlie?e6qKl z2Ftggu@@|}G7(6Tylc~gL0Le$6wG%N-vA|O>#Lyazu}e1p>o$=IuY!Ojmz4C1H%xe z-Hz%`?kjFWpf4d^WrDSKke`LHM(G`pt=s---;BM-Gcs4fJ5hlRDQY(op?Z$W@Vj5; zT?_m7-n(K+HwgH2n=aZ*^SBM>UXkE^?l}C4FM{UVQr^mhSlJ-YQp)+a) zUVB463jW1_res^!MOr^-g77-<(PZi4fZes%ICd|y1(hOg5tCBxNjXP@Y`AktXqMfe zeZMkrYli}FRdCcSmFZMQBZkB-T{{}0SZxB^f!>iFeMaw=7meULEa}d)WI&$E1Ar3$D)+HW<}Ny1b>5rK&{&Q9 zQj^3X?GfH7@XdNFWEG&#J$ zV-Y;|y_2_=gn*hQ8$K`$0N7i@DM=T?raLCOr^_;H%Drr4$Y>GMq3f=XANg5>75Cc} ztlw|%mOF;yQGEIGjH?egu=X5_tXkQoJW2|`FjXIjpN1@$*IzL-7J#u{JtbNR@FZ$R zyN!9~2)*lr6Ssl;++mRRjpGNBJMofN27=w?A`3fZEP(c{7Lpy{6%-VsWWS!6{7)56 z6m@-)`px}P0&)u420tc`)0Pz{i?^?MJ9i%jxB*W7j`0n*KN6ekGWjesE(? zHE+=jF;?rqA;J7C`4N`6JWB-pI~mfZ8N_a&8#MpmDWLtr`kel^F#haUf%}gy31FlC z480uB#4#Rkq=uSK!_vR}8n@ymJy20(yIo^%U?5KP0tJHfWu8!oH07L;n};`k(%p)XHo`nsaYyW@ImkRrb}z$QaK&72ZG5~rEYH3u%#8I4E+eM_OQqP%quApYRdQ2zwn?N@WSxz$s;(abX8 z<8?kLW+RW}J`jghYj$F>pNp1>UR*Ts{)`1Q5Mom<1D$n`3l1$-I(P6prFZC)v4RVe zJMr`4W4A0(xwNvEcZJUv9BnA>%?Hy16%E zNuyv|N#MG{@`)nM&Tr|o1pkCkK$@niTYRKhF;<;!hr)|(jxCzBx@V)hEf&VBZ~|F! zxnb>a!TNXVi%gDh^ue6+;q=I|-jShRfEjW=dxw5g>c;fJ{mpq`gaL*1zp`sFbVq-G ziCzf6={5<+wOl|M9qHUH2_}lvhi!t-d!{gMvNHW4uX*uLd5ysOcSZJ&j1ELhn|pVZ zWBq|~wTl&33%h$Lx+Qe+g8ng}iZJ684*tPC-x2hipf2~^zP_$`u&78$3D9En-KtUg zuaMei)h{;zT|N9yEJ4z?&g1d31dqMleGTqiX~-e#=EuE_-S0u{6PaMQam{eqmABSY z1)pDt_%V&7%h77or&hDNEu=v$lzqV{x3 zg!Cc730c*Q+mW@`_c-^eCPlmP7q{E6IFZ%aYM%eGJph#+y__SK zunlGRcxHhSmD?h`qeuWw(2Z&&iWTqyQu&9q%EP~^jH6rBbkdbC9MO_oGt9_p5Xu}_#0-of^T{HuQWSvYSJ~#ihMTKZQc)fb7 z%6VbZENaSOqV&^XuCAzPm*t{Lah*VyYVnNGT2J)OUtOwtg=ifb*g_aYxhr*p^&KwK zWsrdN?`*(szF`T(1c~S@hTbz%@F52~|F}AUgA~d;BQE8N$Tgrz>}c zR3D=A%_8H{zpeb5I58H`c84(XS6~3y z16L|3974Bj0CB_LUi{+ul}`ou`XZxW<;6XZn&AE?8aR3uAGd!n%F)(e9EVn$|rV%^K@*k&7Kq?0rAYe;}E*mlQ~Zh@}`KO zV2f-O0xDnqzEpG6*OH=)91mNqKK&lzV(kcd z#Cn?#12b``HjjjLNb5g6p|10F1W9*Oq+tsA#&)1=*KzYRlRB|tLeZR>iw2iy>P(*b zZUIdd^;FDJQVG^@o~b`s8mT`E`dnT->yAOBL1cT&;wnUAggNE@R7I$x*>u=TXTT*JYt zpS|+5QAtoY;EGAd3TIG66}sMKt}L@jMRhpmP2HgMdE1`4VOe06GD*@2z{$SQ>v5OKuGXg-BoCre%TD>q zx0}%}z3h7xqESCBlr;N5*lZ=W&KAoylI$N8@p-vyabg?bn#}?aUC{610r|fL*@D>e zl~xThQod2TXOT4a2FFf*D5_shTVApD>Hg;3ga zQg6HVnoist;0`Z;w2&K0o1>j!tPTCY+70%P3yzNS9^Iumi3_tiJSOK}NuJGxB&Q!Q zZfC{3I&omeDj#g#kHj_aY0R( z*Y09Jb(7{#N=0XB@}kiJ;WhKlsUvJEjN!2$zaO$VX{+OblG9;x>&-+SuG@C5TyE_hyf{(|$Y4qVslwh!{V`{l;cw{Yto8NIL#$Ihx3)f<{D(1$r$_LQ z?8P=BNo5M}9v7i*u;qVA>AK$o98yr9H9?z|C}Q8{_J&Q1yYOhPE-ONY0}Pq8bC0Nk zJ^ZwHVz$M8cu6@=ujY2-+kryVr*8N7iaB~v_(HRtrw%MnyX^KoR=L2VZ?LgW#Z5rH zRv}+wGtMQ-(#pdpSBCc932T|VvO^qb=+6jQ7~@DbEXUbl9K3YO8Hak0(9sIFAaB#p z8CXPb&WFtRp*V3xo~CJ3z+JvMqv8b5b>q-aG$%{X|2PrNY9Jo{CPMb+7Izu3wHWXQ za<#jOG_uG#1WF8=159B0maC$^+z!K;m3oY@$q#B1Jn(YnXZDu zul)qX-3YfVlf9Kct;{saVO_{b3jZG48ap9LY|1)49Ky64~@cc)3 zf^=^XhAaJwEDu=UwpYQ&&+Gzh)%e0ExONSF_wDmP#6@LtSCSAf?*78#S?U_-HDvf$ ztGCN}B;9r&?oId|SgySh0o8VNOMQ~P~l9m;rL}Cf?R(v88BTw4)1&&qza%3PC zH?G1>ZWbn9rD3<{Gu+}?E4AD3I_SO0PoDOtjeOU5`kBZ!Gu3qE72H`f#(2P@YNg=? zX81!1U=G<8k0o_Q>W*{1gl_S`Z#U$ApZSg=Ds#g}hcR{I15UyN`DSw3IRXK>jk+-{ zDNBi0yQm6unu>j_GwxdObaz$>InSC#q@!_}GK*;&8FKRpS`wc^XI z-%*J_H|PZ3U8B*p?S)Wm)#R=0tF}G@BLt78K35b_1mzalEfyZQGW+iSWt4UHn%YUO z+izjd!X?6y28lPwfG3$r@Xp3VpF#T6m#6>WHpQO#q2TqLuFQ;K!7uXnoBFFgXRlCA zdud3g9Mmph_$OQ*Z!o5(UpD+@r>r#k*X37D64eU~y=EEhAWZske2>)J26}5yWkd{P zmec1}Phb)`^VX#}spAjBtTp`me(!0$gBhR@nq?jvIR~;taZrZGuTxkAH65F$BmP*s z0QvS?xL~#!!a5w^br=yH-R366oG1dhof5~Ja^{34Y@8mCze*VIYL9i}6PwFj3#D5$ znm;V-tVP=g@1(DcAv2P(LSF^<0aBA)A~WT>#ez~_L+{FvTrh%EVPRE1mrkd(?Wa6` zsaF%m{Gkfh{Z1@Z6)@ZZR|7dvC8G>Y{)0=wPm*SI`3k$+=-T=rz+6hx&37_P88x41 zFu1XjTrd(hcW-p#X9`$w_7+`%-#ne%(GS|Z_>0UonB87|G}I+-psUtv18z~;#lyn> z+7K&ESLNL@VX*X1<6?@tm&~>lILH$>xO4gdmP@sFuz=CG^H|!w|5A~HhmL+b>GC65 zSg>|7{8E}_wzkdT{)FRZ`SK3S4yc>-|Fn1BQB7sx+K&|*pdvD;pbi2m3JL;437`ll zRYd6orHWMP0YXqlQ9(dzXaSL;(xelr3}S!)p_oAEN(m5pLJfp(2X#hg?tJ&VYkl|r zahEJsR$!g7&))l-v-kTxzh?(+h?I($>~o4rG}~*9C$Q$PibHJh<7APTVQ1u_xr)Rt zl(-CF(f+)70kYkFy~-v|Jxmk(Qe@3{eU06H$Ef-xULhcSTvCHp;>k3U>4i(lj@*be zF6V@1<^63_mx_-Yb+;{WKs0quVL~8IS2-4#FohKG(P@r3V|zc8rRun480%xNh)DxX zn7X9Pr?j)PaOrlhVVf8q-aRQiVi+y|qm$B$q1K7WdI2TH-w|_Ts+bhr)^fcqE3}Bg z^?R;)cXFlVUrL@(vv@j*`pxoD&>>_%Z+rPw=xd`4FM;{=L|@U0fWzG|^Iqw~=ezMT zIG~DY-kbYC;q~U(IO0NRIvQZlS7M84o1TUKHgl$71C&2YQ-^`Y(E zICJ-5Uc@Th|95(!ZoWE4_rP@l zlHXsb0)P0Vdo)@S*QS!VR}al>SKbRnI{pX1izZaE&)8v6H^Zya)vo=IY~*UaDu(tn z8RAsc2W>3Z#lBZPn6)z08o#oA&99ozqH?G2X!6C`*Fax+m?0Ib^_!H36Rjo$ERD&7 z1oDQ11T~_WU0ZDg>Hc5EMKTWc4_Bb^2$*X~3ebdXjV|Di5!{f5 z85$)c>LrxugNgOB4;>U&^)s2K<5%zNHA1O%x#7cbYO<>{=`QYUD*jpT&?q0922dpg zZ1+Q;EBL9SCvP6d)51Ci3OK0sFNeeI=MdSWI#pWef}*m8eg6R)%EbLJa!Z6=szU8x z)-%_$TM23v&SLisQpkV?SoLaOIBG5G=qgr*hecX~w06BknMs%b{o(0yYpR!00$W?KhYet7) z214jaHxNevDzYc<9IaFn?vK#n&8yx@TOj?uizXwDZWf$8xA{9#nSypitN-*+o$#zE zlj9zZ;5?K>RB)?XvjGvs!(kLl!qm_`5)-0v=G3>JQadc}D7ez7VY-7ru_;hL1icL0 zLK5$^)5VzhnU4b=dU_kQeK$taddm)*;@~T~brKe~MqOYU_#efgEYF5g{7ti76^LpW zd4xrqBB1lA)+4dnZ*Qmbc!VyC38anK+dMKM6z^hRqR5Hf`xyFB7Kqea`mBIFLhEcs z1*DM0z^Apiv#htJV`1yZwOAGZ1A=ic>^`gcXyOl-d4%O_%JZY`Its~7YiU`NrQ6+@ zA-@>eLwmSI%`y>J_D|YfuPXXjm1mWET%*dMP*pga^p1hj+^$w&44x7Yr<6Lu&10Kq zVI^Zy#3|^|z!ou)fKl-mfa8_O{lYHeh*phxX`8OFo*NH5(&6DC^6-@+JLfj1cDA_q zvfs{X-Ht6`%^UwTmk}UM41bUz9Qe4xFYU zlQK}WBqm$rD#797b>@_vJ}ut8+oayvZeztwJI~Fn(_0d@EUmH2M+IAK8ToO$kK>ice+f&<2}m&mJ}>2srk=FkYq^OZD-)-`$U0$FDoXLyZ1|CrZRHW4qT)s(VE&Kgdxc{lFA%j6Br zGrPcn_)6cg=Oop!YE3{e9{#-7?h8R7sM_Eo44ZpwjMR}Y%VMt;AANy)bF*JHT$e{o zd1bH!41Z!=<7}Favc_Mqb66H|8^*w-Ki0dtFSoM(D z>A`@8OiH<$M{|kVl!Qyo_{mM-*aJ9OX*`7UL` zC~+wr0?Sc^oihBS)KIil3#A7LcVg?yW*96=0ewWJqmW{oR{b|IFoogkkHUP3A4zW% zTYYeR0krTMHmQ?3S_N&CsEbAEMU|G77M~{W6c0In56OgAt7eu|w!8IB2sYvN7&#bR zbUhIS5YT|x3J;C55~@muz6%>(c|h*QYp{^wbH|r`buwwo@Y|}Rc3LL^XRCd6O0u1^ zr^VV&Be3eqi1z}pgP=&*@HXw|zG9snyz8WY6s#4JtKsrmcm6>Vz5P;e zyRyAdhPw)OkeP;=+1KJ-OQKFa2g);2@F>?aSKTq3C38BbtOTj`b9gH1U2N>U5N zsg5d@VEx-r3=F8=i*g|ykVPf$9J?vSyuL0?NiVf0vgL=@&2tn*v<^CJ>Ac;VA zEnREUcHBFE_bc@fcOc84ONB2;zkTyWxoW7~ojpwh zep5Gq_Bx{}*1mao38(4ND+P1!t%V+dyBdEP#4t)W^Qcev2{M+0j#y9mZ_mQ8t8Vw3 zAI|jB<9zn$g6q2`Dg4eDFqEO~kE^5=e^eLB)&5+YpN>Xc?1Jgg9?Wi7{HX8_uNm3KNfROG0sf{ljPz8{{!cc_oMP!Fj*-Vgd2G zWVIsref!U`@`pl+rFlQ#5Qg41Hc2sH_Db9}dhG_VD=3!vhC&c5p= zE9Hv6wD_dgs+Lcu7muj6_w@Mw{U7OnLJ(oCe?btdPOmAgPP$!z2J0q~Atv~*5QOu; zLJ*}C851(CEvZacoBg!~kM`bU_J$8FU_~1VGceHo2NLo7HzcCHp6rsym3aDvEtYs4 z%*O+H%CvE8b6ph2PDJZ&&5dsHRQyD)w(g|nkthxD3Q4+gUzew>J|ACYVLF;1=9XEZ zrMBGmeIGsw`p?2gfYXhtE4Na)5>rrmNWxJtr)oA$ zqwR0hLreV+)B_cG9Tbj%vV;Z-=S16JmB@)4{EvxZ4B%Yxu)|9Rl8rhTkN;KaJ!iM-m8IKjoJPAj&7{U;_A zl2CqZ8Ln25xXHl%q(_^AxE`|v4vN?qcTf((XFg%=ba{OB$>B2Nk83XHXqT2#r|2W8 zp}sM<)9~`-J(#I3cZstrAo!46+9v1L_lapXlET+?uF-#Gp@53Y0l9dw0_Wn!o)N{B z#VGS&*)v(YWZ1*x8iS$`3vbToVA(??D&z-Ugeh-HAdRa=%!_jF$v42Ur= zxwGRuPjVG}aAo9pjp=3oDzIinG4+&f+7%GmH1kDv0Y-TX_OqWv<+B0g$i5}QOhVni;+BedXUc0BZq`Gw(2k31grW$ zph#8N8}ae(=a*<6+U<|@8jw{CLl7@IRS)Qqm+nJz?nV#>Gd_Xd zEd6U#@ZHovHpR@BG>wGwf?_N)jZz-CfluakrM3s;Bu`MC$(4(4H#Jh zU2HC8c6v`g*#$%{t4w#1rdlNQU&%6nWpEAOj}EipI?0r3$D*f~8d3=JXzuM8<=!;r zG$dQ$q1Ds%TeyW=$8-#$BKbqkggZ#mn!*fyinlw^7ll_^GfqLh7KJ3RZ{?14^jWqh zS0J$=zgT$hV`99Bz57xza^X}XD_opo(yvAp6Dqe9_dRA;^g)mpocl=WGFtWzcMic? zlQ2yjM~O4hK*7QASE&QR{R2Wdn{FjUOET6gwrgNx);TF%>=4M|&sQ&ByfOU)MM3_P zqWH|W|1$h@VylKnfr#9Dy#hR$I>PX8y7n{>k*69!Y`PqPBMw^+`T$G27zIbeZL^;+ zRE%#rA&dSOD$^V)YAB4kyxwGNJZy|9>Lt`$P_Nf)#F-j>5uufZW3`+}Z3XWST8S6h zD7C5TN}0^|*|GX!+h-B)TCEel@+p*d!Qg`G2cEo%ZXgCJW8KHEs1jUE;7`x2BUX-f zt{^1vv}^6!D#;t@9l&FzM&mb_KA&x_Fpq?ODCT_*9Z)N2+|N#1Sd@;!Zji~~0b@LO z&b`bneQK`JMWoA(6@pE7zzr`O-+%)PsOjiS#WE?Ztx^GC*{Fr^f3&U{Z9uO-iYUc} zhzb=YjT3HbdoNUqx7!Lgq{|=jcCS)q5~+9e#;sSY--UTwvp{`#CA=P}$H)m5GKQK# zE|W|n9BEDzunu)ph#ccWSLE_XmM1F$u7z*N(I{Kt z@cK+(+vkaxod>DkoI5k~vx0$rPlMCPoaiQv=N5Fw8%bEtxeL?1c?bnhHd!}OTK>vizTFDY3okJ}pVic)(LL-^OA0cg zzsuFJ8~997U7xb^R47G%n9mMX9!XqEu6XY?&vPd|^KDgRB5ZuBvIBeq z$c6%aQx*e;-Pd#{iRQV?UWD1vh%Rm^_Y`Z^^oTl>zG!1_c;S@$dVJ$xSMcU{-l#Ex zRjduMEozhjYgcBS6bxY4Pm0wTqwz{^0THcv7+Ct?q~`W)+?#*v2-E=eRUiwx?A^Dv zN)<`2AOkCg&+Hz&Lh^KDxusDK8RM}js}h|AnFug6kWk+=iC89fPuD&5=!@iOjQ_)X z8lytQJj~w-8pqC!(o!dlq>xAQ+osA$l)Kq3)0P=!nG2Men&~)&RWRGOBI`va1QGVTmznSqBTCg<|C-ST81Rv!{qS^OJ+EMRc(N26*I8U+;Z%t7V0@P z7Wc&JBTyOjy;j$}Zrarzy||q=b_%;bIQr3i{EE5|Sfa8>bP)xNZ0E*f4l*@T0)^GK z?m+5bVtWV2aG&NkWh~mtG*-Izoy?#&Nm04FS}|cFw%Bg&Z@6M# z^U%sl%Oi`pWROyR{yRM!^0qtR22(Mi2E>b895EYexbHsn$xQ3p;+MaU9eHQTxk^|b zm2oe-2=g4fxs!+WZbFR{1nhik3+J7#((r^Wp1=av(*2RN+0DU&lS-y+XlY;17@p`Y zPrwtIo&(PCz37eoA5P;DF@Bm{Z+&XZoac68uY$RB!%#{7h;ZnAMV0!m<0{+`>Iidr zONFE>1F3qjaMPw&8Y;23=W%z(TIRRI$79HrPE|1HkDmgf2)Ctz_kqmCV&W!X@+;`f zoM>qR`Hm*>7SQ?}wlF!_ODW zUoX}FHTT1MRf6{lais1uq};r_$R7L}Ar&Wv0-4{si>xPIblvj8VpN;PF|o34vnCU7 z3Y+1H*uD<`Ur5VThF^aS_uaZ{gJC6L%W@!^O|W9RJvp3)WTM8rWsw5M4RbfGi1 z*S*_qUQ2HIgr?l`&@Uc6_soITb8P%5f~FnsHU9cMV`&hpYh+I#$S)1}|F%YJH~(X& zU=Tn-k~69n`@HXs#8`iL&!Ke$>}8;bBqw-$p2)`sUlmNaAVIPS&t?#f9BVOT^x<$V zIk;UxtFp=3Gs(WkRJ^==TD)^Z=PiHM(iPjBii2D*&)e$agd4ex6^h5a9t_SeT)Ffa z<=$mup5R6t8yBgdT{rd`OFa*YfHkzuA`nbHKRqm2ox_=b;IN#+~1T?Vu{cQ&y^G6%!W%PUWBkqAZ`EY6X*#m(hm7aQ4WVH9^ zsj}%{rGo}14w|^OW}^$^jqGx3%|1Qkni>c7uhN5DU(0>JU+w*a-NKy&$Fj*H&zWi# z^Vg|SPnXGwRT<=IRFy4bYMHyC4j++dj~R{%1QlEsG5F}P!(;4Gq^z#~?T09rW~s6j zw+<67(6&Q@MPKEG%+)hgKVjz zxJ;9|Px9d}qo2tN!L1tV#3HOu;dRluqH~SIBwRkqIxk4}C0v&}F~Tj(hj&F!%2MDX zxH{g@ieui23y($ftSzSNU}4bIpo#M&TlYRV`4{_wR#kYCprvC2EE1X#G;y1R%PY1F z5#sZPEmT4md&HD~x&8a~;2JiWGrlWh>7Cxw73L+M9#O_gI{C#`IZbFI<%NNXTI58N zlm}R?my1`b5x1%DvgHxv>g@Rs zznH%VH=lmPENCd~PQm!S=Fh}+?W)!mOxD`9qJ2oNwsjLs3=7X1YqBN<&>g zR9?|HZPm_lXzkRr4jkD)zrhWc$I%V@@N<>A%3~y(c%o$r0_I;11WgTfblW~_DkFB0 zB&v#UwncYT1~I$5bI1_v6d$w8_vm1X8|ujZ6HUuLq4=GaLw$|VSZ|3%2X0KXix!y| zUjb8|T9e%Z7nrk)cy7&)S4Y2)RkIu-HHbx73*%wj@PkzK5$>jZLuGWYYz;h(Y8U<7 z8jAN>@SE6XY2jGM`y9&Wt-?)G%S&IyNFMc`$ejg@COa)zY_P3q3W zu3;p}R9iXh2=gQA9(aR%z{{`8wtyZU^}IsD+kx4`!6BPxvFJ&-*EKAamgG+!yBN@x z57qKUH}iagOK)c|>Z%lFnSY9bKRL|?=%?}R=Vyv%0I5(+pC`3JQi7jAwojeaOV_jB5W+yE87bnCi1i@9<;c@wq(={+F=#ID|K1<{=@; zAL7|^5praU$gJlJ(e1GDxl5LN%7@4g8-DQ|Yu_DterEq$uG8Dz!LhVU!vikN60+di z{n^mzEIf=S`1Z{M)wb&%>%08cHS1)-X%B5>T-`KNV!p;OHN4QGf9YR_Zw$fB46YXY xpr2#1jluBGq3?I&>z_m4@1`;T-9z6ck&8EkR+b?1A`tL%RY~)5_N7}7{tw8Sxv>BM literal 0 HcmV?d00001 diff --git a/docs/version-14/en/assets/settings_print_section.png b/docs/version-14/en/assets/settings_print_section.png new file mode 100644 index 0000000000000000000000000000000000000000..59884c4c26ae581b030b0f369aae7128064e9e23 GIT binary patch literal 78523 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∨iEGRxsnN2R$?)59n4R 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 Date: Wed, 31 Jul 2024 17:14:06 -0400 Subject: [PATCH 12/23] feat: add multiselect child table --- .../check_run_printable_mop/__init__.py | 0 .../check_run_printable_mop.json | 30 +++++++++++++++++++ .../check_run_printable_mop.py | 9 ++++++ 3 files changed, 39 insertions(+) create mode 100644 check_run/check_run/doctype/check_run_printable_mop/__init__.py create mode 100644 check_run/check_run/doctype/check_run_printable_mop/check_run_printable_mop.json create mode 100644 check_run/check_run/doctype/check_run_printable_mop/check_run_printable_mop.py diff --git a/check_run/check_run/doctype/check_run_printable_mop/__init__.py b/check_run/check_run/doctype/check_run_printable_mop/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/check_run/check_run/doctype/check_run_printable_mop/check_run_printable_mop.json b/check_run/check_run/doctype/check_run_printable_mop/check_run_printable_mop.json new file mode 100644 index 00000000..237de0f9 --- /dev/null +++ b/check_run/check_run/doctype/check_run_printable_mop/check_run_printable_mop.json @@ -0,0 +1,30 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2024-07-31 17:10:07.841441", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": ["mode_of_payment"], + "fields": [ + { + "fieldname": "mode_of_payment", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Mode of Payment", + "options": "Mode of Payment" + } + ], + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2024-07-31 17:10:56.744398", + "modified_by": "Administrator", + "module": "Check Run", + "name": "Check Run Printable MOP", + "owner": "Administrator", + "permissions": [], + "sort_field": "modified", + "sort_order": "DESC", + "states": [] +} diff --git a/check_run/check_run/doctype/check_run_printable_mop/check_run_printable_mop.py b/check_run/check_run/doctype/check_run_printable_mop/check_run_printable_mop.py new file mode 100644 index 00000000..093c50d6 --- /dev/null +++ b/check_run/check_run/doctype/check_run_printable_mop/check_run_printable_mop.py @@ -0,0 +1,9 @@ +# Copyright (c) 2024, AgriTheory and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class CheckRunPrintableMOP(Document): + pass From 648465ba78ccc18447a19672a5b907a56898337f Mon Sep 17 00:00:00 2001 From: Heather Kusmierz Date: Wed, 31 Jul 2024 17:14:43 -0400 Subject: [PATCH 13/23] ci: update override commit hashes -correct branch --- check_run/overrides/payment_entry.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/check_run/overrides/payment_entry.py b/check_run/overrides/payment_entry.py index beb8b1b6..fe8f679c 100644 --- a/check_run/overrides/payment_entry.py +++ b/check_run/overrides/payment_entry.py @@ -15,7 +15,7 @@ class CheckRunPaymentEntry(PaymentEntry): def make_gl_entries(self, cancel=0, adv_adj=0): """ - HASH: a694390a12e37319378c7a88c315da39a43a3ef5 + HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: make_gl_entries @@ -41,7 +41,7 @@ def make_gl_entries(self, cancel=0, adv_adj=0): def set_status(self): """ - HASH: a694390a12e37319378c7a88c315da39a43a3ef5 + HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: set_status @@ -60,7 +60,7 @@ def set_status(self): # Bug Fix def get_valid_reference_doctypes(self): """ - HASH: a694390a12e37319378c7a88c315da39a43a3ef5 + HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: get_valid_reference_doctypes @@ -86,7 +86,7 @@ def get_valid_reference_doctypes(self): def validate_allocated_amount(self): """ - HASH: a694390a12e37319378c7a88c315da39a43a3ef5 + HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: validate_allocated_amount @@ -126,7 +126,7 @@ def validate_allocated_amount(self): def validate_allocated_amount_with_latest_data(self): """ - HASH: a694390a12e37319378c7a88c315da39a43a3ef5 + HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: validate_allocated_amount_with_latest_data From 02ffee93b07067167c511d4020dae92330cb4dd1 Mon Sep 17 00:00:00 2001 From: Heather Kusmierz Date: Wed, 31 Jul 2024 17:20:09 -0400 Subject: [PATCH 14/23] chore: add patch for multiselect printable mops --- check_run/patches.txt | 3 ++- .../patches/patch_printable_mop_table.py | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 check_run/patches/patch_printable_mop_table.py diff --git a/check_run/patches.txt b/check_run/patches.txt index d2e8badd..2628fb7d 100644 --- a/check_run/patches.txt +++ b/check_run/patches.txt @@ -1,2 +1,3 @@ check_run.patches.patch_payment_schedule # 12/19/23 -check_run.patches.patch_voided_check_workflow # 01/05/24 \ No newline at end of file +check_run.patches.patch_voided_check_workflow # 01/05/24 +check_run.patches.patch_printable_mop_table # 07/31/24 \ No newline at end of file diff --git a/check_run/patches/patch_printable_mop_table.py b/check_run/patches/patch_printable_mop_table.py new file mode 100644 index 00000000..6bbd85d9 --- /dev/null +++ b/check_run/patches/patch_printable_mop_table.py @@ -0,0 +1,19 @@ +import frappe + + +def execute(): + cr_settings = frappe.get_all("Check Run Settings", pluck="name") + bank_mop = frappe.get_all("Mode of Payment", {"type": "Bank"}, pluck="name") + + if not cr_settings or not bank_mop: + return + + for crs in cr_settings: + crs = frappe.get_doc("Check Run Settings", crs) + crs_mops = frappe.get_all( + "Check Run Printable MOP", {"parent": crs}, "mode_of_payment", pluck="mode_of_payment" + ) + for mop in bank_mop: + if mop not in crs_mops: + crs.append("printable_mop_in_check_run", {"mode_of_payment": mop}) + crs.save() From eb9d2fc34923d826e3cd85d0d0c1681d618c8097 Mon Sep 17 00:00:00 2001 From: Tyler Matteson Date: Wed, 28 Aug 2024 12:03:24 -0400 Subject: [PATCH 15/23] wip: refactor to dynamic link --- .../page/print_check_run/print_check_run.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/check_run/check_run/page/print_check_run/print_check_run.js b/check_run/check_run/page/print_check_run/print_check_run.js index b2db9a5d..2d1480ea 100644 --- a/check_run/check_run/page/print_check_run/print_check_run.js +++ b/check_run/check_run/page/print_check_run/print_check_run.js @@ -104,9 +104,10 @@ frappe.ui.form.PrintView = class { fieldtype: 'Select', fieldname: 'doctype', placeholder: 'Payment Entry', - options: ['Check Run', 'Payment Entry', 'Payment Entry Secondary Format'], + options: ['Check Run', 'Payment Entry'], default: 'Payment Entry', change: () => { + this.print_sel[0].value = '' this.preview() this.refresh_print_options() this.preview() @@ -114,12 +115,17 @@ frappe.ui.form.PrintView = class { }).$input this.print_sel = this.add_sidebar_item({ - fieldtype: 'Select', + fieldtype: 'Link', fieldname: 'print_format', label: 'Print Format', - options: [this.get_default_option_for_select(__('Select Print Format'))], + options: 'Print Format', change: () => this.refresh_print_format(), - default: __(default_print_format), // TODO: why isn't default showing as selected? + default: __(default_print_format), + get_query: () => { + return { + filters: { doc_type: this.doctype_to_print[0].value }, + } + }, }).$input this.invoices_per_voucher = this.add_sidebar_item({ From a88fd21029527eec322c7c743372aaa40d881b60 Mon Sep 17 00:00:00 2001 From: Heather Kusmierz Date: Tue, 3 Sep 2024 15:48:53 -0400 Subject: [PATCH 16/23] ci: update track override commits --- check_run/overrides/payment_entry.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/check_run/overrides/payment_entry.py b/check_run/overrides/payment_entry.py index fe8f679c..4b4f0e4b 100644 --- a/check_run/overrides/payment_entry.py +++ b/check_run/overrides/payment_entry.py @@ -15,7 +15,7 @@ class CheckRunPaymentEntry(PaymentEntry): def make_gl_entries(self, cancel=0, adv_adj=0): """ - HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 + HASH: ff14d72a4620f55c4282e0cc29b6ffc08419334d REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: make_gl_entries @@ -41,7 +41,7 @@ def make_gl_entries(self, cancel=0, adv_adj=0): def set_status(self): """ - HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 + HASH: ff14d72a4620f55c4282e0cc29b6ffc08419334d REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: set_status @@ -60,7 +60,7 @@ def set_status(self): # Bug Fix def get_valid_reference_doctypes(self): """ - HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 + HASH: ff14d72a4620f55c4282e0cc29b6ffc08419334d REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: get_valid_reference_doctypes @@ -86,7 +86,7 @@ def get_valid_reference_doctypes(self): def validate_allocated_amount(self): """ - HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 + HASH: ff14d72a4620f55c4282e0cc29b6ffc08419334d REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: validate_allocated_amount @@ -126,7 +126,7 @@ def validate_allocated_amount(self): def validate_allocated_amount_with_latest_data(self): """ - HASH: 49e50662b6d5c315fb24366eaeb7505cd4b35947 + HASH: ff14d72a4620f55c4282e0cc29b6ffc08419334d REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: validate_allocated_amount_with_latest_data From cc10257b031e6816468cdf62f089f5b8534063a9 Mon Sep 17 00:00:00 2001 From: Heather Kusmierz Date: Wed, 18 Sep 2024 09:47:22 -0400 Subject: [PATCH 17/23] refactor: add page break in print format --- .../print_format/example_voucher/example_voucher.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/check_run/check_run/print_format/example_voucher/example_voucher.json b/check_run/check_run/print_format/example_voucher/example_voucher.json index 4a99dfc8..62ac5fbf 100644 --- a/check_run/check_run/print_format/example_voucher/example_voucher.json +++ b/check_run/check_run/print_format/example_voucher/example_voucher.json @@ -11,14 +11,14 @@ "doctype": "Print Format", "font": "Default", "font_size": 0, - "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account, \"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\", pluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\n

\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\t\tVOID DRAFT\n\t\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\t\tVOID\n\t\t\t\tVOID\n\t\t\t\tVOID\n\t\t\t{% endif %}\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }} \n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %} \n\t\t\t\t\n\t\t\t\t{% if money_number|length < 18 %}\n\t\t\t\t\t\t{% set money_number = ( money_number + '***************************')[:18] %}\n\t\t\t\t{% endif %}\n\t\t\t\t{{ money_number }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t{% if money_in_words|length < 90 %}\n\t\t\t\t\t\t{% set money_in_words = (money_in_words + '************************************************************************')[:100] %}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t{{ money_in_words }}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\n\n\t\t\t\n\t\t\t\tSIGNATURE\n\t\t\t\n\n\t\t\t\n\t\t\t\tCHECK#\n\t\t\t\n\n\t\t\t\n\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\n\n\t\t\t\n\t\t\t\tROUTING_NUMBER\n\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t\n\t\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% endif %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ frappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}
\n\t\t
\n\t
\n
\n{% endif %}", + "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account, \"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\", pluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\n
\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\t\tVOID DRAFT\n\t\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\t\tVOID\n\t\t\t\tVOID\n\t\t\t\tVOID\n\t\t\t{% endif %}\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }} \n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %} \n\t\t\t\t\n\t\t\t\t{% if money_number|length < 18 %}\n\t\t\t\t\t\t{% set money_number = ( money_number + '***************************')[:18] %}\n\t\t\t\t{% endif %}\n\t\t\t\t{{ money_number }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t{% if money_in_words|length < 90 %}\n\t\t\t\t\t\t{% set money_in_words = (money_in_words + '************************************************************************')[:100] %}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t{{ money_in_words }}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\n\n\t\t\t\n\t\t\t\tSIGNATURE\n\t\t\t\n\n\t\t\t\n\t\t\t\tCHECK#\n\t\t\t\n\n\t\t\t\n\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\n\n\t\t\t\n\t\t\t\tROUTING_NUMBER\n\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t\n\t\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% endif %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ frappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}
\n\t\t
\n\t
\n
\n
\n{% endif %}", "idx": 0, "line_breaks": 0, "margin_bottom": 0.0, "margin_left": 0.0, "margin_right": 0.0, "margin_top": 0.0, - "modified": "2024-07-31 14:28:49.098433", + "modified": "2024-09-17 16:42:36.690553", "modified_by": "Administrator", "module": "Check Run", "name": "Example Voucher", From 2a6b154fc7a4b2ad41140187202041e8afc24296 Mon Sep 17 00:00:00 2001 From: Heather Kusmierz Date: Wed, 18 Sep 2024 14:02:03 -0400 Subject: [PATCH 18/23] refactor: lists references vs table if secondary print format set --- .../print_format/example_voucher/example_voucher.json | 6 +++--- check_run/www/print_check_run.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/check_run/check_run/print_format/example_voucher/example_voucher.json b/check_run/check_run/print_format/example_voucher/example_voucher.json index 62ac5fbf..0ecb8c13 100644 --- a/check_run/check_run/print_format/example_voucher/example_voucher.json +++ b/check_run/check_run/print_format/example_voucher/example_voucher.json @@ -2,7 +2,7 @@ "absolute_value": 0, "align_labels_right": 0, "creation": "2022-08-30 12:27:45.736571", - "css": "@font-face {\n font-family: 'EntezareZohoor2';\n src: url('fonts/EntezareZohoor2.eot'), url('fonts/EntezareZohoor2.ttf') format('truetype'), url('fonts/EntezareZohoor2.svg') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n.print-format {\n\tpadding: 0px;\n}\n@media screen {\n\t.print-format {\n\t\tpadding: 0in;\n\t}\n}\n#payer_check_window_block {\n top: 0.7cm; \n left: 0.7cm;\n height: 2.2cm;\n width: 8.8cm;\n position: absolute;\n \n}\n\n#payer_name_block{\n top: 0.1cm; \n left: 1cm;\n position: absolute;\n}\n\n#payee_address_window_block {\n top:4.9cm;\n left: 1.9cm;\n position: absolute; \n width: 8.8cm; \n height:2.2cm;\n}\n\n#address_block{\n top: 0.2cm; \n left: 0.2cm;\n position: relative;\n}\n\n\n\n#memo_block {\n top:7.1cm;\n left: 2cm;\n position: absolute; \n width: 6cm;\n}\n\n\n#check_section_1 {\n font-size: 15px;\n width:20.0cm;\n height:8.9cm;\n}\n\n#check_section_2 {\n height:8.9cm;\n}\n\n#check_section_3 {\n height:8.9cm;\n}\n\n\n#payer_name_block {\ntext-align: center; \n\n}\n\n#payer_name_block {\nwidth:4cm;\ntext-align: center; \nposition: absolute;\n}\n\n#bank_info_block {\nfont-size: 10px;\nwidth:2.5cm;\nheight:1.8cm;\ntext-align: center; \nposition: absolute;\n}\n\n\n#payment_in_words_block {\n font-size: 13px;\n}\n\n#memo_block {\nfont-size: 10px;\n}\n\n#signature_block {\ncolor: blue;\nfont-family: cursive;\n\n}\n#payment_amount_block{\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n\n}\n\n.payment_reference_block {\npadding-left:1cm; \npadding-right:1cm; \n}\n\n.payment_name_cell {\ntext-align: right; \n}\n\n#payment_amount_number_block {\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n}\n\n\n.right_stamp {\n top:2.8cm;\n left: 16.6cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.sig_stamp {\n top:6.3cm;\n left: 13.8cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.big_stamp {\n top:2.8cm;\n left: 6.1cm;\n width: 7cm;\n\theight: 3cm;\n\tfont-size: 80px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n\n.stamp {\n\tmargin: 0px;\n\toverflow: hidden;\n display: flex;\n justify-content: space-around;\n align-items: center;\n vertical-align: middle;\n text-align: center;\n\n flex-direction: row;\n color: #555;\n\tfont-weight: 700;\n\tborder: 0.25rem solid #555;\n\tdisplay: inline-block;\n\t\n\ttext-transform: uppercase;\n\tborder-radius: 1rem;\n\tfont-family: 'Courier';\n\t-webkit-mask-image: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/8399/grunge.png');\n -webkit-mask-size: 944px 604px;\n mix-blend-mode: multiply;\n}\n\n\n.is-nope {\n color: #ff5858;\n border: 0.5rem double #D23;\n \t-webkit-mask-position: 2rem 3rem;\n \t\n \n}\n\n.is-draft {\n\tcolor: #ff5858;\n\tborder: 1rem double #ff5858;\n font-size: 6rem;\n font-family: \"Open sans\", Helvetica, Arial, sans-serif;\n border-radius: 0;\n padding: 0.5rem;\n} ", + "css": "@font-face {\n font-family: 'EntezareZohoor2';\n src: url('fonts/EntezareZohoor2.eot'), url('fonts/EntezareZohoor2.ttf') format('truetype'), url('fonts/EntezareZohoor2.svg') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n.print-format {\n\tpadding: 0px;\n}\n@media screen {\n\t.print-format {\n\t\tpadding: 0in;\n\t}\n}\n#payer_check_window_block {\n top: 0.7cm; \n left: 0.7cm;\n height: 2.2cm;\n width: 8.8cm;\n position: absolute;\n \n}\n\n#payer_name_block{\n top: 0.1cm; \n left: 1cm;\n position: absolute;\n}\n\n#payee_address_window_block {\n top:4.9cm;\n left: 1.9cm;\n position: absolute; \n width: 8.8cm; \n height:2.2cm;\n}\n\n#address_block{\n top: 0.2cm; \n left: 0.2cm;\n position: relative;\n}\n\n\n\n#memo_block {\n top:7.1cm;\n left: 2cm;\n position: absolute; \n width: 6cm;\n}\n\n\n#check_section_1 {\n font-size: 15px;\n width:20.0cm;\n height:8.9cm;\n}\n\n#check_section_2 {\n height:8.9cm;\n}\n\n#check_section_3 {\n height:8.9cm;\n}\n\n\n#payer_name_block {\ntext-align: center; \n\n}\n\n#payer_name_block {\nwidth:4cm;\ntext-align: center; \nposition: absolute;\n}\n\n#bank_info_block {\nfont-size: 10px;\nwidth:2.5cm;\nheight:1.8cm;\ntext-align: center; \nposition: absolute;\n}\n\n\n#payment_in_words_block {\n font-size: 13px;\n}\n\n#memo_block {\nfont-size: 10px;\n}\n\n#signature_block {\ncolor: blue;\nfont-family: cursive;\n\n}\n#payment_amount_block{\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n\n}\n\n.payment_reference_block {\npadding-left:1cm; \npadding-right:1cm; \n}\n\n.payment_name_cell {\ntext-align: right; \n}\n\n#payment_amount_number_block {\n top:3.3cm;\n left: 16cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n}\n\n\n.right_stamp {\n top:2.8cm;\n left: 16.6cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.sig_stamp {\n top:6.3cm;\n left: 13.8cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.big_stamp {\n top:2.8cm;\n left: 6.1cm;\n width: 7cm;\n\theight: 3cm;\n\tfont-size: 80px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n\n.stamp {\n\tmargin: 0px;\n\toverflow: hidden;\n display: flex;\n justify-content: space-around;\n align-items: center;\n vertical-align: middle;\n text-align: center;\n\n flex-direction: row;\n color: #555;\n\tfont-weight: 700;\n\tborder: 0.25rem solid #555;\n\tdisplay: inline-block;\n\t\n\ttext-transform: uppercase;\n\tborder-radius: 1rem;\n\tfont-family: 'Courier';\n\t-webkit-mask-image: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/8399/grunge.png');\n -webkit-mask-size: 944px 604px;\n mix-blend-mode: multiply;\n}\n\n\n.is-nope {\n color: #ff5858;\n border: 0.5rem double #D23;\n \t-webkit-mask-position: 2rem 3rem;\n \t\n \n}\n\n.is-draft {\n\tcolor: #ff5858;\n\tborder: 1rem double #ff5858;\n font-size: 6rem;\n font-family: \"Open sans\", Helvetica, Arial, sans-serif;\n border-radius: 0;\n padding: 0.5rem;\n} ", "custom_format": 1, "default_print_language": "en", "disabled": 0, @@ -11,14 +11,14 @@ "doctype": "Print Format", "font": "Default", "font_size": 0, - "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account, \"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\", pluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\n
\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\t\tVOID DRAFT\n\t\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\t\tVOID\n\t\t\t\tVOID\n\t\t\t\tVOID\n\t\t\t{% endif %}\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }} \n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %} \n\t\t\t\t\n\t\t\t\t{% if money_number|length < 18 %}\n\t\t\t\t\t\t{% set money_number = ( money_number + '***************************')[:18] %}\n\t\t\t\t{% endif %}\n\t\t\t\t{{ money_number }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t{% if money_in_words|length < 90 %}\n\t\t\t\t\t\t{% set money_in_words = (money_in_words + '************************************************************************')[:100] %}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t{{ money_in_words }}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\n\n\t\t\t\n\t\t\t\tSIGNATURE\n\t\t\t\n\n\t\t\t\n\t\t\t\tCHECK#\n\t\t\t\n\n\t\t\t\n\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\n\n\t\t\t\n\t\t\t\tROUTING_NUMBER\n\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t\n\t\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{% endif %}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
Date Reference Amount Payment
{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"bill_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_date\")) or \"\"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"po_no\") or \"\" }}{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"posting_date\")) or \" \"}} {{ frappe.db.get_value(reference.reference_doctype, reference.reference_name, \"name\") or \" \" }} {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'), 2, 'USD')}} {{ frappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}
\n\t\t
\n\t
\n
\n
\n{% endif %}", + "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account,\n\"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\",\npluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\t.back_image {\n\t\tbackground-image: url({{crs_doc.background_image or ''}});\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: 876px 364px;\n\t\tmargin-top: 0px !important;\n\t\tmargin-bottom: 0px !important;\n\t}\n\n\n
\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\tVOID DRAFT\n\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\tVOID\n\t\t\tVOID\n\t\t\tVOID\n\t\t\t{% endif %}\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %}\n\n\t\t\t\t{% if money_number|length < 18 %} {% set money_number=( money_number + '***************************'\n\t\t\t\t\t)[:18] %} {% endif %} {{ money_number }} \n\n\t\t\t\t\t\n\t\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t\t{% if money_in_words|length < 90 %} {% set money_in_words=(money_in_words\n\t\t\t\t\t\t\t+ '************************************************************************' )[:100] %} {%\n\t\t\t\t\t\t\tendif %} {{ money_in_words }} \n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSIGNATURE\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tCHECK#\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tROUTING_NUMBER\n\t\t\t\t\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{% if crs_doc.secondary_print_format %}\n\t\t\t\t\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
\n\t\t\t\t
\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t{{ reference.reference_name }}\n\t\t\t\t\t{{ \", \" if not loop.last else \"\" }}\n\t\t\t\t{% endfor %}\n\t\t\t{% else %}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t Date \n\t\t\t\t\t Reference \n\t\t\t\t\t Amount \n\t\t\t\t\t Payment \n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\n\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'),\n\t\t\t\t\t\t2, 'USD')}}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}\n\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t\t\n\t\t\t{% endif %}\n\t\t
\n\t
\n
\n
\n{% endif %}", "idx": 0, "line_breaks": 0, "margin_bottom": 0.0, "margin_left": 0.0, "margin_right": 0.0, "margin_top": 0.0, - "modified": "2024-09-17 16:42:36.690553", + "modified": "2024-09-18 13:55:35.171902", "modified_by": "Administrator", "module": "Check Run", "name": "Example Voucher", diff --git a/check_run/www/print_check_run.py b/check_run/www/print_check_run.py index 6c4e1e9c..d03f6e8c 100644 --- a/check_run/www/print_check_run.py +++ b/check_run/www/print_check_run.py @@ -144,7 +144,7 @@ def get_check_run_format( trigger_print=trigger_print, settings=frappe.parse_json(settings), ) - html_code += "
" + # html_code += "
" html_.append(html_code) html.append(html_) except frappe.TemplateNotFoundError: From d43c2e808958f5dd108f2a09838f572449bf4468 Mon Sep 17 00:00:00 2001 From: Heather Kusmierz Date: Fri, 11 Oct 2024 11:51:56 -0400 Subject: [PATCH 19/23] feat: limit table to 6 references otherwise comma separate --- .../print_format/example_voucher/example_voucher.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/check_run/check_run/print_format/example_voucher/example_voucher.json b/check_run/check_run/print_format/example_voucher/example_voucher.json index 0ecb8c13..36de619e 100644 --- a/check_run/check_run/print_format/example_voucher/example_voucher.json +++ b/check_run/check_run/print_format/example_voucher/example_voucher.json @@ -11,14 +11,14 @@ "doctype": "Print Format", "font": "Default", "font_size": 0, - "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account,\n\"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\",\npluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\t.back_image {\n\t\tbackground-image: url({{crs_doc.background_image or ''}});\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: 876px 364px;\n\t\tmargin-top: 0px !important;\n\t\tmargin-bottom: 0px !important;\n\t}\n\n\n
\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\tVOID DRAFT\n\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\tVOID\n\t\t\tVOID\n\t\t\tVOID\n\t\t\t{% endif %}\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %}\n\n\t\t\t\t{% if money_number|length < 18 %} {% set money_number=( money_number + '***************************'\n\t\t\t\t\t)[:18] %} {% endif %} {{ money_number }} \n\n\t\t\t\t\t\n\t\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t\t{% if money_in_words|length < 90 %} {% set money_in_words=(money_in_words\n\t\t\t\t\t\t\t+ '************************************************************************' )[:100] %} {%\n\t\t\t\t\t\t\tendif %} {{ money_in_words }} \n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSIGNATURE\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tCHECK#\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tROUTING_NUMBER\n\t\t\t\t\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{% if crs_doc.secondary_print_format %}\n\t\t\t\t\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
\n\t\t\t\t
\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t{{ reference.reference_name }}\n\t\t\t\t\t{{ \", \" if not loop.last else \"\" }}\n\t\t\t\t{% endfor %}\n\t\t\t{% else %}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t Date \n\t\t\t\t\t Reference \n\t\t\t\t\t Amount \n\t\t\t\t\t Payment \n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\n\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'),\n\t\t\t\t\t\t2, 'USD')}}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}\n\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t\t\n\t\t\t{% endif %}\n\t\t
\n\t
\n
\n
\n{% endif %}", + "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account,\n\"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\",\npluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\t.back_image {\n\t\tbackground-image: url({{crs_doc.background_image or ''}});\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: 876px 364px;\n\t\tmargin-top: 0px !important;\n\t\tmargin-bottom: 0px !important;\n\t}\n\n\n
\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\tVOID DRAFT\n\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\tVOID\n\t\t\tVOID\n\t\t\tVOID\n\t\t\t{% endif %}\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %}\n\n\t\t\t\t{% if money_number|length < 18 %} {% set money_number=( money_number + '***************************'\n\t\t\t\t\t)[:18] %} {% endif %} {{ money_number }} \n\n\t\t\t\t\t\n\t\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t\t{% if money_in_words|length < 90 %} {% set money_in_words=(money_in_words\n\t\t\t\t\t\t\t+ '************************************************************************' )[:100] %} {%\n\t\t\t\t\t\t\tendif %} {{ money_in_words }} \n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSIGNATURE\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tCHECK#\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tROUTING_NUMBER\n\t\t\t\t\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{% if crs_doc.secondary_print_format or (not crs_doc.secondary_print_format and doc.references|length > 6) %}\n\t\t\t\t\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
\n\t\t\t\t
\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t{{ reference.reference_name }}\n\t\t\t\t\t{{ \", \" if not loop.last else \"\" }}\n\t\t\t\t{% endfor %}\n\t\t\t{% else %}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t Date \n\t\t\t\t\t Reference \n\t\t\t\t\t Amount \n\t\t\t\t\t Payment \n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\n\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'),\n\t\t\t\t\t\t2, 'USD')}}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}\n\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t\t\n\t\t\t{% endif %}\n\t\t
\n\t
\n
\n
\n{% endif %}", "idx": 0, "line_breaks": 0, "margin_bottom": 0.0, "margin_left": 0.0, "margin_right": 0.0, "margin_top": 0.0, - "modified": "2024-09-18 13:55:35.171902", + "modified": "2024-10-11 11:49:39.890146", "modified_by": "Administrator", "module": "Check Run", "name": "Example Voucher", From 781d4c6c712fabebc14b7a18db85a46e1f85d84f Mon Sep 17 00:00:00 2001 From: Heather Kusmierz Date: Fri, 11 Oct 2024 12:03:47 -0400 Subject: [PATCH 20/23] chore: update track overrides hash values --- check_run/overrides/payment_entry.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/check_run/overrides/payment_entry.py b/check_run/overrides/payment_entry.py index 4b4f0e4b..a8f3cb24 100644 --- a/check_run/overrides/payment_entry.py +++ b/check_run/overrides/payment_entry.py @@ -15,7 +15,7 @@ class CheckRunPaymentEntry(PaymentEntry): def make_gl_entries(self, cancel=0, adv_adj=0): """ - HASH: ff14d72a4620f55c4282e0cc29b6ffc08419334d + HASH: f6b91969b2d1f86b69ed86f611885f92ba36c077 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: make_gl_entries @@ -41,7 +41,7 @@ def make_gl_entries(self, cancel=0, adv_adj=0): def set_status(self): """ - HASH: ff14d72a4620f55c4282e0cc29b6ffc08419334d + HASH: f6b91969b2d1f86b69ed86f611885f92ba36c077 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: set_status @@ -60,7 +60,7 @@ def set_status(self): # Bug Fix def get_valid_reference_doctypes(self): """ - HASH: ff14d72a4620f55c4282e0cc29b6ffc08419334d + HASH: f6b91969b2d1f86b69ed86f611885f92ba36c077 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: get_valid_reference_doctypes @@ -86,7 +86,7 @@ def get_valid_reference_doctypes(self): def validate_allocated_amount(self): """ - HASH: ff14d72a4620f55c4282e0cc29b6ffc08419334d + HASH: f6b91969b2d1f86b69ed86f611885f92ba36c077 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: validate_allocated_amount @@ -126,7 +126,7 @@ def validate_allocated_amount(self): def validate_allocated_amount_with_latest_data(self): """ - HASH: ff14d72a4620f55c4282e0cc29b6ffc08419334d + HASH: f6b91969b2d1f86b69ed86f611885f92ba36c077 REPO: https://github.com/frappe/erpnext/ PATH: erpnext/accounts/doctype/payment_entry/payment_entry.py METHOD: validate_allocated_amount_with_latest_data From cac1bb918b0f68eaf4a718ed782ce96a9207a33d Mon Sep 17 00:00:00 2001 From: Rohan Bansal Date: Wed, 11 Jun 2025 15:22:48 +0530 Subject: [PATCH 21/23] fix: update example voucher format to include background image only in preview --- .../check_run_settings.json | 652 ++++--- .../example_voucher/example_voucher.json | 62 +- check_run/tests/setup.py | 1583 +++++++++-------- 3 files changed, 1147 insertions(+), 1150 deletions(-) diff --git a/check_run/check_run/doctype/check_run_settings/check_run_settings.json b/check_run/check_run/doctype/check_run_settings/check_run_settings.json index e4bd9324..a72eb7b6 100644 --- a/check_run/check_run/doctype/check_run_settings/check_run_settings.json +++ b/check_run/check_run/doctype/check_run_settings/check_run_settings.json @@ -1,331 +1,323 @@ { - "actions": [], - "autoname": "format:ACC-CRS-{bank_account}-{pay_to_account}", - "creation": "2022-08-22 14:43:43.533105", - "doctype": "DocType", - "editable_grid": 1, - "engine": "InnoDB", - "field_order": [ - "company", - "bank_account", - "column_break_3", - "pay_to_account", - "section_break_4", - "include_purchase_invoices", - "include_journal_entries", - "include_expense_claims", - "pre_check_overdue_items", - "allow_cancellation", - "cascade_cancellation", - "validate_unique_check_number", - "set_payment_entry_posting_date", - "column_break_9", - "number_of_invoices_per_voucher", - "split_by_address", - "automatically_release_on_hold_invoices", - "file_preview_threshold", - "allow_stand_alone_debit_notes", - "print_settings_section", - "print_preview", - "print_format", - "secondary_print_format", - "column_break_ctnqm", - "printable_mop_in_check_run", - "check_formats_with_background_image", - "background_image", - "default_modes_of_payment_section_section", - "purchase_invoice", - "journal_entry", - "column_break_21", - "expense_claim", - "ach_settings_section", - "ach_file_extension", - "ach_service_class_code", - "ach_standard_class_code", - "ach_description", - "column_break_27", - "immediate_origin", - "company_discretionary_data", - "custom_post_processing_hook" - ], - "fields": [ - { - "fieldname": "company", - "fieldtype": "Link", - "label": "Company", - "options": "Company" - }, - { - "fieldname": "bank_account", - "fieldtype": "Link", - "label": "Bank Account", - "options": "Bank Account" - }, - { - "fieldname": "section_break_4", - "fieldtype": "Section Break" - }, - { - "default": "1", - "fieldname": "include_purchase_invoices", - "fieldtype": "Check", - "label": "Include Purchase Invoices" - }, - { - "default": "1", - "fieldname": "include_journal_entries", - "fieldtype": "Check", - "label": "Include Journal Entries " - }, - { - "default": "1", - "fieldname": "include_expense_claims", - "fieldtype": "Check", - "label": "Include Expense Claims" - }, - { - "default": "0", - "description": "Payment Entries will be unlinked when Check Run is cancelled", - "fieldname": "allow_cancellation", - "fieldtype": "Check", - "label": "Allow Cancellation" - }, - { - "fieldname": "column_break_9", - "fieldtype": "Column Break" - }, - { - "default": "ach", - "description": "Common file extensions are 'ach', 'txt' and 'dat'. Your bank may require one of these.", - "fieldname": "ach_file_extension", - "fieldtype": "Data", - "label": "ACH File Extension" - }, - { - "default": "0", - "description": "Pre-Check all payables that have a due date greater than the Check Run's posting date", - "fieldname": "pre_check_overdue_items", - "fieldtype": "Check", - "label": "Pre-Check Overdue Items" - }, - { - "default": "0", - "description": "When a Check Run is cancelled, all Payment Entries linked to it will also be cancelled. This is not recommended.", - "fieldname": "cascade_cancellation", - "fieldtype": "Check", - "label": "Cascade Cancellation" - }, - { - "description": "Defaults to 5 if no value is provided", - "fieldname": "number_of_invoices_per_voucher", - "fieldtype": "Int", - "label": "Number of Invoices per Voucher", - "non_negative": 1 - }, - { - "fieldname": "column_break_3", - "fieldtype": "Column Break" - }, - { - "fieldname": "pay_to_account", - "fieldtype": "Link", - "label": "Payable Account", - "options": "Account" - }, - { - "fieldname": "ach_service_class_code", - "fieldtype": "Select", - "label": "ACH Service Class Code", - "options": "200\n220\n225" - }, - { - "description": "PPD is only supported Entry format at this time", - "fieldname": "ach_standard_class_code", - "fieldtype": "Select", - "label": "ACH Standard Class Code", - "options": "PPD" - }, - { - "fieldname": "ach_description", - "fieldtype": "Data", - "label": "ACH Description", - "length": 10 - }, - { - "fieldname": "print_format", - "fieldtype": "Link", - "label": "Print Format", - "options": "Print Format" - }, - { - "default": "0", - "fieldname": "split_by_address", - "fieldtype": "Check", - "label": "Split Invoices by Address" - }, - { - "fieldname": "ach_settings_section", - "fieldtype": "Section Break", - "label": "ACH Settings" - }, - { - "fieldname": "column_break_21", - "fieldtype": "Column Break" - }, - { - "default": "0", - "fieldname": "automatically_release_on_hold_invoices", - "fieldtype": "Check", - "label": "Automatically Release On Hold Invoices" - }, - { - "fieldname": "immediate_origin", - "fieldtype": "Data", - "label": "Immediate Origin" - }, - { - "fieldname": "company_discretionary_data", - "fieldtype": "Data", - "label": "Company Discretionary Data", - "length": 20 - }, - { - "fieldname": "custom_post_processing_hook", - "fieldtype": "Data", - "label": "Custom Post Processing Hook", - "read_only": 1 - }, - { - "fieldname": "default_modes_of_payment_section_section", - "fieldtype": "Section Break", - "label": "Default Modes of Payment Section" - }, - { - "fieldname": "purchase_invoice", - "fieldtype": "Link", - "label": "Purchase Invoice", - "options": "Mode of Payment" - }, - { - "fieldname": "journal_entry", - "fieldtype": "Link", - "label": "Journal Entry", - "options": "Mode of Payment" - }, - { - "fieldname": "expense_claim", - "fieldtype": "Link", - "label": "Expense Claim", - "options": "Mode of Payment" - }, - { - "fieldname": "column_break_27", - "fieldtype": "Column Break" - }, - { - "default": "1000", - "description": "File preview is enabled up to this number of transactions", - "fieldname": "file_preview_threshold", - "fieldtype": "Int", - "label": "File Preview Threshold" - }, - { - "default": "0", - "fieldname": "validate_unique_check_number", - "fieldtype": "Check", - "label": "Validate Unique Check Number" - }, - { - "fieldname": "secondary_print_format", - "fieldtype": "Link", - "label": "Secondary Print Format", - "options": "Print Format" - }, - { - "default": "0", - "fieldname": "check_formats_with_background_image", - "fieldtype": "Check", - "label": "Check formats with background image" - }, - { - "depends_on": "eval:doc.check_formats_with_background_image", - "fieldname": "background_image", - "fieldtype": "Attach", - "label": "Background Image" - }, - { - "default": "Automatically Render PDF After Submit", - "fieldname": "print_preview", - "fieldtype": "Select", - "label": "Print Preview", - "options": "Automatically Render PDF After Submit\nPrint from Print Preview" - }, - { - "fieldname": "print_settings_section", - "fieldtype": "Section Break", - "label": "Print Settings" - }, - { - "fieldname": "column_break_ctnqm", - "fieldtype": "Column Break" - }, - { - "fieldname": "printable_mop_in_check_run", - "fieldtype": "Table MultiSelect", - "label": "Printable Modes of Payment in Check Run", - "options": "Check Run Printable MOP" - }, - { - "default": "No", - "fieldname": "allow_stand_alone_debit_notes", - "fieldtype": "Select", - "label": "Allow stand-alone debit notes?", - "options": "Yes\nNo" - }, - { - "default": "Use Today's Date", - "fieldname": "set_payment_entry_posting_date", - "fieldtype": "Select", - "label": "Set Payment Entry Posting Date", - "options": "Use Today's Date\nUse Check Run's Posting Date" - } - ], - "links": [], - "modified": "2025-01-03 15:03:09.396159", - "modified_by": "Administrator", - "module": "Check Run", - "name": "Check Run Settings", - "naming_rule": "Expression", - "owner": "Administrator", - "permissions": [ - { - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "share": 1, - "write": 1 - }, - { - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "print": 1, - "read": 1, - "report": 1, - "role": "Accounts Manager", - "share": 1, - "write": 1 - } - ], - "quick_entry": 1, - "sort_field": "modified", - "sort_order": "DESC", - "states": [], - "track_changes": 1 -} + "actions": [], + "autoname": "format:ACC-CRS-{bank_account}-{pay_to_account}", + "creation": "2022-08-22 14:43:43.533105", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "company", + "bank_account", + "column_break_3", + "pay_to_account", + "section_break_4", + "include_purchase_invoices", + "include_journal_entries", + "include_expense_claims", + "pre_check_overdue_items", + "allow_cancellation", + "cascade_cancellation", + "validate_unique_check_number", + "set_payment_entry_posting_date", + "column_break_9", + "number_of_invoices_per_voucher", + "split_by_address", + "automatically_release_on_hold_invoices", + "file_preview_threshold", + "allow_stand_alone_debit_notes", + "print_settings_section", + "print_preview", + "print_format", + "secondary_print_format", + "column_break_ctnqm", + "printable_mop_in_check_run", + "background_image", + "default_modes_of_payment_section_section", + "purchase_invoice", + "journal_entry", + "column_break_21", + "expense_claim", + "ach_settings_section", + "ach_file_extension", + "ach_service_class_code", + "ach_standard_class_code", + "ach_description", + "column_break_27", + "immediate_origin", + "company_discretionary_data", + "custom_post_processing_hook" + ], + "fields": [ + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company" + }, + { + "fieldname": "bank_account", + "fieldtype": "Link", + "label": "Bank Account", + "options": "Bank Account" + }, + { + "fieldname": "section_break_4", + "fieldtype": "Section Break" + }, + { + "default": "1", + "fieldname": "include_purchase_invoices", + "fieldtype": "Check", + "label": "Include Purchase Invoices" + }, + { + "default": "1", + "fieldname": "include_journal_entries", + "fieldtype": "Check", + "label": "Include Journal Entries " + }, + { + "default": "1", + "fieldname": "include_expense_claims", + "fieldtype": "Check", + "label": "Include Expense Claims" + }, + { + "default": "0", + "description": "Payment Entries will be unlinked when Check Run is cancelled", + "fieldname": "allow_cancellation", + "fieldtype": "Check", + "label": "Allow Cancellation" + }, + { + "fieldname": "column_break_9", + "fieldtype": "Column Break" + }, + { + "default": "ach", + "description": "Common file extensions are 'ach', 'txt' and 'dat'. Your bank may require one of these.", + "fieldname": "ach_file_extension", + "fieldtype": "Data", + "label": "ACH File Extension" + }, + { + "default": "0", + "description": "Pre-Check all payables that have a due date greater than the Check Run's posting date", + "fieldname": "pre_check_overdue_items", + "fieldtype": "Check", + "label": "Pre-Check Overdue Items" + }, + { + "default": "0", + "description": "When a Check Run is cancelled, all Payment Entries linked to it will also be cancelled. This is not recommended.", + "fieldname": "cascade_cancellation", + "fieldtype": "Check", + "label": "Cascade Cancellation" + }, + { + "description": "Defaults to 5 if no value is provided", + "fieldname": "number_of_invoices_per_voucher", + "fieldtype": "Int", + "label": "Number of Invoices per Voucher", + "non_negative": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "pay_to_account", + "fieldtype": "Link", + "label": "Payable Account", + "options": "Account" + }, + { + "fieldname": "ach_service_class_code", + "fieldtype": "Select", + "label": "ACH Service Class Code", + "options": "200\n220\n225" + }, + { + "description": "PPD is only supported Entry format at this time", + "fieldname": "ach_standard_class_code", + "fieldtype": "Select", + "label": "ACH Standard Class Code", + "options": "PPD" + }, + { + "fieldname": "ach_description", + "fieldtype": "Data", + "label": "ACH Description", + "length": 10 + }, + { + "fieldname": "print_format", + "fieldtype": "Link", + "label": "Print Format", + "options": "Print Format" + }, + { + "default": "0", + "fieldname": "split_by_address", + "fieldtype": "Check", + "label": "Split Invoices by Address" + }, + { + "fieldname": "ach_settings_section", + "fieldtype": "Section Break", + "label": "ACH Settings" + }, + { + "fieldname": "column_break_21", + "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "automatically_release_on_hold_invoices", + "fieldtype": "Check", + "label": "Automatically Release On Hold Invoices" + }, + { + "fieldname": "immediate_origin", + "fieldtype": "Data", + "label": "Immediate Origin" + }, + { + "fieldname": "company_discretionary_data", + "fieldtype": "Data", + "label": "Company Discretionary Data", + "length": 20 + }, + { + "fieldname": "custom_post_processing_hook", + "fieldtype": "Data", + "label": "Custom Post Processing Hook", + "read_only": 1 + }, + { + "fieldname": "default_modes_of_payment_section_section", + "fieldtype": "Section Break", + "label": "Default Modes of Payment Section" + }, + { + "fieldname": "purchase_invoice", + "fieldtype": "Link", + "label": "Purchase Invoice", + "options": "Mode of Payment" + }, + { + "fieldname": "journal_entry", + "fieldtype": "Link", + "label": "Journal Entry", + "options": "Mode of Payment" + }, + { + "fieldname": "expense_claim", + "fieldtype": "Link", + "label": "Expense Claim", + "options": "Mode of Payment" + }, + { + "fieldname": "column_break_27", + "fieldtype": "Column Break" + }, + { + "default": "1000", + "description": "File preview is enabled up to this number of transactions", + "fieldname": "file_preview_threshold", + "fieldtype": "Int", + "label": "File Preview Threshold" + }, + { + "default": "0", + "fieldname": "validate_unique_check_number", + "fieldtype": "Check", + "label": "Validate Unique Check Number" + }, + { + "fieldname": "secondary_print_format", + "fieldtype": "Link", + "label": "Secondary Print Format", + "options": "Print Format" + }, + { + "fieldname": "background_image", + "fieldtype": "Attach", + "label": "Background Image" + }, + { + "default": "Automatically Render PDF After Submit", + "fieldname": "print_preview", + "fieldtype": "Select", + "label": "Print Preview", + "options": "Automatically Render PDF After Submit\nPrint from Print Preview" + }, + { + "fieldname": "print_settings_section", + "fieldtype": "Section Break", + "label": "Print Settings" + }, + { + "fieldname": "column_break_ctnqm", + "fieldtype": "Column Break" + }, + { + "fieldname": "printable_mop_in_check_run", + "fieldtype": "Table MultiSelect", + "label": "Printable Modes of Payment in Check Run", + "options": "Check Run Printable MOP" + }, + { + "default": "No", + "fieldname": "allow_stand_alone_debit_notes", + "fieldtype": "Select", + "label": "Allow stand-alone debit notes?", + "options": "Yes\nNo" + }, + { + "default": "Use Today's Date", + "fieldname": "set_payment_entry_posting_date", + "fieldtype": "Select", + "label": "Set Payment Entry Posting Date", + "options": "Use Today's Date\nUse Check Run's Posting Date" + } + ], + "links": [], + "modified": "2025-06-11 05:33:02.366589", + "modified_by": "Administrator", + "module": "Check Run", + "name": "Check Run Settings", + "naming_rule": "Expression", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} \ No newline at end of file diff --git a/check_run/check_run/print_format/example_voucher/example_voucher.json b/check_run/check_run/print_format/example_voucher/example_voucher.json index 36de619e..32694ac7 100644 --- a/check_run/check_run/print_format/example_voucher/example_voucher.json +++ b/check_run/check_run/print_format/example_voucher/example_voucher.json @@ -1,32 +1,32 @@ { - "absolute_value": 0, - "align_labels_right": 0, - "creation": "2022-08-30 12:27:45.736571", - "css": "@font-face {\n font-family: 'EntezareZohoor2';\n src: url('fonts/EntezareZohoor2.eot'), url('fonts/EntezareZohoor2.ttf') format('truetype'), url('fonts/EntezareZohoor2.svg') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n.print-format {\n\tpadding: 0px;\n}\n@media screen {\n\t.print-format {\n\t\tpadding: 0in;\n\t}\n}\n#payer_check_window_block {\n top: 0.7cm; \n left: 0.7cm;\n height: 2.2cm;\n width: 8.8cm;\n position: absolute;\n \n}\n\n#payer_name_block{\n top: 0.1cm; \n left: 1cm;\n position: absolute;\n}\n\n#payee_address_window_block {\n top:4.9cm;\n left: 1.9cm;\n position: absolute; \n width: 8.8cm; \n height:2.2cm;\n}\n\n#address_block{\n top: 0.2cm; \n left: 0.2cm;\n position: relative;\n}\n\n\n\n#memo_block {\n top:7.1cm;\n left: 2cm;\n position: absolute; \n width: 6cm;\n}\n\n\n#check_section_1 {\n font-size: 15px;\n width:20.0cm;\n height:8.9cm;\n}\n\n#check_section_2 {\n height:8.9cm;\n}\n\n#check_section_3 {\n height:8.9cm;\n}\n\n\n#payer_name_block {\ntext-align: center; \n\n}\n\n#payer_name_block {\nwidth:4cm;\ntext-align: center; \nposition: absolute;\n}\n\n#bank_info_block {\nfont-size: 10px;\nwidth:2.5cm;\nheight:1.8cm;\ntext-align: center; \nposition: absolute;\n}\n\n\n#payment_in_words_block {\n font-size: 13px;\n}\n\n#memo_block {\nfont-size: 10px;\n}\n\n#signature_block {\ncolor: blue;\nfont-family: cursive;\n\n}\n#payment_amount_block{\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n\n}\n\n.payment_reference_block {\npadding-left:1cm; \npadding-right:1cm; \n}\n\n.payment_name_cell {\ntext-align: right; \n}\n\n#payment_amount_number_block {\n top:3.3cm;\n left: 16cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n}\n\n\n.right_stamp {\n top:2.8cm;\n left: 16.6cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.sig_stamp {\n top:6.3cm;\n left: 13.8cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.big_stamp {\n top:2.8cm;\n left: 6.1cm;\n width: 7cm;\n\theight: 3cm;\n\tfont-size: 80px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n\n.stamp {\n\tmargin: 0px;\n\toverflow: hidden;\n display: flex;\n justify-content: space-around;\n align-items: center;\n vertical-align: middle;\n text-align: center;\n\n flex-direction: row;\n color: #555;\n\tfont-weight: 700;\n\tborder: 0.25rem solid #555;\n\tdisplay: inline-block;\n\t\n\ttext-transform: uppercase;\n\tborder-radius: 1rem;\n\tfont-family: 'Courier';\n\t-webkit-mask-image: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/8399/grunge.png');\n -webkit-mask-size: 944px 604px;\n mix-blend-mode: multiply;\n}\n\n\n.is-nope {\n color: #ff5858;\n border: 0.5rem double #D23;\n \t-webkit-mask-position: 2rem 3rem;\n \t\n \n}\n\n.is-draft {\n\tcolor: #ff5858;\n\tborder: 1rem double #ff5858;\n font-size: 6rem;\n font-family: \"Open sans\", Helvetica, Arial, sans-serif;\n border-radius: 0;\n padding: 0.5rem;\n} ", - "custom_format": 1, - "default_print_language": "en", - "disabled": 0, - "doc_type": "Payment Entry", - "docstatus": 0, - "doctype": "Print Format", - "font": "Default", - "font_size": 0, - "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account,\n\"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\",\npluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\t.back_image {\n\t\tbackground-image: url({{crs_doc.background_image or ''}});\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: 876px 364px;\n\t\tmargin-top: 0px !important;\n\t\tmargin-bottom: 0px !important;\n\t}\n\n\n
\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\tVOID DRAFT\n\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\tVOID\n\t\t\tVOID\n\t\t\tVOID\n\t\t\t{% endif %}\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %}\n\n\t\t\t\t{% if money_number|length < 18 %} {% set money_number=( money_number + '***************************'\n\t\t\t\t\t)[:18] %} {% endif %} {{ money_number }} \n\n\t\t\t\t\t\n\t\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t\t{% if money_in_words|length < 90 %} {% set money_in_words=(money_in_words\n\t\t\t\t\t\t\t+ '************************************************************************' )[:100] %} {%\n\t\t\t\t\t\t\tendif %} {{ money_in_words }} \n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSIGNATURE\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tCHECK#\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tROUTING_NUMBER\n\t\t\t\t\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{% if crs_doc.secondary_print_format or (not crs_doc.secondary_print_format and doc.references|length > 6) %}\n\t\t\t\t\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
\n\t\t\t\t
\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t{{ reference.reference_name }}\n\t\t\t\t\t{{ \", \" if not loop.last else \"\" }}\n\t\t\t\t{% endfor %}\n\t\t\t{% else %}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t Date \n\t\t\t\t\t Reference \n\t\t\t\t\t Amount \n\t\t\t\t\t Payment \n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\n\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'),\n\t\t\t\t\t\t2, 'USD')}}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}\n\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t\t\n\t\t\t{% endif %}\n\t\t
\n\t
\n
\n
\n{% endif %}", - "idx": 0, - "line_breaks": 0, - "margin_bottom": 0.0, - "margin_left": 0.0, - "margin_right": 0.0, - "margin_top": 0.0, - "modified": "2024-10-11 11:49:39.890146", - "modified_by": "Administrator", - "module": "Check Run", - "name": "Example Voucher", - "owner": "Administrator", - "print_format_builder": 0, - "print_format_builder_beta": 0, - "print_format_type": "Jinja", - "raw_printing": 0, - "show_section_headings": 0, - "standard": "Yes" -} + "absolute_value": 0, + "align_labels_right": 0, + "creation": "2022-08-30 12:27:45.736571", + "css": "@font-face {\n font-family: 'EntezareZohoor2';\n src: url('fonts/EntezareZohoor2.eot'), url('fonts/EntezareZohoor2.ttf') format('truetype'), url('fonts/EntezareZohoor2.svg') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n.print-format {\n\tpadding: 0px;\n}\n\n@media screen {\n\t.print-format {\n\t\tpadding: 0in;\n\t}\n}\n\n#payer_check_window_block {\n top: 0.7cm; \n left: 0.7cm;\n height: 2.2cm;\n width: 8.8cm;\n position: absolute;\n \n}\n\n#payer_name_block{\n top: 0.1cm; \n left: 1cm;\n position: absolute;\n}\n\n#payee_address_window_block {\n top:4.9cm;\n left: 1.9cm;\n position: absolute; \n width: 8.8cm; \n height:2.2cm;\n}\n\n#address_block{\n top: 0.2cm; \n left: 0.2cm;\n position: relative;\n}\n\n\n\n#memo_block {\n top:7.1cm;\n left: 2cm;\n position: absolute; \n width: 6cm;\n}\n\n\n#check_section_1 {\n font-size: 15px;\n width:20.0cm;\n height:8.9cm;\n}\n\n#check_section_2 {\n height:8.9cm;\n}\n\n#check_section_3 {\n height:8.9cm;\n}\n\n\n#payer_name_block {\ntext-align: center; \n\n}\n\n#payer_name_block {\nwidth:4cm;\ntext-align: center; \nposition: absolute;\n}\n\n#bank_info_block {\nfont-size: 10px;\nwidth:2.5cm;\nheight:1.8cm;\ntext-align: center; \nposition: absolute;\n}\n\n\n#payment_in_words_block {\n font-size: 13px;\n}\n\n#memo_block {\nfont-size: 10px;\n}\n\n#signature_block {\ncolor: blue;\nfont-family: cursive;\n\n}\n#payment_amount_block{\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n\n}\n\n.payment_reference_block {\npadding-left:1cm; \npadding-right:1cm; \n}\n\n.payment_name_cell {\ntext-align: right; \n}\n\n#payment_amount_number_block {\n top:3.3cm;\n left: 16cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n}\n\n\n.right_stamp {\n top:2.8cm;\n left: 16.6cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.sig_stamp {\n top:6.3cm;\n left: 13.8cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.big_stamp {\n top:2.8cm;\n left: 6.1cm;\n width: 7cm;\n\theight: 3cm;\n\tfont-size: 80px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n\n.stamp {\n\tmargin: 0px;\n\toverflow: hidden;\n display: flex;\n justify-content: space-around;\n align-items: center;\n vertical-align: middle;\n text-align: center;\n\n flex-direction: row;\n color: #555;\n\tfont-weight: 700;\n\tborder: 0.25rem solid #555;\n\tdisplay: inline-block;\n\t\n\ttext-transform: uppercase;\n\tborder-radius: 1rem;\n\tfont-family: 'Courier';\n\t-webkit-mask-image: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/8399/grunge.png');\n -webkit-mask-size: 944px 604px;\n mix-blend-mode: multiply;\n}\n\n\n.is-nope {\n color: #ff5858;\n border: 0.5rem double #D23;\n \t-webkit-mask-position: 2rem 3rem;\n \t\n \n}\n\n.is-draft {\n\tcolor: #ff5858;\n\tborder: 1rem double #ff5858;\n font-size: 6rem;\n font-family: \"Open sans\", Helvetica, Arial, sans-serif;\n border-radius: 0;\n padding: 0.5rem;\n} ", + "custom_format": 1, + "default_print_language": "en", + "disabled": 0, + "doc_type": "Payment Entry", + "docstatus": 0, + "doctype": "Print Format", + "font": "Default", + "font_size": 0, + "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account,\n\"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\",\npluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\t.print-format {\n\t\tbackground-image: url({{crs_doc.background_image or ''}});\n\t}\n\t@media print {\n .print-format {\n background-image: none;\n }\n }\n\n\n
\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\tVOID DRAFT\n\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\tVOID\n\t\t\tVOID\n\t\t\tVOID\n\t\t\t{% endif %}\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %}\n\n\t\t\t\t{% if money_number|length < 18 %} {% set money_number=( money_number + '***************************'\n\t\t\t\t\t)[:18] %} {% endif %} {{ money_number }} \n\n\t\t\t\t\t\n\t\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t\t{% if money_in_words|length < 90 %} {% set money_in_words=(money_in_words\n\t\t\t\t\t\t\t+ '************************************************************************' )[:100] %} {%\n\t\t\t\t\t\t\tendif %} {{ money_in_words }} \n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSIGNATURE\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tCHECK#\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tROUTING_NUMBER\n\t\t\t\t\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{% if crs_doc.secondary_print_format or (not crs_doc.secondary_print_format and doc.references|length > 6) %}\n\t\t\t\t\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
\n\t\t\t\t
\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t{{ reference.reference_name }}\n\t\t\t\t\t{{ \", \" if not loop.last else \"\" }}\n\t\t\t\t{% endfor %}\n\t\t\t{% else %}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t Date \n\t\t\t\t\t Reference \n\t\t\t\t\t Amount \n\t\t\t\t\t Payment \n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\n\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'),\n\t\t\t\t\t\t2, 'USD')}}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}\n\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t\t\n\t\t\t{% endif %}\n\t\t
\n\t
\n
\n
\n{% endif %}", + "idx": 0, + "line_breaks": 0, + "margin_bottom": 0.0, + "margin_left": 0.0, + "margin_right": 0.0, + "margin_top": 0.0, + "modified": "2025-06-11 05:47:59.025737", + "modified_by": "Administrator", + "module": "Check Run", + "name": "Example Voucher", + "owner": "Administrator", + "print_format_builder": 0, + "print_format_builder_beta": 0, + "print_format_type": "Jinja", + "raw_printing": 0, + "show_section_headings": 0, + "standard": "Yes" +} \ No newline at end of file diff --git a/check_run/tests/setup.py b/check_run/tests/setup.py index 5a069b58..22239df2 100644 --- a/check_run/tests/setup.py +++ b/check_run/tests/setup.py @@ -1,789 +1,794 @@ -import datetime -import types - -import frappe -from frappe.utils.data import add_days, flt -from frappe.desk.page.setup_wizard.setup_wizard import setup_complete -from erpnext.setup.utils import enable_all_roles_and_domains, set_defaults_for_tests -from erpnext.accounts.doctype.account.account import update_account_number -from erpnext.accounts.doctype.purchase_invoice.purchase_invoice import make_debit_note - - -from check_run.tests.fixtures import employees, suppliers, tax_authority - - -def before_test(): - frappe.clear_cache() - today = frappe.utils.getdate() - setup_complete( - { - "currency": "USD", - "full_name": "Administrator", - "company_name": "Chelsea Fruit Co", - "timezone": "America/New_York", - "company_abbr": "CFC", - "domains": ["Distribution"], - "country": "United States", - "fy_start_date": today.replace(month=1, day=1).isoformat(), - "fy_end_date": today.replace(month=12, day=31).isoformat(), - "language": "english", - "company_tagline": "Chelsea Fruit Co", - "email": "support@agritheory.dev", - "password": "admin", - "chart_of_accounts": "Standard with Numbers", - "bank_account": "Primary Checking", - } - ) - enable_all_roles_and_domains() - set_defaults_for_tests() - frappe.db.commit() - create_test_data() - for modu in frappe.get_all("Module Onboarding"): - frappe.db.set_value("Module Onboarding", modu, "is_complete", 1) - frappe.set_value("Website Settings", "Website Settings", "home_page", "login") - frappe.db.commit() - - -def create_test_data(): - today = frappe.utils.getdate() - setup_accounts() - settings = frappe._dict( - { - "day": today.replace(month=1, day=1), - "company": frappe.defaults.get_defaults().get("company"), - "company_account": frappe.get_value( - "Account", - { - "account_type": "Bank", - "company": frappe.defaults.get_defaults().get("company"), - "is_group": 0, - }, - ), - } - ) - create_bank_and_bank_account(settings) - create_payment_terms_templates(settings) - create_suppliers(settings) - create_items(settings) - create_invoices(settings) - config_expense_claim(settings) - create_employees(settings) - create_expense_claim(settings) - for month in range(1, 13): - settings.day = settings.day.replace(month=month) - create_payroll_journal_entry(settings) - create_manual_payment_entry(settings) - - -def create_bank_and_bank_account(settings): - if not frappe.db.exists("Mode of Payment", "ACH/EFT"): - mop = frappe.new_doc("Mode of Payment") - mop.mode_of_payment = "ACH/EFT" - mop.enabled = 1 - mop.type = "Electronic" - mop.append( - "accounts", {"company": settings.company, "default_account": settings.company_account} - ) - mop.save() - - wire_transfer = frappe.get_doc("Mode of Payment", "Wire Transfer") - wire_transfer.type = "General" - wire_transfer.append( - "accounts", {"company": settings.company, "default_account": settings.company_account} - ) - wire_transfer.save() - - credit_card = frappe.get_doc("Mode of Payment", "Credit Card") - credit_card.type = "General" - credit_card.append( - "accounts", {"company": settings.company, "default_account": settings.company_account} - ) - credit_card.save() - - bank_draft = frappe.get_doc("Mode of Payment", "Bank Draft") - bank_draft.type = "General" - bank_draft.append( - "accounts", {"company": settings.company, "default_account": settings.company_account} - ) - bank_draft.save() - - check_mop = frappe.get_doc("Mode of Payment", "Check") - check_mop.type = "Bank" - check_mop.append( - "accounts", {"company": settings.company, "default_account": settings.company_account} - ) - check_mop.save() - - if not frappe.db.exists("Bank", "Local Bank"): - bank = frappe.new_doc("Bank") - bank.bank_name = "Local Bank" - bank.aba_number = "07200091" - bank.save() - - if not frappe.db.exists("Bank Account", "Primary Checking - Local Bank"): - bank_account = frappe.new_doc("Bank Account") - bank_account.account_name = "Primary Checking" - bank_account.bank = bank.name - bank_account.is_default = 1 - bank_account.is_company_account = 1 - bank_account.company = settings.company - bank_account.account = settings.company_account - bank_account.check_number = 2500 - bank_account.company_ach_id = "1381655417" - bank_account.bank_account_no = "072000915" - bank_account.branch_code = "07200091" - bank_account.save() - - doc = frappe.new_doc("Journal Entry") - doc.posting_date = settings.day - doc.voucher_type = "Opening Entry" - doc.company = settings.company - opening_balance = 50000.00 - doc.append( - "accounts", {"account": settings.company_account, "debit_in_account_currency": opening_balance} - ) - retained_earnings = frappe.get_value( - "Account", {"account_name": "Retained Earnings", "company": settings.company} - ) - doc.append( - "accounts", {"account": retained_earnings, "credit_in_account_currency": opening_balance} - ) - doc.save() - doc.submit() - - -def setup_accounts(): - frappe.rename_doc( - "Account", "1000 - Application of Funds (Assets) - CFC", "1000 - Assets - CFC", force=True - ) - frappe.rename_doc( - "Account", "2000 - Source of Funds (Liabilities) - CFC", "2000 - Liabilities - CFC", force=True - ) - frappe.rename_doc( - "Account", "1310 - Debtors - CFC", "1310 - Accounts Receivable - CFC", force=True - ) - frappe.rename_doc( - "Account", "2110 - Creditors - CFC", "2110 - Accounts Payable - CFC", force=True - ) - update_account_number("1110 - Cash - CFC", "Petty Cash", account_number="1110") - update_account_number("Primary Checking - CFC", "Primary Checking", account_number="1201") - - -def create_payment_terms_templates(settings): - if not frappe.db.exists("Payment Terms Template", "Net 30"): - pt = frappe.new_doc("Payment Term") - pt.payment_term_name = "Net 30" - pt.due_date_based_on = "Day(s) after invoice date" - pt.invoice_portion = 100 - pt.credit_days = 30 - pt.save() - doc = frappe.new_doc("Payment Terms Template") - doc.template_name = pt.name - doc.append( - "terms", - { - "payment_term": pt.name, - "invoice_portion": pt.invoice_portion, - "due_date_based_on": pt.due_date_based_on, - "credit_days": pt.credit_days, - }, - ) - doc.save() - if not frappe.db.exists("Payment Terms Template", "Due on Receipt"): - pt = frappe.new_doc("Payment Term") - pt.payment_term_name = "Due on Receipt" - pt.due_date_based_on = "Day(s) after invoice date" - pt.invoice_portion = 100 - pt.credit_days = 0 - pt.save() - doc = frappe.new_doc("Payment Terms Template") - doc.template_name = pt.name - doc.append( - "terms", - { - "payment_term": pt.name, - "invoice_portion": pt.invoice_portion, - "due_date_based_on": pt.due_date_based_on, - "credit_days": pt.credit_days, - }, - ) - doc.save() - if not frappe.db.exists("Payment Terms Template", "Net 14"): - pt = frappe.new_doc("Payment Term") - pt.payment_term_name = "Net 14" - pt.due_date_based_on = "Day(s) after invoice date" - pt.invoice_portion = 100 - pt.credit_days = 14 - pt.save() - doc = frappe.new_doc("Payment Terms Template") - doc.template_name = pt.name - doc.append( - "terms", - { - "payment_term": pt.name, - "invoice_portion": pt.invoice_portion, - "due_date_based_on": pt.due_date_based_on, - "credit_days": pt.credit_days, - }, - ) - doc.save() - - if not frappe.db.exists("Payment Terms Template", "18 Month Rental Agreement"): - doc = frappe.new_doc("Payment Terms Template") - doc.template_name = "18 Month Rental Agreement" - for month in range(0, 18): - pt = frappe.new_doc("Payment Term") - pt.payment_term_name = f"Rental Installment {month+1}" - pt.due_date_based_on = "Month(s) after the end of the invoice month" - pt.invoice_portion = 5.555555555555556 - pt.credit_months = month - pt.save() - doc.append( - "terms", - { - "payment_term": pt.name, - "invoice_portion": pt.invoice_portion, - "due_date_based_on": pt.due_date_based_on, - "credit_months": pt.credit_months, - }, - ) - doc.save() - - -def create_suppliers(settings): - addresses = frappe._dict({}) - for supplier in suppliers + tax_authority: - biz = frappe.new_doc("Supplier") - biz.supplier_name = supplier[0] - biz.supplier_group = "Services" - biz.country = "United States" - biz.supplier_default_mode_of_payment = supplier[2] - if biz.supplier_default_mode_of_payment == "ACH/EFT": - biz.bank = "Local Bank" - biz.bank_account = "123456789" - biz.currency = "USD" - biz.default_price_list = "Standard Buying" - biz.payment_terms = supplier[4] - if supplier[0] == "Tireless Equipment Rental, Inc": - biz.number_of_invoices_per_check_voucher = 1 - biz.save() - - addr = frappe.new_doc("Address") - addr.address_title = f"{supplier[0]} - {supplier[5]['city']}" - addr.address_type = "Billing" - addr.address_line1 = supplier[5]["address_line1"] - addr.city = supplier[5]["city"] - addr.state = supplier[5]["state"] - addr.country = supplier[5]["country"] - addr.pincode = supplier[5]["pincode"] - addr.append("links", {"link_doctype": "Supplier", "link_name": supplier[0]}) - addr.save() - - addr = frappe.new_doc("Address") - addr.address_type = "Billing" - addr.address_title = "HIJ Telecom - Burlingame" - addr.address_line1 = "167 Auto Terrace" - addr.city = "Burlingame" - addr.state = "ME" - addr.country = "United States" - addr.pincode = "79749" - addr.append("links", {"link_doctype": "Supplier", "link_name": "HIJ Telecom, Inc"}) - addr.save() - - -def create_items(settings): - for supplier in suppliers + tax_authority: - item = frappe.new_doc("Item") - item.item_code = item.item_name = supplier[1] - item.item_group = "Services" - item.stock_uom = "Nos" - item.maintain_stock = 0 - item.is_sales_item, item.is_sub_contracted_item, item.include_item_in_manufacturing = 0, 0, 0 - item.grant_commission = 0 - item.is_purchase_item = 1 - item.append("supplier_items", {"supplier": supplier[0]}) - item.append( - "item_defaults", - {"company": settings.company, "default_warehouse": "", "default_supplier": supplier[0]}, - ) - item.save() - - -def create_invoices(settings): - pi = frappe.new_doc("Purchase Invoice") - pi.company = settings.company - pi.set_posting_time = 1 - pi.bill_date = pi.posting_date = settings.day - pi.supplier = "Tireless Equipment Rental, Inc" - pi.append( - "items", - { - "item_code": "Equipment Rental", - "rate": 30000.00, - "qty": 1, - }, - ) - pi.payment_terms = "18 Month Rental Agreement" - pi.save() - pi.submit() - - # first month - already paid - for supplier in suppliers: - if supplier[0].startswith("Tireless"): - continue - pi = frappe.new_doc("Purchase Invoice") - pi.company = settings.company - pi.set_posting_time = 1 - pi.bill_date = pi.posting_date = settings.day - pi.supplier = supplier[0] - pi.append( - "items", - { - "item_code": supplier[1], - "rate": supplier[3], - "qty": 1, - }, - ) - pi.save() - pi.submit() - # two electric meters / test invoice aggregation - pi = frappe.new_doc("Purchase Invoice") - pi.company = settings.company - pi.set_posting_time = 1 - pi.bill_date = pi.posting_date = settings.day - pi.supplier = suppliers[0][0] - pi.append( - "items", - { - "item_code": suppliers[0][1], - "rate": 75.00, - "qty": 1, - }, - ) - pi.save() - pi.submit() - - # two phone bills / test address splitting - pi = frappe.new_doc("Purchase Invoice") - pi.company = settings.company - pi.set_posting_time = 1 - pi.bill_date = pi.posting_date = settings.day - pi.supplier = suppliers[4][0] - pi.append( - "items", - { - "item_code": suppliers[4][1], - "rate": 122.50, - "qty": 1, - }, - ) - pi.supplier_address = "HIJ Telecom - Burlingame-Billing" - pi.save() - pi.submit() - - # second month - unpaid - next_day = settings.day + datetime.timedelta(days=31) - - for supplier in suppliers: - if supplier[0].startswith("Tireless"): - continue - pi = frappe.new_doc("Purchase Invoice") - pi.company = settings.company - pi.set_posting_time = 1 - pi.bill_date = pi.posting_date = next_day - pi.supplier = supplier[0] - pi.append( - "items", - { - "item_code": supplier[1], - "rate": supplier[3], - "qty": 1, - }, - ) - if supplier[0].startswith("Sphere"): - pi.payment_terms_template = None - pi.save() - pi.submit() - # two electric meters / test invoice aggregation - pi = frappe.new_doc("Purchase Invoice") - pi.company = settings.company - pi.set_posting_time = 1 - pi.bill_date = pi.posting_date = next_day - pi.supplier = suppliers[0][0] - pi.append( - "items", - { - "item_code": suppliers[0][1], - "rate": 75.00, - "qty": 1, - }, - ) - pi.save() - pi.submit() - - # two phone bills / test address splitting - pi = frappe.new_doc("Purchase Invoice") - pi.company = settings.company - pi.set_posting_time = 1 - pi.bill_date = pi.posting_date = settings.day - pi.supplier = suppliers[4][0] - pi.append( - "items", - { - "item_code": suppliers[4][1], - "rate": 122.50, - "qty": 1, - }, - ) - pi.supplier_address = "HIJ Telecom - Burlingame-Billing" - pi.save() - pi.submit() - - # test on-hold invoice - pi = frappe.new_doc("Purchase Invoice") - pi.company = settings.company - pi.set_posting_time = 1 - pi.bill_date = pi.posting_date = settings.day - pi.supplier = suppliers[1][0] - pi.append( - "items", - { - "item_code": suppliers[1][1], - "rate": 4000.00, - "qty": 1, - }, - ) - pi.on_hold = 1 - pi.release_date = settings.day + datetime.timedelta(days=60) - pi.hold_comment = "Testing for on hold invoices" - pi.validate_release_date = types.MethodType( - validate_release_date, pi - ) # allow date to be backdated for testing - pi.save() - pi.submit() - - spi = frappe.get_value( - "Purchase Invoice", - {"supplier": "Cooperative Ag Finance"}, - order_by="posting_date DESC", - ) - rpi = make_debit_note(spi) - rpi.return_against = ( - None # this approach isn't best practice but it allows us to see a negative PI in the check run - ) - rpi.items[0].rate = 500 - rpi.save() - rpi.submit() - - -def validate_release_date(self): - pass - - -def config_expense_claim(settings): - try: - travel_expense_account = frappe.get_value( - "Account", {"account_name": "Travel Expenses", "company": settings.company} - ) - travel = frappe.get_doc("Expense Claim Type", "Travel") - travel.append( - "accounts", {"company": settings.company, "default_account": travel_expense_account} - ) - travel.save() - except Exception as e: - pass - - payroll_payable = frappe.db.get_value( - "Account", {"account_name": "Payroll Payable", "company": settings.company} - ) - if payroll_payable: - frappe.db.set_value("Account", payroll_payable, "account_type", "Payable") - - if frappe.db.exists("Account", {"account_name": "Payroll Taxes", "company": settings.company}): - return - pta = frappe.new_doc("Account") - pta.account_name = "Payroll Taxes" - pta.account_number = ( - max( - int(a.account_number or 1) - for a in frappe.get_all("Account", {"is_group": 0}, ["account_number"]) - ) - + 1 - ) - pta.account_type = "Expense Account" - pta.company = settings.company - pta.parent_account = frappe.get_value( - "Account", {"account_name": "Indirect Expenses", "company": settings.company} - ) - pta.save() - - -def create_employees(settings): - for employee_number, employee in enumerate(employees, start=10): - emp = frappe.new_doc("Employee") - emp.first_name = employee[0].split(" ")[0] - emp.last_name = employee[0].split(" ")[1] - emp.employment_type = "Full-time" - emp.company = settings.company - emp.status = "Active" - emp.gender = employee[1] - emp.date_of_birth = employee[2] - emp.date_of_joining = employee[3] - emp.mode_of_payment = "Check" if employee_number % 3 == 0 else "ACH/EFT" - emp.mode_of_payment = "Cash" if employee_number == 10 else emp.mode_of_payment - emp.mode_of_payment = None if employee_number % 4 == 0 else emp.mode_of_payment - emp.expense_approver = "Administrator" - if emp.mode_of_payment == "ACH/EFT": - emp.bank = "Local Bank" - emp.bank_account = f"{employee_number}12345" - emp.save() - - -def create_expense_claim(settings): - cost_center = frappe.get_value("Company", settings.company, "cost_center") - payable_acct = frappe.get_value("Company", settings.company, "default_payable_account") - # first month - paid - ec = frappe.new_doc("Expense Claim") - ec.employee = "HR-EMP-00002" - ec.expense_approver = "Administrator" - ec.approval_status = "Approved" - ec.append( - "expenses", - { - "expense_date": settings.day, - "expense_type": "Travel", - "amount": 50.0, - "sanctioned_amount": 50.0, - "cost_center": cost_center, - }, - ) - ec.posting_date = settings.day - ec.company = settings.company - ec.payable_account = payable_acct - ec.save() - ec.submit() - # second month - open - next_day = settings.day + datetime.timedelta(days=31) - - ec = frappe.new_doc("Expense Claim") - ec.employee = "HR-EMP-00002" - ec.expense_approver = "Administrator" - ec.approval_status = "Approved" - ec.append( - "expenses", - { - "expense_date": next_day, - "expense_type": "Travel", - "amount": 50.0, - "sanctioned_amount": 50.0, - "cost_center": cost_center, - }, - ) - ec.posting_date = next_day - ec.company = settings.company - ec.payable_account = payable_acct - ec.save() - ec.submit() - # two expense claims to test aggregation - ec = frappe.new_doc("Expense Claim") - ec.employee = "HR-EMP-00002" - ec.expense_approver = "Administrator" - ec.approval_status = "Approved" - ec.append( - "expenses", - { - "expense_date": next_day, - "expense_type": "Travel", - "amount": 50.0, - "sanctioned_amount": 50.0, - "cost_center": cost_center, - }, - ) - ec.posting_date = next_day - ec.company = settings.company - ec.payable_account = payable_acct - ec.save() - ec.submit() - - -def create_payroll_journal_entry(settings): - emps = frappe.get_list("Employee", {"company": settings.company}) - cost_center = frappe.get_value("Company", settings.company, "cost_center") - payroll_account = frappe.get_value( - "Account", {"company": settings.company, "account_name": "Payroll Payable", "is_group": 0} - ) - salary_account = frappe.get_value( - "Account", {"company": settings.company, "account_name": "Salary", "is_group": 0} - ) - payroll_expense = frappe.get_value( - "Account", {"company": settings.company, "account_name": "Payroll Taxes", "is_group": 0} - ) - payable_account = frappe.get_value("Company", settings.company, "default_payable_account") - je = frappe.new_doc("Journal Entry") - je.entry_type = "Journal Entry" - je.company = settings.company - je.posting_date = settings.day - je.due_date = settings.day - total_payroll = 0.0 - for idx, emp in enumerate(emps): - employee_name = frappe.get_value( - "Employee", {"company": settings.company, "name": emp.name}, "employee_name" - ) - je.append( - "accounts", - { - "account": payroll_account, - "bank_account": frappe.get_value("Bank Account", {"account": settings.company_account}), - "party_type": "Employee", - "party": emp.name, - "cost_center": cost_center, - "account_currency": "USD", - "credit": 1000.00, - "credit_in_account_currency": 1000.00, - "debit": 0.00, - "debit_in_account_currency": 0.00, - "user_remark": employee_name + " Paycheck", - "idx": idx + 2, - }, - ) - total_payroll += 1000.00 - je.append( - "accounts", - { - "account": salary_account, - "cost_center": cost_center, - "account_currency": "USD", - "credit": 0.00, - "credit_in_account_currency": 0.00, - "debit": total_payroll, - "debit_in_account_currency": total_payroll, - "idx": 1, - }, - ) - je.append( - "accounts", - { - "account": payroll_expense, - "cost_center": cost_center, - "account_currency": "USD", - "credit": 0.00, - "credit_in_account_currency": 0.00, - "debit": total_payroll * 0.15, - "debit_in_account_currency": total_payroll * 0.15, - }, - ) - je.append( - "accounts", - { - "account": payable_account, - "cost_center": cost_center, - "party_type": "Supplier", - "party": tax_authority[0][0], - "account_currency": "USD", - "credit": total_payroll * 0.15, - "credit_in_account_currency": total_payroll * 0.15, - "debit": 0.00, - "debit_in_account_currency": 0.0, - }, - ) - je.save() - je.submit() - - -""" -Set in check run settings -check_run.test_setup.example_post_processing_hook -""" - - -def example_post_processing_hook(check_run, settings, nacha) -> str: - # check_run: "CheckRun", settings: "CheckRun Settings", nacha: "NACHAFile" # noqa: F722 - b = "$$AAPAACH0094[TEST[NL$$\n" - a = str(nacha) - return b + a - - -def create_extra_invoices(settings): - day = settings.day - for next_day in range(0, 365): - _day = settings.day + datetime.timedelta(days=next_day) - print(_day) - if _day.weekday in (5, 6): - continue - - for supplier in suppliers: - if supplier[0].startswith("Tireless"): - continue - if frappe.get_value("Purchase Invoice", {"posting_date": _day, "supplier": supplier[0]}): - continue - pi = frappe.new_doc("Purchase Invoice") - pi.company = settings.company - pi.set_posting_time = 1 - pi.bill_date = pi.posting_date = _day - pi.supplier = supplier[0] - pi.append( - "items", - { - "item_code": supplier[1], - "rate": supplier[3], - "qty": 1, - }, - ) - pi.save() - pi.submit() - - -def create_manual_payment_entry(settings): - frappe.db.commit() - party = "Cooperative Ag Finance" - to_pay = 1000.00 - docs = frappe.get_all( - "Purchase Invoice", - {"supplier": party, "grand_total": [">=", to_pay]}, - order_by="name ASC", - limit=1, - ) - pi = frappe.get_doc("Purchase Invoice", docs[0]) - # pi = frappe.get_doc( - # "Purchase Invoice", - # {"supplier": party, "grand_total": [">=", 5000], "posting_date": ["<=", settings.day]} - # ) # posting date filter not working in runtime - pe = frappe.new_doc("Payment Entry") - pe.payment_type = "Pay" - pe.posting_date = add_days(settings.day, 2) - pe.mode_of_payment = "Bank Draft" - pe.company = settings.company - pe.bank_account = frappe.get_value("Bank Account", {"account": settings.company_account}) - pe.paid_from = settings.company_account - pe.paid_to = frappe.get_value( - "Account", {"company": settings.company, "name": ["like", "%Accounts Payable%"]} - ) - pe.paid_to_account_currency = frappe.get_value( - "Account", settings.company_account, "account_currency" - ) - pe.paid_from_account_currency = pe.paid_to_account_currency - pe.reference_no = "via Bank Draft " + str(pe.posting_date) - pe.reference_date = pe.posting_date - pe.party_type = "Supplier" - pe.party = party - pe.paid_amount = to_pay - - pe.append( - "references", - { - "reference_doctype": pi.doctype, - "reference_name": pi.name, - "due_date": pi.due_date, - "total_amount": flt(pi.grand_total), - "outstanding_amount": flt(pi.outstanding_amount), - "allocated_amount": to_pay, - }, - ) - pe.received_amount = to_pay - pe.base_received_amount = to_pay - pe.paid_amount = to_pay - pe.base_paid_amount = to_pay - pe.base_grand_total = to_pay - - pe.save() - pe.submit() +import datetime +import types + +import frappe +from frappe.utils.data import add_days, flt +from frappe.desk.page.setup_wizard.setup_wizard import setup_complete +from erpnext.setup.utils import enable_all_roles_and_domains, set_defaults_for_tests +from erpnext.accounts.doctype.account.account import update_account_number +from erpnext.accounts.doctype.purchase_invoice.purchase_invoice import make_debit_note + + +from check_run.tests.fixtures import employees, suppliers, tax_authority + + +def before_test(): + # avoid call to _ensure_idle_system in ERPNext's account controller + frappe.flags.in_test = True + + frappe.clear_cache() + today = frappe.utils.getdate() + setup_complete( + { + "currency": "USD", + "full_name": "Administrator", + "company_name": "Chelsea Fruit Co", + "timezone": "America/New_York", + "company_abbr": "CFC", + "domains": ["Distribution"], + "country": "United States", + "fy_start_date": today.replace(month=1, day=1).isoformat(), + "fy_end_date": today.replace(month=12, day=31).isoformat(), + "language": "english", + "company_tagline": "Chelsea Fruit Co", + "email": "support@agritheory.dev", + "password": "admin", + "chart_of_accounts": "Standard with Numbers", + "bank_account": "Primary Checking", + } + ) + enable_all_roles_and_domains() + set_defaults_for_tests() + frappe.db.commit() + create_test_data() + for modu in frappe.get_all("Module Onboarding"): + frappe.db.set_value("Module Onboarding", modu, "is_complete", 1) + frappe.set_value("Website Settings", "Website Settings", "home_page", "login") + frappe.db.commit() + + frappe.flags.in_test = False + + +def create_test_data(): + today = frappe.utils.getdate() + setup_accounts() + settings = frappe._dict( + { + "day": today.replace(month=1, day=1), + "company": frappe.defaults.get_defaults().get("company"), + "company_account": frappe.get_value( + "Account", + { + "account_type": "Bank", + "company": frappe.defaults.get_defaults().get("company"), + "is_group": 0, + }, + ), + } + ) + create_bank_and_bank_account(settings) + create_payment_terms_templates(settings) + create_suppliers(settings) + create_items(settings) + create_invoices(settings) + config_expense_claim(settings) + create_employees(settings) + create_expense_claim(settings) + for month in range(1, 13): + settings.day = settings.day.replace(month=month) + create_payroll_journal_entry(settings) + create_manual_payment_entry(settings) + + +def create_bank_and_bank_account(settings): + if not frappe.db.exists("Mode of Payment", "ACH/EFT"): + mop = frappe.new_doc("Mode of Payment") + mop.mode_of_payment = "ACH/EFT" + mop.enabled = 1 + mop.type = "Electronic" + mop.append( + "accounts", {"company": settings.company, "default_account": settings.company_account} + ) + mop.save() + + wire_transfer = frappe.get_doc("Mode of Payment", "Wire Transfer") + wire_transfer.type = "General" + wire_transfer.append( + "accounts", {"company": settings.company, "default_account": settings.company_account} + ) + wire_transfer.save() + + credit_card = frappe.get_doc("Mode of Payment", "Credit Card") + credit_card.type = "General" + credit_card.append( + "accounts", {"company": settings.company, "default_account": settings.company_account} + ) + credit_card.save() + + bank_draft = frappe.get_doc("Mode of Payment", "Bank Draft") + bank_draft.type = "General" + bank_draft.append( + "accounts", {"company": settings.company, "default_account": settings.company_account} + ) + bank_draft.save() + + check_mop = frappe.get_doc("Mode of Payment", "Check") + check_mop.type = "Bank" + check_mop.append( + "accounts", {"company": settings.company, "default_account": settings.company_account} + ) + check_mop.save() + + if not frappe.db.exists("Bank", "Local Bank"): + bank = frappe.new_doc("Bank") + bank.bank_name = "Local Bank" + bank.aba_number = "07200091" + bank.save() + + if not frappe.db.exists("Bank Account", "Primary Checking - Local Bank"): + bank_account = frappe.new_doc("Bank Account") + bank_account.account_name = "Primary Checking" + bank_account.bank = bank.name + bank_account.is_default = 1 + bank_account.is_company_account = 1 + bank_account.company = settings.company + bank_account.account = settings.company_account + bank_account.check_number = 2500 + bank_account.company_ach_id = "1381655417" + bank_account.bank_account_no = "072000915" + bank_account.branch_code = "07200091" + bank_account.save() + + doc = frappe.new_doc("Journal Entry") + doc.posting_date = settings.day + doc.voucher_type = "Opening Entry" + doc.company = settings.company + opening_balance = 50000.00 + doc.append( + "accounts", {"account": settings.company_account, "debit_in_account_currency": opening_balance} + ) + retained_earnings = frappe.get_value( + "Account", {"account_name": "Retained Earnings", "company": settings.company} + ) + doc.append( + "accounts", {"account": retained_earnings, "credit_in_account_currency": opening_balance} + ) + doc.save() + doc.submit() + + +def setup_accounts(): + frappe.rename_doc( + "Account", "1000 - Application of Funds (Assets) - CFC", "1000 - Assets - CFC", force=True + ) + frappe.rename_doc( + "Account", "2000 - Source of Funds (Liabilities) - CFC", "2000 - Liabilities - CFC", force=True + ) + frappe.rename_doc( + "Account", "1310 - Debtors - CFC", "1310 - Accounts Receivable - CFC", force=True + ) + frappe.rename_doc( + "Account", "2110 - Creditors - CFC", "2110 - Accounts Payable - CFC", force=True + ) + update_account_number("1110 - Cash - CFC", "Petty Cash", account_number="1110") + update_account_number("Primary Checking - CFC", "Primary Checking", account_number="1201") + + +def create_payment_terms_templates(settings): + if not frappe.db.exists("Payment Terms Template", "Net 30"): + pt = frappe.new_doc("Payment Term") + pt.payment_term_name = "Net 30" + pt.due_date_based_on = "Day(s) after invoice date" + pt.invoice_portion = 100 + pt.credit_days = 30 + pt.save() + doc = frappe.new_doc("Payment Terms Template") + doc.template_name = pt.name + doc.append( + "terms", + { + "payment_term": pt.name, + "invoice_portion": pt.invoice_portion, + "due_date_based_on": pt.due_date_based_on, + "credit_days": pt.credit_days, + }, + ) + doc.save() + if not frappe.db.exists("Payment Terms Template", "Due on Receipt"): + pt = frappe.new_doc("Payment Term") + pt.payment_term_name = "Due on Receipt" + pt.due_date_based_on = "Day(s) after invoice date" + pt.invoice_portion = 100 + pt.credit_days = 0 + pt.save() + doc = frappe.new_doc("Payment Terms Template") + doc.template_name = pt.name + doc.append( + "terms", + { + "payment_term": pt.name, + "invoice_portion": pt.invoice_portion, + "due_date_based_on": pt.due_date_based_on, + "credit_days": pt.credit_days, + }, + ) + doc.save() + if not frappe.db.exists("Payment Terms Template", "Net 14"): + pt = frappe.new_doc("Payment Term") + pt.payment_term_name = "Net 14" + pt.due_date_based_on = "Day(s) after invoice date" + pt.invoice_portion = 100 + pt.credit_days = 14 + pt.save() + doc = frappe.new_doc("Payment Terms Template") + doc.template_name = pt.name + doc.append( + "terms", + { + "payment_term": pt.name, + "invoice_portion": pt.invoice_portion, + "due_date_based_on": pt.due_date_based_on, + "credit_days": pt.credit_days, + }, + ) + doc.save() + + if not frappe.db.exists("Payment Terms Template", "18 Month Rental Agreement"): + doc = frappe.new_doc("Payment Terms Template") + doc.template_name = "18 Month Rental Agreement" + for month in range(0, 18): + pt = frappe.new_doc("Payment Term") + pt.payment_term_name = f"Rental Installment {month+1}" + pt.due_date_based_on = "Month(s) after the end of the invoice month" + pt.invoice_portion = 5.555555555555556 + pt.credit_months = month + pt.save() + doc.append( + "terms", + { + "payment_term": pt.name, + "invoice_portion": pt.invoice_portion, + "due_date_based_on": pt.due_date_based_on, + "credit_months": pt.credit_months, + }, + ) + doc.save() + + +def create_suppliers(settings): + addresses = frappe._dict({}) + for supplier in suppliers + tax_authority: + biz = frappe.new_doc("Supplier") + biz.supplier_name = supplier[0] + biz.supplier_group = "Services" + biz.country = "United States" + biz.supplier_default_mode_of_payment = supplier[2] + if biz.supplier_default_mode_of_payment == "ACH/EFT": + biz.bank = "Local Bank" + biz.bank_account = "123456789" + biz.currency = "USD" + biz.default_price_list = "Standard Buying" + biz.payment_terms = supplier[4] + if supplier[0] == "Tireless Equipment Rental, Inc": + biz.number_of_invoices_per_check_voucher = 1 + biz.save() + + addr = frappe.new_doc("Address") + addr.address_title = f"{supplier[0]} - {supplier[5]['city']}" + addr.address_type = "Billing" + addr.address_line1 = supplier[5]["address_line1"] + addr.city = supplier[5]["city"] + addr.state = supplier[5]["state"] + addr.country = supplier[5]["country"] + addr.pincode = supplier[5]["pincode"] + addr.append("links", {"link_doctype": "Supplier", "link_name": supplier[0]}) + addr.save() + + addr = frappe.new_doc("Address") + addr.address_type = "Billing" + addr.address_title = "HIJ Telecom - Burlingame" + addr.address_line1 = "167 Auto Terrace" + addr.city = "Burlingame" + addr.state = "ME" + addr.country = "United States" + addr.pincode = "79749" + addr.append("links", {"link_doctype": "Supplier", "link_name": "HIJ Telecom, Inc"}) + addr.save() + + +def create_items(settings): + for supplier in suppliers + tax_authority: + item = frappe.new_doc("Item") + item.item_code = item.item_name = supplier[1] + item.item_group = "Services" + item.stock_uom = "Nos" + item.maintain_stock = 0 + item.is_sales_item, item.is_sub_contracted_item, item.include_item_in_manufacturing = 0, 0, 0 + item.grant_commission = 0 + item.is_purchase_item = 1 + item.append("supplier_items", {"supplier": supplier[0]}) + item.append( + "item_defaults", + {"company": settings.company, "default_warehouse": "", "default_supplier": supplier[0]}, + ) + item.save() + + +def create_invoices(settings): + pi = frappe.new_doc("Purchase Invoice") + pi.company = settings.company + pi.set_posting_time = 1 + pi.bill_date = pi.posting_date = settings.day + pi.supplier = "Tireless Equipment Rental, Inc" + pi.append( + "items", + { + "item_code": "Equipment Rental", + "rate": 30000.00, + "qty": 1, + }, + ) + pi.payment_terms = "18 Month Rental Agreement" + pi.save() + pi.submit() + + # first month - already paid + for supplier in suppliers: + if supplier[0].startswith("Tireless"): + continue + pi = frappe.new_doc("Purchase Invoice") + pi.company = settings.company + pi.set_posting_time = 1 + pi.bill_date = pi.posting_date = settings.day + pi.supplier = supplier[0] + pi.append( + "items", + { + "item_code": supplier[1], + "rate": supplier[3], + "qty": 1, + }, + ) + pi.save() + pi.submit() + # two electric meters / test invoice aggregation + pi = frappe.new_doc("Purchase Invoice") + pi.company = settings.company + pi.set_posting_time = 1 + pi.bill_date = pi.posting_date = settings.day + pi.supplier = suppliers[0][0] + pi.append( + "items", + { + "item_code": suppliers[0][1], + "rate": 75.00, + "qty": 1, + }, + ) + pi.save() + pi.submit() + + # two phone bills / test address splitting + pi = frappe.new_doc("Purchase Invoice") + pi.company = settings.company + pi.set_posting_time = 1 + pi.bill_date = pi.posting_date = settings.day + pi.supplier = suppliers[4][0] + pi.append( + "items", + { + "item_code": suppliers[4][1], + "rate": 122.50, + "qty": 1, + }, + ) + pi.supplier_address = "HIJ Telecom - Burlingame-Billing" + pi.save() + pi.submit() + + # second month - unpaid + next_day = settings.day + datetime.timedelta(days=31) + + for supplier in suppliers: + if supplier[0].startswith("Tireless"): + continue + pi = frappe.new_doc("Purchase Invoice") + pi.company = settings.company + pi.set_posting_time = 1 + pi.bill_date = pi.posting_date = next_day + pi.supplier = supplier[0] + pi.append( + "items", + { + "item_code": supplier[1], + "rate": supplier[3], + "qty": 1, + }, + ) + if supplier[0].startswith("Sphere"): + pi.payment_terms_template = None + pi.save() + pi.submit() + # two electric meters / test invoice aggregation + pi = frappe.new_doc("Purchase Invoice") + pi.company = settings.company + pi.set_posting_time = 1 + pi.bill_date = pi.posting_date = next_day + pi.supplier = suppliers[0][0] + pi.append( + "items", + { + "item_code": suppliers[0][1], + "rate": 75.00, + "qty": 1, + }, + ) + pi.save() + pi.submit() + + # two phone bills / test address splitting + pi = frappe.new_doc("Purchase Invoice") + pi.company = settings.company + pi.set_posting_time = 1 + pi.bill_date = pi.posting_date = settings.day + pi.supplier = suppliers[4][0] + pi.append( + "items", + { + "item_code": suppliers[4][1], + "rate": 122.50, + "qty": 1, + }, + ) + pi.supplier_address = "HIJ Telecom - Burlingame-Billing" + pi.save() + pi.submit() + + # test on-hold invoice + pi = frappe.new_doc("Purchase Invoice") + pi.company = settings.company + pi.set_posting_time = 1 + pi.bill_date = pi.posting_date = settings.day + pi.supplier = suppliers[1][0] + pi.append( + "items", + { + "item_code": suppliers[1][1], + "rate": 4000.00, + "qty": 1, + }, + ) + pi.on_hold = 1 + pi.release_date = settings.day + datetime.timedelta(days=60) + pi.hold_comment = "Testing for on hold invoices" + pi.validate_release_date = types.MethodType( + validate_release_date, pi + ) # allow date to be backdated for testing + pi.save() + pi.submit() + + spi = frappe.get_value( + "Purchase Invoice", + {"supplier": "Cooperative Ag Finance"}, + order_by="posting_date DESC", + ) + rpi = make_debit_note(spi) + rpi.return_against = ( + None # this approach isn't best practice but it allows us to see a negative PI in the check run + ) + rpi.items[0].rate = 500 + rpi.save() + rpi.submit() + + +def validate_release_date(self): + pass + + +def config_expense_claim(settings): + try: + travel_expense_account = frappe.get_value( + "Account", {"account_name": "Travel Expenses", "company": settings.company} + ) + travel = frappe.get_doc("Expense Claim Type", "Travel") + travel.append( + "accounts", {"company": settings.company, "default_account": travel_expense_account} + ) + travel.save() + except Exception as e: + pass + + payroll_payable = frappe.db.get_value( + "Account", {"account_name": "Payroll Payable", "company": settings.company} + ) + if payroll_payable: + frappe.db.set_value("Account", payroll_payable, "account_type", "Payable") + + if frappe.db.exists("Account", {"account_name": "Payroll Taxes", "company": settings.company}): + return + pta = frappe.new_doc("Account") + pta.account_name = "Payroll Taxes" + pta.account_number = ( + max( + int(a.account_number or 1) + for a in frappe.get_all("Account", {"is_group": 0}, ["account_number"]) + ) + + 1 + ) + pta.account_type = "Expense Account" + pta.company = settings.company + pta.parent_account = frappe.get_value( + "Account", {"account_name": "Indirect Expenses", "company": settings.company} + ) + pta.save() + + +def create_employees(settings): + for employee_number, employee in enumerate(employees, start=10): + emp = frappe.new_doc("Employee") + emp.first_name = employee[0].split(" ")[0] + emp.last_name = employee[0].split(" ")[1] + emp.employment_type = "Full-time" + emp.company = settings.company + emp.status = "Active" + emp.gender = employee[1] + emp.date_of_birth = employee[2] + emp.date_of_joining = employee[3] + emp.mode_of_payment = "Check" if employee_number % 3 == 0 else "ACH/EFT" + emp.mode_of_payment = "Cash" if employee_number == 10 else emp.mode_of_payment + emp.mode_of_payment = None if employee_number % 4 == 0 else emp.mode_of_payment + emp.expense_approver = "Administrator" + if emp.mode_of_payment == "ACH/EFT": + emp.bank = "Local Bank" + emp.bank_account = f"{employee_number}12345" + emp.save() + + +def create_expense_claim(settings): + cost_center = frappe.get_value("Company", settings.company, "cost_center") + payable_acct = frappe.get_value("Company", settings.company, "default_payable_account") + # first month - paid + ec = frappe.new_doc("Expense Claim") + ec.employee = "HR-EMP-00002" + ec.expense_approver = "Administrator" + ec.approval_status = "Approved" + ec.append( + "expenses", + { + "expense_date": settings.day, + "expense_type": "Travel", + "amount": 50.0, + "sanctioned_amount": 50.0, + "cost_center": cost_center, + }, + ) + ec.posting_date = settings.day + ec.company = settings.company + ec.payable_account = payable_acct + ec.save() + ec.submit() + # second month - open + next_day = settings.day + datetime.timedelta(days=31) + + ec = frappe.new_doc("Expense Claim") + ec.employee = "HR-EMP-00002" + ec.expense_approver = "Administrator" + ec.approval_status = "Approved" + ec.append( + "expenses", + { + "expense_date": next_day, + "expense_type": "Travel", + "amount": 50.0, + "sanctioned_amount": 50.0, + "cost_center": cost_center, + }, + ) + ec.posting_date = next_day + ec.company = settings.company + ec.payable_account = payable_acct + ec.save() + ec.submit() + # two expense claims to test aggregation + ec = frappe.new_doc("Expense Claim") + ec.employee = "HR-EMP-00002" + ec.expense_approver = "Administrator" + ec.approval_status = "Approved" + ec.append( + "expenses", + { + "expense_date": next_day, + "expense_type": "Travel", + "amount": 50.0, + "sanctioned_amount": 50.0, + "cost_center": cost_center, + }, + ) + ec.posting_date = next_day + ec.company = settings.company + ec.payable_account = payable_acct + ec.save() + ec.submit() + + +def create_payroll_journal_entry(settings): + emps = frappe.get_list("Employee", {"company": settings.company}) + cost_center = frappe.get_value("Company", settings.company, "cost_center") + payroll_account = frappe.get_value( + "Account", {"company": settings.company, "account_name": "Payroll Payable", "is_group": 0} + ) + salary_account = frappe.get_value( + "Account", {"company": settings.company, "account_name": "Salary", "is_group": 0} + ) + payroll_expense = frappe.get_value( + "Account", {"company": settings.company, "account_name": "Payroll Taxes", "is_group": 0} + ) + payable_account = frappe.get_value("Company", settings.company, "default_payable_account") + je = frappe.new_doc("Journal Entry") + je.entry_type = "Journal Entry" + je.company = settings.company + je.posting_date = settings.day + je.due_date = settings.day + total_payroll = 0.0 + for idx, emp in enumerate(emps): + employee_name = frappe.get_value( + "Employee", {"company": settings.company, "name": emp.name}, "employee_name" + ) + je.append( + "accounts", + { + "account": payroll_account, + "bank_account": frappe.get_value("Bank Account", {"account": settings.company_account}), + "party_type": "Employee", + "party": emp.name, + "cost_center": cost_center, + "account_currency": "USD", + "credit": 1000.00, + "credit_in_account_currency": 1000.00, + "debit": 0.00, + "debit_in_account_currency": 0.00, + "user_remark": employee_name + " Paycheck", + "idx": idx + 2, + }, + ) + total_payroll += 1000.00 + je.append( + "accounts", + { + "account": salary_account, + "cost_center": cost_center, + "account_currency": "USD", + "credit": 0.00, + "credit_in_account_currency": 0.00, + "debit": total_payroll, + "debit_in_account_currency": total_payroll, + "idx": 1, + }, + ) + je.append( + "accounts", + { + "account": payroll_expense, + "cost_center": cost_center, + "account_currency": "USD", + "credit": 0.00, + "credit_in_account_currency": 0.00, + "debit": total_payroll * 0.15, + "debit_in_account_currency": total_payroll * 0.15, + }, + ) + je.append( + "accounts", + { + "account": payable_account, + "cost_center": cost_center, + "party_type": "Supplier", + "party": tax_authority[0][0], + "account_currency": "USD", + "credit": total_payroll * 0.15, + "credit_in_account_currency": total_payroll * 0.15, + "debit": 0.00, + "debit_in_account_currency": 0.0, + }, + ) + je.save() + je.submit() + + +""" +Set in check run settings +check_run.test_setup.example_post_processing_hook +""" + + +def example_post_processing_hook(check_run, settings, nacha) -> str: + # check_run: "CheckRun", settings: "CheckRun Settings", nacha: "NACHAFile" # noqa: F722 + b = "$$AAPAACH0094[TEST[NL$$\n" + a = str(nacha) + return b + a + + +def create_extra_invoices(settings): + day = settings.day + for next_day in range(0, 365): + _day = settings.day + datetime.timedelta(days=next_day) + print(_day) + if _day.weekday in (5, 6): + continue + + for supplier in suppliers: + if supplier[0].startswith("Tireless"): + continue + if frappe.get_value("Purchase Invoice", {"posting_date": _day, "supplier": supplier[0]}): + continue + pi = frappe.new_doc("Purchase Invoice") + pi.company = settings.company + pi.set_posting_time = 1 + pi.bill_date = pi.posting_date = _day + pi.supplier = supplier[0] + pi.append( + "items", + { + "item_code": supplier[1], + "rate": supplier[3], + "qty": 1, + }, + ) + pi.save() + pi.submit() + + +def create_manual_payment_entry(settings): + frappe.db.commit() + party = "Cooperative Ag Finance" + to_pay = 1000.00 + docs = frappe.get_all( + "Purchase Invoice", + {"supplier": party, "grand_total": [">=", to_pay]}, + order_by="name ASC", + limit=1, + ) + pi = frappe.get_doc("Purchase Invoice", docs[0]) + # pi = frappe.get_doc( + # "Purchase Invoice", + # {"supplier": party, "grand_total": [">=", 5000], "posting_date": ["<=", settings.day]} + # ) # posting date filter not working in runtime + pe = frappe.new_doc("Payment Entry") + pe.payment_type = "Pay" + pe.posting_date = add_days(settings.day, 2) + pe.mode_of_payment = "Bank Draft" + pe.company = settings.company + pe.bank_account = frappe.get_value("Bank Account", {"account": settings.company_account}) + pe.paid_from = settings.company_account + pe.paid_to = frappe.get_value( + "Account", {"company": settings.company, "name": ["like", "%Accounts Payable%"]} + ) + pe.paid_to_account_currency = frappe.get_value( + "Account", settings.company_account, "account_currency" + ) + pe.paid_from_account_currency = pe.paid_to_account_currency + pe.reference_no = "via Bank Draft " + str(pe.posting_date) + pe.reference_date = pe.posting_date + pe.party_type = "Supplier" + pe.party = party + pe.paid_amount = to_pay + + pe.append( + "references", + { + "reference_doctype": pi.doctype, + "reference_name": pi.name, + "due_date": pi.due_date, + "total_amount": flt(pi.grand_total), + "outstanding_amount": flt(pi.outstanding_amount), + "allocated_amount": to_pay, + }, + ) + pe.received_amount = to_pay + pe.base_received_amount = to_pay + pe.paid_amount = to_pay + pe.base_paid_amount = to_pay + pe.base_grand_total = to_pay + + pe.save() + pe.submit() From e97ba6a02e5338e2b24f49d7d1f1218e390aaf1f Mon Sep 17 00:00:00 2001 From: Rohan Bansal Date: Wed, 11 Jun 2025 15:44:35 +0530 Subject: [PATCH 22/23] fix: remove background image from all Check Run prints --- .../print_format/example_voucher/example_voucher.json | 4 ++-- check_run/hooks.py | 6 +++++- check_run/public/css/print.css | 6 ++++++ 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 check_run/public/css/print.css diff --git a/check_run/check_run/print_format/example_voucher/example_voucher.json b/check_run/check_run/print_format/example_voucher/example_voucher.json index 32694ac7..05f070b4 100644 --- a/check_run/check_run/print_format/example_voucher/example_voucher.json +++ b/check_run/check_run/print_format/example_voucher/example_voucher.json @@ -11,14 +11,14 @@ "doctype": "Print Format", "font": "Default", "font_size": 0, - "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account,\n\"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\",\npluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\t.print-format {\n\t\tbackground-image: url({{crs_doc.background_image or ''}});\n\t}\n\t@media print {\n .print-format {\n background-image: none;\n }\n }\n\n\n
\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\tVOID DRAFT\n\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\tVOID\n\t\t\tVOID\n\t\t\tVOID\n\t\t\t{% endif %}\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %}\n\n\t\t\t\t{% if money_number|length < 18 %} {% set money_number=( money_number + '***************************'\n\t\t\t\t\t)[:18] %} {% endif %} {{ money_number }} \n\n\t\t\t\t\t\n\t\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t\t{% if money_in_words|length < 90 %} {% set money_in_words=(money_in_words\n\t\t\t\t\t\t\t+ '************************************************************************' )[:100] %} {%\n\t\t\t\t\t\t\tendif %} {{ money_in_words }} \n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSIGNATURE\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tCHECK#\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tROUTING_NUMBER\n\t\t\t\t\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{% if crs_doc.secondary_print_format or (not crs_doc.secondary_print_format and doc.references|length > 6) %}\n\t\t\t\t\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
\n\t\t\t\t
\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t{{ reference.reference_name }}\n\t\t\t\t\t{{ \", \" if not loop.last else \"\" }}\n\t\t\t\t{% endfor %}\n\t\t\t{% else %}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t Date \n\t\t\t\t\t Reference \n\t\t\t\t\t Amount \n\t\t\t\t\t Payment \n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\n\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'),\n\t\t\t\t\t\t2, 'USD')}}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}\n\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t\t\n\t\t\t{% endif %}\n\t\t
\n\t
\n
\n
\n{% endif %}", + "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account,\n\"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\",\npluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\t.print-format {\n\t\tbackground-image: url({{crs_doc.background_image or ''}});\n\t}\n\n\n
\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\tVOID DRAFT\n\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\tVOID\n\t\t\tVOID\n\t\t\tVOID\n\t\t\t{% endif %}\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %}\n\n\t\t\t\t{% if money_number|length < 18 %} {% set money_number=( money_number + '***************************'\n\t\t\t\t\t)[:18] %} {% endif %} {{ money_number }} \n\n\t\t\t\t\t\n\t\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t\t{% if money_in_words|length < 90 %} {% set money_in_words=(money_in_words\n\t\t\t\t\t\t\t+ '************************************************************************' )[:100] %} {%\n\t\t\t\t\t\t\tendif %} {{ money_in_words }} \n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSIGNATURE\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tCHECK#\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tROUTING_NUMBER\n\t\t\t\t\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{% if crs_doc.secondary_print_format or (not crs_doc.secondary_print_format and doc.references|length > 6) %}\n\t\t\t\t\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
\n\t\t\t\t
\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t{{ reference.reference_name }}\n\t\t\t\t\t{{ \", \" if not loop.last else \"\" }}\n\t\t\t\t{% endfor %}\n\t\t\t{% else %}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t Date \n\t\t\t\t\t Reference \n\t\t\t\t\t Amount \n\t\t\t\t\t Payment \n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\n\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'),\n\t\t\t\t\t\t2, 'USD')}}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}\n\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t\t\n\t\t\t{% endif %}\n\t\t
\n\t
\n
\n
\n{% endif %}", "idx": 0, "line_breaks": 0, "margin_bottom": 0.0, "margin_left": 0.0, "margin_right": 0.0, "margin_top": 0.0, - "modified": "2025-06-11 05:47:59.025737", + "modified": "2025-06-11 06:04:46.728006", "modified_by": "Administrator", "module": "Check Run", "name": "Example Voucher", diff --git a/check_run/hooks.py b/check_run/hooks.py index 78bed38c..03dbb931 100644 --- a/check_run/hooks.py +++ b/check_run/hooks.py @@ -19,7 +19,11 @@ # ------------------ # include js, css files in header of desk.html -app_include_css = ["/assets/check_run/dist/js/style.css", "/assets/check_run/css/file_preview.css"] +app_include_css = [ + "/assets/check_run/dist/js/style.css", + "/assets/check_run/css/file_preview.css", + "/assets/check_run/css/print.css", +] app_include_js = [ "check_run.bundle.js", "/assets/check_run/dist/js/check_run.js", diff --git a/check_run/public/css/print.css b/check_run/public/css/print.css new file mode 100644 index 00000000..facf9650 --- /dev/null +++ b/check_run/public/css/print.css @@ -0,0 +1,6 @@ +/* remove any attached background image from the print */ +@media print { + .print-format { + background-image: none !important; + } +} From 523dd3174dd6393bbc8af5285e29ed9cd5d28c2f Mon Sep 17 00:00:00 2001 From: Rohan Bansal Date: Wed, 11 Jun 2025 15:49:03 +0530 Subject: [PATCH 23/23] style: fix pre-commit issues --- .pre-commit-config.yaml | 17 +- CHANGELOG.md | 28 +- .../check_run/doctype/check_run/check_run.py | 4 +- .../doctype/check_run/test_check_run.py | 1 - .../check_run_settings.json | 644 +++++++++--------- .../example_voucher/example_voucher.json | 62 +- check_run/tests/setup.py | 28 +- check_run/tests/test_check_run.py | 1 - check_run/tests/test_payment_entry.py | 3 - 9 files changed, 388 insertions(+), 400 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 32b1b1f3..02681339 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,14 +19,14 @@ repos: - id: debug-statements - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.14.1 + rev: v1.16.0 hooks: - id: mypy exclude: ^tests/ args: ['--install-types', '--non-interactive', '--ignore-missing-imports'] - repo: https://github.com/codespell-project/codespell - rev: v2.3.0 + rev: v2.4.1 hooks: - id: codespell args: ['--ignore-words-list=notin'] @@ -34,7 +34,7 @@ repos: - tomli - repo: https://github.com/asottile/pyupgrade - rev: v3.19.1 + rev: v3.20.0 hooks: - id: pyupgrade args: ['--py310-plus'] @@ -52,13 +52,13 @@ repos: args: [--remove-all-unused-imports, --in-place] - repo: https://github.com/PyCQA/flake8 - rev: 7.1.1 + rev: 7.2.0 hooks: - id: flake8 additional_dependencies: ['flake8-bugbear'] - repo: https://github.com/agritheory/test_utils/ - rev: v0.17.0 + rev: v1.0.0 hooks: - id: update_pre_commit_config - id: clean_customized_doctypes @@ -69,13 +69,6 @@ repos: args: ['--app', 'check_run'] # - id: sql_docstring_formatter - - repo: local - hooks: - - id: prettier - name: prettier - entry: npx prettier . --write --ignore-path .prettierignore - language: node - - repo: local hooks: - id: prettier diff --git a/CHANGELOG.md b/CHANGELOG.md index c29b9cbe..154ec568 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,15 +48,15 @@ Co-authored-by: Tyler Matteson <tyler@agritheory.com> ([`061be4e`](https:/ * print format changes -* comma saperated on bothe tablec +* comma separated on both tables * commit to solve linter test -* secondary print format with same attechment +* secondary print format with same attachment * change field name in print format -* split pdf in two attechment +* split pdf in two attachment * comment to run lint @@ -170,7 +170,7 @@ Co-authored-by: viralpatel15 <viralkansodiya167@gmail.com> ([`0b4bff0`](ht * Override a function to improve error msg (#205) -* Allocated ammount validation override for msg improvement +* Allocated amount validation override for msg improvement * comment add @@ -242,7 +242,7 @@ Co-authored-by: viralpatel15 <viralkansodiya167@gmail.com> ([`80fa4cf`](ht * feat: improvement -* feat: file preview treshold +* feat: file preview threshold * fix: refactor filters to work with prettier, also fix rendering bug @@ -502,7 +502,7 @@ Resolution for `TypeError: the JSON object must be str, bytes or bytearray, not * fix: move bank validation out of override class into hook (#142) ([`f07ad5a`](https://github.com/agritheory/check_run/commit/f07ad5a1c4a9b7e424ad534ec40731f26f6feb0c)) -* fix: only increment if check numer is numeric (#139) ([`079aa52`](https://github.com/agritheory/check_run/commit/079aa52bf013e13d3350848ef011b74b99b64bf1)) +* fix: only increment if check number is numeric (#139) ([`079aa52`](https://github.com/agritheory/check_run/commit/079aa52bf013e13d3350848ef011b74b99b64bf1)) ### Unknown @@ -548,7 +548,7 @@ Co-authored-by: Heather Kusmierz <heather.kusmierz@gmail.com> ([`4ccba65`] * fix: refactor frappe.db.sql to query builder for outstanding -* fix: refactor postive pay to query builder +* fix: refactor positive pay to query builder * chore: remove print statement @@ -666,9 +666,9 @@ Co-authored-by: agritheory <agritheory@users.noreply.github.com> ([`6f5023 * V14 ports (#98) -* chore: port payement entry check number fetch/save to V14 +* chore: port payment entry check number fetch/save to V14 -* chore: port ach_post procesing hook and company disc data +* chore: port ach_post processing hook and company disc data * chore: port docstatus fix for ach-only crs @@ -680,9 +680,9 @@ Co-authored-by: agritheory <agritheory@users.noreply.github.com> ([`6f5023 * The hook jenv is deprecated New variable is jinja -* chore: port ach_post procesing hook and company disc data +* chore: port ach_post processing hook and company disc data -* fix: fix savepoint wierdness +* fix: fix savepoint weirdness * fix: company discretionary data fix @@ -918,7 +918,7 @@ Not implemented yet: * test: stub UI test yaml - copied from Frappe -* test: add helper shell files, remove job contitionals +* test: add helper shell files, remove job conditionals * test: remove producer/consumer test dbs from install script @@ -956,7 +956,7 @@ Not implemented yet: * test: allow empty password = yes -* test: file wasnt saved +* test: file wasn't saved * test: mariadb version 10.5 => 10.3 @@ -992,7 +992,7 @@ Not implemented yet: * test: install apps -* test: add site adn skip assets +* test: add site and skip assets * test: ci=yes install-app diff --git a/check_run/check_run/doctype/check_run/check_run.py b/check_run/check_run/doctype/check_run/check_run.py index 6411981b..4bbfcd48 100644 --- a/check_run/check_run/doctype/check_run/check_run.py +++ b/check_run/check_run/doctype/check_run/check_run.py @@ -1001,11 +1001,11 @@ def download_pdf( @print { margin: 0; } - + .back_image { background: none !important; } - } + } """ html = """""".format( diff --git a/check_run/check_run/doctype/check_run/test_check_run.py b/check_run/check_run/doctype/check_run/test_check_run.py index 3f829765..b285a8f7 100644 --- a/check_run/check_run/doctype/check_run/test_check_run.py +++ b/check_run/check_run/doctype/check_run/test_check_run.py @@ -1,7 +1,6 @@ # Copyright (c) 2022, AgriTheory and Contributors # See license.txt -import frappe import unittest diff --git a/check_run/check_run/doctype/check_run_settings/check_run_settings.json b/check_run/check_run/doctype/check_run_settings/check_run_settings.json index a72eb7b6..d63824f4 100644 --- a/check_run/check_run/doctype/check_run_settings/check_run_settings.json +++ b/check_run/check_run/doctype/check_run_settings/check_run_settings.json @@ -1,323 +1,323 @@ { - "actions": [], - "autoname": "format:ACC-CRS-{bank_account}-{pay_to_account}", - "creation": "2022-08-22 14:43:43.533105", - "doctype": "DocType", - "editable_grid": 1, - "engine": "InnoDB", - "field_order": [ - "company", - "bank_account", - "column_break_3", - "pay_to_account", - "section_break_4", - "include_purchase_invoices", - "include_journal_entries", - "include_expense_claims", - "pre_check_overdue_items", - "allow_cancellation", - "cascade_cancellation", - "validate_unique_check_number", - "set_payment_entry_posting_date", - "column_break_9", - "number_of_invoices_per_voucher", - "split_by_address", - "automatically_release_on_hold_invoices", - "file_preview_threshold", - "allow_stand_alone_debit_notes", - "print_settings_section", - "print_preview", - "print_format", - "secondary_print_format", - "column_break_ctnqm", - "printable_mop_in_check_run", - "background_image", - "default_modes_of_payment_section_section", - "purchase_invoice", - "journal_entry", - "column_break_21", - "expense_claim", - "ach_settings_section", - "ach_file_extension", - "ach_service_class_code", - "ach_standard_class_code", - "ach_description", - "column_break_27", - "immediate_origin", - "company_discretionary_data", - "custom_post_processing_hook" - ], - "fields": [ - { - "fieldname": "company", - "fieldtype": "Link", - "label": "Company", - "options": "Company" - }, - { - "fieldname": "bank_account", - "fieldtype": "Link", - "label": "Bank Account", - "options": "Bank Account" - }, - { - "fieldname": "section_break_4", - "fieldtype": "Section Break" - }, - { - "default": "1", - "fieldname": "include_purchase_invoices", - "fieldtype": "Check", - "label": "Include Purchase Invoices" - }, - { - "default": "1", - "fieldname": "include_journal_entries", - "fieldtype": "Check", - "label": "Include Journal Entries " - }, - { - "default": "1", - "fieldname": "include_expense_claims", - "fieldtype": "Check", - "label": "Include Expense Claims" - }, - { - "default": "0", - "description": "Payment Entries will be unlinked when Check Run is cancelled", - "fieldname": "allow_cancellation", - "fieldtype": "Check", - "label": "Allow Cancellation" - }, - { - "fieldname": "column_break_9", - "fieldtype": "Column Break" - }, - { - "default": "ach", - "description": "Common file extensions are 'ach', 'txt' and 'dat'. Your bank may require one of these.", - "fieldname": "ach_file_extension", - "fieldtype": "Data", - "label": "ACH File Extension" - }, - { - "default": "0", - "description": "Pre-Check all payables that have a due date greater than the Check Run's posting date", - "fieldname": "pre_check_overdue_items", - "fieldtype": "Check", - "label": "Pre-Check Overdue Items" - }, - { - "default": "0", - "description": "When a Check Run is cancelled, all Payment Entries linked to it will also be cancelled. This is not recommended.", - "fieldname": "cascade_cancellation", - "fieldtype": "Check", - "label": "Cascade Cancellation" - }, - { - "description": "Defaults to 5 if no value is provided", - "fieldname": "number_of_invoices_per_voucher", - "fieldtype": "Int", - "label": "Number of Invoices per Voucher", - "non_negative": 1 - }, - { - "fieldname": "column_break_3", - "fieldtype": "Column Break" - }, - { - "fieldname": "pay_to_account", - "fieldtype": "Link", - "label": "Payable Account", - "options": "Account" - }, - { - "fieldname": "ach_service_class_code", - "fieldtype": "Select", - "label": "ACH Service Class Code", - "options": "200\n220\n225" - }, - { - "description": "PPD is only supported Entry format at this time", - "fieldname": "ach_standard_class_code", - "fieldtype": "Select", - "label": "ACH Standard Class Code", - "options": "PPD" - }, - { - "fieldname": "ach_description", - "fieldtype": "Data", - "label": "ACH Description", - "length": 10 - }, - { - "fieldname": "print_format", - "fieldtype": "Link", - "label": "Print Format", - "options": "Print Format" - }, - { - "default": "0", - "fieldname": "split_by_address", - "fieldtype": "Check", - "label": "Split Invoices by Address" - }, - { - "fieldname": "ach_settings_section", - "fieldtype": "Section Break", - "label": "ACH Settings" - }, - { - "fieldname": "column_break_21", - "fieldtype": "Column Break" - }, - { - "default": "0", - "fieldname": "automatically_release_on_hold_invoices", - "fieldtype": "Check", - "label": "Automatically Release On Hold Invoices" - }, - { - "fieldname": "immediate_origin", - "fieldtype": "Data", - "label": "Immediate Origin" - }, - { - "fieldname": "company_discretionary_data", - "fieldtype": "Data", - "label": "Company Discretionary Data", - "length": 20 - }, - { - "fieldname": "custom_post_processing_hook", - "fieldtype": "Data", - "label": "Custom Post Processing Hook", - "read_only": 1 - }, - { - "fieldname": "default_modes_of_payment_section_section", - "fieldtype": "Section Break", - "label": "Default Modes of Payment Section" - }, - { - "fieldname": "purchase_invoice", - "fieldtype": "Link", - "label": "Purchase Invoice", - "options": "Mode of Payment" - }, - { - "fieldname": "journal_entry", - "fieldtype": "Link", - "label": "Journal Entry", - "options": "Mode of Payment" - }, - { - "fieldname": "expense_claim", - "fieldtype": "Link", - "label": "Expense Claim", - "options": "Mode of Payment" - }, - { - "fieldname": "column_break_27", - "fieldtype": "Column Break" - }, - { - "default": "1000", - "description": "File preview is enabled up to this number of transactions", - "fieldname": "file_preview_threshold", - "fieldtype": "Int", - "label": "File Preview Threshold" - }, - { - "default": "0", - "fieldname": "validate_unique_check_number", - "fieldtype": "Check", - "label": "Validate Unique Check Number" - }, - { - "fieldname": "secondary_print_format", - "fieldtype": "Link", - "label": "Secondary Print Format", - "options": "Print Format" - }, - { - "fieldname": "background_image", - "fieldtype": "Attach", - "label": "Background Image" - }, - { - "default": "Automatically Render PDF After Submit", - "fieldname": "print_preview", - "fieldtype": "Select", - "label": "Print Preview", - "options": "Automatically Render PDF After Submit\nPrint from Print Preview" - }, - { - "fieldname": "print_settings_section", - "fieldtype": "Section Break", - "label": "Print Settings" - }, - { - "fieldname": "column_break_ctnqm", - "fieldtype": "Column Break" - }, - { - "fieldname": "printable_mop_in_check_run", - "fieldtype": "Table MultiSelect", - "label": "Printable Modes of Payment in Check Run", - "options": "Check Run Printable MOP" - }, - { - "default": "No", - "fieldname": "allow_stand_alone_debit_notes", - "fieldtype": "Select", - "label": "Allow stand-alone debit notes?", - "options": "Yes\nNo" - }, - { - "default": "Use Today's Date", - "fieldname": "set_payment_entry_posting_date", - "fieldtype": "Select", - "label": "Set Payment Entry Posting Date", - "options": "Use Today's Date\nUse Check Run's Posting Date" - } - ], - "links": [], - "modified": "2025-06-11 05:33:02.366589", - "modified_by": "Administrator", - "module": "Check Run", - "name": "Check Run Settings", - "naming_rule": "Expression", - "owner": "Administrator", - "permissions": [ - { - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "share": 1, - "write": 1 - }, - { - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "print": 1, - "read": 1, - "report": 1, - "role": "Accounts Manager", - "share": 1, - "write": 1 - } - ], - "quick_entry": 1, - "sort_field": "modified", - "sort_order": "DESC", - "states": [], - "track_changes": 1 -} \ No newline at end of file + "actions": [], + "autoname": "format:ACC-CRS-{bank_account}-{pay_to_account}", + "creation": "2022-08-22 14:43:43.533105", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "company", + "bank_account", + "column_break_3", + "pay_to_account", + "section_break_4", + "include_purchase_invoices", + "include_journal_entries", + "include_expense_claims", + "pre_check_overdue_items", + "allow_cancellation", + "cascade_cancellation", + "validate_unique_check_number", + "set_payment_entry_posting_date", + "column_break_9", + "number_of_invoices_per_voucher", + "split_by_address", + "automatically_release_on_hold_invoices", + "file_preview_threshold", + "allow_stand_alone_debit_notes", + "print_settings_section", + "print_preview", + "print_format", + "secondary_print_format", + "column_break_ctnqm", + "printable_mop_in_check_run", + "background_image", + "default_modes_of_payment_section_section", + "purchase_invoice", + "journal_entry", + "column_break_21", + "expense_claim", + "ach_settings_section", + "ach_file_extension", + "ach_service_class_code", + "ach_standard_class_code", + "ach_description", + "column_break_27", + "immediate_origin", + "company_discretionary_data", + "custom_post_processing_hook" + ], + "fields": [ + { + "fieldname": "company", + "fieldtype": "Link", + "label": "Company", + "options": "Company" + }, + { + "fieldname": "bank_account", + "fieldtype": "Link", + "label": "Bank Account", + "options": "Bank Account" + }, + { + "fieldname": "section_break_4", + "fieldtype": "Section Break" + }, + { + "default": "1", + "fieldname": "include_purchase_invoices", + "fieldtype": "Check", + "label": "Include Purchase Invoices" + }, + { + "default": "1", + "fieldname": "include_journal_entries", + "fieldtype": "Check", + "label": "Include Journal Entries " + }, + { + "default": "1", + "fieldname": "include_expense_claims", + "fieldtype": "Check", + "label": "Include Expense Claims" + }, + { + "default": "0", + "description": "Payment Entries will be unlinked when Check Run is cancelled", + "fieldname": "allow_cancellation", + "fieldtype": "Check", + "label": "Allow Cancellation" + }, + { + "fieldname": "column_break_9", + "fieldtype": "Column Break" + }, + { + "default": "ach", + "description": "Common file extensions are 'ach', 'txt' and 'dat'. Your bank may require one of these.", + "fieldname": "ach_file_extension", + "fieldtype": "Data", + "label": "ACH File Extension" + }, + { + "default": "0", + "description": "Pre-Check all payables that have a due date greater than the Check Run's posting date", + "fieldname": "pre_check_overdue_items", + "fieldtype": "Check", + "label": "Pre-Check Overdue Items" + }, + { + "default": "0", + "description": "When a Check Run is cancelled, all Payment Entries linked to it will also be cancelled. This is not recommended.", + "fieldname": "cascade_cancellation", + "fieldtype": "Check", + "label": "Cascade Cancellation" + }, + { + "description": "Defaults to 5 if no value is provided", + "fieldname": "number_of_invoices_per_voucher", + "fieldtype": "Int", + "label": "Number of Invoices per Voucher", + "non_negative": 1 + }, + { + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "fieldname": "pay_to_account", + "fieldtype": "Link", + "label": "Payable Account", + "options": "Account" + }, + { + "fieldname": "ach_service_class_code", + "fieldtype": "Select", + "label": "ACH Service Class Code", + "options": "200\n220\n225" + }, + { + "description": "PPD is only supported Entry format at this time", + "fieldname": "ach_standard_class_code", + "fieldtype": "Select", + "label": "ACH Standard Class Code", + "options": "PPD" + }, + { + "fieldname": "ach_description", + "fieldtype": "Data", + "label": "ACH Description", + "length": 10 + }, + { + "fieldname": "print_format", + "fieldtype": "Link", + "label": "Print Format", + "options": "Print Format" + }, + { + "default": "0", + "fieldname": "split_by_address", + "fieldtype": "Check", + "label": "Split Invoices by Address" + }, + { + "fieldname": "ach_settings_section", + "fieldtype": "Section Break", + "label": "ACH Settings" + }, + { + "fieldname": "column_break_21", + "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "automatically_release_on_hold_invoices", + "fieldtype": "Check", + "label": "Automatically Release On Hold Invoices" + }, + { + "fieldname": "immediate_origin", + "fieldtype": "Data", + "label": "Immediate Origin" + }, + { + "fieldname": "company_discretionary_data", + "fieldtype": "Data", + "label": "Company Discretionary Data", + "length": 20 + }, + { + "fieldname": "custom_post_processing_hook", + "fieldtype": "Data", + "label": "Custom Post Processing Hook", + "read_only": 1 + }, + { + "fieldname": "default_modes_of_payment_section_section", + "fieldtype": "Section Break", + "label": "Default Modes of Payment Section" + }, + { + "fieldname": "purchase_invoice", + "fieldtype": "Link", + "label": "Purchase Invoice", + "options": "Mode of Payment" + }, + { + "fieldname": "journal_entry", + "fieldtype": "Link", + "label": "Journal Entry", + "options": "Mode of Payment" + }, + { + "fieldname": "expense_claim", + "fieldtype": "Link", + "label": "Expense Claim", + "options": "Mode of Payment" + }, + { + "fieldname": "column_break_27", + "fieldtype": "Column Break" + }, + { + "default": "1000", + "description": "File preview is enabled up to this number of transactions", + "fieldname": "file_preview_threshold", + "fieldtype": "Int", + "label": "File Preview Threshold" + }, + { + "default": "0", + "fieldname": "validate_unique_check_number", + "fieldtype": "Check", + "label": "Validate Unique Check Number" + }, + { + "fieldname": "secondary_print_format", + "fieldtype": "Link", + "label": "Secondary Print Format", + "options": "Print Format" + }, + { + "fieldname": "background_image", + "fieldtype": "Attach", + "label": "Background Image" + }, + { + "default": "Automatically Render PDF After Submit", + "fieldname": "print_preview", + "fieldtype": "Select", + "label": "Print Preview", + "options": "Automatically Render PDF After Submit\nPrint from Print Preview" + }, + { + "fieldname": "print_settings_section", + "fieldtype": "Section Break", + "label": "Print Settings" + }, + { + "fieldname": "column_break_ctnqm", + "fieldtype": "Column Break" + }, + { + "fieldname": "printable_mop_in_check_run", + "fieldtype": "Table MultiSelect", + "label": "Printable Modes of Payment in Check Run", + "options": "Check Run Printable MOP" + }, + { + "default": "No", + "fieldname": "allow_stand_alone_debit_notes", + "fieldtype": "Select", + "label": "Allow stand-alone debit notes?", + "options": "Yes\nNo" + }, + { + "default": "Use Today's Date", + "fieldname": "set_payment_entry_posting_date", + "fieldtype": "Select", + "label": "Set Payment Entry Posting Date", + "options": "Use Today's Date\nUse Check Run's Posting Date" + } + ], + "links": [], + "modified": "2025-06-11 05:33:02.366589", + "modified_by": "Administrator", + "module": "Check Run", + "name": "Check Run Settings", + "naming_rule": "Expression", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "share": 1, + "write": 1 + } + ], + "quick_entry": 1, + "sort_field": "modified", + "sort_order": "DESC", + "states": [], + "track_changes": 1 +} diff --git a/check_run/check_run/print_format/example_voucher/example_voucher.json b/check_run/check_run/print_format/example_voucher/example_voucher.json index 05f070b4..1489a555 100644 --- a/check_run/check_run/print_format/example_voucher/example_voucher.json +++ b/check_run/check_run/print_format/example_voucher/example_voucher.json @@ -1,32 +1,32 @@ { - "absolute_value": 0, - "align_labels_right": 0, - "creation": "2022-08-30 12:27:45.736571", - "css": "@font-face {\n font-family: 'EntezareZohoor2';\n src: url('fonts/EntezareZohoor2.eot'), url('fonts/EntezareZohoor2.ttf') format('truetype'), url('fonts/EntezareZohoor2.svg') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n.print-format {\n\tpadding: 0px;\n}\n\n@media screen {\n\t.print-format {\n\t\tpadding: 0in;\n\t}\n}\n\n#payer_check_window_block {\n top: 0.7cm; \n left: 0.7cm;\n height: 2.2cm;\n width: 8.8cm;\n position: absolute;\n \n}\n\n#payer_name_block{\n top: 0.1cm; \n left: 1cm;\n position: absolute;\n}\n\n#payee_address_window_block {\n top:4.9cm;\n left: 1.9cm;\n position: absolute; \n width: 8.8cm; \n height:2.2cm;\n}\n\n#address_block{\n top: 0.2cm; \n left: 0.2cm;\n position: relative;\n}\n\n\n\n#memo_block {\n top:7.1cm;\n left: 2cm;\n position: absolute; \n width: 6cm;\n}\n\n\n#check_section_1 {\n font-size: 15px;\n width:20.0cm;\n height:8.9cm;\n}\n\n#check_section_2 {\n height:8.9cm;\n}\n\n#check_section_3 {\n height:8.9cm;\n}\n\n\n#payer_name_block {\ntext-align: center; \n\n}\n\n#payer_name_block {\nwidth:4cm;\ntext-align: center; \nposition: absolute;\n}\n\n#bank_info_block {\nfont-size: 10px;\nwidth:2.5cm;\nheight:1.8cm;\ntext-align: center; \nposition: absolute;\n}\n\n\n#payment_in_words_block {\n font-size: 13px;\n}\n\n#memo_block {\nfont-size: 10px;\n}\n\n#signature_block {\ncolor: blue;\nfont-family: cursive;\n\n}\n#payment_amount_block{\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n\n}\n\n.payment_reference_block {\npadding-left:1cm; \npadding-right:1cm; \n}\n\n.payment_name_cell {\ntext-align: right; \n}\n\n#payment_amount_number_block {\n top:3.3cm;\n left: 16cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n}\n\n\n.right_stamp {\n top:2.8cm;\n left: 16.6cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.sig_stamp {\n top:6.3cm;\n left: 13.8cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.big_stamp {\n top:2.8cm;\n left: 6.1cm;\n width: 7cm;\n\theight: 3cm;\n\tfont-size: 80px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n\n.stamp {\n\tmargin: 0px;\n\toverflow: hidden;\n display: flex;\n justify-content: space-around;\n align-items: center;\n vertical-align: middle;\n text-align: center;\n\n flex-direction: row;\n color: #555;\n\tfont-weight: 700;\n\tborder: 0.25rem solid #555;\n\tdisplay: inline-block;\n\t\n\ttext-transform: uppercase;\n\tborder-radius: 1rem;\n\tfont-family: 'Courier';\n\t-webkit-mask-image: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/8399/grunge.png');\n -webkit-mask-size: 944px 604px;\n mix-blend-mode: multiply;\n}\n\n\n.is-nope {\n color: #ff5858;\n border: 0.5rem double #D23;\n \t-webkit-mask-position: 2rem 3rem;\n \t\n \n}\n\n.is-draft {\n\tcolor: #ff5858;\n\tborder: 1rem double #ff5858;\n font-size: 6rem;\n font-family: \"Open sans\", Helvetica, Arial, sans-serif;\n border-radius: 0;\n padding: 0.5rem;\n} ", - "custom_format": 1, - "default_print_language": "en", - "disabled": 0, - "doc_type": "Payment Entry", - "docstatus": 0, - "doctype": "Print Format", - "font": "Default", - "font_size": 0, - "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account,\n\"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\",\npluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\t.print-format {\n\t\tbackground-image: url({{crs_doc.background_image or ''}});\n\t}\n\n\n
\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\tVOID DRAFT\n\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\tVOID\n\t\t\tVOID\n\t\t\tVOID\n\t\t\t{% endif %}\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %}\n\n\t\t\t\t{% if money_number|length < 18 %} {% set money_number=( money_number + '***************************'\n\t\t\t\t\t)[:18] %} {% endif %} {{ money_number }} \n\n\t\t\t\t\t\n\t\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t\t{% if money_in_words|length < 90 %} {% set money_in_words=(money_in_words\n\t\t\t\t\t\t\t+ '************************************************************************' )[:100] %} {%\n\t\t\t\t\t\t\tendif %} {{ money_in_words }} \n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSIGNATURE\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tCHECK#\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tROUTING_NUMBER\n\t\t\t\t\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{% if crs_doc.secondary_print_format or (not crs_doc.secondary_print_format and doc.references|length > 6) %}\n\t\t\t\t\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
\n\t\t\t\t
\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t{{ reference.reference_name }}\n\t\t\t\t\t{{ \", \" if not loop.last else \"\" }}\n\t\t\t\t{% endfor %}\n\t\t\t{% else %}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t Date \n\t\t\t\t\t Reference \n\t\t\t\t\t Amount \n\t\t\t\t\t Payment \n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\n\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'),\n\t\t\t\t\t\t2, 'USD')}}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}\n\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t\t\n\t\t\t{% endif %}\n\t\t
\n\t
\n
\n
\n{% endif %}", - "idx": 0, - "line_breaks": 0, - "margin_bottom": 0.0, - "margin_left": 0.0, - "margin_right": 0.0, - "margin_top": 0.0, - "modified": "2025-06-11 06:04:46.728006", - "modified_by": "Administrator", - "module": "Check Run", - "name": "Example Voucher", - "owner": "Administrator", - "print_format_builder": 0, - "print_format_builder_beta": 0, - "print_format_type": "Jinja", - "raw_printing": 0, - "show_section_headings": 0, - "standard": "Yes" -} \ No newline at end of file + "absolute_value": 0, + "align_labels_right": 0, + "creation": "2022-08-30 12:27:45.736571", + "css": "@font-face {\n font-family: 'EntezareZohoor2';\n src: url('fonts/EntezareZohoor2.eot'), url('fonts/EntezareZohoor2.ttf') format('truetype'), url('fonts/EntezareZohoor2.svg') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n.print-format {\n\tpadding: 0px;\n}\n\n@media screen {\n\t.print-format {\n\t\tpadding: 0in;\n\t}\n}\n\n#payer_check_window_block {\n top: 0.7cm; \n left: 0.7cm;\n height: 2.2cm;\n width: 8.8cm;\n position: absolute;\n \n}\n\n#payer_name_block{\n top: 0.1cm; \n left: 1cm;\n position: absolute;\n}\n\n#payee_address_window_block {\n top:4.9cm;\n left: 1.9cm;\n position: absolute; \n width: 8.8cm; \n height:2.2cm;\n}\n\n#address_block{\n top: 0.2cm; \n left: 0.2cm;\n position: relative;\n}\n\n\n\n#memo_block {\n top:7.1cm;\n left: 2cm;\n position: absolute; \n width: 6cm;\n}\n\n\n#check_section_1 {\n font-size: 15px;\n width:20.0cm;\n height:8.9cm;\n}\n\n#check_section_2 {\n height:8.9cm;\n}\n\n#check_section_3 {\n height:8.9cm;\n}\n\n\n#payer_name_block {\ntext-align: center; \n\n}\n\n#payer_name_block {\nwidth:4cm;\ntext-align: center; \nposition: absolute;\n}\n\n#bank_info_block {\nfont-size: 10px;\nwidth:2.5cm;\nheight:1.8cm;\ntext-align: center; \nposition: absolute;\n}\n\n\n#payment_in_words_block {\n font-size: 13px;\n}\n\n#memo_block {\nfont-size: 10px;\n}\n\n#signature_block {\ncolor: blue;\nfont-family: cursive;\n\n}\n#payment_amount_block{\n top:3.3cm;\n left: 17.6cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n\n}\n\n.payment_reference_block {\npadding-left:1cm; \npadding-right:1cm; \n}\n\n.payment_name_cell {\ntext-align: right; \n}\n\n#payment_amount_number_block {\n top:3.3cm;\n left: 16cm;\n\tposition: absolute; \n\tmin-width: 4cm;\n}\n\n\n.right_stamp {\n top:2.8cm;\n left: 16.6cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.sig_stamp {\n top:6.3cm;\n left: 13.8cm;\n width: 3cm;\n\theight: 1.5cm;\n\tfont-size: 40px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n.big_stamp {\n top:2.8cm;\n left: 6.1cm;\n width: 7cm;\n\theight: 3cm;\n\tfont-size: 80px;\n \tfort-weight: bold;\n position: absolute; \n}\n\n\n.stamp {\n\tmargin: 0px;\n\toverflow: hidden;\n display: flex;\n justify-content: space-around;\n align-items: center;\n vertical-align: middle;\n text-align: center;\n\n flex-direction: row;\n color: #555;\n\tfont-weight: 700;\n\tborder: 0.25rem solid #555;\n\tdisplay: inline-block;\n\t\n\ttext-transform: uppercase;\n\tborder-radius: 1rem;\n\tfont-family: 'Courier';\n\t-webkit-mask-image: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/8399/grunge.png');\n -webkit-mask-size: 944px 604px;\n mix-blend-mode: multiply;\n}\n\n\n.is-nope {\n color: #ff5858;\n border: 0.5rem double #D23;\n \t-webkit-mask-position: 2rem 3rem;\n \t\n \n}\n\n.is-draft {\n\tcolor: #ff5858;\n\tborder: 1rem double #ff5858;\n font-size: 6rem;\n font-family: \"Open sans\", Helvetica, Arial, sans-serif;\n border-radius: 0;\n padding: 0.5rem;\n} ", + "custom_format": 1, + "default_print_language": "en", + "disabled": 0, + "doc_type": "Payment Entry", + "docstatus": 0, + "doctype": "Print Format", + "font": "Default", + "font_size": 0, + "html": "{% set checkrun = frappe.get_doc(\"Check Run\", doc.check_run) %}\n{% set checkrunsetting = frappe.db.get_list(\"Check Run Settings\", {\"bank_account\": checkrun.bank_account,\n\"pay_to_account\": checkrun.pay_to_account , \"company\": checkrun.company}) %}\n{% set crs_doc = frappe.get_doc(\"Check Run Settings\", checkrunsetting[0]) %}\n{% set printable_mop = frappe.db.get_list(\"Check Run Printable MOP\", {\"parent\": crs_doc.name}, \"mode_of_payment\",\npluck=\"mode_of_payment\") %}\n{% set pdf_page_size = frappe.db.get_value(\"Print Settings\", \"Print Settings\", \"pdf_page_size\") %}\n\n{% if doc.mode_of_payment in printable_mop %}\n\n\t.print-format {\n\t\tbackground-image: url({{crs_doc.background_image or ''}});\n\t}\n\n\n
\n\t
\n\t\t
\n\t\t\t{% if doc.docstatus == 0 %}\n\t\t\tVOID DRAFT\n\t\t\tVOID DRAFT\n\t\t\t{% elif doc.docstatus == 2 or overwrite_void %}\n\t\t\tVOID\n\t\t\tVOID\n\t\t\tVOID\n\t\t\t{% endif %}\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ doc.company }}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ doc.get_formatted('posting_date') }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{{ doc.party_name }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ doc.party_name }}
\n\t\t\t\t\t{% set address = get_default_address(doc.party_type, doc.party) %}\n\t\t\t\t\t{% if address %}\n\t\t\t\t\t{{ frappe.get_doc('Address', address).get_display() }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t{% set money_number = doc.get_formatted('paid_amount')[1:].strip() %}\n\n\t\t\t\t{% if money_number|length < 18 %} {% set money_number=( money_number + '***************************'\n\t\t\t\t\t)[:18] %} {% endif %} {{ money_number }} \n\n\t\t\t\t\t\n\t\t\t\t\t\t{% set money_in_words = frappe.utils.money_in_words(doc.paid_amount)[:-5] %}\n\t\t\t\t\t\t{% if money_in_words|length < 90 %} {% set money_in_words=(money_in_words\n\t\t\t\t\t\t\t+ '************************************************************************' )[:100] %} {%\n\t\t\t\t\t\t\tendif %} {{ money_in_words }} \n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{{ doc.check_memo or '' }} {% if test_lines %} MEMO {% endif %}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSIGNATURE\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tCHECK#\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tACCOUNT NUMBER {{ doc.account_no or '' }}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tROUTING_NUMBER\n\t\t\t\t\t\t\t\n\t\t
\n\t
\n\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{% if crs_doc.secondary_print_format or (not crs_doc.secondary_print_format and doc.references|length > 6) %}\n\t\t\t\t\n\t\t\t\t
{{doc.party_name}} {{ frappe.utils.formatdate(doc.reference_date) or '' }} {{doc.get_formatted(\"base_paid_amount\")}}
\n\t\t\t\t
\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\t{{ reference.reference_name }}\n\t\t\t\t\t{{ \", \" if not loop.last else \"\" }}\n\t\t\t\t{% endfor %}\n\t\t\t{% else %}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t Date \n\t\t\t\t\t Reference \n\t\t\t\t\t Amount \n\t\t\t\t\t Payment \n\t\t\t\t\n\t\t\t\t{% for reference in doc.references %}\n\t\t\t\t\n\t\t\t\t\t{% if reference.reference_doctype == 'Purchase Invoice' %}\n\t\t\t\t\t{{ frappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"bill_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Sales Invoice' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_date\")) or \"\"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"po_no\") or \"\" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Expense Claim' %}\n\t\t\t\t\t{{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% elif reference.reference_doctype == 'Journal Entry' %}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.formatdate(frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"posting_date\")) or \" \"}}\n\t\t\t\t\t {{ frappe.db.get_value(reference.reference_doctype,\n\t\t\t\t\t\treference.reference_name, \"name\") or \" \" }}\n\t\t\t\t\t{% endif %}\n\t\t\t\t\t {{ frappe.utils.fmt_money(reference.get_formatted('total_amount'),\n\t\t\t\t\t\t2, 'USD')}}\n\t\t\t\t\t {{\n\t\t\t\t\t\tfrappe.utils.fmt_money(reference.get_formatted('allocated_amount'), 2, 'USD')}}\n\t\t\t\t\n\t\t\t\t{% endfor %}\n\t\t\t\t\n\t\t\t{% endif %}\n\t\t
\n\t
\n
\n
\n{% endif %}", + "idx": 0, + "line_breaks": 0, + "margin_bottom": 0.0, + "margin_left": 0.0, + "margin_right": 0.0, + "margin_top": 0.0, + "modified": "2025-06-11 06:04:46.728006", + "modified_by": "Administrator", + "module": "Check Run", + "name": "Example Voucher", + "owner": "Administrator", + "print_format_builder": 0, + "print_format_builder_beta": 0, + "print_format_type": "Jinja", + "raw_printing": 0, + "show_section_headings": 0, + "standard": "Yes" +} diff --git a/check_run/tests/setup.py b/check_run/tests/setup.py index 22239df2..74e3be5f 100644 --- a/check_run/tests/setup.py +++ b/check_run/tests/setup.py @@ -13,12 +13,12 @@ def before_test(): - # avoid call to _ensure_idle_system in ERPNext's account controller - frappe.flags.in_test = True + # avoid call to _ensure_idle_system in ERPNext's account controller + frappe.flags.in_test = True - frappe.clear_cache() - today = frappe.utils.getdate() - setup_complete( + frappe.clear_cache() + today = frappe.utils.getdate() + setup_complete( { "currency": "USD", "full_name": "Administrator", @@ -37,16 +37,16 @@ def before_test(): "bank_account": "Primary Checking", } ) - enable_all_roles_and_domains() - set_defaults_for_tests() - frappe.db.commit() - create_test_data() - for modu in frappe.get_all("Module Onboarding"): - frappe.db.set_value("Module Onboarding", modu, "is_complete", 1) - frappe.set_value("Website Settings", "Website Settings", "home_page", "login") - frappe.db.commit() + enable_all_roles_and_domains() + set_defaults_for_tests() + frappe.db.commit() + create_test_data() + for modu in frappe.get_all("Module Onboarding"): + frappe.db.set_value("Module Onboarding", modu, "is_complete", 1) + frappe.set_value("Website Settings", "Website Settings", "home_page", "login") + frappe.db.commit() - frappe.flags.in_test = False + frappe.flags.in_test = False def create_test_data(): diff --git a/check_run/tests/test_check_run.py b/check_run/tests/test_check_run.py index a2926fa3..964515e2 100644 --- a/check_run/tests/test_check_run.py +++ b/check_run/tests/test_check_run.py @@ -1,4 +1,3 @@ -import json import datetime import pytest diff --git a/check_run/tests/test_payment_entry.py b/check_run/tests/test_payment_entry.py index d89b2ead..6946e91f 100644 --- a/check_run/tests/test_payment_entry.py +++ b/check_run/tests/test_payment_entry.py @@ -3,12 +3,9 @@ import frappe from check_run.check_run.doctype.check_run.check_run import ( - get_check_run_settings, get_entries, - check_for_draft_check_run, ) from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry -from check_run.tests.test_check_run import cr year = datetime.date.today().year

3LFkvdAn;hkQo#exBnsSW5FH+JvZVrN9XddE>M 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 diff --git a/docs/version-14/en/assets/print_format_example_voucher.png b/docs/version-14/en/assets/print_format_example_voucher.png new file mode 100644 index 0000000000000000000000000000000000000000..24d0431bae99857ec1b5b799653e4326c46da99b GIT binary patch literal 179503 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 z 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 %bRsF>)8WwlBMFSFr^J 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 Kw)nyGSN{hH@9pCN literal 0 HcmV?d00001 diff --git a/docs/version-14/en/assets/print_format_secondary.png b/docs/version-14/en/assets/print_format_secondary.png new file mode 100644 index 0000000000000000000000000000000000000000..5819c9442d278b0ce51a3235ba4c93a6f0f74481 GIT binary patch literal 117591 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 Q*T5eM5gFk^!53ct2ebB8BLDyZ literal 206946 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