Exemplo n.º 1
0
 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);
     }
 }
Exemplo n.º 4
0
 public static VerifyExchangeErrorCode ChangeExchangeStatus(long hid, ExchangeVoucherStatus status)
 {
     return ChangeExchangeStatus(hid, status, true);
 }
Exemplo n.º 5
0
 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;
 }
Exemplo n.º 6
0
 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;
        }