예제 #1
0
        public ActionResult Delete(int id)
        {
            RequisitionHeader header = _RequisitionHeaderService.Find(id);

            if (header.Status == (int)StatusConstants.Drafted || header.Status == (int)StatusConstants.Import)
            {
                return(Remove(id));
            }
            else
            {
                return(HttpNotFound());
            }
        }
예제 #2
0
        public ActionResult ModifyAfter_Submit(int id, string IndexType)
        {
            RequisitionHeader header = _RequisitionHeaderService.Find(id);

            if (header.Status == (int)StatusConstants.Submitted || header.Status == (int)StatusConstants.Modified)
            {
                return(Edit(id, IndexType));
            }
            else
            {
                return(HttpNotFound());
            }
        }
예제 #3
0
        public ActionResult DeleteAfter_Submit(int id)
        {
            RequisitionHeader header = _RequisitionHeaderService.Find(id);

            if (header.Status == (int)StatusConstants.Submitted || header.Status == (int)StatusConstants.Modified)
            {
                return(Remove(id));
            }
            else
            {
                return(HttpNotFound());
            }
        }
예제 #4
0
        public void SetUp()
        {
            this.reqNumber  = 4343;
            this.reqLine    = 9;
            this.userNumber = 13;
            this.req        = new RequisitionHeader {
                ReqNumber = this.reqNumber, Document1 = 808
            };
            this.storesPackResult = new ProcessResult {
                Message = "ok", Success = true
            };
            this.StoresPack.UnAllocateRequisition(this.reqNumber, this.reqLine, this.userNumber)
            .Returns(this.storesPackResult);
            this.RequistionHeaderRepository.FindById(this.reqNumber).Returns(this.req);

            this.result = this.Sut.Unallocate(this.reqNumber, this.reqLine, this.userNumber);
        }
예제 #5
0
        public ActionResult Submit(int id, string IndexType, string TransactionType)
        {
            RequisitionHeader s = context.RequisitionHeader.Find(id);

            if (new RolePermissionService(_unitOfWork).IsActionAllowed(UserRoles, s.DocTypeId, null, this.ControllerContext.RouteData.Values["controller"].ToString(), "Submit") == false)
            {
                return(View("~/Views/Shared/PermissionDenied.cshtml").Warning("You don't have permission to do this task."));
            }

            #region DocTypeTimeLineValidation


            try
            {
                TimePlanValidation = Submitvalidation(id, out ExceptionMsg);
                TempData["CSEXC"] += ExceptionMsg;
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXC"] += message;
                TimePlanValidation = false;
            }

            try
            {
                TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(s), DocumentTimePlanTypeConstants.Submit, User.Identity.Name, out ExceptionMsg, out Continue);
                TempData["CSEXC"] += ExceptionMsg;
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXC"] += message;
                TimePlanValidation = false;
            }

            if (!TimePlanValidation && !Continue)
            {
                return(RedirectToAction("Index", new { id = s.DocTypeId, IndexType = IndexType }));
            }
            #endregion
            return(RedirectToAction("Detail", new { id = id, IndexType = IndexType, transactionType = string.IsNullOrEmpty(TransactionType) ? "submit" : TransactionType }));
        }
예제 #6
0
        // GET: /PurchaseOrderHeader/Delete/5

        private ActionResult Remove(int id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RequisitionHeader RequisitionHeader = _RequisitionHeaderService.Find(id);

            if (RequisitionHeader == null)
            {
                return(HttpNotFound());
            }

            if (new RolePermissionService(_unitOfWork).IsActionAllowed(UserRoles, RequisitionHeader.DocTypeId, null, this.ControllerContext.RouteData.Values["controller"].ToString(), "Remove") == false)
            {
                return(PartialView("~/Views/Shared/PermissionDenied_Modal.cshtml").Warning("You don't have permission to do this task."));
            }

            #region DocTypeTimeLineValidation
            try
            {
                TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(RequisitionHeader), DocumentTimePlanTypeConstants.Delete, User.Identity.Name, out ExceptionMsg, out Continue);
                TempData["CSEXC"] += ExceptionMsg;
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXC"] += message;
                TimePlanValidation = false;
            }

            if (!TimePlanValidation && !Continue)
            {
                return(PartialView("AjaxError"));
            }
            #endregion

            ReasonViewModel rvm = new ReasonViewModel()
            {
                id = id,
            };
            return(PartialView("_Reason", rvm));
        }
