示例#1
0
 public ApprovalHandler(OrderMakerContext context, string idstore)
 {
     _context      = context;
     idStore       = idstore;
     storeCache    = null;
     approvalCache = null;
 }
示例#2
0
        public async Task <IList <MtdApprovalStage> > GetStagesAsync()
        {
            MtdApproval mtdApproval = await GetApproval();

            if (mtdApproval != null)
            {
                return(mtdApproval.MtdApprovalStage.OrderBy(x => x.Stage).ToList());
            }

            return(new List <MtdApprovalStage>());
        }
示例#3
0
        public async Task <List <MtdApprovalStage> > GetStagesDownAsync()
        {
            MtdApproval mtdApproval = await GetApproval();

            if (mtdApproval != null)
            {
                MtdApprovalStage currentStage = await GetCurrentStageAsync();

                return(mtdApproval.MtdApprovalStage.Where(x => x.Stage < currentStage.Stage).OrderBy(x => x.Stage).ToList());
            }

            return(new List <MtdApprovalStage>());
        }
示例#4
0
        public async Task <IActionResult> OnGetAsync(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            MtdApproval = await _context.MtdApproval.Include(x => x.MtdFormNavigation).FirstOrDefaultAsync(x => x.Id == id);

            if (MtdApproval == null)
            {
                return(NotFound());
            }

            return(Page());
        }
示例#5
0
        public async Task <IActionResult> OnGetAsync()
        {
            MtdApproval = new MtdApproval
            {
                Id = Guid.NewGuid().ToString()
            };

            IList <string> formsIds = await _context.MtdApproval.Select(x => x.MtdForm).ToListAsync();

            MtdForms = await _context.MtdForm.Where(x => !formsIds.Contains(x.Id)).ToListAsync();

            ViewData["Forms"] = new SelectList(MtdForms.OrderBy(x => x.Sequence), "Id", "Name");


            return(Page());
        }
示例#6
0
        public async Task <IActionResult> OnPostStageCreateAsync()
        {
            IFormCollection requestForm = await Request.ReadFormAsync();

            string approvalId    = requestForm["IdApproval"];
            string fieldName     = requestForm["fieldName"];
            string fieldNote     = requestForm["fieldNote"];
            string fieldUser     = requestForm["fieldUser"];
            string fieldStageStr = requestForm["fieldStage"];

            int.TryParse(fieldStageStr, out int fieldStage);
            string blockParts = string.Empty;

            if (approvalId == null)
            {
                return(NotFound());
            }

            MtdApproval mtdApproval = await _context.MtdApproval.FindAsync(approvalId);

            IList <string> partIds = await _context.MtdFormPart.Where(x => x.MtdForm == mtdApproval.MtdForm).Select(x => x.Id).ToListAsync();

            foreach (string id in partIds)
            {
                bool result = bool.TryParse(Request.Form[id], out bool check);
                if (result && check)
                {
                    blockParts += $"{id}&";
                }
            }

            MtdApprovalStage stage = new MtdApprovalStage
            {
                MtdApproval = approvalId,
                BlockParts  = blockParts,
                Description = fieldNote,
                Name        = fieldName,
                UserId      = fieldUser,
                Stage       = fieldStage,
            };

            await _context.MtdApprovalStage.AddAsync(stage);

            await _context.SaveChangesAsync();

            return(Ok());
        }
示例#7
0
        public async Task <MtdApprovalStage> GetCurrentStageAsync()
        {
            MtdApproval approval = await GetApproval();

            if (approval == null)
            {
                return(null);
            }

            MtdStore mtdStore = await GetStoreAsync();

            if (mtdStore.MtdStoreApproval == null)
            {
                return(await GetFirstStageAsync());
            }
            return(approval.MtdApprovalStage.Where(x => x.Id == mtdStore.MtdStoreApproval.MtdApproveStage).FirstOrDefault());
        }
示例#8
0
        public async Task <IActionResult> OnPostDeleteAsync()
        {
            string approvalId = Request.Form["IdApproval"];

            if (approvalId == null)
            {
                return(NotFound());
            }

            MtdApproval mtdApproval = new MtdApproval {
                Id = approvalId
            };

            _context.MtdApproval.Remove(mtdApproval);
            await _context.SaveChangesAsync();

            return(Ok());
        }
示例#9
0
        public async Task <bool> ActionReject(bool complete, int idStage, WebAppUser webAppUser)
        {
            MtdStore mtdStore = await GetStoreAsync();

            if (mtdStore.MtdStoreApproval != null && mtdStore.MtdStoreApproval.Complete == 1)
            {
                return(false);
            }

            MtdApproval mtdApproval = await GetApproval();

            MtdApprovalStage currentStage = await GetCurrentStageAsync();

            MtdApprovalStage prevStage;

            if (!complete)
            {
                prevStage = mtdApproval.MtdApprovalStage.Where(x => x.Id == idStage).FirstOrDefault();
            }
            else
            {
                prevStage = await GetCurrentStageAsync();
            }

            if (prevStage == null)
            {
                return(false);
            }

            var allStages = await GetStagesAsync();

            var blockPartsStage = allStages.Where(x => x.Stage < prevStage.Stage).FirstOrDefault();

            MtdStoreApproval storeApproval = new MtdStoreApproval
            {
                Id = mtdStore.Id,
                MtdApproveStage = prevStage.Id,
                PartsApproved   = blockPartsStage == null ? "&" : blockPartsStage.BlockParts,
                Complete        = complete ? (sbyte)1 : (sbyte)0,
                Result          = -1,
            };

            if (mtdStore.MtdStoreApproval == null)
            {
                await _context.MtdStoreApproval.AddAsync(storeApproval);
            }
            else
            {
                try
                {
                    _context.MtdStoreApproval.Update(storeApproval);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            MtdLogApproval mtdLogApproval = new MtdLogApproval()
            {
                MtdStore = mtdStore.Id,
                Result   = -1,
                Stage    = currentStage.Stage,
                Timecr   = DateTime.Now,
                UserId   = webAppUser.Id
            };

            await _context.MtdLogApproval.AddAsync(mtdLogApproval);



            try
            {
                await _context.SaveChangesAsync();
            }
            catch
            {
                return(false);
            }

            return(true);
        }
示例#10
0
        public async Task <bool> IsApprovalFormAsync()
        {
            MtdApproval mtdApproval = await GetApproval();

            return(mtdApproval == null ? false : true);
        }
示例#11
0
 public void ClearCache()
 {
     approvalCache = null;
     storeCache    = null;
 }