Recovered lost local code
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# controllers/subcontractor_controller.py
|
||||
|
||||
from flask import Blueprint, render_template, request, redirect, url_for, jsonify
|
||||
from flask_login import login_required
|
||||
from model.Subcontractor import Subcontractor
|
||||
|
||||
from model.Log import LogHelper
|
||||
subcontractor_bp = Blueprint('subcontractor', __name__)
|
||||
|
||||
# ----------------------------------------------------------
|
||||
# Helpers (unchanged)
|
||||
# ----------------------------------------------------------
|
||||
# Simple replacements for missing HtmlHelper and ResponseHandler
|
||||
class HtmlHelper:
|
||||
@staticmethod
|
||||
def json_response(data, status=200):
|
||||
@@ -30,88 +30,71 @@ class ResponseHandler:
|
||||
return {"status": "error", "message": f"Failed to delete {entity}"}
|
||||
|
||||
|
||||
# ----------------------------------------------------------
|
||||
# LIST + ADD
|
||||
# ----------------------------------------------------------
|
||||
@subcontractor_bp.route('/subcontractor', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def subcontract():
|
||||
subcontractor = []
|
||||
|
||||
sub = Subcontractor()
|
||||
|
||||
# ---------------- GET ----------------
|
||||
if request.method == 'GET':
|
||||
subcontractor = sub.GetAllSubcontractors(request)
|
||||
subcontractor, error = Subcontractor.get_all_subcontractors()
|
||||
if error:
|
||||
return HtmlHelper.json_response(ResponseHandler.fetch_failure("Subcontractor"), 500)
|
||||
|
||||
if not sub.isSuccess:
|
||||
return HtmlHelper.json_response(
|
||||
ResponseHandler.fetch_failure("Subcontractor"), 500
|
||||
)
|
||||
|
||||
return render_template('add_subcontractor.html', subcontractor=subcontractor)
|
||||
|
||||
# ---------------- POST (ADD) ----------------
|
||||
if request.method == 'POST':
|
||||
contractor_data = {
|
||||
'Contractor_Name': request.form['Contractor_Name'],
|
||||
'Address': request.form['Address'],
|
||||
'Mobile_No': request.form['Mobile_No'],
|
||||
'PAN_No': request.form['PAN_No'],
|
||||
'Email': request.form['Email'],
|
||||
'Gender': request.form['Gender'],
|
||||
'GST_Registration_Type': request.form['GST_Registration_Type'],
|
||||
'GST_No': request.form['GST_No'],
|
||||
'Contractor_password': request.form['Contractor_password'],
|
||||
}
|
||||
error = Subcontractor.save_subcontractor(contractor_data)
|
||||
if error:
|
||||
return HtmlHelper.json_response(ResponseHandler.add_failure("Subcontractor"), 500)
|
||||
subcontractor, _ = Subcontractor.get_all_subcontractors()
|
||||
|
||||
sub.AddSubcontractor(request)
|
||||
|
||||
if not sub.isSuccess:
|
||||
return HtmlHelper.json_response(
|
||||
ResponseHandler.add_failure("Subcontractor"), 500
|
||||
)
|
||||
|
||||
# Reload list after insert
|
||||
subcontractor = sub.GetAllSubcontractors(request)
|
||||
|
||||
return render_template('add_subcontractor.html', subcontractor=subcontractor)
|
||||
return render_template('add_subcontractor.html', subcontractor=subcontractor)
|
||||
|
||||
|
||||
# ----------------------------------------------------------
|
||||
# EDIT
|
||||
# ----------------------------------------------------------
|
||||
@subcontractor_bp.route('/edit_subcontractor/<int:id>', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def edit_subcontractor(id):
|
||||
|
||||
sub = Subcontractor()
|
||||
|
||||
# Fetch data
|
||||
subcontractor = sub.GetSubcontractorByID(id)
|
||||
|
||||
subcontractor, error = Subcontractor.get_subcontractor_by_id(id)
|
||||
if error:
|
||||
return HtmlHelper.json_response(ResponseHandler.fetch_failure("Subcontractor"), 500)
|
||||
if not subcontractor:
|
||||
return HtmlHelper.json_response(
|
||||
ResponseHandler.fetch_failure("Subcontractor"), 404
|
||||
)
|
||||
return HtmlHelper.json_response(ResponseHandler.fetch_failure("Subcontractor"), 404)
|
||||
|
||||
# ---------------- POST (UPDATE) ----------------
|
||||
if request.method == 'POST':
|
||||
|
||||
sub.EditSubcontractor(request, id)
|
||||
|
||||
if not sub.isSuccess:
|
||||
return HtmlHelper.json_response(
|
||||
ResponseHandler.update_failure("Subcontractor"), 500
|
||||
)
|
||||
|
||||
updated_data = {
|
||||
'Contractor_Name': request.form['Contractor_Name'],
|
||||
'Address': request.form['Address'],
|
||||
'Mobile_No': request.form['Mobile_No'],
|
||||
'PAN_No': request.form['PAN_No'],
|
||||
'Email': request.form['Email'],
|
||||
'Gender': request.form['Gender'],
|
||||
'GST_Registration_Type': request.form['GST_Registration_Type'],
|
||||
'GST_No': request.form['GST_No'],
|
||||
'Contractor_password': request.form['Contractor_password'],
|
||||
}
|
||||
error = Subcontractor.update_subcontractor(id, updated_data)
|
||||
if error:
|
||||
return HtmlHelper.json_response(ResponseHandler.update_failure("Subcontractor"), 500)
|
||||
return redirect(url_for('subcontractor.subcontract'))
|
||||
|
||||
return render_template('edit_subcontractor.html', subcontractor=subcontractor)
|
||||
|
||||
|
||||
# ----------------------------------------------------------
|
||||
# DELETE
|
||||
# ----------------------------------------------------------
|
||||
@subcontractor_bp.route('/deleteSubContractor/<int:id>', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def deleteSubContractor(id):
|
||||
|
||||
sub = Subcontractor()
|
||||
|
||||
sub.DeleteSubcontractor(request, id)
|
||||
|
||||
if not sub.isSuccess:
|
||||
return HtmlHelper.json_response(
|
||||
ResponseHandler.delete_failure("Subcontractor"), 500
|
||||
)
|
||||
|
||||
error, affected_rows = Subcontractor.delete_subcontractor(id)
|
||||
if error:
|
||||
return HtmlHelper.json_response(ResponseHandler.delete_failure("Subcontractor"), 500)
|
||||
if affected_rows == 0:
|
||||
return HtmlHelper.json_response(ResponseHandler.fetch_failure("Subcontractor not deleted"), 404)
|
||||
return redirect(url_for('subcontractor.subcontract'))
|
||||
Reference in New Issue
Block a user