diff --git a/docker/envoy_template.yaml b/docker/envoy_template.yaml
index a8da61d47..fa59a76b7 100644
--- a/docker/envoy_template.yaml
+++ b/docker/envoy_template.yaml
@@ -58,6 +58,7 @@ static_resources:
- express_shipment.ExpressShipment
- field.business_partner.BusinessPartnerInfoService
- field.invoice.InvoiceInfoService
+ - field.order.OrderInfoService
- field.product.ProductInfoService
- file_management.FileManagement
- general_ledger.GeneralLedger
@@ -69,7 +70,6 @@ static_resources:
- match_po_receipt_invoice.MatchPORReceiptInvoice
- material_management.MaterialManagement
- notice_management.NoticeManagement
- - order.Order
- payment_allocation.PaymentAllocation
- payment_print_export.PaymentPrintExport
- payment.Payment
diff --git a/resources/adempiere-grpc-server.pb b/resources/adempiere-grpc-server.pb
index 660c01242..02d3973ba 100644
Binary files a/resources/adempiere-grpc-server.pb and b/resources/adempiere-grpc-server.pb differ
diff --git a/resources/envoy.yaml b/resources/envoy.yaml
index 2f8ba67f5..1e6094d45 100644
--- a/resources/envoy.yaml
+++ b/resources/envoy.yaml
@@ -55,6 +55,7 @@ static_resources:
- express_shipment.ExpressShipment
- field.business_partner.BusinessPartnerInfoService
- field.invoice.InvoiceInfoService
+ - field.order.OrderInfoService
- field.product.ProductInfoService
- file_management.FileManagement
- general_ledger.GeneralLedger
@@ -66,7 +67,6 @@ static_resources:
- match_po_receipt_invoice.MatchPORReceiptInvoice
- material_management.MaterialManagement
- notice_management.NoticeManagement
- - order.Order
- payment_allocation.PaymentAllocation
- payment_print_export.PaymentPrintExport
- payment.Payment
diff --git a/src/main/java/org/spin/grpc/service/OrderInfo.java b/src/main/java/org/spin/grpc/service/OrderInfo.java
deleted file mode 100644
index d236de253..000000000
--- a/src/main/java/org/spin/grpc/service/OrderInfo.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/************************************************************************************
- * Copyright (C) 2018-present E.R.P. Consultores y Asociados, C.A. *
- * Contributor(s): Edwin Betancourt, EdwinBetanc0urt@outlook.com *
- * This program is free software: you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation, either version 2 of the License, or *
- * (at your option) any later version. *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see . *
- ************************************************************************************/
-package org.spin.grpc.service;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ThreadLocalRandom;
-
-import org.adempiere.exceptions.AdempiereException;
-import org.adempiere.core.domains.models.I_C_Order;
-import org.compiere.model.MLookupInfo;
-import org.compiere.model.MRole;
-import org.compiere.model.MTable;
-import org.compiere.util.CLogger;
-import org.compiere.util.Env;
-import org.compiere.util.Util;
-import org.spin.base.db.QueryUtil;
-import org.spin.base.db.WhereClauseUtil;
-import org.spin.base.util.ContextManager;
-import org.spin.base.util.RecordUtil;
-import org.spin.base.util.ReferenceInfo;
-import org.spin.service.grpc.authentication.SessionManager;
-import org.spin.service.grpc.util.db.CountUtil;
-import org.spin.service.grpc.util.db.LimitUtil;
-import org.spin.service.grpc.util.value.ValueManager;
-import org.spin.backend.grpc.common.ListEntitiesResponse;
-import org.spin.backend.grpc.order.ListOrderInfoRequest;
-import org.spin.backend.grpc.order.OrderGrpc.OrderImplBase;
-
-import io.grpc.Status;
-import io.grpc.stub.StreamObserver;
-
-/**
- * @author Edwin Betancourt, EdwinBetanc0urt@outlook.com, https://github.com/EdwinBetanc0urt
- * Service for backend of Update Center
- */
-public class OrderInfo extends OrderImplBase {
- /** Logger */
- private CLogger log = CLogger.getCLogger(OrderInfo.class);
-
- public String tableName = I_C_Order.Table_Name;
-
- @Override
- public void listOrderInfo(ListOrderInfoRequest request, StreamObserver responseObserver) {
- try {
- if(request == null) {
- throw new AdempiereException("Object Request Null");
- }
-
- ListEntitiesResponse.Builder entityValueList = listOrderInfo(request);
- responseObserver.onNext(entityValueList.build());
- responseObserver.onCompleted();
- } catch (Exception e) {
- log.severe(e.getLocalizedMessage());
- responseObserver.onError(Status.INTERNAL
- .withDescription(e.getLocalizedMessage())
- .withCause(e)
- .asRuntimeException());
- }
- }
-
- /**
- * Get default value base on field, process parameter, browse field or column
- * @param request
- * @return
- */
- private ListEntitiesResponse.Builder listOrderInfo(ListOrderInfoRequest request) {
- MLookupInfo reference = ReferenceInfo.getInfoFromRequest(
- request.getReferenceId(),
- request.getFieldId(),
- request.getProcessParameterId(),
- request.getBrowseFieldId(),
- request.getColumnId(),
- request.getColumnName(),
- this.tableName
- );
-
- int windowNo = ThreadLocalRandom.current().nextInt(1, 8996 + 1);
- ContextManager.setContextWithAttributesFromStruct(windowNo, Env.getCtx(), request.getContextAttributes());
-
- //
- MTable table = MTable.get(Env.getCtx(), this.tableName);
- StringBuilder sql = new StringBuilder(QueryUtil.getTableQueryWithReferences(table));
-
- // add where with access restriction
- String sqlWithRoleAccess = MRole.getDefault()
- .addAccessSQL(
- sql.toString(),
- null,
- MRole.SQL_FULLYQUALIFIED,
- MRole.SQL_RO
- );
-
- StringBuffer whereClause = new StringBuffer();
-
- // validation code of field
- String validationCode = WhereClauseUtil.getWhereRestrictionsWithAlias(tableName, reference.ValidationCode);
- String parsedValidationCode = Env.parseContext(Env.getCtx(), windowNo, validationCode, false);
- if (!Util.isEmpty(reference.ValidationCode, true)) {
- if (Util.isEmpty(parsedValidationCode, true)) {
- throw new AdempiereException("@WhereClause@ @Unparseable@");
- }
- whereClause.append(" AND ").append(parsedValidationCode);
- }
-
- // For dynamic condition
- List