예제 #1
0
        public winningsHelper(master_balance_sheet master_balance_sheet_)
        {
            try
            {
                this.master_balance_sheet = master_balance_sheet_;
                shop_code = master_balance_sheet.shop1.shop_code;
                admin_user user = new admin_user();
                if (master_balance_sheet.shop1.agent != null)
                {
                    user = new CRUD.admin_users_crud().find_admin_user_By_ID(master_balance_sheet.shop1.agent.Value);
                }
                else if (master_balance_sheet.shop1.shopmanager_id != null)
                {
                    int   shopmanager = master_balance_sheet.shop1.shopmanager_id.Value;
                    login login       = new CRUD.logins_crud().find_login_By_ID(shopmanager);
                    user = new CRUD.admin_users_crud().find_admin_user_By_ID(login.admin_users[0].id);
                }
                AccountNumber = (user.accountNo != null)? user.accountNo: "";

                AccountName = (user.account_name != null) ? user.account_name : "";
                Bank        = (user.bank_list != null) ? user.bank_list.name : "";
                Balance     = master_balance_sheet.sales_balance.Value;
            }
            catch (Exception)
            {
                this.master_balance_sheet = master_balance_sheet_;
                shop_code     = master_balance_sheet.shop1.shop_code;
                AccountNumber = "";
                AccountName   = "";
                Bank          = "";
                Balance       = master_balance_sheet.sales_balance.Value;
            }
        }
예제 #2
0
        public bool SaveLapsePaymentTransaction(master_transaction newmastertransaction, master_balance_sheet masterbalance)
        {
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    newmastertransaction.app_id = Application().app_id;

                    db.master_transactions.InsertOnSubmit(newmastertransaction);

                    master_balance_sheet prev_master_balance_sheet = db.master_balance_sheets.SingleOrDefault(a => a.id == masterbalance.id);

                    prev_master_balance_sheet.credit_balance = masterbalance.credit_balance;
                    prev_master_balance_sheet.netbalance     = masterbalance.netbalance;
                    prev_master_balance_sheet.online_credit  = masterbalance.online_credit;
                    prev_master_balance_sheet.sales_balance  = masterbalance.sales_balance;


                    db.SubmitChanges();

                    scope.Complete();
                }
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
예제 #3
0
        private void SaveTransactions()
        {
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    db.master_transactions.InsertAllOnSubmit(transactionsToSave);
                    db.debt_transactions.InsertAllOnSubmit(debtTransactionToSave);
                    foreach (master_balance_sheet bal in ShopBalancesToUpdate)
                    {
                        master_balance_sheet prevbal = db.master_balance_sheets.SingleOrDefault(a => a.id == bal.id);
                        prevbal.credit_balance = bal.credit_balance;
                        prevbal.sales_balance  = bal.sales_balance;
                        prevbal.netbalance     = bal.netbalance;
                    }

                    foreach (debt debt in shopDebtsToUpdate)
                    {
                        debt prevdebt = db.debts.SingleOrDefault(a => a.id == debt.id);
                        prevdebt.current_amount = debt.current_amount;
                        prevdebt.status         = debt.status;
                    }

                    db.SubmitChanges();
                    scope.Complete();
                }
            }
            catch (Exception)
            {
            }
        }
예제 #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)
            {
            }
        }
 public master_balance_sheet find_master_balance_sheet_By_ID(int id)
 {
     try
     {
         master_balance_sheet = db.master_balance_sheets.SingleOrDefault(a => a.id == id);
         return(master_balance_sheet);
     }
     catch (Exception)
     {
         return(null);
     }
 }
 public master_balance_sheet find_master_balance_sheet_By_AppId(string Appid)
 {
     try
     {
         master_balance_sheet = db.master_balance_sheets.SingleOrDefault(a => a.App_id == Appid);
         return(master_balance_sheet);
     }
     catch (Exception)
     {
         return(null);
     }
 }
 public master_balance_sheet find_master_balance_sheet_By_ShopId(int ShopId)
 {
     try
     {
         master_balance_sheet = db.master_balance_sheets.SingleOrDefault(a => a.shop == ShopId);
         return(master_balance_sheet);
     }
     catch (Exception)
     {
         return(null);
     }
 }
 public master_balance_sheet delete_master_balance_sheet()
 {
     try
     {
         master_balance_sheet prev_master_balance_sheet = db.master_balance_sheets.SingleOrDefault(a => a.id == master_balance_sheet.id);
         db.master_balance_sheets.DeleteOnSubmit(prev_master_balance_sheet);
         return(master_balance_sheet);
     }
     catch (Exception)
     {
         return(null);
     }
 }
