Esempio n. 1
0
        public JsonResult Edit(WorkingStatus model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Json(new { Result = "ERROR", Message = "Form is not valid! Please correct it and try again." }));
                }

                WorkingStatus itemFound = WorkingStatusManager.GetById(model.kWorkingStatusId);
                if (itemFound == null)
                {
                    return(Json(new { Result = "ERROR", Message = "Item Not Found" }));
                }

                WorkingStatusManager.Edit(model);
                return(Json(new { Result = "OK" }));
            }
            catch (Exception ex)
            {
                return(Json(new { Result = "ERROR", Message = ex.Message }));
            }
        }
Esempio n. 2
0
        public JsonResult EditClaim(Claim claim_sending, ClaimStatus status_sending)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Json(new { Result = "ERROR", Message = "Form is not valid! Please correct it and try again." }));
                }

                Repair repair    = null;
                Claim  itemFound = ClaimManager.GetById(claim_sending.kClaimId);
                if (itemFound == null)
                {
                    return(Json(new { Result = "ERROR", Message = "Item Not Found" }));
                }
                if (itemFound.IsComplete == true)
                {
                    return(Json(new { Result = "ERROR", Message = "ปิด job!" }));
                }

                var status = WorkingStatusManager.GetById(status_sending.kWorkingStatusId);
                if (status.iDefault == (int)Working.ConfirmRepair && claim_sending.IsRecieved != true)
                {
                    return(Json(new { Result = "ERROR", Message = "ตรวจรับสินค้า!" }));
                }


                bool isStatusChange = false;
                if (status_sending.kWorkingStatusId != itemFound.kWorkingStatusId)
                {
                    #region update claim status side
                    if (status.iDefault == (int)Working.ConfirmRepair)
                    {
                        status_sending.kStaffId = itemFound.kOwnerId.Value;
                    }
                    else
                    {
                        status_sending.kStaffId = (Guid)Membership.GetUser().ProviderUserKey;
                    }
                    status_sending.dtDateAdd      = DateTime.Now;
                    status_sending.kClaimStatusId = Guid.NewGuid();
                    ClaimStatusManager.Create(status_sending);

                    #endregion

                    #region also update repair status side
                    if (!String.IsNullOrEmpty(itemFound.sRepairNo))
                    {
                        repair = RepairManager.GetByRepairNo(itemFound.sRepairNo);
                        RepairStatus repairStatus = new RepairStatus
                        {
                            kStaffId         = itemFound.kOwnerId.Value,
                            kRepairId        = repair.kRepairId,
                            kWorkingStatusId = status_sending.kWorkingStatusId,
                            kRepairStatusId  = Guid.NewGuid()
                        };
                        RepairStatusManager.Create(repairStatus);
                    }
                    #endregion

                    isStatusChange = true;
                }


                #region update claim
                //assign claim
                itemFound.dtDateUpdate = DateTime.Now;
                itemFound.IsRecieved   = claim_sending.IsRecieved;
                itemFound.IsNoCredit   = claim_sending.IsNoCredit;
                if (isStatusChange)
                {
                    itemFound.kStaffId = itemFound.kOwnerId.Value;
                }
                ClaimManager.Edit(itemFound);
                #endregion

                #region update repair
                if (isStatusChange)
                {
                    if (repair != null)
                    {
                        repair.kStaffId = status_sending.kStaffId;
                    }
                    RepairManager.Edit(repair);
                }
                #endregion

                if (isStatusChange)
                {
                    //create remind for history
                    RemindHistory remind = new RemindHistory
                    {
                        sRemind  = itemFound.vMessage,
                        kStaffId = itemFound.kOwnerId.Value
                    };
                    RemindHistoryManager.Create(remind);

                    var clientName = User.Identity.Name;
                    Task.Factory.StartNew(() =>
                    {
                        var clients = Hub.GetClients <RealTimeJTableDemoHub>();
                        clients.RecordUpdated(clientName, itemFound);
                    });
                }

                return(Json(new { Result = "OK", Records = itemFound }));
            }
            catch (Exception ex)
            {
                return(Json(new { Result = "ERROR", Message = ex.Message }));
            }
        }