From c1b4a331bda3f1ca13324e3b2499589b91882445 Mon Sep 17 00:00:00 2001 From: mgtennant <100305096+mgtennant@users.noreply.github.com> Date: Mon, 9 Dec 2024 09:16:47 -0800 Subject: [PATCH] Revert "Merge pull request #490 from bcgov/bf-revert-5.5-2" This reverts commit d28dd6b98b9c1d9c84f7d42e8645fbf1594d1b84, reversing changes made to 3ab5d9c80c57fa083252d021ff2ce60e5e23f4e4. --- app/client/public/index.html | 2 +- .../reports/ReportLicenceComments.jsx | 83 ++++++ app/client/src/features/reports/Reports.jsx | 16 + .../src/features/reports/reportsSlice.js | 21 ++ app/client/src/utilities/constants.js | 1 + app/server/routes/v1/documents.js | 39 ++- .../templates/certificates/Dairy-Farm.docx | Bin 129998 -> 127631 bytes .../certificates/Purchase-Live-Poultry.docx | Bin 118276 -> 118804 bytes .../Dairy_Test_Threshold_Template.xlsx | Bin 18293 -> 18416 bytes .../reports/Licence_Comments_Template.xlsx | Bin 0 -> 9773 bytes app/server/utilities/constants.js | 1 + app/server/utilities/documents.js | 2 + .../db-scripts/releases/release_5.5_ddl.sql | 273 ++++++++++++++++++ 13 files changed, 435 insertions(+), 3 deletions(-) create mode 100644 app/client/src/features/reports/ReportLicenceComments.jsx create mode 100644 app/server/static/templates/reports/Licence_Comments_Template.xlsx create mode 100644 spilo-db/db-scripts/releases/release_5.5_ddl.sql diff --git a/app/client/public/index.html b/app/client/public/index.html index 827286fb..c955e5de 100644 --- a/app/client/public/index.html +++ b/app/client/public/index.html @@ -12,7 +12,7 @@ Agriculture Licencing System - +
diff --git a/app/client/src/features/reports/ReportLicenceComments.jsx b/app/client/src/features/reports/ReportLicenceComments.jsx new file mode 100644 index 00000000..2837f6d7 --- /dev/null +++ b/app/client/src/features/reports/ReportLicenceComments.jsx @@ -0,0 +1,83 @@ +import React, { useEffect } from "react"; +import { useForm } from "react-hook-form"; +import { useSelector, useDispatch } from "react-redux"; +import { Row, Col, Form, Button } from "react-bootstrap"; + +import DocGenDownloadBar from "../../components/DocGenDownloadBar"; + +import { + generateReport, + fetchReportJob, + selectReportsJob, + completeReportJob, + startLicenceCommentsJob, +} from "./reportsSlice"; + +import { REPORTS } from "../../utilities/constants"; + +export default function ReportLicenceComments() { + const dispatch = useDispatch(); + + const job = useSelector(selectReportsJob); + const { pendingDocuments } = job; + + const form = useForm({ + reValidateMode: "onBlur", + }); + const { register, watch } = form; + + const watchLicenceNumber = watch("licenceNumber", null); + + useEffect(() => { + if (job.id && job.type === REPORTS.LICENCE_COMMENTS) { + dispatch(fetchReportJob()); + + if (pendingDocuments?.length > 0) { + dispatch(generateReport(pendingDocuments[0].documentId)); + } else { + dispatch(completeReportJob(job.id)); + } + } + }, [pendingDocuments]); // eslint-disable-line react-hooks/exhaustive-deps + + const onGenerateReport = () => { + dispatch( + startLicenceCommentsJob({ + licenceNumber: watchLicenceNumber, + }) + ); + }; + + return ( + <> + + + Licence Number + + + +   + + + +
+ +
+ + ); +} + +ReportLicenceComments.propTypes = {}; diff --git a/app/client/src/features/reports/Reports.jsx b/app/client/src/features/reports/Reports.jsx index e810b1bd..75ae28d0 100644 --- a/app/client/src/features/reports/Reports.jsx +++ b/app/client/src/features/reports/Reports.jsx @@ -23,6 +23,7 @@ import ReportLicenceExpiry from "./ReportLicenceExpiry"; import { clearReportsJob } from "./reportsSlice"; import RenderOnRole from "../../components/RenderOnRole"; import ReportDairyTrailerInspection from "./ReportDairyTrailerInspection"; +import ReportLicenceComments from "./ReportLicenceComments"; export default function Reports() { const dispatch = useDispatch(); @@ -70,6 +71,9 @@ export default function Reports() { case REPORTS.DAIRY_TEST_THRESHOLD: control = ; break; + case REPORTS.LICENCE_COMMENTS: + control = ; + break; case REPORTS.LICENCE_LOCATION: control = ; break; @@ -193,6 +197,18 @@ export default function Reports() { + + + + { + try { + const response = await Api.post( + `documents/reports/startJob/licenceComments`, + payload + ); + return response.data; + } catch (error) { + if (error instanceof ApiError) { + return thunkApi.rejectWithValue(error.serialize()); + } + return thunkApi.rejectWithValue({ code: -1, description: error.message }); + } + } +); + export const startLicenceExpiryJob = createAsyncThunk( "reports/startLicenceExpiryJob", async (payload, thunkApi) => { @@ -379,6 +397,9 @@ export const reportsSlice = createSlice({ [startLicenceExpiryJob.pending]: pendingStartJobReducer, [startLicenceExpiryJob.fulfilled]: fulfilledStartJobReducer, [startLicenceExpiryJob.rejected]: rejectionStartJobReducer, + [startLicenceCommentsJob.pending]: pendingStartJobReducer, + [startLicenceCommentsJob.fulfilled]: fulfilledStartJobReducer, + [startLicenceCommentsJob.rejected]: rejectionStartJobReducer, [fetchReportJob.pending]: (state) => { state.job.status = REQUEST_STATUS.PENDING; diff --git a/app/client/src/utilities/constants.js b/app/client/src/utilities/constants.js index 087078ca..95cd2ea9 100644 --- a/app/client/src/utilities/constants.js +++ b/app/client/src/utilities/constants.js @@ -150,6 +150,7 @@ export const REPORTS = { DAIRY_FARM_QUALITY: "DAIRY_FARM_QUALITY", DAIRY_FARM_TANK: "DAIRY_FARM_TANK", DAIRY_TEST_THRESHOLD: "DAIRY_TEST_THRESHOLD", + LICENCE_COMMENTS: "LICENCE_COMMENTS", LICENCE_LOCATION: "LICENCE_LOCATION", LICENCE_EXPIRY: "LICENCE_EXPIRY", DAIRY_TRAILER_INSPECTION: "TRAILER INSPECTION", diff --git a/app/server/routes/v1/documents.js b/app/server/routes/v1/documents.js index 84bb8ed3..9c82240d 100644 --- a/app/server/routes/v1/documents.js +++ b/app/server/routes/v1/documents.js @@ -955,6 +955,21 @@ async function startLicenceTypeLocationJob(licenceTypeId) { return { jobId, documents }; } +async function startLicenceCommentsJob(licenceNumber) { + const [procedureResult] = await prisma.$transaction([ + prisma.$queryRawUnsafe( + `CALL mals_app.pr_generate_print_json_licence_comments('${licenceNumber}', NULL)`, + licenceNumber + ), + ]); + + const jobId = procedureResult[0].iop_print_job_id; + + const documents = await getPendingDocuments(jobId); + + return { jobId, documents }; +} + async function startLicenceExpiryJob(startDate, endDate) { const [procedureResult] = await prisma.$transaction([ prisma.$queryRawUnsafe( @@ -1462,6 +1477,17 @@ router.post("/reports/startJob/licenceTypeLocation", async (req, res, next) => { .finally(async () => prisma.$disconnect()); }); +router.post("/reports/startJob/licenceComments", async (req, res, next) => { + const licenceNumber = req.body.licenceNumber; + + await startLicenceCommentsJob(licenceNumber) + .then(({ jobId, documents }) => { + return res.send({ jobId, documents, type: REPORTS.LICENCE_COMMENTS }); + }) + .catch(next) + .finally(async () => prisma.$disconnect()); +}); + router.post("/reports/startJob/licenceExpiry", async (req, res, next) => { const startDate = formatDate(new Date(req.body.startDate)); const endDate = formatDate(new Date(req.body.endDate)); @@ -1543,7 +1569,17 @@ router.post("/download/:jobId(\\d+)", async (req, res, next) => { const zip = new AdmZip(); let fileName = null; documents.forEach((document) => { - if (job.printCategory === constants.DOCUMENT_TYPE_REPORT) { + if ( + job.printCategory === constants.DOCUMENT_TYPE_REPORT && + document.document_type === constants.REPORTS.LICENCE_COMMENTS + ) { + fileName = `${document.document_json.Licence_Number}-${document.document_type}.xlsx`; + } else if ( + job.printCategory === constants.DOCUMENT_TYPE_REPORT && + document.document_type === constants.REPORTS.DAIRY_TRAILER_INSPECTION + ) { + fileName = `${document.document_json.LicenceNumber}-${document.document_type}.xlsx`; + } else if (job.printCategory === constants.DOCUMENT_TYPE_REPORT) { fileName = `${document.document_json.Licence_Type}-${document.document_type}.xlsx`; } else if ( document.document_type === constants.DOCUMENT_TYPE_DAIRY_INFRACTION @@ -1552,7 +1588,6 @@ router.post("/download/:jobId(\\d+)", async (req, res, next) => { } else { fileName = `${document.licence_number}-${document.document_type}.docx`; } - zip.addFile(fileName, document.document_binary); }); diff --git a/app/server/static/templates/certificates/Dairy-Farm.docx b/app/server/static/templates/certificates/Dairy-Farm.docx index 4883b6ec18ea439c32bf3e197396998fef941fbf..b2160314283261486effb71909cebd7d7c1cfd22 100644 GIT binary patch delta 15260 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 delta 17627 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 a<-`KKS%Gs}phPUgparZj`@R6HNCp58=GcJ% diff --git a/app/server/static/templates/certificates/Purchase-Live-Poultry.docx b/app/server/static/templates/certificates/Purchase-Live-Poultry.docx index 43307e358bed41e9b5642b9d2136b295875eddde..cac27136812c71afda9d74d9ba8a7d6dbd147ce7 100644 GIT binary patch delta 16616 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 delta 6229 zcmZ8_1yIyo)b}pk-7MWpgLK2v-Jvwn-NNEZNrUhwrAxY8X%Hz95NYX9QjnIe&-eLe zo@d_o%-lO??m0JR?z!jw&hIz{e4Y$$B*a9NSHS8Js34Fv76?QL0)c|v`GdTC-R!)) z-1ve$+-r^9yh_E%?mtf5VGabvk8!`!P{l{{C=WDh&iR(5#zLueLLuOm%Wf?47*@}u zZe42JB23(L64~E=Szw|Kxoouzj98qSFh~Aob@+TXE6H_|cj1i(RaF{vL>TqK5CsA8w>}_!?&guooXO!k0 zy{g`{bHdf{`i+QXQKAcs+s`VW$Uh+%Se)}#a&3OC)L58c@x3Td1}zq-^&~K`&~BJ= z&3BFW+Nu@s?xIeMEF(#JG0o9KYuBmqO4n5S8SC`91zC?GogWHv?F%5LwZ&q9KmOFE zwOS4LY_^J0nMJzRq>!MKz^2=ct0LY#+y=i^(lfTvrSSI_oGUTS#KC!nBnr_LiRpx< zuz3~2fwl2L-^d>}nI44W-e=D>uFl$A{7kC zcIoOMyJN86Z0``4>9JBEFiFGlKEvUuF>5mTaL@}esz*C$f0e{yp>eh#J*X!tM)*=*fH@Xd2gBGax~Q0RdU`6X(_cZf5hY}TAQ{s{b~;#b zsj&Q3Y|Qf@hQN&Bg;-+!7SiF*#5~;Ia(FJz#TGLn1TOO|C1K61$`vv3EJ}J_XzX5l z!4f~QiD6H@@wH=Swk}mC=c&F86aNVB(TrcMK(0jQ#_dZAG@Wf_WNPYt#8hw_N^_G~ z$0U*F#K)#u1x*nz4Wdj66v*BUgx=4ShWUE~nbVdtdT5Nnn|C0&UC(7I+fA4xwtwlj za+=UL%+u~N{*p?mPQ{4m{ijw`;HTpOwKJo6(Q;26651O^%X`RA3dIFgRR=m#-Z+|* z7H39~T^|4HD4ESuo0uabIu270JdE+%L{a7+dSd}$a+4*L9v%0cEBwJ@d37ypPWSS> z_YC@BsDeu$b<=t&7&6o`){49xc6~dad5}TAQKPjJcKZk6(e;{Pmo{X5`)>PF(yy$9 zt-;+(YYdwd?C%GhxS^(*Kp_YyrY1wS;#iwRBm?^z*-bP`R5Y98E$B657Bb5q@TaD&CR9?aCf zmA&6uO-e#cWLr}MOM}~4S42e!lZTO|*QEr`kmB*(O6?DUmwCc5}i>l zejvD$wp`HDeiAmXe(;!6HSzxu@h)1J+@%~OVvK`mq`=wWa5%uGTr#_PS&1iNG}1^h zk}UUUd3bsze3!oc97o$sbIeChyRin|XW=T@d=UBu>K-)})jR`-u)0SXylU1svNiD* zgrb{iqF>sYwD1*{Xvd;k@lkb~d+)I!eR+=boCv;mj1mT9%{yUdZYon4C8An3Xd-N_ z!y^&;U~{+F1}c^SvH%549fk4@om`Eldev64B5U1bvZ@(_mX>x(G{$`Lb*t^Qtm5)| zB_l}U*^Z=a5qsPvET@?$cS*+N)Z*8legG9(hYR(5E)H0CN7lU91aF?^Sms1Db75)s zs^I2zrg~_ePNn_cOH;Y~loxV$I(71JHpPW7=g2@oYpgc-Oi;gwRf@MS+9%?=ppuwm z;ED!G3xyOYY!ZAKs0_p$5LfCX_;PRbSJBHjXgJhOM}Q}m7QiKdP<-&%V$^lsoZlofU?rnCm!+~jS99s7V_26vOY=O zD-q%=CWov$dYQGd+A>WV=6P-@??mq-?pH_0xEqb!UVYVUBz3Tg%x64fo&g%^T@3nk zTzaPNn`yQ;1$lqK`V5Akb$<5Qy~uLkWN9=N`}b|LFz)2TuGpA4{MWBkQ5O zk;C%~x)a$*VOw1vcL!Ej9rDv5%`Lz6O@xKgx@bvJ*d)#kILpej6uo59r{q!byZ@wM zvwrx+Fv&4C&r-L=n(MA%5s06l`p{ibaar&(NU*0IFmtLVhKtyi1j+P?USQ; z_!@iSkXj#0A;l1cE^;-Sg1g+Hj*2Di$|}N6FEmVuiRCwbh6Wb6q6?Guq_O8CC{Qq zp>{1BxY?xN>91bbDMqYFi_mgw)XHZ==lk~-JuOoeVCN?h8Sh%=CHFHt-`L{o-OLtu znjRUCQmjr`TO!-(s#Bupii{AAuNm+<)|GJ)4GLVc&-!EX9V?vn=ZeUzpZ3pb9$4wM z{&CZTsr$CQ=8JB24QgK`cj((qCSApgROn9Q8rOe=U-R3*P|J*2Y|A3?P)HW^3dMj` z{pau?p6&$J`?ds5iS>acwrMO9uh%5(Hf=^+_!`Dn4YJ`6?^xnn1cb^mEN$Y3pdLp41y*$fR2XH%>n@9!yBt$QAh z_fEuq&2XIb4fNbyk7o5eo=BcI{#+*K{}^_9`U{|33p?M@O`%&{g3x6jGsQI>*Z;6T zVo$IQC%8QU%jFLUC=R5_6YmCA9*%xNL0COy-0KTyJm_13n0-d?lJ0R^=wLW$XHCv& zP-#M6woeSC3X)u}emi=6>|LO>0-UwSb;eDkx*hUq)PgQ|go{jn8Z0C=KHtWVCy9F} z-aBR3)1;J0SJSB!yEP{x^i!)b?$04nLuBkUo06{$n*rYkCA-+szUPcli>G6&9*Bni zO1D`VxC4vr--8IejIG-GJnGD+|Jy(UCMZJpF~MO|$QRM8%3jaU3JZznI=ivwiPGGb zj5()K=)u9;Ah@Ns91u;@^xd6mPoNS`l?j|r(v$XE)Jpp@@RFT?NjWtrQk@c>vLFSM zQG)2b7hG<|Zt1&sWNt&>bbXu7fr!0%{*A7wD>0{=fzm&sG2!{5bjy76Se&qwcO#@reuoU0QGYZL1CeU6NLD^#1Oqk}HL*Erh>+DhAPeNdsJ7tAX z9KtQVxnFuAhit4@Wez@~QNvxS882Ed#)$OYBBX6!W8vUYu0+I=KRkow*I2k8rsvM* ziV~udshD(=0-H&L<8kjf?t(_>gTQ_m=qXQ6Zqp@mIiK&q!jagQ3_NZj&IQY#ywhs^ zzP~W`vzonnysdVewvugl{te-lb7t}R{Nh}}HKz+6KEi%-k z6o%F{nTRP+xuoC0(e4WV#(ecwB%5bBorQP9hh2_CXfb61&qC?>%BQ?|t#hMbVfG^X zvX}sF^1_L_Tb;Aul%#1Lr}o;8w^g|4Y1hGA&ytj~G~Vr6$Q-TK&Fmvy?ivM|XJK$I zOjFrvInwF}Q0ZF}D3Vz@MOiK6m`(bdP3rAs6|1SA59nO038EmZK5^2v_BR_3ZeC8B_cX7dm`ixCXdXcPp3ivLyN=lLV#&A}D|G zNR4IQnt$%diJ1}7ZMQ?T)A|bUB@q(4DKm4lg|o98P7FwSUN^g9wL)2*xLuR(QuWUT zW3;o(Jf$o#Yzw4TFYvqyvdyHXd>;c#mwX23j9>_+W{0K^@LKaCGVq^FLP|WiOm>jDJP*UgZW(v2#)BSu_i zX2#ErnH={jA<}nmOfWpRkvw(lI_Rg(i1S=m{FFp`GK*w_USLVKLqVTNT>aNcU2X;{ z-G#Tk#ru5H+102Q-MTAc46`GC7%tmR?*^fJGycG@7^zMCnp35j_t0|BdmUcidN;my z0+QJm8eKnT!V*vsy#l<2Uxl>IyL9^Fkx2ce55hcHc)By9R~`W>;xZ@o9CBaszgh&y z^XzNnU)_u>cg;Ft28Bz9cq7Cs40iPty|P$1Z>DI!q>I`lECc3ASZiGp9K4S&x!f^V zH0F8JX>5Clj3Nz+iCb!-1F1|#?;D@(1waYcZBq505lrtRZotoMCzJzS8iwZh4mY-V z$D)Z7611$pQa1m%`T6nL0^H|_m@)shd8EkPBhWS4u~~)_ty`yb;`evSXsf!XNBAKt zjgt`R<8Bswg2h=+y?rs9X5ZGQSgvf(UzVCzVrFPaRkqUJ7u_>*+uLk$g*ki#UAlI* zJc2=>$468UP(e+A?QDEJ-1@hicLhFDv)RsxvXTctz~~*y;SS+eE^+VUPK(QTjSfp5 z!(vL@xdIHhJv&01hJQG3=ZaDHxQP4F$5vO7VdK=pH;Gb5BjU9q9y-RCseN6Ol*4n# zSQSDIO2vL1^$a$z3j4OQ!K4@g7!4F*(igE~ALU&udju8B>gs!2&s7?-Hlj!{PI)A% z2<>tNHDj}j2fekaR;rzBpUTVY%MbM<-05b01J5aAJiR+k zJxJ=%n;J0O41arE{DiN3q8S*?pTNceSNin+M82_xIVLmq(V5cBS?6PZeMN#`JxES5Jnm)+!H7`?KD+gwj|MbD-6qtj zX@ftJOi>vqld=hk2Xvg@e?&1vcW92rQ*~+=!#Ro+pn;l`(ZJVqr0f37X2!VcFvHl zD>cO68^yK{Qdz7xja@5KHJo}N+E#|><$ziEmXPK@KCbbr&l5vZ45hEEX zqLa;n%gcSJ8{++Zn0bKsv`ag|39}UXSo!r46YfZm2Rk|sJ#YAOK^%^r$$%bc#5k6} z{)?4C#JLC6TS2tdkB0rs=1z|0VMy>WJJcpZHv7deMrK1$x(l>`>W&fVd{YzU^?PPp zW7SG1+2YegM0)VhpZgO5h5H*_g9*Brw4*lJDa@*;#MpatM`LveXf_RUd1!1> z_~5cvRz&kLv0w&T-X~j8`aZF&V1<1lwf6AG?lrM6*-ld96b=dp*&SWt=GlUSUcw`{!vwQBGJF^L^3j?SwE(Opbumh`VaG;CDiwPcjOzy@YW*c}Cnea>dBK8bG^dL)1R&bW|0 zk8ktTW?M^(REoXf?1T_$6+xNON3Ip2eXDZ>yJ$YfXKj3&CH4Zg;oP?8igrd-R*R6r zw($!C_))kt{nynW%)%vK+!biRQ;to%@8=7p3;0HtByQ$gtrb#=NucEt-haZ)sUm9# zpkNH*LDb(JUEPH#xVv=uYvLW#ad~WLwbiNUJFA{j;)J{O#myLoHLpuaB+F4xdV)6* z&H9slM?R>8MQOv@^P$!)sHT}Nv}A@No?^A_Y0{P6!PvRuKQ%W=EjwY48WI{DYNLan z0!Yd$6po|ts2WHg(UiI&zEkEQuarh~BV{=z7r;ZIs$wO+op`unSQD^jI$$XdR7sn! zi-496cA!m**`Df3)MH(XxxBb$V097?C?Pct?0!}ol>0*M{ZMzNdc>Td`Y{awX<))l zMDt4MCgqEsz1X%~&y}svYx&`tiiLqgg#I1)A10=lfdmb}6QT#!VCcYi7EZuas28~9 z;YBJ7gTVljg&rW_=S4oS++zVe0=!60-fb`d72*Y?_)h>TVP2%U01}K{ZQ%UO?r%H< zB6XiIf)P<^mb#GwWUr63?+DB06uHEOX>Cs2Uh)aX`<&Ffj8hTgxJZdTbVqx9DTx!) zUc8hUe=)9JI{c0&k6%x+!67krhXs?h0mg@<>Ml17N`!c1lhszT4pf4Z*oRN_2i!)u z(Z{Q+6>=aS?9~knt%jUkw6q1k!?D?>3j)-*`4CWJA^QeszsN=*4=Uv9fts&Zpck*7 zccLzod65bIDD_-}oKD^w4?UeR>GJ@~)sUNf#?5$y4z>8`@{{I#7s{Y76maf~!=!Ja z8zJ2n-)$-Tw>g4kLqiT!0{j*Z<54x3d$~+MX_cpS8n>W@{rs9e()+@U{GzKZti3|) z49kiTexQT&?h5Spb{iVOD{+6x(2_`bZ*BXZ(+Dx(ro=}3 z@5f630^$E>{i~@1HA;+-f0Mvp3Xkl6*}3U}dO8Z=UI~f_E6osA gKrBxN(97Zg$*NGaV7Y$==z&F5A`FDW|E%)=0G<yD)^+0!jRgt8o8Yb?SdajX1()FN?%p`TgA)kBJp^|N?(QDk-3fd>bLW0D zlezCNxVL((s@1D&pH*GY*=HYl6u@xscmPBIG5`Re02mylo9Vy+05R|Y04@L-R!h{@ z#>v>mNmtq3&e&0#+0ELDJPRI{HWL5~z5jp5fAJeAi64;bULGkGB$62;RJAf40qDPoX%6{e4R-O{sX1w;xiYWTm=esB{~DedWX9t zaEl{t9mkZOA?z}1a7;7i((npmV+#+dEGKbAVfaOnW_OGwL#x+&FOOE*s1FwkcMaV5 zX1YvT8N&V)knvf7g5`&*XQk{mBi@}t_}MZ8C*R4J?m=s~B%LeIjT$ndV~peoDXke- zb9*wx)-IR5h-p!AW=a&Pen$4v7->C2O77E>o9NS1E6$-DzE#qv?z5 z3ci5*R;VN5=GALOad}IuqGZNrUT%=#@QTu1*T|~vTr8~>_oo+=+^1ee zN=}>`_K~+epv+5O%_`2*fpqsy9+Zya-jhDa2eN`?s6zddBq_)CwUKZDzyegtu%K_o z&5Fg<*1^)i*4FYj-6~PBw$0`RKKhJ5B6Yfk%laWsI(2DPCCsZNm@M$qDQ-e=OJKLG zCUT0dT9159hN@e@LxrcWu&-wzxP_6OgMcLWYm z%b7zdD?-0K8g?t4dwY8}K}KN7obj30mm827i(9E&gki0<1u6}Dz0PFaR=Vbwe^ewFJJFuGj5Y}(_L*s!de8rG!*u(!l;yFbngMLE;V$! ztlB}R7I4~0pQq!gFi~)RVlibWl0lE`86aRtwYuMdMMd~&O-k>Thw_j^J4m;P!>^_` zC;CTEZ}&|;o>i2i9dVo`+TC|2jO&uXClS?0(g7hq{fh-N!kj5fP~e6)aA?8Nad6-R zsCeh6Y6GJA!q=SXgd&-2N=0J?rK;rQ?eYyvk6AleQ77xgZ>S~1gnSw1x<{K{3=t4! zDYZgAWOqNLw;K__@eJ~a0!3v`v9UlNRHwQR`>tFwhA%-#LC-nvTzlYyx?#OVN?7Aw zQ_G(v7L4zRaj|{0`$kU?S#F`&hd`}IQRt_tBiu@#$bwg@wS!Ji0I7LTTkrN#!(ox^ zNu-K;CZ(JLU#nr^sWlHl{evBFs}u+Ep;h|p7hcy51Ze~atxLKWLUmhq4-El@kJrG% z;B)c5S?QjmNr!;hT1Z=Tsd>En1S9JEk)ak**6&!3a<5d5lrz7)%tHeSu`k68>9x}y zsM}|r2D^}fM_SPX4jVDmS6r_n$~Hwi7X9d<^(NX-=nNF{PrZ%u4k``fh8${2LK@!)h3*}0Y<#fF>%tP>s|IN>4 z)Xuv(vpb!-30J0IwD%+4;Uf26e1hxf?R3Adsmm3SRDI1~W^3z3sX|&Ruq?bIGV1Xo zb$RC$1v~R*uD5d0epTJjbwfQY?Ny3vMy|%e?%vMzn;YN7sOGzlwV-T`M6rT;@>`Ck zJQF7(Toi|SM0l^2kCDyx5fZ{<=>{=4c)j6M)d>reSW~X-ZhtW(6hwqOrTKSemF7O4$+&z4=49_l2d>pfmow*i;7(RxGumSat81DIKK7gw3*~{zJ{EFc72N_2 z1&7bY%5(Y#ZS`p|3!H7R`|(hZ%QY9~4>;V*c7}p*9C#00t7Coy+oAIzIAnvvQc}oU z1YDehz5U`tG|W^-+{vnQT7Qi!NLteulV{jhz#rNWI2z2aN4ZQZU@Ki(et1H9eTfx({2n zXWyZ3k`#kUi?{^5f}O}idf$@y(#1J$W~DT$9IrXOx$mcIT{vSLxHvZ1=O?5(=zkyd0aji4_@ z8uZz|t@$}P;?>VAQ~NVItNq*8+jpFBO^QLsm4P48)Z9QHmZc<^jfR|ecSZ2{?!eE? zxhXVu@&;n+*eE(>2?jd5ijDAdi&;J18$FGBsUj!aO(bNyr)0~!-35{R3R<3@gHJxX zSGzE3`)=c#CI%o%$l;DuD>iPea#$g>na#stP#LR|+(Oh;qDa~5ID9o@O)zjC#n&%A zMm;U4eyZ>zu!iNnB(NrIqy5A1`NDfkE(krO5fj6-p@J zY9g**%ZCbw)dS-{fyqx;ym4$pcD;j%6ku+zATPjtHclNT^~(J@ig%4<0UY~PoD^`4 zKh7R2a30QnPu4C*+!e1~z8KkA0lnKDB!IK0!Y+gRX|eIMRCJ)np+kg*+jzCf7tFYi z_9m62D3{?RY|`lR3(RokbvmPj8z2GM>HB1$?Igk)g~*UWn}qGqgl+ac*>4{ByBo&G zYuf~{0t3H7y!?Q;$mZ~p2%=e5cjj*wwQ${qKiaj3M*K&zimhz>L*=tD zTrq><@_Nd7dXh4Qj}XD6)%1GG47``JYYyTSD(}fn7p~pb!>ttS=9%Ld&NSF`{S1~} z5OWb{`$h{~sbePx7^&YU$KZb%kYv$ZRUSlX?ixhl5z?2V%^O7N`OLPRO3F=wIvcgN zV;^6x-5YM#7OPX0>D%=QIF`(}hDkk$GA5gXn>dv075*e8S(oDK0|BE%9BQwx&?u5>sfUqEDWSAutQBta$*uc z>%y+@EX?gBZ4($1nC9dq&iA@XOeZJ9ro~t8|wFK=ANvZf?onbp+#YP4^7}V`aus^K%7}$T= zgEkz|%nz}CBbrT*O7G2 zGiXOQq?COTBjyzc9`ZEn(hH)BYerE-@{%)JxVzpC$LrBYKj83VlgVS`H(-uDVik8q zs_9KxBQ{@T#KHS$*5@>YnqPGAwn$|IQtx*#ttbW6H! zhzJY;X5<~=G?JxC6>S`$KXi)f#6;;H`ZjYBAwx8Tjy9ih^p3q*58RxL8Bra0OB^uY0JwEn4 z{k(MDX?=QJz|wu}i%c?pDE57PoT^><8SkNP5k#l+cw4Nd>w9^|;(PN*ru(Yu8a^X& z4VM@1jBloFmMB||C0ghJwP6S5Z@&bZn~%t25lZ-py}A7lK!?Y`Lb z*-WKm37+%d18X?bD%*C+NYDfT>+(GaOTALmT z`w`R6p`&LmINYp z)y8S-`2`~>`-LGJ-zC0Rv<-^*yh%3hzIV&DJ5c0nXJdH&fLz=werCmFV!S9xe{vDW z8YSUKnG4>E_1k9R`$-Ypx#e`vrq#o(Nb7Ml?jFd;LKX7h1zh8GcF2=b?)IS{p%7zx zwb_p#v~`6#cD;)9>A?9~Nt)5MRS^5NKfGF=GJNQxF^Ht4NxrU`bjHd*jA7tH%*uEs zBXf9X=WC*>85#EX6Ho>&B*SY@Z*;rR_#AQ(fLzf}VUI8kXVp{GA|D#aE;Yl|NOu-0 z&0sXr8+W|s*wm8fHq9IMZ8rZFzR4!&NV(0xNx`ktWZQTZCFl(6N0)j0TO6l&h-a1j zzIkA2Gk68;+Ef;_*~+6~SkC-;$w?c6UjGf9`iiG!2%f_dLa9fSoJFP9fPg*lGbnUf zEpoP>uC|=OdJT~_qQv86Uf+KBXIw`3)(3Zs&seILb@;8|=1P{YBs#?oS8F~&)kDCq zaZ0cYeKtQDn5=EU&ySy4s^)4FZP8K}AX_z=_RSFQ7)V}$er6M$ra;~)?(yM0BdwvS z#ZYf7XDJ!VSFUq5^wf-aa~Yd^KXdq`J9j-;v|7B`Uh?)S+k)_6%1>{6X<4-ga|cye zK+^SrHL*n8Kb0M1Yt02qe;5jm%%|tIZkW==?r3Q#ua@-K(G&o-Qs5_A`&TIbcR^iVBSZIB1^W=flUY5-im_}q$ zA#vTkzo&D&>~5UrJD!@jkLc^i29$Pb%e!*UG)L!uW=5;#IjIu=&I>|gNDDkopgS>w zx9xCuO1wW3!nfnObk4Uc6qipks3b-uF1-plsg|RhaexE&r$9hEIMZ&(ABIIaKDjg_ zTtu$1%Tc)H_*{RtLJ48v09D{WaTkK{6*0a=uzyG^`FQ&>FC4kkZ1M8q+_u9XL=$GT z@v7X(w{YW4^Qw>eM%#W(QlEi{NzuXecxa823mTmu_}Q>-f(}@gMJ#yd7HO<9s(~hj})?99JiVX;=)s5@#J%$gh z;$FZPIi|T?H@AwFCJ$!i5gl*or&pc7OPlvBL6&ZmcZ^=DNei67v2DBzSiCHl;_u8W z=k&M593C)T@VY~f>jBDPt1TV~=n1s=s*E363DnBMO0@HP! zn@3gnwnBQ`x!Q1q(^3gkXH`cv4(A{ql>_3H2#xr|{j-*rMNCZzvm})^L9&)(;#%6) za+A)bHYU@U0~zx<`i69M^VO79eF(wheEfq$4lElf3<+xUc0sBTm*$nbNF8q=HzI!P z5~0dob%U-sk4Lri*RcYGY>8E@`?YOhd2##E-WD&y4s)Q^_KHyQX}T@>k0Jk=bfW0u zMXz-Qu4SGTVfeL2Tk^J8VFnU}%W?ut`T+gWlF1JJ%5j@1j|7ofl3;<^sMVuOl1;C}Y;A-x!DEF_iVLPl9UH+E4yY~XUamea) zIX~1pl&wD%DZ_6k@O7rFHy-t_C8HLLC!ZY%kdqX%G>#8bvwX|5>@Qg6QGfPh?qXd+ zGH3?9V0sy7T5u)N|F-(o`*BI%x{wK(KIvz7Fm^9A@HnZ2#xc@I+viYFVva@6V0$h{ zoW4$_ONzdYHMLkY1-+vPDpR0webX~d7)p#Q(~5jcsaOe5dgKCncZn}xh=?=d5J&q_ zhCZj=S+8D#lJ(_blt!U(kf34i#)mmAJ-N9S?eoY?d-vKDB|AUtSHUviLe~_}1{v$= zZwYxe=WIVFA{qKo7A18?$>I!8N5Id0zOL)4nD`TEGu#!Cn#NdW&o){+ky#lwPhZ%o zuP@EMZ4g*|8q77ls`psqcQPx{73oyyjuJUYb3+ip5vj4v5<|tEj8wbF$x;#4w}2~~ zb2Yw}SZm%!YKD_@)W<2!?f(KK9q%!cW{{?oK*dzwBh9R6D!FpvBzNy=lqU!A58I}LuchC^6zf3Br1Bka9%%sB)^8gNc&Fgy_Gm$@v zvuBSYGO|#g*-$6l-zvH1M!Z&GVZhjk;) zFYf=a?nS~(rnHh#cOE7{64Qnma666}{NdIiCAjREx#e=c(|3%TTbpU4f#;Jdx~9|= z-9oJIt3HEb9`jwEE4X>@qc1`ZrvBUWyKR>TYsm5keP%$vH345f;$gA?&K-NKBP$y1 zp7Z&d$r!9W;yYG}u68vftjpY0>g1L$fsQAEj&}nwUeI*?pNV|)E0oW+&>TMu+7Q6| zgWqQQ4#q}GP7dZaroYoXKAsKQ9|s1xQa^U|!NF4esDXPElk>)34qr4ut{^}vYFg0> zX+cCe^eJkh0Y4{~S?kCB(e2Uz-RX&_@=4UZ9SC&Lj#2#<3~_& zd}kozSd6}h2hMZD_DkuHF+tUrOu2dLnR+yeT+(XpDw?eOI+vePHK`beV8_D4F+G|s z=?RnIQKux+V%oX>b`bada!Woy5) zAEnLZI`=`Cib+48+^lvD-#;o~++C!K2FB@vJ6Q3$RuEc6`#jSg=YoT4;1UG*fF-moK^rz`mg6yEjozLUF2z$Qf;8KU zy2JI?t)=})04VLLG* z#^^>V_kT$TPG%k*=96Wuu|kTQ@8ypt;E9Z#yv?37ke$o0fyuXTYQrJfoP4(kBPxJ1 zhSE0|I!Tsy1oKJ1Km_9O?BzR1Ycpm74YqKd-&LFjrF97 zH~MFxcH8})?G_7KBfrx2Y%)&!}e{M-|mEbnJr0s)`5QkEI$|eko^7|p7>!p}Rf@|d9hwv7@L<}6S zs+eW{g`-Z7uYA07k?05av9T4g=^FQZ5+-b4aYa+29XT@BWYR7kZCMJnoPRIZzpwvcn~nnb?*{(9h2Y=7->yke zPW)v1_EA-bK 'REPORT', + iop_print_job_id => iop_print_job_id + ); + -- + -- Insert the JSON into the output table + with licence_comments as ( + select + lic.licence_number, + lic.licence_type, + json_agg(json_build_object('LicenceNumber', lic.licence_number, + 'Lastname', lic.last_name, + 'Firstname', lic.first_name, + 'Company', lic.company_name, + 'Email', lic.email_address, + 'LicenceType', lic.licence_type, + 'CommentDate', lic.create_timestamp, + 'Comment', lic.licence_comment) + order by lic.create_timestamp) licence_json, + count(*) num_rows + from mal_licence_comment_vw lic + WHERE (lic.irma_number = ip_licence_number) OR (CAST(lic.licence_number AS varchar) = ip_licence_number) + group by lic.licence_number, lic.licence_type + ) + -- + -- MAIN QUERY + -- + insert into mal_print_job_output( + print_job_id, + licence_type, + licence_number, + document_type, + document_json, + document_binary, + create_userid, + create_timestamp, + update_userid, + update_timestamp) + select + iop_print_job_id, + licence_type, + null, + 'LICENCE_COMMENTS', + json_build_object('DateTime', to_char(current_timestamp, 'fmyyyy-mm-dd hh24mi'), + 'Licence_Number', licence_number, + 'Licence', licence_json, + 'RowCount', num_rows) report_json, + null, + current_user, + current_timestamp, + current_user, + current_timestamp + from licence_comments; + -- + GET DIAGNOSTICS l_report_json_count = ROW_COUNT; + -- + -- Update the Print Job table. + update mal_print_job set + job_status = 'COMPLETE', + json_end_time = current_timestamp, + report_json_count = l_report_json_count, + update_userid = current_user, + update_timestamp = current_timestamp + where id = iop_print_job_id; +end; +$procedure$ +; + +-- Permissions + +ALTER PROCEDURE mals_app.pr_generate_print_json_licence_comments(in varchar, inout int4) OWNER TO mals; +GRANT ALL ON PROCEDURE mals_app.pr_generate_print_json_licence_comments(in varchar, inout int4) TO mals; +GRANT EXECUTE ON PROCEDURE mals_app.pr_generate_print_json_licence_comments(in varchar, inout int4) TO mals_app_role; + +-- MALS-19 - Add a column to the Dairy Test Threshold Report +-- Add the Penaltiesd Issued column to the licence_json JSON object. + +-- +-- PROCEDURE: PR_GENERATE_PRINT_JSON_DAIRY_FARM_TEST_THRESHOLD +-- + +CREATE OR REPLACE PROCEDURE mals_app.pr_generate_print_json_dairy_farm_test_threshold(ip_start_date date, ip_end_date date, INOUT iop_print_job_id integer) + LANGUAGE plpgsql +AS $procedure$ + declare + l_report_json_count integer default 0; + begin + -- + -- Start a row in the mal_print_job table + call pr_start_print_job( + ip_print_category => 'REPORT', + iop_print_job_id => iop_print_job_id + ); + -- + -- Insert the JSON into the output table + with result_base as ( + select lic.id licence_id, + rslt.irma_number, + coalesce(lic.company_name, nullif(trim(concat(reg.first_name, ' ', reg.last_name)),'')) derived_licence_holder_name, + coalesce(spc1_date, scc_date, cry_date, ffa_date, ih_date) derived_test_date, + rslt.spc1_infraction_flag, + case when rslt.spc1_infraction_flag then rslt.spc1_value else null end spc1_value, + case when rslt.spc1_infraction_flag then rslt.spc1_correspondence_code else null end spc1_corespondence_code, + case when rslt.spc1_infraction_flag then rslt.spc1_levy_percentage else null end spc1_levy_percentage, + case when rslt.spc1_infraction_flag then + case when rslt.spc1_correspondence_code = 'W' then 'Warning' else concat(rslt.spc1_levy_percentage, '%') end + else null end spc1_penalty_issued, + rslt.scc_infraction_flag, + case when rslt.scc_infraction_flag then rslt.scc_value else null end scc_value, + case when rslt.scc_infraction_flag then rslt.scc_correspondence_code else null end scc_corespondence_code, + case when rslt.scc_infraction_flag then rslt.scc_levy_percentage else null end scc_levy_percentage, + case when rslt.scc_infraction_flag then + case when rslt.scc_correspondence_code = 'W' then 'Warning' else concat(rslt.scc_levy_percentage, '%') end + else null end scc_penalty_issued, + rslt.cry_infraction_flag, + case when rslt.cry_infraction_flag then rslt.cry_value else null end cry_value, + case when rslt.cry_infraction_flag then rslt.cry_correspondence_code else null end cry_corespondence_code, + case when rslt.cry_infraction_flag then rslt.cry_levy_percentage else null end cry_levy_percentage, + case when rslt.cry_infraction_flag then + case when rslt.cry_correspondence_code = 'W' then 'Warning' else concat(rslt.cry_levy_percentage, '%') end + else null end cry_penalty_issued, + rslt.ffa_infraction_flag, + case when rslt.ffa_infraction_flag then rslt.ffa_value else null end ffa_value, + rslt.ih_infraction_flag, + case when rslt.ih_infraction_flag then rslt.ih_value else null end ih_value, + case when rslt.ih_infraction_flag then rslt.ih_correspondence_code else null end ih_corespondence_code, + case when rslt.ih_infraction_flag then rslt.ih_levy_percentage else null end ih_levy_percentage, + case when rslt.ih_infraction_flag then + case when rslt.ih_correspondence_code = 'W' then 'Warning' else concat(rslt.ih_levy_percentage, '%') end + else null end ih_penalty_issued, + case when spc1_infraction_flag then 1 else 0 end + + case when scc_infraction_flag then 1 else 0 end + + case when cry_infraction_flag then 1 else 0 end + + case when ih_infraction_flag then 1 else 0 end num_infractions + from mal_licence lic + inner join mal_registrant reg + on lic.primary_registrant_id = reg.id + inner join mal_dairy_farm_test_result rslt + on lic.id = rslt.licence_id + where greatest(spc1_date, scc_date, cry_date, ffa_date, ih_date) + between ip_start_date and ip_end_date + and greatest(spc1_infraction_flag, scc_infraction_flag, cry_infraction_flag, ffa_infraction_flag, ih_infraction_flag) = true + ), + infractions as ( + select licence_id, + rtrim(concat( + case when num_infractions > 1 then spc1_penalty_issued || ' SPC1, ' else spc1_penalty_issued end, + case when num_infractions > 1 then scc_penalty_issued || ' SCC, ' else scc_penalty_issued end, + case when num_infractions > 1 then cry_penalty_issued || ' CRY, ' else cry_penalty_issued end, + case when num_infractions > 1 then ih_penalty_issued || ' IH, 'else ih_penalty_issued end), ', ') penalties_issued + from result_base), + licence_list as ( + select json_agg(json_build_object('IRMA_Num', rb.irma_number, + 'LicenceHolderCompany', rb.derived_licence_holder_name, + 'TestDate', rb.derived_test_date, + 'IBC_Result', rb.spc1_value, + 'SCC_Result', rb.scc_value, + 'CRY_Result', rb.cry_value, + 'FFA_Result', rb.ffa_value, + 'IH_Result', rb.ih_value, + 'PenaltyIssued', inf.penalties_issued) + order by irma_number) licence_json + from result_base rb + left join infractions inf + on rb.licence_id = inf.licence_id), + result_summary as ( + select + count(spc1_value) spc1_count, + count(scc_value) scc_count, + count(cry_value) cry_count, + count(ffa_value) ffa_count, + count(ih_value) ih_count + from result_base) + -- + -- MAIN QUERY + -- + insert into mal_print_job_output( + print_job_id, + licence_type, + licence_number, + document_type, + document_json, + document_binary, + create_userid, + create_timestamp, + update_userid, + update_timestamp) + select + iop_print_job_id, + 'DAIRY FARM', + null, + 'DAIRY_TEST_THRESHOLD', + json_build_object('DateTime', to_char(current_timestamp, 'fmyyyy-mm-dd hh24:mi'), + 'DateRangeStart', to_char(ip_start_date, 'fmMonth dd, yyyy'), + 'DateRangeEnd', to_char(ip_end_date, 'fmMonth dd, yyyy'), + 'Reg', list.licence_json, + 'Tot_IBC_Count', smry.spc1_count, + 'Tot_SCC_Count', smry.scc_count, + 'Tot_CRY_Count', smry.cry_count, + 'Tot_FFA_Count', smry.ffa_count, + 'Tot_IH_Count', smry.ih_count) report_json, + null, + current_user, + current_timestamp, + current_user, + current_timestamp + from licence_list list + cross join result_summary smry; + -- + GET DIAGNOSTICS l_report_json_count = ROW_COUNT; + -- + -- Update the Print Job table. + update mal_print_job set + job_status = 'COMPLETE', + json_end_time = current_timestamp, + report_json_count = l_report_json_count, + update_userid = current_user, + update_timestamp = current_timestamp + where id = iop_print_job_id; +end; +$procedure$ +; + +-- MALS-24 - Purchase Live Poultry License - Act & Reg wording needs updating +-- Update the legislation column to reflec the new terminology. + +UPDATE mals_app.mal_licence_type_lu +SET legislation = 'Under the authority of the Animal Health Act and s.9(2) of the Poultry Health and Buying Regulation' +WHERE licence_type = 'PURCHASE LIVE POULTRY'; \ No newline at end of file