} // invalidateIt /// <summary> /// Prepare Document /// </summary> /// <returns>new status (In Progress or Invalid) </returns> public String PrepareIt() { log.Info(ToString()); m_processMsg = ModelValidationEngine.Get().FireDocValidate(this, ModalValidatorVariables.DOCTIMING_BEFORE_PREPARE); if (m_processMsg != null) { return(DocActionVariables.STATUS_INVALID); } MDocType dt = MDocType.Get(GetCtx(), GetC_DocType_ID()); // Std Period open? if (!MPeriod.IsOpen(GetCtx(), GetDateAcct(), dt.GetDocBaseType())) { m_processMsg = "@PeriodClosed@"; return(DocActionVariables.STATUS_INVALID); } // is Non Business Day? if (MNonBusinessDay.IsNonBusinessDay(GetCtx(), GetDateAcct())) { m_processMsg = Common.Common.NONBUSINESSDAY; return(DocActionVariables.STATUS_INVALID); } // Add up Amounts & prepare them MJournal[] journals = GetJournals(false); if (journals.Length == 0) { m_processMsg = "@NoLines@"; return(DocActionVariables.STATUS_INVALID); } Decimal TotalDr = Env.ZERO; Decimal TotalCr = Env.ZERO; for (int i = 0; i < journals.Length; i++) { MJournal journal = journals[i]; if (!journal.IsActive()) { continue; } // Prepare if not closed if (DOCSTATUS_Closed.Equals(journal.GetDocStatus()) || DOCSTATUS_Voided.Equals(journal.GetDocStatus()) || DOCSTATUS_Reversed.Equals(journal.GetDocStatus()) || DOCSTATUS_Completed.Equals(journal.GetDocStatus())) { ; } else { String status = journal.PrepareIt(); if (!DocActionVariables.STATUS_INPROGRESS.Equals(status)) { journal.SetDocStatus(status); journal.Save(); m_processMsg = journal.GetProcessMsg(); return(status); } journal.SetDocStatus(DOCSTATUS_InProgress); journal.Save(); } // //TotalDr = TotalDr.add(journal.getTotalDr()); TotalDr = Decimal.Add(TotalDr, journal.GetTotalDr()); TotalCr = Decimal.Add(TotalCr, journal.GetTotalCr()); } SetTotalDr(TotalDr); SetTotalCr(TotalCr); // Control Amount if (Env.ZERO.CompareTo(GetControlAmt()) != 0 && GetControlAmt().CompareTo(GetTotalDr()) != 0) { m_processMsg = "@ControlAmtError@"; return(DocActionVariables.STATUS_INVALID); } // Add up Amounts m_justPrepared = true; return(DocActionVariables.STATUS_INPROGRESS); } // prepareIt