{ "version": 3, "sources": ["libs/proman/src/lib/store/currency/currency.effects.ts", "libs/proman/src/lib/store/proman-store.module.ts", "apps/frontend/src/app/accounting/services/invoices.service.ts", "apps/frontend/src/app/products/services/services.service.ts"], "sourcesContent": ["\nimport { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { tap } from '@proman/rxjs-common';\nimport { Currency } from '../../interfaces/entity-interfaces';\nimport { CurrencyActions, setCurrency } from './currency.actions';\nimport { Store } from '@ngrx/store';\nimport { Entity } from '../../services/entity.service';\n@Injectable()\nexport class CurrencyEffects {\n\n loadCurrencies$ = createEffect(() => this.actions$\n .pipe(\n ofType(CurrencyActions.LoadCurrency),\n tap(() => {\n this.Entity.get('currency')\n .search()\n .then((payload: Currency[]) => {\n this.store.dispatch(setCurrency({ payload }));\n });\n })\n ),\n { dispatch: false }\n );\n\n constructor(\n private Entity: Entity,\n private store: Store,\n private actions$: Actions,\n ) {\n\n }\n\n}\n", "import { NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\nimport { reducer as currUserReducer, CurrUserEffects, currUserKey } from './curr-user';\nimport { reducer as currencyReducer, currencyKey } from './currency';\nimport { reducer as docsIdReducer, docsIdKey } from './docs-id';\nimport { reducer as systemOptionsReducer, SystemOptionsEffects, systemOptionsKey } from './system-options';\nimport { CurrencyEffects } from './currency/currency.effects';\nimport { reducer as utilsReducer, utilsKey } from './utils';\nimport { UtilsEffects } from './utils/utils.effects';\n\n@NgModule({\n imports: [\n StoreModule.forFeature(currUserKey, currUserReducer),\n StoreModule.forFeature(currencyKey, currencyReducer),\n StoreModule.forFeature(docsIdKey, docsIdReducer),\n StoreModule.forFeature(systemOptionsKey, systemOptionsReducer),\n StoreModule.forFeature(utilsKey, utilsReducer),\n EffectsModule.forFeature([CurrUserEffects]),\n EffectsModule.forFeature([CurrencyEffects]),\n EffectsModule.forFeature([SystemOptionsEffects]),\n // EffectsModule.forFeature([UtilsEffects]),\n ]\n})\n\nexport class PromanStoreModule {}\n", "import { Injectable } from '@angular/core';\nimport { FilterService } from '@proman/services/filter.service';\nimport { CurrUser, TableField } from '@proman/interfaces/object-interfaces';\nimport { Invoice, InvoiceRecord, Order } from '@proman/interfaces/entity-interfaces';\nimport { LocalStorageService } from '@proman/services/local-storage.service';\nimport { roundNumber, safeMap } from '@proman/utils';\nimport { Money } from '@proman/interfaces/common.interface';\nimport moment from 'moment';\nimport { Store } from '@ngrx/store';\nimport { getCurrUser } from '@proman/store/curr-user';\n\nexport const INVOICE_DIALOG_WIDTH: string = '1200px';\n\n@Injectable()\nexport class InvoicesService {\n currUser: CurrUser;\n\n constructor(\n private Filter: FilterService,\n private LocalStorage: LocalStorageService,\n private store: Store,\n ) {\n this.store.select(getCurrUser).subscribe((val) => this.currUser = val);\n }\n\n translateIsPaid = (invoice: Invoice) => {\n return this.Filter.translate(invoice.isPaid ? 'yes' : 'no');\n };\n\n translateIsProforma = (invoice: Invoice) => {\n return this.Filter.translate(invoice.type);\n };\n\n translateIsOverdue = (invoice: Invoice) => {\n return this.Filter.translate(invoice.isOverdue ? 'yes' : 'no');\n };\n\n translateIsInvalidated = (invoice: Invoice) => {\n return this.Filter.translate(invoice.isInvalidated ? 'yes' : 'no');\n };\n\n getRegion = (invoice: Invoice) => {\n return invoice?.customer?.country?.regions? safeMap(invoice.customer.country.regions, 'name').join(', ') : '';\n };\n\n getDates = (row: Invoice) => {\n return row.payments.length > 0 ?\n row.payments.map((payment) => this.Filter.date(payment.date)).join(', ') :\n this.Filter.date(row.paidAt);\n }\n\n getProducts = (invoice: Invoice) => {\n return invoice.records.map((record) => record.name).join(', ');\n };\n\n localStorageValue = (key: string) => {\n return this.LocalStorage.getObject('uiPrefs.ss.entityTable')['invoices']['fields'].filter((e: any) => e.key === key).length > 0;\n }\n\n getFields = (): TableField[] => {\n if (this.currUser.bookkeepingUser) {\n return [\n {\n name: 'date',\n key: 'date',\n formatter: 'dateTime',\n showTime: false,\n },\n {\n name: 'invoice_number',\n key: 'number'\n },\n {\n name: 'customer',\n key: 'customer.alias'\n },\n {\n name: 'sum',\n key: 'sumLocalCurrency',\n stats: ['sum'],\n formatter: 'money',\n },\n {\n name: 'vat_sum',\n key: 'sumLocalCurrencyVat',\n formatter: 'money',\n stats: ['sum'],\n },\n {\n name: 'remnant',\n key: 'remnant',\n getValue: this.unpaidDifference,\n stats: ['sum'],\n formatter: 'money'\n },\n {\n name: 'proforma',\n key: 'type',\n getValue: this.translateIsProforma,\n filter: {\n type: 'dropdown',\n options: [\n {\n id: 'proforma',\n name: this.Filter.translate('proforma')\n },\n {\n id: 'invoice',\n name: this.Filter.translate('invoice')\n },\n {\n id: 'draft',\n name: this.Filter.translate('draft')\n }\n ],\n key: 'id',\n value: 'invoice',\n userValueExpiry: 1000 * 60 * 60\n }\n },\n {\n name: 'created_by',\n key: 'createdBy.name',\n },\n {\n name: 'late_interest',\n key: 'lateInterest',\n filter: null,\n sort: null,\n formatter: 'money',\n stats: ['sum'],\n getValue: (row: Invoice) => {\n if (row.customer.lateInterestPercentage) {\n const deadline = moment(row.deadline);\n const today = moment();\n const amount = +row.sumWithVat.amount * (+row.customer.lateInterestPercentage / 100) * today.diff(deadline, 'days');\n return { currency: row.sumWithVat.currency, amount};\n } else {\n return { currency: row.sumWithVat.currency, amount: 0 };\n }\n }\n }\n ];\n }\n\n return [\n {\n name: 'date',\n key: 'date',\n formatter: 'dateTime',\n showTime: false,\n },\n {\n name: 'payment_deadline',\n key: 'deadline',\n formatter: 'dateTime',\n hidden: true\n },\n {\n name: 'paid_at',\n key: 'paidAt',\n formatter: 'dateTime',\n hidden: true\n },\n {\n name: 'payments',\n key: 'payments',\n formatter: 'dateTime',\n getValue: this.getDates,\n hidden: true\n },\n {\n name: 'is_paid',\n key: 'isPaid',\n getValue: this.translateIsPaid,\n filter: {\n type: 'dropdown',\n options: [\n {\n id: true,\n name: this.Filter.translate('yes')\n },\n {\n id: false,\n name: this.Filter.translate('no')\n }\n ],\n key: 'id'\n },\n hidden: true\n },\n {\n name: 'invoice_number',\n key: 'number'\n },\n {\n name: 'id',\n key: 'id',\n hidden: true,\n },\n {\n name: 'customer_name',\n key: 'customer.name',\n hidden: true,\n },\n {\n name: 'customer_registration_code',\n key: 'customer.registrationCode',\n hidden: true,\n },\n {\n name: 'customer_vat_code',\n key: 'customer.vatCode',\n hidden: true,\n },\n {\n name: 'customer',\n key: 'customer.alias'\n },\n {\n name: 'region',\n key: 'customer.country.regions',\n getValue: this.getRegion,\n sort: false,\n filter: {\n type: 'autocomplete',\n entity: 'region'\n },\n extraJoins: [\n 'customer.country',\n 'customer.country.regions'\n ],\n hidden: true\n },\n {\n name: 'country',\n key: 'customer.country.name',\n extraJoins: ['customer.country'],\n hidden: true,\n },\n {\n name: 'order_ids',\n key: 'relatedOrders',\n getValue: (row: Invoice) => [...new Set(row.relatedOrders || [])].join(','),\n filter: {\n type: 'search',\n keys: ['records.order.name', 'records.order.id'],\n },\n hidden: true,\n },\n {\n name: 'order_names',\n key: 'records.order.name',\n getValue: (row: Invoice) => {\n const orders = row.records.filter((record) => !!record.order).map((record) => record.order);\n const orderMap: { [key: number]: Order } = orders.reduce((a, b) => {a[b.id] = b; return a; }, {});\n return Object.keys(orderMap).map((id) => orderMap[id].name).join(', ');\n },\n filter: {\n type: 'search',\n keys: ['records.order.name'],\n },\n extraJoins: ['records', 'records.order'],\n },\n {\n name: 'customer_number',\n key: 'records.order.customerNumber',\n getValue: (row: Invoice) => {\n const orders = row.records.filter((record) => !!record.order).map((record) => record.order);\n const orderMap: { [key: number]: Order } = orders.reduce((a, b) => {a[b.id] = b; return a; }, {});\n return Object.keys(orderMap).map((id) => orderMap[id].customerNumber).join(', ');\n },\n extraJoins: ['records', 'records.order'],\n hidden: true\n },\n {\n key: 'records.order.type.name',\n name: 'order_types',\n getValue: (row: Invoice) => {\n const orders = row.records.filter((record) => !!record.order).map((record) => record.order);\n const orderMap: { [key: number]: Order } = orders.reduce((a, b) => {a[b.id] = b; return a; }, {});\n return Object.keys(orderMap).map((id) => orderMap[id].type?.name).join(', ');\n },\n extraJoins: ['records', 'records.order', 'records.order.type'],\n hidden: true,\n },\n {\n name: 'products',\n key: 'records.name',\n getValue: this.getProducts,\n extraJoins: ['records'],\n hidden: true,\n },\n {\n name: 'quantity',\n key: 'quantity',\n stats: ['sum'],\n formatter: 'numeric',\n hidden: true\n },\n {\n name: 'sum',\n key: 'sumLocalCurrency',\n stats: ['sum'],\n formatter: 'money',\n },\n {\n name: 'vat_sum',\n key: 'sumLocalCurrencyVat',\n formatter: 'money',\n stats: ['sum'],\n },\n {\n name: 'discount',\n key: 'discount',\n formatter: 'money',\n stats: ['sum'],\n },\n {\n name: 'transport_price',\n key: 'transportPrice',\n formatter: 'money',\n stats: ['sum'],\n },\n {\n name: 'sum_local_currency_with_vat',\n key: 'sumLocalCurrencyWithVat',\n stats: ['sum'],\n formatter: 'money',\n },\n {\n name: 'sum_in_foreign_currency',\n key: 'sumWithVat',\n stats: ['sum'],\n formatter: 'money',\n },\n {\n name: 'commission',\n key: 'order.commission',\n filter: null,\n getValue: this.getCommission,\n formatter: 'money',\n formatterConfig: 2,\n stats: ['sum'],\n extraJoins: ['records', 'records.order'],\n },\n {\n name: 'paid_amount',\n key: 'paidAmount',\n filter: null,\n stats: ['sum'],\n sort: false,\n getValue: (row: Invoice) => ({ amount: row.payments.reduce((i, a) => i + +a.sum.amount, 0), currency: row.sumWithVat.currency }),\n formatter: 'money',\n },\n {\n name: 'remnant',\n key: 'remnant',\n getValue: this.unpaidDifference,\n stats: ['sum'],\n formatter: 'money'\n },\n {\n name: 'proforma',\n key: 'type',\n getValue: this.translateIsProforma,\n filter: {\n type: 'dropdown',\n options: [\n {\n id: 'proforma',\n name: this.Filter.translate('proforma')\n },\n {\n id: 'invoice',\n name: this.Filter.translate('invoice')\n },\n {\n id: 'draft',\n name: this.Filter.translate('draft')\n }\n ],\n key: 'id',\n value: 'invoice',\n userValueExpiry: 1000 * 60 * 60\n }\n },\n {\n name: 'is_invalidated',\n key: 'isInvalidated',\n getValue: this.translateIsInvalidated,\n filter: {\n type: 'dropdown',\n options: [\n {\n id: true,\n name: this.Filter.translate('yes')\n },\n {\n id: false,\n name: this.Filter.translate('no')\n }\n ],\n value: false,\n userValueExpiry: 1000 * 60 * 60,\n key: 'id'\n }\n },\n {\n name: 'is_overdue',\n key: 'isOverdue',\n getValue: this.translateIsOverdue,\n filter: {\n type: 'dropdown',\n options: [\n {\n id: true,\n name: this.Filter.translate('yes')\n },\n {\n id: false,\n name: this.Filter.translate('no')\n }\n ],\n key: 'id'\n },\n hidden: true\n },\n {\n name: 'created_by',\n key: 'createdBy.name',\n },\n {\n name: 'late_interest',\n key: 'lateInterest',\n filter: null,\n sort: null,\n formatter: 'money',\n stats: ['sum'],\n getValue: (row: Invoice) => {\n if (row.customer.lateInterestPercentage) {\n const deadline = moment(row.deadline);\n const today = moment();\n const amount = +row.sumWithVat.amount * (+row.customer.lateInterestPercentage / 100) * today.diff(deadline, 'days');\n return { currency: row.sumWithVat.currency, amount};\n } else {\n return { currency: row.sumWithVat.currency, amount: 0 };\n }\n }\n }\n ];\n };\n\n getCommission = (invoice: Invoice): Money => {\n let commission = 0;\n invoice.records?.forEach((record: InvoiceRecord) => {\n if (record.order) {\n const sum = +record.sum.amount * (1 - (record.order?.customerDiscountPercent ?? 0) / 100);\n commission += roundNumber(sum * (record.order?.agentCommissionPercent ?? 0) / 100);\n }\n })\n return {\n amount: commission.toString(),\n currency: invoice.sum.currency\n }\n }\n unpaidDifference = (invoice: Invoice) => {\n return {\n amount: +invoice.sumLocalCurrencyWithVat.amount - +this.paidSum(invoice).amount,\n currency: invoice.sumLocalCurrencyWithVat.currency\n }\n }\n\n paidSum = (invoice: Invoice) => {\n return Object.assign({}, {\n 'amount': invoice.payments?.reduce((a, b) => a + (+b.sum.amount / +invoice.ratioOnCreate), 0) ?? 0,\n 'currency': invoice.sumLocalCurrencyWithVat.currency\n })\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { Entity } from '@proman/services/entity.service';\nimport { resourcesConfig } from '@proman/resources';\nimport { TableField } from '@proman/interfaces/object-interfaces';\nimport { ProductEntityInterface } from '@proman/resources/product';\n\n@Injectable()\nexport class ServicesService {\n productEntity: any;\n getExtraParameters = resourcesConfig['product'].params.extraParameters;\n\n constructor(\n private Entity: Entity,\n ) {\n this.productEntity = this.Entity.get('product');\n }\n getEntity = (): ProductEntityInterface => {\n return this.productEntity;\n };\n\n getFields = (): TableField[] => {\n return [\n {\n name: 'created_at',\n key: 'createdAt',\n formatter: 'dateTime'\n },\n {\n name: 'ID',\n key: 'id'\n },\n {\n name: 'name',\n key: 'name'\n },\n {\n name: 'cost',\n key: 'cost',\n formatter: 'money',\n },\n {\n name: 'price',\n key: 'price',\n formatter: 'money',\n },\n {\n name: 'purchase',\n key: 'purchase.id',\n state: {\n name: 'purchase',\n key: 'purchase.id',\n id: 'purchase.id'\n }\n },\n {\n name: 'status',\n key: 'status'\n },\n {\n name: 'category',\n key: 'purchase.category.name',\n }\n ];\n };\n\n}\n"], "mappings": "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", "names": ["CurrencyEffects", "constructor", "Entity", "store", "actions$", "loadCurrencies$", "createEffect", "pipe", "ofType", "CurrencyActions", "LoadCurrency", "tap", "get", "search", "then", "payload", "dispatch", "setCurrency", "\u0275\u0275inject", "Store", "Actions", "factory", "\u0275fac", "PromanStoreModule", "StoreModule", "forFeature", "currUserKey", "currUserReducer", "currencyKey", "currencyReducer", "docsIdKey", "docsIdReducer", "systemOptionsKey", "systemOptionsReducer", "utilsKey", "utilsReducer", "EffectsModule", "CurrUserEffects", "CurrencyEffects", "SystemOptionsEffects", "import_moment", "INVOICE_DIALOG_WIDTH", "InvoicesService", "constructor", "Filter", "LocalStorage", "store", "translateIsPaid", "invoice", "translate", "isPaid", "translateIsProforma", "type", "translateIsOverdue", "isOverdue", "translateIsInvalidated", "isInvalidated", "getRegion", "customer", "country", "regions", "safeMap", "join", "getDates", "row", "payments", "length", "map", "payment", "date", "paidAt", "getProducts", "records", "record", "name", "localStorageValue", "key", "getObject", "filter", "e", "getFields", "currUser", "bookkeepingUser", "formatter", "showTime", "stats", "getValue", "unpaidDifference", "options", "id", "value", "userValueExpiry", "sort", "lateInterestPercentage", "deadline", "moment", "today", "amount", "sumWithVat", "diff", "currency", "hidden", "entity", "extraJoins", "Set", "relatedOrders", "keys", "orderMap", "order", "reduce", "a", "b", "Object", "customerNumber", "getCommission", "formatterConfig", "i", "sum", "commission", "forEach", "customerDiscountPercent", "roundNumber", "agentCommissionPercent", "toString", "sumLocalCurrencyWithVat", "paidSum", "assign", "ratioOnCreate", "select", "getCurrUser", "subscribe", "val", "\u0275\u0275inject", "FilterService", "LocalStorageService", "Store", "factory", "\u0275fac", "ServicesService", "constructor", "Entity", "getExtraParameters", "resourcesConfig", "params", "extraParameters", "getEntity", "productEntity", "getFields", "name", "key", "formatter", "state", "id", "get", "\u0275\u0275inject", "factory", "\u0275fac"] }