/**** * Before Save. * - Set Name * @param newRecord new * @return save */ protected override bool BeforeSave(bool newRecord) { if (GetC_Location_ID() == 0) { return(false); } // change by amit // Set New Name //if (!newRecord) // return true; if (Util.GetValueOfString(Get_ValueOld("Name")) == GetName() && Util.GetValueOfInt(Get_ValueOld("C_Location_ID")) == GetC_Location_ID()) { return(true); } MLocation address = GetLocation(true); _uniqueName = GetName(); //if (_uniqueName != null && _uniqueName.Equals(".")) // default change by amit _uniqueName = null; _unique = 0; // Changes Done By Vivek on 10/12/2015 //Set City Name at Name Field if (GetName() == ".") { MakeUnique(address); } //else Set Manually Edited Name by User at name field else { SetName(GetName()); return(true); } //if (Util.GetValueOfString(Get_ValueOld("Name")) != GetName()) //{ // _uniqueName = GetName(); // SetName(_uniqueName); // return true; //} //MakeUnique(address); // Check uniqueness MBPartnerLocation[] locations = GetForBPartner(GetCtx(), GetC_BPartner_ID(), Get_TrxName()); bool unique = locations.Length == 0; while (!unique) { unique = true; for (int i = 0; i < locations.Length; i++) { MBPartnerLocation location = locations[i]; if (location.GetC_BPartner_Location_ID() == Get_ID()) { continue; } if (_uniqueName.Equals(location.GetName())) { MakeUnique(address); unique = false; break; } } } SetName(_uniqueName); return(true); }
/** * Make name Unique * @param address address */ private void MakeUnique(MLocation address) { // _uniqueName = address.toString(); // return; if (_uniqueName == null) { _uniqueName = ""; } _unique++; // 0 - City if (_uniqueName.Length == 0) { String xx = address.GetCity(); if (xx != null && xx.Length > 0) { _uniqueName = xx; } _unique = 0; } // 1 + Address1 if (_unique == 1 || _uniqueName.Length == 0) { String xx = address.GetAddress1(); if (xx != null && xx.Length > 0) { if (_uniqueName.Length > 0) { _uniqueName += " "; } _uniqueName += xx; } _unique = 1; } // 2 + Address2 if (_unique == 2 || _uniqueName.Length == 0) { String xx = address.GetAddress2(); if (xx != null && xx.Length > 0) { if (_uniqueName.Length > 0) { _uniqueName += " "; } _uniqueName += xx; } _unique = 2; } // 3 - Region if (_unique == 3 || _uniqueName.Length == 0) { String xx = address.GetRegionName(true); { if (_uniqueName.Length > 0) { _uniqueName += " "; } _uniqueName += xx; } _unique = 3; } // 4 - ID if (_unique == 4 || _uniqueName.Length == 0) { int id = Get_ID(); if (id == 0) { id = address.Get_ID(); } _uniqueName += "#" + id; _unique = 4; } }
/// <summary> /// Get Tax ID (Detail). /// If error return 0 and set error log (TaxNotFound) /// </summary> /// <param name="ctx">context</param> /// <param name="C_TaxCategory_ID">tax category</param> /// <param name="IsSOTrx">Sales Order Trx</param> /// <param name="shipDate">ship date (ignored)</param> /// <param name="shipFromC_Locction_ID">ship from (ignored)</param> /// <param name="shipToC_Location_ID">ship to (ignored)</param> /// <param name="billDate">invoice date</param> /// <param name="billFromC_Location_ID">invoice from</param> /// <param name="billToC_Location_ID">invoice to</param> /// <returns>C_Tax_ID</returns> protected static int Get(Ctx ctx, int C_TaxCategory_ID, bool IsSOTrx, DateTime?shipDate, int shipFromC_Locction_ID, int shipToC_Location_ID, DateTime?billDate, int billFromC_Location_ID, int billToC_Location_ID) { // C_TaxCategory contains CommodityCode // API to Tax Vendor comes here //if (CLogMgt.IsLevelFinest()) { log.Info("(Detail) - Category=" + C_TaxCategory_ID + ", SOTrx=" + IsSOTrx); log.Config("(Detail) - BillFrom=" + billFromC_Location_ID + ", BillTo=" + billToC_Location_ID + ", BillDate=" + billDate); } MTax[] taxes = MTax.GetAll(ctx); MLocation lFrom = new MLocation(ctx, billFromC_Location_ID, null); MLocation lTo = new MLocation(ctx, billToC_Location_ID, null); log.Finer("From=" + lFrom); log.Finer("To=" + lTo); List <MTax> results = new List <MTax>(); for (int i = 0; i < taxes.Length; i++) { MTax tax = taxes[i]; if (tax.IsTaxExempt() || !tax.IsActive() || tax.GetC_TaxCategory_ID() != C_TaxCategory_ID || tax.GetParent_Tax_ID() != 0) // user parent tax { continue; } if (IsSOTrx && MTax.SOPOTYPE_PurchaseTax.Equals(tax.GetSOPOType())) { continue; } if (!IsSOTrx && MTax.SOPOTYPE_SalesTax.Equals(tax.GetSOPOType())) { continue; } // if (CLogMgt.IsLevelFinest()) { log.Finest(tax.ToString()); log.Finest("From Country - " + (tax.GetC_Country_ID() == lFrom.GetC_Country_ID() || tax.GetC_Country_ID() == 0)); log.Finest("From Region - " + (tax.GetC_Region_ID() == lFrom.GetC_Region_ID() || tax.GetC_Region_ID() == 0)); log.Finest("To Country - " + (tax.GetTo_Country_ID() == lTo.GetC_Country_ID() || tax.GetTo_Country_ID() == 0)); log.Finest("To Region - " + (tax.GetTo_Region_ID() == lTo.GetC_Region_ID() || tax.GetTo_Region_ID() == 0)); //log.Finest("Date valid - " + (!tax.GetValidFrom().after(billDate))); log.Finest("Date valid - " + (!(tax.GetValidFrom() > (billDate)))); } // From Country if ((tax.GetC_Country_ID() == lFrom.GetC_Country_ID() || tax.GetC_Country_ID() == 0) // From Region && (tax.GetC_Region_ID() == lFrom.GetC_Region_ID() || tax.GetC_Region_ID() == 0) // To Country && (tax.GetTo_Country_ID() == lTo.GetC_Country_ID() || tax.GetTo_Country_ID() == 0) // To Region && (tax.GetTo_Region_ID() == lTo.GetC_Region_ID() || tax.GetTo_Region_ID() == 0) // Date //&& !tax.GetValidFrom().after(billDate) && tax.GetValidFrom() > (billDate) ) { if (!tax.IsPostal()) { results.Add(tax); continue; } // MTaxPostal[] postals = tax.GetPostals(false); for (int j = 0; j < postals.Length; j++) { MTaxPostal postal = postals[j]; if (postal.IsActive() // Postal From is mandatory && postal.GetPostal().StartsWith(lFrom.GetPostal()) // Postal To is optional && (postal.GetPostal_To() == null || postal.GetPostal_To().StartsWith(lTo.GetPostal())) ) { results.Add(tax); continue; } } // for all postals } } // for all taxes // One Result if (results.Count == 1) { return(results[0].GetC_Tax_ID()); } // Multiple results - different valid from dates if (results.Count > 1) { MTax latest = null; for (int i = 0; i < results.Count; i++) { MTax tax = results[i]; if (latest == null //|| tax.GetValidFrom().after(latest.GetValidFrom())) || tax.GetValidFrom() > (latest.GetValidFrom())) { latest = tax; } } return(latest.GetC_Tax_ID()); } // Default Tax for (int i = 0; i < taxes.Length; i++) { MTax tax = taxes[i]; if (!tax.IsDefault() || !tax.IsActive() || tax.GetParent_Tax_ID() != 0) // user parent tax { continue; } if (IsSOTrx && MTax.SOPOTYPE_PurchaseTax.Equals(tax.GetSOPOType())) { continue; } if (!IsSOTrx && MTax.SOPOTYPE_SalesTax.Equals(tax.GetSOPOType())) { continue; } log.Fine("(default) - " + tax); return(tax.GetC_Tax_ID()); } // for all taxes log.SaveError("TaxNotFound", ""); return(0); }