Backend Service

This commit is contained in:
2019-03-12 00:18:56 +00:00
parent 639d4bd908
commit 8f31474141
4 changed files with 164 additions and 492 deletions
+148 -14
View File
@@ -19,7 +19,7 @@ long provider_login(CVars in, CVars &out);
long PracticeLogin(CVars in, CVars &out);
long PracticeSessionCheck(long practice_id, long practice_users_id, const char *sessionid, int create);
long provider_createmember(CVars in, CVars &out);
long provider_acceptmember(CVars in, CVars &out);
long providers_call(CVars in, CVars &out) {
long ret = PHP_API_BAD_PARAM;
@@ -64,15 +64,6 @@ long providers_call(CVars in, CVars &out) {
long provider_createmember(CVars in, CVars &out){
logfmt(logINFO, "ENTER CALL long providers_createmember(CVars in, CVars &out)");
return 0;
}
long provider_login(CVars in, CVars &out) {
long ret = -1;
@@ -89,15 +80,158 @@ try{
} catch (bad_parameter) {
logfmt(logINFO, "ERROR CALL long provider_login(CVars in, CVars &out)");
}
return ret;
}
//000
long provider_createmember(CVars in, CVars &out){
long ret = PHP_API_BAD_PARAM;
logfmt(logINFO, "Provider CreateMember()");
try {
REQ_LONG(in, "practice_id", 0, -1);
REQ_LONG(in, "practice_user_id", 0, -1);
REQ_STRING(in, "username", 5, 49, "(.*)");
REQ_STRING(in, "firstname", 2, 49, "(.*)");
REQ_STRING(in, "lastname", 2, 49, "(.*)");
OPTIONAL(in, "phone") REQ_STRING(in, "phone", 5, 23, "(.*)");
REQ_STRING(in, "password", 5, 49, "(.*)");
OPTIONAL(in, "phone") REQ_STRING(in, "loc", 5, 16, "(.*)");
OPTIONAL(in, "login") REQ_LONG(in, "login", 0, -1);
long member_id = 0;
//REQ_STRING (in, "sessionid", 4, 40, "(.*)");
const char * loc = getenv("REMOTE_ADDR");
out["member_id"]="0";
ret = load_db_record(out, "SELECT *,id AS member_id FROM members WHERE LOWER(username)=LOWER('%s') ", in["username"].c_str());
logfmt(logINFO, "Provider CreateMember()member_id=%lu",out["member_id"].Long());
if (out["member_id"].Long() == 0) {
// LETS CREATE THE ACOUNT NOW
CVars x;
const char * loc = getenv("REMOTE_ADDR");
x["loc"] = loc;
x["loc"].set_valid(true);
x["username"] = in["username"];
x["username"].set_valid(true);
x["firstname"] = in["firstname"];
x["firstname"].set_valid(true);
x["lastname"] = in["lastname"];
x["lastname"].set_valid(true);
x["phone"] = in["phone"];
x["phone"].set_valid(true);
// x["loc"] = in["loc"];
// x["loc"].set_valid(true);
x["email"] = in["email"];
x["email"].set_valid(true);
// x["password"] = in["email"];
// x["password"].set_valid(true);
out["member_id"] = insert_db_record(DBS_VALID, "members", "members_id_seq", x);
if (out["member_id"].Long() > 0) {
pgsql_query("UPDATE members SET password = md5('%s') WHERE id = %lu", in["password"].c_str(), out["member_id"].Long()); // setting the password MD5 now
// Now Send Email
ret = PHP_API_OK;
//make your patient
CVars z;
z["practice_id"] = in["practice_id"];
z["practice_id"].set_valid(true);
z["practice_user_id"] = in["practice_user_id"];
z["practice_user_id"].set_valid(true);
z["member_id"] = out["member_id"];
z["member_id"].set_valid(true);
provider_acceptmember(z, out);
out["status"] = "OK";
member_id = out["member_id"].Long();
in["member_id"] = out["member_id"];
in["member_id"].set_valid(true);
medTrUpdateProfile(in, out);
// ==============
}
} // if username
}catch (bad_parameter) {
logfmt(logINFO, "ERROR CALL Provider CreateMember");
}
logfmt(logINFO, "/Provider CreateMember()");
return ret;
}
void GenerateLongID(char * number, int sz, int seed);
long provider_acceptmember(CVars in, CVars &out){
long ret = PHP_API_BAD_PARAM;
logfmt(logINFO, "provider_acceptmember()");
char vname[15];
try{
REQ_LONG(in, "practice_id", 0, -1);
REQ_LONG(in, "practice_user_id", 0, -1);
REQ_LONG(in, "member_id", 0, -1);
GenerateLongID(vname, sizeof (vname), 10);
//snprintf(vname, sizeof (vname), "ME%05d", i);
out["long_id"] = vname;
CVars x;
x["practice_id"] = in["practice_id"];
x["practice_id"].set_valid(true);
x["practice_user_id"] = in["practice_user_id"];
x["practice_user_id"].set_valid(true);
x["member_id"] = in["member_id"];
x["member_id"].set_valid(true);
x["long_id"] = vname;
x["long_id"].set_valid(true);
out["patient_id_id"] = insert_db_record(DBS_VALID, "patients", "patients_id_seq", x);
}catch (bad_parameter) {
logfmt(logINFO, "ERROR CALL Provider CreateMember");
}
logfmt(logINFO, "/provider_acceptmember()");
return ret;
}
void GenerateLongID(char * number, int sz, int seed) {
char chars[] = "WRB01234WRB56789WRB";
int n = sizeof (chars);
int i;
/*
time_t t;
time( &t );
pid_t pid = getpid();
srand(t+pid);
*/
srand((unsigned int) time((time_t *) NULL));
for (i = 0; i < 10 && i < sz - 1; i++) {
int k = seed % n;
if (seed > 1 && k == i) {
number[i] = chars[n - k];
} else {
number[i] = chars[ (int) ((n - 1.0) * rand() / (RAND_MAX + 1.0)) ];
}
}
number[i] = 0;
}
//XXX
long PracticeLogin(CVars in, CVars &out) {
long ret = PHP_API_BAD_PARAM;
@@ -11,17 +11,24 @@ class Patient extends Provider_Controller {
public function addnew() {
$data = array();
$data["account_message"] = "";
$data["firstname"] = $data["lastname"] = $data["email"] = $data["password"]= $data["street1"] = $data["street2"]= $data["city"] = $data["zipcode"]="";
$data["account_message"] = "";
$data["firstname"] = $data["lastname"] = $data["email"] = $data["password"]= $data["street1"] = $data["street2"]= $data["city"] = $data["zipcode"]="";
if ($_POST){
$data['password'] = trim($this->input->post('password'));
$data['practice_id'] = $_SESSION['practice_id'];
$data['practice_user_id'] = $_SESSION['practice_id'];
$data['username'] = "NON-USER-".rand(1000000,99999999);
$data['password'] = "NON-USER-".rand(1000000,99999999);
$data['country'] = "NG";
$data['firstname'] = trim($this->input->post('firstname'));
$data['lastname'] = trim($this->input->post('lastname'));
$data['email'] = trim($this->input->post('email'));
$data['password'] = trim($this->input->post('password'));
$data['street1'] = trim($this->input->post('street1'));
$data['street2'] = trim($this->input->post('street2'));
$data['city'] = trim($this->input->post('city'));
$data['state'] = trim($this->input->post('state'));
$data["loc"] = $_SERVER["REMOTE_ADDR"];
$data["action"] = MERMS_PROVIDERS_CREATEMEMBER;
$out = array();
@@ -1,6 +1,6 @@
<div class="card card-statistics h-100 mb-0">
<div class="card card-statistics h-10 mb-0">
<div class="card-header d-flex align-items-center justify-content-between">
<div class="card-heading">
<h4 class="card-title">Patients List</h4>
@@ -45,474 +45,9 @@ $icc++;
<?
}
?>
<! --tr>
<td>1</td>
<td>Cold Shoulder Bling Dress</td>
<td>$65.342</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 80%;" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>2</td>
<td>PlayStation 4 Pro 1TB Console</td>
<td>$47.655</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 36%;" aria-valuenow="36" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>3</td>
<td>Extra Fine Wool Jumpers</td>
<td>$56.479</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 60%;" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-danger-inverse">Canceled</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>4</td>
<td>Long Sleeve Bow Top</td>
<td>$04.786</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 50%;" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>5</td>
<td>Shine Stripe Long Sleeve Ruffle</td>
<td>$23.456</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 75%;" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>6</td>
<td>Long Sleeve Micro Thermal Shirt</td>
<td>$65.598</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 90%;" aria-valuenow="90" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-info-inverse">info</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>7</td>
<td>Standard Fit Bomber Sweater</td>
<td>$87.659</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 45%;" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-warning-inverse">Warning</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>8</td>
<td>Standard Fit Crew T-Shirt</td>
<td>$32.466</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 55%;" aria-valuenow="55" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>9</td>
<td>Standard Fit Short Sleeve V-Neck</td>
<td>$03.544</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 70%;" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>10</td>
<td>Sanus Classic Small Full Motion Wall</td>
<td>$14.489</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 65%;" aria-valuenow="65" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>11</td>
<td>Jena Gaines</td>
<td>$78.654</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 47%;" aria-valuenow="47" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>12</td>
<td>Quinn Flynn</td>
<td>$23.486</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 96%;" aria-valuenow="96" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>13</td>
<td>Charde Marshall</td>
<td>$65.453</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 74%;" aria-valuenow="74" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>14</td>
<td>Haley Kennedy</td>
<td>$78.645</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 62%;" aria-valuenow="62" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>15</td>
<td>Tatyana Fitzpatrick</td>
<td>$65.342</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 55%;" aria-valuenow="55" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>16</td>
<td>Michael Silva</td>
<td>$07.456</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 47%;" aria-valuenow="47" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>17</td>
<td>Paul Byrd</td>
<td>$36.478</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 36%;" aria-valuenow="36" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>18</td>
<td>Gloria Little</td>
<td>$84.798</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 47%;" aria-valuenow="47" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>19</td>
<td>Bradley Greer</td>
<td>$12.356</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 65%;" aria-valuenow="65" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>20</td>
<td>Dai Rios</td>
<td>$45.655</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 85%;" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>21</td>
<td>Jenette Caldwell</td>
<td>$47.586</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 47%;" aria-valuenow="47" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>22</td>
<td>Yuri Berry</td>
<td>$36.756</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 63%;" aria-valuenow="63" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>23</td>
<td>Caesar Vance</td>
<td>$78.659</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 96%;" aria-valuenow="96" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>24</td>
<td>Doris Wilder</td>
<td>$56.484</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 87%;" aria-valuenow="87" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>25</td>
<td>Angelica Ramos</td>
<td>$36.796</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 98%;" aria-valuenow="98" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>26</td>
<td>Gavin Joyce</td>
<td>$25.365</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 87%;" aria-valuenow="87" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>27</td>
<td>Jennifer Chang</td>
<td>$78.489</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 70%;" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>28</td>
<td>Brenden Wagner</td>
<td>$35.987</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 65%;" aria-valuenow="65" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>29</td>
<td>Fiona Green</td>
<td>$78.464</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 75%;" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>30</td>
<td>Shou Itou</td>
<td>$61.444</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 85%;" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>31</td>
<td>Michelle House</td>
<td>$85.488</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 47%;" aria-valuenow="47" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>32</td>
<td>Suki Burks</td>
<td>$89.463</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 66%;" aria-valuenow="66" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>33</td>
<td>Prescott Bartlett</td>
<td>$23.464</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 62%;" aria-valuenow="62" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr -->
<tr>
<td>34</td>
<td>Gavin Cortez</td>
<td>$12.254</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 45%;" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>35</td>
<td>Martena Mccray</td>
<td>$24.478</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 36%;" aria-valuenow="36" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>36</td>
<td>Unity Butler</td>
<td>$36.478</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 45%;" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>37</td>
<td>Howard Hatfield</td>
<td>$48.654</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 96%;" aria-valuenow="96" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>38</td>
<td>Hope Fuentes</td>
<td>$78.654</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 47%;" aria-valuenow="47" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
<tr>
<td>39</td>
<td>Vivian Harrell</td>
<td>$26.154</td>
<td>
<div class="progress my-3" style="height: 3px;">
<div class="progress-bar" role="progressbar" style="width: 56%;" aria-valuenow="56" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</td>
<td><span class="badge badge-success-inverse">Active</span></td>
<td> <a class="mr-3" href="javascript:void(0);"><i class="fe fe-edit"></i></a><a href="javascript:void(0);"><i class="fe fe-trash-2"></i></a></td>
</tr>
</tbody>
<tfoot>
<tr>
@@ -58,13 +58,9 @@
</ul>
</li>
<li>
<a class="has-arrow" href="javascript:void(0)" aria-expanded="false"><i class="nav-icon ti ti-layout-column3-alt"></i><span class="nav-title">Tables</span></a>
<a class="has-arrow" href="javascript:void(0)" aria-expanded="false"><i class="nav-icon ti ti-layout-column3-alt"></i><span class="nav-title">Reports</span></a>
<ul aria-expanded="false">
<li> <a href="/provider">Basic Table</a> </li>
<li> <a href="/provider">Color Table </a> </li>
<li> <a href="/provider">Data Table</a> </li>
<li> <a href="/provider">Editable Table</a> </li>
<li> <a href="/provider">Export Table</a> </li>
<li> <a href="/reports">General Reports</a> </li>
</ul>
</li>