Subversion Repositories SmartDukaan

Rev

Rev 20110 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.serving.controllers;

import in.shop2020.crm.Activity;
import in.shop2020.crm.ActivityType;
import in.shop2020.crm.Agent;
import in.shop2020.crm.SearchFilter;
import in.shop2020.crm.Ticket;
import in.shop2020.crm.TicketCategory;
import in.shop2020.crm.TicketStatus;
import in.shop2020.model.v1.order.Order;
import in.shop2020.model.v1.order.OrderSource;
import in.shop2020.model.v1.order.OrderStatus;
import in.shop2020.model.v1.order.RechargeOrder;
import in.shop2020.model.v1.order.RechargeOrderStatus;
import in.shop2020.model.v1.order.ReturnOrderInfo;
import in.shop2020.model.v1.order.ReturnPickupRequest;
import in.shop2020.model.v1.order.ReturnTransaction;
import in.shop2020.model.v1.order.TransactionServiceException;
import in.shop2020.model.v1.order.UserWallet;
import in.shop2020.model.v1.user.Cart;
import in.shop2020.model.v1.user.Line;
import in.shop2020.model.v1.user.PrivateDealUser;
import in.shop2020.model.v1.user.User;
import in.shop2020.model.v1.user.UserCommunication;
import in.shop2020.model.v1.user.UserCommunicationException;
import in.shop2020.model.v1.user.UserContextException;
import in.shop2020.serving.auth.CRMAuthorizingRealm;
import in.shop2020.thrift.clients.CRMClient;
import in.shop2020.thrift.clients.TransactionClient;
import in.shop2020.thrift.clients.UserClient;
import in.shop2020.util.CRMConstants;
import in.shop2020.util.CRMEmailProcessor;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.Logger;
import org.apache.shiro.SecurityUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.thrift.TException;

/**
 * @author vikas
 * 
 */
@SuppressWarnings("serial")
public class HomeController extends BaseController {
//    private static final Logger log        = Logger.getLogger(HomeController.class);
    private static final Log log                   = LogFactory.getLog(HomeController.class);

    private String              rechargeOrderId;
    private String              deviceNumber;
    private String              email;
    private String              orderId;
    private String              mobileNumber;
    private User                user;
    private long                orderCount;
    private long                completedOrderCount;
    private long                openOrderCount;
    private long                failedOrderCount;
    private long                userCommunicationCount;
    private long                ticketCount;
    private long                openTicketCount;
    private long                closedTicketCount;
    private String              ticketId;
    private String              lastLogin;
    private double              cartItems;
    private String              couponCode = "";
    private long                agentOpenTicketCount;
    private long                unassignedTicketCount;
    private long                activityCount;
    private long                customerActivityCount;
    private long                                pmCustomerActivityCount;
    private long                pmAgentUnreadActivityCount;
    private long                pendingCodVerificationCount;
    private long                agentUnreadActivityCount;
    private long                openFailedPaymentsTicketCount;
    private long                openDelayedDeliveryTicketCount;
    private long                openFlaggedPaymentsTicketCount;
    private long                                openStorePickupTicketCount;
    private long                lowInventoryTicketsCount;
    //Start:- Added By Manish Sharma for Creating a new Ticket: Category- RTO Refund on 21-Jun-2013
    private long                RtoRefundsTicketCount;
    //End:- Added By Manish Sharma for Creating a new Ticket: Category- RTO Refund on 21-Jun-2013
    private long                DoaRequestCount;
    private long                failedRechargeCount = 0;
    private long                successfulRechargeCount = 0;

        private long                ReturnRequestCount;

    private long                orderCancellationCount;

    private long                rechargeOrderCount = 0;
    
    private String              amazonOrderItemCode;
    
    //Start:- Added by Manish Sharma for Displaying wallet amount at user page on June-05-2013
    private UserWallet          wallet = null;
    
    private long                walletAmount;
    //End:- Added by Manish Sharma for Displaying wallet amount at user page on June-05-2013
    
    private List<Order> orders = new ArrayList<Order>();
    
    private List<RechargeOrder> rechargeOrders = new ArrayList<RechargeOrder>();
    private String amazonId;
    private long bulkOrderEnquiryCount;
    private long profitMandiTicketCount;
    private PrivateDealUser privateDealUser;
    private String masterOrderId;
    private String returnTransactionId;
    private String pickupRequestId;
        private long deliveryAttemptFailedCount;

