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

Conflicts:
	public/js/all-app.js
	public/js/fields.js
This commit is contained in:
Anand Doshi 2012-08-06 19:55:43 +05:30
commit b8219aa4f0
15 changed files with 297 additions and 84 deletions

View File

@ -5,7 +5,7 @@
{
'creation': '2012-08-02 18:36:26',
'docstatus': 0,
'modified': '2012-08-02 18:37:32',
'modified': '2012-08-03 12:34:09',
'modified_by': u'Administrator',
'owner': u'Administrator'
},
@ -81,15 +81,6 @@
'to_field': u'prevdoc_detail_docname'
},
# Field Mapper Detail
{
'doctype': u'Field Mapper Detail',
'from_field': u'uom',
'map': u'Yes',
'match_id': 1,
'to_field': u'stock_uom'
},
# Field Mapper Detail
{
'checking_operator': u'>=',
@ -117,7 +108,7 @@
'from_table': u'Purchase Request Item',
'match_id': 1,
'reference_doctype_key': u'prevdoc_doctype',
'to_field': u'quotation_details',
'to_field': u'quotation_items',
'to_table': u'Supplier Quotation Item',
'validation_logic': u'docstatus =1'
}

View File

@ -0,0 +1,169 @@
# DocType Mapper, Supplier Quotation-Purchase Order
[
# These values are common in all dictionaries
{
'creation': '2012-08-03 12:33:04',
'docstatus': 0,
'modified': '2012-08-06 16:45:56',
'modified_by': u'Administrator',
'owner': u'Administrator'
},
# These values are common for all Table Mapper Detail
{
'doctype': u'Table Mapper Detail',
'name': '__common__',
'parent': u'Supplier Quotation-Purchase Order',
'parentfield': u'table_mapper_details',
'parenttype': u'DocType Mapper',
'validation_logic': u'docstatus = 1'
},
# These values are common for all Field Mapper Detail
{
'doctype': u'Field Mapper Detail',
'name': '__common__',
'parent': u'Supplier Quotation-Purchase Order',
'parentfield': u'field_mapper_details',
'parenttype': u'DocType Mapper'
},
# These values are common for all DocType Mapper
{
'doctype': u'DocType Mapper',
'from_doctype': u'Supplier Quotation',
'module': u'Buying',
'name': '__common__',
'ref_doc_submitted': 1,
'to_doctype': u'Purchase Order'
},
# DocType Mapper, Supplier Quotation-Purchase Order
{
'doctype': u'DocType Mapper',
'name': u'Supplier Quotation-Purchase Order'
},
# Field Mapper Detail
{
'checking_operator': u'=',
'doctype': u'Field Mapper Detail',
'from_field': u'company',
'map': u'Yes',
'match_id': 0,
'to_field': u'company'
},
# Field Mapper Detail
{
'checking_operator': u'>=',
'doctype': u'Field Mapper Detail',
'from_field': u'transaction_date',
'map': u'No',
'match_id': 0,
'to_field': u'transaction_date'
},
# Field Mapper Detail
{
'doctype': u'Field Mapper Detail',
'from_field': u'conversion_rate',
'map': u'Yes',
'match_id': 0,
'to_field': u'conversion_rate'
},
# Field Mapper Detail
{
'doctype': u'Field Mapper Detail',
'from_field': u'net_total',
'map': u'Yes',
'match_id': 0,
'to_field': u'net_total'
},
# Field Mapper Detail
{
'doctype': u'Field Mapper Detail',
'from_field': u'total_tax',
'map': u'Yes',
'match_id': 0,
'to_field': u'total_tax'
},
# Field Mapper Detail
{
'doctype': u'Field Mapper Detail',
'from_field': u'grand_total',
'map': u'Yes',
'match_id': 0,
'to_field': u'grand_total'
},
# Field Mapper Detail
{
'doctype': u'Field Mapper Detail',
'from_field': u'parent',
'map': u'Yes',
'match_id': 1,
'to_field': u'supplier_quotation'
},
# Field Mapper Detail
{
'doctype': u'Field Mapper Detail',
'from_field': u'name',
'map': u'Yes',
'match_id': 1,
'to_field': u'supplier_quotation_item'
},
# Field Mapper Detail
{
'doctype': u'Field Mapper Detail',
'from_field': u'uom',
'map': u'Yes',
'match_id': 1,
'to_field': u'stock_uom'
},
# Field Mapper Detail
{
'doctype': u'Field Mapper Detail',
'from_field': u'eval:flt(1)',
'map': u'Yes',
'match_id': 1,
'to_field': u'conversion_factor'
},
# Table Mapper Detail
{
'doctype': u'Table Mapper Detail',
'from_table': u'Supplier Quotation',
'match_id': 0,
'reference_key': u'prevdoc_docname',
'to_table': u'Purchase Order'
},
# Table Mapper Detail
{
'doctype': u'Table Mapper Detail',
'from_field': u'quotation_details',
'from_table': u'Supplier Quotation Item',
'match_id': 1,
'reference_doctype_key': u'prevdoc_doctype',
'to_field': u'po_details',
'to_table': u'Purchase Order Item'
},
# Table Mapper Detail
{
'doctype': u'Table Mapper Detail',
'from_field': u'purchase_tax_details',
'from_table': u'Purchase Taxes and Charges',
'match_id': 2,
'to_field': u'purchase_tax_details',
'to_table': u'Purchase Taxes and Charges'
}
]