예제 #7
0
        public static RequisitionHeaderDTO MapFromDatabaseEntity(RequisitionHeader requisitionHeader)
        {
            if (requisitionHeader == null)
            {
                return(null);
            }

            return(new RequisitionHeaderDTO
            {
                Id = requisitionHeader.Id,
                Supplier = requisitionHeader.Supplier,
                RequisitionNumber = requisitionHeader.RequisitionNumber,
                Status = requisitionHeader.Status,
                CreatedDate = requisitionHeader.CreatedDate,
                Currency = requisitionHeader.Currency,
                PurchaseOrderNumber = requisitionHeader.PurchaseOrderNumber,
                ProjectId = requisitionHeader.ProjectId,

                RequisitionLineItems = requisitionHeader.RequisitionLineItems?.Select(RequisitionLineItemDTO.MapFromDatabaseEntity).ToList() ??
                                       new List <RequisitionLineItemDTO>()
            });
        }
예제 #8
0
 public void SetUp()
 {
     this.requisition = new RequisitionHeader
     {
         ReqNumber = 3243,
         Document1 = 808,
         Lines     = new List <RequisitionLine>
         {
             new RequisitionLine
             {
                 LineNumber = 1, Moves = new List <ReqMove>()
             }
         }
     };
     this.RequisitionFacadeService.GetById(this.requisition.ReqNumber)
     .Returns(new SuccessResult <RequisitionHeader>(this.requisition));
     this.Response = this.Browser.Get(
         $"/logistics/requisitions/{this.requisition.ReqNumber}",
         with =>
     {
         with.Header("Accept", "application/json");
     }).Result;
 }
