Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Antti Väyrynen
/
Moya
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 3dee93f4
authored
Oct 25, 2014
by
Tuukka Kivilahti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ruokatilauskorjauksia pukkaa
1 parent
117cd4c8
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
857 additions
and
769 deletions
code/moya-beans-client/ejbModule/fi/codecrew/moya/beans/SecurityLogType.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/BillBean.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/BootstrapBean.java
code/moya-database/src/main/java/fi/codecrew/moya/model/Bill.java
code/moya-database/src/main/java/fi/codecrew/moya/model/FoodWave.java
code/moya-database/src/main/java/fi/codecrew/moya/model/FoodWaveTemplate.java
code/moya-web/WebContent/foodadmin/editTemplate.xhtml
code/moya-web/WebContent/foodmanager/listFoodwaves.xhtml
code/moya-web/WebContent/foodmanager/listOrders.xhtml
code/moya-web/src/main/java/fi/codecrew/moya/resources/i18n.properties
code/moya-web/src/main/java/fi/codecrew/moya/resources/i18n_en.properties
code/moya-web/src/main/java/fi/codecrew/moya/resources/i18n_fi.properties
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/shop/FoodWaveView.java
code/moya-beans-client/ejbModule/fi/codecrew/moya/beans/SecurityLogType.java
View file @
3dee93f
...
...
@@ -24,5 +24,6 @@ public enum SecurityLogType {
genericMessage
,
accountEvent
,
verkkomaksu
,
bill
,
}
code/moya-beans/ejbModule/fi/codecrew/moya/beans/BillBean.java
View file @
3dee93f
...
...
@@ -40,6 +40,7 @@ import org.slf4j.LoggerFactory;
import
fi.codecrew.moya.beanutil.PdfPrinter
;
import
fi.codecrew.moya.bortal.views.BillSummary
;
import
fi.codecrew.moya.enums.apps.BillPermission
;
import
fi.codecrew.moya.enums.apps.ShopPermission
;
import
fi.codecrew.moya.enums.apps.SpecialPermission
;
import
fi.codecrew.moya.facade.BillFacade
;
import
fi.codecrew.moya.facade.BillLineFacade
;
...
...
@@ -93,6 +94,9 @@ public class BillBean implements BillBeanLocal {
@EJB
private
DiscountBean
discountBean
;
@EJB
private
LoggingBeanLocal
logbean
;
/**
* Default constructor.
...
...
@@ -228,16 +232,21 @@ public class BillBean implements BillBeanLocal {
SpecialPermission
.
S_VERKKOMAKSU_CHECK
})
public
Bill
markPaid
(
Bill
bill
,
Calendar
when
)
{
bill
=
billFacade
.
reload
(
bill
);
if
(
bill
.
getAccountEvent
()
!=
null
||
bill
.
getPaidDate
()
!=
null
)
{
logbean
.
logMessage
(
SecurityLogType
.
bill
,
permbean
.
getCurrentUser
(),
"Trying to doublemark bill paid"
);
throw
new
EJBException
(
"Bill already marked paid!"
);
}
if
(
bill
.
isFoowavePaymentOver
())
if
(
bill
.
isFoowavePaymentOver
()
&&
!
permbean
.
hasPermission
(
ShopPermission
.
MANAGE_FOODWAVES
)
)
{
logbean
.
logMessage
(
SecurityLogType
.
bill
,
permbean
.
getCurrentUser
(),
"FoodwaveClosed and marking bill for it paid"
);
throw
new
EJBException
(
"Trying to mark paid a closed or left foodwave"
);
}
bill
=
billFacade
.
reload
(
bill
);
Product
creditproduct
=
productBean
.
findCreditProduct
();
EventUser
user
=
bill
.
getUser
();
...
...
@@ -271,6 +280,8 @@ public class BillBean implements BillBeanLocal {
}
}
/*
MailMessage msg = new MailMessage();
String subject = MessageFormat.format(eventbean.getPropertyString(LanEventPropertyKey.BILL_PAID_MAIL_SUBJECT), user.getEvent().getName());
...
...
@@ -280,9 +291,12 @@ public class BillBean implements BillBeanLocal {
msg.setMessage(content);
msg.setTo(bill.getUser().getUser());
utilbean.sendMail(msg);
*/
eventUserFacade
.
flush
();
logbean
.
logMessage
(
SecurityLogType
.
bill
,
permbean
.
getCurrentUser
(),
"Marking bill paid, for user: "
,
bill
.
getUser
().
getId
(),
"BillId: "
,
bill
.
getId
());
eventUserFacade
.
evict
(
bill
.
getUser
());
return
bill
;
}
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/beans/BootstrapBean.java
View file @
3dee93f
...
...
@@ -238,8 +238,13 @@ public class BootstrapBean implements BootstrapBeanLocal {
// tai saadaan poikkeuksia nyrkillä kurkusta .
dbUpdates
.
add
(
new
String
[]
{
"DELETE FROM product_productflags where productflags = 'PREPAID_INSTANT_CREATE'"
});
dbUpdates
.
add
(
new
String
[]
{
"ALTER TABLE food_wave_templates ADD COLUMN wait_payments_minutes integer DEFAULT null;"
,
});
}
// start_time timestamp without time zone,
...
...
code/moya-database/src/main/java/fi/codecrew/moya/model/Bill.java
View file @
3dee93f
...
...
@@ -36,6 +36,7 @@ import javax.persistence.OrderBy;
import
javax.persistence.Table
;
import
javax.persistence.Temporal
;
import
javax.persistence.TemporalType
;
import
javax.persistence.Transient
;
import
javax.persistence.UniqueConstraint
;
import
org.slf4j.Logger
;
...
...
@@ -52,416 +53,448 @@ import fi.codecrew.moya.utilities.BillUtils;
@Table
(
name
=
"bills"
,
uniqueConstraints
=
{
@UniqueConstraint
(
columnNames
=
{
Bill
.
EVENT_ID_COLUMN
,
"bill_number"
})
})
public
class
Bill
extends
GenericEntity
{
/**
/**
*
*/
private
static
final
long
serialVersionUID
=
-
6713643278149221869L
;
public
static
final
String
EVENT_ID_COLUMN
=
"event_id"
;
@ManyToOne
()
@JoinColumn
(
name
=
EVENT_ID_COLUMN
,
nullable
=
false
)
private
LanEvent
event
;
/**
* When the bill is due to be paid.
*/
// Can be calculated from SentDate + paymentTime
// @Column(name = "due_date")
// @Temporal(TemporalType.TIMESTAMP)
// private Calendar dueDate;
/**
* When the money has appeared on the bank account.
*/
@Column
(
name
=
"paid_date"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
paidDate
;
/**
* The bill number from which the reference number will be generated
*
* @see http://www.fkl.fi/www/page/fk_www_1293
*
*/
@Column
(
name
=
"bill_number"
)
private
Integer
billNumber
;
/**
* Address where the bill should be sent;
*/
private
String
addr1
;
private
String
addr2
;
private
String
addr3
;
private
String
addr4
;
private
String
addr5
;
@Column
(
nullable
=
false
,
name
=
"sent_time"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Calendar
sentDate
=
Calendar
.
getInstance
();
@Column
(
name
=
"payment_time"
,
nullable
=
false
)
private
Integer
paymentTime
=
0
;
@Column
(
name
=
"notice_days"
,
nullable
=
false
)
private
String
noticetime
=
"8 vrk"
;
@Column
(
name
=
"their_reference"
,
nullable
=
false
)
private
String
theirReference
=
""
;
@Column
(
name
=
"our_reference"
,
nullable
=
false
)
private
String
ourReference
=
""
;
@Column
(
name
=
"delivery_terms"
,
nullable
=
false
)
private
String
deliveryTerms
=
""
;
@Column
(
name
=
"delay_intrest"
,
nullable
=
false
)
private
Integer
delayIntrest
=
11
;
@Column
(
name
=
"expires"
,
nullable
=
true
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Calendar
expires
=
null
;
/**
* Notes for the event organisators about the bill.
*/
@Lob
@Column
(
name
=
"notes"
)
private
String
notes
;
/**
* Bill may have multiple items on multiple rows.
*/
@OrderBy
(
"id"
)
// @PrivateOwned
@OneToMany
(
mappedBy
=
"bill"
,
cascade
=
CascadeType
.
ALL
)
private
List
<
BillLine
>
billLines
=
new
ArrayList
<
BillLine
>();
public
boolean
isPaid
()
{
return
accountEvent
!=
null
||
paidDate
!=
null
;
}
/**
* When the bill is paid this AccountEvent is created and this is a
* reference to that accountAction. if this bill
*/
@JoinColumn
(
name
=
"account_event_id"
,
referencedColumnName
=
"id"
,
updatable
=
false
)
@OneToOne
private
AccountEvent
accountEvent
;
/**
* User who should pay this bill.
*/
@ManyToOne
(
optional
=
false
)
@JoinColumn
(
updatable
=
false
,
name
=
"eventuser_id"
)
private
EventUser
user
;
@SuppressWarnings
(
"unused"
)
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
Bill
.
class
);
public
Integer
getReferenceNumberBase
()
{
if
(
getEvent
()
!=
null
&&
getEvent
().
getReferenceNumberBase
()
!=
null
&&
getBillNumber
()
!=
null
)
{
return
getEvent
().
getReferenceNumberBase
()
+
getBillNumber
();
}
return
null
;
}
public
Integer
getReferenceNumber
()
{
return
BillUtils
.
createReferenceNumber
(
getReferenceNumberBase
());
}
/**
* Commodity function to calculate the total price of the bill.
*
* @return The total sum of the bill ( unitPrice * units * vat )
*/
public
BigDecimal
totalPrice
()
{
BigDecimal
total
=
BigDecimal
.
ZERO
;
for
(
BillLine
line
:
getBillLines
())
{
total
=
total
.
add
(
line
.
getLinePrice
());
}
return
total
;
}
public
BigDecimal
getTotalPrice
()
{
return
this
.
totalPrice
();
}
/**
* Commodity function to calculate the total price of the bill.
*
* @return The total sum of the bill ( unitPrice * units * vat )
*/
public
BigDecimal
totalVat
()
{
BigDecimal
total
=
BigDecimal
.
ZERO
;
for
(
BillLine
line
:
getBillLines
())
{
total
=
total
.
add
(
line
.
getLineVat
());
}
return
total
;
}
/**
* Commodity function to return the vatless price of the bill
*
* @return The total VAT-less sum of the bill ( unitPrice * units )
*/
public
BigDecimal
totalPriceVatless
()
{
BigDecimal
total
=
BigDecimal
.
ZERO
;
for
(
BillLine
line
:
getBillLines
())
{
total
=
total
.
add
(
line
.
getLinePriceVatless
());
}
return
total
;
}
public
Bill
(
LanEvent
event
,
EventUser
user
,
Calendar
expires
)
{
this
(
event
,
expires
);
this
.
setUser
(
user
);
this
.
setAddr1
(
user
.
getUser
().
getFirstnames
()
+
" "
+
user
.
getUser
().
getLastname
());
this
.
setAddr2
(
user
.
getUser
().
getAddress
());
this
.
setAddr3
(
user
.
getUser
().
getZip
()
+
" "
+
user
.
getUser
().
getTown
());
}
public
Bill
(
LanEvent
event
,
Calendar
expires
)
{
this
();
this
.
expires
=
expires
;
this
.
event
=
event
;
}
public
Bill
(
LanEvent
event
,
EventUser
user
,
long
expireTimeHours
)
{
this
(
event
,
user
,
Calendar
.
getInstance
());
this
.
expires
.
setTimeInMillis
((
System
.
currentTimeMillis
()
+
(
expireTimeHours
*
60
*
60
*
1000
)));
}
public
Bill
(
LanEvent
event
,
long
expireTimeHours
)
{
this
(
event
,
Calendar
.
getInstance
());
this
.
expires
.
setTimeInMillis
((
System
.
currentTimeMillis
()
+
(
expireTimeHours
*
60
*
60
*
1000
)));
}
public
Bill
()
{
super
();
this
.
expires
=
Calendar
.
getInstance
();
this
.
expires
.
setTimeInMillis
((
System
.
currentTimeMillis
()
+
1209600000
));
// 2vk
}
public
Calendar
getDueDate
()
{
Calendar
dueDate
=
Calendar
.
getInstance
();
dueDate
.
setTime
(
this
.
getSentDate
().
getTime
());
dueDate
.
add
(
Calendar
.
DATE
,
this
.
getPaymentTime
());
return
dueDate
;
}
public
String
getNotes
()
{
return
notes
;
}
public
void
setNotes
(
String
notes
)
{
this
.
notes
=
notes
;
}
public
List
<
BillLine
>
getBillLines
()
{
return
billLines
;
}
public
void
setBillLines
(
List
<
BillLine
>
billLineList
)
{
this
.
billLines
=
billLineList
;
}
public
AccountEvent
getAccountEvent
()
{
return
accountEvent
;
}
public
void
setAccountEvent
(
AccountEvent
accoutEventsId
)
{
this
.
accountEvent
=
accoutEventsId
;
}
public
EventUser
getUser
()
{
return
user
;
}
public
void
setUser
(
EventUser
usersId
)
{
this
.
user
=
usersId
;
}
public
Integer
getBillNumber
()
{
return
billNumber
;
}
public
String
getAddr1
()
{
return
addr1
;
}
public
void
setAddr1
(
String
addr1
)
{
this
.
addr1
=
addr1
;
}
public
String
getAddr2
()
{
return
addr2
;
}
public
void
setAddr2
(
String
addr2
)
{
this
.
addr2
=
addr2
;
}
public
String
getAddr3
()
{
return
addr3
;
}
public
void
setAddr3
(
String
addr3
)
{
this
.
addr3
=
addr3
;
}
public
String
getAddr4
()
{
return
addr4
;
}
public
void
setAddr4
(
String
addr4
)
{
this
.
addr4
=
addr4
;
}
public
String
getAddr5
()
{
return
addr5
;
}
public
void
setAddr5
(
String
addr5
)
{
this
.
addr5
=
addr5
;
}
public
String
getNoticetime
()
{
return
noticetime
;
}
public
void
setNoticetime
(
String
noticetime
)
{
this
.
noticetime
=
noticetime
;
}
public
String
getOurReference
()
{
return
ourReference
;
}
public
void
setOurReference
(
String
ourReference
)
{
this
.
ourReference
=
ourReference
;
}
public
void
setTheirReference
(
String
theirReference
)
{
this
.
theirReference
=
theirReference
;
}
public
String
getTheirReference
()
{
return
theirReference
;
}
public
void
setDeliveryTerms
(
String
deliveryTerms
)
{
this
.
deliveryTerms
=
deliveryTerms
;
}
public
String
getDeliveryTerms
()
{
return
deliveryTerms
;
}
public
void
setPaymentTime
(
Integer
paymentTime
)
{
this
.
paymentTime
=
paymentTime
;
}
public
Integer
getPaymentTime
()
{
return
paymentTime
;
}
public
void
setDelayIntrest
(
Integer
delayIntrest
)
{
this
.
delayIntrest
=
delayIntrest
;
}
public
Integer
getDelayIntrest
()
{
return
delayIntrest
;
}
public
void
setBillNumber
(
Integer
billNumber
)
{
this
.
billNumber
=
billNumber
;
}
public
LanEvent
getEvent
()
{
return
event
;
}
public
void
setEvent
(
LanEvent
event
)
{
this
.
event
=
event
;
}
public
Date
getPaidDate
()
{
return
paidDate
;
}
public
void
setPaidDate
(
Date
paidDate
)
{
if
(
paidDate
!=
null
)
expires
=
null
;
this
.
paidDate
=
paidDate
;
}
public
Date
getSentDateTime
()
{
Date
ret
=
null
;
if
(
sentDate
!=
null
)
{
ret
=
sentDate
.
getTime
();
}
return
ret
;
}
public
void
setSentDateTime
(
Date
date
)
{
if
(
date
==
null
)
{
sentDate
=
null
;
}
else
{
if
(
sentDate
==
null
)
{
sentDate
=
Calendar
.
getInstance
();
}
sentDate
.
setTime
(
date
);
}
}
public
Calendar
getSentDate
()
{
return
sentDate
;
}
public
void
setSentDate
(
Calendar
sentDate
)
{
this
.
sentDate
=
sentDate
;
}
public
boolean
isFoowavePaymentOver
()
{
boolean
ret
=
false
;
for
(
BillLine
bl
:
billLines
)
{
if
(
bl
.
getFoodwave
()
!=
null
&&
(
bl
.
getFoodwave
().
getClosed
()
||
bl
.
getFoodwave
().
getTime
().
before
(
new
Date
())))
{
ret
=
true
;
break
;
}
}
return
ret
;
}
public
Calendar
getExpires
()
{
return
expires
;
}
public
void
setExpires
(
Calendar
expires
)
{
this
.
expires
=
expires
;
}
public
boolean
isExpired
()
{
if
(
expires
==
null
)
return
false
;
return
Calendar
.
getInstance
().
after
(
expires
);
}
public
void
markExpired
()
{
if
(
isExpired
()
||
isPaid
())
return
;
expires
=
Calendar
.
getInstance
();
}
private
static
final
long
serialVersionUID
=
-
6713643278149221869L
;
public
static
final
String
EVENT_ID_COLUMN
=
"event_id"
;
@ManyToOne
()
@JoinColumn
(
name
=
EVENT_ID_COLUMN
,
nullable
=
false
)
private
LanEvent
event
;
/**
* When the bill is due to be paid.
*/
// Can be calculated from SentDate + paymentTime
// @Column(name = "due_date")
// @Temporal(TemporalType.TIMESTAMP)
// private Calendar dueDate;
/**
* When the money has appeared on the bank account.
*/
@Column
(
name
=
"paid_date"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
paidDate
;
/**
* The bill number from which the reference number will be generated
*
* @see http://www.fkl.fi/www/page/fk_www_1293
*
*/
@Column
(
name
=
"bill_number"
)
private
Integer
billNumber
;
/**
* Address where the bill should be sent;
*/
private
String
addr1
;
private
String
addr2
;
private
String
addr3
;
private
String
addr4
;
private
String
addr5
;
@Column
(
nullable
=
false
,
name
=
"sent_time"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Calendar
sentDate
=
Calendar
.
getInstance
();
@Column
(
name
=
"payment_time"
,
nullable
=
false
)
private
Integer
paymentTime
=
0
;
@Column
(
name
=
"notice_days"
,
nullable
=
false
)
private
String
noticetime
=
"8 vrk"
;
@Column
(
name
=
"their_reference"
,
nullable
=
false
)
private
String
theirReference
=
""
;
@Column
(
name
=
"our_reference"
,
nullable
=
false
)
private
String
ourReference
=
""
;
@Column
(
name
=
"delivery_terms"
,
nullable
=
false
)
private
String
deliveryTerms
=
""
;
@Column
(
name
=
"delay_intrest"
,
nullable
=
false
)
private
Integer
delayIntrest
=
11
;
@Column
(
name
=
"expires"
,
nullable
=
true
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Calendar
expires
=
null
;
/**
* Notes for the event organisators about the bill.
*/
@Lob
@Column
(
name
=
"notes"
)
private
String
notes
;
/**
* Bill may have multiple items on multiple rows.
*/
@OrderBy
(
"id"
)
// @PrivateOwned
@OneToMany
(
mappedBy
=
"bill"
,
cascade
=
CascadeType
.
ALL
)
private
List
<
BillLine
>
billLines
=
new
ArrayList
<
BillLine
>();
public
boolean
isPaid
()
{
return
accountEvent
!=
null
||
paidDate
!=
null
;
}
/**
* When the bill is paid this AccountEvent is created and this is a
* reference to that accountAction. if this bill
*/
@JoinColumn
(
name
=
"account_event_id"
,
referencedColumnName
=
"id"
,
updatable
=
false
)
@OneToOne
private
AccountEvent
accountEvent
;
/**
* User who should pay this bill.
*/
@ManyToOne
(
optional
=
false
)
@JoinColumn
(
updatable
=
false
,
name
=
"eventuser_id"
)
private
EventUser
user
;
@SuppressWarnings
(
"unused"
)
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
Bill
.
class
);
public
Integer
getReferenceNumberBase
()
{
if
(
getEvent
()
!=
null
&&
getEvent
().
getReferenceNumberBase
()
!=
null
&&
getBillNumber
()
!=
null
)
{
return
getEvent
().
getReferenceNumberBase
()
+
getBillNumber
();
}
return
null
;
}
public
Integer
getReferenceNumber
()
{
return
BillUtils
.
createReferenceNumber
(
getReferenceNumberBase
());
}
/**
* Commodity function to calculate the total price of the bill.
*
* @return The total sum of the bill ( unitPrice * units * vat )
*/
public
BigDecimal
totalPrice
()
{
BigDecimal
total
=
BigDecimal
.
ZERO
;
for
(
BillLine
line
:
getBillLines
())
{
total
=
total
.
add
(
line
.
getLinePrice
());
}
return
total
;
}
public
BigDecimal
getTotalPrice
()
{
return
this
.
totalPrice
();
}
/**
* Commodity function to calculate the total price of the bill.
*
* @return The total sum of the bill ( unitPrice * units * vat )
*/
public
BigDecimal
totalVat
()
{
BigDecimal
total
=
BigDecimal
.
ZERO
;
for
(
BillLine
line
:
getBillLines
())
{
total
=
total
.
add
(
line
.
getLineVat
());
}
return
total
;
}
/**
* Commodity function to return the vatless price of the bill
*
* @return The total VAT-less sum of the bill ( unitPrice * units )
*/
public
BigDecimal
totalPriceVatless
()
{
BigDecimal
total
=
BigDecimal
.
ZERO
;
for
(
BillLine
line
:
getBillLines
())
{
total
=
total
.
add
(
line
.
getLinePriceVatless
());
}
return
total
;
}
public
Bill
(
LanEvent
event
,
EventUser
user
,
Calendar
expires
)
{
this
(
event
,
expires
);
this
.
setUser
(
user
);
this
.
setAddr1
(
user
.
getUser
().
getFirstnames
()
+
" "
+
user
.
getUser
().
getLastname
());
this
.
setAddr2
(
user
.
getUser
().
getAddress
());
this
.
setAddr3
(
user
.
getUser
().
getZip
()
+
" "
+
user
.
getUser
().
getTown
());
}
public
Bill
(
LanEvent
event
,
Calendar
expires
)
{
this
();
this
.
expires
=
expires
;
this
.
event
=
event
;
}
public
Bill
(
LanEvent
event
,
EventUser
user
,
long
expireTimeHours
)
{
this
(
event
,
user
,
Calendar
.
getInstance
());
this
.
expires
.
setTimeInMillis
((
System
.
currentTimeMillis
()
+
(
expireTimeHours
*
60
*
60
*
1000
)));
}
public
Bill
(
LanEvent
event
,
long
expireTimeHours
)
{
this
(
event
,
Calendar
.
getInstance
());
this
.
expires
.
setTimeInMillis
((
System
.
currentTimeMillis
()
+
(
expireTimeHours
*
60
*
60
*
1000
)));
}
public
Bill
()
{
super
();
this
.
expires
=
Calendar
.
getInstance
();
this
.
expires
.
setTimeInMillis
((
System
.
currentTimeMillis
()
+
1209600000
));
// 2vk
}
public
Calendar
getDueDate
()
{
Calendar
dueDate
=
Calendar
.
getInstance
();
dueDate
.
setTime
(
this
.
getSentDate
().
getTime
());
dueDate
.
add
(
Calendar
.
DATE
,
this
.
getPaymentTime
());
return
dueDate
;
}
public
String
getNotes
()
{
return
notes
;
}
public
void
setNotes
(
String
notes
)
{
this
.
notes
=
notes
;
}
public
List
<
BillLine
>
getBillLines
()
{
return
billLines
;
}
public
void
setBillLines
(
List
<
BillLine
>
billLineList
)
{
this
.
billLines
=
billLineList
;
}
public
AccountEvent
getAccountEvent
()
{
return
accountEvent
;
}
public
void
setAccountEvent
(
AccountEvent
accoutEventsId
)
{
this
.
accountEvent
=
accoutEventsId
;
}
public
EventUser
getUser
()
{
return
user
;
}
public
void
setUser
(
EventUser
usersId
)
{
this
.
user
=
usersId
;
}
public
Integer
getBillNumber
()
{
return
billNumber
;
}
public
String
getAddr1
()
{
return
addr1
;
}
public
void
setAddr1
(
String
addr1
)
{
this
.
addr1
=
addr1
;
}
public
String
getAddr2
()
{
return
addr2
;
}
public
void
setAddr2
(
String
addr2
)
{
this
.
addr2
=
addr2
;
}
public
String
getAddr3
()
{
return
addr3
;
}
public
void
setAddr3
(
String
addr3
)
{
this
.
addr3
=
addr3
;
}
public
String
getAddr4
()
{
return
addr4
;
}
public
void
setAddr4
(
String
addr4
)
{
this
.
addr4
=
addr4
;
}
public
String
getAddr5
()
{
return
addr5
;
}
public
void
setAddr5
(
String
addr5
)
{
this
.
addr5
=
addr5
;
}
public
String
getNoticetime
()
{
return
noticetime
;
}
public
void
setNoticetime
(
String
noticetime
)
{
this
.
noticetime
=
noticetime
;
}
public
String
getOurReference
()
{
return
ourReference
;
}
public
void
setOurReference
(
String
ourReference
)
{
this
.
ourReference
=
ourReference
;
}
public
void
setTheirReference
(
String
theirReference
)
{
this
.
theirReference
=
theirReference
;
}
public
String
getTheirReference
()
{
return
theirReference
;
}
public
void
setDeliveryTerms
(
String
deliveryTerms
)
{
this
.
deliveryTerms
=
deliveryTerms
;
}
public
String
getDeliveryTerms
()
{
return
deliveryTerms
;
}
public
void
setPaymentTime
(
Integer
paymentTime
)
{
this
.
paymentTime
=
paymentTime
;
}
public
Integer
getPaymentTime
()
{
return
paymentTime
;
}
public
void
setDelayIntrest
(
Integer
delayIntrest
)
{
this
.
delayIntrest
=
delayIntrest
;
}
public
Integer
getDelayIntrest
()
{
return
delayIntrest
;
}
public
void
setBillNumber
(
Integer
billNumber
)
{
this
.
billNumber
=
billNumber
;
}
public
LanEvent
getEvent
()
{
return
event
;
}
public
void
setEvent
(
LanEvent
event
)
{
this
.
event
=
event
;
}
public
Date
getPaidDate
()
{
return
paidDate
;
}
public
void
setPaidDate
(
Date
paidDate
)
{
if
(
paidDate
!=
null
)
expires
=
null
;
this
.
paidDate
=
paidDate
;
}
public
Date
getSentDateTime
()
{
Date
ret
=
null
;
if
(
sentDate
!=
null
)
{
ret
=
sentDate
.
getTime
();
}
return
ret
;
}
public
void
setSentDateTime
(
Date
date
)
{
if
(
date
==
null
)
{
sentDate
=
null
;
}
else
{
if
(
sentDate
==
null
)
{
sentDate
=
Calendar
.
getInstance
();
}
sentDate
.
setTime
(
date
);
}
}
public
Calendar
getSentDate
()
{
return
sentDate
;
}
public
void
setSentDate
(
Calendar
sentDate
)
{
this
.
sentDate
=
sentDate
;
}
public
boolean
isFoowavePaymentOver
()
{
for
(
BillLine
bl
:
billLines
)
{
if
(
bl
.
getFoodwave
()
!=
null
)
{
if
(
bl
.
getFoodwave
().
isPaymentOver
())
{
return
true
;
}
}
}
return
false
;
}
public
Calendar
getExpires
()
{
return
expires
;
}
public
void
setExpires
(
Calendar
expires
)
{
this
.
expires
=
expires
;
}
public
boolean
isExpired
()
{
if
(
expires
==
null
)
return
false
;
return
Calendar
.
getInstance
().
after
(
expires
);
}
public
void
markExpired
()
{
if
(
isExpired
()
||
isPaid
())
return
;
expires
=
Calendar
.
getInstance
();
}
@Transient
public
BigDecimal
getTotalQuantity
()
{
BigDecimal
total
=
BigDecimal
.
ZERO
;
for
(
BillLine
l
:
getBillLines
())
{
if
(
l
==
null
||
l
.
getQuantity
()
==
null
)
continue
;
total
.
add
(
l
.
getQuantity
());
}
return
total
;
}
@Transient
public
String
getProductSummary
()
{
String
summary
=
""
;
for
(
BillLine
l
:
getBillLines
())
{
if
(
l
==
null
||
l
.
getQuantity
()
==
null
)
continue
;
if
(!
summary
.
isEmpty
())
{
summary
+=
", "
;
}
summary
+=
l
.
getName
();
}
return
summary
;
}
}
...
...
@@ -470,7 +503,3 @@ public class Bill extends GenericEntity {
code/moya-database/src/main/java/fi/codecrew/moya/model/FoodWave.java
View file @
3dee93f
...
...
@@ -36,6 +36,7 @@ import javax.persistence.OneToMany;
import
javax.persistence.Table
;
import
javax.persistence.Temporal
;
import
javax.persistence.TemporalType
;
import
javax.persistence.Transient
;
/**
*
...
...
@@ -44,220 +45,246 @@ import javax.persistence.TemporalType;
@Table
(
name
=
"food_waves"
)
public
class
FoodWave
extends
GenericEntity
{
private
static
final
long
serialVersionUID
=
9221716203467295049L
;
private
static
final
long
serialVersionUID
=
9221716203467295049L
;
@Column
(
name
=
"wave_name"
,
nullable
=
false
)
private
String
name
;
@Lob
@Column
(
name
=
"wave_description"
)
private
String
description
;
@Column
(
name
=
"wave_time"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
time
;
@Column
(
name
=
"max_foods"
)
private
Integer
maximumFoods
;
@Column
(
name
=
"wave_closed"
,
nullable
=
false
,
columnDefinition
=
"boolean default false"
)
private
boolean
closed
=
false
;
@OneToMany
(
mappedBy
=
"foodWave"
)
private
List
<
AccountEvent
>
accountEvents
;
@OneToMany
(
mappedBy
=
"foodwave"
)
private
List
<
BillLine
>
billLines
;
@ManyToOne
@JoinColumn
(
name
=
"template_id"
,
referencedColumnName
=
"id"
,
nullable
=
false
)
private
FoodWaveTemplate
template
;
public
FoodWave
()
{
super
();
}
public
FoodWave
(
String
waveName
,
boolean
waveClosed
)
{
super
();
this
.
name
=
waveName
;
this
.
closed
=
waveClosed
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
waveName
)
{
this
.
name
=
waveName
;
}
public
String
getDescription
()
{
return
description
;
}
public
void
setDescription
(
String
waveDescription
)
{
this
.
description
=
waveDescription
;
}
public
Date
getTime
()
{
return
time
;
}
public
void
setTime
(
Date
waveTime
)
{
this
.
time
=
waveTime
;
}
public
boolean
getClosed
()
{
return
closed
;
}
public
boolean
isClosed
()
{
return
closed
;
}
public
void
setClosed
(
boolean
waveClosed
)
{
this
.
closed
=
waveClosed
;
}
public
void
toggleClosed
()
{
this
.
closed
=
!
isClosed
();
}
public
List
<
AccountEvent
>
getAccountEvents
()
{
return
accountEvents
;
}
public
void
setAccountEvents
(
List
<
AccountEvent
>
accountEventList
)
{
this
.
accountEvents
=
accountEventList
;
}
public
void
setTemplate
(
FoodWaveTemplate
template
)
{
this
.
template
=
template
;
}
public
FoodWaveTemplate
getTemplate
()
{
return
template
;
}
public
boolean
isFull
()
{
if
(
getMaximumFoods
()
<=
0
)
{
return
false
;
}
if
(
getReservedCount
()
>=
getMaximumFoods
())
{
return
true
;
}
return
false
;
}
/**
* Check if foodwave is orderable
*
* That means that it's not closed, full and it's in future
*
* @return
*/
public
boolean
isOrderable
()
{
if
(
isClosed
())
{
return
false
;
}
if
(
getTime
().
before
(
new
Date
()))
{
return
false
;
}
if
(
isFull
())
{
return
false
;
}
return
true
;
}
public
List
<
Product
>
getOrderedProducts
()
{
List
<
Product
>
retlist
=
new
ArrayList
<
Product
>();
if
(
getAccountEvents
()
!=
null
)
{
for
(
AccountEvent
ae
:
getAccountEvents
())
{
if
(!
retlist
.
contains
(
ae
.
getProduct
()))
{
retlist
.
add
(
ae
.
getProduct
());
}
}
}
return
retlist
;
}
public
List
<
BillLine
>
getBillLines
()
{
return
billLines
;
}
public
Integer
getMaximumFoods
()
{
if
(
maximumFoods
==
null
)
{
return
0
;
}
return
maximumFoods
;
}
public
void
setBillLines
(
List
<
BillLine
>
billLines
)
{
this
.
billLines
=
billLines
;
}
public
Integer
getReservedCount
()
{
Integer
retval
=
0
;
retval
+=
getOrderedCount
();
retval
+=
getUnpaidCount
();
return
retval
;
}
public
void
setMaximumFoods
(
Integer
maximumFoods
)
{
this
.
maximumFoods
=
maximumFoods
;
}
public
Integer
getUnpaidCount
()
{
Integer
ret
=
0
;
for
(
BillLine
line
:
getBillLines
())
{
if
(!
line
.
getBill
().
isPaid
())
{
ret
+=
line
.
getQuantity
().
intValue
();
}
}
return
ret
;
}
public
Integer
getOrderedCount
()
{
Integer
ret
=
0
;
if
(
getAccountEvents
()
!=
null
)
{
for
(
AccountEvent
ae
:
getAccountEvents
())
{
ret
+=
ae
.
getQuantity
().
intValue
();
}
}
return
ret
;
}
public
boolean
isDelivered
()
{
if
(
getAccountEvents
()
!=
null
&&
getReservedCount
()
!=
0
)
{
for
(
AccountEvent
ae
:
getAccountEvents
())
{
if
(
ae
.
isEventDelivered
())
{
return
true
;
}
}
return
false
;
}
return
true
;
}
}
@Column
(
name
=
"wave_name"
,
nullable
=
false
)
private
String
name
;
@Lob
@Column
(
name
=
"wave_description"
)
private
String
description
;
@Column
(
name
=
"wave_time"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
time
;
@Column
(
name
=
"max_foods"
)
private
Integer
maximumFoods
;
@Column
(
name
=
"wave_closed"
,
nullable
=
false
,
columnDefinition
=
"boolean default false"
)
private
boolean
closed
=
false
;
@OneToMany
(
mappedBy
=
"foodWave"
)
private
List
<
AccountEvent
>
accountEvents
;
@OneToMany
(
mappedBy
=
"foodwave"
)
private
List
<
BillLine
>
billLines
;
@ManyToOne
@JoinColumn
(
name
=
"template_id"
,
referencedColumnName
=
"id"
,
nullable
=
false
)
private
FoodWaveTemplate
template
;
public
FoodWave
()
{
super
();
}
public
FoodWave
(
String
waveName
,
boolean
waveClosed
)
{
super
();
this
.
name
=
waveName
;
this
.
closed
=
waveClosed
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
waveName
)
{
this
.
name
=
waveName
;
}
public
String
getDescription
()
{
return
description
;
}
public
void
setDescription
(
String
waveDescription
)
{
this
.
description
=
waveDescription
;
}
public
Date
getTime
()
{
return
time
;
}
public
void
setTime
(
Date
waveTime
)
{
this
.
time
=
waveTime
;
}
public
boolean
getClosed
()
{
return
closed
;
}
public
boolean
isClosed
()
{
return
closed
;
}
public
void
setClosed
(
boolean
waveClosed
)
{
this
.
closed
=
waveClosed
;
}
public
void
toggleClosed
()
{
this
.
closed
=
!
isClosed
();
}
public
List
<
AccountEvent
>
getAccountEvents
()
{
return
accountEvents
;
}
public
void
setAccountEvents
(
List
<
AccountEvent
>
accountEventList
)
{
this
.
accountEvents
=
accountEventList
;
}
public
void
setTemplate
(
FoodWaveTemplate
template
)
{
this
.
template
=
template
;
}
public
FoodWaveTemplate
getTemplate
()
{
return
template
;
}
public
boolean
isFull
()
{
if
(
getMaximumFoods
()
<=
0
)
{
return
false
;
}
if
(
getReservedCount
()
>=
getMaximumFoods
())
{
return
true
;
}
return
false
;
}
/**
* Check if foodwave is orderable
*
* That means that it's not closed, full and it's in future
*
* @return
*/
public
boolean
isOrderable
()
{
if
(
isClosed
())
{
return
false
;
}
if
(
getTime
().
before
(
new
Date
()))
{
return
false
;
}
if
(
isFull
())
{
return
false
;
}
return
true
;
}
public
List
<
Product
>
getOrderedProducts
()
{
List
<
Product
>
retlist
=
new
ArrayList
<
Product
>();
if
(
getAccountEvents
()
!=
null
)
{
for
(
AccountEvent
ae
:
getAccountEvents
())
{
if
(!
retlist
.
contains
(
ae
.
getProduct
()))
{
retlist
.
add
(
ae
.
getProduct
());
}
}
}
return
retlist
;
}
public
List
<
BillLine
>
getBillLines
()
{
return
billLines
;
}
public
Integer
getMaximumFoods
()
{
if
(
maximumFoods
==
null
)
{
return
0
;
}
return
maximumFoods
;
}
public
void
setBillLines
(
List
<
BillLine
>
billLines
)
{
this
.
billLines
=
billLines
;
}
public
Integer
getReservedCount
()
{
Integer
retval
=
0
;
retval
+=
getOrderedCount
();
retval
+=
getUnpaidCount
();
return
retval
;
}
public
void
setMaximumFoods
(
Integer
maximumFoods
)
{
this
.
maximumFoods
=
maximumFoods
;
}
public
Integer
getUnpaidCount
()
{
Integer
ret
=
0
;
for
(
BillLine
line
:
getBillLines
())
{
if
(!
line
.
getBill
().
isPaid
())
{
ret
+=
line
.
getQuantity
().
intValue
();
}
}
return
ret
;
}
public
Integer
getOrderedCount
()
{
Integer
ret
=
0
;
if
(
getAccountEvents
()
!=
null
)
{
for
(
AccountEvent
ae
:
getAccountEvents
())
{
ret
+=
ae
.
getQuantity
().
intValue
();
}
}
return
ret
;
}
public
Integer
getDeliveredCount
()
{
Integer
delCount
=
new
Integer
(
0
);
if
(
getAccountEvents
()
!=
null
&&
getReservedCount
()
!=
0
)
{
for
(
AccountEvent
ae
:
getAccountEvents
())
{
if
(
ae
.
isEventDelivered
())
{
delCount
++;
}
}
}
return
delCount
;
}
public
boolean
isDelivered
()
{
if
(
getAccountEvents
()
!=
null
&&
getReservedCount
()
!=
0
)
{
for
(
AccountEvent
ae
:
getAccountEvents
())
{
if
(!
ae
.
isEventDelivered
())
{
return
false
;
}
}
}
return
true
;
}
@Transient
public
Date
getLastPaymentTime
()
{
return
new
Date
(
getTime
().
getTime
()
+
(
getTemplate
().
getWaitPaymentsMinutes
().
longValue
()
*
60
l
*
1000
l
));
}
public
boolean
isPaymentOver
()
{
// add this magical "wait payments this amount of minutes" to foodwave
Date
endDate
=
new
Date
(
getTime
().
getTime
()
+
(
getTemplate
().
getWaitPaymentsMinutes
().
longValue
()
*
60
l
*
1000
l
));
if
(
isClosed
()
||
endDate
.
before
(
new
Date
()))
{
return
true
;
}
return
false
;
}
}
code/moya-database/src/main/java/fi/codecrew/moya/model/FoodWaveTemplate.java
View file @
3dee93f
...
...
@@ -66,6 +66,9 @@ public class FoodWaveTemplate extends GenericEntity {
@Column
(
name
=
"max_foods"
)
private
Integer
maximumFoods
;
@Column
(
name
=
"wait_payments_minutes"
)
private
Integer
waitPaymentsMinutes
=
0
;
public
FoodWaveTemplate
()
{
}
...
...
@@ -135,4 +138,16 @@ public class FoodWaveTemplate extends GenericEntity {
return
returnList
;
}
public
Integer
getWaitPaymentsMinutes
()
{
if
(
waitPaymentsMinutes
==
null
)
waitPaymentsMinutes
=
0
;
return
waitPaymentsMinutes
;
}
public
void
setWaitPaymentsMinutes
(
Integer
waitPaymentsMinutes
)
{
this
.
waitPaymentsMinutes
=
waitPaymentsMinutes
;
}
}
code/moya-web/WebContent/foodadmin/editTemplate.xhtml
View file @
3dee93f
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:f=
"http://java.sun.com/jsf/core"
xmlns:products=
"http://java.sun.com/jsf/composite/cditools/products"
xmlns:users=
"http://java.sun.com/jsf/composite/cditools/user"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
xmlns:p=
"http://primefaces.org/ui"
>
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:f=
"http://java.sun.com/jsf/core"
xmlns:products=
"http://java.sun.com/jsf/composite/cditools/products"
xmlns:users=
"http://java.sun.com/jsf/composite/cditools/user"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
xmlns:p=
"http://primefaces.org/ui"
>
<h:body>
<ui:composition
template=
"#{sessionHandler.template}"
>
<ui:composition
template=
"#{sessionHandler.template}"
>
<f:metadata>
<f:viewParam
name=
"id"
value=
"#{foodWaveView.templateId}"
/>
<f:event
type=
"preRenderView"
listener=
"#{foodWaveView.initEditTemplate()}"
/>
<f:event
type=
"preRenderView"
listener=
"#{foodWaveView.initEditTemplate()}"
/>
</f:metadata>
<ui:define
name=
"title"
>
...
...
@@ -27,58 +18,46 @@
<p:panel
header=
"#{i18n['foodwavetemplate.edit']}"
>
<h:form>
<h:panelGrid
columns=
"3"
>
<h:outputLabel
for=
"name"
value=
"#{i18n['foodwave.template.name']}"
/>
<h:outputLabel
for=
"name"
value=
"#{i18n['foodwave.template.name']}"
/>
<h:inputText
id=
"name"
value=
"#{foodWaveView.template.name}"
/>
<h:message
for=
"name"
/>
<h:outputLabel
for=
"desc"
value=
"#{i18n['foodwave.template.description']}"
/>
<h:inputText
id=
"desc"
value=
"#{foodWaveView.template.description}"
/>
<h:outputLabel
for=
"desc"
value=
"#{i18n['foodwave.template.description']}"
/>
<h:inputText
id=
"desc"
value=
"#{foodWaveView.template.description}"
/>
<h:message
for=
"desc"
/>
<h:outputLabel
for=
"overtime"
value=
"#{i18n['foodwave.template.waitPaymentsMinutes']}"
/>
<p:spinner
id=
"overtime"
value=
"#{foodWaveView.template.waitPaymentsMinutes}"
suffix=
"#{i18n['suffix.minutes']}"
min=
"0"
/>
<h:message
for=
"overtime"
/>
<h:outputText
value=
" "
/>
<h:commandButton
action=
"#{foodWaveView.saveTemplate()}"
value=
"#{i18n['foodwavetemplate.save']}"
/>
<h:commandButton
action=
"#{foodWaveView.saveTemplate()}"
value=
"#{i18n['foodwavetemplate.save']}"
/>
</h:panelGrid>
</h:form>
<h:form>
<h:selectOneMenu
value=
"#{foodWaveView.currentProduct}"
converter=
"#{productConverter}"
>
<f:selectItems
value=
"#{foodWaveView.products}"
var=
"product"
itemLabel=
"#{product.name}"
></f:selectItems>
<h:selectOneMenu
value=
"#{foodWaveView.currentProduct}"
converter=
"#{productConverter}"
>
<f:selectItems
value=
"#{foodWaveView.products}"
var=
"product"
itemLabel=
"#{product.name}"
></f:selectItems>
</h:selectOneMenu>
<p:commandButton
value=
"#{i18n['foodwavetemplate.addproduct']}"
actionListener=
"#{foodWaveView.addProductToTemplate}"
ajax=
"false"
/>
<p:commandButton
value=
"#{i18n['foodwavetemplate.addproduct']}"
actionListener=
"#{foodWaveView.addProductToTemplate}"
ajax=
"false"
/>
</h:form>
<h:form>
<h:panelGrid
columns=
"4"
>
<h:outputText
value=
"#{i18n['foodwavetemplate.productname']}"
/>
<h:outputText
value=
"#{i18n['foodwavetemplate.productdescription']}"
/>
<h:outputText
value=
"#{i18n['foodwavetemplate.productdescription']}"
/>
<h:outputText
value=
"#{i18n['foodwavetemplate.price']}"
/>
<h:outputText
value=
" "
/>
<h:inputText
id=
"productname"
value=
"#{foodWaveView.currentProduct.name}"
/>
<h:inputText
id=
"productdescription"
value=
"#{foodWaveView.currentProduct.description}"
/>
<h:inputText
id=
"price"
value=
"#{foodWaveView.currentProduct.price}"
/>
<h:inputText
id=
"productname"
value=
"#{foodWaveView.currentProduct.name}"
/>
<h:inputText
id=
"productdescription"
value=
"#{foodWaveView.currentProduct.description}"
/>
<h:inputText
id=
"price"
value=
"#{foodWaveView.currentProduct.price}"
/>
<p:commandButton
value=
"#{i18n['foodwavetemplate.addproduct']}"
actionListener=
"#{foodWaveView.addProductToTemplate}"
ajax=
"false"
/>
<p:commandButton
value=
"#{i18n['foodwavetemplate.addproduct']}"
actionListener=
"#{foodWaveView.addProductToTemplate}"
ajax=
"false"
/>
</h:panelGrid>
</h:form>
<h:form>
<p:dataTable
name=
"productTable"
id=
"productTable"
value=
"#{foodWaveView.template.products}"
var=
"product"
editable=
"true"
>
<p:dataTable
name=
"productTable"
id=
"productTable"
value=
"#{foodWaveView.template.products}"
var=
"product"
editable=
"true"
>
<p:ajax
event=
"rowEdit"
listener=
"#{foodWaveView.onEdit}"
/>
...
...
@@ -89,20 +68,17 @@
<h:outputText
value=
"#{product.name}"
/>
</f:facet>
<f:facet
name=
"input"
>
<p:inputText
value=
"#{product.name}"
style=
"width:100%"
required=
"true"
requiredMessage=
"Name required"
/>
<p:inputText
value=
"#{product.name}"
style=
"width:100%"
required=
"true"
requiredMessage=
"Name required"
/>
</f:facet>
</p:cellEditor>
</p:column>
<p:column
headerText=
"#{i18n['foodwavetemplate.productdescription']}"
>
<p:column
headerText=
"#{i18n['foodwavetemplate.productdescription']}"
>
<p:cellEditor>
<f:facet
name=
"output"
>
<h:outputText
value=
"#{product.description}"
/>
</f:facet>
<f:facet
name=
"input"
>
<p:inputText
value=
"#{product.description}"
style=
"width:100%"
required=
"true"
requiredMessage=
"Description required"
/>
<p:inputText
value=
"#{product.description}"
style=
"width:100%"
required=
"true"
requiredMessage=
"Description required"
/>
</f:facet>
</p:cellEditor>
</p:column>
...
...
@@ -112,52 +88,38 @@
<h:outputText
value=
"#{product.price}"
/>
</f:facet>
<f:facet
name=
"input"
>
<p:inputText
value=
"#{product.price}"
style=
"width:100%"
required=
"true"
requiredMessage=
"Price required"
/>
<p:inputText
value=
"#{product.price}"
style=
"width:100%"
required=
"true"
requiredMessage=
"Price required"
/>
</f:facet>
</p:cellEditor>
</p:column>
<p:column
headerText=
"#{i18n['foodwavetemplate.editRow']}"
style=
"width:20px"
>
<p:column
style=
"width:20px"
>
<p:rowEditor
/>
</p:column>
<p:column
headerText=
"#{i18n['foodwavetemplate.actions']}"
style=
"width:20px;"
>
<p:commandButton
value=
"#{i18n['foodwavetemplate.removeFromList']}"
action=
"#{foodWaveView.removeProductFromList(product)}"
update=
"productTable"
/>
<p:column
style=
"width:70px"
>
<p:commandButton
value=
"#{i18n['foodwavetemplate.removeFromList']}"
action=
"#{foodWaveView.removeProductFromList(product)}"
update=
"productTable"
/>
</p:column>
</p:dataTable>
<h:commandButton
action=
"#{foodWaveView.saveTemplate()}"
value=
"#{i18n['foodwavetemplate.savetemplate']}"
/>
<h:commandButton
action=
"#{foodWaveView.saveTemplate()}"
value=
"#{i18n['foodwavetemplate.savetemplate']}"
/>
<!-- -->
</h:form>
</h:form>
</p:panel>
<h:form>
<p:panel
header=
"#{i18n['foodwavetemplate.createwave']}"
>
<h:panelGrid
columns=
"3"
>
<h:outputLabel
for=
"waveName"
value=
"#{i18n['foodwavetemplate.waveName']}"
/>
<h:inputText
id=
"waveName"
value=
"#{foodWaveView.selectedFoodWave.name}"
/>
<h:outputLabel
for=
"waveName"
value=
"#{i18n['foodwavetemplate.waveName']}"
/>
<h:inputText
id=
"waveName"
value=
"#{foodWaveView.selectedFoodWave.name}"
/>
<h:message
for=
"waveName"
/>
<h:outputLabel
for=
"waveMaxFoods"
value=
"#{i18n['foodwavetemplate.maxfoods']}"
/>
<h:inputText
id=
"waveMaxFoods"
value=
"#{foodWaveView.selectedFoodWave.maximumFoods}"
/>
<h:outputLabel
for=
"waveMaxFoods"
value=
"#{i18n['foodwavetemplate.maxfoods']}"
/>
<h:inputText
id=
"waveMaxFoods"
value=
"#{foodWaveView.selectedFoodWave.maximumFoods}"
/>
<h:message
for=
"waveMaxFoods"
/>
<h:outputLabel
for=
"startTime"
value=
"#{i18n['foodwavetemplate.startTime']}"
/>
<p:calendar
id=
"startTime"
value=
"#{foodWaveView.startDate}"
pattern=
"dd.MM.yyyy HH:mm"
/>
<h:outputLabel
for=
"startTime"
value=
"#{i18n['foodwavetemplate.startTime']}"
/>
<p:calendar
id=
"startTime"
value=
"#{foodWaveView.startDate}"
pattern=
"dd.MM.yyyy HH:mm"
/>
<h:message
for=
"startTime"
/>
</h:panelGrid>
<h:commandButton
action=
"#{foodWaveView.createFoodwave()}"
value=
"#{i18n['foodwavetemplate.createFoodwave']}"
/>
<h:commandButton
action=
"#{foodWaveView.createFoodwave()}"
value=
"#{i18n['foodwavetemplate.createFoodwave']}"
/>
</p:panel>
</h:form>
</ui:define>
...
...
code/moya-web/WebContent/foodmanager/listFoodwaves.xhtml
View file @
3dee93f
...
...
@@ -64,6 +64,13 @@
</f:facet>
<h:outputText
value=
"#{foodwave.unpaidCount}"
/>
</p:column>
<p:column
styleClass=
"text-center"
>
<f:facet
name=
"header"
>
<h:outputText
value=
"${i18n['foodWave.deliveredCount']}"
/>
</f:facet>
<h:outputText
value=
"#{foodwave.deliveredCount}"
/>
</p:column>
<p:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"${i18n['foodWave.totalReserved']}"
/>
...
...
code/moya-web/WebContent/foodmanager/listOrders.xhtml
View file @
3dee93f
...
...
@@ -12,8 +12,8 @@
<h1>
#{foodWaveView.selectedFoodWave.name}
</h1>
</ui:define>
<ui:define
name=
"content"
>
<h:form>
<p:dataTable
styleClass=
"bordertable"
value=
"#{foodWaveView.accountEventLines}"
var=
"acc_line"
sortBy=
"#{acc_line.user.nick}"
>
<h:form
id=
"accountEventList"
>
<p:dataTable
styleClass=
"bordertable"
value=
"#{foodWaveView.accountEventLines}"
var=
"acc_line"
sortBy=
"#{acc_line.user.nick}"
rowStyleClass=
"#{acc_line.eventDelivered?'success':null}"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['foodWave.accountevents']}"
/>
</f:facet>
...
...
@@ -43,9 +43,7 @@
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['acc_line.eventuser']}"
/>
</f:facet>
<h:link
outcome=
"/useradmin/edit"
value=
"#{acc_line.user.wholeName}"
>
<f:param
name=
"userid"
value=
"#{acc_line.user.id}"
/>
</h:link>
<h:outputText
outcome=
"/useradmin/edit"
value=
"#{acc_line.user.wholeName}"
/>
</p:column>
<p:column
sortBy=
"#{acc_line.user.nick}"
>
<f:facet
name=
"header"
>
...
...
@@ -60,7 +58,7 @@
<h:outputLabel
value=
"#{i18n['accountEvent.delivered']}"
/>
</f:facet>
<h:outputText
rendered=
"#{acc_line.eventDelivered}"
value=
"#{i18n['accountEvent.delivered']}"
/>
<
h:commandButton
rendered=
"#{not acc_line.eventDelivered}"
value=
"#{i18n['accountEvent.deliver']}"
action=
"#{foodWaveView.deliverAccountEvent}
"
/>
<
p:commandButton
rendered=
"#{not acc_line.eventDelivered}"
value=
"#{i18n['accountEvent.deliver']}"
actionListener=
"#{foodWaveView.deliverAccountEvent}"
update=
":billList :accountEventList
"
/>
</p:column>
</p:dataTable>
...
...
@@ -68,69 +66,60 @@
<br></br>
<br></br>
<h:form>
<p:dataTable
styleClass=
"bordertable"
value=
"#{foodWaveView.bill
Lines}"
var=
"bill_line"
sortBy=
"#{bill_line.
bill.user.nick}"
>
<h:form
id=
"billList"
>
<p:dataTable
styleClass=
"bordertable"
value=
"#{foodWaveView.bill
s}"
var=
"bill"
sortBy=
"#{
bill.user.nick}"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['foodWave.billLines']}"
/>
</f:facet>
<p:column
sortBy=
"#{bill
_line.bill
.sentDate.getTime()}"
>
<p:column
sortBy=
"#{bill.sentDate.getTime()}"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['billLine.time']}"
/>
</f:facet>
<h:outputText
value=
"#{bill
_line.bill
.sentDate.getTime()}"
>
<h:outputText
value=
"#{bill.sentDate.getTime()}"
>
<f:convertDateTime
pattern=
"#{sessionHandler.datetimeFormat}"
/>
</h:outputText>
</p:column>
<p:column
sortBy=
"#{bill
_line.q
uantity}"
>
<p:column
sortBy=
"#{bill
.totalQ
uantity}"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['billLine.quantity']}"
/>
</f:facet>
<h:outputText
style=
"text-align: center;"
value=
"#{bill
_line.q
uantity}"
>
<h:outputText
style=
"text-align: center;"
value=
"#{bill
.totalQ
uantity}"
>
<f:convertNumber
minFractionDigits=
"2"
maxFractionDigits=
"2"
/>
</h:outputText>
</p:column>
<p:column
sortBy=
"#{bill
_line.name
}"
>
<p:column
sortBy=
"#{bill
Line.eventuser
}"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['bill
Line.product
']}"
/>
<h:outputLabel
value=
"#{i18n['bill
.products
']}"
/>
</f:facet>
<h:outputText
value=
"#{bill
_line.name
}"
/>
<h:outputText
value=
"#{bill
.productSummary
}"
/>
</p:column>
<p:column
sortBy=
"#{bill
_line.bill
.user.wholeName}"
>
<p:column
sortBy=
"#{bill.user.wholeName}"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['billLine.eventuser']}"
/>
</f:facet>
<h:link
outcome=
"/useradmin/edit"
value=
"#{bill
_line.bill
.user.wholeName}"
>
<f:param
name=
"userid"
value=
"#{bill
_line.bill
.user.user.id}"
/>
<h:link
outcome=
"/useradmin/edit"
value=
"#{bill.user.wholeName}"
>
<f:param
name=
"userid"
value=
"#{bill.user.user.id}"
/>
</h:link>
</p:column>
<p:column
sortBy=
"#{bill
_line.bill.user.nick
}"
>
<p:column
sortBy=
"#{bill
.user.user.id
}"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['billLine.nick']}"
/>
</f:facet>
<h:link
outcome=
"/useradmin/edit"
value=
"#{bill
_line.bill
.user.nick}"
>
<f:param
name=
"userid"
value=
"#{bill
_line.bill
.user.user.id}"
/>
<h:link
outcome=
"/useradmin/edit"
value=
"#{bill.user.nick}"
>
<f:param
name=
"userid"
value=
"#{bill.user.user.id}"
/>
</h:link>
</p:column>
<p:column
sortBy=
"#{bill_line.linePrice}"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['billLine.price']}"
/>
</f:facet>
<h:outputText
style=
"text-align: center;"
value=
"#{bill_line.linePrice}"
>
<f:convertNumber
minFractionDigits=
"2"
maxFractionDigits=
"2"
/>
</h:outputText>
</p:column>
<p:column
sortBy=
"#{bill_line.bill.totalPrice}"
>
<p:column
sortBy=
"#{bill.totalPrice}"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['bill.totalprice']}"
/>
</f:facet>
<h:outputText
style=
"text-align: center;"
value=
"#{bill
_line.bill
.totalPrice}"
>
<h:outputText
style=
"text-align: center;"
value=
"#{bill.totalPrice}"
>
<f:convertNumber
minFractionDigits=
"2"
maxFractionDigits=
"2"
/>
</h:outputText>
</p:column>
<p:column>
<
h:commandButton
value=
"#{i18n['bill.markPaid']}"
action=
"#{foodWaveView.markBillPaid}
"
/>
<
p:commandButton
value=
"#{i18n['bill.markPaid']}"
actionListener=
"#{foodWaveView.markBillPaid}"
update=
":billList :accountEventList
"
/>
</p:column>
<!--
<p:column>
...
...
@@ -155,6 +144,21 @@
</h:outputText>
</div>
<div>
<h:outputLabel
value=
"#{i18n['foodwave.ordersBefore']}: "
/>
<h:outputText
value=
"#{foodWaveView.selectedFoodWave.time}"
>
<f:convertDateTime
pattern=
"#{sessionHandler.datetimeFormat}"
/>
</h:outputText>
</div>
<div>
<h:outputLabel
value=
"#{i18n['foodwave.foodwaveLastBillPayTime']}: "
/>
<h:outputText
value=
"#{foodWaveView.selectedFoodWave.lastPaymentTime}"
>
<f:convertDateTime
pattern=
"#{sessionHandler.datetimeFormat}"
/>
</h:outputText>
</div>
<p:dataTable
var=
"summ"
value=
"#{foodWaveView.productSummaries}"
>
<p:column>
<f:facet
name=
"header"
>
...
...
code/moya-web/src/main/java/fi/codecrew/moya/resources/i18n.properties
View file @
3dee93f
...
...
@@ -33,6 +33,7 @@ bill.expires = Expires
bill.isExpired
=
Bill is expired
bill.markPaid.show
=
Show Mark paid -buttons
bill.notes.title
=
Lis
\u
00E4tietoja
bill.products
=
Tuotteet
bill.save
=
Save
bill.showPayButtons
=
Show pay buttons
...
...
@@ -159,8 +160,13 @@ eventorg.create = Create
eventorg.title
=
Tapahtuman tiedot
foodWave.closeNow
=
Close now
foodWave.deliveredCount
=
Luovutetut
foodWave.openNow
=
Open now
foodwave.foodwaveLastBillPayTime
=
Maksut viimeist
\u
00E4
\u
00E4n
foodwave.ordersBefore
=
Tilaukset ennen
foodwave.template.waitPaymentsMinutes
=
Verkkomaksujen odotusaika
game.active
=
Aktiivinen
game.codecount
=
Avattuja
game.codes.available
=
Lisenssikoodit
...
...
@@ -361,6 +367,8 @@ subnavi.info = Info
success
=
Onnistui
suffix.minutes
=
min
topnavi.adminlectures
=
Kurssit ja luennot
topnavi.license
=
Lisenssikoodit
topnavi.userlectures
=
Kurssit ja luennot
...
...
code/moya-web/src/main/java/fi/codecrew/moya/resources/i18n_en.properties
View file @
3dee93f
...
...
@@ -88,6 +88,7 @@ bill.payer = Payer
bill.paymentTime
=
Payment time
bill.paymentTime.now
=
Now
bill.printBill
=
Print bill
bill.products
=
Products
bill.receiverAddress
=
Receiver address
bill.referenceNumberBase
=
Reference number base
bill.referencenumber
=
Reference nr.
...
...
@@ -405,8 +406,9 @@ food = Food
foodWave.accountevents
=
Accountevents
foodWave.activeFoodWaves
=
Active Foodwaves
foodWave.billLines
=
Pending
Online
Payments
foodWave.billLines
=
Pending Payments
foodWave.closeNow
=
Close now
foodWave.deliveredCount
=
Delivered
foodWave.deliveredFoodWaves
=
Delivered Foodwaves
foodWave.description
=
Foodwave description
foodWave.list
=
Active Foodwaves
...
...
@@ -431,8 +433,10 @@ foodshop.total = Total
foodwave.buyInPrice
=
Buy In Price
foodwave.foodwaveBuyInPrice
=
Total buy in price
foodwave.foodwaveLastBillPayTime
=
Last payments time
foodwave.markPaid
=
Foodwave marked paid
foodwave.orders
=
Foodwave Orders
foodwave.ordersBefore
=
Orders before
foodwave.price
=
Foodwave price
foodwave.summaryView
=
Foodwave Summary
foodwave.template.basicinfo
=
Template Information
...
...
@@ -441,6 +445,7 @@ foodwave.template.edit.title = Foodwave Template Editor
foodwave.template.list.title
=
Foodwave Templates
foodwave.template.name
=
Name
foodwave.template.selectproducts
=
Products
foodwave.template.waitPaymentsMinutes
=
Webpayments waittime
foodwave.totalCount
=
Amount
foodwave.totalPrice
=
Customer Price
...
...
@@ -1244,6 +1249,8 @@ subnavi.roles = Roles
success
=
Success
suffix.minutes
=
min
supernavi.admin
=
Adminview
supernavi.user
=
Userview
...
...
code/moya-web/src/main/java/fi/codecrew/moya/resources/i18n_fi.properties
View file @
3dee93f
...
...
@@ -88,6 +88,7 @@ bill.payer = Maksaja
bill.paymentTime
=
Maksuehdot
bill.paymentTime.now
=
Heti
bill.printBill
=
Tulosta lasku
bill.products
=
Tuotteet
bill.receiverAddress
=
Kauppiaan osoite
bill.referenceNumberBase
=
Viitenumeropohja
bill.referencenumber
=
Viitenumero
...
...
@@ -406,8 +407,9 @@ food = Ruoka
foodWave.accountevents
=
Maksetut tilaukset
foodWave.activeFoodWaves
=
Aktiiviset Ruokatilaukset
foodWave.billLines
=
Maksamattomat
Verkko
maksut
foodWave.billLines
=
Maksamattomat maksut
foodWave.closeNow
=
Sulje nyt
foodWave.deliveredCount
=
Toimitetut
foodWave.deliveredFoodWaves
=
Toimitetut Ruokatilaukset
foodWave.description
=
Ruokatilauksen kuvaus
foodWave.list
=
Ruokatilaukset
...
...
@@ -432,8 +434,10 @@ foodshop.total = Yhteens\u00E4
foodwave.buyInPrice
=
Sis
\u
00E4
\u
00E4nostohinta
foodwave.foodwaveBuyInPrice
=
Sis
\u
00E4
\u
00E4nostohinta
foodwave.foodwaveLastBillPayTime
=
Maksut viimeist
\u
00E4
\u
00E4n
foodwave.markPaid
=
Merkitty maksetuksi
foodwave.orders
=
Maksetut Tilaukset
foodwave.ordersBefore
=
Tilaukset ennen
foodwave.price
=
Tilausten kokonaishinta
foodwave.summaryView
=
Ruokatilauksen Yhteenveto
foodwave.template.basicinfo
=
Template Infot
...
...
@@ -442,6 +446,7 @@ foodwave.template.edit.title = Foodwave Template Editori
foodwave.template.list.title
=
Ruokatilaus Templatet
foodwave.template.name
=
Nimi
foodwave.template.selectproducts
=
Tuotteet
foodwave.template.waitPaymentsMinutes
=
Verkkomaksujen odotusaika
foodwave.totalCount
=
M
\u
00E4
\u
00E4r
\u
00E4
foodwave.totalPrice
=
Asiakkaan Hinta
...
...
@@ -1227,6 +1232,8 @@ subnavi.roles = Roolit
success
=
Onnistui
suffix.minutes
=
min
supernavi.admin
=
Yll
\u
00E4piton
\u
00E4kym
\u
00E4
supernavi.user
=
K
\u
00E4ytt
\u
00E4j
\u
00E4n
\u
00E4kym
\u
00E4
...
...
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/shop/FoodWaveView.java
View file @
3dee93f
...
...
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.TreeSet
;
...
...
@@ -76,12 +77,13 @@ public class FoodWaveView extends GenericCDIView {
private
Date
startDate
;
private
Product
currentProduct
;
private
ListDataModel
<
BillLine
>
billLines
;
//
private ListDataModel<BillLine> billLines;
// private List<BillLine> unpaidBills;
private
Integer
foodWaveId
;
private
ListDataModel
<
AccountEvent
>
accountEventLines
;
private
ListDataModel
<
FoodWave
>
foodWaves
;
private
ListDataModel
<
Bill
>
bills
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FoodWaveView
.
class
);
public
List
<
Product
>
getProducts
()
{
...
...
@@ -175,7 +177,7 @@ public class FoodWaveView extends GenericCDIView {
public
List
<
FoodwaveProductSummary
>
getProductSummaries
()
{
System
.
out
.
println
(
"..asdfasdf"
);
HashMap
<
Product
,
FoodwaveProductSummary
>
pmap
=
new
HashMap
<
Product
,
FoodwaveProductSummary
>();
for
(
AccountEvent
ae
:
getSelectedFoodWave
().
getAccountEvents
())
{
...
...
@@ -221,6 +223,10 @@ public class FoodWaveView extends GenericCDIView {
}
return
ret
.
negate
();
}
public
BigDecimal
getFoodwaveBuyInPrice
()
{
...
...
@@ -246,12 +252,14 @@ public class FoodWaveView extends GenericCDIView {
// }
public
String
markBillPaid
()
{
if
(
permbean
.
hasPermission
(
BillPermission
.
WRITE_ALL
)
&&
getBillLines
()
.
isRowAvailable
())
{
Bill
b
=
getBillLines
().
getRowData
().
getBill
();
if
(
permbean
.
hasPermission
(
BillPermission
.
WRITE_ALL
)
&&
bills
!=
null
&&
bills
.
isRowAvailable
())
{
Bill
b
=
bills
.
getRowData
();
b
=
billbean
.
markPaid
(
b
,
Calendar
.
getInstance
());
foodWaveId
=
selectedFoodWave
.
getId
();
selectedFoodWave
=
null
;
bills
=
null
;
initFoodWaveOrderList
();
}
...
...
@@ -259,8 +267,8 @@ public class FoodWaveView extends GenericCDIView {
}
public
String
deliverAccountEvent
()
{
if
(
getAccountEventLines
()
.
isRowAvailable
())
{
AccountEvent
e
=
getAccountEventLines
()
.
getRowData
();
if
(
accountEventLines
!=
null
&&
accountEventLines
.
isRowAvailable
())
{
AccountEvent
e
=
accountEventLines
.
getRowData
();
e
=
productbeanlocal
.
markDelivered
(
e
,
Calendar
.
getInstance
());
foodWaveId
=
selectedFoodWave
.
getId
();
selectedFoodWave
=
null
;
...
...
@@ -271,27 +279,28 @@ public class FoodWaveView extends GenericCDIView {
}
public
void
initFoodWaveOrderList
()
{
if
(
super
.
requirePermissions
(
ShopPermission
.
MANAGE_FOODWAVES
)
&&
selectedFoodWave
==
null
)
{
selectedFoodWave
=
foodWaveBean
.
findFoodwave
(
foodWaveId
);
logger
.
debug
(
"Got foodwave {} with id {}"
,
selectedFoodWave
,
foodWaveId
);
this
.
setAccountEventLines
(
new
ListDataModel
<
AccountEvent
>(
selectedFoodWave
.
getAccountEvents
()));
List
<
BillLine
>
tmpLines
=
new
ArrayList
<
BillLine
>();
super
.
beginConversation
();
}
HashSet
<
Bill
>
billList
=
new
HashSet
<
Bill
>();
for
(
BillLine
line
:
selectedFoodWave
.
getBillLines
())
{
if
(!
line
.
getBill
().
isPaid
())
{
tmpLines
.
add
(
line
);
}
for
(
BillLine
line
:
getSelectedFoodWave
().
getBillLines
())
{
if
(!
line
.
getBill
().
isPaid
())
{
billList
.
add
(
line
.
getBill
());
}
setBillLines
(
new
ListDataModel
<
BillLine
>(
tmpLines
));
setAccountEventLines
(
new
ListDataModel
<
AccountEvent
>(
selectedFoodWave
.
getAccountEvents
()));
super
.
beginConversation
();
}
bills
=
new
ListDataModel
<
Bill
>(
new
ArrayList
<
Bill
>(
billList
));
accountEventLines
=
new
ListDataModel
<
AccountEvent
>(
getSelectedFoodWave
().
getAccountEvents
());
}
public
String
saveTemplate
()
...
...
@@ -315,7 +324,6 @@ public class FoodWaveView extends GenericCDIView {
}
public
FoodWave
getSelectedFoodWave
()
{
// System.out.println("APOFKASFASFASFASFASFASFASFASFASFKJIOJIO");
return
selectedFoodWave
;
}
...
...
@@ -351,13 +359,10 @@ public class FoodWaveView extends GenericCDIView {
this
.
foodWaveId
=
foodWaveId
;
}
public
ListDataModel
<
Bill
Line
>
getBillLine
s
()
{
return
bill
Line
s
;
public
ListDataModel
<
Bill
>
getBill
s
()
{
return
bills
;
}
public
void
setBillLines
(
ListDataModel
<
BillLine
>
billLines
)
{
this
.
billLines
=
billLines
;
}
public
void
setFoodWaves
(
ListDataModel
<
FoodWave
>
foodWaves
)
{
this
.
foodWaves
=
foodWaves
;
...
...
@@ -366,15 +371,12 @@ public class FoodWaveView extends GenericCDIView {
public
ListDataModel
<
FoodWave
>
getFoodWaves
()
{
return
foodWaves
;
}
public
ListDataModel
<
AccountEvent
>
getAccountEventLines
()
{
return
accountEventLines
;
}
public
void
setAccountEventLines
(
ListDataModel
<
AccountEvent
>
accountEventLines
)
{
this
.
accountEventLines
=
accountEventLines
;
}
/*
* public List<BillLine> getUnpaidBills() { return unpaidBills; }
*
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment