private bool savePaymentDetails(PaymentNotificationRequestHelper pnr) { BettingSuiteDataContext db = new BettingSuiteDataContext(); if (iSNotDuplicate(pnr.getPaymentLogId(), db)) { try { using (TransactionScope scope = new TransactionScope()) { PaymentNotificationRequest pr = setPaymentRequestObjAndSave(pnr, db); shop shop = new CRUD.shop_crud().find_shop_By_ID(pr.CustReference); foreach (PaymentItemHelper it in pnr.getPaymentItems()) { if (it.getItemCode().Equals(ConfigurationManager.AppSettings["SalesCode"].ToString())) { AddSalesTransaction(shop, pr, db); } else if (it.getItemCode().Equals(ConfigurationManager.AppSettings["LEASE DEBT"].ToString())) { //do lease debt lodgement } else if (it.getItemCode().Equals(ConfigurationManager.AppSettings["OPERATIONAL DEBT"].ToString())) { //do operational debt lodgement } else if (it.getItemCode().Equals(ConfigurationManager.AppSettings["ONLINE AGENCY"].ToString())) { //send online dept updates on online agency } else if (it.getItemCode().Equals(ConfigurationManager.AppSettings["ONLINE USER"].ToString())) { //send online dept updates on online user } else if (it.getItemCode().Equals(ConfigurationManager.AppSettings["PAYMENT COMMISION"].ToString())) { //futute implementation } else { //send acknologement message of payments } } db.SubmitChanges(); scope.Complete(); return(true); } } catch (Exception) { return(false); } } else { } return(false); }
public List <master_balance_sheet> fillDataToList() { if (dtExcelRecords == null) { return(null); } else { List <master_balance_sheet> balance = new List <master_balance_sheet>(); //sho shophelper = new shop_crud(); //shop shoped; foreach (DataRow row in dtExcelRecords.Rows) { int rowindex = dtExcelRecords.Rows.IndexOf(row); //if (dtExcelRecords.Rows.IndexOf(row) == 0) // continue; //if (dtExcelRecords.Rows.IndexOf(row) == dtExcelRecords.Rows.Count - 1) // break; // var values = row.ItemArray; master_balance_sheet bal; // shop = new shop { id = -1, shop_code = (string)values[1] };// new shop_crud().find_shop_By_Code((string)values[1]) != null ? shophelper.find_shop_By_Code((string)values[1]) : new shop {id=-1, shop_code=(string) values[1]}; try { shop shop = new CRUD.shop_crud().find_shop_By_Code(values[1].ToString()); bal = new master_balance_sheet { App_id = (shop != null)?shop.shop_code :"NO RECORD", sales_balance = (values[2] != null)?decimal.Parse(values[2].ToString()):0, credit_balance = 0, netbalance = (values[2] != null) ? decimal.Parse(values[2].ToString()) : 0, online_credit = 0, shop = (shop != null)?shop.id: -1 }; balance.Add(bal); } catch (Exception) { } } return(balance); } }
public List <string> getSuspectedNonPayOutShops() { try { List <shop> shops = new CRUD.shop_crud().getallShop().ToList <shop>(); List <string> shopstodisplay = new List <string>(); var badshops = db.master_sb_sales.Where(a => a.date >= DateTime.Today.AddDays(-5) && a.date <= DateTime.Today).GroupBy(b => b.shop).Select(s => new { shop = s.Key, sum = s.Sum(y => y.winnings), sale = s.Sum(y => y.winnings) }).Where(e => e.sale > 10000); foreach (var t in badshops) { shopstodisplay.Add(shops.SingleOrDefault(a => a.id == t.shop.Value).shop_code); } return(shopstodisplay); } catch (Exception) { return(new List <string>()); } }
public List <master_sb_sale> fillSBDataToList(DateTime date) { List <shop> shops = new CRUD.shop_crud().getallShop().ToList <shop>(); if (dtExcelRecords == null) { return(null); } else { List <master_sb_sale> sales = new List <master_sb_sale>(); shop_crud shophelper = new shop_crud(); //shop shoped; foreach (DataRow row in dtExcelRecords.Rows) { int rowindex = dtExcelRecords.Rows.IndexOf(row); //if(dtExcelRecords.Rows.IndexOf(row) == 0) // continue; if (dtExcelRecords.Rows.IndexOf(row) == dtExcelRecords.Rows.Count - 1) { break; } // var values = row.ItemArray; master_sb_sale sale; string excelshopcode = (string)values[1]; shop shoped = shops.SingleOrDefault(a => a.shop_code == excelshopcode);// new shop_crud().find_shop_By_Code((string)values[1]) != null ? shophelper.find_shop_By_Code((string)values[1]) : new shop {id=-1, shop_code=(string) values[1]}; try { sale = new master_sb_sale { // shop1 = (shop_ != null) ? shop_ : null, //((shophelper.find_shop_By_Code((string)values[1])) != null) ? shophelper.find_shop_By_Code((string)values[1]) : null, //(string)values[1]) != null) ? shophelper.find_shop_By_Code((string)values[1]) : null, shop1 = (shoped != null) ? shoped : new shop { shop_code = values[1].ToString(), app_id = values[1].ToString() }, // shop = shoped.id,//shoped.id, //app_id = values[1].ToString(),//temp string used to display shop in list view date = date, stake = Decimal.Parse(values[5].ToString()), winnings = Decimal.Parse(values[7].ToString()), cancelled = Decimal.Parse(values[10].ToString()), single_stake_sales = Decimal.Parse(values[16].ToString()), isverified = false, islocked = false, date_posted = DateTime.Today, }; // sale.shop1 = ((shophelper.find_shop_By_Code((string)values[1])) != null) ? shophelper.find_shop_By_Code((string)values[1]) : null; sale.sales = Decimal.Subtract((Decimal)sale.stake, (Decimal)sale.cancelled); sale.balance = Decimal.Subtract((Decimal)sale.sales, (Decimal)sale.winnings); sale.other_stake_commision = Decimal.Multiply((Decimal)(sale.sales - sale.single_stake_sales), (shoped.commission != null) ? shoped.commission.Value / 100 : Utilities.COMMISSION.COMMISSION_CONSTANT / 100); sale.single_stake_commision = Decimal.Multiply((Decimal)sale.single_stake_sales, Utilities.COMMISSION.SINGLE_COMMISION_CONSTANT / 100); sale.commision = sale.single_stake_commision + sale.other_stake_commision; //sale.commision = Decimal.Multiply((Decimal)sale.sales, (shoped.commission != null) ? shoped.commission.Value / 100 : Utilities.COMMISSION.COMMISSION_CONSTANT / 100); sale.net_balance = Decimal.Subtract((Decimal)sale.balance, (Decimal)sale.commision); sale.single_stake_percent = sale.sales != 0 ? (sale.single_stake_sales / sale.sales) * 100 : 0; // sale = new master_sb_sales_crud(sale).insert_master_sb_sale(); if (sale == null) { sale = new master_sb_sale(); } sales.Add(sale); // sale = new master_sb_sales_crud(sale).insert_master_sb_sale(); } catch (Exception) { sale = new master_sb_sale(); // sale.shop1 = new shop { shop_code = values[1].ToString(), app_id = values[1].ToString() }; sale.app_id = values[1].ToString(); sales.Add(sale); } } return(sales); } }
private void AddnewLodgementReimbursementTransaction(shop shop, transaction_category tran, PaymentNotificationRequest pnr, BettingSuiteDataContext db, decimal amount) { amount = (amount == null) ? pnr.Amount : amount; DateTime date = DateTime.Today; master_balance_sheet masterbalance = new CRUD.master_balance_sheet_crud().getMasterBalanceByShopId(shop.id); if (masterbalance == null) { masterbalance = new master_balance_sheet { shop = shop.id, credit_balance = 0, online_credit = 0, sales_balance = 0, netbalance = 0, }; masterbalance = new CRUD.master_balance_sheet_crud(masterbalance).insert_master_balance_sheet(); } master_transaction reversalmastertransaction = new master_transaction(); master_lodgement_reimbursment newmlr = new master_lodgement_reimbursment { amount = amount, bank = 0,//interswitch id, date = date, shop = shop.id, teller_number = pnr.PaymentLogId.ToString(), islocked = true, isverified = true, payment_type = 5, transaction_category = tran.id, }; login lodin = db.logins.Single(a => a.username == "InterSwitch"); master_transaction newmastertransaction = new master_transaction { amount = Math.Abs(amount), balance_before = (masterbalance != null) ? masterbalance.sales_balance : 0, balance_after = (masterbalance != null) ? getbal(masterbalance.sales_balance, amount, tran) : amount, shop = shop.id, trans_category = tran.id, trans_timestamp = DateTime.Now, trans_type = (tran.type == true) ? 1 : 0, posted_by = lodin.id,// interswitch id, description = pnr.PaymentReference + " Posted For " + date.ToShortDateString(), details = (tran.code == "L") ? "Lodgement For " + date.ToShortDateString() : "Lodgement Reversal For " + date.ToShortDateString() }; masterbalance.sales_balance = (masterbalance != null) ? getbal(masterbalance.sales_balance, newmastertransaction.amount, tran) : newmastertransaction.amount; masterbalance.netbalance = (masterbalance != null) ? getbal(masterbalance.netbalance, newmastertransaction.amount, tran) : newmastertransaction.amount; bool loadtran = new Utilities.TransactionHelper().SaveMasterLodgementTransaction(newmlr, newmastertransaction, masterbalance); if (loadtran) { try { bool mailvalidity = new Utilities.Mail_Validity_Helper().getMailSendingStatus(); SMS_Vendor_Validity_Helper valhelp = new SMS_Vendor_Validity_Helper(); sms_vendor vendor = valhelp.getVendorsByName("50kobo"); bool smsvalidity = (DateTime.Today <= vendor.expiry_date) ? true : false; if (newmlr.bank1.code != "CASH") { sms message; if (tran.code == "L") { if (smsvalidity) { sm mm = new CRUD.sms_crud().findByCode("CA"); message = new sms(); shop = new CRUD.shop_crud().find_shop_By_ID(shop.id); if (message.initializeParameters(shop, mm.subject.Trim() + "\r\n" + mm.content.Trim() + "\r\n" + mm.conclusion.Trim(), newmlr)) { message.CustomizeAndSendSMS(); } } if (mailvalidity) { mail mail = new CRUD.mail_crud().findByCode("LA"); MailClient client = new MailClient(); client.SendLodgementReimbursementMail(shop, mail, newmastertransaction); } } else if (tran.code == "R") { if (smsvalidity) { sm mm = new CRUD.sms_crud().findByCode("DA"); message = new sms(); if (message.initializeParameters(shop, mm.subject + "\r\n" + mm.content + "\r\n" + mm.conclusion, newmlr)) { message.CustomizeAndSendSMS(); } } if (mailvalidity) { mail mail = new CRUD.mail_crud().findByCode("RA"); MailClient client = new MailClient(); client.SendLodgementReimbursementMail(shop, mail, newmastertransaction); } } } } catch (Exception) { } } else { } }
private bool savePaymentDetails(PaymentNotificationRequestHelper pnr) { BettingSuiteDataContext db = new BettingSuiteDataContext(); if (iSNotDuplicate(pnr.getPaymentLogId(), db)) { try { using (TransactionScope scope = new TransactionScope()) { PaymentNotificationRequest pr = setPaymentRequestObjAndSave(pnr, db); shop shop = new CRUD.shop_crud().find_shop_By_ID(pr.CustReference); foreach (PaymentItemHelper it in pnr.getPaymentItems()) { if (it.getItemCode().Equals(ConfigurationManager.AppSettings["SalesCode"].ToString())) { AddSalesTransaction(shop, pr, db); } else if (it.getItemCode().Equals(ConfigurationManager.AppSettings["LeaseDebtCode"].ToString())) { AddDebtTransaction(shop, pr, db); } else if (it.getItemCode().Equals(ConfigurationManager.AppSettings["OperationalDebtCode"].ToString())) { AddDebtTransaction(shop, pr, db); } else if (it.getItemCode().Equals(ConfigurationManager.AppSettings["Online Agency"].ToString())) { //sendmail MailClient mc = new MailClient(); mail mail = new CRUD.mail_crud().findByCode("OL"); string body = mail.content; body = body.Replace("{shop_code}", shop.shop_code); body = body.Replace("{account_name}", pnr.getCustomerName()); body = body.Replace("{amount}", "₦" + pr.Amount.ToString()); body = body.Replace("{amount_to_lodge}", "₦" + (decimal.Multiply(pr.Amount, decimal.Parse("1.10"))).ToString()); body = body.Replace("{payment_method}", "InterSwitch"); mc.SendBulkMail(ConfigurationManager.AppSettings["ONLINE SENDING MAIL"].ToString(), shop.shop_code + " (₦" + pr.Amount.ToString() + ") ", body); //send sms to agent SMS_Vendor_Validity_Helper valhelp = new SMS_Vendor_Validity_Helper(); sms_vendor vendor = valhelp.getVendorsByName("50kobo"); bool smsvalidity = (DateTime.Today <= vendor.expiry_date) ? true : false; if (smsvalidity) { sms message = new sms(); if (message.initializeParameters(shop, "Online Lodgement Confirmation" + "\r\n" + "Your lodgement of " + pr.Amount.ToString() + " for online agency has being confirmed. You would be credited with " + (decimal.Multiply(pr.Amount, decimal.Parse("1.10"))).ToString() + "\r\n" + "", pr.PaymentDate)) { message.CustomizeAndSendSMS(); } } //send online dept updates on online user } else if (it.getItemCode().Equals(ConfigurationManager.AppSettings["Online User"].ToString())) { } else if (it.getItemCode().Equals(ConfigurationManager.AppSettings["Payment Commision"].ToString())) { //futute implementation } else { SMS_Vendor_Validity_Helper valhelp = new SMS_Vendor_Validity_Helper(); sms_vendor vendor = valhelp.getVendorsByName("50kobo"); bool smsvalidity = (DateTime.Today <= vendor.expiry_date) ? true : false; if (smsvalidity) { sms message = new sms(); if (message.initializeParameters(shop, "Payment Confirmation" + "\r\n" + "Your lodgement of " + pr.Amount.ToString() + " for " + it.getItemName() + " has being confirmed and would be processed shortly" + "\r\n" + "call 014609630 for info/complaints", pr.PaymentDate)) { message.CustomizeAndSendSMS(); } } } } db.SubmitChanges(); scope.Complete(); return(true); } } catch (Exception) { return(false); } } else { } return(false); }
private decimal lodgeDebt(List <debt> shopdebt, decimal amount, master_balance_sheet shopbal) { foreach (debt debt in shopdebt) { transaction_category debttran = db.transaction_categories.SingleOrDefault(a => a.code == "DL"); bank bank = new CRUD.bank_crud().find_bank_By_Code("INT"); payment_type ptype = new CRUD.payment_type_crud().find_payment_type_By_ID(1); login lodin = db.logins.Single(a => a.username == "InterSwitch"); if (amount > 0) { //debt less than or equal to bonus if (debt.current_amount <= amount && debt.status == true && debt.current_amount > 0) { decimal temp = debt.current_amount.Value; debt.current_amount = 0; debt.status = false; debt.installment_count += 1; debt_transaction dtran = new debt_transaction { amount = temp, app_id = Application().app_id, balance_after = getbal(temp, temp, debttran), balance_before = temp, description = debttran.description + " " + "for " + DateTime.Today, details = debttran.description + " " + "for " + DateTime.Today, posted_by = lodin.id, shop = debt.shop, trans_category = debttran.id, trans_timestamp = DateTime.Now, trans_type = (debttran.type == true) ? 0 : 1, debt = debt.id, }; db.debt_transactions.InsertOnSubmit(dtran); db.SubmitChanges(); debt_transaction debtIdtran = new CRUD.debt_transaction_crud().find_debt_transaction_By_AppId(dtran.app_id); debt_lodgement_reimbursment newmlr = new debt_lodgement_reimbursment { app_id = Application().app_id, amount = temp, bank = bank.id, date = DateTime.Today, shop = debt.shop, teller_number = "", islocked = true, isverified = true, payment_type = ptype.id, transaction = (debtIdtran != null) ? debtIdtran.id : 142, transaction_category = debttran.id, }; db.debt_lodgement_reimbursments.InsertOnSubmit(newmlr); amount -= temp; //debtTransactionToSave.Add(dtran); shopbal.credit_balance = getbal(shopbal.credit_balance, temp, debttran); shopbal.netbalance = getbal(shopbal.netbalance, temp, debttran); //SAVE DEBT .... BALANCES debt DebtToUpdate = db.debts.SingleOrDefault(a => a.id == debt.id); DebtToUpdate.current_amount = debt.current_amount; DebtToUpdate.status = debt.status; DebtToUpdate.installment_count = debt.installment_count; master_balance_sheet salesbalancesToUpdate = db.master_balance_sheets.SingleOrDefault(a => a.shop == shopbal.shop); salesbalancesToUpdate.credit_balance = shopbal.credit_balance; salesbalancesToUpdate.netbalance = shopbal.netbalance; db.SubmitChanges(); shop shop = new CRUD.shop_crud().find_shop_By_ID(debt.shop); SendSmsAndMail(shop, debttran, debt, dtran, newmlr); } else if (debt.current_amount > amount && debt.status == true && debt.current_amount > 0) { decimal temp = debt.current_amount.Value; debt.current_amount = getbal(debt.current_amount, amount, debttran); debt.installment_count += 1; debt_transaction dtran = new debt_transaction { amount = amount, app_id = Application().app_id, balance_after = getbal(temp, amount, debttran), balance_before = temp, description = debttran.description + " " + "for " + DateTime.Today, details = debttran.description + " " + "for " + DateTime.Today, posted_by = lodin.id, shop = debt.shop, trans_category = debttran.id, trans_timestamp = DateTime.Now, trans_type = (debttran.type == true) ? 0 : 1, debt = debt.id, }; db.debt_transactions.InsertOnSubmit(dtran); db.SubmitChanges(); //debtTransactionToSave.Add(dtran); debt_transaction debtIdtran = new CRUD.debt_transaction_crud().find_debt_transaction_By_AppId(dtran.app_id); debt_lodgement_reimbursment newmlr = new debt_lodgement_reimbursment { app_id = Application().app_id, amount = temp, bank = bank.id, date = DateTime.Today, shop = debt.shop, teller_number = "", islocked = true, isverified = true, payment_type = ptype.id, transaction = (debtIdtran != null) ? debtIdtran.id : 142, transaction_category = debttran.id, }; db.debt_lodgement_reimbursments.InsertOnSubmit(newmlr); shopbal.credit_balance = getbal(shopbal.credit_balance, amount, debttran); shopbal.netbalance = getbal(shopbal.netbalance, amount, debttran); //SAVE DEBT .... BALANCES debt DebtToUpdate = db.debts.SingleOrDefault(a => a.id == debt.id); DebtToUpdate.current_amount = debt.current_amount; DebtToUpdate.status = debt.status; DebtToUpdate.installment_count = debt.installment_count; master_balance_sheet salesbalancesToUpdate = db.master_balance_sheets.SingleOrDefault(a => a.shop == shopbal.shop); salesbalancesToUpdate.credit_balance = shopbal.credit_balance; salesbalancesToUpdate.netbalance = shopbal.netbalance; amount -= amount; db.SubmitChanges(); shop shop = new CRUD.shop_crud().find_shop_By_ID(debt.shop); SendSmsAndMail(shop, debttran, debt, dtran, newmlr); break; } } } return(amount); }