1 14 package org.compiere.process; 15 16 import java.math.*; 17 import java.sql.*; 18 19 import org.compiere.model.*; 20 21 27 public class CopyOrder extends SvrProcess 28 { 29 30 private int p_C_Order_ID = 0; 31 32 private int p_C_DocType_ID = 0; 33 34 private Timestamp p_DateDoc = null; 35 36 private boolean p_IsCloseDocument = false; 37 38 41 protected void prepare() 42 { 43 ProcessInfoParameter[] para = getParameter(); 44 for (int i = 0; i < para.length; i++) 45 { 46 String name = para[i].getParameterName(); 47 if (para[i].getParameter() == null) 48 ; 49 else if (name.equals("C_Order_ID")) 50 p_C_Order_ID = ((BigDecimal)para[i].getParameter()).intValue(); 51 else if (name.equals("C_DocType_ID")) 52 p_C_DocType_ID = ((BigDecimal)para[i].getParameter()).intValue(); 53 else if (name.equals("DateDoc")) 54 p_DateDoc = (Timestamp)para[i].getParameter(); 55 else if (name.equals("IsCloseDocument")) 56 p_IsCloseDocument = "Y".equals(para[i].getParameter()); 57 else 58 log.error("prepare - Unknown Parameter: " + name); 59 } 60 } 62 67 protected String doIt() throws Exception  68 { 69 log.info("doIt - C_Order_ID=" + p_C_Order_ID + ", C_DocType_ID=" + p_C_DocType_ID + ", CloseDocument" + p_IsCloseDocument); 70 if (p_C_Order_ID == 0) 71 throw new IllegalArgumentException ("No Order"); 72 if (p_C_DocType_ID == 0) 73 throw new IllegalArgumentException ("No DocType"); 74 if (p_DateDoc == null) 75 p_DateDoc = new Timestamp (System.currentTimeMillis()); 76 MOrder newOrder = MOrder.copyFrom(getCtx(), p_C_Order_ID, p_DateDoc); 78 newOrder.setC_DocTypeTarget_ID(p_C_DocType_ID); 79 boolean OK = newOrder.save(); 80 if (!OK) 81 throw new IllegalStateException ("Could not create new Order"); 82 if (p_IsCloseDocument) 84 { 85 MOrder original = new MOrder (getCtx(), p_C_Order_ID); 86 original.process(MOrder.DOCACTION_Complete); 87 original.save(); 88 } 89 return "@C_Order_ID@ " + newOrder.getDocumentNo(); 91 } 93 } | Popular Tags |