public ActionResult ContractSave(MODEL.Contract contract)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //Valiate the currency
                    ValidateCurrency(contract);

                    //to check whether EarlyTerminationDate is entered when AtRisk is Yes
                    if ((contract.AtRisk == 0) || ((contract.AtRisk == 1) && (contract.EarlyTerminationDate != null)))
                    {
                        //Get user id
                        int?            userId          = Session.GetUserId();
                        ContractService contractService = new ContractService();
                        //ContractVO contractVO = new ContractVO(contract, userId);

                        ContractVO contractVO = contract.Transpose(userId);

                        contractService.SaveContract(contractVO);

                        //Get customer comment for the selected customer and company
                        contract.CustomerComment = GetCustomerComment(contractVO.CompanyId, contractVO.InvoiceCustomerId);
                        //Set the flag to identify if to reload the page.
                        //If true means creating  new contract and reload the page.
                        //Else only update the contract header related details and remain on same page.
                        bool isNewRecord = contract.ID <= 0 ? true : false;
                        //return Json(new List<object>() { contractVO.CompanyId, contractVO.ID, isNewRecord });
                        return(Json(new List <object>()
                        {
                            contractVO.CompanyId, contractVO.ID, isNewRecord, contractVO.InvoiceCustomerId, contract.CustomerComment
                        }));
                    }
                    else
                    {
                        return(new HttpStatusCodeAndErrorResult(500, String.Format(Constants.CANNOT_SAVE, Constants.CONTRACT)));
                    }
                }
                else
                {
                    foreach (var item in ModelState)
                    {
                        if (item.Key == "EarlyTerminationDate" && item.Value.Errors.Count > 0)
                        {
                            return(new HttpStatusCodeAndErrorResult(500, String.Format("Early Termination Date should be in dd/MM/yyyy format")));
                        }
                    }
                    return(new HttpStatusCodeAndErrorResult(500, String.Format(Constants.CANNOT_SAVE, Constants.CONTRACT)));
                }
            }
            catch (Exception e)
            {
                return(new HttpStatusCodeAndErrorResult(500, e.Message));
            }
        }
        public ActionResult SaveContractCopy(int contractId)
        {
            try
            {
                //Get user id
                int?            userId          = Session.GetUserId();
                ContractService contractService = new ContractService();

                ContractVO contractVO = new ContractVO();
                contractVO = contractService.GetContractById(contractId);
                MODEL.Contract contract = new MODEL.Contract(contractVO);
                contractVO = contract.Transpose(userId);

                contractService.SaveCopyContract(contractVO, userId);
                //Get customer comment for the selected customer and company
                //contract.CustomerComment = GetCustomerComment(contractVO.CompanyId, contractVO.InvoiceCustomerId);

                return(new HttpStatusCodeResult(200));
            }
            catch (Exception e)
            {
                return(new HttpStatusCodeAndErrorResult(500, e.Message));
            }
        }