Exemplo n.º 1
0
        public string SaveBonusTransaction(List <bonushelper> bonus, transaction_category bonustransaction, DateTime fromdate, DateTime todate, admin_user user)
        {
            this.fromdate = fromdate;
            this.todate   = todate;
            int completed = 0;
            int failed    = 0;

            // Thread workerSms;

            //AutoSendSMS("234" + user.phone.Substring(1, user.phone.Length-1));



            foreach (bonushelper bhelp in bonus)
            {
                if (bhelp.Bonus > 0)
                {
                    try
                    {
                        //workerSms = new Thread(() => SaveTransaction(bhelp, bonustransaction, user));
                        //workerSms.Start();
                        //completed++;

                        SaveTransaction(bhelp, bonustransaction, user);
                        completed++;
                    }
                    catch (Exception)
                    {
                        failed++;
                    }
                }
            }
            return("Completed " + completed + "   Failed " + failed);
        }
Exemplo n.º 2
0
        private master_transaction initializeDailySalesTransaction(string transcode, decimal amount)
        {
            transaction_category tranct = trancategory.SingleOrDefault(a => a.code == transcode);
            master_transaction   trans  = new master_transaction();

            trans.amount          = master_daily_sale.sales;
            trans.shop            = master_daily_sale.shop;
            trans.trans_timestamp = DateTime.Now;
            trans.details         = tranct.name + " For " + ((DateTime)master_daily_sale.date).ToShortDateString();
            trans.description     = tranct.name + " For " + ((DateTime)master_daily_sale.date).ToShortDateString();
            application app = new application
            {
                app_id = Guid.NewGuid().ToString()
            };

            trans.app_id = app.app_id;
            // master_balance_sheet sheet = dbmc.master_balance_sheets.SingleOrDefault(a => a.shop == master_daily_sale.shop);
            trans.balance_before = sheet != null ? sheet.sales_balance : Decimal.Zero;
            trans.posted_by      = master_daily_sale.posted_by;
            // transaction_category tc = dbmc.transaction_categories.SingleOrDefault(a => a.code == transcode);
            trans.trans_category = tranct.id;
            trans.trans_type     = (tranct.type == true)? 1 : 0;
            trans.amount         = amount;
            calulateBlanaceSheetAfterDailySalesAlter(tranct.type == false ? Decimal.Negate((decimal)trans.amount): (decimal)trans.amount);
            //trans.balance_after = Decimal.Add((decimal)trans.balance_before, (tc.type == false ? Decimal.Negate((decimal)trans.amount): (decimal)trans.amount));
            trans.balance_after = sheet.sales_balance;
            return(trans);
        }
Exemplo n.º 3
0
        private void AddSalesTransaction(shop shop, PaymentNotificationRequest pnr, BettingSuiteDataContext db)
        {
            int tt = db.transaction_categories.Single(a => a.code.Equals("L")).id;

            if (pnr.isReversal)
            {
                tt = db.transaction_categories.Single(a => a.code.Equals("LR")).id;
            }
            transaction_category selectedtran = db.transaction_categories.SingleOrDefault(a => a.id == tt);

            //string[] MDS = {"S", "W", "C", "SR", "WR","CR"};

            string[] MLR = { "L", "R", "LR", "RR" };
            string[] LPT = { "LP", "LPR" };

            if (MLR.Contains(selectedtran.code))
            {
                decimal amount = new decimal(null);
                AddnewLodgementReimbursementTransaction(shop, selectedtran, pnr, db, amount);
            }

            else
            {
            }
        }
