Files
Client-Billing-software/app/routes/__pycache__/reports.cpython-314.pyc

48 lines
11 KiB
Plaintext
Raw Normal View History

2026-04-15 10:32:46 +05:30
+
<00><><EFBFBD>i<EFBFBD>!<00><00> <00>^RIHtHtHtHtHtHtHtHt^RI H
t
^RI H t ^RI HtHtHtHtHt^RIt^RIt^RIHt^RIHt]!R]4t^RItR t]P9R
R .R 7R 4t]P9R4R4tR#)<10>)<08> Blueprint<6E>request<73>render_template<74>send_from_directory<72>redirect<63>url_for<6F> current_app<70>flash)<01>db)<01>Workbook)<05>Font<6E> Alignment<6E> PatternFill<6C>Border<65>SideN)<01>datetime)<01>Task<73>reportsc<00>.<00>\V\4'gR#VP4PRR4PRR4PRR4PRR4PRR4PRR4P 4#)<07><00>,<2C>(<28>)<29>.<2E>&<26>
)<05>
isinstance<EFBFBD>str<74>strip<69>replace<63>lower)<01>texts&<26>SC:\Users\Admin\Downloads\Software (3)\Software\client-billing\app\routes\reports.py<70>
clean_textr$sp<00><00> <15>d<EFBFBD>C<EFBFBD> <20> <20><11> <0F>:<3A>:<3A><<3C> <1F> <1F><03>R<EFBFBD> (<28> 0<> 0<><13>b<EFBFBD> 9<> A<> A<>#<23>r<EFBFBD> J<> <14>W<EFBFBD>S<EFBFBD>"<22> <1D>g<EFBFBD>g<EFBFBD>c<EFBFBD>2<EFBFBD>.<2E>w<EFBFBD>w<EFBFBD>t<EFBFBD>R<EFBFBD>/@<40><15><15><17>I<01>z /report_excel<65>GET)<01>methodsc <00><><00>Rp\PPRR4p\PPRR4p\V4p\V4pV'gRE#V'gRF#\ RV 24\ RV 24\
P PVR7P4Uu.uF!p\VP4V8XgKVNK# pp\ R\V4 R24V'g!\R R
4\\R 44#/pR pVFp V Pp
K \
P P\
P V8H4P4Uu.uF!p\VP"4V8XgKVNK# p p\ R\V 4 R V R24V EF<>pVP$'dVP$P'4MRp ^p W<>9d7R.V ,W|&VP(W|,^&VP$W|,^&V!VP*4pV!VP,4pV!W<>,
4pV!VP.4V!VP04,pV!VP.4V!VP04VV!VP24VV.pVP'dVPP54MRpRV9dRGMRV9dRHMRV9dRIM
RV9dRJMRKwppVfEKaVfEKh\7VV4FKpW|,V,eV!W|,V,4M^pVVVV,
,,W|,V&KM EK<> \ R\V4 24V'g!\RR
4\\R 44#\8P:!VRV4p^p\V4V8<>dVRVp\<P>!4PAR4pV RV R2p\BPDPG\HPJR,V4p\M4pVPNpRVn(\S\URR7\URR7\URR7\URR7R7p\WRRRR 7p \WR!R!RR 7p!\WR"R"RR 7p"\WR#R#RR 7p#\WR$R$RR 7p$VPY^^^^R%7R&VR'&R(VR)&R*VR+&VPY^^ ^^R%7R,VR-&VPY^^^^R%7R.VR/&VPY^^^^R%7R0VR1&RLF<>p%R2VP[^V%R37n.R4VP[^V%^,R37n.R5VP[^V%^,R37n.R6VP[^V%^,R37n.R7VP[^V%^,R37n.R8VP[^V%^,R37n.K<> \7^^4F<>p&VP[^V&R37P^p'\aR9^ R:7VV' R;2,n1\eR<R<R=7VV' R;2,n3V VV' R;2,n4VVV' R;2,n5\aR9^ R:7VV' R>2,n1\eR<R<R=7VV' R>2,n3V!VV' R>2,n4VVV' R>2,n5K<> ^p(R?R.^.^,,p).RMOp*VPm4F<>p+VPoV+4V(^,^8wdT"MT#p,\7^^4F3p&V,VP[V(V&R37n4VVP[V(V&R37n5K5 V*F%pV)V;;,V!V+V,4, uu&K' V(^, p(K<> VPoV)4\7^^4Fwp&\aR9R@7VP[V(V&R37n1V$VP[V(V&R37n4\eR<RA7VP[V(V&R37n3VVP[V(V&R37n5Ky \7^^4F6p^VPpVP[^VR37P^,n9K8 VPuV4\ RBV 24\\RCVRD74#uupiuupi)Nz [\\/*?:"<>|]<5D>blockr<00> main_taskzBlock selected: zMain task selected: )<01>
block_namezFound z main task recordsz.No data found for selected Block and Main Task<73>errorzmain.generate_report_pagec<00>^<00>\\V4^4# \\3dR#i;i)<02>g)<04>round<6E>float<61>
ValueError<EFBFBD> TypeError)<01>values&r#<00>
safe_float<EFBFBD>#generate_report.<locals>.safe_float6s/<00><00> <17><18><15>u<EFBFBD><1C>q<EFBFBD>)<29> )<29><><1A>I<EFBFBD>&<26> <17><16> <17>s <00><00>,<03>,z subtasks for main task '<27>'N<>supply<6C>erection<6F>testing<6E> commissioningz#Number of villages in report data: zSub task data not foundz %Y%m%d_%H%M%S<>_z.xlsx<73> UPLOAD_FOLDERzSubtask Report<72>thin)<01>style)<04>left<66>right<68>top<6F>bottom<6F>FFC000<30>solid)<03> start_color<6F> end_color<6F> fill_type<70>92D050<35>FFFFFF<46>D9EAD3<44>FFF2CC)<04> start_row<6F> start_column<6D>end_row<6F>
end_columnzTask ID<49>A1z Village Name<6D>B1z Supply (70%)<29>C1zErection (20%)<29>I1z Testing (5%)<29>O1zCommissioning (5%)<29>U1z
Tender Qty)<02>row<6F>columnz Tender Ratez Tender AmountzPrevious Bill QTYzPrevious Bill AmountzRemaining AmountT)<02>bold<6C>size<7A>1<>center)<02>
horizontal<EFBFBD>vertical<61>2<>Total)rX)r\zReport generated: zreports.download_report<72><01>filename)zPlease select a Block.<2E><>)zPlease select a Main Task.rb)r.<00>)rc<00>)rd<00>)re<00>)NN)<04><00> <00><00>) <0C><00><00><00>
<00> <00> <00><00><00><00><00><00>);r<00>args<67>getr$<00>printr<00>query<72> filter_by<62>all<6C> task_name<6D>lenr
rr<00> serial_number<65>filterr+<00>parent_task_name<6D> village_namer<00>id<69>
boq_amount<EFBFBD>previous_billing_amount<6E>qty<74>rate<74>previous_billed_qtyr!<00>range<67>re<72>subr<00>now<6F>strftime<6D>os<6F>path<74>joinr <00>configr <00>active<76>titlerrr<00> merge_cells<6C>cellr3<00> column_letterr <00>fontr<00> alignment<6E>fill<6C>border<65>values<65>append<6E>column_dimensions<6E>width<74>save)-<2D>main_task_rexpr)r*<00> block_clean<61>main_task_clean<61>task<73>main_task_records<64> report_datar4<00>main_task_record<72>main_task_serial_number<65>subtasks_query<72>key<65> totalElemListr<74>r<><00>remaining_amount<6E> tender_amountr<74><00>task_name_clean<61>start<72>end<6E>i<> current_value<75>sanitized_main_task<73>
max_length<EFBFBD> timestamp<6D> file_name<6D> file_path<74>wb<77>ws<77> thin_border<65> header_fill<6C>subheader_fill<6C>data_row_fill1<6C>data_row_fill2<6C>total_row_fill<6C> start_col<6F>col<6F>
col_letter<EFBFBD> row_index<65>totals<6C> sum_columns<6E>row_datar<61>s- r#<00>generate_reportr<74>s,<00><00>$<24>N<EFBFBD> <13>L<EFBFBD>L<EFBFBD> <1C> <1C>W<EFBFBD>b<EFBFBD> )<29>E<EFBFBD><17> <0C> <0C> <20> <20><1B>b<EFBFBD>1<>I<EFBFBD><1C>U<EFBFBD>#<23>K<EFBFBD> <20><19>+<2B>O<EFBFBD> <16>,<2C>,<2C> <1A>0<>0<> <09> <1C>U<EFBFBD>G<EFBFBD>
$<24>%<25> <09> <20><19> <0B>
,<2C>-<2D>+/<2F>*<2A>*<2A>*><3E>*><3E>%<25>*><3E>*P<>*T<>*T<>*V<>J<01>*V<>$<24>%<25>d<EFBFBD>n<EFBFBD>n<EFBFBD>5<><1F>H<><1E><14>*V<><15>J<01>
<EFBFBD>F<EFBFBD>3<EFBFBD>(<28>)<29>*<2A>*<<3C>
=<3D>><3E> <1D> <0A>><3E><07>H<><17><07> ;<3B><<3C>=<3D>=<3D><14>K<EFBFBD><17>.<2E><18>"2<>"@<40>"@<40><1F>.<2E> <1E><1A><1A>*<2A>*<2A>4<EFBFBD>?<3F>?<3F>e<EFBFBD>+C<>D<>H<>H<>J<><06>J<><14> <15>d<EFBFBD>+<2B>+<2B> ,<2C><0F> ?<3F> <0A><04>J<><13><06>

