Beispiel #1
0
        public HttpResponseMessage unlockDisbursement(String id, Models.TrnDisbursement disbursement)
        {
            try
            {
                var userId = (from d in db.MstUsers where d.UserId == User.Identity.GetUserId() select d.Id).SingleOrDefault();

                var disbursements = from d in db.TrnDisbursements where d.Id == Convert.ToInt32(id) select d;
                if (disbursements.Any())
                {
                    var updateDisbursement = disbursements.FirstOrDefault();
                    updateDisbursement.IsLocked        = false;
                    updateDisbursement.UpdatedById     = userId;
                    updateDisbursement.UpdatedDateTime = DateTime.Now;

                    db.SubmitChanges();

                    journal.DeleteCashVoucherJournal(Convert.ToInt32(id));
                    updateAPDisbursement(Convert.ToInt32(id));

                    return(Request.CreateResponse(HttpStatusCode.OK));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound));
                }
            }
            catch
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
        }
        public HttpResponseMessage AddFolderMonitoringDisbursement(List <Entities.FolderMonitoringTrnDisbursement> folderMonitoringTrnDisbursementObjects)
        {
            try
            {
                if (folderMonitoringTrnDisbursementObjects.Any())
                {
                    foreach (var folderMonitoringTrnDisbursementObject in folderMonitoringTrnDisbursementObjects)
                    {
                        Boolean isBranchExist            = false,
                                 isSupplierExist         = false,
                                 isPayTypeExist          = false,
                                 isBankExist             = false,
                                 isUserExist             = false,
                                 isAccountExist          = false,
                                 isArticleExist          = false,
                                 isReceivingReceiptExist = false;

                        IQueryable <Data.TrnReceivingReceipt> receivingReceipt = null;

                        var branch = from d in db.MstBranches where d.BranchCode.Equals(folderMonitoringTrnDisbursementObject.BranchCode) select d;
                        if (branch.Any())
                        {
                            isBranchExist = true;

                            if (!folderMonitoringTrnDisbursementObject.RRNumber.Equals("") || !folderMonitoringTrnDisbursementObject.RRNumber.Equals("NA"))
                            {
                                receivingReceipt = from d in db.TrnReceivingReceipts where d.BranchId == branch.FirstOrDefault().Id&& d.RRNumber.Equals(folderMonitoringTrnDisbursementObject.RRNumber) && d.IsLocked == true select d;
                                if (receivingReceipt.Any())
                                {
                                    isReceivingReceiptExist = true;
                                }
                            }
                        }

                        var supplier = from d in db.MstArticles where d.ArticleTypeId == 3 && d.ManualArticleCode.Equals(folderMonitoringTrnDisbursementObject.SupplierCode) && d.IsLocked == true select d;
                        if (supplier.Any())
                        {
                            isSupplierExist = true;
                        }

                        var payType = from d in db.MstPayTypes where d.PayType.Equals(folderMonitoringTrnDisbursementObject.PayType) select d;
                        if (payType.Any())
                        {
                            isPayTypeExist = true;
                        }

                        var bank = from d in db.MstArticles where d.ArticleTypeId == 5 && d.ManualArticleCode.Equals(folderMonitoringTrnDisbursementObject.BankCode) select d;
                        if (bank.Any())
                        {
                            isBankExist = true;
                        }

                        var user = from d in db.MstUsers where d.UserName.Equals(folderMonitoringTrnDisbursementObject.UserCode) select d;
                        if (user.Any())
                        {
                            isUserExist = true;
                        }

                        List <easyfis.Entities.MstArticle> listArticles = new List <easyfis.Entities.MstArticle>();

                        var account = from d in db.MstAccounts where d.AccountCode.Equals(folderMonitoringTrnDisbursementObject.AccountCode) select d;
                        if (account.Any())
                        {
                            isAccountExist = true;

                            var accountArticleTypes = from d in db.MstAccountArticleTypes where d.AccountId == Convert.ToInt32(account.FirstOrDefault().Id) select d;
                            if (accountArticleTypes.Any())
                            {
                                foreach (var accountArticleType in accountArticleTypes)
                                {
                                    var articles = from d in db.MstArticles where d.ArticleTypeId == accountArticleType.ArticleTypeId && d.IsLocked == true select d;
                                    if (articles.Any())
                                    {
                                        foreach (var articleObject in articles)
                                        {
                                            listArticles.Add(new easyfis.Entities.MstArticle()
                                            {
                                                Id = articleObject.Id,
                                                ManualArticleCode = articleObject.ManualArticleCode,
                                                Article           = articleObject.Article
                                            });
                                        }
                                    }
                                }
                            }
                        }

                        var article = from d in listArticles where d.ManualArticleCode.Equals(folderMonitoringTrnDisbursementObject.ArticleCode) select d;
                        if (article.Any())
                        {
                            isArticleExist = true;
                        }

                        if (isBranchExist && isSupplierExist && isPayTypeExist && isBankExist && isUserExist && isAccountExist && isArticleExist)
                        {
                            Int32 CVId = 0;

                            var currentDisbursement = from d in db.TrnDisbursements where d.BranchId == branch.FirstOrDefault().Id&& d.ManualCVNumber.Equals(folderMonitoringTrnDisbursementObject.ManualCVNumber) && d.IsLocked == true select d;
                            if (currentDisbursement.Any())
                            {
                                CVId = currentDisbursement.FirstOrDefault().Id;

                                var unlockDisbursement = currentDisbursement.FirstOrDefault();
                                unlockDisbursement.IsLocked        = false;
                                unlockDisbursement.UpdatedById     = user.FirstOrDefault().Id;
                                unlockDisbursement.UpdatedDateTime = Convert.ToDateTime(folderMonitoringTrnDisbursementObject.CreatedDateTime);
                                db.SubmitChanges();

                                journal.DeleteCashVoucherJournal(CVId);
                            }
                            else
                            {
                                var defaultCVNumber  = "0000000001";
                                var lastDisbursement = from d in db.TrnDisbursements.OrderByDescending(d => d.Id) where d.BranchId == branch.FirstOrDefault().Id select d;
                                if (lastDisbursement.Any())
                                {
                                    var CVNumber = Convert.ToInt32(lastDisbursement.FirstOrDefault().CVNumber) + 0000000001;
                                    defaultCVNumber = FillLeadingZeroes(CVNumber, 10);
                                }

                                Data.TrnDisbursement newDisbursement = new Data.TrnDisbursement
                                {
                                    BranchId        = branch.FirstOrDefault().Id,
                                    CVNumber        = defaultCVNumber,
                                    CVDate          = Convert.ToDateTime(folderMonitoringTrnDisbursementObject.CVDate),
                                    ManualCVNumber  = folderMonitoringTrnDisbursementObject.ManualCVNumber,
                                    Payee           = folderMonitoringTrnDisbursementObject.Payee,
                                    SupplierId      = supplier.FirstOrDefault().Id,
                                    PayTypeId       = payType.FirstOrDefault().Id,
                                    Particulars     = folderMonitoringTrnDisbursementObject.Remarks,
                                    BankId          = bank.FirstOrDefault().Id,
                                    CheckNumber     = folderMonitoringTrnDisbursementObject.CheckNumber,
                                    CheckDate       = Convert.ToDateTime(folderMonitoringTrnDisbursementObject.CheckDate),
                                    Amount          = 0,
                                    IsCrossCheck    = folderMonitoringTrnDisbursementObject.IsCrossCheck,
                                    PreparedById    = user.FirstOrDefault().Id,
                                    CheckedById     = user.FirstOrDefault().Id,
                                    ApprovedById    = user.FirstOrDefault().Id,
                                    IsClear         = folderMonitoringTrnDisbursementObject.IsClear,
                                    Status          = null,
                                    IsCancelled     = false,
                                    IsPrinted       = false,
                                    IsLocked        = false,
                                    CreatedById     = user.FirstOrDefault().Id,
                                    CreatedDateTime = Convert.ToDateTime(folderMonitoringTrnDisbursementObject.CreatedDateTime),
                                    UpdatedById     = user.FirstOrDefault().Id,
                                    UpdatedDateTime = Convert.ToDateTime(folderMonitoringTrnDisbursementObject.CreatedDateTime)
                                };

                                db.TrnDisbursements.InsertOnSubmit(newDisbursement);
                                db.SubmitChanges();

                                CVId = newDisbursement.Id;
                            }

                            Int32?RRId = null;
                            if (isReceivingReceiptExist)
                            {
                                RRId = receivingReceipt.FirstOrDefault().Id;
                            }

                            Data.TrnDisbursementLine newDisbursementLine = new Data.TrnDisbursementLine
                            {
                                CVId        = CVId,
                                BranchId    = branch.FirstOrDefault().Id,
                                AccountId   = account.FirstOrDefault().Id,
                                ArticleId   = article.FirstOrDefault().Id,
                                RRId        = RRId,
                                Particulars = folderMonitoringTrnDisbursementObject.Particulars,
                                Amount      = folderMonitoringTrnDisbursementObject.Amount
                            };

                            db.TrnDisbursementLines.InsertOnSubmit(newDisbursementLine);
                            db.SubmitChanges();

                            var disbursement = from d in db.TrnDisbursements where d.Id == CVId && d.IsLocked == false select d;
                            if (disbursement.Any())
                            {
                                Decimal amount            = 0;
                                var     disbursementLines = from d in db.TrnDisbursementLines where d.CVId == CVId select d;
                                if (disbursementLines.Any())
                                {
                                    amount = disbursementLines.Sum(d => d.Amount);
                                }

                                var lockDisbursement = disbursement.FirstOrDefault();
                                lockDisbursement.Amount          = amount;
                                lockDisbursement.IsLocked        = true;
                                lockDisbursement.UpdatedById     = user.FirstOrDefault().Id;
                                lockDisbursement.UpdatedDateTime = Convert.ToDateTime(folderMonitoringTrnDisbursementObject.CreatedDateTime);
                                db.SubmitChanges();

                                if (disbursementLines.Any())
                                {
                                    foreach (var disbursementLine in disbursementLines)
                                    {
                                        if (disbursementLine.RRId != null)
                                        {
                                            accountsPayable.UpdateAccountsPayable(Convert.ToInt32(disbursementLine.RRId));
                                        }
                                    }
                                }

                                journal.InsertCashVoucherJournal(CVId);
                            }
                        }
                    }

                    return(Request.CreateResponse(HttpStatusCode.OK));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound, "No data found."));
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Something's went wrong from the server."));
            }
        }