예제 #9
0
        internal bool  SqlInsert(SqlCommand cmd, RequisitionHeader hdr)
        {
            bool flg = false;

            try
            {
                var storedProcedureComandText = "INSERT INTO [ItemRequisitionHeader] ([CompanyID], [BranchID], [ItemRequisitionNo],[RequisitionBy],[RequisitionDate],[RequiredDate],[RequestedDepartmentID],[UserTypeID],[UserID],[LocationOfUse],[LocationAddress],[PriorityID],[PurposeID],[ReferenceTypeID],[ReferenceNumber],[ProjectID],[RequisitionCurrentStatus],[RequisitionComments],[CompletionStatus],[EntryDate],[EntryUserID],[ModifiedDate],[ModifiedUserID]) VALUES (" + hdr.CompanyID + ", " + hdr.BranchID + ", '" + hdr.ItemRequisitionNo + "','" + hdr.RequisitionBy + "',convert(datetime,'" + hdr.RequisitionDate + "',103),convert(datetime,'" + hdr.RequiredDate + "',103),'" + hdr.RequestedDepartment + "'," + hdr.UserType + ",'" + hdr.UserID + "'," + hdr.LocationOfUse + ",'" + hdr.LocationAddress + "'," + hdr.PriorityID + "," + hdr.PurposeID + "," + hdr.ReferenceTypeID + ",'" + hdr.ReferenceNumber + "','" + hdr.ProjectID + "'," + hdr.RequisitionCurrentStatus + ",'" + hdr.RequisitionComments + "'," + hdr.CompletionStatus + ",convert(datetime,'" + hdr.EntryDate + "',103),'" + hdr.EntryUserID + "',convert(datetime,'" + Convert.ToDateTime(hdr.ModifiedDate) + "',103),'" + hdr.ModifiedUserID + "')";
                if (clsDataManipulation.ExecuteSqlCommand(cmd, storedProcedureComandText) == false)
                {
                    return(flg = false);
                }

                else
                {
                    return(flg = true);
                }
            }
            catch (Exception msgException)
            {
                return(flg);

                throw msgException;
            }
        }
        public static string GetDataRequisitionAdvancedSearch(RequisitionHeader hdr, DateTime frmdate, DateTime todate, int item)
        {
            string sql = "";


            sql = " SELECT ItemRequisitionHeader.ItemRequisitionNo,ItemRequisitionHeader.PriorityID,ItemRequisitionHeader.PurposeID,"
                  + " ItemRequisitionHeader.RequestedDepartmentID, ItemRequisitionHeader.CompanyID, ItemRequisitionHeader.BranchID,"
                  + " ItemRequisitionHeader.RequisitionBy as RequisitionID, ItemRequisitionHeader.RequisitionDate, ItemRequisitionHeader.RequiredDate,"
                  + " hrEmployeeSetup.FullName as RequisitionBy,oDepartmentSetup.DepartmentName,PrioritySetupActivityWise.PriorityName   FROM  ItemRequisitionHeader "

                  + " inner join hrEmployeeSetup on ItemRequisitionHeader.RequisitionBy =hrEmployeeSetup.EmployeeID "
                  + " inner join oDepartmentSetup on oDepartmentSetup.DepartmentID=ItemRequisitionHeader.RequestedDepartmentID "
                  + " inner join PrioritySetupActivityWise on PrioritySetupActivityWise.PriorityID=ItemRequisitionHeader.PriorityID where ItemRequisitionHeader.CompanyID=" + hdr.CompanyID + " and ItemRequisitionHeader.BranchID=" + hdr.BranchID + "";


            if (hdr.PriorityID != 0)
            {
                sql += " and ItemRequisitionHeader.PriorityID=" + hdr.PriorityID;
            }

            if (hdr.RequestedDepartment != "")
            {
                sql += " and ItemRequisitionHeader.RequestedDepartmentID='" + hdr.RequestedDepartment + "'";
            }


            if (hdr.PurposeID != 0)
            {
                sql += " and ItemRequisitionHeader.PurposeID=" + hdr.PurposeID;
            }

            if (hdr.RequisitionBy != "")
            {
                sql += " and ItemRequisitionHeader.RequisitionBy='" + hdr.RequisitionBy + "'";
            }

            if (item != 0)
            {
                string    sss = System.Configuration.ConfigurationManager.ConnectionStrings["dbERPSolutionConnection"].ToString();
                DataTable dt  = new DataTable();
                dt = DataProcess.GetData(sss, ItemRequisitionController.GetDataByItemDet(item));

                string aaaa = "";

                foreach (DataRow dr in dt.Rows)
                {
                    if (aaaa == "")
                    {
                        aaaa = "'" + dr["ItemRequisitionNo"].ToString() + "'";
                    }

                    else
                    {
                        aaaa += ",'" + dr["ItemRequisitionNo"].ToString() + "'";
                    }
                }

                sql += " and ItemRequisitionNo in (" + aaaa + ")";
            }


            if (frmdate != null)
            {
                sql += " and RequisitionDate between convert(datetime,'" + frmdate + "',103)";
            }

            if (todate != null)
            {
                sql += " and convert(datetime,'" + todate + "',103)";
            }

            else
            {
                return(sql);
            }
            return(sql);
        }
 public RequisitionHeader Add(RequisitionHeader reqHeader)
 {
     return(_context.RequisitionHeaders.Add(reqHeader).Entity);
 }
