GDFS#26662 Date selectie lijkt niet altijd te wissen

svn path=/Website/trunk/; revision=18651
This commit is contained in:
Erik Groener
2013-08-08 09:28:16 +00:00
parent aea47ffcaa
commit 08803e6678
6 changed files with 135 additions and 121 deletions

View File

@@ -14,6 +14,7 @@
<!-- #include file="../Shared/kostensoortselector.inc" --> <!-- #include file="../Shared/kostensoortselector.inc" -->
<% <%
FCLTHeader.Requires({ plugins: ["suggest", "jQuery"], FCLTHeader.Requires({ plugins: ["suggest", "jQuery"],
js: ["date.js", "./sel_items_tab.js", "num2curr.js", "../FIN/fin_edit_factuur.js"] js: ["date.js", "./sel_items_tab.js", "num2curr.js", "../FIN/fin_edit_factuur.js"]
}); });
@@ -280,8 +281,8 @@ var fin_btwtabel_key = oRs("fin_btwtabel_key").value; // Standaard btw tabel key
); );
// Verdeelperiode // Verdeelperiode
events = 'onKeyPress="kenmerkDividePeriodKey();"' events = ' onKeyPress="kenmerkDividePeriodKey(event);"'
+ ' onPropertyChange="kenmerkDividePeriodChange();"' + ' onPropertyChange="kenmerkDividePeriodChange(event);"'
+ ' onChange="devidePeriodChanged();"' + ' onChange="devidePeriodChanged();"'
+ ' onBlur="checkDP(true);"'; + ' onBlur="checkDP(true);"';

View File

@@ -359,3 +359,55 @@ function updateLocation()
} }
} }
function checkDividePeriod(value)
{
if (value == "") return true;
var valid = true;
var arr = /^(\d{4})[-](\d{1,2})$/.exec(value);
if (arr)
{
var dt = new Date( arr[1], arr[2] -1, 1 );
if ((arr[2] != dt.getMonth() + 1) ||
(arr[1] != dt.getYear() && arr[1] != dt.getFullYear()) ) {
valid = false;
}
}
else valid = false;
return(valid);
}
function kenmerkDividePeriodKey(evt)
{
var e = evt || event;
var kc = e.which || e.keyCode;
if (kc >= 48 && kc <= 57) return;
if (String.fromCharCode(kc) == '<%=L("lcl_date_separator")%>' ||
String.fromCharCode(kc) == '-') return;
e.returnValue = false;
}
function kenmerkDividePeriodChange(evt)
{
var e = evt || event;
if( e.propertyName != 'value' ) return;
var el = e.srcElement || e.target;
var newT = el.value;
var nm = el.name;
var oldT = dateInputs[nm]; if (oldT == null) oldT = '';
var valid = false;
if (newT == '') valid = true; else
if (/^\d{4}$/.test(newT))
{
el.value += '<%=L("lcl_date_separator")%>';
valid = true;
}
else if (/^\d{1,4}(|[-](|\d{1,2}))$/.test(newT))
{
valid = true;
}
if (valid) dateInputs[nm] = el.value; else
if (el.value != oldT) el.value = oldT;
}

View File

