From 652885bfb78f33856c943f0a91d32fbec7470c7f Mon Sep 17 00:00:00 2001 From: Deena Date: Wed, 13 Aug 2025 11:07:30 +0530 Subject: [PATCH] Reference #9 and #10 --- .../__pycache__/sos_ncmr.cpython-310.pyc | Bin 25631 -> 25667 bytes .../models/__pycache__/sos_wo.cpython-310.pyc | Bin 10268 -> 10865 bytes sos_inventory/models/sos_ncmr.py | 3 +- sos_inventory/models/sos_wo.py | 31 ++++++++++++++---- sos_inventory/security/record_rules.xml | 7 +++- .../views/sos_deliverables_boq_view.xml | 10 +++--- sos_inventory/views/sos_ncmr_view.xml | 11 ++++--- sos_inventory/views/sos_wo_view.xml | 29 ++++++++++++++++ 8 files changed, 73 insertions(+), 18 deletions(-) diff --git a/sos_inventory/models/__pycache__/sos_ncmr.cpython-310.pyc b/sos_inventory/models/__pycache__/sos_ncmr.cpython-310.pyc index c60edb0839d26e85046bf1d9c21e52176179fb82..22742de1181e9176d97deeb6d7ac9f91a50b40d9 100644 GIT binary patch delta 2044 zcmY+Fdr(w$6vy|s%esUjA{H}^;HbSQQAAQPd?BFnRu+M~=(_G%U}0hL0zOb#ANVLG zv!5E2B#32NW_C@{L_kfg!OF}uvWL_3uyGolX(s=m?4098i9gQ$em}qOxxe4}ac6e- z1##wr2=oR91{m} z6!TfE$13x|=fG zoTj&;j|VT5qo?V!(bH`$rumJ^JhY*pa%+y>TA{b*a%&}2>8*L_>Eh_#lsE%$ zm(P7mfjn(Fzfa$ShkZW9j)rDghO;b(YMx~wvT#_zn>ZeZl|`s&u9f;GPW17xial)t z=z9<6(z7*swt%xfAWzvs&id|8QiR5hhggk=SOaTe9n|7iP|UAb4;x@3{u4|}3Hwd( zBD}=j!+tYtfjai3>|chhcyOaq23_z9Y^xQD7hVNfYf#EviCQFelgSU{p4f~iZXYvk` z{cwOuHIsLdyaxxFtnl%R-bZu@K47$x$zk}g*$5gOVYW(VA0aym$C%aVtQFaDIKj*Z zAHzu;b~UuYDSWPhcId$8TIht+_*@5P;4D6C;S)HA&-D;=9xkBR0H4BV_}r*TOICmw ztlbVS3J^UqZ|GL>k9KqDK(k2E?henkh#DqDtErxkZTeGG@##V!M1i zs!{Bctx;RVUYR)dXK_$QL|+s~O z>_}=8`?Q*w@g{Ldb|!BYo3yl)G!Y)Ax+<&GGP}FX=`D4a71~u-MY*@ay~yoxS1#8Y zQlB)5aM_-bqYcT7F_}-|{(s7}tYOBJLf*&>k!!MQ`?t}_PEl!>gRG^ZMb=oSn9n2V zk)761<9UjPw%oBA{}=6h`XMk8gIt^A2^ zsmU*0-GNLAiT5xqp}2B~0DgQ-w5Q(HCvq7YYPioM)SUD>k3e%E{v)iT+(Fh~3!RE;lgT8$a{_&-*0Hu{ZyWz@;w#07B!O8cT{dt z8A9a`Dp6Fvq2fom6Qt;RRk|sartUVEdcoyU&-EUj$5iR8DjiUzGjs>q?M}}~M@5Cx yInF3K#2IWzDMy-r(y`fgPEBGfL~m=P*(IY*mI1`mAfk^cadKBHRz delta 2002 zcmZ9Mc~I3=6vyA;y%&TapiGQ~MKey56Dp#K;ED*!BA|f4?}32tJXvJ(=e|DCr@yUpbc?(m-%3V=%J)TaEj<*!l#Ok5S}P{ zcrPB=i;r-5@Ahf7Xd{IsN$sf`KaM6lT0BJiUn9mzCUd+ReVv8Pc-wh&3uySou*GV>$~$Qrti*A4AT5Im2@~ypFutrtFW3p zPoGJiUu&McT^6|z)X~kq{YBik~Zf6V_s# z_;T?tV7)wR1)jqfakB@sO5B3VW6`Qy)w}26R@{c$aR)Xu+i@qpWDPiA?;N@Mz9hZSnnq44{#z}P>e7QmyThTQ_C21Yc( zF4Z1U3wzYm;XlAZ6&`sW4E0y!PH0nGM{I%)BWz@f7jzmGqe=kosw+_s=#(p?zXz*o zi@pPWjJ+`pHV7~#OgIiO%Xl!c)e2~|P96)eL;Vqd0h&~2!ZFxu)J&OVg~RG}(k9qo zq$f`U<7mntD}<_>Y1u|hdZg9f4i?L=YF@?@(5^OTH1s)2UO&d6LygR=fELw~IeuUl zfqPyS%ly9dAKJ%a0~-W-`GFqbKmh51r(bzEJ12N8ysXtxX(ol|c}l@^9$J>QiFjD%Mdw=o+cPwp4u^ z;}g=$#9MD*@Fjyw>aydh0bjBF-!>PBjZwjQ+u^J_ke3OGTk=byzvjZT9RB7lz9BW( zst2i(I;vf=9Y!U1ZPqrYk`8blR0ipB+8q=dVt;u)zJrunPX*%|JiD5vk^@HB@T9Jcd? zhOoNM;Wme04!>}S;Bc9PjqBQ2@oUQ)>ih!N?G;t%D%ZO>-!rq$7uWf=I$!9ze?ft> uT!lG<17vm?n_tPM;+$#pe#+_S!=H}MUxt2G9Zw5UfjHD&*01j)5B~$LLWukT diff --git a/sos_inventory/models/__pycache__/sos_wo.cpython-310.pyc b/sos_inventory/models/__pycache__/sos_wo.cpython-310.pyc index 8276c387d87b19cfc4f1fe358792c257cc86315c..1b151b5e6b8cee9716ceb09ae4e1b23ca48eb909 100644 GIT binary patch delta 2148 zcmZ`(Yitx%6rMXfyPaLRTBZ_l^Dg8-zG}KO5kegUfNFA0@noG z0=kdp!+$^Rm{8hR3CRKAUj_YYW6k-sRHFwk$W*6?PD*2>y_v=-Jt?)XqXzASeLd}> z-LP+TKO^P6!h0y>=7`26D3w3A;++P=(!=M?Y zLqfAvNRH59NMeMhg{*~+(xYJg2F=i8uy3QsTcy|uH_NtcO&he_01|`NaB%n31D_Sl z4Cl1$SYOrLt+Ot}j>#+v2gP0jm?mDQ#XRn^zThI7#jnO%A!Ww?1--0DxJ978ji z;pjs##q(T&?llN60=WJ*%h3~V4j5^1?;CCwGT;&?V8N$~iZf{-($YGqqj8j^Nw36S zc5s)GE|Mszkf=N+kIF(SrR9jn`yAhSCGERF?D=UQl~NLWf%?)!^9u|NpuKO5jDihF z18In-Wev!lRv>axYetGGEi)97n2`YDQfZ*WY8Cy6NUP zSeV?l-(bVQpjD!z?vzz7RU^5LkKAsmP zol}?d=E%h1Hw!M36z>dI6UN^OkJJo-1v?Bdn?D;C0qoSFUL)?X5mX=HP0F z@tuW(;CZ{SGZ&q%$)aemSY1?4&heh2C&g?xC}!~TyI{d@dKKHno#JX@@yX)Niu$Rnsuk0x2{b?Dx z_xUt*A#`v3)14`3l~{{aZQ9zd0Y(1GEpH5ILd z{L0^-bG$x|mN-qU6QLU*M%+9-nPe7>ie@{yld|C$o1!uDgm*_9$@Zy>(F|EG&RX4S zned{pBVJ-6iR@M*0o~SPne0=HxeUO~?lGxhI$959XZXI#d1V$#{TmV%6on1q`e|G< zEoSqxmGkl)bo>Be6m?O4JzUDCD+75)k%fuq*IA#{EMme z&Pf58n?;SJVNzQRCmTRBe9YK!gf|g30l2DV!s};t8SGt@El0r4V~Y@$AY4TF3;{Zn z)4BqFrYf79<&#x?bs-XhK@X829JZRThSacHpsGm2DuSh`N{|GnD(7yLVFbJ8f9+@6 zArxO&eXLR3{3#5KBNy|r2T1>f@HWB(0(|r7r{+GeQU17kRNVs<%-chrs98bk_|=+4 z)aaWgPX2_XOZm!_M(kZKeMnkPUpYc1h+E3UO@M z6@;q@*ARRNpCdFNe2XA1?;%oO0=V)((p9@{6P`J0uy0T<5?O}SzeO%a78CKxokj}p zj@_1|u*9%bb_d~SgnPWBt~78LNFU)Nb<4o2x59@K%#U_=!7jr8u6v%0 F{sXpGG^YRn delta 1529 zcmZ{jT}&KR6vyYzez4F&Y056UzzQrycB|M%5-q6I7AUo}O%>_~iqm25lwH`JS?Vt14o->=6#*aznchCLb zbI#m*=bYdAmJgR1rKKejKKj+U#PyaJ%3fz>@0^>KXZa)i(FLjhKK>Z*$FZG1&Y!?> z7a!nH;&{Kddu0z-RvACa)dgvu^>?7s$p=x1bM7czj*o`QF+SuddwGHl|QY@Pfx#vsrFP6uc|1j>`E)rVYKo8qn zFyPD0VRj_{^X3|v#i69)RmS11imgnAuPUY+hcHBFh?qxgAv@{hFtdZhTHF%DBqiXg zcMCl253npO`^UX1xm3ZSvMOi^beB@}n{pw#;Cd$DXV1Xffj|7~GA^z&1bqmf8@tvy zykEJM4Zw}c{p=*%7Tm+8V0S1CCxUlWj-!j{B6J{PvX~-!0ImdE*;yzF-Nh!+x5GO@ z@+2&Un%OycH^lKY;i}t1Cdt9S5h5#sI1htWzp@L^TixEC#d*wadxVkIx$QEuX)%eC zy#CfY2S zMlR3GGqUAcap&Y!W>)89E@dUr$Xz+6cpQ2i7J*R{p7rEN_vYNlqEY$ZUjL&>SOxAw zqKCFjhx-v<=ZX33(s4t{q*PtkxT0EO5q0q_!gi-sD`9(*rmpJt2FtKi_-T_5io7xn3if~ zO>w+XIkf@yJuKI@vIF_G+F91-+_&$bp=*{ZCJVbdi7D*jUM+=Xmo#+o66M|Lh)JDm zx}_w!n1fUGkLcZG3Oqqb(OUR)SY|M?n7?(dm42QWBT&P{ zT;gl8zadN${;Mdzz=e%)Z_|u#2`y}xYw%IiJuCo!Hf?8X&>TH>x6@Nj)qBMn<#94P zRp3hMmiUge1&VeTnph!W5iUh*J(tm}fnTC6voDkQ3gIkag|JF+5ndxS6W${@*ME(y zHxRZwnz4NeQ&-{!*Ti|!osH1%z3GrUXi6I?9M{&mbd@_ diff --git a/sos_inventory/models/sos_ncmr.py b/sos_inventory/models/sos_ncmr.py index 45aff0e..3f71652 100755 --- a/sos_inventory/models/sos_ncmr.py +++ b/sos_inventory/models/sos_ncmr.py @@ -40,6 +40,7 @@ class NCMR_Model(models.Model): qa_action = fields.Selection([ ('scrap', 'Scrap'),('rework', 'Rework')], string="Action") dispensed_doc_ref = fields.Char(string="Dispensed Doc Ref") dispensed_responsibility = fields.Text(string="Dispensed Responsibility") + return_incoming_resposibility = fields.Char(string="Approved Doc Ref") approved_doc_ref = fields.Char(string="Approved Doc Ref") approved_responsibility = fields.Text(string="Approved Responsibility") customer_complaint_doc_ref = fields.Char(string="Customer Complaint Doc Ref") @@ -112,7 +113,7 @@ class NCMR_Model(models.Model): ('sos_return_fir', 'Return BRR FIR Ref'), ('sos_fir', 'FIR Ref') ], - string="Incoming Document Reference", + string="Document Reference", compute="_compute_combined_incoming_doc_ref", store=False ) diff --git a/sos_inventory/models/sos_wo.py b/sos_inventory/models/sos_wo.py index 45167a7..b3f4610 100755 --- a/sos_inventory/models/sos_wo.py +++ b/sos_inventory/models/sos_wo.py @@ -77,11 +77,28 @@ class sos__wo(models.Model): top_management_approved_on = fields.Datetime(string="Approved On") rounded_total_value = fields.Float(string="Total Value", compute="_compute_total_value", store=True) adjustment_value = fields.Float(string="Round-off", compute="_compute_total_value", store=True) - # @api.model - # def create(self, vals): - # record = super(sos__wo, self).create(vals) - # record.action_esign_btn() - # return record + nre_charges = fields.Monetary(string="NRE Charges", currency_field='currency_id') + nre_tax = fields.Integer(default=18,string="Tax (%)") + nre_tax_amount = fields.Float(string="NRE Tax Value", store=True,readonly=True, compute="_compute_nretax") + nre_total_value = fields.Float(string="Total", store=True) + + @api.depends('nre_charges', 'nre_tax') + def _compute_nretax(self): + for record in self: + if record.nre_charges: + nre_tax_amount = round((record.nre_tax * record.nre_charges) / 100, 2) + exact_total = round(record.nre_charges + nre_tax_amount, 2) + if math.isnan(exact_total) or exact_total is None: + record.total_value = 0.00 + record.nre_total_value = 0.00 + else: + rounded_total = round(exact_total) + + record.nre_total_value = exact_total + record.nre_tax_amount = nre_tax_amount + else: + record.nre_total_value = 0.00 + record.nre_tax_amount = 0.00 def action_amend(self): active_ids = self.env.context.get('active_ids', []) records = self.browse(active_ids) @@ -191,12 +208,12 @@ class sos__wo(models.Model): for record in self: record.gross_value = round(sum(line.total_price for line in record.line_ids), 2) - @api.depends('gross_value') + @api.depends('gross_value','nre_total_value') def _compute_total_value(self): for record in self: if record.wo_planned_at != "inhouse": if record.gross_value: - exact_total = round(record.gross_value, 2) + exact_total = round(record.nre_total_value + record.gross_value, 2) if math.isnan(exact_total) or exact_total is None: record.total_value = 0.00 record.rounded_total_value = 0.00 diff --git a/sos_inventory/security/record_rules.xml b/sos_inventory/security/record_rules.xml index 6dce93d..5059bc1 100755 --- a/sos_inventory/security/record_rules.xml +++ b/sos_inventory/security/record_rules.xml @@ -47,7 +47,12 @@ Sos NCMR: All Records - Read Access - [('rd_user', '=', user.id), ('rework_responsible_rd_user', '=', user.id)] + + ['|', + ('rd_user', 'in', [user.id]), + ('rework_responsible_rd_user', '=', user.id) + ] + diff --git a/sos_inventory/views/sos_deliverables_boq_view.xml b/sos_inventory/views/sos_deliverables_boq_view.xml index bb171e5..a0c62a7 100755 --- a/sos_inventory/views/sos_deliverables_boq_view.xml +++ b/sos_inventory/views/sos_deliverables_boq_view.xml @@ -81,7 +81,7 @@ - + @@ -94,7 +94,7 @@ - + @@ -107,7 +107,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -134,7 +134,7 @@ - + diff --git a/sos_inventory/views/sos_ncmr_view.xml b/sos_inventory/views/sos_ncmr_view.xml index 98e63b0..8624749 100755 --- a/sos_inventory/views/sos_ncmr_view.xml +++ b/sos_inventory/views/sos_ncmr_view.xml @@ -173,16 +173,19 @@ -In-Coming Material (RM/PM) +In-Coming Material (RM/PM) +Return In-Coming Material (RM/PM) + +Approved Finished Products +Returned Finished Products +Finished Products(Production Assy) diff --git a/sos_inventory/views/sos_wo_view.xml b/sos_inventory/views/sos_wo_view.xml index c26475a..18fda30 100755 --- a/sos_inventory/views/sos_wo_view.xml +++ b/sos_inventory/views/sos_wo_view.xml @@ -147,6 +147,35 @@ +