Kodas
unknown
plain_text
2 years ago
4.8 kB
10
Indexable
function createFolder() {
var sheet = SpreadsheetApp.getActiveSheet();
var year = sheet.getRange("B1").getValue();
var month = sheet.getRange("B2").getValue();
var parentFolder = DriveApp.getRootFolder();
var folderName = year + " " + month + " Mokiniu Saskaitos";
var existingFolder = parentFolder.getFoldersByName(folderName);
if (existingFolder.hasNext()) {
return existingFolder.next();
} else {
return parentFolder.createFolder(folderName);
}
}
function generateInvoices() {
// Create the folder based on year and month
var folder = createFolder();
var sheet = SpreadsheetApp.getActiveSheet();
var year = sheet.getRange("B1").getValue();
var month = sheet.getRange("B2").getValue();
var data = sheet.getRange("B3:G" + sheet.getLastRow()).getValues();
// Loop through the data and generate invoices
for (var i = 0; i < data.length; i++) {
var name = data[i][0];
var email = data[i][1];
var received = parseFloat(data[i][2]).toFixed(2) + "€"; // Format as a number with 2 decimal places and add Euro sign
var spent = parseFloat(data[i][3]).toFixed(2) + "€"; // Format as a number with 2 decimal places and add Euro sign
var amount = parseFloat(data[i][4]).toFixed(2) + "€"; // Format as a number with 2 decimal places and add Euro sign
var compensation = parseFloat(data[i][5]).toFixed(2) + "€"; // Format as a number with 2 decimal places and add Euro sign
// Create a Google Document as the invoice
var doc = DocumentApp.create("Invoice for " + name + " - " + month);
var body = doc.getBody();
// Add static information to the invoice
body.appendParagraph("SĄSKAITA");
// Create a 1x2 table for the first cell on the left and second cell on the right
var table = [];
var firstRow = [];
// First cell on the left
var leftCellText = "UAB AMBER CATERING\n" +
"Dūmų 3, Vilnius\n" +
"Tel.868545888\n" +
"El. paštas: ac.ritulia@gmail.com";
firstRow.push(leftCellText);
// Second cell on the right
var rightCellText = "Rekvizitai mokantiems pavedimu:\n" +
"Įmonės kodas .. 120857076\n" +
"PVM kodas ...... LT208570716\n" +
"sąskaita LT147300010155984049\n" +
"„Swedbank“, AB\n" +
"banko kodas 73000\n" +
"Paskirtyje nurodykite:\n" +
"mokinio vardą, pavardę, klasę";
firstRow.push(rightCellText);
// Add the 1x2 table to the document
table.push(firstRow);
body.appendTable(table);
// Continue with the rest of your dynamic information and tables as before
body.appendParagraph("Už " + year + " m. " + month + " mėnesio maitinimą\nmokinys(ė): " + name);
body.appendParagraph(""); // One row gap
// Add the table
var table = [];
table.push(["Paslaugos pavadinimas", "Suma Eur"]);
table.push(["Gauta suma – apmokėta už suteiktas paslaugas", received]);
table.push(["Sunaudota - suvalgyta per ataskaitinį laikotarpį", spent]);
table.push(["Likutis*", amount]);
table.push(["", "* Suma su minuso ženklu reiškia trūkumą lėšų „vaiko sąskaitoj“"]);
body.appendTable(table);
// Add spacing and additional information
body.appendParagraph("");
body.appendParagraph("PAPILDOMA INFORMACIJA:");
body.appendParagraph("Savivaldybės kompensacija yra įtraukta į mokėtiną sumą.");
body.appendParagraph("Mokėjimo grafoje „Likutis“ su minuso ženklu reiškia trūkumą lėšų vaiko sąskaitoje");
body.appendParagraph("Už vaikų maitinimą mokama į priekį. Už einamąjį mėnesį mokama per pirmą einamojo mėnesio savaitę. Reikia susiskaičiuoti patiems kiek planuojate valgyti. Jei per einamąjį mėnesį neišnaudojote įmokėtų pinigėlių, permoka perkeliama į sekantį mėnesį.");
body.appendParagraph("Pietų kaina...................................... 5,40");
body.appendParagraph("Pavakarių kaina............................. 2,30");
body.appendParagraph("Bendra dienos(pietūs-pavakariai) maitinimo kaina..... 7,70");
body.appendParagraph("Jei pastebėjote klaidą mokėjimo pranešime, informuokite.");
// Save and close the invoice document
doc.saveAndClose();
// Export the document as a Word file (docx)
var docFile = DriveApp.getFileById(doc.getId());
// Set the desired file name for the Word document
var wordFileName = "Invoice for " + name + " - " + month + ".docx"; // Add ".docx" extension
// Move the Word document to the desired folder
folder.createFile(docFile.getBlob().setName(wordFileName));
}
}
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Generate Invoices', 'generateInvoices')
.addToUi();
}
Editor is loading...