@@ -37,192 +37,204 @@ exports.getpreviewformsData = asyncHandler(async (req, res) => {
37
37
}
38
38
} ) ;
39
39
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 = ?` ;
213
96
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' } ) ;
227
194
}
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