    @Action("/")
    public String index() throws Exception {
        String returnValue = INPUT;

        try {
            
            if (mobileNumber != null && !mobileNumber.isEmpty()) {
                transactionServiceClient = new TransactionClient().getClient();
                setOrders(transactionServiceClient.getOrdersByMobileNumber(mobileNumber));
                return "orders-index";
            }
            
            if (amazonId != null && !amazonId.isEmpty()) {
                transactionServiceClient = new TransactionClient().getClient();
                setOrders(transactionServiceClient.getOrdersByAmazonOrderCode(amazonId));
                return "orders-index";
            }
            
            if(masterOrderId!=null && !masterOrderId.isEmpty()){
                transactionServiceClient = new TransactionClient().getClient();
                setOrders(transactionServiceClient.getGroupOrdersByLogisticsTxnId(masterOrderId));
                return "orders-index";
            }
            
            if (deviceNumber != null && !deviceNumber.isEmpty()) {
                transactionServiceClient = new TransactionClient().getClient();
                rechargeOrders = transactionServiceClient.getRechargeOrdersForDevice(deviceNumber);
                setRechargeOrders(rechargeOrders);
                return "recharge-orders-result-index";
                //user = userContextServiceClient.getUserById(rechargeOrders.get(0).getUserId());
            }
            
            userContextServiceClient = new UserClient().getClient();
            if (email != null && !email.isEmpty()) {
                user = userContextServiceClient.getUserByEmail(email);
            } else if (orderId != null && !orderId.isEmpty()) {
                transactionServiceClient = new TransactionClient().getClient();
                Order order = transactionServiceClient.getOrder(Long
                        .parseLong(orderId));
                user = userContextServiceClient.getUserById(order
                        .getCustomer_id());
            } else if (rechargeOrderId != null && !rechargeOrderId.isEmpty()){
                transactionServiceClient = new TransactionClient().getClient();
                RechargeOrder rechargeOrder = transactionServiceClient.getRechargeOrder(Long
                        .parseLong(rechargeOrderId));
                user = userContextServiceClient.getUserById(rechargeOrder.getUserId());
            } else if (ticketId != null && !ticketId.isEmpty()) {
                SearchFilter searchFilter = new SearchFilter();
                searchFilter.setTicketId(Long.parseLong(ticketId));
                crmServiceClient = new CRMClient().getClient();
                List<Ticket> tickets = crmServiceClient
                        .getTickets(searchFilter);
                if (!tickets.isEmpty()) {
                    Ticket ticket = tickets.get(0);
                    if (ticket.isSetCustomerId()) {
                        user = userContextServiceClient.getUserById(ticket.getCustomerId());
                    }
                }
                else {
                    // resetting in case on invalid ticket Id
                    ticketId = null;
                }
            } else if (returnTransactionId != null && !returnTransactionId.isEmpty()) {
                transactionServiceClient = new TransactionClient().getClient();
                ReturnTransaction returnTransaction = transactionServiceClient.getReturnTransaction(Long.valueOf(returnTransactionId));
                user = userContextServiceClient.getUserById(returnTransaction
                        .getCustomer_id());
            }else if (pickupRequestId != null && !pickupRequestId.isEmpty()) {
                transactionServiceClient = new TransactionClient().getClient();
                ReturnPickupRequest returnPickupRequest = transactionServiceClient.getReturnPickupRequest(Long.valueOf(pickupRequestId));
                List<ReturnOrderInfo> returnOrders = transactionServiceClient.getAllReturnOrdersForReturnPickupRequest(returnPickupRequest.getId());
                ReturnTransaction returnTransaction = transactionServiceClient.getReturnTransaction(returnOrders.get(0).getReturnTransactionId());
                user = userContextServiceClient.getUserById(returnTransaction
                        .getCustomer_id());
            }
            if (user == null || user.getUserId() <= 0) {
                if (ticketId == null || ticketId.isEmpty()) {
                    addActionError("Invalid input");
                }
            } else {
                loadUserCommunicationDetails();
                loadRechargeOrders();
                loadOrderDetails();
                loadCartDetails();
                loadTicketDetails();
                loadActivityDetails();
                returnValue = INDEX;
            }
        } catch (Exception e) {
            addActionError("Invalid input");
            log.error("Error occurred", e);
        }

        if (INPUT.equals(returnValue)) {
            loadTicketCounts();
            loadCustomerActivities();
            loadPmCustomerActivities();
        }

        return returnValue;
    }

