本文整理匯總了Python中webnotes.model.doclist.DocList.submit方法的典型用法代碼示例。如果您正苦於以下問題:Python DocList.submit方法的具體用法?Python DocList.submit怎麽用?Python DocList.submit使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類webnotes.model.doclist.DocList
的用法示例。
在下文中一共展示了DocList.submit方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: import_vouchers
# 需要導入模塊: from webnotes.model.doclist import DocList [as 別名]
# 或者: from webnotes.model.doclist.DocList import submit [as 別名]
def import_vouchers(common_values, data, start_idx, import_type):
from webnotes.model.doc import Document
from webnotes.model.doclist import DocList
from webnotes.model.code import get_obj
from accounts.utils import get_fiscal_year
from webnotes.utils.dateutils import parse_date
messages = []
def get_account_details(account):
acc_details = webnotes.conn.sql("""select is_pl_account,
master_name from tabAccount where name=%s""", account, as_dict=1)
if not acc_details:
webnotes.msgprint("%s is not an Account" % account, raise_exception=1)
return acc_details[0]
def apply_cost_center_and_against_invoice(detail, d):
account = get_account_details(detail.account)
if account.is_pl_account=="Yes":
detail.cost_center = d.cost_center
if account.master_name:
map_fields(["against_sales_invoice:against_invoice",
"against_purhase_invoice:against_voucher",
"against_journal_voucher:against_jv"], d, detail.fields)
webnotes.conn.commit()
for i in xrange(len(data)):
d = data[i][0]
jv = webnotes.DictObj()
try:
d.posting_date = parse_date(d.posting_date)
d.due_date = d.due_date and parse_date(d.due_date) or None
if d.ref_number:
if not d.ref_date:
raise webnotes.ValidationError, \
"""Ref Date is Mandatory if Ref Number is specified"""
d.ref_date = parse_date(d.ref_date)
d.company = common_values.company
jv = Document("Journal Voucher")
map_fields(["voucher_type", "posting_date", "naming_series", "remarks:user_remark",
"ref_number:cheque_no", "ref_date:cheque_date", "is_opening",
"amount:total_debit", "amount:total_credit", "due_date", "company"], d, jv.fields)
jv.fiscal_year = get_fiscal_year(jv.posting_date)[0]
details = []
if import_type == "Voucher Import: Two Accounts":
detail1 = Document("Journal Voucher Detail")
detail1.parent = True
detail1.parentfield = "entries"
map_fields(["debit_account:account","amount:debit"], d, detail1.fields)
apply_cost_center_and_against_invoice(detail1, d)
detail2 = Document("Journal Voucher Detail")
detail2.parent = True
detail2.parentfield = "entries"
map_fields(["credit_account:account","amount:credit"], d, detail2.fields)
apply_cost_center_and_against_invoice(detail2, d)
details = [detail1, detail2]
elif import_type == "Voucher Import: Multiple Accounts":
accounts = data[i][1]
for acc in accounts:
detail = Document("Journal Voucher Detail")
detail.parent = True
detail.parentfield = "entries"
detail.account = acc
detail.debit = flt(accounts[acc]) > 0 and flt(accounts[acc]) or 0
detail.credit = flt(accounts[acc]) < 0 and -1*flt(accounts[acc]) or 0
apply_cost_center_and_against_invoice(detail, d)
details.append(detail)
if not details:
messages.append("""<p style='color: red'>No accounts found.
If you entered accounts correctly, please check template once</p>""")
return
webnotes.conn.begin()
doclist = DocList([jv]+details)
doclist.submit()
webnotes.conn.commit()
messages.append("""<p style='color: green'>[row #%s]
<a href=\"#Form/Journal Voucher/%s\">%s</a> imported</p>""" \
% ((start_idx + 1) + i, jv.name, jv.name))
except Exception, e:
webnotes.conn.rollback()
err_msg = webnotes.message_log and webnotes.message_log[0] or unicode(e)
messages.append("<p style='color: red'>[row #%s] %s failed: %s</p>" \
% ((start_idx + 1) + i, jv.name or "", err_msg or "No message"))
webnotes.errprint(webnotes.getTraceback())
webnotes.message_log = []