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_Movement_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, 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 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 int stdPrecision = Integer.valueOf(SLInvoiceConversionData.stdPrecision(this, strUOM)).intValue(); 66 String strInitUOM = SLInvoiceConversionData.initUOMId (this, strMProductUOMID); 67 String strMultiplyRate; 68 boolean check = false; 69 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_Movement_Conversion';\n\n"); 85 if (strMultiplyRate.equals("0")) { 86 resultado.append("var respuesta = null"); 87 } else { 88 resultado.append("var respuesta = new Array("); 89 if (!strQuantityOrder.equals("")) { 90 quantityOrder = new BigDecimal (strQuantityOrder); 91 qtyOrdered = new BigDecimal (quantityOrder.doubleValue()*multiplyRate.doubleValue()); 92 if (qtyOrdered.scale() > stdPrecision) qtyOrdered = qtyOrdered.setScale(stdPrecision, BigDecimal.ROUND_HALF_UP); 93 resultado.append("new Array(\"inpmovementqty\", " + qtyOrdered.toString() + ")"); 94 } 95 96 if (check) { 97 if (!strQuantityOrder.equals("")) resultado.append(","); 98 resultado.append("new Array('MESSAGE', \"" + FormatUtilities.replaceJS(Utility.messageBD(this, "NoUOMConversion", vars.getLanguage())) + "\")"); 99 } 100 resultado.append(");"); 101 } 102 xmlDocument.setParameter("array", resultado.toString()); 103 xmlDocument.setParameter("frameName", "frameAplicacion"); 104 response.setContentType("text/html; charset=UTF-8"); 105 PrintWriter out = response.getWriter(); 106 out.println(xmlDocument.print()); 107 out.close(); 108 } 109 } 110 | Popular Tags |