Skip to main content
function doPost(e) { try { var action = e.parameter.action; // 1. LIVE STATUS if (action === "updateStatus") { var userSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ERP_Users"); var data = userSheet.getDataRange().getValues(); for (var i = 1; i < data.length; i++) { if (data[i][0]=== e.parameter.empName) { userSheet.getRange(i + 1, 5).setValue(e.parameter.status); return ContentService.createTextOutput("Status Updated"); } } return ContentService.createTextOutput("User Not Found"); } // 2. ATTENDANCE if (action=== "saveAttendance" || !action) { // (पुराना अटेंडेंस वाला कोड वही है, जगह बचाने के लिए मैंने यहाँ शॉर्ट किया है, // आप इसे अपने पुराने अटेंडेंस वाले हिस्से से रिप्लेस कर सकते हैं। // या अगर अटेंडेंस सही चल रहा है तो सिर्फ saveSale और doGet को अपडेट करें) var attSheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Attendance"); attSheet.appendRow([e.parameter.Tareekh, e.parameter.Karmachari_Name, e.parameter.Duty_On_Time, e.parameter.Duty_Off_Time, e.parameter.Total_Work_Time, e.parameter.Total_Idle_Time, e.parameter.Total_Away_Call_Time, e.parameter.Rate, e.parameter.Earning]); return ContentService.createTextOutput("Attendance Saved"); } // 3. 💰 SALES SAVING (Accounts के लिए) if (action=== "saveSale") { var salesSheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sales_Data"); var d=new Date(); var dateStr=d.getDate().toString().padStart(2, '0') + "/" + (d.getMonth() + 1).toString().padStart(2, '0') + "/" + d.getFullYear(); salesSheet.appendRow([ dateStr, // A: Date e.parameter.Salesman_Name, // B: Salesman e.parameter.Customer_Name, // C: Customer e.parameter.Customer_Phone, // D: Phone e.parameter.Pincode, // E: Pincode e.parameter.Location, // F: Location e.parameter.Order_Ref, // G: Ref e.parameter.Product_Details, // H: Details e.parameter.Qty, // I: QTY (NEW) e.parameter.Sale_Amount, // J: Base Amount e.parameter.GST_Amount, // K: GST (NEW) e.parameter.Advance_Amount, // L: Advance "Pending", // M: Status (For Accounts) e.parameter.Image_Data // N: Image Base64 ]); return ContentService.createTextOutput("Sale Locked"); } } catch (error) { return ContentService.createTextOutput("Error: " + error.message); } } function doGet(e) { try { // 📥 ACCOUNTS DESK के लिए पेंडिंग सेल्स भेजना if (e.parameter.action=== "getPendingSales") { var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sales_Data"); var data=sheet.getDataRange().getValues(); var result=[]; for (var j=1; j< data.length; j++) { if (data[j][12]=== "Pending") { // Column M (Index 12) result.push({ date: data[j][0], salesman: data[j][1], customer: data[j][2], ref: data[j][6], details: data[j][7], qty: data[j][8], amount: data[j][9], gst: data[j][10], advance: data[j][11], image: data[j][13] }); } } return ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType.JSON); } // 👥 HR DESK के लिए यूज़र्स भेजना (डिफ़ॉल्ट) var userSheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ERP_Users"); var uData=userSheet.getDataRange().getValues(); var uResult=[]; for (var i=1; i< uData.length; i++) { if (uData[i][0] !== "") uResult.push({ name: uData[i][0], mobile: uData[i][1], role: uData[i][3], status: uData[i][4] || "🔴 Offline" }); } return ContentService.createTextOutput(JSON.stringify(uResult)).setMimeType(ContentService.MimeType.JSON); } catch (err) { return ContentService.createTextOutput(JSON.stringify({error: err.message})).setMimeType(ContentService.MimeType.JSON); } }