1 17 package org.openbravo.erpCommon.ad_process; 18 19 import org.openbravo.erpCommon.utility.*; 20 import org.openbravo.base.secureApp.VariablesSecureApp; 21 22 import javax.servlet.*; 23 import org.apache.log4j.Logger ; 24 25 import org.openbravo.database.ConnectionProvider; 27 import java.sql.Connection ; 28 29 30 public class ImportProduct extends ImportProcess { 31 static Logger log4j = Logger.getLogger(ImportProduct.class); 32 33 private String m_AD_Process_ID = ""; 34 private String m_Record_ID = ""; 35 private boolean m_deleteOldImported; 36 37 public ImportProduct(ConnectionProvider conn, String AD_Process_ID, boolean deleteOld) { 38 super(conn); 39 m_AD_Process_ID = AD_Process_ID; 40 m_deleteOldImported = deleteOld; 41 } 42 43 protected String getAD_Process_ID() { 44 return m_AD_Process_ID; 45 } 46 47 protected String getRecord_ID() { 48 return "0"; 49 } 50 51 protected void createInstanceParams(VariablesSecureApp vars) throws ServletException { 52 if (log4j.isDebugEnabled()) log4j.debug("Creating parameters"); 53 } 54 55 protected boolean doIt(VariablesSecureApp vars) throws ServletException { 56 int no = 0; 57 ConnectionProvider conn = null; 58 Connection con = null; 59 String strcTaxcategoryId = null; 60 try { 61 conn = getConnection(); 62 con = conn.getTransactionConnection(); 63 if(m_deleteOldImported) { 64 no = ImportProductData.deleteOld(con, conn, getAD_Client_ID()); 65 if (log4j.isDebugEnabled()) log4j.debug("Delete Old Imported = " + no); 66 } 67 no = ImportProductData.updateRecords(con, conn, getAD_Client_ID()); 69 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Reset = " + no); 70 71 no = ImportProductData.updateBPartner(con, conn, getAD_Client_ID()); 73 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct BPartner = " + no); 74 75 no = ImportProductData.updateBPartnerError(con, conn, getAD_Client_ID()); 77 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Invalid BPartner = " + no); 78 79 no = ImportProductData.updateProductByUPC(con, conn, getAD_Client_ID()); 81 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Product Existing UPC = " + no); 82 83 no = ImportProductData.updateProductByValue(con, conn, getAD_Client_ID()); 85 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Product Existing Value = " + no); 86 87 no = ImportProductData.updateProductByVendor(con, conn, getAD_Client_ID()); 89 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Product Existing Vendor ProductNo = " + no); 90 91 String [] strFields = new String [] {"Value", "Name", "Description", "DocumentNote", "Help", "UPC", "SKU", "Classification", "ProductType", "Discontinued", "DiscontinuedBy", "ImageURL", "DescriptionURL"}; 93 for (int i = 0; i < strFields.length; i++){ 94 no = ImportProductData.updateProductField(con, conn, strFields[i], getAD_Client_ID()); 95 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct" + strFields[i] + " Default from existing Product=" + no); 96 } 97 String [] numFields = new String [] {"C_UOM_ID","M_Product_Category_ID","Volume","Weight","ShelfWidth","ShelfHeight","ShelfDepth","UnitsPerPallet"}; 98 for (int i = 0; i < numFields.length; i++){ 99 no = ImportProductData.updateProductNumField(con, conn, numFields[i], getAD_Client_ID()); 100 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct" + numFields[i] + " Default from existing Product=" + no); 101 } 102 103 String [] strFieldsPO = new String [] {"UPC", 105 "PriceEffective","VendorProductNo","VendorCategory","Manufacturer","Discontinued","DiscontinuedBy"}; 106 for (int i = 0; i < strFieldsPO.length; i++){ 107 no = ImportProductData.updateProductFieldPO(con, conn, strFieldsPO[i], getAD_Client_ID()); 108 if (no != 0) 109 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct" + strFieldsPO[i] + " Default from existing Product=" + no); 110 } 111 String [] numFieldsPO = new String [] {"C_UOM_ID","C_Currency_ID","PriceList","PricePO","RoyaltyAmt","Order_Min","Order_Pack","CostPerOrder","DeliveryTime_Promised"}; 112 for (int i = 0; i < numFieldsPO.length; i++){ 113 no = ImportProductData.updateProductNumFieldPO(con, conn, numFieldsPO[i], getAD_Client_ID()); 114 if (no != 0) 115 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct" + numFieldsPO[i] + " Default from existing Product=" + no); 116 } 117 118 no = ImportProductData.updateX12DE355(con, conn, getAD_Client_ID()); 120 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Set UOM Default=" + no); 121 no = ImportProductData.updateProductUOM(con, conn, getAD_Client_ID()); 123 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Set UOM =" + no); 124 no = ImportProductData.updateProductInvalidUOM(con, conn, getAD_Client_ID()); 126 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Invalid UOM =" + no); 127 128 no = ImportProductData.updateProductCategoryDefault(con, conn, getAD_Client_ID()); 130 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Set Product Category Default =" + no); 131 no = ImportProductData.updateProductCategory(con, conn, getAD_Client_ID()); 133 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Set Product Category =" + no); 134 no = ImportProductData.updateInvalidCategory(con, conn, getAD_Client_ID()); 136 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Invalid Product Category =" + no); 137 138 no = ImportProductData.updateCurrencyDefault(con, conn, getAD_Client_ID()); 140 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Set Currency Default =" + no); 141 no = ImportProductData.updateCurrency(con, conn, getAD_Client_ID()); 143 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Set Currency =" + no); 144 no = ImportProductData.updateInvalidCurrency(con, conn, getAD_Client_ID()); 146 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Invalid Currency =" + no); 147 148 no = ImportProductData.updateInvalidProductType(con, conn, getAD_Client_ID()); 150 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Invalid ProductType =" + no); 151 152 no = ImportProductData.updateNotUniqueValue(con, conn, getAD_Client_ID()); 154 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Not Unique Value =" + no); 155 no = ImportProductData.updateNotUniqueUPC(con, conn, getAD_Client_ID()); 157 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Not Unique UPC =" + no); 158 159 no = ImportProductData.updateNoMandatoryValue(con, conn, getAD_Client_ID()); 161 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct No Mandatory Value =" + no); 162 163 no = ImportProductData.updateVendorProductNoSetToValue(con, conn, getAD_Client_ID()); 165 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct VendorProductNo Set to Value =" + no); 166 no = ImportProductData.updateNotUniqueVendorProductNo(con, conn, getAD_Client_ID()); 168 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct Not Unique VendorProductNo =" + no); 169 170 strcTaxcategoryId = ImportProductData.selectTaxCategory(conn, getAD_Client_ID()); 172 if (log4j.isDebugEnabled()) log4j.debug("ImportProduct C_TaxCategory_ID =" + strcTaxcategoryId); 173 174 conn.releaseCommitConnection(con); 175 } catch (Exception se) { 176 try { 177 conn.releaseRollbackConnection(con); 178 } catch (Exception ignored) {} 179 se.printStackTrace(); 180 addLog(Utility.messageBD(conn, "ProcessRunError", vars.getLanguage())); 181 return false; 182 } 183 186 int noInsert = 0; 187 int noUpdate = 0; 188 int noInsertPO = 0; 189 int noUpdatePO = 0; 190 191 try { 192 ImportProductData [] data = ImportProductData.selectRecords(conn, getAD_Client_ID()); 194 for(int i =0;i<data.length;i++){ 195 String I_Product_ID = data[i].iProductId; 196 String M_Product_ID = data[i].mProductId; 197 String C_BPartner_ID = data[i].cBpartnerId; 198 con = conn.getTransactionConnection(); 199 boolean newProduct = M_Product_ID.equals(""); 200 if (newProduct){ M_Product_ID = SequenceIdData.getSequence(conn, "M_Product", vars.getClient()); 203 try { 204 if (log4j.isDebugEnabled()) log4j.debug("before insert"); 205 no = ImportProductData.insertProductImport(con, conn, M_Product_ID, strcTaxcategoryId, I_Product_ID); 206 if (log4j.isDebugEnabled()) log4j.debug("Insert Product = " + no); 207 noInsert++; 208 } 209 catch (ServletException ex){ 210 if (log4j.isDebugEnabled()) log4j.debug("Insert Product - " + ex.toString()); 211 conn.releaseRollbackConnection(con); 212 ImportProductData.insertProductError(conn, ex.toString(), I_Product_ID); 213 continue; 214 } 215 }else { try { 217 no = ImportProductData.updateProductImport(con,conn, I_Product_ID, M_Product_ID); 218 if (log4j.isDebugEnabled()) log4j.debug("Update Product = " + no); 219 noUpdate++; 220 } 221 catch (ServletException ex){ 222 if (log4j.isDebugEnabled()) log4j.debug("Update Product - " + ex.toString()); 223 conn.releaseRollbackConnection(con); 224 ImportProductData.updateProductError(conn, ex.toString(), I_Product_ID); 225 continue; 226 } 227 } 228 if (!C_BPartner_ID.equals("")){ 230 no = 0; 231 if (!newProduct){ 233 try{ 234 no = ImportProductData.updateProductPOImport(con, conn, I_Product_ID, M_Product_ID, C_BPartner_ID); 235 if (log4j.isDebugEnabled()) log4j.debug("Update Product_PO = " + no); 236 noUpdatePO++; 237 } 238 catch (ServletException ex){ 239 if (log4j.isDebugEnabled()) log4j.debug("Update Product_PO - " + ex.toString()); 240 noUpdate--; 241 conn.releaseRollbackConnection(con); 242 ImportProductData.updateProductPOError(conn, ex.toString(), I_Product_ID); 243 continue; 244 } 245 } 246 try{ 247 if (no == 0) { no = ImportProductData.insertProductPOImport(con, conn, M_Product_ID, C_BPartner_ID, I_Product_ID); 249 if (log4j.isDebugEnabled()) log4j.debug("Insert Product_PO = " + no); 250 noInsertPO++; 251 } 252 } catch (ServletException ex) { 253 if (log4j.isDebugEnabled()) log4j.debug("Insert Product_PO - " + ex.toString()); 254 noInsert--; ImportProductData.insertProductPOError(conn, ex.toString(), I_Product_ID); 256 conn.releaseRollbackConnection(con); 257 continue; 258 } 259 } conn.releaseCommitConnection(con); 261 if (log4j.isDebugEnabled()) log4j.debug("before update: " + M_Product_ID + " -- " + I_Product_ID); 263 no = ImportProductData.updateProductSetImportY(conn, M_Product_ID, I_Product_ID); 264 if (log4j.isDebugEnabled()) log4j.debug("after update: " + M_Product_ID + " -- " + I_Product_ID); 265 } } catch (Exception se) { 267 se.printStackTrace(); 268 addLog(Utility.messageBD(conn, "ProcessRunError", vars.getLanguage())); 269 return false; 270 } 271 272 no = ImportProductData.updateNotImported(conn, getAD_Client_ID()); 274 if (log4j.isDebugEnabled()) log4j.debug("Errors = " + no); 275 addLog(Utility.messageBD(conn, "Errors", vars.getLanguage()) + ": " + no + "\\n"); 276 addLog("Product inserted: " + noInsert + "\\n"); 277 addLog("Product updated: " + noUpdate + "\\n"); 278 addLog("ProductPO inserted: " + noInsertPO + "\\n"); 279 addLog("ProductPO updated: " + noUpdatePO); 280 return true; 281 } 282 } 283
| Popular Tags
|