add fleet
This commit is contained in:
parent
67b7c5aa9a
commit
32d4ea28f5
@ -189,6 +189,36 @@ fun main(args: Array<String>) {
|
|||||||
)
|
)
|
||||||
delete("/{id}", PaymentCtrl::delete, Roles(Role.Explicit("ROLE_PAYMENT_CREATE")))
|
delete("/{id}", PaymentCtrl::delete, Roles(Role.Explicit("ROLE_PAYMENT_CREATE")))
|
||||||
}
|
}
|
||||||
|
path("/fleet") {
|
||||||
|
post("", FleetCtrl::create, Roles(Role.Explicit("ROLE_FLEET_CREATE")))
|
||||||
|
get(
|
||||||
|
"/{id}",
|
||||||
|
FleetCtrl::get,
|
||||||
|
Roles(Role.Explicit("ROLE_FLEET_VIEW", "ROLE_FLEET_CREATE"))
|
||||||
|
)
|
||||||
|
put("/{id}", FleetCtrl::update, Roles(Role.Explicit("ROLE_FLEET_CREATE")))
|
||||||
|
post(
|
||||||
|
"/getAll",
|
||||||
|
FleetCtrl::getAll,
|
||||||
|
Roles(Role.Explicit("ROLE_FLEET_CREATE", "ROLE_FLEET_VIEW"))
|
||||||
|
)
|
||||||
|
delete("/{id}", FleetCtrl::delete, Roles(Role.Explicit("ROLE_FLEET_CREATE")))
|
||||||
|
}
|
||||||
|
path("/renewal") {
|
||||||
|
post("", RenewalCtrl::create, Roles(Role.Explicit("ROLE_FLEET_CREATE")))
|
||||||
|
get(
|
||||||
|
"/{id}",
|
||||||
|
RenewalCtrl::get,
|
||||||
|
Roles(Role.Explicit("ROLE_FLEET_VIEW", "ROLE_FLEET_CREATE"))
|
||||||
|
)
|
||||||
|
put("/{id}", RenewalCtrl::update, Roles(Role.Explicit("ROLE_FLEET_CREATE")))
|
||||||
|
post(
|
||||||
|
"/getAll",
|
||||||
|
RenewalCtrl::getAll,
|
||||||
|
Roles(Role.Explicit("ROLE_FLEET_CREATE", "ROLE_FLEET_VIEW"))
|
||||||
|
)
|
||||||
|
delete("/{id}", RenewalCtrl::delete, Roles(Role.Explicit("ROLE_FLEET_CREATE")))
|
||||||
|
}
|
||||||
path("/po") {
|
path("/po") {
|
||||||
get("/next", PurchaseOrderCtrl::getNextNum, Roles(Role.Explicit("ROLE_PO_CREATE")))
|
get("/next", PurchaseOrderCtrl::getNextNum, Roles(Role.Explicit("ROLE_PO_CREATE")))
|
||||||
post("", PurchaseOrderCtrl::create, Roles(Role.Explicit("ROLE_PO_CREATE")))
|
post("", PurchaseOrderCtrl::create, Roles(Role.Explicit("ROLE_PO_CREATE")))
|
||||||
|
|||||||
@ -1040,3 +1040,84 @@ object InvoiceCtrl {
|
|||||||
ctx.json(seq).status(HttpStatus.OK)
|
ctx.json(seq).status(HttpStatus.OK)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object FleetCtrl {
|
||||||
|
fun create(ctx: Context) {
|
||||||
|
val fleet = ctx.bodyAsClass<Fleet>()
|
||||||
|
database.save(fleet)
|
||||||
|
ctx.json(fleet).status(HttpStatus.CREATED)
|
||||||
|
}
|
||||||
|
fun get(ctx: Context) {
|
||||||
|
val id = ctx.pathParam("id").toLong()
|
||||||
|
val fleet = database.find(Fleet::class.java, id)
|
||||||
|
?: throw NotFoundResponse("No fleet found with id $id")
|
||||||
|
ctx.json(fleet).status(HttpStatus.OK)
|
||||||
|
}
|
||||||
|
data class FLTF(val common: CommonFilters, val fleetFilters: FleetFilters)
|
||||||
|
fun getAll(ctx: Context) {
|
||||||
|
val filters = ctx.bodyAsClass<FLTF>()
|
||||||
|
val fleets = searchFleets(filters.common, filters.fleetFilters)
|
||||||
|
val excel = ctx.queryParam("excel")
|
||||||
|
if (excel !== null) {
|
||||||
|
// exportFleets(fleets)
|
||||||
|
val inputStream = FileInputStream("./excel/Fleets.xls")
|
||||||
|
ctx.result(inputStream).status(HttpStatus.OK)
|
||||||
|
} else {
|
||||||
|
ctx.json(fleets).status(HttpStatus.OK)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
fun update(ctx: Context) {
|
||||||
|
val id = ctx.pathParam("id").toLong()
|
||||||
|
val fleet =
|
||||||
|
database.find(Fleet::class.java, id) ?: throw NotFoundResponse("fleet not found for $id")
|
||||||
|
val updatedFleet= ctx.bodyAsClass<Fleet>()
|
||||||
|
fleet.patchValues(updatedFleet)
|
||||||
|
fleet.update()
|
||||||
|
ctx.json(fleet).status(HttpStatus.OK)
|
||||||
|
}
|
||||||
|
fun delete(ctx: Context) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
object RenewalCtrl{
|
||||||
|
fun create(ctx: Context) {
|
||||||
|
val renewal = ctx.bodyAsClass<Renewal>()
|
||||||
|
database.save(renewal)
|
||||||
|
ctx.json(renewal).status(HttpStatus.CREATED)
|
||||||
|
}
|
||||||
|
fun get(ctx: Context) {
|
||||||
|
val id = ctx.pathParam("id").toLong()
|
||||||
|
val renewal = database.find(Renewal::class.java, id)
|
||||||
|
?: throw NotFoundResponse("No renewal found with id $id")
|
||||||
|
ctx.json(renewal).status(HttpStatus.OK)
|
||||||
|
}
|
||||||
|
//data class RNLF(val common: CommonFilters, val renewalFilters: RenewalFilters)
|
||||||
|
fun getAll(ctx: Context) {
|
||||||
|
// val filters = ctx.bodyAsClass<FLTF>()
|
||||||
|
// val renewals = searchRenewals(filters.common, filters.renewalFilters)
|
||||||
|
val renewals = database.find(Renewal::class.java).findList()
|
||||||
|
val excel = ctx.queryParam("excel")
|
||||||
|
if (excel !== null) {
|
||||||
|
// exportRenewals(renewals)
|
||||||
|
val inputStream = FileInputStream("./excel/Renewals.xls")
|
||||||
|
ctx.result(inputStream).status(HttpStatus.OK)
|
||||||
|
} else {
|
||||||
|
ctx.json(renewals).status(HttpStatus.OK)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
fun update(ctx: Context) {
|
||||||
|
val id = ctx.pathParam("id").toLong()
|
||||||
|
val renewal =
|
||||||
|
database.find(Renewal::class.java, id) ?: throw NotFoundResponse("renewal not found for $id")
|
||||||
|
val updatedRenewal= ctx.bodyAsClass<Renewal>()
|
||||||
|
renewal.patchValues(updatedRenewal)
|
||||||
|
renewal.update()
|
||||||
|
ctx.json(renewal).status(HttpStatus.OK)
|
||||||
|
}
|
||||||
|
fun delete(ctx: Context) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -97,6 +97,10 @@ data class PaymentFilters(
|
|||||||
val amountLessThan: Double = Double.MAX_VALUE
|
val amountLessThan: Double = Double.MAX_VALUE
|
||||||
) : CustomFilters
|
) : CustomFilters
|
||||||
|
|
||||||
|
data class FleetFilters(
|
||||||
|
val fleetNameLike: String = IGNORE
|
||||||
|
):CustomFilters
|
||||||
|
|
||||||
fun <T> applyVendorHelper(q: io.ebean.ExpressionList<T>, vids: List<Long>?) {
|
fun <T> applyVendorHelper(q: io.ebean.ExpressionList<T>, vids: List<Long>?) {
|
||||||
if (vids.isNullOrEmpty()) return
|
if (vids.isNullOrEmpty()) return
|
||||||
// q.apply {
|
// q.apply {
|
||||||
@ -266,4 +270,21 @@ fun searchPayments(commonFilters: CommonFilters, paymentFilters: PaymentFilters)
|
|||||||
return q.findList()
|
return q.findList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun searchFleets(filters: CommonFilters, fleetFilters: FleetFilters) : List<Fleet> {
|
||||||
|
val q = database.find(Fleet::class.java)
|
||||||
|
.where()
|
||||||
|
.ilike("name", "%" + fleetFilters.fleetNameLike + "%")
|
||||||
|
|
||||||
|
q.raw("(insurance_renewal_date >= ? and insurance_renewal_date <= ?)" +
|
||||||
|
"or (pollution_renewal_date >= ? and pollution_renewal_date <= ?)" +
|
||||||
|
"or (fitness_renewal_date >= ? and fitness_renewal_date <= ?)",
|
||||||
|
filters.from, filters.to, filters.from, filters.to, filters.from, filters.to
|
||||||
|
)
|
||||||
|
// applyFromToHelper(q, filters.from, filters.to, "insuranceRenewalDate")
|
||||||
|
// applyFromToHelper(q, filters.from, filters.to, "pollutionRenewalDate")
|
||||||
|
// applyFromToHelper(q, filters.from, filters.to, "fitnessRenewalDate")
|
||||||
|
return q.findList()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//if date is null then fromtoheper drops that///
|
//if date is null then fromtoheper drops that///
|
||||||
@ -7,6 +7,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize
|
|||||||
import io.ebean.Model
|
import io.ebean.Model
|
||||||
import io.ebean.annotation.*
|
import io.ebean.annotation.*
|
||||||
import io.ebean.annotation.Index
|
import io.ebean.annotation.Index
|
||||||
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STRestartNumber
|
||||||
import java.time.LocalDate
|
import java.time.LocalDate
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
import javax.persistence.*
|
import javax.persistence.*
|
||||||
@ -518,3 +519,68 @@ open class Payment : BaseTenantModel() {
|
|||||||
@ManyToOne
|
@ManyToOne
|
||||||
var vendor: Vendor? = null
|
var vendor: Vendor? = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
data class FleetRenewal(val renewal : String, val date : LocalDate)
|
||||||
|
@Entity
|
||||||
|
open class Fleet : BaseTenantModel() {
|
||||||
|
fun patchValues(updated: Fleet) {
|
||||||
|
this.name = updated.name
|
||||||
|
this.type = updated.type
|
||||||
|
this.regNumber = updated.regNumber
|
||||||
|
this.model = updated.model
|
||||||
|
this.make = updated.make
|
||||||
|
this.driver = updated.driver
|
||||||
|
this.driverContact = updated.driverContact
|
||||||
|
this.mileage = updated.mileage
|
||||||
|
this.cost = updated.cost
|
||||||
|
this.insuranceRenewalDate = updated.insuranceRenewalDate
|
||||||
|
this.pollutionRenewalDate = updated.pollutionRenewalDate
|
||||||
|
this.fitnessRenewalDate = updated.fitnessRenewalDate
|
||||||
|
this.renewals = updated.renewals
|
||||||
|
}
|
||||||
|
|
||||||
|
var name: String = ""
|
||||||
|
var type: String = ""
|
||||||
|
var regNumber: String = ""
|
||||||
|
var model: String = ""
|
||||||
|
var make: String = ""
|
||||||
|
var driver: String = ""
|
||||||
|
var driverContact: String = ""
|
||||||
|
var mileage: Double = 0.0
|
||||||
|
var cost: Double = 0.0
|
||||||
|
var insuranceRenewalDate: LocalDate? = null
|
||||||
|
var pollutionRenewalDate: LocalDate? = null
|
||||||
|
var fitnessRenewalDate: LocalDate? = null
|
||||||
|
@DbJsonB
|
||||||
|
var renewals: List<FleetRenewal>?=null
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
open class FleetType : BaseTenantModel() {
|
||||||
|
fun patchValues(updated: FleetType) {
|
||||||
|
this.name = updated.name
|
||||||
|
this.personIncharge = updated.personIncharge
|
||||||
|
}
|
||||||
|
|
||||||
|
var name: String = ""
|
||||||
|
var personIncharge: String = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
open class Vehicle : BaseTenantModel() {
|
||||||
|
fun patchValues(updated: Vehicle) {
|
||||||
|
this.name = updated.name
|
||||||
|
}
|
||||||
|
|
||||||
|
var name: String = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
open class Renewal : BaseTenantModel() {
|
||||||
|
fun patchValues(updated: Renewal) {
|
||||||
|
this.name = updated.name
|
||||||
|
}
|
||||||
|
|
||||||
|
var name: String = ""
|
||||||
|
}
|
||||||
33
src/main/resources/dbmigration/1.15.sql
Normal file
33
src/main/resources/dbmigration/1.15.sql
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
-- apply changes
|
||||||
|
create table fleet (
|
||||||
|
sys_pk bigint generated by default as identity not null,
|
||||||
|
deleted_on timestamp,
|
||||||
|
current_approval_level integer default 0 not null,
|
||||||
|
required_approval_levels integer default 0 not null,
|
||||||
|
mileage float not null,
|
||||||
|
cost float not null,
|
||||||
|
insurance_renewal_date date,
|
||||||
|
pollution_renewal_date date,
|
||||||
|
fitness_renewal_date date,
|
||||||
|
deleted boolean default false not null,
|
||||||
|
version integer default 1 not null,
|
||||||
|
created_at timestamp default 'now()' not null,
|
||||||
|
modified_at timestamp default 'now()' not null,
|
||||||
|
deleted_by varchar(255),
|
||||||
|
approval_status varchar(8) default 'APPROVED' not null,
|
||||||
|
tags varchar[] default '{}' not null,
|
||||||
|
comments jsonb default '[]' not null,
|
||||||
|
tenant_id varchar(255) not null,
|
||||||
|
name varchar(255) not null,
|
||||||
|
type varchar(255) not null,
|
||||||
|
reg_number varchar(255) not null,
|
||||||
|
model varchar(255) not null,
|
||||||
|
make varchar(255) not null,
|
||||||
|
driver varchar(255) not null,
|
||||||
|
driver_contact varchar(255) not null,
|
||||||
|
created_by varchar(255) not null,
|
||||||
|
modified_by varchar(255) not null,
|
||||||
|
constraint ck_fleet_approval_status check ( approval_status in ('PENDING','APPROVED','REJECTED')),
|
||||||
|
constraint pk_fleet primary key (sys_pk)
|
||||||
|
);
|
||||||
|
|
||||||
34
src/main/resources/dbmigration/model/1.15.model.xml
Normal file
34
src/main/resources/dbmigration/model/1.15.model.xml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<migration xmlns="http://ebean-orm.github.io/xml/ns/dbmigration">
|
||||||
|
<changeSet type="apply">
|
||||||
|
<createTable name="fleet" pkName="pk_fleet">
|
||||||
|
<column name="sys_pk" type="bigint" primaryKey="true"/>
|
||||||
|
<column name="deleted_on" type="localdatetime"/>
|
||||||
|
<column name="deleted_by" type="varchar"/>
|
||||||
|
<column name="current_approval_level" type="integer" defaultValue="0" notnull="true"/>
|
||||||
|
<column name="required_approval_levels" type="integer" defaultValue="0" notnull="true"/>
|
||||||
|
<column name="approval_status" type="varchar(8)" defaultValue="'APPROVED'" notnull="true" checkConstraint="check ( approval_status in ('PENDING','APPROVED','REJECTED'))" checkConstraintName="ck_fleet_approval_status"/>
|
||||||
|
<column name="tags" type="varchar[]" defaultValue="'{}'" notnull="true"/>
|
||||||
|
<column name="comments" type="jsonb" defaultValue="'[]'" notnull="true"/>
|
||||||
|
<column name="tenant_id" type="varchar" notnull="true"/>
|
||||||
|
<column name="name" type="varchar" notnull="true"/>
|
||||||
|
<column name="type" type="varchar" notnull="true"/>
|
||||||
|
<column name="reg_number" type="varchar" notnull="true"/>
|
||||||
|
<column name="model" type="varchar" notnull="true"/>
|
||||||
|
<column name="make" type="varchar" notnull="true"/>
|
||||||
|
<column name="driver" type="varchar" notnull="true"/>
|
||||||
|
<column name="driver_contact" type="varchar" notnull="true"/>
|
||||||
|
<column name="mileage" type="double" notnull="true"/>
|
||||||
|
<column name="cost" type="double" notnull="true"/>
|
||||||
|
<column name="insurance_renewal_date" type="date"/>
|
||||||
|
<column name="pollution_renewal_date" type="date"/>
|
||||||
|
<column name="fitness_renewal_date" type="date"/>
|
||||||
|
<column name="deleted" type="boolean" defaultValue="false" notnull="true"/>
|
||||||
|
<column name="version" type="integer" defaultValue="1" notnull="true"/>
|
||||||
|
<column name="created_at" type="localdatetime" defaultValue="'now()'" notnull="true"/>
|
||||||
|
<column name="modified_at" type="localdatetime" defaultValue="'now()'" notnull="true"/>
|
||||||
|
<column name="created_by" type="varchar" notnull="true"/>
|
||||||
|
<column name="modified_by" type="varchar" notnull="true"/>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
</migration>
|
||||||
Loading…
x
Reference in New Issue
Block a user