View File

@ -122,7 +122,6 @@ var set_dynamic_label_child = function(doc, cdt, cdn, base_curr) {
cur_frm.cscript.dynamic_label = function(doc, cdt, cdn, callback1) {
var base_currency = wn.boot.company[doc.company].default_currency || sys_defaults['currency'];
if (doc.currency === base_currency) {
set_multiple(cdt, cdn, {conversion_rate:1});
hide_field(['conversion_rate', 'net_total_import','grand_total_import',
@ -634,3 +633,7 @@ cur_frm.cscript.check_charge_type_and_get_tax_amount = function(doc, tax, t, cl,
}
}
}
cur_frm.cscript.toggle_contact_section = function(doc) {
cur_frm.toggle_display("contact_section", doc.supplier);
}

View File

@ -24,15 +24,15 @@ wn.require('erpnext/utilities/doctype/sms_control/sms_control.js');
wn.require('erpnext/setup/doctype/notification_control/notification_control.js');
cur_frm.cscript.onload = function(doc, cdt, cdn) {
if(!doc.fiscal_year && doc.__islocal){ //set_default_values(doc);
doc.fiscal_year = sys_defaults.fiscal_year;
}
if(!doc.conversion_rate) doc.conversion_rate = 1;
if(!doc.currency) doc.currency = sys_defaults.currency;
if(!doc.status) set_multiple(cdt,cdn,{status:'Draft'});
if(!doc.transaction_date) set_multiple(cdt,cdn,{transaction_date:get_today()});
if(!doc.is_subcontracted) set_multiple(cdt, cdn, {is_subcontracted:'No'});
// set missing values in parent doc
set_missing_values(doc, {
fiscal_year: sys_defaults.fiscal_year,
conversion_rate: 1,
currency: sys_defaults.currency,
status: "Draft",
transaction_date: get_today(),
is_subcontracted: "No"
});
}
cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
@ -55,8 +55,7 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) {
if(doc.docstatus == 1 && doc.status == 'Stopped')
cur_frm.add_custom_button('Unstop Purchase Order', cur_frm.cscript['Unstop Purchase Order']);
if(doc.supplier) $(cur_frm.fields_dict.contact_section.row.wrapper).toggle(true);
else $(cur_frm.fields_dict.contact_section.row.wrapper).toggle(false);
cur_frm.cscript.toggle_contact_section(doc);
}
cur_frm.cscript.supplier = function(doc,dt,dn) {

View File

@ -87,7 +87,7 @@ class DocType(TransactionBase):
if self.doc.indent_no:
get_obj('DocType Mapper','Purchase Request-Purchase Order').dt_map('Purchase Request','Purchase Order',self.doc.indent_no, self.doc, self.doclist, "[['Purchase Request','Purchase Order'],['Purchase Request Item', 'Purchase Order Item']]")
pcomm = get_obj('Purchase Common')
for d in getlist(self.doclist, 'po_details'):
for d in getlist(self.doclist, 'po_details'):
if d.item_code and not d.purchase_rate:
last_purchase_details, last_purchase_date = pcomm.get_last_purchase_details(d.item_code, self.doc.name)
if last_purchase_details:
@ -100,6 +100,19 @@ class DocType(TransactionBase):
d.import_rate = d.purchase_rate / conversion_rate
else:
d.purchase_ref_rate = d.discount_rate = d.purchase_rate = d.import_ref_rate = d.import_rate = 0.0
def get_supplier_quotation_items(self):
if self.doc.supplier_quotation:
get_obj("DocType Mapper", "Supplier Quotation-Purchase Order").dt_map("Supplier Quotation",
"Purchase Order", self.doc.supplier_quotation, self.doc, self.doclist,
"""[['Supplier Quotation', 'Purchase Order'],
['Supplier Quotation Item', 'Purchase Order Item'],
['Purchase Taxes and Charges', 'Purchase Taxes and Charges']]""")
self.get_default_schedule_date()
for d in getlist(self.doclist, 'po_details'):
if d.prevdoc_detail_docname and not d.schedule_date:
d.schedule_date = webnotes.conn.get_value("Purchase Request Item",
d.prevdoc_detail_docname, "schedule_date")
def get_tc_details(self):
"""get terms & conditions"""

View File

@ -5,7 +5,7 @@
{
'creation': '2012-07-02 14:44:19',
'docstatus': 0,
'modified': '2012-08-02 13:43:50',
'modified': '2012-08-06 17:14:19',
'modified_by': u'Administrator',
'owner': u'Administrator'
},
@ -356,9 +356,35 @@
'fieldtype': u'Button',
'hidden': 0,
'label': u'Get Items',
'no_copy': 0,
'oldfieldtype': u'Button',
'options': u'get_indent_details',
'permlevel': 0
'permlevel': 0,
'print_hide': 1
},
# DocField
{
'description': u'You can make a purchase order from multiple Supplier Quotations. Select Supplier Quotations one by one and click on the button below.',
'doctype': u'DocField',
'fieldname': u'supplier_quotation',
'fieldtype': u'Link',
'label': u'Select Supplier Quotation',
'no_copy': 1,
'options': u'Supplier Quotation',
'permlevel': 0,
'print_hide': 1
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'get_supplier_quotation_items',
'fieldtype': u'Button',
'label': u'Get Items',
'options': u'get_supplier_quotation_items',
'permlevel': 0,
'print_hide': 1
},
# DocField
@ -369,7 +395,8 @@
'fieldtype': u'Section Break',
'label': u'Taxes',
'oldfieldtype': u'Section Break',
'permlevel': 0
'permlevel': 0,
'print_hide': 0
},
# DocField

View File

@ -5,7 +5,7 @@
{
'creation': '2012-05-15 12:14:38',
'docstatus': 0,
'modified': '2012-06-29 13:05:33',
'modified': '2012-08-06 15:55:11',
'modified_by': u'Administrator',
'owner': u'Administrator'
},
@ -335,7 +335,7 @@
'fieldtype': u'Date',
'hidden': 1,
'in_filter': 1,
'label': u'Purchase Requisition Date',
'label': u'Purchase Request Date',
'oldfieldname': u'prevdoc_date',
'oldfieldtype': u'Date',
'permlevel': 1,
@ -351,7 +351,7 @@
'fieldtype': u'Data',
'hidden': 1,
'in_filter': 1,
'label': u'Purchase Requisition Detail No',
'label': u'Purchase Request Detail No',
'no_copy': 0,
'oldfieldname': u'prevdoc_detail_docname',
'oldfieldtype': u'Data',
@ -360,6 +360,30 @@
'search_index': 1
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'supplier_quotation',
'fieldtype': u'Link',
'hidden': 1,
'in_filter': 0,
'label': u'Supplier Quotation',
'options': u'Supplier Quotation',
'permlevel': 1,
'search_index': 0
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'supplier_quotation_item',
'fieldtype': u'Link',
'hidden': 1,
'label': u'Supplier Quotation Item',
'options': u'Supplier Quotation Item',
'permlevel': 1
},
# DocField
{
'doctype': u'DocField',

View File

@ -51,10 +51,11 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) {
if(doc.docstatus == 1 && doc.status != 'Stopped'){
if(doc.per_ordered < 100) {
cur_frm.add_custom_button('Make Purchase Order', cur_frm.cscript['Make Purchase Order'])
cur_frm.add_custom_button('Stop Purchase Request', cur_frm.cscript['Stop Purchase Request'])
cur_frm.add_custom_button('Make Purchase Order', cur_frm.cscript['Make Purchase Order']);
cur_frm.add_custom_button('Stop Purchase Request', cur_frm.cscript['Stop Purchase Request']);
}
cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
cur_frm.add_custom_button("Make Supplier Quotation", cur_frm.cscript.make_supplier_quotation);
}
if(doc.docstatus == 1 && doc.status == 'Stopped')
@ -124,3 +125,15 @@ cur_frm.cscript['Unstop Purchase Request'] = function(){
});
}
}
cur_frm.cscript.make_supplier_quotation = function() {
var new_sq_name = createLocal("Supplier Quotation");
$c("dt_map", {
"docs": compress_doclist([locals['Supplier Quotation'][new_sq_name]]),
"from_doctype": cur_frm.doc.doctype,
"to_doctype": "Supplier Quotation",
"from_docname": cur_frm.doc.name,
"from_to_list": JSON.stringify([['Purchase Request', 'Supplier Quotation'],
['Purchase Request Item', 'Supplier Quotation Item']]),
}, function(r, rt) { loaddoc("Supplier Quotation", new_sq_name) });
}

