/*
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
if(!dojo._hasResource["kfc.kwo.Asset"]){dojo._hasResource["kfc.kwo.Asset"]=true;dojo.provide("kfc.kwo.Asset");dojo.require("kfc.form.PopupTextBox");dojo.require("kfc.form.OracleDateTextBox");dojo.require("kfc.form.ValidationTextarea");dojo.require("kfc.form.CurrencyTextBox");dojo.require("dijit.form.Form");dojo.require("dijit.form.TextBox");dojo.require("dijit.form.ValidationTextBox");dojo.require("dijit.form.DateTextBox");dojo.require("dijit.form.Textarea");dojo.require("dijit.form.FilteringSelect");dojo.require("dijit.form.CheckBox");dojo.require("kfc._KFC");dojo.declare("kfc.kwo.Asset",[kfc._KFC],{templateString:dojo.cache("kfc.kwo","templates/Asset.html","
\n"),widgetsInTemplate:true,P_ID:null,P_ASSET_NO:"",P_DESCRIPTION:"",P_PLANT_NO:"",P_PROJECT_NO:"",P_CLASS_CODE:"",P_LEASED_FLAG:"",P_ACCESS_FLAG:"Y",P_OFA_FLAG:"N",P_OLD_OAKC:-1,action:"I",dirtyFlag:false,wasLeasedFlag:false,wasProjectFlag:false,ignoreChanges:false,isLoading:false,checkExists:true,DB_FIELDS:{P_ID:null,P_ASSET_NO:"",P_DESCRIPTION:"",P_MANUFACTURER_NAME:"",P_MODEL_NO:"",P_SERIAL_NO:"",P_TYPE:"",P_NEW_USED:"",P_IN_SERVICE_DATE:null,P_LOCATION_DESCRIPTION:"",P_PURCHASED_PRICE:null,P_RETIRED_FLAG:"",P_MAINTENANCE_FLAG:"",P_METER_READING_FLAG:"",P_OFA_CATEGORY_ID:null,P_OFA_LOCATION_ID:null,P_OFA_ASSET_KEY_CCID:null},db_schema:"KFC",db_table_name:"KWO_ASSETS",searchFile:"server/getAsset.php",saveFile:"server/save.php",loadFile:"server/getAsset.php",checkFile:"server/getAsset.php",locationFile:"server/getLocation.php",categoryFile:"server/getCategory.php",projectFile:"server/getProject.php",isDirty:function(){return this.dirtyFlag;},onNoValues:function(o){},onTooManyValues:function(o){},_onNoValues:function(o){this.onNoValues(o);},_onTooManyValues:function(o){this.onTooManyValues(o);},formatFormFields:function(){var _1=this.f_purchased_price.attr("displayedValue");if(_1&&!isNaN(_1)){_1=this.f_purchased_price.format(parseFloat(_1),this.f_purchased_price.constraints);this.f_purchased_price.attr("value",_1);}},onAfterLoad:function(){this.formatFormFields();},_onAfterLoad:function(){this.ignoreChanges=false;this.isLoading=false;this.setValsFromForm();this.onAfterLoad();},getParams:function(){var _2=this;var p={P_REQ_NAME:"ASSET",P_VALUES:dojo.toJson(_2.getValues()),P_SCHEMA:_2.db_schema,P_TABLE_NAME:_2.db_table_name};return p;},assetAccess:function(_3){var _4=false;var v={"P_ID":_3};dojo.xhrPost({url:this.checkFile,sync:true,handleAs:"json",content:v,load:function(_5){if(_5.items){if(_5.items.length==1){_4=true;}}},error:dojo.hitch(this,"throwError")});return _4;},assetExists:function(){var _6=false;var p=this.getParams();var v=dojo.fromJson(p["P_VALUES"]);v={"P_ASSET_NO":this.f_asset_no.attr("value")};p["P_VALUES"]=dojo.toJson(v);dojo.xhrPost({url:this.loadFile,sync:true,handleAs:"json",content:p,load:function(_7){if(_7.items){if(_7.items.length==1){_6=_7;}}},error:dojo.hitch(this,"throwError")});return _6;},fetchAsset:function(_8){var _9={};dojo.xhrPost({sync:true,url:this.searchFile,handleAs:"json",content:{P_TABLE_NAME:this.db_table_name,P_VALUES:dojo.toJson(_8)},load:function(_a){if(_a&&_a.items&&_a.items.length==1){_9=_a.items[0];}},error:dojo.hitch(this,function(_b){this.throwError(_b);}),timeout:30000});return _9;},getAsset:function(){var _c=-1;this.P_ID=null;this.DB_FIELDS.P_ID=null;var _d=this;var p=this.getParams();p["P_REQ_TYPE"]="LOAD";var v=dojo.fromJson(p["P_VALUES"]);v["P_DELETED_FLAG"]="N";p["P_VALUES"]=dojo.toJson(v);dojo.xhrPost({url:this.loadFile,sync:true,handleAs:"json",content:p,load:function(_e){_c=_d.loadAsset(_e);},error:dojo.hitch(this,"throwError")});return _c;},_getAssetComplete:function(_f){return _f;},getValues:function(){return this.DB_FIELDS;},loadAsset:function(o){this.isLoading=true;var id=-1;if(typeof (o.items.length)!="undefined"){switch(o.items.length){case 0:this._onNoValues(o);break;case 1:this.reset();this._checkSavedValues(o.items[0]);this.setValsFromObj(o.items[0]);this.attr("action","U");id=o.items[0].P_ID;break;default:this._onTooManyValues(o);break;}}else{}return id;},setProjectNo:function(_10){this.f_project_no.tbox.attr("value",_10);this.f_project_no.isValid();},_checkSavedValues:function(o){var _11=this;var lf=o.P_LEASED_FLAG;lf=(lf&&typeof (lf)=="object")?lf[0]:lf;if(lf&&lf.length){this.P_LEASED_FLAG=lf;}var af=o.P_ACCESS_FLAG;af=(af&&typeof (af)=="object")?af[0]:af;if(af&&af.length){this.P_ACCESS_FLAG=af;}var ofa=o.P_OFA_FLAG;ofa=(ofa&&typeof (ofa)=="object")?ofa[0]:ofa;if(ofa&&ofa.length){this.P_OFA_FLAG=ofa;}var _12=o.P_OFA_ASSET_KEY_CCID;_12=(_12&&typeof (_12)=="object")?_12[0]:_12;if(_12&&_12.length){this.wasProjectFlag=true;this.P_OLD_OAKC=_12;}else{this.f_project_no.attr("disabled",false);}var cat=o.P_OFA_CATEGORY_ID;cat=(cat&&typeof (cat)=="object")?cat[0]:cat;if(cat&&cat.length){var ch=dojo.connect(this,"_onCategoryVerified",this,function(){_11.wasLeasedFlag=_11._isLeased();dojo.disconnect(ch);});}else{this.wasLeasedFlag=false;}},_isLeased:function(){var i=this.f_category.item;if(i&&typeof (i.P_TYPE_DESC)!="undefined"){var _13=(i.P_TYPE_DESC)?i.P_TYPE_DESC[0]:null;return (_13=="LEASED");}return false;},setValsFromObj:function(o){var _14=0;var loc=o.P_OFA_LOCATION_ID;loc=(loc&&typeof (loc)=="object")?loc[0]:loc;if(loc&&loc.length){_14++;var lc=dojo.connect(this.f_location,"onAfterSearch",this,function(){if(--_14==0){this._onAfterLoad();}dojo.disconnect(lc);});}var _15=o.P_OFA_ASSET_KEY_CCID;_15=(_15&&typeof (_15)=="object")?_15[0]:_15;if(_15&&_15.length){_14++;var pc=dojo.connect(this.f_project_no,"onAfterSearch",this,function(){if(--_14==0){this._onAfterLoad();}dojo.disconnect(pc);});}var cat=o.P_OFA_CATEGORY_ID;cat=(cat&&typeof (cat)=="object")?cat[0]:cat;if(cat&&cat.length){_14++;var cc=dojo.connect(this.f_category,"onAfterSearch",this,function(){if(--_14==0){this._onAfterLoad();}dojo.disconnect(cc);});}this.ignoreChanges=true;if(!_14){dojo.connect(this.f_asset,"_setValueAttr",this,"_onAfterLoad");}this.f_asset.attr("value",o);},_formChanged:function(){if(!this.ignoreChanges){this.dirtyFlag=true;this.setValsFromForm();}},setValsFromForm:function(){this.f_asset_no.attr("disabled",false);var frm=this.f_asset.attr("value");this.f_asset_no.attr("disabled",(this.action!="I"));for(var f in frm){if(typeof (this.DB_FIELDS[f])!="undefined"){this.DB_FIELDS[f]=frm[f];}}this.P_ID=this.DB_FIELDS.P_ID;this.P_ASSET_NO=this.DB_FIELDS.P_ASSET_NO;this.P_DESCRIPTION=this.DB_FIELDS.P_DESCRIPTION;},copy:function(){this.DB_FIELDS.P_ID=null;this.P_ID=null;this.f_asset_id.reset();this.f_asset_no.reset();this.f_serial_no.reset();this.f_project_no.attr("disabled",false);this.wasLeasedFlag=false;this.wasProjectFlag=false;this.P_OLD_OAKC=-1;this.checkExists=true;this.attr("action","I");},assetExistsError:function(){this.throwError("Asset # "+this.f_asset_no.attr("value")+" already exists.");},_meterReadingChange:function(v){},_tagOnChange:function(v){if(v.length&&this.checkExists){var d=this.assetExists();if(d){if(d.items[0].P_DELETED_FLAG=="Y"){alert("Asset # "+v+" already exists, but has been deleted.\n"+"Unable to load. Please use another Asset #.");this.throwError("Asset # "+this.f_asset_no.attr("value")+" already exists.");this.f_asset_no.focus();}else{if(confirm("Asset # "+v+" already exists. Load?")){this.checkExists=false;var h=dojo.connect(this,"onAfterLoad",this,function(){this.checkExists=true;dojo.disconnect(h);});this.loadAsset(d);}else{this.throwError("Asset # "+this.f_asset_no.attr("value")+" already exists.");this.f_asset_no.focus();}}}}else{}this._formChanged();},_onProjectVerified:function(){this.P_PROJECT_NO=this.f_project_no.attr("displayValue");this._formChanged();this.setProjFieldsRequired(true);},_onProjectChange:function(v){this.P_PROJECT_NO=v;},_onProjectFailed:function(){this.P_PROJECT_NO=this.f_project_no.attr("displayValue");this._formChanged();this.setProjFieldsRequired(false);if(this.P_ACCESS_FLAG=="Y"){this.f_project_no.attr("disabled",false);}},setProjFieldsRequired:function(_16){_16=(typeof _16!="undefined")?_16:true;dojo.query(".woaProjRequired").forEach(function(_17,_18,_19){if(_16){dojo.addClass(_17,"woaRequired");}else{dojo.removeClass(_17,"woaRequired");}});},_onLocationVerified:function(){this.P_PLANT_NO=this.f_location.item.P_PLANT[0];this._formChanged();},_onLocationFailed:function(){this.P_PLANT_NO="";},_setLocationAccessFlag:function(){},_onCategoryVerified:function(){this.P_CLASS_CODE=this.f_category.item.P_CLASS[0];this._formChanged();this._checkWasLeased();},_onCategoryFailed:function(){this.P_CLASS_CODE="";},_checkWasLeased:function(){if(!this._isLeased()){if(this.wasLeasedFlag){this.removeLease();}if(this.P_LEASED_FLAG=="Y"&&this.action=="U"){this.onLeaseBuyout();}}if(this._isLeased()){this.onLeased();}},onLeaseBuyout:function(){},removeLease:function(){},onLeased:function(){},onMeterFlag:function(v){this._formChanged();},_seedAdditionalFlags:function(){},setMfrNA:function(_1a){this.setNA("f_mfr",_1a);},setModelNA:function(_1b){this.setNA("f_model_no",_1b);},setSerialNA:function(_1c){this.setNA("f_serial_no",_1c);},setNA:function(_1d,_1e){if(_1e){this[_1d].attr("value","N/A");}else{if(this[_1d].attr("value")=="N/A"&&this.action=="I"){this[_1d].reset();}}},reset:function(){this.attr("action","I");this.P_ID=null;this.P_ASSET_NO="";this.P_DESCRIPTION="";this.P_PLANT_NO="";this.P_CLASS_CODE="";this.P_PROJECT_NO="";this.P_LEASED_FLAG="";this.P_ACCESS_FLAG="Y";this.P_OFA_FLAG="N";this.P_OLD_OAKC=-1;this.dirtyFlag=false;this.wasLeasedFlag=false;this.wasProjectFlag=false;this.ignoreChanges=true;this.setProjFieldsRequired(false);this.f_asset.reset();this.ignoreChanges=false;this.setValsFromForm();setTimeout(dojo.hitch(this,function(){this.dirtyFlag=false;}),1);},isValid:function(){this.setValsFromForm();return this.f_asset.isValid();},save:function(){if(!this.isValid()){this.throwError("FORM NOT VALID");}var _1f=this;var p=this.getParams();var _20=false;switch(this.action){case "I":p["P_VALUES"]=dojo.toJson({"NEW":"["+p["P_VALUES"]+"]"});break;case "U":p["P_VALUES"]=dojo.toJson({"UPD":"["+p["P_VALUES"]+"]"});break;case "D":p["P_VALUES"]=dojo.toJson({"DEL":"["+p["P_VALUES"]+"]"});break;default:p["P_VALUES"]=dojo.toJson({"BAD":"["+p["P_VALUES"]+"]"});break;}p["P_REQ_TYPE"]="SAVE";dojo.xhrPost({sync:true,url:this.saveFile,handleAs:"json",content:p,load:function(_21){switch(_1f.action){case "I":_20=_1f.checkSaveSuccess(_21.items,"INSERT");break;case "U":_20=_1f.checkSaveSuccess(_21.items,"UPDATE");break;case "D":_20=_1f.checkSaveSuccess(_21.items,"DELETE");break;default:_20=false;break;}},error:dojo.hitch(this,"throwError")});return _20;},checkSaveSuccess:function(_22,_23){var _24=false;if(typeof (_22[_23])!="undefined"){if(_22[_23]=="S"){_24=true;}else{_24=false;if(typeof (_22.MSG)=="object"){for(var i=0;i<_22.MSG.length;i++){this.throwError(_22.MSG[i]);}}else{this.throwError(_22.MSG);}}}return _24;},throwError:function(e){},deleteEntry:function(){if(this.action=="U"){if(!confirm("Are you sure you want to delete asset "+this.P_ASSET_NO+"?")){return false;}this.attr("action","D");return true;}else{this.throwError("Nothing to delete.");return false;}},_setActionAttr:function(_25){this.action=_25;},getSearchStructure:function(){return [{name:"Asset #",field:"P_ASSET_NO",width:"8em"},{name:"Description",field:"P_DESCRIPTION",width:"auto"},{name:"Manufacturer",field:"P_MANUFACTURER_NAME",width:"10em"},{name:"Model #",field:"P_MODEL_NO",width:"5em"},{name:"Serial #",field:"P_SERIAL_NO",width:"5em"},{name:"New/Used",field:"P_NEW_USED",width:"6em"},{name:"Leased",field:"P_LEASED_FLAG",width:"4em"},{name:"In Service",field:"P_IN_SERVICE_DATE",width:"7em"},{name:"Location",field:"P_LOCATION_DESCRIPTION",width:"15em"}];},postCreate:function(){this.f_location.attr("storeFile",this.locationFile);this.f_category.attr("storeFile",this.categoryFile);this.f_project_no.attr("storeFile",this.projectFile);dojo.connect(this,"_setActionAttr",this,function(v){this.f_asset_no.attr("disabled",(v!="I"));});}});}