From fe89d5e2ebae85a9392ae89eb69d338a7fe4c147 Mon Sep 17 00:00:00 2001 From: pjpatil12 Date: Thu, 18 Dec 2025 10:41:54 +0530 Subject: [PATCH] modification of datatime() new added entry created --- app/__pycache__/__init__.cpython-313.pyc | Bin 1289 -> 1289 bytes ...ole_domestic_chamber_model.cpython-313.pyc | Bin 3502 -> 3501 bytes .../manhole_excavation_model.cpython-313.pyc | Bin 4592 -> 4591 bytes .../mh_dc_client_model.cpython-313.pyc | Bin 2904 -> 2903 bytes .../mh_ex_client_model.cpython-313.pyc | Bin 5956 -> 5955 bytes .../subcontractor_model.cpython-313.pyc | Bin 1867 -> 1866 bytes .../tr_ex_client_model.cpython-313.pyc | Bin 6269 -> 6268 bytes .../trench_excavation_model.cpython-313.pyc | Bin 5392 -> 5391 bytes app/models/manhole_domestic_chamber_model.py | 2 +- app/models/manhole_excavation_model.py | 2 +- app/models/mh_dc_client_model.py | 2 +- app/models/mh_ex_client_model.py | 2 +- app/models/subcontractor_model.py | 2 +- app/models/tr_ex_client_model.py | 2 +- app/models/trench_excavation_model.py | 2 +- .../__pycache__/file_import.cpython-313.pyc | Bin 2366 -> 2305 bytes ...generate_comparison_report.cpython-313.pyc | Bin 13971 -> 13971 bytes app/routes/file_import.py | 7 +- app/routes/generate_comparison_report.py | 9 +-- .../__pycache__/file_service.cpython-313.pyc | Bin 15473 -> 15158 bytes app/services/file_service.py | 69 +++++++++++------- app/templates/file_import.html | 6 +- 22 files changed, 62 insertions(+), 43 deletions(-) diff --git a/app/__pycache__/__init__.cpython-313.pyc b/app/__pycache__/__init__.cpython-313.pyc index 8433b70e26cbe17c878b3d0a34b6709aefb9f021..db0426a6c336de4624659493b18611115f760cb6 100644 GIT binary patch delta 20 acmeC=>g3}7%*)Hg00dzRoi=j+V*vm%g3}7%*)Hg00hfCY&UZMV*vm%<^?hU diff --git a/app/models/__pycache__/manhole_domestic_chamber_model.cpython-313.pyc b/app/models/__pycache__/manhole_domestic_chamber_model.cpython-313.pyc index 9229432915cd52fe11e5fbed86644b5dcd7e6c0c..de81f1840eccd55f1cacce5b9a2c65eefb934ba5 100644 GIT binary patch delta 45 zcmZ1{y;hp{GcPX}0}uo+cgmc#k@o}_8*52^N@C^aJ6yp`YVRlPd+w07o

