details:   /erp/devel/pi/rev/69a0581510c6
changeset: 12215:69a0581510c6
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Tue May 17 21:45:36 2011 +0200
summary:   Added contributors to contributors doc

details:   /erp/devel/pi/rev/f02874776625
changeset: 12216:f02874776625
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Wed May 18 11:55:26 2011 +0200
summary:   Added clone order functionality , contributed by TDS, Mallikarjun M, 
Sreedhar Sirigiri

details:   /erp/devel/pi/rev/bea722fba6d5
changeset: 12217:bea722fba6d5
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Wed May 18 11:55:43 2011 +0200
summary:   Merged heads

details:   /erp/devel/pi/rev/91101a10e243
changeset: 12218:91101a10e243
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Wed May 18 12:16:51 2011 +0200
summary:   Added messages for clone order functionality

details:   /erp/devel/pi/rev/2db81cdadbeb
changeset: 12219:2db81cdadbeb
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Wed May 18 12:17:29 2011 +0200
summary:   Merged heads

diffstat:

 CONTRIBUTORS                                                                   
                                                                                
                |     2 +
 
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml
                                                                                
             |    33 +
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationComponentProvider.java
                                                                |     2 +
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/businesslogic/ClonePropertyActionHandler.java
                                                    |   242 +
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
                                                          |    33 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-action-button.js
                                                                           |    
 2 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-clone-order.js
                                                                             |  
  51 +
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-standard-view.js
                                                                           |   
187 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-toolbar.js
                                                                                
 |  2823 +++++----
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form-notes.js
                                                                         |   
515 +-
 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/3.00/org.openbravo.client.application/images/toolbar/iconButton-clone.png
 |     0 
 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/3.00/org.openbravo.client.application/ob-toolbar-styles.css
               |     6 +
 src/org/openbravo/erpCommon/ad_forms/AcctServer.java                           
                                                                                
                |     5 +
 13 files changed, 2162 insertions(+), 1739 deletions(-)

diffs (truncated from 4173 to 300 lines):

diff -r 1d0fdd55e10a -r 2db81cdadbeb CONTRIBUTORS
--- a/CONTRIBUTORS      Tue May 17 21:44:25 2011 +0200
+++ b/CONTRIBUTORS      Wed May 18 12:17:29 2011 +0200
@@ -10,3 +10,5 @@
 Valery Lezhebokov <[email protected]> - Development and Bug fixing
 Asier Galdos <[email protected]> - Bug fixing
 Thirumalai Kandasami <[email protected]> - Bug fixing
+Sreedhar Sirigiri TDS - provided deep linking with filter clause
+Mallikarjun M TDS - provided deep linking with filter clause
diff -r 1d0fdd55e10a -r 2db81cdadbeb 
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml
--- 
a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml
        Tue May 17 21:44:25 2011 +0200
+++ 
b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml
        Wed May 18 12:17:29 2011 +0200
@@ -2015,4 +2015,37 @@
 <!--FF8081812F91DF13012F91E6DED60025-->  
<AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--FF8081812F91DF13012F91E6DED60025--></AD_MESSAGE>
 