View File

@ -47,13 +47,17 @@ cur_frm.cscript.refresh = function(doc, dt, dn) {
}
}
cur_frm.cscript.toggle_contact_section = function(doc) {
console.log(doc.supplier);
doc.supplier ? unhide_field("contact_section") : hide_field("contact_section");
}
cur_frm.cscript.make_purchase_order = function(doc, dt, dn) {
cur_frm.cscript.make_purchase_order = function() {
var new_po_name = createLocal("Purchase Order");
$c("dt_map", {
"docs": compress_doclist([locals['Purchase Order'][new_po_name]]),
"from_doctype": cur_frm.doc.doctype,
"to_doctype": "Purchase Order",
"from_docname": cur_frm.doc.name,
"from_to_list": JSON.stringify([['Supplier Quotation', 'Purchase Order'],
['Supplier Quotation Item', 'Purchase Order Item'],
['Purchase Taxes and Charges', 'Purchase Taxes and Charges']]),
}, function(r, rt) { loaddoc("Purchase Order", new_po_name) });
}
cur_frm.cscript.supplier = function(doc, dt, dn) {
@ -65,6 +69,10 @@ cur_frm.cscript.supplier = function(doc, dt, dn) {
}
}
cur_frm.cscript.uom = function(doc, cdt, cdn) {
// no need to trigger updation of stock uom, as this field doesn't exist in supplier quotation
}
cur_frm.fields_dict['quotation_items'].grid.get_field('project_name').get_query =
function(doc, cdt, cdn) {
return "select `tabProject`.name from `tabProject` \
@ -82,7 +90,6 @@ cur_frm.fields_dict['indent_no'].get_query = function(doc) {
order by `tabPurchase Request`.`name` desc limit 50";
}
cur_frm.cscript.supplier_address = function(doc, dt, dn) {
if (doc.supplier) {
get_server_fields("get_supplier_address", JSON.stringify({supplier: doc.supplier,

View File

@ -22,7 +22,7 @@ from utilities.transaction_base import TransactionBase
class DocType(TransactionBase):
def __init__(self, doc, doclist=None):
self.doc, self.doclist = doc, doclist or []
self.tname, self.fname = "Supplier Quotation Item", "quotation_item"
self.tname, self.fname = "Supplier Quotation Item", "quotation_items"
def autoname(self):
"""autoname based on naming series value"""
@ -67,7 +67,8 @@ class DocType(TransactionBase):
self.doc, self.doclist, """[['Purchase Request', 'Supplier Quotation'],
['Purchase Request Item', 'Supplier Quotation Item']]""")
for d in getlist(self.doclist, "quotation_details"):
from webnotes.model.doclist import getlist
for d in getlist(self.doclist, self.fname):
if d.item_code and not d.purchase_rate:
d.purchase_ref_rate = d.discount_rate = d.purchase_rate = 0.0
d.import_ref_rate = d.import_rate = 0.0
@ -75,9 +76,6 @@ class DocType(TransactionBase):
def get_purchase_tax_details(self):
self.doclist = get_obj('Purchase Common').get_purchase_tax_details(self)
def get_uom_details(self, args=None):
return get_obj('Purchase Common').get_uom_details(args)
def validate_fiscal_year(self):
get_obj(dt = 'Purchase Common').validate_fiscal_year( \
self.doc.fiscal_year, self.doc.transaction_date, 'Quotation Date')

View File

@ -5,7 +5,7 @@
{
'creation': '2012-08-01 20:07:22',
'docstatus': 0,
'modified': '2012-08-02 16:00:52',
'modified': '2012-08-03 12:34:33',
'modified_by': u'Administrator',
'owner': u'Administrator'
},
@ -241,38 +241,6 @@
'width': u'100px'
},
# DocField
{
'colour': u'White:FFF',
'doctype': u'DocField',
'fieldname': u'conversion_factor',
'fieldtype': u'Currency',
'hidden': 0,
'label': u'UOM Conversion Factor',
'oldfieldname': u'conversion_factor',
'oldfieldtype': u'Currency',
'permlevel': 0,
'print_hide': 1,
'reqd': 1,
'trigger': u'Client',
'width': u'100px'
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'stock_uom',
'fieldtype': u'Data',
'hidden': 0,
'label': u'Stock UOM',
'oldfieldname': u'stock_uom',
'oldfieldtype': u'Data',
'permlevel': 1,
'print_hide': 1,
'reqd': 1,
'width': u'100px'
},
# DocField
{
'colour': u'White:FFF',

View File

@ -41,7 +41,8 @@ def repost_reserved_qty():
and parenttype="Sales Order"
and exists (select * from `tabSales Order` so
where name = dnpi_in.parent and docstatus = 1 and status != 'Stopped')
) dnpi) tab""", (d[0], d[1]))
) dnpi) tab
where so_item_qty >= so_item_delivered_qty""", (d[0], d[1]))
if flt(d[3]) != flt(reserved_qty[0][0]):
print d[3], reserved_qty[0][0]

View File

@ -480,7 +480,7 @@ if(d.search('-')!=-1){var t=d.split('-');return new Date(t[0],t[1]-1,t[2],tm[0],
new_dt=new Date(dt.getFullYear(),dt.getMonth()+months,dt.getDate())
if(new_dt.getDate()!=dt.getDate()){return dateutil.month_end(new Date(dt.getFullYear(),dt.getMonth()+months,1))}
return dateutil.obj_to_str(new_dt);},month_start:function(){var d=new Date();return d.getFullYear()+'-'+int_to_str(d.getMonth()+1,2)+'-01';},month_end:function(d){if(!d)var d=new Date();var m=d.getMonth()+1;var y=d.getFullYear();last_date=month_last[m];if(m==2&&(y%4)==0&&((y%100)!=0||(y%400)==0))
last_date=29;return y+'-'+int_to_str(m,2)+'-'+last_date;},get_user_fmt:function(){var t=wn.control_panel.date_format;if(!t)t='dd-mm-yyyy';return t;},str_to_user:function(val,no_time_str){var user_fmt=dateutil.get_user_fmt();var time_str='';if(val==null||val=='')return null;if(val.search(':')!=-1){var tmp=val.split(' ');if(tmp[1])
last_date=29;return y+'-'+int_to_str(m,2)+'-'+last_date;},get_user_fmt:function(){var t=sys_defaults.date_format;if(!t)t='dd-mm-yyyy';return t;},str_to_user:function(val,no_time_str){var user_fmt=dateutil.get_user_fmt();var time_str='';if(val==null||val=='')return null;if(val.search(':')!=-1){var tmp=val.split(' ');if(tmp[1])
time_str=' '+tmp[1];var d=tmp[0];}else{var d=val;}
if(no_time_str)time_str='';d=d.split('-');if(d.length==3){if(user_fmt=='dd-mm-yyyy')
val=d[2]+'-'+d[1]+'-'+d[0]+time_str;else if(user_fmt=='dd/mm/yyyy')
@ -719,7 +719,7 @@ ReadOnlyField.prototype=new Field();function HTMLField(){}
HTMLField.prototype=new Field();HTMLField.prototype.with_label=0;HTMLField.prototype.set_disp=function(val){if(this.disp_area)this.disp_area.innerHTML=val;}
HTMLField.prototype.set_input=function(val){if(val)this.set_disp(val);}
HTMLField.prototype.onrefresh=function(){if(this.df.options)this.set_disp(this.df.options);}
var datepicker_active=0;function DateField(){}DateField.prototype=new Field();DateField.prototype.make_input=function(){var me=this;this.user_fmt=wn.control_panel.date_format;if(!this.user_fmt)this.user_fmt='dd-mm-yy';this.input=$a(this.input_area,'input');$(this.input).datepicker({dateFormat:me.user_fmt.replace('yyyy','yy'),altFormat:'yy-mm-dd',changeYear:true,beforeShow:function(input,inst){datepicker_active=1},onClose:function(dateText,inst){datepicker_active=0;if(_f.cur_grid_cell)
var datepicker_active=0;function DateField(){}DateField.prototype=new Field();DateField.prototype.make_input=function(){var me=this;this.user_fmt=sys_defaults.date_format;if(!this.user_fmt)this.user_fmt='dd-mm-yy';this.input=$a(this.input_area,'input');$(this.input).datepicker({dateFormat:me.user_fmt.replace('yyyy','yy'),altFormat:'yy-mm-dd',changeYear:true,beforeShow:function(input,inst){datepicker_active=1},onClose:function(dateText,inst){datepicker_active=0;if(_f.cur_grid_cell)
_f.cur_grid_cell.grid.cell_deselect();}});var me=this;me.input.onchange=function(){if(this.value==null)this.value='';if(!this.not_in_form)
me.set(dateutil.user_to_str(me.input.value));me.run_trigger();}
me.input.set_input=function(val){if(val==null)val='';else val=dateutil.str_to_user(val);me.input.value=val;}
@ -1552,7 +1552,7 @@ ReadOnlyField.prototype=new Field();function HTMLField(){}
HTMLField.prototype=new Field();HTMLField.prototype.with_label=0;HTMLField.prototype.set_disp=function(val){if(this.disp_area)this.disp_area.innerHTML=val;}
HTMLField.prototype.set_input=function(val){if(val)this.set_disp(val);}
HTMLField.prototype.onrefresh=function(){if(this.df.options)this.set_disp(this.df.options);}
var datepicker_active=0;function DateField(){}DateField.prototype=new Field();DateField.prototype.make_input=function(){var me=this;this.user_fmt=wn.control_panel.date_format;if(!this.user_fmt)this.user_fmt='dd-mm-yy';this.input=$a(this.input_area,'input');$(this.input).datepicker({dateFormat:me.user_fmt.replace('yyyy','yy'),altFormat:'yy-mm-dd',changeYear:true,beforeShow:function(input,inst){datepicker_active=1},onClose:function(dateText,inst){datepicker_active=0;if(_f.cur_grid_cell)
var datepicker_active=0;function DateField(){}DateField.prototype=new Field();DateField.prototype.make_input=function(){var me=this;this.user_fmt=sys_defaults.date_format;if(!this.user_fmt)this.user_fmt='dd-mm-yy';this.input=$a(this.input_area,'input');$(this.input).datepicker({dateFormat:me.user_fmt.replace('yyyy','yy'),altFormat:'yy-mm-dd',changeYear:true,beforeShow:function(input,inst){datepicker_active=1},onClose:function(dateText,inst){datepicker_active=0;if(_f.cur_grid_cell)
_f.cur_grid_cell.grid.cell_deselect();}});var me=this;me.input.onchange=function(){if(this.value==null)this.value='';if(!this.not_in_form)
me.set(dateutil.user_to_str(me.input.value));me.run_trigger();}
me.input.set_input=function(val){if(val==null)val='';else val=dateutil.str_to_user(val);me.input.value=val;}

View File

@ -367,7 +367,7 @@ if(d.search('-')!=-1){var t=d.split('-');return new Date(t[0],t[1]-1,t[2],tm[0],
new_dt=new Date(dt.getFullYear(),dt.getMonth()+months,dt.getDate())
if(new_dt.getDate()!=dt.getDate()){return dateutil.month_end(new Date(dt.getFullYear(),dt.getMonth()+months,1))}
return dateutil.obj_to_str(new_dt);},month_start:function(){var d=new Date();return d.getFullYear()+'-'+int_to_str(d.getMonth()+1,2)+'-01';},month_end:function(d){if(!d)var d=new Date();var m=d.getMonth()+1;var y=d.getFullYear();last_date=month_last[m];if(m==2&&(y%4)==0&&((y%100)!=0||(y%400)==0))
last_date=29;return y+'-'+int_to_str(m,2)+'-'+last_date;},get_user_fmt:function(){var t=wn.control_panel.date_format;if(!t)t='dd-mm-yyyy';return t;},str_to_user:function(val,no_time_str){var user_fmt=dateutil.get_user_fmt();var time_str='';if(val==null||val=='')return null;if(val.search(':')!=-1){var tmp=val.split(' ');if(tmp[1])
last_date=29;return y+'-'+int_to_str(m,2)+'-'+last_date;},get_user_fmt:function(){var t=sys_defaults.date_format;if(!t)t='dd-mm-yyyy';return t;},str_to_user:function(val,no_time_str){var user_fmt=dateutil.get_user_fmt();var time_str='';if(val==null||val=='')return null;if(val.search(':')!=-1){var tmp=val.split(' ');if(tmp[1])
time_str=' '+tmp[1];var d=tmp[0];}else{var d=val;}
if(no_time_str)time_str='';d=d.split('-');if(d.length==3){if(user_fmt=='dd-mm-yyyy')
val=d[2]+'-'+d[1]+'-'+d[0]+time_str;else if(user_fmt=='dd/mm/yyyy')

View File

@ -83,7 +83,7 @@ ReadOnlyField.prototype=new Field();function HTMLField(){}
HTMLField.prototype=new Field();HTMLField.prototype.with_label=0;HTMLField.prototype.set_disp=function(val){if(this.disp_area)this.disp_area.innerHTML=val;}
HTMLField.prototype.set_input=function(val){if(val)this.set_disp(val);}
HTMLField.prototype.onrefresh=function(){if(this.df.options)this.set_disp(this.df.options);}
var datepicker_active=0;function DateField(){}DateField.prototype=new Field();DateField.prototype.make_input=function(){var me=this;this.user_fmt=wn.control_panel.date_format;if(!this.user_fmt)this.user_fmt='dd-mm-yy';this.input=$a(this.input_area,'input');$(this.input).datepicker({dateFormat:me.user_fmt.replace('yyyy','yy'),altFormat:'yy-mm-dd',changeYear:true,beforeShow:function(input,inst){datepicker_active=1},onClose:function(dateText,inst){datepicker_active=0;if(_f.cur_grid_cell)
var datepicker_active=0;function DateField(){}DateField.prototype=new Field();DateField.prototype.make_input=function(){var me=this;this.user_fmt=sys_defaults.date_format;if(!this.user_fmt)this.user_fmt='dd-mm-yy';this.input=$a(this.input_area,'input');$(this.input).datepicker({dateFormat:me.user_fmt.replace('yyyy','yy'),altFormat:'yy-mm-dd',changeYear:true,beforeShow:function(input,inst){datepicker_active=1},onClose:function(dateText,inst){datepicker_active=0;if(_f.cur_grid_cell)
_f.cur_grid_cell.grid.cell_deselect();}});var me=this;me.input.onchange=function(){if(this.value==null)this.value='';if(!this.not_in_form)
me.set(dateutil.user_to_str(me.input.value));me.run_trigger();}
me.input.set_input=function(val){if(val==null)val='';else val=dateutil.str_to_user(val);me.input.value=val;}