private bool OpenPeriod(MPeriod period, Trx trx)
        {
            if (period.Get_ID() == 0)
            {
                return(false);
            }
            //throw new Exception("@NotFound@  @C_Period_ID@=" + _C_Period_ID);
            StringBuilder sql = new StringBuilder();

            sql = new StringBuilder("UPDATE C_PeriodControl ");
            sql.Append("SET PeriodStatus='");
            //	Open
            sql.Append(MPeriodControl.PERIODSTATUS_Open);

            sql.Append("', PeriodAction='N', Updated=SysDate,UpdatedBy=").Append(GetAD_User_ID());
            //	WHERE
            sql.Append(" WHERE C_Period_ID=").Append(period.GetC_Period_ID());

            int no = DB.ExecuteQuery(sql.ToString(), null, trx);

            if (no == -1)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Beispiel #2
0
        /**
         *  Process
         *	@return message
         *	@throws Exception
         */
        protected override String DoIt()
        {
            //log.info("C_Period_ID=" + _C_Period_ID + ", PeriodAction=" + _PeriodAction);
            MPeriod period = new MPeriod(GetCtx(), _C_Period_ID, Get_TrxName());

            if (period.Get_ID() == 0)
            {
                throw new Exception("@NotFound@  @C_Period_ID@=" + _C_Period_ID);
            }

            StringBuilder sql = new StringBuilder("UPDATE C_PeriodControl ");

            sql.Append("SET PeriodStatus='");
            //	Open
            if (MPeriodControl.PERIODACTION_OpenPeriod.Equals(_PeriodAction))
            {
                sql.Append(MPeriodControl.PERIODSTATUS_Open);
            }
            //	Close
            else if (MPeriodControl.PERIODACTION_ClosePeriod.Equals(_PeriodAction))
            {
                sql.Append(MPeriodControl.PERIODSTATUS_Closed);
            }
            //	Close Permanently
            else if (MPeriodControl.PERIODACTION_PermanentlyClosePeriod.Equals(_PeriodAction))
            {
                sql.Append(MPeriodControl.PERIODSTATUS_PermanentlyClosed);
            }
            else
            {
                return("-");
            }
            //
            sql.Append("', PeriodAction='N', Updated=SysDate,UpdatedBy=").Append(GetAD_User_ID());
            //	WHERE
            sql.Append(" WHERE C_Period_ID=").Append(period.GetC_Period_ID())
            .Append(" AND PeriodStatus<>'P'")
            .Append(" AND PeriodStatus<>'").Append(_PeriodAction).Append("'");

            // if organization is selected then update period control of selected organizations
            if (!String.IsNullOrEmpty(_AD_Org_ID))
            {
                sql.Append(" AND AD_Org_ID IN (" + _AD_Org_ID + ")");
            }

            // if Document BaseType is selected then update period control for selected Document BaseType
            if (!String.IsNullOrEmpty(_docBaseType))
            {
                sql.Append(" AND DocBaseType IN (SELECT DocBaseType FROM C_DocBaseType WHERE C_DocBaseType_ID IN (" + _docBaseType + "))");
            }

            int no = DataBase.DB.ExecuteQuery(sql.ToString(), null, Get_TrxName());

            // Lokesh Chauhan 17-Dec-2013

            /* Change For setting date From in Balance Aggregation window
             * For Fact Account Balance updation */
            if (no >= 0)
            {
                if (MPeriodControl.PERIODACTION_ClosePeriod.Equals(_PeriodAction))
                {
                    try
                    {
                        string  sqlSchID = "SELECT C_AcctSchema_ID FROM C_AcctSchema WHERE IsActive = 'Y' AND AD_Client_ID = " + GetCtx().GetAD_Client_ID();
                        DataSet ds       = DB.ExecuteDataset(sqlSchID);

                        if (ds != null)
                        {
                            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                            {
                                int    C_AcctSchema_ID = Util.GetValueOfInt(ds.Tables[0].Rows[i]["C_AcctSchema_ID"]);
                                string sqlUpd          = "UPDATE Fact_Accumulation SET DateFrom = " + DB.TO_DATE(period.GetStartDate().Value.AddDays(-1)) + " WHERE IsActive = 'Y' AND AD_Client_ID = " + GetCtx().GetAD_Client_ID();
                                no = DB.ExecuteQuery(sqlUpd, null, Get_TrxName());
                                if (Get_Trx().Commit())
                                {
                                    VAdvantage.Report.FinBalance.UpdateBalance(GetCtx(), C_AcctSchema_ID, period.GetStartDate().Value.AddDays(-1), Get_TrxName(), 0, this);
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                }
            }

            CacheMgt.Get().Reset("C_PeriodControl", 0);
            CacheMgt.Get().Reset("C_Period", _C_Period_ID);
            return("@Period Updated@ #" + no);
        }