diff --git a/base/src/org/compiere/model/MYear.java b/base/src/org/compiere/model/MYear.java index a42cb07d4b..3e52319947 100644 --- a/base/src/org/compiere/model/MYear.java +++ b/base/src/org/compiere/model/MYear.java @@ -1,5 +1,5 @@ /****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * + * Product: Adempiere ERP & CRM Smart Business Solution * * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * * under the terms version 2 of the GNU General Public License as published * @@ -26,11 +26,11 @@ import java.util.Properties; import java.util.StringTokenizer; import java.util.logging.Level; +import org.adempiere.exceptions.FillMandatoryException; import org.compiere.process.DocumentTypeVerify; import org.compiere.process.SvrProcess; import org.compiere.util.Env; import org.compiere.util.Language; -import org.compiere.util.Msg; /** @@ -38,9 +38,17 @@ import org.compiere.util.Msg; * * @author Jorg Janke * @version $Id: MYear.java,v 1.5 2006/10/11 04:12:39 jjanke Exp $ + * + * @author Teo Sarca, www.arhipac.ro + *
  • BF [ 1761918 ] Error creating periods for a year with per. created partial + *
  • BF [ 2430755 ] Year Create Periods display proper error message */ public class MYear extends X_C_Year { + /** + * + */ + private static final long serialVersionUID = 2110541427179611810L; /** * Standard Constructor @@ -152,19 +160,13 @@ public class MYear extends X_C_Year } // toString - /** - * Before Save - * @param newRecord new - * @return true if can be saved - */ + @Override protected boolean beforeSave (boolean newRecord) { int yy = getYearAsInt(); if (yy == 0) { - log.saveError("FillMandatory", Msg.getElement(getCtx(), "Year") - + " -> " + yy + " (2006 - 2006/07 - 2006-07 - ...)"); - return false; + throw new FillMandatoryException(COLUMNNAME_FiscalYear); } return true; } // beforeSave @@ -176,7 +178,7 @@ public class MYear extends X_C_Year * @param locale locale * @return true if created */ - public boolean createStdPeriods(Locale locale) + public void createStdPeriods(Locale locale) { if (locale == null) { @@ -222,11 +224,21 @@ public class MYear extends X_C_Year cal.add(Calendar.DAY_OF_YEAR, -1); Timestamp end = new Timestamp(cal.getTimeInMillis()); // - MPeriod period = new MPeriod (this, month+1, name, start, end); - if (!period.save(get_TrxName())) // Creates Period Control - return false; + MPeriod period = MPeriod.get(getCtx(), start, getAD_Org_ID()); + if (period == null) + { + period = new MPeriod (this, month+1, name, start, end); + } + else + { + period.setC_Year_ID(this.getC_Year_ID()); + period.setPeriodNo(month+1); + period.setName(name); + period.setStartDate(start); + period.setEndDate(end); + } + period.saveEx(get_TrxName()); // Creates Period Control } - return true; } // createStdPeriods } // MYear diff --git a/base/src/org/compiere/process/YearCreatePeriods.java b/base/src/org/compiere/process/YearCreatePeriods.java index 0e9ffa9981..018afa8201 100644 --- a/base/src/org/compiere/process/YearCreatePeriods.java +++ b/base/src/org/compiere/process/YearCreatePeriods.java @@ -50,9 +50,8 @@ public class YearCreatePeriods extends SvrProcess throw new AdempiereUserError ("@NotFound@: @C_Year_ID@ - " + p_C_Year_ID); log.info(year.toString()); // - if (year.createStdPeriods(null)) - return "@OK@"; - return "@Error@"; + year.createStdPeriods(null); + return "@OK@"; } // doIt } // YearCreatePeriods