Search in sources :

Example 11 with Filter

use of com.axelor.rpc.filter.Filter in project axelor-open-suite by axelor.

the class ClientViewServiceImpl method getNextDeliveryIndicator.

protected String getNextDeliveryIndicator(User user) {
    List<Filter> filters = getNextDeliveryOfUser(user);
    StockMove stockMove = Filter.and(filters).build(StockMove.class).order("estimatedDate").fetchOne();
    if (stockMove == null) {
        return I18n.get(CLIENT_PORTAL_NO_DATE);
    }
    return stockMove.getEstimatedDate() != null ? stockMove.getEstimatedDate().format(DATE_FORMATTER) : I18n.get(CLIENT_PORTAL_NO_DATE);
}
Also used : StockMove(com.axelor.apps.stock.db.StockMove) Filter(com.axelor.rpc.filter.Filter) JPQLFilter(com.axelor.rpc.filter.JPQLFilter)

Example 12 with Filter

use of com.axelor.rpc.filter.Filter in project axelor-open-suite by axelor.

the class ClientViewServiceImpl method getTotalRemainingIndicator.

protected String getTotalRemainingIndicator(User user) {
    List<Filter> filters = getTotalRemainingOfUser(user);
    List<Invoice> invoiceList = Filter.and(filters).build(Invoice.class).fetch();
    if (!invoiceList.isEmpty()) {
        BigDecimal total = invoiceList.stream().map(Invoice::getAmountRemaining).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
        return total.toString() + invoiceList.get(0).getCurrency().getSymbol();
    }
    return BigDecimal.ZERO.toString();
}
Also used : ProjectTask(com.axelor.apps.project.db.ProjectTask) Filter(com.axelor.rpc.filter.Filter) Ticket(com.axelor.apps.helpdesk.db.Ticket) UserService(com.axelor.apps.base.service.user.UserService) TicketRepository(com.axelor.apps.helpdesk.db.repo.TicketRepository) Inject(com.google.inject.Inject) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) BigDecimal(java.math.BigDecimal) SaleOrderRepository(com.axelor.apps.sale.db.repo.SaleOrderRepository) ProjectRepository(com.axelor.apps.project.db.repo.ProjectRepository) ProjectTaskRepository(com.axelor.apps.project.db.repo.ProjectTaskRepository) Map(java.util.Map) I18n(com.axelor.i18n.I18n) Project(com.axelor.apps.project.db.Project) SaleOrder(com.axelor.apps.sale.db.SaleOrder) JpaSecurity(com.axelor.db.JpaSecurity) StockMove(com.axelor.apps.stock.db.StockMove) StockMoveRepository(com.axelor.apps.stock.db.repo.StockMoveRepository) Invoice(com.axelor.apps.account.db.Invoice) List(java.util.List) JPQLFilter(com.axelor.rpc.filter.JPQLFilter) InvoiceRepository(com.axelor.apps.account.db.repo.InvoiceRepository) Beans(com.axelor.inject.Beans) DateTimeFormatter(java.time.format.DateTimeFormatter) User(com.axelor.auth.db.User) Invoice(com.axelor.apps.account.db.Invoice) Filter(com.axelor.rpc.filter.Filter) JPQLFilter(com.axelor.rpc.filter.JPQLFilter) BigDecimal(java.math.BigDecimal)

Example 13 with Filter

use of com.axelor.rpc.filter.Filter in project axelor-open-suite by axelor.

the class ClientViewServiceImpl method getOrdersInProgressOfUser.

/* SaleOrder Query */
@Override
public List<Filter> getOrdersInProgressOfUser(User user) {
    List<Filter> filters = new ArrayList<>();
    Filter filterFromPermission = security.getFilter(JpaSecurity.CAN_READ, SaleOrder.class);
    Filter filter = new JPQLFilter("self.clientPartner.id = " + user.getPartner().getId() + " AND self.statusSelect = " + SaleOrderRepository.STATUS_ORDER_CONFIRMED);
    if (user.getActiveCompany() != null) {
        filter = Filter.and(filter, new JPQLFilter(" self.company.id = " + user.getActiveCompany().getId()));
    }
    filters.add(filter);
    addPermissionFilter(filters, filterFromPermission);
    return filters;
}
Also used : Filter(com.axelor.rpc.filter.Filter) JPQLFilter(com.axelor.rpc.filter.JPQLFilter) ArrayList(java.util.ArrayList) JPQLFilter(com.axelor.rpc.filter.JPQLFilter)

