Обновите статус заказов в Google Spreadsheet, проверив статус в других листах с помощью скриптов Google Apps. - PullRequest
2 голосов
/ 08 октября 2019

Я работаю, чтобы получить статус для заказов, которые будут обновлены в мастер-листе. Я отключил заказы со статусом на другом листе под названием «Лист списания». В то время как я обновляю мастер, мне нужно проверить статус этих заказов, применяя следующую логику:

  • Если заказ DECOMMISSIONED && недоступен на листе вывода из эксплуатации, то заказ LIVE.
  • Если заказ доступен на листе вывода из эксплуатации, то проверьте статус, если он ДЕКОММИССИОНЕН, тогда заказ ДЕКОММИССОВАН.

Я сделал это совершенно другим способом, но он не работает сменя. Буду признателен за любую помощь.

function pathstatus() {
  var MasterSs = SpreadsheetApp.openById('ID');
  var MsterSh = MasterSs.getSheetByName('Master Sheet');
  var MasterData = MsterSh.getDataRange().getValues();
  var DecommisstionSh = MasterSs.getSheetByName('Decommisstion');
  var DecommisstionData=DecommisstionSh.getDataRange().getValues();
  for(var x=0;x<MasterData.length;x++){   
    var MasterPathName =MasterData[x][2]
    var Masterstatus=MasterData[x][6]
    var MasterStage=MasterData[x][7]
    if(MasterStage == "DECOMMISSIONED"){
      for(var i=0;i<DecommisstionData.length;i++){
        var   DecommisstionPathName = DecommisstionData[i][2]
        var    DecommisstionStatus = DecommisstionData[i][7]
        var   DecommissionedDate = DecommisstionData[i][10]
        if(DecommisstionPathName == MasterPathName && DecommisstionStatus == "COMPLETED") {
          MasterData[x][6]="DECOMMISSIONED"
          MasterData[x][12]=DecommissionedDate
        }else { 
          MasterData[x][6]="LIVE"  
        }
      }
    }
  }
  MsterSh.getRange(2,1,MsterSh.getLastRow(),MsterSh.getLastColumn()).clearContent();
  MsterSh.getRange(2,1,MasterData.length,MasterData[0].length).setValues(MasterData)
  SpreadsheetApp.flush()
}

По-другому

function myFunction() {
  var MasterSs = SpreadsheetApp.openById('ID');
  var MsterSh = MasterSs.getSheetByName('Master Sheet');
  var MasterData = MsterSh.getDataRange().getValues();
  var DecommisstionSh = MasterSs.getSheetByName('Decommisstion');
  var DecommisstionData=DecommisstionSh.getDataRange().getValues();

  MasterData.splice(0,1);
  DecommisstionData.splice(0,1);
  var  Decommisstionpath = [];
  var  Decommisstionstatus = [];

  for(var i=0;i<DecommisstionData.length;i++) {
    Decommisstionpath.push(Number(DecommisstionData[i][2]))
    Decommisstionstatus.push(DecommisstionData[i][7])
  }
  var i=0;
  for(var x=0;x<MasterData.length && MasterData[x][3] != undefined ;x++) {
    var OrderStage = MasterData[x][8]
    if(OrderStage=='DECOMMISSIONED') {
      var PathName = MasterData[x][2]
      var index = Decommisstionpath.indexOf(PathName);
      if(index == -1)
      {MasterData[x][6]="LIVE" } 
      else{
        MasterData[x][6]="Check"
      }
    }
  }
  MsterSh.getRange(2,1,MsterSh.getLastRow(),MsterSh.getLastColumn()).clearContent();
  MsterSh.getRange(2,1,MasterData.length,MasterData[0].length).setValues(MasterData)
  SpreadsheetApp.flush();
}

Ни одна из функций не работает должным образом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...