{"version":3,"sources":["webpack:///./node_modules/@abaco/supply-chain-view-module/src/modules/supply-chain-view-module/api/SupplyChainViewAPI.ts"],"names":["SupplyChainViewAPI","http","this","campaign","filters","url","leader","plot","get","req","data","paging","Object","keys","forEach","key","el","comparetor","getEqOrLike","encodeURI","toString","toUpperCase","params","count","offset","toRet","records","map","country","council_label","company_code","company_name","plot_name","block_code","is_agreed","area_ha","variety","planting_year","layout","azimut","num_of_plants","block_x","block_y","pkCuaa","filter","onlyUsed","crop_label","push","agm_group_code","String","scs_pk","farm_pk","campaign_code","rotation","shape","svccode","oid","mngbyoid","res","services","entities","block_ids","extra","subject_id","length","join","field","value","supplyChainLeaderSubjectId","farmSubjectId","withWKT","point","resFilter","include_supply_chain","primarySubjectId","crop_code","showOnlyBio","fullTextSearch","include_graphic","undefined","bb_ux","bb_uy","bb_lx","bb_ly","propsToDatePaged"],"mappings":"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","file":"js/chunk-2d0aacbc.efeb019e.js","sourcesContent":["import { HTTPClient, propsToDatePaged } from \"@abaco/web-common/src/HTTP\";\nimport {\n Crop,\n PickedBlock,\n ProseccoBlock, ProseccoFilter,\n SCSData,\n SCSFilters,\n SCSMappedData,\n SCSPlotData\n} from \"../models/SCSModels\";\nimport {\n PagingParams,\n PagedResults,\n} from \"@abaco/web-common/src/Paging\";\nimport { FilterPlot, Plot } from \"@abaco/portal-global-state/src/modules/global-state/models/Plot\";\n\n\nexport default class SupplyChainViewAPI {\n private http: HTTPClient;\n\n constructor(http: HTTPClient) {\n this.http = http;\n }\n\n public async getDataForChart(campaign: number, filters?: {leader?: string; plot?: string}): Promise\n {\n let url = `/sitiagri-rest-api/api_basic/v1/dashboard/scs/campaigns/varieties_by_country?filter=campaign eq ${campaign}`\n\n if(filters)\n {\n if(filters.leader)\n url += `&filter=scs_subject_id eq ${filters.leader}`\n\n if(filters.plot)\n url += `&plot_id=${filters.plot}`\n }\n\n const req = await this.http.get(url)\n\n return req.data[0]\n }\n public async getDataForContractedChart(campaign: number, filters?: {leader?: string; plot?: string}): Promise\n {\n let url = `/sitiagri-rest-api/api_basic/v1/dashboard/scs/campaigns/varieties_by_country?contracted=true&filter=campaign eq ${campaign}`\n\n if(filters)\n {\n if(filters.leader)\n url += `&filter=scs_subject_id eq ${filters.leader}`\n }\n\n const req = await this.http.get(url)\n\n return req.data[0]\n }\n\n private static getEqOrLike(key: string)\n {\n switch (key)\n {\n case 'showOnlyBio':\n return null\n\n case 'is_agreed':\n return 'eq'\n\n case 'subject_id':\n return 'eq'\n\n case 'campaign':\n return 'eq'\n\n case 'plot_id':\n return 'eq'\n\n case 'rotation':\n return 'eq'\n\n case 'crop_code':\n return 'eq'\n\n default:\n return 'like'\n }\n }\n\n public async getData(leader: number, paging: PagingParams, filters?: SCSFilters): Promise>\n {\n let url = `/sitiagri-rest-api/api_basic/v1/dashboard/scs/plantings?filter=scs_subject_id eq ${leader}`;\n\n Object.keys(filters ?? []).forEach(key => {\n const el = filters![key as keyof SCSFilters];\n const comparetor = SupplyChainViewAPI.getEqOrLike(key);\n if (!!el && comparetor && comparetor !== \"eq\"){\n url = url + encodeURI(`&filter=^${key} ${comparetor} ${el?.toString().toUpperCase()}`);\n } else if(comparetor && !!el){\n url = url + `&filter=${key} ${comparetor} ${el}`;\n }\n })\n\n const req = await this.http.get(url, { params: { count: paging.count, offset: paging.offset } })\n\n const toRet = req.data.records.map((el: SCSData) => {\n return {\n country: el.country,\n council_label: el.council_label,\n company_code: el.company_code,\n company_name: el.company_name,\n plot_name: el.plot_name,\n block_code: el.block_code,\n is_agreed: el.is_agreed ? 'hco-true' : 'hco-false',\n area_ha: el.area_ha,\n variety: el.variety,\n planting_year: el.planting_year,\n layout: el.layout,\n azimut: el.azimut,\n num_of_plants: el.num_of_plants,\n block_x: el.block_x,\n block_y: el.block_y\n }\n })\n\n req.data.records = toRet\n\n return req.data\n }\n\n public async getCSVData(leader: number, filters?: SCSFilters): Promise\n {\n let url = `/sitiagri-rest-api/api_basic/v1/dashboard/scs/plantings/csv?filter=scs_subject_id eq ${leader}`;\n\n Object.keys(filters ?? []).forEach(key => {\n const el = filters![key as keyof SCSFilters];\n const comparetor = SupplyChainViewAPI.getEqOrLike(key);\n if (!!el && comparetor && comparetor !== \"eq\"){\n url = url + encodeURI(`&filter=^${key} ${comparetor} ${el?.toString().toUpperCase()}`);\n } else if(comparetor && !!el){\n url = url + `&filter=${key} ${comparetor} ${el}`;\n }\n })\n\n const req = await this.http.get(url)\n return req.data;\n }\n\n public async getCulture(pkCuaa: number, campaign: number, paging: PagingParams, filters?: any): Promise>\n {\n const url = `/sitiagri-rest-api/api_basic/v1/plots/subjects/${pkCuaa}/${campaign}/dictionary_crops`\n\n const params: any = {\n filter: [],\n onlyUsed: 'true'\n }\n\n if(filters?.crop_label)\n params['filter'].push(`crop_label like ${filters.crop_label.toUpperCase()}`)\n\n if(filters?.agm_group_code)\n params['filter'].push(`agm_group_code like ${filters.agm_group_code.toUpperCase()}`)\n\n params['count'] = String(paging.count)\n params['offset'] = String(paging.offset)\n\n const req = await this.http.get(url, { params: params })\n\n return req.data\n }\n\n public async pickBlocksCampaign(scs_pk: number, farm_pk: number, campaign_code: string, rotation: number, shape: string): Promise\n {\n const res = await this.http.get('/siticatasto/dbgis-servlet/tl_data', {\n params: {\n svccode: 'portal/pick_scs_blocks',\n campaign_code,\n rotation,\n shape,\n oid: scs_pk,\n mngbyoid: farm_pk\n }\n })\n\n return res.data.services[0].entities\n }\n\n public async getProseccoBlocks(scs_pk: number, block_ids: number[], paging: PagingParams, farm_pk?: number, filters?: Map): Promise>\n {\n const params: any = {\n count: paging.count,\n offset: paging.offset,\n filter: [],\n extra: \"true\"\n }\n\n if(farm_pk)\n params.subject_id = farm_pk\n\n if(block_ids && block_ids.length > 0)\n params.block_ids = block_ids.join(',')\n\n filters?.forEach(filter => {\n if(Object.keys(filter).length > 0 && filter.field && filter.value)\n params.filter.push(`^${filter.field} ${filter.filter} ${filter.value }`)\n })\n\n const res = await this.http.get(`/sitiagri-rest-api/api_basic/v1/dashboard/prosecco/scs/${scs_pk}/plantings`,\n { params }\n )\n\n return res.data\n }\n\n public async getPlots(supplyChainLeaderSubjectId: number | null, farmSubjectId: number | null, campaign: number, withWKT: boolean, paging: PagingParams, filter?: FilterPlot, point?: number[]): Promise> {\n const resFilter = [];\n const include_supply_chain = supplyChainLeaderSubjectId ? true : false;\n const primarySubjectId = supplyChainLeaderSubjectId ? supplyChainLeaderSubjectId : farmSubjectId;\n if (filter?.council_label) {\n resFilter.push(`^council_label like ${filter.council_label.toUpperCase()}`)\n }\n if (filter?.plot_name) {\n resFilter.push(`^plot_name like ${filter.plot_name.toUpperCase()}`)\n }\n if (filter?.crop_label) {\n resFilter.push(`^crop_label like ${filter.crop_label.toUpperCase()}`)\n }\n if (filter?.crop_code) {\n resFilter.push(`crop_code like ${filter.crop_code.toUpperCase()}`)\n }\n if (filter?.rotation) {\n resFilter.push(`rotation eq ${filter.rotation}`)\n }\n if (filter?.showOnlyBio) {\n resFilter.push(`fg_bio eq 1`)\n }\n if(filter?.fullTextSearch) {\n resFilter.push(`^full_text_search like ${filter.fullTextSearch.toUpperCase()}`)\n }\n if(supplyChainLeaderSubjectId && farmSubjectId) {\n resFilter.push(`plot_subject_id eq ${farmSubjectId}`)\n }\n const res = await this.http.get>(`/sitiagri-rest-api/api_basic/v1/plots/subjects/${primarySubjectId}/${campaign}/plots`, {\n params: {\n include_graphic: withWKT,\n include_supply_chain: include_supply_chain,\n offset: paging.offset,\n count: paging.count,\n filter: resFilter.length ? resFilter : undefined,\n bb_ux: point ? point[0] - 20 : null,\n bb_uy: point ? point[1] - 20 : null,\n bb_lx: point ? point[0] + 20 : null,\n bb_ly: point ? point[1] + 20 : null,\n }\n })\n propsToDatePaged(res.data, [\"valid_from\"])\n return res.data;\n }\n}\n"],"sourceRoot":""}