2018-01-29 12:57:10 +01:00
var breitenGrad , langenGrad , date ;
2016-06-27 01:45:38 +02:00
var dataURL = "" ;
2018-01-29 12:57:10 +01:00
var blob , newday , longrider ;
2016-06-27 01:45:38 +02:00
var xinner = $ ( "#GeoLocSaveXCOOR" ) ;
var yinner = $ ( "#GeoLocSaveYCOOR" ) ;
var ZeiterfassungDatakonstrukt = [ ] ;
var KlientDatakonstrukt = [ ] ;
2018-02-05 14:21:08 +01:00
var klientzwischenspeicher = [ ] ;
2016-06-27 01:45:38 +02:00
2018-02-05 14:21:08 +01:00
var timeOut = 10000 ;
2016-06-27 01:45:38 +02:00
2018-04-18 14:33:21 +02:00
function buildCollapsibleSet ( jsonString ) {
2016-06-27 01:45:38 +02:00
try {
2018-06-22 20:25:13 +02:00
if ( jsonString . length === 0 ) {
2016-06-27 01:45:38 +02:00
return ;
}
2018-06-29 16:35:19 +02:00
var kollektion = $ . parseJSON ( jsonString ) ;
2018-06-22 20:25:13 +02:00
2018-05-22 17:19:56 +02:00
actuallyBuildCollapsibleSet ( kollektion , null ) ;
2018-06-22 20:25:13 +02:00
} catch ( exception ) {
console . log ( 'Fehler(BuildCollapsibleSet): ' + exception . message ) ;
2016-06-27 01:45:38 +02:00
}
}
2018-05-22 17:19:56 +02:00
function actuallyBuildCollapsibleSet ( kollektion , selectedGoalOids ) {
2016-06-27 01:45:38 +02:00
$ ( "#kollabierbar1" ) . empty ( ) ;
collapsibleHtml = "" ;
2018-01-29 12:57:10 +01:00
2016-06-27 01:45:38 +02:00
$ . each ( kollektion , function ( index ) {
2018-05-22 17:19:56 +02:00
buildGoalTreeItem ( kollektion [ index ] , selectedGoalOids ) ;
2016-06-27 01:45:38 +02:00
} ) ;
$ ( "#kollabierbar1" ) . append ( collapsibleHtml ) ;
}
2018-10-08 11:57:16 +02:00
var level = 0 ;
2016-06-27 01:45:38 +02:00
var collapsibleHtml ;
2018-05-22 17:19:56 +02:00
function buildGoalTreeItem ( goalItem , selectedGoalOids ) {
2018-10-08 11:57:16 +02:00
var goalOid = goalItem . ValueListEntryOid ;
var goalHeader = goalItem . Header ;
var isChecked = selectedGoalOids != null && isElementInArray ( selectedGoalOids , goalOid ) ? "checked" : "" ;
if ( ! goalItem . IsLeaf ) {
//collapsibleHtml += '<input type="checkbox" style="width: auto;" onclick="updateGoals(' + goalOid + ')" id="' + goalOid + '" value="' + goalHeader + '" ' + isChecked + '/><label class="toggle-btnLabel" for="' + goalHeader + '">' + goalHeader + '</label>';
collapsibleHtml += '<div onclick="toggleOnclick(this);" class="toggle-btn-div" style="margin-right: 0; padding-right: 0;display: block;"><input type="checkbox" style="width: auto;" onclick="updateChildGoals(' + goalOid + ');event.stopPropagation();" id="goal' + goalOid + '" value="' + goalOid + '" ' + isChecked + ' />' + goalHeader + '</div>' ;
//collapsibleHtml += '<input onclick="toggleOnclick(this);" type="button" class="toggle-btn" value="' + goalHeader + '" style="margin-right: 0; padding-right: 0;" />';
2018-06-13 14:38:35 +02:00
collapsibleHtml += '<div style="margin-right: 0; padding-right: 0;display: none;" class="kollabierbar">' ;
try {
$ . each ( goalItem . Children ,
function ( index ) {
buildGoalTreeItem ( goalItem . Children [ index ] , selectedGoalOids ) ;
} ) ;
2018-06-22 20:25:13 +02:00
} catch ( exception ) {
console . log ( 'Fehler bei der Baumkonstruktion: ' + exception . message ) ;
2018-06-13 14:38:35 +02:00
}
2018-10-08 11:57:16 +02:00
collapsibleHtml += "</div>" ;
2018-06-13 14:38:35 +02:00
} else {
2018-10-08 11:57:16 +02:00
2018-06-22 20:25:13 +02:00
collapsibleHtml += '<div style="margin-right: 0; padding-right: 0;display: block;"><input type="checkbox" style="width: auto;" onclick="updateGoals(' + goalOid + ')" id="' + goalOid + '" value="' + goalHeader + '" ' + isChecked + ' />' + goalHeader + '</div>' ;
2016-06-27 01:45:38 +02:00
}
2018-06-22 20:25:13 +02:00
2016-06-27 01:45:38 +02:00
2018-10-08 11:57:16 +02:00
2016-06-27 01:45:38 +02:00
}
function loadGoalsOnSuccess ( json ) {
2018-01-29 12:57:10 +01:00
if ( json === "SessionTimeout" ) {
2016-06-27 01:45:38 +02:00
window . location . href = redirectLink ;
return ;
}
2018-04-18 14:33:21 +02:00
buildCollapsibleSet ( json ) ;
2016-06-27 01:45:38 +02:00
}
2018-04-18 14:33:21 +02:00
function loadServiceDescriptionsOnSuccess ( json ) {
2018-02-07 14:14:08 +01:00
if ( json === "SessionTimeout" ) {
2016-06-27 01:45:38 +02:00
window . location . href = redirectLink ;
return ;
}
2018-06-29 16:35:19 +02:00
var liste = $ . parseJSON ( json ) ;
2017-04-26 14:57:32 +02:00
2016-06-27 01:45:38 +02:00
$ ( "#leistungen_select" ) . empty ( ) ;
2017-04-26 14:57:32 +02:00
$ ( "#leistungen_select" ) . val ( "" ) ;
2016-06-27 01:45:38 +02:00
$ . each ( liste , function ( index , leistung ) {
2018-06-22 20:25:13 +02:00
$ ( "#leistungen_select" ) . append ( '<option value="' + leistung . ServiceDescriptionOid + '">' + leistung . Name + '</option>' ) ;
2016-06-27 01:45:38 +02:00
} ) ;
2018-04-27 14:11:21 +02:00
if ( liste [ 0 ] !== undefined ) {
if ( isInEditingMode ( ) === false ) {
$ ( "#leistungen_select" ) . val ( liste [ 0 ] . ServiceDescriptionOid ) ;
2016-06-27 01:45:38 +02:00
2018-04-27 14:11:21 +02:00
makeAjaxCall ( "GET" , setServiceDescriptionUrl , null , { pServiceDescriptionOid : liste [ 0 ] . ServiceDescriptionOid } , null ) ;
} else {
makeAjaxCall ( "GET" ,
loadCategoryAndDescriptionUrl ,
function ( result ) {
2018-06-29 16:35:19 +02:00
var arr = result . split ( "/" ) ;
var descriptionOid = arr [ 0 ] ;
var categoryOid = arr [ 1 ] ;
2018-04-27 14:11:21 +02:00
$ ( "#kategorien_select" ) . val ( categoryOid ) ;
$ ( "#leistungen_select" ) . val ( descriptionOid ) ;
2018-05-22 17:19:56 +02:00
$ ( "#leistungen_select" ) . trigger ( "change" ) ;
2018-04-27 14:11:21 +02:00
} ,
{ } ,
null ) ;
}
2016-06-27 01:45:38 +02:00
}
}
function showAjaxError ( jqXHR , textStatus , errorThrown ) {
hideSanduhr ( ) ;
2017-02-01 13:53:59 +01:00
//if (jqXHR.status == 0) {
//toggleErrorPopup("Es besteht zurzeit keine Internetverbindung." +
// " Die Daten werden zwischengespeichert und beim nächsten Login an den Server gesendet. " + errorThrown,2);
//setTimeout(function () {
//showServiceRecords();
2018-02-05 14:21:08 +01:00
//}, timeOut);
2017-02-01 13:53:59 +01:00
//}
//else
2018-04-27 14:11:21 +02:00
if ( jqXHR . status === 0 ) {
console . log ( "status is 0; ajax call aborted" ) ;
return ;
}
2018-06-22 20:25:13 +02:00
2018-01-29 12:57:10 +01:00
toggleErrorPopup ( jqXHR . status + " " + errorThrown ) ;
2016-06-27 01:45:38 +02:00
}
function showErrorMsg ( message ) {
toggleErrorPopup ( message ) ;
}
function resizeLabelColumns ( ) {
$ ( "#tabLbl" ) . css ( "width" , $ ( "#zieleLbl" ) . css ( "width" ) ) ;
}
zeitRegEx = /^(2[0-3]|[01]?[0-9])(:|,|\.|#|;)?([0-5][0-9])$/ ;
function loadGoals ( actionPath ) {
2018-06-29 16:35:19 +02:00
var selectedServiceRecord = $ ( $ ( "#scDropDown" ) ) . find ( ":selected" ) . val ( ) ;
2016-09-21 14:28:04 +02:00
2018-01-31 17:52:28 +01:00
makeAjaxCall ( "GET" , actionPath , loadGoalsOnSuccess , { pCostbearer2SupportConceptOid : selectedServiceRecord } , null ) ;
2016-06-27 01:45:38 +02:00
}
function toggleMenu ( ) {
2018-06-29 16:35:19 +02:00
var menuDiv = $ ( "#menu-div" ) ;
2016-06-27 01:45:38 +02:00
$ ( menuDiv ) . fadeToggle ( "fast" ) ;
}
function loadServiceDescriptions ( ) {
2018-06-29 16:35:19 +02:00
var selectedCategory = $ ( "#kategorien_select" ) . find ( ":selected" ) . val ( ) ;
2018-06-22 20:25:13 +02:00
2018-04-18 14:33:21 +02:00
makeAjaxCall ( "GET" , loadServiceCategoriesUrl , loadServiceDescriptionsOnSuccess , { pServiceCategoryOid : selectedCategory } , null ) ;
2017-04-26 14:57:32 +02:00
loadTextbausteineForServiceCategory ( selectedCategory ) ;
}
function loadTextbausteineForServiceCategory ( serviceCategoryOid ) {
2018-01-31 17:52:28 +01:00
makeAjaxCall ( "GET" , loadTextbausteineForCategoryUrl , loadTextbausteineForCategoryOnSuccess , { pServiceCategoryOid : serviceCategoryOid } , null ) ;
2017-04-26 14:57:32 +02:00
}
function loadTextbausteineForCategoryOnSuccess ( json ) {
if ( json == null ) {
return ;
}
2018-01-31 17:52:28 +01:00
buildTextModuleTree ( json ) ;
2018-01-29 12:57:10 +01:00
}
var collapsibleHtml2 ;
2018-01-31 17:52:28 +01:00
var textModules = new Array ( ) ;
var allTextModules = new Array ( ) ;
function buildTextModuleTree ( jsonString ) {
2018-01-29 12:57:10 +01:00
try {
if ( jsonString . length === 0 ) {
return ;
}
textModules = $ . parseJSON ( jsonString ) ;
2018-01-31 17:52:28 +01:00
$ ( "#kollabierbar2" ) . empty ( ) ;
collapsibleHtml2 = "" ;
2018-01-29 12:57:10 +01:00
2018-01-31 17:52:28 +01:00
$ . each ( textModules , function ( index ) {
buildTreeRecursively ( textModules [ index ] ) ;
} ) ;
$ ( "#kollabierbar2" ) . append ( collapsibleHtml2 ) ;
2018-01-29 12:57:10 +01:00
} catch ( exception ) {
console . log ( "Fehler(BuildCollapsibleSet2): " + exception . message ) ;
}
}
2016-06-27 01:45:38 +02:00
2018-01-31 17:52:28 +01:00
function buildTreeRecursively ( textmodule ) {
allTextModules [ textmodule . Oid ] = textmodule ;
2017-04-26 14:57:32 +02:00
2018-01-31 17:52:28 +01:00
if ( textmodule . IsParent ) {
2018-06-22 20:25:13 +02:00
collapsibleHtml2 += '<input onclick="toggleOnclick(this);" type="button" class="toggle-btn" value="' + textmodule . Name + '" style="font-weight: bold;" />' ;
2018-01-31 17:52:28 +01:00
collapsibleHtml2 += '<div style="display: none; margin-right: 0; padding-right: 0;" class="kollabierbar">' ;
} else {
2018-06-22 20:25:13 +02:00
collapsibleHtml2 += '<div style="display: block; padding-top: .1em;"><input type="button" style="width: 100%; text-align: left;" onclick="setTextModule(' + textmodule . Oid + ')" value="' + textmodule . Name + '" /></div>' ;
2018-01-31 17:52:28 +01:00
}
2018-01-29 12:57:10 +01:00
2018-01-31 17:52:28 +01:00
$ . each ( textmodule . Children ,
function ( index ) {
buildTreeRecursively ( textmodule . Children [ index ] ) ;
}
) ;
2018-01-29 12:57:10 +01:00
2018-01-31 17:52:28 +01:00
if ( textmodule . IsParent ) {
collapsibleHtml2 += "</div>" ;
}
2018-01-29 12:57:10 +01:00
}
function setTextModule ( moduleOid ) {
2018-02-07 14:14:08 +01:00
if ( window . focusedDokuTextarea == null ) {
2018-01-31 17:52:28 +01:00
if ( $ ( "#trnormalDoku" ) . css ( "display" ) !== "none" ) {
2018-02-07 14:14:08 +01:00
window . focusedDokuTextarea = $ ( "#notiz_textbox" ) ;
2018-01-31 17:52:28 +01:00
} else {
2018-02-07 14:14:08 +01:00
window . focusedDokuTextarea = $ ( "#notiz_textbox1" ) ;
2018-01-31 17:52:28 +01:00
}
}
2018-02-07 14:14:08 +01:00
window . focusedDokuTextarea . val ( window . focusedDokuTextarea . val ( ) + allTextModules [ moduleOid ] . Text ) ;
2018-06-27 13:55:20 +02:00
hideTextModulePopup ( ) ;
2017-04-26 14:57:32 +02:00
}
function setTextbaustein ( ) {
2018-06-29 16:35:19 +02:00
var selectedTextbausteinOid = $ ( "#textbausteine_select" ) . find ( ":selected" ) . val ( ) ;
2017-04-26 14:57:32 +02:00
if ( selectedTextbausteinOid > 0 ) {
makeAjaxCall ( "GET" , loadCompleteTextbausteinByOidUrl , loadTextbausteinContentOnSuccess , { pTextbausteinOid : selectedTextbausteinOid } , null ) ;
}
}
function loadTextbausteinContentOnSuccess ( textbausteintext ) {
if ( focusedDokuTextarea != null ) {
2018-06-29 16:35:19 +02:00
var cursorPosition = focusedDokuTextarea . prop ( "selectionStart" ) ;
var v = focusedDokuTextarea . val ( ) ;
var textBefore = v . substring ( 0 , cursorPosition ) ;
var textAfter = v . substring ( cursorPosition , v . length ) ;
2017-04-26 14:57:32 +02:00
focusedDokuTextarea . val ( textBefore + textbausteintext + textAfter ) ;
} else {
console . log ( "focusedDokuTextarea ist null!" ) ;
}
2016-06-27 01:45:38 +02:00
}
function updateGoals ( cbId ) {
makeAjaxCall ( "GET" , updateGoalsUrl , null , { pGoalOid : cbId } , null ) ;
}
2018-10-08 11:57:16 +02:00
var goalOidArray = new Array ( ) ;
function updateChildGoals ( goalOid ) {
goalOidArray = new Array ( ) ;
var parent = document . getElementById ( "goal" + goalOid ) ;
alert ( "start" ) ;
CheckChildGoalNodes ( parent ) ;
//makeAjaxCall("GET", updateGoalsUrl, null, { pGoalOid: cbId }, null);
}
function CheckChildGoalNodes ( parent ) {
goalOidArray = new Array ( ) ;
var next = parent . parentNode ;
alert ( next ) ;
alert ( next . nextSibling ) ;
var nodeList = next . childNodes ;
alert ( nodeList . length ) ;
for ( var i = 0 ; i < nodeList . length ; i ++ ) {
var node = nodeList [ i ] ;
alert ( node . nodeName ) ;
CheckChildGoalNodes ( node ) ;
}
//makeAjaxCall("GET", updateGoalsUrl, null, { pGoalOid: cbId }, null);
}
2016-06-27 01:45:38 +02:00
function setServiceDescription ( ) {
2018-06-29 16:35:19 +02:00
var sdOid = $ ( "#leistungen_select" ) . find ( ":selected" ) . val ( ) ;
2018-06-22 20:25:13 +02:00
2018-05-22 17:19:56 +02:00
makeAjaxCall ( "GET" , setServiceDescriptionUrl , function ( kek ) { } , { pServiceDescriptionOid : sdOid } , function ( kek ) { } ) ;
2016-06-27 01:45:38 +02:00
}
function selectServiceRecord ( oid ) {
$ ( "#versteckt" ) . val ( "Speichern" ) ;
2017-04-26 14:57:32 +02:00
$ ( "html, body" ) . animate ( { scrollTop : 0 } , "fast" ) ;
2016-06-27 01:45:38 +02:00
$ . ajax ( {
type : "GET" ,
url : setSelectedServiceRecordUrl ,
data : { recordOid : oid } ,
success : function ( ) {
$ . ajax ( {
type : "GET" ,
2018-01-29 12:57:10 +01:00
url : getSelectedRecordInformationUrl ,
2016-06-27 01:45:38 +02:00
success : function ( jsonServiceRecord ) {
try {
2018-02-07 14:14:08 +01:00
if ( jsonServiceRecord === "SessionTimeout" ) {
2016-06-27 01:45:38 +02:00
window . location . href = redirectLink ;
return ;
}
var record = $ . parseJSON ( jsonServiceRecord ) ;
2018-06-29 16:35:19 +02:00
var goals = record . Goals ;
2018-01-29 12:57:10 +01:00
2018-05-22 17:19:56 +02:00
var idArray = new Array ( ) ;
2016-06-27 01:45:38 +02:00
var meinGoalsArray = new Array ( ) ;
2018-06-29 16:35:19 +02:00
var j = 0 ;
for ( var i = 0 ; i < goals . length ; i ++ ) {
2018-05-22 17:19:56 +02:00
if ( goals [ i ] . ValueListEntryOid !== undefined ) {
idArray [ j ] = goals [ i ] . ValueListEntryOid ;
j ++ ;
}
2016-06-27 01:45:38 +02:00
}
$ . ajax ( {
type : "GET" ,
url : loadGoalsUrl ,
data : { pCostbearer2SupportConceptOid : $ ( $ ( "#scDropDown" ) ) . find ( ":selected" ) . val ( ) } ,
success : function ( goalsJson ) {
2018-01-31 17:52:28 +01:00
if ( goalsJson === "SessionTimeout" ) {
2016-06-27 01:45:38 +02:00
window . location . href = redirectLink ;
return ;
}
try {
meinGoalsArray = goalsJson !== "" ? $ . parseJSON ( goalsJson ) : "" ;
} catch ( exception ) {
2018-06-22 20:25:13 +02:00
console . log ( 'Fehler beim JSON Parsing von selectServiceRecord(' + oid + '): ' + exception . message ) ;
2016-06-27 01:45:38 +02:00
}
2018-01-31 17:52:28 +01:00
var rawStartDateStr = record . Start [ 18 ] === "1" ? "" : record . Start . slice ( 11 , 16 ) ;
var rawEndDateStr = record . End [ 18 ] === "1" ? "" : record . End . slice ( 11 , 16 ) ;
var startDateYearStr = record . Start . slice ( 0 , 4 ) ;
var startDateMonthStr = record . Start . slice ( 5 , 7 ) ;
var startDateDayStr = record . Start . slice ( 8 , 10 ) ;
var dateStr = startDateDayStr + "." + startDateMonthStr + "." + startDateYearStr ;
var endDateYearStr = record . End . slice ( 0 , 4 ) ;
var endDateMonthStr = record . End . slice ( 5 , 7 ) ;
var endDateDayStr = record . End . slice ( 8 , 10 ) ;
var endDateDateStr = endDateDayStr + "." + endDateMonthStr + "." + endDateYearStr ;
$ ( "#start_textbox" ) . val ( rawStartDateStr ) ;
$ ( "#ende_textbox" ) . val ( rawEndDateStr ) ;
$ ( "#datum_textbox" ) . val ( dateStr ) ;
2016-06-27 01:45:38 +02:00
$ ( "#notiz_textbox" ) . val ( record . Notice ) ;
2018-01-31 17:52:28 +01:00
$ ( "#enddatum_textbox" ) . val ( endDateDateStr ) ;
2016-06-27 01:45:38 +02:00
$ ( "#notiz_textbox1" ) . val ( record . Notice ) ;
$ ( "#notiz_textbox2" ) . val ( record . Notice2 ) ;
$ ( "#notiz_textbox3" ) . val ( record . Notice3 ) ;
$ ( "#notiz_textbox4" ) . val ( record . Notice4 ) ;
$ ( "#notiz_textbox5" ) . val ( record . Notice5 ) ;
2018-04-18 14:33:21 +02:00
$ ( "#duration_textbox" ) . val ( record . RoundedDuration ) ;
2018-05-25 15:07:47 +02:00
$ ( "#distance_textbox" ) . val ( record . DistanceInMeter ) ;
2016-06-27 01:45:38 +02:00
$ ( "#employeesDropDown" ) . val ( record . Employee . EmployeeOid ) ;
2018-01-29 12:57:10 +01:00
2018-02-07 14:14:08 +01:00
window . serviceRecordEmployeeOid = record . Employee . EmployeeOid ;
2016-06-27 01:45:38 +02:00
actuallyBuildCollapsibleSet ( meinGoalsArray , idArray ) ;
$ ( "#anlegenEditierenBtn" ) . val ( "Speichern" ) ;
$ . ajax ( {
type : "GET" ,
url : loadServiceCategoriesUrl ,
success : function ( result ) {
2018-01-31 17:52:28 +01:00
if ( result === "SessionTimeout" ) {
2016-06-27 01:45:38 +02:00
window . location . href = redirectLink ;
return ;
}
$ ( "#kategorien_select" ) . val ( record . ServiceDescription . Category . ServiceCategoryOid ) ;
2018-06-29 16:35:19 +02:00
var liste = $ . parseJSON ( result ) ;
2016-06-27 01:45:38 +02:00
$ ( "#leistungen_select" ) . empty ( ) ;
2018-01-31 17:52:28 +01:00
$ ( "#leistungen_select" ) . val ( "" ) ;
2016-06-27 01:45:38 +02:00
$ . each ( liste , function ( index , leistung ) {
2018-06-22 20:25:13 +02:00
$ ( "#leistungen_select" ) . append ( '<option value="' + leistung . ServiceDescriptionOid + '">' + leistung . Name + '</option>' ) ;
2016-06-27 01:45:38 +02:00
} ) ;
$ ( "#leistungen_select" ) . val ( record . ServiceDescription . ServiceDescriptionOid ) ;
makeAjaxCall ( "GET" , setServiceDescriptionUrl , null , { pServiceDescriptionOid : record . ServiceDescription . ServiceDescriptionOid } , null ) ;
2018-05-25 15:07:47 +02:00
toggleLabel ( "distance_textbox" ) ;
2016-06-27 01:45:38 +02:00
toggleLabel ( "duration_textbox" ) ;
toggleLabel ( "start_textbox" ) ;
toggleLabel ( "ende_textbox" ) ;
$ ( "input" ) . prop ( "disabled" , false ) ;
$ ( "#abbrechenBtn" ) . prop ( "disabled" , true ) ;
$ ( "select" ) . prop ( "disabled" , false ) ;
2018-01-31 17:52:28 +01:00
2016-06-27 01:45:38 +02:00
toggleSelectClassesForElement ( "#kategorien_select" , "#kategorien-select-container" ) ;
toggleSelectClassesForElement ( "#leistungen_select" , "#leistungen-select-container" ) ;
toggleSelectClassesForElement ( "#recordLoader_select" , "#record-loader-select-container" ) ;
2017-04-26 14:57:32 +02:00
toggleSelectClassesForElement ( "#textbausteine_select" , "#textbausteine-select-container" ) ;
2016-06-27 01:45:38 +02:00
$ ( "#abbrechenBtn" ) . prop ( "disabled" , false ) ;
hideSanduhr ( ) ;
} ,
error : showErrorMsg ,
data : { pServiceCategoryOid : record . ServiceDescription . Category . ServiceCategoryOid }
} ) ;
} ,
error : showAjaxError ,
complete : hideSanduhr
} ) ;
} catch ( exception1 ) {
2018-06-22 20:25:13 +02:00
console . log ( 'Fehler beim JSON Parsing von selectServiceRecord(' + oid + '): ' + exception1 . message ) ;
2016-06-27 01:45:38 +02:00
}
} ,
error : showAjaxError
} ) ;
}
} ) ;
}
function activateForm ( actionPath ) {
$ ( "input" ) . prop ( "disabled" , false ) ;
$ ( "textarea" ) . prop ( "disabled" , false ) ;
2017-04-26 14:57:32 +02:00
$ ( "#kategorien_select, #leistungen_select, #recordLoader_select, #textbausteine_select" ) . prop ( "disabled" , false ) ;
2016-06-27 01:45:38 +02:00
toggleSelectClassesForElement ( "#kategorien_select" , "#kategorien-select-container" ) ;
toggleSelectClassesForElement ( "#leistungen_select" , "#leistungen-select-container" ) ;
2017-04-26 14:57:32 +02:00
toggleSelectClassesForElement ( "#recordLoader_select" , "#record-loader-select-container" ) ;
toggleSelectClassesForElement ( "#textbausteine_select" , "#textbausteine-select-container" ) ;
2016-06-27 01:45:38 +02:00
loadGoals ( actionPath ) ;
$ ( "#kategorien_select" ) . val ( $ ( "#kategorien_select option" ) . eq ( 0 ) . val ( ) ) ;
loadServiceDescriptions ( ) ;
}
function resetRecordForm ( ) {
showSanduhr ( ) ;
$ ( "#versteckt" ) . val ( "Anlegen" ) ;
$ ( "#anlegenEditierenBtn" ) . val ( "Anlegen" ) ;
clearZED ( ) ;
$ ( "#start_textbox" ) . val ( "" ) . trigger ( "change" ) ;
$ ( "#ende_textbox" ) . val ( "" ) . trigger ( "change" ) ;
$ ( "#notiz_textbox" ) . val ( "" ) . trigger ( "change" ) ;
$ ( "#duration_textbox" ) . val ( "" ) . trigger ( "change" ) ;
2018-06-22 20:25:13 +02:00
$ ( "#distance_textbox" ) . val ( "" ) . trigger ( "change" ) ;
2016-06-27 01:45:38 +02:00
$ ( "#datum_textbox" ) . val ( getDateStringWithLeadingZeros ( new Date ( ) ) ) ;
2018-05-22 17:19:56 +02:00
$ ( "#enddatum_textbox" ) . val ( getDateStringWithLeadingZeros ( new Date ( ) ) ) ;
2016-06-27 01:45:38 +02:00
$ ( "#kategorien_select" ) . val ( $ ( "#kategorien_select option" ) . eq ( 0 ) . val ( ) ) ;
2018-06-29 16:35:19 +02:00
for ( var i = 0 ; i < numberOfDocumentationTypes ; i ++ ) {
2018-06-22 20:25:13 +02:00
$ ( '#notiz_textbox' + ( i + 1 ) ) . val ( "" ) ;
2018-02-02 14:43:40 +01:00
}
2018-06-29 16:35:19 +02:00
var selectedCategory = $ ( "#kategorien_select" ) . find ( ":selected" ) . val ( ) ;
2016-06-27 01:45:38 +02:00
2018-04-18 14:33:21 +02:00
if ( isInEditingMode ( ) ) {
2018-06-22 20:25:13 +02:00
console . log ( 'making ajax call to reset the editing mode' ) ;
2018-04-18 14:33:21 +02:00
makeAjaxCall ( "POST" , resetEditingModeUrl , function ( response ) { window . location . reload ( ) ; } , { pFormCollection : null } , null ) ;
}
2018-06-22 20:25:13 +02:00
2016-06-27 01:45:38 +02:00
$ . ajax ( {
type : "GET" ,
url : loadServiceCategoriesUrl ,
data : { pServiceCategoryOid : selectedCategory } ,
success : function ( json ) {
2018-04-18 14:33:21 +02:00
loadServiceDescriptionsOnSuccess ( json ) ;
2016-06-27 01:45:38 +02:00
$ . ajax ( {
type : "GET" ,
url : setSelectedServiceRecordUrl ,
data : { recordOid : null } ,
success : function ( ) {
loadGoals ( loadGoalsUrl ) ;
hideSanduhr ( ) ;
} ,
error : showAjaxError
} ) ;
}
} ) ;
}
function toggleOnclick ( element ) {
2018-06-29 16:35:19 +02:00
var collapsedDiv = $ ( element ) . next ( "div" ) ;
var isHidden = "none" === $ ( collapsedDiv ) . css ( "display" ) ;
2016-06-27 01:45:38 +02:00
var newIcon = "url('" ;
newIcon += isHidden ? toggleIconUContentUrl : toggleIconDContentUrl ;
newIcon += "')" ;
$ ( element ) . css ( "background-image" , newIcon ) ;
$ ( collapsedDiv ) . fadeToggle ( "fast" ) ;
}
2018-01-31 17:52:28 +01:00
$ ( document ) . mouseup ( function ( e ) {
2018-06-29 16:35:19 +02:00
var menu = $ ( "#menu-div" ) ;
var menuBtn = $ ( "#menu-btn" ) ;
2016-06-27 01:45:38 +02:00
2018-01-31 17:52:28 +01:00
if ( ! menu . is ( e . target ) && ! menuBtn . is ( e . target ) && menu . has ( e . target ) . length === 0 ) {
2016-06-27 01:45:38 +02:00
menu . fadeOut ( "fast" ) ;
}
} ) ;
function saveCreateServicerecod ( ) {
showSanduhr ( ) ;
//if (validateTimeField("#start_textbox") && validateTimeField("#ende_textbox")) {
validateServiceRecordBeforeSubmit ( ) ;
//} else {
// hideSanduhr();
// }
}
function validateTimeField ( id ) {
2018-06-29 16:35:19 +02:00
var timeStr = $ ( id ) . val ( ) ;
var zeitStr = id === "#start_textbox" ? "Start" : "End" ;
2016-06-27 01:45:38 +02:00
2018-02-07 14:14:08 +01:00
if ( timeStr !== "" && ! zeitRegEx . test ( timeStr ) ) {
2018-06-22 20:25:13 +02:00
showZeiterfassungsError ( 'Bitte geben Sie eine ' + + 'xxx-Zeit in einem gültigen Format (HH:MM oder HHMM) an.' ) ;
2016-06-27 01:45:38 +02:00
return false ;
} else {
clearZED ( ) ;
return true ;
}
}
recordToDelete = 0 ;
function togglePopup ( serviceRecordOid ) {
2018-02-07 14:14:08 +01:00
window . recordToDelete = serviceRecordOid ;
2016-06-27 01:45:38 +02:00
2018-06-29 16:35:19 +02:00
var isShowing = $ ( ".modalWrapper" ) . css ( "display" ) === "none" ;
var displayValue = $ ( ".modalWrapper" ) . css ( "display" ) === "block" ? "none" : "block" ;
2016-06-27 01:45:38 +02:00
toggleModalWrapper ( ) ;
$ ( "#popupDiv" ) . css ( "display" , displayValue ) ;
if ( isShowing ) {
2018-06-29 16:35:19 +02:00
var titleOuterHeight = $ ( "#popupTitle" ) . outerHeight ( ) ;
var textOuterHeight = $ ( "#popupText" ) . outerHeight ( ) ;
var buttonDivOuterHeight = $ ( "#popupBtnDiv" ) . outerHeight ( ) ;
var btnOuterHeight = $ ( ".popupBtn" ) . outerHeight ( ) ;
2016-06-27 01:45:38 +02:00
2018-06-29 16:35:19 +02:00
var newHeight = titleOuterHeight + textOuterHeight + buttonDivOuterHeight + btnOuterHeight + btnOuterHeight ;
2016-06-27 01:45:38 +02:00
2018-05-22 17:19:56 +02:00
$ ( "#popupDiv" ) . css ( "height" , newHeight + "px" ) ;
2016-06-27 01:45:38 +02:00
2018-05-22 17:19:56 +02:00
$ ( "#popupDiv" ) . css ( "top" , window . pageYOffset + window . innerHeight / 2 - newHeight / 2 ) ;
2016-06-27 01:45:38 +02:00
$ ( "#popupDiv" ) . css ( "margin-top" , "0" ) ;
} else {
$ ( "#popupDiv" ) . css ( "margin-top" , "auto" ) ;
}
}
function toggleModalWrapper ( ) {
2018-06-29 16:35:19 +02:00
var displayValue = $ ( ".modalWrapper" ) . css ( "display" ) === "block" ? "none" : "block" ;
2016-06-27 01:45:38 +02:00
$ ( ".modalWrapper" ) . css ( "display" , displayValue ) ;
$ ( ".modalWrapper" ) . css ( "height" , $ ( document ) . height ( ) ) ;
}
$ ( function ( ) {
2018-04-18 14:33:21 +02:00
$ ( "#deletionForm" ) . submit ( function ( ) {
2016-06-27 01:45:38 +02:00
$ . ajax ( {
type : "GET" ,
url : setRecordForDeletionUrl ,
data : { serviceRecordOid : recordToDelete } ,
success : function ( ) {
return true ;
} ,
error : function ( ) {
showAjaxError ( ) ;
return false ;
}
} ) ;
2018-06-22 20:25:13 +02:00
2016-06-27 01:45:38 +02:00
return true ;
} ) ;
} ) ;
function validateServiceRecordBeforeSubmit ( ) {
function getLocation ( ) {
if ( navigator . geolocation ) {
navigator . geolocation . getCurrentPosition ( showPosition , showError ) ;
} else {
console . log ( "Ortung wird von diesem Browser nicht unterstützt" ) ;
showPosition ( null ) ;
}
}
2018-06-22 20:25:13 +02:00
2018-06-29 16:35:19 +02:00
var dateStr = $ ( "#datum_textbox" ) . val ( ) ;
var startStr = $ ( "#start_textbox" ) . val ( ) ;
var endStr = $ ( "#ende_textbox" ) . val ( ) ;
2016-06-27 01:45:38 +02:00
2018-06-29 16:35:19 +02:00
var x = getDateObj ( true ) ;
2016-06-27 01:45:38 +02:00
var y ;
2018-02-02 14:43:40 +01:00
if ( $ ( "#enddatum_textbox" ) . val ( ) !== "" ) {
2016-06-27 01:45:38 +02:00
y = getEndDateObj ( ) ;
2018-02-02 14:43:40 +01:00
} else {
2016-06-27 01:45:38 +02:00
y = getDateObj ( false ) ;
2018-02-02 14:43:40 +01:00
}
2016-06-27 01:45:38 +02:00
var vonDatum = getDateTimeStringWithLeadingZeros ( x ) ;
2018-06-29 16:35:19 +02:00
var bisDatum = getDateTimeStringWithLeadingZeros ( y ) ;
2016-06-27 01:45:38 +02:00
var isValidRecord = true ;
makeAjaxCall ( "POST" , checkRightsUrl , function ( json ) {
2018-02-02 14:43:40 +01:00
if ( json === "SessionTimeout" ) {
2016-06-27 01:45:38 +02:00
window . location . href = redirectLink ;
return ;
}
2018-02-02 14:43:40 +01:00
if ( json === "StartGreaterEnd" ) {
2016-06-27 01:45:38 +02:00
hideSanduhr ( ) ;
writeFatalErrorMessage ( "Die Startzeit darf nicht größer als die Endzeit sein!" ) ;
return ;
}
var meldungen = $ . parseJSON ( json ) ;
var results = meldungen . ValidationResults ;
var allowOverlappingFLS = false ;
var allowMoreFLSThanApproved = false ;
var bookAfterSettlementInvoice = false ;
$ . each ( meldungen . Rights , function ( position ) {
2018-06-29 16:35:19 +02:00
var value = meldungen . Rights [ position ] ;
var key = parseInt ( position ) ;
2018-02-02 14:43:40 +01:00
2016-06-27 01:45:38 +02:00
switch ( key ) {
2018-02-02 14:43:40 +01:00
case 0 :
allowOverlappingFLS = value ;
break ;
case 1 :
allowMoreFLSThanApproved = value ;
break ;
case 2 :
bookAfterSettlementInvoice = value ;
break ;
default :
break ;
2016-06-27 01:45:38 +02:00
}
} ) ;
var exitLoop = false ;
for ( var i = 0 ; i < results . length ; i ++ ) {
if ( exitLoop )
break ;
switch ( results [ i ] . ResultType ) {
case 0 :
2018-06-22 20:25:13 +02:00
var msg1 = 'An dem gewählten Datum \'' + vonDatum + '\' existiert bereits ein Eintrag (' + results [ i ] . Message + ' bei Klient/in ' + results [ i ] . CustomerName + '). Speichern nicht möglich.' ;
2018-02-02 14:43:40 +01:00
if ( allowOverlappingFLS === true ) {
2018-06-22 20:25:13 +02:00
var r = confirm ( 'An dem gewählten Datum \'' + vonDatum + '\' existiert bereits ein Eintrag (' + results [ i ] . Message + ' bei Klient/in ' + results [ i ] . CustomerName + '). Möchten Sie trotzdem speichern?' ) ;
2016-06-27 01:45:38 +02:00
isValidRecord = r ;
exitLoop = ! isValidRecord ;
} else {
writeFatalErrorMessage ( msg1 ) ;
isValidRecord = false ;
exitLoop = true ;
}
break ;
case 1 :
2018-06-22 20:25:13 +02:00
var msg2 = 'An dem gewählten Datum ' + vonDatum + ' existiert bereits ein Eintrag für den ausgewählten Mitarbeiter(' + results [ i ] . EmployeeName + '). Speichern nicht möglich.' ;
2018-02-02 14:43:40 +01:00
if ( allowOverlappingFLS === true ) {
2018-06-22 20:25:13 +02:00
var r2 = confirm ( 'An dem gewählten Datum ' + vonDatum + ' existiert bereits ein Eintrag für den ausgewählten Mitarbeiter(' + results [ i ] . EmployeeName + '). Möchten Sie trotzdem speichern?' ) ;
2016-06-27 01:45:38 +02:00
isValidRecord = r2 ;
exitLoop = ! isValidRecord ;
} else {
writeFatalErrorMessage ( msg2 ) ;
isValidRecord = false ;
exitLoop = true ;
}
break ;
case 2 :
2018-06-22 20:25:13 +02:00
writeFatalErrorMessage ( 'Das gewählte Datum ' + vonDatum . slice ( 0 , 10 ) + ' liegt außerhalb des Zeitraumes des gewählten Hilfeplans. Speichern nicht möglich.' ) ;
2016-06-27 01:45:38 +02:00
isValidRecord = false ;
exitLoop = true ;
break ;
case 3 :
2018-06-22 20:25:13 +02:00
var msg3 = 'Die für diesen Hilfeplan genehmigten FLS (' + results [ i ] . ApprovedHours + ') werden mit diesem Eintrag überschritten. (' + results [ i ] . HoursNew + ').' ;
2018-02-02 14:43:40 +01:00
if ( allowMoreFLSThanApproved === true ) {
2016-06-27 01:45:38 +02:00
var r3 = confirm ( msg3 + " Möchten Sie trotzdem speichern?" ) ;
isValidRecord = r3 ;
exitLoop = ! isValidRecord ;
} else {
writeFatalErrorMessage ( msg3 ) ;
isValidRecord = false ;
exitLoop = true ;
}
break ;
case 4 :
2018-06-22 20:25:13 +02:00
writeFatalErrorMessage ( 'Sie können keine neuen Leistungen für den ' + vonDatum + ' dokumentieren, da bereits der ' + meldungen . MaxDaysEditServiceRecordsAllowed + '. des nachfolgenden Monats überschritten ist.' ) ;
2016-06-27 01:45:38 +02:00
isValidRecord = false ;
exitLoop = true ;
break ;
case 5 :
writeFatalErrorMessage ( "Beim Speichern ist ein Fehler aufgetreten. Speichern nicht möglich." ) ;
isValidRecord = false ;
exitLoop = true ;
break ;
case 6 :
var msg6 = "Es existiert bereits eine Spitzabrechnung. Um diesen Eintrag zu berücksichtigen, muss eventuell eine neue Spitzabrechnung erstellt werden. Das Speichern ist nicht möglich." ;
2018-02-02 14:43:40 +01:00
if ( bookAfterSettlementInvoice === true ) {
2016-06-27 01:45:38 +02:00
msg6 = "Sie können den Eintrag nicht bearbeiten, da bereits eine Spitzabrechnung für diesen Hilfeplan erstellt wurde. Speichern nicht möglich." ;
}
writeFatalErrorMessage ( msg6 ) ;
isValidRecord = false ;
exitLoop = true ;
break ;
2017-02-01 13:53:59 +01:00
case 7 :
var msg7 = "Sie können keine neuen Leistungen dokumentieren, da die Frist zur Bearbeitung abgelaufen ist. Das Speichern ist nicht möglich." ;
writeFatalErrorMessage ( msg7 ) ;
isValidRecord = false ;
exitLoop = true ;
break ;
2016-06-27 01:45:38 +02:00
default :
2017-02-01 13:53:59 +01:00
writeFatalErrorMessage ( results [ i ] . Message ) ;
2016-06-27 01:45:38 +02:00
isValidRecord = false ;
exitLoop = true ;
break ;
}
}
2018-01-29 12:57:10 +01:00
2016-06-27 01:45:38 +02:00
$ ( "#URLSave" ) . val ( dataURL ) ;
$ ( "#TimeStampSave" ) . val ( newday ) ;
$ ( "#GeoLocSaveXCOOR" ) . val ( langenGrad ) ;
$ ( "#GeoLocSaveYCOOR" ) . val ( breitenGrad ) ;
if ( isValidRecord ) {
$ ( "#createSRForm" ) . submit ( ) ;
} else {
hideSanduhr ( ) ;
}
2018-01-29 12:57:10 +01:00
} ,
2018-02-02 14:43:40 +01:00
{ von : vonDatum , bis : bisDatum , inEditMode : $ ( "#anlegenEditierenBtn" ) . val ( ) === "Speichern" , dateString : dateStr , startString : startStr , endString : endStr } ) ;
2016-06-27 01:45:38 +02:00
}
2018-01-29 12:57:10 +01:00
2016-06-27 01:45:38 +02:00
function ErfolgteSpx ( ) {
2018-06-13 14:38:35 +02:00
if ( document . getElementById ( "SaveSignature" ) . value == "True" ) {
toggleSuccessPopup ( "Eintrag wurde gespeichert." + "\n" + "Möchte Sie diesen unterschreiben lassen?" , 4 ) ;
document . getElementById ( "SaveSignature" ) . value = "False" ;
2018-01-29 12:57:10 +01:00
2016-06-27 01:45:38 +02:00
$ . ajax ( {
2018-06-13 14:38:35 +02:00
type : "GET" ,
url : SetSaveSignatureUrl ,
data : { save : false }
2016-06-27 01:45:38 +02:00
} ) ;
}
}
2018-06-13 14:38:35 +02:00
function initSignatureInfo ( serviceRecordOid ) {
2016-06-27 01:45:38 +02:00
$ . ajax ( {
type : "GET" ,
url : getSelectedRecordInformationUrlWithOid ,
2018-02-07 14:14:08 +01:00
data : { oid : serviceRecordOid } ,
2018-06-22 20:25:13 +02:00
success : function ( jsonServiceRecord ) {
try {
if ( jsonServiceRecord === "SessionTimeout" ) {
2016-06-27 01:45:38 +02:00
window . location . href = redirectLink ;
return ;
}
2018-06-22 20:25:13 +02:00
2018-06-29 16:35:19 +02:00
var record = $ . parseJSON ( jsonServiceRecord ) ;
2018-02-07 14:14:08 +01:00
2018-06-29 16:35:19 +02:00
var startDate = record . Start [ 18 ] === "1" ? "" : record . Start . slice ( 11 , 16 ) ;
var endDate = record . End [ 18 ] === "1" ? "" : record . End . slice ( 11 , 16 ) ;
var jahr = record . Start . slice ( 0 , 4 ) ;
var monat = record . Start . slice ( 5 , 7 ) ;
var tag = record . Start . slice ( 8 , 10 ) ;
var datum = tag + "." + monat + "." + jahr ;
var serviceDescriptionName = record . ServiceDescription . Name ;
var serviceCategoryName = record . ServiceDescription . Category . Name ;
2018-02-07 14:14:08 +01:00
2018-06-29 16:35:19 +02:00
var zahl2 = $ ( "#scDropDown" ) . val ( ) ;
2018-06-22 20:25:13 +02:00
$ ( "#UnterschriftHilfeplan" ) . val ( 'HilfePlan: ' + $ ( "#scDropDown option[value='" + zahl2 + "']" ) . text ( ) ) ;
$ ( "#UnterschriftEmployee" ) . val ( 'Mitarbeiter: ' + record . Employee . FirstName + ' ' + record . Employee . LastName ) ;
$ ( "#UnterschriftKategorie" ) . val ( 'Kategorie: ' + serviceCategoryName ) ;
$ ( "#UnterschriftLeistung" ) . val ( 'Leistungen: ' + serviceDescriptionName ) ;
$ ( "#UnterschriftDatum" ) . val ( 'Datum / Uhrzeit: ' + datum + ' / ' + startDate + ' - ' + endDate ) ;
2018-02-07 14:14:08 +01:00
$ ( "#SaveRecordOID" ) . val ( serviceRecordOid ) ;
2018-06-22 20:25:13 +02:00
console . log ( 'Loading data for service record: ' + $ ( "#SaveRecordOID" ) . value ) ;
2018-02-07 14:14:08 +01:00
} catch ( exception ) {
2018-06-22 20:25:13 +02:00
console . log ( 'Error: ' + + '' ) ;
2018-02-07 14:14:08 +01:00
}
2016-06-27 01:45:38 +02:00
}
} ) ;
}
2018-04-27 14:11:21 +02:00
function writeFatalErrorMessage ( msg , i ) {
toggleErrorPopup ( msg , i ) ;
2016-06-27 01:45:38 +02:00
}
function showZeiterfassungsError ( msg ) {
$ ( "#zeiterfassungsErrorTableRow" ) . css ( "display" , "table-row" ) ;
$ ( "#zeiterfassungsErrorTableCell" ) . css ( "display" , "table-cell" ) ;
$ ( "#zeiterfassungsErrorDisplay" ) . html ( msg + "<br />" ) ;
}
function clearZED ( ) {
$ ( "#zeiterfassungsErrorTableRow" ) . css ( "display" , "none" ) ;
$ ( "#zeiterfassungsErrorDisplay" ) . empty ( ) ;
}
function showCustomers ( ) {
$ ( "#customersDropDown" ) . val ( $ ( "#customersDropDown option" ) . eq ( 0 ) . val ( ) ) ;
preselectCustomer ( ) ;
$ ( "#zeiterfassung" ) . css ( "display" , "none" ) ;
$ ( "#klienten" ) . css ( "display" , "block" ) ;
$ ( "#KalenderNavigation" ) . css ( "display" , "none" ) ;
$ ( "#Kalender" ) . css ( "display" , "none" ) ;
$ ( "#map-canvas" ) . css ( "width" , $ ( "#klientenTabelle" ) . width ( ) ) ;
$ ( "#map-canvas" ) . css ( "height" , "500px" ) ;
$ ( "#UnterschriftBereich" ) . css ( "display" , "none" ) ;
$ ( "#Statistics" ) . css ( "display" , "none" ) ;
$ ( "#SupportStatistik" ) . css ( "display" , "none" ) ;
$ ( "#colorRibbon" ) . css ( "background-color" , "#3b7799" ) ;
toggleMenu ( ) ;
}
function showKalender ( ) {
$ ( "#customersDropDown" ) . val ( $ ( "#customersDropDown option" ) . eq ( 0 ) . val ( ) ) ;
$ ( "#zeiterfassung" ) . css ( "display" , "none" ) ;
$ ( "#KalenderNavigation" ) . css ( "display" , "block" ) ;
$ ( "#Kalender" ) . css ( "display" , "block" ) ;
$ ( "#klienten" ) . css ( "display" , "none" ) ;
$ ( "#colorRibbon" ) . css ( "background-color" , "#04b4d0" ) ;
$ ( "#UnterschriftBereich" ) . css ( "display" , "none" ) ;
$ ( "#Statistics" ) . css ( "display" , "none" ) ;
$ ( "#SupportStatistik" ) . css ( "display" , "none" ) ;
toggleMenu ( ) ;
2018-01-29 12:57:10 +01:00
initCalendar ( ) ;
2016-06-27 01:45:38 +02:00
}
function showUsAendern ( ) {
$ ( "#TerminSpeichern" ) . prop ( 'disabled' , false ) ;
$ ( "#AenderePopupDivSchalter" ) . val ( "true" ) ;
}
function showUsVerwerfen ( ) {
2018-01-29 12:57:10 +01:00
if ( $ ( "#AenderePopupDivSchalter" ) . val ( ) === "true" ) {
2018-02-07 14:14:08 +01:00
toggleUpdateAppointmentPopup ( "Wollen Sie wirklich abbrechen und Ihre Änderungen verwerfen?" ) ;
2018-01-29 12:57:10 +01:00
$ ( "#AenderePopupDivSchalter" ) . val ( "false" ) ;
2016-06-27 01:45:38 +02:00
} else {
2018-01-29 12:57:10 +01:00
hideEditForm ( ) ;
2016-06-27 01:45:38 +02:00
}
}
2018-01-29 12:57:10 +01:00
function initCalendar ( ) {
2016-06-27 01:45:38 +02:00
$ ( "#versteckt" ) . val ( "Speichern" ) ;
2018-01-29 12:57:10 +01:00
$ ( "html, body" ) . animate ( { scrollTop : 0 } , "fast" ) ;
2016-06-27 01:45:38 +02:00
var newtoday ;
2018-06-29 16:35:19 +02:00
var datumStr = $ ( "#KalenderDatum" ) . val ( ) ;
2016-06-27 01:45:38 +02:00
var nextdatum ;
2018-04-18 14:33:21 +02:00
if ( datumStr === "" ) {
2016-06-27 01:45:38 +02:00
nextdatum = new Date ( ) ;
2018-06-29 16:35:19 +02:00
var ddi0 = nextdatum . getDate ( ) ;
var mmi0 = nextdatum . getMonth ( ) + 1 ;
var yyyyi0 = nextdatum . getFullYear ( ) ;
2016-06-27 01:45:38 +02:00
2018-06-29 16:35:19 +02:00
var ddStri0 = ddi0 < 10 ? "0" + ddi0 : ddi0 ;
var mmStri0 = mmi0 < 10 ? "0" + mmi0 : mmi0 ;
2016-06-27 01:45:38 +02:00
2018-01-29 12:57:10 +01:00
$ ( "#KalenderDatum" ) . val ( yyyyi0 + "-" + mmStri0 + "-" + ddStri0 ) ;
2018-02-23 14:42:53 +01:00
2018-01-29 12:57:10 +01:00
newtoday = ddStri0 + '.' + mmStri0 + "." + yyyyi0 ;
2018-02-23 14:42:53 +01:00
2016-06-27 01:45:38 +02:00
$ ( "#KalenderDatumFormat" ) . val ( newtoday ) ;
2018-01-29 12:57:10 +01:00
loadAppointments ( newtoday ) ;
2016-06-27 01:45:38 +02:00
}
2018-01-29 12:57:10 +01:00
}
2016-06-27 01:45:38 +02:00
2018-01-29 12:57:10 +01:00
function initAppointmentEditForm ( ) {
2018-06-29 16:35:19 +02:00
var currTime = new Date ( ) ;
2016-06-27 01:45:38 +02:00
2018-01-29 12:57:10 +01:00
if ( currTime . getMinutes ( ) <= 30 ) {
2018-06-29 16:35:19 +02:00
var k = 30 - currTime . getMinutes ( ) ;
2018-01-29 12:57:10 +01:00
currTime . setMinutes ( currTime . getMinutes ( ) + k ) ;
2016-06-27 01:45:38 +02:00
}
2018-01-29 12:57:10 +01:00
if ( currTime . getMinutes ( ) > 30 ) {
2018-06-29 16:35:19 +02:00
var j = 60 - currTime . getMinutes ( ) ;
2018-01-29 12:57:10 +01:00
currTime . setMinutes ( currTime . getMinutes ( ) + j ) ;
2016-06-27 01:45:38 +02:00
}
2018-01-29 12:57:10 +01:00
$ ( "#AppointmentEditForm" ) . css ( "display" , "block" ) ;
$ ( "#KalenderTable" ) . css ( "display" , "none" ) ;
$ ( "#KalenderNavigation" ) . css ( "display" , "none" ) ;
$ ( "#KalenderTableTask" ) . css ( "display" , "none" ) ;
$ ( "#StartDate" ) . val ( $ ( "#KalenderDatumFormat" ) . val ( ) ) ;
$ ( "#EndDate" ) . val ( $ ( "#KalenderDatumFormat" ) . val ( ) ) ;
$ ( "#TerminStartZeit" ) . val ( getHoursAndMinutesWithLeadingZeros ( currTime ) ) ;
$ ( "#TerminEndZeit" ) . val ( "" ) ;
$ ( "#TerminBetreff" ) . val ( "" ) ;
$ ( "#TerminNotiz" ) . val ( "" ) ;
$ ( "#TerminBetreffLabel" ) . val ( "Betreff" ) ;
$ ( "#StartDate" ) . prop ( "readonly" , false ) ;
$ ( "#EndDate" ) . prop ( "readonly" , false ) ;
$ ( "#TerminStartZeit" ) . prop ( "readonly" , false ) ;
$ ( "#TerminEndZeit" ) . prop ( "readonly" , false ) ;
$ ( "#TerminBetreff" ) . prop ( 'readonly' , false ) ;
$ ( "#TerminNotiz" ) . prop ( "readonly" , false ) ;
$ ( "#TerminSpeichern" ) . val ( "Speichern" ) ;
$ ( "#TerminSpeichernAbbrechen" ) . val ( "Abbrechen" ) ;
$ ( "#TerminSpeichern" ) . css ( "display" , "none" ) ;
$ ( "#InsertAppointmentButton" ) . css ( "display" , "inline" ) ;
}
function hideEditForm ( ) {
$ ( "#AppointmentEditForm" ) . css ( "display" , "none" ) ;
$ ( "#KalenderTable" ) . css ( "display" , "block" ) ;
$ ( "#KalenderNavigation" ) . css ( "display" , "block" ) ;
$ ( "#KalenderTableTask" ) . css ( "display" , "block" ) ;
$ ( "#StartDate" ) . val ( "" ) ;
}
2016-06-27 01:45:38 +02:00
2018-01-29 12:57:10 +01:00
function nextDayButtonClick ( ) {
2018-06-29 16:35:19 +02:00
var nextdatum = new Date ( $ ( "#KalenderDatum" ) . val ( ) ) ;
2018-01-29 12:57:10 +01:00
nextdatum . setDate ( ( nextdatum . getDate ( ) + 1 ) ) ;
2016-06-27 01:45:38 +02:00
2018-01-29 12:57:10 +01:00
$ ( "#KalenderDatum" ) . val ( toDateStringYearMonthDay ( nextdatum ) ) ;
2016-06-27 01:45:38 +02:00
2018-06-29 16:35:19 +02:00
var newtoday = getDateStringWithLeadingZeros ( nextdatum ) ;
2016-06-27 01:45:38 +02:00
2018-01-29 12:57:10 +01:00
$ ( "#KalenderDatumFormat" ) . val ( newtoday ) ;
2016-06-27 01:45:38 +02:00
2018-01-29 12:57:10 +01:00
loadAppointments ( newtoday ) ;
}
2016-06-27 01:45:38 +02:00
2018-10-10 16:43:11 +02:00
2016-06-27 01:45:38 +02:00
var canvas , ctx ;
var mouseX , mouseY , mouseDown = 0 ;
var lastpositionx = 0 ;
var lastpositiony = 0 ;
var newpositionx = 0 ;
var newpositiony = 0 ;
2017-02-01 13:53:59 +01:00
var minuswert = - 20 ;
var maxwert = 20 ;
2016-06-27 01:45:38 +02:00
var posix = 0 ;
2018-10-10 16:43:11 +02:00
var posiy = 0 ;
var r , g , b = 0 ;
var a = 255 ;
2016-06-27 01:45:38 +02:00
function loadUnterschriftFeldFunktion ( ) {
function drawDot ( ctx , x , y , size ) {
ctx . fillStyle = "rgba(" + r + "," + g + "," + b + "," + ( a / 255 ) + ")" ;
2018-10-10 16:43:11 +02:00
if ( lastpositionx !== 0 ) {
2016-06-27 01:45:38 +02:00
ctx . beginPath ( ) ;
ctx . arc ( x , y , size , 1 , Math . PI * 0.25 , true ) ;
newpositionx = x ;
newpositiony = y ;
posix = newpositionx - lastpositionx ;
posiy = newpositiony - lastpositiony ;
2018-04-18 14:33:21 +02:00
if ( posiy > minuswert && posix > minuswert && posiy < maxwert && posix < maxwert ) {
2016-06-27 01:45:38 +02:00
ctx . lineTo ( lastpositionx + 2 , lastpositiony + 2 ) ;
2017-02-01 13:53:59 +01:00
ctx . lineWidth = 2 ;
2016-06-27 01:45:38 +02:00
ctx . lineCap = "butt" ;
ctx . lineJoin = "round" ;
ctx . stroke ( ) ;
lastpositionx = x ;
lastpositiony = y ;
} else {
lastpositionx = 0 ;
lastpositiony = 0 ;
}
ctx . closePath ( ) ;
ctx . fill ( ) ;
} else {
ctx . beginPath ( ) ;
ctx . arc ( x , y , size , 1 , Math . PI * 0.25 , true ) ;
ctx . closePath ( ) ;
ctx . fill ( ) ;
lastpositionx = x ;
lastpositiony = y ;
}
}
2018-02-07 14:14:08 +01:00
function sketchpadMouseDown ( ) {
2016-06-27 01:45:38 +02:00
mouseDown = 1 ;
drawDot ( ctx , mouseX , mouseY , 3 ) ;
}
2018-02-07 14:14:08 +01:00
function sketchpadMouseUp ( ) {
2016-06-27 01:45:38 +02:00
mouseDown = 0 ;
}
2018-02-07 14:14:08 +01:00
function sketchpadMouseMove ( e ) {
2016-06-27 01:45:38 +02:00
getMousePos ( e ) ;
2018-10-10 16:43:11 +02:00
if ( mouseDown === 1 ) {
2016-06-27 01:45:38 +02:00
drawDot ( ctx , mouseX , mouseY , 3 ) ;
}
}
function getMousePos ( e ) {
2018-04-18 14:33:21 +02:00
if ( ! e ) {
2018-10-10 16:43:11 +02:00
e = event ;
2016-06-27 01:45:38 +02:00
}
2018-04-18 14:33:21 +02:00
if ( e . offsetX ) {
2016-06-27 01:45:38 +02:00
mouseX = e . offsetX ;
mouseY = e . offsetY ;
}
2018-04-18 14:33:21 +02:00
else if ( e . layerX ) {
2016-06-27 01:45:38 +02:00
mouseX = e . layerX ;
mouseY = e . layerY ;
}
}
2018-02-07 14:14:08 +01:00
function sketchpadTouchStart ( ) {
2016-06-27 01:45:38 +02:00
getTouchPos ( ) ;
drawDot ( ctx , touchX , touchY , 3 ) ;
event . preventDefault ( ) ;
}
2018-02-07 14:14:08 +01:00
function sketchpadTouchMove ( e ) {
2016-06-27 01:45:38 +02:00
getTouchPos ( e ) ;
drawDot ( ctx , touchX , touchY , 3 ) ;
event . preventDefault ( ) ;
}
function getTouchPos ( e ) {
if ( ! e ) {
2018-10-10 16:43:11 +02:00
e = event ;
2016-06-27 01:45:38 +02:00
}
if ( e . touches ) {
2018-02-07 14:14:08 +01:00
if ( e . touches . length === 1 ) {
2018-06-29 16:35:19 +02:00
var touch = e . touches [ 0 ] ;
2016-06-27 01:45:38 +02:00
touchX = touch . pageX - touch . target . offsetLeft ;
touchY = touch . pageY - touch . target . offsetTop ;
}
}
}
function init ( ) {
2018-10-10 16:43:11 +02:00
canvas = document . getElementById ( "sketchpad" ) ;
2018-06-22 20:25:13 +02:00
2016-06-27 01:45:38 +02:00
if ( canvas . getContext ) {
2018-10-10 16:43:11 +02:00
ctx = canvas . getContext ( "2d" ) ;
2016-06-27 01:45:38 +02:00
}
2018-10-10 16:43:11 +02:00
2016-06-27 01:45:38 +02:00
if ( ctx ) {
2018-02-07 14:14:08 +01:00
canvas . addEventListener ( "mousedown" , sketchpadMouseDown , false ) ;
canvas . addEventListener ( "mousemove" , sketchpadMouseMove , false ) ;
window . addEventListener ( "mouseup" , sketchpadMouseUp , false ) ;
2016-06-27 01:45:38 +02:00
2018-02-07 14:14:08 +01:00
canvas . addEventListener ( "touchstart" , sketchpadTouchStart , false ) ;
canvas . addEventListener ( "touchmove" , sketchpadTouchMove , false ) ;
2016-06-27 01:45:38 +02:00
}
}
init ( ) ;
}
2018-02-07 14:14:08 +01:00
function showUnterschrift ( serviceRecordOid , zahl ) {
2016-06-27 01:45:38 +02:00
$ ( "#customersDropDown" ) . val ( $ ( "#customersDropDown option" ) . eq ( 0 ) . val ( ) ) ;
$ ( "#zeiterfassung" ) . css ( "display" , "none" ) ;
$ ( "#KalenderNavigation" ) . css ( "display" , "none" ) ;
$ ( "#Kalender" ) . css ( "display" , "none" ) ;
$ ( "#klienten" ) . css ( "display" , "none" ) ;
$ ( "#colorRibbon" ) . css ( "background-color" , "#04b4d0" ) ;
$ ( "#UnterschriftBereich" ) . css ( "display" , "block" ) ;
$ ( "#Statistics" ) . css ( "display" , "none" ) ;
$ ( "#SupportStatistik" ) . css ( "display" , "none" ) ;
2018-06-22 20:25:13 +02:00
2018-06-13 14:38:35 +02:00
if ( zahl === 1 ) {
serviceRecordOid = document . getElementById ( "ServiceRecordOIDSave" ) . value ;
2018-06-22 20:25:13 +02:00
2016-06-27 01:45:38 +02:00
toggleSuccessPopup ( "" ) ;
2018-06-22 20:25:13 +02:00
2016-06-27 01:45:38 +02:00
loadUnterschriftFeldFunktion ( ) ;
2018-04-18 14:33:21 +02:00
preloadData ( serviceRecordOid ) ;
2016-06-27 01:45:38 +02:00
} else {
loadUnterschriftFeldFunktion ( ) ;
2018-06-22 20:25:13 +02:00
2018-04-18 14:33:21 +02:00
preloadData ( serviceRecordOid ) ;
2016-06-27 01:45:38 +02:00
}
}
function backToZeiterfassung ( ) {
$ ( "#customersDropDown" ) . val ( $ ( "#customersDropDown option" ) . eq ( 0 ) . val ( ) ) ;
$ ( "#zeiterfassung" ) . css ( "display" , "block" ) ;
$ ( "#KalenderNavigation" ) . css ( "display" , "none" ) ;
$ ( "#Kalender" ) . css ( "display" , "none" ) ;
$ ( "#klienten" ) . css ( "display" , "none" ) ;
$ ( "#colorRibbon" ) . css ( "background-color" , "#c80000" ) ;
$ ( "#UnterschriftBereich" ) . css ( "display" , "none" ) ;
$ ( "#Statistics" ) . css ( "display" , "none" ) ;
$ ( "#SupportStatistik" ) . css ( "display" , "none" ) ;
loescheUnterschrift ( canvas , ctx ) ;
}
function speichereUnterschrift ( ) {
date = "" ;
date = new Date ( ) ;
dataURL = "" ;
2018-01-29 12:57:10 +01:00
dataURL = canvas . toDataURL ( ) ;
2016-06-27 01:45:38 +02:00
blob = new Blob ( [ dataURL ] , { type : "URL/String" } ) ;
lastpositionx = 0 ;
lastpositiony = 0 ;
var dd = date . getDate ( ) ;
var mm = date . getMonth ( ) + 1 ;
var yyyy = date . getFullYear ( ) ;
var hh = date . getHours ( ) ;
var Min = date . getMinutes ( ) ;
var Sec = date . getSeconds ( ) ;
var ddStr = dd < 10 ? "0" + dd : dd ;
var mmStr = mm < 10 ? "0" + mm : mm ;
var hhStr = hh < 10 ? "0" + hh : hh ;
var MnStr = Min < 10 ? "0" + Min : Min ;
var ScStr = Sec < 10 ? "0" + Sec : Sec ;
newday = "" ;
newday = ddStr + '.' + mmStr + '.' + yyyy + " " + hhStr + ":" + MnStr + ":" + ScStr ;
2017-02-01 13:53:59 +01:00
var serviceRecordOid = $ ( "#SaveRecordOID" ) . val ( ) ;
2016-06-27 01:45:38 +02:00
//console.log(ServRecord + " das ist die Oid");
function getLocation ( ) {
2018-04-18 14:33:21 +02:00
if ( navigator . geolocation ) {
2016-06-27 01:45:38 +02:00
navigator . geolocation . getCurrentPosition ( showPosition , showError ) ;
} else {
x . innerHTML = "Geolocation is not supported by this browser." ;
}
}
function showPosition ( position ) {
2017-02-01 13:53:59 +01:00
var breitenGrad = "" ;
var langenGrad = "" ;
//var breitenGrad = position.coords.latitude;
//var langenGrad = position.coords.longitude;
2018-01-29 12:57:10 +01:00
2016-06-27 01:45:38 +02:00
longrider = "" ;
2017-02-01 13:53:59 +01:00
//longrider = langenGrad.toString();
//console.log(ServRecord);
2016-06-27 01:45:38 +02:00
$ . ajax ( {
type : "POST" ,
url : setSelectedUnterschriftUrl ,
2017-02-01 13:53:59 +01:00
data : { breitengrad : breitenGrad , langengrad : langenGrad , blob : dataURL , zeitstempel : newday , ServiceRecord : serviceRecordOid } ,
2016-06-27 01:45:38 +02:00
success : function ( ) {
loescheUnterschrift ( canvas , ctx ) ;
backToZeiterfassung ( ) ;
toggleSuccessPopup ( "Die Unterschrift wurde erfolgreich gespeichert." , 2 ) ;
} ,
error : function ( ) {
toggleSuccessPopup ( "Ein Fehler ist aufgetreten. Bitte wenden Sie sich an den Support" , 3 ) ;
}
} ) ;
}
function showError ( error ) {
var message = "Fehler" ;
2018-04-18 14:33:21 +02:00
switch ( error . code ) {
2016-06-27 01:45:38 +02:00
case error . PERMISSION _DENIED :
message = "Ortungsanfrage abgelehnt." ;
break ;
case error . POSITION _UNAVAILABLE :
message = "Ortsangabe ist nicht verfügbar." ;
break ;
case error . TIMEOUT :
message = "Timeout." ;
break ;
case error . UNKNOWN _ERROR :
message = "Ein unbekannter Fehler ist aufgetreten." ;
break ;
}
//console.log(message);
showPosition ( null ) ;
}
2017-02-01 13:53:59 +01:00
//getLocation();
showPosition ( null ) ;
2016-06-27 01:45:38 +02:00
}
function loescheUnterschrift ( canvas , ctx ) {
ctx . clearRect ( 0 , 0 , canvas . width , canvas . height ) ;
lastpositionx = 0 ;
lastpositiony = 0 ;
}
2018-06-13 14:38:35 +02:00
2018-10-10 16:43:11 +02:00
2018-04-18 14:33:21 +02:00
function preloadData ( serviceRecordOid ) {
2018-06-13 14:38:35 +02:00
initSignatureInfo ( serviceRecordOid ) ;
2016-06-27 01:45:38 +02:00
}
function showServiceRecords ( ) {
location . reload ( ) ;
$ ( "#customersDropDown" ) . val ( $ ( "#customersDropDown option" ) . eq ( 0 ) . val ( ) ) ;
$ ( "#klientenTabelle" ) . css ( "display" , "none" ) ;
$ ( "#zeiterfassung" ) . css ( "display" , "block" ) ;
$ ( "#KalenderNavigation" ) . css ( "display" , "none" ) ;
$ ( "#klienten" ) . css ( "display" , "none" ) ;
$ ( "#Kalender" ) . css ( "display" , "none" ) ;
$ ( "#colorRibbon" ) . css ( "background-color" , "#c80000" ) ;
$ ( "#UnterschriftBereich" ) . css ( "display" , "none" ) ;
$ ( "#Statistics" ) . css ( "display" , "block" ) ;
$ ( "#SupportStatistik" ) . css ( "display" , "none" ) ;
2018-02-07 14:14:08 +01:00
2016-06-27 01:45:38 +02:00
toggleMenu ( ) ;
}
function goBackToZeiterfassung ( ) {
showSanduhr ( ) ;
$ ( "#customersDropDown" ) . val ( $ ( "#customersDropDown option" ) . eq ( 0 ) . val ( ) ) ;
$ ( "#klientenTabelle" ) . css ( "display" , "none" ) ;
$ ( "#zeiterfassung" ) . css ( "display" , "block" ) ;
$ ( "#KalenderNavigation" ) . css ( "display" , "none" ) ;
$ ( "#klienten" ) . css ( "display" , "none" ) ;
$ ( "#Kalender" ) . css ( "display" , "none" ) ;
$ ( "#colorRibbon" ) . css ( "background-color" , "#c80000" ) ;
$ ( "#UnterschriftBereich" ) . css ( "display" , "none" ) ;
$ ( "#Statistics" ) . css ( "display" , "block" ) ;
2018-01-29 12:57:10 +01:00
$ ( "#SupportStatistik" ) . css ( "display" , "none" ) ;
2016-06-27 01:45:38 +02:00
}
function klientenLaden ( ) {
$ ( "#map-canvas" ) . fadeOut ( ) ;
2018-02-07 14:14:08 +01:00
2016-06-27 01:45:38 +02:00
showSanduhr ( ) ;
2018-06-29 16:35:19 +02:00
var oid = parseInt ( $ ( "#customersDropDown" ) . find ( ":selected" ) . val ( ) ) ;
2018-02-07 14:14:08 +01:00
2018-04-18 14:33:21 +02:00
if ( oid === - 1 ) {
2016-06-27 01:45:38 +02:00
$ ( "#klientenTabelle" ) . css ( "display" , "none" ) ;
2018-02-07 14:14:08 +01:00
$ ( "#umfeldContainer" ) . css ( "display" , "none" ) ;
2018-10-10 16:43:11 +02:00
$ ( "#kommentarContainer" ) . css ( "display" , "none" ) ;
2018-02-07 14:14:08 +01:00
hideSanduhr ( ) ;
2016-06-27 01:45:38 +02:00
return ;
}
2018-01-29 12:57:10 +01:00
2016-06-27 01:45:38 +02:00
makeAjaxCall ( "GET" , getSelectedCustomerUrl , function ( json ) {
$ ( "#klientenTabelle" ) . css ( "display" , "block" ) ;
2018-02-07 14:14:08 +01:00
$ ( "#umfeldContainer" ) . css ( "display" , "block" ) ;
2018-10-10 16:43:11 +02:00
$ ( "#kommentarContainer" ) . css ( "display" , "block" ) ;
2018-02-07 14:14:08 +01:00
2018-04-18 14:33:21 +02:00
if ( json === "SessionTimeout" ) {
2016-06-27 01:45:38 +02:00
window . location . href = redirectLink ;
return ;
2018-02-07 14:14:08 +01:00
}
vm . update ( $ . parseJSON ( json ) ) ;
2016-06-27 01:45:38 +02:00
$ ( ".toggle-btn2" ) . click ( function ( ) {
toggleOnclick ( this ) ;
2018-02-07 14:14:08 +01:00
} ) ;
2016-06-27 01:45:38 +02:00
} ,
2018-10-10 16:43:11 +02:00
{
customerOid : oid
} ,
2016-06-27 01:45:38 +02:00
hideSanduhr ) ;
}
function KlientenVM ( ) {
this . vorname = ko . observable ( "" ) ;
this . nachname = ko . observable ( "" ) ;
this . geburtstag = ko . observable ( "" ) ;
this . geschlecht = ko . observable ( "" ) ;
this . adresszusatz = ko . observable ( "" ) ;
this . strasse = ko . observable ( "" ) ;
this . plz = ko . observable ( "" ) ;
this . ort = ko . observable ( "" ) ;
this . rechnungsadressename = ko . observable ( "" ) ;
this . rechnungsadressestrasse = ko . observable ( "" ) ;
this . rechnungsadressepostleitzahl = ko . observable ( "" ) ;
this . rechnungsadresseort = ko . observable ( "" ) ;
this . email = ko . observable ( "" ) ;
this . pureemail = ko . observable ( "" ) ;
this . fax = ko . observable ( "" ) ;
this . telefon = ko . observable ( "" ) ;
this . handy = ko . observable ( "" ) ;
this . umfeldpersonen = ko . observableArray ( [ ] ) ;
this . Wohnheim = ko . observable ( "" ) ;
2018-02-19 18:34:20 +01:00
this . mobileLink = ko . observable ( "" ) ;
this . landLineLink = ko . observable ( "" ) ;
2018-10-10 16:43:11 +02:00
this . kommentar = ko . observable ( "" ) ;
2016-06-27 01:45:38 +02:00
this . update = function ( data ) {
this . vorname ( data . Vorname ) ;
this . nachname ( data . Nachname ) ;
this . geburtstag ( data . Geburtstag ) ;
this . geschlecht ( data . Geschlecht ) ;
this . adresszusatz ( data . Adresszusatz ) ;
this . strasse ( data . Strasse ) ;
this . plz ( data . Postleitzahl ) ;
this . ort ( data . Ort ) ;
this . rechnungsadressename ( data . RechnungsadresseName ) ;
this . rechnungsadressestrasse ( data . RechnungsadresseStrasse ) ;
this . rechnungsadressepostleitzahl ( data . RechnungsadressePostleitzahl ) ;
this . rechnungsadresseort ( data . RechnungsadresseOrt ) ;
2018-06-22 20:25:13 +02:00
this . email ( 'mailto:' + data . EMail ) ;
2016-06-27 01:45:38 +02:00
this . pureemail ( data . EMail ) ;
this . fax ( data . Fax ) ;
this . telefon ( data . Telefon ) ;
this . handy ( data . Handy ) ;
2018-06-22 20:25:13 +02:00
this . mobileLink ( 'tel:' + data . Handy ) ;
this . landLineLink ( 'tel:' + data . Telefon ) ;
2018-10-10 16:43:11 +02:00
this . kommentar ( data . Kommentar ) ;
2016-06-27 01:45:38 +02:00
2018-06-29 16:35:19 +02:00
var mappedUmfeldpersonen = $ . map ( data . Umfeldpersonen , function ( item ) { return new UmfPers ( item ) ; } ) ;
2016-06-27 01:45:38 +02:00
if ( mappedUmfeldpersonen . length === 0 ) {
$ ( "#WohnheimContainer" ) . css ( "display" , "none" ) ;
}
this . umfeldpersonen ( mappedUmfeldpersonen ) ;
calcPropFieldMinSizes ( ) ;
updateEigenschaftsfelder ( ) ;
}
}
function UmfPers ( initdata ) {
var self = this ;
self . umfvorname = ko . observable ( initdata . Vorname ) ;
self . umfnachname = ko . observable ( initdata . Nachname ) ;
self . umfstrnr = ko . observable ( initdata . StrNameNr ) ;
self . umfplzort = ko . observable ( initdata . PLZOrt ) ;
self . umftelnr = ko . observable ( "tel:" + initdata . TelNr ) ;
self . nurtelnr = ko . observable ( initdata . TelNr ) ;
self . nurmobil = ko . observable ( initdata . Mobil ) ;
self . umfmobil = ko . observable ( "tel:" + initdata . Mobil ) ;
self . umfemail = ko . observable ( "mailto:" + initdata . EMail ) ;
self . nuremail = ko . observable ( initdata . EMail ) ;
self . umffax = ko . observable ( initdata . Fax ) ;
self . umfrolle = ko . observable ( initdata . Rolle ) ;
self . umftitel = ko . observable ( initdata . Titel ) ;
self . formattedName = ko . computed ( function ( ) {
var titel = self . umftitel ( ) ? self . umftitel ( ) + " " : "" ;
return titel + self . umfvorname ( ) + " " + self . umfnachname ( ) ;
} ) ;
self . update = function ( updatedata ) {
self . umfvorname ( updatedata . Vorname ) ;
self . umfnachname ( updatedata . Nachname ) ;
self . umfstrnr ( updatedata . StrNameNr ) ;
self . umfplzort ( updatedata . PLZOrt ) ;
self . umfmobil ( "tel:" + updatedata . Mobil ) ;
self . nurmobil ( updatedata . Mobil ) ;
self . umfemail ( "mailto:" + updatedata . EMail ) ;
self . nuremail ( ko . observable ( updatedata . EMail ) ) ;
self . umffax ( updatedata . Fax ) ;
self . umfrolle ( updatedata . Rolle ) ;
self . umftitel ( updatedata . Titel ) ;
self . umftelnr ( "tel:" + updatedata . TelNr ) ;
self . nurtelnr ( updatedata . TelNr ) ;
}
}
minSizes = undefined ;
function calcPropFieldMinSizes ( ) {
2018-02-07 14:14:08 +01:00
var width = 0 ;
var height = 0 ;
var elementCount = 0 ;
2016-06-27 01:45:38 +02:00
$ ( ".eigenschaftsdiv" ) . each (
2018-02-07 14:14:08 +01:00
function ( index , element ) {
2018-10-10 16:43:11 +02:00
var x = $ ( element ) . clone ( ) . css ( { "height" : "auto" , "width" : "auto" } ) . appendTo ( "body" ) ;
2016-06-27 01:45:38 +02:00
2018-10-10 16:43:11 +02:00
var temporaryWidth = x . outerWidth ( true ) ;
var temporaryHeight = x . outerHeight ( true ) ;
2016-06-27 01:45:38 +02:00
2018-10-10 16:43:11 +02:00
x . remove ( ) ;
2016-06-27 01:45:38 +02:00
2018-10-10 16:43:11 +02:00
elementCount ++ ;
2016-06-27 01:45:38 +02:00
2018-10-10 16:43:11 +02:00
if ( temporaryWidth > width ) {
width = temporaryWidth ;
}
2016-06-27 01:45:38 +02:00
2018-10-10 16:43:11 +02:00
if ( temporaryHeight > height ) {
height = temporaryHeight ;
}
2016-06-27 01:45:38 +02:00
}
) ;
2018-02-07 14:14:08 +01:00
window . minSizes = { minWidth : width , minHeight : height , divCount : elementCount } ;
2016-06-27 01:45:38 +02:00
}
function updateEigenschaftsfelder ( ) {
2018-06-29 16:35:19 +02:00
var customerTableWidth = $ ( "#klientenTabelle" ) . width ( ) ;
2016-06-27 01:45:38 +02:00
2018-02-07 14:14:08 +01:00
$ ( "#map-canvas" ) . css ( "width" , customerTableWidth - 16 ) ;
$ ( "#map-canvas" ) . css ( "height" , customerTableWidth - 16 ) ;
2016-06-27 01:45:38 +02:00
2018-04-18 14:33:21 +02:00
if ( minSizes == undefined ) {
2016-06-27 01:45:38 +02:00
return ;
2018-02-07 14:14:08 +01:00
}
2016-06-27 01:45:38 +02:00
2018-06-29 16:35:19 +02:00
var mitPadding = minSizes . minWidth ;
2018-02-07 14:14:08 +01:00
var maxAnzahl = parseInt ( customerTableWidth / mitPadding ) ;
2016-06-27 01:45:38 +02:00
2018-04-18 14:33:21 +02:00
if ( maxAnzahl > minSizes . divCount ) {
2016-06-27 01:45:38 +02:00
maxAnzahl = minSizes . divCount ;
2018-02-07 14:14:08 +01:00
}
2016-06-27 01:45:38 +02:00
2018-02-07 14:14:08 +01:00
var width = parseInt ( customerTableWidth / maxAnzahl ) - 16 ;
2016-06-27 01:45:38 +02:00
2018-10-10 16:43:11 +02:00
if ( minSizes !== undefined ) {
2016-06-27 01:45:38 +02:00
$ ( ".eigenschaftsdiv" ) . each (
2018-02-07 14:14:08 +01:00
function ( index , element ) {
2018-10-10 16:43:11 +02:00
$ ( element ) . css ( "width" , width + "px" ) ;
$ ( element ) . css ( "height" , ( minSizes . minHeight - 16 ) + "px" ) ;
2016-06-27 01:45:38 +02:00
}
) ;
}
}
$ ( window ) . resize ( function ( ) {
2018-04-18 14:33:21 +02:00
if ( $ ( "#klientenTabelle" ) . css ( "display" ) === "block" ) {
2016-06-27 01:45:38 +02:00
updateEigenschaftsfelder ( ) ;
}
} ) ;
function showSanduhr ( ) {
$ ( ".modalWrapper" ) . css ( "display" , "block" ) ;
$ ( ".modalWrapper" ) . css ( "height" , $ ( document ) . height ( ) ) ;
$ ( ".warte-animation" ) . css ( "display" , "inline-block" ) ;
}
function hideSanduhr ( ) {
2018-04-18 14:33:21 +02:00
if ( $ ( "#errorPopupDiv" ) . css ( "display" ) === "none" && $ ( "#popupDiv" ) . css ( "display" ) === "none" ) {
2016-06-27 01:45:38 +02:00
$ ( ".modalWrapper" ) . css ( "display" , "none" ) ;
$ ( ".modalWrapper" ) . css ( "height" , "0" ) ;
}
2018-04-18 14:33:21 +02:00
if ( $ ( "#SuccessPopupDiv" ) . css ( "display" ) === "none" && $ ( "#popupDiv" ) . css ( "display" ) === "none" ) {
2018-10-10 16:43:11 +02:00
$ ( ".modalWrapper" ) . css ( "display" , "none" ) ;
$ ( ".modalWrapper" ) . css ( "height" , "0" ) ;
2016-06-27 01:45:38 +02:00
}
2018-04-18 14:33:21 +02:00
if ( $ ( "#AendernPopupDiv" ) . css ( "display" ) === "none" && $ ( "#popupDiv" ) . css ( "display" ) === "none" ) {
2018-10-10 16:43:11 +02:00
$ ( ".modalWrapper" ) . css ( "display" , "none" ) ;
$ ( ".modalWrapper" ) . css ( "height" , "0" ) ;
2016-06-27 01:45:38 +02:00
}
2018-01-29 12:57:10 +01:00
2016-06-27 01:45:38 +02:00
$ ( ".warte-animation" ) . css ( "display" , "none" ) ;
}
function submitDeletionForm ( ) {
showSanduhr ( ) ;
$ ( "#deletionForm" ) . submit ( ) ;
}
2018-02-07 14:14:08 +01:00
function toggleErrorPopup ( errorMessage , i ) {
2018-06-29 16:35:19 +02:00
var isDisplayNone = $ ( "#errorPopupDiv" ) . css ( "display" ) === "none" ;
var displayValue = isDisplayNone ? "block" : "none" ;
2016-06-27 01:45:38 +02:00
$ ( "#errorPopupDiv" ) . css ( "display" , displayValue ) ;
$ ( ".modalWrapper" ) . css ( "display" , displayValue ) ;
$ ( ".modalWrapper" ) . css ( "height" , $ ( document ) . height ( ) ) ;
2018-02-05 14:21:08 +01:00
if ( isDisplayNone ) {
2016-06-27 01:45:38 +02:00
$ ( "#errorPopupText" ) . text ( errorMessage ) ;
2018-04-18 14:33:21 +02:00
if ( i === 1 ) {
2016-06-27 01:45:38 +02:00
$ ( "#errorPopupTitle" ) . text ( "Info" ) ;
$ ( "#errorPopupOkBtn" ) . onclick = "toggleErrorPopup('')" ;
2018-04-18 14:33:21 +02:00
} else if ( i === 2 ) {
2016-06-27 01:45:38 +02:00
$ ( "#errorPopupTitle" ) . text ( "Fehler" ) ;
$ ( "#errorPopupOkBtn" ) . onclick = "toggleErrorPopup('')" ;
2018-02-07 14:14:08 +01:00
clearLocalStorage ( 1 ) ;
2017-02-01 13:53:59 +01:00
//SaveOnly(); // Speichere Daten bei absturz
2016-06-27 01:45:38 +02:00
}
else {
$ ( "#errorPopupTitle" ) . text ( "Fehler" ) ;
$ ( "#errorPopupOkBtn" ) . onclick = "toggleErrorPopup('')" ;
}
2018-01-29 12:57:10 +01:00
2018-06-29 16:35:19 +02:00
var errorPopupTitleOuterHeight = $ ( "#errorPopupTitle" ) . outerHeight ( ) ;
var errorPopupTextOuterHeight = $ ( "#errorPopupText" ) . outerHeight ( ) ;
var errorPopupButtonOuterHeight = $ ( "#errorPopupBtnDiv" ) . outerHeight ( ) ;
var errorPopupOkButtonOuterHeight = $ ( "#errorPopupOkBtn" ) . outerHeight ( ) ;
2018-01-29 12:57:10 +01:00
2018-06-29 16:35:19 +02:00
var height = errorPopupTitleOuterHeight + errorPopupTextOuterHeight + errorPopupButtonOuterHeight + errorPopupOkButtonOuterHeight + errorPopupOkButtonOuterHeight ;
2018-01-29 12:57:10 +01:00
2018-02-05 14:21:08 +01:00
$ ( "#errorPopupDiv" ) . css ( "height" , height + "px" ) ;
2016-06-27 01:45:38 +02:00
2018-02-05 14:21:08 +01:00
$ ( "#errorPopupDiv" ) . css ( "top" , window . pageYOffset + window . innerHeight / 2 - height / 2 ) ;
2016-06-27 01:45:38 +02:00
$ ( "#errorPopupDiv" ) . css ( "margin-top" , "0" ) ;
} else {
$ ( "#errorPopupDiv" ) . css ( "margin-top" , "auto" ) ;
}
}
function toggleSuccessPopup ( message , i ) {
2018-06-29 16:35:19 +02:00
var isDisplayNone = $ ( "#SuccessPopupDiv" ) . css ( "display" ) === "none" ;
var displayValue = isDisplayNone ? "block" : "none" ;
2016-06-27 01:45:38 +02:00
$ ( "#SuccessPopupDiv" ) . css ( "display" , displayValue ) ;
$ ( ".modalWrapper" ) . css ( "display" , displayValue ) ;
$ ( ".modalWrapper" ) . css ( "height" , $ ( document ) . height ( ) ) ;
2017-02-01 13:53:59 +01:00
$ ( "#SuccessPopupOkBtn" ) . val ( "OK" ) ;
2016-06-27 01:45:38 +02:00
2018-04-18 14:33:21 +02:00
if ( i === 2 ) {
2016-06-27 01:45:38 +02:00
$ ( ".SuccessPopupUSchrift" ) . css ( "display" , "none" ) ;
}
2018-04-18 14:33:21 +02:00
else if ( i === 3 ) {
2017-02-01 13:53:59 +01:00
$ ( ".SuccessPopupUSchrift" ) . css ( "display" , "none" ) ;
$ ( "#SuccessPopupTitle" ) . text ( "Es ist leider ein Fehler aufgetreten!" ) ;
}
2018-04-18 14:33:21 +02:00
else if ( i === 4 ) {
2017-02-01 13:53:59 +01:00
$ ( ".SuccessPopupUSchrift" ) . css ( "display" , "inline" ) ;
$ ( "#SuccessPopupOkBtn" ) . val ( "Nein" ) ;
}
2018-02-05 14:21:08 +01:00
else {
2017-02-01 13:53:59 +01:00
$ ( ".SuccessPopupUSchrift" ) . css ( "display" , "inline" ) ;
2018-02-05 14:21:08 +01:00
}
2018-01-29 12:57:10 +01:00
2018-04-18 14:33:21 +02:00
if ( isDisplayNone ) {
2016-06-27 01:45:38 +02:00
$ ( "#SuccessPopupText" ) . text ( message ) ;
2018-06-29 16:35:19 +02:00
var successPopupTitleOuterHeight = $ ( "#SuccessPopupTitle" ) . outerHeight ( ) ;
var successPopupTextOuterHeight = $ ( "#SuccessPopupText" ) . outerHeight ( ) ;
var successPopupButtonOuterHeight = $ ( "#SuccessPopupBtnDiv" ) . outerHeight ( ) ;
var successPopupOkButtonOuterHeight = $ ( ".SuccessPopupOkBtn" ) . outerHeight ( ) ;
var successPopupSignatureButtonOuterHeight = $ ( ".SuccessPopupUSchrift" ) . outerHeight ( ) ;
2016-06-27 01:45:38 +02:00
2018-06-29 16:35:19 +02:00
var height = successPopupTitleOuterHeight + successPopupTextOuterHeight + successPopupButtonOuterHeight + successPopupOkButtonOuterHeight + successPopupSignatureButtonOuterHeight ;
2016-06-27 01:45:38 +02:00
2018-02-05 14:21:08 +01:00
$ ( "#SuccessPopupDiv" ) . css ( "height" , height + "px" ) ;
2016-06-27 01:45:38 +02:00
2018-02-05 14:21:08 +01:00
$ ( "#SuccessPopupDiv" ) . css ( "top" , window . pageYOffset + window . innerHeight / 2 - height / 2 ) ;
2016-06-27 01:45:38 +02:00
$ ( "#SuccessPopupDiv" ) . css ( "margin-top" , "0" ) ;
} else {
$ ( "#SuccessPopupDiv" ) . css ( "margin-top" , "auto" ) ;
}
}
2018-02-07 14:14:08 +01:00
function toggleUpdateAppointmentPopup ( message ) {
2018-06-29 16:35:19 +02:00
var isDisplayNone = $ ( "#AendernPopupDiv" ) . css ( "display" ) === "none" ;
var displayValue = isDisplayNone ? "block" : "none" ;
2016-06-27 01:45:38 +02:00
$ ( "#AendernPopupDiv" ) . css ( "display" , displayValue ) ;
$ ( ".modalWrapper" ) . css ( "display" , displayValue ) ;
$ ( ".modalWrapper" ) . css ( "height" , $ ( document ) . height ( ) ) ;
2018-04-18 14:33:21 +02:00
if ( isDisplayNone ) {
2016-06-27 01:45:38 +02:00
$ ( "#AendernPopupText" ) . text ( message ) ;
2018-06-29 16:35:19 +02:00
var aendernPopupTitleOuterHeight = $ ( "#AendernPopupTitle" ) . outerHeight ( ) ;
var aenderPopupTextOuterHeight = $ ( "#AendernPopupText" ) . outerHeight ( ) ;
var aendernPopupButtonDivOuterHeight = $ ( "#AendernPopupBtnDiv" ) . outerHeight ( ) ;
var aendernPopupOkButtonOuterHeight = $ ( ".AendernPopupOkBtn" ) . outerHeight ( ) ;
var aendernPopupSignatureOuterHeight = $ ( ".AendernPopupUSchrift" ) . outerHeight ( ) ;
2016-06-27 01:45:38 +02:00
2018-06-29 16:35:19 +02:00
var height = aendernPopupTitleOuterHeight + aenderPopupTextOuterHeight + aendernPopupButtonDivOuterHeight + aendernPopupOkButtonOuterHeight + aendernPopupSignatureOuterHeight ;
2016-06-27 01:45:38 +02:00
2018-02-05 14:21:08 +01:00
$ ( "#AendernPopupDiv" ) . css ( "height" , height + "px" ) ;
2016-06-27 01:45:38 +02:00
2018-02-05 14:21:08 +01:00
$ ( "#AendernPopupDiv" ) . css ( "top" , window . pageYOffset + window . innerHeight / 2 - height / 2 ) ;
2016-06-27 01:45:38 +02:00
$ ( "#AendernPopupDiv" ) . css ( "margin-top" , "0" ) ;
} else {
$ ( "#AendernPopupDiv" ) . css ( "margin-top" , "auto" ) ;
}
}
function confirmErrorPopup ( ) {
toggleErrorPopup ( "" ) ;
}
function clearRecords ( ) {
$ ( "#serviceRecords" ) . empty ( ) ;
}
function preselectCustomer ( ) {
$ . ajax ( {
type : "GET" ,
url : getSupportConceptCustomerUrl ,
success : function ( json ) {
2018-04-18 14:33:21 +02:00
if ( json === "NoSupportConceptSelected" ) {
2016-06-27 01:45:38 +02:00
return ;
}
var valueToSelect = $ . parseJSON ( json ) ;
$ ( "#customersDropDown option" ) . each ( function ( ) {
2018-04-18 14:33:21 +02:00
if ( this . value === valueToSelect === true ) {
2016-06-27 01:45:38 +02:00
$ ( "#customersDropDown" ) . val ( valueToSelect ) ;
2018-10-10 16:43:11 +02:00
$ ( "#customersDropDown" ) . trigger ( "change" ) ;
2016-06-27 01:45:38 +02:00
return false ;
} else {
return true ;
}
} ) ;
}
} ) ;
}
2018-02-05 14:21:08 +01:00
function setSelectedEmployee ( ) {
2018-06-29 16:35:19 +02:00
var oid = parseInt ( $ ( "#employeesDropDown" ) . find ( ":selected" ) . val ( ) ) ;
2016-06-27 01:45:38 +02:00
2018-06-22 20:25:13 +02:00
console . log ( 'selected employee oid: ' + oid ) ;
2018-04-18 14:33:21 +02:00
if ( isNaN ( oid ) ) {
2016-06-27 01:45:38 +02:00
return ;
}
2018-02-05 14:21:08 +01:00
window . serviceRecordEmployeeOid = oid ;
2016-06-27 01:45:38 +02:00
2018-02-05 14:21:08 +01:00
makeAjaxCall ( "GET" , setServiceRecordEmployeeUrl , null , { employeeOid : window . serviceRecordEmployeeOid } , null ) ;
2016-06-27 01:45:38 +02:00
}
function SaveOnly ( ) {
2018-02-07 14:14:08 +01:00
if ( typeof ( Storage ) != "undefined" ) {
clearLocalStorage ( 1 ) ;
2016-06-27 01:45:38 +02:00
2018-06-29 16:35:19 +02:00
var costBearer2SupportConceptOid = $ ( "#scDropDown" ) . val ( ) ;
var hilfeplan = $ ( "#scDropDown option[value='" + zahl + "']" ) . text ( ) ;
var mitarbeiter = $ ( "#employeesDropDown option:selected" ) . text ( ) ;
var kategorie = $ ( "#kategorien_select option:selected" ) . text ( ) ;
var leistung = $ ( "#leistungen_select option:selected" ) . val ( ) ;
var duration = $ ( "#duration_textbox" ) . val ( ) ;
var notiz = $ ( "#notiz_textbox" ) . val ( ) ;
2016-06-27 01:45:38 +02:00
2018-06-29 16:35:19 +02:00
var notiz2 , notiz3 , notiz4 , notiz5 ;
2018-01-29 12:57:10 +01:00
2018-04-18 14:33:21 +02:00
if ( $ ( "#notiz_textbox1" ) . val ( ) !== "" ) {
2018-02-07 14:14:08 +01:00
notiz = $ ( "#notiz_textbox1" ) . val ( ) ;
2016-06-27 01:45:38 +02:00
}
2018-04-18 14:33:21 +02:00
if ( $ ( "#notiz_textbox2" ) . val ( ) !== "" ) {
2018-02-07 14:14:08 +01:00
notiz2 = $ ( "#notiz_textbox2" ) . val ( ) ;
}
2016-06-27 01:45:38 +02:00
2018-04-18 14:33:21 +02:00
if ( $ ( "#notiz_textbox3" ) . val ( ) !== "" ) {
2018-02-07 14:14:08 +01:00
notiz3 = $ ( "#notiz_textbox3" ) . val ( ) ;
}
2016-06-27 01:45:38 +02:00
2018-04-18 14:33:21 +02:00
if ( $ ( "#notiz_textbox4" ) . val ( ) !== "" ) {
2018-02-07 14:14:08 +01:00
notiz4 = $ ( "#notiz_textbox4" ) . val ( ) ;
}
2018-01-29 12:57:10 +01:00
2018-04-18 14:33:21 +02:00
if ( $ ( "#notiz_textbox5" ) . val ( ) !== "" ) {
2018-02-07 14:14:08 +01:00
notiz5 = $ ( "#notiz_textbox5" ) . val ( ) ;
2016-06-27 01:45:38 +02:00
}
2018-02-07 14:14:08 +01:00
localStorage . setItem ( "Zeitdaten" , new LocalServiceRecord ( costBearer2SupportConceptOid , hilfeplan , mitarbeiter , kategorie , leistung , $ ( "#datum_textbox" ) . val ( ) , $ ( "#start_textbox" ) . val ( ) , $ ( "#ende_textbox" ) . val ( ) , duration , notiz , notiz2 , notiz3 , notiz4 , notiz5 , $ ( "#enddatum_textbox" ) . val ( ) ) ) ;
2016-06-27 01:45:38 +02:00
}
}
2018-02-07 14:14:08 +01:00
function clearLocalStorage ( i ) {
2018-01-29 12:57:10 +01:00
if ( i === 1 ) {
2016-06-27 01:45:38 +02:00
localStorage . removeItem ( "Zeitdaten" ) ;
2018-01-29 12:57:10 +01:00
}
if ( i === 2 ) {
2016-06-27 01:45:38 +02:00
localStorage . removeItem ( "Kalenderdaten" ) ;
2018-01-29 12:57:10 +01:00
}
2016-06-27 01:45:38 +02:00
}
2018-02-07 14:14:08 +01:00
function saveZeiterfassungAfterCrash ( datum , startd , endd , dauer , doku , leistung , costBearer2SupportConceptOid , doku2 , doku3 , doku4 , doku5 , enddatum ) {
2018-06-29 16:35:19 +02:00
var x = getDateObj ( true ) ;
var y = getDateObj ( false ) ;
2018-01-29 12:57:10 +01:00
2018-06-29 16:35:19 +02:00
var vonDatum = getDateTimeStringWithLeadingZeros ( x ) ;
var bisDatum = getDateTimeStringWithLeadingZeros ( y ) ;
2016-06-27 01:45:38 +02:00
2018-02-07 14:14:08 +01:00
if ( costBearer2SupportConceptOid === - 2 ) {
$ . ajax ( {
type : "GET" ,
url : saveZeiterfassungAfterCrashUrl ,
data : {
pDatum : datum ,
pStartDate : startd ,
pEndDate : endd ,
pDuration : dauer ,
pNotice : doku ,
pServiceDescription : leistung ,
pNotice2 : doku2 ,
pNotice3 : doku3 ,
pNotice4 : doku4 ,
pNotice5 : doku5 ,
pEndDate2 : enddatum
} , success : null , error : null
2016-06-27 01:45:38 +02:00
} ) ;
2018-02-07 14:14:08 +01:00
} else {
$ . ajax ( {
type : "GET" ,
url : CheckRightsAfterCrashUrl ,
data : { von : vonDatum , bis : bisDatum , inEditMode : false , dateString : datum , startString : startd , endString : endd , costbearerOId : costBearer2SupportConceptOid , leistung : leistung } ,
success : function ( json ) {
2018-01-29 12:57:10 +01:00
2018-06-29 16:35:19 +02:00
var hasSufficientRights = json ;
2018-01-29 12:57:10 +01:00
2018-02-07 14:14:08 +01:00
if ( hasSufficientRights === "True" ) {
$ . ajax ( {
type : "GET" ,
url : saveZeiterfassungAfterCrashUrl ,
data : { Datum : datum , StartD : startd , EndeD : endd , Dauer : dauer , Doku : doku , Leistungen : leistung , Doku2 : doku2 , Doku3 : doku3 , Doku4 : doku4 , Doku5 : doku5 , EndDatum : enddatum } , success : function ( ) { } , error : function ( ) { writeFatalErrorMessage ( "Es konnte keine verbindung zum Server aufgebaut werden. Bitte überprüfen sie ihre Internet Verbindung." ) ; /*$("#scDropDown option[value='" + oid + "']").attr('selected', true).trigger("change");*/ }
} ) ;
2016-06-27 01:45:38 +02:00
2018-02-07 14:14:08 +01:00
} else {
clearLocalStorage ( 1 ) ;
2016-06-27 01:45:38 +02:00
2018-02-07 14:14:08 +01:00
setTimeout ( function ( ) {
$ ( "#scDropDown option[value='" + costBearer2SupportConceptOid + "']" ) . attr ( "selected" , true ) . trigger ( "change" ) ;
} , 4500 ) ;
2018-01-29 12:57:10 +01:00
2018-02-07 14:14:08 +01:00
}
} , error : function ( ) {
clearLocalStorage ( 1 ) ;
writeFatalErrorMessage ( "Es konnte keine Verbindung zum Server aufgebaut werden. Bitte überprüfen Sie Ihre Internetverbindung." ) ;
// $("#scDropDown option[value='" + costBearer2SupportConceptOid + "']").attr('selected', true).trigger("change");
2016-06-27 01:45:38 +02:00
}
2018-02-07 14:14:08 +01:00
} ) ;
2016-06-27 01:45:38 +02:00
}
}
2018-02-07 14:14:08 +01:00
function showErrorAfterCrash ( ) {
2018-06-29 16:35:19 +02:00
var errorAfterCrashSwitch = $ ( "#ErrorZeiterfassungAfterCrashSchalter" ) ;
var switchValue = errorAfterCrashSwitch . val ( ) ;
2018-02-05 14:21:08 +01:00
var errorMessage = "" ;
if ( switchValue === 2 || switchValue === 3 ) {
errorMessage = "Es konnte keine Verbindung zum Server aufgebaut werden. Bitte überprüfen sie ihre Internet Verbindung." ;
} else if ( switchValue === 4 ) {
errorMessage = "Das Datum liegt außerhalb des Zeitraumes des gewählten Hilfeplans. Der Eintrag kann nicht gespeichert werden." ;
} else if ( switchValue === 5 ) {
errorMessage = "Die eingegebene Uhrzeit ist ungültig. Der Eintrag kann nicht gespeichert werden." ;
}
if ( errorAfterCrashSwitch . val ( ) > 1 ) {
writeFatalErrorMessage ( errorMessage ) ;
errorAfterCrashSwitch . val ( 1 ) ;
2018-02-07 14:14:08 +01:00
clearLocalStorage ( 1 ) ;
2018-02-05 14:21:08 +01:00
setTimeout ( function ( ) {
2016-06-27 01:45:38 +02:00
$ . ajax ( {
type : "GET" ,
url : ErrorZeiterfassungAnzeigenUrl ,
2018-02-05 14:21:08 +01:00
data : { errorwert : 1 }
2016-06-27 01:45:38 +02:00
} ) ;
2018-02-05 14:21:08 +01:00
} , timeOut ) ;
2016-06-27 01:45:38 +02:00
}
}
2018-02-02 14:43:40 +01:00
function focusOnTab ( tabIdentifier ) {
setTimeout ( function ( ) {
var displayValue ;
2018-01-29 12:57:10 +01:00
2018-06-29 16:35:19 +02:00
for ( var i = 0 ; i < window . numberOfDocumentationTypes ; i ++ ) {
var idNumber = i + 1 ;
2018-02-02 14:43:40 +01:00
displayValue = idNumber === tabIdentifier ? "block" : "none" ;
2018-01-29 12:57:10 +01:00
2018-06-22 20:25:13 +02:00
$ ( '#notiz_textbox' + idNumber ) . css ( "display" , displayValue ) ;
2018-02-02 14:43:40 +01:00
}
2018-01-29 12:57:10 +01:00
2018-06-22 20:25:13 +02:00
$ ( '#notiz_textbox' + tabIdentifier ) . get ( 0 ) . focus ( ) ;
window . focusedDokuTextarea = $ ( '#notiz_textbox' + tabIdentifier ) ;
2018-02-02 14:43:40 +01:00
} , 100 ) ;
2018-06-22 20:25:13 +02:00
}
2018-06-27 13:55:20 +02:00
function showTextModulesPopup ( ) {
$ ( "#kollabierbar2" ) . css ( "display" , "block" ) ;
$ ( "#textModulePopupDivContainer" ) . css ( "display" , "block" ) ;
$ ( "#textModulePopupDivContainer" ) . css ( "height" , $ ( "body" ) . css ( "height" ) ) ;
$ ( "#textModulePopupDiv" ) . css ( "display" , "block" ) ;
2018-06-29 16:40:02 +02:00
var destination = $ ( "#textModulesTr" ) . offset ( ) ;
var outerHeight = $ ( "#textModulePopupDiv" ) . outerHeight ( ) ;
2018-06-27 13:55:20 +02:00
$ ( "#textModulePopupDiv" ) . css ( { top : destination . top - outerHeight } ) ;
}
function hideTextModulePopup ( ) {
$ ( "#textModulePopupDivContainer" ) . css ( "display" , "none" ) ;
$ ( "#textModulePopupDiv" ) . css ( "display" , "none" ) ;
$ ( "#kollabierbar2" ) . css ( "display" , "none" ) ;
}