{"version":3,"mappings":"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","names":["PpCommonService","constructor","unitsStore","cropTypeStore","cropApplicationStore","plantProtectionPlanBookStore","dateService","languageStore","translationService","tooltipContentService","roundNumericPipe","roundNumericService","this","getApplNumName","application","shortVersion","translate","getTotalWaterAmountBasedOnOperationMode","planBooks","length","operationMode","l","o","a","FirstOrDefault","_a","Summary","_b","OperationMode","_c","Key","OperationModesEnum","waterAmount","calculateWaterAmountOfPlanBooks","getWaterAmountBasedOnOperationMode","planBook","calculateWaterAmountOfPlanBook","reduce","sum","getApplicationValue","e","PlannedArea","ApplicationConst","ApplicationRate","isWorkTypeSpraying","ProductList","ProductListDetails","WorkType","WorkTypes","getApplNumFromSummary","summary","getPlanningsBySummaryId","Id","eppoCode","CropApplicationStore","map","pB","t","getDefaultCroptype","MainCropId","Eppocode","GetApplication","EcValue","getAppliedProductsExpr","products","isTooltip","separator","joinChar","p","buildProductExpr","join","getAppliedProductSumExpr","options","areaHa","withoutProdName","useBaseUnit","getDistinctProductsOfPlanBooks","appliedProducts","productListItem","flat","find","PlanId","Any","n","i","UserApplicationRate","productListItemCopy","ObjectFactory","ProductRate","roundAsNumber","push","getApplicationDatesData","planBooksApplicationDates","_getPlanBookApplicationDates","uniqueApplicationDates","getUniqDates","DateSort","Tooltip","planBooksApplicationDatesTooltip","x","ApplicationDate","IsMoreThanOneUniqDate","NewestDate","product","unit","getUnitWithUnit","Unit","s","BaseUnit","prodName","Product","ProductName","transform","_d","_e","filter","farmDate","toFarmDate","Date","toDate","getDateMidnight","getPlanningDescription","Title","moment","IsoDateTimeFormat","format","CurrentDateTimeFormat","i0","factory","PlantProtectionPlanBooksActions","payload","PLANT_PROTECTION_PLANBOOK_SET","PLANT_PROTECTION_PLANNING_RASTER_STATISTIC_REFRESH","PLANT_PROTECTION_PLANNING_RASTER_STATISTIC_FAIL","PLANT_PROTECTION_PLANNING_RASTER_CREATE_JOB","PlantProtectionPlanBookStore","Store","backend","super","data","logfiles","logfilesLoading","loaded","loading","fieldPPPlanningStatistic","registerObservable","PlantProtectionPlanBooksLoadSuccess","subscribe","d","Mutate","Data","SetLoadFinishState","PlantProtectionPlanBooksLoadFail","PlantProtectionLogfilesLoadSuccess","NFertilizationLogfilesRemapComplete","loadLogfiles","PPPlanningRasterStatisticRefresh","statisticsToAdd","JSON","parse","Find","P","FieldGeomId","O","RemoveAll","AddRange","PPPlanningRasterStatisticFail","result","r","stat","ErrorText","Message","Replace","Add","Loading$","Listen","PlanBooks$","PlanBooks","getValue","getLogfilesByPlanBookId","id","PlantProtectionPlanBook","loadPlanBooks","SetLoadState","DispatchBackend","PlantProtectionPlanBooksLoad","summaryId","savePlanBooks","PlantProtectionPlanBooksSave","Name","Type","ApCustomTypes","Value","setPlanningToLogfile","logEdit","PlantProtectionPlanBookSet","PlantProtectionLogfilesLoad","updateLogfiles","datasetFieldMaps","PlantProtectionLogfilesUpdate","remapLogfile","Array","isArray","dataSets","DataSet","PlantProtectionLogfilesRemap","bookPlanBooks","logFiles","logFile","PlantProtectionLogfilesBook","unBookPlanBooks","PlantProtectionLogfilesUnBook","deleteSummaries","PlantProtectionSummariesDelete","NetTypes","CreatePPPlanningRasterJob","planningData","PPPlanningRasterCreateJob","clearPPPlanningStatistic"],"sources":["./src/app/plant-protection/services/pp-common.service.ts","./projects/invoker-transport/src/lib/actions/plant-protection/plant-protection-planbooks.action.ts","./src/app/stores/plant-protection/plant-protection-planbook.store.ts"],"sourcesContent":["import * as moment from 'moment';\nimport {Injectable} from '@angular/core';\nimport {CropApplicationStore} from '../../stores/task-management/crop-application.store';\nimport {CropTypeStore} from '../../stores/base-data/crop.types.store';\nimport {ApTranslationService} from '../../ap-utils/service/ap-translation.service';\nimport {PlantProtectionPlanBookStore} from '../../stores/plant-protection/plant-protection-planbook.store';\nimport {UnitsStore} from '../../stores/common/units.store';\nimport {GetRoundNumericPipe} from '../../ap-utils';\nimport {WorkTypes} from '../../stores/base-data/worrktypes.store';\nimport {OperationModesEnum} from '../../stores/common/operation-modes.store';\nimport {ApDateService, DateSort} from '../../ap-core/services/ap-date-service';\nimport {ApTooltipContentService} from '../../ap-utils/service/ap-tooltip-content.service';\nimport {ApplicationDatesData} from '../types/pp-common.types';\nimport {LanguageStore} from '../../stores/translation/language.store';\nimport IPlantProtectionSummary = Data.TaskManagement.IPlantProtectionSummary;\nimport IPlantProtectionPlanBook = Data.TaskManagement.IPlantProtectionPlanBook;\nimport IPlantProtectionProductList = Data.TaskManagement.IPlantProtectionProductList;\nimport {ObjectFactory} from 'ts-tooling';\nimport {GetRoundNumericService} from '../../ap-utils/service/get-round-numeric.service';\n\n/**\n * Service for common plant protection calculations\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class PpCommonService {\n constructor(private unitsStore: UnitsStore,\n private cropTypeStore: CropTypeStore,\n private cropApplicationStore: CropApplicationStore,\n private plantProtectionPlanBookStore: PlantProtectionPlanBookStore,\n private dateService: ApDateService,\n private languageStore: LanguageStore,\n private translationService: ApTranslationService,\n private tooltipContentService: ApTooltipContentService,\n private roundNumericPipe: GetRoundNumericPipe,\n private roundNumericService: GetRoundNumericService) {\n }\n\n /**\n * Returns the application number name (1. Gabe, ...)\n */\n public getApplNumName(application: number, shortVersion?: boolean): string {\n switch (application) {\n case -1:\n return `${this.translationService.translate('Global__Scan')}`;\n case 0:\n if (shortVersion) {\n return this.translationService.translate('Global__P0');\n } else {\n return `${this.translationService.translate('AgriConnect_ApplNum_0')}`;\n }\n case 1:\n if (shortVersion) {\n return this.translationService.translate('Global__P1');\n } else {\n return `${this.translationService.translate('Global__1st')} ${this.translationService.translate('Global__ApplNum')}`;\n }\n case 2:\n if (shortVersion) {\n return this.translationService.translate('Global__P2');\n } else {\n return `${this.translationService.translate('Global__2nd')} ${this.translationService.translate('Global__ApplNum')}`;\n }\n case 3:\n if (shortVersion) {\n return this.translationService.translate('Global__P3');\n } else {\n return `${this.translationService.translate('Global__3rd')} ${this.translationService.translate('Global__ApplNum')}`;\n }\n case 4:\n if (shortVersion) {\n return this.translationService.translate('Global__P4');\n } else {\n return `${this.translationService.translate('Global__4th')} ${this.translationService.translate('Global__ApplNum')}`;\n }\n }\n return '';\n }\n\n /**\n * Calculates sum of applied water based on summary operation mode\n */\n public getTotalWaterAmountBasedOnOperationMode(planBooks: IPlantProtectionPlanBook[]): number | undefined {\n if (!planBooks || planBooks.length === 0) {\n return undefined;\n }\n const operationMode = planBooks.FirstOrDefault()?.Summary?.OperationMode?.Key;\n if (operationMode !== OperationModesEnum.PpTarget\n && operationMode !== OperationModesEnum.PpTargetMapPerField\n && operationMode !== OperationModesEnum.PPTargetMapPerPlan\n && operationMode !== OperationModesEnum.Constant) {\n return undefined;\n }\n const waterAmount = this.calculateWaterAmountOfPlanBooks(planBooks);\n if (waterAmount === null) {\n return undefined;\n }\n return waterAmount;\n }\n\n /**\n * Calculates applied water based on summary operation mode\n */\n public getWaterAmountBasedOnOperationMode(planBook: IPlantProtectionPlanBook): number | undefined {\n if (!planBook) {\n return undefined;\n }\n const operationMode = planBook.Summary?.OperationMode?.Key;\n if (operationMode !== OperationModesEnum.PpTarget\n && operationMode !== OperationModesEnum.PPTargetMapPerPlan\n && operationMode !== OperationModesEnum.PpTargetMapPerField\n && operationMode !== OperationModesEnum.Constant) {\n return undefined;\n }\n const waterAmount = this.calculateWaterAmountOfPlanBook(planBook);\n if (waterAmount === null) {\n return undefined;\n }\n return waterAmount;\n }\n\n /**\n * Calculates sum of applied water over all plant protection planBooks\n */\n public calculateWaterAmountOfPlanBooks(planBooks: IPlantProtectionPlanBook[] | null): number | null {\n if (!planBooks || planBooks.length <= 0) {\n return null;\n }\n return planBooks.reduce((sum, planBook) => {\n const waterAmount = this.calculateWaterAmountOfPlanBook(planBook) ?? 0;\n return sum + waterAmount;\n }, 0);\n }\n\n public calculateWaterAmountOfPlanBook(planBook: IPlantProtectionPlanBook | null): number | null {\n if (!planBook) {\n return null;\n }\n const applicationValue = this.getApplicationValue(planBook);\n return (applicationValue * (planBook?.PlannedArea) / 10000) || 0;\n }\n\n public getApplicationValue(planBook: IPlantProtectionPlanBook | null): number | null {\n if (!planBook) {\n return null;\n }\n return planBook.OperationMode?.Key === OperationModesEnum.Constant\n ? planBook.ApplicationConst\n : planBook.ApplicationRate;\n }\n\n public isWorkTypeSpraying(planBook: IPlantProtectionPlanBook): boolean {\n return planBook.ProductList?.FirstOrDefault()?.ProductListDetails?.WorkType === WorkTypes.Spraying;\n }\n\n /**\n * Calculates the summary's application number ('Gabe')\n */\n public getApplNumFromSummary(summary: IPlantProtectionSummary): number {\n if (!summary) {\n return 0;\n }\n const planBooks = this.plantProtectionPlanBookStore.getPlanningsBySummaryId(summary.Id);\n const eppoCode = CropApplicationStore._getMost(planBooks.map((pB) => this.cropTypeStore.getDefaultCroptype(pB?.MainCropId)?.Eppocode));\n return this.cropApplicationStore.GetApplication(eppoCode, summary.EcValue, summary.OperationMode);\n }\n\n /**\n * Builds a string expression of all used products and there appl_rates\n */\n public getAppliedProductsExpr(products: IPlantProtectionProductList[], isTooltip?: boolean, separator?: string): string {\n if (products?.length <= 0) {\n return '';\n }\n const joinChar = separator ?? (isTooltip ? '
' : '\\n');\n return products?.map(p => this.buildProductExpr(p))?.join(joinChar);\n }\n\n /**\n * Builds a string expression of the sum of all used products and there appl_rates\n */\n public getAppliedProductSumExpr(products: IPlantProtectionProductList[], options:\n { areaHa?: number, withoutProdName?: boolean, isTooltip?: boolean }): string {\n if (products?.length <= 0 || options?.areaHa <= 0) {\n return '';\n }\n const joinChar = options?.isTooltip ? '
' : '\\n';\n return products?.map(p => this.buildProductExpr(p, {\n areaHa: options?.areaHa,\n withoutProdName: options?.withoutProdName,\n useBaseUnit: true\n }))?.join(joinChar);\n }\n\n /**\n * Creates a list of distinct products which are used in the planBooks\n */\n public getDistinctProductsOfPlanBooks(planBooks: IPlantProtectionPlanBook[]): IPlantProtectionProductList[] {\n const appliedProducts: IPlantProtectionProductList[] = [];\n for (const productListItem of planBooks.map(pB => pB.ProductList).flat()) {\n const planBook = planBooks.find(p => p.Id === productListItem.PlanId);\n if (!appliedProducts.Any(p => p.ProductListDetails?.Id === productListItem.ProductListDetails?.Id)) {\n // Optimisation, this happens for PP Target rate map modes\n if (planBook.ApplicationRate !== planBook.Summary.UserApplicationRate) {\n const productListItemCopy = ObjectFactory.Copy(productListItem);\n productListItemCopy.ProductRate = this.roundNumericService.roundAsNumber(planBook.ApplicationRate * productListItem.ProductRate / planBook.Summary.UserApplicationRate);\n appliedProducts.push(productListItemCopy);\n } else {\n appliedProducts.push(productListItem);\n }\n }\n }\n return appliedProducts;\n }\n\n public getApplicationDatesData(planBooks: IPlantProtectionPlanBook[]): ApplicationDatesData | null {\n const planBooksApplicationDates = this._getPlanBookApplicationDates(planBooks);\n const uniqueApplicationDates = this.dateService.getUniqDates(planBooksApplicationDates, DateSort.Ascending);\n return {\n Tooltip: this.tooltipContentService.planBooksApplicationDatesTooltip(uniqueApplicationDates.map(x => ({ApplicationDate: x}))),\n IsMoreThanOneUniqDate: uniqueApplicationDates.length > 1,\n NewestDate: uniqueApplicationDates[uniqueApplicationDates.length - 1]\n };\n }\n\n public buildProductExpr(product: IPlantProtectionProductList,\n options?: { areaHa?: number, withoutProdName?: boolean, useBaseUnit?: boolean }): string {\n let unit = this.unitsStore?.getUnitWithUnit(product?.Unit?.Id);\n if (options?.useBaseUnit && unit?.BaseUnit) {\n unit = unit.BaseUnit;\n }\n const prodName = options?.withoutProdName ? '' : product?.Product?.ProductName;\n return `${this.roundNumericPipe.transform((product?.ProductRate ?? 0) * (options?.areaHa ?? 1))} ${this.translationService.translate(unit?.Key)} ${prodName}`;\n }\n\n private _getPlanBookApplicationDates(planBooks: IPlantProtectionPlanBook[]): Date[] {\n if (!planBooks || planBooks.length <= 0) {\n return [];\n }\n const planBooksApplicationDates = planBooks.filter(x => x.ApplicationDate)\n .map(x => x.ApplicationDate);\n return planBooksApplicationDates.map(x => {\n const farmDate = this.dateService.toFarmDate(new Date(x)).toDate();\n return this.dateService.getDateMidnight(farmDate);\n });\n }\n\n public getPlanningDescription(planBook: IPlantProtectionPlanBook): string {\n return planBook.Summary.Title + ' ' + moment(planBook.ApplicationDate, this.languageStore.IsoDateTimeFormat).format(this.languageStore.CurrentDateTimeFormat);\n }\n}\n","import {IAction, IApInvokerArguments} from '../../interfaces';\nimport IPlantProtectionPlanBook = Data.TaskManagement.IPlantProtectionPlanBook;\nimport {NFertilizationActions} from '../n-fertilization';\n\nexport enum PlantProtectionPlanBooksActions {\n PLANT_PROTECTION_PLANBOOKS_LOAD = '[plant_protection] planbooks load',\n PLANT_PROTECTION_PLANBOOKS_LOAD_SUCCESS = '[plant_protection] planbooks load success',\n PLANT_PROTECTION_PLANBOOKS_LOAD_FAIL = '[plant_protection] planbooks load fail',\n PLANT_PROTECTION_PLANBOOKS_SAVE = '[plant_protection] planbooks save',\n PLANT_PROTECTION_PLANBOOK_SET = '[plant_protection] planbook set',\n PLANT_PROTECTION_LOGFILE_LOAD = '[plant_protection] logfile load',\n PLANT_PROTECTION_LOGFILE_LOAD_SUCCESS = '[plant_protection] logfile load success',\n PLANT_PROTECTION_LOGFILE_LOAD_FAILED = '[plant_protection] logfile load failed',\n PLANT_PROTECTION_LOGFILES_UPDATE = '[plant_protection] logfile save',\n PLANT_PROTECTION_LOGFILES_REMAP = '[plant_protection] logfile remap',\n PLANT_PROTECTION_LOGFILES_BOOK = '[plant_protection] logfile book',\n PLANT_PROTECTION_LOGFILES_UNBOOK = '[plant_protection] logfile unbook',\n PLANT_PROTECTION_SUMMARIES_DELETE = '[plant_protection] summaries delete',\n PLANT_PROTECTION_PLANNING_RASTER_STATISTIC_REFRESH = '[pp_planning_raster] raster statistic refresh',\n PLANT_PROTECTION_PLANNING_RASTER_STATISTIC_FAIL = '[pp_planning_raster] raster statistic fail',\n PLANT_PROTECTION_PLANNING_RASTER_CREATE_JOB = '[pp_planning_raster] create job',\n PLANT_PROTECTION_PLANNING_RASTER_CREATE_JOB_FAIL = '[pp_planning_raster] create job fail',\n PLANT_PROTECTION_PLANNING_RASTER_CREATE_JOB_SUCCESS = '[pp_planning_raster] create job success',\n}\n\n/**\n * load plant protections from backend\n */\nexport class PlantProtectionPlanBooksLoad implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_PLANBOOKS_LOAD;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\n/**\n * plant protections load success\n */\nexport class PlantProtectionPlanBooksLoadSuccess implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_PLANBOOKS_LOAD_SUCCESS;\n\n constructor(public payload: IPlantProtectionPlanBook[]) {\n }\n}\n\n/**\n * plant protections load fail\n */\nexport class PlantProtectionPlanBooksLoadFail implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_PLANBOOKS_LOAD_FAIL;\n\n constructor(public payload: IPlantProtectionPlanBook[]) {\n }\n}\n\n/**\n * plant protections save\n */\nexport class PlantProtectionPlanBooksSave implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_PLANBOOKS_SAVE;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\n/**\n * plant protections create\n */\nexport class PlantProtectionPlanBookSet implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_PLANBOOK_SET;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\nexport class PlantProtectionLogfilesLoad implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_LOGFILE_LOAD;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\nexport class PlantProtectionLogfilesLoadSuccess implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_LOGFILE_LOAD_SUCCESS;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\nexport class PlantProtectionLogfilesLoadFail implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_LOGFILE_LOAD_FAILED;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\nexport class PlantProtectionLogfilesUpdate implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_LOGFILES_UPDATE;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\nexport class PlantProtectionLogfilesRemap implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_LOGFILES_REMAP;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\nexport class PlantProtectionLogfilesBook implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_LOGFILES_BOOK;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\nexport class PlantProtectionLogfilesUnBook implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_LOGFILES_UNBOOK;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\nexport class PlantProtectionSummariesDelete implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_SUMMARIES_DELETE;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\nexport class PPPlanningRasterStatisticRefresh implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_PLANNING_RASTER_STATISTIC_REFRESH;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\nexport class PPPlanningRasterStatisticFail implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_PLANNING_RASTER_STATISTIC_FAIL;\n\n constructor(public payload: string) {\n }\n}\n\nexport class PPPlanningRasterCreateJob implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_PLANNING_RASTER_CREATE_JOB;\n\n constructor(public payload: IApInvokerArguments[]) {\n }\n}\n\nexport class PPPlanningRasterCreateJobFail implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_PLANNING_RASTER_CREATE_JOB_FAIL;\n\n constructor(public payload: string) {\n }\n}\n\nexport class PPPlanningRasterCreateJobSuccess implements IAction {\n readonly type = PlantProtectionPlanBooksActions.PLANT_PROTECTION_PLANNING_RASTER_CREATE_JOB_SUCCESS;\n\n constructor(public payload: string) {\n }\n}\n","import {Store} from '../index';\nimport {Injectable} from '@angular/core';\nimport {\n ApCustomTypes,\n NetTypes,\n NFertilizationLogfilesRemapComplete,\n PlantProtectionLogfilesBook,\n PlantProtectionLogfilesLoad,\n PlantProtectionLogfilesLoadSuccess,\n PlantProtectionLogfilesRemap,\n PlantProtectionLogfilesUnBook,\n PlantProtectionLogfilesUpdate,\n PlantProtectionPlanBooksLoad,\n PlantProtectionPlanBooksLoadFail,\n PlantProtectionPlanBooksLoadSuccess,\n PlantProtectionPlanBooksSave,\n PlantProtectionSummariesDelete\n} from 'invoker-transport';\nimport {IStateStore} from '../../ap-interface';\nimport {\n PlantProtectionPlanBookSet,\n PPPlanningRasterCreateJob,\n PPPlanningRasterStatisticFail,\n PPPlanningRasterStatisticRefresh\n} from '../../../../projects/invoker-transport/src/lib/actions/plant-protection';\nimport {SafeBehaviorSubject} from 'ts-tooling';\nimport {ApSignalrService} from '../../ap-core/services/ap-signalr.service';\nimport IGuid = System.IGuid;\nimport IPlantProtectionPlanBook = Data.TaskManagement.IPlantProtectionPlanBook;\nimport IDatasetFieldMap = Data.Sensor.IDatasetFieldMap;\nimport IPlantProtectionLogEdit = Data.PlantProtection.IPlantProtectionLogEdit;\nimport INPlanningData = Data.NFertilization.INPlanningData;\nimport IFieldNutrientPlanningStatistic = Data.Nutrients.IFieldNutrientPlanningStatistic;\nimport IRasterCreationResult = Data.Nutrients.IRasterCreationResult;\n\ninterface IPlantProtectionPlanBookStore extends IStateStore {\n logfiles: IDatasetFieldMap[];\n logfilesLoading: boolean;\n fieldPPPlanningStatistic: IFieldNutrientPlanningStatistic[];\n}\n\n@Injectable({providedIn: 'root'})\nexport class PlantProtectionPlanBookStore extends Store {\n constructor(public backend: ApSignalrService) {\n super(backend, {\n data: [],\n logfiles: [],\n logfilesLoading: false,\n loaded: false,\n loading: false,\n fieldPPPlanningStatistic: []\n });\n backend.registerObservable(PlantProtectionPlanBooksLoadSuccess).subscribe(d => {\n super.Mutate(s => s.data, () => d.Data);\n super.SetLoadFinishState();\n });\n backend.registerObservable(PlantProtectionPlanBooksLoadFail).subscribe(() => {\n super.Mutate(s => s.data, () => []);\n super.SetLoadFinishState();\n });\n backend.registerObservable(PlantProtectionLogfilesLoadSuccess).subscribe((d) => {\n super.Mutate((s) => s.logfiles, () => d.Data);\n super.Mutate((s) => s.logfilesLoading, () => false);\n });\n backend.registerObservable(NFertilizationLogfilesRemapComplete).subscribe(() => {\n this.loadLogfiles();\n });\n backend.registerObservable(PPPlanningRasterStatisticRefresh).subscribe(d => {\n const statisticsToAdd = JSON.parse(d.Data) as IFieldNutrientPlanningStatistic[];\n super.Mutate(s => s.fieldPPPlanningStatistic, o => {\n if (o.Find(i => i?.FieldGeomId === statisticsToAdd[0]?.FieldGeomId)) {\n o = o.RemoveAll(i => i.FieldGeomId === statisticsToAdd[0].FieldGeomId);\n o = o.AddRange(statisticsToAdd);\n } else {\n o = o.AddRange(statisticsToAdd);\n }\n return o;\n });\n });\n backend.registerObservable(PPPlanningRasterStatisticFail).subscribe(d => {\n const result = JSON.parse(d.Data) as IRasterCreationResult;\n super.Mutate(s => s.fieldPPPlanningStatistic, o => {\n if (o.Find(i => i?.FieldGeomId === result?.Id)) {\n const stat = o.Find(i => i?.FieldGeomId === result?.Id)[0];\n stat.ErrorText = result.Message;\n o = o.Replace(i => i.FieldGeomId === result.Id, stat);\n } else {\n const err = {FieldGeomId: result.Id, ErrorText: result.Message} as IFieldNutrientPlanningStatistic;\n o = o.Add(err);\n }\n return o;\n });\n });\n }\n\n public get Loading$(): SafeBehaviorSubject {\n return super.Listen(s => s.loading);\n }\n\n public get PlanBooks$(): SafeBehaviorSubject {\n return this.Listen((s) => s.data);\n }\n\n public get PlanBooks(): IPlantProtectionPlanBook[] {\n return this.PlanBooks$.getValue();\n }\n\n public getLogfilesByPlanBookId(id: string | IGuid): IDatasetFieldMap[] {\n return super.Listen(s => s.logfiles).getValue().filter(l => l.PlantProtectionPlanBook?.Id === id);\n }\n\n public loadPlanBooks(): void {\n super.SetLoadState();\n super.Mutate(s => s.data, () => []);\n this.DispatchBackend(new PlantProtectionPlanBooksLoad([]));\n }\n\n public getPlanningsBySummaryId(summaryId: string | IGuid): IPlantProtectionPlanBook[] {\n return this.Listen(s => s.data).getValue().filter((pB) => pB.Summary?.Id === summaryId);\n }\n\n public savePlanBooks(planBooks: IPlantProtectionPlanBook[]): void {\n this.DispatchBackend(new PlantProtectionPlanBooksSave([\n {Name: 'planBooks', Type: ApCustomTypes.Data_TaskManagement_PlantProtectionPlanBook + '[]', Value: planBooks}\n ]));\n }\n\n public setPlanningToLogfile(logEdit: IPlantProtectionLogEdit): void {\n this.DispatchBackend(new PlantProtectionPlanBookSet([\n {Name: 'logEdit', Type: ApCustomTypes.Data_PlantProtection_PlantProtectionLogEdit, Value: logEdit},\n ]));\n }\n\n public loadLogfiles(): void {\n this.Mutate(s => s.logfilesLoading, () => true);\n this.DispatchBackend(new PlantProtectionLogfilesLoad([]));\n }\n\n public updateLogfiles(datasetFieldMaps: IDatasetFieldMap[]): void {\n this.DispatchBackend(new PlantProtectionLogfilesUpdate([\n {Name: 'logfiles', Type: ApCustomTypes.Data_Sensor_DatasetFieldMap + '[]', Value: datasetFieldMaps}\n ]));\n }\n\n public remapLogfile(datasetFieldMaps: IDatasetFieldMap | IDatasetFieldMap[]): void {\n if (!Array.isArray(datasetFieldMaps)) {\n datasetFieldMaps = [datasetFieldMaps];\n }\n const dataSets = datasetFieldMaps.map(x => x.DataSet);\n this.DispatchBackend(new PlantProtectionLogfilesRemap([\n {Name: 'dataSets', Type: ApCustomTypes.Data_Import_DataSet + '[]', Value: dataSets}\n ]));\n }\n\n public bookPlanBooks(data: { planBook: IPlantProtectionPlanBook, logFile: IDatasetFieldMap }[]): void {\n const planBooks = data.map(x => x.planBook);\n const logFiles = data.map(x => x.logFile);\n this.DispatchBackend(new PlantProtectionLogfilesBook([\n {Name: 'planBooks', Type: ApCustomTypes.Data_TaskManagement_PlantProtectionPlanBook + '[]', Value: planBooks},\n {Name: 'logFiles', Type: ApCustomTypes.Data_Sensor_DatasetFieldMap + '[]', Value: logFiles}\n ]));\n }\n\n public unBookPlanBooks(data: { planBook: IPlantProtectionPlanBook, logFile: IDatasetFieldMap }[]): void {\n const planBooks = data.map(x => x.planBook);\n const logFiles = data.map(x => x.logFile);\n this.DispatchBackend(new PlantProtectionLogfilesUnBook([\n {Name: 'planBooks', Type: ApCustomTypes.Data_TaskManagement_PlantProtectionPlanBook + '[]', Value: planBooks},\n {Name: 'logFiles', Type: ApCustomTypes.Data_Sensor_DatasetFieldMap + '[]', Value: logFiles}\n ]));\n }\n\n public deleteSummaries(data: IGuid[]): void {\n this.DispatchBackend(new PlantProtectionSummariesDelete([\n {Name: 'summaryIds', Type: NetTypes.GUID + '[]', Value: data}\n ]));\n }\n\n public CreatePPPlanningRasterJob(planningData: INPlanningData): void {\n super.Mutate(s => s.fieldPPPlanningStatistic, o => {\n return o.RemoveAll(i => i.FieldGeomId === planningData.FieldGeomId);\n });\n this.DispatchBackend(new PPPlanningRasterCreateJob([\n {Name: 'planningData', Type: ApCustomTypes.Data_NFertilization_NPlanningData, Value: planningData}\n ]));\n }\n\n public clearPPPlanningStatistic(): void {\n super.Mutate(s => s.fieldPPPlanningStatistic, () => []);\n }\n}\n"],"sourceRoot":"webpack:///","file":"710.0823338a0d4d3c51.js"}