public async Task <HttpResponseMessage> Post([FromBody] LoanAndAdvanceModel mLoanAndAdvanceModel)
        {
            var    formatter = RequestFormat.JsonFormaterString();
            string msg       = "";

            try
            {
                if (mLoanAndAdvanceModel.EmployeeId == 0)
                {
                    return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                        Output = "error", Msg = "Employee Code is Empty"
                    }, formatter));
                }
                else
                {
                    msg = await _loanAndAdvanceGatway.Save(mLoanAndAdvanceModel);

                    return(Request.CreateResponse(HttpStatusCode.OK,
                                                  new Confirmation {
                        Output = "success", Msg = msg
                    }, formatter));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                    Output = "error", Msg = ex.ToString()
                }, formatter));
            }
        }
        public Task <string> Save(LoanAndAdvanceModel aModel)
        {
            try
            {
                string query = @"INSERT INTO tbl_HR_LOAN_LEDGER (EmpId,TrNo,TrDate,MonthId,AttYear,LoanTypeId,LoanNo,LoanAmt,InstallmentSize,PaidAmount,ExcemptAmount,LoanAndAdvance,
                                 LoanStatus,UserName,EntryDate,EntryTime) VALUES (@EmpId,@TrNo,@TrDate,@MonthId,@AttYear,@LoanTypeId,@LoanNo,@LoanAmt,@InstallmentSize,0,0,
                                       @LoanAndAdvance,'take','NotDevelopment',@EntryDate,'') ";


                Con.Open();

                _trans = Con.BeginTransaction();
                string   trNo  = GetTrNo("TrNo", "tbl_HR_LOAN_LEDGER", _trans);
                DateTime today = DateTime.Today;

                var cmd = new SqlCommand(query, Con, _trans);

                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@EmpId", aModel.EmployeeId);
                cmd.Parameters.AddWithValue("@TrNo", trNo);
                cmd.Parameters.AddWithValue("@TrDate", today.ToString("yyyy-MM-dd"));
                cmd.Parameters.AddWithValue("@MonthId", today.ToString("MM"));
                cmd.Parameters.AddWithValue("@AttYear", today.ToString("yyyy"));
                cmd.Parameters.AddWithValue("@LoanTypeId", aModel.LoanType);
                cmd.Parameters.AddWithValue("@LoanNo", aModel.LoanId);
                cmd.Parameters.AddWithValue("@LoanAmt", aModel.LoanAmound);
                cmd.Parameters.AddWithValue("@InstallmentSize", aModel.InstallmentAmound);
                cmd.Parameters.AddWithValue("@LoanAndAdvance", aModel.LoanAndAdvance);
                //cmd.Parameters.AddWithValue("@LoanStatus", aModel.SequentialStatuss);
                //cmd.Parameters.AddWithValue("@ProjectId", aModel.ProjectId);
                cmd.Parameters.AddWithValue("@EntryDate", today.ToString("yyyy-MM-dd"));
                //cmd.Parameters.AddWithValue("@EntryTime", today.ToLongTimeString());

                cmd.ExecuteNonQuery();
                string query2 = @"update tbl_HR_GLO_EMPLOYEE_DLS SET Amount = @InstallmentAmound where EmpId = @EmpId AND SalaryTypeId = @LoanTypeId";
                var    cmd2   = new SqlCommand(query2, Con, _trans);
                cmd2.Parameters.Clear();
                cmd2.Parameters.AddWithValue("@InstallmentAmound", aModel.InstallmentAmound);
                cmd2.Parameters.AddWithValue("@EmpId", aModel.EmployeeId);
                cmd2.Parameters.AddWithValue("@LoanTypeId", aModel.LoanType);
                cmd2.ExecuteNonQuery();
                _trans.Commit();
                Con.Close();
                return(Task.FromResult <string>("Save uccess"));
            }
            catch (Exception exception)
            {
                if (Con.State == ConnectionState.Open)
                {
                    Con.Close();
                }
                return(Task.FromResult(exception.Message));
            }
        }