{"version":3,"sources":["webpack:///./node_modules/@abaco/activities-module/src/modules/activities-module/api/WarehouseApi.ts"],"names":["ActionApi","http","rootPath","this","pkCuaa","url","params","subject_id","get","res","data","result","pk_cuaa","warehouse_type","paging","offset","count","filter","warehouse_id","descriptionSearch","ingredientSearch","cropCode","adversityS","activeDate","onlyOrganic","push","toUpperCase","getTime","item_id","EmptyPagedResults","records","getWarehouses","totalcount","filterNoLotNumber","stockedItemsPromise","map","r","stockedNumberedItemsPromise","Promise","all","stockedItems","st","stockedNumberedItems","warehousesWithStocks","some","warehousesWithNumberedStocks","withStocks","withNumberedStocks"],"mappings":"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","file":"js/chunk-2d0b6538.2f814a92.js","sourcesContent":["import { AxiosResponse, HTTPClient } from '@abaco/web-common/src/HTTP';\nimport { Warehouse, StockItem, WarehouseWInfo } from '../models/Warehouse';\nimport { EmptyPagedResults, PagedResults, PagingParams } from '@abaco/web-common/src/Paging';\n\nexport default class ActionApi {\n\n private http: HTTPClient;\n private rootPath: string;\n\n constructor(http: HTTPClient, rootPath: string) {\n this.http = http;\n this.rootPath = rootPath;\n }\n\n public async canSelectWarehouse(pkCuaa: number): Promise{\n const url = `${this.rootPath}/v1/user_registry/module_competencies/BEST_PRACTICE/SOGG_WAREHOUSE_EDIT`\n const params = {\n subject_id: pkCuaa\n }\n const res = await this.http.get(url, {params});\n\n return res.data.result;\n }\n\n public async getWarehouses(pk_cuaa: number, warehouse_type: string, paging: PagingParams): Promise> {\n const res = await this.http.get(`${this.rootPath}/v1/warehouse/subjects/${pk_cuaa}/warehouses`, {\n params: {\n offset: paging.offset,\n count: paging.count,\n filter: `warehouse_type eq ${warehouse_type}`\n }\n })\n\n return res.data;\n }\n\n public async getWarehouse(pk_cuaa: number, warehouse_id: number): Promise {\n const res = await this.http.get(`${this.rootPath}/v1/warehouse/subjects/${pk_cuaa}/warehouses/${warehouse_id}`);\n\n return res.data;\n }\n\n public async getWarehousePhytochemicals(pk_cuaa: number, warehouse_id: number, descriptionSearch: string | null, ingredientSearch: string | null, cropCode: string | null, adversityS: string | null, activeDate: Date | null, onlyOrganic: boolean): Promise {\n let url = `${this.rootPath}/v1/warehouse/subjects/${pk_cuaa}/warehouses/${warehouse_id}/phytochemicals?1=1`;\n if(cropCode){\n url += `&crop_code=${cropCode}`;\n }\n if(adversityS){\n url += `&adversity_s_code=${adversityS}`;\n }\n const filter = [];\n if(descriptionSearch && descriptionSearch != \"\"){\n filter.push(`^item_name like ${descriptionSearch.toUpperCase()}`);\n }\n if(ingredientSearch && ingredientSearch != \"\"){\n filter.push(`^active_substance like ${ingredientSearch.toUpperCase()}`);\n }\n if(activeDate){\n filter.push(`revocation_for_filter ge ${activeDate.getTime()}`);\n }\n if(onlyOrganic){\n filter.push(`fg_bio eq 1`);\n }\n const res = await this.http.get(url);\n return res.data;\n }\n\n public async findWarehouse(pk_cuaa: number, warehouse_type: string, item_id: number): Promise<{withStocks: WarehouseWInfo[]; withNumberedStocks: WarehouseWInfo[]}> {\n let res = new EmptyPagedResults();\n let count = 0;\n let records: Warehouse[] = [];\n do {\n res = await this.getWarehouses(pk_cuaa, warehouse_type, { offset: count, count: 300 });\n count += res.count;\n records = [...records, ...res.records]\n } while (count < res.totalcount);\n\n const filter = [\n `item_id eq ${item_id}`,\n ];\n const filterNoLotNumber = [\n `item_id eq ${item_id}`,\n `stocked_lot_number ne`,\n ];\n const stockedItemsPromise: Promise>>[] = records.map(async r => this.http.get(`${this.rootPath}/v1/warehouse/subjects/${pk_cuaa}/warehouses/${r.warehouse_id}/stocked_items`, {\n params: {\n filter: filter,\n offset: 0,\n count: 1\n }\n }));\n const stockedNumberedItemsPromise: Promise>>[] = records.map(async r => this.http.get(`${this.rootPath}/v1/warehouse/subjects/${pk_cuaa}/warehouses/${r.warehouse_id}/stocked_items`, {\n params: {\n filter: filterNoLotNumber,\n offset: 0,\n count: 1\n }\n }));\n\n const stockedItems = (await Promise.all(stockedItemsPromise))\n .filter(st => st.data.totalcount > 0)\n .map(st => st.data.records[0]);\n const stockedNumberedItems = (await Promise.all(stockedNumberedItemsPromise))\n .filter(st => st.data.totalcount > 0)\n .map(st => st.data.records[0]);\n const warehousesWithStocks = records.filter(r => stockedItems.some(st => st.warehouse_id === r.warehouse_id));\n const warehousesWithNumberedStocks = records.filter(r => stockedNumberedItems.some(st => st.warehouse_id === r.warehouse_id));\n\n return {withStocks: warehousesWithStocks, withNumberedStocks: warehousesWithNumberedStocks};\n }\n\n public async canSelectSuppliersFertilizer(pkCuaa: number): Promise{\n const url = `${this.rootPath}/v1/user_registry/module_competencies/BEST_PRACTICE/SOGG_ACTION_FERT_SUPPLIER`\n const params = {\n subject_id: pkCuaa\n }\n const res = await this.http.get(url, {params});\n\n return res.data.result;\n }\n\n}\n"],"sourceRoot":""}