diff --git a/src/main/kotlin/com/restapi/Main.kt b/src/main/kotlin/com/restapi/Main.kt index cf14702..4da6e62 100644 --- a/src/main/kotlin/com/restapi/Main.kt +++ b/src/main/kotlin/com/restapi/Main.kt @@ -141,13 +141,30 @@ fun main(args: Array) { get("/rfq/{rfqNum}", QuotationCtrl::reqForQuote, Roles(Role.Explicit(listOf("ROLE_QUOTE_CREATE", "ROLE_QUOTE_VIEW")))) delete("/{id}", QuotationCtrl::delete, Roles(Role.Explicit(listOf("ROLE_QUOTE_CREATE", "ROLE_ADMIN")))) } - path("/product"){ - post("", ProductCtrl::create, Roles(Role.Explicit(listOf("ROLE_PRODUCT_CREATE", "ROLE_ADMIN", "ROLE_VENDOR_CREATE")))) + path("/product") { + post("", ProductCtrl::create, Roles(Role.Explicit(listOf("ROLE_PRODUCT_CREATE", "ROLE_ADMIN")))) //get("/{hsnCode}", ProductCtrl::get, Roles(Role.Explicit(listOf("ROLE_PRODUCT_VIEW", "ROLE_ADMIN")))) - put("/{id}", ProductCtrl::update, Roles(Role.Explicit(listOf("ROLE_PRODUCT_UPDATE", "ROLE_ADMIN")))) + put( + "/{id}", + ProductCtrl::update, + Roles(Role.Explicit(listOf("ROLE_PRODUCT_UPDATE", "ROLE_ADMIN"))) + ) //patch("/{id}", ProductCtrl::patch, Roles(Role.Explicit(listOf("ROLE_PRODUCT_UPDATE", "ROLE_ADMIN")))) - delete("/{id}", ProductCtrl::delete, Roles(Role.Explicit(listOf("ROLE_PRODUCT_DELETE", "ROLE_ADMIN")))) + delete( + "/{id}", + ProductCtrl::delete, + Roles(Role.Explicit(listOf("ROLE_PRODUCT_DELETE", "ROLE_ADMIN"))) + ) get("", ProductCtrl::getAll, Roles(Role.Explicit(listOf("ROLE_PRODUCT_VIEW", "ROLE_ADMIN")))) + post("/product-excel", ProductCtrl::prodExcel) + get("/product-import") { ctx -> //ctx.json(ExcelRead())} + val fileItem = ctx.uploadedFiles("file") + if (fileItem != null) { + ctx.result("Data imported successfully!") + } else { + ctx.result("No file uploaded") + } + } } path("/doc"){ post("", Document::create, Roles(Role.Explicit(listOf("ROLE_DOC_CREATE", "ROLE_ADMIN")))) diff --git a/src/main/kotlin/com/restapi/controllers/Excel.kt b/src/main/kotlin/com/restapi/controllers/Excel.kt index 039bcc4..83a5d2d 100644 --- a/src/main/kotlin/com/restapi/controllers/Excel.kt +++ b/src/main/kotlin/com/restapi/controllers/Excel.kt @@ -14,15 +14,10 @@ import com.restapi.domain.Session.database import com.restapi.domain.Vendor import org.apache.poi.hssf.usermodel.DVConstraint import org.apache.poi.hssf.usermodel.HSSFDataValidation -import org.apache.poi.ss.usermodel.Cell -import org.apache.poi.ss.usermodel.CellType -import org.apache.poi.ss.usermodel.DateUtil -import org.apache.poi.ss.usermodel.Workbook -import org.apache.poi.ss.usermodel.WorkbookFactory +import org.apache.poi.ss.usermodel.* import org.apache.poi.ss.util.CellRangeAddressList -import java.io.File -import java.io.FileInputStream -import java.io.FileOutputStream +import org.apache.poi.xssf.usermodel.XSSFWorkbook +import java.io.* import java.text.SimpleDateFormat import java.time.LocalDate import java.time.ZoneId @@ -526,4 +521,34 @@ fun ExcelRead(): String{ } } return app_common_om.writeValueAsString(resp) +} + + +fun CreateExcel(productList: List): InputStream { + val wb = XSSFWorkbook() + val sh = wb.createSheet() + val rows: Row = sh.createRow(0) + rows.createCell(0).setCellValue("Name") + rows.createCell(1).setCellValue("Description") + rows.createCell(2).setCellValue("HSN") + rows.createCell(3).setCellValue("UOM") + + var rowNum = 1 + for (product in productList) { + val row: Row = sh.createRow(rowNum++) + + row.createCell(0).setCellValue(product.name) + row.createCell(1).setCellValue(product.description) + row.createCell(2).setCellValue(product.hsnCode) + + val uomCell: Cell = row.createCell(3) + uomCell.setCellValue(product.uom?.name ?: "") + } + + val baos = ByteArrayOutputStream() + wb.write(baos) + wb.close() + + return ByteArrayInputStream(baos.toByteArray()) + } \ No newline at end of file