예제 #9
0
        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);
            }
        }
예제 #10
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 master_balance_sheet alter_master_balance_sheet()
        {
            try
            {
                master_balance_sheet prev_master_balance_sheet = db.master_balance_sheets.SingleOrDefault(a => a.id == master_balance_sheet.id);

                prev_master_balance_sheet.credit_balance = master_balance_sheet.credit_balance;
                prev_master_balance_sheet.netbalance     = master_balance_sheet.netbalance;
                prev_master_balance_sheet.online_credit  = master_balance_sheet.online_credit;
                prev_master_balance_sheet.sales_balance  = master_balance_sheet.sales_balance;



                db.SubmitChanges();
                return(master_balance_sheet);
            }
            catch (Exception)
            {
                return(null);
            }
        }
예제 #12
0
        public bool SaveCutOffTransaction(debt_transaction newdebttransaction, debt debt, master_transaction newmastertransaction, master_balance_sheet masterbalance)
        {
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    newmastertransaction.app_id = Application().app_id;
                    debt.app_id = Application().app_id;
                    newdebttransaction.app_id = Application().app_id;


                    db.master_transactions.InsertOnSubmit(newmastertransaction);

                    master_balance_sheet prev_master_balance_sheet = db.master_balance_sheets.SingleOrDefault(a => a.id == masterbalance.id);

                    prev_master_balance_sheet.credit_balance = masterbalance.credit_balance;
                    prev_master_balance_sheet.netbalance     = masterbalance.netbalance;
                    prev_master_balance_sheet.online_credit  = masterbalance.online_credit;
                    prev_master_balance_sheet.sales_balance  = masterbalance.sales_balance;

                    db.debts.InsertOnSubmit(debt);


                    db.SubmitChanges();

                    newdebttransaction.debt = new CRUD.debt_crud().find_debt_By_AppId(debt.app_id).id;

                    db.debt_transactions.InsertOnSubmit(newdebttransaction);

                    db.SubmitChanges();

                    scope.Complete();
                }
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
예제 #13
0
        private void ComputeBonuses()
        {
            //AutoSendSMS("234" + user.phone.Substring(1, user.phone.Length-1));



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


                        shop shop = bhelp.shop;

                        List <debt> shopdebt = shopDebtsToUpdate.Where(a => a.shop == shop.id).ToList <debt>();


                        if (shopdebt.Count > 0)
                        {
                            master_balance_sheet shopbal = ShopBalancesToUpdate.SingleOrDefault(a => a.shop == shop.id);
                            bhelp.Bonus = lodgeDebt(shopdebt, bhelp.Bonus, shopbal);
                        }
                        if (bhelp.Bonus > 0)
                        {
                            master_balance_sheet shopbal = ShopBalancesToUpdate.SingleOrDefault(a => a.shop == shop.id);
                            bhelp.Bonus = LodgeSales(shop, bhelp.Bonus, shopbal);
                        }
                    }
                    catch (Exception)
                    {
                    }
                }
            }
        }
예제 #14
0
        private decimal LodgeSales(shop shop, decimal bonus, master_balance_sheet shopbal)
        {
            master_transaction tran = new master_transaction()
            {
                amount          = bonus,
                app_id          = Application().app_id,
                balance_after   = getbal(shopbal.sales_balance, bonus, bonustransaction),
                balance_before  = shopbal.sales_balance,
                description     = bonustransaction.description + " " + "for " + fromdate.ToShortDateString() + " - " + todate.ToShortDateString(),
                details         = bonustransaction.description + " " + "for " + fromdate.ToShortDateString() + " - " + todate.ToShortDateString(),
                posted_by       = user.id,
                shop            = shop.id,
                trans_category  = bonustransaction.id,
                trans_timestamp = DateTime.Now,
                trans_type      = (bonustransaction.type == true) ? 0 : 1,
            };


            shopbal.sales_balance = getbal(shopbal.sales_balance, bonus, bonustransaction);
            shopbal.netbalance    = getbal(shopbal.netbalance, bonus, bonustransaction);
            transactionsToSave.Add(tran);
            return(bonus);
        }
예제 #15
0
        public balancesheethelper(master_balance_sheet existsheet, master_daily_sale sale, List <transaction_category> trancategory)
        {
            //dbmc = dbmc_;
            master_daily_sale = sale;
            this.trancategory = trancategory;
            sheet             = existsheet;
            if (sheet == null)
            {
                application app = new application
                {
                    app_id = Guid.NewGuid().ToString()
                };

                sheet = new master_balance_sheet
                {
                    App_id         = app.app_id,
                    shop           = master_daily_sale.shop,
                    netbalance     = Decimal.Zero,
                    sales_balance  = Decimal.Zero,
                    credit_balance = Decimal.Zero,
                    online_credit  = Decimal.Zero
                };
            }
        }
