{"version":3,"sources":["webpack:///./node_modules/@abaco/treatment-register-module/src/modules/treatment-register-module/api/PhytochemicalApi.ts","webpack:///./node_modules/@abaco/treatment-register-module/src/modules/treatment-register-module/models/UnitsOfMeasure.ts","webpack:///./node_modules/@abaco/treatment-register-module/src/modules/treatment-register-module/models/Product.ts","webpack:///./node_modules/@abaco/treatment-register-module/src/modules/treatment-register-module/models/Utils.ts"],"names":["PhytochemicalApi","http","rootPath","this","pk_cuaa","paging","descriptionSearch","ingredientSearch","cropCode","adversityS","activeDate","onlyOrganic","url","filter","push","toUpperCase","getTime","get","params","offset","count","length","undefined","res","data","phytochemicalId","records","item_id","search","plot_id","action_id","action_resource_id","editedPhyto","put","copyUnitMeasure","pkCuaa","protocol_id","newPhyto","post","delete","campaign","execution_id","newPhytochemical","toHA","execution_resource_id","activityProvider","plotId","filterStr","phytochemical_provider","service","object","direction","itemId","HA_UNIT","list","from","to","forEach","r","keys","key","path","split","lastKey","splice","join","ref","reduce","accum","k","console","warn","val","toPercentage","perc","Math","floor"],"mappings":"uPAOqBA,E,WAKjB,WAAYC,EAAkBC,GAAgB,uBAC1CC,KAAKF,KAAOA,EACZE,KAAKD,SAAWA,E,qHAGb,WAA4BE,EAAiBC,EAAsBC,EAAkCC,EAAiCC,EAAyBC,EAA2BC,EAAyBC,GAAnN,kGACCC,EADD,UACUT,KAAKD,SADf,kCACiDE,EADjD,uBAEAI,IACCI,GAAO,cAAJ,OAAkBJ,IAEtBC,IACCG,GAAO,qBAAJ,OAAyBH,IAE1BI,EAAS,GACZP,GAA0C,IAArBA,GACpBO,EAAOC,KAAP,0BAA+BR,EAAkBS,gBAElDR,GAAwC,IAApBA,GACnBM,EAAOC,KAAP,iCAAsCP,EAAiBQ,gBAExDL,GACCG,EAAOC,KAAP,mCAAwCJ,EAAWM,YAEpDL,GACCE,EAAOC,KAAP,eAnBD,UAqBeX,KAAKF,KAAKgB,IAAIL,EAAK,CACjCM,OAAQ,CACJC,OAAQd,EAAOc,OACfC,MAAOf,EAAOe,MACdP,OAAQA,EAAOQ,OAASR,OAASS,KAzBtC,eAqBGC,EArBH,yBA4BIA,EAAIC,MA5BR,iD,0KA+BA,WAAkCpB,EAAiBqB,EAAyBjB,EAAkBC,GAA9F,gGACGI,EAAS,GACZJ,GAA4B,IAAdA,GACbI,EAAOC,KAAP,8BAAmCL,IAHpC,SAKeN,KAAKF,KAAKgB,IAAV,6DAAoEb,EAApE,2BAA8FqB,EAA9F,8BAAmIjB,GAAY,CAC7JU,OAAQ,CACJL,OAAQA,EAAOQ,OAASR,OAASS,EACjCH,OAAQ,EACRC,MAAO,OATZ,cAKGG,EALH,yBAYIA,EAAIC,KAAKE,SAZb,gD,2JAeA,WAA2BtB,EAAiBuB,GAA5C,uGACexB,KAAKF,KAAKgB,IAAV,UAAiBd,KAAKD,SAAtB,kCAAwDE,EAAxD,2BAAkFuB,IADjG,cACGJ,EADH,yBAGIA,EAAIC,MAHR,gD,iJAMA,WAAqBnB,EAAsBuB,GAA3C,gGACGf,EAAS,GACZe,GAAoB,IAAVA,IACTA,EAASA,EAAOb,cAChBF,EAAOC,KAAP,6BAAkCc,KAJnC,SAMezB,KAAKF,KAAKgB,IAAV,UAAiBd,KAAKD,SAAtB,kCAAgE,CAC9EgB,OAAQ,CACJL,OAAQA,EAAOQ,OAASR,OAASS,EACjCH,OAAQd,EAAOc,OACfC,MAAOf,EAAOe,SAVnB,cAMGG,EANH,yBAaIA,EAAIC,MAbR,gD,qJAgBA,WAAyBhB,EAAkBH,EAAsBuB,GAAjE,gGACGf,EAAS,GACZe,GAAoB,IAAVA,IACTA,EAASA,EAAOb,cAChBF,EAAOC,KAAP,6BAAkCc,KAJnC,SAMezB,KAAKF,KAAKgB,IAAV,UAAiBd,KAAKD,SAAtB,+BAAqDM,EAArD,gBAA6E,CAC3FU,OAAQ,CACJL,OAAQA,EAAOQ,OAASR,OAASS,EACjCH,OAAQd,EAAOc,OACfC,MAAOf,EAAOe,SAVnB,cAMGG,EANH,yBAaIA,EAAIC,MAbR,gD,8IAgBA,WAAgBK,EAAiBC,EAAmBC,EAA4BC,GAAhF,uGACe7B,KAAKF,KAAKgC,IAAV,UAAiB9B,KAAKD,SAAtB,2BAAiD2B,EAAjD,uBAAuEC,EAAvE,2BAAmGC,GAAsBC,GADxI,cACGT,EADH,OAEHW,eAAgB,CAACX,EAAIC,MAAO,mBAAoB,gBAF7C,kBAGID,EAAIC,MAHR,gD,wJAMA,WAAwBW,EAAgBC,EAAqBN,EAAmBC,EAA4BC,GAA5G,uGACe7B,KAAKF,KAAKgC,IAAV,UAAiB9B,KAAKD,SAAtB,kCAAwDiC,EAAxD,iCAAuFC,EAAvF,uBAAiHN,EAAjH,2BAA6IC,GAAsBC,GADlL,cACGT,EADH,OAEHW,eAAgB,CAACX,EAAIC,MAAO,mBAAoB,gBAF7C,kBAGID,EAAIC,MAHR,gD,iJAMA,WAAeK,EAAiBC,EAAmBO,GAAnD,uGACelC,KAAKF,KAAKqC,KAAV,UAAkBnC,KAAKD,SAAvB,2BAAkD2B,EAAlD,uBAAwEC,EAAxE,mBAAoGO,GADnH,cACGd,EADH,OAEHW,eAAgB,CAACX,EAAIC,MAAO,mBAAoB,gBAF7C,kBAGID,EAAIC,MAHR,gD,qJAMA,WAAuBW,EAAgBC,EAAqBN,EAAmBO,GAA/E,uGACelC,KAAKF,KAAKqC,KAAV,UAAkBnC,KAAKD,SAAvB,kCAAyDiC,EAAzD,iCAAwFC,EAAxF,uBAAkHN,EAAlH,mBAA8IO,GAD7J,cACGd,EADH,OAEHW,eAAgB,CAACX,EAAIC,MAAO,mBAAoB,gBAF7C,kBAGID,EAAIC,MAHR,gD,kJAOA,WAAkBK,EAAiBC,EAAmBC,GAAtD,uGACe5B,KAAKF,KAAKsC,OAAV,UAAoBpC,KAAKD,SAAzB,2BAAoD2B,EAApD,uBAA0EC,EAA1E,2BAAsGC,IADrH,cACGR,EADH,OAEHW,eAAgB,CAACX,EAAIC,MAAO,mBAAoB,gBAF7C,kBAGID,EAAIC,MAHR,gD,wJAMA,WAA0BW,EAAgBC,EAAqBN,EAAmBC,GAAlF,uGACe5B,KAAKF,KAAKsC,OAAV,UAAoBpC,KAAKD,SAAzB,kCAA2DiC,EAA3D,iCAA0FC,EAA1F,uBAAoHN,EAApH,2BAAgJC,IAD/J,cACGR,EADH,OAEHW,eAAgB,CAACX,EAAIC,MAAO,mBAAoB,gBAF7C,kBAGID,EAAIC,MAHR,gD,qJAMA,WAAqBpB,EAAiBoC,EAAkBC,EAAsBC,GAA9E,uGACevC,KAAKF,KAAKqC,KAAV,UAAkBnC,KAAKD,SAAvB,8BAAqDE,EAArD,YAAgEoC,EAAhE,oBAAoFC,EAApF,mBAAmHC,GADlI,cACGnB,EADH,OAEHoB,eAAKpB,EAAIC,KAAM,CAAC,iBAChBU,eAAgB,CAACX,EAAIC,MAAO,mBAAoB,gBAH7C,kBAIID,EAAIC,MAJR,gD,wJAOA,WAAwBpB,EAAiBoC,EAAkBC,EAAsBG,GAAjF,uGACezC,KAAKF,KAAKsC,OAAV,UAAoBpC,KAAKD,SAAzB,8BAAuDE,EAAvD,YAAkEoC,EAAlE,oBAAsFC,EAAtF,2BAAqHG,IADpI,cACGrB,EADH,yBAEIA,EAAIC,MAFR,gD,kKAKA,WAAkCpB,EAAiBS,EAAuBgC,EAAoCC,GAA9G,kGACCC,EADD,sBAC4B3C,EAD5B,oBAC+C0C,GAClDC,EAAYlC,EAASkC,EAAY,WAAH,OAAclC,EAAOE,eAAkBgC,EAC/DnC,EAHH,0BAG4BiC,EAAiBG,uBAAuBC,QAHpE,oBAGuFJ,EAAiBG,uBAAuBE,OAH/H,uBAGoJL,EAAiBG,uBAAuBG,UAH5L,mBAGgNJ,GAHhN,SAIe5C,KAAKF,KAAKgB,IAAV,mCAA0CL,GAAO,CAC/DM,OAAQ,CACJC,OAAQ,EACRC,MAAO,OAPZ,cAIGG,EAJH,yBAUIA,EAAIC,MAVR,gD,kKAaA,WAAkCpB,EAAiBS,EAAuBgC,EAAoCC,EAAgBM,GAA9H,kGACCL,EADD,sBAC4B3C,EAD5B,oBAC+C0C,GAClDC,EAAYlC,EAASkC,EAAY,WAAH,OAAclC,EAAOE,eAAkBgC,EAC/DnC,EAHH,0BAG4BiC,EAAiBG,uBAAuBC,QAHpE,oBAGuFJ,EAAiBG,uBAAuBE,OAH/H,uBAGoJL,EAAiBG,uBAAuBG,UAH5L,qBAGkNC,GAHlN,OAG2NL,GAH3N,SAIe5C,KAAKF,KAAKqC,KAAV,mCAA2C1B,IAJ1D,cAIGW,EAJH,yBAKIA,EAAIC,MALR,gD,4GCnKX,kCAAO,IAAM6B,EAAU,U,kIC2OjB,SAAUnB,EAAgBoB,EAA8BC,EAAcC,GACpEF,GAGJA,EAAKG,SAAQ,SAAAC,GAAC,OAAIA,EAAEF,GAAME,EAAEH,Q,4KC5O1B,SAAUZ,EAAKO,EAAgCS,GACjDA,EAAKF,SAAQ,SAACG,GACV,IAAMC,EAAOD,EAAIE,MAAM,KACjBC,EAAUF,EAAKG,OAAOH,EAAKxC,OAAS,EAAG,GAAG4C,KAAK,IAC/CC,EAAML,EAAKM,QAAO,SAACC,EAAOC,GAAR,OAAcD,EAAQA,EAAMC,GAAKD,IAAOlB,GAChE,QAAY5B,IAAR4C,EACAI,QAAQC,KAAR,kCAAwCX,EAAxC,+BACG,GAAY,OAARM,EAAc,CAErB,IAAMM,EAAMN,EAAIH,GAChBG,EAAIH,GAAWS,EAAM,QAa3B,SAAUC,EAAaC,GAEzB,OAAQC,KAAKC,MAAa,IAAPF,GAAgB,IAAO","file":"js/chunk-47333080.0dbcea91.js","sourcesContent":["import { HTTPClient } from '@abaco/web-common/src/HTTP';\nimport { PagedResults, PagingParams } from '@abaco/web-common/src/Paging';\nimport { ActivityProvider, ProtocolActivityResourceOut } from '../models/Activity';\nimport { Adveristy, PhytochemicalType, PhytochemicalOut, Phytochemical, PhytochemicalActionOut, PhytochemicalAction, PhytochemicalDosage, PhytochemicalTypeCustom, PhytochemicalTypeDetailCustom } from '../models/Phytochemical';\nimport { copyUnitMeasure } from '../models/Product';\nimport { toHA } from '../models/Utils';\n\nexport default class PhytochemicalApi {\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 getPhytochemicalTypes(pk_cuaa: number, paging: PagingParams, 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}/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 params: {\n offset: paging.offset,\n count: paging.count,\n filter: filter.length ? filter : undefined,\n }\n })\n return res.data;\n }\n\n public async getPhytochemicalTypeDosages(pk_cuaa: number, phytochemicalId: number, cropCode: string, adversityS: string | null): Promise {\n const filter = [];\n if(adversityS && adversityS != \"\"){\n filter.push(`adversity_s_code eq ${adversityS}`);\n }\n const res = await this.http.get(`/sitiagri-rest-api/api_basic/v1/warehouse/subjects/${pk_cuaa}/phytochemicals/${phytochemicalId}/dosages?crop_code=${cropCode}`, {\n params: {\n filter: filter.length ? filter : undefined,\n offset: 0,\n count: 300\n }\n });\n return res.data.records\n }\n\n public async getPhytochemicalType(pk_cuaa: number, item_id: number): Promise {\n const res = await this.http.get(`${this.rootPath}/v1/warehouse/subjects/${pk_cuaa}/phytochemicals/${item_id}`)\n\n return res.data;\n }\n\n public async getAdversities(paging: PagingParams, search?: string): Promise> {\n const filter = [];\n if(search && search != \"\"){\n search = search.toUpperCase();\n filter.push(`^ds_adversity like ${search}`);\n }\n const res = await this.http.get(`${this.rootPath}/v1/plots/dictionary_adversity`, {\n params: {\n filter: filter.length ? filter : undefined,\n offset: paging.offset,\n count: paging.count,\n }\n })\n return res.data;\n }\n\n public async getCropAdversities(cropCode: string, paging: PagingParams, search?: string): Promise> {\n const filter = [];\n if(search && search != \"\"){\n search = search.toUpperCase();\n filter.push(`^ds_adversity like ${search}`);\n }\n const res = await this.http.get(`${this.rootPath}/v1/land_uses/crops/${cropCode}/adversities`, {\n params: {\n filter: filter.length ? filter : undefined,\n offset: paging.offset,\n count: paging.count,\n }\n })\n return res.data;\n }\n\n public async editPhyto(plot_id: number, action_id: number, action_resource_id: number, editedPhyto: PhytochemicalOut): Promise {\n const res = await this.http.put(`${this.rootPath}/v1/plots/plots/${plot_id}/activities/${action_id}/phytochemicals/${action_resource_id}`, editedPhyto);\n copyUnitMeasure([res.data], \"sco_unit_measure\", \"unit_measure\")\n return res.data;\n }\n\n public async editProtocolPhyto(pkCuaa: number, protocol_id: number, action_id: number, action_resource_id: number, editedPhyto: ProtocolActivityResourceOut): Promise {\n const res = await this.http.put(`${this.rootPath}/v1/protocols/subjects/${pkCuaa}/dictionary_protocols/${protocol_id}/activities/${action_id}/phytochemicals/${action_resource_id}`, editedPhyto);\n copyUnitMeasure([res.data], \"sco_unit_measure\", \"unit_measure\")\n return res.data;\n }\n\n public async addPhyto(plot_id: number, action_id: number, newPhyto: PhytochemicalOut): Promise {\n const res = await this.http.post(`${this.rootPath}/v1/plots/plots/${plot_id}/activities/${action_id}/phytochemicals`, newPhyto);\n copyUnitMeasure([res.data], \"sco_unit_measure\", \"unit_measure\")\n return res.data;\n }\n\n public async addProtocolPhyto(pkCuaa: number, protocol_id: number, action_id: number, newPhyto: PhytochemicalOut): Promise {\n const res = await this.http.post(`${this.rootPath}/v1/protocols/subjects/${pkCuaa}/dictionary_protocols/${protocol_id}/activities/${action_id}/phytochemicals`, newPhyto);\n copyUnitMeasure([res.data], \"sco_unit_measure\", \"unit_measure\")\n return res.data;\n }\n\n\n public async deletePhyto(plot_id: number, action_id: number, action_resource_id: number): Promise {\n const res = await this.http.delete(`${this.rootPath}/v1/plots/plots/${plot_id}/activities/${action_id}/phytochemicals/${action_resource_id}`);\n copyUnitMeasure([res.data], \"sco_unit_measure\", \"unit_measure\")\n return res.data;\n }\n\n public async deleteProtocolPhyto(pkCuaa: number, protocol_id: number, action_id: number, action_resource_id: number): Promise {\n const res = await this.http.delete(`${this.rootPath}/v1/protocols/subjects/${pkCuaa}/dictionary_protocols/${protocol_id}/activities/${action_id}/phytochemicals/${action_resource_id}`);\n copyUnitMeasure([res.data], \"sco_unit_measure\", \"unit_measure\")\n return res.data;\n }\n\n public async addActionPhyto(pk_cuaa: number, campaign: number, execution_id: number, newPhytochemical: PhytochemicalActionOut): Promise {\n const res = await this.http.post(`${this.rootPath}/v1/plots/subjects/${pk_cuaa}/${campaign}/actions/${execution_id}/phytochemicals`, newPhytochemical);\n toHA(res.data, ['area_covered']);\n copyUnitMeasure([res.data], \"sco_unit_measure\", \"unit_measure\")\n return res.data;\n }\n\n public async deleteActionPhyto(pk_cuaa: number, campaign: number, execution_id: number, execution_resource_id: number): Promise {\n const res = await this.http.delete(`${this.rootPath}/v1/plots/subjects/${pk_cuaa}/${campaign}/actions/${execution_id}/phytochemicals/${execution_resource_id}`);\n return res.data;\n }\n\n public async getPhytochemicalTypesCustom(pk_cuaa: number, filter: string | null, activityProvider: ActivityProvider, plotId: number): Promise {\n let filterStr = `?subject_id=${pk_cuaa}&plot_id=${plotId}`;\n filterStr = filter ? filterStr + `&search=${filter.toUpperCase()}` : filterStr;\n const url = `v1/sync/service/${activityProvider.phytochemical_provider.service}/objects/${activityProvider.phytochemical_provider.object}/directions/${activityProvider.phytochemical_provider.direction}/preview${filterStr}`;\n const res = await this.http.get(`/sync-rest-api/api_basic/${url}`, {\n params: {\n offset: 0,\n count: 300,\n }\n })\n return res.data;\n }\n\n public async setPhytochemicalTypesCustom(pk_cuaa: number, filter: string | null, activityProvider: ActivityProvider, plotId: number, itemId: string): Promise {\n let filterStr = `?subject_id=${pk_cuaa}&plot_id=${plotId}`;\n filterStr = filter ? filterStr + `&search=${filter.toUpperCase()}` : filterStr;\n const url = `v1/sync/service/${activityProvider.phytochemical_provider.service}/objects/${activityProvider.phytochemical_provider.object}/directions/${activityProvider.phytochemical_provider.direction}/download/${itemId}${filterStr}`;\n const res = await this.http.post(`/sync-rest-api/api_basic/${url}`)\n return res.data;\n }\n\n}\n","export const HA_UNIT = \"000001\";\n\nexport interface UnitOfMeaseureFamily {\n ext_code: string;\n cod_family: string;\n sco_family: string;\n ds_family: string;\n de_family: string;\n applicable_to_resource: number;\n}\n\nexport interface UnitOfMeasure {\n ext_code: string;\n sco_unit_of_measure: string;\n cod_unit_of_measure: string;\n ds_unit_of_measure: string;\n de_unit_of_measure: string;\n default_unimis: number;\n unit_of_measure_family_name: string;\n}\n\nexport interface UnitOfMeasureCollection {\n [family_name: string]: UnitOfMeasure[];\n}\n\nexport interface UnitConversion {\n conversion_sco: string;\n conversion_ext: string;\n factor: number;\n}\n\n","import { ActionItemIn } from './Action';\nimport { HA_UNIT } from './UnitsOfMeasure';\nimport { Stock, StockItemOut } from './Warehouse';\n\nexport interface ProductOut {\n description?: string;\n sco_unit_measure: string;\n sco_unit_measure_denominator?: string;\n quantity: number;\n area_covered?: number;\n item_id: number;\n}\n\nexport type GenOrUse = \"product_gen\" | \"product_use\" | \"harvest\" | \"delivery_in\" | \"delivery_out\";\n\nexport function toProductOut(p: Product): ProductOut {\n return {\n description: p.description || undefined,\n sco_unit_measure: p.unit_measure,\n sco_unit_measure_denominator: p.area_covered ? HA_UNIT : undefined,\n quantity: p.quantity,\n area_covered: p.area_covered || undefined,\n item_id: p.item_id,\n };\n}\n\nexport interface Product {\n description: string;\n quantity: number;\n item_id: number;\n action_id: number;\n area_covered: number;\n unit_measure: string;\n item_code: string;\n item_name: string;\n physical_quantity: string;\n ds_unit_measure: string;\n sco_unit_measure: string;\n action_resource_id: number;\n resource_type: string;\n unit_measure_denominator: string;\n stocked_lot_number?: string;\n stock?: Stock;\n}\n\nexport interface ProductAction extends ActionItemIn {\n itemId: number;\n stock: Stock;\n product: ProductType;\n}\n\nexport interface ProductActionOut {\n description?: string;\n sco_unit_measure: string;\n quantity: number;\n area_covered?: number;\n sco_uom_area?: string;\n item_id: number;\n warehouse_id: number | undefined;\n stocked_lot_id?: number;\n stocked_lot: StockItemOut;\n operation_type: string;\n}\n\nexport interface Harvest {\n sco_unit_measure: string;\n ds_unit_measure: string;\n quantity: number;\n area_covered: number;\n sco_uom_area: string;\n item_id?: number;\n product?: ProductType;\n warehouse_id?: number;\n physical_quantity?: string;\n}\nexport interface HarvestOut {\n sco_unit_measure: string;\n quantity: number;\n area_covered: number;\n sco_uom_area: string;\n item_id?: number;\n warehouse_id?: number;\n}\n\nexport interface HarvestIn {\n description: string;\n quantity: number;\n execution_id: number;\n execution_resource_id: number;\n fk_resource_id: number;\n physical_quantity: string;\n area_covered: number;\n unit_measure: string;\n ds_unit_measure: string;\n resource_type: string;\n resource_name: string;\n item_name: string;\n total_cost: number;\n dataset_type: string;\n}\n\nexport interface ProductType {\n item_id: number;\n item_code: string;\n physical_quantity: string;\n ds_unimis_family: string;\n manufacturer_id: number;\n manufacturer_code: string;\n item_name: string;\n unimis_family: string;\n is_used: number;\n is_shared: number;\n prices: Price[];\n last_update: Date;\n item_note: string;\n company_name: string;\n class_p_code: string;\n class_s_code: string;\n ds_class_code: string;\n}\n\nexport interface Price {\n currency: string;\n cod_price_type: string;\n pkid: number;\n unit_measure: string;\n ref_price: number;\n sco_currency: string;\n sco_unit_measure: string;\n price_type: string;\n is_cost: number;\n is_revenue: number;\n entity_type: string;\n entity_id: number;\n}\n\nexport function toProductAction(p: Product): ProductAction {\n return {\n area_covered: p.area_covered,\n description: p.description,\n ds_unit_measure: p.ds_unit_measure,\n quantity: p.quantity,\n unit_measure: p.sco_unit_measure,\n physical_quantity: p.physical_quantity,\n product: {\n item_id: p.item_id,\n item_name: p.item_name,\n item_code: p.item_code,\n } as ProductType,\n itemId: p.item_id\n } as ProductAction\n}\n\nexport function toProductActionOut(p: ProductAction, type: GenOrUse): ProductActionOut {\n return {\n description: p.description || undefined,\n sco_unit_measure: p.unit_measure,\n quantity: p.quantity,\n area_covered: p.area_covered || undefined,\n sco_uom_area: p.area_covered ? HA_UNIT : undefined,\n item_id: p.product?.item_id,\n warehouse_id: p.stock?.warehouse_id,\n stocked_lot_id: p.stock?.stocked_lot_id,\n stocked_lot: {\n lot_number: p.stock?.stocked_lot_number?p.stock?.stocked_lot_number:\"\"\n },\n operation_type: type === \"product_gen\" || type === \"delivery_in\" ? \"LOAD_ACTIVITY\" : \"UNLOAD_ACTIVITY\"\n }\n}\n\nexport function toHarvest(p: ProductAction): Harvest {\n return {\n area_covered: p.area_covered,\n item_id: p.product.item_id,\n product: p.product,\n quantity: p.quantity,\n sco_unit_measure: p.unit_measure,\n ds_unit_measure: p.ds_unit_measure,\n sco_uom_area: \"HA\",\n warehouse_id: p.stock?.warehouse_id,\n physical_quantity: p.physical_quantity\n }\n}\n\nexport function toHarvestOut(h: Harvest): HarvestOut{\n return {\n area_covered: h.area_covered,\n quantity: h.quantity,\n sco_unit_measure: h.sco_unit_measure,\n sco_uom_area: h.sco_uom_area,\n item_id: h.item_id,\n warehouse_id: h.warehouse_id\n }\n}\n\nexport function toDeliveryProductAction(p: ProductAction): ProductAction {\n return {\n product: p.product,\n description: p.description || undefined,\n sco_unit_measure: p.sco_unit_measure,\n ds_unit_measure: p.ds_unit_measure,\n unit_measure: p.sco_unit_measure,\n quantity: p.quantity,\n itemId: p.itemId,\n stock: {\n ...p.stock,\n warehouse_id: undefined,\n },\n area_covered: p.area_covered,\n execution_id: p.execution_id,\n dataset_type: p.dataset_type,\n execution_resource_id: p.execution_id,\n physical_quantity: p.physical_quantity,\n fk_resource_id: p.execution_id,\n resource_type: p.resource_type,\n resource_name: p.resource_name,\n total_cost: p.execution_id,\n }\n}\n// export function toDeliveryProductActionOut(p: ProductAction): any {\n// return {\n// description: p.description || undefined,\n// sco_unit_measure: p.sco_unit_measure,\n// quantity: p.quantity,\n// item_id: p.product?.item_id,\n// warehouse_id: undefined,\n// stocked_lot_id: p.stock?.stocked_lot_id,\n// stocked_lot: {\n// lot_number: p.stock?.stocked_lot_number\n// },\n// operation_type: \"LOAD_ACTIVITY\"\n// }\n// }\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function copyUnitMeasure(list: {[key: string]: any}[], from: string, to: string){\n if(!list){\n return;\n }\n list.forEach(r => r[to] = r[from]);\n}\n","import { TranslateResult } from \"vue-i18n\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function toHA(object: { [key: string]: any }, keys: string[]) {\n keys.forEach((key) => {\n const path = key.split(\".\");\n const lastKey = path.splice(path.length - 1, 1).join(\"\");\n const ref = path.reduce((accum, k) => accum ? accum[k] : accum, object);\n if (ref === undefined) {\n console.warn(`Invalid path to object, ${key} points to undefined `);\n } else if (ref !== null) {\n // Ignore null objects\n const val = ref[lastKey];\n ref[lastKey] = val / 10000;\n }\n });\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function toHAList(list: {[key: string]: any}[], keys: string[]): void {\n if(!list){\n return;\n }\n list.forEach(r => toHA(r, keys));\n}\n\nexport function toPercentage(perc: number): string{\n // due to 0.56 * 100 gives 0.5655000001, damn javascript!\n return (Math.floor(perc * 10000) / 100) + \" %\";\n}\n\n\n\nexport interface SelectionStep {\n component: string;\n isDisabled: boolean;\n title: string | TranslateResult;\n optional?: boolean;\n canNavigateToWarehouse?: boolean;\n}\n\n"],"sourceRoot":""}