{"version":3,"file":"stockbatchService-629e950d.js","sources":["../../src/app/services/generated/stockbatchService.ts"],"sourcesContent":["import Guid from \"@/app/types/common/guid\";\nimport { Instant, LocalDate, LocalTime } from \"@js-joda/core\";\nimport {ModelObject, BaseModelObject, ValidationRule} from \"@/app/services/modelObject\";\nimport ServiceBase from \"@/app/services/serviceBase\";\nimport converters from \"@/app/services/converters\"\nimport { EnumYesNoEither } from \"./enums/enumYesNoEither.generated\";\n\n// Model Objects\n\nexport class StockBatch extends ModelObject {\n\n public version: number = 0;\n public id: Guid = Guid.createEmpty();\n private _dateOfBatch: LocalDate | null = null;\n /**\n * Date of Batch for batchable stock. Typically date the batch (urn) was first received. Used for FIFO.\n */\n public get dateOfBatch(): LocalDate | null { return this._dateOfBatch }\n public set dateOfBatch(value: LocalDate | null) {\n this._dateOfBatch = value === undefined ? null : value;\n }\n /**\n * Stock Item Id\n */\n public stockItemId: Guid = Guid.createEmpty();\n /**\n * URN\n * Not Nullable\n * Max Length : 1000\n */\n public urn: string = \"\";\n /**\n * Is batch complete\n */\n public isComplete: boolean = false;\n private _hopAlpha: number | null = null;\n /**\n * Hop Alpha value of this batch, if specified.\n * Not Negative\n */\n public get hopAlpha(): number | null { return this._hopAlpha }\n public set hopAlpha(value: number | null) {\n this._hopAlpha = value === undefined ? null : value;\n }\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.version = jsonSerializedObject.version;\n this.id = Guid.fromString(jsonSerializedObject.id);\n this.dateOfBatch = jsonSerializedObject.dateOfBatch == null ? null : LocalDate.parse(jsonSerializedObject.dateOfBatch);\n this.stockItemId = Guid.fromString(jsonSerializedObject.stockItemId);\n this.urn = jsonSerializedObject.urn;\n this.isComplete = jsonSerializedObject.isComplete;\n this.hopAlpha = jsonSerializedObject.hopAlpha == null ? null : jsonSerializedObject.hopAlpha;\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.version = this.version;\n toRet.id = this.id.toString();\n toRet.dateOfBatch = this.dateOfBatch == null ? null : this.dateOfBatch.toString();\n toRet.stockItemId = this.stockItemId.toString();\n toRet.urn = this.urn;\n toRet.isComplete = this.isComplete;\n toRet.hopAlpha = this.hopAlpha == null ? null : this.hopAlpha;\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"version\", rule: (v: any) => v == null || v >= -9223372036854775808 || \"Version is not greater than minimum allowed value: -9223372036854775808\"},\n {field: \"version\", rule: (v: any) => v == null || v <= 9223372036854775807 || \"Version is above maximum allowed value: 9223372036854775807\"},\n {field: \"id\", rule: (v: any) => !v.isEmpty() || \"StockBatch.Id cannot be empty\"},\n {field: \"stockItemId\", rule: (v: any) => !v.isEmpty() || \"StockBatch.StockItemId cannot be empty\"},\n {field: \"urn\", rule: (v: any) => v == null || v.length <= 1000 || \"Urn has too many characters (1000)\"},\n ];\n}\n\n\nexport class ItemUrn extends ModelObject {\n\n public itemId: Guid = Guid.createEmpty();\n public urn: string = \"\";\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.itemId = Guid.fromString(jsonSerializedObject.itemId);\n this.urn = jsonSerializedObject.urn;\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.itemId = this.itemId.toString();\n toRet.urn = this.urn;\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"itemId\", rule: (v: any) => !v.isEmpty() || \"ItemUrn.ItemId cannot be empty\"},\n ];\n}\n\n\nexport class GetStockBatchesForItemsRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public stockItemIds: readonly Guid[] = [];\n public completeOrNot: EnumYesNoEither = EnumYesNoEither.either;\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.stockItemIds = jsonSerializedObject.stockItemIds.map((v: any) => Guid.fromString(v));\n this.completeOrNot = EnumYesNoEither.getByValue(jsonSerializedObject.completeOrNot, this.completeOrNot);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.stockItemIds = this.stockItemIds.map(v => v.toString());\n toRet.completeOrNot = this.completeOrNot.value;\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n ];\n}\n\n\nexport class GetStockBatchesForItemsResponse extends ModelObject {\n\n public stockBatches: StockBatch[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.stockBatches = jsonSerializedObject.stockBatches.map((v: any) => new StockBatch(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.stockBatches = this.stockBatches.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"stockBatches\", rule: (v: any) => !!v || \"stockBatches is required\"},\n {field: \"stockBatches\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as StockBatch[]).reduce((acc: Array, curr: StockBatch) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class GetStockBatchesRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public stockBatchIds: readonly Guid[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.stockBatchIds = jsonSerializedObject.stockBatchIds.map((v: any) => Guid.fromString(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.stockBatchIds = this.stockBatchIds.map(v => v.toString());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n ];\n}\n\n\nexport class GetStockBatchesResponse extends ModelObject {\n\n public stockBatches: StockBatch[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.stockBatches = jsonSerializedObject.stockBatches.map((v: any) => new StockBatch(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.stockBatches = this.stockBatches.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"stockBatches\", rule: (v: any) => !!v || \"stockBatches is required\"},\n {field: \"stockBatches\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as StockBatch[]).reduce((acc: Array, curr: StockBatch) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class SaveStockBatchRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public stockBatch: StockBatch = new StockBatch();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.stockBatch = new StockBatch(jsonSerializedObject.stockBatch);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.stockBatch = this.stockBatch.toJsonSerializedObject();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"stockBatch\", rule: (v: any) => !!v || \"stockBatch is required\"},\n {field: \"stockBatch\", rule: (v: any) => v.validate()},\n ];\n}\n\n\nexport class SetStockBatchIsCompleteRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public stockBatchId: Guid = Guid.createEmpty();\n /**\n * True for complete, false for incomplete.\n */\n public complete: boolean = false;\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.stockBatchId = Guid.fromString(jsonSerializedObject.stockBatchId);\n this.complete = jsonSerializedObject.complete;\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.stockBatchId = this.stockBatchId.toString();\n toRet.complete = this.complete;\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"stockBatchId\", rule: (v: any) => !v.isEmpty() || \".StockBatchId cannot be empty\"},\n ];\n}\n\n\nexport class SetStockBatchesIsCompleteRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public stockBatchIds: readonly Guid[] = [];\n /**\n * True for complete, false for incomplete.\n */\n public complete: boolean = false;\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.stockBatchIds = jsonSerializedObject.stockBatchIds.map((v: any) => Guid.fromString(v));\n this.complete = jsonSerializedObject.complete;\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.stockBatchIds = this.stockBatchIds.map(v => v.toString());\n toRet.complete = this.complete;\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n ];\n}\n\n\nexport class GetZeroNonCompletedStockBatchesRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n ];\n}\n\n\nexport class GetZeroNonCompletedStockBatchesResponse extends ModelObject {\n\n public stockBatches: StockBatch[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.stockBatches = jsonSerializedObject.stockBatches.map((v: any) => new StockBatch(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.stockBatches = this.stockBatches.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"stockBatches\", rule: (v: any) => !!v || \"stockBatches is required\"},\n {field: \"stockBatches\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as StockBatch[]).reduce((acc: Array, curr: StockBatch) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class GetStockBatchesForItemUrnsRequest extends ModelObject {\n\n public tenantId: Guid = Guid.createEmpty();\n public itemUrns: readonly ItemUrn[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.tenantId = Guid.fromString(jsonSerializedObject.tenantId);\n this.itemUrns = jsonSerializedObject.itemUrns.map((v: any) => new ItemUrn(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.tenantId = this.tenantId.toString();\n toRet.itemUrns = this.itemUrns.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"tenantId\", rule: (v: any) => !v.isEmpty() || \".TenantId cannot be empty\"},\n {field: \"itemUrns\", rule: (v: any) => !!v || \"itemUrns is required\"},\n {field: \"itemUrns\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as ItemUrn[]).reduce((acc: Array, curr: ItemUrn) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class GetStockBatchesForItemUrnsResponse extends ModelObject {\n\n public stockBatches: StockBatch[] = [];\n\n public constructor(jsonSerializedObject?: any) {\n super();\n if (jsonSerializedObject) {\n this.stockBatches = jsonSerializedObject.stockBatches.map((v: any) => new StockBatch(v));\n }\n\n }\n\n public toJsonSerializedObject(): any {\n const toRet = {} as any;\n toRet.stockBatches = this.stockBatches.map(v => v.toJsonSerializedObject());\n return toRet;\n }\n\n public toProto(): any {\n return this.toJsonSerializedObject();\n }\n\n public toBinary(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toJsonSerializedObject()));\n }\n\n public validationRules: ValidationRule = [\n {field: \"stockBatches\", rule: (v: any) => !!v || \"stockBatches is required\"},\n {field: \"stockBatches\", rule: (v: any) => {\n if (v === null) {\n return true;\n }\n\n return (v as StockBatch[]).reduce((acc: Array, curr: StockBatch) => acc.concat(curr.validate()), new Array());\n }},\n ];\n}\n\n\nexport class StockBatchService extends ServiceBase {\n\n public async getStockBatchesForItems(tenantId: Guid, stockItemIds: readonly Guid[], completeOrNot: EnumYesNoEither, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetStockBatchesForItemsRequest();\n req.tenantId = tenantId;\n req.stockItemIds = stockItemIds;\n req.completeOrNot = completeOrNot;\n const extractor = (response:any) => new GetStockBatchesForItemsResponse(response).stockBatches;\n return this.makeJsonRequest(\"stockBatch/v1/getStockBatchesForItems\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getStockBatches(tenantId: Guid, stockBatchIds: readonly Guid[], opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetStockBatchesRequest();\n req.tenantId = tenantId;\n req.stockBatchIds = stockBatchIds;\n const extractor = (response:any) => new GetStockBatchesResponse(response).stockBatches;\n return this.makeJsonRequest(\"stockBatch/v1/getStockBatches\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async saveStockBatch(tenantId: Guid, stockBatch: StockBatch, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new SaveStockBatchRequest();\n req.tenantId = tenantId;\n req.stockBatch = stockBatch;\n const extractor = null;\n return this.makeJsonRequest(\"stockBatch/v1/saveStockBatch\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async setStockBatchIsComplete(tenantId: Guid, stockBatchId: Guid, complete: boolean, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new SetStockBatchIsCompleteRequest();\n req.tenantId = tenantId;\n req.stockBatchId = stockBatchId;\n req.complete = complete;\n const extractor = null;\n return this.makeJsonRequest(\"stockBatch/v1/setStockBatchIsComplete\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async setStockBatchesIsComplete(tenantId: Guid, stockBatchIds: readonly Guid[], complete: boolean, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new SetStockBatchesIsCompleteRequest();\n req.tenantId = tenantId;\n req.stockBatchIds = stockBatchIds;\n req.complete = complete;\n const extractor = null;\n return this.makeJsonRequest(\"stockBatch/v1/setStockBatchesIsComplete\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getZeroNonCompletedStockBatches(tenantId: Guid, opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetZeroNonCompletedStockBatchesRequest();\n req.tenantId = tenantId;\n const extractor = (response:any) => new GetZeroNonCompletedStockBatchesResponse(response).stockBatches;\n return this.makeJsonRequest(\"stockBatch/v1/getZeroNonCompletedStockBatches\", req.toJsonSerializedObject(), extractor, opts);\n };\n\n public async getStockBatchesForItemUrns(tenantId: Guid, itemUrns: readonly ItemUrn[], opts?: {requestTimeoutMs?: number, sessionToken?: string}): Promise {\n const req = new GetStockBatchesForItemUrnsRequest();\n req.tenantId = tenantId;\n req.itemUrns = itemUrns;\n const extractor = (response:any) => new GetStockBatchesForItemUrnsResponse(response).stockBatches;\n return this.makeJsonRequest(\"stockBatch/v1/getStockBatchesForItemUrns\", req.toJsonSerializedObject(), extractor, opts);\n };\n}\n\nexport const stockBatchService = new StockBatchService();"],"names":[],"mappings":"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"}