{ "version": 3, "sources": ["apps/frontend/src/app/materials/services/materials.service.ts", "apps/frontend/src/app/shared/components/payment-dialog.component.ts", "apps/frontend/src/app/orders/components/ocr-image-read.dialog.component.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Material, Purchase, MaterialType, Supplier } from '@proman/interfaces/entity-interfaces';\nimport { PurchaseEntityInterface, PurchaseTypes } from '@proman/resources/purchase';\nimport { Entity } from '@proman/services/entity.service';\nimport { Dialog } from '@frontend/shared/services/dialog.service';\nimport { EntityRemoveDialogComponent } from '@frontend/shared/components/entity-remove-dialog.component';\nimport { PromanStateService } from '@frontend/shared/services/proman-state.service';\nimport { ToastService } from '@proman/services/toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MaterialsService {\n currentMaterial: BehaviorSubject = new BehaviorSubject({} as Material);\n purchaseEntityInterface: PurchaseEntityInterface;\n\n constructor(\n private Dialog: Dialog,\n private Entity: Entity,\n private PromanState: PromanStateService,\n private Toast: ToastService,\n ) {\n this.purchaseEntityInterface = this.Entity.get('purchase');\n }\n\n createPurchase(\n type: PurchaseTypes,\n options: {\n parent?: Purchase;\n supplier?: Supplier;\n suppliersQuery?: { [key: string]: unknown };\n } = {}\n ): Promise {\n\n return new Promise((resolve) => {\n const createPurchaseCallback = (supplierId: number) => {\n this.purchaseEntityInterface.create(\n Object.assign(\n { type },\n options.parent ? { parent: options.parent.id } : {},\n supplierId ? { supplier: supplierId } : {},\n )\n )\n .then((response) => {\n resolve(response.data);\n });\n };\n\n createPurchaseCallback(options?.supplier?.id);\n });\n }\n\n removeMaterialType = (type: MaterialType) => {\n return new Promise((resolve) => {\n const removeCallback = () => {\n this.Dialog.open(EntityRemoveDialogComponent, { item: type, entity: 'material_type' })\n .then(() => {\n resolve(true);\n this.PromanState.to(type.stock === 'inventory' ? 'InventoryTypes' : 'MaterialTypes');\n });\n };\n\n (this.Entity.get('material')\n .search({ 'materialType.id': type.id, 'count': true }) as unknown as Promise<{ count: number }>)\n .then((response) => {\n if (response.count) {\n this.Toast.pop('info', 'material_type_already_used_in_material');\n resolve(null);\n } else {\n removeCallback();\n }\n });\n });\n\n };\n\n}\n", "import { Component, Inject } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { MAT_LEGACY_DIALOG_DATA, MatLegacyDialogRef } from '@angular/material/legacy-dialog';\nimport { prepareRequest } from '@proman/utils';\nimport { EditiableParameterInterface, EntityItemFieldConfig } from '@proman/interfaces/object-interfaces';\nimport { AccountCategory, Payment } from '@proman/interfaces/entity-interfaces';\nimport { EntityInterface } from '@proman/services/entity.service';\nimport { Entity } from '@proman/services/entity.service';\n\n@Component({\n selector: 'pm-payment-dialog',\n template: `\n \n\n
\n\n
\n \n\n \n\n \n
\n
\n\n
\n\n @if (payment?.recordCrdt) {\n
\n \n\n \n \n
\n }\n\n @if (payment?.recordDbit) {\n
\n \n\n \n \n
\n }\n\n
\n\n
\n\n
\n @for (parameter of parameters; track $index) {\n \n }\n
\n\n \n `\n})\n\nexport class PaymentDialogComponent {\n payment: Payment;\n form: UntypedFormGroup;\n controls: any = {};\n parameters: EditiableParameterInterface[];\n variant: \"create\" | \"remove\" | \"confirm\" | \"save\" | \"edit\" | \"update\";\n entityInterface: EntityInterface;\n glrEntity: EntityInterface;\n\n constructor(\n @Inject(MAT_LEGACY_DIALOG_DATA) public data: any,\n public dialogRef: MatLegacyDialogRef,\n private Entity: Entity,\n ) {\n\n const validators: any = ['', Validators.required];\n\n const mainField: EntityItemFieldConfig = {\n key: 'name',\n name: 'name',\n type: 'string',\n config: {\n required: true,\n control: new UntypedFormControl(validators),\n }\n };\n\n this.glrEntity = this.Entity.get('general_ledger_record');\n this.payment = Object.assign({}, mainField, this.data.payment);\n this.variant = this.data.variant ?? 'confirm';\n this.entityInterface = this.data.entityInterface\n this.setParameters();\n\n if (this.data.parameters) {\n this.parameters = [].concat(this.parameters, this.data.parameters);\n }\n\n for (const parameter of this.parameters) {\n\n if (this.data.item) parameter.value = this.data.item[parameter.key];\n\n if (parameter.config.control) {\n this.controls[parameter.key] = parameter.config.control;\n }\n\n if (parameter.config.required && !this.controls[parameter.key]) {\n const control = new UntypedFormControl(parameter.value || '', Validators.required);\n this.controls[parameter.key] = control;\n parameter.config.control = control;\n }\n\n if (parameter.value) {\n this.set(parameter.key, parameter.value);\n }\n\n if (parameter.type === 'string') {\n parameter.config = Object.assign({ debounce: 0 }, parameter.config);\n }\n }\n\n this.form = new UntypedFormGroup(this.controls);\n\n }\n\n setParameters = () => {\n this.parameters = [\n {\n key: 'date',\n name: 'date',\n type: 'date',\n config: { hideTime: true },\n value: this.payment.date\n },\n {\n key: 'bankTransaction',\n name: 'bank_transaction',\n type: 'autocomplete',\n config: { entity: 'bank_transaction', searchFields: ['transactionId', 'id'], displayKey: 'transactionId' },\n value: this.payment.bankTransaction\n }\n ];\n }\n\n create() {\n this.confirm().then(() => {\n const data = prepareRequest(this.payment);\n this.dialogRef.close(data);\n });\n }\n\n getCallback(button: any) {\n if (this.form.valid) {\n const data = prepareRequest(this.payment);\n this.dialogRef.close();\n button.callback(data);\n }\n }\n\n getCategoryName = (cat: AccountCategory) => cat ? `${cat.keyName} - ${cat.name}` : '';\n\n set(property: string, value: any) {\n this.payment[property] = value;\n }\n\n updateActive = (active: boolean) => {\n this.glrEntity.update({ id: this.payment.recordDbit.id, active });\n this.glrEntity.update({ id: this.payment.recordCrdt.id, active });\n }\n\n async confirm() {\n await this.entityInterface.update({\n id: this.payment.id,\n sum: this.payment.sum,\n date: this.payment.date,\n bankTransaction: this.payment.bankTransaction?.id\n });\n await this.glrEntity.update({\n id: this.payment.recordCrdt?.id,\n type: this.payment.recordCrdt?.type,\n accountCategory: this.payment.recordCrdt?.accountCategory?.id,\n });\n await this.glrEntity.update({\n id: this.payment.recordDbit?.id,\n type: this.payment.recordDbit?.type,\n accountCategory: this.payment.recordDbit?.accountCategory?.id,\n });\n }\n\n}\n", "import { Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\nimport { MAT_LEGACY_DIALOG_DATA, MatLegacyDialogRef } from '@angular/material/legacy-dialog';\nimport { Entity, EntityNameType } from '@proman/services/entity.service';\nimport { OcrEntityInterface } from '@proman/resources/ocr';\nimport { PromanFile } from '@proman/interfaces/entity-interfaces';\nimport { ImagePathService } from '@proman/services/image-path.service';\nimport { SelectOption } from '@proman/interfaces/object-interfaces';\nimport { FilterService } from '@proman/services/filter.service';\nimport moment from 'moment';\nimport { findByProperty, mapOptionTranslate, roundNumber } from '@proman/utils';\nimport { PurchaseEntityInterface, PurchaseTypes } from '@proman/resources/purchase';\nimport { PromanStateService } from '@frontend/shared/services/proman-state.service';\nimport { Store } from '@ngrx/store';\n\n@Component({\n selector: 'pm-ocr-image-read-dialog',\n template: `\n \n
\n
\n \n
\n \n \n\n\n\n\n\n\n\n
\n
\n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n \n \n \n `,\n styles: [`\n img {\n max-width: 100%;\n }\n\n .ImageContainer {\n position: relative;\n }\n\n .ImageOverlay {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n outline: 2px solid #2196F3;\n }\n\n .ImageMarker {\n position: absolute;\n pointer-events: none;\n }\n\n .ScannedPart {\n position: absolute;\n background: rgba(93, 255, 190, 0.35);\n }\n `]\n})\n\nexport class OcrImageReadDialogComponent implements OnInit {\n @ViewChild('marker') marker: ElementRef;\n @ViewChild('img', { static: true }) img: ElementRef;\n ocrEntity: OcrEntityInterface;\n purchaseEntityInterface: PurchaseEntityInterface;\n ocrEntityInterface: OcrEntityInterface;\n file: PromanFile;\n fileSrc: string;\n isMark: boolean = false;\n startPos: number[];\n endPos: number[];\n size: number[];\n fields: any[];\n fieldOptions: SelectOption[];\n field: string;\n values: Array<{ key: string; type: string; value: any; name: string; alias?: string; entity?: EntityNameType; }> = [];\n ratio: number;\n templates: any = [];\n scannedPositions: Array<{ field: string; x: number; y: number; width: number; height: number }> = [];\n purchaseType: string = 'materials';\n saved: boolean = false;\n purchaseTypeOptions: SelectOption[];\n\n constructor(\n @Inject(MAT_LEGACY_DIALOG_DATA) public data: any,\n private Entity: Entity,\n private ImagePath: ImagePathService,\n private Filter: FilterService,\n private PromanState: PromanStateService,\n private store: Store,\n private dialogRef: MatLegacyDialogRef\n ) {\n this.ocrEntity = this.Entity.get('ocr') as OcrEntityInterface;\n this.purchaseEntityInterface = this.Entity.get('purchase');\n this.purchaseEntityInterface.getPurchaseTypes().then((response) => this.purchaseTypeOptions = response.map((key: any) => mapOptionTranslate(key, this.Filter.translate)));\n this.ocrEntityInterface = this.Entity.get('ocr');\n }\n\n ngOnInit() {\n this.field = 'supplier';\n this.fields = [\n {\n name: 'supplier',\n key: 'supplier',\n type: 'entity',\n entity: 'supplier',\n searchFields: ['name']\n },\n {\n name: 'invoice_number',\n type: 'string',\n key: 'invoiceNumber'\n },\n {\n name: 'invoice_date',\n type: 'date',\n key: 'date'\n },\n {\n name: 'vat',\n key: 'vat',\n type: 'entity',\n entity: 'vat',\n searchFields: ['name', 'percentage']\n },\n {\n name: 'type',\n key: 'type',\n type: 'select'\n },\n {\n name: 'comments',\n type: 'string',\n key: 'comments'\n }\n ];\n this.fieldOptions = this.fields.map((item) => ({ id: item.key, name: this.Filter.translate(item.name) } as unknown as SelectOption));\n this.values = this.fields;\n\n }\n\n loadFile(files: PromanFile[]) {\n this.file = files[0];\n this.fileSrc = this.ImagePath.getFile(this.file, 'ocr');\n\n const img = document.createElement('img');\n img.onload = (event) => {\n const container = document.querySelector('.ImageOverlay');\n console.log('container', container);\n console.log('container.clientWidth', container.clientWidth);\n console.log('img.naturalWidth', img.naturalWidth);\n this.ratio = container.clientWidth / img.naturalWidth;\n console.log('this.ratio', this.ratio);\n\n };\n img.src = this.fileSrc;\n\n img.remove();\n\n this.ocrEntityInterface.recognizeByTemplate({ newId: this.file.newId })\n .then((response: any) => {\n if (response?.data?.id) {\n this.dialogRef.close();\n this.PromanState.to('Purchase', { purchaseId: response?.data?.id });\n }\n });\n\n }\n\n handleMouseDown(event: MouseEvent) {\n this.isMark = true;\n this.startPos = [event.offsetX, event.offsetY];\n console.log('event', event);\n }\n\n handleMouseUp(event: MouseEvent) {\n if (this.isMark) {\n this.endPos = [event.offsetX, event.offsetY];\n this.size = [this.endPos[0] - this.startPos[0], this.endPos[1] - this.startPos[1]];\n\n this.templates[this.field] = {\n field: this.field,\n x: this.getRatio(this.startPos[0]),\n y: this.getRatio(this.startPos[1]),\n width: this.getRatio(this.size[0]),\n height: this.getRatio(this.size[1])\n };\n\n this.scannedPositions = [];\n for (const key in this.templates) {\n this.scannedPositions.push({\n field: this.templates[key].field,\n x: this.startPos[0],\n y: this.startPos[1],\n width: this.size[0],\n height: this.size[1]\n });\n }\n\n this.ocrEntity\n .recognize({\n newId: this.file.newId,\n type: this.field,\n x: this.getRatio(this.startPos[0]),\n y: this.getRatio(this.startPos[1]),\n width: this.getRatio(this.size[0]),\n height: this.getRatio(this.size[1])\n })\n .then((response: string) => {\n if (response && this.field) {\n const field = findByProperty(this.fields, 'key', this.field);\n const type = field.type;\n\n // const currentValueIndex = getIndexByProperty(this.values, 'key', this.field);\n // if (isDefined(currentValueIndex)) {\n // this.values.splice(currentValueIndex, 1);\n // }\n\n if (type === 'string') {\n Object.assign(this.values.find((value) => value.key === field.key), { value: response });\n console.log(this.values);\n // this.values.push({ key: field.key, name: field.name, value: response, type });\n }\n\n if (type === 'date') {\n const date = moment(new Date(response));\n if (date.isValid()) {\n Object.assign(this.values.find((value) => value.key === field.key), { value: date.format() });\n // this.values.push({ key: field.key, name: field.name, value: date.format(), type });\n }\n }\n\n if (type === 'select') {\n const date = moment(new Date(response));\n\n // this.values.push({ key: field.key, name: field.name, value: null, type });\n Object.assign(this.values.find((value) => value.key === field.key), { value: null });\n\n\n }\n\n if (type === 'entity') {\n const request = { search: {} };\n field.searchFields.forEach((searchField: string) => request.search[searchField] = response);\n this.Entity.get(field.entity as EntityNameType)\n .search(request)\n .then((responseOptions: any[]) => {\n if (responseOptions.length) {\n Object.assign(this.values.find((value) => value.key === field.key), { value: responseOptions[0], alias: response });\n // this.values.push({\n // key: field.key,\n // name: field.name,\n // value: responseOptions[0],\n // alias: response,\n // entity: field.entity,\n // type\n // });\n }\n });\n }\n\n }\n\n })\n .catch(() => {});\n\n }\n this.isMark = false;\n }\n\n handleMouseMove(event: MouseEvent) {\n if (this.isMark) {\n this.endPos = [event.offsetX, event.offsetY];\n this.size = [this.endPos[0] - this.startPos[0], this.endPos[1] - this.startPos[1]];\n this.marker.nativeElement.style.display = 'block';\n this.marker.nativeElement.style.background = '#2196F333';\n this.marker.nativeElement.style.left = this.startPos[0] + 'px';\n this.marker.nativeElement.style.top = this.startPos[1] + 'px';\n this.marker.nativeElement.style.width = this.size[0] + 'px';\n this.marker.nativeElement.style.height = this.size[1] + 'px'\n\n } else {\n this.marker.nativeElement.style.display = 'none';\n }\n }\n\n getRatio(value: number): number {\n return roundNumber(value / this.ratio, 0);\n }\n\n setField(field: string) {\n this.field = field;\n }\n\n setValue(valueObject: any, value: any) {\n valueObject.value = value;\n }\n\n save() {\n let supplier = this.values.find((value: any) => value.key === 'supplier');\n if (!supplier) return;\n this.templates.supplierId = supplier.value?.id;\n this.templates.supplierAlias = supplier.alias;\n this.templates.type = this.purchaseType;\n this.templates.newId = this.file.newId;\n this.ocrEntityInterface.saveTemplate(this.templates);\n this.saved = true;\n }\n\n confirm() {\n this.purchaseEntityInterface\n .create({ type: this.purchaseType as PurchaseTypes, supplier: [] as unknown as number })\n .then((response: { data: number }) => {\n const id = response.data;\n const request: { [key: string]: any } = {};\n this.values.forEach((value) => request[value.key] = value.value?.id || value.value);\n request['type'] ??= this.purchaseType;\n this.purchaseEntityInterface.update(Object.assign(request, { id }))\n .then(() => {\n this.purchaseEntityInterface.addAssociation({ id, invoiceFile: [this.file.id] })\n .then(() => {\n this.dialogRef.close();\n this.PromanState.to('Purchase', { purchaseId: id });\n })\n })\n });\n }\n\n}\n"], "mappings": "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", "names": ["MaterialsService", "constructor", "Dialog", "Entity", "PromanState", "Toast", "currentMaterial", "BehaviorSubject", "removeMaterialType", "type", "Promise", "resolve", "removeCallback", "open", "EntityRemoveDialogComponent", "item", "entity", "then", "to", "stock", "get", "search", "id", "response", "count", "pop", "purchaseEntityInterface", "createPurchase", "options", "supplierId", "create", "Object", "assign", "parent", "supplier", "data", "\u0275\u0275inject", "PromanStateService", "ToastService", "factory", "\u0275fac", "providedIn", "\u0275\u0275elementStart", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r4", "ctx_r3", "\u0275\u0275nextContext", "\u0275\u0275resetView", "payment", "recordCrdt", "type", "\u0275\u0275elementEnd", "ctx_r5", "accountCategory", "\u0275\u0275advance", "\u0275\u0275property", "ctx_r0", "\u0275\u0275pureFunction2", "_c1", "\u0275\u0275pureFunction0", "_c0", "getCategoryName", "_r7", "ctx_r6", "recordDbit", "ctx_r8", "ctx_r1", "parameter_r9", "_r13", "$implicit", "ctx_r12", "set", "key", "config", "disabled", "PaymentDialogComponent", "constructor", "data", "dialogRef", "Entity", "controls", "setParameters", "parameters", "name", "hideTime", "value", "date", "entity", "searchFields", "displayKey", "bankTransaction", "cat", "keyName", "updateActive", "active", "glrEntity", "update", "id", "validators", "Validators", "required", "mainField", "control", "UntypedFormControl", "get", "Object", "assign", "variant", "entityInterface", "concat", "parameter", "item", "debounce", "form", "UntypedFormGroup", "create", "confirm", "then", "prepareRequest", "close", "getCallback", "button", "valid", "callback", "property", "__async", "sum", "\u0275\u0275directiveInject", "MAT_LEGACY_DIALOG_DATA", "MatLegacyDialogRef", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275element", "\u0275\u0275template", "PaymentDialogComponent_Conditional_8_Template", "PaymentDialogComponent_Conditional_9_Template", "\u0275\u0275repeaterCreate", "PaymentDialogComponent_For_12_Template", "\u0275\u0275repeaterTrackByIndex", "_c2", "_c3", "\u0275\u0275conditional", "\u0275\u0275repeater", "import_moment", "\u0275\u0275elementStart", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r3", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "loadFile", "\u0275\u0275elementEnd", "\u0275\u0275property", "ctx_r0", "file", "_r15", "item_r8", "$implicit", "ctx_r13", "setField", "key", "ctx_r16", "setValue", "\u0275\u0275advance", "ctx_r10", "field", "value", "\u0275\u0275pureFunction1", "_c2", "name", "_r21", "ctx_r19", "ctx_r22", "ctx_r11", "_c3", "_r28", "ctx_r26", "\u0275\u0275pureFunction3", "_c4", "ctx_r25", "fields", "$index_r9", "entity", "searchFields", "_r32", "ctx_r30", "\u0275\u0275template", "OcrImageReadDialogComponent_ng_container_4_div_3_div_4_pro_autoc_2_Template", "ctx_r12", "type", "\u0275\u0275elementContainerStart", "OcrImageReadDialogComponent_ng_container_4_div_3_div_2_Template", "OcrImageReadDialogComponent_ng_container_4_div_3_div_3_Template", "OcrImageReadDialogComponent_ng_container_4_div_3_div_4_Template", "\u0275\u0275elementContainerEnd", "\u0275\u0275element", "ctx_r5", "fileSrc", "\u0275\u0275sanitizeUrl", "\u0275\u0275pureFunction4", "_c5", "scanned_r35", "width", "height", "x", "y", "_r37", "ctx_r36", "purchaseType", "OcrImageReadDialogComponent_ng_container_4_div_3_Template", "OcrImageReadDialogComponent_ng_container_4_img_5_Template", "ctx_r38", "handleMouseDown", "ctx_r39", "handleMouseUp", "ctx_r40", "handleMouseMove", "OcrImageReadDialogComponent_ng_container_4_div_9_Template", "ctx_r1", "\u0275\u0275pureFunction0", "_c6", "purchaseTypeOptions", "values", "scannedPositions", "OcrImageReadDialogComponent", "constructor", "data", "Entity", "ImagePath", "Filter", "PromanState", "store", "dialogRef", "isMark", "templates", "saved", "ocrEntity", "get", "purchaseEntityInterface", "getPurchaseTypes", "then", "response", "map", "mapOptionTranslate", "translate", "ocrEntityInterface", "ngOnInit", "fieldOptions", "item", "id", "files", "getFile", "img", "document", "createElement", "onload", "event", "container", "querySelector", "console", "log", "clientWidth", "naturalWidth", "ratio", "src", "remove", "recognizeByTemplate", "newId", "close", "to", "purchaseId", "startPos", "offsetX", "offsetY", "endPos", "size", "getRatio", "push", "recognize", "findByProperty", "Object", "assign", "find", "date", "moment", "Date", "isValid", "format", "request", "search", "forEach", "searchField", "responseOptions", "length", "alias", "catch", "marker", "nativeElement", "style", "display", "background", "left", "top", "roundNumber", "valueObject", "save", "supplier", "supplierId", "supplierAlias", "saveTemplate", "confirm", "create", "update", "addAssociation", "invoiceFile", "\u0275\u0275directiveInject", "MAT_LEGACY_DIALOG_DATA", "ImagePathService", "FilterService", "PromanStateService", "Store", "MatLegacyDialogRef", "selectors", "viewQuery", "rf", "ctx", "OcrImageReadDialogComponent_pm_upload_3_Template", "OcrImageReadDialogComponent_ng_container_4_Template"] }