예제 #12
0
        public DataTable  GetDataRequisitionAdvancedSearch(RequisitionHeader hdr, DateTime frmdate, DateTime todate, int item)
        {
            try
            {
                DataTable dtAdSearch = null;
                var       storedProcedureComandText = "";

                storedProcedureComandText = ShowRequisitionHeader(hdr.CompanyID, hdr.BranchID);


                if (hdr.PriorityID != 0)
                {
                    storedProcedureComandText += " and ItemRequisitionHeader.PriorityID=" + hdr.PriorityID;
                }

                if (hdr.RequestedDepartment != "")
                {
                    storedProcedureComandText += " and ItemRequisitionHeader.RequestedDepartmentID='" + hdr.RequestedDepartment + "'";
                }


                if (hdr.PurposeID != 0)
                {
                    storedProcedureComandText += " and ItemRequisitionHeader.PurposeID=" + hdr.PurposeID;
                }

                if (hdr.RequisitionBy != "")
                {
                    storedProcedureComandText += " and ItemRequisitionHeader.RequisitionBy='" + hdr.RequisitionBy + "'";
                }

                if (item != 0)
                {
                    DataTable dt = new DataTable();

                    ItemRequisitionDetailController _objItemRequisitionDetail = new ItemRequisitionDetailController();
                    dt = _objItemRequisitionDetail.GetDataByItemDet(item, hdr.CompanyID, hdr.BranchID);

                    string aaaa = "";

                    foreach (DataRow dr in dt.Rows)
                    {
                        if (aaaa == "")
                        {
                            aaaa = "'" + dr["ItemRequisitionNo"].ToString() + "'";
                        }

                        else
                        {
                            aaaa += ",'" + dr["ItemRequisitionNo"].ToString() + "'";
                        }
                    }

                    storedProcedureComandText += " and ItemRequisitionNo in (" + aaaa + ")";
                }


                if (frmdate != null)
                {
                    storedProcedureComandText += " and RequisitionDate between convert(datetime,'" + frmdate + "',103)";
                }

                if (todate != null)
                {
                    storedProcedureComandText += " and convert(datetime,'" + todate + "',103)";
                }

                dtAdSearch = clsDataManipulation.GetData(this.ConnectionString, storedProcedureComandText);
                return(dtAdSearch);
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
 public void Update(RequisitionHeader s)
 {
     s.ObjectState = ObjectState.Modified;
     _unitOfWork.Repository <RequisitionHeader>().Update(s);
 }
예제 #14
0
 object IResourceBuilder <RequisitionHeader> .Build(RequisitionHeader requisition) => this.Build(requisition);
        //==================================================================================================

        public static string SqlFileAttachmentHdr(RequisitionHeader hdr)
        {
            string sql = "INSERT INTO [ItemRequisitionHeader] ([CompanyID], [BranchID], [ItemRequisitionNo],[RequisitionBy],[RequisitionDate],[RequiredDate],[RequestedDepartment],[UserType],[UserID],[LocationOfUse],[LocationAddress],[PriorityID],[PurposeID],[ReferenceTypeID],[ReferenceNumber],[ProjectID],[RequisitionCurrentStatus],[EntryDate],[EntryUserID],[ModifiedDate],[ModifiedUserID]) VALUES (" + hdr.CompanyID + ", " + hdr.BranchID + ", '" + hdr.ItemRequisitionNo + "','" + hdr.RequisitionBy + "',convert(datetime,'" + hdr.RequisitionDate + "',103),convert(datetime,'" + hdr.RequiredDate + "',103),'" + hdr.RequestedDepartment + "'," + hdr.UserType + ",'" + hdr.UserID + "'," + hdr.LocationOfUse + ",'" + hdr.LocationAddress + "'," + hdr.PriorityID + "," + hdr.PurposeID + "," + hdr.ReferenceTypeID + ",'" + hdr.ReferenceNumber + "','" + hdr.ProjectID + "'," + hdr.RequisitionCurrentStatus + ",convert(datetime,'" + hdr.EntryDate + "',103),'" + hdr.EntryUserID + "',convert(datetime,'" + Convert.ToDateTime(hdr.ModifiedDate) + "',103),'" + hdr.ModifiedUserID + "')";

            return(sql);
        }
예제 #16
0
        public ActionResult Delete(ReasonViewModel vm)
        {
            bool BeforeSave = true;

            try
            {
                BeforeSave = MaterialRequestDocEvents.beforeHeaderDeleteEvent(this, new StockEventArgs(vm.id), ref context);
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXC"] += message;
                EventException     = true;
            }

            if (!BeforeSave)
            {
                TempData["CSEXC"] += "Failed validation before delete";
            }

            if (ModelState.IsValid && BeforeSave && !EventException)
            {
                List <LogTypeViewModel> LogList = new List <LogTypeViewModel>();


                //first find the Purchase Order Object based on the ID. (sience this object need to marked to be deleted IE. ObjectState.Deleted)
                //var RequisitionHeader = _RequisitionHeaderService.Find(vm.id);

                var RequisitionHeader = (from p in context.RequisitionHeader
                                         where p.RequisitionHeaderId == vm.id
                                         select p).FirstOrDefault();

                try
                {
                    MaterialRequestDocEvents.onHeaderDeleteEvent(this, new StockEventArgs(vm.id), ref context);
                }
                catch (Exception ex)
                {
                    string message = _exception.HandleException(ex);
                    TempData["CSEXC"] += message;
                    EventException     = true;
                }

                RequisitionHeader ExRec = new RequisitionHeader();
                ExRec = Mapper.Map <RequisitionHeader>(RequisitionHeader);

                LogList.Add(new LogTypeViewModel
                {
                    ExObj = ExRec,
                });

                //Then find all the Purchase Order Header Line associated with the above ProductType.
                //var RequisitionLine = new RequisitionLineService(_unitOfWork).GetRequisitionLineforDelete(vm.id);

                var RequisitionLine = (from p in context.RequisitionLine
                                       where p.RequisitionHeaderId == vm.id
                                       select p).ToList();
                var RequisitionIds = RequisitionLine.Select(m => m.RequisitionLineId).ToArray();

                var RequisitionLineStatusRecords = (from p in context.RequisitionLineStatus
                                                    where RequisitionIds.Contains(p.RequisitionLineId.Value)
                                                    select p).ToList();

                //Mark ObjectState.Delete to all the Purchase Order Lines.
                foreach (var item in RequisitionLine)
                {
                    RequisitionLine ExRecLine = new RequisitionLine();
                    ExRecLine = Mapper.Map <RequisitionLine>(item);

                    LogList.Add(new LogTypeViewModel
                    {
                        ExObj = ExRecLine,
                    });

                    //new RequisitionLineStatusService(_unitOfWork).Delete(item.RequisitionLineId);

                    var StatRecord = RequisitionLineStatusRecords.Where(m => m.RequisitionLineId == item.RequisitionLineId).FirstOrDefault();
                    StatRecord.ObjectState = Model.ObjectState.Deleted;

                    context.RequisitionLineStatus.Remove(StatRecord);

                    //new RequisitionLineService(_unitOfWork).Delete(item.RequisitionLineId);
                    item.ObjectState = Model.ObjectState.Deleted;
                    context.RequisitionLine.Remove(item);
                }

                // Now delete the Purhcase Order Header
                //new RequisitionHeaderService(_unitOfWork).Delete(RequisitionHeader);
                RequisitionHeader.ObjectState = Model.ObjectState.Deleted;
                context.RequisitionHeader.Remove(RequisitionHeader);

                XElement Modifications = new ModificationsCheckService().CheckChanges(LogList);

                //Commit the DB
                try
                {
                    if (EventException)
                    {
                        throw new Exception();
                    }

                    context.SaveChanges();
                }

                catch (Exception ex)
                {
                    string message = _exception.HandleException(ex);
                    TempData["CSEXC"] += message;
                    return(PartialView("_Reason", vm));
                }

                try
                {
                    MaterialRequestDocEvents.afterHeaderDeleteEvent(this, new StockEventArgs(vm.id), ref context);
                }
                catch (Exception ex)
                {
                    string message = _exception.HandleException(ex);
                    TempData["CSEXC"] += message;
                }


                LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                {
                    DocTypeId       = RequisitionHeader.DocTypeId,
                    DocId           = RequisitionHeader.RequisitionHeaderId,
                    ActivityType    = (int)ActivityTypeContants.Deleted,
                    UserRemark      = vm.Reason,
                    DocNo           = RequisitionHeader.DocNo,
                    xEModifications = Modifications,
                    DocDate         = RequisitionHeader.DocDate,
                    DocStatus       = RequisitionHeader.Status,
                }));

                return(Json(new { success = true }));
            }
            return(PartialView("_Reason", vm));
        }
