public static VerifyExchangeErrorCode ChangeExchangeStatus(long hid, ExchangeVoucherStatus status, bool overWrite) { var eh = DC.ExchangePartHeaders.SingleOrDefault(h => h.ExchangePartHeaderId == hid); if (eh != null) { if (!overWrite && eh.Status != (int)ExchangeVoucherStatus.Sent) return VerifyExchangeErrorCode.OK; //var res = VDMS.I.ObjectDataSource.ExchangeVoucherHeaderDataSource.ChangeExchangeVoucherStatus(eh.VoucherNumber, status); var res = VDMS.I.ObjectDataSource.ExchangeVoucherHeaderDataSource.ChangeExchangeVoucherStatusD(eh, status); return res; } else return VerifyExchangeErrorCode.ExchangePartHeaderNotFound; }
// overWrite == false : donot over Write status if it verified private void BatchVerify(bool allPage, ExchangeVoucherStatus status) { int max = (allPage) ? int.MaxValue : pageSize, start = (allPage) ? 0 : (pageIndex - 1) * pageSize; ExchangeVoucherHeaderDataSource ds = InitDataSource(); ArrayList list = ds.Select(max, start).Items; foreach (ExchangeListHeader item in list) { if ((item.Status == (int)ExchangeVoucherStatus.Sent) || ALLOW_OVERWRITE_BATCHVERIFY) AddError(ExchangeVoucherHeaderDataSource.ChangeExchangeVoucherStatus(item.ExchangeVoucherNumber, status)); } }
// overWrite == false : donot over Write status if it verified private void BatchVerify(bool overWrite, ExchangeVoucherStatus status) { bool hasErr = false; using (var tran = new VDMS.Data.DAL.NHibernateDAL.TransactionBlock()) { for (int i = 0; i < lvEv.Items.Count; i++) { var res = ExchangeVoucherBO.ChangeExchangeStatus((long)lvEv.DataKeys[i].Value, status, overWrite); if (res != VerifyExchangeErrorCode.OK) { AddError(res); hasErr = true; break; } } // need rollback ???? if (!hasErr) ExchangeVoucherBO.DC.SubmitChanges(); //if (!hasErr) Response.Redirect(Request.Url.ToString(), true); } }
public static VerifyExchangeErrorCode ChangeExchangeStatus(long hid, ExchangeVoucherStatus status) { return ChangeExchangeStatus(hid, status, true); }
public static VerifyExchangeErrorCode CanVerifyExchangePartHeaderD(VDMS.I.Entity.ExchangePartHeader exch, ExchangeVoucherStatus status) { VerifyExchangeErrorCode result = VerifyExchangeErrorCode.OK; switch (status) { case ExchangeVoucherStatus.Reject: result = VerifyExchangeErrorCode.CommentIsBlank; // chang may khong co part nao coi nhu ko dc verify IList<VDMS.I.Entity.ExchangePartDetail> items = exch.ExchangePartDetails.ToList(); foreach (VDMS.I.Entity.ExchangePartDetail item in items) { if (!string.IsNullOrEmpty(item.VMEPComment)) { result = VerifyExchangeErrorCode.OK; break; } } break; default: break; } return result; }
public static VerifyExchangeErrorCode CanVerifyExchangePartHeader(Exchangepartheader exch, ExchangeVoucherStatus status) { VerifyExchangeErrorCode result = VerifyExchangeErrorCode.OK; switch (status) { case ExchangeVoucherStatus.Reject: result = VerifyExchangeErrorCode.CommentIsBlank; // chang may khong co part nao coi nhu ko dc verify IList<Exchangepartdetail> items = ExchangePartDetailDataSource.GetByExchangeHeader(exch.Id); foreach (Exchangepartdetail item in items) { if (!string.IsNullOrEmpty(item.Vmepcomment)) { result = VerifyExchangeErrorCode.OK; break; } } break; default: break; } return result; }
public static VerifyExchangeErrorCode ChangeExchangeVoucherStatusD(VDMS.I.Entity.ExchangePartHeader exch, ExchangeVoucherStatus status) { VerifyExchangeErrorCode result = VerifyExchangeErrorCode.OK; var dc = VDMS.II.Linq.DCFactory.GetDataContext<VDMS.I.Linq.ServiceDataContext>(); if (exch == null) { result = VerifyExchangeErrorCode.ExchangePartHeaderNotFound; } else { result = ServiceTools.CanVerifyExchangePartHeaderD(exch, status); } if (result == VerifyExchangeErrorCode.OK) { exch.Status = (int)status; exch.LastProcessedDate = DateTime.Now; // calculate status of "Phieu xin doi" var pxd = dc.ExchangeVoucherHeaders.SingleOrDefault(h => h.FinalVoucherNumber == exch.FinalVoucherNumber); if (pxd != null) { var list = dc.ExchangePartHeaders.Where(e => e.FinalVoucherNumber == exch.FinalVoucherNumber); int allCount = list.Count(); int appCount = list.Where(e => e.Status == (int)ExchangeVoucherStatus.Approved).Count(); int rejCount = list.Where(e => e.Status == (int)ExchangeVoucherStatus.Reject).Count(); if (allCount == appCount) pxd.Status = (int)ExchangeVoucherStatus.Approved; else if (allCount == rejCount) pxd.Status = (int)ExchangeVoucherStatus.Reject; else if (allCount == rejCount + appCount) pxd.Status = (int)ExchangeVoucherStatus.Verified; else pxd.Status = (int)ExchangeVoucherStatus.Verifing; pxd.LastProcessedDate = DateTime.Now; } result = VerifyExchangeErrorCode.OK; } return result; }
public static VerifyExchangeErrorCode ChangeExchangeVoucherStatus(string voucherNo, ExchangeVoucherStatus status) { VerifyExchangeErrorCode result = VerifyExchangeErrorCode.OK; NHibernate.ISession session = NHibernateSessionManager.Instance.GetSession(); Exchangepartheader exch = session.CreateCriteria(typeof(Exchangepartheader)) .Add(Expression.Ge("Status", 0)) .Add(Expression.Eq("Vouchernumber", voucherNo.Trim().ToUpper())) .UniqueResult<Exchangepartheader>(); if (exch == null) { result = VerifyExchangeErrorCode.ExchangePartHeaderNotFound; } else { result = ServiceTools.CanVerifyExchangePartHeader(exch, status); } if (result == VerifyExchangeErrorCode.OK) { // calculate status of "Phieu xin doi" IList<Exchangepartheader> exchs = null; bool verifyAll = true, approvedAll = true, rejectAll = true; if (exch.Exchangevoucherheader != null) { exchs = session.CreateCriteria(typeof(Exchangepartheader)) .Add(Expression.Eq("Exchangevoucherheader.Id", exch.Exchangevoucherheader.Id)) .Add(Expression.Ge("Status", 0)) .List<Exchangepartheader>(); foreach (Exchangepartheader item in exchs) { if ((item.Id != exch.Id) && ((item.Status != (int)ExchangeVoucherStatus.Approved) && (item.Status != (int)ExchangeVoucherStatus.Reject))) verifyAll = false; if ((item.Id != exch.Id) && (item.Status != (int)ExchangeVoucherStatus.Approved)) approvedAll = false; if ((item.Id != exch.Id) && (item.Status != (int)ExchangeVoucherStatus.Reject)) rejectAll = false; } } verifyAll = verifyAll && ((status == ExchangeVoucherStatus.Approved) || (status == ExchangeVoucherStatus.Reject)); approvedAll = approvedAll && (status == ExchangeVoucherStatus.Approved); rejectAll = rejectAll && (status == ExchangeVoucherStatus.Reject); try { exch.Status = (int)status; if (exch.Exchangevoucherheader != null) { if (approvedAll) exch.Exchangevoucherheader.Status = (int)ExchangeVoucherStatus.Approved; else if (rejectAll) exch.Exchangevoucherheader.Status = (int)ExchangeVoucherStatus.Reject; else if (verifyAll) exch.Exchangevoucherheader.Status = (int)ExchangeVoucherStatus.Verified; else exch.Exchangevoucherheader.Status = (int)ExchangeVoucherStatus.Verifing; } exch.Lastprocesseddate = DateTime.Now; exch.Exchangevoucherheader.Lastprocesseddate = DateTime.Now; session.SaveOrUpdate(exch); } catch { } result = VerifyExchangeErrorCode.OK; } return result; }