CMXX - First candidate
This commit is contained in:
@@ -14,7 +14,7 @@ $post_content = json_decode(decode_payload($input),true);
|
||||
if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} else {$soldto_search = '-%';}
|
||||
|
||||
//default whereclause
|
||||
list($whereclause,$condition) = getWhereclause('equipment',$permission,$partner,'');
|
||||
list($whereclause,$condition) = getWhereclause('',$permission,$partner,'');
|
||||
|
||||
|
||||
//SET PARAMETERS FOR QUERY
|
||||
|
||||
@@ -76,7 +76,8 @@ if ($stmt->rowCount() == 1) {
|
||||
'clientID' => $user_data['username'],
|
||||
'token' => $token,
|
||||
'token_valid' => date('Y-m-d H:i:s',time() + 1800),
|
||||
'userkey' => $user_data['userkey']
|
||||
'userkey' => $user_data['userkey'],
|
||||
'language' => $user_data['language']
|
||||
);
|
||||
|
||||
//Reset login count after succesfull attempt
|
||||
|
||||
@@ -81,8 +81,38 @@ if(isset($get_content) && $get_content!=''){
|
||||
$clause .= ' AND (serialnumber like :'.$v[0].' OR e.rowID like :'.$v[0].')';
|
||||
}
|
||||
elseif ($v[0] == 'partnerid') {
|
||||
//build up accounthierarchy
|
||||
$clause .= ' AND e.accounthierarchy like :'.$v[0];
|
||||
|
||||
//PARTNER INFORMATION
|
||||
$api_url = '/v2/partners/partnerID='.$v[1] ;
|
||||
$partner_return = ioApi($api_url,'',$clientsecret);
|
||||
$partner_return = json_decode($partner_return ,true);
|
||||
$partner_return = $partner_return[0];
|
||||
|
||||
if ($partner_return){
|
||||
//PARTNER FOUND
|
||||
|
||||
switch ($partner_return['partnertype']) {
|
||||
case 'SalesID':
|
||||
$clause .= ' AND e.accounthierarchy like "%_salesid_:_'.$v[1].'-%"';
|
||||
break;
|
||||
case 'SoldTo':
|
||||
$clause .= ' AND e.accounthierarchy like "%_soldto_:_'.$v[1].'-%"';
|
||||
break;
|
||||
case 'ShipTo':
|
||||
$clause .= ' AND e.accounthierarchy like "%_shipto_:_'.$v[1].'-%"';
|
||||
break;
|
||||
case 'Location':
|
||||
$clause .= ' AND e.accounthierarchy like "%_location_:_'.$v[1].'-%"';
|
||||
break;
|
||||
}
|
||||
|
||||
} else {
|
||||
//Partner not found
|
||||
//Partner not found return empty
|
||||
$clause .= ' AND e.accounthierarchy =""';
|
||||
}
|
||||
//remove original key/value from array
|
||||
unset($criterias[$v[0]]);
|
||||
}
|
||||
elseif ($v[0] == 'serialnumber') {
|
||||
//build up serialnumber
|
||||
|
||||
@@ -49,11 +49,12 @@ if(isset($criterias['totals']) && $criterias['totals'] ==''){
|
||||
}
|
||||
elseif (isset($criterias['list']) && $criterias['list'] =='invoice'){
|
||||
//SQL for Paging
|
||||
$sql = 'SELECT tx.*, txi.item_id as item_id,txi.item_price as item_price, txi.item_quantity as item_quantity, txi.item_options as item_options, p.productcode, p.productname, inv.id as invoice, inv.created as invoice_created
|
||||
$sql = 'SELECT tx.*, txi.item_id as item_id,txi.item_price as item_price, txi.item_quantity as item_quantity, txi.item_options as item_options, p.productcode, p.productname, inv.id as invoice, inv.created as invoice_created, i.language as user_language
|
||||
FROM transactions tx
|
||||
left join invoice inv ON tx.id = inv.txn_id
|
||||
left join transactions_items txi ON tx.id = txi.txn_id
|
||||
left join products p ON p.rowID = txi.item_id '.$whereclause;
|
||||
left join products p ON p.rowID = txi.item_id
|
||||
left join identity i ON i.userkey = tx.account_id '.$whereclause;
|
||||
}
|
||||
else {
|
||||
//SQL for Paging
|
||||
|
||||
115
api/v2/get/partners.php
Normal file
115
api/v2/get/partners.php
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
defined($security_key) or exit;
|
||||
|
||||
//------------------------------------------
|
||||
// Products
|
||||
//------------------------------------------
|
||||
|
||||
//Connect to DB
|
||||
$pdo = dbConnect($dbname);
|
||||
|
||||
//SoldTo is empty
|
||||
if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} else {$soldto_search = '-%';}
|
||||
|
||||
//default whereclause
|
||||
list($whereclause,$condition) = getWhereclauselvl2('partners',$permission,$partner,'get');
|
||||
|
||||
//NEW ARRAY
|
||||
$criterias = [];
|
||||
$clause = '';
|
||||
|
||||
//Check for $_GET variables and build up clause
|
||||
if(isset($get_content) && $get_content!=''){
|
||||
//GET VARIABLES FROM URL
|
||||
$requests = explode("&", $get_content);
|
||||
//Check for keys and values
|
||||
foreach ($requests as $y){
|
||||
$v = explode("=", $y);
|
||||
//INCLUDE VARIABLES IN ARRAY
|
||||
$criterias[$v[0]] = $v[1];
|
||||
|
||||
if ($v[0] == 'page' || $v[0] =='p' || $v[0] =='totals' || $v[0] =='list'|| $v[0] =='success_msg'){
|
||||
//do nothing
|
||||
}
|
||||
elseif ($v[0] == 'search') {
|
||||
//build up search
|
||||
$clause .= ' AND partnername like :'.$v[0];
|
||||
}
|
||||
else {//create clause
|
||||
$clause .= ' AND '.$v[0].' = :'.$v[0];
|
||||
}
|
||||
}
|
||||
if ($whereclause == '' && $clause !=''){
|
||||
$whereclause = 'WHERE '.substr($clause, 4);
|
||||
} else {
|
||||
$whereclause .= $clause;
|
||||
}
|
||||
}
|
||||
//Define Query
|
||||
if(isset($criterias['totals']) && $criterias['totals'] ==''){
|
||||
//Request for total rows
|
||||
$sql = 'SELECT count(*) as count FROM partner '.$whereclause.'';
|
||||
}
|
||||
elseif(isset($criterias['list']) && $criterias['list'] ==''){
|
||||
//Request for total rows
|
||||
$sql = 'SELECT * FROM partner '.$whereclause.'';
|
||||
}
|
||||
else {
|
||||
//SQL for Paging
|
||||
$sql = 'SELECT * FROM partner '.$whereclause.' LIMIT :page,:num_products';
|
||||
}
|
||||
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
//Bind to query
|
||||
if (str_contains($whereclause, ':condition')){
|
||||
$stmt->bindValue('condition', $condition, PDO::PARAM_STR);
|
||||
}
|
||||
|
||||
if (!empty($criterias)){
|
||||
foreach ($criterias as $key => $value){
|
||||
$key_condition = ':'.$key;
|
||||
if (str_contains($whereclause, $key_condition)){
|
||||
if ($key == 'search'){
|
||||
$search_value = '%'.$value.'%';
|
||||
$stmt->bindValue($key, $search_value, PDO::PARAM_STR);
|
||||
}
|
||||
else {
|
||||
$stmt->bindValue($key, $value, PDO::PARAM_STR);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Add paging details
|
||||
if(isset($criterias['totals']) && $criterias['totals']==''){
|
||||
$stmt->execute();
|
||||
$messages = $stmt->fetch();
|
||||
$messages = $messages[0];
|
||||
}
|
||||
elseif(isset($criterias['list']) && $criterias['list']==''){
|
||||
//Excute Query
|
||||
$stmt->execute();
|
||||
//Get results
|
||||
$messages = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
else {
|
||||
$current_page = isset($criterias['p']) && is_numeric($criterias['p']) ? (int)$criterias['p'] : 1;
|
||||
$stmt->bindValue('page', ($current_page - 1) * $page_rows_partners, PDO::PARAM_INT);
|
||||
$stmt->bindValue('num_products', $page_rows_partners, PDO::PARAM_INT);
|
||||
|
||||
//Excute Query
|
||||
$stmt->execute();
|
||||
//Get results
|
||||
$messages = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
//------------------------------------------
|
||||
//JSON_ENCODE
|
||||
//------------------------------------------
|
||||
$messages = json_encode($messages, JSON_UNESCAPED_UNICODE);
|
||||
|
||||
//Send results
|
||||
echo $messages;
|
||||
|
||||
?>
|
||||
@@ -12,7 +12,7 @@ $pdo = dbConnect($dbname);
|
||||
if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} else {$soldto_search = '-%';}
|
||||
|
||||
//default whereclause
|
||||
list($whereclause,$condition) = getWhereclause('pricelist',$permission,$partner,'get');
|
||||
list($whereclause,$condition) = getWhereclause('pricelists',$permission,$partner,'get');
|
||||
|
||||
//NEW ARRAY
|
||||
$criterias = [];
|
||||
|
||||
@@ -90,7 +90,9 @@ elseif (isset($criterias['list']) && $criterias['list'] =='price'){
|
||||
$whereclause_2 = 'WHERE pat.item_status = 1';
|
||||
} else {
|
||||
$whereclause_1 = $whereclause .' AND p.salesflag = 1 AND p.status = 1 ';
|
||||
$whereclause_2 = $whereclause .' AND pat.item_status = 1';
|
||||
|
||||
list($whereclause_alt,$condition_alt) = getWhereclause('products_attributes_items',$permission,$partner,'get');
|
||||
$whereclause_2 = $whereclause_alt .' AND pat.item_status = 1';
|
||||
}
|
||||
|
||||
//GET ALL PRODUCTS AND PRODUCT ATTRIBUTES FOR PRICING
|
||||
@@ -104,11 +106,14 @@ elseif (isset($criterias['list']) && $criterias['list'] =='config'){
|
||||
$whereclause_2 = 'WHERE pag.group_status = 1';
|
||||
} else {
|
||||
$whereclause_1 = $whereclause .' AND p.salesflag = 1 AND p.status = 1 AND p.configurable = 0 ';
|
||||
$whereclause_2 = $whereclause .' AND pag.group_status = 1';
|
||||
|
||||
list($whereclause_alt2,$condition_alt2) = getWhereclause('products_attributes_groups',$permission,$partner,'get');
|
||||
|
||||
$whereclause_2 = $whereclause_alt2 .' AND pag.group_status = 1';
|
||||
}
|
||||
|
||||
//GET ALL PRODUCTS AND PRODUCT ATTRIBUTES FOR PRICING
|
||||
$sql = '(SELECT p.rowID as product_id, p.productname as product_name FROM products p '.$whereclause_1.' ) UNION (SELECT pag.group_id as product_id, pag.group_name as product_name FROM products_attributes_groups pag '.$whereclause_2.' )';
|
||||
$sql = '(SELECT p.rowID as product_id, p.productname as product_name FROM products p '.$whereclause_1.' ) UNION (SELECT pag.group_id as product_id, CONCAT(pag.group_name, " (", pag.group_name_internal,")") as product_name FROM products_attributes_groups pag '.$whereclause_2.' )';
|
||||
}
|
||||
else {
|
||||
//SQL for Paging
|
||||
@@ -121,6 +126,12 @@ $stmt = $pdo->prepare($sql);
|
||||
if (str_contains($whereclause, ':condition')){
|
||||
$stmt->bindValue('condition', $condition, PDO::PARAM_STR);
|
||||
}
|
||||
if (str_contains($whereclause_alt, ':condition')){
|
||||
$stmt->bindValue('condition', $condition_alt, PDO::PARAM_STR);
|
||||
}
|
||||
if (str_contains($whereclause_alt2, ':condition')){
|
||||
$stmt->bindValue('condition', $condition_alt2, PDO::PARAM_STR);
|
||||
}
|
||||
|
||||
if (!empty($criterias)){
|
||||
foreach ($criterias as $key => $value){
|
||||
|
||||
@@ -14,8 +14,6 @@ if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} el
|
||||
//default whereclause
|
||||
$whereclause = '';
|
||||
|
||||
list($whereclause,$condition) = getWhereclause('',$permission,$partner,'get');
|
||||
|
||||
//NEW ARRAY
|
||||
$criterias = [];
|
||||
$clause = '';
|
||||
|
||||
@@ -11,11 +11,9 @@ $pdo = dbConnect($dbname);
|
||||
//SoldTo is empty
|
||||
if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} else {$soldto_search = '-%';}
|
||||
|
||||
//default whereclause
|
||||
list($whereclause,$condition) = getWhereclauselvl2("config",$permission,$partner,'get');
|
||||
|
||||
//NEW ARRAY
|
||||
$criterias = [];
|
||||
$whereclause = '';
|
||||
$clause = '';
|
||||
|
||||
//Check for $_GET variables and build up clause
|
||||
@@ -48,8 +46,11 @@ if(isset($get_content) && $get_content!=''){
|
||||
if (isset($criterias['productrowid']) && $criterias['productrowid'] != ''){
|
||||
|
||||
//CHECK IF ALLOWED TO CRUD VERSIONS
|
||||
$sql = "SELECT * FROM products WHERE rowID = ? '.$whereclause.'";
|
||||
list($whereclause_alt,$condition_alt) = getWhereclause('',$permission,$partner,'get');
|
||||
|
||||
$sql = "SELECT * FROM products WHERE rowID = ? '.$whereclause_alt.'";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
$stmt->execute([$criterias['productrowid']]);
|
||||
$product_data = $stmt->fetch();
|
||||
$product_owner = ($product_data['rowID'])? 1 : 0;
|
||||
@@ -78,16 +79,11 @@ if (isset($criterias['productrowid']) && $criterias['productrowid'] != ''){
|
||||
FROM products_configurations pc
|
||||
LEFT JOIN products p ON p.rowID = pc.assignment
|
||||
LEFT JOIN products_attributes_groups pag ON pag.group_id = pc.assignment
|
||||
LEFT JOIN products_versions pv ON pv.rowID = pc.version '.$whereclause.'';
|
||||
LEFT JOIN products_versions pv ON pv.rowID = pc.version '.$whereclause;
|
||||
}
|
||||
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
//Bind to query
|
||||
if (str_contains($whereclause, ':condition')){
|
||||
$stmt->bindValue('condition', $condition, PDO::PARAM_STR);
|
||||
}
|
||||
|
||||
if (!empty($criterias)){
|
||||
foreach ($criterias as $key => $value){
|
||||
$key_condition = ':'.$key;
|
||||
|
||||
@@ -14,8 +14,6 @@ if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} el
|
||||
//default whereclause
|
||||
$whereclause = '';
|
||||
|
||||
list($whereclause,$condition) = getWhereclause('',$permission,$partner,'get');
|
||||
|
||||
//NEW ARRAY
|
||||
$criterias = [];
|
||||
$clause = '';
|
||||
|
||||
@@ -58,10 +58,11 @@ elseif (isset($criterias['list']) && $criterias['list'] =='order'){
|
||||
left join invoice inv ON tx.id = inv.txn_id
|
||||
left join transactions_items txi ON tx.id = txi.txn_id
|
||||
left join products p ON p.rowID = txi.item_id '.$whereclause;
|
||||
|
||||
}
|
||||
else {
|
||||
//SQL for Paging
|
||||
$sql = 'SELECT * FROM transactions tx '.$whereclause.' LIMIT :page,:num_products';
|
||||
$sql = 'SELECT * FROM transactions tx '.$whereclause.' ORDER BY tx.created DESC LIMIT :page,:num_products';
|
||||
}
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} el
|
||||
//default whereclause
|
||||
$whereclause = '';
|
||||
|
||||
list($whereclause,$condition) = getWhereclause('',$permission,$partner,'get');
|
||||
list($whereclause,$condition) = getWhereclauselvl2('transactions',$permission,$partner,'get');
|
||||
|
||||
//NEW ARRAY
|
||||
$criterias = [];
|
||||
@@ -37,6 +37,9 @@ if(isset($get_content) && $get_content!=''){
|
||||
//build up search
|
||||
$clause .= ' AND name like :'.$v[0];
|
||||
}
|
||||
elseif (($v[0] == 'account_id')){//create clause
|
||||
$clause .= ' AND tx.'.$v[0].' = :'.$v[0];
|
||||
}
|
||||
else {//create clause
|
||||
$clause .= ' AND tai.'.$v[0].' = :'.$v[0];
|
||||
}
|
||||
@@ -55,7 +58,8 @@ if(isset($criterias['totals']) && $criterias['totals'] ==''){
|
||||
}
|
||||
else {
|
||||
//SQL for Paging
|
||||
$sql = 'SELECT ta.*, tai.* FROM transactions ta left join transactions_items tai ON ta.id = tai.txn_id '.$whereclause;
|
||||
//$sql = 'SELECT ta.*, tai.* FROM transactions ta left join transactions_items tai ON ta.id = tai.txn_id '.$whereclause;
|
||||
$sql ='SELECT tx.*, tai.*, p.productname as item_name, m.full_path FROM transactions tx left join transactions_items tai ON tx.id = tai.txn_id LEFT JOIN media m ON tai.item_id = m.rowID LEFT JOIN products p ON tai.item_id = p.rowID '.$whereclause;
|
||||
}
|
||||
$stmt = $pdo->prepare($sql);
|
||||
|
||||
@@ -94,6 +98,7 @@ else {
|
||||
$stmt->execute();
|
||||
//Get results
|
||||
$messages = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$messages = transformOrders($messages);
|
||||
}
|
||||
|
||||
//------------------------------------------
|
||||
|
||||
@@ -14,7 +14,7 @@ $post_content = json_decode($input,true);
|
||||
if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} else {$soldto_search = '-%';}
|
||||
|
||||
//default whereclause
|
||||
list($whereclause,$condition) = getWhereclause('equipment',$permission,$partner,'');
|
||||
list($whereclause,$condition) = getWhereclause('',$permission,$partner,'');
|
||||
|
||||
//SET PARAMETERS FOR QUERY
|
||||
$id = $post_content['rowID'] ?? ''; //check for rowID
|
||||
|
||||
@@ -14,8 +14,7 @@ $post_content = json_decode($input,true);
|
||||
if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} else {$soldto_search = '-%';}
|
||||
|
||||
//default whereclause
|
||||
list($whereclause,$condition) = getWhereclauselvl2("categories",$permission,$partner,'');
|
||||
|
||||
list($whereclause,$condition) = getWhereclauselvl2("",$permission,$partner,'');
|
||||
|
||||
//BUILD UP PARTNERHIERARCHY FROM USER
|
||||
$partner_product = json_encode(array("salesid"=>$partner->salesid,"soldto"=>$partner->soldto), JSON_UNESCAPED_UNICODE);
|
||||
@@ -72,7 +71,9 @@ elseif ($command == 'insert' && isAllowed('categories',$profile,$permission,'C')
|
||||
$stmt->execute($execute_input);
|
||||
}
|
||||
elseif ($command == 'delete' && isAllowed('categories',$profile,$permission,'D') === 1){
|
||||
$stmt = $pdo->prepare('DELETE c, pc FROM categories c LEFT JOIN products_categories pc ON pc.category_id = c.rowID WHERE c.rowID = ? '.$whereclause.'');
|
||||
list($whereclause_alt,$condition_alt) = getWhereclauselvl2("categories",$permission,$partner,'');
|
||||
|
||||
$stmt = $pdo->prepare('DELETE c, pc FROM categories c LEFT JOIN products_categories pc ON pc.category_id = c.rowID WHERE c.rowID = ? '.$whereclause_alt.'');
|
||||
$stmt->execute([ $id ]);
|
||||
|
||||
//Add deletion to changelog
|
||||
|
||||
@@ -16,8 +16,6 @@ if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} el
|
||||
//default whereclause
|
||||
list($whereclause,$condition) = getWhereclause('',$permission,$partner,'');
|
||||
|
||||
|
||||
|
||||
//SET PARAMETERS FOR QUERY
|
||||
$id = (isset($post_content['userkey'])) ? $post_content['userkey']: ''; //check for rowID
|
||||
$command = ($id == '')? 'insert' : 'update'; //IF rowID = empty then INSERT
|
||||
@@ -37,7 +35,6 @@ $partner_product = json_encode(array("salesid"=>$partner->salesid,"soldto"=>$par
|
||||
//FIXED VARIABLES
|
||||
$post_content['updatedby'] = $userrname; //initial = interface user
|
||||
$post_content['accounthierarchy'] = $partner_product; // related to interface user
|
||||
$post_content['userkey'] = bin2hex(random_bytes(25));
|
||||
//Create or update resetkey
|
||||
$headers = array('alg'=>'HS256','typ'=>'JWT');
|
||||
$payload = array('key'=> bin2hex(random_bytes(25)), 'exp'=>(time() + 1800));
|
||||
@@ -52,7 +49,7 @@ if ($id != '' && $command == 'reset'){
|
||||
$consumer_data = $stmt->fetch();
|
||||
|
||||
//STEP 2- Store resetkey
|
||||
$sql = 'UPDATE users SET resetkey = ?, updatedby = ? WHERE id = ? '.$whereclause.'';
|
||||
$sql = 'UPDATE identity SET resetkey = ?, updatedby = ? WHERE userkey = ? '.$whereclause.'';
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute([$resetkey,$post_content['updatedby'],$id]);
|
||||
|
||||
@@ -73,7 +70,7 @@ if ($command == 'update'){
|
||||
$post_content['updatedby'] = $consumer_data['email'];
|
||||
|
||||
if (isset($post_content['password'])){
|
||||
$post_content['password'] = password_hash($password, PASSWORD_DEFAULT);
|
||||
$post_content['password'] = password_hash($post_content['password'], PASSWORD_DEFAULT);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -82,13 +79,15 @@ elseif ($command == 'insert'){
|
||||
$post_content['language'] = isset($post_content['language']) ? $post_content['language'] : 'US';
|
||||
$post_content['profile'] = 0;
|
||||
$post_content['isverified'] = 0;
|
||||
$post_content['userkey'] = bin2hex(random_bytes(25));
|
||||
$post_content['createdby'] = $username;
|
||||
$post_content['updatedby'] = $username;
|
||||
}
|
||||
elseif ($command == 'login'){
|
||||
|
||||
//SETUP SQL FOR LOGIN_COUNT
|
||||
$sql_login = 'UPDATE identity SET login_count = ? WHERE id = ?';
|
||||
$sql_login = 'UPDATE identity SET login_count = ?, lastlogin = ? WHERE id = ?';
|
||||
$lastlogin = date('Y-m-d H:i:s');
|
||||
|
||||
// Check if the account exists
|
||||
$stmt = $pdo->prepare('SELECT * FROM identity WHERE email = ?');
|
||||
@@ -113,7 +112,7 @@ elseif ($command == 'login'){
|
||||
$login_attempt = 0;
|
||||
|
||||
$stmt_login = $pdo->prepare($sql_login);
|
||||
$stmt_login->execute([$login_attempt, $account['id']]);
|
||||
$stmt_login->execute([$login_attempt,$lastlogin, $account['id']]);
|
||||
|
||||
//Encrypt results
|
||||
$messages = json_encode($consumer, JSON_UNESCAPED_UNICODE);
|
||||
@@ -125,7 +124,7 @@ elseif ($command == 'login'){
|
||||
//Update Login count with failed attempt
|
||||
$login_attempt = $account['login_count'] + 1;
|
||||
$stmt_login = $pdo->prepare($sql_login);
|
||||
$stmt_login->execute([$login_attempt, $account['id']]);
|
||||
$stmt_login->execute([$login_attempt,$lastlogin, $account['id']]);
|
||||
//Send Response
|
||||
http_response_code(403); //Not authorized
|
||||
exit;
|
||||
|
||||
@@ -37,7 +37,7 @@ if ($command == 'update'){
|
||||
elseif ($command == 'insert' && (isset($post_content['txn_id']) && $post_content['txn_id'] != '')){
|
||||
|
||||
//GET RELATED TRANSACTION DETAILS
|
||||
$sql = 'SELECT * FROM transactions WHERE id = ? AND payment_status = "0"';
|
||||
$sql = 'SELECT * FROM transactions WHERE id = ? ';
|
||||
$stmt = $pdo->prepare($sql);
|
||||
//Excute Query
|
||||
$stmt->execute([$post_content['txn_id']]);
|
||||
|
||||
@@ -65,6 +65,12 @@ if ($command == 'update'){
|
||||
//remove giftcard_categoryID from $post_content array
|
||||
unset($post_content['giftcard_categoryID']);
|
||||
}
|
||||
|
||||
if(isset($post_content['giftcard_categoryID'])){
|
||||
//remove giftcard_categoryID from $post_content array
|
||||
unset($post_content['giftcard_categoryID']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -293,9 +293,112 @@ echo <<<EOT
|
||||
<link href="./assets/fontawesome/css/solid.css" rel="stylesheet" />
|
||||
<script src="./assets/leaflet.js"></script>
|
||||
<script src="./assets/charts.js"></script>
|
||||
<script>
|
||||
// Wait for DOM to be ready before accessing elements
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// Get loading screen element
|
||||
const loadingScreen = document.getElementById('loadingScreen');
|
||||
|
||||
// Only proceed if the element exists
|
||||
if (!loadingScreen) {
|
||||
console.error('Loading screen element not found!');
|
||||
return;
|
||||
}
|
||||
|
||||
// Show loading screen
|
||||
function showLoading() {
|
||||
loadingScreen.classList.add('active');
|
||||
}
|
||||
|
||||
// Hide loading screen
|
||||
function hideLoading() {
|
||||
loadingScreen.classList.remove('active');
|
||||
}
|
||||
|
||||
// Show loading when page initially loads
|
||||
showLoading();
|
||||
|
||||
// Hide loading when everything is loaded
|
||||
window.addEventListener('load', hideLoading);
|
||||
|
||||
// In case the page loads very quickly
|
||||
setTimeout(hideLoading, 500);
|
||||
|
||||
// Intercept form submissions
|
||||
setupFormInterception();
|
||||
|
||||
// Intercept fetch and XMLHttpRequest
|
||||
interceptNetworkRequests();
|
||||
|
||||
|
||||
// Intercept all form submissions
|
||||
function setupFormInterception() {
|
||||
const forms = document.querySelectorAll('form');
|
||||
|
||||
forms.forEach(form => {
|
||||
form.addEventListener('submit', function(e) {
|
||||
// Show loading screen before form submission
|
||||
showLoading();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Intercept all network requests (fetch and XMLHttpRequest)
|
||||
function interceptNetworkRequests() {
|
||||
// Track active requests
|
||||
let activeRequests = 0;
|
||||
|
||||
// Intercept fetch API
|
||||
const originalFetch = window.fetch;
|
||||
window.fetch = function() {
|
||||
showLoading();
|
||||
activeRequests++;
|
||||
|
||||
return originalFetch.apply(this, arguments)
|
||||
.then(response => {
|
||||
activeRequests--;
|
||||
if (activeRequests === 0) hideLoading();
|
||||
return response;
|
||||
})
|
||||
.catch(error => {
|
||||
activeRequests--;
|
||||
if (activeRequests === 0) hideLoading();
|
||||
throw error;
|
||||
});
|
||||
};
|
||||
|
||||
// Intercept XMLHttpRequest
|
||||
const originalXHROpen = XMLHttpRequest.prototype.open;
|
||||
const originalXHRSend = XMLHttpRequest.prototype.send;
|
||||
|
||||
XMLHttpRequest.prototype.open = function() {
|
||||
return originalXHROpen.apply(this, arguments);
|
||||
};
|
||||
|
||||
XMLHttpRequest.prototype.send = function() {
|
||||
showLoading();
|
||||
activeRequests++;
|
||||
|
||||
this.addEventListener('loadend', function() {
|
||||
activeRequests--;
|
||||
if (activeRequests === 0) hideLoading();
|
||||
});
|
||||
|
||||
return originalXHRSend.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
});
|
||||
</script>
|
||||
$veliti_analytics
|
||||
</head>
|
||||
<body class="admin">
|
||||
<!-- Loading Bar -->
|
||||
<div class="loading-container" id="loadingScreen">
|
||||
<div class="loading-bar">
|
||||
<div class="progress"></div>
|
||||
</div>
|
||||
<div class="loading-text">Loading, please wait...</div>
|
||||
</div>
|
||||
<aside class="responsive-width-100 responsive-hidden">
|
||||
<h1></h1>
|
||||
$admin_links
|
||||
@@ -702,7 +805,11 @@ function getWhereclause($table_name,$permission,$partner,$method){
|
||||
"equipment" => "e.accounthierarchy",
|
||||
"products" => "p.accounthierarchy",
|
||||
"profile" => "partnerhierarchy",
|
||||
"text_variables" => "tv.accounthierarchy"
|
||||
"text_variables" => "tv.accounthierarchy",
|
||||
"products_attributes_items" => "pat.accounthierarchy",
|
||||
"products_attributes_groups" => "pag.accounthierarchy",
|
||||
"pricelists" => "pls.accounthierarchy",
|
||||
"pricelists_items" => "pli.accounthierarchy"
|
||||
];
|
||||
|
||||
$table = ($table_name != '') ? $table[$table_name] : 'accounthierarchy';
|
||||
@@ -3604,7 +3711,8 @@ function transformOrderData(array $orderData): array {
|
||||
'state' => $firstRow['address_state'],
|
||||
'city' => $firstRow['address_city'],
|
||||
'country' => $firstRow['address_country'],
|
||||
'phone' => $firstRow['address_phone']
|
||||
'phone' => $firstRow['address_phone'],
|
||||
'language' => $firstRow['user_language'],
|
||||
],
|
||||
'products' => [],
|
||||
'invoice' => [
|
||||
@@ -3654,6 +3762,49 @@ function transformOrderData(array $orderData): array {
|
||||
return $result;
|
||||
}
|
||||
|
||||
function transformOrders($inputData){
|
||||
|
||||
// Define which fields are item-specific (will go into the items array)
|
||||
$itemFields = ['item_id', 'item_name', 'item_price', 'item_quantity', 'item_options', 'full_path'];
|
||||
|
||||
// Process the data
|
||||
$combinedData = [];
|
||||
|
||||
foreach ($inputData as $row) {
|
||||
$txnId = $row['txn_id'];
|
||||
|
||||
// Create header and item arrays for the current row
|
||||
$headerData = [];
|
||||
$itemData = [];
|
||||
|
||||
foreach ($row as $key => $value) {
|
||||
if (in_array($key, $itemFields)) {
|
||||
// This is an item field
|
||||
$itemData[$key] = $value;
|
||||
} else {
|
||||
// This is a header field
|
||||
$headerData[$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
// Check if this transaction ID already exists in our result array
|
||||
if (!isset($combinedData[$txnId])) {
|
||||
// First occurrence of this transaction - create the structure
|
||||
$combinedData[$txnId] = [
|
||||
'header' => $headerData,
|
||||
'items' => [$itemData]
|
||||
];
|
||||
} else {
|
||||
// Transaction already exists - just add the item data
|
||||
$combinedData[$txnId]['items'][] = $itemData;
|
||||
}
|
||||
}
|
||||
|
||||
// Convert associative array to indexed array if needed
|
||||
$finalResult = array_values($combinedData);
|
||||
|
||||
return $finalResult;
|
||||
}
|
||||
//=============================================
|
||||
// Use giftcart
|
||||
//=============================================
|
||||
|
||||
@@ -104,14 +104,18 @@ if ($order['header']['shipping_method']) {
|
||||
</div>';
|
||||
}
|
||||
|
||||
//Translate status INT to STR
|
||||
$payment_status = 'payment_status_'.$order['header']['payment_status'];
|
||||
$payment_method = 'payment_method_'.$order['header']['payment_method'];
|
||||
|
||||
$view .='
|
||||
<div class="order-detail">
|
||||
<h3>Payment Method</h3>
|
||||
<p>' . $order['header']['payment_method'] . '</p>
|
||||
<p>' . (${$payment_method} ?? $order['header']['payment_method'] ). '</p>
|
||||
</div>
|
||||
<div class="order-detail">
|
||||
<h3>Payment Status</h3>
|
||||
<p>' . $order['header']['payment_status'] . '</p>
|
||||
<p>' . (${$payment_status} ?? $order['header']['payment_status'] ). '</p>
|
||||
</div>
|
||||
<div class="order-detail">
|
||||
<h3>Date</h3>
|
||||
@@ -218,6 +222,7 @@ if (empty($order)) {
|
||||
</tr>';
|
||||
} else {
|
||||
foreach ($order['products'] as $item) {
|
||||
|
||||
$view .='
|
||||
<tr>
|
||||
<td>' . ($item['product_name'] ? htmlspecialchars(${$item['product_name']} ?? $item['product_name'] , ENT_QUOTES) : '(Product ' . $item['item_id'] . ')') . '</td>
|
||||
|
||||
10
orders.php
10
orders.php
@@ -25,7 +25,7 @@ $pagination_page = isset($_GET['p']) ? $_GET['p'] : 1;
|
||||
$search = isset($_GET['search']) ? '&search='.$_GET['search'] : '';
|
||||
|
||||
// Determine the URL
|
||||
$url = 'index.php?page=transactions'.$search;
|
||||
$url = 'index.php?page=orders'.$search;
|
||||
//GET Details from URL
|
||||
$GET_VALUES = urlGETdetails($_GET) ?? '';
|
||||
//CALL TO API
|
||||
@@ -101,13 +101,17 @@ $view .= '
|
||||
else {
|
||||
foreach ($orders as $order){
|
||||
|
||||
//Translate status INT to STR
|
||||
$payment_status = 'payment_status_'.$order['payment_status'];
|
||||
$payment_method = 'payment_method_'.$order['payment_method'];
|
||||
|
||||
$view .= '
|
||||
<tr>
|
||||
<td>'.$order['id'].'</td>
|
||||
<td>'.$order['first_name'].' '.$order['last_name'].'</td>
|
||||
<td>'.number_format($order['payment_amount'], 2).'</td>
|
||||
<td class="responsive-hidden">'.$order['payment_method'].'</td>
|
||||
<td class="responsive-hidden">'.$order['payment_status'].'</td>
|
||||
<td class="responsive-hidden">'.(${$payment_method} ?? $order['payment_method']).'</td>
|
||||
<td class="responsive-hidden">'.(${$payment_status} ?? $order['payment_status']).'</td>
|
||||
<td class="responsive-hidden">'.getRelativeTime($order['created']).'</td>
|
||||
<td><a href="index.php?page=order&id='.$order['id'].'" class="btn_link">'.$general_view.'</a></td>
|
||||
</tr>';
|
||||
|
||||
@@ -270,7 +270,7 @@ $view .= '
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<select form="update" name="item['.$pricelist_item['rowID'].'][product_id]">';
|
||||
<select form="update" class="exclusive-select" name="item['.$pricelist_item['rowID'].'][product_id]">';
|
||||
foreach ($products as $product){
|
||||
$view .= '<option value="'.$product['product_id'].'" '.($product['product_id']==$pricelist_item['product_id'] ?' selected':'').'>'.$product['product_id'] .' - '.(${$product['product_name']} ?? $product['product_name']).'</option>
|
||||
';}
|
||||
@@ -301,11 +301,95 @@ $view .= '
|
||||
<script>
|
||||
let rowCounter = 1;
|
||||
|
||||
|
||||
function getAllSelectedValues() {
|
||||
const selects = document.querySelectorAll(\'.exclusive-select\');
|
||||
const selectedValues = [];
|
||||
|
||||
selects.forEach(select => {
|
||||
if (select.value) {
|
||||
selectedValues.push(select.value);
|
||||
}
|
||||
});
|
||||
|
||||
return selectedValues;
|
||||
}
|
||||
|
||||
// Update all selects to hide options selected elsewhere
|
||||
function updateOptions() {
|
||||
const selects = document.querySelectorAll(\'.exclusive-select\');
|
||||
const selectedValues = getAllSelectedValues();
|
||||
|
||||
selects.forEach(select => {
|
||||
const currentValue = select.value;
|
||||
|
||||
Array.from(select.options).forEach(option => {
|
||||
// Skip the default empty option
|
||||
if (option.value === \'\') return;
|
||||
|
||||
// Skip the currently selected option for this select
|
||||
if (option.value === currentValue) {
|
||||
option.classList.remove(\'hidden\');
|
||||
return;
|
||||
}
|
||||
|
||||
// Hide if the option is selected in another dropdown
|
||||
if (selectedValues.includes(option.value)) {
|
||||
option.classList.add(\'hidden\');
|
||||
} else {
|
||||
option.classList.remove(\'hidden\');
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Run on page load to set up initial state
|
||||
document.addEventListener(\'DOMContentLoaded\', function() {
|
||||
// Initialize all selects
|
||||
const selects = document.querySelectorAll(\'.exclusive-select\');
|
||||
selects.forEach(select => {
|
||||
select.addEventListener(\'change\', updateOptions);
|
||||
});
|
||||
|
||||
// Apply initial state
|
||||
updateOptions();
|
||||
});
|
||||
|
||||
|
||||
const productOptions = [
|
||||
';foreach ($products as $product){
|
||||
|
||||
$view .= '{
|
||||
value: "'.$product['product_id'].'",
|
||||
text: "'.$product['product_id'].' - '.$product['product_name'].'"
|
||||
},';
|
||||
}
|
||||
$view .=' ];
|
||||
|
||||
|
||||
// Function to generate option HTML with appropriate hidden class
|
||||
function generateOptionsWithHidden(selectedValues) {
|
||||
let optionsHTML = \'\';
|
||||
|
||||
// Manually loop through productOptions instead of using template literals
|
||||
for (let i = 0; i < productOptions.length; i++) {
|
||||
const option = productOptions[i];
|
||||
const isHidden = selectedValues.includes(option.value) ? \'class="hidden"\' : \'\';
|
||||
optionsHTML += \'<option value="\' + option.value + \'" \' + isHidden + \'>\' + option.text + \'</option>\';
|
||||
}
|
||||
|
||||
return optionsHTML;
|
||||
}
|
||||
|
||||
function addNewRow() {
|
||||
|
||||
rowCounter++;
|
||||
const tbody = document.getElementById(\'tableBody\');
|
||||
const newRow = document.createElement(\'tr\');
|
||||
|
||||
// Get all currently selected values before creating the new row
|
||||
const selectedValues = getAllSelectedValues();
|
||||
|
||||
newRow.innerHTML = `
|
||||
<tr><td>
|
||||
<select form="new" name="status">
|
||||
@@ -314,11 +398,9 @@ $view .= '
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<select form="new" name="product_id">';
|
||||
foreach ($products as $product){
|
||||
$view .= '<option value="'.$product['product_id'].'">'.$product['product_id'] .' - '.(${$product['product_name']} ?? $product['product_name']).'</option>
|
||||
';}
|
||||
$view .= ' </select>
|
||||
<select form="new" class="exclusive-select" name="product_id">
|
||||
${generateOptionsWithHidden(selectedValues)}
|
||||
</select>
|
||||
</td>
|
||||
<td><input form="new" type="number" min="0" step="0.01" name="price" placeholder="'.($pricelists_item_price ?? 'Price').'" value=""></td>
|
||||
<td><input form="new" type="number" min="0" step="0.01" name="rrp" placeholder="'.($pricelists_item_rrp ?? 'Recommended Price').'" value=""></td>
|
||||
@@ -338,7 +420,10 @@ $view .= '
|
||||
|
||||
tbody.appendChild(newRow);
|
||||
}
|
||||
</script>';
|
||||
|
||||
|
||||
</script>
|
||||
';
|
||||
|
||||
$view .= '
|
||||
</div>
|
||||
|
||||
92
product.php
92
product.php
@@ -43,14 +43,6 @@ $responses = ioServer($api_url,'');
|
||||
if (!empty($responses)){$responses = json_decode($responses);}else{$responses = null;}
|
||||
$responses = $responses[0];
|
||||
|
||||
//CALL TO API FOR RELATED
|
||||
$api_url = '/v2/media/rowID='.$responses->product_media;
|
||||
$media_responses = ioServer($api_url,'');
|
||||
|
||||
//Decode Payload
|
||||
if (!empty($media_responses)){$media_responses = json_decode($media_responses,true);}else{$media_responses = null;}
|
||||
$media_responses = $media_responses[0];
|
||||
|
||||
//CALL TO API FOR Product_versions
|
||||
$api_url = '/v2/products_versions/productrowid='.$_GET['rowID'];
|
||||
$product_versions = ioServer($api_url,'');
|
||||
@@ -226,10 +218,10 @@ $view .='<div class="content-block order-details">
|
||||
<div class="block-header">
|
||||
<i class="fa-solid fa-user fa-sm"></i>
|
||||
</div>';
|
||||
if (!empty($media_responses['full_path'])){
|
||||
if (!empty($responses->full_path)){
|
||||
$view .='
|
||||
<div class="order-detail">
|
||||
<img style="border-radius: 4px;height: 200px;margin: auto;" src="'.$media_responses['full_path'].'" alt="">
|
||||
<img style="border-radius: 4px;height: 200px;margin: auto;" src="'.$responses->full_path.'" alt="">
|
||||
</div>
|
||||
';
|
||||
}
|
||||
@@ -247,6 +239,46 @@ $view .= '<div class="content-block">
|
||||
</div>
|
||||
';
|
||||
|
||||
$view .= '<div class="content-block">
|
||||
<div class="block-header">
|
||||
<i class="fa-solid fa-bars fa-sm"></i>'.($product_version ?? '').'
|
||||
<a href="index.php?page=products_versions&productrowid='.$_GET['rowID'].'" class="btn2"> + </a>
|
||||
</div>';
|
||||
if (!empty($product_versions)){
|
||||
$view .= '
|
||||
<div class="table">
|
||||
<table class="sortable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>'.$product_version_number.'</th>
|
||||
<th>'.$product_status.'</th>
|
||||
<th>'.$product_version_version.'</th>
|
||||
<th>'.($product_version_config ?? 'Config').'</th>
|
||||
<th>'.$general_actions.'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
foreach ($product_versions as $version){
|
||||
|
||||
$view .= '<tr>
|
||||
<td>'.$version->rowID.'</td>
|
||||
<td>'.(($version->status == 1)? '<span class="status enabled">'.$prod_status_1:'<span class="status">'.$prod_status_0).'</td>
|
||||
<td>'.$version->version.'</td>
|
||||
<td>'.(!empty($version->config) ? ($general_yes ?? 'Y') : ($general_no ?? 'N')).'</td>
|
||||
<td><a href="index.php?page=products_versions&productrowid='.$_GET['rowID'].'&rowID='.$version->rowID.'" class="btn_link">'.$general_view.'</a></td>
|
||||
</tr>';
|
||||
}
|
||||
$view .= '
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
|
||||
$view .= '
|
||||
</div>
|
||||
';
|
||||
|
||||
if ($responses->configurable == 1){
|
||||
$view .= '<div class="content-block">
|
||||
<div class="block-header">
|
||||
@@ -287,46 +319,6 @@ $view .= '
|
||||
';
|
||||
}
|
||||
|
||||
$view .= '<div class="content-block">
|
||||
<div class="block-header">
|
||||
<i class="fa-solid fa-bars fa-sm"></i>'.($product_version ?? '').'
|
||||
<a href="index.php?page=products_versions&productrowid='.$_GET['rowID'].'" class="btn2"> + </a>
|
||||
</div>';
|
||||
if (!empty($product_versions)){
|
||||
$view .= '
|
||||
<div class="table">
|
||||
<table class="sortable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>'.$product_version_number.'</th>
|
||||
<th>'.$product_status.'</th>
|
||||
<th>'.$product_version_version.'</th>
|
||||
<th>'.($product_version_config ?? 'Config').'</th>
|
||||
<th>'.$general_actions.'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
foreach ($product_versions as $version){
|
||||
|
||||
$view .= '<tr>
|
||||
<td>'.$version->rowID.'</td>
|
||||
<td>'.(($version->status == 1)? '<span class="status enabled">'.$prod_status_1:'<span class="status">'.$prod_status_0).'</td>
|
||||
<td>'.$version->version.'</td>
|
||||
<td>'.(!empty($version->config) ? ($general_yes ?? 'Y') : ($general_no ?? 'N')).'</td>
|
||||
<td><a href="index.php?page=products_versions&productrowid='.$_GET['rowID'].'&rowID='.$version->rowID.'" class="btn_link">'.$general_view.'</a></td>
|
||||
</tr>';
|
||||
}
|
||||
$view .= '
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
|
||||
$view .= '
|
||||
</div>
|
||||
';
|
||||
|
||||
$view .= '<div class="content-block">
|
||||
<div class="block-header">
|
||||
<i class="fa-solid fa-bars fa-sm"></i>'.($product_version_software ?? '').'
|
||||
|
||||
18
products.php
18
products.php
@@ -42,13 +42,6 @@ $query_total = ioServer($api_url,'');
|
||||
//Decode Payload
|
||||
if (!empty($query_total)){$query_total = json_decode($query_total,);}else{$query_total = null;}
|
||||
|
||||
//CALL TO API
|
||||
$api_url = '/v2/media/';
|
||||
$media_responses = ioServer($api_url,'');
|
||||
|
||||
//Decode Payload
|
||||
if (!empty($media_responses)){$media_responses = json_decode($media_responses,true);}else{$media_responses = null;}
|
||||
|
||||
// Handle success messages
|
||||
if (isset($_GET['success_msg'])) {
|
||||
if ($_GET['success_msg'] == 1) {
|
||||
@@ -134,22 +127,13 @@ $view .= '
|
||||
else {
|
||||
foreach ($responses as $response){
|
||||
|
||||
//GET PATH OF ASSIGNED MEDIA
|
||||
$full_path = '';
|
||||
|
||||
foreach ($media_responses as $media){
|
||||
if($response->product_media == $media['rowID']){
|
||||
$full_path = $media['full_path'];
|
||||
}
|
||||
}
|
||||
|
||||
$view .= '
|
||||
<tr>
|
||||
<td>'.$response->productcode.'</td>
|
||||
<td>'.${'part_type'.$response->parttype}.'</td>
|
||||
<td>'.${'product_category'.$response->product_category}.'</td>
|
||||
<td class="responsive-hidden">
|
||||
'.(($full_path !='')?'<img style="border-radius: 4px;height: 50px;" src="'.$full_path.'" alt="">' : '').'
|
||||
'.(($response->full_path !='')?'<img style="border-radius: 4px;height: 50px;" src="'.$response->full_path.'" alt="">' : '').'
|
||||
</td>
|
||||
<td>'.(${$response->productname} ?? $response->productname).'</td>
|
||||
<td><a href="index.php?page=product&rowID='.$response->rowID.'" class="btn_link">'.$general_view .'</a></td>
|
||||
|
||||
@@ -95,10 +95,11 @@ $view .= '
|
||||
<table class="sortable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>'.($products_attribute_rowID ?? '').'</th>
|
||||
<th>'.($products_attribute_group_status ?? '').'</th>
|
||||
<th>'.($products_attribute_group_name ?? '').'</th>
|
||||
<th>'.($products_attribute_group_type ?? '').'</th>
|
||||
<th>'.($products_attribute_rowID ?? '#').'</th>
|
||||
<th>'.($products_attribute_group_status ?? 'status').'</th>
|
||||
<th>'.($products_attribute_group_name ?? 'name').'</th>
|
||||
<th>'.($products_attribute_group_name_internal ?? 'Internal name').'</th>
|
||||
<th>'.($products_attribute_group_type ?? 'type').'</th>
|
||||
<th class="responsive-hidden">'.$general_created.'</th>
|
||||
<th>'.$general_actions.'</th>
|
||||
</tr>
|
||||
@@ -120,6 +121,7 @@ $view .= '
|
||||
<td>'.$response['group_id'].'</td>
|
||||
<td>'.${'general_status_'.$response['group_status']}.'</td>
|
||||
<td>'.(${$response['group_name']} ?? $response['group_name']).'</td>
|
||||
<td>'.(${$response['group_name_internal']} ?? $response['group_name_internal']).'</td>
|
||||
<td>'.${'general_form_'.$response['group_type']}.'</td>
|
||||
<td class="responsive-hidden">'.getRelativeTime($response['created']).'</td>
|
||||
<td><a href="index.php?page=products_attributes_manage&rowID='.$response['rowID'].'" class="btn_link">'.$general_view .'</a></td>
|
||||
|
||||
@@ -180,7 +180,7 @@ $view .= '<div class="tabs">
|
||||
</div>
|
||||
';
|
||||
|
||||
//Define Service and User enabled
|
||||
|
||||
$view .='<div class="content-block tab-content active">
|
||||
<div class="form responsive-width-100">
|
||||
<label for="">'.($products_attributes_group_status ?? 'Status').'</label>
|
||||
@@ -193,6 +193,10 @@ $view .='<div class="content-block tab-content active">
|
||||
<label for="group_name">'.($products_attributes_group_name ?? 'Groupname').'</label>
|
||||
<input id="group_name" type="text" name="group_name" placeholder="'.($products_attributes_group_name ?? '').'" value="'.$products_attributes['group_name'].'" required">
|
||||
<input type="hidden" name="rowID" value="'.$products_attributes['rowID'].'" readonly>
|
||||
</div>
|
||||
<div class="form responsive-width-100">
|
||||
<label for="group_name_internal">'.($products_attributes_group_name_internal ?? 'Internal').'</label>
|
||||
<input id="group_name_internal" type="text" name="group_name_internal" placeholder="'.($products_attributes_group_name_internal ?? '').'" value="'.$products_attributes['group_name_internal'].'" required">
|
||||
</div>
|
||||
<div class="form responsive-width-100">
|
||||
<label for="">'.($products_attributes_group_type ?? 'Type').'</label>
|
||||
|
||||
@@ -288,7 +288,7 @@ $routes = array(
|
||||
//------------------------------------------
|
||||
$page_rows_equipment = 25; //list Equipment
|
||||
$page_rows_history = 15; //list History
|
||||
$page_rows_products = 10;//list producst
|
||||
$page_rows_products = 25;//list producst
|
||||
$page_rows_users = 15;//list users
|
||||
$page_rows_partners = 15;//list partners
|
||||
$page_rows_communication = 25; //list communications
|
||||
|
||||
@@ -2712,3 +2712,62 @@ h4.label {
|
||||
border: 0;
|
||||
border-bottom: 1px solid #dedfe1
|
||||
}
|
||||
|
||||
.loading-container {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(255, 255, 255, 0.8);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
z-index: 9999;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transition: opacity 0.3s, visibility 0.3s;
|
||||
}
|
||||
|
||||
.loading-container.active {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.loading-bar {
|
||||
width: 200px;
|
||||
height: 10px;
|
||||
background-color: #f0f0f0;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.progress {
|
||||
height: 100%;
|
||||
width: 0%;
|
||||
background-color: #4CAF50;
|
||||
animation: progressAnimation 2s infinite ease-in-out;
|
||||
}
|
||||
|
||||
.loading-text {
|
||||
margin-top: 10px;
|
||||
font-size: 14px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
@keyframes progressAnimation {
|
||||
0% { width: 0%; }
|
||||
50% { width: 100%; }
|
||||
100% { width: 0%; }
|
||||
}
|
||||
|
||||
/* Hide the loading bar when page is loaded */
|
||||
.loaded .loading-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none !important;
|
||||
}
|
||||
6
style/fontawsome.css
Normal file
6
style/fontawsome.css
Normal file
File diff suppressed because one or more lines are too long
@@ -1,919 +0,0 @@
|
||||
<?php
|
||||
$menu_dashboard = 'Dashboard';
|
||||
$menu_assets = 'Assets';
|
||||
$menu_service_reports = 'Service Reports';
|
||||
$menu_history = 'History';
|
||||
$menu_firmwaretool = 'Firmwaretool';
|
||||
$menu_equipments_mass_update = 'Mass updates';
|
||||
$menu_products = 'Products';
|
||||
$menu_sales = 'Sales';
|
||||
$menu_sales_accounts = 'Accounts';
|
||||
$menu_sales_contracts = 'Contracts';
|
||||
$menu_admin = 'Admin';
|
||||
$menu_admin_users = 'Users';
|
||||
$menu_admin_communications = 'Communication';
|
||||
$menu_admin_partners = 'Partners';
|
||||
$menu_settings = 'Settings';
|
||||
$menu_config = 'Config';
|
||||
$menu_language = 'Language';
|
||||
$menu_logfile = 'Log';
|
||||
$menu_marketing = 'Marketing';
|
||||
$menu_build = 'Build';
|
||||
$menu_cartest = 'Car database';
|
||||
$menu_report_main = 'Reports';
|
||||
$menu_report_build = 'Stock and Production';
|
||||
$menu_report_healthindex = 'Healthindex';
|
||||
$menu_report_contracts_billing = 'Contracts';
|
||||
$menu_report_usage = 'System usage';
|
||||
$menu_maintenance = 'Maintenance';
|
||||
$menu_profiles = 'Profiles';
|
||||
$tab1 = 'General';
|
||||
$tab2 = 'Partners';
|
||||
$tab3 = 'Log';
|
||||
$tab4 = 'Settings';
|
||||
$general_year = 'Year';
|
||||
$general_quarter = 'Quarter';
|
||||
$general_month = 'Month';
|
||||
$general_total = 'Total';
|
||||
$general_salesid = 'SalesID';
|
||||
$general_soldto = 'SoldTo';
|
||||
$general_shipto = 'ShipTo';
|
||||
$general_location = 'Location';
|
||||
$general_section = 'Section';
|
||||
$general_created = 'Created';
|
||||
$general_createdby = 'Createdby';
|
||||
$general_updated = 'Updated';
|
||||
$general_updatedby = 'Updatedby';
|
||||
$general_filters = 'Filters';
|
||||
$general_filters_clear = 'clear';
|
||||
$general_sort = 'Sort';
|
||||
$general_page = 'Page ';
|
||||
$general_page_of = ' of ';
|
||||
$general_sort_type_1 = 'Low - High';
|
||||
$general_sort_type_2 = 'High - Low';
|
||||
$general_sort_type_3 = 'Latest';
|
||||
$general_sort_type_4 = 'Oldest';
|
||||
$general_prev = '«';
|
||||
$general_next = '»';
|
||||
$general_last = '↦';
|
||||
$general_first = '↤';
|
||||
$general_view = 'View';
|
||||
$general_actions = 'Actions';
|
||||
$general_actions_more = 'Show more';
|
||||
$general_profile = 'Profile';
|
||||
$general_logout = 'Logout';
|
||||
$general_yes = 'Yes';
|
||||
$general_no = 'No';
|
||||
$time_from_now = 'from now';
|
||||
$time_ago = 'ago';
|
||||
$time_just_now = 'just now';
|
||||
$time_minute = ' minute';
|
||||
$time_hour = ' hour';
|
||||
$time_minutes = ' minutes';
|
||||
$time_hours = ' hours';
|
||||
$time_today = 'today';
|
||||
$time_yesterday = 'yesterday';
|
||||
$time_day = ' day';
|
||||
$time_week = ' week';
|
||||
$time_month = ' month';
|
||||
$time_year = ' year';
|
||||
$time_days = ' days';
|
||||
$time_weeks = ' weeks';
|
||||
$time_months = ' months';
|
||||
$time_years = ' years';
|
||||
$button_apply = 'Apply';
|
||||
$button_cancel = 'Cancel';
|
||||
$button_back = 'Back';
|
||||
$button_history = 'History';
|
||||
$button_firmware = 'Update firmware';
|
||||
$button_create_asset = 'Create asset';
|
||||
$button_create_product = 'Create product';
|
||||
$button_create_user = 'Create user';
|
||||
$button_create_partner = 'Create partner';
|
||||
$button_view = 'View';
|
||||
$button_create_communication = 'Create communication';
|
||||
$button_create_account = 'Create account';
|
||||
$button_partner_assigned_equipment = 'Related assets';
|
||||
$button_partner_assigned_contracts = 'Related contracts';
|
||||
$button_partner_assigned_communication = 'Related communication';
|
||||
$button_partner_assigned_users = 'Related users';
|
||||
$button_create_contract = 'Create contract';
|
||||
$button_create_communication_send = 'Firmware communication';
|
||||
$button_create_cartest = 'Create cartest';
|
||||
$account_h2 = 'Account';
|
||||
$account_status = 'Status';
|
||||
$account_username = 'Username';
|
||||
$account_permission = 'Permission';
|
||||
$account_profile = 'Profile';
|
||||
$account_service = 'Service';
|
||||
$account_pw_reset = 'Password reset';
|
||||
$account_lastlogin = 'lastlogin';
|
||||
$account_language = 'Language';
|
||||
$dashboard_h2 = 'Dashboard';
|
||||
$dashboard_p = 'Statistics';
|
||||
$dashboard_news = 'News';
|
||||
$data_assets_h3 = 'Assets';
|
||||
$data_assets_text = 'Total assets available';
|
||||
$data_service_h3 = 'Service Due';
|
||||
$data_service_text = 'Assets with service';
|
||||
$data_warranty_h3 = 'Warranty';
|
||||
$data_warranty_text = 'Assets under warranty';
|
||||
$data_software_h3 = 'Firmware';
|
||||
$data_software_text = 'Assets requiring firmware upgrade';
|
||||
$data_service_text_forecast = 'Assets with service due within given period';
|
||||
$data_warranty_text_forecast = 'Assets with warranty coverage untill given period';
|
||||
$button1 = 'Login';
|
||||
$button2 = 'Request reset';
|
||||
$equipment_label1 = 'Indicators';
|
||||
$equipment_label2 = 'Serialnumber';
|
||||
$equipment_label3 = 'Status';
|
||||
$equipment_label4 = 'Product';
|
||||
$equipment_label5 = 'Hardware';
|
||||
$equipment_label6 = 'Software';
|
||||
$equipment_label7 = 'Warranty start date';
|
||||
$equipment_label8 = 'Date of Service';
|
||||
$equipment_label9 = 'Service renewal';
|
||||
$equipment_label10 = 'Assets ID';
|
||||
$equipment_label11 = 'Order reference';
|
||||
$equipment_label12 = 'Geolocation (latitude and longitude)';
|
||||
$equiment_search = 'Search serialnumber...';
|
||||
$assets_h2 = 'Assets';
|
||||
$assets_p = 'View, manage, and search assets.';
|
||||
$view_asset_h2 = 'Asset';
|
||||
$view_asset_information = 'Asset - information';
|
||||
$view_asset_partners = 'Asset - partners';
|
||||
$view_asset_details = 'Details';
|
||||
$view_asset_servicereport = 'Service reports';
|
||||
$view_asset_notes = 'Additional notes';
|
||||
$view_asset_actions = 'Actions';
|
||||
$view_asset_data_text = 'Asset - Test analyses';
|
||||
$view_asset_data_rowID = 'Analyses ID';
|
||||
$view_asset_data_historyid = 'Related Test';
|
||||
$view_asset_data_ranking = 'Healthindex';
|
||||
$view_asset_data = 'Observations';
|
||||
$not_specified = 'Not specified';
|
||||
$warranty_status = 'Warranty status';
|
||||
$service_status = 'Service status';
|
||||
$software_status = 'Software status';
|
||||
$service_report_item = 'Service item';
|
||||
$service_report_no_comments = 'No comments';
|
||||
$service_report_maintenance_test = 'Maintenance Test';
|
||||
$service_report_maintenance_test_status = 'Status';
|
||||
$service_report_outcome_good = 'Good';
|
||||
$service_report_outcome_attention = 'Attention';
|
||||
$service_report_no_text = 'There are no service reports ';
|
||||
$service_maintenance_test_fail = 'fail';
|
||||
$service_maintenance_test_pass = 'good';
|
||||
$status0 = '0';
|
||||
$status0_text = 'New';
|
||||
$status1 = '1';
|
||||
$status1_text = 'Created';
|
||||
$status2 = '2';
|
||||
$status2_text = 'On stock';
|
||||
$status3 = '3';
|
||||
$status3_text = 'Send';
|
||||
$status4 = '4';
|
||||
$status4_text = 'In Use';
|
||||
$status5 = '5';
|
||||
$status5_text = 'Scrapped';
|
||||
$product_location_raw = 'PCB';
|
||||
$product_location_SFG = 'semi-finished good';
|
||||
$product_location_FG = 'finished good';
|
||||
$warranty_outdated_text = 'Warranty expired';
|
||||
$warranty_recent = 'Under warranty';
|
||||
$service_renewal_text = 'Service due';
|
||||
$service_recent = 'Service up-to-date';
|
||||
$firmware_update_text = 'Firmware upgrade available';
|
||||
$firmware_recent_text = 'Firmware up-to-date';
|
||||
$firmware_update_confirm = ' I confirm SN and HW are read from device';
|
||||
$message_eq_1 = 'Equipment created successfully!';
|
||||
$message_eq_2 = 'Equipment updated successfully!';
|
||||
$message_eq_3 = 'Equipment deleted successfully!';
|
||||
$message_no_assets = 'There are no assets';
|
||||
$manage_asset_h2 = 'Manage asset';
|
||||
$equipment_sw_version_upgrade = 'Software version to upgrade to (no entry is latest version)';
|
||||
$servicereports_h2 = 'Service reports';
|
||||
$servicereports_p = 'View, manage, and search service reports.';
|
||||
$servicereports_Search = 'Search service reports...';
|
||||
$servicereports_no_history = 'There is are no reports';
|
||||
$servicereports_details = 'Service reports';
|
||||
$servicereport_h2 = 'Service report';
|
||||
$servicereport_p = 'View service report details.';
|
||||
$servicereport_no_history = 'There is no report';
|
||||
$servicereport_details = 'Service report';
|
||||
$history_h2 = 'History';
|
||||
$history_p = 'View, manage, and search history.';
|
||||
$history_Search = 'Search history...';
|
||||
$history_no_history = 'There is no history';
|
||||
$history_label1 = 'HistoryID';
|
||||
$history_label2 = 'Type';
|
||||
$history_label3 = 'Created';
|
||||
$history_label4 = 'Createdby';
|
||||
$history_label5 = 'Description';
|
||||
$history_label6 = 'Serialnumber';
|
||||
$mass_update_h2 = 'Mass update assets';
|
||||
$mass_update_partners = 'Assign partners';
|
||||
$mass_update_input = 'Assign and input';
|
||||
$mass_update_confirm_message = 'Process update?';
|
||||
$mass_update_correct = 'Update done';
|
||||
$mass_update_not_found = 'not found';
|
||||
$mass_update_order_ref = 'Order reference';
|
||||
$mass_update_order_total = 'Order total';
|
||||
$mass_update_customer = 'Customer';
|
||||
$paste_excel_h3 = 'Insert serialnumbers';
|
||||
$paste_excel_1 = 'Add serialnumber or paste from excel';
|
||||
$paste_excel_2 = '1 number per line';
|
||||
$products_h2 = 'Products';
|
||||
$product_h2 = 'Product';
|
||||
$products_p = 'View, manage, and search products.';
|
||||
$product_data = 'Product information';
|
||||
$product_version = 'Product versions';
|
||||
$product_code = 'Productcode';
|
||||
$product_status = 'Status';
|
||||
$product_category = 'Category';
|
||||
$product_name = 'Name';
|
||||
$product_description = 'Description';
|
||||
$product_parttype = 'Type';
|
||||
$product_search = 'Search productname...';
|
||||
$product_software = 'Softwareversion';
|
||||
$product_price = 'Price';
|
||||
$product_serialized = 'Serialized';
|
||||
$product_build = 'Build';
|
||||
$product_sales = 'Sales';
|
||||
$part_type1 = 'Product';
|
||||
$part_type2 = 'Sparepart';
|
||||
$part_type3 = 'Loose_item';
|
||||
$product_category0 = 'Emergency Plug';
|
||||
$product_category1 = 'Garage Plug';
|
||||
$product_category2 = 'Service';
|
||||
$product_category3 = 'Other';
|
||||
$prod_status_text = 'Status';
|
||||
$prod_status_0 = 'Inactive';
|
||||
$prod_status_1 = 'Active';
|
||||
$message_pr_1 = 'Product created successfully!';
|
||||
$message_pr_2 = 'Product updated successfully!';
|
||||
$message_pr_3 = 'Product deleted successfully!';
|
||||
$message_no_products = 'There are no products';
|
||||
$product_version_number = 'Versionnumber';
|
||||
$product_version_version = 'Version';
|
||||
$product_version_software = 'Software';
|
||||
$product_version_measurement = 'Data';
|
||||
$users_h2 = 'Users';
|
||||
$user_h2 = 'User';
|
||||
$users_p = 'View, manage, and search users.';
|
||||
$users_search = 'Search user';
|
||||
$User_service = 'Service';
|
||||
$User_update = 'Active';
|
||||
$User_username = 'Username';
|
||||
$User_email = 'Email';
|
||||
$User_partnerhierarchy = 'Hierarchy';
|
||||
$User_permission = 'Permission';
|
||||
$User_profile = 'Profile';
|
||||
$User_lastlogin = 'Lastlogin';
|
||||
$User_language = 'Language';
|
||||
$User_pw_reset = 'Password reset';
|
||||
$User_pw_login_count = 'Failed login attempts';
|
||||
$User_block = 'Blocked';
|
||||
$User_unblock = 'Deblock';
|
||||
$reset_message = 'Password reset started => See your email inbox for further instructions, you will be redirected to the login page.';
|
||||
$reset_message2 = 'Resettoken not valid, you will be redirected';
|
||||
$reset_message3 = 'Password minimal length of 6 characters';
|
||||
$enabled = 'Active';
|
||||
$disabled = 'Inactive';
|
||||
$message_us_1 = 'User created successfully!';
|
||||
$message_us_2 = 'User updated successfully!';
|
||||
$message_us_3 = 'User deleted successfully!';
|
||||
$message_no_users = 'There are no users';
|
||||
$error_msg_0 = 'User already exists.';
|
||||
$partners_h2 = 'Partners';
|
||||
$partners_p = 'View, manage, and search partners.';
|
||||
$partner_h2 = 'Partner';
|
||||
$partner_status = 'Status';
|
||||
$partner_partnerID = 'Id';
|
||||
$partner_partnertype = 'Type';
|
||||
$partner_partnername = 'Name';
|
||||
$partner_salesID = 'Partnerhierarchy';
|
||||
$partner_note = 'Notes';
|
||||
$partnertype1 = 'SalesID';
|
||||
$partnertype2 = 'SoldTo';
|
||||
$partnertype3 = 'ShipTo';
|
||||
$partnertype4 = 'Location';
|
||||
$partnertype5 = 'Section';
|
||||
$partner_search = 'Search partner...';
|
||||
$partner_view_assigned_assets = 'View assigned assets';
|
||||
$message_pa_1 = 'Partner created successfully!';
|
||||
$message_pa_2 = 'Partner updated successfully!';
|
||||
$message_pa_3 = 'Partner deleted successfully!';
|
||||
$message_no_partners = 'There are no partners';
|
||||
$buildtool_h2 = 'Buildtool';
|
||||
$buildtool_p = 'Assemble product';
|
||||
$firmwaretool_h2 = 'Firmwaretool';
|
||||
$firmwaretool_p = 'Update firmware.';
|
||||
$firmwaretool_step = 'Instructions';
|
||||
$firmwaretool_step_1 = 'Connect the device to the computer by USB.(found under battery cover)';
|
||||
$firmwaretool_step_2 = 'Press "<i>connect</i>" button"';
|
||||
$firmwaretool_step_3 = 'A popup will appear asking to select a device. Select the device by clicking on it and the press the connect button.';
|
||||
$firmwaretool_step_4 = 'After pop-up disappears the device will be read, status bar will show progress';
|
||||
$firmwaretool_step_5 = 'When firmwware available: The status bar will show "<i>Firmware available</i>"';
|
||||
$firmwaretool_step_6 = 'When firmwware available: Ensure SN and HW are read from the device and confirm this by selecting the checkbox "I confirm SN and HW are read from device"';
|
||||
$firmwaretool_step_7 = 'Press <i>"Update firmware"</i> button to start the firmware update dialog and follow the onscreen instructions';
|
||||
$firmwaretool_step_8 = '<b>Be aware: This process cannot be stopped and needs to finish.</b>';
|
||||
$newuser_subject = 'CustomerPortal user created';
|
||||
$newuser_header = 'Dear CustomerPortal user';
|
||||
$newuser_text = 'Your CustomerPortal administrator has provided access to the CustomerPortal. To complete your account you need to update your password via the link below.';
|
||||
$newuser_credential_label = 'Link to portal:';
|
||||
$newuser_closure = 'For security reasons this link is only active for 10 minutes.';
|
||||
$changeuser_subject = 'CustomerPortal - password reset requested';
|
||||
$changeuser_header = 'Dear CustomerPortal user';
|
||||
$changeuser_text = 'A password reset has been requested for your account. To reset your account use the link below.';
|
||||
$changeuser_credential_label = 'Link to portal:';
|
||||
$changeuser_closure = 'For security reasons this link is only active for 10 minutes.';
|
||||
$register_user_subject = 'CustomerPortal - firmware - user created';
|
||||
$register_user_header = 'Dear customer';
|
||||
$register_user_text = 'Thanks for your registration. Based on your product registration we herewith provide you access to our online firmware update capability.';
|
||||
$register_user_credential_label = 'Link to portal:';
|
||||
$register_user_closure = 'This is a generic account and cannot be changed.';
|
||||
$register_title = 'Productregistration';
|
||||
$register_1_find = '1. find serialnumber on device';
|
||||
$register_2_enter = '2. enter serialnumber (8-digits)';
|
||||
$register_2_label = 'Serialnumber';
|
||||
$register_2_placeholder = 'Enter Serialnumber';
|
||||
$register_2_add = '(add more serialnumbers)';
|
||||
$register_3_register = '3. register product';
|
||||
$register_3_name = 'Company/Organization Name';
|
||||
$register_3_mail = 'Email';
|
||||
$register_3_phone = 'Phone';
|
||||
$register_3_city = 'City';
|
||||
$register_3_country = 'Country';
|
||||
$register_3_email_consent = 'I would like to recieve email communication about TotalSafetySolutions news and product updates';
|
||||
$register_3_term_consent_1 = 'I agree with ';
|
||||
$register_3_term_consent_2 = 'terms and conditions';
|
||||
$register_button = 'Register';
|
||||
$register_mandatory = 'mandatory';
|
||||
$register_4_completed = '4. Registration Completed';
|
||||
$register_5_details = '5. Registration details';
|
||||
$register_6_return = '6. Return to registration';
|
||||
$register_6_button = 'Back';
|
||||
$register_message_1 = 'Serialnumber not recognized, please contact your supplier';
|
||||
$register_message_2 = 'Product under warranty or warranty expired. If not correct please contact your supplier';
|
||||
$register_message_3 = 'Warranty is extended with 1 additional year';
|
||||
$register_message_4 = 'Thank you for your registration. You will receive the link to our software update tool via the mail provided during the registration.';
|
||||
$communication_h2 = 'Communication';
|
||||
$communication_p = 'View, manage, and search communication.';
|
||||
$communication_status = 'Status';
|
||||
$communication_search = 'Search email';
|
||||
$comm_status_0 = 'disabled';
|
||||
$comm_status_1 = 'enabled';
|
||||
$message_comm_1 = 'Communication created successfully!';
|
||||
$message_comm_2 = 'Communication updated successfully!';
|
||||
$message_comm_3 = 'Communication deleted successfully!';
|
||||
$message_comm_4 = 'Firmware communication activated!';
|
||||
$message_no_communication = 'There are no communication records';
|
||||
$communication_partner = 'PartnerID';
|
||||
$communication_email = 'Email';
|
||||
$communication_firmware = 'Firmware';
|
||||
$communication_service = 'Service';
|
||||
$communication_marketing = 'Marketing';
|
||||
$communication_type = 'Type';
|
||||
$communication_send = 'Send';
|
||||
$coms_types = 'Communication';
|
||||
$coms_status_0 = 'Inactive';
|
||||
$coms_status_1 = 'Active';
|
||||
$coms_type_0 = 'Forecast';
|
||||
$coms_type_1 = 'Event-based';
|
||||
$communication_send_firmware_h2 = 'Create Firmware message';
|
||||
$communication_target = 'Target';
|
||||
$communication_target_both = 'Both';
|
||||
$communication_hw_scope = 'Hardware scope';
|
||||
$accountstatus_0 = 'Lead';
|
||||
$accountstatus_1 = 'Customer';
|
||||
$accountstatus_2 = 'Cancel';
|
||||
$account_h2 = 'account';
|
||||
$account_p = 'View, manage, and search account.';
|
||||
$account_status = 'Status';
|
||||
$account_search = 'Search accountname';
|
||||
$message_account_1 = 'Account created successfully!';
|
||||
$message_account_2 = 'Account updated successfully!';
|
||||
$message_account_3 = 'Account deleted successfully!';
|
||||
$message_no_account = 'There are no accounts';
|
||||
$account_id = 'AccountID';
|
||||
$account_name = 'Name';
|
||||
$account_firstname = 'Firstname';
|
||||
$account_lastname = 'Lasstname';
|
||||
$account_email = 'Email';
|
||||
$account_phone = 'Phone';
|
||||
$view_account_information = 'Account information';
|
||||
$view_account_contact = 'Contact information';
|
||||
$account_contactfirstname = 'Contact person firstname';
|
||||
$account_contactlastname = 'Contact person lastname';
|
||||
$account_contactemail = 'Email';
|
||||
$account_contactphonenumber = 'Phone';
|
||||
$account_billing = 'Billing';
|
||||
$account_billstreetadress = 'Street adress';
|
||||
$account_billpostalcode = 'Postal code';
|
||||
$account_billdistrict = 'District';
|
||||
$account_billcity = 'City';
|
||||
$account_billstate = 'State';
|
||||
$account_billcountry = 'Country';
|
||||
$account_shipping = 'Shipping';
|
||||
$account_company = 'Company name';
|
||||
$account_firstname = 'First name';
|
||||
$account_lastname = 'Last name';
|
||||
$account_streetadress = 'Street adress';
|
||||
$account_postalcode = 'Postal code';
|
||||
$account_district = 'District';
|
||||
$account_city = 'City';
|
||||
$account_state = 'State';
|
||||
$account_country = 'Country';
|
||||
$account_vatnumber = 'VAT number';
|
||||
$account_loghandlername = 'Logistics handler';
|
||||
$account_loghandleraccount = 'Logistics account';
|
||||
$message_contract_1 = 'Contract created successfully!';
|
||||
$message_contract_2 = 'Contract updated successfully!';
|
||||
$message_contract_3 = 'Contract deleted successfully!';
|
||||
$message_no_contract = 'There are no contracts';
|
||||
$contract_h2 = 'Contracts';
|
||||
$contract_p = 'View, manage, and search contracts.';
|
||||
$contract_status = 'Status';
|
||||
$contract_search = 'Search reference';
|
||||
$contract_status0 = 'Draft';
|
||||
$contract_status1 = 'Active';
|
||||
$contract_status2 = 'Closed';
|
||||
$contract_status3 = 'Block';
|
||||
$contract_type0 = 'Fixed';
|
||||
$contract_type1 = 'Subscription';
|
||||
$contract_type2 = 'Pay per use';
|
||||
$contract_billinglabel = 'Billingplan';
|
||||
$contract_billing0 = 'One-time after';
|
||||
$contract_billing1 = 'Monthly';
|
||||
$contract_billing2 = 'Quarterly';
|
||||
$contract_billing3 = 'Annual';
|
||||
$contract_service = 'Number of service events based on billingplan';
|
||||
$contract_billing_count = 'Consumed';
|
||||
$contract_service_2 = 'Contracted';
|
||||
$contract_overrun = 'Deviation';
|
||||
$contract_id = 'Contract ID';
|
||||
$contract_account = 'Account';
|
||||
$contract_type = 'Type';
|
||||
$contract_start_date = 'Start date';
|
||||
$contract_end_date = 'End date';
|
||||
$contract_reference = 'Reference';
|
||||
$contract_duration = 'Duration (in months)';
|
||||
$contract_servicetool = 'Servicetool';
|
||||
$contract_ignore_serial = 'Ignore serialnumbers';
|
||||
$contract_assigned_users = 'Assigned users';
|
||||
$contract_assigned_users_add = 'Add user';
|
||||
$group_header_1 = 'General';
|
||||
$group_header_2 = 'Head - Type 1';
|
||||
$group_header_3 = 'Head - Type 2';
|
||||
$group_header_4 = 'Battery unit';
|
||||
$group_header_5 = 'Casing';
|
||||
$group_header_6 = 'Actions';
|
||||
$group_header_7 = 'Notes';
|
||||
$group_header_8 = 'Repaired/Replaced';
|
||||
$group_header_9 = 'Finalize';
|
||||
$service_report_id = 'ServicereportID';
|
||||
$service_serialnumber = 'Serialnumber';
|
||||
$service_date = 'Date of service';
|
||||
$service_renewal = 'Renewal date';
|
||||
$service_performed_by = 'Performed by';
|
||||
$summary_label1 = 'Service actions performed';
|
||||
$summary_label2 = 'Observations';
|
||||
$summary_label3 = 'Corrosion';
|
||||
$summary_label4 = 'State';
|
||||
$message1 = 'No service actions done/required';
|
||||
$message2 = 'No repair actions done/required';
|
||||
$service_visual_1 = 'Productcase included?';
|
||||
$service_visual_2 = 'Spare batteries included?';
|
||||
$service_visual_3 = 'Pray bar (Spudger) included?';
|
||||
$service_visual_4 = 'Adapter (NA) included?';
|
||||
$service_visual_5 = 'Head and Pins clean?';
|
||||
$service_visual_6 = 'All pins available (3x)?';
|
||||
$service_visual_7 = 'Corrosion visible on pins?';
|
||||
$service_visual_8 = 'State of plastic housing';
|
||||
$service_visual_9 = 'Head and Pins clean?';
|
||||
$service_visual_10 = 'All pins available (3x)?';
|
||||
$service_visual_11 = 'Corrosion visible on pins?';
|
||||
$service_visual_12 = 'State of plastic housing';
|
||||
$service_visual_13 = 'Battery cover available?';
|
||||
$service_visual_14 = 'Corrosion on battery contacts?';
|
||||
$service_visual_15 = 'Battery contacts available?';
|
||||
$service_visual_15 = 'Serialnumber readable?';
|
||||
$service_visual_16 = 'USB connector clean?';
|
||||
$service_visual_17 = 'Movement on USB connector?';
|
||||
$service_visual_18 = 'Screws fixed(5x)?';
|
||||
$service_visual_19 = 'Button can be pressed?';
|
||||
$service_visual_20 = 'State of body?';
|
||||
$service_visual_21 = 'State of diffuser?';
|
||||
$service_visual_22 = 'State of ledcover?';
|
||||
$service_action_clean = 'Device cleaned';
|
||||
$service_action_battery = 'Batteries replaced';
|
||||
$service_notes = 'Notes';
|
||||
$service_action_serial = 'Serialnumber';
|
||||
$service_action_cover = 'Battery cover';
|
||||
$service_action_spudger = 'Pray bar (spudger)';
|
||||
$service_action_case = 'Case';
|
||||
$service_action_instructions = 'Instructions in case';
|
||||
$service_mandatory_question = 'I declare that I answered the questions truthfully';
|
||||
$service_allowed_label1 = 'Yes';
|
||||
$service_allowed_label2 = 'No';
|
||||
$service_allowed_label3 = 'Bad';
|
||||
$service_allowed_label4 = 'Average';
|
||||
$service_allowed_label5 = 'Good';
|
||||
$service_allowed_label6 = 'Yes';
|
||||
$service_allowed_label7 = 'No';
|
||||
$service_allowed_label8 = 'Comment';
|
||||
$service_allowed_label9 = 'n/a';
|
||||
$service_allowed_label10 = 'Check';
|
||||
$group_header_legacy_1 = 'Product';
|
||||
$group_header_legacy_2 = 'Label';
|
||||
$group_header_legacy_3 = 'Cleaning';
|
||||
$group_header_legacy_4 = 'Corrosion';
|
||||
$group_header_legacy_5 = 'State';
|
||||
$group_header_legacy_6 = 'Movement';
|
||||
$group_header_legacy_7 = 'Other';
|
||||
$question1 = 'Productcase included?';
|
||||
$question2 = 'Spudger in the case?';
|
||||
$question3 = 'Batteries included?';
|
||||
$question4 = 'Batterycover included?';
|
||||
$question5 = 'Serialnumber readable on label?';
|
||||
$question6 = 'Type 1 Head and Pins clean?';
|
||||
$question7 = 'Type 2 Head and Pins clean?';
|
||||
$question8 = 'USB connector clean?';
|
||||
$question9 = 'PCB clean?';
|
||||
$question10 = 'Housing';
|
||||
$question11 = 'Head-Type1';
|
||||
$question12 = 'Head-Type2';
|
||||
$question13 = 'Batteries';
|
||||
$question14 = 'Batterycontacts';
|
||||
$question11a = 'Head-Type1 not corroded';
|
||||
$question12a = 'Head-Type2 not corroded';
|
||||
$question13a = 'Batteries not corroded';
|
||||
$question14a = 'Batterycontacts not corroded';
|
||||
$question18a = 'PCB not corroded';
|
||||
$question15 = 'Batterycover';
|
||||
$question16 = 'Cover';
|
||||
$question17 = 'Diffuser';
|
||||
$question18 = 'PCB';
|
||||
$question19 = 'All screws available?';
|
||||
$question20 = 'No movement on Pins?';
|
||||
$question21 = 'All Pins available?';
|
||||
$question22 = 'No movement on USB connector?';
|
||||
$question23 = 'Button working?';
|
||||
$question24 = 'Do all LEDs work?';
|
||||
$servicereport5 = 'Not specified';
|
||||
$action_clean = 'action_clean';
|
||||
$action_clean_description = 'Device cleaned';
|
||||
$action_firmware = 'action_firmware';
|
||||
$action_firmware_description = 'Device firmware updated';
|
||||
$action_firmware_update_description = 'I confirm SN and HW are read from device';
|
||||
$action_maintenance = 'action_maintenance';
|
||||
$action_maintenance_description = 'Device capability tested';
|
||||
$action_serial = 'action_serial';
|
||||
$action_serial_description = 'Device serialnumberlabel regenerated';
|
||||
$action_replacement_body = 'action_replacement_body';
|
||||
$action_replacement_body_description = 'Device body replaced';
|
||||
$action_replacement_pcb = 'action_replacement_pcb';
|
||||
$action_replacement_pcb_description = 'Device PCB replaced';
|
||||
$action_replacement_battery = 'action_replacement_body';
|
||||
$action_replacement_battery_description = 'Batteries replaced';
|
||||
$action_repaired_body = 'action_repaired_body';
|
||||
$action_repaired_body_description = 'Device body repaired';
|
||||
$action_repaired_pcb = 'action_repaired_pcb';
|
||||
$action_repaired_pcb_description = 'Device PCB repaired';
|
||||
$action_repaired_LED = 'action_repaired_LED';
|
||||
$action_repaired_LED_description = 'Device LED repaired';
|
||||
$action_repaired_button = 'action_repaired_button';
|
||||
$action_repaired_button_description = 'Device button repaired';
|
||||
$marketing_h2 = 'Marketing';
|
||||
$marketing_p = 'Marketing catalog';
|
||||
$unscribe_msg1 = 'Email unsubscribed';
|
||||
$unscribe_msg_error = 'Something went wrong, please contact your supplier for assistance';
|
||||
$cartests_h2 = 'Car Database';
|
||||
$cartests_p = 'View, manage, and search car details.';
|
||||
$cartest_h2 = 'Cartest';
|
||||
$cartest_charts = 'Testgraphs';
|
||||
$message_ct_1 = 'Cartest created successfully!';
|
||||
$message_ct_2 = 'Cartest updated successfully!';
|
||||
$message_ct_3 = 'Cartest deleted successfully!';
|
||||
$message_no_ct = 'There are no cartest';
|
||||
$cartest_search = 'Search carbrand...';
|
||||
$cartest_information = 'Cartest information';
|
||||
$cartest_rowID = 'Test ID';
|
||||
$cartest_carbrand = 'Carbrand';
|
||||
$cartest_cartype = 'Cartype';
|
||||
$cartest_carvin = 'VIN';
|
||||
$cartest_details_text = 'Test details';
|
||||
$cartest_created = 'Timestamp';
|
||||
$cartest_tester = 'Tester';
|
||||
$cartest_device = 'Used asset';
|
||||
$cartest_device_hw = 'Used hardware';
|
||||
$cartest_device_sw = 'Used software';
|
||||
$cartest_questions_text = 'Question & answer';
|
||||
$cartest_header_0 = 'Car data';
|
||||
$cartest_header_1 = 'Test Results';
|
||||
$cartest_header_2 = 'PHEV or EV';
|
||||
$cartest_header_3 = 'Color of led';
|
||||
$cartest_header_4 = 'Dashboard signs';
|
||||
$cartest_header_5 = 'General';
|
||||
$cartest_header_6 = 'Results after test';
|
||||
$cartest_header_7 = 'Notes';
|
||||
$cartest_1 = 'Go to P';
|
||||
$cartest_2 = 'Out of D';
|
||||
$cartest_3 = 'Possible gear switch';
|
||||
$cartest_4 = 'Cuts accelerator';
|
||||
$cartest_5 = 'Go to N';
|
||||
$cartest_6 = 'Handbrake on';
|
||||
$cartest_7 = 'Propulsion by accelerator';
|
||||
$cartest_8 = 'EV or PHEV';
|
||||
$cartest_9 = 'ICE shutdown';
|
||||
$cartest_10 = 'ICE on by accelerator';
|
||||
$cartest_11 = 'Before insert';
|
||||
$cartest_12 = 'After insert 1 second';
|
||||
$cartest_13 = 'After inster 2 seconds';
|
||||
$cartest_14 = 'Sign of charging';
|
||||
$cartest_15 = 'No Signs';
|
||||
$cartest_16 = 'Charging failure';
|
||||
$cartest_17 = 'Any other';
|
||||
$cartest_18 = 'Moves on idle';
|
||||
$cartest_19 = 'Photo of VIN taken';
|
||||
$cartest_20 = 'Photo of car overview';
|
||||
$cartest_21 = 'Reconnect in 5 minutes';
|
||||
$cartest_22 = 'Photo of identification plate';
|
||||
$cartest_23 = 'Possible gear switch after removal EP';
|
||||
$cartest_24 = 'Engine directly on after removal EP';
|
||||
$cartest_25 = 'PHEV, ICE on after removal EP';
|
||||
$cartest_26 = 'First contact of to restart';
|
||||
$cartest_27 = 'Locking open after removal';
|
||||
$cartest_28 = 'Testresults Pass/Fail';
|
||||
$cartest_notes = 'Notes';
|
||||
$cartest_allowed_label0 = 'insert answer';
|
||||
$cartest_allowed_label1 = 'Yes';
|
||||
$cartest_allowed_label2 = 'No';
|
||||
$cartest_allowed_label3 = 'EV';
|
||||
$cartest_allowed_label4 = 'PHEV';
|
||||
$cartest_allowed_label5 = 'Green';
|
||||
$cartest_allowed_label6 = 'Yellow';
|
||||
$cartest_allowed_label7 = 'Blue';
|
||||
$cartest_allowed_label8 = 'Red';
|
||||
$cartest_allowed_label9 = 'Pass';
|
||||
$cartest_allowed_label10 = 'Fail';
|
||||
$buildreport_h2 = 'Stock and Production';
|
||||
$buildreport_p = 'Reporting';
|
||||
$buildreport_raw_text = 'Total number PCB';
|
||||
$buildreport_SFG_text = 'Total number semi-finished good';
|
||||
$buildreport_FG_text = 'Total number finished good';
|
||||
$buildreport_onstock_text = 'Total number On Stock';
|
||||
$data_build_sfg_view = 'semi-finished good produced in the last 7 days';
|
||||
$data_build_fg_view = 'finished good produced in the last 7 days';
|
||||
$menu_translations = 'Translations';
|
||||
$button_create_rma = 'Create RMA';
|
||||
$rmas_h2 = 'Return Material';
|
||||
$rmas_p = 'View, manage, and search RMA details.';
|
||||
$rma_h2 = 'Return Material Request';
|
||||
$message_rma_1 = 'RMA created successfully!';
|
||||
$message_rma_2 = 'RMA updated successfully!';
|
||||
$message_rma_3 = 'RMA deleted successfully!';
|
||||
$message_no_rma = 'There is no RMA';
|
||||
$rma_search = 'Search RMA...';
|
||||
$rma_rowID = 'Request number';
|
||||
$rma_status = 'Status';
|
||||
$rma_status0_text = 'New';
|
||||
$rma_status1_text = 'In Progress';
|
||||
$rma_status2_text = 'Approved';
|
||||
$rma_status3_text = 'Completed';
|
||||
$rma_status4_text = 'Cancelled';
|
||||
$rma_sw_version_latest = 'Latest software version';
|
||||
$rma_servicereport_latest = 'Servicereport created last 7days';
|
||||
$rma_information = 'RMA information';
|
||||
$rma_return_reason = 'Return reason';
|
||||
$rma_return_reason0_text = '';
|
||||
$rma_return_reason1_text = '';
|
||||
$rma_return_reason2_text = '';
|
||||
$rma_return_reason3_text = '';
|
||||
$rma_return_reason4_text = '';
|
||||
$rma_return_reason5_text = '';
|
||||
$rma_return_reasons_notes = 'Return reason notes';
|
||||
$rma_return_tab1 = 'Return reason';
|
||||
$rma_return_tab2 = 'Questions';
|
||||
$rma_question_allowed_label1 = 'Yes';
|
||||
$rma_question_allowed_label2 = 'No';
|
||||
$rma_question_header_1 = '';
|
||||
$rma_question_1 = 'Batteries working?';
|
||||
$rma_question_2 = 'Button correctly working';
|
||||
$rma_question_3 = '';
|
||||
$rma_question_4 = '';
|
||||
$rma_question_5 = '';
|
||||
$rma_question_6 = '';
|
||||
$rma_question_7 = '';
|
||||
$menu_rmas = 'Return Material';
|
||||
$button_create_text_variable = 'Create variable';
|
||||
$message_no_text_variables = 'There are no variables';
|
||||
$text_variables_h2 = 'Translations';
|
||||
$text_variable_name = 'Variable name';
|
||||
$text_variable_translation_languagekey = 'Language';
|
||||
$text_variable_translation_translation = 'Translation';
|
||||
$menu_products_attributes = 'Product attributes';
|
||||
$message_patt_1 = 'Product attribute created successfully!';
|
||||
$message_patt_2 = 'Product attribute updated successfully!';
|
||||
$message_patt_3 = 'Product attribute deleted successfully!';
|
||||
$products_attributes_h2 = 'Product attributes';
|
||||
$products_attributes_p = 'View, manage, and search product attributes';
|
||||
$button_create_products_attribute = 'Create attribute';
|
||||
$products_attribute_search = 'Search attribute';
|
||||
$products_attribute_rowID = 'Attribute ID';
|
||||
$products_attribute_group_name = 'Name';
|
||||
$message_no_products_attributes = 'There are no attributes';
|
||||
$products_attribute_group_status = 'Status';
|
||||
$products_attribute_group_type = 'Type';
|
||||
$general_status_0 = 'Inactive';
|
||||
$general_status_1 = 'Active';
|
||||
$products_attributes_group_status = 'Status';
|
||||
$products_attributes_group_name = 'Name of group';
|
||||
$general_form_0 = 'Radiobutton';
|
||||
$general_form_1 = 'Checkbox';
|
||||
$general_form_2 = 'Dropdown';
|
||||
$products_attributes_group_mandatory = 'Mandatory';
|
||||
$products_attributes_group_items = 'Items in group';
|
||||
$products_attributes_item_rowID = 'Item ID';
|
||||
$products_attributes_item_status = 'Status';
|
||||
$products_attributes_item_name = 'Item name';
|
||||
$products_attributes_item_quantity = 'Item quantity';
|
||||
$products_attributes_item_position = 'Item position';
|
||||
$products_attributes_item_media = 'Item media';
|
||||
$product_name_1 = 'Test Product translation';
|
||||
$menu_pricelists = 'Pricelists';
|
||||
$menu_media = 'Media';
|
||||
$general_currency_1 = '$';
|
||||
$general_currency_0 = '€';
|
||||
$general_modifier_0 = '-';
|
||||
$general_modifier_1 = '+';
|
||||
$h2_brand_name_1 = 'MorvalWatches';
|
||||
$h2_brand_name_2 = 'a brand with a story';
|
||||
$h2_brand_visit = 'Visit our collection';
|
||||
$h2_brand_wow = 'Morval brings together a unique combination of minimalistic design, Swiss quality and Dutch manufacturing. We give you a watch to wear in any occasion.';
|
||||
$h1_content_top = 'Our watch collection';
|
||||
$product_count_1 = 'Product';
|
||||
$product_count_2 = 's';
|
||||
$main_filter_category = 'Category';
|
||||
$main_category = 'All';
|
||||
$main_filter_sort = 'Sort';
|
||||
$sort1 = 'A-Z';
|
||||
$sort2 = 'Z-A';
|
||||
$sort3 = 'Latest';
|
||||
$sort4 = 'Oldest';
|
||||
$sort5 = 'Price High - Low';
|
||||
$sort6 = 'Price Low - High';
|
||||
$free_delivery = 'free delivery';
|
||||
$non_free_delivery = 'free delivery from ';
|
||||
$breadcrum_products = 'Collection';
|
||||
$product_quantity = 'Quantity';
|
||||
$product_on_stock = 'In Stock';
|
||||
$out_of_stock_notify = 'Notify Me';
|
||||
$out_of_stock_notify_2 = 'Visit us @';
|
||||
$out_of_stock = 'Out of stock';
|
||||
$add_to_basket = 'Add To Cart';
|
||||
$h1_cart_name = 'Shopping Cart';
|
||||
$h2_cart_suggestions = 'Suggestions';
|
||||
$h2_cart_sample_product = 'Samples';
|
||||
$tr_product = 'Product';
|
||||
$tr_price = 'Price';
|
||||
$tr_quantity = 'Quantity';
|
||||
$tr_total = 'Total';
|
||||
$total_subtotal = 'Subtotal';
|
||||
$total_note = '(shipping is calculated during checkout)';
|
||||
$total_vat = 'VAT';
|
||||
$total_shipping = 'Shipping';
|
||||
$total_shipping_note = '(shipping included)';
|
||||
$total_discount = 'Discount';
|
||||
$total_total = 'Total';
|
||||
$total_total_note = 'VAT included ';
|
||||
$btn_emptycart = 'clear';
|
||||
$btn_update = 'Update';
|
||||
$btn_checkout = 'Checkout';
|
||||
$navigation_back_to_store = 'return to collection';
|
||||
$cart_message_empty = 'You have no products added in your Shopping Cart';
|
||||
$error_account_name = 'Account already exists.';
|
||||
$error_account_password_rules = 'Password must be between 5 and 20 characters long.';
|
||||
$error_account_password_match = 'Passwords do not match.';
|
||||
$error_account = 'Account creation required.';
|
||||
$h1_checkout = 'Checkout';
|
||||
$account_available = 'Already have an account?';
|
||||
$account_log_in = 'Log In';
|
||||
$account_create = 'Create Account';
|
||||
$account_create_optional = '(optional)';
|
||||
$account_create_email = 'Email';
|
||||
$account_create_password = 'Password';
|
||||
$account_create_password_confirm = 'Confirm Password';
|
||||
$h2_Shipping_details = 'Shipping Details';
|
||||
$h3_shipping_method = 'Shipping Method';
|
||||
$shipping_first_name = 'First Name';
|
||||
$shipping_last_name = 'Last Name';
|
||||
$shipping_address = 'Address';
|
||||
$shipping_city = 'City';
|
||||
$shipping_state = 'Region/State';
|
||||
$shipping_zip = 'Zip';
|
||||
$shipping_country = 'Country';
|
||||
$shipping_phone = 'Phone';
|
||||
$payment_method = 'Payment Method';
|
||||
$payment_method_1 = 'Debit (NL/BE customers)';
|
||||
$payment_method_2 = 'Pay on delivery';
|
||||
$h2_shoppingcart = 'Shopping Cart';
|
||||
$discount_label = 'Discount Code';
|
||||
$discount_message = 'Discount code applied!';
|
||||
$discount_error_1 = 'Incorrect discount code!';
|
||||
$discount_error_2 = 'Discount code expired!';
|
||||
$order_consent_1 = 'I would like to recieve email communication about MorvalWatches news, products and services';
|
||||
$order_consent_2 = 'I agree with';
|
||||
$order_consent_3 = 'Terms & Conditions';
|
||||
$btn_place_order = 'Order';
|
||||
$h1_order_succes_message = 'Your Order Has Been Placed';
|
||||
$order_succes_message = 'Thank you for ordering with us! We will contact you by email with your order details.';
|
||||
$error_myaccount = 'Incorrect Email/Password!';
|
||||
$h1_login = 'Login';
|
||||
$h1_register = 'Register';
|
||||
$h1_myaccount = 'My Account';
|
||||
$h2_menu = 'Menu';
|
||||
$menu_orders = 'Orders';
|
||||
$menu_downloads = 'Downloads';
|
||||
$menu_settings = 'Settings';
|
||||
$h2_myorders = 'My orders';
|
||||
$myorders_message = 'You have no orders';
|
||||
$myorders_order = 'Order';
|
||||
$myorders_date = 'Date';
|
||||
$myorders_status = 'Status';
|
||||
$myorders_shipping = 'Shipping';
|
||||
$myorders_total = 'Total';
|
||||
$h2_mydownloads = 'My downloads';
|
||||
$mydownloads_message = 'You have no downloads';
|
||||
$mydownloads_product = 'Product';
|
||||
$h2_settings = 'Settings';
|
||||
$settings_email = 'Email';
|
||||
$settings_new_password = 'New Password';
|
||||
$btn_settings_save = 'Save';
|
||||
$age_consent_h4 = 'Lets check your age';
|
||||
$age_consent_text = 'To visit MorvalWatches you need to be 18 years or older.';
|
||||
$age_consent_btn_allow = 'Agree';
|
||||
$age_consent_btn_deny = 'disagree';
|
||||
$maintenanceMode_h4 = 'Webshop is in maintenance';
|
||||
$maintenanceMode_text = 'Our webshop is in maintenance. We like to see you back soon';
|
||||
$maintenanceMode_btn = 'OK';
|
||||
$subject_order_notification = 'MorvalWatches - You have received a new order!';
|
||||
$subject_new_order = 'MorvalWatches - Order Details';
|
||||
$subject_out_of_stock = 'MorvalWatches - Out of Stock';
|
||||
$home_text = 'Home';
|
||||
$products_text = 'Collection';
|
||||
$about_text = 'About Us';
|
||||
$myaccount_text = 'Account';
|
||||
$social_punch_line = 'Connect with Morval via our social media channels';
|
||||
$privacy_text = 'Privacy';
|
||||
$terms_text = 'Terms and Conditions';
|
||||
$faq_text = 'Frequent asked questions';
|
||||
$order_email_title = 'MorvalWatches - Order';
|
||||
$order_email_message_1 = 'Thank you for your order';
|
||||
$order_email_message_2 = 'Your order has been received and is currently being processed. The details for your order are below.';
|
||||
$order_email_information = 'Your Details';
|
||||
$h2_about_1 = 'About Morval';
|
||||
$h2_about_2 = '';
|
||||
$about_header_1 = 'About US';
|
||||
$about_1_p = 'Morval Watches was founded in 2023 by Ralph van Wezel. Ralph is a hospital pharmacist and has a fascination for technology. In his work he strives to make medicines available that make a difference for the patient. Producing a medicine requires knowledge, precision, accuracy, technique, quality and craftsmanship. Herein lies the similarity with the manufacture of a high-quality automatic watch. Ralph has set itself the goal of developing a watch that can compete with the renowned brands, but is sold at an a';
|
||||
$about_header_2 = 'About our watches';
|
||||
$about_2_p = 'A Morval Watch is inspired by the vintage models and minimalistic design of Scandinavian watches. Due to variations in the color of the dial and straps, a Morval watch can be worn on any occasion, both as sport and dress watch.Morval watches meet the highest quality requirements and can compete with the well-known Swiss brands. The parts are supplied by renowned manufacturers from Europe and beyond. A Morval contains a Swiss-made caliber (STP) that is known for its reliable quality. The assemblies take place in Amsterdam by recognized watchmakers and each watch undergoes extensive quality control for functionality and aesthetics. The watch is manually adjusted and tested to minimize the deviation. Morval stands for an excellent price-quality ratio! When you purchase a Morval watch, you are assured of a timeless timepiece that will last for decades.A lot of attention has been paid to details, such as a brushed case of stainless steel 316 steel, superluminova on the hands, anti-reflective glass and infinitely adjustable leather strap. This translates into the luxurious appearance of the brand. With a Morval Watch you have a unique, robust, stylish and timeless timepiece that will last for generations!';
|
||||
$about_header_3 = 'About Morval';
|
||||
$about_morval_text = 'Read more about the history of Morval';
|
||||
$h2_about_morval_1 = 'The history of Morval';
|
||||
$h2_about_morval_2 = '';
|
||||
$about_morval_header_1 = '';
|
||||
$about_morval_header_2 = '';
|
||||
$about_morval_header_3 = '';
|
||||
$about_morval_1_p = 'Morval, a village of 96 inhabitants, is located between 4 communes of the Somme as a peninsula of Pas-de-Calais at the end of the canton of Bapaume.
|
||||
Before 1914 it had 220 to 250 inhabitants, but it was completely destroyed during the Battle of Morval in the First World War (1914-18). The rebuilt church was the almost exact replica in style, allure and proportions (45 meters high, 40 meters long), as the previous one. The bell tower housed 3 beautiful bells, which is quite rare for a small village. It was inaugurated in October 1932.
|
||||
Unfortunately, it was not a good reconstruction and in the aftermath of the Second World War it was necessary to repair the roof, close cracks around the bell tower, replace stained glass windows, etc. Soon, successive municipalities could no longer cope with the deterioration . A complete renovation would have required at least 1,500,000 francs, while the municipalities annual budget was only 120,000 francs.
|
||||
In November 1973, during a funeral, part of the church collapsed during the sacrifice. The building was no longer safe and was closed for worship. In 1985, the mayor, deputies, councilors and administrators decided to destroy the church. An amount of 66,000 francs was reserved for this very sad operation, which was alleviated by a subsidy obtained from the general council.';
|
||||
$about_morval_2_p = 'When the rubble was cleared, this large empty square remained like a wound in the hearts of the inhabitants. Three years later the municipality built a small campanile where the three bells that were lowered for demolition were hung. Sponsored by 1930s residents, they remain alive and still ring the bell to mark every happy or unfortunate event as we once did.';
|
||||
$about_morval_3_p = 'When the rubble was cleared, this large empty square remained like a wound in the hearts of the inhabitants. Three years later the municipality built a small campanile where the three bells that were lowered for demolition were hung. Sponsored by 1930s residents, they remain alive and still ring the bell to mark every happy or unfortunate event as we once did. Thanks to them, Morval does not forget its missing bell tower.';
|
||||
$invoice_morval_subject = 'Morval watches - invoice';
|
||||
$place_order_header = 'Place order';
|
||||
$checkout_header = 'Checkout';
|
||||
$tax_text = 'VAT';
|
||||
$h2_cart_samples = 'Samples';
|
||||
$products_filters_h2 = 'Filters';
|
||||
$btn_filter = 'Filter';
|
||||
$sort = 'Sort';
|
||||
$order_number_text = 'Order';
|
||||
$order_date_text = 'Date';
|
||||
$tr_options = 'Options';
|
||||
$order_invoice_text = 'Invoice';
|
||||
$invoice_payment_paid_text = 'The total amount of this invoice is paid';
|
||||
$highlight_1 = 'Collection';
|
||||
$highlight_2 = 'Collection';
|
||||
$home_timeless = 'Timeless';
|
||||
$home_timeless_text = 'Morval Watches are unique, robust, stylish and timeless timepieces that will last for generations!';
|
||||
$shop_action = 'shop now';
|
||||
$home_quality = 'Quality';
|
||||
$home_quality_text = 'Morval watches meet the highest quality requirements and can compete with the well-known Swiss brands. The parts are supplied by renowned manufacturers from Europe and beyond. A Morval contains a Swiss-made caliber (STP) that is known for its reliable quality.';
|
||||
$home_price = 'Price';
|
||||
$home_price_text = 'Morval stands for an excellent price-quality ratio';
|
||||
$shopping_cart_header = 'Shopping Cart';
|
||||
$about_3_p = 'Morval takes its name from the surname of one of Ralphs grandparents. The logo is inspired by the monument in the town of Morval in northern France, which was built from the remains of a church and the three bells from the tower.';
|
||||
?>
|
||||
Reference in New Issue
Block a user