Exemplo n.º 4
0
        private void SendSms(bonushelper bhelp, master_balance_sheet balancesheet, transaction_category btran)
        {
            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 (bhelp.shop.agent != null)
                {
                    sms message = new sms();
                    if (btran.code == "B")
                    {
                        if (smsvalidity)
                        {
                            sm mm = new CRUD.sms_crud().findByCode("BA");
                            message = new sms();

                            if (message.initialisebonusparams(bhelp.shop, mm.subject + "\r\n" + mm.content + "\r\n" + mm.conclusion, bhelp.Bonus, balancesheet.sales_balance.Value))
                            {
                                ;
                            }
                            message.CustomizeAndSendSMS();
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
        }
Exemplo n.º 5
0
 private decimal?getbal(decimal?bal1, decimal?bal2, transaction_category tran)
 {
     if (tran.type == false)
     {
         return(bal1 - bal2);
     }
     else
     {
         return(bal1 + bal2);
     }
 }
        private void LodgeCommission(master_transaction master_transaction, transaction_category tran)
        {
            commission_balance balance = db.commission_balances.SingleOrDefault(a => a.shop == master_transaction.shop);

            if (balance == null)
            {
                balance = new commission_balance
                {
                    shop    = master_transaction.shop.Value,
                    balance = 0
                };
            }

            transaction_category commtran = null;

            if (tran.code == "CR")
            {
                commtran = db.transaction_categories.SingleOrDefault(a => a.code == "CTR");
            }
            else if (tran.code == "C")
            {
                commtran = db.transaction_categories.SingleOrDefault(a => a.code == "CT");
            }
            commission_transaction ctran = new commission_transaction
            {
                amount          = master_transaction.amount,
                balance_after   = getbal(balance.balance, master_transaction.amount, commtran),
                balance_before  = balance.balance,
                description     = master_transaction.details,
                details         = master_transaction.details,
                posted_by       = master_transaction.posted_by,
                shop            = master_transaction.shop,
                trans_category  = commtran.id,
                trans_timestamp = master_transaction.trans_timestamp,
                trans_type      = commtran.type == true ? 1 : 0
            };

            balance.balance = getbal(balance.balance, master_transaction.amount, commtran).Value;


            using (TransactionScope scope = new TransactionScope())
            {
                if (balance.app_id == null)
                {
                    balance.app_id = getAppID().app_id;
                    db.commission_balances.InsertOnSubmit(balance);
                }
                ctran.app_id = getAppID().app_id;
                db.commission_transactions.InsertOnSubmit(ctran);
                db.SubmitChanges();
                scope.Complete();
            }
        }
 public transaction_category find_transaction_category_By_ID(int id)
 {
     try
     {
         transaction_category = db.transaction_categories.SingleOrDefault(a => a.id == id);
         return(transaction_category);
     }
     catch (Exception)
     {
         return(null);
     }
 }
 public transaction_category find_transaction_category_By_AppId(string Appid)
 {
     try
     {
         transaction_category = db.transaction_categories.SingleOrDefault(a => a.app_id == Appid);
         return(transaction_category);
     }
     catch (Exception)
     {
         return(null);
     }
 }
 public transaction_category find_transaction_category_By_code(string code)
 {
     try
     {
         transaction_category tran = db.transaction_categories.SingleOrDefault(a => a.code == code);
         return(tran);
     }
     catch (Exception)
     {
         return(null);
     }
 }
 public transaction_category delete_transaction_category()
 {
     try
     {
         transaction_category prev_transaction_category = db.transaction_categories.SingleOrDefault(a => a.id == transaction_category.id);
         db.transaction_categories.DeleteOnSubmit(prev_transaction_category);
         return(transaction_category);
     }
     catch (Exception)
     {
         return(null);
     }
 }
Exemplo n.º 11
0
        public void SaveTransaction(bonushelper bhelp, transaction_category bonustransaction, admin_user user)
        {
            master_balance_sheet sendbal;
            transaction_category sendtran;

            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    master_balance_sheet bal         = db.master_balance_sheets.SingleOrDefault(a => a.shop == bhelp.shop.id);
                    master_transaction   transaction = new master_transaction
                    {
                        amount          = bhelp.Bonus,
                        app_id          = Application().app_id,
                        balance_after   = getbal(bal.sales_balance, bhelp.Bonus, bonustransaction),
                        balance_before  = bal.sales_balance,
                        description     = bonustransaction.description + " " + "for " + fromdate.ToShortDateString() + " - " + todate.ToShortDateString(),
                        details         = bonustransaction.description + " " + "for " + fromdate.ToShortDateString() + " - " + todate.ToShortDateString(),
                        posted_by       = user.id,
                        shop            = bhelp.shop.id,
                        trans_category  = bonustransaction.id,
                        trans_timestamp = DateTime.Now,
                        trans_type      = (bonustransaction.type == true) ? 0 : 1,
                    };

                    db.master_transactions.InsertOnSubmit(transaction);

                    master_balance_sheet prevbal = db.master_balance_sheets.SingleOrDefault(a => a.shop == bhelp.shop.id);
                    prevbal.sales_balance = getbal(bal.sales_balance, bhelp.Bonus, bonustransaction);
                    prevbal.netbalance    = getbal(bal.netbalance, bhelp.Bonus, bonustransaction);

                    sendbal  = prevbal;
                    sendtran = bonustransaction;
                    db.SubmitChanges();

                    scope.Complete();
                }

                SendSms(bhelp, sendbal, sendtran);
            }
            catch (Exception)
            {
            }
        }
        public transaction_category alter_transaction_category()
        {
            try
            {
                transaction_category prev_transaction_category = db.transaction_categories.SingleOrDefault(a => a.id == transaction_category.id);

                prev_transaction_category.type        = transaction_category.type;
                prev_transaction_category.code        = transaction_category.code;
                prev_transaction_category.description = transaction_category.description;
                prev_transaction_category.name        = transaction_category.name;


                db.SubmitChanges();
                return(transaction_category);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Exemplo n.º 13
0
        public bonusSaver(List <bonushelper> bonuses, transaction_category bonustransaction, DateTime fromdate, DateTime todate, admin_user user)
        {
            this.bonuses          = bonuses;
            this.bonustransaction = bonustransaction;
            this.fromdate         = fromdate;
            this.todate           = todate;
            this.user             = user;

            List <int> shopsIds = bonuses.Select(a => a.shop.id).ToList <int>();

            this.shopDebtsToUpdate     = db.debts.Where(a => shopsIds.Contains(a.shop)).ToList <debt>();
            this.ShopBalancesToUpdate  = db.master_balance_sheets.Where(a => shopsIds.Contains(a.shop.Value)).ToList <master_balance_sheet>();
            this.transactionsToSave    = new List <master_transaction>();
            this.debtTransactionToSave = new List <debt_transaction>();


            ComputeBonuses();
            SaveTransactions();
            SendSms();
            transtate = true;
        }
Exemplo n.º 14
0
        private void AddDebtTransaction(shop shop, PaymentNotificationRequest pr, BettingSuiteDataContext db)
        {
            try
            {
                List <debt> debts = new CRUD.debt_crud().getShopdebts(shop, null);

                if (debts != null && debts.Count > 0)
                {
                    decimal amount = lodgeDebt(debts, pr.Amount, shop.master_balance_sheets[0]);
                    if (amount > 0)
                    {
                        transaction_category saleslodge = db.transaction_categories.SingleOrDefault(a => a.code == "L");
                        //amount = LodgeSales(shop, amount, shop.master_balance_sheets[0]);
                        AddnewLodgementReimbursementTransaction(shop, saleslodge, pr, db, amount);
                    }
                }
            }
            catch (Exception)
            {
            }
        }
Exemplo n.º 15
0
        private void SendSmsAndMail(shop shop, transaction_category tran, debt debt, debt_transaction dtran, debt_lodgement_reimbursment newmlr)
        {
            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 (shop.agent != null)
                {
                    sms message;
                    if (tran.code == "DL")
                    {
                        if (smsvalidity)
                        {
                            sm mm = new CRUD.sms_crud().findByCode("DL");
                            message = new sms();

                            if (message.initializeDebtParameters(shop, debt, dtran, newmlr, mm.subject.Trim() + "\r\n" + mm.content.Trim() + "\r\n" + mm.conclusion.Trim()))
                            {
                                message.CustomizeAndSendSMS();
                            }
                        }
                        if (mailvalidity)
                        {
                            mail       mail   = new CRUD.mail_crud().findByCode("DL");
                            MailClient client = new MailClient();
                            client.SendDebtLodgement(shop, mail, debt, dtran);
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
        }
Exemplo n.º 16
0
        public SalesSummaryProcessing(List <master_transaction> maintransactions, List <master_daily_sale> dialysales, List <master_lodgement_reimbursment> mlr)
        {
            this.lodgement             = new CRUD.transaction_category_crud().find_transaction_category_By_code("L");
            this.lodgementReversal     = new CRUD.transaction_category_crud().find_transaction_category_By_code("LR");
            this.reimbursement         = new CRUD.transaction_category_crud().find_transaction_category_By_code("R");
            this.reimbursementReversal = new CRUD.transaction_category_crud().find_transaction_category_By_code("RR");

            List <shop> shops = getShopsIntransaction(maintransactions);

            SummarySheet = new List <SummarySheet>();
            foreach (shop shop in shops)
            {
                try
                {
                    List <master_transaction>            transactions = maintransactions.Where(a => a.shop == shop.id).ToList <master_transaction>();
                    List <master_daily_sale>             ssales       = dialysales.Where(a => a.shop == shop.id).ToList <master_daily_sale>();
                    List <master_lodgement_reimbursment> smlr         = mlr.Where(a => a.shop == shop.id).ToList <master_lodgement_reimbursment>();
                    string  shopcode        = shop.shop_code;
                    decimal balbf           = getbalbf(transactions, ssales);
                    decimal sales           = getSales(ssales);
                    decimal winnings        = getWinnings(ssales, transactions);
                    decimal commission      = getCommission(ssales);
                    decimal reimbursement   = getReimbursement(smlr);
                    decimal expectedlodgent = sales - winnings - commission + reimbursement;
                    decimal actuallodgement = getLodgement(smlr, transactions);
                    decimal bal             = (expectedlodgent - actuallodgement) + balbf;

                    SummarySheet sheet = new SummarySheet(shopcode, balbf, sales, winnings, commission, reimbursement, expectedlodgent, actuallodgement, bal);

                    SummarySheet.Add(sheet);
                }
                catch (Exception)
                {
                }
            }
        }
        public master_daily_sale insert_master_daily_sale()
        {
            bool isupdate = false;
            shop shop     = find_shop_By_Code(master_daily_sale.shop1.shop_code);

            if (shop != null)
            {
                try
                {
                    WgbSalesUpload.master_daily_sale prev_master_daily_sale = db.master_daily_sales.SingleOrDefault(u => u.shop1.id == shop.id && u.date == master_daily_sale.date);
                    master_balance_sheet             existsheet;
                    try
                    {
                        existsheet = sheets.SingleOrDefault(a => a.shop == shop.id);
                    }
                    catch (Exception)
                    {
                        existsheet = null;
                    }


                    using (TransactionScope scope = new TransactionScope())
                    {
                        if (prev_master_daily_sale != null)
                        {
                            isupdate = true;
                            master_daily_sale negatesale = new master_daily_sale();
                            negatesale.balance                = Math.Abs((decimal)prev_master_daily_sale.balance);
                            negatesale.cancelled              = Math.Abs((decimal)prev_master_daily_sale.cancelled);
                            negatesale.commision              = Math.Abs((decimal)prev_master_daily_sale.commision);
                            negatesale.date_posted            = DateTime.Now;
                            negatesale.islocked               = prev_master_daily_sale.islocked;
                            negatesale.isverified             = prev_master_daily_sale.isverified;
                            negatesale.net_balance            = Math.Abs((decimal)prev_master_daily_sale.net_balance);
                            negatesale.posted_by              = prev_master_daily_sale.posted_by;
                            negatesale.sales                  = Math.Abs((decimal)prev_master_daily_sale.sales);
                            negatesale.stake                  = Math.Abs((decimal)prev_master_daily_sale.stake);
                            negatesale.winnings               = Math.Abs((decimal)prev_master_daily_sale.winnings);
                            negatesale.shop                   = prev_master_daily_sale.shop;
                            negatesale.date                   = prev_master_daily_sale.date;
                            negatesale.single_stake_commision = Math.Abs((decimal)prev_master_daily_sale.single_stake_commision);
                            negatesale.single_stake_sales     = Math.Abs((decimal)prev_master_daily_sale.single_stake_sales);
                            negatesale.single_stake_percent   = Math.Abs((decimal)prev_master_daily_sale.single_stake_percent);
                            negatesale.other_stake_commision  = Math.Abs((decimal)prev_master_daily_sale.other_stake_commision);
                            application app2 = new application
                            {
                                app_id = Guid.NewGuid().ToString()
                            };
                            negatesale.app_id = app2.app_id;
                            //db.master_daily_sales.InsertOnSubmit(negatesale);

                            bsh = new balancesheethelper(existsheet, negatesale, trancategory);
                            List <master_transaction> translist = bsh.getDailySalestransactionsReversal();

                            //lodge commission for aunty bola
                            if (shop.shop_ownership == "WGB")
                            {
                                transaction_category trancatcomm = trancategory.SingleOrDefault(a => a.code == "CR");
                                LodgeCommission(translist.SingleOrDefault(a => a.trans_category == trancatcomm.id), trancatcomm);
                            }
                            db.master_transactions.InsertAllOnSubmit(translist);
                            master_balance_sheet sheet = bsh.balancesheet;
                            // master_balance_sheet existsheet = db.master_balance_sheets.SingleOrDefault(a => a.shop == prev_master_daily_sale.shop);
                            if (existsheet == null)
                            {
                                db.master_balance_sheets.InsertOnSubmit(sheet);
                            }
                            else
                            {
                                existsheet.netbalance     = sheet.netbalance;
                                existsheet.sales_balance  = sheet.sales_balance;
                                existsheet.online_credit  = sheet.online_credit;
                                existsheet.credit_balance = sheet.credit_balance;
                                new CRUD.master_balance_sheet_crud(existsheet).alter_master_balance_sheet();
                            }

                            prev_master_daily_sale.balance     = master_daily_sale.balance;
                            prev_master_daily_sale.cancelled   = master_daily_sale.cancelled;
                            prev_master_daily_sale.commision   = master_daily_sale.commision;
                            prev_master_daily_sale.date        = master_daily_sale.date;
                            prev_master_daily_sale.date_posted = master_daily_sale.date_posted;
                            prev_master_daily_sale.islocked    = master_daily_sale.islocked;
                            prev_master_daily_sale.isverified  = master_daily_sale.isverified;
                            prev_master_daily_sale.net_balance = master_daily_sale.net_balance;
                            prev_master_daily_sale.posted_by   = master_daily_sale.posted_by;
                            prev_master_daily_sale.sales       = master_daily_sale.sales;
                            // prev_master_daily_sale.shop = master_daily_sale.shop;
                            prev_master_daily_sale.stake                  = master_daily_sale.stake;
                            prev_master_daily_sale.winnings               = master_daily_sale.winnings;
                            prev_master_daily_sale.single_stake_sales     = master_daily_sale.single_stake_sales;
                            prev_master_daily_sale.single_stake_commision = master_daily_sale.single_stake_commision;
                            prev_master_daily_sale.single_stake_percent   = master_daily_sale.single_stake_percent;
                            prev_master_daily_sale.other_stake_commision  = master_daily_sale.other_stake_commision;
                            // master_balance_sheet sheet = bsh.balancesheet;
                            // master_balance_sheet existsheet = db.master_balance_sheets.SingleOrDefault(a => a.shop == master_daily_sale.shop);

                            bsh = new balancesheethelper(existsheet, prev_master_daily_sale, trancategory);
                            List <master_transaction> translist2 = bsh.getDailySalestransactions();
                            //lodge commission for aunty bola
                            if (shop.shop_ownership == "WGB")
                            {
                                transaction_category trancatcomm = trancategory.SingleOrDefault(a => a.code == "C");
                                LodgeCommission(translist2.SingleOrDefault(a => a.trans_category == trancatcomm.id), trancatcomm);
                            }
                            db.master_transactions.InsertAllOnSubmit(translist2);
                            master_balance_sheet sheet2 = bsh.balancesheet;
                            if (existsheet == null)
                            {
                                db.master_balance_sheets.InsertOnSubmit(sheet2);
                            }
                            else
                            {
                                existsheet.netbalance     = sheet.netbalance;
                                existsheet.sales_balance  = sheet.sales_balance;
                                existsheet.online_credit  = sheet.online_credit;
                                existsheet.credit_balance = sheet.credit_balance;
                                new CRUD.master_balance_sheet_crud(existsheet).alter_master_balance_sheet();
                            }
                            db.SubmitChanges();
                        }

                        if (!isupdate)
                        {
                            application app = new application
                            {
                                app_id = Guid.NewGuid().ToString()
                            };
                            // app =  new application_crud(app).insert_application();
                            db.SubmitChanges();
                            master_daily_sale.app_id      = app.app_id;
                            master_daily_sale.shop1       = shop;
                            master_daily_sale.date_posted = DateTime.Today;


                            if (master_daily_sale.shop1 != null)
                            {
                                db.master_daily_sales.InsertOnSubmit(master_daily_sale);
                                bsh = new balancesheethelper(existsheet, master_daily_sale, trancategory);
                                List <master_transaction> translist = bsh.getDailySalestransactions();
                                //lodge commission for aunty bola
                                if (shop.shop_ownership == "WGB")
                                {
                                    transaction_category trancatcomm = trancategory.SingleOrDefault(a => a.code == "C");
                                    LodgeCommission(translist.SingleOrDefault(a => a.trans_category == trancatcomm.id), trancatcomm);
                                }
                                db.master_transactions.InsertAllOnSubmit(translist);
                                master_balance_sheet sheet = bsh.balancesheet;
                                //master_balance_sheet existsheet = db.master_balance_sheets.SingleOrDefault(a => a.shop == master_daily_sale.shop);
                                if (existsheet == null)
                                {
                                    db.master_balance_sheets.InsertOnSubmit(sheet);
                                }
                                else
                                {
                                    existsheet.netbalance     = sheet.netbalance;
                                    existsheet.sales_balance  = sheet.sales_balance;
                                    existsheet.online_credit  = sheet.online_credit;
                                    existsheet.credit_balance = sheet.credit_balance;
                                    new CRUD.master_balance_sheet_crud(existsheet).alter_master_balance_sheet();
                                }
                            }
                            // db.master_balance_sheets.InsertOnSubmit(sheet);
                            db.SubmitChanges();
                        }

                        scope.Complete();
                    }

                    return(master_daily_sale);
                }

                catch (Exception)
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 18
0
 public BalanceProcessing()
 {
     creditbalance = db.transaction_categories.SingleOrDefault(a => a.code == "CBF");
     debitbalance  = db.transaction_categories.SingleOrDefault(a => a.code == "DBF");
 }
Exemplo n.º 19
0
        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
            {
            }
        }
Exemplo n.º 20
0
        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);
        }
 public transaction_category_crud(transaction_category transaction_category_)
 {
     this.transaction_category_ = transaction_category_;
 }