module fb { export class JuridiskPersonDO extends JuridiskPersonDOGen implements Models_IPersonDO { constructor(data: any) { super(data); } nullFixFn(data) { var self = this; var hasMoreThenIgnoredKeys = _.reject(Object.keys(data), function (item: string) { return self.ignoredKeys.indexOf(item) >= 0 }).length > 0; if (hasMoreThenIgnoredKeys) { var self = this; if (!data.PersonId) { (self).PersonId = new fb.ChangeTrack(null, self, 'PersonId'); } if (!data.MejlAdress) { self.MejlAdress = new fb.Models_MejlAdressRO({ Mejladress: '', FlyttaMedBevakningar: null, AerSpaerrad: false, }, self); } if (!data.Adress) { self.Adress = new fb.Models_AdressRO({ AdressText: '', Postnummer: '', Postort: '', Adresstyp: 3, AdressSyfte: 0,//All post KontaktuppgiftTyp: 0, FlyttaMedBevakningar: null }, self); } if (!data.NyAdress) { self.NyAdress = new fb.Models_AdressRO({ AdressText: '', Postnummer: '', Postort: '', Adresstyp: 3, AdressSyfte: 10,//All framtida post KontaktuppgiftTyp: 0 }, self); } if (!data.TelefonnummerMobil) { self.TelefonnummerMobil = new fb.Models_Telefonnummer2RO({ Telefonnummer: '', FlyttaMedBevakningar: null, AerSpaerrat: false, }, self); }; if (!data.TelefonnummerFax) { self.TelefonnummerFax = new fb.Models_Telefonnummer2RO({ Telefonnummer: '' }, self); }; if (!data.TelefonnummerDirekt) { self.TelefonnummerDirekt = new fb.Models_Telefonnummer2RO({ Telefonnummer: '' }, self); }; if (!data.TelefonnummerVaexel) { self.TelefonnummerVaexel = new fb.Models_Telefonnummer2RO({ Telefonnummer: '' }, self); }; self.TelefonnummerMobil.Telefonnummer.required = false; self.TelefonnummerDirekt.Telefonnummer.required = false; self.TelefonnummerFax.Telefonnummer.required = false; self.TelefonnummerVaexel.Telefonnummer.required = false; } } //Copy pastea inte det här.. //Behövs det på fler ställen borde vi göra något smartare init(initData: any, changeTrack) { var self = this; if (Object.keys(initData).length === 2) { //$promise och $resolved self.PersonId = new fb.ChangeTrack(null, self, 'PersonId'); self.Persontyp = new fb.ChangeTrack('J', self, 'Persontyp'); self.Personnummer = new fb.ChangeTrack(null, self, 'Personnummer'); self.Personnamn = new fb.ChangeTrack(null, self, 'Personnamn'); self.AerRelateratTillFSBF = new fb.ChangeTrack(null, self, 'AerRelateratTillFSBF'); self.AerFsbf = new fb.ChangeTrack(null, self, 'AerFsbf'); self.HarSpecAegarFoerh = new fb.ChangeTrack(null, self, 'HarSpecAegarFoerh'); self.AerSekundaerPerson = new fb.ChangeTrack(null, self, 'AerSekundaerPerson'); self.AerPersonVersion = new fb.ChangeTrack(null, self, 'AerPersonVersion'); self.AerMatchad = new fb.ChangeTrack(null, self, 'AerMatchad'); self.StatusLagring = new fb.ChangeTrack(null, self, 'StatusLagring'); self.BankNyttaSvar = new fb.ChangeTrack(null, self, 'BankNyttaSvar'); self.FriVaerderingSvar = new fb.ChangeTrack(null, self, 'FriVaerderingSvar'); self.LaemnarPris = new fb.ChangeTrack(null, self, 'LaemnarPris'); self.LaemnarAntalRum = new fb.ChangeTrack(null, self, 'LaemnarAntalRum'); self.LaemnarBoarea = new fb.ChangeTrack(null, self, 'LaemnarBoarea'); self.LaemnarPostnummer = new fb.ChangeTrack(null, self, 'LaemnarPostnummer'); self.WebRubrikFoerLeverantoer = new fb.ChangeTrack(null, self, 'WebRubrikFoerLeverantoer'); self.JurPersontyp = new fb.ChangeTrack(null, self, 'JurPersontyp'); self.BRFKontaktPersonsNamn = new fb.ChangeTrack(null, self, 'BRFKontaktPersonsNamn'); self.BRFKontaktPersonsTelefonnummer = new fb.ChangeTrack(null, self, 'BRFKontaktPersonsTelefonnummer'); self.Hemsida = new fb.ChangeTrack(null, self, 'Hemsida'); self.RadVersion = new fb.ChangeTrack(null, self, 'RadVersion'); self.MejlAdress = null; self.Adress = null; self.NyAdress = null; self.TelefonnummerDirekt = null; self.TelefonnummerVaexel = null; self.TelefonnummerMobil = null; self.TelefonnummerFax = null; } super.init(initData, changeTrack); } postInit(data) { this.nullFixFn(data); if (this.Adress && this.Adress.FlyttaMedBevakningar) { this.Adress.FlyttaMedBevakningar.ignoreMerge = true; } if (this.TelefonnummerDirekt && this.TelefonnummerDirekt.FlyttaMedBevakningar) { this.TelefonnummerDirekt.FlyttaMedBevakningar.ignoreMerge = true; } if (this.TelefonnummerFax && this.TelefonnummerFax.FlyttaMedBevakningar) { this.TelefonnummerFax.FlyttaMedBevakningar.ignoreMerge = true; } if (this.TelefonnummerVaexel && this.TelefonnummerVaexel.FlyttaMedBevakningar) { this.TelefonnummerVaexel.FlyttaMedBevakningar.ignoreMerge = true; } if (this.TelefonnummerMobil && this.TelefonnummerMobil.FlyttaMedBevakningar) { this.TelefonnummerMobil.FlyttaMedBevakningar.ignoreMerge = true; } if (this.MejlAdress && this.MejlAdress.FlyttaMedBevakningar) { this.MejlAdress.FlyttaMedBevakningar.ignoreMerge = true; } } //postMerge(data) { // this.nullFixFn(data); //} getSaveObject() { var person = super.getSaveObject(); if (person.MejlAdress && (person.MejlAdress.Mejladress === '' || person.MejlAdress.Mejladress === null)) { person.MejlAdress = null; } if (person.Adress && (person.Adress.AdressText === '' || person.Adress.AdressText === null) && (person.Adress.Postnummer === '' || person.Adress.Postnummer === null) && (person.Adress.Postort === '' || person.Adress.Postort === null)) { person.Adress = null; } if (person.NyAdress &&person.NyAdress.AdressText === '' && person.NyAdress.Postnummer === '' && person.NyAdress.Postort === '') { person.NyAdress = null; } if (person.TelefonnummerMobil && (person.TelefonnummerMobil.Telefonnummer === '' || person.TelefonnummerMobil.Telefonnummer === null)) { person.TelefonnummerMobil = null; } if (person.TelefonnummerFax && (person.TelefonnummerFax.Telefonnummer === '' || person.TelefonnummerFax.Telefonnummer === null)) { person.TelefonnummerFax = null; } if (person.TelefonnummerVaexel && (person.TelefonnummerVaexel.Telefonnummer === '' || person.TelefonnummerVaexel.Telefonnummer === null)) { person.TelefonnummerVaexel = null; } if (person.TelefonnummerDirekt && (person.TelefonnummerDirekt.Telefonnummer === '' || person.TelefonnummerDirekt.Telefonnummer === null)) { person.TelefonnummerDirekt = null; } return person; } getForeignKeyObject(): fb.IForeignKeyObject { return { entity: fb.ForeignKeyEntity.KONTAKT, key: this.PersonId.value } } isPersonFysisk = function () { return false; } isPersonJuridisk = function () { return true; } isArkiverad(): boolean { return this.StatusLagring && this.StatusLagring.value === fb.FasITDomain.StatusLagring.ARKIVERAD; } isKund = function () { return this.JurPersontyp && (this.JurPersontyp.value === fb.JuridiskPersonTypId.OSPECIFICERAD || this.JurPersontyp.value === fb.JuridiskPersonTypId.DOEDSBO); } isBostadsFoerening(): boolean { return (this.JurPersontyp && this.JurPersontyp.value === fb.JuridiskPersonTypId.BRF); } isSamfaellighetsfoerening(): boolean { return (this.JurPersontyp && this.JurPersontyp.value === fb.JuridiskPersonTypId.SAMFAELLIGHET); } isBank(): boolean { return (this.JurPersontyp && this.JurPersontyp.value === fb.JuridiskPersonTypId.BANK); } //isFastighetsMaeklare(): boolean { // return (this.JurPersontyp && this.JurPersontyp.value === 3); //} isDoedsbo(): boolean { return (this.JurPersontyp && this.JurPersontyp.value === fb.JuridiskPersonTypId.DOEDSBO); } //isTidning(): boolean { // return (this.JurPersontyp && this.JurPersontyp.value === 5); //} //isJuridisktBolag(): boolean { // return (this.JurPersontyp && this.JurPersontyp.value === 6); //} isFoervaltare(): boolean { return (this.JurPersontyp && this.JurPersontyp.value === fb.JuridiskPersonTypId.FOERVALTARE); } isSamarbetspartner(): boolean { return this.JurPersontyp && this.JurPersontyp.value === fb.JuridiskPersonTypId.SAMARBETSPARTNER; } getGlobalUniqueId(): string { if (this.getPrimaryKey() === null) { var uniqueIdService = angular.element(document).injector().get('uniqueIdService') as fb.IUniqueIdService; this.$tempPK = uniqueIdService.getUniqueIdNoLimit(this.$rootName); } return this.$rootName + this.getPrimaryKey(); } } }