    private void loadCustomerActivities() throws TException {
        if(!isProfitMandiAgent()){
                SearchFilter searchFilter = new SearchFilter();
                searchFilter.setActivityCreatorIds(Collections
                        .singletonList(CRMConstants.ADMIN_AGENT_ID));
                searchFilter.setIsActivityRead(false);
                if(!isSaholicAndProfitMandiAllowed()){
                        searchFilter.setNotShowPmTickets(true);
                        searchFilter.setTicketCategoryList(profitMandiTicketCategoryList);
                }
                agentUnreadActivityCount = 0;
                customerActivityCount = 0;
        
                crmServiceClient = new CRMClient().getClient();
                List<Activity> activities = crmServiceClient.getActivities(searchFilter);
        
                if (activities != null) {
                    for (Activity activity : activities) {
                        if (CRMAuthorizingRealm.getAgent(currentAgentEmailId).getId() == activity.getTicketAssigneeId()) {
                            agentUnreadActivityCount++;
                        }
                    }
        
                    customerActivityCount = activities.size();
                }
        }
    }
    
    private void loadPmCustomerActivities() throws TException {
        if(isProfitMandiAgent()){
                SearchFilter searchFilter = new SearchFilter();
                searchFilter.setActivityCreatorIds(Collections
                        .singletonList(CRMConstants.ADMIN_AGENT_ID));
                searchFilter.setIsActivityRead(false);
                searchFilter.setNotShowPmTickets(false);
                searchFilter.setTicketCategoryList(profitMandiTicketCategoryList);
                
                pmAgentUnreadActivityCount = 0;
                pmCustomerActivityCount = 0;
                
                crmServiceClient = new CRMClient().getClient();
                List<Activity> activities = crmServiceClient.getActivities(searchFilter);
        
                if (activities != null) {
                    for (Activity activity : activities) {
                        if (CRMAuthorizingRealm.getAgent(currentAgentEmailId).getId() == activity.getTicketAssigneeId()) {
                                pmAgentUnreadActivityCount++;
                        }
                        pmCustomerActivityCount++;
                    }
                    
                }
        }
    }

    private void loadActivityDetails() throws TException {
        SearchFilter searchFilter = new SearchFilter();
        searchFilter.setCustomerId(user.getUserId());

        crmServiceClient = new CRMClient().getClient();
        List<Activity> activities = crmServiceClient
                .getActivities(searchFilter);
        if (activities != null) {
            activityCount = activities.size();
        }
    }

