{"version":3,"file":"CZXKZWAp.js","sources":["../../../../ClientWebAppSrc/parts/organisations/organisationsConstantsProvider.ts","../../../../ClientWebAppSrc/parts/organisations/organisations.referential.service.ts"],"sourcesContent":["export default class OrganisationsConstantsProvider {\r\n static OrganisationTypeName = \"ApiWebApp.v1.Organisations.Api.OrganisationModel\";\r\n static MemberTypeName = \"ApiWebApp.v1.Organisations.Api.MemberModel\";\r\n}\r\n","import AddressService from \"~/parts/core/common/address/address.referential.service\";\r\nimport { type Address } from \"~/parts/core/common/address\"\r\nimport ReferentialsService from \"~/parts/referentials/referentialsService\";\r\nimport EService from \"~/parts/core/services/eService\";\r\nimport { type ReferentialInfo } from \"~/parts/referentials\";\r\nimport { InputType, type ColumnInfo } from \"~/parts/core\";\r\nimport {\r\n type Contribution, type Loan, type Member,\r\n type Organisation, type OrganisationDetails,\r\n type OrganisationMember,\r\n type Refund\r\n} from \"~/parts/organisations\";\r\nimport FileService from \"~/parts/medias/fileService\";\r\nimport { type FileModel } from \"~/parts/medias\";\r\nimport OrganisationsConstantsProvider from \"~/parts/organisations/organisationsConstantsProvider\";\r\nimport { email, required } from '@vuelidate/validators';\r\nimport { userItemText } from \"~~/ClientWebAppSrc/parts/users/users.referential.service\";\r\nimport UsersConstantsProvider from \"~/parts/users/usersConstantsProvider\";\r\n\r\nexport function organisationItemText(item: Organisation) {\r\n const name = `${item.code || \"\"} ${item.name || \"\"}`;\r\n return name.trim() == \"\" && item.id ? item.id.toString() : name;\r\n}\r\n\r\nclass OrganisationsService extends EService {\r\n\r\n typeName = OrganisationsConstantsProvider.OrganisationTypeName;\r\n referentialsService: ReferentialsService;\r\n fileService: FileService;\r\n\r\n constructor(useApiKey: boolean = false) {\r\n super(useApiKey);\r\n this.referentialsService = new ReferentialsService();\r\n this.fileService = new FileService();\r\n }\r\n\r\n static getReferentialsInfos(): Array {\r\n return [\r\n {\r\n typeName: OrganisationsConstantsProvider.OrganisationTypeName,\r\n metaData: [\r\n { text: \"#\", value: \"id\", isKey: true },\r\n { textKey: \"code\", value: \"code\", inputOption: { type: InputType.Text } },\r\n { textKey: \"name\", value: \"name\", inputOption: { type: InputType.Text } },\r\n {\r\n textKey: \"address\", value: \"addressId\", inputOption: {\r\n type: InputType.Dynamic, lookup: {\r\n typeName: AddressService.AddressTypeName,\r\n valueField: \"id\",\r\n textField: AddressService.addressListItemText\r\n },\r\n autoFilledOnCreation: \"name\"\r\n }\r\n },\r\n {\r\n textKey: \"visual\", value: \"visual\", inputOption: {\r\n type: InputType.File, lookup: {\r\n valueField: \"path\"\r\n },\r\n accept: \"image/*\"\r\n }\r\n }\r\n ],\r\n helpers: {\r\n getSearchablePropertiesValues: (item: Organisation, lookups: { [key: string]: Array
}) => {\r\n const searchablePropertiesValues = [item.id, item.code, item.name];\r\n const address = lookups.addresses?.find(a => item.addressId == a.id);\r\n if (!!address)\r\n searchablePropertiesValues.push(...[\r\n address.number,\r\n address.numberRepeterIndex,\r\n address.type,\r\n address.name,\r\n address.complements,\r\n address.city,\r\n address.zipCode\r\n ]);\r\n return searchablePropertiesValues;\r\n }\r\n }\r\n }\r\n ];\r\n }\r\n\r\n getMemberColumnsInfo() {\r\n const columns: Array = [\r\n { text: \"#\", value: \"id\", isKey: true, align: \"start\" },\r\n {\r\n text: \"User\", value: \"personId\",\r\n inputOption: {\r\n type: InputType.Dynamic,\r\n fastCreation: {\r\n activated: true,\r\n rules: { email, required }\r\n },\r\n autoFilledOnCreation: \"email\",\r\n lookup: {\r\n typeName: UsersConstantsProvider.UserTypeName,\r\n valueField: \"id\",\r\n textField: userItemText\r\n }\r\n }\r\n },\r\n {\r\n text: \"Organisation\", value: \"organisationId\",\r\n inputOption: {\r\n type: InputType.Dynamic,\r\n allowInlineCreation: false,\r\n rules: { required },\r\n lookup: {\r\n typeName: OrganisationsConstantsProvider.OrganisationTypeName,\r\n valueField: \"id\",\r\n textField: organisationItemText\r\n }\r\n }\r\n }\r\n ];\r\n return columns;\r\n }\r\n\r\n async getAllAsync(forceReload = false) {\r\n const organisations = await this.referentialsService.getAllAsync(this.typeName, forceReload);\r\n return organisations;\r\n }\r\n\r\n async getAllMembersAsync(forceReload = false) {\r\n const members = await this.referentialsService.getAllAsync(OrganisationsConstantsProvider.MemberTypeName, forceReload);\r\n return members;\r\n }\r\n\r\n async saveAsync(organisation: Organisation) {\r\n const savedOrganisation = await this.referentialsService.saveAsync(this.typeName, organisation);\r\n return savedOrganisation;\r\n }\r\n\r\n async addMemberAsync(organisationMember: OrganisationMember) {\r\n await this.http.post(`organisations/addmember`, organisationMember);\r\n }\r\n\r\n async getOrganisationsMembersAsync(organisationsIds: Array | null = null) {\r\n const params = !!organisationsIds && !!organisationsIds.length\r\n ? { params: { organisationsIds } }\r\n : undefined;\r\n const members = await this.http.get>(`organisations/organisationsmembers`, params);\r\n members?.sort((a, b) =>\r\n parseInt(`${a.memberInfo.id}${a.organisationId}`) >= parseInt(`${b.memberInfo.id}${b.organisationId}`)\r\n ? 1 : -1);\r\n const membersList = members?.map((m, i) => ({ ...m, id: i + 1 } as OrganisationMember));\r\n return membersList ?? null;\r\n }\r\n\r\n async removeMemberFromOrganisationAsync(memberOrganisation: OrganisationMember) {\r\n await this.http.remove(`organisations/removemember`, memberOrganisation);\r\n }\r\n\r\n async getAsync(id: number) {\r\n const organisation = await this.referentialsService.getAsync(this.typeName, id);\r\n return organisation;\r\n }\r\n\r\n async getUserOrganisationsAsync() {\r\n const organisations = await this.http.get>(`organisations/person/`);\r\n return organisations;\r\n }\r\n\r\n async getDetailsAsync(organisationId: number) {\r\n const organisationDetails = await this.http.get(`organisations/${organisationId}/details`);\r\n return organisationDetails;\r\n }\r\n\r\n async getContributionsAsync(organisationId: number, memberId: number | null) {\r\n const path = `organisations/${organisationId}/member/${memberId ? memberId + \"/\" : \"\"}contributions`;\r\n const response = await this.http.get>(path);\r\n const contributions = response?.map(c => {\r\n c.date = new Date(c.date);\r\n return c;\r\n });\r\n return contributions?.sortBy(c => (c.date as Date).getDate(), \"desc\") ?? [];\r\n }\r\n\r\n async getLoansAsync(organisationsId: number, memberId: number | null = null) {\r\n const path = `organisations/${organisationsId}/member/${!!memberId ? memberId + \"/\" : \"\"}loans`;\r\n const response = await this.http.get>(path);\r\n const loans = response?.map(l => {\r\n l.date = new Date(l.date);\r\n l.refunds?.map(r => {\r\n r.date = new Date(r.date);\r\n return r;\r\n });\r\n const refundAmount = l.refunds?.reduce((p, r) => r.state == 1 ? p + r.amount : p, 0);\r\n l.refunded = !!l.refunds?.length && !l.refunds?.some(r => r.state == 0) && refundAmount == l.amount;\r\n l.refunds = l.refunds?.sortBy(r => (r.date as Date).getDate(), \"desc\");\r\n return l;\r\n });\r\n return loans?.sortBy(l => (l.date as Date).getDate(), \"desc\") ?? [];\r\n }\r\n\r\n async addContributionAsync(organisationId: number, contribution: Contribution, memberId: number | null = null) {\r\n const path = `organisations/${organisationId}/member/${!!memberId ? memberId + \"/\" : \"\"}contribution`;\r\n const response = await this.http.post(path, contribution);\r\n return response;\r\n }\r\n\r\n async borrowAsync(organisationsId: number, loan: Loan, memberId: number | null = null) {\r\n const path = `organisations/${organisationsId}/member/${!!memberId ? memberId + \"/\" : \"\"}loan`;\r\n const response = await this.http.post(path, loan);\r\n return response;\r\n }\r\n\r\n async refundAsync(loanId: number, payback: Refund) {\r\n const response = await this.http.post(`organisations/loans/${loanId}/refund`, payback);\r\n return response;\r\n }\r\n\r\n async validateContributionAsync(contribId: number) {\r\n const response = await this.http.put(`organisations/member/contribution/${contribId}/validate`);\r\n return response;\r\n }\r\n\r\n async cancelContributionAsync(contribId: number) {\r\n const response = await this.http.put(`organisations/member/contribution/${contribId}/cancel`);\r\n return response;\r\n }\r\n\r\n async validateLoanAsync(loanid: number) {\r\n const response = await this.http.put(`organisations/member/loan/${loanid}/validate`);\r\n return response;\r\n }\r\n\r\n async cancelLoanAsync(loanid: number) {\r\n const response = await this.http.put(`organisations/member/loan/${loanid}/cancel`);\r\n return response;\r\n }\r\n\r\n async validateRefundAsync(refundId: number) {\r\n const response = await this.http.put(`organisations/member/refund/${refundId}/validate`);\r\n return response;\r\n }\r\n\r\n async cancelRefundAsync(refundId: number) {\r\n const response = await this.http.put(`organisations/member/refund/${refundId}/cancel`);\r\n return response;\r\n }\r\n\r\n async getMemberByUserIdAsync(organisationId: number, userId: number) {\r\n const response = await this.http.get(`organisations/${organisationId}/member/get?userId=${userId}`);\r\n return response || null;\r\n }\r\n\r\n async getOrganisationVisualAsync(orga: Organisation) {\r\n return await this.fileService.get(orga.visualId!);\r\n }\r\n\r\n async getManyVisualsAsync(orgas: Array) {\r\n const visualsIds = orgas.reduce((previous: Array, o) => {\r\n if (!!o.visualId && !previous.includes(o.visualId)) {\r\n previous.push(o.visualId);\r\n }\r\n return previous;\r\n }, []);\r\n return await this.fileService.getMany(visualsIds);\r\n }\r\n\r\n async saveOrganisationVisual(file: File) {\r\n return this.fileService.uploadFile(file, \"organisations/visual\");\r\n }\r\n}\r\n\r\nexport default OrganisationsService;\r\n"],"names":["OrganisationsConstantsProvider","__publicField","organisationItemText","item","name","OrganisationsService","EService","useApiKey","ReferentialsService","FileService","InputType","AddressService","lookups","searchablePropertiesValues","address","_a","a","email","required","UsersConstantsProvider","userItemText","forceReload","organisation","organisationMember","organisationsIds","params","members","b","m","i","memberOrganisation","id","organisationId","memberId","path","response","contributions","c","organisationsId","loans","l","r","refundAmount","_b","p","_c","_d","_e","contribution","loan","loanId","payback","contribId","loanid","refundId","userId","orga","orgas","visualsIds","previous","o","file"],"mappings":"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"}