diff --git a/src/app/api/mobile/project/[id]/route.ts b/src/app/api/mobile/project/[id]/route.ts index 36551cf..f3ea597 100644 --- a/src/app/api/mobile/project/[id]/route.ts +++ b/src/app/api/mobile/project/[id]/route.ts @@ -162,7 +162,7 @@ export async function GET(request: Request, context: { params: { id: string } }) export async function POST(request: Request, context: { params: { id: string } }) { try { const { id } = context.params - const { name, dateStart, dateEnd, user } = await request.json() + const { name, dateStart, dateEnd, user, dataDetail } = await request.json() const userMobile = await funGetUserById({ id: String(user) }) @@ -197,6 +197,21 @@ export async function POST(request: Request, context: { params: { id: string } } } }) + if (dataDetail.length > 0) { + const dataDetailFix = dataDetail.map((v: any) => ({ + ...v, + idTask: dataCreate.id, + date: new Date(v.date), + timeStart: v.timeStart == null ? null : new Date(new Date('1970-01-01 ' + v.timeStart).getTime() - (new Date('1970-01-01 ' + v.timeStart).getTimezoneOffset() * 60000)).toISOString(), + timeEnd: v.timeEnd == null ? null : new Date(new Date('1970-01-01 ' + v.timeEnd).getTime() - (new Date('1970-01-01 ' + v.timeEnd).getTimezoneOffset() * 60000)).toISOString(), + })) + + + const dataDetailCreate = await prisma.projectTaskDetail.createMany({ + data: dataDetailFix + }) + } + // create log user const log = await createLogUserMobile({ act: 'CREATE', desc: 'User membuat data tahapan kegiatan', table: 'projectTask', data: String(dataCreate.id), user: userMobile.id }) diff --git a/src/app/api/mobile/project/detail/[id]/route.ts b/src/app/api/mobile/project/detail/[id]/route.ts index 22c7b94..73630a8 100644 --- a/src/app/api/mobile/project/detail/[id]/route.ts +++ b/src/app/api/mobile/project/detail/[id]/route.ts @@ -231,7 +231,7 @@ export async function GET(request: Request, context: { params: { id: string } }) export async function POST(request: Request, context: { params: { id: string } }) { try { const { id } = context.params; - const { title, dateStart, dateEnd, user } = (await request.json()); + const { title, dateStart, dateEnd, user, dataDetail } = (await request.json()); const userMobile = await funGetUserById({ id: String(user) }) if (userMobile.id == "null" || userMobile.id == undefined || userMobile.id == "") { @@ -264,6 +264,26 @@ export async function POST(request: Request, context: { params: { id: string } } } }) + const dataDetailDelete = await prisma.projectTaskDetail.deleteMany({ + where: { + idTask: id + } + }) + + if (dataDetail.length > 0) { + const dataDetailFix = dataDetail.map((v: any) => ({ + ...v, + idTask: id, + date: new Date(v.date), + timeStart: v.timeStart == null ? null : new Date(new Date('1970-01-01 ' + v.timeStart).getTime() - (new Date('1970-01-01 ' + v.timeStart).getTimezoneOffset() * 60000)).toISOString(), + timeEnd: v.timeEnd == null ? null : new Date(new Date('1970-01-01 ' + v.timeEnd).getTime() - (new Date('1970-01-01 ' + v.timeEnd).getTimezoneOffset() * 60000)).toISOString(), + })) + + const dataDetailCreate = await prisma.projectTaskDetail.createMany({ + data: dataDetailFix + }) + } + // create log user const log = await createLogUserMobile({ act: 'UPDATE', desc: 'User mengupdate tahapan kegiatan', table: 'projectTask', data: String(id), user: userMobile.id }) diff --git a/src/app/api/mobile/project/route.ts b/src/app/api/mobile/project/route.ts index 1950782..5a2c8a8 100644 --- a/src/app/api/mobile/project/route.ts +++ b/src/app/api/mobile/project/route.ts @@ -179,16 +179,33 @@ export async function POST(request: Request) { if (task.length > 0) { const dataProject = task.map((v: any) => ({ - ..._.omit(v, ["dateStart", "dateEnd", "name", "dateEndFix", "dateStartFix"]), + ..._.omit(v, ["dateStart", "dateEnd", "name", "dateEndFix", "dateStartFix", "dataDetail"]), idProject: data.id, title: v.title, dateStart: new Date(v.dateStartFix), dateEnd: new Date(v.dateEndFix), })) + let dataDetailFix = [] + for (let i = 0; i < dataProject.length; i++) { + const insertTask = await prisma.projectTask.create({ + data: dataProject[i], + select: { + id: true + } + }) + const dataDetail = task[i].dataDetail.map((v: any) => ({ + ...v, + idTask: insertTask.id, + date: new Date(v.date), + timeStart: v.timeStart == null ? null : new Date(new Date('1970-01-01 ' + v.timeStart).getTime() - (new Date('1970-01-01 ' + v.timeStart).getTimezoneOffset() * 60000)).toISOString(), + timeEnd: v.timeEnd == null ? null : new Date(new Date('1970-01-01 ' + v.timeEnd).getTime() - (new Date('1970-01-01 ' + v.timeEnd).getTimezoneOffset() * 60000)).toISOString(), + })) + dataDetailFix.push(...dataDetail) + } - const insertTask = await prisma.projectTask.createMany({ - data: dataProject + const insertDetail = await prisma.projectTaskDetail.createMany({ + data: dataDetailFix }) }