Пример #1
0
        public String PrepareIt()
        {
            MDocType dt = MDocType.Get(GetCtx(), GetC_DocType_ID());

            if (!MPeriod.IsOpen(GetCtx(), GetDateAcct(), dt.GetDocBaseType()))
            {
                _processMsg = "@PeriodClosed@";
                return(DocActionVariables.STATUS_INVALID);
            }

            // is Non Business Day?
            if (MNonBusinessDay.IsNonBusinessDay(GetCtx(), GetDateAcct()))
            {
                _processMsg = VAdvantage.Common.Common.NONBUSINESSDAY;
                return(DocActionVariables.STATUS_INVALID);
            }
            if (IsVA027_MultiCheque())
            {
                if (Util.GetValueOfInt(DB.ExecuteScalar("Select Count(*) From VA027_ChequeDetails Where VA027_PostDatedCheck_ID=" + GetVA027_PostDatedCheck_ID(), null, Get_Trx())) <= 0)
                {
                    _processMsg = "@NoLinesFound@";
                    return(DocActionVariables.STATUS_INVALID);
                }
            }

            return(DocActionVariables.STATUS_INPROGRESS);
        }
Пример #2
0
        public bool ReverseCorrectIt()
        {
            try
            {
                MDocType dt = MDocType.Get(GetCtx(), GetC_DocType_ID());
                if (!MPeriod.IsOpen(GetCtx(), GetDateAcct(), dt.GetDocBaseType()))
                {
                    _processMsg = "@PeriodClosed@";
                    return(false);
                }

                // is Non Business Day?
                if (MNonBusinessDay.IsNonBusinessDay(GetCtx(), GetDateAcct()))
                {
                    _processMsg = VAdvantage.Common.Common.NONBUSINESSDAY;
                    return(false);
                }
                //commented by arpit
                //if (!IsVA027_PaymentGenerated())
                //{
                //    _processMsg = "Payment Not Generated Yet";
                //    Get_Trx().Rollback();
                //    return false;
                //}
                //end here
                if (GetC_Payment_ID() > 0)
                {
                    MPayment pay = new MPayment(GetCtx(), GetC_Payment_ID(), Get_Trx());
                    if (pay.GetDocStatus() != "RE" && pay.GetDocStatus() != "VO")
                    {
                        _processMsg = Msg.GetMsg(GetCtx(), "VA027_PaymentNotVoid");
                        Get_Trx().Rollback();
                        return(false);
                    }
                }
                MVA027PostDatedCheck reversal = new MVA027PostDatedCheck(GetCtx(), 0, Get_Trx());
                CopyValues(this, reversal);
                reversal.SetClientOrg(this);
                reversal.SetVA027_PayAmt(Decimal.Negate(reversal.GetVA027_PayAmt()));
                reversal.SetDocumentNo(GetDocumentNo() + REVERSE_INDICATOR);
                if (!string.IsNullOrEmpty(GetVA027_CheckNo()))
                {
                    reversal.SetVA027_CheckNo(GetVA027_CheckNo() + REVERSE_INDICATOR);
                }
                reversal.SetDocStatus(DOCSTATUS_Drafted);
                reversal.SetDocAction(DOCACTION_Complete);
                reversal.SetProcessed(false);
                reversal.SetProcessing(false);
                reversal.SetPosted(false);
                reversal.SetVA027_Description(GetVA027_Description());
                reversal.AddDescription("{->" + GetDocumentNo() + ")");
                if (reversal.Save(Get_Trx()))
                {
                    DataSet ds = new DataSet();
                    ds = DB.ExecuteDataset("Select * from VA027_CHEQUEDETAILS Where VA027_PostDatedCheck_ID=" + GetVA027_PostDatedCheck_ID(), null, Get_Trx());
                    if (ds != null && ds.Tables[0].Rows.Count > 0)
                    {
                        for (Int32 i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            MVA027ChequeDetails original = new MVA027ChequeDetails(GetCtx(), Util.GetValueOfInt(ds.Tables[0].Rows[i]["VA027_CHEQUEDETAILS_ID"]), Get_Trx());
                            MVA027ChequeDetails cd       = new MVA027ChequeDetails(GetCtx(), 0, Get_Trx());
                            if (original.GetC_Payment_ID() > 0)
                            {
                                MPayment payment = new MPayment(GetCtx(), original.GetC_Payment_ID(), Get_Trx());
                                if (payment.GetDocStatus() != "RE" && payment.GetDocStatus() != "VO")
                                {
                                    _processMsg = Msg.GetMsg(GetCtx(), "VA027_PaymentNotVoid");
                                    Get_Trx().Rollback();
                                    return(false);
                                }
                            }
                            cd.SetAD_Client_ID(original.GetAD_Client_ID());
                            cd.SetAD_Org_ID(original.GetAD_Org_ID());
                            cd.SetVA027_AccountName(original.GetVA027_AccountName());
                            cd.SetLineNo(original.GetLineNo());
                            cd.SetVA027_PostDatedCheck_ID(reversal.GetVA027_PostDatedCheck_ID());
                            cd.SetVA027_AccountNo(original.GetVA027_AccountNo());
                            cd.SetVA027_CheckDate(original.GetVA027_CheckDate());
                            cd.SetVA027_CheckNo(original.GetVA027_CheckNo() + REVERSE_INDICATOR);
                            cd.SetVA027_ChequeAmount(Decimal.Negate(original.GetVA027_ChequeAmount()));
                            cd.SetVA027_MICR(original.GetVA027_MICR());
                            cd.SetVA027_PaymentStatus("3");
                            cd.SetVA027_ValidMonth(original.GetVA027_ValidMonth());
                            cd.SetProcessed(true);
                            cd.Save(Get_Trx());
                        }
                    }
                }

                if (!reversal.ProcessIt(DocActionVariables.ACTION_COMPLETE))
                {
                    _processMsg = "Reversal ERROR: " + reversal.GetProcessMsg();
                    return(false);
                }
                reversal.CloseIt();
                _processMsg = reversal.GetDocumentNo();
                reversal.SetVA027_PaymentStatus("3");
                reversal.SetDocStatus(DOCSTATUS_Reversed);
                reversal.SetDocAction(DOCACTION_None);
                reversal.Save(Get_Trx());

                this.AddDescription("(" + GetDocumentNo() + "<-)");

                SetDocStatus(DOCSTATUS_Reversed);
                SetDocAction(DOCACTION_None);
                SetProcessed(true);
            }
            catch (Exception ex)
            {
                log.Severe(ex.ToString());
                log.Severe("Error in Reverse.");
            }

            return(true);
        }