budget distribution cleanup and formatting of markdown

This commit is contained in:
Rushabh Mehta 2012-07-11 14:39:33 +05:30
parent e3dd54c220
commit 9acf463427
12 changed files with 77 additions and 60 deletions

View File

@ -5,7 +5,7 @@
{
'creation': '2012-07-03 13:30:50',
'docstatus': 0,
'modified': '2012-07-11 09:21:01',
'modified': '2012-07-11 13:58:44',
'modified_by': u'Administrator',
'owner': u'Administrator'
},
@ -17,6 +17,7 @@
'allow_trash': 1,
'colour': u'White:FFF',
'default_print_format': u'Standard',
'description': u'An **Account** is heading under which financial and business transactions are carried on. For example, \u201cTravel Expense\u201d is an account, \u201cCustomer Zoe\u201d, \u201cSupplier Mae\u201d are accounts. \n\n**Note:** ERPNext creates accounts for Customers and Suppliers automatically.\n\n### Groups and Ledgers\n\nThere are two main kinds of Accounts in ERPNext - Group and Ledger. Groups can have sub-groups and ledgers within them, whereas ledgers are the leaf nodes of your chart and cannot be further classified.\n\nAccounting Transactions can only be made against Ledger Accounts (not Groups)\n',
'doctype': 'DocType',
'document_type': u'Master',
'in_create': 1,

View File

@ -20,6 +20,11 @@ cur_frm.cscript.onload = function(doc,cdt,cdn){
refresh_field('budget_distribution_details');
}
$c('runserverobj',args={'method' : 'get_months', 'docs' : compress_doclist(make_doclist(doc.doctype, doc.name))},callback1);
$c('runserverobj',args={'method' : 'get_months', 'docs' :
compress_doclist(make_doclist(doc.doctype, doc.name))},callback1);
}
}
cur_frm.cscript.refresh = function(doc,cdt,cdn){
cur_frm.toggle_fields('distribution_id', doc.__islocal);
}

View File

@ -14,31 +14,20 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# 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, getchildren, make_autoname
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
# -----------------------------------------------------------------------------------------
from webnotes.utils import flt
from webnotes.model.doc import addchild
from webnotes.model.doclist import getlist
from webnotes import msgprint
class DocType:
def __init__(self,doc,doclist=[]):
self.doc,self.doclist = doc,doclist
def get_months(self):
month_list = ['January','February','March','April','May','June','July','August','September','October','November','December']
month_list = ['January','February','March','April','May','June','July','August','September',
'October','November','December']
idx =1
for m in month_list:
mnth = addchild(self.doc,'budget_distribution_details','Budget Distribution Detail',1,self.doclist)
@ -50,9 +39,5 @@ class DocType:
total = 0
for d in getlist(self.doclist,'budget_distribution_details'):
total = flt(total) + flt(d.percentage_allocation)
if total > 100:
msgprint("Percentage Allocation should not exceed 100%.")
raise Exception
elif total < 100:
msgprint("Percentage Allocation should not recede 100%.")
raise Exception
if total != 100:
msgprint("Percentage Allocation should be equal to 100%%. Currently it is %s%%" % total, raise_exception=1)

View File

@ -3,9 +3,9 @@
# These values are common in all dictionaries
{
'creation': '2012-03-27 14:35:41',
'creation': '2012-07-03 13:30:50',
'docstatus': 0,
'modified': '2012-03-27 14:35:41',
'modified': '2012-07-11 14:37:30',
'modified_by': u'Administrator',
'owner': u'Administrator'
},
@ -15,6 +15,7 @@
'allow_trash': 1,
'autoname': u'field:distribution_id',
'colour': u'White:FFF',
'description': u'**Budget Distribution** helps you distribute your budget across months if you have seasonality in your business.\n\nTo distribute a budget using this distribution, set this **Budget Distribution** in the **Cost Center**',
'doctype': 'DocType',
'module': u'Accounts',
'name': '__common__',
@ -22,7 +23,7 @@
'section_style': u'Simple',
'server_code_error': u' ',
'show_in_menu': 0,
'version': 24
'version': 1
},
# These values are common for all DocField
@ -108,13 +109,16 @@
# DocField
{
'colour': u'White:FFF',
'description': u'Name of the Budget Distribution',
'doctype': u'DocField',
'fieldname': u'distribution_id',
'fieldtype': u'Data',
'label': u'Distribution ID',
'label': u'Distribution Name',
'oldfieldname': u'distribution_id',
'oldfieldtype': u'Data',
'permlevel': 0
'permlevel': 0,
'reqd': 1
},
# DocField

View File

