{"version":3,"sources":["webpack:///./node_modules/@abaco/treatment-register-module/src/modules/treatment-register-module/api/WarehouseApi.ts"],"names":["WarehouseApi","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","stockedItemsPromise","map","r","Promise","all","stockedItems","st","warehouses","some","stockItemId"],"mappings":"uSAIqBA,E,WAKjB,WAAYC,EAAkBC,GAAgB,uBAC1CC,KAAKF,KAAOA,EACZE,KAAKD,SAAWA,E,kHAGb,WAAyBE,GAAzB,kGACGC,EADH,UACYF,KAAKD,SADjB,2EAEGI,EAAS,CACXC,WAAYH,GAHb,SAKeD,KAAKF,KAAKO,IAAIH,EAAK,CAACC,WALnC,cAKGG,EALH,yBAOIA,EAAIC,KAAKC,QAPb,gD,8IAUA,WAAoBC,EAAiBC,EAAwBC,GAA7D,uGACeX,KAAKF,KAAKO,IAAV,UAAiBL,KAAKD,SAAtB,kCAAwDU,EAAxD,eAA8E,CAC5FN,OAAQ,CACJS,OAAQD,EAAOC,OACfC,MAAOF,EAAOE,MACdC,OAAQ,qBAAF,OAAuBJ,MALlC,cACGJ,EADH,yBASIA,EAAIC,MATR,gD,iJAYA,WAAmBE,EAAiBM,GAApC,uGACef,KAAKF,KAAKO,IAAV,UAAiBL,KAAKD,SAAtB,kCAAwDU,EAAxD,uBAA8EM,IAD7F,cACGT,EADH,yBAGIA,EAAIC,MAHR,gD,6JAMA,WAAiCE,EAAiBM,EAAsBC,EAAkCC,EAAiCC,EAAyBC,EAA2BC,EAAyBC,GAAxN,kGACCnB,EADD,UACUF,KAAKD,SADf,kCACiDU,EADjD,uBACuEM,EADvE,uBAEAG,IACChB,GAAO,cAAJ,OAAkBgB,IAEtBC,IACCjB,GAAO,qBAAJ,OAAyBiB,IAE1BL,EAAS,GACZE,GAA0C,IAArBA,GACpBF,EAAOQ,KAAP,0BAA+BN,EAAkBO,gBAElDN,GAAwC,IAApBA,GACnBH,EAAOQ,KAAP,iCAAsCL,EAAiBM,gBAExDH,GACCN,EAAOQ,KAAP,mCAAwCF,EAAWI,YAEpDH,GACCP,EAAOQ,KAAP,eAnBD,UAqBetB,KAAKF,KAAKO,IAAIH,GArB7B,eAqBGI,EArBH,yBAsBIA,EAAIC,MAtBR,iD,4JAyBA,WAAoBE,EAAiBC,EAAwBe,GAA7D,wGACCnB,EAAM,IAAIoB,OACVb,EAAQ,EACRc,EAAuB,GAHxB,uBAKa3B,KAAK4B,cAAcnB,EAASC,EAAgB,CAAEE,OAAQC,EAAOA,MAAO,MALjF,OAKCP,EALD,OAMCO,GAASP,EAAIO,MACbc,EAAU,GAAH,sBAAOA,GAAP,eAAmBrB,EAAIqB,UAP/B,UAQMd,EAAQP,EAAIuB,WARlB,8BAUGC,EAAyEH,EAAQI,IAAR,yDAAY,WAAMC,GAAN,0GAAW,EAAKlC,KAAKO,IAAV,UAAiB,EAAKN,SAAtB,kCAAwDU,EAAxD,uBAA8EuB,EAAEjB,aAAhF,kBAA8G,CAChNZ,OAAQ,CACJW,OAAQ,cAAF,OAAgBW,GACtBb,OAAQ,EACRC,MAAO,MAJ4E,2CAAZ,uDAV5E,UAkByBoB,QAAQC,IAAIJ,GAlBrC,eAkBGK,EAlBH,OAmBsBrB,QAAO,SAAAsB,GAAE,OAAIA,EAAG7B,KAAKsB,WAAa,KAClCE,KAAI,SAAAK,GAAE,OAAIA,EAAG7B,KAAKoB,QAAQ,MAC7CU,EAAaV,EAAQb,QAAO,SAAAkB,GAAC,OAAIG,EAAaG,MAAK,SAAAF,GAAE,OAAIA,EAAGrB,eAAiBiB,EAAEjB,mBArBlF,kBAuBI,CAACsB,aAAYR,WAAYvB,EAAIuB,aAvBjC,iD,qJA2BA,WAAuBpB,EAAiBM,EAAsBwB,GAA9D,uGACevC,KAAKF,KAAKO,IAAV,UAAiBL,KAAKD,SAAtB,kCAAwDU,EAAxD,uBAA8EM,EAA9E,WAAqG,CACnHZ,OAAQ,CACJU,MAAO,IACPC,OAAQ,oBAAF,OAAsByB,MAJjC,cACGjC,EADH,yBAOIA,EAAIC,MAPR,gD","file":"js/chunk-2d20fecd.e34930db.js","sourcesContent":["import { AxiosResponse, HTTPClient } from '@abaco/web-common/src/HTTP';\nimport { Warehouse, StockItem } from '../models/Warehouse';\nimport { EmptyPagedResults, PagedResults, PagingParams } from '@abaco/web-common/src/Paging';\n\nexport default class WarehouseApi {\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<{warehouses: Warehouse[]; totalcount: number}> {\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 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: `item_id eq ${item_id}`,\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 warehouses = records.filter(r => stockedItems.some(st => st.warehouse_id === r.warehouse_id));\n\n return {warehouses, totalcount: res.totalcount};\n }\n\n //get lotto\n public async getLotFromItemId(pk_cuaa: number, warehouse_id: number, stockItemId: number): Promise {\n const res = await this.http.get(`${this.rootPath}/v1/warehouse/subjects/${pk_cuaa}/warehouses/${warehouse_id}/stocks`, {\n params: {\n count: 100,\n filter: `stock_item_id eq ${stockItemId}`\n }\n })\n return res.data;\n }\n}\n"],"sourceRoot":""}