@accounter/server 0.0.8-alpha-20251029235231-f14290dbb5dedec255de3cef292d3b4c5c71298e → 0.0.8-alpha-20251030162303-87017b2c2addf0e61478260aac336b9343f15c98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +5 -5
  2. package/dist/green-invoice-graphql/src/mesh-artifacts/index.d.ts +1 -1
  3. package/dist/server/src/__generated__/types.d.ts +19 -0
  4. package/dist/server/src/__generated__/types.js.map +1 -1
  5. package/dist/server/src/modules/contracts/__generated__/contracts.types.d.ts +29 -0
  6. package/dist/server/src/modules/contracts/__generated__/types.d.ts +3 -1
  7. package/dist/server/src/modules/contracts/__generated__/types.js.map +1 -1
  8. package/dist/server/src/modules/contracts/providers/contracts.provider.d.ts +5 -1
  9. package/dist/server/src/modules/contracts/providers/contracts.provider.js +31 -7
  10. package/dist/server/src/modules/contracts/providers/contracts.provider.js.map +1 -1
  11. package/dist/server/src/modules/contracts/resolvers/contracts.resolver.js +27 -0
  12. package/dist/server/src/modules/contracts/resolvers/contracts.resolver.js.map +1 -1
  13. package/dist/server/src/modules/contracts/typeDefs/contracts.graphql.js +2 -0
  14. package/dist/server/src/modules/contracts/typeDefs/contracts.graphql.js.map +1 -1
  15. package/dist/server/src/modules/green-invoice/__generated__/types.d.ts +2 -1
  16. package/dist/server/src/modules/green-invoice/__generated__/types.js.map +1 -1
  17. package/dist/server/src/modules/green-invoice/helpers/contract-to-draft.helper.d.ts +5 -0
  18. package/dist/server/src/modules/green-invoice/helpers/contract-to-draft.helper.js +60 -0
  19. package/dist/server/src/modules/green-invoice/helpers/contract-to-draft.helper.js.map +1 -0
  20. package/dist/server/src/modules/green-invoice/resolvers/green-invoice.resolvers.js +10 -54
  21. package/dist/server/src/modules/green-invoice/resolvers/green-invoice.resolvers.js.map +1 -1
  22. package/dist/server/src/modules/green-invoice/typeDefs/green-invoice.graphql.js +4 -0
  23. package/dist/server/src/modules/green-invoice/typeDefs/green-invoice.graphql.js.map +1 -1
  24. package/package.json +3 -3
  25. package/src/__generated__/types.ts +25 -0
  26. package/src/modules/contracts/__generated__/contracts.types.ts +32 -0
  27. package/src/modules/contracts/__generated__/types.ts +3 -1
  28. package/src/modules/contracts/providers/contracts.provider.ts +41 -6
  29. package/src/modules/contracts/resolvers/contracts.resolver.ts +24 -0
  30. package/src/modules/contracts/typeDefs/contracts.graphql.ts +2 -0
  31. package/src/modules/green-invoice/__generated__/types.ts +2 -1
  32. package/src/modules/green-invoice/helpers/contract-to-draft.helper.ts +75 -0
  33. package/src/modules/green-invoice/resolvers/green-invoice.resolvers.ts +15 -63
  34. package/src/modules/green-invoice/typeDefs/green-invoice.graphql.ts +4 -0
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @accounter/server
2
2
 
3
- ## 0.0.8-alpha-20251029235231-f14290dbb5dedec255de3cef292d3b4c5c71298e
3
+ ## 0.0.8-alpha-20251030162303-87017b2c2addf0e61478260aac336b9343f15c98
4
4
 
5
5
  ### Patch Changes
6
6
 