@ -3,9 +3,9 @@
# These values are common in all dictionaries
{
'creation': '2012-03-27 14:35:41',
'creation': '2012-07-03 13:30:47',
'docstatus': 0,
'modified': '2012-03-27 14:35:41',
'modified': '2012-07-11 14:32:16',
'modified_by': u'Administrator',
'owner': u'Administrator'
},
@ -21,7 +21,7 @@
'section_style': u'Tray',
'server_code_error': u' ',
'show_in_menu': 0,
'version': 6
'version': 1
},
# These values are common for all DocField
@ -60,16 +60,5 @@
'oldfieldname': u'percentage_allocation',
'oldfieldtype': u'Currency',
'permlevel': 0
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'aggregate_percentage',
'fieldtype': u'Currency',
'label': u'Aggregate Percentage',
'oldfieldname': u'aggregate_percentage',
'oldfieldtype': u'Currency',
'permlevel': 2
}
]

View File

@ -5,7 +5,7 @@
{
'creation': '2012-07-03 13:30:47',
'docstatus': 0,
'modified': '2012-07-10 18:06:51',
'modified': '2012-07-11 14:04:33',
'modified_by': u'Administrator',
'owner': u'Administrator'
},
@ -18,6 +18,7 @@
'autoname': u'field:cost_center_name',
'colour': u'White:FFF',
'default_print_format': u'Standard',
'description': u'**Chart of Accounts** is mainly for reporting information for governmental purposes and less for how business actually performs. \n\nMost businesses have multiple activities like different product lines, market segments, areas of business that share some common overheads but should ideally have their own structure to report whether they are profitable or not. For this purpose, there is an alternate structure, called the **Cost Centers**.\n\nA tree of **Cost Centers** to cab be designed to reflect the different units of an organization. Each Income / Expense entry is also tagged against a **Cost Center** and hence you can get Profit and Loss against a **Cost Center** too.\n\n### Budgeting\n\n**Cost Centers** can be used for budgeting purposes too. A budget can be set against each **Account** and the system will either stop, warn or ignore the budget based on the settings in the **Company** master.\n\nBudgets can also be distributed seasonally using **Budget Distribution**.',
'doctype': 'DocType',
'document_type': u'Master',
'in_create': 1,

View File

