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_InOut_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 public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { 43 VariablesSecureApp vars = new VariablesSecureApp(request); 44 if (vars.commandIn("DEFAULT")) { 45 String strChanged = vars.getStringParameter("inpLastFieldChanged"); 46 if (log4j.isDebugEnabled()) log4j.debug("CHANGED: " + strChanged); 47 String strUOM = vars.getStringParameter("inpcUomId"); 48 String strMProductUOMID = vars.getStringParameter("inpmProductUomId"); 49 String strQuantityOrder = vars.getStringParameter("inpquantityorder"); 50 String strTabId = vars.getStringParameter("inpTabId"); 51 52 try { 53 printPage(response, vars, strUOM, strMProductUOMID, strQuantityOrder, strTabId); 54 } catch (ServletException ex) { 55 pageErrorCallOut(response); 56 } 57 } else pageError(response); 58 } 59 60 void printPage(HttpServletResponse response, VariablesSecureApp vars, String strUOM, String strMProductUOMID,String strQuantityOrder, String strTabId) throws IOException, ServletException { 61 if (log4j.isDebugEnabled()) log4j.debug("Output: dataSheet"); 62 XmlDocument xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_callouts/CallOut").createXmlDocument(); 63 if (strUOM.startsWith("\"")) strUOM=strUOM.substring(1,strUOM.length()-1); 64 int stdPrecision = Integer.valueOf(SLInvoiceConversionData.stdPrecision(this, strUOM)).intValue(); 65 String strInitUOM = SLInvoiceConversionData.initUOMId (this, strMProductUOMID); 66 String strMultiplyRate; 67 boolean check = false; 68 69 strMultiplyRate = SLInvoiceConversionData.multiplyRate (this, strInitUOM, strUOM); 70 if (strInitUOM.equals(strUOM)) strMultiplyRate = "1"; 71 if (strMultiplyRate.equals("")) strMultiplyRate = SLInvoiceConversionData.divideRate (this, strUOM, strInitUOM); 72 if (strMultiplyRate.equals("")) { 73 strMultiplyRate = "1"; 74 if (!strMProductUOMID.equals("")) check = true; 75 } 76 77 BigDecimal quantityOrder, movementQty, multiplyRate; 78 79 multiplyRate = new BigDecimal (strMultiplyRate); 80 81 StringBuffer resultado = new StringBuffer (); 82 resultado.append("var calloutName='SL_InOut_Conversion';\n\n"); 83 if (strMultiplyRate.equals("0")) { 84 resultado.append("var respuesta = null"); 85 } else { 86 resultado.append("var respuesta = new Array("); 87 if (!strQuantityOrder.equals("")) { 88 quantityOrder = new BigDecimal (strQuantityOrder); 89 movementQty = new BigDecimal (quantityOrder.doubleValue()*multiplyRate.doubleValue()); 90 if (movementQty.scale() > stdPrecision) movementQty = movementQty.setScale(stdPrecision, BigDecimal.ROUND_HALF_UP); 91 resultado.append("new Array(\"inpmovementqty\", " + movementQty.toString() + ")"); 92 } 93 if (check) { 94 if (!strQuantityOrder.equals("")) resultado.append(","); 95 resultado.append("new Array('MESSAGE', \"" + FormatUtilities.replaceJS(Utility.messageBD(this, "NoUOMConversion", vars.getLanguage())) + "\")"); 96 } 97 resultado.append(");"); 98 } 99 xmlDocument.setParameter("array", resultado.toString()); 100 xmlDocument.setParameter("frameName", "frameAplicacion"); 101 response.setContentType("text/html; charset=UTF-8"); 102 PrintWriter out = response.getWriter(); 103 out.println(xmlDocument.print()); 104 out.close(); 105 } 106 } 107 | Popular Tags |