mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-01 19:29:10 +00:00
restructured erpnext and deleted unwanted
This commit is contained in:
0
stock/doctype/warehouse/__init__.py
Normal file
0
stock/doctype/warehouse/__init__.py
Normal file
13
stock/doctype/warehouse/warehouse.js
Normal file
13
stock/doctype/warehouse/warehouse.js
Normal file
@@ -0,0 +1,13 @@
|
||||
cur_frm.cscript.country = function(doc, cdt, cdn) {
|
||||
var mydoc=doc;
|
||||
$c('runserverobj', args={'method':'check_state', 'docs':compress_doclist([doc])},
|
||||
function(r,rt){
|
||||
if(r.message) {
|
||||
var doc = locals[mydoc.doctype][mydoc.name];
|
||||
doc.state = '';
|
||||
get_field(doc.doctype, 'state' , doc.name).options = r.message;
|
||||
refresh_field('state');
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
90
stock/doctype/warehouse/warehouse.py
Normal file
90
stock/doctype/warehouse/warehouse.py
Normal file
@@ -0,0 +1,90 @@
|
||||
# Please edit this list and import only required elements
|
||||
import webnotes
|
||||
|
||||
from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
|
||||
from webnotes.model import db_exists
|
||||
from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
|
||||
from webnotes.model.doclist import getlist, copy_doclist
|
||||
from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
|
||||
from webnotes import session, form, is_testing, msgprint, errprint
|
||||
|
||||
set = webnotes.conn.set
|
||||
sql = webnotes.conn.sql
|
||||
get_value = webnotes.conn.get_value
|
||||
in_transaction = webnotes.conn.in_transaction
|
||||
convert_to_lists = webnotes.conn.convert_to_lists
|
||||
|
||||
# -----------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
class DocType:
|
||||
def __init__(self, doc, doclist=[]):
|
||||
self.doc = doc
|
||||
self.doclist = doclist
|
||||
|
||||
def get_bin(self, item_code):
|
||||
bin = sql("select name from tabBin where item_code = '%s' and warehouse = '%s'" % (item_code, self.doc.name))
|
||||
bin = bin and bin[0][0] or ''
|
||||
if not bin:
|
||||
if not self.doc.warehouse_type :
|
||||
msgprint("[Warehouse Type is Mandatory] Please Enter warehouse type in Warehouse " + self.doc.name)
|
||||
raise Exception
|
||||
bin = Document('Bin')
|
||||
bin.item_code = item_code
|
||||
bin.stock_uom = get_value('Item', item_code, 'stock_uom')
|
||||
bin.warehouse = self.doc.name
|
||||
bin.warehouse_type = self.doc.warehouse_type
|
||||
bin_obj = get_obj(doc=bin)
|
||||
bin_obj.validate()
|
||||
bin.save(1)
|
||||
bin = bin.name
|
||||
else:
|
||||
bin_obj = get_obj('Bin',bin)
|
||||
|
||||
return bin_obj
|
||||
|
||||
|
||||
def validate_asset(self, item_code):
|
||||
if sql("select is_asset_item from tabItem where name=%s", item_code)[0][0] == 'Yes' and self.doc.warehouse_type != 'Fixed Asset':
|
||||
msgprint("Fixed Asset Item %s can only be transacted in a Fixed Asset type Warehouse" % item_code)
|
||||
raise Exception
|
||||
|
||||
|
||||
# update bin
|
||||
# ----------
|
||||
def update_bin(self, actual_qty, reserved_qty, ordered_qty, indented_qty, planned_qty, item_code, dt, sle_id = '',posting_time = '', serial_no = '', is_cancelled = 'No'):
|
||||
self.validate_asset(item_code)
|
||||
it_det = get_value('Item', item_code, 'is_stock_item')
|
||||
if it_det and it_det == 'Yes':
|
||||
bin = self.get_bin(item_code)
|
||||
bin.update_stock(actual_qty, reserved_qty, ordered_qty, indented_qty, planned_qty, dt, sle_id, posting_time, serial_no, is_cancelled)
|
||||
return bin
|
||||
else:
|
||||
msgprint("[Stock Update] Ignored %s since it is not a stock item" % item_code)
|
||||
|
||||
# repost stock
|
||||
# ------------
|
||||
def repost_stock(self):
|
||||
bl = sql("select name from tabBin where warehouse=%s", self.doc.name)
|
||||
for b in bl:
|
||||
bobj = get_obj('Bin',b[0])
|
||||
bobj.update_item_valuation()
|
||||
|
||||
sql("COMMIT")
|
||||
sql("START TRANSACTION")
|
||||
|
||||
def check_state(self):
|
||||
return "\n" + "\n".join([i[0] for i in sql("select state_name from `tabState` where `tabState`.country='%s' " % self.doc.country)])
|
||||
|
||||
def validate(self):
|
||||
if self.doc.email_id:
|
||||
if not validate_email_add(self.doc.email_id):
|
||||
msgprint("Please enter valid Email Id.")
|
||||
raise Exception
|
||||
if not self.doc.warehouse_type:
|
||||
msgprint("[Warehouse Type is Mandatory] Please Enter Please Entry warehouse type in Warehouse " + self.doc.name)
|
||||
raise Exception
|
||||
wt = sql("select warehouse_type from `tabWarehouse` where name ='%s'" % self.doc.name)
|
||||
if cstr(self.doc.warehouse_type) != cstr(wt and wt[0][0] or ''):
|
||||
sql("update `tabStock Ledger Entry` set warehouse_type = '%s' where warehouse = '%s'" % (self.doc.warehouse_type, self.doc.name))
|
||||
msgprint("All Stock Ledger Entries Updated.")
|
||||
460
stock/doctype/warehouse/warehouse.txt
Normal file
460
stock/doctype/warehouse/warehouse.txt
Normal file
@@ -0,0 +1,460 @@
|
||||
# DocType, Warehouse
|
||||
[
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
'creation': '2010-08-08 17:09:30',
|
||||
'docstatus': 0,
|
||||
'modified': '2010-12-16 23:57:04',
|
||||
'modified_by': 'nabin@webnotestech.com',
|
||||
'owner': 'Administrator'
|
||||
},
|
||||
|
||||
# These values are common for all DocType
|
||||
{
|
||||
'_last_update': '1300788639',
|
||||
'allow_trash': 1,
|
||||
'autoname': 'field:warehouse_name',
|
||||
'colour': 'White:FFF',
|
||||
'doctype': 'DocType',
|
||||
'document_type': 'Master',
|
||||
'module': 'Stock',
|
||||
'name': '__common__',
|
||||
'search_fields': 'warehouse_type',
|
||||
'section_style': 'Tabbed',
|
||||
'server_code_error': ' ',
|
||||
'show_in_menu': 0,
|
||||
'version': 55
|
||||
},
|
||||
|
||||
# These values are common for all DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'name': '__common__',
|
||||
'parent': 'Warehouse',
|
||||
'parentfield': 'fields',
|
||||
'parenttype': 'DocType'
|
||||
},
|
||||
|
||||
# These values are common for all DocPerm
|
||||
{
|
||||
'doctype': 'DocPerm',
|
||||
'name': '__common__',
|
||||
'parent': 'Warehouse',
|
||||
'parentfield': 'permissions',
|
||||
'parenttype': 'DocType',
|
||||
'read': 1
|
||||
},
|
||||
|
||||
# DocType, Warehouse
|
||||
{
|
||||
'doctype': 'DocType',
|
||||
'name': 'Warehouse'
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'amend': 0,
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 1,
|
||||
'permlevel': 2,
|
||||
'role': 'Material User',
|
||||
'submit': 0,
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'amend': 0,
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 2,
|
||||
'permlevel': 0,
|
||||
'role': 'Material User',
|
||||
'submit': 0,
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'amend': 0,
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 3,
|
||||
'permlevel': 1,
|
||||
'role': 'Material User',
|
||||
'submit': 0,
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'amend': 0,
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 4,
|
||||
'permlevel': 2,
|
||||
'role': 'Material Manager',
|
||||
'submit': 0,
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'amend': 0,
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 5,
|
||||
'permlevel': 0,
|
||||
'role': 'Material Manager',
|
||||
'submit': 0,
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'amend': 0,
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 6,
|
||||
'permlevel': 1,
|
||||
'role': 'Material Manager',
|
||||
'submit': 0,
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 7,
|
||||
'permlevel': 1,
|
||||
'role': 'All'
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'amend': 0,
|
||||
'cancel': 1,
|
||||
'create': 1,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 8,
|
||||
'permlevel': 0,
|
||||
'role': 'Material Master Manager',
|
||||
'submit': 0,
|
||||
'write': 1
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 9,
|
||||
'permlevel': 1,
|
||||
'role': 'Material Master Manager'
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 1,
|
||||
'create': 1,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 10,
|
||||
'permlevel': 0,
|
||||
'role': 'System Manager',
|
||||
'write': 1
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'create': 0,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 11,
|
||||
'permlevel': 2,
|
||||
'role': 'System Manager',
|
||||
'write': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'trash_reason',
|
||||
'fieldtype': 'Small Text',
|
||||
'idx': 1,
|
||||
'label': 'Trash Reason',
|
||||
'oldfieldname': 'trash_reason',
|
||||
'oldfieldtype': 'Small Text',
|
||||
'permlevel': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'idx': 2,
|
||||
'label': 'Warehouse Detail',
|
||||
'oldfieldtype': 'Section Break',
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'warehouse_name',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 3,
|
||||
'label': 'Warehouse Name',
|
||||
'oldfieldname': 'warehouse_name',
|
||||
'oldfieldtype': 'Data',
|
||||
'permlevel': 0,
|
||||
'reqd': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'colour': 'White:FFF',
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'warehouse_type',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 4,
|
||||
'label': 'Warehouse Type',
|
||||
'oldfieldname': 'warehouse_type',
|
||||
'oldfieldtype': 'Link',
|
||||
'options': 'Warehouse Type',
|
||||
'permlevel': 0,
|
||||
'reqd': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'colour': 'White:FFF',
|
||||
'description': 'The valuation of items in this warehouse will be considered for the company that is specified',
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'company',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 5,
|
||||
'in_filter': 1,
|
||||
'label': 'Company',
|
||||
'oldfieldname': 'company',
|
||||
'oldfieldtype': 'Link',
|
||||
'options': 'Company',
|
||||
'permlevel': 0,
|
||||
'search_index': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'email_id',
|
||||
'fieldtype': 'Data',
|
||||
'hidden': 1,
|
||||
'idx': 6,
|
||||
'label': 'Email Id',
|
||||
'oldfieldname': 'email_id',
|
||||
'oldfieldtype': 'Data',
|
||||
'permlevel': 0,
|
||||
'print_hide': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'auto_indent_mail',
|
||||
'fieldtype': 'Select',
|
||||
'hidden': 1,
|
||||
'idx': 7,
|
||||
'label': 'Send Reorder Alert Mail ',
|
||||
'no_copy': 1,
|
||||
'oldfieldname': 'auto_indent_mail',
|
||||
'oldfieldtype': 'Select',
|
||||
'options': 'No\nYes',
|
||||
'permlevel': 0,
|
||||
'print_hide': 1,
|
||||
'report_hide': 1,
|
||||
'reqd': 0,
|
||||
'trigger': 'Client'
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'phone_no',
|
||||
'fieldtype': 'Int',
|
||||
'idx': 8,
|
||||
'label': 'Phone No',
|
||||
'oldfieldname': 'phone_no',
|
||||
'oldfieldtype': 'Int',
|
||||
'options': 'Phone',
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'mobile_no',
|
||||
'fieldtype': 'Int',
|
||||
'idx': 9,
|
||||
'label': 'Mobile No',
|
||||
'oldfieldname': 'mobile_no',
|
||||
'oldfieldtype': 'Int',
|
||||
'options': 'Phone',
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Column Break',
|
||||
'idx': 10,
|
||||
'oldfieldtype': 'Column Break',
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'address_line_1',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 11,
|
||||
'label': 'Address Line 1',
|
||||
'oldfieldname': 'address_line_1',
|
||||
'oldfieldtype': 'Data',
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'address_line_2',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 12,
|
||||
'label': 'Address Line 2',
|
||||
'oldfieldname': 'address_line_2',
|
||||
'oldfieldtype': 'Data',
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'allow_on_submit': 0,
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'country',
|
||||
'fieldtype': 'Link',
|
||||
'hidden': 0,
|
||||
'idx': 13,
|
||||
'in_filter': 0,
|
||||
'label': 'Country',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'country',
|
||||
'oldfieldtype': 'Link',
|
||||
'options': 'Country',
|
||||
'permlevel': 0,
|
||||
'print_hide': 0,
|
||||
'report_hide': 0,
|
||||
'reqd': 0,
|
||||
'search_index': 0,
|
||||
'trigger': 'Client'
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'colour': 'White:FFF',
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'state',
|
||||
'fieldtype': 'Select',
|
||||
'idx': 14,
|
||||
'label': 'State',
|
||||
'oldfieldname': 'state',
|
||||
'oldfieldtype': 'Select',
|
||||
'options': '\nSelect country first',
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'city',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 15,
|
||||
'label': 'City',
|
||||
'oldfieldname': 'city',
|
||||
'oldfieldtype': 'Data',
|
||||
'permlevel': 0,
|
||||
'reqd': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'pin',
|
||||
'fieldtype': 'Int',
|
||||
'idx': 16,
|
||||
'label': 'PIN',
|
||||
'oldfieldname': 'pin',
|
||||
'oldfieldtype': 'Int',
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'idx': 17,
|
||||
'label': 'Repost Stock',
|
||||
'oldfieldtype': 'Section Break',
|
||||
'permlevel': 2
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Button',
|
||||
'hidden': 0,
|
||||
'idx': 18,
|
||||
'label': 'Repost Stock Ledger',
|
||||
'oldfieldtype': 'Button',
|
||||
'options': 'repost_stock',
|
||||
'permlevel': 2
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'test_field2',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 19,
|
||||
'label': 'Test Field2',
|
||||
'oldfieldname': 'test_field2',
|
||||
'oldfieldtype': 'Data',
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'test_field1',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 20,
|
||||
'label': 'Test Field1',
|
||||
'oldfieldname': 'test_field1',
|
||||
'oldfieldtype': 'Data',
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'test_field',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 21,
|
||||
'label': 'Test Field',
|
||||
'oldfieldname': 'test_field',
|
||||
'oldfieldtype': 'Data',
|
||||
'permlevel': 0
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user