private async Task <AccountTafzili> CalcAccountByCodeTafziliAsync(int organId, string code) { var organId2 = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId); decimal amount = 0; TransactionRule transactionRule = new TransactionRule(); var transactions = await transactionRule.GetAllByOrganIdAsync(organId2); AccountRule accountRule = new AccountRule(); var accounts = await accountRule.GetAllByOrganIdAsync(organId); var operatinIncomeAccount = accounts.Where(x => x.ComplteCoding == code).SingleOrDefault(); var selected = transactions.Where(a => a.AccountId == operatinIncomeAccount.ID).ToList(); AccountTafzili accountTafzili = new AccountTafzili(); if (selected.Any()) { accountTafzili.sumCredit = selected.Sum(x => x.Credit); accountTafzili.sumDebit = selected.Sum(x => x.Debit); accountTafzili.sumTotal = accountTafzili.sumDebit - accountTafzili.sumCredit; } return(accountTafzili); }
internal string SaveTransactionRule(TransactionRule rule, string BankCode) { try { string CreateDate = DateTime.Now.ToString("yyyy-MM-dd"); string ModifyDate = CreateDate; command = CbDatabase.GetStoredProcCommand("TransactionRules_Update", rule.Id, rule.RuleName, rule.RuleCode, rule.RuleCode, rule.RuleName, rule.UserId, rule.Description, rule.MinimumAmount, rule.MaximumAmount, rule.IsActive, rule.BankCode, rule.BranchCode, rule.ModifiedOn, rule.ModifiedBy, rule.Approver ); DataTable datatable = CbDatabase.ExecuteDataSet(command).Tables[1]; return(datatable.Rows[0][0].ToString()); } catch (Exception ex) { throw ex; } }
public void Add(TransactionRule model) { var entity = MapToTable(model); ValidateIfExists(entity); ruleRepository.Add(entity); ApplyRuleToExistingTransactions(entity); }
public virtual async Task <HttpResponseMessage> GetAllByOrganId() { var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId); var list = await Rule.GetAllByOrganIdAsync(Convert.ToInt32(organId)); AccountRule accountRule = new AccountRule(); var accounts = await accountRule.GetAllByOrganIdAsync(organId); CashVM cashVM = new CashVM(); List <CashVM> cashVMs = new List <CashVM>(); foreach (var item in list) { var cashAccount = accounts.Where(x => x.ComplteCoding == "1101" + item.Code).SingleOrDefault(); TransactionRule transactionRule = new TransactionRule(); BalanceModelVM transaction = await transactionRule.GetBalanceAccountAsync(cashAccount.ID); cashVM = new CashVM(); cashVM.Balance = item.Balance; cashVM.Code = item.Code; cashVM.DetailAccount = new DetailAccount() { Accounts = new List <AccountVM>() { new AccountVM() { Balance = transaction.Balance, BalanceType = transaction.BalanceType, Code = cashAccount.Coding, Coding = cashAccount.Coding, credit = transaction.Credit, debit = transaction.Debit, ID = cashAccount.ID, ParentId = cashAccount.ParentId, Name = cashAccount.Name, } }, Code = cashAccount.Coding, Id = cashAccount.ID, Balance = transaction.Balance, credit = transaction.Credit, debit = transaction.Debit, BalanceType = transaction.BalanceType, Name = cashAccount.Name, }; cashVM.ID = item.ID; cashVM.Name = item.Name; cashVM.OrganId = item.OrganId; cashVMs.Add(cashVM); } return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = (int)ZhivarEnums.ResultCode.Successful, data = cashVMs })); }
private BankTransactionRule MapToTable(TransactionRule model) { return(new BankTransactionRule() { RuleID = model.RuleID, Description = model.Description, Tag = model.Tag, TagGroup = model.TagGroup, IsTransfer = model.IsTransfer }); }
public bool Exists(Object obj) { string className = GetClassNameByReflection(obj); switch (className.ToUpper()) { case "ACCOUNTTYPE": AccountType type = obj as AccountType; return(TrueIfExists(className, type.AccTypeCode, type.BankCode)); case "BANK": Bank bank = obj as Bank; return(TrueIfExists(className, bank.BankCode, bank.BankCode)); case "BANKACCOUNT": BankAccount bankAcc = obj as BankAccount; return(TrueIfExists(className, bankAcc.AccountNumber, bankAcc.BankCode)); case "BANKBRANCH": BankBranch branch = obj as BankBranch; return(TrueIfExists(className, branch.BranchCode, branch.BankCode)); case "BANKCHARGE": BankCharge charge = obj as BankCharge; return(TrueIfExists(className, charge.ChargeCode, charge.BankCode)); case "BANKUSER": BankUser user = obj as BankUser; return(TrueIfExists(className, user.Id, user.BankCode)); case "CHARGETYPE": ChargeType chargeType = obj as ChargeType; return(TrueIfExists(className, chargeType.ChargeTypeCode, chargeType.BankCode)); case "CURRENCY": Currency currency = obj as Currency; return(TrueIfExists(className, currency.CurrencyCode, currency.BankCode)); case "PAYMENTTYPE": PaymentType payType = obj as PaymentType; return(TrueIfExists(className, payType.PaymentTypeCode, payType.BankCode)); case "TRANSACTIONCATEGORY": TransactionCategory tranCategory = obj as TransactionCategory; return(TrueIfExists(className, tranCategory.TranCategoryCode, tranCategory.BankCode)); case "TRANSACTIONRULE": TransactionRule rule = obj as TransactionRule; return(TrueIfExists(className, rule.RuleCode, rule.BankCode)); default: return(false); } }
public Result SaveTransactionRule(TransactionRule rule, string BankCode) { Result result = new Result(); result.RequestId = rule.Id; string Id = dh.SaveTransactionRule(rule, BankCode); result.StatusCode = "0"; result.StatusDesc = "SUCCESS"; result.PegPayId = Id; return(result); }
public Result SaveTransactionRule(TransactionRule rule, string BankCode) { Result result = new Result(); result.RequestId = rule.Id; LogChangesInAuditLog(rule, rule.RuleCode, rule.BankCode, rule.ModifiedBy); string Id = dh.SaveTransactionRule(rule, BankCode); result.StatusCode = "0"; result.StatusDesc = "SUCCESS"; result.PegPayId = Id; return(result); }
private TransactionRule GetTransactionRule() { TransactionRule rule = new TransactionRule(); rule.Approver = ddApprover.SelectedValue; rule.BankCode = ddBank.SelectedValue; rule.BranchCode = ddBank.SelectedValue; rule.Description = ""; rule.Id = ""; rule.IsActive = ddIsActive.Text; rule.MaximumAmount = txtMaxAmount.Text; rule.MinimumAmount = txtMinAmount.Text; rule.ModifiedBy = user.Id; rule.RuleCode = txtRuleCode.Text; rule.RuleName = txtRuleName.Text; rule.UserId = txtUserId.Text; return(rule); }
public async Task <HttpResponseMessage> LoadCostTransObj([FromBody] int id) { try { var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId); var cost = await Rule.FindAsync(id); CostTransObj costTransObj = new CostTransObj(); costTransObj.cost = Mapper.Map <CostVM>(cost); costTransObj.costItems = costTransObj.cost.CostItems; TransactionRule transactionRule = new TransactionRule(); costTransObj.payments = await transactionRule.GetAllByCostIdAsync(id); for (int i = 0; i < costTransObj.costItems.Count; i++) { costTransObj.costItems[i].Item = await this.BusinessRule.UnitOfWork.RepositoryAsync <DomainClasses.Accounting.Account>().FindAsync(costTransObj.costItems[i].ItemId); } ContactRule contactRule = new ContactRule(); costTransObj.cost.Contact = Mapper.Map <ContactVM>(await contactRule.FindAsync(cost.ContactId)); CashRule cashRule = new CashRule(); var cashes = await cashRule.GetAllByOrganIdAsync(Convert.ToInt32(organId)); costTransObj.cashes = Mapper.Map <List <CashVM> >(cashes); BankRule bankRule = new BankRule(); var banks = await bankRule.GetAllByOrganIdAsync(Convert.ToInt32(organId)); costTransObj.banks = Mapper.Map <List <BankVM> >(banks); return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = ZhivarEnums.ResultCode.Successful, data = costTransObj })); } catch (Exception ex) { throw; } }
private async Task <decimal> CalcBalanceBank(string code, int organId) { AccountRule accountRule = new AccountRule(); var accounts = await accountRule.GetAllByOrganIdAsync(organId); var account = accounts.Find(x => x.ComplteCoding == "1103" + code || x.ComplteCoding == "2102" + code || x.ComplteCoding == "1106" + code); TransactionRule transactionRule = new TransactionRule(); var transactions = await transactionRule.GetAllByOrganIdAsync(organId); transactions = transactions.FindAll(x => x.AccountId == account.ID); decimal credit = 0; decimal debit = 0; foreach (var item in transactions) { credit += item.Credit; debit += item.Debit; } return(debit - credit); }
public Result SaveTransactionRule(TransactionRule rule, string BankCode, string Password) { Result result = new Result(); try { if (rule.IsValid(BankCode, Password)) { result = bll.SaveTransactionRule(rule, BankCode); } else { result.StatusCode = rule.StatusCode; result.StatusDesc = rule.StatusDesc; } } catch (Exception ex) { result.StatusCode = "100"; result.StatusDesc = "FAILED: " + ex.Message; } return(result); }
protected void btnSubmit_Click(object sender, EventArgs e) { try { TransactionRule rule = GetTransactionRule(); Result result = client.SaveTransactionRule(rule, user.BankCode, bll.BankPassword); if (result.StatusCode == "0") { string msg = "SUCCESS: TRANSACTION RULE CREATED WITH RULECODE = [" + result.PegPayId + "]"; bll.ShowMessage(lblmsg, msg, false); } else { string msg = result.StatusDesc; bll.ShowMessage(lblmsg, msg, true); } } catch (Exception ex) { string msg = "FAILED: " + ex.Message; bll.ShowMessage(lblmsg, msg, true); } }
private async Task <ResponseAccountBalance> CalcAccountByCodeAsync(int organId, string code, BalanceType balanceType) { var organId2 = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId); var responseAccountBalance = new ResponseAccountBalance(); decimal amount = 0; TransactionRule transactionRule = new TransactionRule(); var transactions = await transactionRule.GetAllByOrganIdAsync(organId); AccountRule accountRule = new AccountRule(); var accounts = await accountRule.GetAllByOrganIdAsync(organId); var operatinIncomeAccount = accounts.Where(x => x.ComplteCoding == code).SingleOrDefault(); var accountsMoienQuery = accounts.AsQueryable().Where(x => x.ParentId == operatinIncomeAccount.ID); var allAccountQuery = accounts.AsQueryable(); List <int> childIds = (from account in accountsMoienQuery select account.ID).ToList(); List <int> childChildIds = (from account in allAccountQuery join accountsMoien in accountsMoienQuery on account.ParentId equals accountsMoien.ID select account.ID).ToList(); var selected = transactions.Where(a => a.AccountId == operatinIncomeAccount.ID || childIds.Contains(a.AccountId) || childChildIds.Contains(a.AccountId)).ToList(); responseAccountBalance.Type = 2; if (selected.Any()) { var credit = selected.Sum(x => x.Credit); var debit = selected.Sum(x => x.Debit); if (balanceType == BalanceType.Debit) { amount = debit - credit; if (amount > 0) { responseAccountBalance.Type = 0; } else { responseAccountBalance.Type = 1; } } else if (balanceType == BalanceType.Credit) { amount = credit - debit; if (amount < 0) { responseAccountBalance.Type = 0; } else { responseAccountBalance.Type = 1; } } responseAccountBalance.Balance = Math.Abs(amount); } return(responseAccountBalance); }
public BaseObject GetById(string className, string objectId, string bankCode, string Password) { BaseObject result = new BaseObject(); if (string.IsNullOrEmpty(className)) { result.StatusCode = "100"; result.StatusDesc = "PLEASE SUPPLY THE CLASS NAME"; return(result); } else if (string.IsNullOrEmpty(objectId)) { result.StatusCode = "100"; result.StatusDesc = "PLEASE SUPPLY THE OBJECT ID. i.e THE UNIQUE IDENTIFIER OF THIS OBJECT"; return(result); } else if (className.ToUpper() == "BANKUSER" || className.ToUpper() == "BANKTELLER") { result = GetBankUser(objectId, bankCode, Password); return(result); } else if (className.ToUpper() == "BANKCUSTOMER") { result = GetBankCustomer(objectId, bankCode, Password); return(result); } else if (className.ToUpper() == "BANK") { result = dh.GetBankById(objectId); return(result); } else if (className.ToUpper() == "BANKBRANCH") { BankBranch branch = dh.GetBankBranchById(objectId, bankCode); result = branch; return(result); } else if (className.ToUpper() == "USERTYPE") { UserType user = dh.GetUserTypeById(objectId, bankCode); result = user; return(result); } else if (className.ToUpper() == "CUSTOMERTYPE") { UserType user = dh.GetUserTypeById(objectId, bankCode); result = user; return(result); } else if (className.ToUpper() == "TRANSACTIONCATEGORY") { TransactionCategory category = dh.GetTransactionCategoryById(objectId, bankCode); result = category; return(result); } else if (className.ToUpper() == "BANKACCOUNT") { BankAccount category = dh.GetBankAccountById(objectId, bankCode); result = category; return(result); } else if (className.ToUpper() == "ACCOUNTTYPE") { AccountType category = dh.GetAccountTypeById(objectId, bankCode); result = category; return(result); } else if (className.ToUpper() == "PAYMENTTYPE") { PaymentType category = dh.GetPaymentTypeById(objectId, bankCode); result = category; return(result); } else if (className.ToUpper() == "BANKCHARGE") { BankCharge category = dh.GetBankChargeById(objectId, bankCode); result = category; return(result); } else if (className.ToUpper() == "CHARGETYPE") { ChargeType category = dh.GetChargeTypeById(objectId, bankCode); result = category; return(result); } else if (className.ToUpper() == "CURRENCY") { Currency category = dh.GetCurrencyCodeById(objectId, bankCode); result = category; return(result); } else if (className.ToUpper() == "ACCESSRULE") { AccessRule rule = dh.GetAccessRuleById(objectId, bankCode); result = rule; return(result); } else if (className.ToUpper() == "TRANSACTIONRULE") { TransactionRule rule = dh.GetTransactionRuleById(objectId, bankCode); result = rule; return(result); } else { return(result); } }
public virtual async Task <HttpResponseMessage> ChangeChequeStatus([FromBody] ChequesAndStatsVM chequesAndStatsVM) { var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId); ChequeVM chequeVM = new ChequeVM(); switch (chequesAndStatsVM.change) { // وصول چک پرداختی case "PaidChequeReceipt": { chequesAndStatsVM.description = " وصول چک پرداختی"; var doucument = await CreateDocumentPaidChequeReceipt(chequesAndStatsVM, organId); ChequeRule chequeRule = new ChequeRule(); var cheque = await chequeRule.FindAsync(chequesAndStatsVM.chequeId); cheque.Status = ZhivarEnums.ChequeStatus.Passed; chequeRule.Update(cheque); await chequeRule.SaveChangesAsync(); DocumentRule documentRule = new DocumentRule(); await documentRule.InsertAsync(doucument, organId); await documentRule.SaveChangesAsync(); //AccountNumber: "" chequeVM.Amount = cheque.Amount; chequeVM.BankBranch = cheque.BankBranch; //chequeVM.BankDetailAccount: null chequeVM.BankName = cheque.BankName; chequeVM.ChequeNumber = cheque.ChequeNumber; chequeVM.Contact = cheque.Contact; chequeVM.Date = cheque.Date; chequeVM.DepositBank = cheque.DepositBank; //chequeVM.DepositDate = cheque.DepositBank; chequeVM.DisplayDate = cheque.DisplayDate; chequeVM.ID = cheque.ID; //chequeVM.MyCheque = cheque.DepositBank; //chequeVM.Overdue = cheque.Overdue; //chequeVM.Payee = cheque.Payee; //chequeVM.Payer = cheque.Payer; chequeVM.ReceiptDate = cheque.ReceiptDate; //chequeVM.ReturnDate = cheque.ReturnDate; chequeVM.Status = cheque.Status; chequeVM.StatusString = "وصول شده"; break; } // وصول چک دریافتی case "ReceivedChequeReceipt": { chequesAndStatsVM.description = " وصول چک دریافتی"; var doucument = await CreateDocumentChangeChequeStatus(chequesAndStatsVM, organId); ChequeRule chequeRule = new ChequeRule(); var cheque = await chequeRule.FindAsync(chequesAndStatsVM.chequeId); cheque.Status = ZhivarEnums.ChequeStatus.Passed; chequeRule.Update(cheque); await chequeRule.SaveChangesAsync(); DocumentRule documentRule = new DocumentRule(); await documentRule.InsertAsync(doucument, organId); await documentRule.SaveChangesAsync(); //AccountNumber: "" chequeVM.Amount = cheque.Amount; chequeVM.BankBranch = cheque.BankBranch; //chequeVM.BankDetailAccount: null chequeVM.BankName = cheque.BankName; chequeVM.ChequeNumber = cheque.ChequeNumber; chequeVM.Contact = cheque.Contact; chequeVM.Date = cheque.Date; chequeVM.DepositBank = cheque.DepositBank; //chequeVM.DepositDate = cheque.DepositBank; chequeVM.DisplayDate = cheque.DisplayDate; chequeVM.ID = cheque.ID; //chequeVM.MyCheque = cheque.DepositBank; //chequeVM.Overdue = cheque.Overdue; //chequeVM.Payee = cheque.Payee; //chequeVM.Payer = cheque.Payer; chequeVM.ReceiptDate = cheque.ReceiptDate; //chequeVM.ReturnDate = cheque.ReturnDate; chequeVM.Status = cheque.Status; chequeVM.StatusString = "وصول شده"; break; } // وصول چک واگذار شده به بانک case "DepositChequeReceipt": { chequesAndStatsVM.description = "وصول چک واگذار شده به بانک"; var doucument = await CreateDocumentDepositChequeReceipt(chequesAndStatsVM, organId); ChequeRule chequeRule = new ChequeRule(); var cheque = await chequeRule.FindAsync(chequesAndStatsVM.chequeId); cheque.Status = ZhivarEnums.ChequeStatus.Passed; chequeRule.Update(cheque); await chequeRule.SaveChangesAsync(); DocumentRule documentRule = new DocumentRule(); await documentRule.InsertAsync(doucument, organId); await documentRule.SaveChangesAsync(); //AccountNumber: "" chequeVM.Amount = cheque.Amount; chequeVM.BankBranch = cheque.BankBranch; //chequeVM.BankDetailAccount: null chequeVM.BankName = cheque.BankName; chequeVM.ChequeNumber = cheque.ChequeNumber; chequeVM.Contact = cheque.Contact; chequeVM.Date = cheque.Date; chequeVM.DepositBank = cheque.DepositBank; //chequeVM.DepositDate = cheque.DepositBank; chequeVM.DisplayDate = cheque.DisplayDate; chequeVM.ID = cheque.ID; //chequeVM.MyCheque = cheque.DepositBank; //chequeVM.Overdue = cheque.Overdue; //chequeVM.Payee = cheque.Payee; //chequeVM.Payer = cheque.Payer; chequeVM.ReceiptDate = cheque.ReceiptDate; //chequeVM.ReturnDate = cheque.ReturnDate; chequeVM.Status = cheque.Status; chequeVM.StatusString = "وصول شده"; break; } // واگذاری چک به بانک case "ReceivedChequeDeposit": { chequesAndStatsVM.description = "واگذاری چک به بانک"; var doucument = await CreateDocumentReceivedChequeDeposit(chequesAndStatsVM, organId); ChequeRule chequeRule = new ChequeRule(); var cheque = await chequeRule.FindAsync(chequesAndStatsVM.chequeId); cheque.Status = ZhivarEnums.ChequeStatus.InProgress; BankRule bankRule = new BankRule(); var banks = await bankRule.GetAllByOrganIdAsync(organId); var bank = banks.Where(x => x.Code == chequesAndStatsVM.detailAccount.Code).SingleOrDefault(); cheque.DepositBankId = bank.ID; chequeRule.Update(cheque); await chequeRule.SaveChangesAsync(); DocumentRule documentRule = new DocumentRule(); await documentRule.InsertAsync(doucument, organId); await documentRule.SaveChangesAsync(); //AccountNumber: "" chequeVM.Amount = cheque.Amount; chequeVM.BankBranch = cheque.BankBranch; //chequeVM.BankDetailAccount: null chequeVM.BankName = cheque.BankName; chequeVM.ChequeNumber = cheque.ChequeNumber; chequeVM.Contact = cheque.Contact; chequeVM.Date = cheque.Date; chequeVM.DepositBank = cheque.DepositBank; //chequeVM.DepositDate = cheque.DepositBank; chequeVM.DisplayDate = cheque.DisplayDate; chequeVM.ID = cheque.ID; //chequeVM.MyCheque = cheque.DepositBank; //chequeVM.Overdue = cheque.Overdue; //chequeVM.Payee = cheque.Payee; //chequeVM.Payer = cheque.Payer; chequeVM.ReceiptDate = cheque.ReceiptDate; //chequeVM.ReturnDate = cheque.ReturnDate; chequeVM.Status = cheque.Status; chequeVM.StatusString = "وصول شده"; break; } // عودت دادن چک پرداختی case "PaidChequeReturn": { //chequesAndStatsVM.description = "عودت دادن چک پرداختی"; var doucument = await CreateDocumentPaidChequeReturn(chequesAndStatsVM, organId); ChequeRule chequeRule = new ChequeRule(); var cheque = await chequeRule.FindAsync(chequesAndStatsVM.chequeId); cheque.Status = ZhivarEnums.ChequeStatus.ChequeReturn; chequeRule.Update(cheque); await chequeRule.SaveChangesAsync(); DocumentRule documentRule = new DocumentRule(); await documentRule.InsertAsync(doucument, organId); await documentRule.SaveChangesAsync(); //AccountNumber: "" chequeVM.Amount = cheque.Amount; chequeVM.BankBranch = cheque.BankBranch; //chequeVM.BankDetailAccount: null chequeVM.BankName = cheque.BankName; chequeVM.ChequeNumber = cheque.ChequeNumber; chequeVM.Contact = cheque.Contact; chequeVM.Date = cheque.Date; chequeVM.DepositBank = cheque.DepositBank; //chequeVM.DepositDate = cheque.DepositBank; chequeVM.DisplayDate = cheque.DisplayDate; chequeVM.ID = cheque.ID; //chequeVM.MyCheque = cheque.DepositBank; //chequeVM.Overdue = cheque.Overdue; //chequeVM.Payee = cheque.Payee; //chequeVM.Payer = cheque.Payer; chequeVM.ReceiptDate = cheque.ReceiptDate; //chequeVM.ReturnDate = cheque.ReturnDate; chequeVM.Status = cheque.Status; chequeVM.StatusString = "وصول شده"; break; } // عودت دادن چک دریافتی case "ReceivedChequeReturn": { chequesAndStatsVM.description = "عودت دادن چک دریافتی"; var doucument = await CreateDocumentReceivedChequeReturn(chequesAndStatsVM, organId); ChequeRule chequeRule = new ChequeRule(); var cheque = await chequeRule.FindAsync(chequesAndStatsVM.chequeId); cheque.Status = ZhivarEnums.ChequeStatus.ChequeReturn; chequeRule.Update(cheque); await chequeRule.SaveChangesAsync(); DocumentRule documentRule = new DocumentRule(); await documentRule.InsertAsync(doucument, organId); await documentRule.SaveChangesAsync(); //AccountNumber: "" chequeVM.Amount = cheque.Amount; chequeVM.BankBranch = cheque.BankBranch; //chequeVM.BankDetailAccount: null chequeVM.BankName = cheque.BankName; chequeVM.ChequeNumber = cheque.ChequeNumber; chequeVM.Contact = cheque.Contact; chequeVM.Date = cheque.Date; chequeVM.DepositBank = cheque.DepositBank; //chequeVM.DepositDate = cheque.DepositBank; chequeVM.DisplayDate = cheque.DisplayDate; chequeVM.ID = cheque.ID; //chequeVM.MyCheque = cheque.DepositBank; //chequeVM.Overdue = cheque.Overdue; //chequeVM.Payee = cheque.Payee; //chequeVM.Payer = cheque.Payer; chequeVM.ReceiptDate = cheque.ReceiptDate; //chequeVM.ReturnDate = cheque.ReturnDate; chequeVM.Status = cheque.Status; chequeVM.StatusString = "وصول شده"; break; } // تغییر وضعیت چک پرداختی به پاس نشده case "PaidChequeToNotPass": { chequesAndStatsVM.description = "تغییر وضعیت چک پرداختی به پاس نشده"; chequesAndStatsVM.date = PersianDateUtils.ToPersianDate(DateTime.Now); var doucument = await CreateDocumentPaidChequeToNotPass(chequesAndStatsVM, organId); ChequeRule chequeRule = new ChequeRule(); var cheque = await chequeRule.FindAsync(chequesAndStatsVM.chequeId); cheque.Status = ZhivarEnums.ChequeStatus.Normal; chequeRule.Update(cheque); await chequeRule.SaveChangesAsync(); DocumentRule documentRule = new DocumentRule(); await documentRule.InsertAsync(doucument, organId); await documentRule.SaveChangesAsync(); //AccountNumber: "" chequeVM.Amount = cheque.Amount; chequeVM.BankBranch = cheque.BankBranch; //chequeVM.BankDetailAccount: null chequeVM.BankName = cheque.BankName; chequeVM.ChequeNumber = cheque.ChequeNumber; chequeVM.Contact = cheque.Contact; chequeVM.Date = cheque.Date; chequeVM.DepositBank = cheque.DepositBank; //chequeVM.DepositDate = cheque.DepositBank; chequeVM.DisplayDate = cheque.DisplayDate; chequeVM.ID = cheque.ID; //chequeVM.MyCheque = cheque.DepositBank; //chequeVM.Overdue = cheque.Overdue; //chequeVM.Payee = cheque.Payee; //chequeVM.Payer = cheque.Payer; chequeVM.ReceiptDate = cheque.ReceiptDate; //chequeVM.ReturnDate = cheque.ReturnDate; chequeVM.Status = cheque.Status; chequeVM.StatusString = "وصول شده"; break; } // تغییر وضعیت چک دریافتی به وصول نشده case "ReceivedChequeToNotPass": { chequesAndStatsVM.description = "تغییر وضعیت چک دریافتی به وصول نشده"; ChequeRule chequeRule = new ChequeRule(); var cheque = await chequeRule.FindAsync(chequesAndStatsVM.chequeId); PayRecevieRule payRecevieRule = new PayRecevieRule(); List <Document> doucuments = await payRecevieRule.GetDoucumentIDByChequeIdAsync(chequesAndStatsVM.chequeId); cheque.Status = ZhivarEnums.ChequeStatus.Normal; chequeRule.Update(cheque); Document newDocument = new Document(); DocumentRule documentRule = new DocumentRule(); foreach (var document in doucuments) { newDocument = new Document() { Credit = document.Credit, Description = chequesAndStatsVM.description, Debit = document.Debit, DateTime = DateTime.Now, DisplayDate = PersianDateUtils.ToPersianDate(DateTime.Now), FinanYear = document.FinanYear, FinanYearId = document.FinanYearId, IsFirsDocument = document.IsFirsDocument, IsManual = document.IsManual, Number = await documentRule.createNumberDocumentAsync(organId), Number2 = await documentRule.createNumberDocumentAsync(organId), OrganId = organId, Status = ZhivarEnums.DocumentStatus.TaeedShode, StatusString = document.StatusString, Type = ZhivarEnums.NoeDoc.Pay }; TransactionRule transactionRule = new TransactionRule(); var transactions = await transactionRule.GetAllByOrganIdAsync(organId); transactions = transactions.Where(x => x.DocumentId == document.ID).ToList(); newDocument.Transactions = new List <Transaction>(); Transaction newTransaction = new Transaction(); foreach (var transaction in transactions) { //newTransaction.AccDocument = newDocument; //newTransaction.Account = transaction.Account; newTransaction.AccountId = transaction.AccountId; newTransaction.Amount = transaction.Amount; newTransaction.Cheque = transaction.Cheque; newTransaction.ChequeId = transaction.ChequeId; newTransaction.ContactId = transaction.ContactId; newTransaction.Credit = transaction.Debit; newTransaction.Date = DateTime.Now; newTransaction.Debit = transaction.Credit; newTransaction.Description = chequesAndStatsVM.description; newTransaction.DisplayDate = PersianDateUtils.ToPersianDate(DateTime.Now); newTransaction.DocumentId = newDocument.ID; newTransaction.InvoiceId = transaction.InvoiceId; newTransaction.IsCredit = transaction.IsDebit; newTransaction.IsDebit = transaction.IsCredit; newTransaction.PaymentMethod = transaction.PaymentMethod; newTransaction.PaymentMethodString = transaction.PaymentMethodString; newTransaction.Reference = transaction.Reference; newTransaction.RefTrans = transaction.RefTrans; newTransaction.Remaining = transaction.Remaining; newTransaction.RemainingType = transaction.RemainingType; newTransaction.RowNumber = transaction.RowNumber; newTransaction.Stock = transaction.Stock; newTransaction.TransactionTypeString = transaction.TransactionTypeString; newTransaction.Type = transaction.Type; newTransaction.UnitPrice = transaction.UnitPrice; newDocument.Transactions.Add(newTransaction); } } await documentRule.InsertAsync(newDocument, organId); await documentRule.SaveChangesAsync(); //AccountNumber: "" chequeVM.Amount = cheque.Amount; chequeVM.BankBranch = cheque.BankBranch; //chequeVM.BankDetailAccount: null chequeVM.BankName = cheque.BankName; chequeVM.ChequeNumber = cheque.ChequeNumber; chequeVM.Contact = cheque.Contact; chequeVM.Date = cheque.Date; chequeVM.DepositBank = cheque.DepositBank; //chequeVM.DepositDate = cheque.DepositBank; chequeVM.DisplayDate = cheque.DisplayDate; chequeVM.ID = cheque.ID; //chequeVM.MyCheque = cheque.DepositBank; //chequeVM.Overdue = cheque.Overdue; //chequeVM.Payee = cheque.Payee; //chequeVM.Payer = cheque.Payer; chequeVM.ReceiptDate = cheque.ReceiptDate; //chequeVM.ReturnDate = cheque.ReturnDate; chequeVM.Status = cheque.Status; chequeVM.StatusString = "وصول شده"; break; } default: break; } return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = ZhivarEnums.ResultCode.Successful, data = chequeVM })); }
public async Task <HttpResponseMessage> GetRequiredDataToClosingFinanYear() { var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId); TransactionRule transactionRule = new TransactionRule(); var transactions = await transactionRule.GetAllByOrganIdAsync(organId); AccountRule accountRule = new AccountRule(); var accounts = await accountRule.GetAllByOrganIdAsync(organId); var incomeAccount = accounts.Where(x => x.ComplteCoding == "71" || x.ComplteCoding == "72").Select(x => x.ID).ToList(); var costAccount = accounts.Where(x => x.ComplteCoding == "81" || x.ComplteCoding == "82" || x.ComplteCoding == "83").Select(x => x.ID).ToList(); decimal incomeAmount = 0; decimal costAmount = 0; var accountsMoienQuery = accounts.AsQueryable().Where(x => incomeAccount.Contains(x.ParentId)); var allAccountQuery = accounts.AsQueryable(); List <int> childIds = (from account in accountsMoienQuery select account.ID).ToList(); List <int> childChildIds = (from account in allAccountQuery join accountsMoien in accountsMoienQuery on account.ParentId equals accountsMoien.ID select account.ID).ToList(); var selected = transactions.Where(a => incomeAccount.Contains(a.AccountId) || childIds.Contains(a.AccountId) || childChildIds.Contains(a.AccountId)).ToList(); if (selected.Any()) { var credit = selected.Sum(x => x.Credit); var debit = selected.Sum(x => x.Debit); incomeAmount = credit - debit; } var accountsMoienCostQuery = accounts.AsQueryable().Where(x => costAccount.Contains(x.ParentId)); List <int> childIdsCost = (from account in accountsMoienCostQuery select account.ID).ToList(); List <int> childChildIdsCost = (from account in allAccountQuery join accountsMoien in accountsMoienCostQuery on account.ParentId equals accountsMoien.ID select account.ID).ToList(); var selectedCost = transactions.Where(a => costAccount.Contains(a.AccountId) || childIdsCost.Contains(a.AccountId) || childChildIdsCost.Contains(a.AccountId)).ToList(); if (selectedCost.Any()) { var credit = selectedCost.Sum(x => x.Credit); var debit = selectedCost.Sum(x => x.Debit); costAmount = credit - debit; } FinanYearRule finanYearRule = new FinanYearRule(); var finanQuery = await finanYearRule.GetAllByOrganIdAsync(organId); var finanYear = finanQuery.Where(x => x.FirstYear == true).SingleOrDefault(); ShareholderRule shareholderRule = new ShareholderRule(); var shareHolders = await shareholderRule.GetAllByOrganIdAsync(organId); var startDate = PersianDateUtils.ToDateTime(finanYear.DisplayStartDate); var endDate = PersianDateUtils.ToDateTime(finanYear.DisplayEndDate); double diff2 = (endDate - startDate).TotalDays; var startDateNew = endDate.AddDays(1); var endDateNew = endDate.AddDays(diff2); var displayEndDateNew = PersianDateUtils.ToPersianDateTime(endDateNew); var displayStartDateNew = PersianDateUtils.ToPersianDateTime(startDateNew); var startYear = Convert.ToInt32(displayStartDateNew.Substring(0, 4)); var startMonth = Convert.ToInt32(displayStartDateNew.Substring(5, 2)); var startDay = Convert.ToInt32(displayStartDateNew.Substring(8, 2)); var endYear = Convert.ToInt32(displayEndDateNew.Substring(0, 4)); var endMonth = Convert.ToInt32(displayEndDateNew.Substring(5, 2)); var endDay = Convert.ToInt32(displayEndDateNew.Substring(8, 2)); var isMoreThanYear = false; if (diff2 > 365) { isMoreThanYear = true; } var resualt = new DataToClosingFinanYear(); resualt.closingDate = finanYear.DisplayEndDate; resualt.netIncome = incomeAmount - costAmount; resualt.newFinanYear = new FinanYearVM() { Closed = false, DisplayEndDate = displayEndDateNew, DisplayStartDate = displayStartDateNew, EndDate = endDateNew, EndDateDay = endDay, EndDateMonth = endMonth, EndDateYear = endYear, FirstYear = false, Id = 0, IsMoreThanOneYear = isMoreThanYear, Name = endYear + " سال مال منتهی به", Note = "", StartDate = startDate, StartDateDay = startDay, StartDateMonth = startMonth, StartDateYear = startYear, }; resualt.shareholders = new List <ShareholderVM>(); foreach (var shareHolder in shareHolders) { resualt.shareholders.Add(new ShareholderVM() { Address = shareHolder.Address, City = shareHolder.City, Code = shareHolder.Code, ContactEmail = "", ContactType = shareHolder.ContactType, Credits = shareHolder.Credits, //DetailAccount = new DetailAccount() //{ // Accounts = null, // Balance = 0, // BalanceType = 0, // Code = "000001", // Id = 1, // Name = "مونا ابراهیمی", // Node = new Node() // { // FamilyTree = "اشخاص", // Id = 1, // Name = "اشخاص", // Parent = null, // Parents = ",1,", // SystemAccount = 1 // }, // RelatedAccounts = ",6,22,7,32,33,34,35,", // credit = 0, // debit = 0, //}, Email = shareHolder.Email, Fax = shareHolder.Fax, FirstName = shareHolder.FirstName, Id = (int)shareHolder.ID, IsCustomer = shareHolder.IsCustomer, IsEmployee = shareHolder.IsEmployee, IsShareHolder = shareHolder.IsShareHolder, IsVendor = shareHolder.IsVendor, LastName = shareHolder.LastName, Liability = shareHolder.Liability, Mobile = shareHolder.Mobile, Name = shareHolder.Name, NationalCode = shareHolder.NationalCode, Note = shareHolder.Note, People = shareHolder.People, Phone = shareHolder.Phone, PostalCode = shareHolder.PostalCode, Rating = shareHolder.Rating, RegistrationDate = shareHolder.RegistrationDate, RegistrationNumber = shareHolder.RegistrationNumber, SharePercent = shareHolder.SharePercent, State = shareHolder.State, Website = shareHolder.Website, }); } return(Request.CreateResponse(HttpStatusCode.OK, new { resualtCode = (int)ZhivarEnums.ResultCode.Successful, data = resualt })); }
public void Update(TransactionRule model) { var entity = MapToTable(model); ruleRepository.Update(entity); }
// POST: api/Rules public IHttpActionResult Post(TransactionRule model) { svc.Add(model); return(Ok()); }
// PUT: api/Rules/5 public IHttpActionResult Put(int id, TransactionRule model) { svc.Update(model); return(Ok()); }
public async Task <HttpResponseMessage> GetAllByOrganId() { try { var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId); BankRule bankRule = new BankRule(); var list = await bankRule.GetAllByOrganIdAsync(Convert.ToInt32(organId)); AccountRule accountRule = new AccountRule(); var accounts = await accountRule.GetAllByOrganIdAsync(organId); BankVM bankVM = new BankVM(); List <BankVM> bankVMs = new List <BankVM>(); foreach (var item in list) { var bankAccount = accounts.Where(x => x.ComplteCoding == "1103" + item.Code).SingleOrDefault(); TransactionRule transactionRule = new TransactionRule(); BalanceModelVM transaction = await transactionRule.GetBalanceAccountAsync(bankAccount.ID); bankVMs.Add(new BankVM() { AccountNumber = item.AccountNumber, Balance = item.Balance, Branch = item.Branch, Code = item.Code, FullName = item.FullName, ID = item.ID, Name = item.Name, DetailAccount = new DetailAccount() { Accounts = new List <AccountVM>() { new AccountVM() { Balance = transaction.Balance, BalanceType = transaction.BalanceType, Code = bankAccount.Coding, Coding = bankAccount.Coding, credit = transaction.Credit, debit = transaction.Debit, ID = bankAccount.ID, ParentId = bankAccount.ParentId, Name = bankAccount.Name, } }, Code = bankAccount.Coding, Id = bankAccount.ID, Balance = transaction.Balance, credit = transaction.Credit, debit = transaction.Debit, BalanceType = transaction.BalanceType, Name = bankAccount.Name, } }); } return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = (int)ZhivarEnums.ResultCode.Successful, data = bankVMs })); } catch (Exception ex) { throw; } }
public void SetBuyNGetNBasedRule(int numberOfBuyNeeded, int numberOfFreeItem) { this.TransactionRule = new BuyNGetNBasedRule(numberOfBuyNeeded, numberOfFreeItem); this.TransactionRuleType = TransactionRuleTypes.BuyNGetNBasedRule; }
public void SetPointTransactionRule(decimal baseAmount, int numberOfStartAwarded) { this.TransactionRule = new PointBasedRule(baseAmount, numberOfStartAwarded); this.TransactionRuleType = TransactionRuleTypes.PointBasedRule; }