From 81b24f298bd523b290277019dca1d21980f61cad Mon Sep 17 00:00:00 2001 From: Chris Gary Date: Fri, 18 Apr 2025 15:10:06 -0400 Subject: [PATCH 1/3] Adds SmartClone Record Exclusion Rule MDT Adds a new Metadata Type object to allow users to define exclusion rules for the SmartClone component. This allows users to specify criteria to prevent certain related records from being cloned. Also, excludes listViews metadata from source control. --- .forceignore | 3 + .../localSourceTracking/index | Bin 2912 -> 3608 bytes .../19/ddf04b3bd0aa8091c3ee807bd6c1599cd955ab | Bin 0 -> 262 bytes .../1f/beefd899a76bdb94961a9f6b021794177cbce9 | Bin 0 -> 53 bytes .../2c/9a6a6a94272f746794f38720367d2b11251cbf | Bin 0 -> 151 bytes .../2e/a57734981414f1f42d471df0340e4693361005 | Bin 0 -> 53 bytes .../37/ae8ce4a3857032a5f54c9e640ed03c623f8a9f | Bin 0 -> 203 bytes .../4f/ad92574a692f33f52b40905daba68c3c3693eb | Bin 0 -> 204 bytes .../5a/8dd99e20d01e36eb6eaea6ded97dde95dffc30 | Bin 0 -> 109 bytes .../67/e642eff7d3591c6a83aaf985aa3343786974b4 | Bin 0 -> 118 bytes .../74/e962f083c2e909a743699df47b490bc24f338b | Bin 0 -> 144 bytes .../87/76b7998be1a2119eb72ea68cffdfee85e25536 | Bin 0 -> 131 bytes .../a1/50c15dcf4cbb7fe2af4dfaea78839dff130061 | Bin 0 -> 347 bytes .../ae/31332ebf628e74c5f5a4a756550b421bf9d15e | Bin 0 -> 387 bytes .../ae/db3c7323a730a30e0cf8263e520ad4fe2a9912 | Bin 0 -> 145 bytes .../b4/09ede7e5dd689933fe6102a019128172d5dd12 | Bin 0 -> 51 bytes .../b6/018dd3807595eec06b60ab3463da606b5e7253 | Bin 0 -> 48 bytes .../bd/4d958a18d8f887d82e89195e9fb95a42b68409 | Bin 0 -> 48 bytes .../c1/e4fb52134743efce65f1efffa436e197c07430 | Bin 0 -> 51 bytes .../d0/d4b6ede435bb545db6732f3e627fb0102d7345 | Bin 0 -> 304 bytes .../ef/c931476257ccd3f98098b7128bc912912cdb8d | Bin 0 -> 131 bytes .../fb/6cf94114e72156c3bad59226d44d85a48b292b | Bin 0 -> 109 bytes .../localSourceTracking/refs/heads/main | 2 +- .sf/orgs/00DEi000009lLroMAE/maxRevision.json | 52 +++++++++++++++++- ...neRecordExclusionRule__mdt.object-meta.xml | 7 +++ .../fields/ExclusionFormula__c.field-meta.xml | 11 ++++ .../fields/IsActive__c.field-meta.xml | 10 ++++ .../fields/RelatedObject__c.field-meta.xml | 14 +++++ 28 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/19/ddf04b3bd0aa8091c3ee807bd6c1599cd955ab create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/1f/beefd899a76bdb94961a9f6b021794177cbce9 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/2c/9a6a6a94272f746794f38720367d2b11251cbf create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/2e/a57734981414f1f42d471df0340e4693361005 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/37/ae8ce4a3857032a5f54c9e640ed03c623f8a9f create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/4f/ad92574a692f33f52b40905daba68c3c3693eb create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/5a/8dd99e20d01e36eb6eaea6ded97dde95dffc30 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/67/e642eff7d3591c6a83aaf985aa3343786974b4 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/74/e962f083c2e909a743699df47b490bc24f338b create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/87/76b7998be1a2119eb72ea68cffdfee85e25536 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/a1/50c15dcf4cbb7fe2af4dfaea78839dff130061 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ae/31332ebf628e74c5f5a4a756550b421bf9d15e create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ae/db3c7323a730a30e0cf8263e520ad4fe2a9912 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b4/09ede7e5dd689933fe6102a019128172d5dd12 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b6/018dd3807595eec06b60ab3463da606b5e7253 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/bd/4d958a18d8f887d82e89195e9fb95a42b68409 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/c1/e4fb52134743efce65f1efffa436e197c07430 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/d0/d4b6ede435bb545db6732f3e627fb0102d7345 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ef/c931476257ccd3f98098b7128bc912912cdb8d create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/fb/6cf94114e72156c3bad59226d44d85a48b292b create mode 100644 force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/SmartCloneRecordExclusionRule__mdt.object-meta.xml create mode 100644 force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/fields/ExclusionFormula__c.field-meta.xml create mode 100644 force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/fields/IsActive__c.field-meta.xml create mode 100644 force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/fields/RelatedObject__c.field-meta.xml diff --git a/.forceignore b/.forceignore index e42a2bc..4ed1012 100644 --- a/.forceignore +++ b/.forceignore @@ -42,6 +42,9 @@ package.xml #Exclude Dashboards **/dashboards/** +# EXclude Listviews +**/listViews/** + # Exclude Remote Site Settings diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/index b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/index index a04886fa26eb42bc1f8e4721fcf7c316d25b8765..fb6ec5da628b69a3fdf16a1e3cb8074ea72ebee5 100644 GIT binary patch delta 746 zcmaDLHbaKT#WTp6fq{Vuh$T1jY~ZTTV9F9TbQDg3(M;VJPcm??RA69eTmn=C1&j+M z?|$&MzObrc;^B7<)z=P2&bb-7nxP~uzbH9XH?g2VKQ}QmPd_C!EwMDGL_a?%D>b>K zSU)&7v8cp3CqFMWC^b31D8;oRIj6KZGe0k=G$%DaJ~ySLo(MI15aV=nQ%e%{Dspom zZh|=&MnfDvQvlWBOa~VR9E?5hv%CJ$df#8KDw^m17iLIg$c8z*o@|%vr)8$*q!jDJ z{p6Nklv|pU7$2Xk2bMx}FGB`Xm5JPveY`Ll?BIHyR~JxS%y{p@m2GdInC=dV-Bzq` zmsGz&K)2YHAsOakiXH4(?3i4VSq2P$phN3Hp1^b|wluNg0jfip#n%}c>+MhKD>?dg z$?~vJZYSxV7vmT*NOGt(wnPC7+Mv{&#FEq$e{gET4A;rKxF(6P)XMr5mCua%cq+5> M$Kych+oE0#0JNhB3jhEB delta 50 zcmbOs^FWNp#WTp6fq{Vuh($N@Y~Y$~!X-Yro3~O#^Vj7=cPcM`d9IMU-=XoSqNXhu F3jlgj5g`Bo diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/19/ddf04b3bd0aa8091c3ee807bd6c1599cd955ab b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/19/ddf04b3bd0aa8091c3ee807bd6c1599cd955ab new file mode 100644 index 0000000000000000000000000000000000000000..feee3879aa8a24db0a1480df1964b63a1a8fa4c6 GIT binary patch literal 262 zcmV+h0r~!ToQ;snPQx$|MOo)7M%fdmsHzZh(nSR;Bv645@MB5_jqS)Dm-6?h%7QG} zj_y6@YAh!U+s*Dq?=OMjjJZ&XL%Zqv7BITxDSi&^$NSUmeY+nUeW*oJc(GsT1TKMN z8QMu?eo(3;Gk4{bvct}$pziv9r~0i5D8?Hx?brYSXphBZnuSsvA1{vURSCH=7LdsZ z$b|3~OqK(uh~QF~Q^Y9nP0UaWf+WDR;c5f{jhi5&OWA{o9y|)>KoNmXKmyK0un6wT z@|{*|{W6G+MIKki<3jrzcdU$BExDyLbIpdI|J5v7t>X*eOoc2l$9V=yr=FfdR^%P&e!)lDoYVA$(BwM*j0kM7H)Sw1FfcPQQE;tD&M7U<%+GVnFUl>=NsNzA)=SGw%}LSC zO)W{(tH{k^SQv0H_Po#T`bX=1f4!<`p8H>zArY$Ev)D1YB(p3Pi>?b-w!M8~x;rFx zTd}@fQvC)2-C|d$uAtPM#FEq$|D>$c9V=yr=FfdR^%P&e!)lDoYVA#gkd%2->>bnEk39C(#ZzW{M L6$JwTOaTz@5%3fW literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/37/ae8ce4a3857032a5f54c9e640ed03c623f8a9f b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/37/ae8ce4a3857032a5f54c9e640ed03c623f8a9f new file mode 100644 index 0000000000000000000000000000000000000000..7b4c68916f5544d46e062c0ebf38545c6bdcf9a3 GIT binary patch literal 203 zcmV;+05t!2oGU3xO;s>5Fk~<>FfcGsNGvT%WY9Kv>!zZ*YiG)j+kIu9jy`^Dz407G zIyon?xHz?#!7C(VDlbDp6Q_OJOhDCUl@u8B}pN^@_ zviILpv{?B*R6%(%!(AJl%$*!(XF7ba^{kvVN#N)`uDuZ1{G_bZ2$ z9o}_ylG+vD)+ODV+7K0mrJ2duj>#pN`FX_*$%o6|cpfx=VqW|%YHL2P_OokZ>j3E+ FS0OV3W{&^> literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/4f/ad92574a692f33f52b40905daba68c3c3693eb b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/4f/ad92574a692f33f52b40905daba68c3c3693eb new file mode 100644 index 0000000000000000000000000000000000000000..9e94e0688b4dbe221a50a569f10cb7a4bf52aa06 GIT binary patch literal 204 zcmV;-05ku1oGU3xO;s>5Fk~<>FfcGsNGvT%WY9Kv>!zZ*YiG)j+kIu9jy`^Dz407G zIyon?xHz?#!7C(VDlbDp6Q_OJOhDCUl@u8B}pN^@_ zviILpv{?B*R6%(%!(AJl%$*!(XF7ba^{kvVN#N)`uDuZ1{G_bZLc1$kG%+D)kNIqQt#`B>06Z7JCQCstQwVz!RTL%Cw G1z6le>uGlY literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/5a/8dd99e20d01e36eb6eaea6ded97dde95dffc30 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/5a/8dd99e20d01e36eb6eaea6ded97dde95dffc30 new file mode 100644 index 0000000000000000000000000000000000000000..3d9d2c632c641e342712edfbe00a40ddc5c2f84b GIT binary patch literal 109 zcmV-z0FwWBoGU3xO;xZoWiT-?FfdSXOis=(%`0JuT|MWU!K=*OVe5s0KF@reH>JC< z9ik#QH?gS1IVV3aH7GSXzbM7EA~~nDI5R&ls5B=vK0Y_4grU7``^@f#iv;Iw*IU-} P|NgtyN17GGs6`FfcPQQE;tD&M7U<%+GVnFUl>=NsNzA)=SGw%}LSC zO)W{(tH{k^SQv0H_Po#T`bX=1f4!<`p8H>zArY!OC^aXsBsIl9DJwO(1dG;nhQ@mP Ylln@IeqFLWER@?x`sc+s07uL+%V?=MP5=M^ literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/74/e962f083c2e909a743699df47b490bc24f338b b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/74/e962f083c2e909a743699df47b490bc24f338b new file mode 100644 index 0000000000000000000000000000000000000000..d93e44551c751251afe11681804f4dfd17829ec5 GIT binary patch literal 144 zcmV;B0B`?zoR!W^3c@fDKw;N8#auv`za$NacZtbFi?o$A1&=SdcH{ni@XEF<^8hA) z8r=-ovX4<{98mF@#xFG1nF6Gkln literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/87/76b7998be1a2119eb72ea68cffdfee85e25536 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/87/76b7998be1a2119eb72ea68cffdfee85e25536 new file mode 100644 index 0000000000000000000000000000000000000000..488b626b7fc0a3b9b95ab67fa261403ac57a60ce GIT binary patch literal 131 zcmb=J!&t%4{=cLsHC4gT(2&8{fIuNF jGc_lrm?8a{)BEq2BW1FhSN&{VW$av$S+ZrZm*GWf53%1#)HBe;>$l z8>i?8^v2y8&dzXI6W8#)`uagHkAdKTDSM8K;!{}_fU#lc<9<>6+OBVIi=~#W$q%m4s%I}knFfac-Y&@hf$ za|#35-LBE<4?2+@<|g@GJV&$b5ZZ|f!eINJPUAs3goF(z2hv#qhk_~ih#7nfUchI- zah5{|ZQ^jgu_BHLec}dlF5#&?cYo{q43Y-?crAV=JBzl%F=*J=)rnmy>xJ z>XB7rT5*)bMCi2o2XRvHk$l8Qq<)J>`OgCXWo~jzwnlo}BwSXh)dXBf828ed`CV0M tbtxu9PCc3p$NeaIpU`S`ZcXUHXI~R;#$;x$)w_D8)zx1#vsZ13_G=HiuAu+` literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ae/31332ebf628e74c5f5a4a756550b421bf9d15e b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ae/31332ebf628e74c5f5a4a756550b421bf9d15e new file mode 100644 index 0000000000000000000000000000000000000000..0b84636f7b992ee87a571a98d7cbac90b1d3c5d7 GIT binary patch literal 387 zcmV-}0et>=oV8L-Z`3dl<-EUQlsoYjA-?2w4@)bMC`jAoTsiinF`C$}Jw}^*#)nT143m251Jtr!i)@g2!$-@7-<3yEx=cXv1Eo0L4z3_ zSqMGw+#h2|T)g864roHMtrTmMWx#p48}0Qy>duklN!^xiW_6hM!E*{kXr=fMu_`!E z&f^!Pc*GOG-0V+$syXQn>G8OWuN3vQG7|Qf&>K7kb>-Rd^cj2S-FyQn*61Uj^o-@f z#cyYw+fgUpQ}9@4xjGptb8-&zYO}`Ej(?TTAN?GmRWcGj6qnE{P6cPyQdX3wi0WpE h-C?C5#Tlxs;@v|*)oaQq#ZqmgSS4I-{s0V^7qQ1jzTp4> literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ae/db3c7323a730a30e0cf8263e520ad4fe2a9912 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ae/db3c7323a730a30e0cf8263e520ad4fe2a9912 new file mode 100644 index 0000000000000000000000000000000000000000..6824a579f62d4cecdfe9a430e5a8f77fde5d1251 GIT binary patch literal 145 zcmV;C0B-+yoR!W^3IZ_43)dAQPf4S(=R%k=b8Se1>_sEC zlqPZI7>}*P-s&6n?dWPSdeP^+-r;(KK#0t7iXP4$y?6Q@8}Fcd?Rx{Bc{`%*X!tBP2m)6^T4*H>YL*-`qS#}2f HY5^Gl;}8@S literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b6/018dd3807595eec06b60ab3463da606b5e7253 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b6/018dd3807595eec06b60ab3463da606b5e7253 new file mode 100644 index 0000000000000000000000000000000000000000..42d7e46e0a5923fcb36785e5501b967ef51b9c17 GIT binary patch literal 48 zcmV-00MGw;oGU3xO;s>9WH2!>FfdTaP0Y+=IQZmukg&V+`*W!u-~V4?_Hg=v5(5Al GeGxSKWfhPB literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/bd/4d958a18d8f887d82e89195e9fb95a42b68409 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/bd/4d958a18d8f887d82e89195e9fb95a42b68409 new file mode 100644 index 0000000000000000000000000000000000000000..0bcd042a93bd6ddbc407e114123d21e28b0736d4 GIT binary patch literal 48 zcmV-00MGw;oGU3xO;s>9WH2!>FfdTaP0Y+=*uwet`O~`@GmZZxGA)o4YAm{XR|o(N G?+;k&juZ?4 literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/c1/e4fb52134743efce65f1efffa436e197c07430 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/c1/e4fb52134743efce65f1efffa436e197c07430 new file mode 100644 index 0000000000000000000000000000000000000000..cf2f688b4d12d5837fe136795a64e5961e8bd6a2 GIT binary patch literal 51 zcmb=Jqpj)X8){&dXkchyU=ZNp>Fcd?Rx|NKytU>X?cn=AR&P7pa^vdhs+==w``H*| H1o&M6=$RBM literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/d0/d4b6ede435bb545db6732f3e627fb0102d7345 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/d0/d4b6ede435bb545db6732f3e627fb0102d7345 new file mode 100644 index 0000000000000000000000000000000000000000..20ed546f2ff571b60daae1bb5530f90270499a23 GIT binary patch literal 304 zcmV-00nh$;oNZA}Ps1<_<=kIk^-fdJ1QW_Kp`i&5aAD&*rKz_@xJi{bqx<)$D<2!; zX#4s3z2}O21(Vz9g`D>-!5%}j-p%r>qRauE@wIikS-xH^FQ@rjWpa@s`*vxOYUo>X zah5mC-JKB8>#m4f9}E`8x8k}iZ$vo}EwZjP>s)030CJm%UUZARy%fhXlj7u2D*FU48mE9F Cc#x?8 literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ef/c931476257ccd3f98098b7128bc912912cdb8d b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ef/c931476257ccd3f98098b7128bc912912cdb8d new file mode 100644 index 0000000000000000000000000000000000000000..c20ad26bc1e6043e4d1912843f8ea502a5ec1e73 GIT binary patch literal 131 zcmb=J!&t%4{=cLsHC4gT(2&8{fIuNF jGc_lrm_cV&R@M}C{gU)4pW7A8YPAJbW%k$D>!kqz!GSW! literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/fb/6cf94114e72156c3bad59226d44d85a48b292b b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/fb/6cf94114e72156c3bad59226d44d85a48b292b new file mode 100644 index 0000000000000000000000000000000000000000..8181978b87a78dbd032603e6fd8edd531060704b GIT binary patch literal 109 zcmV-z0FwWBoGU3xO;xZoWiT-?FfdSXOis=(%`0JuT|MWU!K=*OVe5s0KF@reH>JC< z9ik#QH?gS1IVV3aH7GSXzbM7EA~~nDI5R&ls5B=vK0Y_4gyH>3L-(ZcGnaoh%-Al} PeNt$m&h1_R9WpBl{mCy< literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/refs/heads/main b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/refs/heads/main index 3333f0f..b7027ef 100644 --- a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/refs/heads/main +++ b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/refs/heads/main @@ -1 +1 @@ -16e7a98d17a40cc2d21421b23373f5f54a6d4214 +aedb3c7323a730a30e0cf8263e520ad4fe2a9912 diff --git a/.sf/orgs/00DEi000009lLroMAE/maxRevision.json b/.sf/orgs/00DEi000009lLroMAE/maxRevision.json index 593a241..fc1e4a4 100644 --- a/.sf/orgs/00DEi000009lLroMAE/maxRevision.json +++ b/.sf/orgs/00DEi000009lLroMAE/maxRevision.json @@ -1,6 +1,6 @@ { "fileVersion": 0, - "serverMaxRevisionCounter": 81, + "serverMaxRevisionCounter": 104, "sourceMembers": { "ReportFolder__prm_channel_reports_folder": { "memberType": "ReportFolder", @@ -196,7 +196,7 @@ }, "Profile__Admin": { "memberType": "Profile", - "serverRevisionCounter": 44, + "serverRevisionCounter": 97, "lastRetrievedFromServer": null, "isNameObsolete": false }, @@ -337,6 +337,54 @@ "serverRevisionCounter": 81, "lastRetrievedFromServer": null, "isNameObsolete": false + }, + "ListView__Opportunity.AllOpportunities": { + "memberType": "ListView", + "serverRevisionCounter": 88, + "lastRetrievedFromServer": null, + "isNameObsolete": false + }, + "ListView__Product2.AllProducts": { + "memberType": "ListView", + "serverRevisionCounter": 90, + "lastRetrievedFromServer": null, + "isNameObsolete": false + }, + "Layout__SmartCloneRecordExclusionRule__mdt-SmartClone Record Exclusion Rule Layout": { + "memberType": "Layout", + "serverRevisionCounter": 104, + "lastRetrievedFromServer": null, + "isNameObsolete": false + }, + "Profile__B2B Reordering Portal Buyer Profile": { + "memberType": "Profile", + "serverRevisionCounter": 96, + "lastRetrievedFromServer": null, + "isNameObsolete": false + }, + "CustomObject__SmartCloneRecordExclusionRule__mdt": { + "memberType": "CustomObject", + "serverRevisionCounter": 98, + "lastRetrievedFromServer": 98, + "isNameObsolete": false + }, + "CustomField__SmartCloneRecordExclusionRule__mdt.RelatedObject__c": { + "memberType": "CustomField", + "serverRevisionCounter": 99, + "lastRetrievedFromServer": 99, + "isNameObsolete": false + }, + "CustomField__SmartCloneRecordExclusionRule__mdt.ExclusionFormula__c": { + "memberType": "CustomField", + "serverRevisionCounter": 101, + "lastRetrievedFromServer": 101, + "isNameObsolete": false + }, + "CustomField__SmartCloneRecordExclusionRule__mdt.IsActive__c": { + "memberType": "CustomField", + "serverRevisionCounter": 103, + "lastRetrievedFromServer": 103, + "isNameObsolete": false } } } \ No newline at end of file diff --git a/force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/SmartCloneRecordExclusionRule__mdt.object-meta.xml b/force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/SmartCloneRecordExclusionRule__mdt.object-meta.xml new file mode 100644 index 0000000..19ddf04 --- /dev/null +++ b/force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/SmartCloneRecordExclusionRule__mdt.object-meta.xml @@ -0,0 +1,7 @@ + + + Exclusion rules that the SmartClone component will use to evaluate each record and determine if it can be cloned. + + SmartClone Record Exclusion Rules + Public + diff --git a/force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/fields/ExclusionFormula__c.field-meta.xml b/force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/fields/ExclusionFormula__c.field-meta.xml new file mode 100644 index 0000000..a150c15 --- /dev/null +++ b/force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/fields/ExclusionFormula__c.field-meta.xml @@ -0,0 +1,11 @@ + + + ExclusionFormula__c + The formula to apply to the record that determines if it is excluded from the Clone process. If the formula is true, the record is excluded. + SubscriberControlled + The formula to apply to the record that determines if it is excluded from the Clone process. If the formula is true, the record is excluded. + + 3900 + LongTextArea + 3 + diff --git a/force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/fields/IsActive__c.field-meta.xml b/force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/fields/IsActive__c.field-meta.xml new file mode 100644 index 0000000..d0d4b6e --- /dev/null +++ b/force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/fields/IsActive__c.field-meta.xml @@ -0,0 +1,10 @@ + + + IsActive__c + true + Use the rule to evaluate exclusions + SubscriberControlled + Determine whether to actively use the rule in excluding records. + + Checkbox + diff --git a/force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/fields/RelatedObject__c.field-meta.xml b/force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/fields/RelatedObject__c.field-meta.xml new file mode 100644 index 0000000..ae31332 --- /dev/null +++ b/force-app/main/default/objects/SmartCloneRecordExclusionRule__mdt/fields/RelatedObject__c.field-meta.xml @@ -0,0 +1,14 @@ + + + RelatedObject__c + The Object that ruleset should apply to. It must be a child of the Opportunity Record. + SubscriberControlled + The Object that ruleset should apply to. It must be a child of the Opportunity Record. + + EntityDefinition + SmartCloneRecordExclusionRules + SmartCloneRecordExclusionRules + true + MetadataRelationship + false + From f34a61e653e7a854f0e27cd2f6ca20533e8a104f Mon Sep 17 00:00:00 2001 From: Chris Gary Date: Mon, 21 Apr 2025 16:39:07 -0400 Subject: [PATCH 2/3] Adds rule-based filtering for cloned records Implements a mechanism to exclude child records from being cloned based on configurable formulas. Introduces a Custom Metadata object to define exclusion rules, allowing administrators to specify formulas for different SObjects. Updates the cloning service to evaluate these formulas and filter out records that meet the exclusion criteria. --- .../localSourceTracking/index | Bin 3608 -> 4048 bytes .../01/0b21a76a043ea522f1a517907f0dfac79eef14 | Bin 0 -> 280 bytes .../02/b2bc35a3c833cbd737575bb08d9366640ce7f1 | Bin 0 -> 180 bytes .../02/d4e8201138ff19f5e98f1ffab960f1e0d83444 | Bin 0 -> 136 bytes .../04/d8098e4245dc2dad6ddd71b60ddab43ae05f24 | Bin 0 -> 48 bytes .../07/ff864d03ac3b68c4ca3733802ee5f453e7706b | Bin 0 -> 180 bytes .../0f/25a9ac6b76d729c38ef8a884db6406c69319cb | 2 + .../0f/45275e9939cfd62963395dec737a73bebc0872 | Bin 0 -> 48 bytes .../0f/fb1d14c19cb22558e1c8b6bf8613b708959a1f | 4 + .../19/b821171aa8f625ba7b541990fd58e406b487ef | Bin 0 -> 145 bytes .../1e/60047ac9348a77426a2662c52b75df6b206410 | Bin 0 -> 51 bytes .../29/0281faec07d3c360c49a13c98580568fd0a237 | Bin 0 -> 1428 bytes .../2e/cb0aaa685da4766ac9bf027faeed7fedd2c9e2 | Bin 0 -> 3157 bytes .../2f/cf2eccaa90304e781420b95a46da94bc1249d8 | Bin 0 -> 280 bytes .../32/c162b834fe2a40a069b5cf62b1d622039cb841 | Bin 0 -> 3566 bytes .../33/517e83c72b6c126a3cad494a638d0ac9d8a01a | Bin 0 -> 53 bytes .../37/47c2a6839e835aae20b60593f143c9281b7428 | Bin 0 -> 53 bytes .../37/9e387a7fc2fbe68ab15e3d669fc579bf7ddbee | Bin 0 -> 205 bytes .../3d/9bdf158869f1e4ad01323e7971b20cfa09289c | Bin 0 -> 1403 bytes .../3e/67b4ceec09421890a8fbeaa91ec3f11659ee96 | Bin 0 -> 51 bytes .../3f/4041d39c7018a45066fc4c2c8b39f9bc4e2f0c | Bin 0 -> 180 bytes .../3f/635a585a79811712905e7ed8bacd891fb2dbd1 | 2 + .../44/f7a8c9dbb29dc004544a4886dfc46bb3a3f490 | Bin 0 -> 51 bytes .../4a/5ae7e37129fea6be48eb46c41f88bf94a9e86f | Bin 0 -> 51 bytes .../54/390f5d84d5c73625cee8a37f8334be708cdaa3 | Bin 0 -> 47 bytes .../55/4fa87fd8de773ee7ad5a740577b4e1a5835fd8 | Bin 0 -> 280 bytes .../57/edc42cf9486815454483ccaf3eb749eecdde89 | Bin 0 -> 322 bytes .../5e/e0e2b152931a1dbc90f8e56c11962e1905e3f3 | Bin 0 -> 48 bytes .../5f/69cd7a18253e0618422a9ed9b54655c1321bd8 | Bin 0 -> 51 bytes .../6a/7115ad7e594ea289867e22ece32b27ea9d0581 | Bin 0 -> 51 bytes .../79/04dc9d395e571524ae2c07e1eddf493bea5b69 | Bin 0 -> 180 bytes .../7a/0e3d6fe6c7846820ee7c56770c25fab8e91b05 | Bin 0 -> 180 bytes .../7a/bad5a14fb6cf6d4a0aff5a482a2da744751535 | Bin 0 -> 48 bytes .../7c/0aaf36b8ccf0ff5167b858759c66a900d29d5a | Bin 0 -> 53 bytes .../83/e9bd0e09f83f24790a0140859fd0a429dbcff0 | Bin 0 -> 203 bytes .../87/684c156f6448e4507e6c230d988544c53c78d8 | 4 + .../8a/18a08d1b0319d6c4f4e9d2f46393b43744a128 | Bin 0 -> 53 bytes .../8e/e971d7cea680bba00085f21695ca6ea1226693 | Bin 0 -> 180 bytes .../91/8d5f44b69039c362da74de751ac28ab817ed9f | Bin 0 -> 51 bytes .../9c/27a7787ce83a4f5a6b920c82c4c144a30e3249 | Bin 0 -> 204 bytes .../9f/57081c0eb579d666848070a9f3dde6f29d1007 | Bin 0 -> 53 bytes .../a3/e0b240163acd9a4156794b7f887ceda9b1fa52 | Bin 0 -> 47 bytes .../a7/23606248b13ac39773224a0fe141ffb85a42b6 | Bin 0 -> 53 bytes .../b3/a565cba1d265bd9b3f10a003d82f099ec192c1 | 2 + .../b3/fa5c9312f56dfceb9e670a4057d10bea433e7b | Bin 0 -> 3305 bytes .../b6/b7b3d6c8fc046216a0908696d7ce8aec8fadda | Bin 0 -> 146 bytes .../b8/9f96b216df3e7be8b6617961491875c8014594 | Bin 0 -> 1398 bytes .../b9/c2c88d00dcaab6f2287e2593f28c7d87d5c2ba | Bin 0 -> 47 bytes .../ba/92fe33c251da79a00c2e5f5a6c198236154644 | Bin 0 -> 51 bytes .../c4/a3e380a32dc695acc0147c4cf0056f09781fb2 | Bin 0 -> 110 bytes .../c6/e7e028a660d4465c2365cacc90f999a4b36535 | Bin 0 -> 280 bytes .../c9/206eadbf01b61133d1de92c1a91cf0e0e61bb9 | Bin 0 -> 280 bytes .../cc/c7b0c4e1ed58be1549d2fd4cd19bab8b29ba90 | Bin 0 -> 52 bytes .../da/a540c28199a662b2051d3c05c3b31c768f35e9 | Bin 0 -> 203 bytes .../de/e5758307398da96ba41e6d956f621de6346fa6 | Bin 0 -> 1431 bytes .../df/21a3718ee285ea525f41fc71cfe0c059295ad9 | Bin 0 -> 106 bytes .../f0/ccdfb495f178669e0ba383231aa7d722b236eb | 2 + .../f4/4cbf72a6e2642cde2550448aba939801e9af0c | 1 + .../f7/1c302ecf8af361be73b4f42b8b4ca1af3529d1 | Bin 0 -> 180 bytes .../ff/41b96b3b2546f8fffcd4aee578c3f98b7c4fd1 | Bin 0 -> 53 bytes .../localSourceTracking/refs/heads/main | 2 +- .sf/orgs/00DEi000009lLroMAE/maxRevision.json | 30 ++++++-- .../classes/OpportunityCloneService.cls | 70 +++++++++++++----- .../classes/OpportunityCloneServiceTest.cls | 9 ++- ...lusionRule.QuantityLessThanTwo.md-meta.xml | 17 +++++ .../staticresources/SmartClone_TestData.csv | 2 + .../SmartClone_TestData.resource-meta.xml | 6 ++ 67 files changed, 127 insertions(+), 26 deletions(-) create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/01/0b21a76a043ea522f1a517907f0dfac79eef14 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/02/b2bc35a3c833cbd737575bb08d9366640ce7f1 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/02/d4e8201138ff19f5e98f1ffab960f1e0d83444 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/04/d8098e4245dc2dad6ddd71b60ddab43ae05f24 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/07/ff864d03ac3b68c4ca3733802ee5f453e7706b create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/0f/25a9ac6b76d729c38ef8a884db6406c69319cb create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/0f/45275e9939cfd62963395dec737a73bebc0872 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/0f/fb1d14c19cb22558e1c8b6bf8613b708959a1f create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/19/b821171aa8f625ba7b541990fd58e406b487ef create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/1e/60047ac9348a77426a2662c52b75df6b206410 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/29/0281faec07d3c360c49a13c98580568fd0a237 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/2e/cb0aaa685da4766ac9bf027faeed7fedd2c9e2 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/2f/cf2eccaa90304e781420b95a46da94bc1249d8 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/32/c162b834fe2a40a069b5cf62b1d622039cb841 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/33/517e83c72b6c126a3cad494a638d0ac9d8a01a create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/37/47c2a6839e835aae20b60593f143c9281b7428 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/37/9e387a7fc2fbe68ab15e3d669fc579bf7ddbee create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/3d/9bdf158869f1e4ad01323e7971b20cfa09289c create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/3e/67b4ceec09421890a8fbeaa91ec3f11659ee96 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/3f/4041d39c7018a45066fc4c2c8b39f9bc4e2f0c create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/3f/635a585a79811712905e7ed8bacd891fb2dbd1 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/44/f7a8c9dbb29dc004544a4886dfc46bb3a3f490 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/4a/5ae7e37129fea6be48eb46c41f88bf94a9e86f create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/54/390f5d84d5c73625cee8a37f8334be708cdaa3 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/55/4fa87fd8de773ee7ad5a740577b4e1a5835fd8 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/57/edc42cf9486815454483ccaf3eb749eecdde89 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/5e/e0e2b152931a1dbc90f8e56c11962e1905e3f3 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/5f/69cd7a18253e0618422a9ed9b54655c1321bd8 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/6a/7115ad7e594ea289867e22ece32b27ea9d0581 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/79/04dc9d395e571524ae2c07e1eddf493bea5b69 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/7a/0e3d6fe6c7846820ee7c56770c25fab8e91b05 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/7a/bad5a14fb6cf6d4a0aff5a482a2da744751535 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/7c/0aaf36b8ccf0ff5167b858759c66a900d29d5a create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/83/e9bd0e09f83f24790a0140859fd0a429dbcff0 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/87/684c156f6448e4507e6c230d988544c53c78d8 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/8a/18a08d1b0319d6c4f4e9d2f46393b43744a128 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/8e/e971d7cea680bba00085f21695ca6ea1226693 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/91/8d5f44b69039c362da74de751ac28ab817ed9f create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/9c/27a7787ce83a4f5a6b920c82c4c144a30e3249 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/9f/57081c0eb579d666848070a9f3dde6f29d1007 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/a3/e0b240163acd9a4156794b7f887ceda9b1fa52 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/a7/23606248b13ac39773224a0fe141ffb85a42b6 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b3/a565cba1d265bd9b3f10a003d82f099ec192c1 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b3/fa5c9312f56dfceb9e670a4057d10bea433e7b create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b6/b7b3d6c8fc046216a0908696d7ce8aec8fadda create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b8/9f96b216df3e7be8b6617961491875c8014594 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b9/c2c88d00dcaab6f2287e2593f28c7d87d5c2ba create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ba/92fe33c251da79a00c2e5f5a6c198236154644 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/c4/a3e380a32dc695acc0147c4cf0056f09781fb2 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/c6/e7e028a660d4465c2365cacc90f999a4b36535 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/c9/206eadbf01b61133d1de92c1a91cf0e0e61bb9 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/cc/c7b0c4e1ed58be1549d2fd4cd19bab8b29ba90 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/da/a540c28199a662b2051d3c05c3b31c768f35e9 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/de/e5758307398da96ba41e6d956f621de6346fa6 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/df/21a3718ee285ea525f41fc71cfe0c059295ad9 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/f0/ccdfb495f178669e0ba383231aa7d722b236eb create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/f4/4cbf72a6e2642cde2550448aba939801e9af0c create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/f7/1c302ecf8af361be73b4f42b8b4ca1af3529d1 create mode 100644 .sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ff/41b96b3b2546f8fffcd4aee578c3f98b7c4fd1 create mode 100644 force-app/main/default/customMetadata/SmartCloneRecordExclusionRule.QuantityLessThanTwo.md-meta.xml create mode 100644 force-app/main/default/staticresources/SmartClone_TestData.csv create mode 100644 force-app/main/default/staticresources/SmartClone_TestData.resource-meta.xml diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/index b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/index index fb6ec5da628b69a3fdf16a1e3cb8074ea72ebee5..78eece7cdaaf1df6704b3bffc67f777393b20173 100644 GIT binary patch delta 549 zcmbOsb3vZR#WTp6fq{Vuh-EhNykN1(V4L~a+FLahMl*F^JjuYOBE`VaxCE#O3M|(e z9ZcF`@=wcQLFU%;NgJ;zG0)lIIN5;p4A6kphm_sL0$?=6fJ-f?1_+Ki4<4BrzqiBysWuZaGE0z|zFLlFX7ypVZ>wkc`BcLhTh?l}>u+`j|^HHs4n9FqKg@T~Pf61>e`{jS_O!)ZV zhKUPmcg8Y@I5$MUGL2orgeJKJF4}5lIPBvgYgTsJJEvNh0w diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/01/0b21a76a043ea522f1a517907f0dfac79eef14 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/01/0b21a76a043ea522f1a517907f0dfac79eef14 new file mode 100644 index 0000000000000000000000000000000000000000..c142a40a8f0bf093142f0e981b2e9496413df170 GIT binary patch literal 280 zcmV+z0q6dBoGU3xO;s?mFkvt;FfcGsNGvT%WY9Kv>!zZ*YiG)j+kIu9jy`^Dz407G zIyon?xHz?#f&G7*FY_Afj3cMajT`iyehGeFkPTH)T3nK!>zi7Vn37nM$Z%hAabe%1 z)>lFCj(-ZzKR6Jn8Fdq)Fefo7HK&;2xDAW&D&s>XuRk4AnPu<4r)aVAeW-%+WQMyo zI+;5;&dzlBVCz{qYm&gxdt7@VviV6_smUe948L=JI*L433_HB*>Lj%*zO75THMJos z3QIGSvmKL5GV}9_8Ili|zwtb1{=~faUDVcmUhQYs#MVKS6_+HIWF{A-7U!21C8riM e99jIhVX^M9scR01)cAa0&F8F;-vj_f&3cs=F^9PT literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/02/b2bc35a3c833cbd737575bb08d9366640ce7f1 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/02/b2bc35a3c833cbd737575bb08d9366640ce7f1 new file mode 100644 index 0000000000000000000000000000000000000000..3df52377a3e5a614f74b3169a3f189fc6c7f8529 GIT binary patch literal 180 zcmV;l089UPoGU3xO;s>9HDoX}FfcPQQSdJ)$S*1>&C4vQbk51oOASsfD$7hx)l1GP zX4w2IX0p)N+&{19rE@uiU*vw}Y*$TKn{IAuNupjwZVtnuj72vbZgC%0cjyPB_&%UHPL&6(05YEdl_U`;s|c7*U1* literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/02/d4e8201138ff19f5e98f1ffab960f1e0d83444 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/02/d4e8201138ff19f5e98f1ffab960f1e0d83444 new file mode 100644 index 0000000000000000000000000000000000000000..8c6a77eaa0207baf2f9b12c1b8f4caca3309d8ac GIT binary patch literal 136 zcmV;30C)d*oNdaz3c@fHhGA#Hd&mW35fK*`!3u?HvD7)7#19(DAIVA4yO%CbuFv~w z7q!^#534g~xR{V{6dt`-}^C1zh8DP=b6 qd!@jZKOIULCko?~0r_9Y;nB!GrI@*frP_d&;eWe0irp9BK0SVE3_mOY literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/04/d8098e4245dc2dad6ddd71b60ddab43ae05f24 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/04/d8098e4245dc2dad6ddd71b60ddab43ae05f24 new file mode 100644 index 0000000000000000000000000000000000000000..d319201cdb9a921d06277460d0130b8c6b2b90e6 GIT binary patch literal 48 zcmV-00MGw;oGU3xO;s>9WH2!>FfdTaP0Y+=@QQl=xKQ)ovV9(}-Hyn2?4PpoMLqxy GKoE}v5*C2~ literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/07/ff864d03ac3b68c4ca3733802ee5f453e7706b b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/07/ff864d03ac3b68c4ca3733802ee5f453e7706b new file mode 100644 index 0000000000000000000000000000000000000000..02f01ef92c3a228e89623a37097cfcdff02a0b0e GIT binary patch literal 180 zcmV;l089UPoGU3xO;s>9HDoX}FfcPQQSdJ)$S*1>&C4vQbk51oOASsfD$7hx)l1GP zW-vOKw8P||mcxR~t>=?AUQ=S8v%`_FHr?FRl0?0V+#H5Q8H;W>+~Phyg-iQ}*za@e z6E0`8;nyFMT3iCQ+V?{E_K&g>HCK{(@05M5bX{(Kc{_1hiLxG~7_2$8Br_+oq!MiB i0;Zs87g!ba(!W0ZoN%gjy7EVlDm?1(TLb{_ZIQE}?pIj= literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/0f/25a9ac6b76d729c38ef8a884db6406c69319cb b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/0f/25a9ac6b76d729c38ef8a884db6406c69319cb new file mode 100644 index 0000000..385d86d --- /dev/null +++ b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/0f/25a9ac6b76d729c38ef8a884db6406c69319cb @@ -0,0 +1,2 @@ +xœ•ÎM +1 @a×=E. $ý› ˆwiÒTG:ðø‚k7îßO·u]xJ§ÑÍ@U'A�FVÓ,F)rõ­F­ÄRdÏRÝ«t{�PRN*…ªÏI*Kh„1ÔÙ7d6%öJ®ã¾uØ[}þ] F/úXž7¸\�¦˜|8g8cDtúöq¿J÷ŽFDé \ No newline at end of file diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/0f/45275e9939cfd62963395dec737a73bebc0872 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/0f/45275e9939cfd62963395dec737a73bebc0872 new file mode 100644 index 0000000000000000000000000000000000000000..782250990291972ce6dff7e21376ed4376bb73b4 GIT binary patch literal 48 zcmV-00MGw;oGU3xO;s>9WH2!>FfdTaP0Y+=uuI=^?hU7t#Do>UU#*lo{823O-829M G!VmAż@ ŽŽ +Ñ»ŒãXKl® =~йK÷ÿƒ_¶u]&xOs¨btI3Jò•Äybn¡&ÌͲ”–Ù:6/úœÐ­Hë5”Ø]ÊDEmeÌèÑ1§–¼¯I«ácÞ·{ooØ·cˆÂ,�åyƒË\ +ÑStálƒµF¾cSÿ æWi>¯ÑCÓ \ No newline at end of file diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/19/b821171aa8f625ba7b541990fd58e406b487ef b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/19/b821171aa8f625ba7b541990fd58e406b487ef new file mode 100644 index 0000000000000000000000000000000000000000..18d1660b970f661f5a3263ce49ff1d8f973da645 GIT binary patch literal 145 zcmV;C0B-+yoR!W^3IZ_43)oUL- zpGI#DqN0dRp(Is9Go}zr;uJY+2$B)2&y~f!q_^h)G%HkTR?1quXHJbYl~61Nno7i! zISZMSW8Ak6yVW=B+tIbb=%SD1d4tOpD9-FdM9gr;8PVx?Y_va!`&GIR-)lqjYQIHt literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/1e/60047ac9348a77426a2662c52b75df6b206410 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/1e/60047ac9348a77426a2662c52b75df6b206410 new file mode 100644 index 0000000000000000000000000000000000000000..d277c6899c9bade19d63237d8b579f7725cb74da GIT binary patch literal 51 zcmb=Jqpj)X8){&dXkchyU=ZNp>Fcd?Rx{CJ<%I2J_K(dRA9sIOla0~*{P3Xh%ef4C H`vn~U(~%ST literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/29/0281faec07d3c360c49a13c98580568fd0a237 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/29/0281faec07d3c360c49a13c98580568fd0a237 new file mode 100644 index 0000000000000000000000000000000000000000..d8d01cd61fd13032daeb8a9d23e23335dd409fea GIT binary patch literal 1428 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 literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/33/517e83c72b6c126a3cad494a638d0ac9d8a01a b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/33/517e83c72b6c126a3cad494a638d0ac9d8a01a new file mode 100644 index 0000000000000000000000000000000000000000..3035ef4fa6035286fc7e320bc0f8dfcecab15ae5 GIT binary patch literal 53 zcmV-50LuS(oGU3xO;s>9V=yr=FfdR^%P&e!)lDoYV5r)4b)o;Z^SNGJ|D!y#beFr7 LikbodNeK_EESDBm literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/37/47c2a6839e835aae20b60593f143c9281b7428 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/37/47c2a6839e835aae20b60593f143c9281b7428 new file mode 100644 index 0000000000000000000000000000000000000000..02b304b4dab2e3255dccfe5caf796bfaac990a47 GIT binary patch literal 53 zcmV-50LuS(oGU3xO;s>9V=yr=FfdR^%P&e!)lDoYVAy%+L@&dgRogyk)TvJX)KlAj L_0TQ=TFw&s9{(3& literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/37/9e387a7fc2fbe68ab15e3d669fc579bf7ddbee b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/37/9e387a7fc2fbe68ab15e3d669fc579bf7ddbee new file mode 100644 index 0000000000000000000000000000000000000000..7fbfbe2cbcbee615a3cdf51c675d88a972d7a76a GIT binary patch literal 205 zcmV;;05bo0oK=rOPQx$|MOo(*Bk#$C76GapcM;SzqTv7&XWCkFJdr((!tD`)MZ5Wn zr}q|rh%&(Db^BoV>l9((T!N(5Jk^Z>PF}{4&aL_C507tV?<#v#(%?V2$TfS0b&9F9 z=At_95R1@Umy=}AwU-GuP4j}yGfu2Dl9F*10D$%6FWgDeEYW>jhZwxYJNWNOQcl`` z&+L>}MPC++xAe~&x%eDr4U$~XMd6*4;3OH26J_n9B!*7L-&r`*nQM!;QDyP|n5%vO HTHjwye=un- literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/3d/9bdf158869f1e4ad01323e7971b20cfa09289c b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/3d/9bdf158869f1e4ad01323e7971b20cfa09289c new file mode 100644 index 0000000000000000000000000000000000000000..8179ad47ec1caef13939c217d017c144df465772 GIT binary patch literal 1403 zcmV->1%&!|oW)p6bK5o$?%6Z`59o?le`9lv7Q?IDxNK;&9N4G{hErEoicq3+H7x0#g^0*NVdR) zqU6W+7MecAn-EMYvwLl*VG&sh7Lx^ifOphTzn2T+btt{SOGZklp%IUz#I zjR;(UC)Lkc0=WMP5uBkJe9&g96t0-u-Hj}lh$X_N*Gnb30gYoHP3F-0YZ<&Q=>o`* zps3~f&M?l*D);~iC~Dw_Cb3wAMzLh(?+tqWs(NnpGF?nTb++@S7Z`CTC8!bA;Ma}5 zWt_8Q78(VB6nlHbBRk!FBs;_-nYPz#dW3Z}B;J|fG%>VADl~}gka!LBgf?R5!=~u+Yeq&?&n4gwW$#ne!i5Q7aK zyC62f_4*{XD`k6}#26B26U@Mbh9)spv9sFTrmEeQD2RlLYdjWgSVs>XZ#SuQo4CWK zyGH}3lMbBZCicrPozNN-?h=+skRgurcA7JT7*sHcpGlh=Z4XJ`Fx2687eqwOhpAME{kP#UY_qQSRAMNO@RT zsUw?JU!_9j6b`GIS68x>IOmrpS_;2v)+g~$P9d1Y{f{Y43^S`C7Ef7BcD1}~0GLz{ z#*=s`qzoo;1;rYY4WK&S=X#IZTlo>UI2@DO`S!|oOS^e?MxHaQC{FPuMbDYkm6ISk|j9nD>ddR``OJ&`6~M8hGoPXZ>u*cFDGeR)-dEKyn(v0+RAwdQ-CEQ(Y^NsqsDZ z!|Qi`Pjn5seCLPV{D9P+oli3C=4IX6KB>;9u65R$(wD-FzowLHKS??7JMMSPFcd?Rx@$O)+-MK9-m3|oE?#x8^NDHP4l&REhmH4 HXa0Er-~bb( literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/3f/4041d39c7018a45066fc4c2c8b39f9bc4e2f0c b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/3f/4041d39c7018a45066fc4c2c8b39f9bc4e2f0c new file mode 100644 index 0000000000000000000000000000000000000000..2f10690e3ed3027d7551693f8026b035728c8bb4 GIT binary patch literal 180 zcmV;l089UPoGU3xO;s>9HDoX}FfcPQQSdJ)$S*1>&C4vQbk51oOASsfD$7hx)l1GP zW-vOKw8P||mcxR~t>=?AUQ=S8v%`_FHr?FRl0?0V+#H5Q8H;W>+~Phyg-iQ}*za@e z6E0`8;nyFMT3iCQddK`}o5b$hRlnGlSefW4QF?;WbqaA>iLxG~7_2$8Br_+oq!MiB i0;Zs87g!ba(!W0ZoN%gjy7EVlDm?1(TLb`H(~#5Fx>zv) literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/3f/635a585a79811712905e7ed8bacd891fb2dbd1 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/3f/635a585a79811712905e7ed8bacd891fb2dbd1 new file mode 100644 index 0000000..bb49fd1 --- /dev/null +++ b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/3f/635a585a79811712905e7ed8bacd891fb2dbd1 @@ -0,0 +1,2 @@ +xœ•ÎA +1 @Q×=E. ¤m&mA¼Kš¦:È8R+x|Áµ÷ÿÁ×}ÛÖ Á/‡9Ì ‹Ï‚¹ùŠÑ—ÆJ�¬´Ð‰c‰•b"²{Ȱû„Ê5ÕØXsW$ž f.Ü’ZÓÜ¥5qòš×}À³·7<÷×Pƒ9Doëý§3øDKàÄK�#¢ÓïØ´?ˆûUº©ID \ No newline at end of file diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/44/f7a8c9dbb29dc004544a4886dfc46bb3a3f490 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/44/f7a8c9dbb29dc004544a4886dfc46bb3a3f490 new file mode 100644 index 0000000000000000000000000000000000000000..939a974957b9ef8a9a9daba6b0b547df56f828b0 GIT binary patch literal 51 zcmb=Jqpj)X8){&dXkchyU=ZNp>Fcd?Rx{D!+n>f`n_9H<3{S0Ge$MBIW%0>pA;AoG H8iJDn>>?Dh literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/4a/5ae7e37129fea6be48eb46c41f88bf94a9e86f b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/4a/5ae7e37129fea6be48eb46c41f88bf94a9e86f new file mode 100644 index 0000000000000000000000000000000000000000..d64b2f1cce4d5a668c7f8d494ee825710c791f3c GIT binary patch literal 51 zcmb=Jqpj)X8){&dXkchyU=ZNp>Fcd?Rx|N}{rd8>t1Qg>xddD12Ig&F_D1m29!3WF HV18!+z0DE` literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/54/390f5d84d5c73625cee8a37f8334be708cdaa3 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/54/390f5d84d5c73625cee8a37f8334be708cdaa3 new file mode 100644 index 0000000000000000000000000000000000000000..2fd8e417372eff3fd16074baed5288cad19df434 GIT binary patch literal 47 zcmV+~0MP$9WH2!>FfdTaP0Y+=kV{~xI%(2X?v$mLbX2?aezro20085H F3}3$B6e0is literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/55/4fa87fd8de773ee7ad5a740577b4e1a5835fd8 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/55/4fa87fd8de773ee7ad5a740577b4e1a5835fd8 new file mode 100644 index 0000000000000000000000000000000000000000..cc310c7cf5a1e3a84745edf5173c271a6f493ed9 GIT binary patch literal 280 zcmV+z0q6dBoGU3xO;s?mFkvt;FfcGsNGvT%WY9Kv>!zZ*YiG)j+kIu9jy`^Dz407G zIyon?xHz?#q3>nk^>fP_b}wLP{UkQ^RNg|Rw8>BvrNt%rxxT3-i7AOCi46A@7Z>(D zYJC+H@A#+i{DT9Lno&0)3Ud;ZQgezKj@z&ZuQEPV^7_*;m09-wdx{n---jwFPiDAl zqm#Llu1-?B;@i5UTT>gN zqOdeGIomP0Br`v+m?8Oa`5VuJ=17-RS#e2XNoI0UYH@yPQF3ZA e!;!_08y4#xo4V$JNR7`2)_l$i`AqQ zf*y!+oSEOtd(%#?T}}pf@f9C7Mw1Qrpqx!vkrf%0y;AV z6oo)R8l!DU=^C+27z<96QCK=JA(GCpejE>2e9O!Mr!Ai}K^--9T}Smz!b&))ioaDf>kvW+*CGdu zt~EZ8K4*LQV9I{Fo{KOJj}p}e{%xH*r$Jcyz3Rn|ub>4&G0Q(e;>8=!%F=nP?Cv|1 Ug)xFTlYz6}SC)0Y0H}c3zWk+^Pyhe` literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/5e/e0e2b152931a1dbc90f8e56c11962e1905e3f3 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/5e/e0e2b152931a1dbc90f8e56c11962e1905e3f3 new file mode 100644 index 0000000000000000000000000000000000000000..44a891dda3cf7f0c406724e9a9afc27c59edbbbb GIT binary patch literal 48 zcmV-00MGw;oGU3xO;s>9WH2!>FfdTaP0Y+=nAjWdvTcIp;iOw7_e!M>b?p#;J0Ac8 G_7An+p%ifd literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/5f/69cd7a18253e0618422a9ed9b54655c1321bd8 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/5f/69cd7a18253e0618422a9ed9b54655c1321bd8 new file mode 100644 index 0000000000000000000000000000000000000000..62955bf319cff13d1c539c4a426796588f9a5055 GIT binary patch literal 51 zcmb=Jqpj)X8){&dXkchyU=ZNp>Fcd?Rx@$N;(dD-J!_p>AM#CQ-ZEwOSh3HNl}rrE Hj(oQO-CYv_ literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/6a/7115ad7e594ea289867e22ece32b27ea9d0581 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/6a/7115ad7e594ea289867e22ece32b27ea9d0581 new file mode 100644 index 0000000000000000000000000000000000000000..b07f791cc406f65994016fec8a5c0f6d8a001c46 GIT binary patch literal 51 zcmb=Jqpj)X8){&dXkchyU=ZNp>Fcd?Rx>f-Nm$Ihqe9HDoX}FfcPQQSdJ)$S*1>&C4vQbk51oOASsfD$7hx)l1GP zX3#s$wJIZaNm@i-qydpbn+2lZMwOsC5d_!xj77rG8Wx%xW#>Z3YYc`vES#` zCtS{G!>>OiwYUUqweN-S?H^?&YOW;n-YNT9>AKwf@^<315@kI|F<5hGNoG!FNhR3M i1x!KHF0d--rGI_+IpI|6bmfm8Re03nw+H~+sFPi;rC5mo literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/7a/0e3d6fe6c7846820ee7c56770c25fab8e91b05 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/7a/0e3d6fe6c7846820ee7c56770c25fab8e91b05 new file mode 100644 index 0000000000000000000000000000000000000000..cb21758ad6ba566b02ba20de928a1b11adb2ab75 GIT binary patch literal 180 zcmV;l089UPoGU3xO;s>9HDoX}FfcPQQSdJ)$S*1>&C4vQbk51oOASsfD$7hx)l1GP zW-vOKw8P||mcxR~t>=?AUQ=S8v%`_FHr?FRl0?0V+#H5Q8H;W>+~Phyg-iQ}*za@e z6E0`8;nyFMT3iCQ+IIGR(T>cIPu4OT*;N*9;`zm?F^4#0cjyPB_&%UHPL&6(05YEdl`iw2)MDnN;Hd literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/7a/bad5a14fb6cf6d4a0aff5a482a2da744751535 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/7a/bad5a14fb6cf6d4a0aff5a482a2da744751535 new file mode 100644 index 0000000000000000000000000000000000000000..9c2b1450a490dd7e91f5afed5c41c1b83e71f9dd GIT binary patch literal 48 zcmV-00MGw;oGU3xO;s>9WH2!>FfdTaP0Y+=aQVLCX>lD&EHmk9t9 GJrLaUN)@93 literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/7c/0aaf36b8ccf0ff5167b858759c66a900d29d5a b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/7c/0aaf36b8ccf0ff5167b858759c66a900d29d5a new file mode 100644 index 0000000000000000000000000000000000000000..a20a4bd788c80fca4f5abe161580324bd8d5590b GIT binary patch literal 53 zcmb=Jqpj)X8){&dY+z_$U=ZMOTHnj>s;`blLc-32H=jSLaxc$)clS{4p6%NrY&*gk J87$KUQ~)TW6`lY9 literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/83/e9bd0e09f83f24790a0140859fd0a429dbcff0 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/83/e9bd0e09f83f24790a0140859fd0a429dbcff0 new file mode 100644 index 0000000000000000000000000000000000000000..aadae74c3fe83ba55e3b68d3f85587a20c254f3b GIT binary patch literal 203 zcmV;+05t!2oGU3xO;s>5Fk~<>FfcGsNGvT%WY9Kv>!zZ*YiG)j+kIu9jy`^Dz407G zIyon?xHz?#p_1j!T+6s{QI&N%><{1G_q2W$oe5EqlbDp6Q_OJOhDCUl@u8B}pN^@_ zviILpv{?B*R6%(%!(AJl%$*!(XF7ba^{kvVN#N)`uDuZ1{G_bZ2$ z9o}_ylG+vD)+ODV+7K0mrJ2duj>#pN`FX_*$%o6|cpfx=VqW|%YHL2P_OokZ>i{{& FRrsnmXfpr+ literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/87/684c156f6448e4507e6c230d988544c53c78d8 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/87/684c156f6448e4507e6c230d988544c53c78d8 new file mode 100644 index 0000000..daf49e8 --- /dev/null +++ b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/87/684c156f6448e4507e6c230d988544c53c78d8 @@ -0,0 +1,4 @@ +xœ•ÎA +Â0@Q×9Å\@H2“¦ñ.“ÉŒ©•4�/¸vãþ?ø²­ë2 †t]Ì(Ô2U¬1Ñd³™I#VMy´2×,d-¸w}`m%cDÎè½z±9N¨)znd¹”ã¾uØ­½aߎ. +£³<–ç .W™R$*>ÃÙ“÷N¾cCÿ îWé>~ +DÛ \ No newline at end of file diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/8a/18a08d1b0319d6c4f4e9d2f46393b43744a128 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/8a/18a08d1b0319d6c4f4e9d2f46393b43744a128 new file mode 100644 index 0000000000000000000000000000000000000000..480bac24972b2e898eca8f55e59c1e7628b4a487 GIT binary patch literal 53 zcmb=Jqpj)X8){&dY+z_$U=ZMOTHnj>s;`bl0>{QD{kc1oS+(C>Re8E> J3^ojctN<9V6n+2z literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/8e/e971d7cea680bba00085f21695ca6ea1226693 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/8e/e971d7cea680bba00085f21695ca6ea1226693 new file mode 100644 index 0000000000000000000000000000000000000000..b12cb674c88de87da5ef30b7a05590267c68523e GIT binary patch literal 180 zcmV;l089UPoGU3xO;s>9HDoX}FfcPQQSdJ)$S*1>&C4vQbk51oOASsfD$7hx)l1GP zW-vOKw8P||mcxR~t>=?AUQ=S8v%`_FHr?FRl0?0V+#H5Q8H;W>+~Phyg-iQ}*za@e z6E0`8;nyFMT3iCQ`rgyhW_HWomDx+=a;N4e$v!j5Uq+l(qO1og25Sy2$;`Fcd?Rx^>~YkXk+5Fk~<>FfcGsNGvT%WY9Kv>!zZ*YiG)j+kIu9jy`^Dz407G zIyon?xHz?#foano)5Rx@PhU3=kKWKbIW2|f`A3L~oW!KmoMMLKHY~!cj1QH({&Y-b zmc9R;qQ%Php$f{A8SdKXWbWiRJJaEVt!L$|NdiajaqWf3<|k#PCYKa5{LcC5DDqq} z?C`Fulhm&Gwl3+`)P|@iEX_>Lc1$kG%+D)kNIqQt#`B>06Z7JCQCstQwVz!RTL%CQ Glvig~0BR`! literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/9f/57081c0eb579d666848070a9f3dde6f29d1007 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/9f/57081c0eb579d666848070a9f3dde6f29d1007 new file mode 100644 index 0000000000000000000000000000000000000000..80b6652e71453ea5e03b5ba087b8ad62289b6ea0 GIT binary patch literal 53 zcmV-50LuS(oGU3xO;s>9V=yr=FfdR^%P&e!)lDoYVEE#*zi8Q`6rFpj0WMv;CeL7e Lxt<3APKpr!76BD< literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/a3/e0b240163acd9a4156794b7f887ceda9b1fa52 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/a3/e0b240163acd9a4156794b7f887ceda9b1fa52 new file mode 100644 index 0000000000000000000000000000000000000000..ffa1e8ff0e65c419adcea354d1079f985d60166e GIT binary patch literal 47 zcmV+~0MP$9WH2!>FfdTaP0Y+=*fr^&@u9$5l?!s;`blLPzz7jN}U`nm28Q>uk;n&RM2@^4AYz J2A@JfF#!E`6ea)w literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b3/a565cba1d265bd9b3f10a003d82f099ec192c1 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b3/a565cba1d265bd9b3f10a003d82f099ec192c1 new file mode 100644 index 0000000..5114916 --- /dev/null +++ b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b3/a565cba1d265bd9b3f10a003d82f099ec192c1 @@ -0,0 +1,2 @@ +xœ•ÎA +Â0@Q×9Å\@H&3ɤwI§S-ÒVÒ<¾àÚ�ûÿàë¾®K |éÍ b¦¬X“Äb¹VC?&Ï%Î�¢”0fBq¯Úlë 9 ià4'"1bŸ-)F?&RŽšeWÏþØóô†c?›ôVõ¹lw¸ 21’`a¸zòÞéw¬ÛÄý*ÝlÜAÝ \ No newline at end of file diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b3/fa5c9312f56dfceb9e670a4057d10bea433e7b b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b3/fa5c9312f56dfceb9e670a4057d10bea433e7b new file mode 100644 index 0000000000000000000000000000000000000000..a95990168cd4c328ee359fb1a3102a91e58a31fb GIT binary patch literal 3305 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 literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b8/9f96b216df3e7be8b6617961491875c8014594 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b8/9f96b216df3e7be8b6617961491875c8014594 new file mode 100644 index 0000000000000000000000000000000000000000..f54ec2f1e78bcef6a6e86b1ec06e17a076b9aaf2 GIT binary patch literal 1398 zcmV-+1&R82oW)pMQ`y+sm&}Mr}Dz>7gK(YlUBqcw$ zw@~yc-UMJ$ncZtc4GYOiu!zL;9^O+!d;OdkuXCo&@mUy(G%+WHhM_?Tnv6&S->av+ z{!xwZN{J{9&Hf3-7k}YXm$f8l;$#C3nCI7zu1}+=haz)mdm9?OE@=#8M3B_R z`PMMb%-a752`FmdnkJEm1EW~7=1}&S@am|Xhgg-!)an@3sqnc+Y#|Tf=~AT6Npav)99IDbG>Z>*G6tLG8j0(2H_H7>c6*( z)EquA;L$bclpAt~Z96{?X7hg_G&gGrzB7FMJEYfsVCVv{B_kLIEUy?~31Tr55hzaSF!=9#ry_}&!$nUuwnP^&0+cN9_{7E`Xe8(0Pou%7lqQCm^$3fnEGBze-ZcPBs*CY7 z8VM==X;eY6hGYY%j`ca;!}eCb;ugy>sqMEj+byl~Y)4))tSCTdnz28d>KGTy}nsu*VwJJAR z$kO8HAY(0cEVmu!zhUxD2o5xP4k#_!J^MV$?!5mGoKGpJb>`g%p=MH^C6SGuf}{e` z?(PB%p$V34;mhXKt!r%lGl|H24kqW5@eNMw57)Dc3f1}aVtPaNzC7yRW!mxVXZ_tO zC-~_#RJHaVjygs)6GOgj{I~CuzY6D*c;%jB8>!mg9^Z_{XZli@cbq2oy_!W`qy1#8 z>q+=GGs~7J=bcE47|7%YPwjsOD&_77w?=S5Bl}t%#8hPi?b zJIn{f+c11ZNhqXJ0l!M7K{iRdq*OycLy6ZQISnC(qS|5oOJOG8Qp$BNNjV=l=6B5BhwZI@0elq7 ET{aD^AOHXW literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b9/c2c88d00dcaab6f2287e2593f28c7d87d5c2ba b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/b9/c2c88d00dcaab6f2287e2593f28c7d87d5c2ba new file mode 100644 index 0000000000000000000000000000000000000000..6bd2881342c98aec5ecf8181e0814a91f7ebc987 GIT binary patch literal 47 zcmV+~0MP$9WH2!>FfdTaP0Y+=h|fG*C827^CgG$t@8(vw(1S+OHvr;) F46ne~6x9F# literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ba/92fe33c251da79a00c2e5f5a6c198236154644 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ba/92fe33c251da79a00c2e5f5a6c198236154644 new file mode 100644 index 0000000000000000000000000000000000000000..43c54eb39b102ee3f443d40a083b1e8dfa203bf8 GIT binary patch literal 51 zcmb=Jqpj)X8){&dXkchyU=ZNp>Fcd?Rx>f9Zs+v=&+U7?RK*uNzy8DRZIVC#KLdlj H9{+0q(k&A< literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/c4/a3e380a32dc695acc0147c4cf0056f09781fb2 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/c4/a3e380a32dc695acc0147c4cf0056f09781fb2 new file mode 100644 index 0000000000000000000000000000000000000000..89d4551e234905af446dfcdc8e95ae3d5ea3bd82 GIT binary patch literal 110 zcmV-!0FnQAoGU3xO;s>7G-EI{FfcPQQ3%dWEGlu%$@S zLP5~tzvS1K{qnzdCVYHw!^8!TmZH?+{L-T2RNdUvl0?0V+#Ck;c@|amhkifn+8Ae> QHveel{@UB`0AGtU5_&r}Pyhe` literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/c6/e7e028a660d4465c2365cacc90f999a4b36535 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/c6/e7e028a660d4465c2365cacc90f999a4b36535 new file mode 100644 index 0000000000000000000000000000000000000000..ee7ac404e0ebfd452aae67249b521a4a59885334 GIT binary patch literal 280 zcmV+z0q6dBoGU3xO;s?mFkvt;FfcGsNGvT%WY9Kv>!zZ*YiG)j+kIu9jy`^Dz407G zIyon?xHz?#!QR2~@|*&RB>`!Fd~~`kf9~#Lx6$3KPV9~_9(jJgR?n3I^4np4bh+=fMXmGPmH*Po85%(D02Q?yw5K2$+@GQ(XP zoy?saXJ!zZ*YiG)j+kIu9jy`^Dz407G zIyon?xHz?#;k%51-ubT2iTjGTe9`XqS-9R*^CDD5X>mz@u5W5dVoG93BEx;f#f5#3 zT3-dlJN_v=|KLERX4FlH!komU)SP05<2Ee9tBenoy#91dWtP4Fo}$Id_n`{PlNs*X z=w$BXI6KqfgRN)ftVse#?{V#g$mSL$;{6yW=K9<{>Jm5`4jWvcTrpOd9|Ni6I%ySR$P);l9^nTTAW{6l$=`3 eaAfi0hQ+$armi_4QseW1HJ`IWeiH!m*?Uec&6YI) literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/cc/c7b0c4e1ed58be1549d2fd4cd19bab8b29ba90 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/cc/c7b0c4e1ed58be1549d2fd4cd19bab8b29ba90 new file mode 100644 index 0000000000000000000000000000000000000000..61dbfc9f69cd431c733770d2141ae0096cf36693 GIT binary patch literal 52 zcmb=Jqpj)X8){&dY+z_$U=ZMOTHnj>s;`bl!h`bA{@Iz8|7N9aN_{i?(W*za)fQb0 I`U(8C00*HJrT_o{ literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/da/a540c28199a662b2051d3c05c3b31c768f35e9 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/da/a540c28199a662b2051d3c05c3b31c768f35e9 new file mode 100644 index 0000000000000000000000000000000000000000..3039dbfce36ea4592187f13ea0ad266a8ab5e727 GIT binary patch literal 203 zcmV;+05t!2oGU3xO;s>5Fk~<>FfcGsNGvT%WY9Kv>!zZ*YiG)j+kIu9jy`^Dz407G zIyon?xHz?#f&G7*FY_Afj3cMajT`iyehGeFkPT6hlbDp6Q_OJOhDCUl@u8B}pN^@_ zviILpv{?B*R6%(%!(AJl%$*!(XF7ba^{kvVN#N)`uDuZ1{G_bZ2$ z9o}_ylG+vD)+ODV+7K0mrJ2duj>#pN`FX_*$%o6|cpfx=VqW|%YHL2P_OokZ>j1id FR@(U(X9WNN literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/de/e5758307398da96ba41e6d956f621de6346fa6 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/de/e5758307398da96ba41e6d956f621de6346fa6 new file mode 100644 index 0000000000000000000000000000000000000000..673e229363d3027e919c19165992dabaacdf83f7 GIT binary patch literal 1431 zcmV;I1!($soW)q*Q`I#f&=CKA$g z-Oqu9oN7(JGtP-rV!_5Q7B^OK*mxEWzvM1<$#L>CZHB9gls38nz>Mo zo7ii>MH-P?P>({zpvY-BqiT5`a*@iYcp8KvKFjPaKRP-XE_I4#{gW`12!vDxd};)ZgFTIcNGFwAtN}iY=%qkZgeo zMaj?I9W;H8Hxn?a%xyY}dJ%>qP0SggVQA2TCVi5? z_v)(OIjQO0DiNijIXpvt@fSXIRZD>;T^7Prh^Jv<)DkV^_ag(bt{SOGuA6djIU_>K zwFq2+7uBy=0=WMf5uBkJe9&g96t0-u-w!R9h$X_NS4$Ij+8GM8U6g6;1lSsr9qgXQY4|<($RXsO)lg3j}8{2u;35{e() z`2f33pLj>Tqux>5wuqIoJ3mY=JW`XI%$byxzz??w{M}1&7p8v^_{xKqBQNAO2)*37 z8v9D9<7PBVG$^ym-lk;F3*AZfN1^;tVqgY}uzv4^Fmg)XoUpw;xBcMd^p3JHipEi^ z43bwze>3>s)U()zqc1|k7Kn~fDKtpro97U2w$~Jq8g6{8`jZd$J=!(-6rm^ z>F&|M>1YE^aubJTm`-R73J(d(BuF2R^mdvvgBVmWingT9jkXC~%iQY7VBi2d3Fi>g z;Da5crf|uCM|Yr8Zpb6H?Rcb&ZP$G23%;IWzfuI zsSU(|5fNSb9dzLXU26Ym?Oe2=7jTiji^b>O7evC|Y+1WS>`nBKr7VVoT1C0Dqmc5r zuu?}htG-Hw$|)RIGq0{>DRJhPCRz%=YSu?lUrr$yMcq#+O$;;3J{C_|Om?-rYXF#3 z2jfxH7g7eJsDfe*$p%mz?{mH9-JN{IErw%Kn{UUqTiVUD8F|jIqBzBu6g_8BS0-OH z5@$N`Ed5T^ ztK4NFOOLlf#(L^_ZadC@!{ogX9B8r)C@s5t_IZ@udH)|cpHfiEEV@gf#!_A+k!4Ro zQh{iHe+Guo1k1LFWwq+oH8%gTL}WfshF8PEJ)YQ?cjN1d)Ya&EbWaYxto83Q?RfUH z{%(~E{PY^CT6@nY8?u_2A>UT<+xN*|(fJ}?dF0qes{Xh0o5=)B-w5-b)8xsod9*3p zFLGT^!oQiBH?oWoT&5;fa1CZIs_p~X9poQ4oXQoiG^OICcU zYXvejzK4Ez-HqShT!StT`4E~9F6~+KBJys&)V=MJ>bbFL{(@9k?xffy-b&#sT0$e96U6iG&cEI%=S<0i$OQlZ literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/df/21a3718ee285ea525f41fc71cfe0c059295ad9 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/df/21a3718ee285ea525f41fc71cfe0c059295ad9 new file mode 100644 index 0000000000000000000000000000000000000000..743eb253c873f676fe0d860be329b3884a457851 GIT binary patch literal 106 zcmV-w0G0oEoGU3xO;xb4WH2-^Ff%bx2+mC`Dsj%q&r1zTP0lY$aji(sDJ{;-&kHKe zN!1H1P0TCFEUENKEiMkpNX!c<&)3UM(alXQNz|*z&0z?Cdqn4_M~0}YOY@oacH2GQ MoxRry0F$XEPFxN!rT_o{ literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/f0/ccdfb495f178669e0ba383231aa7d722b236eb b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/f0/ccdfb495f178669e0ba383231aa7d722b236eb new file mode 100644 index 0000000..35fa672 --- /dev/null +++ b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/f0/ccdfb495f178669e0ba383231aa7d722b236eb @@ -0,0 +1,2 @@ +xœ•ÎM +1 @a×=E. ¤iâ]Ú4ÕAÆ‘N<¾àÚ�û÷Á“m]— ÎÆÓªÀ=&ÌVPkL܈(‡Œ wßšRwÜ,b2¯2ô9»‹…‹PMÔ’cñY{.9‡V) ±·,Õ”cÞ·{ooØ·cˆÂEËó—+Ø¢£ˆäáŒÑÈwlêÄü*ÍUCK \ No newline at end of file diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/f4/4cbf72a6e2642cde2550448aba939801e9af0c b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/f4/4cbf72a6e2642cde2550448aba939801e9af0c new file mode 100644 index 0000000..de3e810 --- /dev/null +++ b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/f4/4cbf72a6e2642cde2550448aba939801e9af0c @@ -0,0 +1 @@ +xœ+)JMU06d01000PÈMÌÌcÈ*][é·¨³­NéÍcmõWsYõv/ \ No newline at end of file diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/f7/1c302ecf8af361be73b4f42b8b4ca1af3529d1 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/f7/1c302ecf8af361be73b4f42b8b4ca1af3529d1 new file mode 100644 index 0000000000000000000000000000000000000000..01eba54adcc8f6e3de87a97c00ab2e9a82dbf5ba GIT binary patch literal 180 zcmV;l089UPoGU3xO;s>9HDoX}FfcPQQSdJ)$S*1>&C4vQbk51oOASsfD$7hx)l1GP zW-vOKw8P||mcxR~t>=?AUQ=S8v%`_FHr?FRl0?0V+#H5Q8H;W>+~Phyg-iQ}*za@e z6E0`8;nyFMT3iCQT9c{q*BkcBhZBy>5*G23H{f literal 0 HcmV?d00001 diff --git a/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ff/41b96b3b2546f8fffcd4aee578c3f98b7c4fd1 b/.sf/orgs/00DEi000009lLroMAE/localSourceTracking/objects/ff/41b96b3b2546f8fffcd4aee578c3f98b7c4fd1 new file mode 100644 index 0000000000000000000000000000000000000000..c9fc06b18957d15e5e9a0bbf92bbe100edaedbf7 GIT binary patch literal 53 zcmb=Jqpj)X8){&dY+z_$U=ZMOTHnj>s;`blLd2hh$;~sa-i+)^oO opportunityChildrenMap; + public static Map exclusionRuleMap; + public static Map> formulaInstanceBySObjectMap; /** * @description static constructor that will populate the opportunityChildrenMap */ static { List childRelationshipList = Schema.Opportunity.getSObjectType().getDescribe().getChildRelationships(); - opportunityChildrenMap = new Map(); - List restrictedRelationshipList = new List(); - String restrictedChildList = Label.SmartCloneChildList; - if(String.isNotBlank(restrictedChildList)){ - restrictedRelationshipList = restrictedChildList.split(';'); - } - for(Schema.ChildRelationship childRel:childRelationshipList) { - if(String.isNotBlank(childRel.getRelationshipName())){ - Schema.DescribeSObjectResult childObjRes = childRel.getChildSObject().getDescribe(); - if(!restrictedRelationshipList.isEmpty() && restrictedRelationshipList[0] != 'N/A'){ - if(restrictedRelationshipList.contains(childObjRes.getName())){ - opportunityChildrenMap.put(childRel.getRelationshipName(),childObjRes); - } - } else { + opportunityChildrenMap = new Map(); + List restrictedRelationshipList = new List(); + String restrictedChildList = Label.SmartCloneChildList; + if(String.isNotBlank(restrictedChildList)){ + restrictedRelationshipList = restrictedChildList.split(';'); + } + for(Schema.ChildRelationship childRel:childRelationshipList) { + if(String.isNotBlank(childRel.getRelationshipName())){ + Schema.DescribeSObjectResult childObjRes = childRel.getChildSObject().getDescribe(); + if(!restrictedRelationshipList.isEmpty() && restrictedRelationshipList[0] != 'N/A'){ + if(restrictedRelationshipList.contains(childObjRes.getName())){ opportunityChildrenMap.put(childRel.getRelationshipName(),childObjRes); } + } else { + opportunityChildrenMap.put(childRel.getRelationshipName(),childObjRes); } } + } + exclusionRuleMap = new Map(); + formulaInstanceBySObjectMap = new Map>(); + Map sObjectTypeMap = Schema.getGlobalDescribe(); + for(SmartCloneRecordExclusionRule__mdt rule:SmartCloneRecordExclusionRule__mdt.getAll().values()){ + if(rule.IsActive__c && String.isNotBlank(rule.ExclusionFormula__c)){ + exclusionRuleMap.put(rule.DeveloperName,rule); + String sObjectName = rule.RelatedObject__c; + FormulaEval.FormulaInstance fInstance = Formula.builder().withType(sObjectTypeMap.get(sObjectName.toLowerCase())) + .withReturnType(FormulaEval.FormulaReturnType.Boolean) + .withFormula(rule.ExclusionFormula__c).build(); + List fInstanceList = formulaInstanceBySObjectMap.get(sObjectName); + if(fInstanceList == null){ + fInstanceList = new List(); + } + fInstanceList.add(fInstance); + formulaInstanceBySObjectMap.put(sObjectName,fInstanceList); + } + } } /** * @description Lightning Exposed method that will provide a map of Child relationships @@ -185,16 +205,30 @@ public with sharing class OpportunityCloneService { } private static List CloneAndReassociateRecords(List recList, String parentFieldName, Id newParentId) { + System.debug(LoggingLevel.INFO,'\n\nOpportunityCloneService.CloneAndReassociateRecords Executing.\n\n '); List newList = new List(); for(SObject rec:recList){ SObject newRec = rec.clone(false,true,false,false); newRec.put(parentFieldName, newParentId); - /** - if(newRec.getSObjectType().getDescribe().getName().toUpperCase() == 'OPPORTUNITYLINEITEM') { + String sObjectName = newRec.getSObjectType().getDescribe().getName(); + if(sObjectName.toUpperCase() == 'OPPORTUNITYLINEITEM') { newRec.put('UnitPrice',null); } - */ - newList.add(newRec); + //TODO: This is where we can evaluate the record to determine if it meets the formula criteria being included + // as a child record. + Boolean fResult = false; + if(formulaInstanceBySObjectMap.containsKey(sObjectName)){ + List fInstanceList = formulaInstanceBySObjectMap.get(sObjectName); + for(FormulaEval.FormulaInstance fInstance:fInstanceList){ + fResult = (Boolean)fInstance.evaluate(newRec); + if(fResult) { + break; + } + } + } + if(!fResult) { + newList.add(newRec); + } } return newList; } diff --git a/force-app/main/default/classes/OpportunityCloneServiceTest.cls b/force-app/main/default/classes/OpportunityCloneServiceTest.cls index e92feda..d65c741 100644 --- a/force-app/main/default/classes/OpportunityCloneServiceTest.cls +++ b/force-app/main/default/classes/OpportunityCloneServiceTest.cls @@ -70,6 +70,7 @@ private class OpportunityCloneServiceTest { } } insert oliTestLines; + testFutureMethod(); } @isTest @@ -106,10 +107,11 @@ private class OpportunityCloneServiceTest { } @isTest static void CloneOpportunityWithChildren(){ + Test.startTest(); Opportunity testOpp = [SELECT Id, Name FROM Opportunity LIMIT 1]; Map testReplacements = new Map(); testReplacements.put('Name',TestCloneUtility.GenerateRandomString(10)); - Test.startTest(); + Id testResult = OpportunityCloneService.CloneOpportunityWithChildren(testOpp.Id, testReplacements, new List{'OpportunityLineItems'}); @@ -117,4 +119,9 @@ private class OpportunityCloneServiceTest { Test.stopTest(); } + @future + public static void testFutureMethod(){ + //insert some Exlusion rules + Test.loadData(SmartCloneRecordExclusionRule__mdt.SObjectType, 'SmartClone_TestData'); + } } diff --git a/force-app/main/default/customMetadata/SmartCloneRecordExclusionRule.QuantityLessThanTwo.md-meta.xml b/force-app/main/default/customMetadata/SmartCloneRecordExclusionRule.QuantityLessThanTwo.md-meta.xml new file mode 100644 index 0000000..57edc42 --- /dev/null +++ b/force-app/main/default/customMetadata/SmartCloneRecordExclusionRule.QuantityLessThanTwo.md-meta.xml @@ -0,0 +1,17 @@ + + + + false + + ExclusionFormula__c + Quantity < 2 + + + IsActive__c + false + + + RelatedObject__c + OpportunityLineItem + + diff --git a/force-app/main/default/staticresources/SmartClone_TestData.csv b/force-app/main/default/staticresources/SmartClone_TestData.csv new file mode 100644 index 0000000..f60927f --- /dev/null +++ b/force-app/main/default/staticresources/SmartClone_TestData.csv @@ -0,0 +1,2 @@ +DeveloperName,MasterLabel,IsActive__c,RelatedObject__c,ExclusionFormula__c +QuantityLessThanThree,QuantityLessThanThree,TRUE,OpportunityLineItem,Quantity < 3 \ No newline at end of file diff --git a/force-app/main/default/staticresources/SmartClone_TestData.resource-meta.xml b/force-app/main/default/staticresources/SmartClone_TestData.resource-meta.xml new file mode 100644 index 0000000..379e387 --- /dev/null +++ b/force-app/main/default/staticresources/SmartClone_TestData.resource-meta.xml @@ -0,0 +1,6 @@ + + + Public + text/csv + Test Data for SmartClone Code Coverage. + From a66b0bdb3ae93312bf1d79458db88596ad8080ee Mon Sep 17 00:00:00 2001 From: Chris Gary Date: Fri, 25 Apr 2025 17:00:21 -0400 Subject: [PATCH 3/3] Added Comment to Class --- force-app/main/default/classes/OpportunityCloneService.cls | 1 + 1 file changed, 1 insertion(+) diff --git a/force-app/main/default/classes/OpportunityCloneService.cls b/force-app/main/default/classes/OpportunityCloneService.cls index 2e1ffe1..5da7d76 100644 --- a/force-app/main/default/classes/OpportunityCloneService.cls +++ b/force-app/main/default/classes/OpportunityCloneService.cls @@ -8,6 +8,7 @@ * 2021-04-12 - CJG - Added setting to restrict child records shown to a particular List * 2021-07-08 - CJG - removed functionality to clear out OpportunityLineItem.UnitPrice in * order to insert OpportunityLineItems. + * 2024-04-12 - CJG - Added functionality to evaluate the record against a formula to determine if it should be excluded from the clone. */ public with sharing class OpportunityCloneService { /**