    private void loadTicketCounts() throws TException {
        SearchFilter searchFilter = new SearchFilter();
        searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
        searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
        searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
        searchFilter.setTicketAssigneeIds(Collections
                .singletonList(CRMAuthorizingRealm.getAgent(currentAgentEmailId).getId()));

        crmServiceClient = new CRMClient().getClient();
        agentOpenTicketCount = crmServiceClient.getTickets(searchFilter).size();
        List<Ticket> unassignedTickets = new ArrayList<Ticket>();
        unassignedTickets = crmServiceClient.getUnassignedTickets();
        long sAgentUnassignedTicketCount = 0;
        long pmAgentUnassignedTicketCount = 0;
        long allPermittedUnassignedTicketCount = 0;
        
        for(Ticket unassignedTicket: unassignedTickets){
                if(profitMandiTicketCategoryList.contains(unassignedTicket.getCategory())){
                        pmAgentUnassignedTicketCount++;
                        allPermittedUnassignedTicketCount++;
                }else{
                        sAgentUnassignedTicketCount++;
                        allPermittedUnassignedTicketCount++;
                }
        }
        
        if(isSaholicAndProfitMandiAllowed()){
                unassignedTicketCount = allPermittedUnassignedTicketCount;
        }else if(isProfitMandiAgent()){
                unassignedTicketCount = pmAgentUnassignedTicketCount;
        }else{
                unassignedTicketCount = sAgentUnassignedTicketCount;
        }
        if(!isProfitMandiAgent()){
                if (canVerifyCOD()) {
                    searchFilter = new SearchFilter();
                    searchFilter.setTicketCategory(TicketCategory.COD_VERIFICATION);
                    searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
        
                    crmServiceClient = new CRMClient().getClient();
                    pendingCodVerificationCount = crmServiceClient.getTickets(searchFilter).size();            
                }
                
                if (canViewFailedPayments()) {
                    searchFilter = new SearchFilter();
                    searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
                    searchFilter.setTicketCategory(TicketCategory.FAILED_PAYMENTS);
                    crmServiceClient = new CRMClient().getClient();
                    openFailedPaymentsTicketCount = crmServiceClient.getTickets(searchFilter).size();
                }
                
                if (canViewDelayedDeliveries()) {
                    searchFilter = new SearchFilter();
                    searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
                    searchFilter.setTicketCategory(TicketCategory.DELAYED_DELIVERY);
                    crmServiceClient = new CRMClient().getClient();
                    openDelayedDeliveryTicketCount = crmServiceClient.getTickets(searchFilter).size();
                }
                
                if (canViewFlaggedPayments()) {
                    searchFilter = new SearchFilter();
                    searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
                    searchFilter.setTicketCategory(TicketCategory.PAYMENT_FLAGGED);
                    crmServiceClient = new CRMClient().getClient();
                    openFlaggedPaymentsTicketCount = crmServiceClient.getTickets(searchFilter).size();
                }
                
                if (canViewDoaRequests()) {
                    searchFilter = new SearchFilter();
                    searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
                    searchFilter.setTicketCategory(TicketCategory.DOA_RECEIVED);
                    crmServiceClient = new CRMClient().getClient();
                    DoaRequestCount = crmServiceClient.getTickets(searchFilter).size();
                }
                
                if (canViewReturnRequests()) {
                    searchFilter = new SearchFilter();
                    searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
                    searchFilter.setTicketCategory(TicketCategory.RETURN_FORM);
                    crmServiceClient = new CRMClient().getClient();
                    ReturnRequestCount = crmServiceClient.getTickets(searchFilter).size();
                }
                
                if (canViewOrderCancellation()) {
                    searchFilter = new SearchFilter();
                    searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
                    searchFilter.setTicketCategory(TicketCategory.ORDER_CANCELLATION);
                    crmServiceClient = new CRMClient().getClient();
                    orderCancellationCount = crmServiceClient.getTickets(searchFilter).size();
                }
                
                searchFilter = new SearchFilter();
                searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
                searchFilter.setTicketCategory(TicketCategory.STORE_PICKUP);
                crmServiceClient = new CRMClient().getClient();
                openStorePickupTicketCount = crmServiceClient.getTickets(searchFilter).size();
                
                if (canViewLowInventoryCancellation()) {
                    searchFilter = new SearchFilter();
                    searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
                    searchFilter.setTicketCategory(TicketCategory.LOW_INVENTORY_CANCELLED_ORDERS);
                    crmServiceClient = new CRMClient().getClient();
                    lowInventoryTicketsCount = crmServiceClient.getTickets(searchFilter).size();
                }
                //Start:- Added By Manish Sharma for Creating a new Ticket: Category- RTO Refund on 21-Jun-2013
                if (canViewRTORefunds()) {
                        searchFilter = new SearchFilter();
                    searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
                    searchFilter.setTicketCategory(TicketCategory.RTO_REFUND);
                    crmServiceClient = new CRMClient().getClient();
                    RtoRefundsTicketCount = crmServiceClient.getTickets(searchFilter).size();
                }
                //End:- Added By Manish Sharma for Creating a new Ticket: Category- RTO Refund on 21-Jun-2013
                if (canViewBulkOrderEnquiry()) {
                    log.info("Inside can view bulk order enquiry");
                    searchFilter = new SearchFilter();
                    searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
                    searchFilter.setTicketCategory(TicketCategory.Bulk_Order_ENQUIRY);
                    crmServiceClient = new CRMClient().getClient();
                    log.info("count"+crmServiceClient.getTickets(searchFilter).size());
                    setBulkOrderEnquiryCount(crmServiceClient.getTickets(searchFilter).size());
                }
                
                if(canViewProfitMandiTicket()){
                        log.info("Inside can view Profit Mandi Tickets");
                        searchFilter = new SearchFilter();
                    searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
                    searchFilter.setTicketCategoryList(profitMandiTicketCategoryList);
                    
                    crmServiceClient = new CRMClient().getClient();
                    setProfitMandiTicketCount(crmServiceClient.getTickets(searchFilter).size());
                }
                if(canViewDeliveryAttemptFailed()){
                        log.info("Inside can view Delivery Attempt Failed");
                        searchFilter = new SearchFilter();
                    searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
                    searchFilter.setTicketCategory(TicketCategory.DELIVERY_ATTEMPT_FAILED);
                    
                    crmServiceClient = new CRMClient().getClient();
                    setDeliveryAttemptFailedCount(crmServiceClient.getTickets(searchFilter).size());
                }
        }     
        
    }

