Пример #1
0
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"
Пример #2
0
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
Пример #3
0
 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
Пример #4
0
 def fmt_money(self, amount):
     return fmt_money(amount,
                      precision=0,
                      currency=frappe.defaults.get_user_default('currency'))