private static void CheckForPayed(int billId)
        {
            var bill = BillProcessor.GetBillById(billId);

            if (bill.AmountDue <= 0)
            {
                var data = new BillModel {
                    ID        = billId,
                    BillName  = bill.BillName,
                    AmountDue = bill.AmountDue,
                    DueDate   = bill.DueDate,
                    IsCurrent = bill.IsCurrent,
                    Roommates = bill.Roommates
                };

                string sql = $"spMarkPaid {billId}";
                SqlDataAccess.SaveData(sql, data);
                ClearAssignedToPaidBill(billId);
            }
        }
        public static int CreatePayment(int billId, int roommateId, decimal amountPaid)
        {
            var bills     = BillProcessor.GetBillById(billId);
            var roommates = RoommateProcessor.GetRoommateById(roommateId);
            var data      = new PaymentModel {
                RoommateId = roommateId,
                BillId     = billId,
                AmountPaid = amountPaid
            };

            //display payment
            string sql = $"sp_AddPayment '{billId}', '{roommateId}', '{amountPaid}'";

            SqlDataAccess.SaveData(sql, data);
            decimal newAmount = bills.AmountDue - amountPaid;

            ApplyPayment(newAmount, billId);
            RemoveAssignedBill(billId, roommateId);
            Utilities.OnBillPaid(billId);
            return(0);
        }