You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by er...@apache.org on 2012/03/26 22:56:30 UTC
svn commit: r1305581 [7/36] - in /ofbiz/branches/20111205EmailHandling: ./
applications/accounting/config/ applications/accounting/data/
applications/accounting/entitydef/
applications/accounting/script/org/ofbiz/accounting/finaccount/
applications/acc...
Modified: ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMServices.java?rev=1305581&r1=1305580&r2=1305581&view=diff
==============================================================================
--- ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMServices.java (original)
+++ ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/bom/BOMServices.java Mon Mar 26 20:56:02 2012
@@ -84,9 +84,8 @@ public class BOMServices {
if (bomType == null) {
try {
List<GenericValue> bomTypesValues = delegator.findByAnd("ProductAssocType", UtilMisc.toMap("parentTypeId", "PRODUCT_COMPONENT"));
- Iterator<GenericValue> bomTypesValuesIt = bomTypesValues.iterator();
- while (bomTypesValuesIt.hasNext()) {
- bomTypes.add((bomTypesValuesIt.next()).getString("productAssocTypeId"));
+ for(GenericValue bomTypesValue : bomTypesValues) {
+ bomTypes.add(bomTypesValue.getString("productAssocTypeId"));
}
} catch (GenericEntityException gee) {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingBomErrorRunningMaxDethAlgorithm", UtilMisc.toMap("errorString", gee.getMessage()), locale));
@@ -97,10 +96,8 @@ public class BOMServices {
int depth = 0;
int maxDepth = 0;
- Iterator<String> bomTypesIt = bomTypes.iterator();
try {
- while (bomTypesIt.hasNext()) {
- String oneBomType = bomTypesIt.next();
+ for(String oneBomType : bomTypes) {
depth = BOMHelper.getMaxDepth(productId, oneBomType, fromDate, delegator);
if (depth > maxDepth) {
maxDepth = depth;
@@ -149,10 +146,8 @@ public class BOMServices {
UtilMisc.toMap("productIdTo", productId, "productAssocTypeId", "PRODUCT_VARIANT"));
virtualProducts = EntityUtil.filterByDate(virtualProducts);
int virtualMaxDepth = 0;
- Iterator<GenericValue> virtualProductsIt = virtualProducts.iterator();
- while (virtualProductsIt.hasNext()) {
+ for(GenericValue oneVirtualProductAssoc : virtualProducts) {
int virtualDepth = 0;
- GenericValue oneVirtualProductAssoc = virtualProductsIt.next();
GenericValue virtualProduct = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", oneVirtualProductAssoc.getString("productId")));
if (virtualProduct.get("billOfMaterialLevel") != null) {
virtualDepth = virtualProduct.getLong("billOfMaterialLevel").intValue();
@@ -190,9 +185,7 @@ public class BOMServices {
List<GenericValue> variantProducts = delegator.findByAnd("ProductAssoc",
UtilMisc.toMap("productId", productId, "productAssocTypeId", "PRODUCT_VARIANT"));
variantProducts = EntityUtil.filterByDate(variantProducts, true);
- Iterator<GenericValue> variantProductsIt = variantProducts.iterator();
- while (variantProductsIt.hasNext()) {
- GenericValue oneVariantProductAssoc = variantProductsIt.next();
+ for(GenericValue oneVariantProductAssoc : variantProducts) {
GenericValue variantProduct = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", oneVariantProductAssoc.getString("productId")));
variantProduct.set("billOfMaterialLevel", llc);
variantProduct.store();
@@ -220,20 +213,16 @@ public class BOMServices {
try {
List<GenericValue> products = delegator.findList("Product", null, null,
UtilMisc.toList("isVirtual DESC"), null, false);
- Iterator<GenericValue> productsIt = products.iterator();
Long zero = Long.valueOf(0);
List<GenericValue> allProducts = FastList.newInstance();
- while (productsIt.hasNext()) {
- GenericValue product = productsIt.next();
+ for(GenericValue product : products) {
product.set("billOfMaterialLevel", zero);
allProducts.add(product);
}
delegator.storeAll(allProducts);
Debug.logInfo("Low Level Code set to 0 for all the products", module);
- productsIt = products.iterator();
- while (productsIt.hasNext()) {
- GenericValue product = productsIt.next();
+ for(GenericValue product : products) {
try {
Map<String, Object> depthResult = dispatcher.runSync("updateLowLevelCode", UtilMisc.<String, Object>toMap("productIdTo", product.getString("productId"), "alsoComponents", Boolean.valueOf(false), "alsoVariants", Boolean.valueOf(false)));
Debug.logInfo("Product [" + product.getString("productId") + "] Low Level Code [" + depthResult.get("lowLevelCode") + "]", module);
@@ -414,10 +403,8 @@ public class BOMServices {
// also return a componentMap (useful in scripts and simple language code)
List<Map<String, Object>> componentsMap = FastList.newInstance();
- Iterator<BOMNode> componentsIt = components.iterator();
- while (componentsIt.hasNext()) {
+ for(BOMNode node : components) {
Map<String, Object> componentMap = FastMap.newInstance();
- BOMNode node = componentsIt.next();
componentMap.put("product", node.getProduct());
componentMap.put("quantity", node.getQuantity());
componentsMap.add(componentMap);
@@ -466,9 +453,7 @@ public class BOMServices {
} catch (GenericEntityException gee) {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingBomErrorCreatingBillOfMaterialsTree", UtilMisc.toMap("errorString", gee.getMessage()), locale));
}
- Iterator<BOMNode> componentsIt = components.iterator();
- while (componentsIt.hasNext()) {
- BOMNode oneComponent = componentsIt.next();
+ for(BOMNode oneComponent : components) {
if (!oneComponent.isManufactured()) {
notAssembledComponents.add(oneComponent);
}
@@ -503,11 +488,9 @@ public class BOMServices {
} catch (GenericEntityException gee) {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingBomErrorLoadingShipmentItems", locale));
}
- Iterator<GenericValue> shipmentItemsIt = shipmentItems.iterator();
Map<String, Object> orderReadHelpers = FastMap.newInstance();
Map<String, Object> partyOrderShipments = FastMap.newInstance();
- while (shipmentItemsIt.hasNext()) {
- GenericValue shipmentItem = shipmentItemsIt.next();
+ for(GenericValue shipmentItem : shipmentItems) {
// Get the OrderShipments
List<GenericValue> orderShipments = null;
try {
Modified: ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java?rev=1305581&r1=1305580&r2=1305581&view=diff
==============================================================================
--- ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java (original)
+++ ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java Mon Mar 26 20:56:02 2012
@@ -125,9 +125,7 @@ public class ProductionRunServices {
UtilMisc.toMap("workEffortId", productionRunId, "workEffortGoodStdTypeId", "PRUN_PROD_DELIV",
"statusId", "WEGS_CREATED"));
if (!UtilValidate.isEmpty(products)) {
- Iterator<GenericValue> productsIt = products.iterator();
- while (productsIt.hasNext()) {
- GenericValue product = productsIt.next();
+ for(GenericValue product : products) {
product.set("statusId", "WEGS_CANCELLED");
product.store();
}
@@ -135,10 +133,8 @@ public class ProductionRunServices {
// change the tasks status to PRUN_CANCELLED
List<GenericValue> tasks = productionRun.getProductionRunRoutingTasks();
- GenericValue oneTask = null;
String taskId = null;
- for (int i = 0; i < tasks.size(); i++) {
- oneTask = tasks.get(i);
+ for(GenericValue oneTask : tasks) {
taskId = oneTask.getString("workEffortId");
serviceContext.clear();
serviceContext.put("workEffortId", taskId);
@@ -150,9 +146,7 @@ public class ProductionRunServices {
UtilMisc.toMap("workEffortId", taskId, "workEffortGoodStdTypeId", "PRUNT_PROD_NEEDED",
"statusId", "WEGS_CREATED"));
if (!UtilValidate.isEmpty(components)) {
- Iterator<GenericValue> componentsIt = components.iterator();
- while (componentsIt.hasNext()) {
- GenericValue component = componentsIt.next();
+ for(GenericValue component : components) {
component.set("statusId", "WEGS_CANCELLED");
component.store();
}
@@ -305,11 +299,8 @@ public class ProductionRunServices {
}
// Multi creation (like clone) ProductionRunTask and GoodAssoc
- Iterator<GenericValue> rt = routingTaskAssocs.iterator();
boolean first = true;
- while (rt.hasNext()) {
- GenericValue routingTaskAssoc = rt.next();
-
+ for(GenericValue routingTaskAssoc : routingTaskAssocs) {
if (EntityUtil.isValueActive(routingTaskAssoc, startDate)) {
GenericValue routingTask = null;
try {
@@ -368,11 +359,9 @@ public class ProductionRunServices {
// Now we iterate thru the components returned by the getManufacturingComponents service
// TODO: if in the BOM a routingWorkEffortId is specified, but the task is not in the routing
// the component is not added to the production run.
- Iterator<BOMNode> pb = components.iterator();
- while (pb.hasNext()) {
+ for(BOMNode node : components) {
// The components variable contains a list of BOMNodes:
// each node represents a product (component).
- BOMNode node = pb.next();
GenericValue productBom = node.getProductAssoc();
if ((productBom.getString("routingWorkEffortId") == null && first) || (productBom.getString("routingWorkEffortId") != null && productBom.getString("routingWorkEffortId").equals(routingTask.getString("workEffortId")))) {
serviceContext.clear();
@@ -433,9 +422,7 @@ public class ProductionRunServices {
}
if (workEffortPartyAssignments != null) {
- Iterator<GenericValue> i = workEffortPartyAssignments.iterator();
- while (i.hasNext()) {
- GenericValue workEffortPartyAssignment = i.next();
+ for(GenericValue workEffortPartyAssignment : workEffortPartyAssignments) {
Map<String, Object> partyToWorkEffort = UtilMisc.<String, Object>toMap(
"workEffortId", productionRunTaskId,
"partyId", workEffortPartyAssignment.getString("partyId"),
@@ -600,9 +587,7 @@ public class ProductionRunServices {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingProductionRunStatusNotChanged", locale));
}
// change the production run tasks status to PRUN_SCHEDULED
- Iterator<GenericValue> tasks = productionRun.getProductionRunRoutingTasks().iterator();
- while (tasks.hasNext()) {
- GenericValue task = tasks.next();
+ for(GenericValue task : productionRun.getProductionRunRoutingTasks()) {
serviceContext.clear();
serviceContext.put("workEffortId", task.getString("workEffortId"));
serviceContext.put("currentStatusId", statusId);
@@ -634,9 +619,7 @@ public class ProductionRunServices {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingProductionRunStatusNotChanged", locale));
}
// change the production run tasks status to PRUN_DOC_PRINTED
- Iterator<GenericValue> tasks = productionRun.getProductionRunRoutingTasks().iterator();
- while (tasks.hasNext()) {
- GenericValue task = tasks.next();
+ for(GenericValue task : productionRun.getProductionRunRoutingTasks()) {
serviceContext.clear();
serviceContext.put("workEffortId", task.getString("workEffortId"));
serviceContext.put("currentStatusId", "PRUN_DOC_PRINTED");
@@ -726,9 +709,7 @@ public class ProductionRunServices {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingProductionRunStatusNotChanged", locale));
}
// change the production run tasks status to PRUN_CLOSED
- Iterator<GenericValue> tasks = productionRun.getProductionRunRoutingTasks().iterator();
- while (tasks.hasNext()) {
- GenericValue task = tasks.next();
+ for(GenericValue task : productionRun.getProductionRunRoutingTasks()) {
serviceContext.clear();
serviceContext.put("workEffortId", task.getString("workEffortId"));
serviceContext.put("currentStatusId", "PRUN_CLOSED");
@@ -996,13 +977,11 @@ public class ProductionRunServices {
List<GenericValue> costComponents = EntityUtil.filterByDate(delegator.findByAnd("CostComponent",
UtilMisc.toMap("workEffortId", workEffortId)));
result.put("costComponents", costComponents);
- Iterator<GenericValue> costComponentsIt = costComponents.iterator();
// TODO: before doing these totals we should convert the cost components' costs to the
// base currency uom of the owner of the facility in which the task is running
BigDecimal totalCost = ZERO;
BigDecimal totalCostNoMaterials = ZERO;
- while (costComponentsIt.hasNext()) {
- GenericValue costComponent = costComponentsIt.next();
+ for(GenericValue costComponent : costComponents) {
BigDecimal cost = costComponent.getBigDecimal("cost");
totalCost = totalCost.add(cost);
if (!"ACTUAL_MAT_COST".equals(costComponent.getString("costComponentTypeId"))) {
@@ -1027,14 +1006,12 @@ public class ProductionRunServices {
try {
List<GenericValue> tasks = delegator.findByAnd("WorkEffort",
UtilMisc.toMap("workEffortParentId", workEffortId), UtilMisc.toList("workEffortId"));
- Iterator<GenericValue> tasksIt = tasks.iterator();
BigDecimal totalCost = ZERO;
Map<String, Object> outputMap = dispatcher.runSync("getWorkEffortCosts",
UtilMisc.<String, Object>toMap("userLogin", userLogin, "workEffortId", workEffortId));
BigDecimal productionRunHeaderCost = (BigDecimal)outputMap.get("totalCost");
totalCost = totalCost.add(productionRunHeaderCost);
- while (tasksIt.hasNext()) {
- GenericValue task = tasksIt.next();
+ for(GenericValue task : tasks) {
outputMap = dispatcher.runSync("getWorkEffortCosts",
UtilMisc.<String, Object>toMap("userLogin", userLogin, "workEffortId", task.getString("workEffortId")));
BigDecimal taskCost = (BigDecimal)outputMap.get("totalCost");
@@ -1085,9 +1062,7 @@ public class ProductionRunServices {
UtilMisc.toMap("workEffortId", productionRunTaskId));
workEffortCostCalcs = EntityUtil.filterByDate(workEffortCostCalcs);
- Iterator<GenericValue> workEffortCostCalcsIt = workEffortCostCalcs.iterator();
- while (workEffortCostCalcsIt.hasNext()) {
- GenericValue workEffortCostCalc = workEffortCostCalcsIt.next();
+ for (GenericValue workEffortCostCalc : workEffortCostCalcs) {
GenericValue costComponentCalc = workEffortCostCalc.getRelatedOne("CostComponentCalc");
GenericValue customMethod = costComponentCalc.getRelatedOne("CustomMethod");
if (UtilValidate.isEmpty(customMethod) || UtilValidate.isEmpty(customMethod.getString("customMethodName"))) {
@@ -1164,11 +1139,9 @@ public class ProductionRunServices {
}
// materials costs: these are the costs derived from the materials used by the production run task
try {
- Iterator<GenericValue> inventoryAssignIt = delegator.findByAnd("WorkEffortAndInventoryAssign",
- UtilMisc.toMap("workEffortId", productionRunTaskId)).iterator();
Map<String, BigDecimal> materialsCostByCurrency = FastMap.newInstance();
- while (inventoryAssignIt.hasNext()) {
- GenericValue inventoryConsumed = inventoryAssignIt.next();
+ for(GenericValue inventoryConsumed : delegator.findByAnd("WorkEffortAndInventoryAssign",
+ UtilMisc.toMap("workEffortId", productionRunTaskId))) {
BigDecimal quantity = inventoryConsumed.getBigDecimal("quantity");
BigDecimal unitCost = inventoryConsumed.getBigDecimal("unitCost");
if (UtilValidate.isEmpty(unitCost) || UtilValidate.isEmpty(quantity)) {
@@ -1182,9 +1155,7 @@ public class ProductionRunServices {
materialsCost = materialsCost.add(unitCost.multiply(quantity)).setScale(decimals, rounding);
materialsCostByCurrency.put(currencyUomId, materialsCost);
}
- Iterator<String> currencyIt = materialsCostByCurrency.keySet().iterator();
- while (currencyIt.hasNext()) {
- String currencyUomId = currencyIt.next();
+ for(String currencyUomId : materialsCostByCurrency.keySet()) {
BigDecimal materialsCost = materialsCostByCurrency.get(currencyUomId);
Map<String, Object> inMap = UtilMisc.<String, Object>toMap("userLogin", userLogin,
"workEffortId", productionRunTaskId);
@@ -1539,9 +1510,7 @@ public class ProductionRunServices {
Debug.logError(e.getMessage(), module);
}
if (workEffortPartyAssignments != null) {
- Iterator<GenericValue> i = workEffortPartyAssignments.iterator();
- while (i.hasNext()) {
- GenericValue workEffortPartyAssignment = i.next();
+ for(GenericValue workEffortPartyAssignment : workEffortPartyAssignments) {
Map<String, Object> partyToWorkEffort = UtilMisc.<String, Object>toMap(
"workEffortId", productionRunTaskId,
"partyId", workEffortPartyAssignment.getString("partyId"),
@@ -1980,21 +1949,17 @@ public class ProductionRunServices {
// are currently assigned to this task.
// If less than passed quantity then return an error message.
try {
- Iterator<GenericValue> issuances = (delegator.findByAnd("WorkEffortAndInventoryAssign",
- UtilMisc.toMap("workEffortId", productionRunTaskId, "productId", productId))).iterator();
BigDecimal totalIssued = BigDecimal.ZERO;
- while (issuances.hasNext()) {
- GenericValue issuance = issuances.next();
+ for(GenericValue issuance : delegator.findByAnd("WorkEffortAndInventoryAssign",
+ UtilMisc.toMap("workEffortId", productionRunTaskId, "productId", productId))) {
BigDecimal issued = issuance.getBigDecimal("quantity");
if (issued != null) {
totalIssued = totalIssued.add(issued);
}
}
- Iterator<GenericValue> returns = (delegator.findByAnd("WorkEffortAndInventoryProduced",
- UtilMisc.toMap("workEffortId", productionRunTaskId, "productId", productId))).iterator();
BigDecimal totalReturned = BigDecimal.ZERO;
- while (returns.hasNext()) {
- GenericValue returned = returns.next();
+ for(GenericValue returned : delegator.findByAnd("WorkEffortAndInventoryProduced",
+ UtilMisc.toMap("workEffortId", productionRunTaskId, "productId", productId))) {
GenericValue returnDetail = EntityUtil.getFirst(delegator.findByAnd("InventoryItemDetail", UtilMisc.toMap("inventoryItemId", returned.getString("inventoryItemId")), UtilMisc.toList("inventoryItemDetailSeqId")));
if (returnDetail != null) {
BigDecimal qtyReturned = returnDetail.getBigDecimal("quantityOnHandDiff");
@@ -2342,15 +2307,11 @@ public class ProductionRunServices {
String productionRunId = (String)resultService.get("productionRunId");
result.put("productionRunId", productionRunId);
- Iterator<ConfigOption> options = config.getSelectedOptions().iterator();
Map<String, BigDecimal> components = FastMap.newInstance();
- while (options.hasNext()) {
- ConfigOption co = options.next();
+ for(ConfigOption co : config.getSelectedOptions()) {
//components.addAll(co.getComponents());
- Iterator<GenericValue> selComponents = co.getComponents().iterator();
- while (selComponents.hasNext()) {
+ for(GenericValue selComponent : co.getComponents()) {
BigDecimal componentQuantity = null;
- GenericValue selComponent = selComponents.next();
if (selComponent.get("quantity") != null) {
componentQuantity = selComponent.getBigDecimal("quantity");
}
@@ -3073,9 +3034,7 @@ public class ProductionRunServices {
if (UtilValidate.isEmpty(components)) {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingProductionRunCannotDecomposingInventoryItemNoComponentsFound", UtilMisc.toMap("productId", inventoryItem.getString("productId")), locale));
}
- Iterator<Map<String, Object>> componentsIt = components.iterator();
- while (componentsIt.hasNext()) {
- Map<String, Object> component = componentsIt.next();
+ for(Map<String, Object> component : components) {
// get the component's standard cost
serviceContext.clear();
serviceContext = UtilMisc.toMap("productId", ((GenericValue)component.get("product")).getString("productId"),
@@ -3120,9 +3079,7 @@ public class ProductionRunServices {
List<GenericValue> resultList = delegator.findByAnd("WorkEffortAndGoods",
UtilMisc.toMap("workEffortGoodStdTypeId", "PRUN_PROD_DELIV",
"statusId", "WEGS_CREATED", "workEffortTypeId", "PROD_ORDER_HEADER"));
- Iterator<GenericValue> iteratorResult = resultList.iterator();
- while (iteratorResult.hasNext()) {
- GenericValue genericResult = iteratorResult.next();
+ for(GenericValue genericResult : resultList) {
if ("PRUN_CLOSED".equals(genericResult.getString("currentStatusId")) ||
"PRUN_CREATED".equals(genericResult.getString("currentStatusId"))) {
continue;
@@ -3163,11 +3120,9 @@ public class ProductionRunServices {
resultList = delegator.findByAnd("OrderHeaderAndItems",
UtilMisc.toMap("orderTypeId", "PURCHASE_ORDER",
"itemStatusId", "ITEM_APPROVED"), UtilMisc.toList("orderId"));
- iteratorResult = resultList.iterator();
String orderId = null;
GenericValue orderDeliverySchedule = null;
- while (iteratorResult.hasNext()) {
- GenericValue genericResult = iteratorResult.next();
+ for(GenericValue genericResult : resultList) {
String newOrderId = genericResult.getString("orderId");
if (!newOrderId.equals(orderId)) {
orderDeliverySchedule = null;
@@ -3218,9 +3173,7 @@ public class ProductionRunServices {
List<GenericValue> backorders = delegator.findList("OrderItemAndShipGrpInvResAndItem",
EntityCondition.makeCondition(backordersCondList, EntityOperator.AND), null,
UtilMisc.toList("shipBeforeDate"), null, false);
- Iterator<GenericValue> backordersIt = backorders.iterator();
- while (backordersIt.hasNext()) {
- GenericValue genericResult = backordersIt.next();
+ for(GenericValue genericResult : backorders) {
String productId = genericResult.getString("productId");
GenericValue orderItemShipGroup = delegator.findByPrimaryKey("OrderItemShipGroup", UtilMisc.toMap("orderId", genericResult.get("orderId"),
"shipGroupSeqId", genericResult.get("shipGroupSeqId")));
@@ -3238,9 +3191,7 @@ public class ProductionRunServices {
TreeMap<Timestamp, Object> productMap = products.get(productId);
SortedMap<Timestamp, Object> subsetMap = productMap.headMap(requiredByDate);
// iterate and 'reserve'
- Iterator<Timestamp> subsetMapKeysIt = subsetMap.keySet().iterator();
- while (subsetMapKeysIt.hasNext()) {
- Timestamp currentDate = subsetMapKeysIt.next();
+ for(Timestamp currentDate : subsetMap.keySet()) {
Map<String, Object> currentDateMap = UtilGenerics.checkMap(subsetMap.get(currentDate));
//List reservations = (List)currentDateMap.get("reservations");
BigDecimal remainingQty = (BigDecimal)currentDateMap.get("remainingQty");
Modified: ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/mrp/MrpServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/mrp/MrpServices.java?rev=1305581&r1=1305580&r2=1305581&view=diff
==============================================================================
--- ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/mrp/MrpServices.java (original)
+++ ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/mrp/MrpServices.java Mon Mar 26 20:56:02 2012
@@ -103,9 +103,7 @@ public class MrpServices {
}
if (listResult != null) {
try {
- Iterator<GenericValue> listResultIt = listResult.iterator();
- while (listResultIt.hasNext()) {
- GenericValue tmpRequirement = listResultIt.next();
+ for(GenericValue tmpRequirement : listResult) {
listResultRoles.addAll(tmpRequirement.getRelated("RequirementRole"));
//int numOfRecordsRemoved = delegator.removeRelated("RequirementRole", tmpRequirement);
}
@@ -129,10 +127,8 @@ public class MrpServices {
}
}
- GenericValue genericResult = null;
Map<String, Object> parameters = null;
List<GenericValue> resultList = null;
- Iterator<GenericValue> iteratorResult = null;
// ----------------------------------------
// Loads all the approved sales order items and purchase order items
// ----------------------------------------
@@ -147,7 +143,6 @@ public class MrpServices {
notAssignedDate = new Timestamp(calendar.getTimeInMillis());
}
resultList = null;
- iteratorResult = null;
parameters = UtilMisc.<String, Object>toMap("orderTypeId", "SALES_ORDER", "oiStatusId", "ITEM_APPROVED");
parameters.put("facilityId", facilityId);
try {
@@ -157,9 +152,7 @@ public class MrpServices {
Debug.logError(e, "Error : parameters = "+parameters,module);
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingMrpEventFindError", locale));
}
- iteratorResult = resultList.iterator();
- while (iteratorResult.hasNext()) {
- genericResult = iteratorResult.next();
+ for(GenericValue genericResult : resultList) {
String productId = genericResult.getString("productId");
BigDecimal reservedQuantity = genericResult.getBigDecimal("reservedQuantity");
BigDecimal shipGroupQuantity = genericResult.getBigDecimal("quantity");
@@ -211,7 +204,6 @@ public class MrpServices {
// Loads all the approved product requirements (po requirements)
// ----------------------------------------
resultList = null;
- iteratorResult = null;
parameters = UtilMisc.<String, Object>toMap("requirementTypeId", "PRODUCT_REQUIREMENT",
"statusId", "REQ_APPROVED", "facilityId", facilityId);
try {
@@ -219,9 +211,7 @@ public class MrpServices {
} catch (GenericEntityException e) {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingMrpEventFindError", locale));
}
- iteratorResult = resultList.iterator();
- while (iteratorResult.hasNext()) {
- genericResult = iteratorResult.next();
+ for(GenericValue genericResult : resultList) {
String productId = genericResult.getString("productId");
BigDecimal eventQuantityTmp = genericResult.getBigDecimal("quantity");
if (productId == null || eventQuantityTmp == null) {
@@ -244,7 +234,6 @@ public class MrpServices {
// Loads all the approved purchase order items
// ----------------------------------------
resultList = null;
- iteratorResult = null;
String orderId = null;
GenericValue orderDeliverySchedule = null;
try {
@@ -259,9 +248,7 @@ public class MrpServices {
} catch (GenericEntityException e) {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingMrpEventFindError", locale));
}
- iteratorResult = resultList.iterator();
- while (iteratorResult.hasNext()) {
- genericResult = iteratorResult.next();
+ for(GenericValue genericResult : resultList) {
String newOrderId = genericResult.getString("orderId");
if (!newOrderId.equals(orderId)) {
orderDeliverySchedule = null;
@@ -321,14 +308,11 @@ public class MrpServices {
// PRODUCTION Run: components
// ----------------------------------------
resultList = null;
- iteratorResult = null;
parameters = UtilMisc.<String, Object>toMap("workEffortGoodStdTypeId", "PRUNT_PROD_NEEDED",
"statusId", "WEGS_CREATED", "facilityId", facilityId);
try {
resultList = delegator.findByAnd("WorkEffortAndGoods", parameters);
- iteratorResult = resultList.iterator();
- while (iteratorResult.hasNext()) {
- genericResult = iteratorResult.next();
+ for(GenericValue genericResult : resultList) {
if ("PRUN_CLOSED".equals(genericResult.getString("currentStatusId")) ||
"PRUN_COMPLETED".equals(genericResult.getString("currentStatusId")) ||
"PRUN_CANCELLED".equals(genericResult.getString("currentStatusId"))) {
@@ -359,14 +343,11 @@ public class MrpServices {
// PRODUCTION Run: product produced
// ----------------------------------------
resultList = null;
- iteratorResult = null;
parameters = UtilMisc.<String, Object>toMap("workEffortGoodStdTypeId", "PRUN_PROD_DELIV",
"statusId", "WEGS_CREATED", "workEffortTypeId", "PROD_ORDER_HEADER", "facilityId", facilityId);
try {
resultList = delegator.findByAnd("WorkEffortAndGoods", parameters);
- iteratorResult = resultList.iterator();
- while (iteratorResult.hasNext()) {
- genericResult = iteratorResult.next();
+ for(GenericValue genericResult : resultList) {
if ("PRUN_CLOSED".equals(genericResult.getString("currentStatusId")) ||
"PRUN_COMPLETED".equals(genericResult.getString("currentStatusId")) ||
"PRUN_CANCELLED".equals(genericResult.getString("currentStatusId"))) {
@@ -402,7 +383,6 @@ public class MrpServices {
// Products without upcoming events but that are already under minimum quantity in warehouse
// ----------------------------------------
resultList = null;
- iteratorResult = null;
parameters = UtilMisc.<String, Object>toMap("facilityId", facilityId);
try {
resultList = delegator.findByAnd("ProductFacility", parameters);
@@ -410,9 +390,7 @@ public class MrpServices {
Debug.logError(e, "Unable to retrieve ProductFacility records.", module);
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingMrpCannotFindProductFacility", locale));
}
- iteratorResult = resultList.iterator();
- while (iteratorResult.hasNext()) {
- genericResult = iteratorResult.next();
+ for(GenericValue genericResult : resultList) {
String productId = genericResult.getString("productId");
BigDecimal minimumStock = genericResult.getBigDecimal("minimumStock");
if (minimumStock == null) {
@@ -444,7 +422,6 @@ public class MrpServices {
// SALES FORECASTS
// ----------------------------------------
resultList = null;
- iteratorResult = null;
GenericValue facility = null;
try {
facility = delegator.findOne("Facility", UtilMisc.toMap("facilityId", facilityId), false);
@@ -457,9 +434,7 @@ public class MrpServices {
} catch (GenericEntityException e) {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingMrpCannotFindSalesForecasts", locale));
}
- iteratorResult = resultList.iterator();
- while (iteratorResult.hasNext()) {
- genericResult = iteratorResult.next();
+ for(GenericValue genericResult : resultList) {
String customTimePeriodId = genericResult.getString("customTimePeriodId");
GenericValue customTimePeriod = null;
try {
@@ -472,24 +447,21 @@ public class MrpServices {
continue;
} else {
List<GenericValue> salesForecastDetails = null;
- Iterator<GenericValue> sfdIter = null;
try {
salesForecastDetails = delegator.findByAnd("SalesForecastDetail", UtilMisc.toMap("salesForecastId", genericResult.getString("salesForecastId")));
} catch (GenericEntityException e) {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingMrpCannotFindSalesForecastDetails", locale));
}
- sfdIter = salesForecastDetails.iterator();
- while (sfdIter.hasNext()) {
- genericResult = sfdIter.next();
- String productId = genericResult.getString("productId");
- BigDecimal eventQuantityTmp = genericResult.getBigDecimal("quantity");
+ for(GenericValue sfd : salesForecastDetails) {
+ String productId = sfd.getString("productId");
+ BigDecimal eventQuantityTmp = sfd.getBigDecimal("quantity");
if (productId == null || eventQuantityTmp == null) {
continue;
}
eventQuantityTmp = eventQuantityTmp.negate();
parameters = UtilMisc.toMap("mrpId", mrpId, "productId", productId, "eventDate", customTimePeriod.getDate("fromDate"), "mrpEventTypeId", "SALES_FORECAST");
try {
- InventoryEventPlannedServices.createOrUpdateMrpEvent(parameters, eventQuantityTmp, null, genericResult.getString("salesForecastDetailId"), false, delegator);
+ InventoryEventPlannedServices.createOrUpdateMrpEvent(parameters, eventQuantityTmp, null, sfd.getString("salesForecastDetailId"), false, delegator);
} catch (GenericEntityException e) {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingMrpEventProblemInitializing", UtilMisc.toMap("mrpEventTypeId", "SALES_FORECAST"), locale));
}
@@ -564,9 +536,7 @@ public class MrpServices {
Delegator delegator = product.getDelegator();
if (UtilValidate.isNotEmpty(listComponent)) {
- Iterator<BOMNode> listComponentIter = listComponent.iterator();
- while (listComponentIter.hasNext()) {
- BOMNode node = listComponentIter.next();
+ for(BOMNode node : listComponent) {
GenericValue productComponent = node.getProductAssoc();
// read the startDate for the component
String routingTask = node.getProductAssoc().getString("routingWorkEffortId");
@@ -629,9 +599,7 @@ public class MrpServices {
if (UtilValidate.isEmpty(facilities)) {
return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ManufacturingMrpFacilityGroupIsNotAssociatedToFacility", UtilMisc.toMap("facilityGroupId", facilityGroupId), locale));
}
- Iterator<GenericValue> facilitiesIt = facilities.iterator();
- while (facilitiesIt.hasNext()) {
- GenericValue facilityMember = facilitiesIt.next();
+ for(GenericValue facilityMember : facilities) {
GenericValue facility = facilityMember.getRelatedOne("Facility");
if ("WAREHOUSE".equals(facility.getString("facilityTypeId")) && UtilValidate.isEmpty(facilityId)) {
facilityId = facility.getString("facilityId");
@@ -672,7 +640,6 @@ public class MrpServices {
Map<String, Object> parameters = null;
List<GenericValue> listInventoryEventForMRP = null;
ListIterator<GenericValue> iteratorListInventoryEventForMRP = null;
- GenericValue inventoryEventForMRP = null;
// Initialization of the MrpEvent table, This table will contain the products we want to buy or build.
parameters = UtilMisc.<String, Object>toMap("mrpId", mrpId, "reInitialize", Boolean.TRUE, "defaultYearsOffset", defaultYearsOffset, "userLogin", userLogin);
@@ -703,11 +670,9 @@ public class MrpServices {
if (UtilValidate.isNotEmpty(listInventoryEventForMRP)) {
bomLevelWithNoEvent = 0;
- iteratorListInventoryEventForMRP = listInventoryEventForMRP.listIterator();
oldProductId = "";
- while (iteratorListInventoryEventForMRP.hasNext()) {
- inventoryEventForMRP = iteratorListInventoryEventForMRP.next();
+ for(GenericValue inventoryEventForMRP : listInventoryEventForMRP) {
productId = inventoryEventForMRP.getString("productId");
eventQuantity = inventoryEventForMRP.getBigDecimal("quantity");
Modified: ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/techdata/TechDataServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/techdata/TechDataServices.java?rev=1305581&r1=1305580&r2=1305581&view=diff
==============================================================================
--- ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/techdata/TechDataServices.java (original)
+++ ofbiz/branches/20111205EmailHandling/applications/manufacturing/src/org/ofbiz/manufacturing/techdata/TechDataServices.java Mon Mar 26 20:56:02 2012
@@ -132,9 +132,7 @@ public class TechDataServices {
}
if (listRoutingTaskAssoc != null) {
- Iterator<GenericValue> i = listRoutingTaskAssoc.iterator();
- while (i.hasNext()) {
- GenericValue routingTaskAssoc = i.next();
+ for(GenericValue routingTaskAssoc : listRoutingTaskAssoc) {
if (! workEffortIdFrom.equals(routingTaskAssoc.getString("workEffortIdFrom")) ||
! workEffortIdTo.equals(routingTaskAssoc.getString("workEffortIdTo")) ||
! workEffortAssocTypeId.equals(routingTaskAssoc.getString("workEffortAssocTypeId")) ||
Modified: ofbiz/branches/20111205EmailHandling/applications/manufacturing/webapp/manufacturing/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/manufacturing/webapp/manufacturing/WEB-INF/controller.xml?rev=1305581&r1=1305580&r2=1305581&view=diff
==============================================================================
--- ofbiz/branches/20111205EmailHandling/applications/manufacturing/webapp/manufacturing/WEB-INF/controller.xml (original)
+++ ofbiz/branches/20111205EmailHandling/applications/manufacturing/webapp/manufacturing/WEB-INF/controller.xml Mon Mar 26 20:56:02 2012
@@ -466,7 +466,7 @@ under the License.
</request-map>
<request-map uri="ShowProductionRun">
<security https="true" auth="true"/>
- <event type="groovy" path="component://manufacturing/webapp/manufacturing/jobshopmgt/" invoke="ShowProductionRun.groovy"/>
+ <event type="groovy" path="component://manufacturing/webapp/manufacturing/jobshopmgt/ShowProductionRun.groovy"/>
<response name="docs_not_printed" type="view" value="EditProductionRun"/>
<response name="docs_printed" type="view" value="ProductionRunDeclaration"/>
<response name="error" type="view" value="FindProductionRun"/>
Modified: ofbiz/branches/20111205EmailHandling/applications/marketing/config/MarketingUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/20111205EmailHandling/applications/marketing/config/MarketingUiLabels.xml?rev=1305581&r1=1305580&r2=1305581&view=diff
==============================================================================
--- ofbiz/branches/20111205EmailHandling/applications/marketing/config/MarketingUiLabels.xml (original)
+++ ofbiz/branches/20111205EmailHandling/applications/marketing/config/MarketingUiLabels.xml Mon Mar 26 20:56:02 2012
@@ -27,6 +27,7 @@
<value xml:lang="pt_BR">Custo real</value>
<value xml:lang="ro">Cost Actual</value>
<value xml:lang="th">ราà¸à¸²à¸à¸£à¸´à¸</value>
+ <value xml:lang="vi">Chi phà thực tế</value>
<value xml:lang="zh">å®é
è´¹ç¨</value>
<value xml:lang="zh_TW">實éè²»ç¨</value>
</property>
@@ -68,6 +69,7 @@
<value xml:lang="fr">Prospects convertis</value>
<value xml:lang="it">Leads convertiti</value>
<value xml:lang="pt_BR">Leads concretizados</value>
+ <value xml:lang="vi">Các Äầu má»i ÄÆ°á»£c chuyá»n Äá»i</value>
<value xml:lang="zh">转åäºç线索</value>
<value xml:lang="zh_TW">è½åäºçç·ç´¢</value>
</property>
@@ -197,6 +199,7 @@
<value xml:lang="pt_BR">Campanha de Marketing</value>
<value xml:lang="ro">Campania Vanzare</value>
<value xml:lang="th">à¸à¸²à¸£à¸§à¸²à¸à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸¥à¸²à¸</value>
+ <value xml:lang="vi">Chiến dá»ch tiếp thá»</value>
<value xml:lang="zh">å¸åºæ»å¿</value>
<value xml:lang="zh_TW">è¡é·æ´»å</value>
</property>
@@ -210,6 +213,7 @@
<value xml:lang="pt_BR">Criar Campanha de Marketing</value>
<value xml:lang="ro">Creare Campanie Vanzare</value>
<value xml:lang="th">สรà¹à¸²à¸à¸à¸²à¸£à¸§à¸²à¸à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸¥à¸²à¸</value>
+ <value xml:lang="vi">Tạo Chiến dá»ch tiếp thá»</value>
<value xml:lang="zh">æ°å»ºå¸åºæ»å¿</value>
<value xml:lang="zh_TW">æ°å»ºè¡é·æ´»å</value>
</property>
@@ -223,6 +227,7 @@
<value xml:lang="pt_BR">ID de Campanha de Marketing</value>
<value xml:lang="ro">Cod Campanie Vanzare</value>
<value xml:lang="th">รหัสà¸à¸²à¸£à¸§à¸²à¸à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸¥à¸²à¸</value>
+ <value xml:lang="vi">Mã chiến dá»ch tiếp thá»</value>
<value xml:lang="zh">å¸åºæ»å¿æ è¯</value>
<value xml:lang="zh_TW">è¡é·æ´»åID</value>
</property>
@@ -234,6 +239,7 @@
<value xml:lang="nl">Fout emailadres opgegeven.</value>
<value xml:lang="pt_BR">Endereço de e-mail inválido</value>
<value xml:lang="th">à¹à¸à¹à¸²à¸ªà¸¹à¹à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸à¸à¸à¸µà¹à¸¡à¸¥à¹à¹à¸¡à¹à¹à¸à¹</value>
+ <value xml:lang="vi">Äá»a chá» email nháºp và o không phù hợp.</value>
<value xml:lang="zh">è¾å
¥ççµåé®ä»¶å°åæ æã</value>
<value xml:lang="zh_TW">輸å
¥çé»åéµä»¶ä½åç¡æã</value>
</property>
@@ -247,6 +253,7 @@
<value xml:lang="pt_BR">Nome de campanha</value>
<value xml:lang="ro">Nume Campanie</value>
<value xml:lang="th">à¸à¸·à¹à¸à¹à¸à¸£à¸à¸à¸²à¸£</value>
+ <value xml:lang="vi">Tên chiến dá»ch</value>
<value xml:lang="zh">æ»å¿åç§°</value>
<value xml:lang="zh_TW">æ´»åå稱</value>
</property>
@@ -260,6 +267,7 @@
<value xml:lang="pt_BR">Relatório de campanha de marketing</value>
<value xml:lang="ro">Tiparire Campanie de Vanzare</value>
<value xml:lang="th">รายà¸à¸²à¸à¸à¸²à¸£à¸§à¸²à¸à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸¥à¸²à¸</value>
+ <value xml:lang="vi">Báo cáo chiến dá»ch tiếp thá»</value>
<value xml:lang="zh">å¸åºæ»å¿æ¥å</value>
<value xml:lang="zh_TW">è¡é·æ´»åå ±å</value>
</property>
@@ -273,6 +281,7 @@
<value xml:lang="pt_BR">Criar papel de campanha de marketig</value>
<value xml:lang="ro">Creare Rol Campanie Vanzare</value>
<value xml:lang="th">สรà¹à¸²à¸à¸ªà¸à¸²à¸à¸°à¸à¸²à¸£à¸§à¸²à¸à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸¥à¸²à¸</value>
+ <value xml:lang="vi">Khá»i tạo vai trò trong chiến dá»ch</value>
<value xml:lang="zh">æ°å»ºå¸åºæ»å¿è§è²</value>
<value xml:lang="zh_TW">æ°å»ºè¡é·æ´»åè§è²</value>
</property>
@@ -286,6 +295,7 @@
<value xml:lang="pt_BR">Descrição da campanha</value>
<value xml:lang="ro">Sumar Campanie</value>
<value xml:lang="th">สรุà¸à¹à¸à¸£à¸à¸à¸²à¸£</value>
+ <value xml:lang="vi">Tóm tắt chiến dá»ch</value>
<value xml:lang="zh">æ»å¿æè¦</value>
<value xml:lang="zh_TW">æ´»åæè¦</value>
</property>
@@ -299,6 +309,7 @@
<value xml:lang="pt_BR">OFBiz: Gerente de Marketing</value>
<value xml:lang="ro">OFBiz: Gestione Vendite</value>
<value xml:lang="th">OFBiz: à¸à¸²à¸£à¸à¸±à¸à¸à¸²à¸£à¸à¸²à¸à¸à¸²à¸£à¸à¸¥à¸²à¸</value>
+ <value xml:lang="vi">OFBiz: Quản lý tiếp thá»</value>
<value xml:lang="zh">OFBiz: å¸åºå®£ä¼ 管ç</value>
<value xml:lang="zh_TW">OFBiz: è¡é·ç®¡ç</value>
</property>
@@ -329,6 +340,7 @@
<value xml:lang="pt_BR">Lista de contatos</value>
<value xml:lang="ro">Lista Contact</value>
<value xml:lang="th">รายà¸à¸²à¸£à¸à¸´à¸à¸à¹à¸</value>
+ <value xml:lang="vi">Danh sách liên há»</value>
<value xml:lang="zh">èç³»å表</value>
<value xml:lang="zh_TW">è¯ç³»å表</value>
</property>
@@ -341,6 +353,7 @@
<value xml:lang="pt_BR">Criar envento de comunicação</value>
<value xml:lang="ro">Creare Noua Lista Contact Eveniment Comunicatie</value>
<value xml:lang="th">สรà¹à¸²à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸¥à¸à¸²à¸£à¸à¸´à¸à¸à¹à¸à¹à¸«à¸¡à¹</value>
+ <value xml:lang="vi">Tạo má»i danh sách liên há» cho sá»± kiá»n</value>
<value xml:lang="zh">æ°å»ºèç³»å表æ²éäºä»¶</value>
<value xml:lang="zh_TW">æ°å»ºè¯ç³»å表æºéäºä»¶</value>
</property>
@@ -353,6 +366,7 @@
<value xml:lang="pt_BR">ID de evento de comunicação</value>
<value xml:lang="ro">Cod Eveniment Comunicatie</value>
<value xml:lang="th">รหัสà¸à¸¥à¸à¸²à¸£à¸à¸´à¸à¸à¹à¸</value>
+ <value xml:lang="vi">Mã sá»± kiá»n truyá»n thông</value>
<value xml:lang="zh">æ²éäºä»¶æ è¯</value>
<value xml:lang="zh_TW">éè¨äºä»¶ID</value>
</property>
@@ -370,6 +384,7 @@
<property key="MarketingContactListCommStatus">
<value xml:lang="en">Contact List Communication Status</value>
<value xml:lang="pt_BR">Estado da comunicação com Lista de contatos</value>
+ <value xml:lang="vi">Tình trạng danh sách liên há» truyá»n thông</value>
<value xml:lang="zh">èç³»å表æ²éç¶æ</value>
<value xml:lang="zh_TW">è¯çµ¡å表æºéçæ
</value>
</property>
@@ -382,6 +397,7 @@
<value xml:lang="pt_BR">ID de lista de contatos</value>
<value xml:lang="ro">Cod Lista Contact</value>
<value xml:lang="th">รหัสรายà¸à¸²à¸£à¸à¸´à¸à¸à¹à¸</value>
+ <value xml:lang="vi">Mã danh sách liên há»</value>
<value xml:lang="zh">èç³»å表æ è¯</value>
<value xml:lang="zh_TW">è¯çµ¡å表ID</value>
</property>
@@ -394,6 +410,7 @@
<value xml:lang="pt_BR">Nome da lista de contatos</value>
<value xml:lang="ro">Nume Lista Contact</value>
<value xml:lang="th">รายà¸à¸·à¹à¸à¸à¸µà¹à¸à¸´à¸à¸à¹à¸</value>
+ <value xml:lang="vi">Tên danh sách liên há»</value>
<value xml:lang="zh">èç³»å表åç§°</value>
<value xml:lang="zh_TW">è¯ç³»å表å稱</value>
</property>
@@ -406,6 +423,7 @@
<value xml:lang="pt_BR">ID do tipo de lista de contato</value>
<value xml:lang="ro">Tip Lista Contact</value>
<value xml:lang="th">รหัสà¸à¸£à¸°à¹à¸ à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸´à¸à¸à¹à¸</value>
+ <value xml:lang="vi">Mã phân loại danh sách liên há»</value>
<value xml:lang="zh">èç³»åè¡¨ç±»åæ è¯</value>
<value xml:lang="zh_TW">è¯çµ¡å表é¡åID</value>
</property>
@@ -430,6 +448,7 @@
<value xml:lang="pt_BR">Criar nova lista de contatos</value>
<value xml:lang="ro">Creare Noua Lista Contact</value>
<value xml:lang="th">สรà¹à¸²à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸´à¸à¸à¹à¸à¹à¸«à¸¡à¹</value>
+ <value xml:lang="vi">Tạo má»i danh sách liên há»</value>
<value xml:lang="zh">æ°å»ºèç³»å表</value>
<value xml:lang="zh_TW">æ°å»ºè¯ç³»å表</value>
</property>
@@ -441,6 +460,7 @@
<value xml:lang="pt_BR">Encontrar lista de contato</value>
<value xml:lang="ro">Cauta Liste Contact</value>
<value xml:lang="th">à¸à¹à¸à¸«à¸²à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸´à¸à¸à¹à¸</value>
+ <value xml:lang="vi">Tìm kiếm danh sách liên há»</value>
<value xml:lang="zh">æ¥æ¾èç³»å表</value>
<value xml:lang="zh_TW">æ¥æ¾è¯ç³»å表</value>
</property>
@@ -454,6 +474,7 @@
<value xml:lang="pt_BR">à pública ?</value>
<value xml:lang="ro">Este Public ?</value>
<value xml:lang="th">à¹à¸à¹à¸à¸ªà¸²à¸à¸²à¸£à¸à¸° ?</value>
+ <value xml:lang="vi">Nó ÄÆ°á»£c phá» biến không ?</value>
<value xml:lang="zh">å
¬å¼å?</value>
<value xml:lang="zh_TW">å
¬éå?</value>
</property>
@@ -466,6 +487,7 @@
<value xml:lang="pt_BR">à de uso único ?</value>
<value xml:lang="ro">Este pentru un unic utilizatir?</value>
<value xml:lang="th">à¹à¸à¹à¹à¸à¹à¸à¸£à¸±à¹à¸à¹à¸à¸µà¸¢à¸§ ?</value>
+ <value xml:lang="vi">Nó ÄÆ°á»£c sá» dụng Äá»c láºp không ?</value>
<value xml:lang="zh">åä¸ç¨éå?</value>
<value xml:lang="zh_TW">å®ä¸ç¨éå?</value>
</property>
@@ -477,6 +499,7 @@
<value xml:lang="pt_BR">Não foi possÃvel encontrar lista de e-mail [${contactListId}].</value>
<value xml:lang="ro">Nu este posibila gasirea listei e-mail [${contactListId}].</value>
<value xml:lang="th">à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸à¸«à¸²à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸´à¸à¸à¹à¸ [${contactListId}]</value>
+ <value xml:lang="vi">Không tìm thấy danh sách email [${contactListId}].</value>
<value xml:lang="zh">æ æ³æ¾å°çµåé®ä»¶å表 [${contactListId}]ã</value>
<value xml:lang="zh_TW">ç¡æ³æ¾å°é»åéµä»¶å表 [${contactListId}]ã</value>
</property>
@@ -511,6 +534,7 @@
<value xml:lang="pt_BR">ID do proprietário</value>
<value xml:lang="ro">Cod Subiect Proprietar</value>
<value xml:lang="th">รหัสà¸à¸à¸à¸à¸¥à¸¸à¹à¸¡à¸à¸¹à¹à¹à¸à¹</value>
+ <value xml:lang="vi">Mã Äá»i tượng sá» hữu</value>
<value xml:lang="zh">æ¥æäººä¼åæ è¯</value>
<value xml:lang="zh_TW">ææè
æå¡ID</value>
</property>
@@ -523,6 +547,7 @@
<value xml:lang="pt_BR">Participante de Lista de contatos</value>
<value xml:lang="ro">Lista Contacte Subiecti</value>
<value xml:lang="th">รายà¸à¸²à¸£à¸à¸´à¸à¸à¹à¸à¸à¸¥à¸¸à¹à¸¡à¸à¸¹à¹à¹à¸à¹</value>
+ <value xml:lang="vi">Danh sách liên há» tá»i Äá»i tượng</value>
<value xml:lang="zh">èç³»å表ä¼å</value>
<value xml:lang="zh_TW">è¯çµ¡å表æå¡</value>
</property>
@@ -535,6 +560,7 @@
<value xml:lang="pt_BR">Criar novo participante de lista de contatos</value>
<value xml:lang="ro">Creare Noua Lista Contact Subiect</value>
<value xml:lang="th">สรà¹à¸²à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸´à¸à¸à¹à¸à¸à¸¥à¸¸à¹à¸¡à¸à¸¹à¹à¹à¸à¹à¹à¸«à¸¡à¹</value>
+ <value xml:lang="vi">Tạo má»i danh sách liên há» tá»i Äá»i tượng</value>
<value xml:lang="zh">æ°å»ºèç³»å表ä¼å</value>
<value xml:lang="zh_TW">æ°å»ºè¯çµ¡å表æå¡</value>
</property>
@@ -548,12 +574,14 @@
<value xml:lang="pt_BR">ID de participante</value>
<value xml:lang="ro">Cod Subiect</value>
<value xml:lang="th">รหัสà¸à¸¥à¸¸à¹à¸¡à¸à¸¹à¹à¹à¸à¹</value>
+ <value xml:lang="vi">Mã Äá»i tượng</value>
<value xml:lang="zh">ä¼åæ è¯</value>
<value xml:lang="zh_TW">æå¡ID</value>
</property>
<property key="MarketingContactListPartiesImport">
<value xml:lang="en">Import Parties</value>
<value xml:lang="th">à¸à¸³à¹à¸à¹à¸²à¸à¸¥à¸¸à¹à¸¡à¸à¸¹à¹à¹à¸à¹</value>
+ <value xml:lang="vi">Nháºp và o các Äá»i tượng</value>
</property>
<property key="MarketingContactListPreferredContactMech">
<value xml:lang="en">Preferred Contact Mechanism</value>
@@ -577,6 +605,7 @@
<value xml:lang="pt_BR">Verificação de e-mail de origem</value>
<value xml:lang="ro">Verifica Email De la</value>
<value xml:lang="th">à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸µà¹à¸¡à¸¥à¹à¸à¸²à¸</value>
+ <value xml:lang="vi">Xác nháºn email từ</value>
<value xml:lang="zh">éªè¯çµåé®ä»¶æ¥èª</value>
<value xml:lang="zh_TW">é©è¨¼é»åéµä»¶ä¾èª</value>
</property>
@@ -590,6 +619,7 @@
<value xml:lang="pt_BR">Tela de verificação de e-mail</value>
<value xml:lang="ro">Verifica Email Videata</value>
<value xml:lang="th">à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸µà¹à¸¡à¸¥à¹</value>
+ <value xml:lang="vi">Mà n hình xác nháºn email</value>
<value xml:lang="zh">éªè¯çµåé®ä»¶å±å¹</value>
<value xml:lang="zh_TW">é©è¨¼é»åéµä»¶è¢å¹</value>
</property>
@@ -661,6 +691,7 @@
<value xml:lang="en">Email Status Report</value>
<value xml:lang="it">Report stato e-mail</value>
<value xml:lang="pt_BR">Relatório de estado de e-mail</value>
+ <value xml:lang="vi">Báo cáo tình trạng email</value>
</property>
<property key="MarketingFindAccounts">
<value xml:lang="en">Find SFA Accounts</value>
@@ -668,6 +699,7 @@
<value xml:lang="it">Ricerca utenze SFA</value>
<value xml:lang="pt_BR">Encontrar contas da equipe de vendas</value>
<value xml:lang="th">à¸à¹à¸à¸«à¸² Account</value>
+ <value xml:lang="vi">Tìm kiếm tà i khoản bán hà ng</value>
<value xml:lang="zh">æ¥æ¾éå®ç®¡çè´¦æ·</value>
<value xml:lang="zh_TW">æ¥æ¾é·å®ç®¡ç賬æ¶</value>
</property>
@@ -676,12 +708,14 @@
<value xml:lang="fr">Rechercher des contacts</value>
<value xml:lang="pt_BR">Encontrar contatos da equipe de vendas</value>
<value xml:lang="th">à¸à¹à¸à¸«à¸² Contact</value>
+ <value xml:lang="vi">Tìm kiến liên hỠbán hà ng</value>
</property>
<property key="MarketingFindLeads">
<value xml:lang="en">Find SFA Leads</value>
<value xml:lang="fr">Rechercher des prospects</value>
<value xml:lang="pt_BR">Buscar Leads da equipe de vendas</value>
<value xml:lang="th">à¸à¹à¸à¸«à¸² Lead</value>
+ <value xml:lang="vi">Tìm Äầu má»i bán hà ng</value>
</property>
<property key="MarketingMainPage">
<value xml:lang="de">Haupt</value>
@@ -693,6 +727,7 @@
<value xml:lang="pt_BR">Principal</value>
<value xml:lang="ro">Pagina Principala</value>
<value xml:lang="th">หà¸à¹à¸²à¸«à¸¥à¸±à¸</value>
+ <value xml:lang="vi">Trang chÃnh</value>
<value xml:lang="zh">é¦é¡µ</value>
<value xml:lang="zh_TW">é¦é </value>
</property>
@@ -705,6 +740,7 @@
<value xml:lang="pt_BR">Gestão de Marketing</value>
<value xml:lang="ro">Aplicatie Gestiune Vanzare</value>
<value xml:lang="th">à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¸£à¸°à¸¢à¸¸à¸à¸à¹à¸à¸²à¸£à¸à¸±à¸à¸à¸²à¸£à¸à¸²à¸à¸à¸²à¸£à¸à¸¥à¸²à¸</value>
+ <value xml:lang="vi">Quản lý tiếp thá»</value>
<value xml:lang="zh">å¸åºç®¡çåºç¨ç¨åº</value>
<value xml:lang="zh_TW">è¡é·ç®¡ç</value>
</property>
@@ -717,6 +753,7 @@
<value xml:lang="pt_BR">Aplicação de Gestão de Marketing</value>
<value xml:lang="ro">Aplicatie Gestiune Vanzare</value>
<value xml:lang="th">à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¸£à¸°à¸¢à¸¸à¸à¸à¹à¸à¸²à¸£à¸à¸±à¸à¸à¸²à¸£à¸à¸²à¸à¸à¸²à¸£à¸à¸¥à¸²à¸</value>
+ <value xml:lang="vi">Ứng dụng quản lý tiếp thá»</value>
<value xml:lang="zh">å¸åºç®¡çåºç¨ç¨åº</value>
<value xml:lang="zh_TW">è¡é·ç®¡çæç¨ç¨å¼</value>
</property>
@@ -726,6 +763,7 @@
<value xml:lang="it">Benvenuto nell'applicazione gestione vendite!</value>
<value xml:lang="pt_BR">Bem-vindo à aplicação de Gestão de Marketing</value>
<value xml:lang="th">ยิà¸à¸à¸µà¸à¹à¸à¸à¸£à¸±à¸à¸ªà¸¹à¹à¸à¸²à¸£à¸à¸±à¸à¸à¸²à¸£à¸à¸²à¸à¸à¸²à¸£à¸à¸¥à¸²à¸</value>
+ <value xml:lang="vi">Chà o mừng bạn Äến vá»i Ứng dụng quản lý tiếp thá»!</value>
<value xml:lang="zh">欢è¿ä½¿ç¨å¸åºç®¡çç¨åºï¼</value>
<value xml:lang="zh_TW">æ¡è¿ä½¿ç¨è¡é·ç®¡çç¨å¼ï¼</value>
</property>
@@ -735,6 +773,7 @@
<value xml:lang="fr">N° des employés</value>
<value xml:lang="it">N. di impiegati</value>
<value xml:lang="pt_BR">Número de empregados</value>
+ <value xml:lang="vi">Không có nhân viên nà o</value>
<value xml:lang="zh">éåæ°é</value>
<value xml:lang="zh_TW">é塿¸é</value>
</property>
@@ -777,6 +816,7 @@
<value xml:lang="en">Party Status Report</value>
<value xml:lang="it">Report stato soggetti</value>
<value xml:lang="pt_BR">Relatório de estado de participante</value>
+ <value xml:lang="vi">Báo cáo tình trạng Äá»i tượng</value>
</property>
<property key="MarketingReports">
<value xml:lang="de">Berichte</value>
@@ -788,6 +828,7 @@
<value xml:lang="pt_BR">Relatórios</value>
<value xml:lang="ro">Tiparire</value>
<value xml:lang="th">รายà¸à¸²à¸</value>
+ <value xml:lang="vi">Báo cáo</value>
<value xml:lang="zh">æ¥å</value>
<value xml:lang="zh_TW">å ±å</value>
</property>
@@ -799,6 +840,7 @@
<value xml:lang="pt_BR">Segmento</value>
<value xml:lang="ro">Segment</value>
<value xml:lang="th">à¸à¸¥à¸¸à¹à¸¡</value>
+ <value xml:lang="vi">Phân Äoạn</value>
<value xml:lang="zh">ååº</value>
<value xml:lang="zh_TW">åå</value>
</property>
@@ -811,6 +853,7 @@
<value xml:lang="pt_BR">Criar grupo de classificação de segmento</value>
<value xml:lang="ro">Creare Noua Clasificare Grup Segment</value>
<value xml:lang="th">สรà¹à¸²à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¹à¸à¸à¸£à¸°à¹à¸ à¸à¸à¸à¸à¸à¸¥à¸¸à¹à¸¡à¹à¸«à¸¡à¹</value>
+ <value xml:lang="vi">Tạo má»i các lá»p cho nhóm phân Äoạn</value>
<value xml:lang="zh">æ°å»ºååºç»åç±»</value>
<value xml:lang="zh_TW">æ°å»ºååçµåé¡</value>
</property>
@@ -823,6 +866,7 @@
<value xml:lang="pt_BR">Criar novo grupo de segmento</value>
<value xml:lang="ro">Creare Nou Grup Segment</value>
<value xml:lang="th">สรà¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸à¸à¸à¸¥à¸¸à¹à¸¡à¹à¸«à¸¡à¹</value>
+ <value xml:lang="vi">Tạo má»i các nhóm phân Äoạn</value>
<value xml:lang="zh">æ°å»ºååºç»</value>
<value xml:lang="zh_TW">æ°å»ºååçµ</value>
</property>
@@ -830,6 +874,7 @@
<value xml:lang="en">Error on creation Segment Group</value>
<value xml:lang="it">Errore durante la creazione di un nuovo gruppo segmento</value>
<value xml:lang="pt_BR">Erro ao criar grupo de segmento</value>
+ <value xml:lang="vi">Lá»i trong viá»c khá»i tạo nhóm phân Äoạn</value>
<value xml:lang="zh">å建ååºç»æ¶åºé</value>
<value xml:lang="zh_TW">åµå»ºååçµæåºé¯</value>
</property>
@@ -837,6 +882,7 @@
<value xml:lang="en">Error on delete Segment Group</value>
<value xml:lang="it">Errore durante la cancellazione di un gruppo segmento</value>
<value xml:lang="pt_BR">Erro ao excluir grupo de segmento</value>
+ <value xml:lang="vi">Lá»i trong viá»c xóa nhóm phân Äoạn</value>
<value xml:lang="zh">å é¤ååºç»æ¶åºé</value>
<value xml:lang="zh_TW">åªé¤ååçµæåºé¯</value>
</property>
@@ -850,6 +896,7 @@
<value xml:lang="pt_BR">Descrição</value>
<value xml:lang="ro">Descriere</value>
<value xml:lang="th">รายละà¹à¸à¸µà¸¢à¸</value>
+ <value xml:lang="vi">Mô tả</value>
<value xml:lang="zh">æè¿°</value>
<value xml:lang="zh_TW">æè¿°</value>
</property>
@@ -862,6 +909,7 @@
<value xml:lang="pt_BR">Criar nova localização de grupo de segmento</value>
<value xml:lang="ro">Creare Nou Grup Segment Geografie</value>
<value xml:lang="th">สรà¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸à¸à¹à¸à¸£à¸à¸ªà¸£à¹à¸²à¸à¸à¸¥à¸¸à¹à¸¡à¹à¸«à¸¡à¹</value>
+ <value xml:lang="vi">Tạo má»i nhóm phân Äoạn Äá»a lý</value>
<value xml:lang="zh">æ°å»ºååºç»å°ç</value>
<value xml:lang="zh_TW">æ°å»ºååçµå°ç</value>
</property>
@@ -1031,6 +1079,7 @@
<value xml:lang="pt_BR">Rastreio</value>
<value xml:lang="ro">Traseu</value>
<value xml:lang="th">à¸à¸²à¸£à¸à¸´à¸à¸à¸²à¸¡</value>
+ <value xml:lang="vi">Truy vết</value>
<value xml:lang="zh">è·è¸ª</value>
<value xml:lang="zh_TW">è·è¹¤</value>
</property>
@@ -1042,6 +1091,7 @@
<value xml:lang="pt_BR">Código para rastreio</value>
<value xml:lang="ro">Cod Traseu</value>
<value xml:lang="th">รหัส Tracking</value>
+ <value xml:lang="vi">Mã truy vết</value>
<value xml:lang="zh">è·è¸ªç </value>
<value xml:lang="zh_TW">è·è¹¤ç¢¼</value>
</property>
@@ -1236,6 +1286,7 @@
<value xml:lang="pt_BR">Relatório de código de rastreio</value>
<value xml:lang="ro">Tiparire Cod Traseu</value>
<value xml:lang="th">รหัส Tracking</value>
+ <value xml:lang="vi">Báo cáo mã truy vết</value>
<value xml:lang="zh">è·è¸ªç æ¥å</value>
<value xml:lang="zh_TW">è·è¹¤ç¢¼å ±å</value>
</property>
@@ -1247,6 +1298,7 @@
<value xml:lang="pt_BR">ID de subgrupo</value>
<value xml:lang="ro">Cod Sub-Grup</value>
<value xml:lang="th">รหัสà¸à¸¥à¸¸à¹à¸¡à¸¢à¹à¸à¸¢</value>
+ <value xml:lang="vi">Mã nhóm cấp dưá»i</value>
<value xml:lang="zh">ä¸çº§ç»æ è¯</value>
<value xml:lang="zh_TW">次ç´ç¾¤çµID</value>
</property>
@@ -1258,6 +1310,7 @@
<value xml:lang="pt_BR">Tempo de vida</value>
<value xml:lang="ro">Traseu Timp de Viata</value>
<value xml:lang="th">à¹à¸ªà¹à¸à¸à¸²à¸à¸à¸µà¹à¹à¸à¹à¹à¸à¹à¸à¸¥à¸à¸à¹à¸§à¸¥à¸²</value>
+ <value xml:lang="vi">Tiến trình truy vết</value>
<value xml:lang="zh">å¯è·è¸ªæé</value>
<value xml:lang="zh_TW">追蹤æé</value>
</property>
@@ -1269,6 +1322,7 @@
<value xml:lang="pt_BR">ID de código de rastreio</value>
<value xml:lang="ro">Code Traseu</value>
<value xml:lang="th">รหัส Tracking</value>
+ <value xml:lang="vi">Mã truy vết</value>
<value xml:lang="zh">è·è¸ªç æ è¯</value>
<value xml:lang="zh_TW">追蹤碼ID</value>
</property>
@@ -1280,6 +1334,7 @@
<value xml:lang="pt_BR">ID de tipo de código de rastreio</value>
<value xml:lang="ro">Tip Traseu</value>
<value xml:lang="th">รหัสà¸à¸£à¸°à¹à¸ à¸à¸£à¸«à¸±à¸ª Tracking</value>
+ <value xml:lang="vi">Mã phân loại truy vết</value>
<value xml:lang="zh">è·è¸ªç ç±»åæ è¯</value>
<value xml:lang="zh_TW">追蹤碼é¡åID</value>
</property>
@@ -1291,6 +1346,7 @@
<value xml:lang="pt_BR">Tipo de código de rastreio</value>
<value xml:lang="ro">Tip Cod Traseu</value>
<value xml:lang="th">à¸à¸£à¸°à¹à¸ à¸à¸£à¸«à¸±à¸ª Tracking</value>
+ <value xml:lang="vi">Phân loại mã truy vết</value>
<value xml:lang="zh">è·è¸ªç ç±»å</value>
<value xml:lang="zh_TW">è·è¹¤ç¢¼é¡å</value>
</property>
@@ -1302,6 +1358,7 @@
<value xml:lang="pt_BR">Criar tipo de código de rastreio</value>
<value xml:lang="ro">Creare Tip Traseu</value>
<value xml:lang="th">สรà¹à¸²à¸à¸à¸£à¸°à¹à¸ à¸à¸£à¸«à¸±à¸ª Tracking</value>
+ <value xml:lang="vi">Tạo loại mã truy vết</value>
<value xml:lang="zh">æ°å»ºè·è¸ªç ç±»å</value>
<value xml:lang="zh_TW">æ°å»ºè·è¹¤ç¢¼é¡å</value>
</property>
@@ -1314,6 +1371,7 @@
<value xml:lang="pt_BR">Descrição</value>
<value xml:lang="ro">Descriere</value>
<value xml:lang="th">รายละà¹à¸à¸µà¸¢à¸</value>
+ <value xml:lang="vi">Mô tả</value>
<value xml:lang="zh">æè¿°</value>
<value xml:lang="zh_TW">æè¿°</value>
</property>
@@ -1586,6 +1644,7 @@
<value xml:lang="fr">Créer un prospect depuis une vCard</value>
<value xml:lang="it">Creare lead dalla vCard</value>
<value xml:lang="pt_BR">Criar novo Lead a partir do vCard</value>
+ <value xml:lang="vi">Tạo Äầu má»i từ vCard</value>
<value xml:lang="zh">ä»vCardæ°å»ºçº¿ç´¢</value>
<value xml:lang="zh_TW">å¾vCardæ°å»ºç·ç´¢</value>
</property>
@@ -1595,6 +1654,7 @@
<value xml:lang="fr">Modifier le compte</value>
<value xml:lang="it">Aggiornare utente</value>
<value xml:lang="pt_BR">Editar conta</value>
+ <value xml:lang="vi">Chá»nh sá»a tà i khoản</value>
<value xml:lang="zh">ç¼è¾è´¦æ·</value>
<value xml:lang="zh_TW">編輯賬æ¶</value>
</property>
@@ -2102,6 +2162,7 @@
<value xml:lang="fr">Comptes</value>
<value xml:lang="it">Utenze</value>
<value xml:lang="pt_BR">Contas</value>
+ <value xml:lang="vi">Tà i khoản</value>
<value xml:lang="zh">è´¦æ·</value>
<value xml:lang="zh_TW">賬æ¶</value>
</property>
@@ -2130,6 +2191,7 @@
<value xml:lang="fr">Tous les comptes</value>
<value xml:lang="pt_BR">Todas contas</value>
<value xml:lang="th">Account à¸à¸±à¹à¸à¸«à¸¡à¸</value>
+ <value xml:lang="vi">Toà n bỠtà i khoản</value>
</property>
<property key="SfaAllContacts">
<value xml:lang="de">Alle Kontakte</value>
@@ -2137,12 +2199,14 @@
<value xml:lang="fr">Tous les contacts</value>
<value xml:lang="pt_BR">Todos contatos</value>
<value xml:lang="th">Contact à¸à¸±à¹à¸à¸«à¸¡à¸</value>
+ <value xml:lang="vi">Toà n bá» liên há»</value>
</property>
<property key="SfaAllLeads">
<value xml:lang="en">All Leads</value>
<value xml:lang="fr">Tous les prospects</value>
<value xml:lang="pt_BR">Todos Leads</value>
<value xml:lang="th">Lead à¸à¸±à¹à¸à¸«à¸¡à¸</value>
+ <value xml:lang="vi">Toà n bá» Äầu má»i</value>
</property>
<property key="SfaAssignToMe">
<value xml:lang="de">Zugewiesen an mich</value>
@@ -2150,6 +2214,7 @@
<value xml:lang="fr">Me l'assigner</value>
<value xml:lang="pt_BR">Designar para mim</value>
<value xml:lang="th">à¸à¸³à¸«à¸à¸à¹à¸«à¹à¸à¸±à¸</value>
+ <value xml:lang="vi">Phân quyá»n cho tôi</value>
</property>
<property key="SfaAssignedBy">
<value xml:lang="de">Zugewiesen von</value>
@@ -2157,6 +2222,7 @@
<value xml:lang="fr">Assigné par</value>
<value xml:lang="pt_BR">Designada por</value>
<value xml:lang="th">à¸à¸³à¸«à¸à¸à¹à¸à¸¢</value>
+ <value xml:lang="vi">Phân quyá»n bá»i</value>
</property>
<property key="SfaAutoCreateContactByImportingVCard">
<value xml:lang="de">Automatisches Erstellen eines neuen Kontaktes bei dem Import einer vCard</value>
@@ -2228,6 +2294,7 @@
<value xml:lang="fr">OFBiz: gestion des ventes</value>
<value xml:lang="it">OFBiz: Gestione forze di vendita</value>
<value xml:lang="pt_BR">OFBiz: gestor da equipe de vendas</value>
+ <value xml:lang="vi">OFBiz: Quản lý bán hà ng</value>
<value xml:lang="zh">OFBiz: éå®ç®¡çç¨åº</value>
<value xml:lang="zh_TW">OFBiz: é·å®ç®¡çç¨å¼</value>
</property>
@@ -2236,6 +2303,7 @@
<value xml:lang="fr">Concurrents & Associés</value>
<value xml:lang="it">Competitori e soci</value>
<value xml:lang="pt_BR">Concorrentes & Parceiros</value>
+ <value xml:lang="vi">Äá»i tác</value>
<value xml:lang="zh">ç«äºè
ååä½ä¼ä¼´</value>
<value xml:lang="zh_TW">ç«¶çè
ååä½ä¼ä¼´</value>
</property>
@@ -2244,6 +2312,7 @@
<value xml:lang="en">Complete</value>
<value xml:lang="pt_BR">Completo</value>
<value xml:lang="th">à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸</value>
+ <value xml:lang="vi">Hoà n thà nh</value>
</property>
<property key="SfaContact">
<value xml:lang="de">Kontakt</value>
@@ -2251,6 +2320,7 @@
<value xml:lang="fr">Contact</value>
<value xml:lang="it">Contatto</value>
<value xml:lang="pt_BR">Contato</value>
+ <value xml:lang="vi">Liên há»</value>
<value xml:lang="zh">èç³»</value>
<value xml:lang="zh_TW">è¯ç³»</value>
</property>
@@ -2259,6 +2329,7 @@
<value xml:lang="fr">Contacts</value>
<value xml:lang="it">Contatti</value>
<value xml:lang="pt_BR">Contatos</value>
+ <value xml:lang="vi">Liên há»</value>
<value xml:lang="zh">èç³»</value>
<value xml:lang="zh_TW">è¯ç³»</value>
</property>
@@ -2268,6 +2339,7 @@
<value xml:lang="fr">Convertir le prospect</value>
<value xml:lang="it">Converti lead</value>
<value xml:lang="pt_BR">Concretizar Lead</value>
+ <value xml:lang="vi">Chuyá»n Äá»i Äầu má»i</value>
<value xml:lang="zh">转å线索</value>
<value xml:lang="zh_TW">è½åç·ç´¢</value>
</property>
@@ -2312,6 +2384,7 @@
<value xml:lang="fr">Documents</value>
<value xml:lang="it">Documenti</value>
<value xml:lang="pt_BR">Documentos</value>
+ <value xml:lang="vi">Tà i liá»u</value>
<value xml:lang="zh">ææ¡£</value>
<value xml:lang="zh_TW">ææª</value>
</property>
@@ -2345,6 +2418,7 @@
<value xml:lang="fr">Ãvènements</value>
<value xml:lang="it">Eventi</value>
<value xml:lang="pt_BR">Eventos</value>
+ <value xml:lang="vi">Sá»± kiá»n</value>
<value xml:lang="zh">äºä»¶</value>
<value xml:lang="zh_TW">äºä»¶</value>
</property>
@@ -2364,12 +2438,14 @@
<value xml:lang="en">Find Account Leads</value>
<value xml:lang="pt_BR">Buscar contas de Leads</value>
<value xml:lang="th">à¸à¹à¸à¸«à¸² Account Leads</value>
+ <value xml:lang="vi">Tìm kiếm tà i khoản Äầu má»i</value>
</property>
<property key="SfaFindAccounts">
<value xml:lang="de">Finde Konten</value>
<value xml:lang="en">Find Accounts</value>
<value xml:lang="pt_BR">Buscar contas</value>
<value xml:lang="th">à¸à¹à¸à¸«à¸² Accounts</value>
+ <value xml:lang="vi">Tìm kiếm tà i khoản</value>
</property>
<property key="SfaFindContacts">
<value xml:lang="de">Finde Kontakte</value>
@@ -2377,6 +2453,7 @@
<value xml:lang="fr">Rechercher les contacts</value>
<value xml:lang="it">Ricerca contatti</value>
<value xml:lang="pt_BR">Buscar contatos</value>
+ <value xml:lang="vi">Tìm kiếm liên há»</value>
<value xml:lang="zh">æ¥æ¾èç³»</value>
<value xml:lang="zh_TW">æ¥æ¾è¯ç³»</value>
</property>
@@ -2386,6 +2463,7 @@
<value xml:lang="fr">Recherchers les prospects</value>
<value xml:lang="it">Ricerca leads</value>
<value xml:lang="pt_BR">Buscar Leads</value>
+ <value xml:lang="vi">Tìm kiếm Äầu má»i</value>
<value xml:lang="zh">æ¥æ¾çº¿ç´¢</value>
<value xml:lang="zh_TW">æ¥æ¾ç·ç´¢</value>
</property>
@@ -2395,6 +2473,7 @@
<value xml:lang="fr">Rechercher les opportunités</value>
<value xml:lang="it">Ricerca opportunità </value>
<value xml:lang="pt_BR">Buscar oportunidades</value>
+ <value xml:lang="vi">Tìm kiếm cÆ¡ há»i</value>
<value xml:lang="zh">æ¥æ¾æºä¼</value>
<value xml:lang="zh_TW">æ¥æ¾æ©æ</value>
</property>
@@ -2405,6 +2484,7 @@
<value xml:lang="fr">Rechercher les résultats</value>
<value xml:lang="it">Ricerca risultati</value>
<value xml:lang="pt_BR">Buscar resultados</value>
+ <value xml:lang="vi">Tìm kiếm kết quả</value>
<value xml:lang="zh">æ¥æ¾ç»æ</value>
<value xml:lang="zh_TW">æ¥æ¾çµæ</value>
</property>
@@ -2429,6 +2509,7 @@
<value xml:lang="fr">Prévision</value>
<value xml:lang="it">Previsioni</value>
<value xml:lang="pt_BR">Previsão</value>
+ <value xml:lang="vi">Dự báo</value>
<value xml:lang="zh">颿µ</value>
<value xml:lang="zh_TW">é æ¸¬</value>
</property>
@@ -2482,6 +2563,7 @@
<value xml:lang="fr">Prospects</value>
<value xml:lang="it">Leads</value>
<value xml:lang="pt_BR">Leads</value>
+ <value xml:lang="vi">Äầu má»i</value>
<value xml:lang="zh">线索</value>
<value xml:lang="zh_TW">ç·ç´¢</value>
</property>
@@ -2498,6 +2580,7 @@
<value xml:lang="fr">Application de gestion des ventes</value>
<value xml:lang="it">Gestione vendite</value>
<value xml:lang="pt_BR">Gestor de automação de equipe de vendas</value>
+ <value xml:lang="vi">Quản lý bán hà ng</value>
<value xml:lang="zh">éå®ç®¡çåºç¨ç¨åº</value>
<value xml:lang="zh_TW">é·å®ç®¡çæç¨ç¨å¼</value>
</property>
@@ -2532,6 +2615,7 @@
<value xml:lang="fr">Fusionner les prospects</value>
<value xml:lang="it">Merge Leads</value>
<value xml:lang="pt_BR">Mesclar Leads</value>
+ <value xml:lang="vi">Ghép trá»n các Äầu má»i</value>
<value xml:lang="zh">å并线索</value>
<value xml:lang="zh_TW">å並ç·ç´¢</value>
</property>
@@ -2563,6 +2647,7 @@
<value xml:lang="fr">Mes prospects</value>
<value xml:lang="pt_BR">Meus Leads</value>
<value xml:lang="th">Lead à¸à¸à¸à¸à¸±à¸</value>
+ <value xml:lang="vi">Äầu má»i cá»§a tôi</value>
</property>
<property key="SfaNewSalesForecast">
<value xml:lang="de">Neue Verkaufsprognose</value>
@@ -2599,6 +2684,7 @@
<value xml:lang="fr">Opportunités</value>
<value xml:lang="it">Opportunità </value>
<value xml:lang="pt_BR">Oportunidades</value>
+ <value xml:lang="vi">CÆ¡ há»i</value>
<value xml:lang="zh">æºä¼</value>
<value xml:lang="zh_TW">æ©æ</value>
</property>
@@ -2652,6 +2738,7 @@
<value xml:lang="fr">Ajout rapide d'un contact</value>
<value xml:lang="it">Aggiunta veloce contatto</value>
<value xml:lang="pt_BR">Adição rápida de contato</value>
+ <value xml:lang="vi">Thêm nhanh Liên há»</value>
<value xml:lang="zh">å¿«éæ·»å èç³»</value>
<value xml:lang="zh_TW">å¿«éæ·»å è¯ç³»</value>
</property>
@@ -2660,6 +2747,7 @@
<value xml:lang="fr">Ajout rapide d'un prospect</value>
<value xml:lang="it">Aggiunta veloce lead</value>
<value xml:lang="pt_BR">Adição rápida de Lead</value>
+ <value xml:lang="vi">Thêm nhanh Äầu má»i</value>
<value xml:lang="zh">å¿«éæ·»å 线索</value>
<value xml:lang="zh_TW">å¿«éæ·»å ç·ç´¢</value>
</property>
@@ -2669,6 +2757,7 @@
<value xml:lang="fr">Prévision de ventes</value>
<value xml:lang="it">Previsioni di vendita</value>
<value xml:lang="pt_BR">Previsão de vendas</value>
+ <value xml:lang="vi">Dá»± Äoán bán hà ng</value>
<value xml:lang="zh">éå®é¢æµ</value>
<value xml:lang="zh_TW">é·å®é 測</value>
</property>
@@ -2677,6 +2766,7 @@
<value xml:lang="fr">Deuxième contact</value>
<value xml:lang="it">Secondo contatto</value>
<value xml:lang="pt_BR">Segundo contato</value>
+ <value xml:lang="vi">Liên hỠthứ 2</value>
<value xml:lang="zh">第äºèç³»æ¹å¼</value>
<value xml:lang="zh_TW">第äºè¯ç³»æ¹å¼</value>
</property>