예제 #17
0
        public void SetUpContext()
        {
            this.StoresPack                = Substitute.For <IStoresPack>();
            this.KardexPack                = Substitute.For <IKardexPack>();
            this.RequisitionRepository     = Substitute.For <IRepository <RequisitionHeader, int> >();
            this.StorageLocationRepository = Substitute.For <IRepository <StorageLocation, int> >();
            this.StoresPalletRepository    = Substitute.For <IStoresPalletRepository>();
            this.StoresPalletRepository.FindById(1000).Returns(new StoresPallet {
                PalletNumber = 1000
            });
            this.StoresPalletRepository.FindById(2000).Returns(new StoresPallet {
                PalletNumber = 2000
            });

            this.PartNumber    = "part 1";
            this.Quantity      = 2;
            this.UserNumber    = 808;
            this.ReqNumber     = 909707;
            this.FromStockDate = 1.April(2025);
            this.Req           = new RequisitionHeader
            {
                ReqNumber = this.ReqNumber,
                Lines     = new List <RequisitionLine>
                {
                    new RequisitionLine
                    {
                        LineNumber = 1,
                        ReqNumber  = this.ReqNumber,
                        Moves      = new List <ReqMove>
                        {
                            new ReqMove
                            {
                                LineNumber = 1,
                                ReqNumber  = this.ReqNumber,
                                Sequence   = 1
                            },
                            new ReqMove
                            {
                                LineNumber = 1,
                                ReqNumber  = this.ReqNumber,
                                Sequence   = 2
                            }
                        }
                    },
                    new RequisitionLine
                    {
                        LineNumber = 2,
                        ReqNumber  = this.ReqNumber,
                        Moves      = new List <ReqMove>
                        {
                            new ReqMove
                            {
                                LineNumber = 2,
                                ReqNumber  = this.ReqNumber,
                                Sequence   = 1
                            },
                            new ReqMove
                            {
                                LineNumber = 2,
                                ReqNumber  = this.ReqNumber,
                                Sequence   = 2
                            }
                        }
                    }
                }
            };
            this.RequisitionRepository.FindById(this.ReqNumber).Returns(this.Req);
            this.Sut = new MoveStockService(
                this.StoresPack,
                this.KardexPack,
                this.RequisitionRepository,
                this.StorageLocationRepository,
                this.StoresPalletRepository);
        }
