def irs_1099_print(filters): if not filters: frappe._dict({ "company": frappe.db.get_default("Company"), "fiscal_year": frappe.db.get_default("Fiscal Year") }) else: filters = frappe._dict(json.loads(filters)) fiscal_year_doc = get_fiscal_year(fiscal_year=filters.fiscal_year, as_dict=True) fiscal_year = cstr(fiscal_year_doc.year_start_date.year) company_address = get_payer_address_html(filters.company) company_tin = frappe.db.get_value("Company", filters.company, "tax_id") columns, data = execute(filters) template = frappe.get_doc("Print Format", "IRS 1099 Form").html output = PdfFileWriter() for row in data: row["fiscal_year"] = fiscal_year row["company"] = filters.company row["company_tin"] = company_tin row["payer_street_address"] = company_address row["recipient_street_address"], row["recipient_city_state"] = get_street_address_html( "Supplier", row.supplier) row["payments"] = fmt_money(row["payments"], precision=0, currency="USD") pdf = get_pdf(render_template(template, row), output=output if output else None) frappe.local.response.filename = f"{filters.fiscal_year} {filters.company} IRS 1099 Forms{IRS_1099_FORMS_FILE_EXTENSION}" frappe.local.response.filecontent = read_multi_pdf(output) frappe.local.response.type = "download"
def make_remarks(principal=None): remarks = 'Payment received' if principal: remarks += '. Capital: {}'.format( fmt_money(principal, precision=0, currency=frappe.defaults.get_user_default('currency'))) return remarks
def add_loan_gl_entries(self): remarks = 'Loan disbursed' if self.recovered_partially: remarks = 'Opening for original {}'.format( fmt_money( self.amount, precision=0, currency=frappe.defaults.get_user_default('currency'))) gl_entries = [ self.get_gl_dict({ 'account': self.loan_account, 'debit': self.amount, }), self.get_gl_dict({ 'account': self.payment_account, 'credit': self.amount, 'against': self.customer, 'remarks': remarks, }) ] if self.recovered_partially: temp_account = 'Temporary Opening - {}'.format( frappe.db.get_value('Company', self.company, 'abbr')) gl_entries.append( self.get_gl_dict({ 'account': self.loan_account, 'credit': self.recovered_amount, 'is_opening': True })) gl_entries.append( self.get_gl_dict({ 'account': temp_account, 'debit': self.recovered_amount, })) gl_entries.append( self.get_gl_dict({ 'account': self.payment_account, 'debit': self.recovered_amount, 'against': self.customer, })) gl_entries.append( self.get_gl_dict({ 'account': temp_account, 'credit': self.recovered_amount, })) return gl_entries
def fmt_money(self, amount): return fmt_money(amount, precision=0, currency=frappe.defaults.get_user_default('currency'))