/*
* Licensed to csti consulting
* You may obtain a copy of the License at
*
* http://www.csticonsulting.com
* Copyright (c) 2006-Aug 25, 2010 Consultation CS-TI inc.
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.salesmanager.customer.profile;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import org.apache.commons.configuration.Configuration;
import org.apache.log4j.Logger;
import com.salesmanager.common.PageBaseAction;
import com.salesmanager.common.util.PropertiesHelper;
import com.salesmanager.core.entity.customer.Customer;
import com.salesmanager.core.entity.merchant.MerchantStore;
import com.salesmanager.core.entity.orders.SearchOrderResponse;
import com.salesmanager.core.entity.orders.SearchOrdersCriteria;
import com.salesmanager.core.service.ServiceFactory;
import com.salesmanager.core.service.order.OrderService;
import com.salesmanager.core.util.LanguageUtil;
import com.salesmanager.core.util.LocaleUtil;
import com.salesmanager.core.util.www.SessionUtil;
public class OrdersAction extends PageBaseAction {
private Logger log = Logger.getLogger(OrdersAction.class);
private static Configuration config = PropertiesHelper.getConfiguration();
private Collection orders;
private String orderId;
private static int size = 20;
static {
size = config.getInt("catalog.orderlist.maxsize", 10);
}
public String displayOrders() {
try {
super.setSize(size);// defined in configuration according to
// template
super.setPageStartNumber();
SearchOrdersCriteria crit = getCriteria(super.getPageStartIndex());
ordersQuery(crit);
} catch (Exception e) {
log.error(e);
super.setTechnicalMessage();
}
return SUCCESS;
}
private void ordersQuery(SearchOrdersCriteria criteria) throws Exception {
OrderService oservice = (OrderService) ServiceFactory
.getService(ServiceFactory.OrderService);
SearchOrderResponse resp = oservice.searchOrdersByCustomer(criteria);
if (resp != null) {
orders = resp.getOrders();
LocaleUtil.setLocaleToEntityCollection(orders, super.getLocale());
super.setListingCount(resp.getCount());
super.setRealCount(orders.size());
super.setPageElements();
}
}
private SearchOrdersCriteria getCriteria(int startIndex) {
MerchantStore store = SessionUtil.getMerchantStore(super
.getServletRequest());
SearchOrdersCriteria criteria = new SearchOrdersCriteria();
Customer customer = SessionUtil.getCustomer(super.getServletRequest());
// 12 months
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.MONTH, -12);
criteria.setSdate(calendar.getTime());
criteria.setEdate(new Date());
criteria.setLanguageId(LanguageUtil.getLanguageNumberCode(super
.getLocale().getLanguage()));
criteria.setMerchantId(store.getMerchantId());
criteria.setCustomerId(customer.getCustomerId());
criteria.setQuantity(size);
criteria.setStartindex(startIndex);
return criteria;
}
public Collection getOrders() {
return orders;
}
public void setOrders(Collection orders) {
this.orders = orders;
}
public String getOrderId() {
return orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
}