private void AddnewLodgementReimbursementTransaction(shop shop, transaction_category tran, PaymentNotificationRequest pnr, BettingSuiteDataContext db) { 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 = pnr.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(pnr.Amount), balance_before = (masterbalance != null) ? masterbalance.sales_balance : 0, balance_after = (masterbalance != null) ? getbal(masterbalance.sales_balance, pnr.Amount, tran) : pnr.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(); 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 { } }
public int SaveBalanceList(List <master_balance_sheet> balance, int login, DateTime date) { int ret = 0; try { foreach (master_balance_sheet bals in balance) { master_balance_sheet bal = bals; if (bal.shop != -1) { master_balance_sheet existingbal = new CRUD.master_balance_sheet_crud().find_master_balance_sheet_By_ShopId(bal.shop.Value); if (existingbal == null) { using (TransactionScope scope = new TransactionScope()) { master_transaction transaction = new master_transaction { app_id = Application().app_id, amount = bal.netbalance, balance_before = existingbal.netbalance, balance_after = Decimal.Add(bal.netbalance.Value, existingbal.netbalance.Value), description = "Balance B/D AS AT" + date.ToShortDateString(), details = "Balance B/D AS AT " + date.ToShortDateString(), posted_by = login, shop = bal.shop, trans_category = (bal.netbalance >= 0) ? creditbalance.id : debitbalance.id, trans_timestamp = DateTime.Now, trans_type = (bal.netbalance >= 0) ? 0 : 1 }; db.master_transactions.InsertOnSubmit(transaction); db.master_balance_sheets.InsertOnSubmit(bal); scope.Complete(); } } else // (existingbal.netbalance != 0 || existingbal.sales_balance != 0) { using (TransactionScope scope = new TransactionScope()) { master_transaction transaction = new master_transaction { app_id = Application().app_id, amount = bal.netbalance, balance_before = existingbal.netbalance, balance_after = Decimal.Add(bal.netbalance.Value, existingbal.netbalance.Value), description = "Balance B/D AS AT" + date.ToShortDateString(), details = "Balance B/D AS AT " + date.ToShortDateString(), posted_by = login, shop = bal.shop, trans_category = (bal.netbalance >= 0) ? creditbalance.id : debitbalance.id, trans_timestamp = DateTime.Now, trans_type = (bal.netbalance >= 0) ? 0 : 1 }; db.master_transactions.InsertOnSubmit(transaction); bal.id = existingbal.id; bal.sales_balance = Decimal.Add(bal.sales_balance.Value, existingbal.sales_balance.Value); bal.netbalance = Decimal.Add(bal.netbalance.Value, existingbal.netbalance.Value); master_balance_sheet prev_master_balance_sheet = db.master_balance_sheets.SingleOrDefault(a => a.id == bal.id); prev_master_balance_sheet.netbalance = bal.netbalance; prev_master_balance_sheet.sales_balance = bal.sales_balance; db.SubmitChanges(); scope.Complete(); } }//else if (existingbal.netbalance == 0 && existingbal.sales_balance == 0) //{ // bal = new CRUD.master_balance_sheet_crud(bal).alter_master_balance_sheet(); //} } else { ret++; } } } catch (Exception) { ret++; } return(ret); }