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
|
||||
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 باشد،
|
||||
* یا قبل از روشن شدن ماژول ساخته شده و به شخص/شرکت/معاملهٔ قبلی وصل باشد.
|
||||
* معاملهٔ غیرقبلی مانع نمیشود؛ شخص قبلی (حتی اگر بعداً منبعش عوض شده) کافی است.
|
||||
* فعالیت بدون شخص و شرکت و معامله هم اگر موعدش قبل از همان لحظه باشد قبلی است.
|
||||
*/
|
||||
function historicalActivity(cutoff: Date): Prisma.ActivityWhereInput {
|
||||
return {
|
||||
@@ -52,6 +53,12 @@ function historicalActivity(cutoff: Date): Prisma.ActivityWhereInput {
|
||||
},
|
||||
{ company: { 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' }],
|
||||
},
|
||||
});
|
||||
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() } });
|
||||
|
||||
const archive = JSON.parse(JSON.stringify(activityPriorWhere('archive', now, cutoff))) as {
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
رکورد قبلی یعنی:
|
||||
|
||||
- شخص، شرکت یا معاملهای که منبع ورودش `didar` است.
|
||||
- فعالیتی که منبع ورودش `didar` است. فعالیت امروز این فیلد را ندارد؛ در پیادهسازی همان فیلد با پیشفرض `manual` اضافه میشود. پر کردن اولیه: اگر معاملهٔ مرتبط `didar` باشد، یا تاریخ ساخت فعالیت قبل از لحظهٔ روشن شدن ماژول باشد و شخص (حتی با منبع قبلی `didar`)، شرکت یا معاملهٔ مرتبط `didar` باشد. وجود معاملهٔ غیرقبلی این را لغو نمیکند. فعالیتی که بعد از آن لحظه در منتکت ساخته شود جاری است، حتی اگر روی شخص قبلی باشد.
|
||||
- فعالیتی که منبع ورودش `didar` است. فعالیت امروز این فیلد را ندارد؛ در پیادهسازی همان فیلد با پیشفرض `manual` اضافه میشود. پر کردن اولیه: اگر معاملهٔ مرتبط `didar` باشد، یا تاریخ ساخت فعالیت قبل از لحظهٔ روشن شدن ماژول باشد و شخص (حتی با منبع قبلی `didar`)، شرکت یا معاملهٔ مرتبط `didar` باشد. وجود معاملهٔ غیرقبلی این را لغو نمیکند. فعالیت بدون شخص، شرکت و معامله که موعدش هم قبل از همان لحظه است، قبلی است. فعالیتی که بعد از آن لحظه در منتکت ساخته شود جاری است، حتی اگر روی شخص قبلی باشد.
|
||||
|
||||
استثنا فقط در حالت کار جاری: معامله یا فعالیت قبلی که هنوز باز است و موعدش در آینده است، در کار جاری میآید و در بایگانی نمیآید. معامله یا فعالیت باز بدون موعد، یا با موعد گذشته، بایگانی میماند. با بسته شدن یا گذشتن موعد، از کار جاری خارج و فقط در بایگانی دیده میشود.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user