+<!--FF80818130028FA501300291166C0003--><AD_MESSAGE>
+<!--FF80818130028FA501300291166C0003-->  
<AD_MESSAGE_ID><![CDATA[FF80818130028FA501300291166C0003]]></AD_MESSAGE_ID>
+<!--FF80818130028FA501300291166C0003-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF80818130028FA501300291166C0003-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF80818130028FA501300291166C0003-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF80818130028FA501300291166C0003-->  
<VALUE><![CDATA[OBUIAPP_WantToCloneOrder]]></VALUE>
+<!--FF80818130028FA501300291166C0003-->  <MSGTEXT><![CDATA[Do you want to 
clone the order?]]></MSGTEXT>
+<!--FF80818130028FA501300291166C0003-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--FF80818130028FA501300291166C0003-->  
<AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
+<!--FF80818130028FA501300291166C0003--></AD_MESSAGE>
+
+<!--FF80818130028FA5013002917EED0007--><AD_MESSAGE>
+<!--FF80818130028FA5013002917EED0007-->  
<AD_MESSAGE_ID><![CDATA[FF80818130028FA5013002917EED0007]]></AD_MESSAGE_ID>
+<!--FF80818130028FA5013002917EED0007-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF80818130028FA5013002917EED0007-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF80818130028FA5013002917EED0007-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF80818130028FA5013002917EED0007-->  
<VALUE><![CDATA[OBUIAPP_CloneData]]></VALUE>
+<!--FF80818130028FA5013002917EED0007-->  <MSGTEXT><![CDATA[Copy 
record]]></MSGTEXT>
+<!--FF80818130028FA5013002917EED0007-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--FF80818130028FA5013002917EED0007-->  
<AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
+<!--FF80818130028FA5013002917EED0007--></AD_MESSAGE>
+
+<!--FF80818130028FA501300291CE7F000C--><AD_MESSAGE>
+<!--FF80818130028FA501300291CE7F000C-->  
<AD_MESSAGE_ID><![CDATA[FF80818130028FA501300291CE7F000C]]></AD_MESSAGE_ID>
+<!--FF80818130028FA501300291CE7F000C-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF80818130028FA501300291CE7F000C-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF80818130028FA501300291CE7F000C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF80818130028FA501300291CE7F000C-->  
<VALUE><![CDATA[OBUIAPP_CloneDataDone]]></VALUE>
+<!--FF80818130028FA501300291CE7F000C-->  <MSGTEXT><![CDATA[The record has been 
copied.]]></MSGTEXT>
+<!--FF80818130028FA501300291CE7F000C-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--FF80818130028FA501300291CE7F000C-->  
<AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
+<!--FF80818130028FA501300291CE7F000C--></AD_MESSAGE>
+
 </data>
diff -r 1d0fdd55e10a -r 2db81cdadbeb 
modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationComponentProvider.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationComponentProvider.java
   Tue May 17 21:44:25 2011 +0200
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationComponentProvider.java
   Wed May 18 12:17:29 2011 +0200
@@ -158,6 +158,8 @@
         "web/org.openbravo.client.application/js/ob-eventhandler.js", false));
     globalResources.add(createStaticResource(
         "web/org.openbravo.client.application/js/ob-section-stack.js", false));
