Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Riina Antikainen
/
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
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
416 additions
and
357 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 {
...
@@ -24,5 +24,6 @@ public enum SecurityLogType {
genericMessage
,
genericMessage
,
accountEvent
,
accountEvent
,
verkkomaksu
,
verkkomaksu
,
bill
,
}
}
code/moya-beans/ejbModule/fi/codecrew/moya/beans/BillBean.java
View file @
3dee93f
...
@@ -40,6 +40,7 @@ import org.slf4j.LoggerFactory;
...
@@ -40,6 +40,7 @@ import org.slf4j.LoggerFactory;
import
fi.codecrew.moya.beanutil.PdfPrinter
;
import
fi.codecrew.moya.beanutil.PdfPrinter
;
import
fi.codecrew.moya.bortal.views.BillSummary
;
import
fi.codecrew.moya.bortal.views.BillSummary
;
import
fi.codecrew.moya.enums.apps.BillPermission
;
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.enums.apps.SpecialPermission
;
import
fi.codecrew.moya.facade.BillFacade
;
import
fi.codecrew.moya.facade.BillFacade
;
import
fi.codecrew.moya.facade.BillLineFacade
;
import
fi.codecrew.moya.facade.BillLineFacade
;
...
@@ -93,6 +94,9 @@ public class BillBean implements BillBeanLocal {
...
@@ -93,6 +94,9 @@ public class BillBean implements BillBeanLocal {
@EJB
@EJB
private
DiscountBean
discountBean
;
private
DiscountBean
discountBean
;
@EJB
private
LoggingBeanLocal
logbean
;
/**
/**
* Default constructor.
* Default constructor.
...
@@ -228,16 +232,21 @@ public class BillBean implements BillBeanLocal {
...
@@ -228,16 +232,21 @@ public class BillBean implements BillBeanLocal {
SpecialPermission
.
S_VERKKOMAKSU_CHECK
})
SpecialPermission
.
S_VERKKOMAKSU_CHECK
})
public
Bill
markPaid
(
Bill
bill
,
Calendar
when
)
{
public
Bill
markPaid
(
Bill
bill
,
Calendar
when
)
{
bill
=
billFacade
.
reload
(
bill
);
if
(
bill
.
getAccountEvent
()
!=
null
||
bill
.
getPaidDate
()
!=
null
)
{
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!"
);
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"
);
throw
new
EJBException
(
"Trying to mark paid a closed or left foodwave"
);
}
}
bill
=
billFacade
.
reload
(
bill
);
Product
creditproduct
=
productBean
.
findCreditProduct
();
Product
creditproduct
=
productBean
.
findCreditProduct
();
EventUser
user
=
bill
.
getUser
();
EventUser
user
=
bill
.
getUser
();
...
@@ -271,6 +280,8 @@ public class BillBean implements BillBeanLocal {
...
@@ -271,6 +280,8 @@ public class BillBean implements BillBeanLocal {
}
}
}
}
/*
MailMessage msg = new MailMessage();
MailMessage msg = new MailMessage();
String subject = MessageFormat.format(eventbean.getPropertyString(LanEventPropertyKey.BILL_PAID_MAIL_SUBJECT), user.getEvent().getName());
String subject = MessageFormat.format(eventbean.getPropertyString(LanEventPropertyKey.BILL_PAID_MAIL_SUBJECT), user.getEvent().getName());
...
@@ -280,9 +291,12 @@ public class BillBean implements BillBeanLocal {
...
@@ -280,9 +291,12 @@ public class BillBean implements BillBeanLocal {
msg.setMessage(content);
msg.setMessage(content);
msg.setTo(bill.getUser().getUser());
msg.setTo(bill.getUser().getUser());
utilbean.sendMail(msg);
utilbean.sendMail(msg);
*/
eventUserFacade
.
flush
();
eventUserFacade
.
flush
();
logbean
.
logMessage
(
SecurityLogType
.
bill
,
permbean
.
getCurrentUser
(),
"Marking bill paid, for user: "
,
bill
.
getUser
().
getId
(),
"BillId: "
,
bill
.
getId
());
eventUserFacade
.
evict
(
bill
.
getUser
());
eventUserFacade
.
evict
(
bill
.
getUser
());
return
bill
;
return
bill
;
}
}
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/beans/BootstrapBean.java
View file @
3dee93f
...
@@ -238,8 +238,13 @@ public class BootstrapBean implements BootstrapBeanLocal {
...
@@ -238,8 +238,13 @@ public class BootstrapBean implements BootstrapBeanLocal {
// tai saadaan poikkeuksia nyrkillä kurkusta .
// tai saadaan poikkeuksia nyrkillä kurkusta .
dbUpdates
.
add
(
new
String
[]
{
dbUpdates
.
add
(
new
String
[]
{
"DELETE FROM product_productflags where productflags = 'PREPAID_INSTANT_CREATE'"
"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,
}
// start_time timestamp without time zone,
...
...
code/moya-database/src/main/java/fi/codecrew/moya/model/Bill.java
View file @
3dee93f
This diff is collapsed.
Click to expand it.
code/moya-database/src/main/java/fi/codecrew/moya/model/FoodWave.java
View file @
3dee93f
...
@@ -36,6 +36,7 @@ import javax.persistence.OneToMany;
...
@@ -36,6 +36,7 @@ import javax.persistence.OneToMany;
import
javax.persistence.Table
;
import
javax.persistence.Table
;
import
javax.persistence.Temporal
;
import
javax.persistence.Temporal
;
import
javax.persistence.TemporalType
;
import
javax.persistence.TemporalType
;
import
javax.persistence.Transient
;
/**
/**
*
*
...
@@ -44,220 +45,246 @@ import javax.persistence.TemporalType;
...
@@ -44,220 +45,246 @@ import javax.persistence.TemporalType;
@Table
(
name
=
"food_waves"
)
@Table
(
name
=
"food_waves"
)
public
class
FoodWave
extends
GenericEntity
{
public
class
FoodWave
extends
GenericEntity
{
private
static
final
long
serialVersionUID
=
9221716203467295049L
;
private
static
final
long
serialVersionUID
=
9221716203467295049L
;
@Column
(
name
=
"wave_name"
,
nullable
=
false
)
@Column
(
name
=
"wave_name"
,
nullable
=
false
)
private
String
name
;
private
String
name
;
@Lob
@Lob
@Column
(
name
=
"wave_description"
)
@Column
(
name
=
"wave_description"
)
private
String
description
;
private
String
description
;
@Column
(
name
=
"wave_time"
)
@Column
(
name
=
"wave_time"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
time
;
private
Date
time
;
@Column
(
name
=
"max_foods"
)
@Column
(
name
=
"max_foods"
)
private
Integer
maximumFoods
;
private
Integer
maximumFoods
;
@Column
(
name
=
"wave_closed"
,
nullable
=
false
,
columnDefinition
=
"boolean default false"
)
@Column
(
name
=
"wave_closed"
,
nullable
=
false
,
columnDefinition
=
"boolean default false"
)
private
boolean
closed
=
false
;
private
boolean
closed
=
false
;
@OneToMany
(
mappedBy
=
"foodWave"
)
@OneToMany
(
mappedBy
=
"foodWave"
)
private
List
<
AccountEvent
>
accountEvents
;
private
List
<
AccountEvent
>
accountEvents
;
@OneToMany
(
mappedBy
=
"foodwave"
)
@OneToMany
(
mappedBy
=
"foodwave"
)
private
List
<
BillLine
>
billLines
;
private
List
<
BillLine
>
billLines
;
@ManyToOne
@ManyToOne
@JoinColumn
(
name
=
"template_id"
,
referencedColumnName
=
"id"
,
nullable
=
false
)
@JoinColumn
(
name
=
"template_id"
,
referencedColumnName
=
"id"
,
nullable
=
false
)
private
FoodWaveTemplate
template
;
private
FoodWaveTemplate
template
;
public
FoodWave
()
{
public
FoodWave
()
{
super
();
super
();
}
}
public
FoodWave
(
String
waveName
,
boolean
waveClosed
)
{
public
FoodWave
(
String
waveName
,
boolean
waveClosed
)
{
super
();
super
();
this
.
name
=
waveName
;
this
.
name
=
waveName
;
this
.
closed
=
waveClosed
;
this
.
closed
=
waveClosed
;
}
}
public
String
getName
()
{
public
String
getName
()
{
return
name
;
return
name
;
}
}
public
void
setName
(
String
waveName
)
{
public
void
setName
(
String
waveName
)
{
this
.
name
=
waveName
;
this
.
name
=
waveName
;
}
}
public
String
getDescription
()
{
public
String
getDescription
()
{
return
description
;
return
description
;
}
}
public
void
setDescription
(
String
waveDescription
)
{
public
void
setDescription
(
String
waveDescription
)
{
this
.
description
=
waveDescription
;
this
.
description
=
waveDescription
;
}
}
public
Date
getTime
()
{
public
Date
getTime
()
{
return
time
;
return
time
;
}
}
public
void
setTime
(
Date
waveTime
)
{
public
void
setTime
(
Date
waveTime
)
{
this
.
time
=
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
;
}
}
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 {
...
@@ -66,6 +66,9 @@ public class FoodWaveTemplate extends GenericEntity {
@Column
(
name
=
"max_foods"
)
@Column
(
name
=
"max_foods"
)
private
Integer
maximumFoods
;
private
Integer
maximumFoods
;
@Column
(
name
=
"wait_payments_minutes"
)
private
Integer
waitPaymentsMinutes
=
0
;
public
FoodWaveTemplate
()
{
public
FoodWaveTemplate
()
{
}
}
...
@@ -135,4 +138,16 @@ public class FoodWaveTemplate extends GenericEntity {
...
@@ -135,4 +138,16 @@ public class FoodWaveTemplate extends GenericEntity {
return
returnList
;
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
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
<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"
>
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>
<h:body>
<ui:composition
<ui:composition
template=
"#{sessionHandler.template}"
>
template=
"#{sessionHandler.template}"
>
<f:metadata>
<f:metadata>
<f:viewParam
name=
"id"
value=
"#{foodWaveView.templateId}"
/>
<f:viewParam
name=
"id"
value=
"#{foodWaveView.templateId}"
/>
<f:event
type=
"preRenderView"
<f:event
type=
"preRenderView"
listener=
"#{foodWaveView.initEditTemplate()}"
/>
listener=
"#{foodWaveView.initEditTemplate()}"
/>
</f:metadata>
</f:metadata>
<ui:define
name=
"title"
>
<ui:define
name=
"title"
>
...
@@ -27,58 +18,46 @@
...
@@ -27,58 +18,46 @@
<p:panel
header=
"#{i18n['foodwavetemplate.edit']}"
>
<p:panel
header=
"#{i18n['foodwavetemplate.edit']}"
>
<h:form>
<h:form>
<h:panelGrid
columns=
"3"
>
<h:panelGrid
columns=
"3"
>
<h:outputLabel
for=
"name"
<h:outputLabel
for=
"name"
value=
"#{i18n['foodwave.template.name']}"
/>
value=
"#{i18n['foodwave.template.name']}"
/>
<h:inputText
id=
"name"
value=
"#{foodWaveView.template.name}"
/>
<h:inputText
id=
"name"
value=
"#{foodWaveView.template.name}"
/>
<h:message
for=
"name"
/>
<h:message
for=
"name"
/>
<h:outputLabel
for=
"desc"
<h:outputLabel
for=
"desc"
value=
"#{i18n['foodwave.template.description']}"
/>
value=
"#{i18n['foodwave.template.description']}"
/>
<h:inputText
id=
"desc"
value=
"#{foodWaveView.template.description}"
/>
<h:inputText
id=
"desc"
value=
"#{foodWaveView.template.description}"
/>
<h:message
for=
"desc"
/>
<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:outputText
value=
" "
/>
<h:commandButton
action=
"#{foodWaveView.saveTemplate()}"
<h:commandButton
action=
"#{foodWaveView.saveTemplate()}"
value=
"#{i18n['foodwavetemplate.save']}"
/>
value=
"#{i18n['foodwavetemplate.save']}"
/>
</h:panelGrid>
</h:panelGrid>
</h:form>
</h:form>
<h:form>
<h:form>
<h:selectOneMenu
value=
"#{foodWaveView.currentProduct}"
<h:selectOneMenu
value=
"#{foodWaveView.currentProduct}"
converter=
"#{productConverter}"
>
converter=
"#{productConverter}"
>
<f:selectItems
value=
"#{foodWaveView.products}"
var=
"product"
itemLabel=
"#{product.name}"
></f:selectItems>
<f:selectItems
value=
"#{foodWaveView.products}"
var=
"product"
itemLabel=
"#{product.name}"
></f:selectItems>
</h:selectOneMenu>
</h:selectOneMenu>
<p:commandButton
value=
"#{i18n['foodwavetemplate.addproduct']}"
<p:commandButton
value=
"#{i18n['foodwavetemplate.addproduct']}"
actionListener=
"#{foodWaveView.addProductToTemplate}"
ajax=
"false"
/>
actionListener=
"#{foodWaveView.addProductToTemplate}"
ajax=
"false"
/>
</h:form>
</h:form>
<h:form>
<h:form>
<h:panelGrid
columns=
"4"
>
<h:panelGrid
columns=
"4"
>
<h:outputText
value=
"#{i18n['foodwavetemplate.productname']}"
/>
<h:outputText
value=
"#{i18n['foodwavetemplate.productname']}"
/>
<h:outputText
<h:outputText
value=
"#{i18n['foodwavetemplate.productdescription']}"
/>
value=
"#{i18n['foodwavetemplate.productdescription']}"
/>
<h:outputText
value=
"#{i18n['foodwavetemplate.price']}"
/>
<h:outputText
value=
"#{i18n['foodwavetemplate.price']}"
/>
<h:outputText
value=
" "
/>
<h:outputText
value=
" "
/>
<h:inputText
id=
"productname"
<h:inputText
id=
"productname"
value=
"#{foodWaveView.currentProduct.name}"
/>
value=
"#{foodWaveView.currentProduct.name}"
/>
<h:inputText
id=
"productdescription"
value=
"#{foodWaveView.currentProduct.description}"
/>
<h:inputText
id=
"productdescription"
<h:inputText
id=
"price"
value=
"#{foodWaveView.currentProduct.price}"
/>
value=
"#{foodWaveView.currentProduct.description}"
/>
<h:inputText
id=
"price"
value=
"#{foodWaveView.currentProduct.price}"
/>
<p:commandButton
value=
"#{i18n['foodwavetemplate.addproduct']}"
<p:commandButton
value=
"#{i18n['foodwavetemplate.addproduct']}"
actionListener=
"#{foodWaveView.addProductToTemplate}"
ajax=
"false"
/>
actionListener=
"#{foodWaveView.addProductToTemplate}"
ajax=
"false"
/>
</h:panelGrid>
</h:panelGrid>
</h:form>
</h:form>
<h:form>
<h:form>
<p:dataTable
name=
"productTable"
id=
"productTable"
<p:dataTable
name=
"productTable"
id=
"productTable"
value=
"#{foodWaveView.template.products}"
var=
"product"
editable=
"true"
>
value=
"#{foodWaveView.template.products}"
var=
"product"
editable=
"true"
>
<p:ajax
event=
"rowEdit"
listener=
"#{foodWaveView.onEdit}"
/>
<p:ajax
event=
"rowEdit"
listener=
"#{foodWaveView.onEdit}"
/>
...
@@ -89,20 +68,17 @@
...
@@ -89,20 +68,17 @@
<h:outputText
value=
"#{product.name}"
/>
<h:outputText
value=
"#{product.name}"
/>
</f:facet>
</f:facet>
<f:facet
name=
"input"
>
<f:facet
name=
"input"
>
<p:inputText
value=
"#{product.name}"
style=
"width:100%"
<p:inputText
value=
"#{product.name}"
style=
"width:100%"
required=
"true"
requiredMessage=
"Name required"
/>
required=
"true"
requiredMessage=
"Name required"
/>
</f:facet>
</f:facet>
</p:cellEditor>
</p:cellEditor>
</p:column>
</p:column>
<p:column
<p:column
headerText=
"#{i18n['foodwavetemplate.productdescription']}"
>
headerText=
"#{i18n['foodwavetemplate.productdescription']}"
>
<p:cellEditor>
<p:cellEditor>
<f:facet
name=
"output"
>
<f:facet
name=
"output"
>
<h:outputText
value=
"#{product.description}"
/>
<h:outputText
value=
"#{product.description}"
/>
</f:facet>
</f:facet>
<f:facet
name=
"input"
>
<f:facet
name=
"input"
>
<p:inputText
value=
"#{product.description}"
style=
"width:100%"
<p:inputText
value=
"#{product.description}"
style=
"width:100%"
required=
"true"
requiredMessage=
"Description required"
/>
required=
"true"
requiredMessage=
"Description required"
/>
</f:facet>
</f:facet>
</p:cellEditor>
</p:cellEditor>
</p:column>
</p:column>
...
@@ -112,52 +88,38 @@
...
@@ -112,52 +88,38 @@
<h:outputText
value=
"#{product.price}"
/>
<h:outputText
value=
"#{product.price}"
/>
</f:facet>
</f:facet>
<f:facet
name=
"input"
>
<f:facet
name=
"input"
>
<p:inputText
value=
"#{product.price}"
style=
"width:100%"
<p:inputText
value=
"#{product.price}"
style=
"width:100%"
required=
"true"
requiredMessage=
"Price required"
/>
required=
"true"
requiredMessage=
"Price required"
/>
</f:facet>
</f:facet>
</p:cellEditor>
</p:cellEditor>
</p:column>
</p:column>
<p:column
headerText=
"#{i18n['foodwavetemplate.editRow']}"
<p:column
style=
"width:20px"
>
style=
"width:20px"
>
<p:rowEditor
/>
<p:rowEditor
/>
</p:column>
</p:column>
<p:column
headerText=
"#{i18n['foodwavetemplate.actions']}"
<p:column
style=
"width:70px"
>
style=
"width:20px;"
>
<p:commandButton
value=
"#{i18n['foodwavetemplate.removeFromList']}"
action=
"#{foodWaveView.removeProductFromList(product)}"
update=
"productTable"
/>
<p:commandButton
value=
"#{i18n['foodwavetemplate.removeFromList']}"
action=
"#{foodWaveView.removeProductFromList(product)}"
update=
"productTable"
/>
</p:column>
</p:column>
</p:dataTable>
</p:dataTable>
<h:commandButton
action=
"#{foodWaveView.saveTemplate()}"
<h:commandButton
action=
"#{foodWaveView.saveTemplate()}"
value=
"#{i18n['foodwavetemplate.savetemplate']}"
/>
value=
"#{i18n['foodwavetemplate.savetemplate']}"
/>
<!-- -->
<!-- -->
</h:form>
</h:form>
</p:panel>
</p:panel>
<h:form>
<h:form>
<p:panel
header=
"#{i18n['foodwavetemplate.createwave']}"
>
<p:panel
header=
"#{i18n['foodwavetemplate.createwave']}"
>
<h:panelGrid
columns=
"3"
>
<h:panelGrid
columns=
"3"
>
<h:outputLabel
for=
"waveName"
<h:outputLabel
for=
"waveName"
value=
"#{i18n['foodwavetemplate.waveName']}"
/>
value=
"#{i18n['foodwavetemplate.waveName']}"
/>
<h:inputText
id=
"waveName"
value=
"#{foodWaveView.selectedFoodWave.name}"
/>
<h:inputText
id=
"waveName"
value=
"#{foodWaveView.selectedFoodWave.name}"
/>
<h:message
for=
"waveName"
/>
<h:message
for=
"waveName"
/>
<h:outputLabel
for=
"waveMaxFoods"
<h:outputLabel
for=
"waveMaxFoods"
value=
"#{i18n['foodwavetemplate.maxfoods']}"
/>
value=
"#{i18n['foodwavetemplate.maxfoods']}"
/>
<h:inputText
id=
"waveMaxFoods"
value=
"#{foodWaveView.selectedFoodWave.maximumFoods}"
/>
<h:inputText
id=
"waveMaxFoods"
value=
"#{foodWaveView.selectedFoodWave.maximumFoods}"
/>
<h:message
for=
"waveMaxFoods"
/>
<h:message
for=
"waveMaxFoods"
/>
<h:outputLabel
for=
"startTime"
<h:outputLabel
for=
"startTime"
value=
"#{i18n['foodwavetemplate.startTime']}"
/>
value=
"#{i18n['foodwavetemplate.startTime']}"
/>
<p:calendar
id=
"startTime"
value=
"#{foodWaveView.startDate}"
pattern=
"dd.MM.yyyy HH:mm"
/>
<p:calendar
id=
"startTime"
value=
"#{foodWaveView.startDate}"
pattern=
"dd.MM.yyyy HH:mm"
/>
<h:message
for=
"startTime"
/>
<h:message
for=
"startTime"
/>
</h:panelGrid>
</h:panelGrid>
<h:commandButton
action=
"#{foodWaveView.createFoodwave()}"
<h:commandButton
action=
"#{foodWaveView.createFoodwave()}"
value=
"#{i18n['foodwavetemplate.createFoodwave']}"
/>
value=
"#{i18n['foodwavetemplate.createFoodwave']}"
/>
</p:panel>
</p:panel>
</h:form>
</h:form>
</ui:define>
</ui:define>
...
...
code/moya-web/WebContent/foodmanager/listFoodwaves.xhtml
View file @
3dee93f
...
@@ -64,6 +64,13 @@
...
@@ -64,6 +64,13 @@
</f:facet>
</f:facet>
<h:outputText
value=
"#{foodwave.unpaidCount}"
/>
<h:outputText
value=
"#{foodwave.unpaidCount}"
/>
</p:column>
</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>
<p:column>
<f:facet
name=
"header"
>
<f:facet
name=
"header"
>
<h:outputText
value=
"${i18n['foodWave.totalReserved']}"
/>
<h:outputText
value=
"${i18n['foodWave.totalReserved']}"
/>
...
...
code/moya-web/WebContent/foodmanager/listOrders.xhtml
View file @
3dee93f
...
@@ -12,8 +12,8 @@
...
@@ -12,8 +12,8 @@
<h1>
#{foodWaveView.selectedFoodWave.name}
</h1>
<h1>
#{foodWaveView.selectedFoodWave.name}
</h1>
</ui:define>
</ui:define>
<ui:define
name=
"content"
>
<ui:define
name=
"content"
>
<h:form>
<h:form
id=
"accountEventList"
>
<p:dataTable
styleClass=
"bordertable"
value=
"#{foodWaveView.accountEventLines}"
var=
"acc_line"
sortBy=
"#{acc_line.user.nick}"
>
<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"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['foodWave.accountevents']}"
/>
<h:outputLabel
value=
"#{i18n['foodWave.accountevents']}"
/>
</f:facet>
</f:facet>
...
@@ -43,9 +43,7 @@
...
@@ -43,9 +43,7 @@
<f:facet
name=
"header"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['acc_line.eventuser']}"
/>
<h:outputLabel
value=
"#{i18n['acc_line.eventuser']}"
/>
</f:facet>
</f:facet>
<h:link
outcome=
"/useradmin/edit"
value=
"#{acc_line.user.wholeName}"
>
<h:outputText
outcome=
"/useradmin/edit"
value=
"#{acc_line.user.wholeName}"
/>
<f:param
name=
"userid"
value=
"#{acc_line.user.id}"
/>
</h:link>
</p:column>
</p:column>
<p:column
sortBy=
"#{acc_line.user.nick}"
>
<p:column
sortBy=
"#{acc_line.user.nick}"
>
<f:facet
name=
"header"
>
<f:facet
name=
"header"
>
...
@@ -60,7 +58,7 @@
...
@@ -60,7 +58,7 @@
<h:outputLabel
value=
"#{i18n['accountEvent.delivered']}"
/>
<h:outputLabel
value=
"#{i18n['accountEvent.delivered']}"
/>
</f:facet>
</f:facet>
<h:outputText
rendered=
"#{acc_line.eventDelivered}"
value=
"#{i18n['accountEvent.delivered']}"
/>
<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:column>
</p:dataTable>
</p:dataTable>
...
@@ -68,69 +66,60 @@
...
@@ -68,69 +66,60 @@
<br></br>
<br></br>
<br></br>
<br></br>
<h:form>
<h:form
id=
"billList"
>
<p:dataTable
styleClass=
"bordertable"
value=
"#{foodWaveView.bill
Lines}"
var=
"bill_line"
sortBy=
"#{bill_line.
bill.user.nick}"
>
<p:dataTable
styleClass=
"bordertable"
value=
"#{foodWaveView.bill
s}"
var=
"bill"
sortBy=
"#{
bill.user.nick}"
>
<f:facet
name=
"header"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['foodWave.billLines']}"
/>
<h:outputLabel
value=
"#{i18n['foodWave.billLines']}"
/>
</f:facet>
</f:facet>
<p:column
sortBy=
"#{bill
_line.bill
.sentDate.getTime()}"
>
<p:column
sortBy=
"#{bill.sentDate.getTime()}"
>
<f:facet
name=
"header"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['billLine.time']}"
/>
<h:outputLabel
value=
"#{i18n['billLine.time']}"
/>
</f:facet>
</f:facet>
<h:outputText
value=
"#{bill
_line.bill
.sentDate.getTime()}"
>
<h:outputText
value=
"#{bill.sentDate.getTime()}"
>
<f:convertDateTime
pattern=
"#{sessionHandler.datetimeFormat}"
/>
<f:convertDateTime
pattern=
"#{sessionHandler.datetimeFormat}"
/>
</h:outputText>
</h:outputText>
</p:column>
</p:column>
<p:column
sortBy=
"#{bill
_line.q
uantity}"
>
<p:column
sortBy=
"#{bill
.totalQ
uantity}"
>
<f:facet
name=
"header"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['billLine.quantity']}"
/>
<h:outputLabel
value=
"#{i18n['billLine.quantity']}"
/>
</f:facet>
</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"
/>
<f:convertNumber
minFractionDigits=
"2"
maxFractionDigits=
"2"
/>
</h:outputText>
</h:outputText>
</p:column>
</p:column>
<p:column
sortBy=
"#{bill
_line.name
}"
>
<p:column
sortBy=
"#{bill
Line.eventuser
}"
>
<f:facet
name=
"header"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['bill
Line.product
']}"
/>
<h:outputLabel
value=
"#{i18n['bill
.products
']}"
/>
</f:facet>
</f:facet>
<h:outputText
value=
"#{bill
_line.name
}"
/>
<h:outputText
value=
"#{bill
.productSummary
}"
/>
</p:column>
</p:column>
<p:column
sortBy=
"#{bill
_line.bill
.user.wholeName}"
>
<p:column
sortBy=
"#{bill.user.wholeName}"
>
<f:facet
name=
"header"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['billLine.eventuser']}"
/>
<h:outputLabel
value=
"#{i18n['billLine.eventuser']}"
/>
</f:facet>
</f:facet>
<h:link
outcome=
"/useradmin/edit"
value=
"#{bill
_line.bill
.user.wholeName}"
>
<h:link
outcome=
"/useradmin/edit"
value=
"#{bill.user.wholeName}"
>
<f:param
name=
"userid"
value=
"#{bill
_line.bill
.user.user.id}"
/>
<f:param
name=
"userid"
value=
"#{bill.user.user.id}"
/>
</h:link>
</h:link>
</p:column>
</p:column>
<p:column
sortBy=
"#{bill
_line.bill.user.nick
}"
>
<p:column
sortBy=
"#{bill
.user.user.id
}"
>
<f:facet
name=
"header"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['billLine.nick']}"
/>
<h:outputLabel
value=
"#{i18n['billLine.nick']}"
/>
</f:facet>
</f:facet>
<h:link
outcome=
"/useradmin/edit"
value=
"#{bill
_line.bill
.user.nick}"
>
<h:link
outcome=
"/useradmin/edit"
value=
"#{bill.user.nick}"
>
<f:param
name=
"userid"
value=
"#{bill
_line.bill
.user.user.id}"
/>
<f:param
name=
"userid"
value=
"#{bill.user.user.id}"
/>
</h:link>
</h:link>
</p:column>
</p:column>
<p:column
sortBy=
"#{bill_line.linePrice}"
>
<p:column
sortBy=
"#{bill.totalPrice}"
>
<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}"
>
<f:facet
name=
"header"
>
<f:facet
name=
"header"
>
<h:outputLabel
value=
"#{i18n['bill.totalprice']}"
/>
<h:outputLabel
value=
"#{i18n['bill.totalprice']}"
/>
</f:facet>
</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"
/>
<f:convertNumber
minFractionDigits=
"2"
maxFractionDigits=
"2"
/>
</h:outputText>
</h:outputText>
</p:column>
</p:column>
<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>
<!--
<!--
<p:column>
<p:column>
...
@@ -155,6 +144,21 @@
...
@@ -155,6 +144,21 @@
</h:outputText>
</h:outputText>
</div>
</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:dataTable
var=
"summ"
value=
"#{foodWaveView.productSummaries}"
>
<p:column>
<p:column>
<f:facet
name=
"header"
>
<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
...
@@ -33,6 +33,7 @@ bill.expires = Expires
bill.isExpired
=
Bill is expired
bill.isExpired
=
Bill is expired
bill.markPaid.show
=
Show Mark paid -buttons
bill.markPaid.show
=
Show Mark paid -buttons
bill.notes.title
=
Lis
\u
00E4tietoja
bill.notes.title
=
Lis
\u
00E4tietoja
bill.products
=
Tuotteet
bill.save
=
Save
bill.save
=
Save
bill.showPayButtons
=
Show pay buttons
bill.showPayButtons
=
Show pay buttons
...
@@ -159,8 +160,13 @@ eventorg.create = Create
...
@@ -159,8 +160,13 @@ eventorg.create = Create
eventorg.title
=
Tapahtuman tiedot
eventorg.title
=
Tapahtuman tiedot
foodWave.closeNow
=
Close now
foodWave.closeNow
=
Close now
foodWave.deliveredCount
=
Luovutetut
foodWave.openNow
=
Open now
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.active
=
Aktiivinen
game.codecount
=
Avattuja
game.codecount
=
Avattuja
game.codes.available
=
Lisenssikoodit
game.codes.available
=
Lisenssikoodit
...
@@ -361,6 +367,8 @@ subnavi.info = Info
...
@@ -361,6 +367,8 @@ subnavi.info = Info
success
=
Onnistui
success
=
Onnistui
suffix.minutes
=
min
topnavi.adminlectures
=
Kurssit ja luennot
topnavi.adminlectures
=
Kurssit ja luennot
topnavi.license
=
Lisenssikoodit
topnavi.license
=
Lisenssikoodit
topnavi.userlectures
=
Kurssit ja luennot
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
...
@@ -88,6 +88,7 @@ bill.payer = Payer
bill.paymentTime
=
Payment time
bill.paymentTime
=
Payment time
bill.paymentTime.now
=
Now
bill.paymentTime.now
=
Now
bill.printBill
=
Print bill
bill.printBill
=
Print bill
bill.products
=
Products
bill.receiverAddress
=
Receiver address
bill.receiverAddress
=
Receiver address
bill.referenceNumberBase
=
Reference number base
bill.referenceNumberBase
=
Reference number base
bill.referencenumber
=
Reference nr.
bill.referencenumber
=
Reference nr.
...
@@ -405,8 +406,9 @@ food = Food
...
@@ -405,8 +406,9 @@ food = Food
foodWave.accountevents
=
Accountevents
foodWave.accountevents
=
Accountevents
foodWave.activeFoodWaves
=
Active Foodwaves
foodWave.activeFoodWaves
=
Active Foodwaves
foodWave.billLines
=
Pending
Online
Payments
foodWave.billLines
=
Pending Payments
foodWave.closeNow
=
Close now
foodWave.closeNow
=
Close now
foodWave.deliveredCount
=
Delivered
foodWave.deliveredFoodWaves
=
Delivered Foodwaves
foodWave.deliveredFoodWaves
=
Delivered Foodwaves
foodWave.description
=
Foodwave description
foodWave.description
=
Foodwave description
foodWave.list
=
Active Foodwaves
foodWave.list
=
Active Foodwaves
...
@@ -431,8 +433,10 @@ foodshop.total = Total
...
@@ -431,8 +433,10 @@ foodshop.total = Total
foodwave.buyInPrice
=
Buy In Price
foodwave.buyInPrice
=
Buy In Price
foodwave.foodwaveBuyInPrice
=
Total buy in price
foodwave.foodwaveBuyInPrice
=
Total buy in price
foodwave.foodwaveLastBillPayTime
=
Last payments time
foodwave.markPaid
=
Foodwave marked paid
foodwave.markPaid
=
Foodwave marked paid
foodwave.orders
=
Foodwave Orders
foodwave.orders
=
Foodwave Orders
foodwave.ordersBefore
=
Orders before
foodwave.price
=
Foodwave price
foodwave.price
=
Foodwave price
foodwave.summaryView
=
Foodwave Summary
foodwave.summaryView
=
Foodwave Summary
foodwave.template.basicinfo
=
Template Information
foodwave.template.basicinfo
=
Template Information
...
@@ -441,6 +445,7 @@ foodwave.template.edit.title = Foodwave Template Editor
...
@@ -441,6 +445,7 @@ foodwave.template.edit.title = Foodwave Template Editor
foodwave.template.list.title
=
Foodwave Templates
foodwave.template.list.title
=
Foodwave Templates
foodwave.template.name
=
Name
foodwave.template.name
=
Name
foodwave.template.selectproducts
=
Products
foodwave.template.selectproducts
=
Products
foodwave.template.waitPaymentsMinutes
=
Webpayments waittime
foodwave.totalCount
=
Amount
foodwave.totalCount
=
Amount
foodwave.totalPrice
=
Customer Price
foodwave.totalPrice
=
Customer Price
...
@@ -1244,6 +1249,8 @@ subnavi.roles = Roles
...
@@ -1244,6 +1249,8 @@ subnavi.roles = Roles
success
=
Success
success
=
Success
suffix.minutes
=
min
supernavi.admin
=
Adminview
supernavi.admin
=
Adminview
supernavi.user
=
Userview
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
...
@@ -88,6 +88,7 @@ bill.payer = Maksaja
bill.paymentTime
=
Maksuehdot
bill.paymentTime
=
Maksuehdot
bill.paymentTime.now
=
Heti
bill.paymentTime.now
=
Heti
bill.printBill
=
Tulosta lasku
bill.printBill
=
Tulosta lasku
bill.products
=
Tuotteet
bill.receiverAddress
=
Kauppiaan osoite
bill.receiverAddress
=
Kauppiaan osoite
bill.referenceNumberBase
=
Viitenumeropohja
bill.referenceNumberBase
=
Viitenumeropohja
bill.referencenumber
=
Viitenumero
bill.referencenumber
=
Viitenumero
...
@@ -406,8 +407,9 @@ food = Ruoka
...
@@ -406,8 +407,9 @@ food = Ruoka
foodWave.accountevents
=
Maksetut tilaukset
foodWave.accountevents
=
Maksetut tilaukset
foodWave.activeFoodWaves
=
Aktiiviset Ruokatilaukset
foodWave.activeFoodWaves
=
Aktiiviset Ruokatilaukset
foodWave.billLines
=
Maksamattomat
Verkko
maksut
foodWave.billLines
=
Maksamattomat maksut
foodWave.closeNow
=
Sulje nyt
foodWave.closeNow
=
Sulje nyt
foodWave.deliveredCount
=
Toimitetut
foodWave.deliveredFoodWaves
=
Toimitetut Ruokatilaukset
foodWave.deliveredFoodWaves
=
Toimitetut Ruokatilaukset
foodWave.description
=
Ruokatilauksen kuvaus
foodWave.description
=
Ruokatilauksen kuvaus
foodWave.list
=
Ruokatilaukset
foodWave.list
=
Ruokatilaukset
...
@@ -432,8 +434,10 @@ foodshop.total = Yhteens\u00E4
...
@@ -432,8 +434,10 @@ foodshop.total = Yhteens\u00E4
foodwave.buyInPrice
=
Sis
\u
00E4
\u
00E4nostohinta
foodwave.buyInPrice
=
Sis
\u
00E4
\u
00E4nostohinta
foodwave.foodwaveBuyInPrice
=
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.markPaid
=
Merkitty maksetuksi
foodwave.orders
=
Maksetut Tilaukset
foodwave.orders
=
Maksetut Tilaukset
foodwave.ordersBefore
=
Tilaukset ennen
foodwave.price
=
Tilausten kokonaishinta
foodwave.price
=
Tilausten kokonaishinta
foodwave.summaryView
=
Ruokatilauksen Yhteenveto
foodwave.summaryView
=
Ruokatilauksen Yhteenveto
foodwave.template.basicinfo
=
Template Infot
foodwave.template.basicinfo
=
Template Infot
...
@@ -442,6 +446,7 @@ foodwave.template.edit.title = Foodwave Template Editori
...
@@ -442,6 +446,7 @@ foodwave.template.edit.title = Foodwave Template Editori
foodwave.template.list.title
=
Ruokatilaus Templatet
foodwave.template.list.title
=
Ruokatilaus Templatet
foodwave.template.name
=
Nimi
foodwave.template.name
=
Nimi
foodwave.template.selectproducts
=
Tuotteet
foodwave.template.selectproducts
=
Tuotteet
foodwave.template.waitPaymentsMinutes
=
Verkkomaksujen odotusaika
foodwave.totalCount
=
M
\u
00E4
\u
00E4r
\u
00E4
foodwave.totalCount
=
M
\u
00E4
\u
00E4r
\u
00E4
foodwave.totalPrice
=
Asiakkaan Hinta
foodwave.totalPrice
=
Asiakkaan Hinta
...
@@ -1227,6 +1232,8 @@ subnavi.roles = Roolit
...
@@ -1227,6 +1232,8 @@ subnavi.roles = Roolit
success
=
Onnistui
success
=
Onnistui
suffix.minutes
=
min
supernavi.admin
=
Yll
\u
00E4piton
\u
00E4kym
\u
00E4
supernavi.admin
=
Yll
\u
00E4piton
\u
00E4kym
\u
00E4
supernavi.user
=
K
\u
00E4ytt
\u
00E4j
\u
00E4n
\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;
...
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import
java.util.Calendar
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.List
;
import
java.util.TreeSet
;
import
java.util.TreeSet
;
...
@@ -76,12 +77,13 @@ public class FoodWaveView extends GenericCDIView {
...
@@ -76,12 +77,13 @@ public class FoodWaveView extends GenericCDIView {
private
Date
startDate
;
private
Date
startDate
;
private
Product
currentProduct
;
private
Product
currentProduct
;
private
ListDataModel
<
BillLine
>
billLines
;
//
private ListDataModel<BillLine> billLines;
// private List<BillLine> unpaidBills;
// private List<BillLine> unpaidBills;
private
Integer
foodWaveId
;
private
Integer
foodWaveId
;
private
ListDataModel
<
AccountEvent
>
accountEventLines
;
private
ListDataModel
<
AccountEvent
>
accountEventLines
;
private
ListDataModel
<
FoodWave
>
foodWaves
;
private
ListDataModel
<
FoodWave
>
foodWaves
;
private
ListDataModel
<
Bill
>
bills
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FoodWaveView
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FoodWaveView
.
class
);
public
List
<
Product
>
getProducts
()
{
public
List
<
Product
>
getProducts
()
{
...
@@ -175,7 +177,7 @@ public class FoodWaveView extends GenericCDIView {
...
@@ -175,7 +177,7 @@ public class FoodWaveView extends GenericCDIView {
public
List
<
FoodwaveProductSummary
>
getProductSummaries
()
{
public
List
<
FoodwaveProductSummary
>
getProductSummaries
()
{
System
.
out
.
println
(
"..asdfasdf"
);
HashMap
<
Product
,
FoodwaveProductSummary
>
pmap
=
new
HashMap
<
Product
,
FoodwaveProductSummary
>();
HashMap
<
Product
,
FoodwaveProductSummary
>
pmap
=
new
HashMap
<
Product
,
FoodwaveProductSummary
>();
for
(
AccountEvent
ae
:
getSelectedFoodWave
().
getAccountEvents
())
{
for
(
AccountEvent
ae
:
getSelectedFoodWave
().
getAccountEvents
())
{
...
@@ -221,6 +223,10 @@ public class FoodWaveView extends GenericCDIView {
...
@@ -221,6 +223,10 @@ public class FoodWaveView extends GenericCDIView {
}
}
return
ret
.
negate
();
return
ret
.
negate
();
}
}
public
BigDecimal
getFoodwaveBuyInPrice
()
public
BigDecimal
getFoodwaveBuyInPrice
()
{
{
...
@@ -246,12 +252,14 @@ public class FoodWaveView extends GenericCDIView {
...
@@ -246,12 +252,14 @@ public class FoodWaveView extends GenericCDIView {
// }
// }
public
String
markBillPaid
()
{
public
String
markBillPaid
()
{
if
(
permbean
.
hasPermission
(
BillPermission
.
WRITE_ALL
)
&&
getBillLines
()
.
isRowAvailable
())
{
if
(
permbean
.
hasPermission
(
BillPermission
.
WRITE_ALL
)
&&
bills
!=
null
&&
bills
.
isRowAvailable
())
{
Bill
b
=
getBillLines
().
getRowData
().
getBill
();
Bill
b
=
bills
.
getRowData
();
b
=
billbean
.
markPaid
(
b
,
Calendar
.
getInstance
());
b
=
billbean
.
markPaid
(
b
,
Calendar
.
getInstance
());
foodWaveId
=
selectedFoodWave
.
getId
();
foodWaveId
=
selectedFoodWave
.
getId
();
selectedFoodWave
=
null
;
selectedFoodWave
=
null
;
bills
=
null
;
initFoodWaveOrderList
();
initFoodWaveOrderList
();
}
}
...
@@ -259,8 +267,8 @@ public class FoodWaveView extends GenericCDIView {
...
@@ -259,8 +267,8 @@ public class FoodWaveView extends GenericCDIView {
}
}
public
String
deliverAccountEvent
()
{
public
String
deliverAccountEvent
()
{
if
(
getAccountEventLines
()
.
isRowAvailable
())
{
if
(
accountEventLines
!=
null
&&
accountEventLines
.
isRowAvailable
())
{
AccountEvent
e
=
getAccountEventLines
()
.
getRowData
();
AccountEvent
e
=
accountEventLines
.
getRowData
();
e
=
productbeanlocal
.
markDelivered
(
e
,
Calendar
.
getInstance
());
e
=
productbeanlocal
.
markDelivered
(
e
,
Calendar
.
getInstance
());
foodWaveId
=
selectedFoodWave
.
getId
();
foodWaveId
=
selectedFoodWave
.
getId
();
selectedFoodWave
=
null
;
selectedFoodWave
=
null
;
...
@@ -271,27 +279,28 @@ public class FoodWaveView extends GenericCDIView {
...
@@ -271,27 +279,28 @@ public class FoodWaveView extends GenericCDIView {
}
}
public
void
initFoodWaveOrderList
()
{
public
void
initFoodWaveOrderList
()
{
if
(
super
.
requirePermissions
(
ShopPermission
.
MANAGE_FOODWAVES
)
&&
selectedFoodWave
==
null
)
{
if
(
super
.
requirePermissions
(
ShopPermission
.
MANAGE_FOODWAVES
)
&&
selectedFoodWave
==
null
)
{
selectedFoodWave
=
foodWaveBean
.
findFoodwave
(
foodWaveId
);
selectedFoodWave
=
foodWaveBean
.
findFoodwave
(
foodWaveId
);
logger
.
debug
(
"Got foodwave {} with id {}"
,
selectedFoodWave
,
foodWaveId
);
logger
.
debug
(
"Got foodwave {} with id {}"
,
selectedFoodWave
,
foodWaveId
);
this
.
setAccountEventLines
(
new
ListDataModel
<
AccountEvent
>(
selectedFoodWave
.
getAccountEvents
()));
super
.
beginConversation
();
}
List
<
BillLine
>
tmpLines
=
new
ArrayList
<
BillLine
>();
HashSet
<
Bill
>
billList
=
new
HashSet
<
Bill
>();
for
(
BillLine
line
:
selectedFoodWave
.
getBillLines
())
{
for
(
BillLine
line
:
getSelectedFoodWave
().
getBillLines
())
{
if
(!
line
.
getBill
().
isPaid
())
{
if
(!
line
.
getBill
().
isPaid
())
{
tmpLines
.
add
(
line
);
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
()
public
String
saveTemplate
()
...
@@ -315,7 +324,6 @@ public class FoodWaveView extends GenericCDIView {
...
@@ -315,7 +324,6 @@ public class FoodWaveView extends GenericCDIView {
}
}
public
FoodWave
getSelectedFoodWave
()
{
public
FoodWave
getSelectedFoodWave
()
{
// System.out.println("APOFKASFASFASFASFASFASFASFASFASFKJIOJIO");
return
selectedFoodWave
;
return
selectedFoodWave
;
}
}
...
@@ -351,13 +359,10 @@ public class FoodWaveView extends GenericCDIView {
...
@@ -351,13 +359,10 @@ public class FoodWaveView extends GenericCDIView {
this
.
foodWaveId
=
foodWaveId
;
this
.
foodWaveId
=
foodWaveId
;
}
}
public
ListDataModel
<
Bill
Line
>
getBillLine
s
()
{
public
ListDataModel
<
Bill
>
getBill
s
()
{
return
bill
Line
s
;
return
bills
;
}
}
public
void
setBillLines
(
ListDataModel
<
BillLine
>
billLines
)
{
this
.
billLines
=
billLines
;
}
public
void
setFoodWaves
(
ListDataModel
<
FoodWave
>
foodWaves
)
{
public
void
setFoodWaves
(
ListDataModel
<
FoodWave
>
foodWaves
)
{
this
.
foodWaves
=
foodWaves
;
this
.
foodWaves
=
foodWaves
;
...
@@ -366,15 +371,12 @@ public class FoodWaveView extends GenericCDIView {
...
@@ -366,15 +371,12 @@ public class FoodWaveView extends GenericCDIView {
public
ListDataModel
<
FoodWave
>
getFoodWaves
()
{
public
ListDataModel
<
FoodWave
>
getFoodWaves
()
{
return
foodWaves
;
return
foodWaves
;
}
}
public
ListDataModel
<
AccountEvent
>
getAccountEventLines
()
{
public
ListDataModel
<
AccountEvent
>
getAccountEventLines
()
{
return
accountEventLines
;
return
accountEventLines
;
}
}
public
void
setAccountEventLines
(
ListDataModel
<
AccountEvent
>
accountEventLines
)
{
this
.
accountEventLines
=
accountEventLines
;
}
/*
/*
* public List<BillLine> getUnpaidBills() { return unpaidBills; }
* 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