Beispiel #3
0
        public HttpResponseMessage UnlockDisbursement(String id)
        {
            try
            {
                var currentUser = from d in db.MstUsers
                                  where d.UserId == User.Identity.GetUserId()
                                  select d;

                if (currentUser.Any())
                {
                    var currentUserId = currentUser.FirstOrDefault().Id;

                    var userForms = from d in db.MstUserForms
                                    where d.UserId == currentUserId &&
                                    d.SysForm.FormName.Equals("DisbursementDetail")
                                    select d;

                    if (userForms.Any())
                    {
                        if (userForms.FirstOrDefault().CanUnlock)
                        {
                            var disbursement = from d in db.TrnDisbursements
                                               where d.Id == Convert.ToInt32(id)
                                               select d;

                            if (disbursement.Any())
                            {
                                if (!disbursement.FirstOrDefault().IsCancelled)
                                {
                                    if (disbursement.FirstOrDefault().IsLocked)
                                    {
                                        String oldObject = auditTrail.GetObjectString(disbursement.FirstOrDefault());

                                        var unlockDisbursement = disbursement.FirstOrDefault();
                                        unlockDisbursement.IsLocked        = false;
                                        unlockDisbursement.UpdatedById     = currentUserId;
                                        unlockDisbursement.UpdatedDateTime = DateTime.Now;
                                        db.SubmitChanges();

                                        if (!unlockDisbursement.IsLocked)
                                        {
                                            var disbursementLines = from d in db.TrnDisbursementLines where d.CVId == Convert.ToInt32(id) && d.RRId != null select d;
                                            if (disbursementLines.Any())
                                            {
                                                foreach (var disbursementLine in disbursementLines)
                                                {
                                                    accountsPayable.UpdateAccountsPayable(Convert.ToInt32(disbursementLine.RRId));
                                                }
                                            }

                                            journal.DeleteCashVoucherJournal(Convert.ToInt32(id));
                                        }

                                        String newObject = auditTrail.GetObjectString(disbursement.FirstOrDefault());
                                        auditTrail.InsertAuditTrail(currentUser.FirstOrDefault().Id, GetType().Name, MethodBase.GetCurrentMethod().Name, oldObject, newObject);

                                        return(Request.CreateResponse(HttpStatusCode.OK));
                                    }
                                    else
                                    {
                                        return(Request.CreateResponse(HttpStatusCode.BadRequest, "Unlocking Error. These disbursement details are already unlocked."));
                                    }
                                }
                                else
                                {
                                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "Unlocking Error. These disbursement details are already cancelled."));
                                }
                            }
                            else
                            {
                                return(Request.CreateResponse(HttpStatusCode.NotFound, "Data not found. These disbursement details are not found in the server."));
                            }
                        }
                        else
                        {
                            return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no rights to unlock disbursement."));
                        }
                    }
                    else
                    {
                        return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no access for this disbursement page."));
                    }
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "Theres no current user logged in."));
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Something's went wrong from the server."));
            }
        }
        public HttpResponseMessage UnlockDisbursement(String id)
        {
            try
            {
                var currentUser = from d in db.MstUsers
                                  where d.UserId == User.Identity.GetUserId()
                                  select d;

                if (currentUser.Any())
                {
                    var currentUserId = currentUser.FirstOrDefault().Id;

                    var userForms = from d in db.MstUserForms
                                    where d.UserId == currentUserId &&
                                    d.SysForm.FormName.Equals("DisbursementDetail")
                                    select d;

                    if (userForms.Any())
                    {
                        if (userForms.FirstOrDefault().CanUnlock)
                        {
                            var disbursement = from d in db.TrnDisbursements
                                               where d.Id == Convert.ToInt32(id)
                                               select d;

                            if (disbursement.Any())
                            {
                                if (disbursement.FirstOrDefault().IsLocked)
                                {
                                    var unlockDisbursement = disbursement.FirstOrDefault();
                                    unlockDisbursement.IsLocked        = false;
                                    unlockDisbursement.UpdatedById     = currentUserId;
                                    unlockDisbursement.UpdatedDateTime = DateTime.Now;

                                    db.SubmitChanges();

                                    // ============================
                                    // Journal and Accounts Payable
                                    // ============================
                                    Business.Journal journal = new Business.Journal();

                                    if (!unlockDisbursement.IsLocked)
                                    {
                                        journal.DeleteCashVoucherJournal(Convert.ToInt32(id));
                                        UpdateAccountsPayable(Convert.ToInt32(id));
                                    }

                                    return(Request.CreateResponse(HttpStatusCode.OK));
                                }
                                else
                                {
                                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "Unlocking Error. These disbursement details are already unlocked."));
                                }
                            }
                            else
                            {
                                return(Request.CreateResponse(HttpStatusCode.NotFound, "Data not found. These disbursement details are not found in the server."));
                            }
                        }
                        else
                        {
                            return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no rights to unlock disbursement."));
                        }
                    }
                    else
                    {
                        return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no access for this disbursement page."));
                    }
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "Theres no current user logged in."));
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Something's went wrong from the server."));
            }
        }