    private void loadUserCommunicationDetails()
            throws UserCommunicationException, TException {
        userContextServiceClient = new UserClient().getClient();
        List<UserCommunication> userCommunication = userContextServiceClient
                .getUserCommunicationByUser(user.getUserId());
        userCommunicationCount = userCommunication.size();
        privateDealUser = userContextServiceClient.getPrivateDealUser(user.getUserId());
    }
    
    private void loadRechargeOrders() throws TransactionServiceException,
    TException {
        transactionServiceClient = new TransactionClient().getClient();
        List<RechargeOrder> allRechargeOrders = transactionServiceClient.getRechargeOrders(user.getUserId());
        rechargeOrderCount = allRechargeOrders.size();

        for (RechargeOrder o : allRechargeOrders) {
            if (o.getStatus() == RechargeOrderStatus.RECHARGE_SUCCESSFUL) {
                successfulRechargeCount++;
            } else if (CRMConstants.failedStatusList.contains(o.getStatus())) {
                failedRechargeCount++;
            }
        }
        //Start:- Added by Manish Sharma for Displaying wallet amount at user page on June-05-2013
        wallet = transactionServiceClient.getUserWallet(user.getUserId());
        setWalletAmount(wallet.getAmount());
        //End:- Added by Manish Sharma for Displaying wallet amount at user page on June-05-2013 
    }
    private void loadOrderDetails() throws TransactionServiceException,
    TException {
        transactionServiceClient = new TransactionClient().getClient();
        List<Order> allOrders = transactionServiceClient.getOrdersForCustomer(
                user.getUserId(), 0, (new Date()).getTime(), null);
        orderCount = allOrders.size();

        for (Order o : allOrders) {
            if (o.getStatus() == OrderStatus.DELIVERY_SUCCESS) {
                completedOrderCount++;
            } else if (CRMConstants.failedStatusList.contains(o.getStatus())) {
                failedOrderCount++;
            } else {
                openOrderCount++;
            }
        }
    }

    private void loadCartDetails() throws UserContextException, TException {
        userContextServiceClient = new UserClient().getClient();
        lastLogin = new Date(user.getLastLogin()).toString();
        Cart cart = null;

        try {
            cart = userContextServiceClient.getCurrentCart(user.getUserId());
            if (cart.getCouponCode() != null) {
                couponCode = cart.getCouponCode();
            }
            for (Line line : cart.getLines()) {
                cartItems += line.getQuantity();
            }
        } catch (Exception e) {
            log.warn("No cart assigned for this user", e);
        }
    }

    private void loadTicketDetails() throws TException {
        // Fetching tickets' info
        ticketCount = 0;
        openTicketCount = 0;
        closedTicketCount = 0;

        crmServiceClient = new CRMClient().getClient();
        SearchFilter searchFilter = new SearchFilter();
        searchFilter.setCustomerId(user.getUserId());

        List<Ticket> tickets = crmServiceClient.getTickets(searchFilter);
        if (tickets != null) {
            for (Ticket ticket : tickets) {
                ticketCount++;
                if (!ticket.getStatus().equals(TicketStatus.CLOSED)) {
                    openTicketCount++;
                } else {
                    closedTicketCount++;
                }
            }
        }
    }
    
    public String getSourceName(long source) {
        return OrderSource.findByValue((int) source).toString();
    }
    

    public String getToday() {
        return SDF.format(new Date());
    }