예제 #18
0
        public ActionResult Post(RequisitionHeaderViewModel svm)
        {
            RequisitionHeader s = Mapper.Map <RequisitionHeaderViewModel, RequisitionHeader>(svm);

            #region BeforeSave
            bool BeforeSave = true;
            try
            {
                if (svm.RequisitionHeaderId <= 0)
                {
                    BeforeSave = MaterialRequestDocEvents.beforeHeaderSaveEvent(this, new StockEventArgs(svm.RequisitionHeaderId, EventModeConstants.Add), ref context);
                }
                else
                {
                    BeforeSave = MaterialRequestDocEvents.beforeHeaderSaveEvent(this, new StockEventArgs(svm.RequisitionHeaderId, EventModeConstants.Edit), ref context);
                }
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXC"] += message;
                EventException     = true;
            }
            if (!BeforeSave)
            {
                TempData["CSEXC"] += "Failed validation before save";
            }
            #endregion

            #region DocTypeTimeLineValidation

            try
            {
                if (svm.RequisitionHeaderId <= 0)
                {
                    TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(svm), DocumentTimePlanTypeConstants.Create, User.Identity.Name, out ExceptionMsg, out Continue);
                }
                else
                {
                    TimePlanValidation = DocumentValidation.ValidateDocument(Mapper.Map <DocumentUniqueId>(svm), DocumentTimePlanTypeConstants.Modify, User.Identity.Name, out ExceptionMsg, out Continue);
                }
            }
            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                TempData["CSEXC"] += message;
                TimePlanValidation = false;
            }

            if (!TimePlanValidation)
            {
                TempData["CSEXC"] += ExceptionMsg;
            }

            #endregion

            if (svm.MaterialRequestSettings != null)
            {
                if (svm.MaterialRequestSettings.isMandatoryCostCenter == true && (svm.CostCenterId <= 0 || svm.CostCenterId == null))
                {
                    ModelState.AddModelError("CostCenterId", "The CostCenter field is required");
                }
            }

            if (ModelState.IsValid && BeforeSave && !EventException && (TimePlanValidation || Continue))
            {
                #region CreateRecord
                if (svm.RequisitionHeaderId <= 0)
                {
                    s.CreatedDate  = DateTime.Now;
                    s.ModifiedDate = DateTime.Now;
                    s.CreatedBy    = User.Identity.Name;
                    s.ModifiedBy   = User.Identity.Name;
                    s.Status       = (int)StatusConstants.Drafted;
                    s.ObjectState  = Model.ObjectState.Added;
                    context.RequisitionHeader.Add(s);
                    //_RequisitionHeaderService.Create(s);

                    try
                    {
                        MaterialRequestDocEvents.onHeaderSaveEvent(this, new StockEventArgs(s.RequisitionHeaderId, EventModeConstants.Add), ref context);
                    }
                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        TempData["CSEXC"] += message;
                        EventException     = true;
                    }


                    try
                    {
                        if (EventException)
                        {
                            throw new Exception();
                        }
                        context.SaveChanges();
                        //_unitOfWork.Save();
                    }

                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        TempData["CSEXC"] += message;
                        PrepareViewBag(svm.DocTypeId);
                        ViewBag.Mode = "Add";
                        return(View("Create", svm));
                    }

                    try
                    {
                        MaterialRequestDocEvents.afterHeaderSaveEvent(this, new StockEventArgs(s.RequisitionHeaderId, EventModeConstants.Add), ref context);
                    }
                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        TempData["CSEXC"] += message;
                    }

                    LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                    {
                        DocTypeId    = s.DocTypeId,
                        DocId        = s.RequisitionHeaderId,
                        ActivityType = (int)ActivityTypeContants.Added,
                        DocNo        = s.DocNo,
                        DocDate      = s.DocDate,
                        DocStatus    = s.Status,
                    }));

                    return(RedirectToAction("Modify", "MaterialRequestHeader", new { Id = s.RequisitionHeaderId }).Success("Data saved successfully"));
                }
                #endregion

                #region EditRecord
                else
                {
                    List <LogTypeViewModel> LogList = new List <LogTypeViewModel>();

                    RequisitionHeader temp = _RequisitionHeaderService.Find(s.RequisitionHeaderId);

                    RequisitionHeader ExRec = new RequisitionHeader();
                    ExRec = Mapper.Map <RequisitionHeader>(temp);

                    int status = temp.Status;

                    if (temp.Status != (int)StatusConstants.Drafted && temp.Status != (int)StatusConstants.Import)
                    {
                        temp.Status = (int)StatusConstants.Modified;
                    }


                    temp.DocDate      = s.DocDate;
                    temp.DocNo        = s.DocNo;
                    temp.PersonId     = s.PersonId;
                    temp.Remark       = s.Remark;
                    temp.ModifiedDate = DateTime.Now;
                    temp.ModifiedBy   = User.Identity.Name;
                    //_RequisitionHeaderService.Update(temp);
                    temp.ObjectState = Model.ObjectState.Modified;
                    context.RequisitionHeader.Add(temp);

                    LogList.Add(new LogTypeViewModel
                    {
                        ExObj = ExRec,
                        Obj   = temp,
                    });

                    XElement Modifications = new ModificationsCheckService().CheckChanges(LogList);

                    try
                    {
                        MaterialRequestDocEvents.onHeaderSaveEvent(this, new StockEventArgs(temp.RequisitionHeaderId, EventModeConstants.Edit), ref context);
                    }
                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        TempData["CSEXC"] += message;
                        EventException     = true;
                    }


                    try
                    {
                        if (EventException)
                        {
                            throw new Exception();
                        }

                        context.SaveChanges();
                        //_unitOfWork.Save();
                    }

                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        TempData["CSEXC"] += message;
                        PrepareViewBag(svm.DocTypeId);
                        ViewBag.id = svm.DocTypeId;
                        return(View("Create", svm));
                    }

                    try
                    {
                        MaterialRequestDocEvents.afterHeaderSaveEvent(this, new StockEventArgs(s.RequisitionHeaderId, EventModeConstants.Edit), ref context);
                    }
                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        TempData["CSEXC"] += message;
                    }

                    LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
                    {
                        DocTypeId       = temp.DocTypeId,
                        DocId           = temp.RequisitionHeaderId,
                        ActivityType    = (int)ActivityTypeContants.Modified,
                        DocNo           = temp.DocNo,
                        xEModifications = Modifications,
                        DocDate         = temp.DocDate,
                        DocStatus       = temp.Status,
                    }));


                    return(RedirectToAction("Index", new { id = svm.DocTypeId }).Success("Data saved successfully"));
                }
                #endregion
            }
            PrepareViewBag(svm.DocTypeId);
            ViewBag.Mode = "Add";
            return(View("Create", svm));
        }
예제 #19
0
        public RequisitionHeaderDTO Add(RequisitionHeaderDTO reqHeaderDTO)
        {
            var response = _projectRequisitionRepository.Add(RequisitionHeader.MapFromDomainEntity(reqHeaderDTO));

            return(RequisitionHeaderDTO.MapFromDatabaseEntity(response));
        }
 public RequisitionHeader Create(RequisitionHeader s)
 {
     s.ObjectState = ObjectState.Added;
     _unitOfWork.Repository <RequisitionHeader>().Insert(s);
     return(s);
 }
 public void Delete(RequisitionHeader s)
 {
     _unitOfWork.Repository <RequisitionHeader>().Delete(s);
 }
예제 #22
0
 public string GetLocation(RequisitionHeader requisitionHeader)
 {
     return($"/logistics/requisitions/{requisitionHeader.ReqNumber}");
 }