1
1
from django .shortcuts import render , redirect
2
2
from .models import Work , HSCNumber , ChallanNumber , MeltChallanNumber , Report , QuantityRate , MeltReport
3
- from .models import AddHSCForm , AddChallanForm , AddWorkForm , AssemblyReportForm , MeltReportForm , AddMeltChallanForm
3
+ from .models import AddHSCForm , AddChallanForm , AddWorkForm , AssemblyReportForm , MeltReportForm , AddMeltChallanForm , StockReportForm
4
4
from django .contrib import messages
5
5
from django .shortcuts import get_object_or_404
6
6
from django .http import JsonResponse , HttpResponse
@@ -38,6 +38,10 @@ def generate_pdf(request):
38
38
quantity = request .GET .get ('quantity1' )
39
39
rate = request .GET .get ('rate1' )
40
40
amount = request .GET .get ('amount1' )
41
+ weight = request .GET .get ('weight1' )
42
+ scrap_weight = request .GET .get ('weight2' )
43
+ end_pieces = request .GET .get ('weight3' )
44
+ total_weight = request .GET .get ('total_weight' )
41
45
42
46
# If user enters the same challan number then the previous record for that paricular challan number
43
47
# is deleted and new record is overriden onto the old one
@@ -48,7 +52,11 @@ def generate_pdf(request):
48
52
date = date ,
49
53
quantity = quantity ,
50
54
rate = rate ,
51
- amount = amount
55
+ amount = amount ,
56
+ weight = weight ,
57
+ scrap_weight = scrap_weight ,
58
+ end_pieces = end_pieces ,
59
+ total_weight = total_weight
52
60
)
53
61
report .save ()
54
62
@@ -526,7 +534,7 @@ def excel_export_melt(reports, filename):
526
534
total += report .amount
527
535
col = 0
528
536
row += 2
529
- sheet .write (row , col , index , data )
537
+ sheet .write (row , col , index + 1 , data )
530
538
col += 1
531
539
sheet .merge_range (row , col , row , col + 2 , report .particular , data )
532
540
col += 3
@@ -583,4 +591,117 @@ def report_melt(request):
583
591
return excel_export_melt (report , 'Report_' + calendar .month_name [int (request .POST .get ('month' ))] + '_' + request .POST .get ('year' ))
584
592
else :
585
593
form = MeltReportForm ()
586
- return render (request , 'report_melt.html' , {'form' : form })
594
+ return render (request , 'report_melt.html' , {'form' : form })
595
+
596
+
597
+ def stock_report (reports , filename , month , year ):
598
+ response = HttpResponse (content_type = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' )
599
+ response ['Content-Disposition' ] = "attachment; filename=" + filename + ".xlsx"
600
+
601
+ book = Workbook (response , {'in_memory' : True })
602
+ sheet = book .add_worksheet ('Report' )
603
+
604
+ for col in range (50 ):
605
+ sheet .set_column (col , col , 10 )
606
+
607
+ merge_format = book .add_format ({
608
+ 'bold' : 3 ,
609
+ 'border' : 1 ,
610
+ 'align' : 'center' ,
611
+ 'valign' : 'vcenter' ,
612
+ })
613
+
614
+ heading = book .add_format ({
615
+ 'bold' : 1 ,
616
+ 'border' : 1 ,
617
+ 'align' : 'center' ,
618
+ 'valign' : 'vcenter' ,
619
+ })
620
+
621
+ data = book .add_format ({
622
+ 'border' : 1 ,
623
+ 'align' : 'center' ,
624
+ 'valign' : 'vcenter' ,
625
+ })
626
+
627
+ heading2 = book .add_format ({
628
+ 'bold' : 1 ,
629
+ 'border' : 1
630
+ })
631
+
632
+ # Table headings
633
+ sheet .merge_range (
634
+ 'A1:M5' ,
635
+ 'Mob:9423222798, 9881212348\n \
636
+ VAIBHAV ENGINEERING WORKS\n S.No.15/11/3,\
637
+ Old Warje Jakat Naka, Behind Kakde City, Karvanagar,\
638
+ Pune-411052.\n \
639
+ MONTHLY STOCK STATEMENTS FOR THE MONTH ' + month + ' ' + year ,
640
+ merge_format )
641
+
642
+ sheet .merge_range (
643
+ 'A6:F7' ,
644
+ 'REICEVED FROM VANAZ ENG. LTD.' ,
645
+ heading
646
+ )
647
+
648
+ sheet .merge_range (
649
+ 'G6:M7' ,
650
+ 'ISSUED FROM VAIBHAV ENG. WORKS' ,
651
+ heading
652
+ )
653
+
654
+ sheet .merge_range ('A8:A9' , 'SR\n NO' , heading )
655
+ sheet .merge_range ('B8:B9' , 'MELT OF BLANK' , heading )
656
+ sheet .merge_range ('C8:C9' , 'CHALLAN\n NUMBER' , heading )
657
+ sheet .merge_range ('D8:D9' , 'DATE' , heading )
658
+ sheet .merge_range ('E8:E9' , 'WEIGHT (KG)' , heading )
659
+ sheet .merge_range ('F8:F9' , 'QUANTITY IN' , heading )
660
+ sheet .merge_range ('G8:G9' , 'CHALLAN\n NUMBER' , heading )
661
+ sheet .merge_range ('H8:H9' , 'DATE' , heading )
662
+ sheet .merge_range ('I8:I9' , 'QUANTITY OUT' , heading )
663
+ sheet .merge_range ('J8:J9' , 'WEIGHT (KG)' , heading )
664
+ sheet .merge_range ('K8:K9' , 'SCRAP WEIGHT (KG)' , heading )
665
+ sheet .merge_range ('L8:L9' , 'END PIECES WEIGHT' , heading )
666
+ sheet .merge_range ('M8:M9' , 'TOTAL WEIGHT' , heading )
667
+
668
+ row = 9
669
+ for index , report in enumerate (reports ):
670
+ row += 1
671
+ col = 0
672
+ sheet .write (row , col , index + 1 , data )
673
+ col += 1
674
+ sheet .write (row , col , report .particular , data )
675
+ col += 5
676
+ sheet .write (row , col , report .challan_number , data )
677
+ col += 1
678
+ sheet .write (row , col , report .date , data )
679
+ col += 1
680
+ sheet .write (row , col , report .quantity , data )
681
+ col += 1
682
+ sheet .write (row , col , report .weight , data )
683
+ col += 1
684
+ sheet .write (row , col , report .scrap_weight , data )
685
+ col += 1
686
+ sheet .write (row , col , report .end_pieces , data )
687
+ col += 1
688
+ sheet .write (row , col , report .total_weight , data )
689
+
690
+ sheet .conditional_format (10 , 0 , row , 8 , {'type' : 'blanks' , 'format' : data })
691
+ book .close ()
692
+
693
+ return response
694
+
695
+ def stock_report_monthly (request ):
696
+ if request .method == 'POST' :
697
+ form = StockReportForm (request .POST )
698
+ if form .is_valid ():
699
+ query = Q (
700
+ date__year = request .POST .get ('year' ),
701
+ date__month = request .POST .get ('month' )
702
+ )
703
+ report = MeltReport .objects .filter (query )
704
+ return stock_report (report , 'Stock_Report_' + calendar .month_name [int (request .POST .get ('month' ))] + '_' + request .POST .get ('year' ), calendar .month_name [int (request .POST .get ('month' ))], request .POST .get ('year' ))
705
+ else :
706
+ form = StockReportForm ()
707
+ return render (request , 'stock_report.html' , {'form' : form })
0 commit comments