コード例 #1
0
def repost(doc):
    try:
        doc.set_status('In Progress')
        frappe.db.commit()

        repost_sl_entries(doc)
        repost_gl_entries(doc)
        check_if_stock_and_account_balance_synced(
            doc.posting_date, doc.company)

        doc.set_status('Completed')
    except Exception:
        frappe.db.rollback()
        traceback = frappe.get_traceback()
        frappe.log_error(traceback)

        message = frappe.message_log.pop()
        if traceback:
            message += "<br>" + "Traceback: <br>" + traceback
        frappe.db.set_value(doc.doctype, doc.name, 'error_log', message)

        notify_error_to_stock_managers(doc, message)
        doc.set_status('Failed')
        raise
    finally:
        frappe.db.commit()
コード例 #2
0
	def on_submit(self):
		self.validate_cheque_info()
		self.check_credit_limit()
		self.make_gl_entries()
		self.update_advance_paid()
		self.update_expense_claim()
		self.update_inter_company_jv()
		self.update_invoice_discounting()
		check_if_stock_and_account_balance_synced(self.posting_date,
			self.company, self.doctype, self.name)
コード例 #3
0
	def repost_future_sle_and_gle(self):
		args = frappe._dict({
			"posting_date": self.posting_date,
			"posting_time": self.posting_time,
			"voucher_type": self.doctype,
			"voucher_no": self.name,
			"company": self.company
		})
		if future_sle_exists(args):
			create_repost_item_valuation_entry(args)
		elif not is_reposting_pending():
			check_if_stock_and_account_balance_synced(self.posting_date,
				self.company, self.doctype, self.name)
コード例 #4
0
def repost_entries():
    riv_entries = get_repost_item_valuation_entries()

    for row in riv_entries:
        doc = frappe.get_cached_doc('Repost Item Valuation', row.name)
        repost(doc)

    riv_entries = get_repost_item_valuation_entries()
    if riv_entries:
        return

    for d in frappe.get_all('Company',
                            filters={'enable_perpetual_inventory': 1}):
        check_if_stock_and_account_balance_synced(today(), d.name)