本文整理汇总了Python中webnotes.model.doc.Document.ref_rate方法的典型用法代码示例。如果您正苦于以下问题:Python Document.ref_rate方法的具体用法?Python Document.ref_rate怎么用?Python Document.ref_rate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类webnotes.model.doc.Document
的用法示例。
在下文中一共展示了Document.ref_rate方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: update_prices
# 需要导入模块: from webnotes.model.doc import Document [as 别名]
# 或者: from webnotes.model.doc.Document import ref_rate [as 别名]
def update_prices(self):
import csv
data = csv.reader(self.get_csv_data().splitlines())
updated = 0
for line in data:
if len(line)==3:
# if item exists
if sql("select name from tabItem where name=%s", line[0]):
if self.is_currency_valid(line[2]):
# if price exists
ref_ret_detail = sql("select name from `tabRef Rate Detail` where parent=%s and price_list_name=%s and ref_currency=%s", \
(line[0], self.doc.name, line[2]))
if ref_ret_detail:
sql("update `tabRef Rate Detail` set ref_rate=%s where name=%s", (line[1], ref_ret_detail[0][0]))
else:
d = Document('Ref Rate Detail')
d.parent = line[0]
d.parentfield = 'ref_rate_details'
d.parenttype = 'Item'
d.price_list_name = self.doc.name
d.ref_rate = line[1]
d.ref_currency = line[2]
d.save(1)
updated += 1
else:
msgprint("[Ignored] Unknown currency '%s' for Item '%s'" % (line[2], line[0]))
else:
msgprint("[Ignored] Did not find Item '%s'" % line[1])
else:
msgprint("[Ignored] Incorrect format: %s" % str(line))
msgprint("<b>%s</b> items updated" % updated)
示例2: update_prices
# 需要导入模块: from webnotes.model.doc import Document [as 别名]
# 或者: from webnotes.model.doc.Document import ref_rate [as 别名]
def update_prices(self):
from webnotes.utils.datautils import read_csv_content_from_attached_file
data = read_csv_content_from_attached_file(self.doc)
webnotes.conn.auto_commit_on_many_writes = 1
updated = 0
for line in data:
if line and len(line)==3 and line[0]!='Item':
# if item exists
if webnotes.conn.sql("select name from tabItem where name=%s", line[0]):
if self.is_currency_valid(line[2]):
# if price exists
ref_ret_detail = webnotes.conn.sql("select name from `tabItem Price` where parent=%s and price_list_name=%s and ref_currency=%s", \
(line[0], self.doc.name, line[2]))
if ref_ret_detail:
webnotes.conn.sql("update `tabItem Price` set ref_rate=%s where name=%s", (line[1], ref_ret_detail[0][0]))
else:
d = Document('Item Price')
d.parent = line[0]
d.parentfield = 'ref_rate_details'
d.parenttype = 'Item'
d.price_list_name = self.doc.name
d.ref_rate = line[1]
d.ref_currency = line[2]
d.save(1)
updated += 1
else:
msgprint("[Ignored] Unknown currency '%s' for Item '%s'" % (line[2], line[0]))
else:
msgprint("[Ignored] Did not find Item '%s'" % line[1])
msgprint("<b>%s</b> items updated" % updated)
webnotes.conn.auto_commit_on_many_writes = 0
示例3: create_item_price
# 需要导入模块: from webnotes.model.doc import Document [as 别名]
# 或者: from webnotes.model.doc.Document import ref_rate [as 别名]
def create_item_price(self):
item=webnotes.conn.sql("select item_code from `tabItem Price` where price_list='Standard Selling'",debug=1,as_list=1)
#webnotes.errprint(item)
if item:
if [self.doc.name] in item:
#webnotes.errprint("in if loop")
webnotes.conn.sql("""update `tabItem Price` set ref_rate='%s' where item_code='%s' and price_list='Standard Selling'"""%(self.doc.total_rate,self.doc.name))
webnotes.conn.sql('commit')
else:
#webnotes.errprint("else")
d=Document('Item Price')
d.price_list='Standard Selling'
d.item_code=self.doc.name
d.selling=1
d.item_name=self.doc.item_name
d.item_description=self.doc.description
d.ref_rate=self.doc.total_rate
d.save()
#webnotes.errprint(d)
else:
pass
示例4: create_invoice
# 需要导入模块: from webnotes.model.doc import Document [as 别名]
# 或者: from webnotes.model.doc.Document import ref_rate [as 别名]
def create_invoice(auth_key,invoice_type,customer,serial_number,dattime,_type='POST'):
login =[]
loginObj = {}
if len(auth_key[1:-1])<=0 or len(dattime[1:-1])<=0 or len(customer[1:-1])<=0 or len(serial_number[1:-1])<=0 :
loginObj['status']='401'
loginObj['error']='Incomplete data to generate Sales Invoice , Please provide token no , Datetime,customer and serial no'
return loginObj
qr="select name from `tabauth keys` where auth_key="+auth_key
res=webnotes.conn.sql(qr)
rgn=webnotes.conn.sql("select region from `tabFranchise` where contact_email='"+res[0][0]+"'")
zz=serial_number[1:-1].count(' ')
xx=serial_number[1:-1].replace('[','').split(' ')
#xxx=xx.replace(' ','\n')
yy="select item_code,item_name,description from `tabSerial No` where name='"+cstr(xx[0])+"'"
zzz=webnotes.conn.sql(yy)
if not zzz:
loginObj['status']='402'
loginObj['error']='Invalid serails no, please try againg'
return loginObj
pp="select ref_rate from `tabItem Price` where price_list='Standard Selling' and item_code='"+zzz[0][0]+"'"
ppp=webnotes.conn.sql(pp)
if res:
from webnotes.model.doc import Document
d = Document('Sales Invoice')
d.customer=customer[1:-1]
d.customer_name=customer[1:-1]
d.region=rgn[0][0]
d.posting_date=dattime[1:-1]
d.due_date=dattime[1:-1]
d.selling_price_list='Standard Selling'
d.currency='INR'
d.territory='India'
if ppp:
d.net_total_export=ppp[0][0]*zz
d.grand_total_export=ppp[0][0]*zz
d.rounded_total_export=ppp[0][0]*zz
d.outstanding_amount=ppp[0][0]*zz
d.plc_conversion_rate=1
from webnotes.utils import nowdate
from accounts.utils import get_fiscal_year
today = nowdate()
d.fiscal_year=get_fiscal_year(today)[0]
d.debit_to=customer[1:-1]+" - P"
d.is_pos=1
d.cash_bank_account='Cash - P'
d.save()
webnotes.conn.commit()
e=Document('Sales Invoice Item')
e.item_code=zzz[0][0]
e.item_name=zzz[0][1]
e.description=zzz[0][2]
e.qty=zz
e.stock_uom='Nos'
if ppp:
e.ref_rate=ppp[0][0]
e.export_rate=ppp[0][0]
e.export_amount='0'
e.income_account='Sales - P'
e.cost_center='Main - P'
e.serial_no_=serial_number[1:-1].replace('[','').replace(']','')
e.parent=d.name
e.parenttype='Sales Invoice'
e.parentfield='entries'
e.save()
webnotes.conn.commit()
key={}
key['invoice_id_id']=d.name
login.append(key)
loginObj['status']='200'
loginObj['invoice']=login
return loginObj
else:
loginObj['status']='401'
loginObj['error']='invalid token please contact administrator'
return loginObj
示例5: create_in
# 需要导入模块: from webnotes.model.doc import Document [as 别名]
# 或者: from webnotes.model.doc.Document import ref_rate [as 别名]
#.........这里部分代码省略.........
#webnotes.errprint(g[:-2])
g1="update `tabSerial No` set warehouse='',delivery_date=CURDATE(),status='Delivered',customer='"+customer+"' where name='"+g[:-1]+"'"
webnotes.conn.sql(g1)
webnotes.conn.commit()
for hh in item_details:
h=hh['barcode']
g=h[:-2]
i="select item_code from `tabSerial No` where name='"+g+"'"
ii=webnotes.conn.sql(i)
qrt="select name from `tabauth keys` where auth_key='"+auth_key+"'"
res=webnotes.conn.sql(qrt)
net=0
if res:
a="select name from tabCustomer where name='"+customer+"'"
#webnotes.errprint(a)
b=webnotes.conn.sql(a)
#webnotes.errprint(b)
if b:
a=''
else:
#webnotes.errprint("else")
d = Document('Customer')
d.customer_name=customer
d.name=customer
d.save(new=1)
webnotes.conn.commit()
d = Document('Sales Invoice')
d.customer=customer
d.customer_name=customer
d.posting_date=dattime[1:-1]
d.due_date=dattime[1:-1]
d.selling_price_list='Standard Selling'
d.currency='INR'
d.territory=r1[0][0]
d.net_total_export=0
d.grand_total_export=0
d.rounded_total_export=0
d.plc_conversion_rate=1
d.region=r1[0][0]
from webnotes.utils import nowdate
from accounts.utils import get_fiscal_year
today = nowdate()
d.fiscal_year=get_fiscal_year(today)[0]
d.debit_to=customer[1:-1]+" - P"
d.is_pos=1
d.cash_bank_account='Cash - P'
d.save(new=1)
webnotes.conn.commit()
for x in qty_dict.keys():
e=Document('Sales Invoice Item')
e.item_code=x
e.item_name=x
e.description=x
e.qty=qty_dict[x]
e.stock_uom='Nos'
e.ref_rate=cint(rate_dict[x])/cint(qty_dict[x])
e.export_rate=cint(rate_dict[x])/cint(qty_dict[x])
e.export_amount=cint(rate_dict[x])
e.income_account='Sales - P'
e.cost_center='Main - P'
e.serial_no_=srl_dict[x]
e.parent=d.name
e.parenttype='Sales Invoice'
e.parentfield='entries'
e.save(new=1)
net+=cint(rate_dict[x])
qrs="select warranty_period from tabItem where name='"+x+"'"
#webnotes.errprint(qrs)
ress=webnotes.conn.sql(qrs)
#webnotes.errprint(ress[0][0])
if ress:
exdt=add_months(cstr(nowdate()),cint(ress[0][0]))
else:
exdt='null'
#webnotes.errprint(cstr(srl_dict[x]))
#webnotes.errprint(g)
g2="update `tabSerial No` set warehouse='', warranty_expiry_date='"+cstr(exdt)+"',delivery_date=CURDATE(),status='Delivered',customer='"+customer+"' where name='"+cstr(h[:-1])+"'"
#webnotes.errprint(g2)
#webnotes.errprint("in x in qty dict")
webnotes.conn.sql(g2)
webnotes.conn.commit()
d = Document('Sales Invoice',d.name)
d.net_total_export=net
d.net_total=net
d.grand_total_export=net
d.rounded_total_export=net
d.outstanding_amount=net
d.docstatus=1
d.save()
webnotes.conn.commit()
key={}
key['invoice_id']=d.name
login.append(key)
loginObj['status']='200'
loginObj['invoice']=login
return loginObj
else:
loginObj['status']='401'
loginObj['error']='invalid token please contact administrator'
return loginObj
示例6: create_dn
# 需要导入模块: from webnotes.model.doc import Document [as 别名]
# 或者: from webnotes.model.doc.Document import ref_rate [as 别名]
def create_dn(self):
'''
import urllib.request
import json
json_dict=[]
'''
dn=Document('Delivery Note')
dn.customer=self.doc.customer
dn.customer_name=webnotes.conn.get_value("Customer",self.doc.customer,"customer_name")
dn.company='InnoWorth'
dn.conversion_rate=1.00
dn.posting_date=nowdate()
dn.posting_time=nowtime()
dn.customer_address=webnotes.conn.get_value("Address",{"customer":self.doc.customer},"name")
dn.address_display=get_address_display(dn.customer_address)
dn.price_list_currency='INR'
dn.currency='INR'
dn.docstatus=1
dn.status="Submitted"
dn.selling_price_list='Standard Selling'
dn.fiscal_year=webnotes.conn.get_value("Global Defaults", None, "current_fiscal_year")
dn.save()
j=0
html=""
net_tot=0.00
for s in getlist(self.doclist,"purchase_receipt_details"):
j=j+1
dni=Document("Delivery Note Item")
dni.item_code=s.item_code
dni.item_name=s.item_name
dni.description=s.description
dni.qty=s.qty
dni.docstatus=1
dni.ref_rate=webnotes.conn.get_value("Item Price",{"item_code":dni.item_code,"price_list":"Standard Selling"},"ref_rate")
dni.export_rate=webnotes.conn.get_value("Item Price",{"item_code":dni.item_code,"price_list":"Standard Selling"},"ref_rate")
dni.export_amount=cstr(flt(s.qty)*flt(dni.ref_rate))
net_tot=cstr(flt(net_tot)+flt(dni.export_amount))
dni.warehouse=s.warehouse
dni.stock_uom=s.uom
dni.serial_no=s.serial_no
dni.parent=dn.name
dni.save()
update_bin=("update tabBin set actual_qty=actual_qty-"+cstr(dni.qty)+" and projected_qty=projected_qty-"+cstr(dni.qty)+" where item_code='"+dni.item_code+"' and warehouse='"+dni.warehouse+"'")
html+=("<tr><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(j)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(dni.item_code)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(dni.description)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;text-align:right;'><div>"+cstr(dni.qty)+"</div></td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(dni.stock_uom)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'><div style='text-align:right'>₹ "+cstr(dni.ref_rate)+"</div></td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'><div style='text-align: right'>₹ "+cstr(dni.export_amount)+"</div></td></tr>")
stl=Document("Stock Ledger Entry")
stl.item_code=s.item_code
stl.stock_uom=s.uom
stl.serial_no=s.serial_no
stl.warehouse=s.warehouse
stl.posting_date=nowdate()
stl.voucher_type="Delivery Note"
stl.voucher_no=dn.name
stl.voucher_detail_no=dni.name
stl.is_cancelled="No"
stl.fiscal_year=webnotes.conn.get_value("Global Defaults", None, "current_fiscal_year")
stl.actual_qty=cstr(s.qty)
qty=webnotes.conn.sql("select qty_after_transaction from `tabStock Ledger Entry` where item_code='"+s.item_code+"' and warehouse='"+s.warehouse+"' order by name desc limit 1",as_list=1)
stl.qty_after_transaction=cstr(flt(qty[0][0])-flt(s.qty))
stl.save()
if dni.serial_no:
for se in dni.serial_no:
update=webnotes.conn.sql("update `tabSerial No` set status='Delivered', warehouse=(select name from tabCustomer where 1=2) where name='"+se+"'")
#json_dict.append({"serial_no":se,"supplier_name":self.doc.supplier_name,"item_code":s.item_code})
dn_=Document("Delivery Note",dn.name)
dn_.net_total_export=cstr(net_tot)
dn_.grand_total_export=cstr(net_tot)
dn_.rounded_total_export=cstr(net_tot)
a=html_data({"posting_date":datetime.datetime.strptime(nowdate(),'%Y-%m-%d').strftime('%d/%m/%Y'),"due_date":"","customer_name":dn.customer_name,"net_total":dn_.net_total_export,"grand_total":dn_.grand_total_export,"rounded_total":dn_.rounded_total_export,"table_data":html,"date_1":"Posting Date","date_2":"","doctype":"Delivery Note","doctype_no":dn.name,"company":dn.company,"addr_name":"Address","address":dn.address_display,"tax_detail":""})
attach_file(a,[dn.name,"Selling/Kirana","Delivery Note"])
'''
示例7: service_si
# 需要导入模块: from webnotes.model.doc import Document [as 别名]
# 或者: from webnotes.model.doc.Document import ref_rate [as 别名]
def service_si(self,s):
total_amt=0.00
si=Document("Sales Invoice")
si.customer=webnotes.conn.get_value("Customer",{"innoworth_id":(s['Customer Id']).strip()},"name")
si.customer_name=webnotes.conn.get_value("Customer",{"innoworth_id":(s['Customer Id']).strip()},"name")
si.posting_date=nowdate()
si.due_date=nowdate()
si.company='InnoWorth'
si.conversion_rate=1.00
si.customer_group='Individual'
si.territory=s['Territory']
si.charge=webnotes.conn.get_value("Applicable Territory",{"territory":s['Territory']},"parent")
si.debit_to=webnotes.conn.get_value('Account',{"master_name":si.customer},'name')
si.price_list_currency='INR'
si.currency='INR'
si.selling_price_list='Standard Selling'
si.fiscal_year=webnotes.conn.get_value("Global Defaults", None, "current_fiscal_year")
si.docstatus=1
si.save()
html=""
j=0
item_list=[]
for r in s['Child']:
j=j+1
child_data=sql("select name,item_name,item_group,description,stock_uom from `tabItem` where name='"+(r['Item Name']).strip()+"'",as_list=1)
sic=Document("Sales Invoice Item")
sic.parent=si.name
sic.item_code=child_data[0][0]
sic.item_name=child_data[0][1]
sic.item_group=child_data[0][2]
sic.description=child_data[0][3]
sic.qty=(r['Qty']).strip()
sic.stock_uom=child_data[0][4]
sic.ref_rate=webnotes.conn.get_value("Item Price",{"item_code":(r['Item Name']).strip(),"price_list":"Standard Selling"},"ref_rate")
sic.export_rate=webnotes.conn.get_value("Item Price",{"item_code":(r['Item Name']).strip(),"price_list":"Standard Selling"},"ref_rate")
if child_data[0][1]:
sic.export_amount=cstr(flt(sic.ref_rate)*flt((r['Qty']).strip()))
else:
sic.export_amount=cstr((r['Qty']).strip())
total_amt=cstr(flt(total_amt)+flt(sic.export_amount))
sic.income_account='Sales - innow'
sic.cost_center='Main - innow'
sic.docstatus=1
item_list.append({"item_code":sic.item_code,"export_amt":sic.export_amount})
sic.save()
html+=("<tr><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(j)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(sic.item_code)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(sic.description)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;text-align:right;'><div>"+cstr(sic.qty)+"</div></td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(sic.stock_uom)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'><div style='text-align:right'>₹ "+cstr(sic.ref_rate)+"</div></td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'><div style='text-align: right'>₹ "+cstr(sic.export_amount)+"</div></td></tr>")
tax_total=0.00
tax_html=""
if si.charge:
tax_total=self.create_tax(si.charge,si.name,item_list,'Sales Invoice','Sales Taxes and Charges',total_amt)
tax_html=self.sales_tax_html(si.name,None,0)
si_=Document('Sales Invoice',si.name)
si_.net_total_export=cstr(total_amt)
si_.other_charges_total_export=cstr(tax_total)
si_.grand_total_export=cstr(flt(si_.net_total_export)+flt(si_.other_charges_total_export))
si_.grand_total=cstr(si_.grand_total_export)
si_.rounded_total_export=cstr(round(flt(si_.grand_total_export)))
adv=c_amt=0.00
flag=False
check=0
total=si_.grand_total_export
parent_jv=[]
advance_payment=sql("select credit,parent,name,against_account from `tabJournal Voucher Detail` where account='"+si.debit_to+"' and is_advance='Yes' and credit<>0 and ifnull(against_invoice,'')='' and docstatus=1 order by name asc",as_list=1)
if advance_payment:
for s in advance_payment:
if s[1] not in parent_jv:
parent_jv.append(s[1])
if flt(total) < flt(s[0]) and flag==False:
adv=cstr(si_.grand_total_export)
update_jv=sql("update `tabJournal Voucher Detail` set against_invoice='"+si.name+"', credit='"+cstr(total)+"' where name='"+s[2]+"'")
jv = Document("Journal Voucher Detail")
jv.account=si.debit_to
jv.cost_center= "Main - Frsh"
jv.credit= cstr(flt(s[0])-flt(total))
jv.is_advance= "Yes"
jv.parent=s[1]
jv.against_account=s[3]
jv.docstatus=1
jv.save()
flag=True
elif flag==False:
adv=cstr(flt(adv)+flt(s[0]))
total=cstr(flt(total)-flt(s[0]))
update_jv=sql("update `tabJournal Voucher Detail` set against_invoice='"+si.name+"' where name='"+s[2]+"'")
if flt(total)==0:
flag=True
else:
flag=False
si_.total_advance=cstr(adv)
si_.outstanding_amount=cstr(flt(si_.grand_total_export)-flt(adv))
si_.docstatus=1
si_.save()
if parent_jv:
self.make_adv_payment_gl(parent_jv)
data=[{"against_voucher":si.name,"account":si.debit_to,"debit":cstr(si_.grand_total_export),"credit":"0","against":"Sales - innow","against_voucher_type":"Sales Invoice","voucher_type":"Sales Invoice","voucher_no":si.name,"cost_center":""},{"against_voucher":"","account":'Sales - innow',"debit":"0","credit":cstr(total_amt),"against":si.debit_to,"against_voucher_type":"","voucher_type":"Sales Invoice","voucher_no":si.name,"cost_center":"Main - innow"}]
self.create_gl(data)
a=html_data({"posting_date":datetime.datetime.strptime(nowdate(),'%Y-%m-%d').strftime('%d/%m/%Y'),"due_date":datetime.datetime.strptime(nowdate(),'%Y-%m-%d').strftime('%d/%m/%Y'),"customer_name":si.customer_name,"net_total":si_.net_total_export,"grand_total":si_.grand_total_export,"rounded_total":si_.rounded_total_export,"table_data":html,"date_1":"Posting Date","date_2":"Due Date","doctype":"Sales Invoice","doctype_no":si.name,"company":si.company,"addr_name":"","address":"","tax_detail":tax_html})
file_path_=attach_file(a,[si.name,"Account/Kirana","Sales Invoice"])
return {"Sales Invoice":si.name,"File Copy":file_path_}
示例8: make_so
# 需要导入模块: from webnotes.model.doc import Document [as 别名]
# 或者: from webnotes.model.doc.Document import ref_rate [as 别名]
def make_so(self,args):
# coding: utf-8
net_tot=0.00
so=Document('Sales Order')
so.transaction_date=nowdate()
so.price_list_currency='INR'
so.currency='INR'
so.selling_price_list='Standard Selling'
so.customer=webnotes.conn.get_value("Customer",{"innoworth_id":(args['Customer Id']).strip()},"name")
so.customer_name=webnotes.conn.get_value("Customer",{"innoworth_id":(args['Customer Id']).strip()},"customer_name")
so.delivery_date=(args['Required Date']).strip()
so.company='InnoWorth'
so.conversion_rate=1.00
so.customer_group='Individual'
if (args['Territory']).strip():
so.territory=(args['Territory']).strip()
so.charge=webnotes.conn.get_value("Applicable Territory",{"territory":so.territory},"parent")
so.fiscal_year=webnotes.conn.get_value("Global Defaults", None, "current_fiscal_year")
so.customer_address=webnotes.conn.get_value("Address",{"customer":so.customer},"name")
so.address_display=get_address_display(so.customer_address)
so.contact_person=webnotes.conn.get_value("Contact",{"customer":so.customer},"name")
so.docstatus=1
so.status='Submitted'
so.plc_conversion_rate=1
so.save()
html=""
sr=0
item_list=[]
for j in args['Child']:
sr=sr+1
soi=Document('Sales Order Item')
soi.item_code=(j['Item Name']).strip()
soi.qty=(j['Qty']).strip()
item_details=webnotes.conn.sql("select default_warehouse,item_name,stock_uom,description from tabItem where name='"+(j['Item Name']).strip()+"'",as_list=1)
soi.reserved_warehouse=item_details[0][0]
soi.item_name=item_details[0][1]
soi.stock_uom=item_details[0][2]
soi.description=item_details[0][3]
rate=webnotes.conn.sql("select ref_rate from `tabItem Price` where price_list='Standard Selling' and item_code='"+(j['Item Name']).strip()+"'",as_list=1)
if rate:
soi.ref_rate=rate[0][0]
soi.export_rate=rate[0][0]
else:
soi.ref_rate=1
soi.export_rate=1
soi.export_amount=cstr(flt(soi.ref_rate)*flt((j['Qty']).strip()))
item_list.append({"item_code":soi.item_code,"export_amt":soi.export_amount})
net_tot=cstr(flt(net_tot)+flt(soi.export_amount))
soi.parentfield='sales_order_details'
soi.parenttype='Sales Order'
soi.docstatus=1
soi.parent=so.name
soi.save(new=1)
html+=("<tr><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(sr)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(soi.item_code)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(soi.description)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;text-align:right;'><div>"+cstr(soi.qty)+"</div></td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(soi.stock_uom)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'><div style='text-align:right'>₹ "+cstr(soi.ref_rate)+"</div></td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'><div style='text-align: right'>₹ "+cstr(soi.export_amount)+"</div></td></tr>")
data=[]
data.append({"item_code":soi.item_code,"so_qty":soi.qty,"proj_qty":(0-flt(soi.qty)),"warehouse":soi.reserved_warehouse,"bin_iqty":"","bin_pqty":"Bin.projected_qty","type":"so"})
self.update_bin(data)
tax_total=0.00
if so.charge:
tax_total=self.create_tax(so.charge,so.name,item_list,'Sales Order','Sales Taxes and Charges',net_tot)
so_=Document("Sales Order",so.name)
so_.net_total_export=net_tot
so_.other_charges_total_export=cstr(tax_total)
so_.grand_total_export=cstr(flt(so_.net_total_export)+flt(so_.other_charges_total_export))
so_.rounded_total_export=cstr(round(flt(so_.grand_total_export)))
so_.save()
a=html_data({"posting_date":datetime.datetime.strptime(nowdate(),'%Y-%m-%d').strftime('%d/%m/%Y'),"due_date":datetime.datetime.strptime(so.delivery_date,'%Y-%m-%d').strftime('%d/%m/%Y'),"customer_name":so.customer_name,"net_total":net_tot,"grand_total":net_tot,"rounded_total":net_tot,"table_data":html,"date_1":"Sales Order Date","date_2":"Expected Delivery Date","doctype":"Sales Order","doctype_no":so.name,"company":so.company,"addr_name":"Customer Address","address":so.address_display,"tax_detail":""})
file_path_=attach_file(a,[so.name,"Selling/Kirana","Sales Order"])
return {"Sales Order":so.name,"File Copy":file_path_}
示例9: make_si
# 需要导入模块: from webnotes.model.doc import Document [as 别名]
# 或者: from webnotes.model.doc.Document import ref_rate [as 别名]
def make_si(self,args):
parent=sql("select * from `tabSales Order` where name='"+(args['Sales Order No']).strip()+"'",as_dict=1)
if parent:
for r in parent:
si=Document("Sales Invoice")
si.customer=r['customer']
si.customer_name=r['customer_name']
si.posting_date=nowdate()
si.due_date=nowdate()
si.charge=r['charge']
si.company='InnoWorth'
si.conversion_rate=1.00
si.customer_group='Individual'
si.territory=r['territory']
si.debit_to=webnotes.conn.get_value('Account',{"master_name":r['customer']},'name')
si.price_list_currency='INR'
si.currency='INR'
si.selling_price_list='Standard Selling'
si.fiscal_year=webnotes.conn.get_value("Global Defaults", None, "current_fiscal_year")
si.net_total_export=cstr(r['net_total_export'])
si.grand_total_export=cstr(r['grand_total_export'])
si.other_charges_total_export=cstr(r['other_charges_total_export'])
si.grand_total=cstr(r['grand_total_export'])
si.rounded_total_export=cstr(r['rounded_total_export'])
si.save()
si=Document("Sales Invoice",si.name)
adv=c_amt=0.00
flag=False
check=0
total=si.grand_total_export
parent_jv=[]
advance_payment=sql("select credit,parent,name,against_account from `tabJournal Voucher Detail` where account='"+si.debit_to+"' and is_advance='Yes' and credit<>0 and ifnull(against_invoice,'')='' and docstatus=1 order by name asc",as_list=1)
if advance_payment:
for s in advance_payment:
if s[1] not in parent_jv:
parent_jv.append(s[1])
if flt(total) < flt(s[0]) and flag==False:
adv=cstr(si.grand_total_export)
update_jv=sql("update `tabJournal Voucher Detail` set against_invoice='"+si.name+"', credit='"+cstr(total)+"' where name='"+s[2]+"'")
jv = Document("Journal Voucher Detail")
jv.account=si.debit_to
jv.cost_center= "Main - Frsh"
jv.credit= cstr(flt(s[0])-flt(total))
jv.is_advance= "Yes"
jv.parent=s[1]
jv.against_account=s[3]
jv.docstatus=1
jv.save()
flag=True
elif flag==False:
adv=cstr(flt(adv)+flt(s[0]))
total=cstr(flt(total)-flt(s[0]))
update_jv=sql("update `tabJournal Voucher Detail` set against_invoice='"+si.name+"' where name='"+s[2]+"'")
if flt(total)==0:
flag=True
else:
flag=False
si.total_advance=cstr(adv)
si.outstanding_amount=cstr(flt(r['grand_total_export'])-flt(adv))
si.docstatus=1
si.save()
update=sql("update `tabSales Order` set per_billed='100' where name='"+cstr(r['name'])+"'")
child=sql("select * from `tabSales Order Item` where parent='"+(args['Sales Order No']).strip()+"'",as_dict=1)
html=""
j=0
credit_amt=0.00
for s in child:
j=j+1
sic=Document("Sales Invoice Item")
sic.parent=si.name
sic.item_code=s['item_code']
sic.item_name=s['item_name']
sic.item_group=s['item_group']
sic.description=s['description']
sic.qty=s['qty']
sic.stock_uom=s['stock_uom']
sic.ref_rate=s['ref_rate']
sic.amount=s['export_amount']
c_amt=cstr(flt(c_amt)+flt(sic.amount))
sic.export_rate=s['export_rate']
sic.export_amount=s['export_amount']
sic.income_account='Sales - innow'
sic.cost_center='Main - innow'
sic.warehouse=s['reserved_warehouse']
sic.sales_order=r['name']
sic.so_detail=s['name']
sic.docstatus=1
html+=("<tr><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(j)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(sic.item_code)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(sic.description)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;text-align:right;'><div>"+cstr(sic.qty)+"</div></td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'>"+cstr(sic.stock_uom)+"</td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'><div style='text-align:right'>₹ "+cstr(sic.ref_rate)+"</div></td><td style='border:1px solid rgb(153, 153, 153);word-wrap: break-word;'><div style='text-align: right'>₹ "+cstr(sic.export_amount)+"</div></td></tr>")
update=sql("update `tabSales Order Item` set billed_amt='"+cstr(s['export_amount'])+"' where name='"+cstr(s['name'])+"'")
sic.save()
tax_html=self.sales_tax_html((args['Sales Order No']).strip(),si.name,1)
if parent_jv:
self.make_adv_payment_gl(parent_jv)
data=[{"against_voucher":si.name,"account":si.debit_to,"debit":cstr(si.grand_total_export),"credit":"0","against":"Sales - innow","against_voucher_type":"Sales Invoice","voucher_type":"Sales Invoice","voucher_no":si.name,"cost_center":""},{"account":'Sales - innow',"debit":"0","credit":cstr(c_amt),"against":si.debit_to,"against_voucher_type":"","voucher_type":"Sales Invoice","voucher_no":si.name,"cost_center":"Main - innow","against_voucher":""}]
self.create_gl(data)
a=html_data({"posting_date":datetime.datetime.strptime(nowdate(),'%Y-%m-%d').strftime('%d/%m/%Y'),"due_date":datetime.datetime.strptime(nowdate(),'%Y-%m-%d').strftime('%d/%m/%Y'),"customer_name":si.customer_name,"net_total":cstr(si.net_total_export),"grand_total":cstr(si.grand_total_export),"rounded_total":cstr(si.rounded_total_export),"table_data":html,"date_1":"Posting Date","date_2":"Due Date","doctype":"Sales Invoice","doctype_no":si.name,"company":si.company,"addr_name":"","address":"","tax_detail":tax_html})
#.........这里部分代码省略.........