OperatorUnits = function( data ) { this.rootElement = null; this.unitsDataGrid = {}; this.operatorData = $.extend( true, {}, data ); } OperatorUnits.prototype.constructor = OperatorUnits; OperatorUnits.prototype.element = function() { let instance = this; if( instance.rootElement ) { return instance.rootElement; } instance.rootElement= $("
").css( { "font-size" : "larger", "xborder": "1px solid lime" } ).text( unitInstructionsText ); // instance.rootElement.append( instructions ); boxItems.push( { baseSize : 40, template : function(){ return instructions }}); // instance.rootElement.append( instance.distributionDataGrid.element() ); boxItems.push( { ratio : 1, template : function() { return instance.distributionDataGrid.element() } }) instance.rootElement.dxBox( { height : "100%", direction : "col", items : boxItems }) } OperatorUnits.prototype.isDirty = function() { if( this.saveButton ) { return this.saveButton.option( "disabled" ) ? false : true } else { return false; } } OperatorUnits.prototype.save = function() { let instance = this; let dataToSave = { hq : instance.hqForm.option( "formData" ), distributionChanges : instance.distributionDataGrid.option( "editing.changes" ), unitChanges : [] } for( const territoryId in instance.unitsDataGrid ) { let unitsDataGrid = instance.unitsDataGrid[territoryId]; let unitChanges = unitsDataGrid.option( "editing.changes" ); unitChanges.forEach( function( c ) { dataToSave.unitChanges.push( c ); }) } Fse.Ajax.performAction( { object : "OPR.saveUnits", data : dataToSave }).done( function( result ) { instance.distributionDataGrid.saveEditData(); for( const territoryId in instance.unitsDataGrid ) { let unitsDataGrid = instance.unitsDataGrid[territoryId]; unitsDataGrid.saveEditData(); } instance.saveButton.option( "disabled", true ); Fse.UI.toast( `Units Saved`, "success", 1000 ); instance.refresh(); }) } OperatorUnits.prototype.createHQForm = function() { let instance = this; let hqSeasonalityText = null if( instance.operatorData.seasonOpenDate ) { hqSeasonalityText = DevExpress.localization.formatDate( new Date( instance.operatorData.seasonOpenDate ), "MMM dd" ) + " - " + DevExpress.localization.formatDate( new Date( instance.operatorData.seasonCloseDate ), "MMM dd" ) } const followsHQText = "Follows HQ"; const variesByUnitText = "Varies by Unit"; instance.hqForm = $("