Bläddra i källkod

Сброс статусов actReg при изменении pe

Vadim 2 månader sedan
förälder
incheckning
8f79c6bf4b

+ 22 - 1
src/modules/client/activities/c-act-service.ts

@@ -9,9 +9,10 @@ import { DbSchema } from "#db/db-schema.js";
 import { selPool, updPool } from "#db/db.js";
 import { ApiError } from "#exceptions/api-error.js";
 import { logger } from "#plugins/logger.js";
-import { sql } from "slonik";
+import { DatabaseTransactionConnection, sql } from "slonik";
 import { z } from "zod";
 import { ordersService } from "../shop/orders-service.js";
+import { v7 } from "uuid";
 
 class CActService {
   async addDataToActValidator(
@@ -819,6 +820,26 @@ class CActService {
       await ordersService.refundOrderItem(orderItem.orderItemId);
     }
   }
+
+  async resetAllActivityRegsByPe(
+    tr: DatabaseTransactionConnection,
+    peid: string,
+  ) {
+    const actRegs = await this.getActivityRegsByPeId(peid);
+
+    for (const actReg of actRegs) {
+      const initialRegStatusId = await this.getInitialRegStatusId(
+        actReg.activityId,
+      );
+
+      await tr.query(sql.unsafe`
+        insert into act.act_reg_status_history
+          (act_reg_status_history_id, act_reg_id, act_reg_status_id, note)
+        values
+          (${v7()}, ${actReg.activityRegId}, ${initialRegStatusId}, 'Изменена сущность участия ${peid}')
+      `);
+    }
+  }
 }
 
 export const cActService = new CActService();

+ 2 - 0
src/modules/client/activities/participant-entities/c-pe-controller.ts

@@ -246,6 +246,8 @@ class ClientPeController {
         files,
         isDeleteBefore: true,
       });
+
+      await cActService.resetAllActivityRegsByPe(tr, peId);
     });
 
     RouterUtils.validAndSendResponse(api.client.pe.PATCH_PartEntity.res, res, {