fix: hide unlinked old activities from current work
Imported follow-ups with no person, company, or deal stayed on the board because only linked prior records were archived. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -305,6 +305,13 @@ export class BillingService {
|
|||||||
SELECT 1 FROM "Deal" AS d2
|
SELECT 1 FROM "Deal" AS d2
|
||||||
WHERE d2."id" = a."dealId" AND d2."importSource" = 'didar'
|
WHERE d2."id" = a."dealId" AND d2."importSource" = 'didar'
|
||||||
)
|
)
|
||||||
|
OR (
|
||||||
|
a."personId" IS NULL
|
||||||
|
AND a."companyId" IS NULL
|
||||||
|
AND a."dealId" IS NULL
|
||||||
|
AND a."dueAt" IS NOT NULL
|
||||||
|
AND a."dueAt" < ${cutoff}
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ function stillOpenAhead(now: Date): Prisma.ActivityWhereInput {
|
|||||||
* فعالیت قبلی است اگر منبعش didar باشد،
|
* فعالیت قبلی است اگر منبعش didar باشد،
|
||||||
* یا قبل از روشن شدن ماژول ساخته شده و به شخص/شرکت/معاملهٔ قبلی وصل باشد.
|
* یا قبل از روشن شدن ماژول ساخته شده و به شخص/شرکت/معاملهٔ قبلی وصل باشد.
|
||||||
* معاملهٔ غیرقبلی مانع نمیشود؛ شخص قبلی (حتی اگر بعداً منبعش عوض شده) کافی است.
|
* معاملهٔ غیرقبلی مانع نمیشود؛ شخص قبلی (حتی اگر بعداً منبعش عوض شده) کافی است.
|
||||||
|
* فعالیت بدون شخص و شرکت و معامله هم اگر موعدش قبل از همان لحظه باشد قبلی است.
|
||||||
*/
|
*/
|
||||||
function historicalActivity(cutoff: Date): Prisma.ActivityWhereInput {
|
function historicalActivity(cutoff: Date): Prisma.ActivityWhereInput {
|
||||||
return {
|
return {
|
||||||
@@ -52,6 +53,12 @@ function historicalActivity(cutoff: Date): Prisma.ActivityWhereInput {
|
|||||||
},
|
},
|
||||||
{ company: { importSource: PRIOR_IMPORT_SOURCE } },
|
{ company: { importSource: PRIOR_IMPORT_SOURCE } },
|
||||||
{ deal: { importSource: PRIOR_IMPORT_SOURCE } },
|
{ deal: { importSource: PRIOR_IMPORT_SOURCE } },
|
||||||
|
{
|
||||||
|
personId: null,
|
||||||
|
companyId: null,
|
||||||
|
dealId: null,
|
||||||
|
dueAt: { lt: cutoff },
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -61,6 +61,12 @@ describe('بایگانی اطلاعات قبل', () => {
|
|||||||
OR: [{ importSource: 'didar' }, { previousImportSource: 'didar' }],
|
OR: [{ importSource: 'didar' }, { previousImportSource: 'didar' }],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
assert.deepEqual(linked.OR[3], {
|
||||||
|
personId: null,
|
||||||
|
companyId: null,
|
||||||
|
dealId: null,
|
||||||
|
dueAt: { lt: cutoff.toISOString() },
|
||||||
|
});
|
||||||
assert.deepEqual(current.OR[1], { status: 'open', dueAt: { gt: now.toISOString() } });
|
assert.deepEqual(current.OR[1], { status: 'open', dueAt: { gt: now.toISOString() } });
|
||||||
|
|
||||||
const archive = JSON.parse(JSON.stringify(activityPriorWhere('archive', now, cutoff))) as {
|
const archive = JSON.parse(JSON.stringify(activityPriorWhere('archive', now, cutoff))) as {
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
رکورد قبلی یعنی:
|
رکورد قبلی یعنی:
|
||||||
|
|
||||||
- شخص، شرکت یا معاملهای که منبع ورودش `didar` است.
|
- شخص، شرکت یا معاملهای که منبع ورودش `didar` است.
|
||||||
- فعالیتی که منبع ورودش `didar` است. فعالیت امروز این فیلد را ندارد؛ در پیادهسازی همان فیلد با پیشفرض `manual` اضافه میشود. پر کردن اولیه: اگر معاملهٔ مرتبط `didar` باشد، یا تاریخ ساخت فعالیت قبل از لحظهٔ روشن شدن ماژول باشد و شخص (حتی با منبع قبلی `didar`)، شرکت یا معاملهٔ مرتبط `didar` باشد. وجود معاملهٔ غیرقبلی این را لغو نمیکند. فعالیتی که بعد از آن لحظه در منتکت ساخته شود جاری است، حتی اگر روی شخص قبلی باشد.
|
- فعالیتی که منبع ورودش `didar` است. فعالیت امروز این فیلد را ندارد؛ در پیادهسازی همان فیلد با پیشفرض `manual` اضافه میشود. پر کردن اولیه: اگر معاملهٔ مرتبط `didar` باشد، یا تاریخ ساخت فعالیت قبل از لحظهٔ روشن شدن ماژول باشد و شخص (حتی با منبع قبلی `didar`)، شرکت یا معاملهٔ مرتبط `didar` باشد. وجود معاملهٔ غیرقبلی این را لغو نمیکند. فعالیت بدون شخص، شرکت و معامله که موعدش هم قبل از همان لحظه است، قبلی است. فعالیتی که بعد از آن لحظه در منتکت ساخته شود جاری است، حتی اگر روی شخص قبلی باشد.
|
||||||
|
|
||||||
استثنا فقط در حالت کار جاری: معامله یا فعالیت قبلی که هنوز باز است و موعدش در آینده است، در کار جاری میآید و در بایگانی نمیآید. معامله یا فعالیت باز بدون موعد، یا با موعد گذشته، بایگانی میماند. با بسته شدن یا گذشتن موعد، از کار جاری خارج و فقط در بایگانی دیده میشود.
|
استثنا فقط در حالت کار جاری: معامله یا فعالیت قبلی که هنوز باز است و موعدش در آینده است، در کار جاری میآید و در بایگانی نمیآید. معامله یا فعالیت باز بدون موعد، یا با موعد گذشته، بایگانی میماند. با بسته شدن یا گذشتن موعد، از کار جاری خارج و فقط در بایگانی دیده میشود.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user