예제 #16
0
        public bool SaveMasterLodgementTransaction(master_lodgement_reimbursment newmlr, master_transaction newmastertransaction, master_balance_sheet masterbalance)
        {
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    newmastertransaction.app_id = Application().app_id;
                    newmlr.app_id = Application().app_id;

                    db.master_transactions.InsertOnSubmit(newmastertransaction);
                    db.SubmitChanges();

                    newmlr.transaction          = new CRUD.master_transaction_crud().find_master_transaction_By_AppId(newmastertransaction.app_id).id;
                    newmlr.transaction_type     = (newmastertransaction.transaction_category.type == true) ? 1 : 0;
                    newmlr.transaction_category = newmastertransaction.trans_category;
                    db.master_lodgement_reimbursments.InsertOnSubmit(newmlr);

                    master_balance_sheet prev_master_balance_sheet = db.master_balance_sheets.SingleOrDefault(a => a.id == masterbalance.id);

                    prev_master_balance_sheet.credit_balance = masterbalance.credit_balance;
                    prev_master_balance_sheet.netbalance     = masterbalance.netbalance;
                    prev_master_balance_sheet.online_credit  = masterbalance.online_credit;
                    prev_master_balance_sheet.sales_balance  = masterbalance.sales_balance;


                    db.SubmitChanges();

                    scope.Complete();
                }
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
예제 #17
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);
        }
예제 #18
0
        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);
        }
 public master_balance_sheet_crud(master_balance_sheet master_balance_sheet_)
 {
     this.master_balance_sheet_ = master_balance_sheet_;
 }
예제 #20
0
        private decimal lodgeDebt(List <debt> shopdebt, decimal bonus, master_balance_sheet shopbal)
        {
            foreach (debt debt in shopdebt)
            {
                if (bonus > 0)
                {
                    //debt less than or equal to bonus
                    if (debt.current_amount <= bonus && debt.status == true && debt.current_amount > 0)
                    {
                        decimal temp = debt.current_amount.Value;

                        debt.current_amount = 0;

                        debt.status = false;

                        debt_transaction dtran = new debt_transaction
                        {
                            amount          = temp,
                            app_id          = Application().app_id,
                            balance_after   = getbal(temp, temp, bonustransaction),
                            balance_before  = temp,
                            description     = bonustransaction.description + " " + "for " + fromdate.ToShortDateString() + " - " + todate.ToShortDateString(),
                            details         = bonustransaction.description + " " + "for " + fromdate.ToShortDateString() + " - " + todate.ToShortDateString(),
                            posted_by       = user.id,
                            shop            = debt.shop,
                            trans_category  = bonustransaction.id,
                            trans_timestamp = DateTime.Now,
                            trans_type      = (bonustransaction.type == true) ? 0 : 1,
                            debt            = debt.id,
                        };
                        bonus -= temp;
                        debtTransactionToSave.Add(dtran);

                        shopbal.credit_balance = getbal(shopbal.credit_balance, temp, bonustransaction);
                        shopbal.netbalance     = getbal(shopbal.netbalance, temp, bonustransaction);
                    }
                    else if (debt.current_amount > bonus && debt.status == true && debt.current_amount > 0)
                    {
                        decimal temp = debt.current_amount.Value;
                        debt.current_amount -= bonus;



                        debt_transaction dtran = new debt_transaction
                        {
                            amount          = bonus,
                            app_id          = Application().app_id,
                            balance_after   = getbal(temp, bonus, bonustransaction),
                            balance_before  = temp,
                            description     = bonustransaction.description + " " + "for " + fromdate.ToShortDateString() + " - " + todate.ToShortDateString(),
                            details         = bonustransaction.description + " " + "for " + fromdate.ToShortDateString() + " - " + todate.ToShortDateString(),
                            posted_by       = user.id,
                            shop            = debt.shop,
                            trans_category  = bonustransaction.id,
                            trans_timestamp = DateTime.Now,
                            trans_type      = (bonustransaction.type == true) ? 0 : 1,
                            debt            = debt.id,
                        };


                        debtTransactionToSave.Add(dtran);

                        shopbal.credit_balance = getbal(shopbal.credit_balance, bonus, bonustransaction);
                        shopbal.netbalance     = getbal(shopbal.netbalance, bonus, bonustransaction);
                        bonus -= bonus;
                    }
                }
            }

            return(bonus);
        }
        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);
            }
        }
예제 #22
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
            {
            }
        }