Skip to content

Commit 2e8c19d

Browse files
Fix: Posting cleaned version of data to mobile app
1 parent 23215cb commit 2e8c19d

File tree

1 file changed

+199
-187
lines changed

1 file changed

+199
-187
lines changed

controllers/previewformsData.controller.js

Lines changed: 199 additions & 187 deletions
Original file line numberDiff line numberDiff line change
@@ -37,192 +37,204 @@ exports.getpreviewformsData = asyncHandler(async (req, res) => {
3737
}
3838
});
3939

40-
const getpreviewspecificformData_sql = `SELECT
41-
-- Forms Table
42-
forms.id AS form_id,
43-
forms.user_id,
44-
forms.form_type,
45-
forms.farmer_name,
46-
forms.age,
47-
forms.mobile AS form_mobile,
48-
forms.district,
49-
forms.block,
50-
forms.panchayat,
51-
forms.hamlet,
52-
forms.id_type,
53-
forms.id_number,
54-
forms.gender,
55-
forms.spouse,
56-
forms.type_of_households,
57-
forms.h_members,
58-
forms.hh_occupation,
59-
forms.special_catog,
60-
forms.caste,
61-
forms.house_owner,
62-
forms.type_of_house,
63-
forms.drinking_water,
64-
forms.potability,
65-
forms.domestic_water,
66-
forms.toilet_avail,
67-
forms.toilet_cond,
68-
forms.household_education,
69-
forms.created_at,
70-
forms.lat,
71-
forms.lon,
72-
forms.mcode,
73-
forms.status,
74-
75-
-- Users Table (Corrected alias usage)
76-
u.id AS user_id,
77-
u.name AS user_name,
78-
u.email AS user_email,
79-
u.password AS user_password,
80-
u.role AS user_role,
81-
u.mobile AS user_mobile,
82-
u.date_of_joining AS user_date_of_joining,
83-
u.location AS user_location,
84-
u.photo AS user_photo,
85-
86-
-- Files Table
87-
files.id AS file_id,
88-
files.form_id AS file_form_id,
89-
files.identity,
90-
files.geotag,
91-
files.patta,
92-
files.fmb,
93-
files.photo AS file_photo,
94-
files.passbook,
95-
files.passbook_postfunding,
96-
97-
-- Bank Details Table
98-
bank_details.id AS bank_detail_id,
99-
bank_details.form_id AS bank_form_id,
100-
bank_details.account_holder_name,
101-
bank_details.account_number,
102-
bank_details.bank_name,
103-
bank_details.branch,
104-
bank_details.ifsc_code,
105-
bank_details.farmer_ack,
106-
107-
-- Form Lands Table (conditional fields for form_type = 1)
108-
CASE WHEN forms.form_type = 1 THEN form_lands.ownership END AS form_land_ownership,
109-
CASE WHEN forms.form_type = 1 THEN form_lands.well_irrigation END AS form_land_well_irrigation,
110-
CASE WHEN forms.form_type = 1 THEN form_lands.area_irrigated END AS form_land_area_irrigated,
111-
CASE WHEN forms.form_type = 1 THEN form_lands.irrigated_lands END AS form_land_irrigated_lands,
112-
CASE WHEN forms.form_type = 1 THEN form_lands.patta END AS form_land_patta,
113-
CASE WHEN forms.form_type = 1 THEN form_lands.total_area END AS form_land_total_area,
114-
CASE WHEN forms.form_type = 1 THEN form_lands.taluk END AS form_land_taluk,
115-
CASE WHEN forms.form_type = 1 THEN form_lands.firka END AS form_land_firka,
116-
CASE WHEN forms.form_type = 1 THEN form_lands.revenue END AS form_land_revenue,
117-
CASE WHEN forms.form_type = 1 THEN form_lands.crop_season END AS form_land_crop_season,
118-
CASE WHEN forms.form_type = 1 THEN form_lands.livestocks END AS form_land_livestocks,
119-
CASE WHEN forms.form_type = 1 THEN form_lands.sf_number END AS form_land_sf_number,
120-
CASE WHEN forms.form_type = 1 THEN form_lands.soil_type END AS form_land_soil_type,
121-
CASE WHEN forms.form_type = 1 THEN form_lands.land_to_benefit END AS form_land_land_to_benefit,
122-
CASE WHEN forms.form_type = 1 THEN form_lands.date_of_ins END AS form_land_date_of_ins,
123-
CASE WHEN forms.form_type = 1 THEN form_lands.area_benefited END AS form_land_area_benefited,
124-
CASE WHEN forms.form_type = 1 THEN form_lands.type_of_work END AS form_land_type_of_work,
125-
CASE WHEN forms.form_type = 1 THEN form_lands.any_other_works END AS form_land_any_other_works,
126-
CASE WHEN forms.form_type = 1 THEN form_lands.p_contribution END AS form_land_p_contribution,
127-
CASE WHEN forms.form_type = 1 THEN form_lands.f_contribution END AS form_land_f_contribution,
128-
CASE WHEN forms.form_type = 1 THEN form_lands.total_est END AS form_land_total_est,
129-
CASE WHEN forms.form_type = 1 THEN form_lands.field_insp END AS form_land_field_insp,
130-
CASE WHEN forms.form_type = 1 THEN form_lands.site_app END AS form_land_site_app,
131-
CASE WHEN forms.form_type = 1 THEN form_lands.date_of_app END AS form_land_date_of_app,
132-
CASE WHEN forms.form_type = 1 THEN form_lands.area_benefited_postfunding END AS form_land_area_benefited_postfunding,
133-
CASE WHEN forms.form_type = 1 THEN form_lands.verified_by END AS form_land_verified_by,
134-
135-
-- Farm Pond Details Table (conditional fields for form_type = 2)
136-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.ownership END AS farm_pond_ownership,
137-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.well_irrigation END AS farm_pond_well_irrigation,
138-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.area_irrigated END AS farm_pond_area_irrigated,
139-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.irrigated_lands END AS farm_pond_irrigated_lands,
140-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.patta END AS farm_pond_patta,
141-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.total_area END AS farm_pond_total_area,
142-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.taluk END AS farm_pond_taluk,
143-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.firka END AS farm_pond_firka,
144-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.revenue END AS farm_pond_revenue,
145-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.crop_season END AS farm_pond_crop_season,
146-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.livestocks END AS farm_pond_livestocks,
147-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.sf_number END AS farm_pond_sf_number,
148-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.soil_type END AS farm_pond_soil_type,
149-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.land_to_benefit END AS farm_pond_land_to_benefit,
150-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.date_of_ins END AS farm_pond_date_of_ins,
151-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.length END AS farm_pond_length,
152-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.breadth END AS farm_pond_breadth,
153-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.depth END AS farm_pond_depth,
154-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.volume END AS farm_pond_volume,
155-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.p_contribution END AS farm_pond_p_contribution,
156-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.f_contribution END AS farm_pond_f_contribution,
157-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.total_est END AS farm_pond_total_est,
158-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.area_benefited END AS farm_pond_area_benefited,
159-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.field_insp END AS farm_pond_field_insp,
160-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.site_app END AS farm_pond_site_app,
161-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.date_of_app END AS farm_pond_date_of_app,
162-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.len_pf END AS farm_pond_len_pf,
163-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.bre_pf END AS farm_pond_bre_pf,
164-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.dep_pf END AS farm_pond_dep_pf,
165-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.vol_pf END AS farm_pond_vol_pf,
166-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.area_benefited_postfunding END AS farm_pond_area_benefited_postfunding,
167-
CASE WHEN forms.form_type = 2 THEN farm_pond_details.verified_by END AS farm_pond_verified_by,
168-
169-
CASE WHEN forms.form_type = 3 THEN plantation_details.ownership END AS plantation_ownership,
170-
CASE WHEN forms.form_type = 3 THEN plantation_details.well_irrigation END AS plantation_well_irrigation,
171-
CASE WHEN forms.form_type = 3 THEN plantation_details.area_irrigated END AS plantation_area_irrigated,
172-
CASE WHEN forms.form_type = 3 THEN plantation_details.irrigated_lands END AS plantation_irrigated_lands,
173-
CASE WHEN forms.form_type = 3 THEN plantation_details.patta END AS plantation_patta,
174-
CASE WHEN forms.form_type = 3 THEN plantation_details.total_area END AS plantation_total_area,
175-
CASE WHEN forms.form_type = 3 THEN plantation_details.taluk END AS plantation_taluk,
176-
CASE WHEN forms.form_type = 3 THEN plantation_details.firka END AS plantation_firka,
177-
CASE WHEN forms.form_type = 3 THEN plantation_details.revenue END AS plantation_revenue,
178-
CASE WHEN forms.form_type = 3 THEN plantation_details.crop_season END AS plantation_crop_season,
179-
CASE WHEN forms.form_type = 3 THEN plantation_details.livestocks END AS plantation_livestocks,
180-
CASE WHEN forms.form_type = 3 THEN plantation_details.sf_number END AS plantation_sf_number,
181-
CASE WHEN forms.form_type = 3 THEN plantation_details.soil_type END AS plantation_soil_type,
182-
CASE WHEN forms.form_type = 3 THEN plantation_details.land_to_benefit END AS plantation_land_to_benefit,
183-
CASE WHEN forms.form_type = 3 THEN plantation_details.date_of_ins END AS plantation_date_of_ins,
184-
CASE WHEN forms.form_type = 3 THEN plantation_details.area_benefited_by_proposal END AS plantation_area_benefited_by_proposal,
185-
CASE WHEN forms.form_type = 3 THEN plantation_details.any_other_works END AS plantation_any_other_works,
186-
CASE WHEN forms.form_type = 3 THEN plantation_details.p_contribution END AS plantation_p_contribution,
187-
CASE WHEN forms.form_type = 3 THEN plantation_details.f_contribution END AS plantation_f_contribution,
188-
CASE WHEN forms.form_type = 3 THEN plantation_details.total_est END AS plantation_total_est,
189-
CASE WHEN forms.form_type = 3 THEN plantation_details.field_insp END AS plantation_field_insp,
190-
CASE WHEN forms.form_type = 3 THEN plantation_details.site_app END AS plantation_site_app,
191-
CASE WHEN forms.form_type = 3 THEN plantation_details.date_of_app END AS plantation_date_of_app,
192-
CASE WHEN forms.form_type = 3 THEN plantation_details.plantaions END AS plantation_plantaions,
193-
CASE WHEN forms.form_type = 3 THEN plantation_details.nos END AS plantation_nos,
194-
CASE WHEN forms.form_type = 3 THEN plantation_details.price END AS plantation_price,
195-
CASE WHEN forms.form_type = 3 THEN plantation_details.other_exp END AS plantation_other_exp,
196-
CASE WHEN forms.form_type = 3 THEN plantation_details.tot_nos END AS plantation_tot_nos,
197-
CASE WHEN forms.form_type = 3 THEN plantation_details.tot_price END AS plantation_tot_price,
198-
CASE WHEN forms.form_type = 3 THEN plantation_details.verified_by END AS plantation_verified_by
199-
FROM forms
200-
LEFT JOIN users AS u ON u.id = forms.user_id
201-
LEFT JOIN files ON files.form_id = forms.id
202-
LEFT JOIN bank_details ON bank_details.form_id = forms.id
203-
LEFT JOIN form_lands ON form_lands.form_id = forms.id
204-
LEFT JOIN farm_pond_details ON farm_pond_details.form_id = forms.id
205-
LEFT JOIN plantation_details ON plantation_details.form_id = forms.id
206-
WHERE forms.id = ?;
207-
`;
208-
209-
exports.getpreviewspecificformData = asyncHandler(async (req, res) => {
210-
const connection = await db.getConnection();
211-
const form_id = req.query.form_id;
212-
console.log(form_id);
40+
41+
const getbasicdetails_sql = `SELECT
42+
forms.id AS form_id,
43+
forms.farmer_name as name,
44+
forms.age,
45+
forms.mobile,
46+
forms.district,
47+
forms.block,
48+
forms.panchayat,
49+
forms.hamlet,
50+
forms.id_type as idCardType,
51+
forms.id_number as IdCardNumber,
52+
forms.gender,
53+
forms.spouse as fatherSpouse,
54+
forms.type_of_households as householdType,
55+
forms.h_members as hhcombined,
56+
forms.hh_occupation as occupationCombined,
57+
forms.special_catog as specialCategoryNumber,
58+
forms.caste,
59+
forms.house_owner as houseOwnership,
60+
forms.type_of_house as houseType,
61+
forms.drinking_water as drinkingWaterCombined,
62+
forms.potability as potabilityCombined,
63+
forms.domestic_water as domesticWaterCombined,
64+
forms.toilet_avail as toiletAvailability,
65+
forms.toilet_cond as toiletCondition,
66+
forms.household_education as education
67+
FROM forms
68+
WHERE id = ?
69+
`;
70+
71+
const getbankdetails_sql = ` SELECT
72+
bank_details.account_holder_name AS accountHolderName,
73+
bank_details.account_number AS accountNumber,
74+
bank_details.bank_name AS bankName,
75+
bank_details.branch,
76+
bank_details.ifsc_code AS ifscCode,
77+
bank_details.farmer_ack AS farmerAgreed
78+
FROM bank_details
79+
WHERE id = ?
80+
`;
81+
82+
const getlandownwershipdetails_sql = `SELECT
83+
form_lands.ownership AS landOwnershipType,
84+
form_lands.well_irrigation AS hasWell,
85+
form_lands.area_irrigated AS areaIrrigated,
86+
form_lands.irrigated_lands AS irrigatedLandCombined,
87+
form_lands.patta AS pattaNumber,
88+
form_lands.total_area AS totalArea,
89+
form_lands.taluk,
90+
form_lands.firka,
91+
form_lands.revenue AS revenueVillage,
92+
form_lands.crop_season AS cropSeasonCombined,
93+
form_lands.livestocks AS livestockCombined
94+
FROM form_lands
95+
WHERE form_id = ?`;
21396

214-
try {
215-
const [results] = await connection.execute(getpreviewspecificformData_sql,[form_id]);
216-
//console.log(results);
217-
if (results.length > 0) {
218-
// console.log(results);
219-
return res.json(results);
220-
} else {
221-
return res.json(0);
222-
}
223-
} catch (err) {
224-
return res.status(500).json({ error: err.message });
225-
} finally {
226-
connection.release(); // Always release the connection
97+
const getlandformdetails_sql = `SELECT
98+
forms.created_at AS date,
99+
forms.lat AS latitude,
100+
forms.lon AS longitude,
101+
form_lands.sf_number AS sfNumber,
102+
form_lands.soil_type AS soilTypeCombined,
103+
form_lands.land_to_benefit AS landBenefit,
104+
form_lands.area_benefited AS proposalArea,
105+
form_lands.type_of_work AS workType,
106+
form_lands.any_other_works AS otherWorks,
107+
form_lands.p_contribution AS pradanContribution,
108+
form_lands.f_contribution AS farmerContribution,
109+
form_lands.total_est AS totalEstimate
110+
FROM forms
111+
INNER JOIN form_lands ON forms.id = form_lands.form_id
112+
WHERE forms.id = ? AND forms.form_type = ?`;
113+
114+
const getpondformdetails_sql = ` SELECT
115+
forms.created_at AS date,
116+
forms.lat AS latitude,
117+
forms.lon AS longitude,
118+
farm_pond_details.sf_number AS sfNumber,
119+
farm_pond_details.soil_type AS soilTypeCombined,
120+
farm_pond_details.land_to_benefit AS landBenefit,
121+
farm_pond_details.area_benefited AS proposalArea,
122+
farm_pond_details.length,
123+
farm_pond_details.breadth,
124+
farm_pond_details.depth,
125+
farm_pond_details.volume,
126+
farm_pond_details.p_contribution AS pradanContribution,
127+
farm_pond_details.f_contribution AS farmerContribution,
128+
farm_pond_details.total_est AS totalEstimate
129+
FROM forms
130+
INNER JOIN farm_pond_details ON forms.id = farm_pond_details.form_id
131+
WHERE forms.id = ? AND forms.form_type = ?`;
132+
133+
const getplantationformdetails_sql = ` SELECT
134+
forms.created_at AS date,
135+
forms.lat AS latitude,
136+
forms.lon AS longitude,
137+
plantation_details.sf_number AS sfNumber,
138+
plantation_details.soil_type AS soilTypeCombined,
139+
plantation_details.land_to_benefit AS landBenefit,
140+
plantation_details.area_benefited_by_proposal AS proposalArea,
141+
plantation_details.plantaions AS workType2,
142+
plantation_details.any_other_works AS otherWorks,
143+
plantation_details.p_contribution AS pradanContribution,
144+
plantation_details.f_contribution AS farmerContribution,
145+
plantation_details.total_est AS totalEstimate
146+
FROM forms
147+
INNER JOIN plantation_details ON forms.id = plantation_details.form_id
148+
WHERE forms.id = ? AND forms.form_type = ?`;
149+
150+
//const getsubmittedfiles_sql = ``;
151+
152+
153+
exports.getpreviewspecificformData = asyncHandler( async (req, res) => {
154+
const id = req.query.form_id;
155+
const form_type = req.query.form_type;
156+
console.log("Form ID",id);
157+
console.log("Form type",typeof(form_type));
158+
const connection = await db.getConnection();
159+
160+
try {
161+
// 1. Fetch common form data from respective tables
162+
const [[bankDetails]] = await connection.execute(
163+
getbankdetails_sql,
164+
[id]
165+
);
166+
167+
const [[basicDetails]] = await connection.execute(
168+
getbasicdetails_sql,
169+
[id]
170+
);
171+
//fetch based on form type
172+
let landDevelopment;
173+
if (form_type == 1) {
174+
//fetch land form
175+
[[landDevelopment]] = await connection.execute(
176+
getlandformdetails_sql,
177+
[id,form_type]
178+
);
179+
} else if (form_type == 2) {
180+
//fetch pond form
181+
[[landDevelopment]] = await connection.execute(
182+
getpondformdetails_sql,
183+
[id,form_type]
184+
);
185+
} else if (form_type == 3) {
186+
//fetch plantation form
187+
[[landDevelopment]] = await connection.execute(
188+
getplantationformdetails_sql,
189+
[id,form_type]
190+
);
191+
console.log(landDevelopment);
192+
} else {
193+
return res.status(400).json({ error: 'Unknown form type' });
227194
}
228-
});
195+
196+
const [[landOwnership]] = await connection.execute(
197+
getlandownwershipdetails_sql,
198+
[id]
199+
);
200+
201+
// 2. Fetch submitted files from separate table
202+
// const [[submittedFiles]] = await connection.execute(
203+
// 'SELECT * FROM submitted_files WHERE form_id = ?',
204+
// [id]
205+
// );
206+
207+
// 3. Handle if any main block is missing
208+
// if (!bankDetails || !basicDetails || !landDevelopment || !landOwnership) {
209+
// return res.status(404).json({ error: 'Form data not found' });
210+
// }
211+
212+
// 4. Insert submittedFiles into bankDetails
213+
// bankDetails.submittedFiles = {
214+
// bankPassbook: submittedFiles?.bankPassbook || null,
215+
// farmerPhoto: submittedFiles?.farmerPhoto || null,
216+
// fmb: submittedFiles?.fmb || null,
217+
// geoTag: submittedFiles?.geoTag || null,
218+
// idCard: submittedFiles?.idCard || null,
219+
// patta: submittedFiles?.patta || null,
220+
// };
221+
222+
// 5. Final combined response
223+
const result = {
224+
bankDetails,
225+
basicDetails,
226+
landDevelopment,
227+
landOwnership
228+
};
229+
console.log(result);
230+
res.json(result);
231+
232+
} catch (err) {
233+
console.error('DB error:', err);
234+
res.status(500).json({ error: 'Internal Server Error' });
235+
} finally {
236+
if (connection) {
237+
connection.release();
238+
}
239+
}
240+
});

0 commit comments

Comments
 (0)