Untitled

 avatar
unknown
plain_text
10 months ago
2.5 kB
19
Indexable
function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('יומן חריגים')
    .addItem('שכפל שורה', 'duplicateSelectedRow')
    .addToUi();
}

function onEdit(e) {
  const sheetName = 'יומן חריגים';
  const sh = e.range.getSheet();
  if (sh.getName() !== sheetName) return;

  const row = e.range.getRow();
  if (row < 2) return; // לא נוגעים בכותרות

  const tsCol     = 1; // A
  const nameCol   = 2; // B
  const statusCol = 8; // H
  const closeCol  = 9; // I

  const tsCell    = sh.getRange(row, tsCol);
  const statusCell= sh.getRange(row, statusCol);
  const closeCell = sh.getRange(row, closeCol);

  // חותמת תאריך+שעה אם הזינו משהו ב-B..H
  if (e.range.getColumn() >= nameCol && e.range.getColumn() <= statusCol) {
    if (!tsCell.getValue()) {
      tsCell.setValue(new Date());
    }
  }

  // אם כל B..H ריקים → נקה תאריכים וצבע
  const rowValues = sh.getRange(row, nameCol, 1, statusCol - nameCol + 1).getValues()[0];
  if (rowValues.every(v => !v)) {
    tsCell.clearContent();
    closeCell.clearContent();
    sh.getRange(row, 1, 1, sh.getLastColumn()).setBackground(null);
    return;
  }

  // טיפול בסטטוס
  const statusVal = statusCell.getValue();
  if (statusVal === 'טופל') {
    if (!closeCell.getValue()) {
      closeCell.setValue(new Date());
    }
    // צביעת כל השורה בירוק בהיר
    sh.getRange(row, 1, 1, sh.getLastColumn()).setBackground('#c6efce');
  } else {
    closeCell.clearContent();
    // החזרת צבע רקע רגיל
    sh.getRange(row, 1, 1, sh.getLastColumn()).setBackground(null);
  }
}

function duplicateSelectedRow() {
  const sheetName = 'יומן חריגים';
  const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  const range = sh.getActiveRange();
  const row = range.getRow();
  if (row < 2) return;

  // קריאת הערכים מהשורה B..F
  const values = sh.getRange(row, 2, 1, 5).getValues()[0]; // B..F

  // הוספת שורה חדשה מתחת
  sh.insertRowsAfter(row, 1);
  const newRow = row + 1;

  // כתיבה
  sh.getRange(newRow, 1).setValue(new Date());       // A
  sh.getRange(newRow, 2, 1, 5).setValues([values]);  // B..F
  sh.getRange(newRow, 7).clearContent();             // G
  sh.getRange(newRow, 8).setValue('ממתין');          // H
  sh.getRange(newRow, 9).clearContent();             // I
  sh.getRange(newRow, 1, 1, sh.getLastColumn()).setBackground(null); // בלי צבע
}
Editor is loading...
Leave a Comment