Example 14 with Filter

use of com.axelor.rpc.filter.Filter in project axelor-open-suite by axelor.

the class ClientViewServiceImpl method getTotalRemainingOfUser.

@Override
public List<Filter> getTotalRemainingOfUser(User user) {
    List<Filter> filters = new ArrayList<>();
    Filter filterFromPermission = security.getFilter(JpaSecurity.CAN_READ, Invoice.class);
    Filter filter = new JPQLFilter("self.partner.id = " + user.getPartner().getId() + " AND self.amountRemaining != 0 AND self.statusSelect != " + InvoiceRepository.STATUS_DRAFT + " AND self.statusSelect != " + InvoiceRepository.STATUS_CANCELED);
    if (user.getActiveCompany() != null) {
        filter = Filter.and(filter, new JPQLFilter(" self.company.id = " + user.getActiveCompany().getId()));
    }
    filters.add(filter);
    addPermissionFilter(filters, filterFromPermission);
    return filters;
}
Also used : Filter(com.axelor.rpc.filter.Filter) JPQLFilter(com.axelor.rpc.filter.JPQLFilter) ArrayList(java.util.ArrayList) JPQLFilter(com.axelor.rpc.filter.JPQLFilter)

Example 15 with Filter

use of com.axelor.rpc.filter.Filter in project axelor-open-suite by axelor.

the class ClientViewServiceImpl method getLastDeliveryOfUser.

/* StockMove Query */
@Override
public List<Filter> getLastDeliveryOfUser(User user) {
    List<Filter> filters = new ArrayList<>();
    Filter filterFromPermission = security.getFilter(JpaSecurity.CAN_READ, StockMove.class);
    Filter filter = new JPQLFilter("self.partner.id = " + user.getPartner().getId() + " AND self.typeSelect = " + StockMoveRepository.TYPE_OUTGOING + " AND self.statusSelect = " + StockMoveRepository.STATUS_REALIZED + " AND self.isReversion != true");
    if (user.getActiveCompany() != null) {
        filter = Filter.and(filter, new JPQLFilter(" self.company.id = " + user.getActiveCompany().getId()));
    }
    if (filterFromPermission != null) {
        filter = Filter.and(filter, filterFromPermission);
    }
    filters.add(filter);
    addPermissionFilter(filters, filterFromPermission);
    return filters;
}
Also used : Filter(com.axelor.rpc.filter.Filter) JPQLFilter(com.axelor.rpc.filter.JPQLFilter) ArrayList(java.util.ArrayList) JPQLFilter(com.axelor.rpc.filter.JPQLFilter)

Aggregations

Filter (com.axelor.rpc.filter.Filter)47 JPQLFilter (com.axelor.rpc.filter.JPQLFilter)23 ArrayList (java.util.ArrayList)22 User (com.axelor.auth.db.User)21 ClientViewService (com.axelor.apps.portal.service.ClientViewService)19 StockMove (com.axelor.apps.stock.db.StockMove)7 Invoice (com.axelor.apps.account.db.Invoice)5 Ticket (com.axelor.apps.helpdesk.db.Ticket)5 SaleOrder (com.axelor.apps.sale.db.SaleOrder)5 ProjectTask (com.axelor.apps.project.db.ProjectTask)4 StockMoveRepository (com.axelor.apps.stock.db.repo.StockMoveRepository)3 HashMap (java.util.HashMap)3 AdvancedExport (com.axelor.apps.base.db.AdvancedExport)2 AdvancedExportService (com.axelor.apps.base.service.advancedExport.AdvancedExportService)2 Project (com.axelor.apps.project.db.Project)2 SaleOrderRepository (com.axelor.apps.sale.db.repo.SaleOrderRepository)2 JpaSecurity (com.axelor.db.JpaSecurity)2 Model (com.axelor.db.Model)2 I18n (com.axelor.i18n.I18n)2 Beans (com.axelor.inject.Beans)2