@things-factory/operato-pms 9.0.0-beta.9 → 9.0.1
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.
- package/_index.html +0 -1
- package/dist-server/controllers/render-dispatchment.js +2 -2
- package/dist-server/controllers/render-dispatchment.js.map +1 -1
- package/dist-server/graphql/resolvers/block/block-query.js +1 -2
- package/dist-server/graphql/resolvers/block/block-query.js.map +1 -1
- package/dist-server/graphql/resolvers/block/index.js +4 -1
- package/dist-server/graphql/resolvers/block/index.js.map +1 -1
- package/dist-server/graphql/resolvers/block/update-multiple-block.js +17 -6
- package/dist-server/graphql/resolvers/block/update-multiple-block.js.map +1 -1
- package/dist-server/graphql/resolvers/block-detail/index.js +4 -1
- package/dist-server/graphql/resolvers/block-detail/index.js.map +1 -1
- package/dist-server/graphql/resolvers/block-detail/update-multiple-block-detail.js +18 -7
- package/dist-server/graphql/resolvers/block-detail/update-multiple-block-detail.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-block-detail/create-daily-block-detail.js +6 -1
- package/dist-server/graphql/resolvers/daily-block-detail/create-daily-block-detail.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-block-detail/daily-block-detail-query.js +1 -2
- package/dist-server/graphql/resolvers/daily-block-detail/daily-block-detail-query.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-block-detail/index.js +7 -1
- package/dist-server/graphql/resolvers/daily-block-detail/index.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-block-detail/update-daily-block-detail.js +5 -1
- package/dist-server/graphql/resolvers/daily-block-detail/update-daily-block-detail.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-block-detail/update-multiple-daily-block-detail.js +13 -4
- package/dist-server/graphql/resolvers/daily-block-detail/update-multiple-daily-block-detail.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js +1 -2
- package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +19 -11
- package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-dispatch/index.js +5 -1
- package/dist-server/graphql/resolvers/daily-dispatch/index.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +11 -3
- package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.js +1 -2
- package/dist-server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js +1 -2
- package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js +5 -1
- package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +14 -6
- package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-harvest/index.js +5 -1
- package/dist-server/graphql/resolvers/daily-harvest/index.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js +12 -4
- package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.js +1 -2
- package/dist-server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js +1 -2
- package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +16 -7
- package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading/index.js +5 -1
- package/dist-server/graphql/resolvers/daily-loading/index.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +21 -11
- package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.js +1 -2
- package/dist-server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading-ramp/index.js +4 -1
- package/dist-server/graphql/resolvers/daily-loading-ramp/index.js.map +1 -1
- package/dist-server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.js +5 -1
- package/dist-server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +16 -2
- package/dist-server/graphql/resolvers/dashboard/dashboard-query.js.map +1 -1
- package/dist-server/graphql/resolvers/organization/index.js +4 -1
- package/dist-server/graphql/resolvers/organization/index.js.map +1 -1
- package/dist-server/graphql/resolvers/organization/organization-query.js +1 -2
- package/dist-server/graphql/resolvers/organization/organization-query.js.map +1 -1
- package/dist-server/graphql/resolvers/organization/update-multiple-organization.js +14 -4
- package/dist-server/graphql/resolvers/organization/update-multiple-organization.js.map +1 -1
- package/dist-server/graphql/resolvers/organization-staff/index.js +4 -1
- package/dist-server/graphql/resolvers/organization-staff/index.js.map +1 -1
- package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js +5 -4
- package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js.map +1 -1
- package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.js +19 -10
- package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.js.map +1 -1
- package/dist-server/graphql/resolvers/plantation-inventory/plantation-inventory-query.js +5 -1
- package/dist-server/graphql/resolvers/plantation-inventory/plantation-inventory-query.js.map +1 -1
- package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js +6 -1
- package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js.map +1 -1
- package/dist-server/graphql/resolvers/plantation-setting/index.js +7 -1
- package/dist-server/graphql/resolvers/plantation-setting/index.js.map +1 -1
- package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js +3 -1
- package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js.map +1 -1
- package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js +13 -4
- package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js.map +1 -1
- package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js +5 -1
- package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js.map +1 -1
- package/dist-server/graphql/resolvers/ramp/index.js +4 -1
- package/dist-server/graphql/resolvers/ramp/index.js.map +1 -1
- package/dist-server/graphql/resolvers/ramp/ramp-query.js +1 -2
- package/dist-server/graphql/resolvers/ramp/ramp-query.js.map +1 -1
- package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.js +19 -10
- package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.js.map +1 -1
- package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js +3 -1
- package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/index.js +10 -1
- package/dist-server/graphql/resolvers/report/index.js.map +1 -1
- package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +3 -1
- package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js +3 -1
- package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js +3 -1
- package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/report/monthly-production-reports.js +4 -1
- package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -1
- package/dist-server/graphql/resolvers/truck/index.js +4 -1
- package/dist-server/graphql/resolvers/truck/index.js.map +1 -1
- package/dist-server/graphql/resolvers/truck/truck-query.js +1 -2
- package/dist-server/graphql/resolvers/truck/truck-query.js.map +1 -1
- package/dist-server/graphql/resolvers/truck/update-multiple-truck.js +17 -9
- package/dist-server/graphql/resolvers/truck/update-multiple-truck.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/dist-server/utils/no-generator.d.ts +4 -4
- package/dist-server/utils/transaction-util.js +18 -6
- package/dist-server/utils/transaction-util.js.map +1 -1
- package/package.json +56 -56
- package/views/auth-page.html +0 -1
- package/views/public/home.html +0 -1
|
@@ -13,11 +13,19 @@ exports.updateDailyDispatch = {
|
|
|
13
13
|
let foundDailyDispatchDetails = dailyDispatch.dailyDispatchDetails;
|
|
14
14
|
foundDailyDispatchDetails = foundDailyDispatchDetails.map(record => {
|
|
15
15
|
const matchedDispatchDetail = dailyDispatchDetails.find(dispatchDetail => dispatchDetail.name === record.name);
|
|
16
|
-
return
|
|
16
|
+
return {
|
|
17
|
+
...record,
|
|
18
|
+
...matchedDispatchDetail,
|
|
19
|
+
updater: user
|
|
20
|
+
};
|
|
17
21
|
});
|
|
18
22
|
await tx.getRepository(entities_1.DailyDispatchDetail).save(foundDailyDispatchDetails);
|
|
19
|
-
return await repository.save(
|
|
20
|
-
|
|
23
|
+
return await repository.save({
|
|
24
|
+
...dailyDispatch,
|
|
25
|
+
chitNo,
|
|
26
|
+
percentage,
|
|
27
|
+
updater: user
|
|
28
|
+
});
|
|
21
29
|
}
|
|
22
30
|
};
|
|
23
31
|
//# sourceMappingURL=update-daily-dispatch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-daily-dispatch.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-dispatch/update-daily-dispatch.ts"],"names":[],"mappings":";;;AAAA,gDAAsE;AAEzD,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,EAAE,OAAwB;QAC5G,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,wBAAa,CAAC,CAAA;QAClD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YAC1C,SAAS,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC,CAAA;QAEF,IAAI,yBAAyB,GAA0B,aAAa,CAAC,oBAAoB,CAAA;QAEzF,yBAAyB,GAAG,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACjE,MAAM,qBAAqB,GAAQ,oBAAoB,CAAC,IAAI,CAC1D,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CACtD,CAAA;YAED,
|
|
1
|
+
{"version":3,"file":"update-daily-dispatch.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-dispatch/update-daily-dispatch.ts"],"names":[],"mappings":";;;AAAA,gDAAsE;AAEzD,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,EAAE,OAAwB;QAC5G,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,wBAAa,CAAC,CAAA;QAClD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YAC1C,SAAS,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC,CAAA;QAEF,IAAI,yBAAyB,GAA0B,aAAa,CAAC,oBAAoB,CAAA;QAEzF,yBAAyB,GAAG,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACjE,MAAM,qBAAqB,GAAQ,oBAAoB,CAAC,IAAI,CAC1D,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CACtD,CAAA;YAED,OAAO;gBACL,GAAG,MAAM;gBACT,GAAG,qBAAqB;gBACxB,OAAO,EAAE,IAAI;aACd,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAmB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAE3E,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC;YAC3B,GAAG,aAAa;YAChB,MAAM;YACN,UAAU;YACV,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;CACF,CAAA","sourcesContent":["import { DailyDispatch, DailyDispatchDetail } from '../../../entities'\n\nexport const updateDailyDispatch = {\n async updateDailyDispatch(_: any, { name, chitNo, percentage, dailyDispatchDetails }, context: ResolverContext) {\n const { domain, tx, user } = context.state\n\n const repository = tx.getRepository(DailyDispatch)\n const dailyDispatch = await repository.findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['dailyDispatchDetails']\n })\n\n let foundDailyDispatchDetails: DailyDispatchDetail[] = dailyDispatch.dailyDispatchDetails\n\n foundDailyDispatchDetails = foundDailyDispatchDetails.map(record => {\n const matchedDispatchDetail: any = dailyDispatchDetails.find(\n dispatchDetail => dispatchDetail.name === record.name\n )\n\n return {\n ...record,\n ...matchedDispatchDetail,\n updater: user\n }\n })\n\n await tx.getRepository(DailyDispatchDetail).save(foundDailyDispatchDetails)\n\n return await repository.save({\n ...dailyDispatch,\n chitNo,\n percentage,\n updater: user\n })\n }\n}\n"]}
|
|
@@ -13,7 +13,6 @@ exports.Query = {
|
|
|
13
13
|
});
|
|
14
14
|
},
|
|
15
15
|
async dailyDispatchDetails(_, params, context) {
|
|
16
|
-
var _a;
|
|
17
16
|
const { tx } = context.state;
|
|
18
17
|
const queryBuilder = tx.getRepository(entities_1.DailyDispatchDetail).createQueryBuilder();
|
|
19
18
|
(0, shell_1.buildQuery)(queryBuilder, params, context);
|
|
@@ -23,7 +22,7 @@ exports.Query = {
|
|
|
23
22
|
.leftJoinAndSelect('DailyDispatchDetail.ramp', 'Ramp')
|
|
24
23
|
.leftJoinAndSelect('DailyDispatchDetail.creator', 'Creator')
|
|
25
24
|
.leftJoinAndSelect('DailyDispatchDetail.updater', 'Updater');
|
|
26
|
-
if (
|
|
25
|
+
if (params.filters?.length > 0)
|
|
27
26
|
queryBuilder.andWhere('DailyDispatchDetail.deletedAt IS NULL');
|
|
28
27
|
else
|
|
29
28
|
queryBuilder.where('DailyDispatchDetail.deletedAt IS NULL');
|
package/dist-server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daily-dispatch-detail-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAE/C,iDAAqE;AAErE,gDAAoF;AAEvE,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAClE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAyB,CAAC,CAAC,OAAO,CAAC;YAC/D,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;SACrE,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB
|
|
1
|
+
{"version":3,"file":"daily-dispatch-detail-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAE/C,iDAAqE;AAErE,gDAAoF;AAEvE,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAClE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAyB,CAAC,CAAC,OAAO,CAAC;YAC/D,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;SACrE,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAC5E,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAyB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACrF,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,4BAA4B,EAAE,QAAQ,CAAC;aACzD,iBAAiB,CAAC,mCAAmC,EAAE,eAAe,CAAC;aACvE,iBAAiB,CAAC,0BAA0B,EAAE,MAAM,CAAC;aACrD,iBAAiB,CAAC,6BAA6B,EAAE,SAAS,CAAC;aAC3D,iBAAiB,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAA;QAE9D,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAA;;YACzF,YAAY,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAEhE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { EntityManager, IsNull } from 'typeorm'\n\nimport { buildQuery, Domain, ListParam } from '@things-factory/shell'\n\nimport { DailyDispatchDetail as DailyDispatchDetailEntity } from '../../../entities'\n\nexport const Query = {\n async dailyDispatchDetail(_: any, { name }, context: ResolverContext) {\n const { domain, tx } = context.state\n\n return await tx.getRepository(DailyDispatchDetailEntity).findOne({\n where: { domain: { id: domain.id }, name, deletedAt: IsNull() },\n relations: ['domain', 'dailyDispatch', 'ramp', 'creator', 'updater']\n })\n },\n\n async dailyDispatchDetails(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(DailyDispatchDetailEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('DailyDispatchDetail.domain', 'Domain')\n .leftJoinAndSelect('DailyDispatchDetail.dailyDispatch', 'DailyDispatch')\n .leftJoinAndSelect('DailyDispatchDetail.ramp', 'Ramp')\n .leftJoinAndSelect('DailyDispatchDetail.creator', 'Creator')\n .leftJoinAndSelect('DailyDispatchDetail.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('DailyDispatchDetail.deletedAt IS NULL')\n else queryBuilder.where('DailyDispatchDetail.deletedAt IS NULL')\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n}\n"]}
|
|
@@ -24,7 +24,6 @@ exports.Query = {
|
|
|
24
24
|
});
|
|
25
25
|
},
|
|
26
26
|
async dailyHarvests(_, params, context) {
|
|
27
|
-
var _a;
|
|
28
27
|
const { tx } = context.state;
|
|
29
28
|
const queryBuilder = tx.getRepository(entities_1.DailyHarvest).createQueryBuilder();
|
|
30
29
|
(0, shell_1.buildQuery)(queryBuilder, params, context);
|
|
@@ -33,7 +32,7 @@ exports.Query = {
|
|
|
33
32
|
.leftJoinAndSelect('DailyHarvest.block', 'Block')
|
|
34
33
|
.leftJoinAndSelect('DailyHarvest.creator', 'Creator')
|
|
35
34
|
.leftJoinAndSelect('DailyHarvest.updater', 'Updater');
|
|
36
|
-
if (
|
|
35
|
+
if (params.filters?.length > 0)
|
|
37
36
|
queryBuilder.andWhere('DailyHarvest.deletedAt IS NULL');
|
|
38
37
|
else
|
|
39
38
|
queryBuilder.where('DailyHarvest.deletedAt IS NULL');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daily-harvest-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/daily-harvest-query.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAE/C,iDAAqE;AAErE,gDAAyF;AAE5E,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,YAAY,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAC3D,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,WAAW,GAAsB,MAAM,EAAE;aAC5C,aAAa,CAAC,4BAAiB,CAAC;aAChC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAEpD,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAkB,CAAC,CAAC,OAAO,CAAC;YACxD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE;gBACT,QAAQ;gBACR,OAAO;gBACP,qBAAqB;gBACrB,uCAAuC;gBACvC,oDAAoD;gBACpD,SAAS;gBACT,SAAS;aACV;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB
|
|
1
|
+
{"version":3,"file":"daily-harvest-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/daily-harvest-query.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAE/C,iDAAqE;AAErE,gDAAyF;AAE5E,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,YAAY,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAC3D,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,WAAW,GAAsB,MAAM,EAAE;aAC5C,aAAa,CAAC,4BAAiB,CAAC;aAChC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAEpD,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAkB,CAAC,CAAC,OAAO,CAAC;YACxD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE;gBACT,QAAQ;gBACR,OAAO;gBACP,qBAAqB;gBACrB,uCAAuC;gBACvC,oDAAoD;gBACpD,SAAS;gBACT,SAAS;aACV;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QACrE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,uBAAkB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QAC9E,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,qBAAqB,EAAE,QAAQ,CAAC;aAClD,iBAAiB,CAAC,oBAAoB,EAAE,OAAO,CAAC;aAChD,iBAAiB,CAAC,sBAAsB,EAAE,SAAS,CAAC;aACpD,iBAAiB,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;QAEvD,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAA;;YAClF,YAAY,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAEzD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { EntityManager, IsNull } from 'typeorm'\n\nimport { buildQuery, Domain, ListParam } from '@things-factory/shell'\n\nimport { DailyHarvest as DailyHarvestEntity, RecordTransaction } from '../../../entities'\n\nexport const Query = {\n async dailyHarvest(_: any, { name }, context: ResolverContext) {\n const { domain, tx } = context.state\n\n const transaction: RecordTransaction = await tx\n .getRepository(RecordTransaction)\n .findOne({ where: { domain: { id: domain.id } } })\n\n return await tx.getRepository(DailyHarvestEntity).findOne({\n where: { domain: { id: domain.id }, name, deletedAt: IsNull() },\n relations: [\n 'domain',\n 'block',\n 'dailyHarvestDetails',\n 'dailyHarvestDetails.organizationStaff',\n 'dailyHarvestDetails.organizationStaff.organization',\n 'creator',\n 'updater'\n ]\n })\n },\n\n async dailyHarvests(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(DailyHarvestEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('DailyHarvest.domain', 'Domain')\n .leftJoinAndSelect('DailyHarvest.block', 'Block')\n .leftJoinAndSelect('DailyHarvest.creator', 'Creator')\n .leftJoinAndSelect('DailyHarvest.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('DailyHarvest.deletedAt IS NULL')\n else queryBuilder.where('DailyHarvest.deletedAt IS NULL')\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n}\n"]}
|
|
@@ -28,7 +28,11 @@ exports.deleteDailyHarvest = {
|
|
|
28
28
|
where: { domain: { id: domain.id }, block: { id: dailyHarvest.block.id }, type: constants_1.INVENTORY_TYPE.FIELD_BUNCHES },
|
|
29
29
|
relations: ['domain', 'block']
|
|
30
30
|
});
|
|
31
|
-
await tx.getRepository(entities_1.PlantationInventory).save(
|
|
31
|
+
await tx.getRepository(entities_1.PlantationInventory).save({
|
|
32
|
+
...foundPlantationInv,
|
|
33
|
+
totalBunches: foundPlantationInv.totalBunches - dailyHarvest.totalBunchHarvested,
|
|
34
|
+
updater: user
|
|
35
|
+
});
|
|
32
36
|
await (0, utils_1.generateTransactionHistory)(dailyHarvest.block, domain, null, dailyHarvest.id, dailyHarvest.name, constants_1.TRANSACTION_TYPE.TERMINATED, dailyHarvest.harvestDate, -dailyHarvest.totalBunchHarvested, 0, user, tx);
|
|
33
37
|
return true;
|
|
34
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/delete-daily-harvest.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,kDAAqE;AACrE,gDAAyF;AACzF,0CAA2D;AAE9C,QAAA,kBAAkB,GAAG;IAChC,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QACjE,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAC1C,MAAM,YAAY,GAAG,MAAM,EAAE;iBAC1B,aAAa,CAAC,uBAAY,CAAC;iBAC3B,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAEhF,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,MAAM,CACzC;gBACE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,IAAI;aACL,EACD;gBACE,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CACF,CAAA;YAED,MAAM,EAAE,CAAC,aAAa,CAAC,6BAAkB,CAAC,CAAC,MAAM,CAC/C;gBACE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,YAAY,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE;aACtC,EACD;gBACE,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CACF,CAAA;YAED,MAAM,kBAAkB,GAAwB,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAmB,CAAC,CAAC,OAAO,CAAC;gBAClG,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,0BAAc,CAAC,aAAa,EAAE;gBAC9G,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;aAC/B,CAAC,CAAA;YAEF,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAmB,CAAC,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"delete-daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/delete-daily-harvest.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,kDAAqE;AACrE,gDAAyF;AACzF,0CAA2D;AAE9C,QAAA,kBAAkB,GAAG;IAChC,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QACjE,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAC1C,MAAM,YAAY,GAAG,MAAM,EAAE;iBAC1B,aAAa,CAAC,uBAAY,CAAC;iBAC3B,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAEhF,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,MAAM,CACzC;gBACE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,IAAI;aACL,EACD;gBACE,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CACF,CAAA;YAED,MAAM,EAAE,CAAC,aAAa,CAAC,6BAAkB,CAAC,CAAC,MAAM,CAC/C;gBACE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,YAAY,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE;aACtC,EACD;gBACE,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CACF,CAAA;YAED,MAAM,kBAAkB,GAAwB,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAmB,CAAC,CAAC,OAAO,CAAC;gBAClG,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,0BAAc,CAAC,aAAa,EAAE;gBAC9G,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;aAC/B,CAAC,CAAA;YAEF,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAmB,CAAC,CAAC,IAAI,CAAC;gBAC/C,GAAG,kBAAkB;gBACrB,YAAY,EAAE,kBAAkB,CAAC,YAAY,GAAG,YAAY,CAAC,mBAAmB;gBAChF,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;YAEF,MAAM,IAAA,kCAA0B,EAC9B,YAAY,CAAC,KAAK,EAClB,MAAM,EACN,IAAI,EACJ,YAAY,CAAC,EAAE,EACf,YAAY,CAAC,IAAI,EACjB,4BAAgB,CAAC,UAAU,EAC3B,YAAY,CAAC,WAAW,EACxB,CAAC,YAAY,CAAC,mBAAmB,EACjC,CAAC,EACD,IAAI,EACJ,EAAE,CACH,CAAA;YAED,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA","sourcesContent":["import { IsNull } from 'typeorm'\n\nimport { INVENTORY_TYPE, TRANSACTION_TYPE } from '../../../constants'\nimport { DailyHarvest, DailyHarvestDetail, PlantationInventory } from '../../../entities'\nimport { generateTransactionHistory } from '../../../utils'\n\nexport const deleteDailyHarvest = {\n async deleteDailyHarvest(_: any, { name }, context: ResolverContext) {\n try {\n const { domain, user, tx } = context.state\n const dailyHarvest = await tx\n .getRepository(DailyHarvest)\n .findOneOrFail({ where: { name, deletedAt: IsNull() }, relations: ['block'] })\n\n await tx.getRepository(DailyHarvest).update(\n {\n domain: { id: domain.id },\n name\n },\n {\n deletedAt: new Date()\n }\n )\n\n await tx.getRepository(DailyHarvestDetail).update(\n {\n domain: { id: domain.id },\n dailyHarvest: { id: dailyHarvest.id }\n },\n {\n deletedAt: new Date()\n }\n )\n\n const foundPlantationInv: PlantationInventory = await tx.getRepository(PlantationInventory).findOne({\n where: { domain: { id: domain.id }, block: { id: dailyHarvest.block.id }, type: INVENTORY_TYPE.FIELD_BUNCHES },\n relations: ['domain', 'block']\n })\n\n await tx.getRepository(PlantationInventory).save({\n ...foundPlantationInv,\n totalBunches: foundPlantationInv.totalBunches - dailyHarvest.totalBunchHarvested,\n updater: user\n })\n\n await generateTransactionHistory(\n dailyHarvest.block,\n domain,\n null,\n dailyHarvest.id,\n dailyHarvest.name,\n TRANSACTION_TYPE.TERMINATED,\n dailyHarvest.harvestDate,\n -dailyHarvest.totalBunchHarvested,\n 0,\n user,\n tx\n )\n\n return true\n } catch (error) {\n throw error\n }\n }\n}\n"]}
|
|
@@ -39,7 +39,7 @@ exports.generateDailyHarvest = {
|
|
|
39
39
|
await tx.getRepository(entities_1.DailyHarvest).save(newDailyHarvest);
|
|
40
40
|
// 2. Create daily harvest detail
|
|
41
41
|
await addDailyHarvestDetail(domain, newDailyHarvest, dailyHarvestDetails.map((record) => {
|
|
42
|
-
return
|
|
42
|
+
return { ...record };
|
|
43
43
|
}), user, tx);
|
|
44
44
|
// 3. Create bunches inventory in field
|
|
45
45
|
await addPlantationInventory(domain, newDailyHarvest, block, user, tx);
|
|
@@ -47,15 +47,23 @@ exports.generateDailyHarvest = {
|
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
49
|
async function addDailyHarvestDetail(domain, newDailyHarvest, dailyHarvestDetails, user, tx) {
|
|
50
|
-
const organizationStaffRepo =
|
|
51
|
-
const dailyHarvestDetailRepo =
|
|
50
|
+
const organizationStaffRepo = tx?.getRepository(entities_1.OrganizationStaff) || (0, shell_1.getRepository)(entities_1.OrganizationStaff);
|
|
51
|
+
const dailyHarvestDetailRepo = tx?.getRepository(entities_1.DailyHarvestDetail) || (0, shell_1.getRepository)(entities_1.DailyHarvestDetail);
|
|
52
52
|
dailyHarvestDetails = await Promise.all(dailyHarvestDetails.map(async (record) => {
|
|
53
|
-
return
|
|
53
|
+
return {
|
|
54
|
+
...record,
|
|
55
|
+
domain,
|
|
56
|
+
name: utils_1.NoGenerator.dailyHarvestDetail(),
|
|
57
|
+
organizationStaff: await organizationStaffRepo.findOneBy({ id: record.organizationStaff.id }),
|
|
58
|
+
dailyHarvest: newDailyHarvest,
|
|
59
|
+
creator: user,
|
|
60
|
+
updater: user
|
|
61
|
+
};
|
|
54
62
|
}));
|
|
55
63
|
await dailyHarvestDetailRepo.save(dailyHarvestDetails);
|
|
56
64
|
}
|
|
57
65
|
async function addPlantationInventory(domain, newDailyHarvest, block, user, tx) {
|
|
58
|
-
const plantationInvRepo =
|
|
66
|
+
const plantationInvRepo = tx?.getRepository(entities_1.PlantationInventory) || (0, shell_1.getRepository)(entities_1.PlantationInventory);
|
|
59
67
|
let existingFieldBunch = await plantationInvRepo.findOne({
|
|
60
68
|
where: { domain: { id: domain.id }, block: { id: block.id }, type: constants_1.INVENTORY_TYPE.FIELD_BUNCHES },
|
|
61
69
|
relations: ['domain', 'block']
|
|
@@ -64,7 +72,7 @@ async function addPlantationInventory(domain, newDailyHarvest, block, user, tx)
|
|
|
64
72
|
if (existingFieldBunch) {
|
|
65
73
|
const totalBunches = existingFieldBunch.totalBunches;
|
|
66
74
|
if (totalBunches < 0) {
|
|
67
|
-
existingFieldBunch = await plantationInvRepo.save(
|
|
75
|
+
existingFieldBunch = await plantationInvRepo.save({ ...existingFieldBunch, totalBunches: 0 });
|
|
68
76
|
}
|
|
69
77
|
newTotalBunches = existingFieldBunch.totalBunches + newDailyHarvest.totalBunchHarvested;
|
|
70
78
|
existingFieldBunch.totalBunches = newTotalBunches;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, IsNull, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_STATUS, INVENTORY_TYPE, RECORD_STATUS, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyHarvest, DailyHarvestDetail, OrganizationStaff, PlantationInventory } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const generateDailyHarvest = {\n async generateDailyHarvest(_: any, { dailyHarvest }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n let dailyHarvestDetails: DailyHarvestDetail[] = dailyHarvest.dailyHarvestDetails\n\n const block: Block = await tx.getRepository(Block).findOne({\n where: { domain: { id: domain.id }, name: dailyHarvest.block, deletedAt: IsNull() }\n })\n\n // get sum of bunch harvested from all staff\n const totalBunchHarvested: number = dailyHarvestDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchHarvested\n }, 0)\n\n const collectedBunch: number = dailyHarvest.collectedBunch || 0\n let yesterdayBalanceBunchInField: number = dailyHarvest.yesterdayBalanceBunchInField || 0\n\n // 1. Create daily harvest\n let newDailyHarvest: DailyHarvest = new DailyHarvest()\n newDailyHarvest.name = NoGenerator.dailyHarvest()\n newDailyHarvest.domain = domain\n newDailyHarvest.block = block\n newDailyHarvest.harvestingRound = dailyHarvest.harvestingRound\n newDailyHarvest.harvestDate = dailyHarvest.harvestDate\n newDailyHarvest.coverage = dailyHarvest.coverage\n newDailyHarvest.yesterdayBalanceBunchInField = yesterdayBalanceBunchInField\n newDailyHarvest.totalBunchHarvested = totalBunchHarvested\n newDailyHarvest.collectedBunch = collectedBunch\n newDailyHarvest.balanceBunchInField = yesterdayBalanceBunchInField + totalBunchHarvested - collectedBunch\n newDailyHarvest.status = RECORD_STATUS.STORED\n newDailyHarvest.creator = user\n newDailyHarvest.updater = user\n\n await tx.getRepository(DailyHarvest).save(newDailyHarvest)\n\n // 2. Create daily harvest detail\n await addDailyHarvestDetail(\n domain,\n newDailyHarvest,\n dailyHarvestDetails.map((record: DailyHarvestDetail) => {\n return { ...record }\n }),\n user,\n tx\n )\n\n // 3. Create bunches inventory in field\n await addPlantationInventory(domain, newDailyHarvest, block, user, tx)\n\n return newDailyHarvest\n }\n}\n\nexport async function addDailyHarvestDetail(\n domain: Domain,\n newDailyHarvest: DailyHarvest,\n dailyHarvestDetails: DailyHarvestDetail[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const organizationStaffRepo: Repository<OrganizationStaff> =\n tx?.getRepository(OrganizationStaff) || getRepository(OrganizationStaff)\n const dailyHarvestDetailRepo: Repository<DailyHarvestDetail> =\n tx?.getRepository(DailyHarvestDetail) || getRepository(DailyHarvestDetail)\n\n dailyHarvestDetails = await Promise.all(\n dailyHarvestDetails.map(async (record: DailyHarvestDetail) => {\n return {\n ...record,\n domain,\n name: NoGenerator.dailyHarvestDetail(),\n organizationStaff: await organizationStaffRepo.findOneBy({ id: record.organizationStaff.id }),\n dailyHarvest: newDailyHarvest,\n creator: user,\n updater: user\n }\n })\n )\n\n await dailyHarvestDetailRepo.save(dailyHarvestDetails)\n}\n\nexport async function addPlantationInventory(\n domain: Domain,\n newDailyHarvest: DailyHarvest,\n block: Block,\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n let existingFieldBunch: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, block: { id: block.id }, type: INVENTORY_TYPE.FIELD_BUNCHES },\n relations: ['domain', 'block']\n })\n\n let newTotalBunches: number = 0\n\n if (existingFieldBunch) {\n const totalBunches: number = existingFieldBunch.totalBunches\n\n if (totalBunches < 0) {\n existingFieldBunch = await plantationInvRepo.save({ ...existingFieldBunch, totalBunches: 0 })\n }\n\n newTotalBunches = existingFieldBunch.totalBunches + newDailyHarvest.totalBunchHarvested\n\n existingFieldBunch.totalBunches = newTotalBunches\n existingFieldBunch.updater = user\n existingFieldBunch = await plantationInvRepo.save(existingFieldBunch)\n\n await generateTransactionHistory(\n block,\n domain,\n null,\n newDailyHarvest.id,\n newDailyHarvest.name,\n TRANSACTION_TYPE.HARVEST,\n newDailyHarvest.harvestDate,\n newDailyHarvest.totalBunchHarvested,\n 0,\n user,\n tx\n )\n\n if (newDailyHarvest.collectedBunch > 0) {\n existingFieldBunch.totalBunches -= newDailyHarvest.collectedBunch\n existingFieldBunch.updater = user\n existingFieldBunch = await plantationInvRepo.save(existingFieldBunch)\n\n await generateTransactionHistory(\n block,\n domain,\n null,\n newDailyHarvest.id,\n newDailyHarvest.name,\n TRANSACTION_TYPE.LOADING,\n newDailyHarvest.harvestDate,\n -newDailyHarvest.collectedBunch,\n 0,\n user,\n tx\n )\n }\n } else {\n newTotalBunches = newTotalBunches + newDailyHarvest.totalBunchHarvested\n\n let plantationInventory: PlantationInventory = new PlantationInventory()\n plantationInventory.domain = domain\n plantationInventory.name = NoGenerator.fieldBunchName()\n plantationInventory.block = block\n plantationInventory.type = INVENTORY_TYPE.FIELD_BUNCHES\n plantationInventory.totalBunches = newTotalBunches\n plantationInventory.status = INVENTORY_STATUS.STORED\n plantationInventory.creator = user\n plantationInventory.updater = user\n\n plantationInventory = await plantationInvRepo.save(plantationInventory)\n\n await generateTransactionHistory(\n block,\n domain,\n null,\n newDailyHarvest.id,\n newDailyHarvest.name,\n TRANSACTION_TYPE.HARVEST,\n newDailyHarvest.harvestDate,\n newDailyHarvest.totalBunchHarvested,\n 0,\n user,\n tx\n )\n\n if (newDailyHarvest.collectedBunch > 0) {\n plantationInventory.totalBunches -= newDailyHarvest.collectedBunch\n plantationInventory.updater = user\n plantationInventory = await plantationInvRepo.save(plantationInventory)\n\n await generateTransactionHistory(\n block,\n domain,\n null,\n newDailyHarvest.id,\n newDailyHarvest.name,\n TRANSACTION_TYPE.LOADING,\n newDailyHarvest.harvestDate,\n -newDailyHarvest.collectedBunch,\n 0,\n user,\n tx\n )\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"generate-daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, IsNull, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_STATUS, INVENTORY_TYPE, RECORD_STATUS, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyHarvest, DailyHarvestDetail, OrganizationStaff, PlantationInventory } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const generateDailyHarvest = {\n async generateDailyHarvest(_: any, { dailyHarvest }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n let dailyHarvestDetails: DailyHarvestDetail[] = dailyHarvest.dailyHarvestDetails\n\n const block: Block = await tx.getRepository(Block).findOne({\n where: { domain: { id: domain.id }, name: dailyHarvest.block, deletedAt: IsNull() }\n })\n\n // get sum of bunch harvested from all staff\n const totalBunchHarvested: number = dailyHarvestDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchHarvested\n }, 0)\n\n const collectedBunch: number = dailyHarvest.collectedBunch || 0\n let yesterdayBalanceBunchInField: number = dailyHarvest.yesterdayBalanceBunchInField || 0\n\n // 1. Create daily harvest\n let newDailyHarvest: DailyHarvest = new DailyHarvest()\n newDailyHarvest.name = NoGenerator.dailyHarvest()\n newDailyHarvest.domain = domain\n newDailyHarvest.block = block\n newDailyHarvest.harvestingRound = dailyHarvest.harvestingRound\n newDailyHarvest.harvestDate = dailyHarvest.harvestDate\n newDailyHarvest.coverage = dailyHarvest.coverage\n newDailyHarvest.yesterdayBalanceBunchInField = yesterdayBalanceBunchInField\n newDailyHarvest.totalBunchHarvested = totalBunchHarvested\n newDailyHarvest.collectedBunch = collectedBunch\n newDailyHarvest.balanceBunchInField = yesterdayBalanceBunchInField + totalBunchHarvested - collectedBunch\n newDailyHarvest.status = RECORD_STATUS.STORED\n newDailyHarvest.creator = user\n newDailyHarvest.updater = user\n\n await tx.getRepository(DailyHarvest).save(newDailyHarvest)\n\n // 2. Create daily harvest detail\n await addDailyHarvestDetail(\n domain,\n newDailyHarvest,\n dailyHarvestDetails.map((record: DailyHarvestDetail) => {\n return { ...record }\n }),\n user,\n tx\n )\n\n // 3. Create bunches inventory in field\n await addPlantationInventory(domain, newDailyHarvest, block, user, tx)\n\n return newDailyHarvest\n }\n}\n\nexport async function addDailyHarvestDetail(\n domain: Domain,\n newDailyHarvest: DailyHarvest,\n dailyHarvestDetails: DailyHarvestDetail[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const organizationStaffRepo: Repository<OrganizationStaff> =\n tx?.getRepository(OrganizationStaff) || getRepository(OrganizationStaff)\n const dailyHarvestDetailRepo: Repository<DailyHarvestDetail> =\n tx?.getRepository(DailyHarvestDetail) || getRepository(DailyHarvestDetail)\n\n dailyHarvestDetails = await Promise.all(\n dailyHarvestDetails.map(async (record: DailyHarvestDetail) => {\n return {\n ...record,\n domain,\n name: NoGenerator.dailyHarvestDetail(),\n organizationStaff: await organizationStaffRepo.findOneBy({ id: record.organizationStaff.id }),\n dailyHarvest: newDailyHarvest,\n creator: user,\n updater: user\n }\n })\n )\n\n await dailyHarvestDetailRepo.save(dailyHarvestDetails)\n}\n\nexport async function addPlantationInventory(\n domain: Domain,\n newDailyHarvest: DailyHarvest,\n block: Block,\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n let existingFieldBunch: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, block: { id: block.id }, type: INVENTORY_TYPE.FIELD_BUNCHES },\n relations: ['domain', 'block']\n })\n\n let newTotalBunches: number = 0\n\n if (existingFieldBunch) {\n const totalBunches: number = existingFieldBunch.totalBunches\n\n if (totalBunches < 0) {\n existingFieldBunch = await plantationInvRepo.save({ ...existingFieldBunch, totalBunches: 0 })\n }\n\n newTotalBunches = existingFieldBunch.totalBunches + newDailyHarvest.totalBunchHarvested\n\n existingFieldBunch.totalBunches = newTotalBunches\n existingFieldBunch.updater = user\n existingFieldBunch = await plantationInvRepo.save(existingFieldBunch)\n\n await generateTransactionHistory(\n block,\n domain,\n null,\n newDailyHarvest.id,\n newDailyHarvest.name,\n TRANSACTION_TYPE.HARVEST,\n newDailyHarvest.harvestDate,\n newDailyHarvest.totalBunchHarvested,\n 0,\n user,\n tx\n )\n\n if (newDailyHarvest.collectedBunch > 0) {\n existingFieldBunch.totalBunches -= newDailyHarvest.collectedBunch\n existingFieldBunch.updater = user\n existingFieldBunch = await plantationInvRepo.save(existingFieldBunch)\n\n await generateTransactionHistory(\n block,\n domain,\n null,\n newDailyHarvest.id,\n newDailyHarvest.name,\n TRANSACTION_TYPE.LOADING,\n newDailyHarvest.harvestDate,\n -newDailyHarvest.collectedBunch,\n 0,\n user,\n tx\n )\n }\n } else {\n newTotalBunches = newTotalBunches + newDailyHarvest.totalBunchHarvested\n\n let plantationInventory: PlantationInventory = new PlantationInventory()\n plantationInventory.domain = domain\n plantationInventory.name = NoGenerator.fieldBunchName()\n plantationInventory.block = block\n plantationInventory.type = INVENTORY_TYPE.FIELD_BUNCHES\n plantationInventory.totalBunches = newTotalBunches\n plantationInventory.status = INVENTORY_STATUS.STORED\n plantationInventory.creator = user\n plantationInventory.updater = user\n\n plantationInventory = await plantationInvRepo.save(plantationInventory)\n\n await generateTransactionHistory(\n block,\n domain,\n null,\n newDailyHarvest.id,\n newDailyHarvest.name,\n TRANSACTION_TYPE.HARVEST,\n newDailyHarvest.harvestDate,\n newDailyHarvest.totalBunchHarvested,\n 0,\n user,\n tx\n )\n\n if (newDailyHarvest.collectedBunch > 0) {\n plantationInventory.totalBunches -= newDailyHarvest.collectedBunch\n plantationInventory.updater = user\n plantationInventory = await plantationInvRepo.save(plantationInventory)\n\n await generateTransactionHistory(\n block,\n domain,\n null,\n newDailyHarvest.id,\n newDailyHarvest.name,\n TRANSACTION_TYPE.LOADING,\n newDailyHarvest.harvestDate,\n -newDailyHarvest.collectedBunch,\n 0,\n user,\n tx\n )\n }\n }\n}\n"]}
|
|
@@ -7,6 +7,10 @@ const update_daily_harvest_1 = require("./update-daily-harvest");
|
|
|
7
7
|
const delete_daily_harvest_1 = require("./delete-daily-harvest");
|
|
8
8
|
exports.DailyHarvestResolver = {
|
|
9
9
|
Query: daily_harvest_query_1.Query,
|
|
10
|
-
Mutation:
|
|
10
|
+
Mutation: {
|
|
11
|
+
...generate_daily_harvest_1.generateDailyHarvest,
|
|
12
|
+
...update_daily_harvest_1.updateDailyHarvest,
|
|
13
|
+
...delete_daily_harvest_1.deleteDailyHarvest
|
|
14
|
+
}
|
|
11
15
|
};
|
|
12
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/index.ts"],"names":[],"mappings":";;;AAAA,+DAA6C;AAE7C,qEAA+D;AAC/D,iEAA2D;AAC3D,iEAA2D;AAE9C,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAL,2BAAK;IACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/index.ts"],"names":[],"mappings":";;;AAAA,+DAA6C;AAE7C,qEAA+D;AAC/D,iEAA2D;AAC3D,iEAA2D;AAE9C,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAL,2BAAK;IACL,QAAQ,EAAE;QACR,GAAG,6CAAoB;QACvB,GAAG,yCAAkB;QACrB,GAAG,yCAAkB;KACtB;CACF,CAAA","sourcesContent":["import { Query } from './daily-harvest-query'\n\nimport { generateDailyHarvest } from './generate-daily-harvest'\nimport { updateDailyHarvest } from './update-daily-harvest'\nimport { deleteDailyHarvest } from './delete-daily-harvest'\n\nexport const DailyHarvestResolver = {\n Query,\n Mutation: {\n ...generateDailyHarvest,\n ...updateDailyHarvest,\n ...deleteDailyHarvest\n }\n}\n"]}
|
|
@@ -41,7 +41,7 @@ exports.updateDailyHarvest = {
|
|
|
41
41
|
foundDailyHarvest.harvestDate = dailyHarvestPatch.harvestDate;
|
|
42
42
|
foundDailyHarvest.updater = user;
|
|
43
43
|
await dailyHarvestRepo.save(foundDailyHarvest);
|
|
44
|
-
if (
|
|
44
|
+
if (existingDailyHarvestDetails?.length > 0) {
|
|
45
45
|
await Promise.all(foundDailyHarvestDetails.map(async (record) => {
|
|
46
46
|
if (record.totalBunchHarvested == 0) {
|
|
47
47
|
await dailyHarvestDetailRepo.delete(record.id);
|
|
@@ -51,12 +51,20 @@ exports.updateDailyHarvest = {
|
|
|
51
51
|
const foundStaff = await organizationStaffRepo.findOne({
|
|
52
52
|
where: { id: foundDailyHarvestDetailPatch.organizationStaff.id }
|
|
53
53
|
});
|
|
54
|
-
await dailyHarvestDetailRepo.save(
|
|
54
|
+
await dailyHarvestDetailRepo.save({
|
|
55
|
+
...record,
|
|
56
|
+
dailyHarvest: foundDailyHarvest,
|
|
57
|
+
organizationStaff: foundStaff,
|
|
58
|
+
totalBunchHarvested: foundDailyHarvestDetailPatch.totalBunchHarvested,
|
|
59
|
+
totalTonnageHarvested: foundDailyHarvestDetailPatch.totalTonnageHarvested,
|
|
60
|
+
remark: foundDailyHarvestDetailPatch.remark,
|
|
61
|
+
updater: user
|
|
62
|
+
});
|
|
55
63
|
}
|
|
56
64
|
}));
|
|
57
65
|
}
|
|
58
66
|
// during edit user add new row
|
|
59
|
-
if (
|
|
67
|
+
if (newDailyHarvestDetails?.length > 0) {
|
|
60
68
|
await Promise.all(newDailyHarvestDetails.map(async (dailyHarvestDetail) => {
|
|
61
69
|
let newDailyHarvestDetail = new entities_1.DailyHarvestDetail();
|
|
62
70
|
newDailyHarvestDetail.dailyHarvest = await dailyHarvestRepo.findOne({
|
|
@@ -80,7 +88,7 @@ exports.updateDailyHarvest = {
|
|
|
80
88
|
}
|
|
81
89
|
};
|
|
82
90
|
async function updatePlantationInventory(domain, foundDailyHarvest, block, user, tx) {
|
|
83
|
-
const plantationInvRepo =
|
|
91
|
+
const plantationInvRepo = tx?.getRepository(entities_1.PlantationInventory) || (0, shell_1.getRepository)(entities_1.PlantationInventory);
|
|
84
92
|
let existingPlantationInventory = await plantationInvRepo.findOne({
|
|
85
93
|
where: { domain: { id: domain.id }, block: { id: block.id }, type: constants_1.INVENTORY_TYPE.FIELD_BUNCHES },
|
|
86
94
|
relations: ['domain', 'block', 'ramp']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/update-daily-harvest.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, IsNull, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_TYPE, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyHarvest, DailyHarvestDetail, OrganizationStaff, PlantationInventory } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const updateDailyHarvest = {\n async updateDailyHarvest(_: any, { name, dailyHarvestPatch }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n const dailyHarvestRepo = tx.getRepository(DailyHarvest)\n const dailyHarvestDetailRepo = tx.getRepository(DailyHarvestDetail)\n const organizationStaffRepo = tx.getRepository(OrganizationStaff)\n\n let foundDailyHarvest: DailyHarvest = await dailyHarvestRepo.findOne({\n where: { name },\n relations: ['block', 'dailyHarvestDetails', 'dailyHarvestDetails.organizationStaff']\n })\n\n // for existing data row\n let foundDailyHarvestDetails: DailyHarvestDetail[] = foundDailyHarvest.dailyHarvestDetails // from DB\n let existingDailyHarvestDetails: DailyHarvestDetail[] = dailyHarvestPatch.dailyHarvestDetails.filter(\n detail => detail.name !== null\n ) // from client side\n\n // new row has been added\n let newDailyHarvestDetails: DailyHarvestDetail[] = dailyHarvestPatch.dailyHarvestDetails.filter(\n detail => detail.name === null\n )\n\n const block: Block = await tx.getRepository(Block).findOne({\n where: { domain: { id: domain.id }, name: dailyHarvestPatch.block, deletedAt: IsNull() }\n })\n\n const collectedBunch: number = dailyHarvestPatch.collectedBunch || 0\n\n // get sum of bunch harvested from all staff\n var totalBunchHarvested = dailyHarvestPatch.dailyHarvestDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchHarvested\n }, 0)\n\n foundDailyHarvest.block = block\n foundDailyHarvest.coverage = dailyHarvestPatch.coverage\n foundDailyHarvest.harvestingRound = dailyHarvestPatch.harvestingRound\n foundDailyHarvest.yesterdayBalanceBunchInField = dailyHarvestPatch.yesterdayBalanceBunchInField\n foundDailyHarvest.totalBunchHarvested = totalBunchHarvested\n foundDailyHarvest.collectedBunch = collectedBunch\n foundDailyHarvest.balanceBunchInField =\n foundDailyHarvest.yesterdayBalanceBunchInField + totalBunchHarvested - collectedBunch\n foundDailyHarvest.harvestDate = dailyHarvestPatch.harvestDate\n foundDailyHarvest.updater = user\n await dailyHarvestRepo.save(foundDailyHarvest)\n\n if (existingDailyHarvestDetails?.length > 0) {\n await Promise.all(\n foundDailyHarvestDetails.map(async (record: DailyHarvestDetail) => {\n if (record.totalBunchHarvested == 0) {\n await dailyHarvestDetailRepo.delete(record.id)\n } else {\n const foundDailyHarvestDetailPatch = dailyHarvestPatch.dailyHarvestDetails.find(\n detail => detail.name === record.name\n )\n\n const foundStaff: OrganizationStaff = await organizationStaffRepo.findOne({\n where: { id: foundDailyHarvestDetailPatch.organizationStaff.id }\n })\n\n await dailyHarvestDetailRepo.save({\n ...record,\n dailyHarvest: foundDailyHarvest,\n organizationStaff: foundStaff,\n totalBunchHarvested: foundDailyHarvestDetailPatch.totalBunchHarvested,\n totalTonnageHarvested: foundDailyHarvestDetailPatch.totalTonnageHarvested,\n remark: foundDailyHarvestDetailPatch.remark,\n updater: user\n })\n }\n })\n )\n }\n\n // during edit user add new row\n if (newDailyHarvestDetails?.length > 0) {\n await Promise.all(\n newDailyHarvestDetails.map(async (dailyHarvestDetail: DailyHarvestDetail) => {\n let newDailyHarvestDetail: DailyHarvestDetail = new DailyHarvestDetail()\n newDailyHarvestDetail.dailyHarvest = await dailyHarvestRepo.findOne({\n where: { domain: { id: domain.id }, name }\n })\n newDailyHarvestDetail.domain = domain\n newDailyHarvestDetail.name = NoGenerator.dailyHarvestDetail()\n newDailyHarvestDetail.organizationStaff = await organizationStaffRepo.findOneBy({\n id: dailyHarvestDetail.organizationStaff.id\n })\n newDailyHarvestDetail.totalBunchHarvested = dailyHarvestDetail.totalBunchHarvested\n newDailyHarvestDetail.totalTonnageHarvested = dailyHarvestDetail.totalTonnageHarvested\n newDailyHarvestDetail.remark = dailyHarvestDetail.remark\n newDailyHarvestDetail.creator = user\n newDailyHarvestDetail.updater = user\n\n await dailyHarvestDetailRepo.save(newDailyHarvestDetail)\n })\n )\n }\n\n await updatePlantationInventory(domain, foundDailyHarvest, block, user, tx)\n\n return foundDailyHarvest\n }\n}\n\nexport async function updatePlantationInventory(\n domain: Domain,\n foundDailyHarvest: DailyHarvest,\n block: Block,\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n let existingPlantationInventory: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, block: { id: block.id }, type: INVENTORY_TYPE.FIELD_BUNCHES },\n relations: ['domain', 'block', 'ramp']\n })\n\n if (!existingPlantationInventory) throw new Error('Unable to find plantation bunches inventory')\n\n let newTotalBunches: number = 0\n let currentBunchInField: number = existingPlantationInventory.totalBunches\n\n newTotalBunches = foundDailyHarvest.totalBunchHarvested - currentBunchInField\n\n existingPlantationInventory.totalBunches = currentBunchInField + newTotalBunches\n existingPlantationInventory.updater = user\n await plantationInvRepo.save(existingPlantationInventory)\n\n await generateTransactionHistory(\n block,\n domain,\n null,\n foundDailyHarvest.id,\n foundDailyHarvest.name,\n TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,\n foundDailyHarvest.harvestDate,\n newTotalBunches,\n 0,\n user,\n tx\n )\n}\n"]}
|
|
1
|
+
{"version":3,"file":"update-daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/update-daily-harvest.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, IsNull, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_TYPE, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyHarvest, DailyHarvestDetail, OrganizationStaff, PlantationInventory } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const updateDailyHarvest = {\n async updateDailyHarvest(_: any, { name, dailyHarvestPatch }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n const dailyHarvestRepo = tx.getRepository(DailyHarvest)\n const dailyHarvestDetailRepo = tx.getRepository(DailyHarvestDetail)\n const organizationStaffRepo = tx.getRepository(OrganizationStaff)\n\n let foundDailyHarvest: DailyHarvest = await dailyHarvestRepo.findOne({\n where: { name },\n relations: ['block', 'dailyHarvestDetails', 'dailyHarvestDetails.organizationStaff']\n })\n\n // for existing data row\n let foundDailyHarvestDetails: DailyHarvestDetail[] = foundDailyHarvest.dailyHarvestDetails // from DB\n let existingDailyHarvestDetails: DailyHarvestDetail[] = dailyHarvestPatch.dailyHarvestDetails.filter(\n detail => detail.name !== null\n ) // from client side\n\n // new row has been added\n let newDailyHarvestDetails: DailyHarvestDetail[] = dailyHarvestPatch.dailyHarvestDetails.filter(\n detail => detail.name === null\n )\n\n const block: Block = await tx.getRepository(Block).findOne({\n where: { domain: { id: domain.id }, name: dailyHarvestPatch.block, deletedAt: IsNull() }\n })\n\n const collectedBunch: number = dailyHarvestPatch.collectedBunch || 0\n\n // get sum of bunch harvested from all staff\n var totalBunchHarvested = dailyHarvestPatch.dailyHarvestDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchHarvested\n }, 0)\n\n foundDailyHarvest.block = block\n foundDailyHarvest.coverage = dailyHarvestPatch.coverage\n foundDailyHarvest.harvestingRound = dailyHarvestPatch.harvestingRound\n foundDailyHarvest.yesterdayBalanceBunchInField = dailyHarvestPatch.yesterdayBalanceBunchInField\n foundDailyHarvest.totalBunchHarvested = totalBunchHarvested\n foundDailyHarvest.collectedBunch = collectedBunch\n foundDailyHarvest.balanceBunchInField =\n foundDailyHarvest.yesterdayBalanceBunchInField + totalBunchHarvested - collectedBunch\n foundDailyHarvest.harvestDate = dailyHarvestPatch.harvestDate\n foundDailyHarvest.updater = user\n await dailyHarvestRepo.save(foundDailyHarvest)\n\n if (existingDailyHarvestDetails?.length > 0) {\n await Promise.all(\n foundDailyHarvestDetails.map(async (record: DailyHarvestDetail) => {\n if (record.totalBunchHarvested == 0) {\n await dailyHarvestDetailRepo.delete(record.id)\n } else {\n const foundDailyHarvestDetailPatch = dailyHarvestPatch.dailyHarvestDetails.find(\n detail => detail.name === record.name\n )\n\n const foundStaff: OrganizationStaff = await organizationStaffRepo.findOne({\n where: { id: foundDailyHarvestDetailPatch.organizationStaff.id }\n })\n\n await dailyHarvestDetailRepo.save({\n ...record,\n dailyHarvest: foundDailyHarvest,\n organizationStaff: foundStaff,\n totalBunchHarvested: foundDailyHarvestDetailPatch.totalBunchHarvested,\n totalTonnageHarvested: foundDailyHarvestDetailPatch.totalTonnageHarvested,\n remark: foundDailyHarvestDetailPatch.remark,\n updater: user\n })\n }\n })\n )\n }\n\n // during edit user add new row\n if (newDailyHarvestDetails?.length > 0) {\n await Promise.all(\n newDailyHarvestDetails.map(async (dailyHarvestDetail: DailyHarvestDetail) => {\n let newDailyHarvestDetail: DailyHarvestDetail = new DailyHarvestDetail()\n newDailyHarvestDetail.dailyHarvest = await dailyHarvestRepo.findOne({\n where: { domain: { id: domain.id }, name }\n })\n newDailyHarvestDetail.domain = domain\n newDailyHarvestDetail.name = NoGenerator.dailyHarvestDetail()\n newDailyHarvestDetail.organizationStaff = await organizationStaffRepo.findOneBy({\n id: dailyHarvestDetail.organizationStaff.id\n })\n newDailyHarvestDetail.totalBunchHarvested = dailyHarvestDetail.totalBunchHarvested\n newDailyHarvestDetail.totalTonnageHarvested = dailyHarvestDetail.totalTonnageHarvested\n newDailyHarvestDetail.remark = dailyHarvestDetail.remark\n newDailyHarvestDetail.creator = user\n newDailyHarvestDetail.updater = user\n\n await dailyHarvestDetailRepo.save(newDailyHarvestDetail)\n })\n )\n }\n\n await updatePlantationInventory(domain, foundDailyHarvest, block, user, tx)\n\n return foundDailyHarvest\n }\n}\n\nexport async function updatePlantationInventory(\n domain: Domain,\n foundDailyHarvest: DailyHarvest,\n block: Block,\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n let existingPlantationInventory: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, block: { id: block.id }, type: INVENTORY_TYPE.FIELD_BUNCHES },\n relations: ['domain', 'block', 'ramp']\n })\n\n if (!existingPlantationInventory) throw new Error('Unable to find plantation bunches inventory')\n\n let newTotalBunches: number = 0\n let currentBunchInField: number = existingPlantationInventory.totalBunches\n\n newTotalBunches = foundDailyHarvest.totalBunchHarvested - currentBunchInField\n\n existingPlantationInventory.totalBunches = currentBunchInField + newTotalBunches\n existingPlantationInventory.updater = user\n await plantationInvRepo.save(existingPlantationInventory)\n\n await generateTransactionHistory(\n block,\n domain,\n null,\n foundDailyHarvest.id,\n foundDailyHarvest.name,\n TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,\n foundDailyHarvest.harvestDate,\n newTotalBunches,\n 0,\n user,\n tx\n )\n}\n"]}
|
|
@@ -13,7 +13,6 @@ exports.Query = {
|
|
|
13
13
|
});
|
|
14
14
|
},
|
|
15
15
|
async dailyHarvestDetails(_, params, context) {
|
|
16
|
-
var _a;
|
|
17
16
|
const { tx } = context.state;
|
|
18
17
|
const queryBuilder = tx.getRepository(entities_1.DailyHarvestDetail).createQueryBuilder();
|
|
19
18
|
(0, shell_1.buildQuery)(queryBuilder, params, context);
|
|
@@ -21,7 +20,7 @@ exports.Query = {
|
|
|
21
20
|
.leftJoinAndSelect('DailyHarvestDetail.domain', 'Domain')
|
|
22
21
|
.leftJoinAndSelect('DailyHarvestDetail.creator', 'Creator')
|
|
23
22
|
.leftJoinAndSelect('DailyHarvestDetail.updater', 'Updater');
|
|
24
|
-
if (
|
|
23
|
+
if (params.filters?.length > 0)
|
|
25
24
|
queryBuilder.andWhere('DailyHarvestDetail.deletedAt IS NULL');
|
|
26
25
|
else
|
|
27
26
|
queryBuilder.where('DailyHarvestDetail.deletedAt IS NULL');
|
package/dist-server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daily-harvest-detail-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAE/C,iDAAqE;AAErE,gDAAkF;AAErE,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QACjE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,6BAAwB,CAAC,CAAC,OAAO,CAAC;YAC9D,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB
|
|
1
|
+
{"version":3,"file":"daily-harvest-detail-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAE/C,iDAAqE;AAErE,gDAAkF;AAErE,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QACjE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,6BAAwB,CAAC,CAAC,OAAO,CAAC;YAC9D,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAC3E,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,6BAAwB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACpF,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,2BAA2B,EAAE,QAAQ,CAAC;aACxD,iBAAiB,CAAC,4BAA4B,EAAE,SAAS,CAAC;aAC1D,iBAAiB,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAA;QAE7D,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAA;;YACxF,YAAY,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;QAE/D,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { EntityManager, IsNull } from 'typeorm'\n\nimport { buildQuery, Domain, ListParam } from '@things-factory/shell'\n\nimport { DailyHarvestDetail as DailyHarvestDetailEntity } from '../../../entities'\n\nexport const Query = {\n async dailyHarvestDetail(_: any, { name }, context: ResolverContext) {\n const { domain, tx } = context.state\n\n return await tx.getRepository(DailyHarvestDetailEntity).findOne({\n where: { domain: { id: domain.id }, name, deletedAt: IsNull() },\n relations: ['domain', 'creator', 'updater']\n })\n },\n\n async dailyHarvestDetails(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(DailyHarvestDetailEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('DailyHarvestDetail.domain', 'Domain')\n .leftJoinAndSelect('DailyHarvestDetail.creator', 'Creator')\n .leftJoinAndSelect('DailyHarvestDetail.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('DailyHarvestDetail.deletedAt IS NULL')\n else queryBuilder.where('DailyHarvestDetail.deletedAt IS NULL')\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n}\n"]}
|
|
@@ -21,7 +21,6 @@ exports.Query = {
|
|
|
21
21
|
});
|
|
22
22
|
},
|
|
23
23
|
async dailyLoadings(_, params, context) {
|
|
24
|
-
var _a;
|
|
25
24
|
const { tx } = context.state;
|
|
26
25
|
const queryBuilder = tx.getRepository(entities_1.DailyLoading).createQueryBuilder();
|
|
27
26
|
(0, shell_1.buildQuery)(queryBuilder, params, context);
|
|
@@ -29,7 +28,7 @@ exports.Query = {
|
|
|
29
28
|
.leftJoinAndSelect('DailyLoading.domain', 'Domain')
|
|
30
29
|
.leftJoinAndSelect('DailyLoading.creator', 'Creator')
|
|
31
30
|
.leftJoinAndSelect('DailyLoading.updater', 'Updater');
|
|
32
|
-
if (
|
|
31
|
+
if (params.filters?.length > 0)
|
|
33
32
|
queryBuilder.andWhere('DailyLoading.deletedAt IS NULL');
|
|
34
33
|
else
|
|
35
34
|
queryBuilder.where('DailyLoading.deletedAt IS NULL');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daily-loading-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/daily-loading-query.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAE/C,iDAAqE;AAErE,gDAAsE;AAEzD,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,YAAY,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAC3D,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAkB,CAAC,CAAC,OAAO,CAAC;YACxD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE;gBACT,QAAQ;gBACR,qBAAqB;gBACrB,2BAA2B;gBAC3B,2BAA2B;gBAC3B,0BAA0B;gBAC1B,SAAS;gBACT,SAAS;aACV;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB
|
|
1
|
+
{"version":3,"file":"daily-loading-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/daily-loading-query.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAE/C,iDAAqE;AAErE,gDAAsE;AAEzD,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,YAAY,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAC3D,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAkB,CAAC,CAAC,OAAO,CAAC;YACxD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE;gBACT,QAAQ;gBACR,qBAAqB;gBACrB,2BAA2B;gBAC3B,2BAA2B;gBAC3B,0BAA0B;gBAC1B,SAAS;gBACT,SAAS;aACV;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QACrE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,uBAAkB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QAC9E,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,qBAAqB,EAAE,QAAQ,CAAC;aAClD,iBAAiB,CAAC,sBAAsB,EAAE,SAAS,CAAC;aACpD,iBAAiB,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;QAEvD,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAA;;YAClF,YAAY,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAEzD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { EntityManager, IsNull } from 'typeorm'\n\nimport { buildQuery, Domain, ListParam } from '@things-factory/shell'\n\nimport { DailyLoading as DailyLoadingEntity } from '../../../entities'\n\nexport const Query = {\n async dailyLoading(_: any, { name }, context: ResolverContext) {\n const { domain, tx } = context.state\n\n return await tx.getRepository(DailyLoadingEntity).findOne({\n where: { domain: { id: domain.id }, name, deletedAt: IsNull() },\n relations: [\n 'domain',\n 'dailyLoadingDetails',\n 'dailyLoadingDetails.truck',\n 'dailyLoadingDetails.block',\n 'dailyLoadingDetails.ramp',\n 'creator',\n 'updater'\n ]\n })\n },\n\n async dailyLoadings(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(DailyLoadingEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('DailyLoading.domain', 'Domain')\n .leftJoinAndSelect('DailyLoading.creator', 'Creator')\n .leftJoinAndSelect('DailyLoading.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('DailyLoading.deletedAt IS NULL')\n else queryBuilder.where('DailyLoading.deletedAt IS NULL')\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n}\n"]}
|
|
@@ -29,25 +29,34 @@ exports.generateDailyLoading = {
|
|
|
29
29
|
newDailyLoading = await tx.getRepository(entities_1.DailyLoading).save(newDailyLoading);
|
|
30
30
|
// 2. Create daily loading detail
|
|
31
31
|
dailyLoadingDetails = await addDailyLoadingDetail(domain, newDailyLoading, dailyLoadingDetails.map((record) => {
|
|
32
|
-
return
|
|
32
|
+
return { ...record };
|
|
33
33
|
}), user, tx);
|
|
34
34
|
return newDailyLoading;
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
async function addDailyLoadingDetail(domain, newDailyLoading, dailyLoadingDetails, user, tx) {
|
|
38
|
-
const truckRepo =
|
|
39
|
-
const blockRepo =
|
|
40
|
-
const rampRepo =
|
|
41
|
-
const dailyLoadingDetailRepo =
|
|
38
|
+
const truckRepo = tx?.getRepository(entities_1.Truck) || (0, shell_1.getRepository)(entities_1.Truck);
|
|
39
|
+
const blockRepo = tx?.getRepository(entities_1.Block) || (0, shell_1.getRepository)(entities_1.Block);
|
|
40
|
+
const rampRepo = tx?.getRepository(entities_1.Ramp) || (0, shell_1.getRepository)(entities_1.Ramp);
|
|
41
|
+
const dailyLoadingDetailRepo = tx?.getRepository(entities_1.DailyLoadingDetail) || (0, shell_1.getRepository)(entities_1.DailyLoadingDetail);
|
|
42
42
|
dailyLoadingDetails = await Promise.all(dailyLoadingDetails.map(async (record) => {
|
|
43
|
-
return
|
|
43
|
+
return {
|
|
44
|
+
...record,
|
|
45
|
+
domain,
|
|
46
|
+
name: utils_1.NoGenerator.dailyLoadingDetail(),
|
|
47
|
+
truck: await truckRepo.findOneBy({ id: record.truck.id }),
|
|
48
|
+
block: await blockRepo.findOneBy({ id: record.block.id }),
|
|
49
|
+
ramp: await rampRepo.findOneBy({ id: record.ramp.id }),
|
|
50
|
+
dailyLoading: newDailyLoading,
|
|
51
|
+
creator: user
|
|
52
|
+
};
|
|
44
53
|
}));
|
|
45
54
|
dailyLoadingDetails = await dailyLoadingDetailRepo.save(dailyLoadingDetails);
|
|
46
55
|
await updatePlantationInventory(domain, newDailyLoading, dailyLoadingDetails, user, tx);
|
|
47
56
|
return dailyLoadingDetails;
|
|
48
57
|
}
|
|
49
58
|
async function updatePlantationInventory(domain, newDailyLoading, dailyLoadingDetails, user, tx) {
|
|
50
|
-
const plantationInvRepo =
|
|
59
|
+
const plantationInvRepo = tx?.getRepository(entities_1.PlantationInventory) || (0, shell_1.getRepository)(entities_1.PlantationInventory);
|
|
51
60
|
await Promise.all(dailyLoadingDetails.map(async (dailyLoadingDetail) => {
|
|
52
61
|
let existingRampTonnage = await plantationInvRepo.findOne({
|
|
53
62
|
where: { domain: { id: domain.id }, type: constants_1.INVENTORY_TYPE.RAMP_TONNAGE, ramp: dailyLoadingDetail.ramp },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/generate-daily-loading.ts"],"names":[],"mappings":";;;AAkDA,sDAiCC;AAED,8DA+DC;AAjJD,iDAA6D;AAE7D,kDAAsG;AACtG,gDAA6G;AAC7G,0CAAwE;AAE3D,QAAA,oBAAoB,GAAG;IAClC,KAAK,CAAC,oBAAoB,CAAC,CAAM,EAAE,EAAE,YAAY,EAAE,EAAE,OAAwB;QAC3E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,IAAI,mBAAmB,GAAyB,YAAY,CAAC,mBAAmB,CAAA;QAEhF,MAAM,WAAW,GAAW,mBAAmB,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,GAAG;YACxE,OAAO,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAA;QACpC,CAAC,EAAE,CAAC,CAAC,CAAA;QAEL,MAAM,UAAU,GAAW,mBAAmB,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,GAAG;YACvE,OAAO,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAA;QACpC,CAAC,EAAE,CAAC,CAAC,CAAA;QAEL,0BAA0B;QAC1B,IAAI,eAAe,GAAiB,IAAI,uBAAY,EAAE,CAAA;QACtD,eAAe,CAAC,IAAI,GAAG,mBAAW,CAAC,YAAY,EAAE,CAAA;QACjD,eAAe,CAAC,MAAM,GAAG,MAAM,CAAA;QAC/B,eAAe,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,CAAA;QACtD,eAAe,CAAC,UAAU,GAAG,UAAU,CAAA;QACvC,eAAe,CAAC,WAAW,GAAG,WAAW,CAAA;QACzC,eAAe,CAAC,MAAM,GAAG,yBAAa,CAAC,MAAM,CAAA;QAC7C,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;QAE9B,eAAe,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAE5E,iCAAiC;QACjC,mBAAmB,GAAG,MAAM,qBAAqB,CAC/C,MAAM,EACN,eAAe,EACf,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAA0B,EAAE,EAAE;YACrD,
|
|
1
|
+
{"version":3,"file":"generate-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/generate-daily-loading.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_STATUS, INVENTORY_TYPE, RECORD_STATUS, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyLoading, DailyLoadingDetail, PlantationInventory, Ramp, Truck } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const generateDailyLoading = {\n async generateDailyLoading(_: any, { dailyLoading }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n let dailyLoadingDetails: DailyLoadingDetail[] = dailyLoading.dailyLoadingDetails\n\n const totalWeight: number = dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchWeight\n }, 0)\n\n const totalBunch: number = dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchLoaded\n }, 0)\n\n // 1. Create daily loading\n let newDailyLoading: DailyLoading = new DailyLoading()\n newDailyLoading.name = NoGenerator.dailyLoading()\n newDailyLoading.domain = domain\n newDailyLoading.loadingDate = dailyLoading.loadingDate\n newDailyLoading.totalBunch = totalBunch\n newDailyLoading.totalWeight = totalWeight\n newDailyLoading.status = RECORD_STATUS.STORED\n newDailyLoading.creator = user\n\n newDailyLoading = await tx.getRepository(DailyLoading).save(newDailyLoading)\n\n // 2. Create daily loading detail\n dailyLoadingDetails = await addDailyLoadingDetail(\n domain,\n newDailyLoading,\n dailyLoadingDetails.map((record: DailyLoadingDetail) => {\n return { ...record }\n }),\n user,\n tx\n )\n\n return newDailyLoading\n }\n}\n\nexport async function addDailyLoadingDetail(\n domain: Domain,\n newDailyLoading: DailyLoading,\n dailyLoadingDetails: DailyLoadingDetail[],\n user: User,\n tx?: EntityManager\n): Promise<DailyLoadingDetail[]> {\n const truckRepo: Repository<Truck> = tx?.getRepository(Truck) || getRepository(Truck)\n const blockRepo: Repository<Block> = tx?.getRepository(Block) || getRepository(Block)\n const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)\n\n const dailyLoadingDetailRepo: Repository<DailyLoadingDetail> =\n tx?.getRepository(DailyLoadingDetail) || getRepository(DailyLoadingDetail)\n\n dailyLoadingDetails = await Promise.all(\n dailyLoadingDetails.map(async (record: DailyLoadingDetail) => {\n return {\n ...record,\n domain,\n name: NoGenerator.dailyLoadingDetail(),\n truck: await truckRepo.findOneBy({ id: record.truck.id }),\n block: await blockRepo.findOneBy({ id: record.block.id }),\n ramp: await rampRepo.findOneBy({ id: record.ramp.id }),\n dailyLoading: newDailyLoading,\n creator: user\n }\n })\n )\n\n dailyLoadingDetails = await dailyLoadingDetailRepo.save(dailyLoadingDetails)\n await updatePlantationInventory(domain, newDailyLoading, dailyLoadingDetails, user, tx)\n\n return dailyLoadingDetails\n}\n\nexport async function updatePlantationInventory(\n domain: Domain,\n newDailyLoading: DailyLoading,\n dailyLoadingDetails: DailyLoadingDetail[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n await Promise.all(\n dailyLoadingDetails.map(async (dailyLoadingDetail: any) => {\n let existingRampTonnage: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp: dailyLoadingDetail.ramp },\n relations: ['domain', 'block', 'ramp']\n })\n\n if (existingRampTonnage) {\n existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + dailyLoadingDetail.totalBunchWeight\n existingRampTonnage.updater = user\n await plantationInvRepo.save(existingRampTonnage)\n\n await generateTransactionHistory(\n dailyLoadingDetail.block,\n domain,\n dailyLoadingDetail.ramp,\n newDailyLoading.id,\n newDailyLoading.name,\n TRANSACTION_TYPE.LOADING,\n newDailyLoading.loadingDate,\n 0,\n dailyLoadingDetail.totalBunchWeight,\n user,\n tx\n )\n } else {\n let plantationInventory: PlantationInventory = new PlantationInventory()\n plantationInventory.domain = domain\n plantationInventory.name = NoGenerator.rampTonnageName()\n plantationInventory.block = dailyLoadingDetail.block\n plantationInventory.type = INVENTORY_TYPE.RAMP_TONNAGE\n plantationInventory.totalTonnage = dailyLoadingDetail.totalBunchWeight\n plantationInventory.status = INVENTORY_STATUS.STORED\n plantationInventory.ramp = dailyLoadingDetail.ramp\n plantationInventory.creator = user\n plantationInventory = await plantationInvRepo.save(plantationInventory)\n\n await generateTransactionHistory(\n dailyLoadingDetail.block,\n domain,\n dailyLoadingDetail.ramp,\n newDailyLoading.id,\n newDailyLoading.name,\n TRANSACTION_TYPE.LOADING,\n newDailyLoading.loadingDate,\n 0,\n dailyLoadingDetail.totalBunchWeight,\n user,\n tx\n )\n }\n })\n )\n}\n"]}
|
|
@@ -7,6 +7,10 @@ const update_daily_loading_1 = require("./update-daily-loading");
|
|
|
7
7
|
const delete_daily_loading_1 = require("./delete-daily-loading");
|
|
8
8
|
exports.DailyLoadingResolver = {
|
|
9
9
|
Query: daily_loading_query_1.Query,
|
|
10
|
-
Mutation:
|
|
10
|
+
Mutation: {
|
|
11
|
+
...generate_daily_loading_1.generateDailyLoading,
|
|
12
|
+
...update_daily_loading_1.updateDailyLoading,
|
|
13
|
+
...delete_daily_loading_1.deleteDailyLoading
|
|
14
|
+
}
|
|
11
15
|
};
|
|
12
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/index.ts"],"names":[],"mappings":";;;AAAA,+DAA6C;AAE7C,qEAA+D;AAC/D,iEAA2D;AAC3D,iEAA2D;AAE9C,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAL,2BAAK;IACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/index.ts"],"names":[],"mappings":";;;AAAA,+DAA6C;AAE7C,qEAA+D;AAC/D,iEAA2D;AAC3D,iEAA2D;AAE9C,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAL,2BAAK;IACL,QAAQ,EAAE;QACR,GAAG,6CAAoB;QACvB,GAAG,yCAAkB;QACrB,GAAG,yCAAkB;KACtB;CACF,CAAA","sourcesContent":["import { Query } from './daily-loading-query'\n\nimport { generateDailyLoading } from './generate-daily-loading'\nimport { updateDailyLoading } from './update-daily-loading'\nimport { deleteDailyLoading } from './delete-daily-loading'\n\nexport const DailyLoadingResolver = {\n Query,\n Mutation: {\n ...generateDailyLoading,\n ...updateDailyLoading,\n ...deleteDailyLoading\n }\n}\n"]}
|