Google Apps Script Dialog Generator
    
    
    
  \`)
    .setWidth(${dialogWidth})
    .setHeight(${dialogHeight});
  SpreadsheetApp.getUi().showModelessDialog(html, '${dialogTitle}');
}
// Function to get all items from ${stockSheet} sheet
function getItems() {
  try {
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const stockSheet = ss.getSheetByName('${stockSheet}');
    if (!stockSheet) {
      throw new Error('${stockSheet} sheet not found. Please check the sheet name.');
    }
    const lastRow = stockSheet.getLastRow();
    if (lastRow < 2) {
      return [];
    }
    const itemRange = stockSheet.getRange('B2:D' + lastRow);
    const values = itemRange.getValues();
    return values.filter(row => row[0] !== '' || row[1] !== '');
  } catch (error) {
    Logger.log('Error in getItems: ' + error.toString());
    throw error;
  }
}
// Function to search items by code, name, or price
function searchItems(searchTerm) {
  try {
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const stockSheet = ss.getSheetByName('${stockSheet}');
    if (!stockSheet) {
      throw new Error('${stockSheet} sheet not found. Please check the sheet name.');
    }
    const lastRow = stockSheet.getLastRow();
    const itemRange = stockSheet.getRange('B2:D' + lastRow);
    const values = itemRange.getValues();
    return values.filter(row =>
      row[0].toString().toLowerCase().includes(searchTerm.toLowerCase()) ||
      row[1].toString().toLowerCase().includes(searchTerm.toLowerCase()) ||
      row[2].toString().toLowerCase().includes(searchTerm.toLowerCase())
    );
  } catch (error) {
    Logger.log('Error in searchItems: ' + error.toString());
    throw error;
  }
}
// Function to add the clicked item code, name, and price to the ${invoiceSheet} sheet
function addItemTo${invoiceSheet.replace(/[^a-zA-Z0-9]/g, '')}(itemCode, itemName, price) {
  try {
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const invoiceSheet = ss.getSheetByName('${invoiceSheet}');
    if (!invoiceSheet) {
      throw new Error('${invoiceSheet} sheet not found. Please check the sheet name.');
    }
    const lastRow = invoiceSheet.getLastRow();
    const firstEmptyRow = lastRow < ${startRow} ? ${startRow} : lastRow + 1;
    invoiceSheet.getRange(firstEmptyRow, 1).setValue(itemCode);
    invoiceSheet.getRange(firstEmptyRow, 2).setValue(itemName);
    invoiceSheet.getRange(firstEmptyRow, 3).setValue(price);
  } catch (error) {
    Logger.log('Error in addItemTo${invoiceSheet.replace(/[^a-zA-Z0-9]/g, '')}: ' + error.toString());
    throw error;
  }
}`;
            document.getElementById('codeOutput').value = code;
            document.getElementById('outputSection').style.display = 'block';
            document.getElementById('outputSection').scrollIntoView({ behavior: 'smooth' });
        }
        
        function copyCode() {
            const codeOutput = document.getElementById('codeOutput');
            const copyBtn = document.getElementById('copyBtn');
            
            codeOutput.select();
            codeOutput.setSelectionRange(0, 99999);
            document.execCommand('copy');
            
            copyBtn.textContent = 'Copied!';
            copyBtn.classList.add('copied');
            
            setTimeout(() => {
                copyBtn.textContent = 'Copy Code';
                copyBtn.classList.remove('copied');
            }, 2000);
        }
        
        // Generate initial code on page load
        window.addEventListener('load', generateCode);
    
 
No comments:
Post a Comment