<EFBFBD>F<EFBFBD>3<EFBFBD>~<7E>&<26>'<27>'@<40><19> <0B>1<EFBFBD>
M<EFBFBD>N<><1E><04>+/<2F>+<<3C>+<<3C>+<<3C>d<EFBFBD><1F><1F>%<25>%<25>'<27>"<22><03><1A> <0A> <0E> !<21> $<24>v<EFBFBD> <0A>5<>K<EFBFBD> <1C>"&<26>'<27>'<27>K<EFBFBD> <1C>Q<EFBFBD> <1F>"&<26>"3<>"3<>K<EFBFBD> <1C>Q<EFBFBD> <1F><1F><04><0F><0F>0<>
<EFBFBD>",<2C>T<EFBFBD>-I<>-I<>"J<><1F>%<25>j<EFBFBD>&J<>K<><18>"<22>4<EFBFBD>8<EFBFBD>8<EFBFBD>,<2C>z<EFBFBD>$<24>)<29>)<29>/D<>D<> <0A> <16>t<EFBFBD>x<EFBFBD>x<EFBFBD> <20> <16>t<EFBFBD>y<EFBFBD>y<EFBFBD> !<21> <19> <16>t<EFBFBD>/<2F>/<2F> 0<> #<23> <1C> 
<EFBFBD><06>59<35>N<EFBFBD>N<EFBFBD>N<EFBFBD>$<24>.<2E>.<2E>.<2E>.<2E>0<><02><0F><1E>/<2F>1<>F<EFBFBD>!<21>_<EFBFBD>4<>G<EFBFBD>!<21>_<EFBFBD>4<>H<EFBFBD>'<27>?<3F>:<3A>H<EFBFBD> <18> <13><05>s<EFBFBD> <11> <1C><13><1F><1A>5<EFBFBD>#<23>&<26><01>CN<43>CS<43>TU<54>CV<43>Cb<43>
<EFBFBD>;<3B>+;<3B>A<EFBFBD>+><3E> ?<3F>hi<68> <0A>&3<>f<EFBFBD>Q<EFBFBD><15>Y<EFBFBD>6G<36>&G<> <0B> <20><11>#<23>'<27>A<1F>H
<EFBFBD> /<2F><03>K<EFBFBD>0@<40>/A<>
B<EFBFBD>C<> <17> <0A>'<27><17>1<><17><07> ;<3B><<3C>=<3D>=<3D><1D>&<26>&<26><1E><12>Y<EFBFBD>?<3F><17><13>J<EFBFBD>
<EFBFBD> <1E><1F>*<2A>,<2C>1<>+<2B>:<3A>><3E><1B><18> <0C> <0C><0E>'<27>'<27><0F>8<>I<EFBFBD>'<27>'<27>q<EFBFBD><19> <0B>5<EFBFBD>9<>I<EFBFBD><12><07><07> <0C> <0C>[<5B>/<2F>/<2F><0F>@<40>)<29>L<>I<EFBFBD> <11><1A>B<EFBFBD> <0B><19><19>B<EFBFBD><1F>B<EFBFBD>H<EFBFBD><19>d<EFBFBD><16>0<><04>6<EFBFBD>8J<38> <20>v<EFBFBD>.<2E>t<EFBFBD>&<26>7I<37>K<01>K<EFBFBD><1D>(<28>h<EFBFBD>RY<52>Z<>K<EFBFBD> <20>X<EFBFBD><18>U\<5C>]<5D>N<EFBFBD> <20>X<EFBFBD><18>U\<5C>]<5D>N<EFBFBD> <20>X<EFBFBD><18>U\<5C>]<5D>N<EFBFBD> <20>X<EFBFBD><18>U\<5C>]<5D>N<EFBFBD><06>N<EFBFBD>N<EFBFBD>Q<EFBFBD>Q<EFBFBD><01>a<EFBFBD>N<EFBFBD>H<><18>B<EFBFBD>t<EFBFBD>H<EFBFBD><1D>B<EFBFBD>t<EFBFBD>H<EFBFBD><1D>B<EFBFBD>t<EFBFBD>H<EFBFBD><06>N<EFBFBD>N<EFBFBD>Q<EFBFBD>Q<EFBFBD><01>b<EFBFBD>N<EFBFBD>I<><1F>B<EFBFBD>t<EFBFBD>H<EFBFBD><06>N<EFBFBD>N<EFBFBD>Q<EFBFBD>R<EFBFBD><11>r<EFBFBD>N<EFBFBD>J<><1D>B<EFBFBD>t<EFBFBD>H<EFBFBD><06>N<EFBFBD>N<EFBFBD>Q<EFBFBD>R<EFBFBD><11>r<EFBFBD>N<EFBFBD>J<>#<23>B<EFBFBD>t<EFBFBD>H<EFBFBD>#<23> <09>1=<3D><02><07><07>A<EFBFBD>i<EFBFBD><07>(<28>.<2E>5B<35><02><07><07>A<EFBFBD>i<EFBFBD>!<21>m<EFBFBD><07>,<2C>2<>5D<35><02><07><07>A<EFBFBD>i<EFBFBD>!<21>m<EFBFBD><07>,<2C>2<>5H<35><02><07><07>A<EFBFBD>i<EFBFBD>!<21>m<EFBFBD><07>,<2C>2<>5K<35><02><07><07>A<EFBFBD>i<EFBFBD>!<21>m<EFBFBD><07>,<2C>2<>5G<35><02><07><07>A<EFBFBD>i<EFBFBD>!<21>m<EFBFBD><07>,<2C>2<> $<24><15>Q<EFBFBD><02>|<7C><03><17>W<EFBFBD>W<EFBFBD><11>3<EFBFBD>W<EFBFBD>/<2F>=<3D>=<3D>
<EFBFBD>$(<28>d<EFBFBD><12>$<<3C><02>j<EFBFBD>\<5C><11> <1B><1C>!<21>)2<>h<EFBFBD>QY<51>)Z<><02>j<EFBFBD>\<5C><11> <1B><1C>&<26>$/<2F><02>j<EFBFBD>\<5C><11> <1B><1C>!<21>&1<><02>j<EFBFBD>\<5C><11> <1B><1C>#<23>$(<28>d<EFBFBD><12>$<<3C><02>j<EFBFBD>\<5C><11> <1B><1C>!<21>)2<>h<EFBFBD>QY<51>)Z<><02>j<EFBFBD>\<5C><11> <1B><1C>&<26>$2<><02>j<EFBFBD>\<5C><11> <1B><1C>!<21>&1<><02>j<EFBFBD>\<5C><11> <1B><1C>#<23><1C><12>I<EFBFBD><15>r<EFBFBD>]<5D>a<EFBFBD>S<EFBFBD>2<EFBFBD>X<EFBFBD> %<25>F<EFBFBD>?<3F>K<EFBFBD><1F>&<26>&<26>(<28><08>
<EFBFBD> <09> <09>(<28><1B>!*<2A>Q<EFBFBD><1D>!<21>!3<>~<7E><1E><04><18><11>B<EFBFBD><<3C>C<EFBFBD>6:<3A>B<EFBFBD>G<EFBFBD>G<EFBFBD> <09>#<23>G<EFBFBD> .<2E> 3<>8C<38>B<EFBFBD>G<EFBFBD>G<EFBFBD> <09>#<23>G<EFBFBD> .<2E> 5<> <20><1D>A<EFBFBD> <12>1<EFBFBD>I<EFBFBD><1A>H<EFBFBD>Q<EFBFBD>K<EFBFBD>0<> 0<>I<EFBFBD><1D><11>Q<EFBFBD><0E> <09>)<29><07>I<EFBFBD>I<EFBFBD>f<EFBFBD><15><14>Q<EFBFBD><02>|<7C><03>26<32>D<EFBFBD>/<2F><02><07><07>I<EFBFBD>c<EFBFBD><07>*<2A>/<2F>2@<40><02><07><07>I<EFBFBD>c<EFBFBD><07>*<2A>/<2F>7@<40>H<EFBFBD>7U<37><02><07><07>I<EFBFBD>c<EFBFBD><07>*<2A>4<>4?<3F><02><07><07>I<EFBFBD>c<EFBFBD><07>*<2A>1<> <1C> <13>1<EFBFBD>b<EFBFBD>\<5C><01>MO<4D><02><1C><1C>R<EFBFBD>W<EFBFBD>W<EFBFBD><11>1<EFBFBD>W<EFBFBD>5<>C<>C<>D<>J<><1A><07>G<EFBFBD>G<EFBFBD>I<EFBFBD><16> <09> <1E>y<EFBFBD>k<EFBFBD>
*<2A>+<2B> <13>G<EFBFBD>5<> <09>J<> K<>K<><4B>KJ<01><>4s<00>9c"<04>c"<04><c'<04>c'z/download/<filename>c<00>H<00>\\PR,VRR7#)r<T)<01> as_attachment)rr r<>r`s&r#<00>download_reportr<74><00>s<00><00> <1E>{<7B>1<>1<>/<2F>B<>H<EFBFBD>\`<60> a<>ar%)<1F>flaskrrrrrrr r
<00> app.__init__r <00>openpyxlr <00>openpyxl.stylesr rrrrr<>r<>r<00>
app.modelsr<00>__name__r<00>loggingr$<00>router<65>r<><00>r%r#<00><module>r<>s<><00><01>q<>q<>q<><1B><1D>F<>F<> <09> <09><1D><1B>
<13>I<EFBFBD>x<EFBFBD>
(<28><07><0F>I<01>  <09><1D><1D><EFBFBD><15><07><1D>0<>vL<01>1<>vL<01>r <09><1D><1D>%<25>&<26>b<01>'<27>br%