parent
							
								
									ceac59c8d3
								
							
						
					
					
						commit
						9c5679af2c
					
				@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.TripBillApproval;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author Pepa Rokos
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface TripBillApprovalDao extends BaseDao<TripBillApproval> {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.dao.jpa;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.dao.TripBillApprovalDao;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.TripBillApproval;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author Pepa Rokos
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class TripBillApprovalDaoJPA extends BaseDaoJPA<TripBillApproval> implements TripBillApprovalDao {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.persistence.Entity;
 | 
				
			||||||
 | 
					import javax.persistence.Table;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author Pepa Rokos
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Entity
 | 
				
			||||||
 | 
					@Table(name = "TRIP_BILL_APPROVAL")
 | 
				
			||||||
 | 
					public class TripBillApproval extends RequirementBase {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.services.tripbill;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.TripBill;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.TripBillApproval;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.requirement.RequirementBaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author Pepa Rokos
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface TripBillApprovalService extends RequirementBaseService<TripBillApproval> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public TripBillApproval createApproval(TripBill bill);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.services.tripbill;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.Constants;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.RequirementState;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.TripBill;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.TripBillApproval;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.IsspstException;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.requirement.RequirementBaseServiceImpl;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.requirement.RequirementTypeService;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.access.prepost.PreAuthorize;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author Pepa Rokos
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class TripBillApprovalServiceImpl extends RequirementBaseServiceImpl<TripBillApproval> implements TripBillApprovalService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Autowired
 | 
				
			||||||
 | 
						private RequirementTypeService reqTypeService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public TripBillApproval createApproval(TripBill bill) {
 | 
				
			||||||
 | 
							if (bill.getApproval() != null) {
 | 
				
			||||||
 | 
								throw new IsspstException("Approval already exists");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							TripBillApproval approval = new TripBillApproval();
 | 
				
			||||||
 | 
							approval.setCentre(bill.getRequirement().getCentre());
 | 
				
			||||||
 | 
							approval.setWorkgroup(bill.getRequirement().getWorkgroup());
 | 
				
			||||||
 | 
							approval.setReqDate(new Date());
 | 
				
			||||||
 | 
							approval.setType(reqTypeService.getTypeById(Constants.REQTYPE_BUSINESSTRIP));
 | 
				
			||||||
 | 
							approval.setState(RequirementState.NEW);
 | 
				
			||||||
 | 
							bill.setApproval(approval);
 | 
				
			||||||
 | 
							return approval;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						@Transactional
 | 
				
			||||||
 | 
						@PreAuthorize("hasPermission(this, 'PERM_ADD')")
 | 
				
			||||||
 | 
						public void add(TripBillApproval entity) {
 | 
				
			||||||
 | 
							entity.setCreated(new Date());
 | 
				
			||||||
 | 
							entity.setOwnedBy(getLoggedInUser());
 | 
				
			||||||
 | 
							addWorkflow(entity);
 | 
				
			||||||
 | 
							dao.add(entity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							postAdd(entity);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,83 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.ui.tripbill;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.TripBill;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.TripBillApproval;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.requirement.TripRequirementService;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.tripbill.TripBillApprovalService;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.tripbill.TripBillService;
 | 
				
			||||||
 | 
					import info.bukova.isspst.ui.requirement.RequirementSubpage;
 | 
				
			||||||
 | 
					import org.zkoss.bind.annotation.BindingParam;
 | 
				
			||||||
 | 
					import org.zkoss.bind.annotation.Command;
 | 
				
			||||||
 | 
					import org.zkoss.bind.annotation.ExecutionArgParam;
 | 
				
			||||||
 | 
					import org.zkoss.bind.annotation.GlobalCommand;
 | 
				
			||||||
 | 
					import org.zkoss.bind.annotation.Init;
 | 
				
			||||||
 | 
					import org.zkoss.bind.annotation.NotifyChange;
 | 
				
			||||||
 | 
					import org.zkoss.zk.ui.Executions;
 | 
				
			||||||
 | 
					import org.zkoss.zk.ui.select.annotation.WireVariable;
 | 
				
			||||||
 | 
					import org.zkoss.zul.Window;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author Pepa Rokos
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class TripBillSummaryVM extends RequirementSubpage<TripBillApproval> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@WireVariable
 | 
				
			||||||
 | 
						private TripBillApprovalService tripBillApprovalService;
 | 
				
			||||||
 | 
						@WireVariable
 | 
				
			||||||
 | 
						private TripBillService tripBillService;
 | 
				
			||||||
 | 
						@WireVariable
 | 
				
			||||||
 | 
						private TripRequirementService tripRequirementService;
 | 
				
			||||||
 | 
						private TripBill bill;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Init(superclass = true)
 | 
				
			||||||
 | 
						public void initBillSummary(@ExecutionArgParam("bill") TripBill bill) {
 | 
				
			||||||
 | 
							service = tripBillApprovalService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (bill.getApproval() != null) {
 | 
				
			||||||
 | 
								setDataBean(bill.getApproval());
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							this.bill = bill;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public TripBill getBill() {
 | 
				
			||||||
 | 
							return bill;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setBill(TripBill bill) {
 | 
				
			||||||
 | 
							this.bill = bill;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public List<TripBill> getBills() {
 | 
				
			||||||
 | 
							List<TripBill> bills = new ArrayList<TripBill>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							for (TripBill b : tripRequirementService.getBills(bill.getRequirement())) {
 | 
				
			||||||
 | 
								if (b.getId() != bill.getId()) {
 | 
				
			||||||
 | 
									tripBillService.loadLazyData(b);
 | 
				
			||||||
 | 
									bills.add(b);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return bills;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Command
 | 
				
			||||||
 | 
						public void showBill(@BindingParam("bill") TripBill bill) {
 | 
				
			||||||
 | 
							Map<String, Object> params = new HashMap<String, Object>();
 | 
				
			||||||
 | 
							params.put("selected", bill);
 | 
				
			||||||
 | 
							Window win = (Window) Executions.createComponents("tripBill.zul", null, params);
 | 
				
			||||||
 | 
							win.doModal();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						@GlobalCommand
 | 
				
			||||||
 | 
						@NotifyChange("dataBean")
 | 
				
			||||||
 | 
						public void reload() {
 | 
				
			||||||
 | 
							setDataBean(tripBillApprovalService.getById(bill.getApproval().getId()));
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,72 @@
 | 
				
			|||||||
 | 
					<?page title="${labels.TravelOrdersFormTitle}" contentType="text/html;charset=UTF-8"?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<zk xmlns="http://www.zkoss.org/2005/zul"
 | 
				
			||||||
 | 
						xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
						xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd">
 | 
				
			||||||
 | 
						<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						<window id="billWin"
 | 
				
			||||||
 | 
								closable="true"
 | 
				
			||||||
 | 
								width="700px"
 | 
				
			||||||
 | 
								height="450px"
 | 
				
			||||||
 | 
								border="normal"
 | 
				
			||||||
 | 
								position="center"
 | 
				
			||||||
 | 
								apply="org.zkoss.bind.BindComposer"
 | 
				
			||||||
 | 
								viewModel="@id('vm') @init('info.bukova.isspst.ui.tripbill.TripBillSummaryVM')">
 | 
				
			||||||
 | 
							<caption
 | 
				
			||||||
 | 
									src="/img/pickup-032.png"
 | 
				
			||||||
 | 
									zclass="form-caption"
 | 
				
			||||||
 | 
									label="${labels.TravelOrdersFormTitle}" />
 | 
				
			||||||
 | 
							<hbox vflex="1">
 | 
				
			||||||
 | 
								<vbox width="350px" vflex="1">
 | 
				
			||||||
 | 
									<label value="@load(vm.bill.ownedBy)" style="font-weight: bold; font-size: larger"/>
 | 
				
			||||||
 | 
									<hbox>
 | 
				
			||||||
 | 
										<label value="${labels.RequirementsFormFrom}: "/>
 | 
				
			||||||
 | 
										<label value="@load(vm.bill.requirement.from)"/>
 | 
				
			||||||
 | 
										<label value="${labels.RequirementsFormTo}: "/>
 | 
				
			||||||
 | 
										<label value="@load(vm.bill.requirement.to)"/>
 | 
				
			||||||
 | 
									</hbox>
 | 
				
			||||||
 | 
									<hbox>
 | 
				
			||||||
 | 
										<label value="${labels.RequirementsFormStartDateTime}: "/>
 | 
				
			||||||
 | 
										<label value="@load(vm.bill.requirement.tripDate) @converter('formatedDate', format=labels.DateFormat)"/>
 | 
				
			||||||
 | 
									</hbox>
 | 
				
			||||||
 | 
									<hbox>
 | 
				
			||||||
 | 
										<label value="${labels.RequirementsFormEndDate}: "/>
 | 
				
			||||||
 | 
										<label value="@load(vm.bill.requirement.endDate) @converter('formatedDate', format=labels.DateFormat)"/>
 | 
				
			||||||
 | 
									</hbox>
 | 
				
			||||||
 | 
									<hbox>
 | 
				
			||||||
 | 
										<label value="${labels.RequirementsFormPurpose}: "/>
 | 
				
			||||||
 | 
										<label value="@load(vm.bill.requirement.description)"/>
 | 
				
			||||||
 | 
									</hbox>
 | 
				
			||||||
 | 
									<hbox>
 | 
				
			||||||
 | 
										<label value="${labels.TripBillTotal}:"/> <label value="@load(vm.bill.total) @converter(vm.standardBigDecimalConverter)"/>
 | 
				
			||||||
 | 
									</hbox>
 | 
				
			||||||
 | 
									<button label="${labels.TripBillSummaryDetail}"
 | 
				
			||||||
 | 
											onClick="@command('showBill', bill=vm.bill)"
 | 
				
			||||||
 | 
											sclass="nicebutton"/>
 | 
				
			||||||
 | 
									<div visible="@load(not empty vm.bills)" vflex="1">
 | 
				
			||||||
 | 
										<separator bar="true" width="100%"/>
 | 
				
			||||||
 | 
										<label value="${labels.RequirementsFormPassengers}"/>
 | 
				
			||||||
 | 
										<grid model="@load(vm.bills)" vflex="1">
 | 
				
			||||||
 | 
											<columns>
 | 
				
			||||||
 | 
												<column />
 | 
				
			||||||
 | 
												<column width="90px"/>
 | 
				
			||||||
 | 
											</columns>
 | 
				
			||||||
 | 
											<rows>
 | 
				
			||||||
 | 
												<template name="model">
 | 
				
			||||||
 | 
													<row>
 | 
				
			||||||
 | 
														<label value="@load(each.ownedBy)"/>
 | 
				
			||||||
 | 
														<button label="${labels.TripBillSummaryDetail}"
 | 
				
			||||||
 | 
																sclass="nicebutton"
 | 
				
			||||||
 | 
																onClick="@command('showBill', bill=each)"/>
 | 
				
			||||||
 | 
													</row>
 | 
				
			||||||
 | 
												</template>
 | 
				
			||||||
 | 
											</rows>
 | 
				
			||||||
 | 
										</grid>
 | 
				
			||||||
 | 
									</div>
 | 
				
			||||||
 | 
								</vbox>
 | 
				
			||||||
 | 
								<include src="../../approveStatus.zul" vflex="1"/>
 | 
				
			||||||
 | 
							</hbox>
 | 
				
			||||||
 | 
						</window>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</zk>
 | 
				
			||||||
					Loading…
					
					
				
		Reference in New Issue