diff --git a/.gitignore b/.gitignore index 0b50bb3..2eba46a 100644 --- a/.gitignore +++ b/.gitignore @@ -13,8 +13,7 @@ venv # Ignore Log files ss logs/ - -# Ignore db folders -instance/ +*.log + diff --git a/app/models/laying_client_model.py b/app/models/laying_client_model.py index bb9ef3d..0260433 100644 --- a/app/models/laying_client_model.py +++ b/app/models/laying_client_model.py @@ -13,33 +13,33 @@ class LayingClient(db.Model): # Basic Fields Location = db.Column(db.String(500)) MH_NO = db.Column(db.String(100)) - CC_length = db.Column(db.Float) + CC_length = db.Column(db.Float, default=0) # Bedding Qty. - Outer_dia_of_MH_m = db.Column(db.Float) - Bedding_Length = db.Column(db.Float) - Width = db.Column(db.Float) - Depth = db.Column(db.Float) - Qty = db.Column(db.Float) + Outer_dia_of_MH_m = db.Column(db.Float, default=0) + Bedding_Length = db.Column(db.Float, default=0) + Width = db.Column(db.Float, default=0) + Depth = db.Column(db.Float, default=0) + Qty = db.Column(db.Float, default=0) # PIPE LAYING Qty. - Pipe_Dia_mm = db.Column(db.Float) - ID_of_MH_m = db.Column(db.Float) - Laying_Length = db.Column(db.Float) + Pipe_Dia_mm = db.Column(db.Float, default=0) + ID_of_MH_m = db.Column(db.Float, default=0) + Laying_Length = db.Column(db.Float, default=0) - pipe_150_mm = db.Column(db.Float) - pipe_200_mm = db.Column(db.Float) - pipe_250_mm = db.Column(db.Float) - pipe_300_mm = db.Column(db.Float) - pipe_350_mm = db.Column(db.Float) - pipe_400_mm = db.Column(db.Float) - pipe_450_mm = db.Column(db.Float) - pipe_500_mm = db.Column(db.Float) - pipe_600_mm = db.Column(db.Float) - pipe_700_mm = db.Column(db.Float) - pipe_900_mm = db.Column(db.Float) - pipe_1200_mm = db.Column(db.Float) + pipe_150_mm = db.Column(db.Float, default=0) + pipe_200_mm = db.Column(db.Float, default=0) + pipe_250_mm = db.Column(db.Float, default=0) + pipe_300_mm = db.Column(db.Float, default=0) + pipe_350_mm = db.Column(db.Float, default=0) + pipe_400_mm = db.Column(db.Float, default=0) + pipe_450_mm = db.Column(db.Float, default=0) + pipe_500_mm = db.Column(db.Float, default=0) + pipe_600_mm = db.Column(db.Float, default=0) + pipe_700_mm = db.Column(db.Float, default=0) + pipe_900_mm = db.Column(db.Float, default=0) + pipe_1200_mm = db.Column(db.Float, default=0) - Total = db.Column(db.Float) + Total = db.Column(db.Float, default=0) Remarks = db.Column(db.String(500)) RA_Bill_No=db.Column(db.String(500)) diff --git a/app/models/laying_model.py b/app/models/laying_model.py index f193e64..fc1d3c7 100644 --- a/app/models/laying_model.py +++ b/app/models/laying_model.py @@ -17,25 +17,25 @@ class Laying(db.Model): # Pipe Laying Fields Location = db.Column(db.String(500)) MH_NO = db.Column(db.String(100)) - CC_length = db.Column(db.Float) - Pipe_Dia_mm = db.Column(db.Float) - ID_of_MH_m = db.Column(db.Float) - Laying_Length = db.Column(db.Float) + CC_length = db.Column(db.Float, default=0) + Pipe_Dia_mm = db.Column(db.Float, default=0) + ID_of_MH_m = db.Column(db.Float, default=0) + Laying_Length = db.Column(db.Float, default=0) - pipe_150_mm = db.Column(db.Float) - pipe_200_mm = db.Column(db.Float) - pipe_250_mm = db.Column(db.Float) - pipe_300_mm = db.Column(db.Float) - pipe_350_mm = db.Column(db.Float) - pipe_400_mm = db.Column(db.Float) - pipe_450_mm = db.Column(db.Float) - pipe_500_mm = db.Column(db.Float) - pipe_600_mm = db.Column(db.Float) - pipe_700_mm = db.Column(db.Float) - pipe_900_mm = db.Column(db.Float) - pipe_1200_mm = db.Column(db.Float) + pipe_150_mm = db.Column(db.Float, default=0) + pipe_200_mm = db.Column(db.Float, default=0) + pipe_250_mm = db.Column(db.Float, default=0) + pipe_300_mm = db.Column(db.Float, default=0) + pipe_350_mm = db.Column(db.Float, default=0) + pipe_400_mm = db.Column(db.Float, default=0) + pipe_450_mm = db.Column(db.Float, default=0) + pipe_500_mm = db.Column(db.Float, default=0) + pipe_600_mm = db.Column(db.Float, default=0) + pipe_700_mm = db.Column(db.Float, default=0) + pipe_900_mm = db.Column(db.Float, default=0) + pipe_1200_mm = db.Column(db.Float, default=0) - Total = db.Column(db.Float) + Total = db.Column(db.Float, default=0) Remarks = db.Column(db.String(500)) RA_Bill_No=db.Column(db.String(500)) diff --git a/app/models/manhole_domestic_chamber_model.py b/app/models/manhole_domestic_chamber_model.py index 348e2a7..a5ae5ef 100644 --- a/app/models/manhole_domestic_chamber_model.py +++ b/app/models/manhole_domestic_chamber_model.py @@ -18,35 +18,35 @@ class ManholeDomesticChamber(db.Model): # Basic Fields Location = db.Column(db.String(500)) MH_NO = db.Column(db.String(100)) - Depth_of_MH = db.Column(db.Float) + Depth_of_MH = db.Column(db.Float, default=0) # Excavation categories - d_0_to_0_75 = db.Column(db.Float) - d_0_76_to_1_05 = db.Column(db.Float) - d_1_06_to_1_65 = db.Column(db.Float) - d_1_66_to_2_15 = db.Column(db.Float) - d_2_16_to_2_65 = db.Column(db.Float) - d_2_66_to_3_15 = db.Column(db.Float) - d_3_16_to_3_65= db.Column(db.Float) - d_3_66_to_4_15 = db.Column(db.Float) - d_4_16_to_4_65 = db.Column(db.Float) - d_4_66_to_5_15 = db.Column(db.Float) - d_5_16_to_5_65 = db.Column(db.Float) - d_5_66_to_6_15 = db.Column(db.Float) - d_6_16_to_6_65 = db.Column(db.Float) - d_6_66_to_7_15 = db.Column(db.Float) - d_7_16_to_7_65 = db.Column(db.Float) - d_7_66_to_8_15 = db.Column(db.Float) - d_8_16_to_8_65 = db.Column(db.Float) - d_8_66_to_9_15 = db.Column(db.Float) - d_9_16_to_9_65 = db.Column(db.Float) + d_0_to_0_75 = db.Column(db.Float, default=0) + d_0_76_to_1_05 = db.Column(db.Float, default=0) + d_1_06_to_1_65 = db.Column(db.Float, default=0) + d_1_66_to_2_15 = db.Column(db.Float, default=0) + d_2_16_to_2_65 = db.Column(db.Float, default=0) + d_2_66_to_3_15 = db.Column(db.Float, default=0) + d_3_16_to_3_65= db.Column(db.Float, default=0) + d_3_66_to_4_15 = db.Column(db.Float, default=0) + d_4_16_to_4_65 = db.Column(db.Float, default=0) + d_4_66_to_5_15 = db.Column(db.Float, default=0) + d_5_16_to_5_65 = db.Column(db.Float, default=0) + d_5_66_to_6_15 = db.Column(db.Float, default=0) + d_6_16_to_6_65 = db.Column(db.Float, default=0) + d_6_66_to_7_15 = db.Column(db.Float, default=0) + d_7_16_to_7_65 = db.Column(db.Float, default=0) + d_7_66_to_8_15 = db.Column(db.Float, default=0) + d_8_16_to_8_65 = db.Column(db.Float, default=0) + d_8_66_to_9_15 = db.Column(db.Float, default=0) + d_9_16_to_9_65 = db.Column(db.Float, default=0) - Domestic_Chambers = db.Column(db.Float) - DWC_Pipe_Length = db.Column(db.Float) - UPVC_Pipe_Length = db.Column(db.Float) + Domestic_Chambers = db.Column(db.Float, default=0) + DWC_Pipe_Length = db.Column(db.Float, default=0) + UPVC_Pipe_Length = db.Column(db.Float, default=0) RA_Bill_No=db.Column(db.String(500)) - Total = db.Column(db.Float) + Total = db.Column(db.Float, default=0) created_at = db.Column(db.DateTime, default=datetime.today) def __repr__(self): diff --git a/app/models/manhole_excavation_model.py b/app/models/manhole_excavation_model.py index db99751..d0b008f 100644 --- a/app/models/manhole_excavation_model.py +++ b/app/models/manhole_excavation_model.py @@ -15,47 +15,47 @@ class ManholeExcavation(db.Model): Location = db.Column(db.String(500)) MH_NO = db.Column(db.String(100)) - Upto_IL_Depth = db.Column(db.Float) - Cutting_Depth = db.Column(db.Float) - ID_of_MH_m = db.Column(db.Float) - Ex_Dia_of_Manhole = db.Column(db.Float) - Area_of_Manhole = db.Column(db.Float) + Upto_IL_Depth = db.Column(db.Float, default=0) + Cutting_Depth = db.Column(db.Float, default=0) + ID_of_MH_m = db.Column(db.Float, default=0) + Ex_Dia_of_Manhole = db.Column(db.Float, default=0) + Area_of_Manhole = db.Column(db.Float, default=0) # Excavation categories - Soft_Murum_0_to_1_5 = db.Column(db.Float) - Soft_Murum_1_5_to_3_0 = db.Column(db.Float) - Soft_Murum_3_0_to_4_5 = db.Column(db.Float) + Soft_Murum_0_to_1_5 = db.Column(db.Float, default=0) + Soft_Murum_1_5_to_3_0 = db.Column(db.Float, default=0) + Soft_Murum_3_0_to_4_5 = db.Column(db.Float, default=0) - Hard_Murum_0_to_1_5 = db.Column(db.Float) - Hard_Murum_1_5_to_3_0 = db.Column(db.Float) + Hard_Murum_0_to_1_5 = db.Column(db.Float, default=0) + Hard_Murum_1_5_to_3_0 = db.Column(db.Float, default=0) - Soft_Rock_0_to_1_5 = db.Column(db.Float) - Soft_Rock_1_5_to_3_0 = db.Column(db.Float) + Soft_Rock_0_to_1_5 = db.Column(db.Float, default=0) + Soft_Rock_1_5_to_3_0 = db.Column(db.Float, default=0) - Hard_Rock_0_to_1_5 = db.Column(db.Float) - Hard_Rock_1_5_to_3_0 = db.Column(db.Float) - Hard_Rock_3_0_to_4_5 = db.Column(db.Float) - Hard_Rock_4_5_to_6_0 = db.Column(db.Float) - Hard_Rock_6_0_to_7_5 = db.Column(db.Float) + Hard_Rock_0_to_1_5 = db.Column(db.Float, default=0) + Hard_Rock_1_5_to_3_0 = db.Column(db.Float, default=0) + Hard_Rock_3_0_to_4_5 = db.Column(db.Float, default=0) + Hard_Rock_4_5_to_6_0 = db.Column(db.Float, default=0) + Hard_Rock_6_0_to_7_5 = db.Column(db.Float, default=0) # Totals - Soft_Murum_0_to_1_5_total = db.Column(db.Float) - Soft_Murum_1_5_to_3_0_total = db.Column(db.Float) - Soft_Murum_3_0_to_4_5_total = db.Column(db.Float) + Soft_Murum_0_to_1_5_total = db.Column(db.Float, default=0) + Soft_Murum_1_5_to_3_0_total = db.Column(db.Float, default=0) + Soft_Murum_3_0_to_4_5_total = db.Column(db.Float, default=0) - Hard_Murum_0_to_1_5_total = db.Column(db.Float) - Hard_Murum_1_5_and_above_total = db.Column(db.Float) + Hard_Murum_0_to_1_5_total = db.Column(db.Float, default=0) + Hard_Murum_1_5_and_above_total = db.Column(db.Float, default=0) - Soft_Rock_0_to_1_5_total = db.Column(db.Float) - Soft_Rock_1_5_and_above_total = db.Column(db.Float) + Soft_Rock_0_to_1_5_total = db.Column(db.Float, default=0) + Soft_Rock_1_5_and_above_total = db.Column(db.Float, default=0) - Hard_Rock_0_to_1_5_total = db.Column(db.Float) - Hard_Rock_1_5_to_3_0_total = db.Column(db.Float) - Hard_Rock_3_0_to_4_5_total = db.Column(db.Float) - Hard_Rock_4_5_to_6_0_total = db.Column(db.Float) - Hard_Rock_6_0_to_7_5_total = db.Column(db.Float) + Hard_Rock_0_to_1_5_total = db.Column(db.Float, default=0) + Hard_Rock_1_5_to_3_0_total = db.Column(db.Float, default=0) + Hard_Rock_3_0_to_4_5_total = db.Column(db.Float, default=0) + Hard_Rock_4_5_to_6_0_total = db.Column(db.Float, default=0) + Hard_Rock_6_0_to_7_5_total = db.Column(db.Float, default=0) - Total = db.Column(db.Float) + Total = db.Column(db.Float, default=0) Remarks = db.Column(db.String(500)) RA_Bill_No=db.Column(db.String(500)) diff --git a/app/models/mh_dc_client_model.py b/app/models/mh_dc_client_model.py index 8ed661f..6acaaa6 100644 --- a/app/models/mh_dc_client_model.py +++ b/app/models/mh_dc_client_model.py @@ -19,27 +19,27 @@ class ManholeDomesticChamberClient(db.Model): RA_Bill_No=db.Column(db.String(500)) Location = db.Column(db.String(500)) MH_NO = db.Column(db.String(100)) - MH_TOP_LEVEL = db.Column(db.Float) - MH_IL_LEVEL = db.Column(db.Float) - Depth_of_MH = db.Column(db.Float) + MH_TOP_LEVEL = db.Column(db.Float, default=0) + MH_IL_LEVEL = db.Column(db.Float, default=0) + Depth_of_MH = db.Column(db.Float, default=0) # Excavation categories - d_0_to_1_5 = db.Column(db.Float) - d_1_5_to_2_0 = db.Column(db.Float) - d_2_0_to_2_5 = db.Column(db.Float) - d_2_5_to_3_0 = db.Column(db.Float) - d_3_0_to_3_5 = db.Column(db.Float) - d_3_5_to_4_0 = db.Column(db.Float) - d_4_0_to_4_5= db.Column(db.Float) - d_4_5_to_5_0 = db.Column(db.Float) - d_5_0_to_5_5 = db.Column(db.Float) - d_5_5_to_6_0 = db.Column(db.Float) - d_6_0_to_6_5 = db.Column(db.Float) + d_0_to_1_5 = db.Column(db.Float, default=0) + d_1_5_to_2_0 = db.Column(db.Float, default=0) + d_2_0_to_2_5 = db.Column(db.Float, default=0) + d_2_5_to_3_0 = db.Column(db.Float, default=0) + d_3_0_to_3_5 = db.Column(db.Float, default=0) + d_3_5_to_4_0 = db.Column(db.Float, default=0) + d_4_0_to_4_5= db.Column(db.Float, default=0) + d_4_5_to_5_0 = db.Column(db.Float, default=0) + d_5_0_to_5_5 = db.Column(db.Float, default=0) + d_5_5_to_6_0 = db.Column(db.Float, default=0) + d_6_0_to_6_5 = db.Column(db.Float, default=0) - Domestic_Chambers = db.Column(db.Float) + Domestic_Chambers = db.Column(db.Float, default=0) - Total = db.Column(db.Float) + Total = db.Column(db.Float, default=0) created_at = db.Column(db.DateTime, default=datetime.today) def __repr__(self): diff --git a/app/models/mh_ex_client_model.py b/app/models/mh_ex_client_model.py index ba8adb9..7ce2657 100644 --- a/app/models/mh_ex_client_model.py +++ b/app/models/mh_ex_client_model.py @@ -15,65 +15,65 @@ class ManholeExcavationClient(db.Model): RA_Bill_No=db.Column(db.String(500)) Location = db.Column(db.String(500)) MH_NO = db.Column(db.String(100)) - Ground_Level = db.Column(db.Float) - MH_Invert_Level = db.Column(db.Float) - MH_Top_Level = db.Column(db.Float) - Ex_Level = db.Column(db.Float) - Cutting_Depth = db.Column(db.Float) - MH_Depth = db.Column(db.Float) - ID_of_MH_m = db.Column(db.Float) + Ground_Level = db.Column(db.Float, default=0) + MH_Invert_Level = db.Column(db.Float, default=0) + MH_Top_Level = db.Column(db.Float, default=0) + Ex_Level = db.Column(db.Float, default=0) + Cutting_Depth = db.Column(db.Float, default=0) + MH_Depth = db.Column(db.Float, default=0) + ID_of_MH_m = db.Column(db.Float, default=0) - Dia_of_MH_Cutting = db.Column(db.Float) - Area_of_Manhole = db.Column(db.Float) + Dia_of_MH_Cutting = db.Column(db.Float, default=0) + Area_of_Manhole = db.Column(db.Float, default=0) # Excavation categories - Marshi_Muddy_Slushy_0_to_1_5 = db.Column(db.Float) - Marshi_Muddy_Slushy_1_5_to_3_0 = db.Column(db.Float) - Marshi_Muddy_Slushy_3_0_to_4_5 = db.Column(db.Float) + Marshi_Muddy_Slushy_0_to_1_5 = db.Column(db.Float, default=0) + Marshi_Muddy_Slushy_1_5_to_3_0 = db.Column(db.Float, default=0) + Marshi_Muddy_Slushy_3_0_to_4_5 = db.Column(db.Float, default=0) - Soft_Murum_0_to_1_5 = db.Column(db.Float) - Soft_Murum_1_5_to_3_0 = db.Column(db.Float) - Soft_Murum_3_0_to_4_5 = db.Column(db.Float) + Soft_Murum_0_to_1_5 = db.Column(db.Float, default=0) + Soft_Murum_1_5_to_3_0 = db.Column(db.Float, default=0) + Soft_Murum_3_0_to_4_5 = db.Column(db.Float, default=0) - Hard_Murum_0_to_1_5 = db.Column(db.Float) - Hard_Murum_1_5_to_3_0 = db.Column(db.Float) - Hard_Murum_3_0_to_4_5 = db.Column(db.Float) + Hard_Murum_0_to_1_5 = db.Column(db.Float, default=0) + Hard_Murum_1_5_to_3_0 = db.Column(db.Float, default=0) + Hard_Murum_3_0_to_4_5 = db.Column(db.Float, default=0) - Soft_Rock_0_to_1_5 = db.Column(db.Float) - Soft_Rock_1_5_to_3_0 = db.Column(db.Float) - Soft_Murum_3_0_to_4_5 = db.Column(db.Float) + Soft_Rock_0_to_1_5 = db.Column(db.Float, default=0) + Soft_Rock_1_5_to_3_0 = db.Column(db.Float, default=0) + Soft_Murum_3_0_to_4_5 = db.Column(db.Float, default=0) - Hard_Rock_0_to_1_5 = db.Column(db.Float) - Hard_Rock_1_5_to_3_0 = db.Column(db.Float) - Hard_Rock_3_0_to_4_5 = db.Column(db.Float) - Hard_Rock_4_5_to_6_0 = db.Column(db.Float) - Hard_Rock_6_0_to_7_5 = db.Column(db.Float) + Hard_Rock_0_to_1_5 = db.Column(db.Float, default=0) + Hard_Rock_1_5_to_3_0 = db.Column(db.Float, default=0) + Hard_Rock_3_0_to_4_5 = db.Column(db.Float, default=0) + Hard_Rock_4_5_to_6_0 = db.Column(db.Float, default=0) + Hard_Rock_6_0_to_7_5 = db.Column(db.Float, default=0) # Totals - Marshi_Muddy_Slushy_0_to_1_5_total = db.Column(db.Float) - Marshi_Muddy_Slushy_1_5_to_3_0_total = db.Column(db.Float) - Marshi_Muddy_Slushy_3_0_to_4_5_total = db.Column(db.Float) + Marshi_Muddy_Slushy_0_to_1_5_total = db.Column(db.Float, default=0) + Marshi_Muddy_Slushy_1_5_to_3_0_total = db.Column(db.Float, default=0) + Marshi_Muddy_Slushy_3_0_to_4_5_total = db.Column(db.Float, default=0) - Soft_Murum_0_to_1_5_total = db.Column(db.Float) - Soft_Murum_1_5_to_3_0_total = db.Column(db.Float) - Soft_Murum_3_0_to_4_5_total = db.Column(db.Float) + Soft_Murum_0_to_1_5_total = db.Column(db.Float, default=0) + Soft_Murum_1_5_to_3_0_total = db.Column(db.Float, default=0) + Soft_Murum_3_0_to_4_5_total = db.Column(db.Float, default=0) - Hard_Murum_0_to_1_5_total = db.Column(db.Float) - Hard_Murum_1_5_to_3_0_total = db.Column(db.Float) - Hard_Murum_3_0_to_4_5_total = db.Column(db.Float) + Hard_Murum_0_to_1_5_total = db.Column(db.Float, default=0) + Hard_Murum_1_5_to_3_0_total = db.Column(db.Float, default=0) + Hard_Murum_3_0_to_4_5_total = db.Column(db.Float, default=0) - Soft_Rock_0_to_1_5_total = db.Column(db.Float) - Soft_Rock_1_5_to_3_0_total = db.Column(db.Float) - Soft_Rock_3_0_to_4_5_total = db.Column(db.Float) + Soft_Rock_0_to_1_5_total = db.Column(db.Float, default=0) + Soft_Rock_1_5_to_3_0_total = db.Column(db.Float, default=0) + Soft_Rock_3_0_to_4_5_total = db.Column(db.Float, default=0) - Hard_Rock_0_to_1_5_total = db.Column(db.Float) - Hard_Rock_1_5_to_3_0_total = db.Column(db.Float) - Hard_Rock_3_0_to_4_5_total = db.Column(db.Float) - Hard_Rock_4_5_to_6_0_total = db.Column(db.Float) - Hard_Rock_6_0_to_7_5_total = db.Column(db.Float) + Hard_Rock_0_to_1_5_total = db.Column(db.Float, default=0) + Hard_Rock_1_5_to_3_0_total = db.Column(db.Float, default=0) + Hard_Rock_3_0_to_4_5_total = db.Column(db.Float, default=0) + Hard_Rock_4_5_to_6_0_total = db.Column(db.Float, default=0) + Hard_Rock_6_0_to_7_5_total = db.Column(db.Float, default=0) Remarks = db.Column(db.String(500)) - Total = db.Column(db.Float) + Total = db.Column(db.Float, default=0) created_at = db.Column(db.DateTime, default=datetime.today) diff --git a/app/models/tr_ex_client_model.py b/app/models/tr_ex_client_model.py index c004765..6c18c36 100644 --- a/app/models/tr_ex_client_model.py +++ b/app/models/tr_ex_client_model.py @@ -11,69 +11,69 @@ class TrenchExcavationClient(db.Model): RA_Bill_No=db.Column(db.String(500)) Location = db.Column(db.String(500)) MH_NO = db.Column(db.String(100)) - CC_length = db.Column(db.Float) - Actual_Trench_Length = db.Column(db.Float) - Ground_Level = db.Column(db.Float) - Invert_Level = db.Column(db.Float) - Excavated_level = db.Column(db.Float) - Cutting_Depth = db.Column(db.Float) - Avg_Depth = db.Column(db.Float) - Pipe_Dia_mm = db.Column(db.Float) + CC_length = db.Column(db.Float, default=0) + Actual_Trench_Length = db.Column(db.Float, default=0) + Ground_Level = db.Column(db.Float, default=0) + Invert_Level = db.Column(db.Float, default=0) + Excavated_level = db.Column(db.Float, default=0) + Cutting_Depth = db.Column(db.Float, default=0) + Avg_Depth = db.Column(db.Float, default=0) + Pipe_Dia_mm = db.Column(db.Float, default=0) # width - Width_0_to_1_5_m = db.Column(db.Float) - Width_1_5_to_3_0_m = db.Column(db.Float) - Width_3_0_to_4_5_m = db.Column(db.Float) - Width_4_5_to_6_0_m = db.Column(db.Float) - Width_6_0_to_7_5_m = db.Column(db.Float) + Width_0_to_1_5_m = db.Column(db.Float, default=0) + Width_1_5_to_3_0_m = db.Column(db.Float, default=0) + Width_3_0_to_4_5_m = db.Column(db.Float, default=0) + Width_4_5_to_6_0_m = db.Column(db.Float, default=0) + Width_6_0_to_7_5_m = db.Column(db.Float, default=0) # Excavation categories - Marshi_Muddy_Slushy_0_to_1_5 = db.Column(db.Float) - Marshi_Muddy_Slushy_1_5_to_3_0 = db.Column(db.Float) - Marshi_Muddy_Slushy_3_0_to_4_5 = db.Column(db.Float) + Marshi_Muddy_Slushy_0_to_1_5 = db.Column(db.Float, default=0) + Marshi_Muddy_Slushy_1_5_to_3_0 = db.Column(db.Float, default=0) + Marshi_Muddy_Slushy_3_0_to_4_5 = db.Column(db.Float, default=0) - Soft_Murum_0_to_1_5 = db.Column(db.Float) - Soft_Murum_1_5_to_3_0 = db.Column(db.Float) - Soft_Murum_3_0_to_4_5 = db.Column(db.Float) + Soft_Murum_0_to_1_5 = db.Column(db.Float, default=0) + Soft_Murum_1_5_to_3_0 = db.Column(db.Float, default=0) + Soft_Murum_3_0_to_4_5 = db.Column(db.Float, default=0) - Hard_Murum_0_to_1_5 = db.Column(db.Float) - Hard_Murum_1_5_to_3_0 = db.Column(db.Float) - Hard_Murum_3_0_to_4_5 = db.Column(db.Float) + Hard_Murum_0_to_1_5 = db.Column(db.Float, default=0) + Hard_Murum_1_5_to_3_0 = db.Column(db.Float, default=0) + Hard_Murum_3_0_to_4_5 = db.Column(db.Float, default=0) - Soft_Rock_0_to_1_5 = db.Column(db.Float) - Soft_Rock_1_5_to_3_0 = db.Column(db.Float) - Soft_Rock_3_0_to_4_5 = db.Column(db.Float) + Soft_Rock_0_to_1_5 = db.Column(db.Float, default=0) + Soft_Rock_1_5_to_3_0 = db.Column(db.Float, default=0) + Soft_Rock_3_0_to_4_5 = db.Column(db.Float, default=0) - Hard_Rock_0_to_1_5 = db.Column(db.Float) - Hard_Rock_1_5_to_3_0 = db.Column(db.Float) - Hard_Rock_3_0_to_4_5 = db.Column(db.Float) - Hard_Rock_4_5_to_6_0 = db.Column(db.Float) - Hard_Rock_6_0_to_7_5 = db.Column(db.Float) + Hard_Rock_0_to_1_5 = db.Column(db.Float, default=0) + Hard_Rock_1_5_to_3_0 = db.Column(db.Float, default=0) + Hard_Rock_3_0_to_4_5 = db.Column(db.Float, default=0) + Hard_Rock_4_5_to_6_0 = db.Column(db.Float, default=0) + Hard_Rock_6_0_to_7_5 = db.Column(db.Float, default=0) # Totals - Marshi_Muddy_Slushy_0_to_1_5_total = db.Column(db.Float) - Marshi_Muddy_Slushy_1_5_to_3_0_total = db.Column(db.Float) - Marshi_Muddy_Slushy_3_0_to_4_5_total = db.Column(db.Float) + Marshi_Muddy_Slushy_0_to_1_5_total = db.Column(db.Float, default=0) + Marshi_Muddy_Slushy_1_5_to_3_0_total = db.Column(db.Float, default=0) + Marshi_Muddy_Slushy_3_0_to_4_5_total = db.Column(db.Float, default=0) - Soft_Murum_0_to_1_5_total = db.Column(db.Float) - Soft_Murum_1_5_to_3_0_total = db.Column(db.Float) - Soft_Murum_3_0_to_4_5_total = db.Column(db.Float) + Soft_Murum_0_to_1_5_total = db.Column(db.Float, default=0) + Soft_Murum_1_5_to_3_0_total = db.Column(db.Float, default=0) + Soft_Murum_3_0_to_4_5_total = db.Column(db.Float, default=0) - Hard_Murum_0_to_1_5_total = db.Column(db.Float) - Hard_Murum_1_5_to_3_0_total = db.Column(db.Float) - Hard_Murum_3_0_to_4_5_total = db.Column(db.Float) + Hard_Murum_0_to_1_5_total = db.Column(db.Float, default=0) + Hard_Murum_1_5_to_3_0_total = db.Column(db.Float, default=0) + Hard_Murum_3_0_to_4_5_total = db.Column(db.Float, default=0) - Soft_Rock_0_to_1_5_total = db.Column(db.Float) - Soft_Rock_1_5_to_3_0_total = db.Column(db.Float) - Soft_Rock_3_0_to_4_5_total = db.Column(db.Float) + Soft_Rock_0_to_1_5_total = db.Column(db.Float, default=0) + Soft_Rock_1_5_to_3_0_total = db.Column(db.Float, default=0) + Soft_Rock_3_0_to_4_5_total = db.Column(db.Float, default=0) - Hard_Rock_0_to_1_5_total = db.Column(db.Float) - Hard_Rock_1_5_to_3_0_total = db.Column(db.Float) - Hard_Rock_3_0_to_4_5_total = db.Column(db.Float) - Hard_Rock_4_5_to_6_0_total = db.Column(db.Float) - Hard_Rock_6_0_to_7_5_total = db.Column(db.Float) + Hard_Rock_0_to_1_5_total = db.Column(db.Float, default=0) + Hard_Rock_1_5_to_3_0_total = db.Column(db.Float, default=0) + Hard_Rock_3_0_to_4_5_total = db.Column(db.Float, default=0) + Hard_Rock_4_5_to_6_0_total = db.Column(db.Float, default=0) + Hard_Rock_6_0_to_7_5_total = db.Column(db.Float, default=0) - Total = db.Column(db.Float) + Total = db.Column(db.Float, default=0) Remarks = db.Column(db.String(500)) created_at = db.Column(db.DateTime, default=datetime.today) diff --git a/app/models/trench_excavation_model.py b/app/models/trench_excavation_model.py index 2323a55..c7a19c0 100644 --- a/app/models/trench_excavation_model.py +++ b/app/models/trench_excavation_model.py @@ -14,59 +14,59 @@ class TrenchExcavation(db.Model): # Basic Fields Location = db.Column(db.String(500)) MH_NO = db.Column(db.String(100)) - CC_length = db.Column(db.Float) - Invert_Level = db.Column(db.Float) - MH_Top_Level = db.Column(db.Float) - Ground_Level = db.Column(db.Float) - ID_of_MH_m = db.Column(db.Float) - Actual_Trench_Length = db.Column(db.Float) - Pipe_Dia_mm = db.Column(db.Float) + CC_length = db.Column(db.Float, default=0) + Invert_Level = db.Column(db.Float, default=0) + MH_Top_Level = db.Column(db.Float, default=0) + Ground_Level = db.Column(db.Float, default=0) + ID_of_MH_m = db.Column(db.Float, default=0) + Actual_Trench_Length = db.Column(db.Float, default=0) + Pipe_Dia_mm = db.Column(db.Float, default=0) # width - Width_0_to_2_5 = db.Column(db.Float) - Width_2_5_to_3_0 = db.Column(db.Float) - Width_3_0_to_4_5 = db.Column(db.Float) - Width_4_5_to_6_0 = db.Column(db.Float) + Width_0_to_2_5 = db.Column(db.Float, default=0) + Width_2_5_to_3_0 = db.Column(db.Float, default=0) + Width_3_0_to_4_5 = db.Column(db.Float, default=0) + Width_4_5_to_6_0 = db.Column(db.Float, default=0) - Upto_IL_Depth = db.Column(db.Float) - Cutting_Depth = db.Column(db.Float) - Avg_Depth = db.Column(db.Float) + Upto_IL_Depth = db.Column(db.Float, default=0) + Cutting_Depth = db.Column(db.Float, default=0) + Avg_Depth = db.Column(db.Float, default=0) # Excavation categories - Soft_Murum_0_to_1_5 = db.Column(db.Float) - Soft_Murum_1_5_to_3_0 = db.Column(db.Float) - Soft_Murum_3_0_to_4_5 = db.Column(db.Float) + Soft_Murum_0_to_1_5 = db.Column(db.Float, default=0) + Soft_Murum_1_5_to_3_0 = db.Column(db.Float, default=0) + Soft_Murum_3_0_to_4_5 = db.Column(db.Float, default=0) - Hard_Murum_0_to_1_5 = db.Column(db.Float) - Hard_Murum_1_5_to_3_0 = db.Column(db.Float) + Hard_Murum_0_to_1_5 = db.Column(db.Float, default=0) + Hard_Murum_1_5_to_3_0 = db.Column(db.Float, default=0) - Soft_Rock_0_to_1_5 = db.Column(db.Float) - Soft_Rock_1_5_to_3_0 = db.Column(db.Float) + Soft_Rock_0_to_1_5 = db.Column(db.Float, default=0) + Soft_Rock_1_5_to_3_0 = db.Column(db.Float, default=0) - Hard_Rock_0_to_1_5 = db.Column(db.Float) - Hard_Rock_1_5_to_3_0 = db.Column(db.Float) - Hard_Rock_3_0_to_4_5 = db.Column(db.Float) - Hard_Rock_4_5_to_6_0 = db.Column(db.Float) - Hard_Rock_6_0_to_7_5 = db.Column(db.Float) + Hard_Rock_0_to_1_5 = db.Column(db.Float, default=0) + Hard_Rock_1_5_to_3_0 = db.Column(db.Float, default=0) + Hard_Rock_3_0_to_4_5 = db.Column(db.Float, default=0) + Hard_Rock_4_5_to_6_0 = db.Column(db.Float, default=0) + Hard_Rock_6_0_to_7_5 = db.Column(db.Float, default=0) # Totals - Soft_Murum_0_to_1_5_total = db.Column(db.Float) - Soft_Murum_1_5_to_3_0_total = db.Column(db.Float) - Soft_Murum_3_0_to_4_5_total = db.Column(db.Float) + Soft_Murum_0_to_1_5_total = db.Column(db.Float, default=0) + Soft_Murum_1_5_to_3_0_total = db.Column(db.Float, default=0) + Soft_Murum_3_0_to_4_5_total = db.Column(db.Float, default=0) - Hard_Murum_0_to_1_5_total = db.Column(db.Float) - Hard_Murum_1_5_and_above_total = db.Column(db.Float) + Hard_Murum_0_to_1_5_total = db.Column(db.Float, default=0) + Hard_Murum_1_5_and_above_total = db.Column(db.Float, default=0) - Soft_Rock_0_to_1_5_total = db.Column(db.Float) - Soft_Rock_1_5_and_above_total = db.Column(db.Float) + Soft_Rock_0_to_1_5_total = db.Column(db.Float, default=0) + Soft_Rock_1_5_and_above_total = db.Column(db.Float, default=0) - Hard_Rock_0_to_1_5_total = db.Column(db.Float) - Hard_Rock_1_5_to_3_0_total = db.Column(db.Float) - Hard_Rock_3_0_to_4_5_total = db.Column(db.Float) - Hard_Rock_4_5_to_6_0_total = db.Column(db.Float) - Hard_Rock_6_0_to_7_5_total = db.Column(db.Float) + Hard_Rock_0_to_1_5_total = db.Column(db.Float, default=0) + Hard_Rock_1_5_to_3_0_total = db.Column(db.Float, default=0) + Hard_Rock_3_0_to_4_5_total = db.Column(db.Float, default=0) + Hard_Rock_4_5_to_6_0_total = db.Column(db.Float, default=0) + Hard_Rock_6_0_to_7_5_total = db.Column(db.Float, default=0) - Total = db.Column(db.Float) + Total = db.Column(db.Float, default=0) Remarks = db.Column(db.String(500)) RA_Bill_No=db.Column(db.String(500)) diff --git a/app/models/user_model.py b/app/models/user_model.py index 4cf7c26..838cf45 100644 --- a/app/models/user_model.py +++ b/app/models/user_model.py @@ -5,7 +5,7 @@ class User(db.Model): __tablename__ = "users" id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=False) + name = db.Column(db.String(200), nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) password_hash = db.Column(db.String(255), nullable=False) diff --git a/app/routes/dashboard.py b/app/routes/dashboard.py index 2190316..219a41d 100644 --- a/app/routes/dashboard.py +++ b/app/routes/dashboard.py @@ -13,6 +13,8 @@ from app.models.trench_excavation_model import TrenchExcavation from app.models.manhole_excavation_model import ManholeExcavation from app.models.laying_model import Laying +from app.models.subcontractor_model import Subcontractor + dashboard_bp = Blueprint("dashboard", __name__, url_prefix="/dashboard") @@ -23,97 +25,6 @@ def dashboard(): return render_template("dashboard.html", title="Business Intelligence Dashboard") - - -# import matplotlib -# matplotlib.use("Agg") - -# from flask import Blueprint, render_template, session, redirect, url_for -# import matplotlib.pyplot as plt -# import io -# import base64 -# from app.utils.plot_utils import plot_to_base64 -# from app.services.dashboard_service import DashboardService - -# dashboard_bp = Blueprint("dashboard", __name__, url_prefix="/dashboard") - -# # dashboard_bp = Blueprint("dashboard", __name__) - -# # charts -# # def plot_to_base64(): -# # img = io.BytesIO() -# # plt.savefig(img, format="png", bbox_inches="tight") -# # plt.close() -# # img.seek(0) -# # return base64.b64encode(img.getvalue()).decode() - -# # bar chart -# def bar_chart(): -# categories = ["Trench", "Manhole", "Pipe Laying", "Restoration"] -# values = [120, 80, 150, 60] - -# plt.figure() -# plt.bar(categories, values) -# plt.title("Work Category Report") -# plt.xlabel("test Category") -# plt.ylabel("test Quantity") - - -# return plot_to_base64(plt) - -# # Pie chart -# def pie_chart(): -# labels = ["Completed", "In Progress", "Pending"] -# sizes = [55, 20, 25] - -# plt.figure() -# plt.pie(sizes, labels=labels, autopct="%1.1f%%", startangle=140) -# plt.title("Project Status") - -# return plot_to_base64(plt) - -# # Histogram chart -# def histogram_chart(): -# daily_work = [5, 10, 15, 20, 20, 25, 30, 35, 40, 45, 50] - -# plt.figure() -# plt.hist(daily_work, bins=5) -# plt.title("Daily Work Distribution") -# plt.xlabel("Work Units") -# plt.ylabel("Frequency") - -# return plot_to_base64(plt) - -# # Dashboaed page -# @dashboard_bp.route("/") -# def dashboard(): -# if not session.get("user_id"): -# return redirect(url_for("auth.login")) - -# return render_template( -# "dashboard.html", -# title="Dashboard", -# bar_chart=bar_chart(), -# pie_chart=pie_chart(), -# histogram=histogram_chart() -# ) - -# # subcontractor dashboard -# @dashboard_bp.route("/subcontractor_dashboard", methods=["GET", "POST"]) -# def subcontractor_dashboard(): -# if not session.get("user_id"): -# return redirect(url_for("auth.login")) - -# tr_dash = DashboardService().bar_chart_of_tr_ex - - -# return render_template( -# "subcontractor_dashboard.html", -# title="Dashboard", -# bar_chart=tr_dash -# ) - - @dashboard_bp.route("/api/live-stats") def live_stats(): try: @@ -152,16 +63,49 @@ def live_stats(): # subcontractor dashboard -@dashboard_bp.route("/subcontractor_dashboard", methods=["GET", "POST"]) +@dashboard_bp.route("/subcontractor_dashboard") def subcontractor_dashboard(): + if not session.get("user_id"): return redirect(url_for("auth.login")) - tr_dash = DashboardService().bar_chart_of_tr_ex - - + subcontractors = Subcontractor.query.all() + return render_template( "subcontractor_dashboard.html", - title="Dashboard", - bar_chart=tr_dash - ) \ No newline at end of file + subcontractors=subcontractors + ) + + +# API FOR CHART DATA +@dashboard_bp.route("/api/subcontractor-chart") +def subcontractor_chart(): + + subcontractor_id = request.args.get("subcontractor") + category = request.args.get("category") + ra_bill = request.args.get("ra_bill") + + query = db.session.query( + TrenchExcavation.excavation_category, + func.sum(TrenchExcavation.Total) + ) + + if subcontractor_id: + query = query.filter(TrenchExcavation.subcontractor_id == subcontractor_id) + + if ra_bill: + query = query.filter(TrenchExcavation.RA_Bill_No == ra_bill) + + results = query.group_by(TrenchExcavation.excavation_category).all() + + labels = [] + values = [] + + for r in results: + labels.append(r[0]) + values.append(float(r[1] or 0)) + + return jsonify({ + "labels": labels, + "values": values + }) \ No newline at end of file diff --git a/app/routes/subcontractor_routes.py b/app/routes/subcontractor_routes.py index 9de484e..cdf7e2b 100644 --- a/app/routes/subcontractor_routes.py +++ b/app/routes/subcontractor_routes.py @@ -40,7 +40,8 @@ def save_subcontractor(): address=request.form.get("address"), mobile_no=request.form.get("mobile_no"), email_id=request.form.get("email_id"), - gst_no=request.form.get("gst_no") + gst_no=request.form.get("gst_no"), + pan_no=request.form.get("pan_no") ) db.session.add(subcontractor) @@ -120,6 +121,8 @@ def update_subcontractor(id): subcontractor.mobile_no = request.form.get("mobile_no") subcontractor.email_id = request.form.get("email_id") subcontractor.gst_no = request.form.get("gst_no") + subcontractor.gst_no = request.form.get("pan_no") + subcontractor.status = request.form.get("status") db.session.commit() diff --git a/app/templates/subcontractor/add.html b/app/templates/subcontractor/add.html index 68e5c36..747ae3b 100644 --- a/app/templates/subcontractor/add.html +++ b/app/templates/subcontractor/add.html @@ -36,6 +36,11 @@ +
| ID | -Name | -Contact | +Sr. No | +Subcontractor Name | +GST No | Mobile | Status | @@ -33,7 +33,7 @@|
|---|---|---|---|---|---|---|---|---|
| {{ s.id }} | {{ s.subcontractor_name }} | -{{ s.contact_person }} | +{{ s.gst_no }} | {{ s.mobile_no }} | {{ s.email_id }} |
@@ -65,9 +65,9 @@
{% for s in subcontractors %}
- {{ s.subcontractor_name }}+{{ s.subcontractor_name }}-Contact Person Name: {{ s.contact_person }} +GST No: {{ s.gst_no }} Mobile: {{ s.mobile_no }} Email: {{ s.email_id }} diff --git a/app/templates/subcontractor_dashboard.html b/app/templates/subcontractor_dashboard.html index e9e1d24..8a05ffc 100644 --- a/app/templates/subcontractor_dashboard.html +++ b/app/templates/subcontractor_dashboard.html @@ -1,55 +1,47 @@ {% extends "base.html" %} - {% block content %} -
+
- Subcontractor Dashboard+Subcontractor Dashboard-
-
-
-
+
-
- Trenching Units-0-
+
+
+
-
-
-
+
+
-
- Manhole Units-0-
+
-
-
-
-
+
+
-
- Laying Units-0-
+
+
-
-
-
-
- Live Category Bar Chart
-
-
-
-
-
-
+ Location Distribution Pie Chart
-
-
-
-
+
@@ -59,64 +51,55 @@
{% endblock %}
\ No newline at end of file
diff --git a/instance/comparisondb.db b/instance/comparisondb.db
deleted file mode 100644
index 3f771ff..0000000
Binary files a/instance/comparisondb.db and /dev/null differ
+
+
+
|