@@ -506,10 +506,10 @@
506
506
  [`65e3c7f`](https://github.com/Urigo/accounter-fullstack/commit/65e3c7f01993eb4f41244a40feefefa08b31a4e6),
507
507
  [`65e3c7f`](https://github.com/Urigo/accounter-fullstack/commit/65e3c7f01993eb4f41244a40feefefa08b31a4e6),
508
508
  [`65e3c7f`](https://github.com/Urigo/accounter-fullstack/commit/65e3c7f01993eb4f41244a40feefefa08b31a4e6)]:
509
- - @accounter/green-invoice-graphql@0.8.2-alpha-20251029235231-f14290dbb5dedec255de3cef292d3b4c5c71298e
510
- - @accounter/pcn874-generator@0.6.3-alpha-20251029235231-f14290dbb5dedec255de3cef292d3b4c5c71298e
511
- - @accounter/shaam-uniform-format-generator@0.2.2-alpha-20251029235231-f14290dbb5dedec255de3cef292d3b4c5c71298e
512
- - @accounter/shaam6111-generator@0.1.4-alpha-20251029235231-f14290dbb5dedec255de3cef292d3b4c5c71298e
509
+ - @accounter/green-invoice-graphql@0.8.2-alpha-20251030162303-87017b2c2addf0e61478260aac336b9343f15c98
510
+ - @accounter/pcn874-generator@0.6.3-alpha-20251030162303-87017b2c2addf0e61478260aac336b9343f15c98
511
+ - @accounter/shaam-uniform-format-generator@0.2.2-alpha-20251030162303-87017b2c2addf0e61478260aac336b9343f15c98
512
+ - @accounter/shaam6111-generator@0.1.4-alpha-20251030162303-87017b2c2addf0e61478260aac336b9343f15c98
513
513
 
514
514
  ## 0.0.7
515
515
 
@@ -4,8 +4,8 @@ import type { GetMeshOptions } from '@graphql-mesh/runtime';
4
4
  import type { YamlConfig } from '@graphql-mesh/types';
5
5
  import { MeshHTTPHandler } from '@graphql-mesh/http';
6
6
  import { type ExecuteMeshFn, type SubscribeMeshFn, type MeshContext as BaseMeshContext, type MeshInstance } from '@graphql-mesh/runtime';
7
- import type { GreenInvoiceNewTypes } from './sources/GreenInvoiceNew/types';
8
7
  import type { GreenInvoiceTypes } from './sources/GreenInvoice/types';
8
+ import type { GreenInvoiceNewTypes } from './sources/GreenInvoiceNew/types';
9
9
  export type Maybe<T> = T | null;
10
10
  export type InputMaybe<T> = Maybe<T>;
11
11
  export type Exact<T extends {
@@ -2850,9 +2850,12 @@ export type Query = {
2850
2850
  readonly chargesWithLedgerChanges: ReadonlyArray<ChargesWithLedgerChangesResult>;
2851
2851
  readonly chargesWithMissingRequiredInfo: PaginatedCharges;
2852
2852
  readonly client: Client;
2853
+ readonly clientChargesDraftsByContracts: ReadonlyArray<NewDocumentInfo>;
2853
2854
  readonly clientMonthlyChargeDraft: NewDocumentInfo;
2854
2855
  readonly clientMonthlyChargesDrafts: ReadonlyArray<NewDocumentInfo>;
2856
+ readonly contractsByAdmin: ReadonlyArray<Contract>;
2855
2857
  readonly contractsByClient: ReadonlyArray<Contract>;
2858
+ readonly contractsById: Contract;
2856
2859
  readonly corporateTaxByDate: CorporateTax;
2857
2860
  readonly corporateTaxRulingComplianceReport: ReadonlyArray<CorporateTaxRulingComplianceReport>;
2858
2861
  readonly deposit: BankDeposit;
@@ -2973,6 +2976,11 @@ export type QueryClientArgs = {
2973
2976
  businessId: Scalars['UUID']['input'];
2974
2977
  };
2975
2978
  /** query root */
2979
+ export type QueryClientChargesDraftsByContractsArgs = {
2980
+ contractIds: ReadonlyArray<Scalars['UUID']['input']>;
2981
+ issueMonth: Scalars['TimelessDate']['input'];
2982
+ };
2983
+ /** query root */
2976
2984
  export type QueryClientMonthlyChargeDraftArgs = {
2977
2985
  clientId: Scalars['UUID']['input'];
2978
2986
  issueMonth: Scalars['TimelessDate']['input'];
@@ -2982,10 +2990,18 @@ export type QueryClientMonthlyChargesDraftsArgs = {
2982
2990
  issueMonth: Scalars['TimelessDate']['input'];
2983
2991
  };
2984
2992
  /** query root */
2993
+ export type QueryContractsByAdminArgs = {
2994
+ adminId: Scalars['UUID']['input'];
2995
+ };
2996
+ /** query root */
2985
2997
  export type QueryContractsByClientArgs = {
2986
2998
  clientId: Scalars['UUID']['input'];
2987
2999
  };
2988
3000
  /** query root */
3001
+ export type QueryContractsByIdArgs = {
3002
+ id: Scalars['UUID']['input'];
3003
+ };
3004
+ /** query root */
2989
3005
  export type QueryCorporateTaxByDateArgs = {
2990
3006
  date: Scalars['TimelessDate']['input'];
2991
3007
  };
@@ -6397,9 +6413,12 @@ export type QueryResolvers<ContextType = GraphQLModules.Context, ParentType exte
6397
6413
  chargesWithLedgerChanges?: Resolver<ReadonlyArray<ResolversTypes['ChargesWithLedgerChangesResult']>, ParentType, ContextType, Partial<QueryChargesWithLedgerChangesArgs>>;
6398
6414
  chargesWithMissingRequiredInfo?: Resolver<ResolversTypes['PaginatedCharges'], ParentType, ContextType, RequireFields<QueryChargesWithMissingRequiredInfoArgs, 'limit' | 'page'>>;
6399
6415
  client?: Resolver<ResolversTypes['Client'], ParentType, ContextType, RequireFields<QueryClientArgs, 'businessId'>>;
6416
+ clientChargesDraftsByContracts?: Resolver<ReadonlyArray<ResolversTypes['NewDocumentInfo']>, ParentType, ContextType, RequireFields<QueryClientChargesDraftsByContractsArgs, 'contractIds' | 'issueMonth'>>;
6400
6417
  clientMonthlyChargeDraft?: Resolver<ResolversTypes['NewDocumentInfo'], ParentType, ContextType, RequireFields<QueryClientMonthlyChargeDraftArgs, 'clientId' | 'issueMonth'>>;
6401
6418
  clientMonthlyChargesDrafts?: Resolver<ReadonlyArray<ResolversTypes['NewDocumentInfo']>, ParentType, ContextType, RequireFields<QueryClientMonthlyChargesDraftsArgs, 'issueMonth'>>;
6419
+ contractsByAdmin?: Resolver<ReadonlyArray<ResolversTypes['Contract']>, ParentType, ContextType, RequireFields<QueryContractsByAdminArgs, 'adminId'>>;
6402
6420
  contractsByClient?: Resolver<ReadonlyArray<ResolversTypes['Contract']>, ParentType, ContextType, RequireFields<QueryContractsByClientArgs, 'clientId'>>;
6421
+ contractsById?: Resolver<ResolversTypes['Contract'], ParentType, ContextType, RequireFields<QueryContractsByIdArgs, 'id'>>;
6403
6422
  corporateTaxByDate?: Resolver<ResolversTypes['CorporateTax'], ParentType, ContextType, RequireFields<QueryCorporateTaxByDateArgs, 'date'>>;
6404
6423
  corporateTaxRulingComplianceReport?: Resolver<ReadonlyArray<ResolversTypes['CorporateTaxRulingComplianceReport']>, ParentType, ContextType, RequireFields<QueryCorporateTaxRulingComplianceReportArgs, 'years'>>;
6405
6424
  deposit?: Resolver<ResolversTypes['BankDeposit'], ParentType, ContextType, RequireFields<QueryDepositArgs, 'depositId'>>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/__generated__/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAq2BrD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAyX7B,OAAO,EAAE,QAAQ,EAAE,CAAC;AAuLpB,OAAO,EAAE,YAAY,EAAE,CAAC;AA2lCxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AA23D7B,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/__generated__/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAq2BrD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAyX7B,OAAO,EAAE,QAAQ,EAAE,CAAC;AAuLpB,OAAO,EAAE,YAAY,EAAE,CAAC;AA2lCxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAi5D7B,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -58,6 +58,35 @@ export interface IGetContractsByIdsQuery {
58
58
  params: IGetContractsByIdsParams;
59
59
  result: IGetContractsByIdsResult;
60
60
  }
61
+ /** 'GetContractsByAdminBusinessIds' parameters type */
62
+ export interface IGetContractsByAdminBusinessIdsParams {
63
+ adminBusinessIds: readonly (string | null | void)[];
64
+ }
65
+ /** 'GetContractsByAdminBusinessIds' return type */
66
+ export interface IGetContractsByAdminBusinessIdsResult {
67
+ amount: number;
68
+ billing_cycle: string;
69
+ client_id: string;
70
+ currency: currency;
71
+ document_type: document_type;
72
+ end_date: Date;
73
+ id: string;
74
+ is_active: boolean | null;
75
+ ms_cloud: string | null;
76
+ operations_count: string;
77
+ owner_id: string | null;
78
+ plan: string | null;
79
+ product: string | null;
80
+ purchase_orders: stringArray;
81
+ remarks: string | null;
82
+ signed_agreement: string | null;
83
+ start_date: Date;
84
+ }
85
+ /** 'GetContractsByAdminBusinessIds' query type */
86
+ export interface IGetContractsByAdminBusinessIdsQuery {
87
+ params: IGetContractsByAdminBusinessIdsParams;
88
+ result: IGetContractsByAdminBusinessIdsResult;
89
+ }
61
90
  /** 'GetContractsByClientIds' parameters type */
62
91
  export interface IGetContractsByClientIdsParams {
63
92
  clientIds: readonly (string | null | void)[];
@@ -2,7 +2,7 @@ import * as Types from "../../../__generated__/types.js";
2
2
  import * as gm from "graphql-modules";
3
3
  export declare namespace ContractsModule {
4
4
  interface DefinedFields {
5
- Query: 'allOpenContracts' | 'contractsByClient';
5
+ Query: 'allOpenContracts' | 'contractsByClient' | 'contractsByAdmin' | 'contractsById';
6
6
  Mutation: 'updateContract' | 'deleteContract' | 'createContract';
7
7
  Contract: 'id' | 'client' | 'purchaseOrders' | 'startDate' | 'endDate' | 'remarks' | 'amount' | 'documentType' | 'billingCycle' | 'isActive' | 'product' | 'plan' | 'msCloud' | 'operationsLimit';
8
8
  }
@@ -46,6 +46,8 @@ export declare namespace ContractsModule {
46
46
  '*'?: gm.Middleware[];
47
47
  allOpenContracts?: gm.Middleware[];
48
48
  contractsByClient?: gm.Middleware[];
49
+ contractsByAdmin?: gm.Middleware[];
50
+ contractsById?: gm.Middleware[];
49
51
  };
50
52
  Mutation?: {
51
53
  '*'?: gm.Middleware[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/modules/contracts/__generated__/types.ts"],"names":[],"mappings":"AAEA,MAAM,KAAW,eAAe,CA6E/B;AA7ED,WAAiB,eAAe;IAK7B,CAAC;IAMD,CAAC;IAKD,CAAC;IA0BD,CAAC;IAkCD,CAAC;AACJ,CAAC,EA7EgB,eAAe,KAAf,eAAe,QA6E/B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/modules/contracts/__generated__/types.ts"],"names":[],"mappings":"AAEA,MAAM,KAAW,eAAe,CA+E/B;AA/ED,WAAiB,eAAe;IAK7B,CAAC;IAMD,CAAC;IAKD,CAAC;IA0BD,CAAC;IAoCD,CAAC;AACJ,CAAC,EA/EgB,eAAe,KAAf,eAAe,QA+E/B"}
@@ -1,8 +1,10 @@
1
1
  import DataLoader from 'dataloader';
2
2
  import { DBProvider } from '../../app-providers/db.provider.js';
3
+ import { BusinessesProvider } from '../../financial-entities/providers/businesses.provider.js';
3
4
  import type { IGetAllOpenContractsResult, IInsertContractParams, IUpdateContractParams } from '../types.js';
4
5
  export declare class ContractsProvider {
5
6
  private dbProvider;
7
+ private businessesProvider;
6
8
  cache: {
7
9
  get: <T>(key: import("node-cache").Key) => T | undefined;
8
10
  set: {
@@ -12,10 +14,12 @@ export declare class ContractsProvider {
12
14
  delete: (keys: import("node-cache").Key | import("node-cache").Key[]) => number;
13
15
  clear: () => void;
14
16
  };
15
- constructor(dbProvider: DBProvider);
17
+ constructor(dbProvider: DBProvider, businessesProvider: BusinessesProvider);
16
18
  getAllOpenContracts(): Promise<IGetAllOpenContractsResult[]>;
17
19
  private contractsByIds;
18
20
  getContractsByIdLoader: DataLoader<string, import("../types.js").IGetContractsByIdsResult | undefined, import("node-cache").Key | import("node-cache").Key[]>;
21
+ private contractsByAdminBusinessIds;
22
+ getContractsByAdminBusinessIdLoader: DataLoader<string, import("../types.js").IGetContractsByAdminBusinessIdsResult[], import("node-cache").Key | import("node-cache").Key[]>;
19
23
  private contractsByClients;
20
24
  getContractsByClientIdLoader: DataLoader<string, import("../types.js").IGetContractsByClientIdsResult[], import("node-cache").Key | import("node-cache").Key[]>;
21
25
  createContract(params: IInsertContractParams): Promise<import("../types.js").IInsertContractResult>;
@@ -2,6 +2,7 @@ import { __decorate, __metadata } from "tslib";
2
2
  import DataLoader from 'dataloader';
3
3
  import { Injectable, Scope } from 'graphql-modules';
4
4
  import { DBProvider } from '../../app-providers/db.provider.js';
5
+ import { BusinessesProvider } from '../../financial-entities/providers/businesses.provider.js';
5
6
  import { sql } from '@pgtyped/runtime';
6
7
  import { getCacheInstance } from '../../../shared/helpers/index.js';
7
8
  const getAllOpenContracts = sql `
@@ -12,6 +13,11 @@ const getContractsByIds = sql `
12
13
  SELECT *
13
14
  FROM accounter_schema.clients_contracts
14
15
  WHERE id In $$ids;`;
16
+ const getContractsByAdminBusinessIds = sql `
17
+ SELECT fe.owner_id, c.*
18
+ FROM accounter_schema.clients_contracts c
19
+ LEFT JOIN accounter_schema.financial_entities fe ON c.client_id = fe.id
20
+ WHERE owner_id IN $$adminBusinessIds;`;
15
21
  const getContractsByClientIds = sql `
16
22
  SELECT *
17
23
  FROM accounter_schema.clients_contracts
@@ -116,11 +122,13 @@ const insertContract = sql `
116
122
  RETURNING *;`;
117
123
  let ContractsProvider = class ContractsProvider {
118
124
  dbProvider;
125
+ businessesProvider;
119
126
  cache = getCacheInstance({
120
127
  stdTTL: 60 * 60, // 1 hours
121
128
  });
122
- constructor(dbProvider) {
129
+ constructor(dbProvider, businessesProvider) {
123
130
  this.dbProvider = dbProvider;
131
+ this.businessesProvider = businessesProvider;
124
132
  }
125
133
  getAllOpenContracts() {
126
134
  const cached = this.cache.get('all-contracts');
@@ -145,6 +153,14 @@ let ContractsProvider = class ContractsProvider {
145
153
  cacheKeyFn: id => `contract-${id}`,
146
154
  cacheMap: this.cache,
147
155
  });
156
+ async contractsByAdminBusinessIds(adminBusinessIds) {
157
+ const contracts = await getContractsByAdminBusinessIds.run({ adminBusinessIds }, this.dbProvider);
158
+ return adminBusinessIds.map(adminBusinessId => contracts.filter(contract => contract.owner_id === adminBusinessId));
159
+ }
160
+ getContractsByAdminBusinessIdLoader = new DataLoader((adminBusinessIds) => this.contractsByAdminBusinessIds(adminBusinessIds), {
161
+ cacheKeyFn: adminBusinessId => `admin-business-${adminBusinessId}-contracts`,
162
+ cacheMap: this.cache,
163
+ });
148
164
  async contractsByClients(clientIds) {
149
165
  const contracts = await getContractsByClientIds.run({ clientIds }, this.dbProvider);
150
166
  return clientIds.map(clientId => contracts.filter(contract => contract.client_id === clientId));
@@ -154,28 +170,35 @@ let ContractsProvider = class ContractsProvider {
154
170
  cacheMap: this.cache,
155
171
  });
156
172
  async createContract(params) {
157
- this.clearCache();
158
173
  const [newContract] = await insertContract.run(params, this.dbProvider);
159
174
  this.cache.set(`contract-${newContract.id}`, newContract);
160
175
  return newContract;
161
176
  }
162
177
  async updateContract(params) {
163
- this.clearCache();
164
178
  const [updatedContract] = await updateContract.run(params, this.dbProvider);
179
+ if (params.contractId) {
180
+ this.invalidateCacheForContract(params.contractId);
181
+ }
182
+ else {
183
+ this.clearCache();
184
+ }
165
185
  this.cache.set(`contract-${updatedContract.id}`, updatedContract);
166
186
  return updatedContract;
167
187
  }
168
188
  async deleteContract(contractId) {
169
189
  await deleteContract.run({ id: contractId }, this.dbProvider);
170
- this.clearCache();
190
+ this.invalidateCacheForContract(contractId);
171
191
  return true;
172
192
  }
173
193
  async invalidateCacheForContract(contractId) {
174
194
  const contract = await this.getContractsByIdLoader.load(contractId);
175
195
  if (contract) {
176
196
  this.cache.delete(`client-contracts-${contract.client_id}`);
197
+ const business = await this.businessesProvider.getBusinessByIdLoader.load(contract.client_id);
198
+ if (business) {
199
+ this.cache.delete(`admin-business-${business.owner_id}-contracts`);
200
+ }
177
201
  }
178
- this.cache.delete(`contract-${contractId}`);
179
202
  }
180
203
  clearCache() {
181
204
  this.cache.clear();
@@ -183,10 +206,11 @@ let ContractsProvider = class ContractsProvider {
183
206
  };
184
207
  ContractsProvider = __decorate([
185
208
  Injectable({
186
- scope: Scope.Singleton,
209
+ scope: Scope.Operation,
187
210
  global: true,
188
211
  }),
189
- __metadata("design:paramtypes", [DBProvider])
212
+ __metadata("design:paramtypes", [DBProvider,
213
+ BusinessesProvider])
190
214
  ], ContractsProvider);
191
215
  export { ContractsProvider };
192
216
  //# sourceMappingURL=contracts.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.provider.js","sourceRoot":"","sources":["../../../../../../src/modules/contracts/providers/contracts.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.provider.js","sourceRoot":"","sources":["../../../../../../src/modules/contracts/providers/contracts.provider.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,33 @@ export const contractsResolvers = {
25
25
  throw new GraphQLError(message);
26
26
  }
27
27
  },
28
+ contractsByAdmin: async (_, { adminId }, { injector }) => {
29
+ try {
30
+ return injector.get(ContractsProvider).getContractsByAdminBusinessIdLoader.load(adminId);
31
+ }
32
+ catch (e) {
33
+ const message = 'Error fetching contracts by admin';
34
+ console.error(message, e);
35
+ throw new GraphQLError(message);
36
+ }
37
+ },
38
+ contractsById: async (_, { id }, { injector }) => {
39
+ try {
40
+ return injector
41
+ .get(ContractsProvider)
42
+ .getContractsByIdLoader.load(id)
43
+ .then(res => {
44
+ if (!res)
45
+ throw new GraphQLError('Contract not found');
46
+ return res;
47
+ });
48
+ }
49
+ catch (e) {
50
+ const message = 'Error fetching contracts by id';
51
+ console.error(message, e);
52
+ throw new GraphQLError(message);
53
+ }
54
+ },
28
55
  },
29
56
  Mutation: {
30
57
  createContract: async (_, { input }, { injector }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.resolver.js","sourceRoot":"","sources":["../../../../../../src/modules/contracts/resolvers/contracts.resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.resolver.js","sourceRoot":"","sources":["../../../../../../src/modules/contracts/resolvers/contracts.resolver.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ export default gql `
3
3
  extend type Query {
4
4
  allOpenContracts: [Contract!]! @auth(role: ACCOUNTANT)
5
5
  contractsByClient(clientId: UUID!): [Contract!]! @auth(role: ACCOUNTANT)
6
+ contractsByAdmin(adminId: UUID!): [Contract!]! @auth(role: ACCOUNTANT)
7
+ contractsById(id: UUID!): Contract! @auth(role: ACCOUNTANT)
6
8
  }
7
9
 
8
10
  extend type Mutation {
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.graphql.js","sourceRoot":"","sources":["../../../../../../src/modules/contracts/typeDefs/contracts.graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFjB,CAAC"}
1
+ {"version":3,"file":"contracts.graphql.js","sourceRoot":"","sources":["../../../../../../src/modules/contracts/typeDefs/contracts.graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoFjB,CAAC"}
@@ -2,7 +2,7 @@ import * as Types from "../../../__generated__/types.js";
2
2
  import * as gm from "graphql-modules";
3
3
  export declare namespace GreenInvoiceModule {
4
4
  interface DefinedFields {
5
- Query: 'newDocumentInfoDraftByCharge' | 'newDocumentInfoDraftByDocument' | 'clientMonthlyChargesDrafts' | 'clientMonthlyChargeDraft' | 'greenInvoiceClient';
5
+ Query: 'newDocumentInfoDraftByCharge' | 'newDocumentInfoDraftByDocument' | 'clientMonthlyChargesDrafts' | 'clientChargesDraftsByContracts' | 'clientMonthlyChargeDraft' | 'greenInvoiceClient';
6
6
  Mutation: 'fetchIncomeDocuments' | 'issueGreenInvoiceDocuments' | 'previewGreenInvoiceDocument' | 'issueGreenInvoiceDocument';
7
7
  GenerateMonthlyClientDocumentsResult: 'success' | 'errors';
8
8
  NewDocumentInfo: 'description' | 'remarks' | 'footer' | 'type' | 'date' | 'dueDate' | 'lang' | 'currency' | 'vatType' | 'discount' | 'rounding' | 'signed' | 'maxPayments' | 'client' | 'income' | 'payment' | 'linkedDocumentIds' | 'linkedPaymentId' | 'linkType';
@@ -91,6 +91,7 @@ export declare namespace GreenInvoiceModule {
91
91
  newDocumentInfoDraftByCharge?: gm.Middleware[];
92
92
  newDocumentInfoDraftByDocument?: gm.Middleware[];
93
93
  clientMonthlyChargesDrafts?: gm.Middleware[];
94
+ clientChargesDraftsByContracts?: gm.Middleware[];
94
95
  clientMonthlyChargeDraft?: gm.Middleware[];
95
96
  greenInvoiceClient?: gm.Middleware[];
96
97
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/modules/green-invoice/__generated__/types.ts"],"names":[],"mappings":"AAEA,MAAM,KAAW,kBAAkB,CAgMlC;AAhMD,WAAiB,kBAAkB;IAWhC,CAAC;IAaD,CAAC;IAQD,CAAC;IAsDD,CAAC;IAyGD,CAAC;AACJ,CAAC,EAhMgB,kBAAkB,KAAlB,kBAAkB,QAgMlC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/modules/green-invoice/__generated__/types.ts"],"names":[],"mappings":"AAEA,MAAM,KAAW,kBAAkB,CAiMlC;AAjMD,WAAiB,kBAAkB;IAWhC,CAAC;IAaD,CAAC;IAQD,CAAC;IAsDD,CAAC;IA0GD,CAAC;AACJ,CAAC,EAjMgB,kBAAkB,KAAlB,kBAAkB,QAiMlC"}
@@ -0,0 +1,5 @@
1
+ import { Injector } from 'graphql-modules';
2
+ import type { IGetContractsByIdsResult } from '../../contracts/types.js';
3
+ import { NewDocumentInfo } from '../../../__generated__/types.js';
4
+ import { TimelessDateString } from '../../../shared/types/index.js';
5
+ export declare const convertContractToDraft: (contract: IGetContractsByIdsResult, injector: Injector, issueMonth: TimelessDateString) => Promise<NewDocumentInfo>;
@@ -0,0 +1,60 @@
1
+ import { addMonths, endOfMonth, format, startOfMonth, subMonths } from 'date-fns';
2
+ import { GraphQLError } from 'graphql';
3
+ import { normalizeDocumentType } from '../../documents/resolvers/common.js';
4
+ import { BusinessesProvider } from '../../financial-entities/providers/businesses.provider.js';
5
+ import { ClientsProvider } from '../../financial-entities/providers/clients.provider.js';
6
+ import { dateToTimelessDateString } from '../../../shared/helpers/index.js';
7
+ import { getClientFromGreenInvoiceClient } from './issue-document.helper.js';
8
+ export const convertContractToDraft = async (contract, injector, issueMonth) => {
9
+ const businessPromise = injector
10
+ .get(BusinessesProvider)
11
+ .getBusinessByIdLoader.load(contract.client_id);
12
+ const clientPromise = injector.get(ClientsProvider).getClientByIdLoader.load(contract.client_id);
13
+ const greenInvoiceClientPromise = getClientFromGreenInvoiceClient(injector, contract.client_id);
14
+ const [business, client, greenInvoiceClient] = await Promise.all([
15
+ businessPromise,
16
+ clientPromise,
17
+ greenInvoiceClientPromise,
18
+ ]);
19
+ if (!business) {
20
+ throw new GraphQLError(`Business ID="${contract.client_id}" not found`);
21
+ }
22
+ if (!client) {
23
+ throw new GraphQLError(`Client not found for business ID="${contract.client_id}"`);
24
+ }
25
+ if (!greenInvoiceClient) {
26
+ throw new GraphQLError(`Green invoice match not found for business ID="${contract.client_id}"`);
27
+ }
28
+ const today = issueMonth ? addMonths(new Date(issueMonth), 1) : new Date();
29
+ const monthStart = dateToTimelessDateString(startOfMonth(today));
30
+ const monthEnd = dateToTimelessDateString(endOfMonth(today));
31
+ const year = today.getFullYear() + (today.getMonth() === 0 ? -1 : 0);
32
+ const month = format(subMonths(today, 1), 'MMMM');
33
+ const documentInput = {
34
+ remarks: `${contract.purchase_orders[0] ? `PO: ${contract.purchase_orders[0]}${contract.remarks ? ', ' : ''}` : ''}${contract.remarks ?? ''}`,
35
+ description: `GraphQL Hive Enterprise License - ${month} ${year}`,
36
+ type: normalizeDocumentType(contract.document_type),
37
+ date: monthStart,
38
+ dueDate: monthEnd,
39
+ lang: 'ENGLISH',
40
+ currency: contract.currency,
41
+ vatType: 'EXEMPT',
42
+ rounding: false,
43
+ signed: true,
44
+ client: {
45
+ ...greenInvoiceClient,
46
+ emails: [...(client.emails?.filter(Boolean) ?? [])],
47
+ },
48
+ income: [
49
+ {
50
+ description: `GraphQL Hive Enterprise License - ${month} ${year}`,
51
+ quantity: 1,
52
+ price: contract.amount,
53
+ currency: contract.currency,
54
+ vatType: 'EXEMPT',
55
+ },
56
+ ],
57
+ };
58
+ return documentInput;
59
+ };
60
+ //# sourceMappingURL=contract-to-draft.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-to-draft.helper.js","sourceRoot":"","sources":["../../../../../../src/modules/green-invoice/helpers/contract-to-draft.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,2DAA2D,CAAC;AAG5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAE7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,QAAkC,EAClC,QAAkB,EAClB,UAA8B,EAC9B,EAAE;IACF,MAAM,eAAe,GAAG,QAAQ;SAC7B,GAAG,CAAC,kBAAkB,CAAC;SACvB,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjG,MAAM,yBAAyB,GAAG,+BAA+B,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAChG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/D,eAAe;QACf,aAAa;QACb,yBAAyB;KAC1B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,YAAY,CAAC,gBAAgB,QAAQ,CAAC,SAAS,aAAa,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,YAAY,CAAC,qCAAqC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,YAAY,CAAC,kDAAkD,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAC3E,MAAM,UAAU,GAAG,wBAAwB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAElD,MAAM,aAAa,GAAoB;QACrC,OAAO,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE;QAC7I,WAAW,EAAE,qCAAqC,KAAK,IAAI,IAAI,EAAE;QACjE,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC;QACnD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,QAAQ,CAAC,QAAoB;QACvC,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE;YACN,GAAG,kBAAkB;YACrB,MAAM,EAAE,CAAC,GAAG,CAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAc,IAAI,EAAE,CAAC,CAAC;SAClE;QACD,MAAM,EAAE;YACN;gBACE,WAAW,EAAE,qCAAqC,KAAK,IAAI,IAAI,EAAE;gBACjE,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,QAAQ,EAAE,QAAQ,CAAC,QAAoB;gBACvC,OAAO,EAAE,QAAQ;aAClB;SACF;KACF,CAAC;IAEF,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC"}
@@ -12,6 +12,7 @@ import { convertDocumentInputIntoGreenInvoiceInput, convertGreenInvoiceDocumentT
12
12
  import { TransactionsProvider } from '../../transactions/providers/transactions.provider.js';
13
13
  import { DocumentType } from '../../../shared/enums.js';
14
14
  import { dateToTimelessDateString } from '../../../shared/helpers/index.js';
15
+ import { convertContractToDraft } from '../helpers/contract-to-draft.helper.js';
15
16
  import { deduceVatTypeFromBusiness, executeDocumentIssue, filterAndHandleSwiftTransactions, getClientFromGreenInvoiceClient, getDocumentDateOutOfTransactions, getIncomeFromDocuments, getLinkedDocumentsAttributes, getPaymentsFromTransactions, getTypeFromDocumentsAndTransactions, } from '../helpers/issue-document.helper.js';
16
17
  export const greenInvoiceResolvers = {
17
18
  Query: {
@@ -236,60 +237,15 @@ export const greenInvoiceResolvers = {
236
237
  clientMonthlyChargesDrafts: async (_, { issueMonth }, { injector }) => {
237
238
  const openContracts = await injector.get(ContractsProvider).getAllOpenContracts();
238
239
  const monthlyContracts = openContracts.filter(contract => contract.billing_cycle === 'monthly');
239
- const drafts = await Promise.all(monthlyContracts.map(async (contract) => {
240
- const businessPromise = injector
241
- .get(BusinessesProvider)
242
- .getBusinessByIdLoader.load(contract.client_id);
243
- const clientPromise = injector
244
- .get(ClientsProvider)
245
- .getClientByIdLoader.load(contract.client_id);
246
- const greenInvoiceClientPromise = getClientFromGreenInvoiceClient(injector, contract.client_id);
247
- const [business, client, greenInvoiceClient] = await Promise.all([
248
- businessPromise,
249
- clientPromise,
250
- greenInvoiceClientPromise,
251
- ]);
252
- if (!business) {
253
- throw new GraphQLError(`Business ID="${contract.client_id}" not found`);
254
- }
255
- if (!client) {
256
- throw new GraphQLError(`Client not found for business ID="${contract.client_id}"`);
257
- }
258
- if (!greenInvoiceClient) {
259
- throw new GraphQLError(`Green invoice match not found for business ID="${contract.client_id}"`);
260
- }
261
- const today = issueMonth ? addMonths(new Date(issueMonth), 1) : new Date();
262
- const monthStart = dateToTimelessDateString(startOfMonth(today));
263
- const monthEnd = dateToTimelessDateString(endOfMonth(today));
264
- const year = today.getFullYear() + (today.getMonth() === 0 ? -1 : 0);
265
- const month = format(subMonths(today, 1), 'MMMM');
266
- const documentInput = {
267
- remarks: `${contract.purchase_orders[0] ? `PO: ${contract.purchase_orders[0]}${contract.remarks ? ', ' : ''}` : ''}${contract.remarks ?? ''}`,
268
- description: `GraphQL Hive Enterprise License - ${month} ${year}`,
269
- type: normalizeDocumentType(contract.document_type),
270
- date: monthStart,
271
- dueDate: monthEnd,
272
- lang: 'ENGLISH',
273
- currency: contract.currency,
274
- vatType: 'EXEMPT',
275
- rounding: false,
276
- signed: true,
277
- client: {
278
- ...greenInvoiceClient,
279
- emails: [...(client.emails?.filter(Boolean) ?? [])],
280
- },
281
- income: [
282
- {
283
- description: `GraphQL Hive Enterprise License - ${month} ${year}`,
284
- quantity: 1,
285
- price: contract.amount,
286
- currency: contract.currency,
287
- vatType: 'EXEMPT',
288
- },
289
- ],
290
- };
291
- return documentInput;
292
- }));
240
+ const drafts = await Promise.all(monthlyContracts.map(async (contract) => convertContractToDraft(contract, injector, issueMonth)));
241
+ return drafts;
242
+ },
243
+ clientChargesDraftsByContracts: async (_, { issueMonth, contractIds }, { injector }) => {
244
+ const contracts = await injector
245
+ .get(ContractsProvider)
246
+ .getContractsByIdLoader.loadMany(contractIds)
247
+ .then(res => res.filter(c => !!c && !(c instanceof Error)));
248
+ const drafts = await Promise.all(contracts.map(async (contract) => convertContractToDraft(contract, injector, issueMonth)));
293
249
  return drafts;
294
250
  },
295
251
  clientMonthlyChargeDraft: async (_, { clientId, issueMonth }, { injector }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"green-invoice.resolvers.js","sourceRoot":"","sources":["../../../../../../src/modules/green-invoice/resolvers/green-invoice.resolvers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"green-invoice.resolvers.js","sourceRoot":"","sources":["../../../../../../src/modules/green-invoice/resolvers/green-invoice.resolvers.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,10 @@ export default gql `
5
5
  newDocumentInfoDraftByDocument(documentId: UUID!): NewDocumentInfo! @auth(role: ACCOUNTANT)
6
6
  clientMonthlyChargesDrafts(issueMonth: TimelessDate!): [NewDocumentInfo!]!
7
7
  @auth(role: ACCOUNTANT)
8
+ clientChargesDraftsByContracts(
9
+ issueMonth: TimelessDate!
10
+ contractIds: [UUID!]!
11
+ ): [NewDocumentInfo!]! @auth(role: ACCOUNTANT)
8
12
  clientMonthlyChargeDraft(clientId: UUID!, issueMonth: TimelessDate!): NewDocumentInfo!
9
13
  @auth(role: ACCOUNTANT)
10
14
  greenInvoiceClient(clientId: UUID!): GreenInvoiceClient! @auth(role: ACCOUNTANT)
@@ -1 +1 @@
1
- {"version":3,"file":"green-invoice.graphql.js","sourceRoot":"","sources":["../../../../../../src/modules/green-invoice/typeDefs/green-invoice.graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAohBjB,CAAC"}
1
+ {"version":3,"file":"green-invoice.graphql.js","sourceRoot":"","sources":["../../../../../../src/modules/green-invoice/typeDefs/green-invoice.graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwhBjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@accounter/server",
3
- "version": "0.0.8-alpha-20251029235231-f14290dbb5dedec255de3cef292d3b4c5c71298e",
3
+ "version": "0.0.8-alpha-20251030162303-87017b2c2addf0e61478260aac336b9343f15c98",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "license": "MIT",
@@ -22,7 +22,7 @@
22
22
  "@accounter/pcn874-generator": "workspace:^",
23
23
  "@accounter/shaam-uniform-format-generator": "workspace:^",
24
24
  "@accounter/shaam6111-generator": "workspace:^",
25
- "@ai-sdk/anthropic": "2.0.39",
25
+ "@ai-sdk/anthropic": "2.0.38",
26
26
  "@envelop/generic-auth": "10.0.1",
27
27
  "@envelop/graphql-modules": "8.0.0",
28
28
  "@google-cloud/pubsub": "5.2.0",
@@ -31,7 +31,7 @@
31
31
  "@pgtyped/cli": "2.4.3",
32
32
  "@pgtyped/runtime": "2.4.2",
33
33
  "@whatwg-node/fetch": "0.10.11",
34
- "ai": "5.0.82",
34
+ "ai": "5.0.81",
35
35
  "basic-auth": "2.0.1",
36
36
  "bcrypt": "6.0.0",
37
37
  "cloudinary": "2.8.0",
@@ -3532,9 +3532,12 @@ export type Query = {
3532
3532
  readonly chargesWithLedgerChanges: ReadonlyArray<ChargesWithLedgerChangesResult>;
3533
3533
  readonly chargesWithMissingRequiredInfo: PaginatedCharges;
3534
3534
  readonly client: Client;
3535
+ readonly clientChargesDraftsByContracts: ReadonlyArray<NewDocumentInfo>;
3535
3536
  readonly clientMonthlyChargeDraft: NewDocumentInfo;
3536
3537
  readonly clientMonthlyChargesDrafts: ReadonlyArray<NewDocumentInfo>;
3538
+ readonly contractsByAdmin: ReadonlyArray<Contract>;
3537
3539
  readonly contractsByClient: ReadonlyArray<Contract>;
3540
+ readonly contractsById: Contract;
3538
3541
  readonly corporateTaxByDate: CorporateTax;
3539
3542
  readonly corporateTaxRulingComplianceReport: ReadonlyArray<CorporateTaxRulingComplianceReport>;
3540
3543
  readonly deposit: BankDeposit;
@@ -3686,6 +3689,13 @@ export type QueryClientArgs = {
3686
3689
  };
3687
3690
 
3688
3691
 
3692
+ /** query root */
3693
+ export type QueryClientChargesDraftsByContractsArgs = {
3694
+ contractIds: ReadonlyArray<Scalars['UUID']['input']>;
3695
+ issueMonth: Scalars['TimelessDate']['input'];
3696
+ };
3697
+
3698
+
3689
3699
  /** query root */
3690
3700
  export type QueryClientMonthlyChargeDraftArgs = {
3691
3701
  clientId: Scalars['UUID']['input'];
@@ -3699,12 +3709,24 @@ export type QueryClientMonthlyChargesDraftsArgs = {
3699
3709
  };
3700
3710
 
3701
3711
 
3712
+ /** query root */
3713
+ export type QueryContractsByAdminArgs = {
3714
+ adminId: Scalars['UUID']['input'];
3715
+ };
3716
+
3717
+
3702
3718
  /** query root */
3703
3719
  export type QueryContractsByClientArgs = {
3704
3720
  clientId: Scalars['UUID']['input'];
3705
3721
  };
3706
3722
 
3707
3723
 
3724
+ /** query root */
3725
+ export type QueryContractsByIdArgs = {
3726
+ id: Scalars['UUID']['input'];
3727
+ };
3728
+
3729
+
3708
3730
  /** query root */
3709
3731
  export type QueryCorporateTaxByDateArgs = {
3710
3732
  date: Scalars['TimelessDate']['input'];
@@ -7247,9 +7269,12 @@ export type QueryResolvers<ContextType = GraphQLModules.Context, ParentType exte
7247
7269
  chargesWithLedgerChanges?: Resolver<ReadonlyArray<ResolversTypes['ChargesWithLedgerChangesResult']>, ParentType, ContextType, Partial<QueryChargesWithLedgerChangesArgs>>;
7248
7270
  chargesWithMissingRequiredInfo?: Resolver<ResolversTypes['PaginatedCharges'], ParentType, ContextType, RequireFields<QueryChargesWithMissingRequiredInfoArgs, 'limit' | 'page'>>;
7249
7271
  client?: Resolver<ResolversTypes['Client'], ParentType, ContextType, RequireFields<QueryClientArgs, 'businessId'>>;
7272
+ clientChargesDraftsByContracts?: Resolver<ReadonlyArray<ResolversTypes['NewDocumentInfo']>, ParentType, ContextType, RequireFields<QueryClientChargesDraftsByContractsArgs, 'contractIds' | 'issueMonth'>>;
7250
7273
  clientMonthlyChargeDraft?: Resolver<ResolversTypes['NewDocumentInfo'], ParentType, ContextType, RequireFields<QueryClientMonthlyChargeDraftArgs, 'clientId' | 'issueMonth'>>;
7251
7274
  clientMonthlyChargesDrafts?: Resolver<ReadonlyArray<ResolversTypes['NewDocumentInfo']>, ParentType, ContextType, RequireFields<QueryClientMonthlyChargesDraftsArgs, 'issueMonth'>>;
7275
+ contractsByAdmin?: Resolver<ReadonlyArray<ResolversTypes['Contract']>, ParentType, ContextType, RequireFields<QueryContractsByAdminArgs, 'adminId'>>;
7252
7276
  contractsByClient?: Resolver<ReadonlyArray<ResolversTypes['Contract']>, ParentType, ContextType, RequireFields<QueryContractsByClientArgs, 'clientId'>>;
7277
+ contractsById?: Resolver<ResolversTypes['Contract'], ParentType, ContextType, RequireFields<QueryContractsByIdArgs, 'id'>>;
7253
7278
  corporateTaxByDate?: Resolver<ResolversTypes['CorporateTax'], ParentType, ContextType, RequireFields<QueryCorporateTaxByDateArgs, 'date'>>;
7254
7279
  corporateTaxRulingComplianceReport?: Resolver<ReadonlyArray<ResolversTypes['CorporateTaxRulingComplianceReport']>, ParentType, ContextType, RequireFields<QueryCorporateTaxRulingComplianceReportArgs, 'years'>>;
7255
7280
  deposit?: Resolver<ResolversTypes['BankDeposit'], ParentType, ContextType, RequireFields<QueryDepositArgs, 'depositId'>>;
@@ -69,6 +69,38 @@ export interface IGetContractsByIdsQuery {
69
69
  result: IGetContractsByIdsResult;
70
70
  }
71
71
 
72
+ /** 'GetContractsByAdminBusinessIds' parameters type */
73
+ export interface IGetContractsByAdminBusinessIdsParams {
74
+ adminBusinessIds: readonly (string | null | void)[];
75
+ }
76
+
77
+ /** 'GetContractsByAdminBusinessIds' return type */
78
+ export interface IGetContractsByAdminBusinessIdsResult {
79
+ amount: number;
80
+ billing_cycle: string;
81
+ client_id: string;
82
+ currency: currency;
83
+ document_type: document_type;
84
+ end_date: Date;
85
+ id: string;
86
+ is_active: boolean | null;
87
+ ms_cloud: string | null;
88
+ operations_count: string;
89
+ owner_id: string | null;
90
+ plan: string | null;
91
+ product: string | null;
92
+ purchase_orders: stringArray;
93
+ remarks: string | null;
94
+ signed_agreement: string | null;
95
+ start_date: Date;
96
+ }
97
+
98
+ /** 'GetContractsByAdminBusinessIds' query type */
99
+ export interface IGetContractsByAdminBusinessIdsQuery {
100
+ params: IGetContractsByAdminBusinessIdsParams;
101
+ result: IGetContractsByAdminBusinessIdsResult;
102
+ }
103
+
72
104
  /** 'GetContractsByClientIds' parameters type */
73
105
  export interface IGetContractsByClientIdsParams {
74
106
  clientIds: readonly (string | null | void)[];
@@ -2,7 +2,7 @@ import * as Types from "../../../__generated__/types.js";
2
2
  import * as gm from "graphql-modules";
3
3
  export namespace ContractsModule {
4
4
  interface DefinedFields {
5
- Query: 'allOpenContracts' | 'contractsByClient';
5
+ Query: 'allOpenContracts' | 'contractsByClient' | 'contractsByAdmin' | 'contractsById';
6
6
  Mutation: 'updateContract' | 'deleteContract' | 'createContract';
7
7
  Contract: 'id' | 'client' | 'purchaseOrders' | 'startDate' | 'endDate' | 'remarks' | 'amount' | 'documentType' | 'billingCycle' | 'isActive' | 'product' | 'plan' | 'msCloud' | 'operationsLimit';
8
8
  };
@@ -52,6 +52,8 @@ export namespace ContractsModule {
52
52
  '*'?: gm.Middleware[];
53
53
  allOpenContracts?: gm.Middleware[];
54
54
  contractsByClient?: gm.Middleware[];
55
+ contractsByAdmin?: gm.Middleware[];
56
+ contractsById?: gm.Middleware[];
55
57
  };
56
58
  Mutation?: {
57
59
  '*'?: gm.Middleware[];
@@ -1,12 +1,14 @@
1
1
  import DataLoader from 'dataloader';
2
2
  import { Injectable, Scope } from 'graphql-modules';
3
3
  import { DBProvider } from '@modules/app-providers/db.provider.js';
4
+ import { BusinessesProvider } from '@modules/financial-entities/providers/businesses.provider.js';
4
5
  import { sql } from '@pgtyped/runtime';
5
6
  import { getCacheInstance } from '@shared/helpers';
6
7
  import type {
7
8
  IDeleteContractQuery,
8
9
  IGetAllOpenContractsQuery,
9
10
  IGetAllOpenContractsResult,
11
+ IGetContractsByAdminBusinessIdsQuery,
10
12
  IGetContractsByClientIdsQuery,
11
13
  IGetContractsByIdsQuery,
12
14
  IInsertContractParams,
@@ -25,6 +27,12 @@ const getContractsByIds = sql<IGetContractsByIdsQuery>`
25
27
  FROM accounter_schema.clients_contracts
26
28
  WHERE id In $$ids;`;
27
29
 
30
+ const getContractsByAdminBusinessIds = sql<IGetContractsByAdminBusinessIdsQuery>`
31
+ SELECT fe.owner_id, c.*
32
+ FROM accounter_schema.clients_contracts c
33
+ LEFT JOIN accounter_schema.financial_entities fe ON c.client_id = fe.id
34
+ WHERE owner_id IN $$adminBusinessIds;`;
35
+
28
36
  const getContractsByClientIds = sql<IGetContractsByClientIdsQuery>`
29
37
  SELECT *
30
38
  FROM accounter_schema.clients_contracts
@@ -132,7 +140,7 @@ const insertContract = sql<IInsertContractQuery>`
132
140
  RETURNING *;`;
133
141
 
134
142
  @Injectable({
135
- scope: Scope.Singleton,
143
+ scope: Scope.Operation,
136
144
  global: true,
137
145
  })
138
146
  export class ContractsProvider {
@@ -140,7 +148,10 @@ export class ContractsProvider {
140
148
  stdTTL: 60 * 60, // 1 hours
141
149
  });
142
150
 
143
- constructor(private dbProvider: DBProvider) {}
151
+ constructor(
152
+ private dbProvider: DBProvider,
153
+ private businessesProvider: BusinessesProvider,
154
+ ) {}
144
155
 
145
156
  public getAllOpenContracts() {
146
157
  const cached = this.cache.get<IGetAllOpenContractsResult[]>('all-contracts');
@@ -171,6 +182,24 @@ export class ContractsProvider {
171
182
  },
172
183
  );
173
184
 
185
+ private async contractsByAdminBusinessIds(adminBusinessIds: readonly string[]) {
186
+ const contracts = await getContractsByAdminBusinessIds.run(
187
+ { adminBusinessIds },
188
+ this.dbProvider,
189
+ );
190
+ return adminBusinessIds.map(adminBusinessId =>
191
+ contracts.filter(contract => contract.owner_id === adminBusinessId),
192
+ );
193
+ }
194
+
195
+ public getContractsByAdminBusinessIdLoader = new DataLoader(
196
+ (adminBusinessIds: readonly string[]) => this.contractsByAdminBusinessIds(adminBusinessIds),
197
+ {
198
+ cacheKeyFn: adminBusinessId => `admin-business-${adminBusinessId}-contracts`,
199
+ cacheMap: this.cache,
200
+ },
201
+ );
202
+
174
203
  private async contractsByClients(clientIds: readonly string[]) {
175
204
  const contracts = await getContractsByClientIds.run({ clientIds }, this.dbProvider);
176
205
  return clientIds.map(clientId => contracts.filter(contract => contract.client_id === clientId));
@@ -185,22 +214,25 @@ export class ContractsProvider {
185
214
  );
186
215
 
187
216
  public async createContract(params: IInsertContractParams) {
188
- this.clearCache();
189
217
  const [newContract] = await insertContract.run(params, this.dbProvider);
190
218
  this.cache.set(`contract-${newContract.id}`, newContract);
191
219
  return newContract;
192
220
  }
193
221
 
194
222
  public async updateContract(params: IUpdateContractParams) {
195
- this.clearCache();
196
223
  const [updatedContract] = await updateContract.run(params, this.dbProvider);
224
+ if (params.contractId) {
225
+ this.invalidateCacheForContract(params.contractId);
226
+ } else {
227
+ this.clearCache();
228
+ }
197
229
  this.cache.set(`contract-${updatedContract.id}`, updatedContract);
198
230
  return updatedContract;
199
231
  }
200
232
 
201
233
  public async deleteContract(contractId: string) {
202
234
  await deleteContract.run({ id: contractId }, this.dbProvider);
203
- this.clearCache();
235
+ this.invalidateCacheForContract(contractId);
204
236
  return true;
205
237
  }
206
238
 
@@ -208,8 +240,11 @@ export class ContractsProvider {
208
240
  const contract = await this.getContractsByIdLoader.load(contractId);
209
241
  if (contract) {
210
242
  this.cache.delete(`client-contracts-${contract.client_id}`);
243
+ const business = await this.businessesProvider.getBusinessByIdLoader.load(contract.client_id);
244
+ if (business) {
245
+ this.cache.delete(`admin-business-${business.owner_id}-contracts`);
246
+ }
211
247
  }
212
- this.cache.delete(`contract-${contractId}`);
213
248
  }
214
249
 
215
250
  public clearCache() {
@@ -29,6 +29,30 @@ export const contractsResolvers: ContractsModule.Resolvers = {
29
29
  throw new GraphQLError(message);
30
30
  }
31
31
  },
32
+ contractsByAdmin: async (_, { adminId }, { injector }) => {
33
+ try {
34
+ return injector.get(ContractsProvider).getContractsByAdminBusinessIdLoader.load(adminId);
35
+ } catch (e) {
36
+ const message = 'Error fetching contracts by admin';
37
+ console.error(message, e);
38
+ throw new GraphQLError(message);
39
+ }
40
+ },
41
+ contractsById: async (_, { id }, { injector }) => {
42
+ try {
43
+ return injector
44
+ .get(ContractsProvider)
45
+ .getContractsByIdLoader.load(id)
46
+ .then(res => {
47
+ if (!res) throw new GraphQLError('Contract not found');
48
+ return res;
49
+ });
50
+ } catch (e) {
51
+ const message = 'Error fetching contracts by id';
52
+ console.error(message, e);
53
+ throw new GraphQLError(message);
54
+ }
55
+ },
32
56
  },
33
57
  Mutation: {
34
58
  createContract: async (_, { input }, { injector }) => {
@@ -4,6 +4,8 @@ export default gql`
4
4
  extend type Query {
5
5
  allOpenContracts: [Contract!]! @auth(role: ACCOUNTANT)
6
6
  contractsByClient(clientId: UUID!): [Contract!]! @auth(role: ACCOUNTANT)
7
+ contractsByAdmin(adminId: UUID!): [Contract!]! @auth(role: ACCOUNTANT)
8
+ contractsById(id: UUID!): Contract! @auth(role: ACCOUNTANT)
7
9
  }
8
10
 
9
11
  extend type Mutation {
@@ -2,7 +2,7 @@ import * as Types from "../../../__generated__/types.js";
2
2
  import * as gm from "graphql-modules";
3
3
  export namespace GreenInvoiceModule {
4
4
  interface DefinedFields {
5
- Query: 'newDocumentInfoDraftByCharge' | 'newDocumentInfoDraftByDocument' | 'clientMonthlyChargesDrafts' | 'clientMonthlyChargeDraft' | 'greenInvoiceClient';
5
+ Query: 'newDocumentInfoDraftByCharge' | 'newDocumentInfoDraftByDocument' | 'clientMonthlyChargesDrafts' | 'clientChargesDraftsByContracts' | 'clientMonthlyChargeDraft' | 'greenInvoiceClient';
6
6
  Mutation: 'fetchIncomeDocuments' | 'issueGreenInvoiceDocuments' | 'previewGreenInvoiceDocument' | 'issueGreenInvoiceDocument';
7
7
  GenerateMonthlyClientDocumentsResult: 'success' | 'errors';
8
8
  NewDocumentInfo: 'description' | 'remarks' | 'footer' | 'type' | 'date' | 'dueDate' | 'lang' | 'currency' | 'vatType' | 'discount' | 'rounding' | 'signed' | 'maxPayments' | 'client' | 'income' | 'payment' | 'linkedDocumentIds' | 'linkedPaymentId' | 'linkType';
@@ -97,6 +97,7 @@ export namespace GreenInvoiceModule {
97
97
  newDocumentInfoDraftByCharge?: gm.Middleware[];
98
98
  newDocumentInfoDraftByDocument?: gm.Middleware[];
99
99
  clientMonthlyChargesDrafts?: gm.Middleware[];
100
+ clientChargesDraftsByContracts?: gm.Middleware[];
100
101
  clientMonthlyChargeDraft?: gm.Middleware[];
101
102
  greenInvoiceClient?: gm.Middleware[];
102
103
  };
@@ -0,0 +1,75 @@
1
+ import { addMonths, endOfMonth, format, startOfMonth, subMonths } from 'date-fns';
2
+ import { GraphQLError } from 'graphql';
3
+ import { Injector } from 'graphql-modules';
4
+ import type { IGetContractsByIdsResult } from '@modules/contracts/types.js';
5
+ import { normalizeDocumentType } from '@modules/documents/resolvers/common.js';
6
+ import { BusinessesProvider } from '@modules/financial-entities/providers/businesses.provider.js';
7
+ import { ClientsProvider } from '@modules/financial-entities/providers/clients.provider.js';
8
+ import { Currency } from '@shared/enums';
9
+ import { NewDocumentInfo } from '@shared/gql-types';
10
+ import { dateToTimelessDateString } from '@shared/helpers';
11
+ import { TimelessDateString } from '@shared/types';
12
+ import { getClientFromGreenInvoiceClient } from './issue-document.helper.js';
13
+
14
+ export const convertContractToDraft = async (
15
+ contract: IGetContractsByIdsResult,
16
+ injector: Injector,
17
+ issueMonth: TimelessDateString,
18
+ ) => {
19
+ const businessPromise = injector
20
+ .get(BusinessesProvider)
21
+ .getBusinessByIdLoader.load(contract.client_id);
22
+ const clientPromise = injector.get(ClientsProvider).getClientByIdLoader.load(contract.client_id);
23
+ const greenInvoiceClientPromise = getClientFromGreenInvoiceClient(injector, contract.client_id);
24
+ const [business, client, greenInvoiceClient] = await Promise.all([
25
+ businessPromise,
26
+ clientPromise,
27
+ greenInvoiceClientPromise,
28
+ ]);
29
+
30
+ if (!business) {
31
+ throw new GraphQLError(`Business ID="${contract.client_id}" not found`);
32
+ }
33
+
34
+ if (!client) {
35
+ throw new GraphQLError(`Client not found for business ID="${contract.client_id}"`);
36
+ }
37
+
38
+ if (!greenInvoiceClient) {
39
+ throw new GraphQLError(`Green invoice match not found for business ID="${contract.client_id}"`);
40
+ }
41
+
42
+ const today = issueMonth ? addMonths(new Date(issueMonth), 1) : new Date();
43
+ const monthStart = dateToTimelessDateString(startOfMonth(today));
44
+ const monthEnd = dateToTimelessDateString(endOfMonth(today));
45
+ const year = today.getFullYear() + (today.getMonth() === 0 ? -1 : 0);
46
+ const month = format(subMonths(today, 1), 'MMMM');
47
+
48
+ const documentInput: NewDocumentInfo = {
49
+ remarks: `${contract.purchase_orders[0] ? `PO: ${contract.purchase_orders[0]}${contract.remarks ? ', ' : ''}` : ''}${contract.remarks ?? ''}`,
50
+ description: `GraphQL Hive Enterprise License - ${month} ${year}`,
51
+ type: normalizeDocumentType(contract.document_type),
52
+ date: monthStart,
53
+ dueDate: monthEnd,
54
+ lang: 'ENGLISH',
55
+ currency: contract.currency as Currency,
56
+ vatType: 'EXEMPT',
57
+ rounding: false,
58
+ signed: true,
59
+ client: {
60
+ ...greenInvoiceClient,
61
+ emails: [...((client.emails?.filter(Boolean) as string[]) ?? [])],
62
+ },
63
+ income: [
64
+ {
65
+ description: `GraphQL Hive Enterprise License - ${month} ${year}`,
66
+ quantity: 1,
67
+ price: contract.amount,
68
+ currency: contract.currency as Currency,
69
+ vatType: 'EXEMPT',
70
+ },
71
+ ],
72
+ };
73
+
74
+ return documentInput;
75
+ };
@@ -4,6 +4,7 @@ import type { Document } from '@accounter/green-invoice-graphql';
4
4
  import { GreenInvoiceClientProvider } from '@modules/app-providers/green-invoice-client.js';
5
5
  import { ChargesProvider } from '@modules/charges/providers/charges.provider.js';
6
6
  import { ContractsProvider } from '@modules/contracts/providers/contracts.provider.js';
7
+ import { IGetContractsByIdsResult } from '@modules/contracts/types.js';
7
8
  import { DocumentsProvider } from '@modules/documents/providers/documents.provider.js';
8
9
  import { IssuedDocumentsProvider } from '@modules/documents/providers/issued-documents.provider.js';
9
10
  import { normalizeDocumentType } from '@modules/documents/resolvers/common.js';
@@ -28,6 +29,7 @@ import { TransactionsProvider } from '@modules/transactions/providers/transactio
28
29
  import { Currency, DocumentType } from '@shared/enums';
29
30
  import { NewDocumentInfo } from '@shared/gql-types';
30
31
  import { dateToTimelessDateString } from '@shared/helpers';
32
+ import { convertContractToDraft } from '../helpers/contract-to-draft.helper.js';
31
33
  import {
32
34
  deduceVatTypeFromBusiness,
33
35
  executeDocumentIssue,
@@ -354,71 +356,21 @@ export const greenInvoiceResolvers: GreenInvoiceModule.Resolvers = {
354
356
  contract => contract.billing_cycle === 'monthly',
355
357
  );
356
358
  const drafts = await Promise.all(
357
- monthlyContracts.map(async contract => {
358
- const businessPromise = injector
359
- .get(BusinessesProvider)
360
- .getBusinessByIdLoader.load(contract.client_id);
361
- const clientPromise = injector
362
- .get(ClientsProvider)
363
- .getClientByIdLoader.load(contract.client_id);
364
- const greenInvoiceClientPromise = getClientFromGreenInvoiceClient(
365
- injector,
366
- contract.client_id,
367
- );
368
- const [business, client, greenInvoiceClient] = await Promise.all([
369
- businessPromise,
370
- clientPromise,
371
- greenInvoiceClientPromise,
372
- ]);
373
-
374
- if (!business) {
375
- throw new GraphQLError(`Business ID="${contract.client_id}" not found`);
376
- }
377
-
378
- if (!client) {
379
- throw new GraphQLError(`Client not found for business ID="${contract.client_id}"`);
380
- }
381
-
382
- if (!greenInvoiceClient) {
383
- throw new GraphQLError(
384
- `Green invoice match not found for business ID="${contract.client_id}"`,
385
- );
386
- }
359
+ monthlyContracts.map(async contract =>
360
+ convertContractToDraft(contract, injector, issueMonth),
361
+ ),
362
+ );
387
363
 
388
- const today = issueMonth ? addMonths(new Date(issueMonth), 1) : new Date();
389
- const monthStart = dateToTimelessDateString(startOfMonth(today));
390
- const monthEnd = dateToTimelessDateString(endOfMonth(today));
391
- const year = today.getFullYear() + (today.getMonth() === 0 ? -1 : 0);
392
- const month = format(subMonths(today, 1), 'MMMM');
364
+ return drafts;
365
+ },
366
+ clientChargesDraftsByContracts: async (_, { issueMonth, contractIds }, { injector }) => {
367
+ const contracts = await injector
368
+ .get(ContractsProvider)
369
+ .getContractsByIdLoader.loadMany(contractIds)
370
+ .then(res => res.filter(c => !!c && !(c instanceof Error)) as IGetContractsByIdsResult[]);
393
371
 
394
- const documentInput: NewDocumentInfo = {
395
- remarks: `${contract.purchase_orders[0] ? `PO: ${contract.purchase_orders[0]}${contract.remarks ? ', ' : ''}` : ''}${contract.remarks ?? ''}`,
396
- description: `GraphQL Hive Enterprise License - ${month} ${year}`,
397
- type: normalizeDocumentType(contract.document_type),
398
- date: monthStart,
399
- dueDate: monthEnd,
400
- lang: 'ENGLISH',
401
- currency: contract.currency as Currency,
402
- vatType: 'EXEMPT',
403
- rounding: false,
404
- signed: true,
405
- client: {
406
- ...greenInvoiceClient,
407
- emails: [...((client.emails?.filter(Boolean) as string[]) ?? [])],
408
- },
409
- income: [
410
- {
411
- description: `GraphQL Hive Enterprise License - ${month} ${year}`,
412
- quantity: 1,
413
- price: contract.amount,
414
- currency: contract.currency as Currency,
415
- vatType: 'EXEMPT',
416
- },
417
- ],
418
- };
419
-
420
- return documentInput;
421
- }),
372
+ const drafts = await Promise.all(
373
+ contracts.map(async contract => convertContractToDraft(contract, injector, issueMonth)),
422
374
  );
423
375
 
424
376
  return drafts;
@@ -6,6 +6,10 @@ export default gql`
6
6
  newDocumentInfoDraftByDocument(documentId: UUID!): NewDocumentInfo! @auth(role: ACCOUNTANT)
7
7
  clientMonthlyChargesDrafts(issueMonth: TimelessDate!): [NewDocumentInfo!]!
8
8
  @auth(role: ACCOUNTANT)
9
+ clientChargesDraftsByContracts(
10
+ issueMonth: TimelessDate!
11
+ contractIds: [UUID!]!
12
+ ): [NewDocumentInfo!]! @auth(role: ACCOUNTANT)
9
13
  clientMonthlyChargeDraft(clientId: UUID!, issueMonth: TimelessDate!): NewDocumentInfo!
10
14
  @auth(role: ACCOUNTANT)
11
15
  greenInvoiceClient(clientId: UUID!): GreenInvoiceClient! @auth(role: ACCOUNTANT)