Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

awork -> Google Sheets -> task start date #8

Closed
martin-lakoer opened this issue May 15, 2021 · 4 comments
Closed

awork -> Google Sheets -> task start date #8

martin-lakoer opened this issue May 15, 2021 · 4 comments
Labels
question Further information is requested

Comments

@martin-lakoer
Copy link

martin-lakoer commented May 15, 2021

Hallo Ihr Lieben,

ich verknüpfe awork derzeit mit unseren Google Tabellen.
Dabei würde ich über das Google Script gerne auslesen, welches die Aufgabe mit dem frühesten Startdatum des Projektes ist und wann das Startdatum ist. Das ist für unsere Finanzplanung extrem wichtig.
Alternativ könnte ich vielleicht auch in jedem Projekt eine Aufgabe "Startdatum" anlegen und dann das Startdatum dieser Aufgabe gezielt für jedes Projekt auslesen und in die Google Tabelle schreiben...

Nur leider bekomme ich den Code nicht auf die Kette und freue mich sehr, wenn Ihr hier unterstützen könnt.
Über welche Variable / welchen Script-Code bei Google kann ich das machen?

Gibt es weiterhin ein Möglichkeit abgerechnete und nicht abgerechnete Stunden auszulesen?

Vielen vielen Dank für Eure Hilfe und liebe Grüße,
Martin

Screenshot 2021-05-11 at 11 28 58

Screenshot 2021-05-12 at 15 18 24

@IanBuck-dev
Copy link
Contributor

IanBuck-dev commented May 17, 2021

Moin Martin,

ich habe mir deine Frage einmal angeschaut. In deinem Fall würde ich dir empfehlen, zu jedem Projekt die frühste Aufgabe über die API zu holen. Bei der Aufgabe ist das Feld startOn das Anfangsdatum.

Zuerst erstellst du eine neue Tabellenspalte in Zeile 62:

sheet.getRange(startRow, 15).setValue(['StartOn'])

und dann hinterlegst du in Zeile 77 folgenden Code um für das Projekt die frühste Aufgabe zu bekommen:

sheet.getRange(currentRow, 15).setValue([getEarliestTaskForProject(project.id, options)])

und fügst die folgende Funktion am Ende des Editors ein:

function getEarliestTaskForProject(projectId, options) {
  var filter = "?filterby=startOn ne null&orderby=startOn"
  var response = UrlFetchApp.fetch("https://api.awork.io/api/v1/projects/" + projectId + "/projecttasks" + filter, options);

  var json = response.getContentText();
  var data = JSON.parse(json);

  if (data.length > 0 && data[0].startOn != null)
    return new Date(data[0].startOn);

  return null;
}

Damit holst du dir zu jedem Projekt alle Aufgabe die das startOn ausgefüllt haben aufsteigend sortiert und holst dir dann das startOn des frühsten Tasks.

Bezüglich der abgerechneten/abrechenbaren Zeiten könntest du dir zu jedem Projekt über den GET endpoint /{entityName}/{entityId}/timeentries, also /projects/deine project id/timeentries, alle Zeiten holen. An den Timeentries gibt es dann den Boolean isBillable und isBilled.

Probier das gerne mal aus und melde dich falls es noch Probleme gibt!

Liebe Grüße
Ian

@IanBuck-dev IanBuck-dev added the question Further information is requested label May 17, 2021
@martin-lakoer
Copy link
Author

martin-lakoer commented May 17, 2021 via email

@martin-lakoer
Copy link
Author

martin-lakoer commented May 17, 2021 via email

@martin-lakoer
Copy link
Author

martin-lakoer commented May 21, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Development

No branches or pull requests

3 participants