+    globalResources.add(createStaticResource(
+        "web/org.openbravo.client.application/js/ob-clone-order.js", false));
 
     // Styling
     globalResources.add(createStyleSheetResource(
diff -r 1d0fdd55e10a -r 2db81cdadbeb 
modules/org.openbravo.client.application/src/org/openbravo/client/application/businesslogic/ClonePropertyActionHandler.java
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/businesslogic/ClonePropertyActionHandler.java
       Wed May 18 12:17:29 2011 +0200
@@ -0,0 +1,242 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html 
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License. 
+ * The Original Code is Openbravo ERP. 
+ * The Initial Developer of the Original Code is Openbravo SLU 
+ * All portions are Copyright (C) 2011 Openbravo SLU 
+ * All Rights Reserved. 
+ * Contributor(s):   Sreedhar Sirigiri (TDS), Mallikarjun M (TDS)
+ ************************************************************************
+ */
+package org.openbravo.client.application.businesslogic;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.ServletException;
+
+import org.codehaus.jettison.json.JSONObject;
+import org.openbravo.base.provider.OBProvider;
+import org.openbravo.client.kernel.BaseActionHandler;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.dal.service.OBQuery;
+import org.openbravo.model.common.order.Order;
+import org.openbravo.model.common.order.OrderLine;
+import org.openbravo.model.pricing.pricelist.PriceListVersion;
+import org.openbravo.service.db.CallStoredProcedure;
+import org.openbravo.service.json.DataResolvingMode;
+import org.openbravo.service.json.DataToJsonConverter;
+
+/**
+ * Clone an existing sales order.
+ * 
+ * @author Mallikarjun M
+ * 
+ */
+public class ClonePropertyActionHandler extends BaseActionHandler {
+
+  protected JSONObject execute(Map<String, Object> parameters, String data) {
+    OBContext.setAdminMode();
+    final DataToJsonConverter jsonConverter = new DataToJsonConverter();
+    JSONObject json = null;
+    try {
+      String orderId = (String) parameters.get("orderId");
+      Order objOrder = OBDal.getInstance().get(Order.class, orderId);
+      Order objCloneOrder = OBProvider.getInstance().get(Order.class);
+      objCloneOrder.setNewOBObject(true);
+      objCloneOrder.setOrganization(objOrder.getOrganization());
+      objCloneOrder.setOrderDate(objOrder.getOrderDate());
+      objCloneOrder.setOrderReference(objOrder.getOrderReference());
+      objCloneOrder.setDescription(objOrder.getDescription());
+      
objCloneOrder.setScheduledDeliveryDate(objOrder.getScheduledDeliveryDate());
+      objCloneOrder.setBusinessPartner(objOrder.getBusinessPartner());
+      objCloneOrder.setPartnerAddress(objOrder.getPartnerAddress());
+      objCloneOrder.setUserContact(objOrder.getUserContact());
+      objCloneOrder.setSalesRepresentative(objOrder.getSalesRepresentative());
+      objCloneOrder.setDeliveryLocation(objOrder.getDeliveryLocation());
+      objCloneOrder.setInvoiceTerms(objOrder.getInvoiceTerms());
+      objCloneOrder.setWarehouse(objOrder.getWarehouse());
+      objCloneOrder.setPriceList(objOrder.getPriceList());
+      objCloneOrder.setCurrency(objOrder.getCurrency());
+      objCloneOrder.setDeliveryMethod(objOrder.getDeliveryMethod());
+      objCloneOrder.setPriority(objOrder.getPriority());
+      objCloneOrder.setShippingCompany(objOrder.getShippingCompany());
+      objCloneOrder.setFreightAmount(objOrder.getFreightAmount());
+      objCloneOrder.setFreightCostRule(objOrder.getFreightCostRule());
+      objCloneOrder.setCharge(objOrder.getCharge());
+      objCloneOrder.setChargeAmount(objOrder.getChargeAmount());
+      objCloneOrder.setPaymentMethod(objOrder.getPaymentMethod());
+      objCloneOrder.setPaymentTerms(objOrder.getPaymentTerms());
+      objCloneOrder.setActivity(objOrder.getActivity());
+      objCloneOrder.setProject(objOrder.getProject());
+      objCloneOrder.setSalesCampaign(objOrder.getSalesCampaign());
+      objCloneOrder.setFormOfPayment(objOrder.getFormOfPayment());
+      objCloneOrder.setTrxOrganization(objOrder.getTrxOrganization());
+      objCloneOrder.setUpdatedBy(objOrder.getUpdatedBy());
+      objCloneOrder.setCreatedBy(objOrder.getCreatedBy());
+      objCloneOrder.setSummedLineAmount(new BigDecimal("0"));//
+      objCloneOrder.setGrandTotalAmount(new BigDecimal("0"));//
+      objCloneOrder.setDocumentType(objOrder.getDocumentType());
+      objCloneOrder.setCopyFrom(objOrder.isCopyFrom());
+      objCloneOrder.setCopyFromPO(objOrder.isCopyFromPO());
+      objCloneOrder.setDeliveryNotes(objOrder.getDeliveryNotes());
+      objCloneOrder.setActive(objOrder.isActive());
+      objCloneOrder.setClient(objOrder.getClient());
+      objCloneOrder.setDelivered(objOrder.isDelivered());
+      objCloneOrder.setPrint(objOrder.isPrint());
+      objCloneOrder.setPrintDiscount(objOrder.isPrintDiscount());
+      objCloneOrder.setAccountingDate(objOrder.getAccountingDate());
+      objCloneOrder.setDatePrinted(objOrder.getDatePrinted());
+      objCloneOrder.setSelected(objOrder.isSelected());
+      objCloneOrder.setDropShipContact(objOrder.getDropShipContact());
+      objCloneOrder.setDropShipLocation(objOrder.getDropShipLocation());
+      objCloneOrder.setDropShipPartner(objOrder.getDropShipPartner());
+      objCloneOrder.setSelfService(objOrder.isSelfService());
+      objCloneOrder.setGenerateTemplate(objOrder.isGenerateTemplate());
+      objCloneOrder.setIncoterms(objOrder.getIncoterms());
+      
objCloneOrder.setINCOTERMSDescription(objOrder.getINCOTERMSDescription());
+      objCloneOrder.setCreationDate(new java.util.Date());
+      objCloneOrder.setUpdated(new java.util.Date());
+      objCloneOrder.setDelivered(objOrder.isDelivered());
+      objCloneOrder.setDeliveryLocation(objOrder.getDeliveryLocation());
+      objCloneOrder.setInvoiceAddress(objOrder.getInvoiceAddress());
+      objCloneOrder.setDocumentAction("CO");
+      objCloneOrder.setDocumentStatus("DR");
+      objCloneOrder.setPosted("N");
+      objCloneOrder.setProcessed(false);
+      objCloneOrder.setSalesTransaction(true);
+      objCloneOrder.setTransactionDocument(objOrder.getTransactionDocument());
+      // save the cloned order object
+      OBDal.getInstance().save(objCloneOrder);
+      // get the lines associated with the order and clone them to the new
+      // order line.
+      List<OrderLine> lsOrderLines = getOrderLines(objOrder);
+
+      for (OrderLine ol : lsOrderLines) {
+        String strPriceVersionId = 
getPriceListVersion(objOrder.getPriceList().getId(), objOrder
+            .getClient().getId());
+        BigDecimal bdPriceList = getPriceList(ol.getProduct().getId(), 
strPriceVersionId);
+        OrderLine objOrdLine = OBProvider.getInstance().get(OrderLine.class);
+        objOrdLine.setNewOBObject(true);
+        objOrdLine.setLineNo(ol.getLineNo());
+        objOrdLine.setClient(ol.getClient());
+        objOrdLine.setOrganization(ol.getOrganization());
+        objOrdLine.setActive(ol.isActive());
+        objOrdLine.setCreationDate(new java.util.Date());
+        objOrdLine.setCreatedBy(ol.getCreatedBy());
+        objOrdLine.setUpdated(new java.util.Date());
+        objOrdLine.setUpdatedBy(ol.getUpdatedBy());
+        objOrdLine.setSalesOrder(objCloneOrder);
+        objOrdLine.setBusinessPartner(ol.getBusinessPartner());
+        objOrdLine.setPartnerAddress(ol.getPartnerAddress());
+        objOrdLine.setOrderDate(ol.getOrderDate());
+        objOrdLine.setScheduledDeliveryDate(ol.getScheduledDeliveryDate());
+        objOrdLine.setDateDelivered(ol.getDateDelivered());
+        objOrdLine.setInvoiceDate(ol.getInvoiceDate());
+        objOrdLine.setDescription(ol.getDescription());
+        objOrdLine.setProduct(ol.getProduct());
+        objOrdLine.setWarehouse(ol.getWarehouse());
+        objOrdLine.setDirectShipment(ol.isDirectShipment());
+        objOrdLine.setUOM(ol.getUOM());
+        objOrdLine.setOrderedQuantity(ol.getOrderedQuantity());
+        objOrdLine.setReservedQuantity(new BigDecimal("0"));//
+        objOrdLine.setDeliveredQuantity(new BigDecimal("0"));//
+        objOrdLine.setInvoicedQuantity(new BigDecimal("0"));//
+        objOrdLine.setShippingCompany(ol.getShippingCompany());
+        objOrdLine.setCurrency(ol.getCurrency());
+        objOrdLine.setListPrice(bdPriceList);//
+        objOrdLine.setUnitPrice(ol.getUnitPrice());
+        objOrdLine.setPriceLimit(ol.getPriceLimit());
+        objOrdLine.setLineNetAmount(ol.getLineNetAmount());
+        objOrdLine.setDiscount(ol.getDiscount());
+        objOrdLine.setFreightAmount(ol.getFreightAmount());
+        objOrdLine.setCharge(ol.getCharge());
+        objOrdLine.setChargeAmount(ol.getChargeAmount());
+        objOrdLine.setTax(ol.getTax());
+        objOrdLine.setResourceAssignment(ol.getResourceAssignment());
+        objOrdLine.setSOPOReference(ol.getSOPOReference());
+        objOrdLine.setAttributeSetValue(ol.getAttributeSetValue());
+        objOrdLine.setDescriptionOnly(ol.isDescriptionOnly());
+        objOrdLine.setOrderQuantity(ol.getOrderQuantity());
+        objOrdLine.setOrderUOM(ol.getOrderUOM());
+        objOrdLine.setPriceAdjustment(ol.getPriceAdjustment());
+        objOrdLine.setStandardPrice(ol.getStandardPrice());
+        objOrdLine.setCancelPriceAdjustment(ol.isCancelPriceAdjustment());
+        objOrdLine.setOrderDiscount(ol.getOrderDiscount());
+        objOrdLine.setTaxableAmount(ol.getTaxableAmount());
+        objOrdLine.setEditLineAmount(ol.isEditLineAmount());
+        OBDal.getInstance().save(objOrdLine);
+      }
+      OBDal.getInstance().flush();
+      json = jsonConverter.toJsonObject(objCloneOrder, DataResolvingMode.FULL);
+      OBDal.getInstance().commitAndClose();
+      return json;
+    } catch (Exception e) {
+      e.printStackTrace();
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+    return json;
+  }
+
+  /**
+   * @param objOrder
+   * @return
+   * @throws ServletException
+   */
+  private List<OrderLine> getOrderLines(Order objOrder) throws 
ServletException {
+    String whereClause = "salesOrder = :objOrder";
+    OBQuery<OrderLine> qOrderLines = 
OBDal.getInstance().createQuery(OrderLine.class, whereClause);
+    qOrderLines.setNamedParameter("objOrder", objOrder);
+    return qOrderLines.list();
+  }
+
+  private String getPriceListVersion(String priceList, String clientId) {
+    OBContext.setAdminMode();
+    try {
+      String whereClause = " as plv , PricingPriceList pl where pl.id=plv.id 
and plv.active='Y' and "
+          + " pl.id = :priceList and plv.client.id = :clientId order by 
plv.validFromDate desc";
+
+      OBQuery<PriceListVersion> ppriceListVersion = 
OBDal.getInstance().createQuery(
+          PriceListVersion.class, whereClause);
+      ppriceListVersion.setNamedParameter("priceList", priceList);
+      ppriceListVersion.setNamedParameter("clientId", clientId);
+
+      if (!ppriceListVersion.list().isEmpty()) {
+        return ppriceListVersion.list().get(0).getId();
+      } else {
+        return "0";
+      }
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+  }
+
+  private BigDecimal getPriceList(String strProductID, String 
strPriceVersionId) {
+    OBContext.setAdminMode();
+    BigDecimal bdPriceList = null;
+    try {
+      final List<Object> parameters = new ArrayList<Object>();
+      parameters.add(strProductID);
+      parameters.add(strPriceVersionId);
+      final String procedureName = "M_BOM_PriceList";
+      bdPriceList = (BigDecimal) 
CallStoredProcedure.getInstance().call(procedureName, parameters,

------------------------------------------------------------------------------
What Every C/C++ and Fortran developer Should Know!
Read this article and learn how Intel has extended the reach of its 
next-generation tools to help Windows* and Linux* C/C++ and Fortran 
developers boost performance applications - including clusters. 
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to