Merge branch 'master' of github.com:webnotes/erpnext into unicode

Conflicts:
	erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
This commit is contained in:
Anand Doshi 2012-08-06 13:36:19 +05:30
commit 1c2b192be6

View File

@ -8,11 +8,11 @@
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# Please edit this list and import only required elements # Please edit this list and import only required elements
from __future__ import unicode_literals from __future__ import unicode_literals
@ -35,86 +35,86 @@ convert_to_lists = webnotes.conn.convert_to_lists
class DocType: class DocType:
def __init__(self, d, dl=[]): def __init__(self, d, dl=[]):
self.doc, self.doclist = d,dl self.doc, self.doclist = d,dl
def get_stock_uom(self, item_code): def get_stock_uom(self, item_code):
return {'current_stock_uom': cstr(get_value('Item', item_code, 'stock_uom'))} return {'current_stock_uom': cstr(get_value('Item', item_code, 'stock_uom'))}
def validate_mandatory(self): def validate_mandatory(self):
if not cstr(self.doc.item_code): if not cstr(self.doc.item_code):
msgprint("Please Enter an Item.") msgprint("Please Enter an Item.")
raise Exception raise Exception
if not cstr(self.doc.new_stock_uom): if not cstr(self.doc.new_stock_uom):
msgprint("Please Enter New Stock UOM.") msgprint("Please Enter New Stock UOM.")
raise Exception raise Exception
if cstr(self.doc.current_stock_uom) == cstr(self.doc.new_stock_uom): if cstr(self.doc.current_stock_uom) == cstr(self.doc.new_stock_uom):
msgprint("Current Stock UOM and Stock UOM are same.") msgprint("Current Stock UOM and Stock UOM are same.")
raise Exception raise Exception
# check conversion factor # check conversion factor
if not flt(self.doc.conversion_factor): if not flt(self.doc.conversion_factor):
msgprint("Please Enter Conversion Factor.") msgprint("Please Enter Conversion Factor.")
raise Exception raise Exception
stock_uom = sql("select stock_uom from `tabItem` where name = '%s'" % self.doc.item_code) stock_uom = sql("select stock_uom from `tabItem` where name = '%s'" % self.doc.item_code)
stock_uom = stock_uom and stock_uom[0][0] stock_uom = stock_uom and stock_uom[0][0]
if cstr(self.doc.new_stock_uom) == cstr(stock_uom): if cstr(self.doc.new_stock_uom) == cstr(stock_uom):
msgprint("Item Master is already updated with New Stock UOM " + cstr(self.doc.new_stock_uom)) msgprint("Item Master is already updated with New Stock UOM " + cstr(self.doc.new_stock_uom))
raise Exception raise Exception
def update_item_master(self): def update_item_master(self):
# update stock uom in item master # update stock uom in item master
sql("update `tabItem` set stock_uom = '%s' where name = '%s' " % (self.doc.new_stock_uom, self.doc.item_code)) sql("update `tabItem` set stock_uom = '%s' where name = '%s' " % (self.doc.new_stock_uom, self.doc.item_code))
# acknowledge user # acknowledge user
msgprint("New Stock UOM : " + cstr(self.doc.new_stock_uom) + " updated in Item : " + cstr(self.doc.item_code)) msgprint("New Stock UOM : " + cstr(self.doc.new_stock_uom) + " updated in Item : " + cstr(self.doc.item_code))
def update_bin(self): def update_bin(self):
# update bin # update bin
if flt(self.doc.conversion_factor) != flt(1): if flt(self.doc.conversion_factor) != flt(1):
sql("update `tabBin` set stock_uom = '%s' , indented_qty = ifnull(indented_qty,0) * %s, ordered_qty = ifnull(ordered_qty,0) * %s, reserved_qty = ifnull(reserved_qty,0) * %s, planned_qty = ifnull(planned_qty,0) * %s, projected_qty = actual_qty + ordered_qty + indented_qty + planned_qty - reserved_qty where item_code = '%s'" % (self.doc.new_stock_uom, self.doc.conversion_factor, self.doc.conversion_factor, self.doc.conversion_factor, self.doc.conversion_factor, self.doc.item_code) ) sql("update `tabBin` set stock_uom = '%s' , indented_qty = ifnull(indented_qty,0) * %s, ordered_qty = ifnull(ordered_qty,0) * %s, reserved_qty = ifnull(reserved_qty,0) * %s, planned_qty = ifnull(planned_qty,0) * %s, projected_qty = actual_qty + ordered_qty + indented_qty + planned_qty - reserved_qty where item_code = '%s'" % (self.doc.new_stock_uom, self.doc.conversion_factor, self.doc.conversion_factor, self.doc.conversion_factor, self.doc.conversion_factor, self.doc.item_code) )
else: else:
sql("update `tabBin` set stock_uom = '%s' where item_code = '%s'" % (self.doc.new_stock_uom, self.doc.item_code) ) sql("update `tabBin` set stock_uom = '%s' where item_code = '%s'" % (self.doc.new_stock_uom, self.doc.item_code) )
# acknowledge user # acknowledge user
msgprint(" All Bin's Updated Successfully.") msgprint(" All Bin's Updated Successfully.")
def update_stock_ledger_entry(self): def update_stock_ledger_entry(self):
# update stock ledger entry # update stock ledger entry
if flt(self.doc.conversion_factor) != flt(1): if flt(self.doc.conversion_factor) != flt(1):
sql("update `tabStock Ledger Entry` set stock_uom = '%s', actual_qty = ifnull(actual_qty,0) * '%s' where item_code = '%s' " % (self.doc.new_stock_uom, self.doc.conversion_factor, self.doc.item_code)) sql("update `tabStock Ledger Entry` set stock_uom = '%s', actual_qty = ifnull(actual_qty,0) * '%s' where item_code = '%s' " % (self.doc.new_stock_uom, self.doc.conversion_factor, self.doc.item_code))
else: else:
sql("update `tabStock Ledger Entry` set stock_uom = '%s' where item_code = '%s' " % (self.doc.new_stock_uom, self.doc.item_code)) sql("update `tabStock Ledger Entry` set stock_uom = '%s' where item_code = '%s' " % (self.doc.new_stock_uom, self.doc.item_code))
# acknowledge user # acknowledge user
msgprint("Stock Ledger Entries Updated Successfully.") msgprint("Stock Ledger Entries Updated Successfully.")
# update item valuation # update item valuation
if flt(self.doc.conversion_factor) != flt(1): if flt(self.doc.conversion_factor) != flt(1):
wh = sql("select name from `tabWarehouse`") wh = sql("select name from `tabWarehouse`")
for w in wh: for w in wh:
bin = sql("select name from `tabBin` where item_code = '%s' and warehouse = '%s'" % (self.doc.item_code, w[0])) bin = sql("select name from `tabBin` where item_code = '%s' and warehouse = '%s'" % (self.doc.item_code, w[0]))
if bin and bin[0][0]: if bin and bin[0][0]:
get_obj("Bin", bin[0][0]).update_entries_after(posting_date = '', posting_time = '') get_obj("Bin", bin[0][0]).update_entries_after(posting_date = '', posting_time = '')
# acknowledge user # acknowledge user
msgprint("Item Valuation Updated Successfully.") msgprint("Item Valuation Updated Successfully.")
# Update Stock UOM # Update Stock UOM
def update_stock_uom(self): def update_stock_uom(self):
# validate mandatory # validate mandatory
self.validate_mandatory() self.validate_mandatory()
# update item master # update item master
self.update_item_master() self.update_item_master()
# update stock ledger entry # update stock ledger entry
self.update_stock_ledger_entry() self.update_stock_ledger_entry()
# update bin # update bin
self.update_bin() self.update_bin()
get_obj("Item", self.doc.item_code).on_update() get_obj("Item", self.doc.item_code).on_update()