diff --git a/.strapi-updater.json b/.strapi-updater.json index 2f0c63f..6ae97a2 100644 --- a/.strapi-updater.json +++ b/.strapi-updater.json @@ -1,5 +1,5 @@ { - "latest": "4.3.2", - "lastUpdateCheck": 1659378281443, - "lastNotification": 1659378281391 + "latest": "4.3.9", + "lastUpdateCheck": 1663924620565, + "lastNotification": 1663924620540 } \ No newline at end of file diff --git a/package.json b/package.json index 3a82741..1e250cb 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,10 @@ "strapi": "strapi" }, "dependencies": { - "@strapi/plugin-graphql": "^4.1.8", - "@strapi/plugin-i18n": "4.1.8", - "@strapi/plugin-users-permissions": "4.1.8", - "@strapi/strapi": "4.1.8", + "@strapi/plugin-graphql": "^4.3.2", + "@strapi/plugin-i18n": "4.3.2", + "@strapi/plugin-users-permissions": "4.3.2", + "@strapi/strapi": "4.3.2", "moment": "^2.29.3", "mysql": "2.18.1" }, diff --git a/src/api/material/controllers/material.js b/src/api/material/controllers/material.js index f2c401b..feb65d0 100644 --- a/src/api/material/controllers/material.js +++ b/src/api/material/controllers/material.js @@ -16,95 +16,115 @@ module.exports = createCoreController('api::material.material',({ strapi }) => }, async create(ctx) { const data = JSON.parse(ctx.request.body.data); - if(data["Start_Date"])data["Start_Date"]= moment(data['Start_Date'],'MM/DD/YYYY').format('YYYY-MM-DD') - if(data["End_Date"])data["End_Date"]= moment(data['End_Date'],'MM/DD/YYYY').format('YYYY-MM-DD') - if(data["Presented"])data["Presented"]= moment(data['Presented'],'MM/DD/YYYY').format('YYYY-MM-DD') - var matPintar; - // if(data.Category == 'Pintar'){ - if(data.withSummary && data.withSummary == 'y'){ - data.By_Admin = true; - const companyName = await strapi.entityService.findOne('api::company.company', data.company); - const divisionName = await strapi.entityService.findOne('api::division.division', data.division); - // console.log(companyName,divisionName); - matPintar = await strapi.entityService.create('api::pintar-summary.pintar-summary', { - data: { - Company : companyName?companyName.Name:data.company, - Division : divisionName?divisionName.Name:data.division, - } - }); - } - if(data.division && data.division != 'All' && data.company && data.company != 'All'){ + if(data.division && data.company){ + if(data["Start_Date"])data["Start_Date"]= moment(data['Start_Date'],'MM/DD/YYYY').format('YYYY-MM-DD') + if(data["End_Date"])data["End_Date"]= moment(data['End_Date'],'MM/DD/YYYY').format('YYYY-MM-DD') + if(data["Presented"])data["Presented"]= moment(data['Presented'],'MM/DD/YYYY').format('YYYY-MM-DD') + var listCompany = data.company.split(','); + var listDivisi = data.division.split(','); + var matPintar; + + // if(data.Category == 'Pintar'){ if(data.withSummary && data.withSummary == 'y'){ - if(matPintar)data["pintar_summary"] = matPintar.id; + data.By_Admin = true; + const companyName = await strapi.entityService.findMany('api::company.company', { + filters:{ + id:{ + $in: listCompany, + } + } + }); + const divisionName = await strapi.entityService.findMany('api::division.division', { + filters:{ + id:{ + $in: listDivisi, + } + } + }); + // console.log(companyName.map(i=>i.Name).join(' , '),divisionName.map(i=>i.Name).join(' , ')); + matPintar = await strapi.entityService.create('api::pintar-summary.pintar-summary', { + data: { + Company : companyName && companyName.length>0?companyName.map(i=>i.Name).join(' , '):data.company, + Division : divisionName&& divisionName.length>0?divisionName.map(i=>i.Name).join(' , '):data.division, + } + }); } - ctx.request.body.data = JSON.stringify(data); - const response = await super.create(ctx); - if(response.data.id){ - console.log('participant Luisr',data.ParticipantList); - var participants = (data.ParticipantList) - ?(typeof data.ParticipantList == "string")?JSON.parse(data.ParticipantList):data.ParticipantList - :[]; - if(participants && participants.length>0){ - for(var i=0;ikey.toUpperCase().includes('EMAIL'))[0]], - Name : item[keys.filter((key)=>key.toUpperCase().includes('NAMA'))[0]], - Division : item[keys.filter((key)=>key.toUpperCase().includes('DIVISI'))[0]], - Company : item[keys.filter((key)=>key.toUpperCase().includes('COMPANY'))[0]], - material : response.data.id - } - }); + if(listDivisi.length==1 && !listDivisi.includes('All') && listCompany.length==1 && !listCompany.includes('All')){ + if(data.withSummary && data.withSummary == 'y'){ + if(matPintar)data["pintar_summary"] = matPintar.id; + } + ctx.request.body.data = JSON.stringify(data); + const response = await super.create(ctx); + if(response.data.id){ + // console.log('participant Luisr',data.ParticipantList); + var participants = (data.ParticipantList) + ?(typeof data.ParticipantList == "string")?JSON.parse(data.ParticipantList):data.ParticipantList + :[]; + if(participants && participants.length>0){ + for(var i=0;ikey.toUpperCase().includes('EMAIL'))[0]], + Name : item[keys.filter((key)=>key.toUpperCase().includes('NAMA'))[0]], + Division : item[keys.filter((key)=>key.toUpperCase().includes('DIVISI'))[0]], + Company : item[keys.filter((key)=>key.toUpperCase().includes('COMPANY'))[0]], + material : response.data.id + } + }); + } } } + return response; } - return response; - } - else{ - if(data.withSummary && data.withSummary == 'y'){ - if(matPintar)data["pintar_summary"] = matPintar.id; - } - var divFilter = (data.division=='All')?{}:{id:{$eq: data.division,}}; - const entity = await strapi.entityService.findMany('api::division.division', { - fields: ['Name'], - populate: { companies: true }, - filters:divFilter - }); - const companyFilter = data.company; - var response,attachments,thumbnail; - for(var i=0;ii.id==data.company); + else{ + if(data.withSummary && data.withSummary == 'y'){ + if(matPintar)data["pintar_summary"] = matPintar.id; } - for(var j=0;ji.id); - thumbnail = mat.Thumbnail.id; + var divFilter = (listDivisi.includes('All'))?{}:{id:{$in: listDivisi,}}; + const entity = await strapi.entityService.findMany('api::division.division', { + fields: ['Name'], + populate: { companies: true }, + filters:divFilter + }); + // const companyFilter = data.company; + var response,attachments,thumbnail; + for(var i=0;ilistCompany.includes(i.id.toString())); } - else{ - data["Attachments"]=attachments; - data["Thumbnail"]=thumbnail; - data['publishedAt'] = moment().format('YYYY-MM-DD'); - response = await strapi.entityService.create('api::material.material',{ - data:data - }).catch(e=>console.log(e)); + for(var j=0;ji.id); + thumbnail = mat.Thumbnail.id; + } + else{ + data["Attachments"]=attachments; + data["Thumbnail"]=thumbnail; + data['publishedAt'] = moment().format('YYYY-MM-DD'); + response = await strapi.entityService.create('api::material.material',{ + data:data + }).catch(e=>console.log(e)); + } } } - } - return response; - } + return response; + } + } + else{ + return ctx.badRequest('Company dan Divisi harus diisi!'); + } }, async update(ctx) { const editable = await strapi.entityService.findOne('api::editable.editable', 1, {