1 19 package org.openbravo.erpCommon.ad_callouts; 20 21 import org.openbravo.base.secureApp.HttpSecureAppServlet; 22 import org.openbravo.base.secureApp.VariablesSecureApp; 23 import org.openbravo.xmlEngine.XmlDocument; 24 import org.openbravo.utils.FormatUtilities; 25 import org.openbravo.erpCommon.utility.*; 26 import java.io.*; 27 import java.math.BigDecimal ; 28 import javax.servlet.*; 29 import javax.servlet.http.*; 30 31 32 33 public class SL_Order_Conversion extends HttpSecureAppServlet { 34 35 static final BigDecimal ZERO = new BigDecimal (0.0); 36 37 public void init (ServletConfig config) { 38 super.init(config); 39 boolHist = false; 40 } 41 42 43 public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { 44 VariablesSecureApp vars = new VariablesSecureApp(request); 45 if (vars.commandIn("DEFAULT")) { 46 String strChanged = vars.getStringParameter("inpLastFieldChanged"); 47 if (log4j.isDebugEnabled()) log4j.debug("CHANGED: " + strChanged); 48 String strUOM = vars.getStringParameter("inpcUomId"); 49 String strMProductUOMID = vars.getStringParameter("inpmProductUomId"); 50 String strQuantityOrder = vars.getStringParameter("inpquantityorder"); 51 String strTabId = vars.getStringParameter("inpTabId"); 52 53 try { 54 printPage(response, vars, strUOM, strMProductUOMID, strQuantityOrder, strChanged, strTabId); 55 } catch (ServletException ex) { 56 pageErrorCallOut(response); 57 } 58 } else pageError(response); 59 } 60 61 void printPage(HttpServletResponse response, VariablesSecureApp vars, String strUOM, String strMProductUOMID,String strQuantityOrder,String strChanged, String strTabId) throws IOException, ServletException { 62 if (log4j.isDebugEnabled()) log4j.debug("Output: dataSheet"); 63 XmlDocument xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_callouts/CallOut").createXmlDocument(); 64 if (strUOM.startsWith("\"")) strUOM=strUOM.substring(1,strUOM.length()-1); 65 String strPrecision = SLInvoiceConversionData.stdPrecision(this, strUOM); 66 int stdPrecision = strPrecision.equals("")?0:Integer.valueOf(strPrecision).intValue(); 67 String strInitUOM = SLInvoiceConversionData.initUOMId (this, strMProductUOMID); 68 String strMultiplyRate; 69 boolean check = false; 70 strMultiplyRate = SLInvoiceConversionData.multiplyRate (this, strInitUOM, strUOM); 71 if (strInitUOM.equals(strUOM)) strMultiplyRate = "1"; 72 if (strMultiplyRate.equals("")) strMultiplyRate = SLInvoiceConversionData.divideRate (this, strUOM, strInitUOM); 73 if (strMultiplyRate.equals("")) { 74 strMultiplyRate = "1"; 75 if (!strMProductUOMID.equals("")) check = true; 76 } 77 78 79 BigDecimal quantityOrder, qtyOrdered, multiplyRate; 80 81 multiplyRate = new BigDecimal (strMultiplyRate); 82 83 StringBuffer resultado = new StringBuffer (); 84 resultado.append("var calloutName='SL_Order_Conversion';\n\n"); 85 resultado.append("var respuesta = new Array("); 86 if (!strQuantityOrder.equals("")) { 87 quantityOrder = new BigDecimal (strQuantityOrder); 88 qtyOrdered = new BigDecimal (quantityOrder.doubleValue()*multiplyRate.doubleValue()); 89 if (qtyOrdered.scale() > stdPrecision) qtyOrdered = qtyOrdered.setScale(stdPrecision, BigDecimal.ROUND_HALF_UP); 90 resultado.append("new Array(\"inpqtyordered\", " + qtyOrdered.toString() + ")"); 91 } 92 if (check) { 93 if (!strQuantityOrder.equals("")) resultado.append(","); 94 resultado.append("new Array('MESSAGE', \"" + FormatUtilities.replaceJS(Utility.messageBD(this, "NoUOMConversion", vars.getLanguage())) + "\")"); 95 } 96 if (strMProductUOMID.equals("") && !strChanged.equals("inpquantityorder")){ 97 if (!strQuantityOrder.equals("")) resultado.append(","); 98 resultado.append("new Array(\"inpquantityorder\", \"\")"); 99 } 100 if (strQuantityOrder.equals("") && strChanged.equals("inpquantityorder") && !strMProductUOMID.equals("")){ 101 resultado.append("new Array(\"inpmProductUomId\", \"\")"); 102 } 103 resultado.append(");"); 104 xmlDocument.setParameter("array", resultado.toString()); 105 xmlDocument.setParameter("frameName", "frameAplicacion"); 106 response.setContentType("text/html; charset=UTF-8"); 107 PrintWriter out = response.getWriter(); 108 out.println(xmlDocument.print()); 109 out.close(); 110 } 111 } 112 | Popular Tags |