@ -154,13 +154,12 @@ erpnext.AccountsChart = Class.extend({
fields: [
{fieldtype:'Data', fieldname:'account_name', label:'New Account Name', reqd:true},
{fieldtype:'Select', fieldname:'group_or_ledger', label:'Group or Ledger',
options:'Group\nLedger'},
options:'Group\nLedger', description:'Further accounts can be made under Groups,\
but entries can be made against Ledger'},
{fieldtype:'Select', fieldname:'account_type', label:'Account Type',
options: ['', 'Fixed Asset Account', 'Bank or Cash', 'Expense Account', 'Tax',
'Income Account', 'Chargeable'].join('\n') },
{fieldtype:'Float', fieldname:'tax_rate', label:'Tax Rate'},
{fieldtype:'Select', fieldname:'master_type', label:'Master Type',
options: ['NA', 'Supplier', 'Customer', 'Employee'].join('\n') },
{fieldtype:'Button', fieldname:'create_new', label:'Create New' }
]
})
@ -171,11 +170,9 @@ erpnext.AccountsChart = Class.extend({
$(fd.group_or_ledger.input).change(function() {
if($(this).val()=='Group') {
$(fd.account_type.wrapper).toggle(false);
$(fd.master_type.wrapper).toggle(false);
$(fd.tax_rate.wrapper).toggle(false);
} else {
$(fd.account_type.wrapper).toggle(true);
$(fd.master_type.wrapper).toggle(true);
if(fd.account_type.get_value()=='Tax') {
$(fd.tax_rate.wrapper).toggle(true);
}
@ -200,6 +197,7 @@ erpnext.AccountsChart = Class.extend({
var node = me.selected_node();
v.parent_account = node.data('label');
v.master_type = '';
v.company = me.company;
$c_obj('GL Control', 'add_ac', v,
@ -225,10 +223,11 @@ erpnext.AccountsChart = Class.extend({
fields: [
{fieldtype:'Data', fieldname:'cost_center_name', label:'New Cost Center Name', reqd:true},
{fieldtype:'Select', fieldname:'group_or_ledger', label:'Group or Ledger',
options:'Group\nLedger'},
options:'Group\nLedger', description:'Further accounts can be made under Groups,\
but entries can be made against Ledger'},
{fieldtype:'Button', fieldname:'create_new', label:'Create New' }
]
})
});
// create
$(d.fields_dict.create_new.input).click(function() {

View File

@ -167,6 +167,7 @@ class DocType:
ac.old_parent = ''
ac_obj = get_obj(doc=ac)
ac_obj.doc.freeze_account='No'
ac_obj.doc.master_type = ''
ac_obj.validate()
ac_obj.doc.save(1)
ac_obj.on_update()

View File

@ -2244,11 +2244,27 @@ div.std-footer-item {
position: fixed;
bottom: 5px;
left: 5px;
height: 40px;
width: 40px;
height: 30px;
width: 30px;
background: url('../images/erpnext-fade.png') no-repeat top left;
}
.markdown p {
font-size: 13px;
}
.markdown h1 {
margin-bottom: 9px;
}
.markdown h2 {
margin-bottom: 7px;
}
.markdown h3, .markdown h4 {
margin-bottom: 5px;
}
/*
* lib/css/legacy/messages.css
*/

View File

@ -2105,11 +2105,27 @@ div.std-footer-item {
position: fixed;
bottom: 5px;
left: 5px;
height: 40px;
width: 40px;
height: 30px;
width: 30px;
background: url('../images/erpnext-fade.png') no-repeat top left;
}
.markdown p {
font-size: 13px;
}
.markdown h1 {
margin-bottom: 9px;
}
.markdown h2 {
margin-bottom: 7px;
}
.markdown h3, .markdown h4 {
margin-bottom: 5px;
}
/*
* lib/css/legacy/messages.css
*/

View File

@ -202,7 +202,7 @@ wn.meta.docfield_list[df.parent].push(df);}});
* lib/js/wn/misc/tools.js
*/
wn.markdown=function(txt){if(!wn.md2html){wn.require('js/lib/showdown.js');wn.md2html=new Showdown.converter();}
return wn.md2html.makeHtml(txt);}
return'<div class="markdown">'+wn.md2html.makeHtml(txt)+'</div>';}
/*
* lib/js/wn/misc/user.js
*/
@ -1706,7 +1706,7 @@ if(docstatus==0&&p[SUBMIT]&&(!cur_frm.doc.__islocal))
this.appframe.add_button('Submit',function(){cur_frm.savesubmit();},'icon-lock');if(docstatus==1&&p[SUBMIT]){this.appframe.add_button('Update',function(){cur_frm.saveupdate();},'');if(!cur_frm.doc.__unsaved)this.appframe.buttons['Update'].toggle(false);}
if(docstatus==1&&p[CANCEL])
this.appframe.add_button('Cancel',function(){cur_frm.savecancel()},'icon-remove');if(docstatus==2&&p[AMEND])
this.appframe.add_button('Amend',function(){cur_frm.amend_doc()},'icon-pencil');if(cur_frm.meta.description){this.appframe.add_help_button(wn.markdown('## '+cur_frm.doctype+'\n<br>\n'
this.appframe.add_button('Amend',function(){cur_frm.amend_doc()},'icon-pencil');if(cur_frm.meta.description){this.appframe.add_help_button(wn.markdown('## '+cur_frm.doctype+'\n\n'
+cur_frm.meta.description));}},show:function(){},hide:function(){},hide_close:function(){this.$w.find('.close').toggle(false);}})
/*
* lib/js/legacy/widgets/form/form.js
@ -1858,7 +1858,7 @@ else{hide_field(fields)}}
* lib/js/legacy/widgets/form/form_fields.js
*/
_f.ColumnBreak=function(){this.set_input=function(){};}
_f.ColumnBreak.prototype.make_body=function(){this.cell=this.frm.layout.addcell(this.df.width);$y(this.cell.wrapper,{padding:'8px'});_f.cur_col_break_width=this.df.width;var fn=this.df.fieldname?this.df.fieldname:this.df.label;if(this.df&&this.df.label){this.label=$a(this.cell.wrapper,'div','','',this.df.label);}}
_f.ColumnBreak.prototype.make_body=function(){this.cell=this.frm.layout.addcell(this.df.width);$y(this.cell.wrapper,{padding:'8px'});_f.cur_col_break_width=this.df.width;var fn=this.df.fieldname?this.df.fieldname:this.df.label;if(this.df&&this.df.label){this.label=$a(this.cell.wrapper,'h4','','',this.df.label);}}
_f.ColumnBreak.prototype.refresh=function(layout){var hidden=0;if((!this.perm[this.df.permlevel])||(!this.perm[this.df.permlevel][READ])||this.df.hidden){hidden=1;}
if(this.set_hidden!=hidden){if(hidden)
this.cell.hide();else

View File

@ -89,7 +89,7 @@ wn.meta.docfield_list[df.parent].push(df);}});
* lib/js/wn/misc/tools.js
*/
wn.markdown=function(txt){if(!wn.md2html){wn.require('js/lib/showdown.js');wn.md2html=new Showdown.converter();}
return wn.md2html.makeHtml(txt);}
return'<div class="markdown">'+wn.md2html.makeHtml(txt)+'</div>';}
/*
* lib/js/wn/misc/user.js
*/