using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Ease.CoreV35; using Ease.CoreV35.DataAccess; using System.Data; using HRM.BO; using Payroll.BO; using Ease.Core.DataAccess; namespace Payroll.BO { public class ClaimRequisition : BasicBaseObject, IworkflowInterface { #region Constructor public ClaimRequisition() { this.RequsitionStatus = EnumClaimRequsitionStatus.Darft; JVStatus = false; PayrollTypeID = null; BranchID = null; BankID = null; ClaimProcessDate = DateTime.MinValue; } #endregion #region Properties public bool JVStatus { get; set;} public string RequisitionNo { get; set; } public DateTime ClaimDate { get; set;} public DateTime? ClaimProcessDate { get; set;} public double ClaimAmount { get; set; } public string Reason { get; set;} public string Remarks { get; set;} public int ClaimBasicID { get; set; } public ClaimBasic Claim { get; set; } public int ClaimRuleID { get; set; } public EnumClaimRequsitionStatus RequsitionStatus { get; set; } public int EmployeeID { get; set; } public int CostCenterID { get; set; } public string GLCode { get; set; } public string GLSide { get; set; } public string GLSideCode { get; set; } public bool PaymentDone { get; set; } public int ParentID { get; set; } public int OnBehalfEmplID { get; set; } public DateTime SalaryMonth { get; set; } public DateTime? SalaryPaidMonth { get; set; } public int? BankID { get; set; } public int? BranchID { get; set; } public int? PayrollTypeID { get; set; } public List ClaimRequisitionItems { get; set; } public List ClaimRequisitionAttachments { get; set; } public List ClaimRequisitionRelations { get; set; } public List IRFileAttacments { get; set; } public Employee Employee { get; set;} public string Description { get; set; } public string InitiatorRemarks { get; set; } public bool? IsOnBehalf { get; set; } public bool? IsAdvance { get; set; } public bool? IsExpense { get; set; } public int? AdvanceItemId { get; set; } public string Name { get; set; } public string EmailAddress { get; set; } public string EmployeeNo { get; set; } public string Designation { get; set; } public string ConnectionString { get; set; } public string RequisitionString { get; set; } public dynamic? Field1 { get; set; } public dynamic? Field2 { get; set; } public dynamic? Field3 { get; set; } public dynamic? Field4 { get; set; } public EnumClaimPaymentType? PaymentType { get; set; } public bool? IsPayment { get; set; } public string PaymentRemarks { get; set; } public int PaidBy { get; set; } //public dynamic Field1ConvertValue { get; set; } //public dynamic Field2ConvertValue { get; set; } //public dynamic Field3ConvertValue { get; set; } //public dynamic Field4ConvertValue { get; set; } public string tempFileTobase64 { get; set; } public string ObjectDescription { get { string str = ""; //if (true) //{ // str = this.Employee.Name + " has applied for monthly claim " + " on " + Convert.ToDateTime(this.ClaimDate).ToString("dd MMMM yyyy") + ". ";//"of "+ this.ClaimProcessDate.ToString("MMM yyyy") //} return str; } } /// /// this property is used for work flow, it's a constant value /// public int SetupID { get { return 4; // int payrollTypeId = 0;// SystemInformation.CurrentSysInfo.PayrollTypeID.Integer; ////switch (ClaimBasicID){ //// case 1: //// if (payrollTypeId == 1) //// return ID.FromInteger(4); //// else //// return ID.FromInteger(20); //// case 2: // if (payrollTypeId == 1) // return 3; // else // return 4; // case 3: //if (payrollTypeId == 1) // return ID.FromInteger(5); //else // return ID.FromInteger(22); //case 4: // if (payrollTypeId == 1) // return ID.FromInteger(6); // else // return ID.FromInteger(23); //case 5: // if (payrollTypeId == 1) // return ID.FromInteger(7); // else // return ID.FromInteger(24); //case 6: // if (payrollTypeId == 1) // return ID.FromInteger(8); // else // return ID.FromInteger(25); //case 7: // if (payrollTypeId == 1) // return ID.FromInteger(9); // else // return ID.FromInteger(26); //case 8: // if (payrollTypeId == 1) // return ID.FromInteger(10); // else // return ID.FromInteger(27); //case 9: // if (payrollTypeId == 1) // return ID.FromInteger(11); // else // return ID.FromInteger(28); //case 10: // if (payrollTypeId == 1) // return ID.FromInteger(12); // else // return ID.FromInteger(29); //case 11: // if (payrollTypeId == 1) // return ID.FromInteger(13); // else // return ID.FromInteger(8); //case 12: // if (payrollTypeId == 1) // return ID.FromInteger(14); // else // return ID.FromInteger(8); //case 13: // if (payrollTypeId == 1) // return ID.FromInteger(15); // else // return ID.FromInteger(8); //default: // if (payrollTypeId == 1) // return ID.FromInteger(16); // else // return ID.FromInteger(31); } } // switch (ClaimBasicID) //{ // case 1: // get { return ID.FromInteger(7); } // break; // case 2: // get { return ID.FromInteger(7); } // break; // default: // get { return ID.FromInteger(7); } //} /// /// this property is used for work flow, which return leave entry id /// public int ObjectID { get { return this.ID; } } } #endregion #region IClaimRequisitionService Service public interface IClaimRequisitionService { ClaimRequisition Get(int id); ClaimRequisition Get(int id, TransactionContext tc); List GetByIds(string id); DataSet GetClaimReqsByIds(string id); List GetClaimRequisitionItem(string id); ClaimRequisition GetClaimReqById(int id); DataSet GetFilteredClaimReqsByIds(string id, DateTime fromDate, DateTime toDate, string employeeNo, string employeeName); DataTable GetClaimRequisitionItemsInGrid(string id); DataTable GetSignatures(int objectId, int wftypeId); DataTable GetSignaturesByUniqueNumber(int uniqueNumber, int wftypeId); DataTable GetClaimRequisitionHistory(int id); DataTable GetClaimAttachmentsInGrid(string id); List Get(); List GetByClaimRequisitionID(int claimRequisitionID); ClaimRequisition GetByClaimRequisitionID2(int claimRequisitionID); int Save(ClaimRequisition item); int SaveFromLineManager(ClaimRequisition item); void Save(List _claimRequisitionItems); void Delete(int id); void DeleteByClaimRequisitionID(int id); ClaimRequisitionItem GetClaimRequisitionItem(int id); List GetClaimRequisitionItems(); List GetClaimRequisitionItemByClaimRequisitionID(TransactionContext tc,int claimBasicID); int SaveClaimRequisitionItems(ClaimRequisitionItem item); void SaveClaimRequisitionItems(List _claimBasicItems); void DeleteClaimRequisitionItems(int id); void DeleteClaimRequisitionItemByClaimRequisitionID(int id); ClaimRequisitionAttachment GetClaimRequisitionAttachment(int id); List GetClaimRequisitionAttachments(); List GetClaimRequisitionAttachmentByClaimRequisitionID(int claimBasicID); int SaveClaimRequisitionAttachments(ClaimRequisitionAttachment item); void SaveClaimRequisitionAttachments(List _claimBasicItems); void DeleteClaimRequisitionAttachments(int id); void DeleteClaimRequisitionAttachmentByClaimRequisitionID(int id); ClaimRequisitionRelation GetClaimRequisitionRelation(int id); List GetClaimRequisitionRelations(); List GetClaimRequisitionRelationsByItemId(int id); List GetClaimRequisitionRelationByClaimRequisitionID(int claimBasicID); int SaveClaimRequisitionRelations(ClaimRequisitionRelation item); void SaveClaimRequisitionRelations(List _claimBasicItems); void DeleteClaimRequisitionRelations(int id); void DeleteClaimRequisitionRelationByClaimRequisitionID(int id); DataSet ClaimForAdmin(DateTime frmDate, DateTime toDate, int claimBasicId, string status, int employeeId); DataSet GetItemByClaimRquisitonId(string claimRequisitionIds); DataSet GetClaimReqisitionRelationByClaimRquisitonId(string claimRequisitionIds); List GetClaimRequistionByClIdAndMonth(int claimBasicId, DateTime salaryMonth, int wf); List Get(int claimBasicId, int employeeId); List GetClaimRequistionByClaimPaymentID(string claimBasicId, int wf); void UpdateClaimRwquisitionStatus(string _claimRequisitionIDs); DataSet GetEmpClaims(DateTime salaryMonth, string sEmpID); ClaimRequisition GetClaimByprocessDate(EnumwfStatus enumwfStatus, int empID); void SaveClaimRequisitionItems(TransactionContext tc, List _claimBasicItems); void DeleteClaimRequisitionItemByClaimRequisitionID(TransactionContext tc, int id); void DeleteClaimRequisitionRelationByClaimRequisitionID(TransactionContext tc, int id); void SaveClaimRequisitionRelations(TransactionContext tc, List _claimBasicItems); DataSet GetClaimBalanceInfo(DateTime fromdate, DateTime toDate, string sSQL, int status); List GetIRFileAttachments(int claimRequisitionID); void ApproveClaimRequisition(WFMovementTran approver); void claimRequisitionReject(WFMovementTran rejectTran); List GetAllClaimRequisition(DateTime fromDate, DateTime toDate, int employeeId, EnumClaimRequsitionStatus? status); DataTable GetPendingList(int approverid, string ids, DateTime fromDate, DateTime toDate); List GetClaimReqsByEmployeeIds(DateTime fromDate, DateTime toDate, string employeeIds, int currentUserID, EnumClaimWFStatus? appstatus, EnumClaimPaymentType? paymentType); void UpdateClaimPaymentType(ClaimRequisition item); FileAttachment GetByRefChildId(int claimRequisitionId, int claimreqItemId); void ApproveClaimRequisitions(List approverList); void claimRequisitionRejects(List rejectTranList); List GetClaimDisbursementReport(string ids, DateTime fromDate, DateTime toDate, int currentUserID, EnumClaimWFStatus? appstatus, EnumClaimPaymentType? paymentType); void UpdateClaimPaymentStatusByClaimId(string ids, EnumClaimPaymentType? claimPaymentType, string remarks, int currentUserID); List GetClaimReportEcport(DateTime fromDate, DateTime toDate, EnumClaimRequsitionStatus? status, int currentUserID); double GetClearanceAmount(int empid); List GetPrevAdavancedAmountbyEmployeeId(int employeeId); ClaimRequisition GetByClaimId(int id, TransactionContext tc); } #endregion }