ExcelToDb complete

This commit is contained in:
vinay 2024-01-24 18:33:01 +05:30
parent 471c043218
commit 4688b92314
4 changed files with 42 additions and 22 deletions

View File

@ -359,3 +359,6 @@ Authorization: {{auth-token}}
"quoteFilters": {}
}
###
POST http://localhost:9001/api/vendor/product/excelDb
Authorization: {{auth-token}}

View File

@ -143,28 +143,14 @@ fun main(args: Array<String>) {
}
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")))
)
//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")))
)
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"))))
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"))))
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")
}
}
get("/product-import") { ctx -> ctx.json(ExcelRead()) }
post("/excelDb") {ctx -> ctx.json(excelToDb())}
}
path("/doc"){
post("", Document::create, Roles(Role.Explicit(listOf("ROLE_DOC_CREATE", "ROLE_ADMIN"))))

View File

@ -387,7 +387,7 @@ fun ImportFromExcel(fileType: FileType, filePath : String) {
"nos" -> UOM.NOS
"ltr" -> UOM.LTR
"mtr" -> UOM.MTR
else -> UOM.ALL
else -> UOM.LTR
}
}
}
@ -551,4 +551,31 @@ fun CreateExcel(productList: List<Product>): InputStream {
return ByteArrayInputStream(baos.toByteArray())
}
fun excelToDb(): List<Product> {
val inputStream = FileInputStream("C:\\Users\\vinay\\IdeaProjects\\readymixerp_modules_api_git\\Untitled 1.xlsx")
val workbook = WorkbookFactory.create(inputStream)
val workSheet = workbook.getSheetAt(0)
for (row in workSheet) {
val cell1Value = row.getCell(0).stringCellValue
val cell2Value = row.getCell(1).stringCellValue
val cell3Value = row.getCell(2).stringCellValue
val cell4Value = row?.getCell(3)?.stringCellValue
val prod = Product()
prod.name = cell1Value
prod.description = cell2Value
prod.hsnCode = cell3Value
prod.uom = when(cell4Value) {
"nos" -> UOM.NOS
"ltr" -> UOM.LTR
"mtr" -> UOM.MTR
else -> UOM.ALL
}
database.saveAll(prod)
}
val productList = Session.database.find(Product::class.java).findList()
return productList
}

View File

@ -29,10 +29,14 @@ data class POFilters (
val validBefore: LocalDate = maxDate,
val refQuotation :String = IGNORE,
) : CustomFilters
enum class UOMFilter {
ALL //fixme: later
}
data class ProductFilters (
val nameLike :String = IGNORE,
val hsnLike :String = IGNORE,
val uom :UOM = UOM.ALL,
val uom :UOMFilter = UOMFilter.ALL,
) : CustomFilters
data class DocumentFilters (
val nameLike :String = IGNORE,