@@ -7,9 +7,79 @@
*/ %> */ %>
<!-- #include file="../Shared/common.inc" --> <!-- #include file="../Shared/common.inc" -->
<%
re1 = '[' + (L("lcl_date_separator") == '-'
? L("lcl_date_separator")
: '-' + L("lcl_date_separator")) + ']';
empty = "__" + re1 + "__" + re1 + "____";
%>
<html> <html>
<head> <head>
<LINK href="<%=custpath%>/cust.css" rel="stylesheet" type="text/css"> <LINK href="<%=custpath%>/cust.css" rel="stylesheet" type="text/css">
<script>
function owcheckDate(value)
{
if (/^<%=empty%>$/.test(value)) return true;
var valid = true;
var arr = /^(\d{1,2})<%=re1%>(\d{1,2})<%=re1%>(\d{1,4})$/.exec(value);
if (arr)
{
var dt = new Date( arr[3], arr[2] -1, arr[1] );
if ((arr[1] != dt.getDate()) ||
(arr[2] != dt.getMonth() + 1) ||
(arr[3] != dt.getYear() && arr[3] != dt.getFullYear())) {
valid = false;
}
}
else valid = false;
return(valid);
}
function owkenmerkDateChange()
{
if (event.propertyName != 'value') return;
var el = event.srcElement || event.target;
var newT = el.value;
var nm = el.name;
var oldT = dateInputs[nm];
if (oldT == null)
oldT = '';
var valid = false;
if (newT == '')
valid = true;
else
if (/^\d{2}$/.test(newT) || /^\d+[/-]\d{2}$/.test(newT))
{
el.value += '<%=L("lcl_date_separator")%>';
valid = true;
}
else if (/^\d{1,2}(|<%=re1%>(|\d{1,2}(|<%=re1%>(|\d{1,4}))))$/.test(newT))
{
valid = true;
}
if (valid)
{
dateInputs[nm] = el.value;
}
else if (el.value != oldT)
el.value = oldT;
}
function owkenmerkDateKey()
{
// Alleen cijfers, datumseperator of - toegestaan !
var kc = event.keyCode;
if (kc >= 48 && kc <= 57) return;
if (String.fromCharCode(kc) == '<%=L("lcl_date_separator")%>' ||
String.fromCharCode(kc) == '-') return;
event.returnValue = false;
}
</script>
</head> </head>
<% <%
var sort = getQParamInt("sort"); var sort = getQParamInt("sort");
@@ -190,7 +260,7 @@ if( txt ) rowIndex = txt.rowIndex;
var kv = reado ? (ktype == 'X' ? (val? '<a href=\\"'+ S("image_path_virtual") +val1+'\\">'+val1+'</a>' :'') : ("<input type=text style='width:200px' value='"+ safe.htmlattr(val)+"' readonly "+"maxlength="+(ktype=='N'&&kdec?klen+1:klen)+">")) var kv = reado ? (ktype == 'X' ? (val? '<a href=\\"'+ S("image_path_virtual") +val1+'\\">'+val1+'</a>' :'') : ("<input type=text style='width:200px' value='"+ safe.htmlattr(val)+"' readonly "+"maxlength="+(ktype=='N'&&kdec?klen+1:klen)+">"))
: ("<input type='"+(ktype == 'X' &&!val ? 'file' : 'text')+"' onChange=frames.hidFrameKenmerk" + serienr + ".checkK" + i + serienr + "(false) onBlur=frames.hidFrameKenmerk" + serienr + ".checkK" + i + serienr + "(true) name='k" + i + "val" + serienr + "'" + (val? " value='" + safe.htmlattr(val) + "'" : '') : ("<input type='"+(ktype == 'X' &&!val ? 'file' : 'text')+"' onChange=frames.hidFrameKenmerk" + serienr + ".checkK" + i + serienr + "(false) onBlur=frames.hidFrameKenmerk" + serienr + ".checkK" + i + serienr + "(true) name='k" + i + "val" + serienr + "'" + (val? " value='" + safe.htmlattr(val) + "'" : '')
+ " maxlength="+(ktype=='N'&&kdec?klen+1:klen) + " maxlength="+(ktype=='N'&&kdec?klen+1:klen)
+ (ktype=='D'?' onKeyPress=kenmerkDateKey() onPropertyChange=kenmerkDateChange()':'') + (ktype=='D'?' onKeyPress=owkenmerkDateKey() onPropertyChange=owkenmerkDateChange()':'')
+ " style='width:" + (klen > 28? (klen > 40? "360" : "" + (klen * 100 / 14 + 10)) : "200") + "px'>") + " style='width:" + (klen > 28? (klen > 40? "360" : "" + (klen * 100 / 14 + 10)) : "200") + "px'>")
+ ((val && ktype == 'X') ? "<input type=button class=mbutton style='width:20px;height:20px;background-image:url(../Pictures/fileopen.gif)' onClick='openDoc(\\\""+ safe.jsstring(S("image_path_virtual")) + val1 + "\\\");'>" : ""); + ((val && ktype == 'X') ? "<input type=button class=mbutton style='width:20px;height:20px;background-image:url(../Pictures/fileopen.gif)' onClick='openDoc(\\\""+ safe.jsstring(S("image_path_virtual")) + val1 + "\\\");'>" : "");
@@ -303,7 +373,7 @@ function checkK<%=i%><%=serienr%>(show){
if( value != '' ) { if( value != '' ) {
<% if( ktype == 'D' ) { %> <% if( ktype == 'D' ) { %>
valid = parent.checkDate( value ); valid = parent.owcheckDate( value );
if( ! valid ) err = "<%=L("lcl_mld_kenmerk_out_range")%>"; if( ! valid ) err = "<%=L("lcl_mld_kenmerk_out_range")%>";
<% } else if( (ktype == 'C') || (ktype == 'L') || (ktype == 'Q')) { %> <% } else if( (ktype == 'C') || (ktype == 'L') || (ktype == 'Q')) { %>
if( value.length > <%=klen%> ) valid = false; if( value.length > <%=klen%> ) valid = false;
@@ -339,6 +409,7 @@ function checkK<%=i%><%=serienr%>(show){
%> %>
window.parent.changeButtons(); window.parent.changeButtons();
</script> </script>
</form> </form>
<% <%

View File

@@ -326,7 +326,8 @@ function cal_show_onChange(e)
pDay = parseInt(possdate[1], 10); pDay = parseInt(possdate[1], 10);
dt = new Date(pYear, pMonth, pDay); dt = new Date(pYear, pMonth, pDay);
$(this).datepicker('setDate', dt); $(this).datepicker('setDate', dt);
$(this)[0].onSelect.apply(); if ($(this)[0].onSelect)
$(this)[0].onSelect.apply();
} }
else else
{ {

View File

@@ -23,7 +23,8 @@
// "jquery-ui.js" en "date.js" zijn alleen nodig als er een datumkenmerk is. // "jquery-ui.js" en "date.js" zijn alleen nodig als er een datumkenmerk is.
// meestal is die er toch al wel in het hoofdscherm dus voor het gemak doen // meestal is die er toch al wel in het hoofdscherm dus voor het gemak doen
// we het hier ook maar voor overige schermen. // we het hier ook maar voor overige schermen.
FCLTHeader.Requires({plugins:["jQuery", "kenmerk"], js: ["jquery-ui.js", "date.js"]}) if (!this.JSON_Result)
FCLTHeader.Requires({plugins:["jQuery", "kenmerk"], js: ["jquery-ui.js", "date.js"]})
var requiredGroupUsed = new Array(); // Array zorgt voor eenmalige initiele aanroep van checkRequiredGroup(groep) per groep var requiredGroupUsed = new Array(); // Array zorgt voor eenmalige initiele aanroep van checkRequiredGroup(groep) per groep
@@ -941,7 +942,6 @@ function listKenmerk(sql, module, key, props)
+ "'" + "'"
+ (required ? " required='required' " : "") + (required ? " required='required' " : "")
+ " value='" + safe.htmlattr(val) + "'" + " value='" + safe.htmlattr(val) + "'"
+ (!readonlyfield ? ' onKeyPress=kenmerkDateKey() onPropertyChange=kenmerkDateChange()' : "")
+ ">"; + ">";
anyDate |= !readonlyfield; anyDate |= !readonlyfield;
} }
@@ -1160,7 +1160,7 @@ function listKenmerk(sql, module, key, props)
if (makeCheckbox && props.mobile) // Zie commentaar iets verderop if (makeCheckbox && props.mobile) // Zie commentaar iets verderop
props.label_colspan = 2; props.label_colspan = 2;
kenmerk_write('<td class="label ' + (ktype == 'L' || ktype == 'l'? 'flexlabel' : '') + '"' kenmerk_write('<td class="label' + (ktype == 'L' || ktype == 'l'? ' flexlabel' : '')+ (kenmerk_search? ' flexsearch' : '') + '"'
+ (props.label_colspan? ' colspan=' + props.label_colspan : '') + (props.label_colspan? ' colspan=' + props.label_colspan : '')
+ '><label for="' + nameprefix + idCounter + 'val">' + '><label for="' + nameprefix + idCounter + 'val">'
+ '<span title="' + safe.htmlattr(hint) + '">' + '<span title="' + safe.htmlattr(hint) + '">'

View File

@@ -14,11 +14,11 @@ var FCLTEXPIRES = 8*60; // geen database interactie tenslotte
<% <%
Response.ContentType = "text/javascript"; Response.ContentType = "text/javascript";
re1 = '[' + (L("lcl_date_separator") == '-' re1 = '[' + (L("lcl_date_separator") == '-'
? L("lcl_date_separator") ? L("lcl_date_separator")
: '-' + L("lcl_date_separator")) + ']'; : '-' + L("lcl_date_separator")) + ']';
empty = "__" + re1 + "__" + re1 + "____"; empty = "__" + re1 + "__" + re1 + "____";
%> %>
var empty='<%=empty%>'; var empty='<%=empty%>';
@@ -85,8 +85,7 @@ function checkKenmerk(field, show, ktype, klen, kdec, kmin, kmax)
{ {
if (ktype == 'D') if (ktype == 'D')
{ {
valid = checkDate(value); $(field).change(cal_show_onChange);
if (!valid) err = "<%=L("lcl_mld_kenmerk_out_range")%>";
} }
else if (ktype == 'C' || ktype == 'L' || ktype == 'Q') else if (ktype == 'C' || ktype == 'L' || ktype == 'Q')
{ {
@@ -138,116 +137,6 @@ function checkKenmerk(field, show, ktype, klen, kdec, kmin, kmax)
return valid; return valid;
} }
function checkDate(value)
{
if (/^<%=empty%>$/.test(value)) return true;
var valid = true;
var arr = /^(\d{1,2})<%=re1%>(\d{1,2})<%=re1%>(\d{1,4})$/.exec(value);
if (arr)
{
var dt = new Date( arr[3], arr[2] -1, arr[1] );
if ((arr[1] != dt.getDate()) ||
(arr[2] != dt.getMonth() + 1) ||
(arr[3] != dt.getYear() && arr[3] != dt.getFullYear())) {
valid = false;
}
}
else valid = false;
return(valid);
}
function checkDividePeriod(value)
{
if (/^<%=empty%>$/.test(value)) return true;
var valid = true;
var arr = /^(\d{4})<%=re1%>(\d{1,2})$/.exec(value);
if (arr)
{
//var dt = new Date( arr[3], arr[2] -1, arr[1] );
var dt = new Date( arr[1], arr[2] -1, 1 );
if ((arr[2] != dt.getMonth() + 1) ||
(arr[1] != dt.getYear() && arr[1] != dt.getFullYear()) ) {
valid = false;
}
}
else valid = false;
return(valid);
}
function kenmerkDateChange()
{
if (event.propertyName != 'value') return;
var el = event.srcElement || event.target;
var newT = el.value;
var nm = el.name;
var oldT = dateInputs[nm];
if (oldT == null)
oldT = '';
var valid = false;
if (newT == '')
valid = true;
else
if (/^\d{2}$/.test(newT) || /^\d+[/-]\d{2}$/.test(newT))
{
el.value += '<%=L("lcl_date_separator")%>';
valid = true;
}
else if (/^\d{1,2}(|<%=re1%>(|\d{1,2}(|<%=re1%>(|\d{1,4}))))$/.test(newT))
{
valid = true;
}
if (valid)
{
dateInputs[nm] = el.value;
}
else if (el.value != oldT)
el.value = oldT;
}
function kenmerkDateKey()
{
var kc = event.keyCode;
if (kc >= 48 && kc <= 57) return;
if (String.fromCharCode(kc) == '<%=L("lcl_date_separator")%>' ||
String.fromCharCode(kc) == '-') return;
event.returnValue = false;
}
function kenmerkDividePeriodChange()
{
if( event.propertyName != 'value' ) return;
var el = event.srcElement || event.target;
var newT = el.value;
var nm = el.name;
var oldT = dateInputs[nm]; if (oldT == null) oldT = '';
var valid = false;
if (newT == '') valid = true; else
if (/^\d{4}$/.test(newT))
{
el.value += '<%=L("lcl_date_separator")%>';
valid = true;
}
else if (/^\d{1,4}(|<%=re1%>(|\d{1,2}))$/.test(newT))
{
valid = true;
}
if (valid) dateInputs[nm] = el.value; else
if (el.value != oldT) el.value = oldT;
}
function kenmerkDividePeriodKey()
{
var kc = event.keyCode;
if (kc >= 48 && kc <= 57) return;
if (String.fromCharCode(kc) == '<%=L("lcl_date_separator")%>' ||
String.fromCharCode(kc) == '-') return;
event.returnValue = false;
}
// Op een generieke manier documenten openen // Op een generieke manier documenten openen
// DWF bestanden worden eventueel met de SLNKDWF viewer geopend // DWF bestanden worden eventueel met de SLNKDWF viewer geopend
// Poweruser feature: Ctrl ingedrukt opent DWF bestanden toch 'gewoon' // Poweruser feature: Ctrl ingedrukt opent DWF bestanden toch 'gewoon'