module fb { export class MaeklarObjektLaanOchPantbrev extends ResourceBase { MaeklarObjektId: number; Laan: { [id: number]: Laan }; Pantbrev: { [id: number]: Pantbrev }; LPMatrix: { [LaanId: number]: { [PantbrevId: number]: ChangeTrack; }; }; public static $rootName = 'maeklarObjektLaanOchPantbrev'; constructor(data: any) { super({}, false, 'maeklarObjektLaanOchPantbrev'); var self = this; var init = function (inputData) { self.MaeklarObjektId = inputData.MaeklarObjektId; (self).Checksum = inputData.Checksum; self.Laan = {}; self.Pantbrev = {}; self.LPMatrix = {}; angular.forEach(inputData.Laan, function (value, key) { self.Laan[key] = new fb.Laan(value); self.LPMatrix[key] = {}; }); var inomSum = 0; angular.forEach(_.sortBy(inputData.Pantbrev, function (p: any) { return p.Ordning; }), function (value) { var key = value.MaeklarObjektPantbrevId; self.Pantbrev[key] = new fb.Pantbrev(value); inomSum += self.Pantbrev[key].Belopp.value; self.Pantbrev[key].Inom = inomSum; angular.forEach(inputData.Laan, function (laanvalue, laankey) { self.LPMatrix[laankey][key] = new fb.ChangeTrack(false, self); }); }); angular.forEach(inputData.LaanOchPantbrev, function (value, key) { self.LPMatrix[value.m_Item1][value.m_Item2] = new fb.ChangeTrack(true, self); }); }; if (data.$promise) { self.$promise = data.$promise; data.$promise.then(function () { init(data); }); } else { init(data); } } getPrimaryKey() { var self = this; return 'LaanOchPantbrev' + self.MaeklarObjektId; } getForeignKeyObject(): fb.IForeignKeyObject { return { entity: fb.ForeignKeyEntity.MAEKLAROBJEKT, key: this.MaeklarObjektId } } getSaveObject() { var self = this; var returnList = []; angular.forEach(self.LPMatrix, function (value, key) { angular.forEach(value, function (innerValue, innerkey) { if (self.LPMatrix[key][innerkey].value) { returnList.push({m_Item1: key, m_Item2: innerkey}); } }); }); return { MaeklarObjektId: self.MaeklarObjektId, LaanOchPantbrev: returnList, Laan: null, Pantbrev: null, Checksum: (self).Checksum }; } } }