    public String getYesterday() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.add(Calendar.DAY_OF_MONTH, -1);
        return SDF.format(calendar.getTime());
    }

    public List<Agent> getAllAgents() {
        return CRMAuthorizingRealm.getAgents();
    }

    public ActivityType[] getActivityTypes() {
        return ActivityType.values();
    }

    public TicketCategory[] getTicketCategories() {
        return TicketCategory.values();
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getEmail() {
        return email;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getOrderId() {
        return orderId;
    }

    public User getUser() {
        return user;
    }

    public long getOrderCount() {
        return orderCount;
    }

    public long getCompletedOrderCount() {
        return completedOrderCount;
    }

    public long getOpenOrderCount() {
        return openOrderCount;
    }

    public long getFailedOrderCount() {
        return failedOrderCount;
    }

    public int getCartItems() {
        return (int)cartItems;
    }

    public String getLastLogin() {
        return lastLogin;
    }

    public String getCouponCode() {
        return couponCode;
    }

    public long getUserCommunicationCount() {
        return userCommunicationCount;
    }

    public long getTicketCount() {
        return ticketCount;
    }

    public long getOpenTicketCount() {
        return openTicketCount;
    }

    public long getClosedTicketCount() {
        return closedTicketCount;
    }

    public void setMobileNumber(String mobileNumber) {
        this.mobileNumber = mobileNumber;
    }

    public String getTicketId() {
        return ticketId;
    }

    public void setTicketId(String ticketId) {
        this.ticketId = ticketId;
    }

    public long getAgentOpenTicketCount() {
        return agentOpenTicketCount;
    }

    public long getUnassignedTicketCount() {
        return unassignedTicketCount;
    }

    public long getActivityCount() {
        return activityCount;
    }

    public void setActivityCount(long activityCount) {
        this.activityCount = activityCount;
    }

    public long getCustomerActivityCount() {
        return customerActivityCount;
    }

    public void setCustomerActivityCount(long customerActivityCount) {
        this.customerActivityCount = customerActivityCount;
    }

    public long getPendingCodVerificationCount() {
        return pendingCodVerificationCount;
    }

    public void setPendingCodVerificationCount(long pendingCodVerificationCount) {
        this.pendingCodVerificationCount = pendingCodVerificationCount;
    }

    public long getOpenFailedPaymentsTicketCount() {
        return openFailedPaymentsTicketCount;
    }

    public void setOpenFailedPaymentsTicketCount(long openFailedPaymentsTicketCount) {
        this.openFailedPaymentsTicketCount = openFailedPaymentsTicketCount;
    }

    public long getAgentUnreadActivityCount() {
        return agentUnreadActivityCount;
    }

    public void setAgentUnreadActivityCount(long agentUnreadActivityCount) {
        this.agentUnreadActivityCount = agentUnreadActivityCount;
    }

    public long getOpenDelayedDeliveryTicketCount() {
        return openDelayedDeliveryTicketCount;
    }

    public void setOpenDelayedDeliveryTicketCount(
            long openDelayedDeliveryTicketCount) {
        this.openDelayedDeliveryTicketCount = openDelayedDeliveryTicketCount;
    }

    public long getOpenFlaggedPaymentsTicketCount() {
        return openFlaggedPaymentsTicketCount;
    }

    public void setOpenFlaggedPaymentsTicketCount(
            long openFlaggedPaymentsTicketCount) {
        this.openFlaggedPaymentsTicketCount = openFlaggedPaymentsTicketCount;
    }

    public long getDoaRequestCount() {
        return DoaRequestCount;
    }

    public void setDoaRequestCount(long DoaRequestCount) {
        this.DoaRequestCount = DoaRequestCount;
    }

    public long getReturnRequestCount() {
        return ReturnRequestCount;
    }

    public void setReturnRequestCount(long returnRequestCount) {
        ReturnRequestCount = returnRequestCount;
    }

    public long getOrderCancellationCount() {
        return orderCancellationCount;
    }

    public void setOrderCancellationCount(long orderCancellationCount) {
        this.orderCancellationCount = orderCancellationCount;
    }
    

    public long getOpenStorePickupTicketCount() {
                return openStorePickupTicketCount;
        }

        public void setOpenStorePickupTicketCount(long openStorePickupTicketCount) {
                this.openStorePickupTicketCount = openStorePickupTicketCount;
        }
        
        public long getLowInventoryTicketsCount() {
                return lowInventoryTicketsCount;
        }

        public void setLowInventoryTicketsCount(long lowInventoryTicketsCount) {
                this.lowInventoryTicketsCount = lowInventoryTicketsCount;
        }
        
        //Start:- Added By Manish Sharma for Creating a new Ticket: Category- RTO Refund on 21-Jun-2013
        public long getRTORefundsCount(){
                return RtoRefundsTicketCount;
        }

        public void setRTORefundsCount(long RtoRefundsTicketCount) {
                this.RtoRefundsTicketCount = RtoRefundsTicketCount;
        }
        //End:- Added By Manish Sharma for Creating a new Ticket: Category- RTO Refund on 21-Jun-2013
        
    public String getDeviceNumber() {
        return deviceNumber;
    }

    public void setDeviceNumber(String deviceNumber) {
        this.deviceNumber = deviceNumber;
    }

    public long getFailedRechargeCount() {
        return failedRechargeCount;
    }

    public void setFailedRechargeCount(long failedRechargeCount) {
        this.failedRechargeCount = failedRechargeCount;
    }

    public long getSuccessfulRechargeCount() {
        return successfulRechargeCount;
    }

    public void setSuccessfulRechargeCount(long successfulRechargeCount) {
        this.successfulRechargeCount = successfulRechargeCount;
    }

    public long getRechargeOrderCount() {
        return rechargeOrderCount;
    }

    public void setRechargeOrderCount(long rechargeOrderCount) {
        this.rechargeOrderCount = rechargeOrderCount;
    }

    public String getRechargeOrderId() {
        return rechargeOrderId;
    }

    public void setRechargeOrderId(String rechargeOrderId) {
        this.rechargeOrderId = rechargeOrderId;
    }

    //Start:- Added by Manish Sharma for Displaying wallet amount at user page on June-05-2013
        public UserWallet getWallet() {
                return wallet;
        }

        public void setWallet(UserWallet wallet) {
                this.wallet = wallet;
        }

        public long getWalletAmount() {
                return walletAmount;
        }

        public void setWalletAmount(long walletAmount) {
                this.walletAmount = walletAmount;
        }
        //End:- Added by Manish Sharma for Displaying wallet amount at user page on June-05-2013

    public void setOrders(List<Order> orders) {
        this.orders = orders;
    }

    public List<Order> getOrders() {
        return orders;
    }

    public void setAmazonOrderItemCode(String amazonOrderItemCode) {
        this.amazonOrderItemCode = amazonOrderItemCode;
    }

    public String getAmazonOrderItemCode() {
        return amazonOrderItemCode;
    }

    public void setAmazonId(String amazonId) {
        this.amazonId = amazonId;
    }

    public String getAmazonId() {
        return amazonId;
    }

        public List<RechargeOrder> getRechargeOrders() {
                return rechargeOrders;
        }

        public void setRechargeOrders(List<RechargeOrder> rechargeOrders) {
                this.rechargeOrders = rechargeOrders;
        }

    public void setBulkOrderEnquiryCount(long bulkOrderEnquiryCount) {
        this.bulkOrderEnquiryCount = bulkOrderEnquiryCount;
    }

    public long getBulkOrderEnquiryCount() {
        return bulkOrderEnquiryCount;
    }


        public String getMasterOrderId() {
                return masterOrderId;
        }

        public void setMasterOrderId(String masterOrderId) {
                this.masterOrderId = masterOrderId;
        }

        public long getProfitMandiTicketCount() {
                return profitMandiTicketCount;
        }

        public void setProfitMandiTicketCount(long profitMandiTicketCount) {
                this.profitMandiTicketCount = profitMandiTicketCount;
        }

        public long getPmCustomerActivityCount() {
                return pmCustomerActivityCount;
        }

        public void setPmCustomerActivityCount(long pmCustomerActivityCount) {
                this.pmCustomerActivityCount = pmCustomerActivityCount;
        }

        public long getPmAgentUnreadActivityCount() {
                return pmAgentUnreadActivityCount;
        }

        public void setPmAgentUnreadActivityCount(long pmAgentUnreadActivityCount) {
                this.pmAgentUnreadActivityCount = pmAgentUnreadActivityCount;
        }
        
        public long getDeliveryAttemptFailedCount(){
                return deliveryAttemptFailedCount;
        }
        public void setDeliveryAttemptFailedCount(long deliveryAttemptfailedCount){
                this.deliveryAttemptFailedCount = deliveryAttemptfailedCount;
        }

        public void setReturnTransactionId(String returnTransactionId) {
                this.returnTransactionId = returnTransactionId;
        }

        public String getReturnTransactionId() {
                return returnTransactionId;
        }

        public String getPickupRequestId() {
                return pickupRequestId;
        }

        public void setPickupRequestId(String pickupRequestId) {
                this.pickupRequestId = pickupRequestId;
        }

        public PrivateDealUser getPrivateDealUser() {
        return privateDealUser;
    }

    public void setPrivateDealUser(PrivateDealUser privateDealUser) {
        this.privateDealUser = privateDealUser;
    }
}