@d_ B5EcLc diff --git a/app/models/__pycache__/mh_ex_client_model.cpython-313.pyc b/app/models/__pycache__/mh_ex_client_model.cpython-313.pyc index 1ea928a746a9ede7e3cff5711fd20ba08445cdf7..f3f6da39a18e867bbc64c9f59a0f5baef8642803 100644 GIT binary patch delta 45 zcmX@2cUX`2GcPX}0}$jbcgj4xk+(yLjkP2{C9!hz93d?hHolE~7X|GnpAoA707GOB Ae*gdg delta 46 zcmX@CcSMi(GcPX}0}%XKXqS0pBX5TgJ6mZVRlUXDx09dpR AQUCw| diff --git a/app/models/__pycache__/trench_excavation_model.cpython-313.pyc b/app/models/__pycache__/trench_excavation_model.cpython-313.pyc index 35e6b01f6b785d1aeaf91129aa0f6b59e16ae04f..ffaab80461ccaa8daa2ccfc0730d0c0c44d986fe 100644 GIT binary patch delta 45 zcmbQB)vv|-nU|M~0SMfdJ7tz_" diff --git a/app/models/manhole_excavation_model.py b/app/models/manhole_excavation_model.py index 7bd6c1d..f096b15 100644 --- a/app/models/manhole_excavation_model.py +++ b/app/models/manhole_excavation_model.py @@ -57,7 +57,7 @@ class ManholeExcavation(db.Model): Remarks = db.Column(db.String(500)) Total = db.Column(db.Float) - created_at = db.Column(db.DateTime, default=datetime.utcnow) + created_at = db.Column(db.DateTime, default=datetime.today) def __repr__(self): return f"" diff --git a/app/models/mh_dc_client_model.py b/app/models/mh_dc_client_model.py index 7ad73d1..63fcc4d 100644 --- a/app/models/mh_dc_client_model.py +++ b/app/models/mh_dc_client_model.py @@ -35,7 +35,7 @@ class ManholeDomesticChamberClient(db.Model): Domestic_Chambers = db.Column(db.Float) - created_at = db.Column(db.DateTime, default=datetime.utcnow) + created_at = db.Column(db.DateTime, default=datetime.today) def __repr__(self): return f"" diff --git a/app/models/mh_ex_client_model.py b/app/models/mh_ex_client_model.py index 84d3fd6..a67f5c0 100644 --- a/app/models/mh_ex_client_model.py +++ b/app/models/mh_ex_client_model.py @@ -73,7 +73,7 @@ class ManholeExcavationClient(db.Model): Remarks = db.Column(db.String(500)) Total = db.Column(db.Float) - created_at = db.Column(db.DateTime, default=datetime.utcnow) + created_at = db.Column(db.DateTime, default=datetime.today) def __repr__(self): return f"" diff --git a/app/models/subcontractor_model.py b/app/models/subcontractor_model.py index 598e274..22aed97 100644 --- a/app/models/subcontractor_model.py +++ b/app/models/subcontractor_model.py @@ -14,7 +14,7 @@ class Subcontractor(db.Model): email_id = db.Column(db.String(150)) contact_person = db.Column(db.String(150)) status = db.Column(db.String(20), default="Active") - created_at = db.Column(db.DateTime, default=datetime.utcnow) + created_at = db.Column(db.DateTime, default=datetime.today) def __repr__(self): return f"" diff --git a/app/models/tr_ex_client_model.py b/app/models/tr_ex_client_model.py index 6438a0b..ae79d7f 100644 --- a/app/models/tr_ex_client_model.py +++ b/app/models/tr_ex_client_model.py @@ -78,7 +78,7 @@ class TrenchExcavationClient(db.Model): Remarks = db.Column(db.String(500)) Total = db.Column(db.Float) - created_at = db.Column(db.DateTime, default=datetime.utcnow) + created_at = db.Column(db.DateTime, default=datetime.today) def __repr__(self): return f"" diff --git a/app/models/trench_excavation_model.py b/app/models/trench_excavation_model.py index c8de958..1c98d57 100644 --- a/app/models/trench_excavation_model.py +++ b/app/models/trench_excavation_model.py @@ -68,7 +68,7 @@ class TrenchExcavation(db.Model): Remarks = db.Column(db.String(500)) Total = db.Column(db.Float) - created_at = db.Column(db.DateTime, default=datetime.utcnow) + created_at = db.Column(db.DateTime, default=datetime.today) def __repr__(self): return f"" diff --git a/app/routes/__pycache__/file_import.cpython-313.pyc b/app/routes/__pycache__/file_import.cpython-313.pyc index 433feb3403390f98696ed9047dc6df2a853055e2..d7c6baedc866d54e7cf39f6567139f66847b04cb 100644 GIT binary patch delta 443 zcmdld)F{OFnU|M~0SNBSbjmDX+sK#0$QU)bnlX(rfATukdQm};90-^~D26=dQ0B=E zY+`<*9tN#SJ&8To(7-{GH`LqtGqRw9K5;_>#&3h*3pC zlbP5JZG?f^i^PD0COewVMJgaEIS>J|x=0>K6te>f1qdionC#Ck!Kw-rk)E8xzJyU} zvLHu?7RXISAiEy#4N;)6d7?=dEGm2hh s6rGT{LUn`K3i%6+q8At~KQi$#<}!X}W?-`V0A_wrnat0r%>ptL00aV7kN^Mx delta 279 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 diff --git a/app/services/file_service.py b/app/services/file_service.py index 628e205..c7192fd 100644 --- a/app/services/file_service.py +++ b/app/services/file_service.py @@ -20,12 +20,13 @@ class FileService: def allowed_file(self, filename): return "." in filename and filename.rsplit(".", 1)[1].lower() in Config.ALLOWED_EXTENSIONS - def handle_file_upload(self, file, subcontractor_id, file_type): + # def handle_file_upload(self, file, subcontractor_id, file_type): + def handle_file_upload(self, file, subcontractor_id): if not subcontractor_id: return False, "Please select subcontractor." - if not file_type: - return False, "Please select file type." + # if not file_type: + # return False, "Please select file type." if not file or file.filename == "": return False, "No file selected." if not self.allowed_file(file.filename): @@ -40,36 +41,52 @@ class FileService: filepath = os.path.join(folder, filename) file.save(filepath) + print("name::::",filename) + try: - df = pd.read_csv(filepath) if filename.endswith(".csv") else pd.read_excel(filepath) + + # df = pd.read_csv(filepath) if filename.endswith(".csv") else pd.read_excel(filepath) + df = pd.read_excel(filepath, sheet_name ="Tr.Ex.", header=0) + df1 = pd.read_excel(filepath, sheet_name="MH Ex.", header=0) + df2 = pd.read_excel(filepath, sheet_name="MH & DC", header=0) print("\n=== Uploaded File Preview ===") - print(df.head()) + print(" file name h:",df) print("=============================\n") + print(" file name h1:",df1) + # print(df.head()) + print("=============================\n") + print(" file name h1:",df2) + + self.process_trench_excavation(df,subcontractor_id) + self.process_manhole_excavation(df1,subcontractor_id) + self.process_manhole_domestic_chamber(df2, subcontractor_id) - # Trench Excavation save (subcontractor) - if file_type == "trench_excavation": - return self.process_trench_excavation(df, subcontractor_id) - - # Manhole Excavation save (subcontractor) - if file_type == "manhole_excavation": - return self.process_manhole_excavation(df, subcontractor_id) - - # Manhole and Domestic Chamber Construction save (subcontractor) - if file_type == "manhole_domestic_chamber": - return self.process_manhole_domestic_chamber(df, subcontractor_id) - - # Tr Ex save (client) - if file_type =="tr_ex_client": - return self.client_trench_excavation(df, subcontractor_id) + # df = pd.read_csv(filepath) if filename.endswith(".csv") else pd.read_excel(filepath) - # Mh Ex save (client) - if file_type =="mh_ex_client": - return self.client_manhole_excavation(df, subcontractor_id) + # # Trench Excavation save (subcontractor) + # if file_type == "trench_excavation": + # return self.process_trench_excavation(df, subcontractor_id) + + # # Manhole Excavation save (subcontractor) + # if file_type == "manhole_excavation": + # return self.process_manhole_excavation(df, subcontractor_id) + + # # Manhole and Domestic Chamber Construction save (subcontractor) + # if file_type == "manhole_domestic_chamber": + # return self.process_manhole_domestic_chamber(df, subcontractor_id) + + # # Tr Ex save (client) + # if file_type =="tr_ex_client": + # return self.client_trench_excavation(df, subcontractor_id) - # Mh and Dc save (client) - if file_type == "mh_dc_client": - return self.client_manhole_domestic_chamber(df, subcontractor_id) + # # Mh Ex save (client) + # if file_type =="mh_ex_client": + # return self.client_manhole_excavation(df, subcontractor_id) + + # # Mh and Dc save (client) + # if file_type == "mh_dc_client": + # return self.client_manhole_domestic_chamber(df, subcontractor_id) return True, "File uploaded successfully." diff --git a/app/templates/file_import.html b/app/templates/file_import.html index e6bfbda..71556d0 100644 --- a/app/templates/file_import.html +++ b/app/templates/file_import.html @@ -18,7 +18,7 @@ - + @@ -36,4 +36,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %}