Compare commits
10 Commits
704d2238b1
...
dab2e5e867
Author | SHA1 | Date |
---|---|---|
|
dab2e5e867 | |
|
405c2ce49d | |
|
6f146eb712 | |
|
1ce94928b6 | |
|
e2557b3ab3 | |
|
d1b4021c19 | |
|
2349f60ba8 | |
|
c09626f480 | |
|
a67d6fdf06 | |
|
104e08eecd |
|
@ -130,9 +130,10 @@ android {
|
|||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
|
||||
// TODO: Switch from test to prod and vice versa
|
||||
defaultConfig {
|
||||
applicationId "com.test_city.douala3"
|
||||
// applicationId "com.test_city.douala3"
|
||||
applicationId "com.test_city.douala3test"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
missingDimensionStrategy 'react-native-camera', 'general'
|
||||
|
|
Before Width: | Height: | Size: 134 B |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 179 KiB |
Before Width: | Height: | Size: 925 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 489 B |
Before Width: | Height: | Size: 930 B |
Before Width: | Height: | Size: 934 B |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 100 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 134 B |
Before Width: | Height: | Size: 167 B |
Before Width: | Height: | Size: 207 B |
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"WELCOME": "Welcome to iLink World !",
|
||||
"WELCOME": "Welcome to SIM_ba !",
|
||||
"WAITING_LONG": "Waiting for a moment",
|
||||
"HELP": "Help",
|
||||
"SIMPLE_USER": "Simple User",
|
||||
|
@ -136,7 +136,7 @@
|
|||
"QUARTIER_COMMUNE": "Neighborhood in the town",
|
||||
"ARRONDISSEMENT": "Borough",
|
||||
"PATENTE": "Patent",
|
||||
"TVA": "TVA",
|
||||
"TVA": "VAT",
|
||||
"IRPP": "IRPP",
|
||||
"ANNEE_TAXE": "Paid year taxed",
|
||||
"ANNEE_TAXE_N": "Paid year taxed N",
|
||||
|
@ -275,6 +275,8 @@
|
|||
"IMAGE_TAKE": "Image take",
|
||||
"NAME": "Last name(s)",
|
||||
"FIRSTNAME": "First name(s) ",
|
||||
"CIVILITY": "Civility",
|
||||
"NATIONALITY": "Nationality",
|
||||
"NAME_EMETTEUR": "Issuer first name(s)",
|
||||
"EMETTEUR": "Issuer",
|
||||
"FIRSTNAME_EMETTEUR": "Issuer last name(s) ",
|
||||
|
@ -449,7 +451,6 @@
|
|||
"CHOOSE_LANGUAGE": "Choose the language",
|
||||
"MODIFY_PASSWORD": "Forgotten password",
|
||||
"CONTACT": "Contact",
|
||||
"UPDATE": "... update",
|
||||
"FAQ": "FAQ",
|
||||
"UPDATE_POSITION_TEXT": "Update my position",
|
||||
"YOU_ARE": "Are you?",
|
||||
|
@ -536,8 +537,8 @@
|
|||
"MEMBERSHIP_REQUEST": "Membership applications",
|
||||
"HISTORY_TYPE_REQUEST": "Queries",
|
||||
"TREAT": "Processed",
|
||||
"EXIT_TITLE": "Close iLink World!",
|
||||
"EXIT_DESC": "Do you really want to close iLink World?",
|
||||
"EXIT_TITLE": "Close SIM_ba!",
|
||||
"EXIT_DESC": "Do you really want to close SIM_ba?",
|
||||
"NO_TREAT": "Unprocessed",
|
||||
"EXIT": "Close",
|
||||
"PERIOD": "Period",
|
||||
|
@ -550,7 +551,7 @@
|
|||
"ACCOUNT_ACTIVATE_TEXT": "Your account has been activated successfully!",
|
||||
"HISTORY_END": "End",
|
||||
"DONT_VALIDATE_ACCOUNT": "Account not validated",
|
||||
"CONNEXION_SUCCESSFULL_TEXT": "Successful login Welcome to iLink World!",
|
||||
"CONNEXION_SUCCESSFULL_TEXT": "Successful login Welcome to SIM_ba!",
|
||||
"UNVALIDATE_ACCOUNT_TEXT": "Your hypervisor has not yet verified your account",
|
||||
"TEXT_NEED_POSITION": "Please update your location!",
|
||||
"TITLE_NEED_POSITION": "Your location needs to be updated",
|
||||
|
@ -563,12 +564,12 @@
|
|||
"TITLE_PROBLE_COME": "A problem has been encountered",
|
||||
"TITLE_SUPPRESS_CONFIRM": "Confirm deletion",
|
||||
"TEXT_SUPPRESS_CONFIRM": "Do you really want to delete this user ?",
|
||||
"TEXT_ERROR_START_APPLICATION": "An error occurred while starting iLink World, please restart iLink World",
|
||||
"TEXT_UNABLE_TO_GET_YOUR_POSITION": "Unable to retrieve your location, please make sure your GPS is enabled and restart iLink World",
|
||||
"TEXT_ERROR_START_APPLICATION": "An error occurred while starting SIM_ba, please restart SIM_ba",
|
||||
"TEXT_UNABLE_TO_GET_YOUR_POSITION": "Unable to retrieve your location, please make sure your GPS is enabled and restart SIM_ba",
|
||||
"RESTART": "REPEAT",
|
||||
"TEXT_UNABLE_TO_GET_COUNTRY_INFO": "Unable to retrieve information from your country, check your internet connection, click \" Ok \"to try again,",
|
||||
"TITLE_UNABLE_TO_AUTORISE": "Failed to Authorize",
|
||||
"MISSING_AUTORISATION_LOCATION": "iLink World is not authorized to access your location, please allow iLink World to access your location and restart iLink World",
|
||||
"MISSING_AUTORISATION_LOCATION": "SIM_ba is not authorized to access your location, please allow SIM_ba to access your location and restart SIM_ba",
|
||||
"TEXT_FORGOTTEN_PASSWORD": "Enter your username, we will send you a new password",
|
||||
"TEXT_NETWORK_UNABLE": "Network not available, want to try again?",
|
||||
"LOADING_TEXT_MARKERS": "More points",
|
||||
|
@ -577,7 +578,7 @@
|
|||
"NO_POINT_FOUND": "No points found ",
|
||||
"LAUNCH_POINT_WITH_FILTER": "Do you want to restart the search within a radius of ",
|
||||
"UNABLE_GET_INFORMATION": "Problem of retrieval of information",
|
||||
"UNABLE_GET_INFORMATION_TEXT": "Make sure your GPS is turned on and put in high precision mode and restart iLink World",
|
||||
"UNABLE_GET_INFORMATION_TEXT": "Make sure your GPS is turned on and put in high precision mode and restart SIM_ba",
|
||||
"TITLE_HELP_SOON": "Help not available!",
|
||||
"YOUR_NETWORK": "Select your network",
|
||||
"YOUR_NETWORK_SELECTED": "Your network",
|
||||
|
@ -600,11 +601,10 @@
|
|||
"UPDATE_DATE": "Date updated",
|
||||
"ASSIGN_TO_AGENT": "Assign to an agent",
|
||||
"AVIS_MODIFY_SUCCESS": "Notice successfully amended",
|
||||
"ORDRE_RECETTE_SUCCES": "Recipe order entered successfully",
|
||||
"NUMERO_QUITANCE_SUCCES": "Successful receipt number",
|
||||
"ORDRE_RECETTE_MODIFY_SUCCES": "Recipe order number successfully changed",
|
||||
"NUMERO_QUITANCE_MODIFY_SUCCES": "Receipt number changed successfully",
|
||||
"TAXES_SUR_LA_PROPRETE": "Tax on cleanliness",
|
||||
"TAXES_SUR_LA_PROPRETE": "Synthetic general tax *",
|
||||
"SAVE": "Save",
|
||||
"TEXT_SUPPRESS_CONFIRM_TAXE": "Are you sure you want to remove this tax?",
|
||||
"NUMERO_QUITANCE": "Receipt number",
|
||||
|
@ -631,12 +631,10 @@
|
|||
"PAYMENT_DEADLINE": "Payment deadline",
|
||||
"TAX_NOTICE_CREATED_AT": "Tax notice created at",
|
||||
"TOTAL_AMOUNT": "Total amount",
|
||||
"UPDATE_DATE": "Update date",
|
||||
"YEAR": "Year",
|
||||
"TYPE": "Type",
|
||||
"CODE_MEMBRE": "Sponsor code",
|
||||
"DISTRICT": "District",
|
||||
"IDENTIFICATION_NUMBER": "Identification number",
|
||||
"MUNICIPALITY": "Municipality",
|
||||
"ID_PATENTE": "ID patent",
|
||||
"NETWORK_ID": "Network ID",
|
||||
|
@ -649,7 +647,7 @@
|
|||
"PRINCIPAL_AMOUNT": "Principal amount",
|
||||
"DATE_AVIS_IMPOSITION": "Tax notice date",
|
||||
"TEXT_NETWORK_UNABLE_CHOOSE_ANOTHER": "This network is inactive, please choose another",
|
||||
"ENTER_SPONSOR_CODE": "Renseignez votre code parrain",
|
||||
"ENTER_SPONSOR_CODE": "Renseignez votre code hiérarchique ou taxe",
|
||||
"NOM_SOCIETE": "Society name",
|
||||
"TAKE_My_POSITION": "Retreive position",
|
||||
"CREATE_ACTIF": "Create asset",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"WELCOME": "Bienvenue sur iLink City !",
|
||||
"WELCOME": "Bienvenue sur SIM_ba Mobile !",
|
||||
"WAITING_LONG": "Veuillez patienter un instant",
|
||||
"HELP": "Aide",
|
||||
"SIMPLE_USER": "Utilisateur simple",
|
||||
|
@ -148,9 +148,9 @@
|
|||
"ANNEE_TAXE_N_1": "Année taxé payée N-1",
|
||||
"ANNEE_TAXE_N_2": "Année taxé payée N-2",
|
||||
"TYPE_ACTIVITE": "Type d'activité",
|
||||
"TECHNICAL_AGREMENT": "Agrément technique",
|
||||
"IMMATRICULATION_DGI": "Immatriculation DGI",
|
||||
"INFORMATION_FICHE_CIRCUIT": "Information fiche circuit",
|
||||
"TECHNICAL_AGREMENT": "Agrément technique ou Licence",
|
||||
"IMMATRICULATION_DGI": "NIU",
|
||||
"INFORMATION_FICHE_CIRCUIT": "Fiche d'identification",
|
||||
"OTHERS_INFORMATIONS": "Autres informations",
|
||||
"CREATE_GROUP": "Créer un groupe",
|
||||
"MANAGE_GROUP": "Gérer le groupe",
|
||||
|
@ -285,6 +285,8 @@
|
|||
"IMAGE_TAKE": "Prise d'image",
|
||||
"NAME": "Nom(s)",
|
||||
"FIRSTNAME": "Prénom(s) ",
|
||||
"CIVILITY": "Civilité",
|
||||
"NATIONALITY": "Nationalité",
|
||||
"NAME_EMETTEUR": "Nom(s) émetteur",
|
||||
"EMETTEUR": "Emetteur",
|
||||
"FIRSTNAME_EMETTEUR": "Prénom(s) émetteur",
|
||||
|
@ -301,15 +303,15 @@
|
|||
"SUPER_ADMIN": "Super administrateur",
|
||||
"GEOLOCATED": "Agent géo-localisé",
|
||||
"DELETE_GEOLOCATED_USER": "Supprimer",
|
||||
"ADDRESS": "Adresse",
|
||||
"ADDRESS": "Adresse EX:TotalEnergies Bonateki",
|
||||
"CREDIT": "Crédit",
|
||||
"NEXT": "Suivant",
|
||||
"PREVIOUS": "Précédent",
|
||||
"SPONSOR_CODE": "Code réseau de taxe",
|
||||
"CODE_PARRAIN": "Code parrain",
|
||||
"SPONSOR_CODE": "Code classe de taxes",
|
||||
"CODE_PARRAIN": "Code hiérarchique ou taxe",
|
||||
"CODE_SPONSOR": "Code sponsor",
|
||||
"SOLDE_UNVAIBLE": "solde non disponible",
|
||||
"TEXT_BIG_CREATE_AGENT_1": "Inscrivez-vous en tant qu'agent",
|
||||
"TEXT_BIG_CREATE_AGENT_1": "Créer un acteur",
|
||||
"EMAIL": "Email",
|
||||
"COUNTRY": "Pays",
|
||||
"LOADING_INFO": "Chargement des informations...",
|
||||
|
@ -384,7 +386,7 @@
|
|||
"OK": "OK",
|
||||
"SIMPLE": "Simple",
|
||||
"BLOCKED": "Bloqué",
|
||||
"APP_FULLNAME": "Ilink City",
|
||||
"APP_FULLNAME": "SIM_ba Mobile",
|
||||
"GUIDE_TITLE": "Bienvenue dans le Guide de",
|
||||
"GUIDE_USER_SIMPLE": "Guide pour un utilisateur",
|
||||
"GUIDE_AGENT": "Guide pour un agent",
|
||||
|
@ -424,9 +426,9 @@
|
|||
"TEXT_GUIDE_USER_11": "Cliquez sur l'option de profil pour avoir des informations lier à votre compte",
|
||||
"CATEGORY": "Catégorie",
|
||||
"WAY": "Itinéraire",
|
||||
"ADD_NETWORK": "Ajouter réseau de taxe",
|
||||
"ADD_NETWORK": "Ajouter une classe de taxes",
|
||||
"POINT_NUMBER": "Nombres de points",
|
||||
"SUPERIOR_CODE": "Code parrain",
|
||||
"SUPERIOR_CODE": "Code hiérarchique ou taxe",
|
||||
"ADD_SUCCES": "Ajout reussi",
|
||||
"ADD_SUCCESS_TEXT": "La taxe a été ajoutée avec succès ",
|
||||
"MEMBER_CODE": "Code membre",
|
||||
|
@ -457,7 +459,6 @@
|
|||
"CHOOSE_LANGUAGE": "Choisir la langue",
|
||||
"MODIFY_PASSWORD": "Mot de passe oublié",
|
||||
"CONTACT": "Contact",
|
||||
"UPDATE": "... mise à jour",
|
||||
"FAQ": "FAQ",
|
||||
"UPDATE_POSITION_TEXT": "Mettre à jour ma position",
|
||||
"YOU_ARE": "Vous êtes ?",
|
||||
|
@ -543,8 +544,8 @@
|
|||
"MEMBERSHIP_REQUEST": "Demandes d'adhésion",
|
||||
"HISTORY_TYPE_REQUEST": "Requêtes",
|
||||
"TREAT": "Traité",
|
||||
"EXIT_TITLE": "Fermer iLink City !",
|
||||
"EXIT_DESC": "Voulez-vous vraiment fermer iLink City ?",
|
||||
"EXIT_TITLE": "Fermer SIM_ba Mobile !",
|
||||
"EXIT_DESC": "Voulez-vous vraiment fermer SIM_ba Mobile ?",
|
||||
"NO_TREAT": "Non traité",
|
||||
"EXIT": "Fermer",
|
||||
"PERIOD": "Période",
|
||||
|
@ -557,7 +558,7 @@
|
|||
"ACCOUNT_ACTIVATE_TEXT": "Votre compte a été activé avec succès !",
|
||||
"HISTORY_END": "Fin",
|
||||
"DONT_VALIDATE_ACCOUNT": "Compte non validé",
|
||||
"CONNEXION_SUCCESSFULL_TEXT": "Connexion réussie. Bienvenue dans iLink City ! ",
|
||||
"CONNEXION_SUCCESSFULL_TEXT": "Connexion réussie. Bienvenue dans SIM_ba Mobile ! ",
|
||||
"UNVALIDATE_ACCOUNT_TEXT": "Votre hyperviseur n'a pas encore validé votre compte",
|
||||
"TEXT_NEED_POSITION": "Veuillez mettre à jour votre position !",
|
||||
"TITLE_NEED_POSITION": "Votre position doit être mise à jour",
|
||||
|
@ -570,12 +571,12 @@
|
|||
"TITLE_PROBLE_COME": "Un problème a été rencontré",
|
||||
"TITLE_SUPPRESS_CONFIRM": "Confirmation de suppression",
|
||||
"TEXT_SUPPRESS_CONFIRM": "Voulez vous vraiment supprimer cet utilisateur ?",
|
||||
"TEXT_ERROR_START_APPLICATION": "Une erreur est survenue au démarrage de iLink City. Veuillez relancer iLink City",
|
||||
"TEXT_UNABLE_TO_GET_YOUR_POSITION": "Impossible de recupérez votre position. Veuillez verifier que votre GPS est activé et relancez iLink City",
|
||||
"TEXT_ERROR_START_APPLICATION": "Une erreur est survenue au démarrage de SIM_ba Mobile. Veuillez relancer SIM_ba Mobile",
|
||||
"TEXT_UNABLE_TO_GET_YOUR_POSITION": "Impossible de recupérez votre position. Veuillez verifier que votre GPS est activé et relancez SIM_ba Mobile",
|
||||
"RESTART": "RECOMMENCER",
|
||||
"TEXT_UNABLE_TO_GET_COUNTRY_INFO": "Impossible de recupérer les informations de votre pays. Verifiez votre connexion internet ! cliquez sur \"Ok\" pour reessayer",
|
||||
"TITLE_UNABLE_TO_AUTORISE": "Echec de l'autorisation",
|
||||
"MISSING_AUTORISATION_LOCATION": "iLink City n'est pas autorisé à acceder à votre position. Veuillez autoriser iLink City à accéder à votre localisation et relancez iLink City",
|
||||
"MISSING_AUTORISATION_LOCATION": "SIM_ba Mobile n'est pas autorisé à acceder à votre position. Veuillez autoriser SIM_ba Mobile à accéder à votre localisation et relancez SIM_ba Mobile",
|
||||
"TEXT_FORGOTTEN_PASSWORD": "Saisissez votre identifiant,nous vous enverrons un nouveau mot de passe\n",
|
||||
"TEXT_NETWORK_UNABLE": "Réseau non disponible, voulez vous réessayer ?",
|
||||
"LOADING_TEXT_MARKERS": "Suite des points ",
|
||||
|
@ -584,10 +585,10 @@
|
|||
"LAUNCH_POINT_WITH_FILTER": "Voulez-vous relancer la recherche dans un rayon de ",
|
||||
"LOADING_TEXT_MARKERS_2": "autour",
|
||||
"UNABLE_GET_INFORMATION": "Problème de récuperation des Informations",
|
||||
"UNABLE_GET_INFORMATION_TEXT": "Vérifiez que votre GPS est activé et mis en mode haute precision et relancez iLink City",
|
||||
"UNABLE_GET_INFORMATION_TEXT": "Vérifiez que votre GPS est activé et mis en mode haute precision et relancez SIM_ba Mobile",
|
||||
"TITLE_HELP_SOON": "Aide non disponible !",
|
||||
"YOUR_NETWORK": "Sélectionner votre réseau",
|
||||
"YOUR_NETWORK_SELECTED": "Votre réseau",
|
||||
"YOUR_NETWORK_SELECTED": "Classe de la taxe",
|
||||
"UNIT_PER_TAXE_UNIT_COUNT": "Taxe par unité",
|
||||
"HELP_SOON": "Un tutoriel vous aidant dans la compréhension des fonctionnalités de l'application vous sera bientôt mis à disposition.",
|
||||
"UPLOAD_PHOTO": "Chargement de la photo",
|
||||
|
@ -598,23 +599,21 @@
|
|||
"ORDRE_RECETTE": "Ordre recette",
|
||||
"NO_ORDRE_RECETTE": "Aucun ordre de recette",
|
||||
"MODIFICATION_ORDRE_RECETTE": "Modifier ordre recette",
|
||||
"SAISIE_NUMERO_QUITANCE": "Saisir numéro quitance",
|
||||
"MODIFICATION_NUMERO_QUITANCE": "Modifier numéro quitance",
|
||||
"SAISIR_QUITANCE": "Saisir quitance",
|
||||
"SAISIE_NUMERO_QUITANCE": "Saisir numéro quittance",
|
||||
"MODIFICATION_NUMERO_QUITANCE": "Modifier numéro quittance",
|
||||
"SAISIR_QUITANCE": "Saisir paiement ou quittance",
|
||||
"CODE_AGENT": "Code agent ",
|
||||
"AVIS_IMPOSITION": "Déclaration",
|
||||
"AGENT_INFORMATION": "Informations sur l'agent",
|
||||
"UPDATE_DATE": "Date de mis à jour",
|
||||
"ASSIGN_TO_AGENT": "Assigner à un agent",
|
||||
"AVIS_MODIFY_SUCCESS": "Avis modifié avec succès",
|
||||
"ORDRE_RECETTE_SUCCES": "Ordre de recette saisi avec succès",
|
||||
"NUMERO_QUITANCE_SUCCES": "Numéro de quitance enregistré avec succès",
|
||||
"NUMERO_QUITANCE_SUCCES": "Numéro de quittance enregistré avec succès",
|
||||
"ORDRE_RECETTE_MODIFY_SUCCES": "Numéro ordre de recette modifié avec succès",
|
||||
"NUMERO_QUITANCE_MODIFY_SUCCES": "Numéro de quitance modifié avec succès",
|
||||
"TAXES_SUR_LA_PROPRETE": "Taxe sur la propreté",
|
||||
"NUMERO_QUITANCE_MODIFY_SUCCES": "Numéro de quittance modifié avec succès",
|
||||
"TAXES_SUR_LA_PROPRETE": "Impôt général synthétique *",
|
||||
"SAVE": "Enregistrer",
|
||||
"TEXT_SUPPRESS_CONFIRM_TAXE": "Voulez vous vraiment supprimer cette taxe?",
|
||||
"NUMERO_QUITANCE": "Numéro quitance",
|
||||
"NUMERO_QUITANCE": "Numéro quittance",
|
||||
"QUITANCE": "Quitance",
|
||||
"ORDRE_DE_RECETTE": "Ordre de recette",
|
||||
"MODIFY_ORDRE_DE_RECETTE": "Modifier ordre de recette",
|
||||
|
@ -643,12 +642,11 @@
|
|||
"TYPE": "Type",
|
||||
"CODE_MEMBRE": "Code sponsor",
|
||||
"DISTRICT": "District",
|
||||
"IDENTIFICATION_NUMBER": "Numéro d'identification",
|
||||
"MUNICIPALITY": "Municipalité",
|
||||
"ID_PATENTE": "ID patente",
|
||||
"NETWORK_ID": "ID du réseau",
|
||||
"NEIGHTBORHOOD": "Quartier",
|
||||
"ORDRE_RECETTE_RECEIPT": "Recette et quitance",
|
||||
"ORDRE_RECETTE_RECEIPT": "Recette et quittance",
|
||||
"HISTORY_OF": "Historique des",
|
||||
"AVIS_IMPOSITIONS": "déclarations",
|
||||
"ORDRE_RECETTES_RECEIPTS": "recettes et quitances",
|
||||
|
@ -656,7 +654,7 @@
|
|||
"PRINCIPAL_AMOUNT": "Montant principal",
|
||||
"DATE_AVIS_IMPOSITION": "Date avis imposition",
|
||||
"TEXT_NETWORK_UNABLE_CHOOSE_ANOTHER": "Ce réseau n'est pas actif, veuillez choisir un autre",
|
||||
"ENTER_SPONSOR_CODE": "Renseignez votre code parrain",
|
||||
"ENTER_SPONSOR_CODE": "Renseignez votre code hiérarchique ou taxe",
|
||||
"NOM_SOCIETE": "Nom de la société",
|
||||
"TAKE_My_POSITION": "Récupération de votre position",
|
||||
"CREATE_ACTIF": "Créer un actif",
|
||||
|
@ -692,7 +690,6 @@
|
|||
"ACTIF": "actif",
|
||||
"ACTIFS": "actifs",
|
||||
"TAXE_INFORMATION": "Informations sur la déclaration",
|
||||
"ACTIFS": "actifs",
|
||||
"NUMERO_AVIS_IMPOSITION": "N° déclaration",
|
||||
"ADD_ORDRE_RECETTE": "Ajouter un ordre de recette",
|
||||
"PENALITE_ON_TAXE": "Pénalité sur les taxes",
|
||||
|
@ -705,14 +702,14 @@
|
|||
"DELETE_PENALITE": "Supprimer la pénalité",
|
||||
"TAUX_PENALITE": "Taux de pénalité (%)",
|
||||
"TAUX": "Taux",
|
||||
"NO_ORDRE_RECETTE_WITH_QUITANCE": "Aucun ordre de recette sans quitance",
|
||||
"NO_ORDRE_RECETTE_WITH_QUITANCE": "Aucun ordre de recette sans quittance",
|
||||
"SAVE_PENALITY": "Taux",
|
||||
"SAISIE_PENALITY": "Saisie des pénalités",
|
||||
"MODIFICATION_SAISIE_PENALITY": "Modification/Suppression",
|
||||
"YOU_HAVE_DEFINED_PENALITY_FOR_THIS_YEAR": "Vous avez déjà définit une pénalité pour les années suivantes:",
|
||||
"AMOUNT_ORDRE_RECETTE": "Montant de l'ordre de recette",
|
||||
"AMOUNT_TAX_NOTICE": "Montant de la déclaration",
|
||||
"YOU_CANT_DELETE_LAST_TAX_NOTICE": "Une quitance doit contenir au moins un ordre de recette",
|
||||
"YOU_CANT_DELETE_LAST_TAX_NOTICE": "Une quittance doit contenir au moins un ordre de recette",
|
||||
"WOULD_YOU_WANT_SEARCH_BY_NAME": "Voulez-vous rechercher l'usager par son nom ?",
|
||||
"USAGER_NAME": "Nom de l'usager",
|
||||
"NO_USAGER_CORRESPONDING_TO_SEARCH": "Aucun usager ne correspond à votre recherche",
|
||||
|
@ -727,9 +724,8 @@
|
|||
"PENALITE_INCLUSE": "Pénalité incluse",
|
||||
"SOINS": "Soins",
|
||||
"INVOICE": "Facture",
|
||||
"ORDRE_RECETTE_QUITANCE": "Ordre et quitance",
|
||||
"ORDRE_RECETTE_QUITANCE": "Ordre et quittance",
|
||||
"ID": "ID",
|
||||
"CONNEXION_CHOICE": "Choix de connexion",
|
||||
"CONNEXION_CHOICE_DESCRIPTION": "Un compte agent de recharge est associé à votre numéro. Voulez vous continuer en tant que agent recharge ?"
|
||||
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
<resources>
|
||||
<string name="app_name">Douala3 Test</string>
|
||||
<!-- TODO: Switch from test to prod and vice versa -->
|
||||
<string name="app_name">Test SIM_ba mobile CAD3</string>
|
||||
<!-- <string name="app_name">SIM_ba mobile CAD3</string> -->
|
||||
</resources>
|
||||
|
|
After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 47 KiB |
|
@ -324,7 +324,7 @@ const WebviewScreen = ({
|
|||
const params = queryString.parse(webViewState.url);
|
||||
|
||||
let transaction_id = '';
|
||||
let token = '';
|
||||
let token = null;
|
||||
const keys = Object.keys(params);
|
||||
keys.forEach(elt => {
|
||||
if (elt.includes('transaction_id')) transaction_id = params[elt];
|
||||
|
|
|
@ -19,6 +19,7 @@ import {ProgressDialog} from "react-native-simple-dialogs";
|
|||
import axios from "axios";
|
||||
import {uploadImage} from "../../webservice/IlinkConstants";
|
||||
import Dialog from "react-native-dialog";
|
||||
import FilteredList from "../login/FilteredList ";
|
||||
|
||||
let theme = require('./../../utils/theme.json');
|
||||
|
||||
|
@ -115,7 +116,10 @@ export default class AddNetwork extends Component {
|
|||
displayImage: false,
|
||||
loadingUpload: false,
|
||||
item: this.props.navigation.getParam("item", null),
|
||||
password: null
|
||||
password: null,
|
||||
neighborhood: null,
|
||||
building_value: [],
|
||||
built: [false]
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -219,6 +223,14 @@ export default class AddNetwork extends Component {
|
|||
}
|
||||
|
||||
renderTaxesDropdown = (index) => {
|
||||
const selectedNeighbourhood = this.state.result && this.state.result.neighborhoods
|
||||
? this.state.result.neighborhoods.find(n => n.name === this.state.neighborhood)
|
||||
: null;
|
||||
const mercurialValue = selectedNeighbourhood
|
||||
? (this.state.built[index]
|
||||
? selectedNeighbourhood.mercur_built_value
|
||||
: selectedNeighbourhood.mercur_unbuilt_value)
|
||||
: null;
|
||||
return (
|
||||
<>
|
||||
<Animatable.View key={index}>
|
||||
|
@ -348,6 +360,65 @@ export default class AddNetwork extends Component {
|
|||
</> :
|
||||
null
|
||||
}
|
||||
{
|
||||
!isNil(this.state.taxes_selected[index]) &&
|
||||
this.state.taxes_selected[index].name?.toLowerCase() === 'taxe sur la propriété' && (
|
||||
<>
|
||||
<Animatable.View>
|
||||
<View
|
||||
style={{
|
||||
width: responsiveWidth(90),
|
||||
alignSelf: 'center',
|
||||
backgroundColor: 'white',
|
||||
borderRadius: 10,
|
||||
marginTop: 20,
|
||||
paddingLeft: 20,
|
||||
paddingRight: 20,
|
||||
}}>
|
||||
<Dropdown
|
||||
label={I18n.t('BUILDING_CONSTRUCTED')}
|
||||
data={[{value: 'Non'}, {value: 'Oui'}]}
|
||||
value={this.state.built[index] ? 'Oui' : 'Non'}
|
||||
onChangeText={value => {
|
||||
const built = [...this.state.built];
|
||||
built[index] = value === 'Oui';
|
||||
this.setState({built});
|
||||
}}
|
||||
/>
|
||||
</View>
|
||||
</Animatable.View>
|
||||
{mercurialValue != null && (
|
||||
<Text
|
||||
style={{
|
||||
marginTop: 5,
|
||||
marginLeft: responsiveWidth(6),
|
||||
fontSize: 16,
|
||||
color: '#fff',
|
||||
}}>
|
||||
{`${I18n.t('MERCURIAL_VALUE')}: ${mercurialValue}`}
|
||||
</Text>
|
||||
)}
|
||||
{this.state.built[index] && (
|
||||
<Animatable.View>
|
||||
<Fumi
|
||||
iconClass={FontAwesomeIcon}
|
||||
iconName="building"
|
||||
label={I18n.t('CONSTRUCTION_VALUE')}
|
||||
iconColor="#f95a25"
|
||||
iconSize={20}
|
||||
keyboardType="decimal-pad"
|
||||
style={styles.input}
|
||||
onChangeText={value => {
|
||||
const building_value = [...this.state.building_value];
|
||||
building_value[index] = value;
|
||||
this.setState({building_value});
|
||||
}}
|
||||
/>
|
||||
</Animatable.View>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
}
|
||||
{
|
||||
!isNil(this.state.taxes_selected[index]) ?
|
||||
this.state.taxes_selected[index].billing_period === 'jour' &&
|
||||
|
@ -408,6 +479,9 @@ export default class AddNetwork extends Component {
|
|||
|
||||
|
||||
render() {
|
||||
const hasPropertyTax = this.state.taxes_selected.some(
|
||||
t => t && t.name?.toLowerCase() === 'taxe sur la propriété'
|
||||
);
|
||||
return (
|
||||
<View style={style.container}>
|
||||
<StatusBar
|
||||
|
@ -419,8 +493,11 @@ export default class AddNetwork extends Component {
|
|||
{this.state.loadingUpload && this.renderLoader()}
|
||||
<ScrollView style={{flex: 1, paddingTop: 30}}>
|
||||
<View style={style.appContainer}>
|
||||
<Image source={require('../../assets/img/icon3.png')}
|
||||
style={{width: responsiveWidth(90), resizeMode: "contain"}}/>
|
||||
<Image source={require('../../assets/img/icon3.png')}
|
||||
style={{width: responsiveWidth(90), resizeMode: "contain",
|
||||
height: responsiveHeight(16), // Delete this line if the image size sucks and change the width and the height of icon3.png to 257 x 112
|
||||
|
||||
}}/>
|
||||
</View>
|
||||
|
||||
<Text style={style.title}>{I18n.t('ADD_NETWORK')}</Text>
|
||||
|
@ -440,6 +517,17 @@ export default class AddNetwork extends Component {
|
|||
</> :
|
||||
<>
|
||||
{this.renderTaxesDropdown(0)}
|
||||
{hasPropertyTax && (
|
||||
<Animatable.View>
|
||||
<FilteredList
|
||||
items={this.state.result.neighborhoods}
|
||||
placeholder={I18n.t('FIND_A_NEIGHBORHOOD')}
|
||||
onItemSelect={selectedItem => {
|
||||
this.setState({neighborhood: selectedItem.name});
|
||||
}}
|
||||
/>
|
||||
</Animatable.View>
|
||||
)}
|
||||
{
|
||||
this.state.tabTaxe.map((element, index) => (
|
||||
index > 0 &&
|
||||
|
@ -493,6 +581,7 @@ export default class AddNetwork extends Component {
|
|||
this.setState({isLoading: false});
|
||||
});
|
||||
} else {
|
||||
console.log("ICI===>")
|
||||
if (this.ckeckIfFieldIsOK(this.state.password))
|
||||
this.passwordAnim.shake(800);
|
||||
else
|
||||
|
@ -513,26 +602,38 @@ export default class AddNetwork extends Component {
|
|||
for (let i = 0; i < this.state.tabTaxe.length; i++) {
|
||||
if (this.state.taxes_selected[i].hasOwnProperty("id")) {
|
||||
if (this.state.taxes_selected[i].has_image_capture === "1") {
|
||||
taxes_to_send.push({
|
||||
let taxe = {
|
||||
has_image_capture: this.state.taxes_selected[i].has_image_capture,
|
||||
image: this.state.taxes_selected[i].image,
|
||||
id_network_tax: this.state.taxes_selected[i].id,
|
||||
name: this.state.taxes_selected[i].name,
|
||||
tax_units_count: isNil(this.state.tax_units_count[i]) ? null : this.state.tax_units_count[i],
|
||||
units_per_tax_unit_count: isNil(this.state.units_per_tax_unit_count[i]) ? null : this.state.units_per_tax_unit_count[i],
|
||||
number_of_days: isNil(this.state.number_of_days[i]) ? null : this.state.number_of_days[i],
|
||||
});
|
||||
};
|
||||
if (this.state.taxes_selected[i].name?.toLowerCase() === 'taxe sur la propriété') {
|
||||
taxe.building_value = isNil(this.state.building_value[i]) ? null : this.state.building_value[i];
|
||||
taxe.built = this.state.built[i];
|
||||
}
|
||||
taxes_to_send.push(taxe);
|
||||
} else {
|
||||
taxes_to_send.push({
|
||||
let taxe = {
|
||||
has_image_capture: this.state.taxes_selected[i].has_image_capture,
|
||||
id_network_tax: this.state.taxes_selected[i].id,
|
||||
name: this.state.taxes_selected[i].name,
|
||||
tax_units_count: isNil(this.state.tax_units_count[i]) ? null : this.state.tax_units_count[i],
|
||||
units_per_tax_unit_count: isNil(this.state.units_per_tax_unit_count[i]) ? null : this.state.units_per_tax_unit_count[i],
|
||||
number_of_days: isNil(this.state.number_of_days[i]) ? null : this.state.number_of_days[i],
|
||||
});
|
||||
};
|
||||
if (this.state.taxes_selected[i].name?.toLowerCase() === 'taxe sur la propriété') {
|
||||
taxe.building_value = isNil(this.state.building_value[i]) ? null : this.state.building_value[i];
|
||||
taxe.built = this.state.built[i];
|
||||
}
|
||||
taxes_to_send.push(taxe);
|
||||
}
|
||||
}
|
||||
}
|
||||
let res = await AssignAgentGeo(validateCode, enterPhone, taxes_to_send, item.id_agent, password, item.id);
|
||||
let res = await AssignAgentGeo(validateCode, enterPhone, taxes_to_send, item.id_agent, password, item.id, this.state.neighborhood);
|
||||
this.setState({isLoading: false});
|
||||
if (res) {
|
||||
if (res['success'] !== undefined) {
|
||||
|
@ -596,8 +697,8 @@ const style = StyleSheet.create({
|
|||
marginTop: 20,
|
||||
borderColor: 'transparent',
|
||||
backgroundColor: theme.primaryDarkAdvanced,
|
||||
height: responsiveHeight(8)
|
||||
|
||||
height: responsiveHeight(8),
|
||||
marginBottom: responsiveHeight(8) // espace ajouté en bas
|
||||
},
|
||||
appContainer: {
|
||||
flexDirection: 'row',
|
||||
|
|
|
@ -52,7 +52,10 @@ export default class About extends React.Component {
|
|||
|
||||
<View style={{ flex: 6, alignItems: "center", justifyContent: "space-evenly" }}>
|
||||
<Image resizeMode="contain" style={{ width: responsiveWidth(50), height: responsiveHeight(20) }} source={require("../../assets/img/ilinklogo.png")} />
|
||||
<Image resizeMode="contain" style={{ width: responsiveWidth(90) }} source={require("../../assets/img/icon3.png")} />
|
||||
<Image resizeMode="contain" style={{ width: responsiveWidth(90),
|
||||
height: responsiveHeight(16), // Delete this line if the image size sucks and change the width and the height of icon3.png to 257 x 112
|
||||
|
||||
}} source={require("../../assets/img/icon3.png")} />
|
||||
<Text style={{ color: "white", margin: 10, fontSize: 15, alignSelf: "center" }}>{I18n.t("ABOUT_TEXT")}</Text>
|
||||
|
||||
</View>
|
||||
|
|
|
@ -105,6 +105,7 @@ const styles = StyleSheet.create({
|
|||
},
|
||||
img_style: {
|
||||
resizeMode: 'contain',
|
||||
width: responsiveWidth(90)
|
||||
width: responsiveWidth(90),
|
||||
height: responsiveHeight(16), // Delete this line if the image size sucks and change the width and the height of icon3.png to 257 x 112
|
||||
}
|
||||
});
|
||||
|
|
|
@ -521,8 +521,9 @@ class Home extends BaseScreen {
|
|||
}
|
||||
|
||||
createUsagerAccounts = (usagers) => {
|
||||
console.log("createGeolocatedAccounts===>>",JSON.stringify(usagers));
|
||||
createGeolocatedAccounts(usagers).then((result) => {
|
||||
console.log("result", result);
|
||||
console.log("resultcreateGeolocatedAccounts===>>", result);
|
||||
this.setState({displaySynchronizeLoader: false});
|
||||
|
||||
if (!_.isNil(result)) {
|
||||
|
@ -556,6 +557,7 @@ class Home extends BaseScreen {
|
|||
}
|
||||
|
||||
createActifsAccounts = (actifs) => {
|
||||
console.log("createActifsAccounts===>>",actifs)
|
||||
saveActifsSociety(actifs).then((result) => {
|
||||
console.log("result", result);
|
||||
this.setState({displaySynchronizeLoader: false});
|
||||
|
@ -634,6 +636,7 @@ class Home extends BaseScreen {
|
|||
usagersToSend.push(usagersToSave[index].data);
|
||||
|
||||
if (usagersToSend.length === (usagersToSave.filter((usager) => !usager.isSaved)).length) {
|
||||
console.log("Isco2===>>", usagersToSend);
|
||||
this.createUsagerAccounts(usagersToSend);
|
||||
}
|
||||
console.warn("USAGERS FORMATE", usagersToSave);
|
||||
|
@ -663,6 +666,7 @@ class Home extends BaseScreen {
|
|||
usagersToSend.push(usagersToSave[index].data);
|
||||
|
||||
if (usagersToSend.length === (usagersToSave.filter((usager) => !usager.isSaved)).length) {
|
||||
console.log("Isco3===>>", usagersToSend);
|
||||
this.createUsagerAccounts(usagersToSend);
|
||||
}
|
||||
console.warn("USAGERS FORMATE", usagersToSave);
|
||||
|
@ -673,9 +677,10 @@ class Home extends BaseScreen {
|
|||
} else
|
||||
usagersToSend.push(usagersToSave[index].data);
|
||||
|
||||
if (usagersToSend.length === (usagersToSave.filter((usager) => !usager.isSaved)).length) {
|
||||
this.createUsagerAccounts(usagersToSend);
|
||||
}
|
||||
// if (usagersToSend.length === (usagersToSave.filter((usager) => !usager.isSaved)).length) {
|
||||
// console.log("Isco4===>>", usagersToSend);
|
||||
// this.createUsagerAccounts(usagersToSend);
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
@ -686,6 +691,7 @@ class Home extends BaseScreen {
|
|||
console.log("Usagers to save length", (usagersToSave.filter((usager) => !usager.isSaved)).length);
|
||||
|
||||
if (usagersToSend.length === (usagersToSave.filter((usager) => !usager.isSaved)).length) {
|
||||
console.log("Isco5===>>", usagersToSend);
|
||||
this.createUsagerAccounts(usagersToSend);
|
||||
}
|
||||
}
|
||||
|
@ -720,6 +726,8 @@ class Home extends BaseScreen {
|
|||
actif.data.taxes.map((taxe, indexTaxe) => {
|
||||
console.log("Usagers to send length", actifsToSend.length);
|
||||
console.log("Usagers To save", actifsToSave.filter((usager) => !usager.isSaved).length);
|
||||
console.log("taxe.has_image_capture", taxe.has_image_capture);
|
||||
console.log("taxe.has_image_capture", taxe.has_image_capture === "1");
|
||||
if (taxe.has_image_capture === "1") {
|
||||
this.createFormData(taxe.image);
|
||||
this.uploadImage().then((response) => {
|
||||
|
@ -738,6 +746,8 @@ class Home extends BaseScreen {
|
|||
});
|
||||
} else {
|
||||
actifsToSend.push(actif.data);
|
||||
console.log("actifsToSend.push===>>",actif.data)
|
||||
console.log("actifsToSend.length === (actifsToSave.filter((usager) => !usager.isSaved)).length",actifsToSend.length === (actifsToSave.filter((usager) => !usager.isSaved)).length)
|
||||
if (actifsToSend.length === (actifsToSave.filter((usager) => !usager.isSaved)).length)
|
||||
this.createActifsAccounts(actifsToSend);
|
||||
}
|
||||
|
@ -2423,109 +2433,130 @@ class Home extends BaseScreen {
|
|||
)
|
||||
}
|
||||
|
||||
renderSearchUser() {
|
||||
renderSearchUser() {
|
||||
return (
|
||||
<MaterialDialog
|
||||
title={I18n.t("SEARCH")}
|
||||
visible={this.state.dialogSearchUser}
|
||||
onCancel={() => this.setState({dialogSearchUser: false})}
|
||||
onOk={result => {
|
||||
if(this.state.isPhoneAssureSearch) {
|
||||
this.props.searchUserAction({
|
||||
dial_code: this.state.indicatif,
|
||||
phone: this.state.userName,
|
||||
|
||||
}, true);
|
||||
} else {
|
||||
this.props.searchUserAction({
|
||||
dial_code: this.state.indicatif,
|
||||
name: this.state.userName,
|
||||
}, true);
|
||||
}
|
||||
|
||||
this.setState({dialogSearchUser: false});
|
||||
|
||||
}}
|
||||
title={I18n.t("SEARCH")}
|
||||
visible={this.state.dialogSearchUser}
|
||||
onCancel={() => this.setState({ dialogSearchUser: false })}
|
||||
onOk={() => {
|
||||
console.log(
|
||||
"On ok search user===>>",
|
||||
this.state.userName,
|
||||
this.state.indicatif,
|
||||
this.state.isPhoneAssureSearch,
|
||||
this.state.isNumeroAssureSearch
|
||||
);
|
||||
// Prépare le payload
|
||||
const payload = { dial_code: this.state.indicatif };
|
||||
if (this.state.isPhoneAssureSearch) {
|
||||
payload.phone = this.state.userName;
|
||||
} else if (this.state.isNumeroAssureSearch) {
|
||||
payload.identification_number = this.state.userName;
|
||||
} else {
|
||||
payload.name = this.state.userName;
|
||||
}
|
||||
// Lance l'action
|
||||
this.props.searchUserAction(payload, true);
|
||||
this.setState({ dialogSearchUser: false });
|
||||
}}
|
||||
>
|
||||
<View>
|
||||
<TextInput
|
||||
style={{marginTop: 10, height: 46, borderRadius: 5, borderWidth: 1, borderColor: "#ccc"}}
|
||||
placeholder={this.state.isPhoneAssureSearch ? I18n.t('PHONE') : I18n.t('NAME')}
|
||||
value={this.state.userName}
|
||||
keyboardType={this.state.isPhoneAssureSearch ? 'numeric' : 'default'}
|
||||
onChangeText={(userName) => {
|
||||
this.setState({userName});
|
||||
}}
|
||||
icon={
|
||||
<FontAwesome
|
||||
style={{zIndex: 10}}
|
||||
name={this.state.isPhoneAssureSearch ? 'phone' : 'user'}
|
||||
size={20}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
<View>
|
||||
<TextInput
|
||||
style={{
|
||||
marginTop: 10, height: 46, borderRadius: 5, borderWidth: 1, borderColor: "#ccc"
|
||||
}}
|
||||
placeholder={
|
||||
this.state.isPhoneAssureSearch
|
||||
? I18n.t("PHONE")
|
||||
: this.state.isNumeroAssureSearch
|
||||
? I18n.t("IMMATRICULATION_DGI") // nouveau libellé à ajouter dans vos traductions
|
||||
: I18n.t("NAME")
|
||||
}
|
||||
value={this.state.userName}
|
||||
keyboardType={this.state.isPhoneAssureSearch ? "numeric" : "default"}
|
||||
onChangeText={userName => this.setState({ userName })}
|
||||
icon={
|
||||
<FontAwesome
|
||||
style={{ zIndex: 10 }}
|
||||
name={
|
||||
this.state.isPhoneAssureSearch
|
||||
? "phone"
|
||||
: this.state.isNumeroAssureSearch
|
||||
? "id-card" // icône FontAwesome5 pour le NIU
|
||||
: "user"
|
||||
}
|
||||
size={20}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
|
||||
<View style={{
|
||||
flexDirection: 'row',
|
||||
position: 'absolute',
|
||||
top: 22,
|
||||
right: 50,
|
||||
justifyContent: 'space-between',
|
||||
width: 50
|
||||
}}>
|
||||
<FontAwesomeIcon
|
||||
style={{paddingRight: 5}}
|
||||
name='phone'
|
||||
size={20}
|
||||
color={Color.primaryColor}
|
||||
onPress={() => {
|
||||
this.setState({
|
||||
isNumeroAssureSearch: false,
|
||||
isPhoneAssureSearch: true
|
||||
});
|
||||
}}
|
||||
/>
|
||||
<FontAwesomeIcon
|
||||
style={{paddingRight: 5}}
|
||||
name='user'
|
||||
size={20}
|
||||
color={Color.primaryColor}
|
||||
onPress={() => {
|
||||
this.setState({
|
||||
isNumeroAssureSearch: false,
|
||||
isPhoneAssureSearch: false
|
||||
});
|
||||
}}
|
||||
/>
|
||||
<FontAwesomeIcon
|
||||
style={{paddingRight: 5}}
|
||||
name="qrcode"
|
||||
size={20}
|
||||
color={Color.primaryColor}
|
||||
onPress={() => {
|
||||
this.setState({
|
||||
showQRCodeScanner: true
|
||||
});
|
||||
}}
|
||||
/>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
{/* <Fumi iconClass={FontAwesomeIcon}
|
||||
label={I18n.t('NAME')}
|
||||
iconColor={'#f95a25'}
|
||||
iconSize={20}
|
||||
iconName={"user"}
|
||||
value={this.state.userName}
|
||||
onChangeText={(userName) => {
|
||||
this.setState({userName});
|
||||
}}
|
||||
style={styles.input}
|
||||
<View
|
||||
style={{
|
||||
flexDirection: "row",
|
||||
position: "absolute",
|
||||
top: 22,
|
||||
right: 20,
|
||||
}}
|
||||
>
|
||||
</Fumi>*/}
|
||||
{/* Mode téléphone */}
|
||||
<FontAwesomeIcon
|
||||
name="phone"
|
||||
size={20}
|
||||
color={this.state.isPhoneAssureSearch ? Color.primaryColor : "#888"}
|
||||
onPress={() =>
|
||||
this.setState({
|
||||
isPhoneAssureSearch: true,
|
||||
isNumeroAssureSearch: false
|
||||
})
|
||||
}
|
||||
style={{ marginHorizontal: 5 }}
|
||||
/>
|
||||
|
||||
</MaterialDialog>)
|
||||
{/* Mode nom */}
|
||||
<FontAwesomeIcon
|
||||
name="user"
|
||||
size={20}
|
||||
color={
|
||||
!this.state.isPhoneAssureSearch && !this.state.isNumeroAssureSearch
|
||||
? Color.primaryColor
|
||||
: "#888"
|
||||
}
|
||||
onPress={() =>
|
||||
this.setState({
|
||||
isPhoneAssureSearch: false,
|
||||
isNumeroAssureSearch: false
|
||||
})
|
||||
}
|
||||
style={{ marginHorizontal: 5 }}
|
||||
/>
|
||||
|
||||
{/* Mode NIU */}
|
||||
<FontAwesomeIcon
|
||||
name="id-card"
|
||||
size={20}
|
||||
color={this.state.isNumeroAssureSearch ? Color.primaryColor : "#888"}
|
||||
onPress={() =>
|
||||
this.setState({
|
||||
isPhoneAssureSearch: false,
|
||||
isNumeroAssureSearch: true
|
||||
})
|
||||
}
|
||||
style={{ marginHorizontal: 5 }}
|
||||
/>
|
||||
|
||||
{/* Scanner QR */}
|
||||
<FontAwesomeIcon
|
||||
name="qrcode"
|
||||
size={20}
|
||||
color={Color.primaryColor}
|
||||
onPress={() => this.setState({ showQRCodeScanner: true })}
|
||||
style={{ marginHorizontal: 5 }}
|
||||
/>
|
||||
</View>
|
||||
</View>
|
||||
</MaterialDialog>
|
||||
);
|
||||
}
|
||||
|
||||
renderDialogResultSearchUser() {
|
||||
|
|
|
@ -125,8 +125,10 @@ export default class ActivateAccount extends Component {
|
|||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
}}>
|
||||
<View style={{flexDirection: 'row', alignItems: 'center', justifyContent: 'center'}}>
|
||||
<Image style={{width: responsiveWidth(90), resizeMode: 'contain',}}
|
||||
<View style={{flexDirection: 'row', alignItems: 'center', justifyContent: 'center'}}>
|
||||
<Image style={{width: responsiveWidth(90), resizeMode: 'contain',
|
||||
height: responsiveHeight(16), // Delete this line if the image size sucks and change the width and the height of icon3.png to 257 x 112
|
||||
}}
|
||||
source={require('../../assets/img/icon3.png')}/>
|
||||
|
||||
</View>
|
||||
|
@ -177,7 +179,9 @@ export default class ActivateAccount extends Component {
|
|||
alignItems: 'center',
|
||||
}}>
|
||||
<View style={{flexDirection: 'row', alignItems: 'center', justifyContent: 'center'}}>
|
||||
<Image style={{width: responsiveWidth(90), resizeMode: 'contain',}}
|
||||
<Image style={{width: responsiveWidth(90), resizeMode: 'contain',
|
||||
height: responsiveHeight(16), // Delete this line if the image size sucks and change the width and the height of icon3.png to 257 x 112
|
||||
}}
|
||||
source={require('../../assets/img/icon3.png')}/>
|
||||
|
||||
</View>
|
||||
|
@ -284,7 +288,9 @@ export default class ActivateAccount extends Component {
|
|||
alignItems: 'center',
|
||||
}}>
|
||||
<View style={{flexDirection: 'row', alignItems: 'center', justifyContent: 'center'}}>
|
||||
<Image style={{width: responsiveWidth(90), resizeMode: 'contain',}}
|
||||
<Image style={{width: responsiveWidth(90), resizeMode: 'contain',
|
||||
height: responsiveHeight(16), // Delete this line if the image size sucks and change the width and the height of icon3.png to 257 x 112
|
||||
}}
|
||||
source={require('../../assets/img/icon3.png')}/>
|
||||
|
||||
</View>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import React, { Component } from 'react';
|
||||
import { View, Text, TextInput, FlatList, TouchableOpacity } from 'react-native';
|
||||
import { responsiveWidth} from 'react-native-responsive-dimensions';
|
||||
import I18n from "react-native-i18n";
|
||||
|
||||
class FilteredList extends Component {
|
||||
constructor(props) {
|
||||
|
@ -52,7 +53,7 @@ class FilteredList extends Component {
|
|||
>
|
||||
<TextInput
|
||||
style={{ padding: 18, borderBottomWidth: 1 }}
|
||||
placeholder="Quel est votre activité..."
|
||||
placeholder={this.props.placeholder || I18n.t('WHATS_YOUR_BUSINESS')}
|
||||
value={searchTerm}
|
||||
onChangeText={this.handleSearch}
|
||||
onFilterChange={this.handleFilter}
|
||||
|
|
|
@ -228,6 +228,7 @@ export default class ForgottenPassword extends Component{
|
|||
iconName={'phone'}
|
||||
label={"Indicatif"}
|
||||
style={styles.inputCode}
|
||||
onChangeText={(text) => { this.setState({indicatif: text})}}
|
||||
value={this.state.indicatif}
|
||||
iconColor={theme.accent}
|
||||
/>
|
||||
|
@ -250,10 +251,12 @@ export default class ForgottenPassword extends Component{
|
|||
|
||||
onRenitPassword() {
|
||||
if(this.state.phone.length>0){
|
||||
console.log("Messi===>>")
|
||||
if(this.props.navigation.state.params.type!==null){
|
||||
let type= this.props.navigation.state.params.type === 0 ? 'user' : 'agent';
|
||||
console.log("Type user send", this.props.navigation.state.params.type);
|
||||
this.setState({isSending:true});
|
||||
console.log("Messi===>>",this.state.indicatif+this.state.phone,type)
|
||||
reinitpassword(this.state.indicatif+this.state.phone,type).then((data)=>{
|
||||
|
||||
this.setState({isSending:false})
|
||||
|
|
|
@ -95,7 +95,8 @@ const log = StyleSheet.create({
|
|||
img: {
|
||||
width: responsiveWidth(90),
|
||||
resizeMode: 'contain',
|
||||
alignSelf: 'center'
|
||||
alignSelf: 'center',
|
||||
height: responsiveHeight(16), // Delete this line if the image size sucks and change the width and the height of icon3.png to 257 x 112
|
||||
},
|
||||
title: {
|
||||
color: "white",
|
||||
|
|
|
@ -17,7 +17,7 @@ import {responsiveHeight, responsiveWidth, responsiveFontSize} from 'react-nativ
|
|||
import {Fumi, Kaede} from 'react-native-textinput-effects'
|
||||
import * as Animatable from 'react-native-animatable'
|
||||
import Button from 'apsl-react-native-button'
|
||||
import {categoryChild, getCodeInformation, getSupervisorInfoCode} from './../../webservice/AuthApi'
|
||||
import {categoryChild, getCodeInformation, getSupervisorInfoCode, getSupervisorInfoCodeOffline} from './../../webservice/AuthApi'
|
||||
|
||||
let theme = require('./../../utils/theme.json')
|
||||
let route = require('./../../route.json')
|
||||
|
@ -147,7 +147,18 @@ export default class CreateAccount extends Component {
|
|||
this.checkCodeParrain()
|
||||
}}>
|
||||
{I18n.t('NEXT')}</Button>
|
||||
|
||||
<View style={{display: 'flex', flexDirection: 'column'}}>
|
||||
<Text style={styles.indication}>
|
||||
<Text style={styles.indicationTitle}>
|
||||
{I18n.t('HIERACHIC_CODE')} :
|
||||
</Text>{' '}
|
||||
{I18n.t('HIERACHIC_CODE_DESCRIPTION')}
|
||||
</Text>
|
||||
<Text style={styles.indication}>
|
||||
<Text style={styles.indicationTitle}>{I18n.t('TAX_CODE')} :</Text>{' '}
|
||||
{I18n.t('TAX_CODE_DESCRIPTION')}
|
||||
</Text>
|
||||
</View>
|
||||
</ScrollView>
|
||||
);
|
||||
}
|
||||
|
@ -504,8 +515,19 @@ export default class CreateAccount extends Component {
|
|||
|
||||
}
|
||||
|
||||
retreiveSupervisorInfosCode() {
|
||||
getSupervisorInfoCode().then((result) => {
|
||||
// retreiveSupervisorInfosCode() {
|
||||
// getSupervisorInfoCode().then((result) => {
|
||||
// console.warn("SUPERVISOR INFOS CODE", JSON.stringify(result));
|
||||
// storeData(supervisorCode, JSON.stringify(result)).then(() => {
|
||||
// this.setState({displayLoader: false});
|
||||
// });
|
||||
// }).catch(error => {
|
||||
// //console.log(error);
|
||||
// })
|
||||
// }
|
||||
|
||||
retreiveSupervisorInfosCode() {
|
||||
getSupervisorInfoCodeOffline().then((result) => {
|
||||
console.warn("SUPERVISOR INFOS CODE", JSON.stringify(result));
|
||||
storeData(supervisorCode, JSON.stringify(result)).then(() => {
|
||||
this.setState({displayLoader: false});
|
||||
|
@ -603,7 +625,8 @@ export default class CreateAccount extends Component {
|
|||
} else {
|
||||
|
||||
let codeSupervisorsData = JSON.parse(codeSupervisor);
|
||||
let codeSupervisors = Object.keys(codeSupervisorsData);
|
||||
let codeSupervisorsDataCodes = codeSupervisorsData.codes;
|
||||
let codeSupervisors = Object.keys(codeSupervisorsData.codes);
|
||||
this.setState({codeSupervisorsData});
|
||||
|
||||
if (!codeSupervisors.includes(user.member)) {
|
||||
|
@ -616,9 +639,18 @@ export default class CreateAccount extends Component {
|
|||
}], {cancelable: false});
|
||||
} else {
|
||||
this.setState({isLoging: false});
|
||||
let resultInfosCode = codeSupervisorsData[user.member];
|
||||
this.setState({codeSupervisorData: resultInfosCode});
|
||||
let resultInfosCode = codeSupervisorsDataCodes[user.member];
|
||||
const completedResultInfosCode = {
|
||||
...resultInfosCode,
|
||||
companies_types:codeSupervisorsData.globals.companies_types ,
|
||||
districts: codeSupervisorsData.globals.districts,
|
||||
neighborhoods: codeSupervisorsData.globals.neighborhoods,
|
||||
activities: codeSupervisorsData.globals.activities,
|
||||
municipalities: codeSupervisorsData.globals.municipalities
|
||||
};
|
||||
this.setState({codeSupervisorData: completedResultInfosCode});
|
||||
|
||||
|
||||
if (resultInfosCode.network.is_companies_network === "1" && resultInfosCode.child == "geolocated") {
|
||||
this.props.navigation.push(route.createUserStep, {
|
||||
type: this.type,
|
||||
|
@ -746,6 +778,19 @@ const styles = StyleSheet.create({
|
|||
textAlign: 'center',
|
||||
margin: 5,
|
||||
},
|
||||
indication: {
|
||||
color: 'white',
|
||||
fontSize: 14,
|
||||
marginLeft: 20,
|
||||
marginRight: 20,
|
||||
marginBottom: 10,
|
||||
},
|
||||
indicationTitle: {
|
||||
color: 'white',
|
||||
fontSize: 14,
|
||||
marginLeft: 20,
|
||||
fontWeight: '600',
|
||||
},
|
||||
btnvalide: {
|
||||
marginTop: 20,
|
||||
marginLeft: 20,
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
import React, {Component, useState} from 'react';
|
||||
import Button from 'apsl-react-native-button';
|
||||
import axios from "axios";
|
||||
import isEqual from 'lodash/isEqual';
|
||||
import isNil from 'lodash/isNil';
|
||||
import PropTypes from 'prop-types';
|
||||
import React, { Component } from 'react';
|
||||
import {
|
||||
Alert,
|
||||
BackHandler,
|
||||
|
@ -13,20 +18,22 @@ import {
|
|||
TouchableOpacity,
|
||||
View
|
||||
} from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import FontAwesomeIcon from 'react-native-vector-icons/FontAwesome';
|
||||
import {responsiveHeight, responsiveWidth} from 'react-native-responsive-dimensions';
|
||||
import {Fumi} from 'react-native-textinput-effects'
|
||||
import * as Animatable from 'react-native-animatable';
|
||||
import Button from 'apsl-react-native-button';
|
||||
import MapView, {Marker} from 'react-native-maps';
|
||||
import {Dropdown} from 'react-native-material-dropdown-v2';
|
||||
import isEqual from 'lodash/isEqual';
|
||||
import isNil from 'lodash/isNil';
|
||||
import {getPositionInformation} from './../../webservice/MapService';
|
||||
import I18n from 'react-native-i18n'
|
||||
import {material} from 'react-native-typography';
|
||||
import Dialog from "react-native-dialog";
|
||||
import Geolocation from 'react-native-geolocation-service';
|
||||
import I18n from 'react-native-i18n';
|
||||
import MapView, { Marker } from 'react-native-maps';
|
||||
import { MaterialDialog } from "react-native-material-dialog";
|
||||
import { Dropdown } from 'react-native-material-dropdown-v2';
|
||||
import { responsiveHeight, responsiveWidth } from 'react-native-responsive-dimensions';
|
||||
import { ProgressDialog } from "react-native-simple-dialogs";
|
||||
import { Fumi } from 'react-native-textinput-effects';
|
||||
import { material } from 'react-native-typography';
|
||||
import FontAwesomeIcon from 'react-native-vector-icons/FontAwesome';
|
||||
import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
|
||||
import { store } from "../../redux/store";
|
||||
import { getDefaultTown } from "../../webservice/AuthApi";
|
||||
import { uploadImage } from "../../webservice/IlinkConstants";
|
||||
import {
|
||||
createGeolocatedAccount,
|
||||
createUserAccount,
|
||||
|
@ -35,17 +42,7 @@ import {
|
|||
getListCountriesActive,
|
||||
getTownInformationName
|
||||
} from './../../webservice/AuthApi';
|
||||
import {MaterialDialog} from "react-native-material-dialog";
|
||||
import Geolocation from 'react-native-geolocation-service';
|
||||
import ImagePicker from 'react-native-image-crop-picker';
|
||||
import {Color} from "../../config/Color";
|
||||
import {FontWeight, Typography} from "../../config/typography";
|
||||
import Dialog from "react-native-dialog";
|
||||
import {store} from "../../redux/store";
|
||||
import axios from "axios";
|
||||
import {uploadImage} from "../../webservice/IlinkConstants";
|
||||
import {ProgressDialog} from "react-native-simple-dialogs";
|
||||
import {getDefaultTown} from "../../webservice/AuthApi";
|
||||
import { getPositionInformation } from './../../webservice/MapService';
|
||||
|
||||
const GEOLOCATION_OPTIONS = {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000, useSignificantChanges: true};
|
||||
|
||||
|
@ -123,7 +120,8 @@ export default class CreateUserStep2 extends Component {
|
|||
isLoging: false,
|
||||
countries: '',
|
||||
selectedCountry: null,
|
||||
indicatif: '',
|
||||
indicatif: '+237',
|
||||
country: "Cameroon",
|
||||
snackVisible: false,
|
||||
snackText: '',
|
||||
disableNetwork: false,
|
||||
|
@ -162,6 +160,17 @@ export default class CreateUserStep2 extends Component {
|
|||
console.log("props", this.props);
|
||||
}
|
||||
|
||||
// Fonction de validation pour les numéros de téléphone camerounais
|
||||
validateCameroonPhoneNumber = (phoneNumber) => {
|
||||
if (!phoneNumber) {
|
||||
return false; // Si le numéro est vide, retourne false
|
||||
}
|
||||
console.log("Phone number===>>", phoneNumber);
|
||||
const trimmedPhoneNumber = phoneNumber.trim();
|
||||
const phoneRegex = /^\d{9}$/;
|
||||
return phoneRegex.test(trimmedPhoneNumber);
|
||||
}
|
||||
|
||||
createFormData = (photo) => {
|
||||
this.dataToSendTemp.append("image", {
|
||||
name: photo.path.split('/').pop(),
|
||||
|
@ -177,6 +186,7 @@ export default class CreateUserStep2 extends Component {
|
|||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
let datas = await getCodeInformation(membre);
|
||||
console.log("ICI datas===>>",datas)
|
||||
// Assuming the API returns country and dial_code
|
||||
const { country, dial_code, ...otherData } = datas;
|
||||
resolve({ country, dial_code, ...otherData });
|
||||
|
@ -219,7 +229,7 @@ export default class CreateUserStep2 extends Component {
|
|||
|
||||
try {
|
||||
const result = await this.retreiveCodeInformation();
|
||||
console.log("RESULTAT ", result);
|
||||
console.log("RESULTAT===>> ", result);
|
||||
|
||||
if (!result) {
|
||||
throw new Error("Aucun résultat obtenu");
|
||||
|
@ -229,8 +239,8 @@ export default class CreateUserStep2 extends Component {
|
|||
|
||||
this.setState({
|
||||
result,
|
||||
country,
|
||||
indicatif: dial_code
|
||||
// country,
|
||||
// indicatif: dial_code
|
||||
});
|
||||
|
||||
if (child) {
|
||||
|
@ -246,10 +256,10 @@ export default class CreateUserStep2 extends Component {
|
|||
} : {})
|
||||
});
|
||||
} else {
|
||||
throw new Error("Impossible de récupérer les informations du code parrain");
|
||||
throw new Error("Impossible de récupérer les informations du code hiérarchique ou taxe");
|
||||
}
|
||||
} else {
|
||||
const networks = await getCountryNetwork(indicatif);
|
||||
const networks = await getCountryNetwork("+237");
|
||||
const reseaux = Object.values(networks).filter(network => network !== "");
|
||||
this.setState({
|
||||
networks: reseaux,
|
||||
|
@ -260,7 +270,7 @@ export default class CreateUserStep2 extends Component {
|
|||
console.error("Erreur dans getNetworks:", error);
|
||||
this.setState({ modalVisible: false });
|
||||
|
||||
if (error.message === "Impossible de récupérer les informations du code parrain") {
|
||||
if (error.message === "Impossible de récupérer les informations du code hiérarchique ou taxe") {
|
||||
Alert.alert(I18n.t('TITLE_PROBLE_COME'), error.message, [{
|
||||
text: "Revenir",
|
||||
onPress: () => this.props.navigation.pop()
|
||||
|
@ -313,6 +323,8 @@ export default class CreateUserStep2 extends Component {
|
|||
if (jsonMatch) {
|
||||
countriesData = JSON.parse(jsonMatch[0]);
|
||||
}
|
||||
}else{
|
||||
countriesData = response;
|
||||
}
|
||||
|
||||
const formattedCountries = countriesData.map(country => ({
|
||||
|
@ -323,11 +335,11 @@ export default class CreateUserStep2 extends Component {
|
|||
}));
|
||||
|
||||
this.setState({
|
||||
country: formattedCountries,
|
||||
// country: formattedCountries,
|
||||
countries: formattedCountries[0],
|
||||
isLoading: false,
|
||||
selectedCountry: formattedCountries[0], // Sélectionne le premier pays par défaut
|
||||
indicatif: formattedCountries[0].code_dial
|
||||
// indicatif: formattedCountries[0].code_dial
|
||||
});
|
||||
this.getNetworks(formattedCountries[0].label);
|
||||
} catch (error) {
|
||||
|
@ -339,7 +351,7 @@ export default class CreateUserStep2 extends Component {
|
|||
onSelectCountry = (country) => {
|
||||
this.setState({
|
||||
selectedCountry: country,
|
||||
indicatif: country.code_dial,
|
||||
// indicatif: country.code_dial,
|
||||
modalVisible: false
|
||||
});
|
||||
this.getNetworks(country.code_dial);
|
||||
|
@ -387,7 +399,7 @@ export default class CreateUserStep2 extends Component {
|
|||
const selectedCountry = this.state.countries[index];
|
||||
this.setState({
|
||||
selectedCountry: selectedCountry,
|
||||
indicatif: selectedCountry.code_dial,
|
||||
// indicatif: selectedCountry.code_dial,
|
||||
network: null
|
||||
});
|
||||
this.getNetworks(selectedCountry.code_dial);
|
||||
|
@ -511,7 +523,11 @@ export default class CreateUserStep2 extends Component {
|
|||
town = result[0];
|
||||
} else
|
||||
town = result;
|
||||
this.setState({town: town});
|
||||
this.setState({town: {
|
||||
name: "Douala",
|
||||
id: "2",
|
||||
indicatif: "+237"
|
||||
}});
|
||||
})
|
||||
} else {
|
||||
getDefaultTown().then(result => {
|
||||
|
@ -521,7 +537,11 @@ export default class CreateUserStep2 extends Component {
|
|||
town = resultTowwn[0];
|
||||
} else
|
||||
town = resultTowwn;
|
||||
this.setState({town: town});
|
||||
this.setState({town: {
|
||||
name: "Douala",
|
||||
id: "2",
|
||||
indicatif: "+237"
|
||||
}});
|
||||
});
|
||||
})
|
||||
}
|
||||
|
@ -534,7 +554,10 @@ export default class CreateUserStep2 extends Component {
|
|||
for (let i of cnt) {
|
||||
if (i.code_country === shortcountry) {
|
||||
found = true
|
||||
this.setState({indicatif: i.code_dial, country: i.name})
|
||||
this.setState({
|
||||
// indicatif: i.code_dial,
|
||||
country: i.name
|
||||
})
|
||||
this.getNetworks(i.code_dial);
|
||||
}
|
||||
}
|
||||
|
@ -686,7 +709,7 @@ export default class CreateUserStep2 extends Component {
|
|||
paddingRight: 20,
|
||||
backgroundColor: 'white'
|
||||
}}>
|
||||
<Fumi
|
||||
{/* <Fumi
|
||||
iconClass={FontAwesomeIcon}
|
||||
label={I18n.t('COUNTRY_CHOICE')}
|
||||
// value={this.state.countries}
|
||||
|
@ -767,27 +790,7 @@ export default class CreateUserStep2 extends Component {
|
|||
}}
|
||||
/> */}
|
||||
|
||||
<Fumi
|
||||
iconClass={FontAwesomeIcon}
|
||||
iconName={'flag'}
|
||||
// value={this.state.indicatif}
|
||||
value={selectedCountry ? `${selectedCountry.code_dial}` : ''}
|
||||
enabled={false}
|
||||
editable={false}
|
||||
// onChangeText={(text) => {
|
||||
// let phonenum = text + (this.state.contact !== undefined ? this.state.contact : "");
|
||||
// this.setState({indicatif: text, phone: phonenum});
|
||||
// }}
|
||||
style={{
|
||||
width: responsiveWidth(30),
|
||||
height: responsiveHeight(10),
|
||||
alignSelf: 'center',
|
||||
marginTop: responsiveHeight(2),
|
||||
marginLeft: responsiveWidth(5),
|
||||
marginRight: responsiveWidth(5),
|
||||
borderRadius: 5,
|
||||
}}
|
||||
/>
|
||||
|
||||
<View>
|
||||
<Fumi iconClass={FontAwesomeIcon} iconName={'phone'}
|
||||
placeholder={I18n.t('PHONE')}
|
||||
|
@ -797,15 +800,15 @@ export default class CreateUserStep2 extends Component {
|
|||
}}
|
||||
iconSize={20}
|
||||
onChangeText={(text) => {
|
||||
let phonenumber = text
|
||||
this.setState({phone: phonenumber, contact: text})
|
||||
this.setState({phone: text.trim(), contact: text.trim()})
|
||||
}}
|
||||
style={{
|
||||
|
||||
marginTop: responsiveHeight(2),
|
||||
marginRight: responsiveWidth(5),
|
||||
marginLeft: responsiveWidth(5),
|
||||
|
||||
width: responsiveWidth(55),
|
||||
width: responsiveWidth(90),
|
||||
borderRadius: 5,
|
||||
}}
|
||||
>
|
||||
|
@ -818,15 +821,15 @@ export default class CreateUserStep2 extends Component {
|
|||
}}
|
||||
iconSize={20}
|
||||
onChangeText={(text) => {
|
||||
let phonenumber = text
|
||||
this.setState({phoneTransaction: phonenumber, contactTransaction: text})
|
||||
this.setState({phoneTransaction: text.trim(), contactTransaction: text.trim()})
|
||||
}}
|
||||
style={{
|
||||
|
||||
marginTop: responsiveHeight(2),
|
||||
marginRight: responsiveWidth(5),
|
||||
|
||||
width: responsiveWidth(55),
|
||||
marginLeft: responsiveWidth(5),
|
||||
width: responsiveWidth(90),
|
||||
borderRadius: 5,
|
||||
}}
|
||||
>
|
||||
|
@ -1043,21 +1046,24 @@ export default class CreateUserStep2 extends Component {
|
|||
>
|
||||
<Dropdown
|
||||
label={I18n.t('COUNTRY_CHOICE')}
|
||||
data={this.state.countries}
|
||||
data={[{"code_country": "CM", "code_dial": "+237", "label": "Cameroon", "value": "Cameroon"}]}
|
||||
useNativeDriver={true}
|
||||
value={this.state.country === null ? "" :
|
||||
this.state.country}
|
||||
// value={this.state.country === null ? "" :
|
||||
// this.state.country}
|
||||
value={this.state.country}
|
||||
onChangeText={(value, index, data) => {
|
||||
this.setState({country: value, indicatif: value.code_dial, network: null})
|
||||
|
||||
this.setState({
|
||||
// country: value,
|
||||
// indicatif: value.code_dial,
|
||||
network: null})
|
||||
this.getNetworks(value.code_dial)
|
||||
}}
|
||||
valueExtractor={(value) => {
|
||||
return value
|
||||
}}
|
||||
labelExtractor={(value) => {
|
||||
return value.name
|
||||
}}
|
||||
// valueExtractor={(value) => {
|
||||
// return value
|
||||
// }}
|
||||
// labelExtractor={(value) => {
|
||||
// return value.name
|
||||
// }}
|
||||
/>
|
||||
</View>
|
||||
<Animatable.View ref={(comp) => {
|
||||
|
@ -1070,7 +1076,7 @@ export default class CreateUserStep2 extends Component {
|
|||
|
||||
onChangeText={(text) => {
|
||||
|
||||
this.setState({indicatif: text})
|
||||
// this.setState({indicatif: text})
|
||||
}}
|
||||
style={{
|
||||
width: responsiveWidth(30),
|
||||
|
@ -1159,7 +1165,12 @@ export default class CreateUserStep2 extends Component {
|
|||
data['type'] = "create_user"
|
||||
data['phone'] = indicatif + phone;
|
||||
data['network'] = network;
|
||||
data['town'] = this.state.town;
|
||||
// data['town'] = this.state.town;
|
||||
data['town'] = {
|
||||
name: "Douala",
|
||||
id: "2",
|
||||
indicatif: "+237"
|
||||
}
|
||||
data['latitude'] = myPosition.latitude;
|
||||
data['longitude'] = myPosition.longitude;
|
||||
for (let i in user) {
|
||||
|
@ -1188,7 +1199,7 @@ export default class CreateUserStep2 extends Component {
|
|||
break;
|
||||
default:
|
||||
Alert.alert(I18n.t("CONNEXION_SUCCESSFUL"), result.error_msg
|
||||
, [{text: 'OK', onPress: () => ""}], {cancelable: false})
|
||||
, [{text: 'OK', onPress: () =>this.props.navigation.popToTop()}], {cancelable: false})
|
||||
}
|
||||
this.setState({isLoading: false})
|
||||
}
|
||||
|
@ -1210,7 +1221,16 @@ export default class CreateUserStep2 extends Component {
|
|||
|
||||
checkUserGeolocated() {
|
||||
let {myPosition, textaddress, place, indicatif, user, network, phone, phoneTransaction} = this.state;
|
||||
this.setState({isLoading: true})
|
||||
this.setState({isLoading: true});
|
||||
// Validation des numéros de téléphone
|
||||
const isPhoneValid = this.validateCameroonPhoneNumber(phone);
|
||||
const isPhoneTransactionValid = this.validateCameroonPhoneNumber(phoneTransaction);
|
||||
|
||||
if (!isPhoneValid || !isPhoneTransactionValid) {
|
||||
Alert.alert("Erreur", "Les numéros de téléphone doivent être des numéros camerounais valides de 9 chiffres (ex: 656391882).");
|
||||
this.setState({isLoading: false});
|
||||
return;
|
||||
}
|
||||
if (user !== undefined) {
|
||||
if (this.checkOrShake(phone, this.numanim)) {
|
||||
if (this.checkOrShake(network, this.networkanim)) {
|
||||
|
|
|
@ -518,6 +518,9 @@ export class LoginUi extends Component {
|
|||
</View>
|
||||
|
||||
</ScrollView>
|
||||
<View style={style.logoContaner}>
|
||||
<Image style={style.byIlinkLogo} source={require('../../../assets/img/by-ilink-world.png')}/>
|
||||
</View>
|
||||
|
||||
</Animated.View>
|
||||
|
||||
|
@ -810,6 +813,12 @@ const style = StyleSheet.create({
|
|||
},
|
||||
logo: {
|
||||
width: responsiveWidth(90),
|
||||
height: responsiveHeight(16), // Delete this line if the image size sucks and change the width and the height of icon3.png to 257 x 112
|
||||
resizeMode: "contain"
|
||||
},
|
||||
byIlinkLogo: {
|
||||
width: responsiveWidth(30),
|
||||
height: responsiveHeight(16), // Delete this line if the image size sucks and change the width and the height of icon3.png to 257 x 112
|
||||
resizeMode: "contain"
|
||||
},
|
||||
title: {
|
||||
|
|
|
@ -14,7 +14,8 @@ import {
|
|||
getPasObject,
|
||||
getPubActiveObject,
|
||||
getSupervisorInfoCode,
|
||||
getAppVersion
|
||||
getAppVersion,
|
||||
getSupervisorInfoCodeOffline
|
||||
} from '../../webservice/AuthApi';
|
||||
import {Bubbles, DoubleBounce, Bars, Pulse} from 'react-native-loader';
|
||||
import Configuration from "../../webservice/persistences/Configuration";
|
||||
|
@ -58,7 +59,7 @@ export default class SplashScreen extends Component {
|
|||
//
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.retreiveSupervisorInfosCode();
|
||||
// this.retreiveSupervisorInfosCode();
|
||||
this.state = {}
|
||||
};
|
||||
|
||||
|
@ -130,8 +131,29 @@ export default class SplashScreen extends Component {
|
|||
});*/
|
||||
|
||||
}
|
||||
initializeOfflineMode = () => {
|
||||
console.log("Initialisation du mode Hors Ligne...");
|
||||
getSupervisorInfoCodeOffline()
|
||||
.then((result) => {
|
||||
console.warn("SUPERVISOR INFOS CODE_", JSON.stringify(result));
|
||||
storeData(supervisorCode, JSON.stringify(result))
|
||||
.then(() => {
|
||||
this.setState({ offlineInitialized: true, isLoading: false });
|
||||
})
|
||||
.catch(error => {
|
||||
console.error("Erreur lors du stockage :", error);
|
||||
this.setState({ isLoading: false });
|
||||
});
|
||||
})
|
||||
.catch(error => {
|
||||
console.error("Erreur lors de la récupération des infos :", error);
|
||||
});
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
console.log("ComponentDidMount===>>")
|
||||
this.initializeOfflineMode();
|
||||
// this.retreiveSupervisorInfosCode();
|
||||
try {
|
||||
this.requestCameraPermission()
|
||||
} catch (e) {
|
||||
|
@ -197,15 +219,16 @@ export default class SplashScreen extends Component {
|
|||
}
|
||||
|
||||
retreiveSupervisorInfosCode() {
|
||||
console.log("RETRIEVE SUPERVISOR INFOS CODE");
|
||||
getSupervisorInfoCode().then((result) => {
|
||||
console.warn("SUPERVISOR INFOS CODE", JSON.stringify(result));
|
||||
console.warn("SUPERVISOR INFOS CODE_", JSON.stringify(result));
|
||||
storeData(supervisorCode, JSON.stringify(result)).then(() => {
|
||||
getData(supervisorCode).then(resultGet => {
|
||||
console.log("DATA FROM ASYNC STORAGE", resultGet);
|
||||
});
|
||||
});
|
||||
}).catch(error => {
|
||||
console.log(error);
|
||||
console.log("errorGetSupervisorInfoCode", error);
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -240,7 +240,8 @@ const styles=StyleSheet.create({
|
|||
},
|
||||
logo:{
|
||||
width:responsiveWidth(90),
|
||||
resizeMode:'contain'
|
||||
resizeMode:'contain',
|
||||
height: responsiveHeight(16), // Delete this line if the image size sucks and change the width and the height of icon3.png to 257 x 112
|
||||
},
|
||||
lottie: {
|
||||
width: 48
|
||||
|
|
|
@ -62,7 +62,7 @@ class NumeroQuitance extends Component {
|
|||
static navigationOptions = () => {
|
||||
return {
|
||||
drawerLabel: () => null,
|
||||
headerTitle: I18n.t('QUITANCE'),
|
||||
headerTitle: I18n.t('PAYMENT'),
|
||||
headerTintColor: 'white',
|
||||
headerStyle: {
|
||||
backgroundColor: Color.primaryColor,
|
||||
|
|
|
@ -74,8 +74,8 @@ class NumeroQuitanceDetail extends Component {
|
|||
|
||||
return {
|
||||
drawerLabel: () => null,
|
||||
title: navigation.getParam("isModify", false) ? I18n.t('QUITANCE')
|
||||
: I18n.t('QUITANCE'),
|
||||
title: navigation.getParam("isModify", false) ? I18n.t('PAYMENT')
|
||||
: I18n.t('PAYMENT'),
|
||||
headerTintColor: 'white',
|
||||
headerStyle: {
|
||||
backgroundColor: Color.primaryColor,
|
||||
|
@ -119,15 +119,16 @@ class NumeroQuitanceDetail extends Component {
|
|||
added_revenue_orders_items: [],
|
||||
displayAddOrdreRecette: false,
|
||||
ordreRecetteId: this.props.navigation.getParam("isModify", false) ? this.props.navigation.getParam("item", "-").id_receipt : "",
|
||||
// Suppression de ces 2 moyens de paiement Wallet et Cash pour laissser uniquement Tresor pay qui lui vient plutot de l'API
|
||||
paymentMethods: [
|
||||
{
|
||||
title: I18n.t('WALLET'),
|
||||
value: 'wallet'
|
||||
},
|
||||
{
|
||||
title: I18n.t('CASH'),
|
||||
value: 'cash'
|
||||
},
|
||||
// {
|
||||
// title: I18n.t('WALLET'),
|
||||
// value: 'wallet'
|
||||
// },
|
||||
// {
|
||||
// title: I18n.t('CASH'),
|
||||
// value: 'cash'
|
||||
// },
|
||||
],
|
||||
paymentMethod: 'wallet',
|
||||
paymentUrl: '',
|
||||
|
@ -285,15 +286,16 @@ class NumeroQuitanceDetail extends Component {
|
|||
if (nextProps.paymentMethod !== null) {
|
||||
if (nextProps.paymentMethod.result !== null) {
|
||||
console.log("nextProps.paymentMethod", nextProps.paymentMethod);
|
||||
// Suppression de ces 2 moyens de paiement Wallet et Cash pour laissser uniquement Tresor pay qui lui vient plutot de l'API
|
||||
const paymentsMethods = [
|
||||
{
|
||||
title: I18n.t('WALLET'),
|
||||
value: 'wallet'
|
||||
},
|
||||
{
|
||||
title: I18n.t('CASH'),
|
||||
value: 'cash'
|
||||
},
|
||||
// {
|
||||
// title: I18n.t('WALLET'),
|
||||
// value: 'wallet'
|
||||
// },
|
||||
// {
|
||||
// title: I18n.t('CASH'),
|
||||
// value: 'cash'
|
||||
// },
|
||||
]
|
||||
this.setState({
|
||||
paymentMethods: [...paymentsMethods, ...nextProps.paymentMethod.result.response.methods]
|
||||
|
@ -947,7 +949,7 @@ class NumeroQuitanceDetail extends Component {
|
|||
disabled={true}
|
||||
textStyle={styles.textbtnstyle}
|
||||
>
|
||||
{this.state.isModify ? I18n.t('MODIFY') : I18n.t('SAVE')}
|
||||
{this.state.isModify ? I18n.t('MODIFY') : I18n.t('PAY')}
|
||||
</Button>
|
||||
</View>
|
||||
|
||||
|
|
|
@ -491,7 +491,7 @@ export const optionOrdreRecetteScreen = {
|
|||
|
||||
export const optionNumeroQuitanceScreen = {
|
||||
type: 'QUITANCE',
|
||||
title: 'QUITANCE',
|
||||
title: 'NUMERO_QUITANCE',
|
||||
subTitle: 'CHOOSE_OPTION',
|
||||
options: [
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"WELCOME": "Welcome to iLink World !",
|
||||
"WELCOME": "Welcome to SIM_ba !",
|
||||
"WAITING_LONG": "Waiting for a moment",
|
||||
"HELP": "Help",
|
||||
"SIMPLE_USER": "Simple User",
|
||||
|
@ -13,6 +13,7 @@
|
|||
"THE_AGENT": "Agent",
|
||||
"USER": "User",
|
||||
"HYPERVISOR": "Hypervisor",
|
||||
"YOU_HAVE": "You have",
|
||||
"OPEN": "Open",
|
||||
"POSITION": "My position",
|
||||
"TAKE_MY_PLACE": "Take my position",
|
||||
|
@ -34,25 +35,18 @@
|
|||
"ASK_FOR_SUPERVISOR1": "Ask to become a supervisor",
|
||||
"CREDIT_ASK_FROM_MEMBERS": "Credit requests from your members",
|
||||
"ASK_MEMBERS": "Membership applications",
|
||||
"MY_ACCOUNT": "My account",
|
||||
"WALLET": "Wallet",
|
||||
"AMOUNT_LABEL": "Amount",
|
||||
"AMOUNT_LABEL_DESCRIPTION": "Please enter the amount",
|
||||
"DESTINATAIRE": "Recipient",
|
||||
"ERROR_LABEL": "Error",
|
||||
"NO_BANK_AVAILABLE": "No bank available",
|
||||
"BANK_LIST": "Bank list",
|
||||
"NO_OPERATOR_AVAILABLE": "No operator available",
|
||||
"ENTER_VALID_AMOUNT": "Enter a valid amount",
|
||||
"ENTER_AMOUNT_SUPERIOR_ZEROR": "Enter amount superior to zero",
|
||||
"AMOUNT_SUPERIOR_TO_PRINCIPAL_ACCOUNT": "Amount greater than that of the agent's main account",
|
||||
"PAYMENT_DONE": "Payment done",
|
||||
"PAYMENT_ERROR": "Payment error",
|
||||
"MAKE_DEPOSIT": "Make a deposit",
|
||||
"MAKE_WITHDRAWAL": "Make withdrawal",
|
||||
"WITHDRAWAL_TYPE": "Withdrawal mode",
|
||||
"DEPOSIT_DESCRIPTION": "Make a deposit",
|
||||
"ERROR_TRANSFER": "Transfer error",
|
||||
"SUCCESS_TRANSFER": "Transfer done",
|
||||
"WITHDRAWAL_SUCCESS": "Withdrawal done",
|
||||
"WITHDRAWAL_ERROR": "Withdrawal error",
|
||||
"WALLET_TO_WALLET_SUCCESS_TRANSFER": "Wallet to wallet transfer successfully completed",
|
||||
"DEPOSIT_SUCCESS": "Deposit done successfully",
|
||||
"SUCCESS": "Success",
|
||||
"ETAT": "State",
|
||||
"MY_ACCOUNT": "My account",
|
||||
"WALLET": "Wallet",
|
||||
"DEPOSIT": "Deposit",
|
||||
"EN_ATTENTE_DE_VALIDATION": "Waiting for validation",
|
||||
"REMBOURSE": "Reimbursed",
|
||||
|
@ -62,8 +56,17 @@
|
|||
"RETRAIT_ARGENT": "Receive money",
|
||||
"CONFIRM_DEPOSIT": "Confirm deposit",
|
||||
"CONFIRM_WITHDRAWAL": "Confirm withdrawal",
|
||||
"CHANGE_SOURCE_CARD": "Change the type of entry number",
|
||||
"ENTER_VALID_AMOUNT": "Enter a valid amount",
|
||||
"ENTER_AMOUNT_SUPERIOR_ZEROR": "Enter amount superior to zero",
|
||||
"AMOUNT_SUPERIOR_TO_PRINCIPAL_ACCOUNT": "Amount greater than that of the agent's main account",
|
||||
"ENTER_VALID_SERIAL_NUMBER": "Please enter the correct serial number",
|
||||
"MAKE_DEPOSIT": "Make a deposit",
|
||||
"MAKE_WITHDRAWAL": "Make withdrawal",
|
||||
"WITHDRAWAL_TYPE": "Withdrawal mode",
|
||||
"PAYMENT_DONE": "Payment done",
|
||||
"PAYMENT_ERROR": "Payment error",
|
||||
"CHOOSE_SOURCE": "Choose source",
|
||||
"CHANGE_SOURCE_CARD": "Change the type of entry number",
|
||||
"CREDIT_CARD": "Credit card",
|
||||
"CREDIT_ACCOUNT": "Credit account",
|
||||
"SAVINGS_ACCOUNT": "Saving account",
|
||||
|
@ -77,15 +80,18 @@
|
|||
"CARD_EXPIRY_LABEL": "Expiry.",
|
||||
"CARD_CVC_LABEL": "CVC/CCV",
|
||||
"CVC_CARD_ERROR": "CVC card error format",
|
||||
"DEPOSIT_DESCRIPTION": "Make a deposit",
|
||||
"ERROR_TRANSFER": "Transfer error",
|
||||
"SUCCESS_TRANSFER": "Transfer done",
|
||||
"WITHDRAWAL_SUCCESS": "Withdrawal done",
|
||||
"WITHDRAWAL_ERROR": "Withdrawal error",
|
||||
"WALLET_TO_WALLET_SUCCESS_TRANSFER": "Wallet to wallet transfer successfully completed",
|
||||
"THIS_FIELD_IS_REQUIRED": "This field is required",
|
||||
"PLEASE_ENTER_THE_AMOUNT": "Please enter the amount",
|
||||
"CHOOSE_OPTION": "Please choose an option",
|
||||
"CHOOSE_OPERATOR": "Please choose an operator",
|
||||
"EXPIRY_CARD_ERROR": "Date incorrect",
|
||||
"CARD_NUMBER_ERROR": "Card number incorrect",
|
||||
"AMOUNT_LABEL": "Amount",
|
||||
"AMOUNT_LABEL_DESCRIPTION": "Please enter the amount",
|
||||
"DESTINATAIRE": "Recipient",
|
||||
"WITHDRAWAL": "Withdrawal",
|
||||
"LINK_CARD": "Link my card",
|
||||
"LINK_CARD_REATTACH": "Link | Reattach",
|
||||
|
@ -137,16 +143,21 @@
|
|||
"QUARTIER_COMMUNE": "Neighborhood in the town",
|
||||
"ARRONDISSEMENT": "Borough",
|
||||
"PATENTE": "Patent",
|
||||
"TVA": "TVA",
|
||||
"TVA": "VAT",
|
||||
"IRPP": "IRPP",
|
||||
"ANNEE_TAXE": "Paid year taxed",
|
||||
"ANNEE_TAXE_N": "Paid year taxed N",
|
||||
"ANNEE_TAXE_N_1": "Année taxé payée N-1",
|
||||
"ANNEE_TAXE_N_2": "Année taxé payée N-2",
|
||||
"TYPE_ACTIVITE": "Type d'activité",
|
||||
"TECHNICAL_AGREMENT": "Technical approval or license",
|
||||
"IMMATRICULATION_DGI": "UIN",
|
||||
"INFORMATION_FICHE_CIRCUIT": "Identification sheet",
|
||||
"OTHERS_INFORMATIONS": "Other information",
|
||||
"SUCCESS_CREATION_GROUP": "Creation information",
|
||||
"ERROR_CREATION_GROUP": "Creation error",
|
||||
"ERROR_JOIN_GROUP": "Join error",
|
||||
"SUCCES_JOIN_GROUP": "Group join success",
|
||||
"CREATE_GROUP": "Create group",
|
||||
"MANAGE_GROUP": "Manage group",
|
||||
"VALIDATION_DEMAND": "Validation request",
|
||||
|
@ -234,7 +245,6 @@
|
|||
"COMMISSION_TRANSFER_ERROR_EMPTY": "The commission balance is empty",
|
||||
"CONFIRM": "Confirm",
|
||||
"CONFIRM_TRANSFER_COMMISSION": "Confirm commission transfer",
|
||||
"CREATION_DATE": "Creation date",
|
||||
"PRINCIPAL_ACCOUNT_TITLE": "Principal account",
|
||||
"NUMERO_COMPTE": "Account number",
|
||||
"NO_WALLET_ACTIVED": "No wallet is activated for your account",
|
||||
|
@ -276,6 +286,8 @@
|
|||
"IMAGE_TAKE": "Image take",
|
||||
"NAME": "Last name(s)",
|
||||
"FIRSTNAME": "First name(s) ",
|
||||
"CIVILITY": "Civility",
|
||||
"NATIONALITY": "Nationality",
|
||||
"NAME_EMETTEUR": "Issuer first name(s)",
|
||||
"EMETTEUR": "Issuer",
|
||||
"FIRSTNAME_EMETTEUR": "Issuer last name(s) ",
|
||||
|
@ -403,10 +415,6 @@
|
|||
"CANCEL_LABEL": "Cancel",
|
||||
"SUBMIT_LABEL": "Submit",
|
||||
"PHISIC_SECURITY": "Physic security",
|
||||
"ERROR_LABEL": "Error",
|
||||
"SUCCESS": "Success",
|
||||
"ETAT": "State",
|
||||
"DEPOSIT_SUCCESS": "Deposit done successfully",
|
||||
"TEXT_GUIDE_USER_1": "You have just connected.\n Your location is marked in the center of the map with the indication \"You are here\" ",
|
||||
"TEXT_GUIDE_USER_3": "Clicking the '+' button will open the options menu",
|
||||
"TEXT_GUIDE_USER_4": "Click on a marker to get the information on a point",
|
||||
|
@ -450,7 +458,6 @@
|
|||
"CHOOSE_LANGUAGE": "Choose the language",
|
||||
"MODIFY_PASSWORD": "Forgotten password",
|
||||
"CONTACT": "Contact",
|
||||
"UPDATE": "... update",
|
||||
"FAQ": "FAQ",
|
||||
"UPDATE_POSITION_TEXT": "Update my position",
|
||||
"YOU_ARE": "Are you?",
|
||||
|
@ -514,11 +521,13 @@
|
|||
"HISTORY_TYPE": "Type",
|
||||
"HISTORY_TYPE_ASK": "Requests",
|
||||
"REQUEST_RECEIVE": "Requests received",
|
||||
"DEMANDE_RECEIVE": "Request received",
|
||||
"MY_DEMANDE": "My requests",
|
||||
"PHONE_TRANSACTION": "Transaction number",
|
||||
"DEMAND_TEXT_FIRST_PART": "made a request for",
|
||||
"DEMAND_TEXT_FIRST_PART_YOU": "You made a request for ",
|
||||
"REQUEST_SEND": "Request Sent",
|
||||
"DEMANDE_SEND": "Request sent",
|
||||
"DEMAND_RECEIVE": "Requests received",
|
||||
"DEMAND_VALIDATION_GROUP_RECEIVE": "Validation requests",
|
||||
"DEMAND_DELETE_GROUP_RECEIVE": "Removal requests",
|
||||
|
@ -537,8 +546,8 @@
|
|||
"MEMBERSHIP_REQUEST": "Membership applications",
|
||||
"HISTORY_TYPE_REQUEST": "Queries",
|
||||
"TREAT": "Processed",
|
||||
"EXIT_TITLE": "Close iLink World!",
|
||||
"EXIT_DESC": "Do you really want to close iLink World?",
|
||||
"EXIT_TITLE": "Close SIM_ba!",
|
||||
"EXIT_DESC": "Do you really want to close SIM_ba?",
|
||||
"NO_TREAT": "Unprocessed",
|
||||
"EXIT": "Close",
|
||||
"PERIOD": "Period",
|
||||
|
@ -551,7 +560,7 @@
|
|||
"ACCOUNT_ACTIVATE_TEXT": "Your account has been activated successfully!",
|
||||
"HISTORY_END": "End",
|
||||
"DONT_VALIDATE_ACCOUNT": "Account not validated",
|
||||
"CONNEXION_SUCCESSFULL_TEXT": "Successful login Welcome to iLink World!",
|
||||
"CONNEXION_SUCCESSFULL_TEXT": "Successful login Welcome to SIM_ba!",
|
||||
"UNVALIDATE_ACCOUNT_TEXT": "Your hypervisor has not yet verified your account",
|
||||
"TEXT_NEED_POSITION": "Please update your location!",
|
||||
"TITLE_NEED_POSITION": "Your location needs to be updated",
|
||||
|
@ -564,12 +573,12 @@
|
|||
"TITLE_PROBLE_COME": "A problem has been encountered",
|
||||
"TITLE_SUPPRESS_CONFIRM": "Confirm deletion",
|
||||
"TEXT_SUPPRESS_CONFIRM": "Do you really want to delete this user ?",
|
||||
"TEXT_ERROR_START_APPLICATION": "An error occurred while starting iLink World, please restart iLink World",
|
||||
"TEXT_UNABLE_TO_GET_YOUR_POSITION": "Unable to retrieve your location, please make sure your GPS is enabled and restart iLink World",
|
||||
"TEXT_ERROR_START_APPLICATION": "An error occurred while starting SIM_ba, please restart SIM_ba",
|
||||
"TEXT_UNABLE_TO_GET_YOUR_POSITION": "Unable to retrieve your location, please make sure your GPS is enabled and restart SIM_ba",
|
||||
"RESTART": "REPEAT",
|
||||
"TEXT_UNABLE_TO_GET_COUNTRY_INFO": "Unable to retrieve information from your country, check your internet connection, click \" Ok \"to try again,",
|
||||
"TITLE_UNABLE_TO_AUTORISE": "Failed to Authorize",
|
||||
"MISSING_AUTORISATION_LOCATION": "iLink World is not authorized to access your location, please allow iLink World to access your location and restart iLink World",
|
||||
"MISSING_AUTORISATION_LOCATION": "SIM_ba is not authorized to access your location, please allow SIM_ba to access your location and restart SIM_ba",
|
||||
"TEXT_FORGOTTEN_PASSWORD": "Enter your username, we will send you a new password",
|
||||
"TEXT_NETWORK_UNABLE": "Network not available, want to try again?",
|
||||
"LOADING_TEXT_MARKERS": "More points",
|
||||
|
@ -578,7 +587,7 @@
|
|||
"NO_POINT_FOUND": "No points found ",
|
||||
"LAUNCH_POINT_WITH_FILTER": "Do you want to restart the search within a radius of ",
|
||||
"UNABLE_GET_INFORMATION": "Problem of retrieval of information",
|
||||
"UNABLE_GET_INFORMATION_TEXT": "Make sure your GPS is turned on and put in high precision mode and restart iLink World",
|
||||
"UNABLE_GET_INFORMATION_TEXT": "Make sure your GPS is turned on and put in high precision mode and restart SIM_ba",
|
||||
"TITLE_HELP_SOON": "Help not available!",
|
||||
"YOUR_NETWORK": "Select your network",
|
||||
"YOUR_NETWORK_SELECTED": "Your network",
|
||||
|
@ -605,7 +614,7 @@
|
|||
"NUMERO_QUITANCE_SUCCES": "Successful receipt number",
|
||||
"ORDRE_RECETTE_MODIFY_SUCCES": "Recipe order number successfully changed",
|
||||
"NUMERO_QUITANCE_MODIFY_SUCCES": "Receipt number changed successfully",
|
||||
"TAXES_SUR_LA_PROPRETE": "Tax on cleanliness",
|
||||
"TAXES_SUR_LA_PROPRETE": "Synthetic general tax *",
|
||||
"SAVE": "Save",
|
||||
"TEXT_SUPPRESS_CONFIRM_TAXE": "Are you sure you want to remove this tax?",
|
||||
"NUMERO_QUITANCE": "Receipt number",
|
||||
|
@ -613,7 +622,6 @@
|
|||
"ORDRE_DE_RECETTE": "Recipe order",
|
||||
"MODIFY_ORDRE_DE_RECETTE": "Change recipe order",
|
||||
"ORDRE_DE_RECETTE_NUMBER": "Recipe order number",
|
||||
"ORDRE_RECETTE_SUCCES": "Recipe order successfully changed",
|
||||
"RECEIPT_NUMBER": "Receipt number",
|
||||
"NUMBER": "Number",
|
||||
"ACTION": "Action",
|
||||
|
@ -632,12 +640,10 @@
|
|||
"PAYMENT_DEADLINE": "Payment deadline",
|
||||
"TAX_NOTICE_CREATED_AT": "Tax notice created at",
|
||||
"TOTAL_AMOUNT": "Total amount",
|
||||
"UPDATE_DATE": "Update date",
|
||||
"YEAR": "Year",
|
||||
"TYPE": "Type",
|
||||
"CODE_MEMBRE": "Sponsor code",
|
||||
"DISTRICT": "District",
|
||||
"IDENTIFICATION_NUMBER": "Identification number",
|
||||
"MUNICIPALITY": "Municipality",
|
||||
"ID_PATENTE": "ID patent",
|
||||
"NETWORK_ID": "Network ID",
|
||||
|
@ -650,7 +656,7 @@
|
|||
"PRINCIPAL_AMOUNT": "Principal amount",
|
||||
"DATE_AVIS_IMPOSITION": "Tax notice date",
|
||||
"TEXT_NETWORK_UNABLE_CHOOSE_ANOTHER": "This network is inactive, please choose another",
|
||||
"ENTER_SPONSOR_CODE": "Renseignez votre code parrain",
|
||||
"ENTER_SPONSOR_CODE": "Enter your hierarchical code or tax",
|
||||
"NOM_SOCIETE": "Society name",
|
||||
"TAKE_My_POSITION": "Retreive position",
|
||||
"CREATE_ACTIF": "Create asset",
|
||||
|
@ -691,6 +697,7 @@
|
|||
"PENALITE_ON_TAXE": "Penalty on taxes",
|
||||
"PENALITE_MANAGE": "Penalty management",
|
||||
"PENALITE": "Penalty",
|
||||
"PENALITES": "Penalty",
|
||||
"NO_PENALITE": "No penality",
|
||||
"MODIFY_PENALITE": "Modify penality",
|
||||
"DELETE_PENALITE": "Delete penality",
|
||||
|
@ -698,10 +705,12 @@
|
|||
"TAUX_PENALITE": "Penalty rate (%)",
|
||||
"TAUX": "Rate",
|
||||
"NO_ORDRE_RECETTE_WITH_QUITANCE": "No recipe order with tax notice",
|
||||
"SAVE_PENALITY": "Penalty saved",
|
||||
"SAISIE_PENALITY": "Entering penalties",
|
||||
"MODIFICATION_SAISIE_PENALITY": "Modification/Deletion",
|
||||
"YOU_HAVE_DEFINED_PENALITY_FOR_THIS_YEAR": "You have already set a penalty for the following year(s)",
|
||||
"AMOUNT_ORDRE_RECETTE": "Revenue order amount",
|
||||
"AMOUNT_TAX_NOTICE": "Tax Notice Amount",
|
||||
"YOU_CANT_DELETE_LAST_TAX_NOTICE": "A discharge must contain at least one receipt order",
|
||||
"WOULD_YOU_WANT_SEARCH_BY_NAME": "Would you want to make search by name ?",
|
||||
"USAGER_NAME": "User name",
|
||||
|
@ -711,5 +720,45 @@
|
|||
"BY_QR_CODE": "By QR Code",
|
||||
"SCAN": "Scan",
|
||||
"BRING_YOUR_CAMERA_CLOSER_TO_SCAN_QR_CODE": "Bring your camera closer to the QR Code to scan it",
|
||||
"LOADING_CREDIT_TRANSFER": "Credit transfert in progress..."
|
||||
}
|
||||
"CLOSE": "Close",
|
||||
"NUMBER_OF_DAYS": "Number of days",
|
||||
"NUMBER_OF_DAYS_INCORRECT": "The number of days must be between 1 and 366",
|
||||
"PENALITE_INCLUSE": "Penalty included",
|
||||
"SOINS": "Care",
|
||||
"INVOICE": "Invoice",
|
||||
"ORDRE_RECETTE_QUITANCE": "Order and receipt",
|
||||
"ID": "ID",
|
||||
"CONNEXION_CHOICE": "Choice of connection",
|
||||
"CONNEXION_CHOICE_DESCRIPTION": "A recharge agent account is associated to your number. Would you like to continue as a recharge agent?",
|
||||
"AGENTS_RECHARGE": "Refill agents",
|
||||
"LOADING_CREDIT_TRANSFER": "Credit transfert in progress...",
|
||||
"MOBILE_MONEY": "Mobile Money",
|
||||
"PAYMENT_METHOD": "Payment Method",
|
||||
"PAYMENT": "Payment",
|
||||
"AVIS_NON_EMIS": "Notice Not Issued",
|
||||
"PAYMENT_COULD_NOT_MADE": "The payment could not be made",
|
||||
"CASH": "Cash",
|
||||
"HIERACHIC_CODE": "Hierachic code",
|
||||
"HIERACHIC_CODE_DESCRIPTION": "Code entered when creating a tax administrator or registrar",
|
||||
"TAX_CODE": "Tax code",
|
||||
"TAX_CODE_DESCRIPTION": "Code entered when creating a taxpayer",
|
||||
"FIND_A_NEIGHBORHOOD": "Find a neighborhood *",
|
||||
"WHATS_YOUR_BUSINESS": "What's your business? *",
|
||||
"ID_CARD_NUMBER": "ID Card Number",
|
||||
"BIRTH_DATE": "Date of Birth *",
|
||||
"BIRTH_PLACE": "Place of Birth *",
|
||||
"BIRTH_COUNTRY": "Country of Birth *",
|
||||
"NATIONALITY_FORM": "Nationality *",
|
||||
"MOTHER_LASTNAME": "Mother's Last Name *",
|
||||
"MOTHER_FIRSTNAME": "Mother's First Name",
|
||||
"FATHER_LASTNAME": "Father's Last Name *",
|
||||
"FATHER_FIRSTNAME": "Father's First Name",
|
||||
"SIGNBOARD": "Acronym *",
|
||||
"CREATION_DATE": "Creation Date",
|
||||
"TECHNICAL_APPROVAL": "Technical Approval",
|
||||
"TRADE_LICENSE": "Business License",
|
||||
"MERCURIAL_VALUE": "Mercurial Value ",
|
||||
"CONSTRUCTION_VALUE": "Enter the Construction Value",
|
||||
"BUILDING_CONSTRUCTED": "Building Constructed",
|
||||
"PAY": "Pay"
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"WELCOME": "Bienvenue sur iLink City !",
|
||||
"WELCOME": "Bienvenue sur SIM_ba Mobile !",
|
||||
"WAITING_LONG": "Veuillez patienter un instant",
|
||||
"HELP": "Aide",
|
||||
"SIMPLE_USER": "Utilisateur simple",
|
||||
|
@ -45,7 +45,7 @@
|
|||
"SUCCESS": "Succès",
|
||||
"ETAT": "Etat",
|
||||
"MY_ACCOUNT": "Mon compte",
|
||||
"WALLET": "Wallet",
|
||||
"WALLET": "Portefeuille",
|
||||
"DEPOSIT": "Dépôt",
|
||||
"EN_ATTENTE_DE_VALIDATION": "En attente de validation",
|
||||
"REMBOURSE": "Remboursé",
|
||||
|
@ -134,7 +134,6 @@
|
|||
"TAXE": "Taxe",
|
||||
"INTERET": "Intérêt",
|
||||
"SOCIETY_TYPE": "Type de société",
|
||||
"IDENTIFICATION_NUMBER": "Numéro d'identification",
|
||||
"REGISTRE_COMMERCE": "Registre de commerce",
|
||||
"NOM_RESPONSABLE": "Nom du responsable",
|
||||
"COMMUNE_SIEGE_SOCIAL": "Commune du siège social",
|
||||
|
@ -148,9 +147,9 @@
|
|||
"ANNEE_TAXE_N_1": "Année taxé payée N-1",
|
||||
"ANNEE_TAXE_N_2": "Année taxé payée N-2",
|
||||
"TYPE_ACTIVITE": "Type d'activité",
|
||||
"TECHNICAL_AGREMENT": "Agrément technique",
|
||||
"IMMATRICULATION_DGI": "Immatriculation DGI",
|
||||
"INFORMATION_FICHE_CIRCUIT": "Information fiche circuit",
|
||||
"TECHNICAL_AGREMENT": "Agrément technique ou Licence",
|
||||
"IMMATRICULATION_DGI": "NIU",
|
||||
"INFORMATION_FICHE_CIRCUIT": "Fiche d'identification",
|
||||
"OTHERS_INFORMATIONS": "Autres informations",
|
||||
"CREATE_GROUP": "Créer un groupe",
|
||||
"MANAGE_GROUP": "Gérer le groupe",
|
||||
|
@ -258,7 +257,6 @@
|
|||
"NO_WALLET_ACTIVED": "Aucun wallet n'est activé pour votre compte",
|
||||
"TRANSFER_TO_PRINCIPAL_ACCOUNT": "Transférer commissions",
|
||||
"PRINCIPAL": "Principal",
|
||||
"CREATION_DATE": "Date de création",
|
||||
"ENTER_YOUR_CARD_ID": "Entrer vos identifiants bancaires",
|
||||
"THE_ACCOUNT": "Le compte ",
|
||||
"NO_GEO_POINT_CODE": "Vous n'avez aucun point geolocalisé libre",
|
||||
|
@ -285,6 +283,8 @@
|
|||
"IMAGE_TAKE": "Prise d'image",
|
||||
"NAME": "Nom(s)",
|
||||
"FIRSTNAME": "Prénom(s) ",
|
||||
"CIVILITY": "Civilité",
|
||||
"NATIONALITY": "Nationalité",
|
||||
"NAME_EMETTEUR": "Nom(s) émetteur",
|
||||
"EMETTEUR": "Emetteur",
|
||||
"FIRSTNAME_EMETTEUR": "Prénom(s) émetteur",
|
||||
|
@ -301,15 +301,15 @@
|
|||
"SUPER_ADMIN": "Super administrateur",
|
||||
"GEOLOCATED": "Agent géo-localisé",
|
||||
"DELETE_GEOLOCATED_USER": "Supprimer",
|
||||
"ADDRESS": "Adresse",
|
||||
"ADDRESS": "Adresse EX:TotalEnergies Bonateki",
|
||||
"CREDIT": "Crédit",
|
||||
"NEXT": "Suivant",
|
||||
"PREVIOUS": "Précédent",
|
||||
"SPONSOR_CODE": "Code réseau de taxe",
|
||||
"CODE_PARRAIN": "Code parrain",
|
||||
"SPONSOR_CODE": "Code classe de taxes",
|
||||
"CODE_PARRAIN": "Code hiérarchique ou taxe",
|
||||
"CODE_SPONSOR": "Code sponsor",
|
||||
"SOLDE_UNVAIBLE": "solde non disponible",
|
||||
"TEXT_BIG_CREATE_AGENT_1": "Inscrivez-vous en tant qu'agent",
|
||||
"TEXT_BIG_CREATE_AGENT_1": "Créer un administrateur un régisseur ou un contribuable",
|
||||
"EMAIL": "Email",
|
||||
"COUNTRY": "Pays",
|
||||
"LOADING_INFO": "Chargement des informations...",
|
||||
|
@ -384,7 +384,7 @@
|
|||
"OK": "OK",
|
||||
"SIMPLE": "Simple",
|
||||
"BLOCKED": "Bloqué",
|
||||
"APP_FULLNAME": "Ilink City",
|
||||
"APP_FULLNAME": "SIM_ba Mobile",
|
||||
"GUIDE_TITLE": "Bienvenue dans le Guide de",
|
||||
"GUIDE_USER_SIMPLE": "Guide pour un utilisateur",
|
||||
"GUIDE_AGENT": "Guide pour un agent",
|
||||
|
@ -424,9 +424,9 @@
|
|||
"TEXT_GUIDE_USER_11": "Cliquez sur l'option de profil pour avoir des informations lier à votre compte",
|
||||
"CATEGORY": "Catégorie",
|
||||
"WAY": "Itinéraire",
|
||||
"ADD_NETWORK": "Ajouter réseau de taxe",
|
||||
"ADD_NETWORK": "Ajouter une classe de taxes",
|
||||
"POINT_NUMBER": "Nombres de points",
|
||||
"SUPERIOR_CODE": "Code parrain",
|
||||
"SUPERIOR_CODE": "Code hiérarchique ou taxe",
|
||||
"ADD_SUCCES": "Ajout reussi",
|
||||
"ADD_SUCCESS_TEXT": "La taxe a été ajoutée avec succès ",
|
||||
"MEMBER_CODE": "Code membre",
|
||||
|
@ -521,11 +521,13 @@
|
|||
"HISTORY_TYPE": "Type",
|
||||
"INVALID_MONTANT": "Montant invalide",
|
||||
"HISTORY_TYPE_ASK": "Demandes",
|
||||
"REQUEST_RECEIVE": "Demande reçue",
|
||||
"DEMANDE_RECEIVE": "Demandes reçues",
|
||||
"MY_DEMANDE": "Mes demandes",
|
||||
"PHONE_TRANSACTION": "Numéro de transaction",
|
||||
"DEMAND_TEXT_FIRST_PART": "a effectué une demande de ",
|
||||
"DEMAND_TEXT_FIRST_PART_YOU": "Vous avez effectué une demande de ",
|
||||
"REQUEST_SEND": "Demande envoyée",
|
||||
"DEMANDE_SEND": " Demande Envoyée",
|
||||
"DEMAND_RECEIVE": "Demandes reçues",
|
||||
"DEMAND_VALIDATION_GROUP_RECEIVE": "Demandes de validation",
|
||||
|
@ -544,8 +546,8 @@
|
|||
"MEMBERSHIP_REQUEST": "Demandes d'adhésion",
|
||||
"HISTORY_TYPE_REQUEST": "Requêtes",
|
||||
"TREAT": "Traité",
|
||||
"EXIT_TITLE": "Fermer iLink City !",
|
||||
"EXIT_DESC": "Voulez-vous vraiment fermer iLink City ?",
|
||||
"EXIT_TITLE": "Fermer SIM_ba Mobile !",
|
||||
"EXIT_DESC": "Voulez-vous vraiment fermer SIM_ba Mobile ?",
|
||||
"NO_TREAT": "Non traité",
|
||||
"EXIT": "Fermer",
|
||||
"PERIOD": "Période",
|
||||
|
@ -558,7 +560,7 @@
|
|||
"ACCOUNT_ACTIVATE_TEXT": "Votre compte a été activé avec succès !",
|
||||
"HISTORY_END": "Fin",
|
||||
"DONT_VALIDATE_ACCOUNT": "Compte non validé",
|
||||
"CONNEXION_SUCCESSFULL_TEXT": "Connexion réussie. Bienvenue dans iLink City ! ",
|
||||
"CONNEXION_SUCCESSFULL_TEXT": "Connexion réussie. Bienvenue dans SIM_ba Mobile ! ",
|
||||
"UNVALIDATE_ACCOUNT_TEXT": "Votre hyperviseur n'a pas encore validé votre compte",
|
||||
"TEXT_NEED_POSITION": "Veuillez mettre à jour votre position !",
|
||||
"TITLE_NEED_POSITION": "Votre position doit être mise à jour",
|
||||
|
@ -571,12 +573,12 @@
|
|||
"TITLE_PROBLE_COME": "Un problème a été rencontré",
|
||||
"TITLE_SUPPRESS_CONFIRM": "Confirmation de suppression",
|
||||
"TEXT_SUPPRESS_CONFIRM": "Voulez vous vraiment supprimer cet utilisateur ?",
|
||||
"TEXT_ERROR_START_APPLICATION": "Une erreur est survenue au démarrage de iLink City. Veuillez relancer iLink City",
|
||||
"TEXT_UNABLE_TO_GET_YOUR_POSITION": "Impossible de recupérez votre position. Veuillez verifier que votre GPS est activé et relancez iLink City",
|
||||
"TEXT_ERROR_START_APPLICATION": "Une erreur est survenue au démarrage de SIM_ba Mobile. Veuillez relancer SIM_ba Mobile",
|
||||
"TEXT_UNABLE_TO_GET_YOUR_POSITION": "Impossible de recupérez votre position. Veuillez verifier que votre GPS est activé et relancez SIM_ba Mobile",
|
||||
"RESTART": "RECOMMENCER",
|
||||
"TEXT_UNABLE_TO_GET_COUNTRY_INFO": "Impossible de recupérer les informations de votre pays. Verifiez votre connexion internet ! cliquez sur \"Ok\" pour reessayer",
|
||||
"TITLE_UNABLE_TO_AUTORISE": "Echec de l'autorisation",
|
||||
"MISSING_AUTORISATION_LOCATION": "iLink City n'est pas autorisé à acceder à votre position. Veuillez autoriser iLink City à accéder à votre localisation et relancez iLink City",
|
||||
"MISSING_AUTORISATION_LOCATION": "SIM_ba Mobile n'est pas autorisé à acceder à votre position. Veuillez autoriser SIM_ba Mobile à accéder à votre localisation et relancez SIM_ba Mobile",
|
||||
"TEXT_FORGOTTEN_PASSWORD": "Saisissez votre identifiant,nous vous enverrons un nouveau mot de passe\n",
|
||||
"TEXT_NETWORK_UNABLE": "Réseau non disponible, voulez vous réessayer ?",
|
||||
"LOADING_TEXT_MARKERS": "Suite des points ",
|
||||
|
@ -585,10 +587,10 @@
|
|||
"LAUNCH_POINT_WITH_FILTER": "Voulez-vous relancer la recherche dans un rayon de ",
|
||||
"LOADING_TEXT_MARKERS_2": "autour",
|
||||
"UNABLE_GET_INFORMATION": "Problème de récuperation des Informations",
|
||||
"UNABLE_GET_INFORMATION_TEXT": "Vérifiez que votre GPS est activé et mis en mode haute precision et relancez iLink City",
|
||||
"UNABLE_GET_INFORMATION_TEXT": "Vérifiez que votre GPS est activé et mis en mode haute precision et relancez SIM_ba Mobile",
|
||||
"TITLE_HELP_SOON": "Aide non disponible !",
|
||||
"YOUR_NETWORK": "Sélectionner votre réseau",
|
||||
"YOUR_NETWORK_SELECTED": "Votre réseau",
|
||||
"YOUR_NETWORK_SELECTED": "Classe de la taxe",
|
||||
"UNIT_PER_TAXE_UNIT_COUNT": "Taxe par unité",
|
||||
"HELP_SOON": "Un tutoriel vous aidant dans la compréhension des fonctionnalités de l'application vous sera bientôt mis à disposition.",
|
||||
"UPLOAD_PHOTO": "Chargement de la photo",
|
||||
|
@ -599,24 +601,22 @@
|
|||
"ORDRE_RECETTE": "Ordre recette",
|
||||
"NO_ORDRE_RECETTE": "Aucun ordre de recette",
|
||||
"MODIFICATION_ORDRE_RECETTE": "Modifier ordre recette",
|
||||
"SAISIE_NUMERO_QUITANCE": "Saisir numéro quitance",
|
||||
"MODIFICATION_NUMERO_QUITANCE": "Modifier numéro quitance",
|
||||
"SAISIR_QUITANCE": "Saisir quitance",
|
||||
"SAISIE_NUMERO_QUITANCE": "Effectuer un paiement",
|
||||
"MODIFICATION_NUMERO_QUITANCE": "Modifier numéro quittance",
|
||||
"SAISIR_QUITANCE": "Gestion paiement ou quittance",
|
||||
"CODE_AGENT": "Code agent ",
|
||||
"AVIS_IMPOSITION": "Déclaration",
|
||||
"AGENT_INFORMATION": "Informations sur l'agent",
|
||||
"UPDATE_DATE": "Date de mis à jour",
|
||||
"ASSIGN_TO_AGENT": "Assigner à un agent",
|
||||
"AVIS_MODIFY_SUCCESS": "Avis modifié avec succès",
|
||||
"ORDRE_RECETTE_SUCCES": "Ordre de recette saisi avec succès",
|
||||
"NUMERO_QUITANCE_SUCCES": "Numéro de quitance enregistré avec succès",
|
||||
"NUMERO_QUITANCE_SUCCES": "Numéro de quittance enregistré avec succès",
|
||||
"ORDRE_RECETTE_MODIFY_SUCCES": "Numéro ordre de recette modifié avec succès",
|
||||
"NUMERO_QUITANCE_MODIFY_SUCCES": "Numéro de quitance modifié avec succès",
|
||||
"TAXES_SUR_LA_PROPRETE": "Taxe sur la propreté",
|
||||
"NUMERO_QUITANCE_MODIFY_SUCCES": "Numéro de quittance modifié avec succès",
|
||||
"TAXES_SUR_LA_PROPRETE": "Impôt général synthétique *",
|
||||
"SAVE": "Enregistrer",
|
||||
"TEXT_SUPPRESS_CONFIRM_TAXE": "Voulez vous vraiment supprimer cette taxe?",
|
||||
"NUMERO_QUITANCE": "Numéro quitance",
|
||||
"QUITANCE": "Quitance",
|
||||
"NUMERO_QUITANCE": "Numéro quittance",
|
||||
"QUITANCE": "Quittance",
|
||||
"ORDRE_DE_RECETTE": "Ordre de recette",
|
||||
"MODIFY_ORDRE_DE_RECETTE": "Modifier ordre de recette",
|
||||
"ORDRE_DE_RECETTE_NUMBER": "Numéro d'ordre de recette",
|
||||
|
@ -624,7 +624,6 @@
|
|||
"RECEIPT_NUMBER": "Numéro de reçu",
|
||||
"NUMBER": "Numéro",
|
||||
"ACTION": "Action",
|
||||
"UPDATE": "Mis à jour",
|
||||
"ADD": "Ajout",
|
||||
"ID_REVENUE_ORDRE": "ID ordre de recette",
|
||||
"ID_SUPER": "ID superviseur",
|
||||
|
@ -649,21 +648,21 @@
|
|||
"ID_PATENTE": "ID patente",
|
||||
"NETWORK_ID": "ID du réseau",
|
||||
"NEIGHTBORHOOD": "Quartier",
|
||||
"ORDRE_RECETTE_RECEIPT": "Recette et quitance",
|
||||
"ORDRE_RECETTE_RECEIPT": "Recette et quittance",
|
||||
"HISTORY_OF": "Historique des",
|
||||
"AVIS_IMPOSITIONS": "déclarations",
|
||||
"ORDRE_RECETTES_RECEIPTS": "recettes et quitances",
|
||||
"QUITANCES": "quitances",
|
||||
"ORDRE_RECETTES_RECEIPTS": "recettes et quittances",
|
||||
"QUITANCES": "quittances",
|
||||
"PRINCIPAL_AMOUNT": "Montant principal",
|
||||
"DATE_AVIS_IMPOSITION": "Date avis imposition",
|
||||
"TEXT_NETWORK_UNABLE_CHOOSE_ANOTHER": "Ce réseau n'est pas actif, veuillez choisir un autre",
|
||||
"ENTER_SPONSOR_CODE": "Renseignez votre code parrain",
|
||||
"ENTER_SPONSOR_CODE": "Renseignez votre code hiérarchique ou taxe",
|
||||
"NOM_SOCIETE": "Nom de la société",
|
||||
"TAKE_My_POSITION": "Récupération de votre position",
|
||||
"CREATE_ACTIF": "Créer un actif",
|
||||
"IMPOSSIBLE_TO_CONNECT_INTERNET": "Vérifier votre connexion internet. Voulez-vous réessayer ?",
|
||||
"REGISTER_OPTIONS": "Options d'enregistrement",
|
||||
"WOULD_YOU_WANT_TO_REGISTER_OFFLINE": "Voulez-vous enregistrer un usager en ligne ?",
|
||||
"WOULD_YOU_WANT_TO_REGISTER_OFFLINE": "Voulez-vous enregistrer un contribuable en ligne ?",
|
||||
"DATA_NOT_SYNCHRONISED_WITH_SERVER": "Les données nécessaires au mode offline n'ont pas été sauvegarder. Voulez-vous vous connecter et réessayez ?",
|
||||
"CODE_AGENT_NOT_EXIST": "Ce code agent n'existe pas",
|
||||
"FOR_THIS_KING_OF_USER_PLEASE_CONNECT": "Pour enregistrer ce type d'agent, veuillez vous connecter",
|
||||
|
@ -673,13 +672,13 @@
|
|||
"HOW_WOULD_YOU_WANT_TO_TAKE_IMAGE": "Comment voulez-vous prendre l'image?",
|
||||
"FROM_GALLERY": "Depuis la galerie",
|
||||
"FROM_CAMERA": "Depuis la caméra",
|
||||
"USAGER_SAVED_SUCCESSFULLY": "Usager enregistré avec succès sur votre mobile",
|
||||
"USAGER_SAVED_SUCCESSFULLY": "contribuable enregistré avec succès sur votre mobile",
|
||||
"ACTIF_SAVED_SUCCESSFULLY": "Actif enregistré avec succès sur votre mobile",
|
||||
"SAUVEGARDER_OF_USAGER": "Création des comptes usagers: ",
|
||||
"SAUVEGARDER_OF_USAGER_LOADING_SAVE": "Création des comptes usagers sauvegardés... ",
|
||||
"SAUVEGARDER_OF_USAGER": "Création des contribuables: ",
|
||||
"SAUVEGARDER_OF_USAGER_LOADING_SAVE": "Création des contribuables sauvegardés... ",
|
||||
"SAUVEGARDER_OF_ACTIF_LOADING_SAVE": "Création des actifs sauvegardés... ",
|
||||
"LIMITE_ACTIF_LOCAL_ATTEINTE": "Vous avez enregistré de nombreux actifs, veuillez les synchroniser avant de réessayer",
|
||||
"LIMITE_USAGER_LOCAL_ATTEINTE": "Vous avez enregistré de nombreux usagers, veuillez les synchroniser avant de réessayer",
|
||||
"LIMITE_USAGER_LOCAL_ATTEINTE": "Vous avez enregistré de nombreux contribuables, veuillez les synchroniser avant de réessayer",
|
||||
"DO_YOU_WANT_TO_ADD_ANOTHER_TAXES": "Voulez-vous rajouter une taxe sur la publicité ?",
|
||||
"TAXES_SUR_LA_PUBLICITE": "Taxes sur la publicité",
|
||||
"TAXE_REQUIRED_IMAGE": "L'image est requise pour la taxe",
|
||||
|
@ -693,7 +692,6 @@
|
|||
"ACTIF": "actif",
|
||||
"ACTIFS": "actifs",
|
||||
"TAXE_INFORMATION": "Informations sur la déclaration",
|
||||
"ACTIFS": "actifs",
|
||||
"NUMERO_AVIS_IMPOSITION": "N° déclaration",
|
||||
"ADD_ORDRE_RECETTE": "Ajouter un ordre de recette",
|
||||
"PENALITE_ON_TAXE": "Pénalité sur les taxes",
|
||||
|
@ -706,18 +704,18 @@
|
|||
"DELETE_PENALITE": "Supprimer la pénalité",
|
||||
"TAUX_PENALITE": "Taux de pénalité (%)",
|
||||
"TAUX": "Taux",
|
||||
"NO_ORDRE_RECETTE_WITH_QUITANCE": "Aucun ordre de recette sans quitance",
|
||||
"NO_ORDRE_RECETTE_WITH_QUITANCE": "Aucun ordre de recette sans quittance",
|
||||
"SAVE_PENALITY": "Taux",
|
||||
"SAISIE_PENALITY": "Saisie des pénalités",
|
||||
"MODIFICATION_SAISIE_PENALITY": "Modification/Suppression",
|
||||
"YOU_HAVE_DEFINED_PENALITY_FOR_THIS_YEAR": "Vous avez déjà définit une pénalité pour les années suivantes:",
|
||||
"AMOUNT_ORDRE_RECETTE": "Montant de l'ordre de recette",
|
||||
"AMOUNT_TAX_NOTICE": "Montant de la déclaration",
|
||||
"YOU_CANT_DELETE_LAST_TAX_NOTICE": "Une quitance doit contenir au moins un ordre de recette",
|
||||
"WOULD_YOU_WANT_SEARCH_BY_NAME": "Voulez-vous rechercher l'usager par son nom ?",
|
||||
"USAGER_NAME": "Nom de l'usager",
|
||||
"NO_USAGER_CORRESPONDING_TO_SEARCH": "Aucun usager ne correspond à votre recherche",
|
||||
"USAGER_SEARCH": "Recherche d'un usager",
|
||||
"YOU_CANT_DELETE_LAST_TAX_NOTICE": "Une quittance doit contenir au moins un ordre de recette",
|
||||
"WOULD_YOU_WANT_SEARCH_BY_NAME": "Voulez-vous rechercher le contribuable par son nom ?",
|
||||
"USAGER_NAME": "Nom du contribuable",
|
||||
"NO_USAGER_CORRESPONDING_TO_SEARCH": "Aucun contribuable ne correspond à votre recherche",
|
||||
"USAGER_SEARCH": "Recherche d'un contribuable",
|
||||
"BY_NAME": "Par nom",
|
||||
"BY_QR_CODE": "Par QR Code",
|
||||
"SCAN": "Scanner",
|
||||
|
@ -728,7 +726,7 @@
|
|||
"PENALITE_INCLUSE": "Pénalité incluse",
|
||||
"SOINS": "Soins",
|
||||
"INVOICE": "Facture",
|
||||
"ORDRE_RECETTE_QUITANCE": "Ordre et quitance",
|
||||
"ORDRE_RECETTE_QUITANCE": "Ordre et quittance",
|
||||
"ID": "ID",
|
||||
"CONNEXION_CHOICE": "Choix de connexion",
|
||||
"CONNEXION_CHOICE_DESCRIPTION": "Un compte agent de recharge est associé à votre numéro. Voulez vous continuer en tant que agent recharge ?",
|
||||
|
@ -739,5 +737,28 @@
|
|||
"PAYMENT": "Paiement",
|
||||
"AVIS_NON_EMIS": "Avis non émis",
|
||||
"PAYMENT_COULD_NOT_MADE": "Le paiement n'a pas pu être effectué",
|
||||
"CASH": "Cash"
|
||||
}
|
||||
"CASH": "Cash",
|
||||
"HIERACHIC_CODE": "Code hiérarchique",
|
||||
"HIERACHIC_CODE_DESCRIPTION": "Code entré lors de la création d'un administrateur de taxe ou d'un régisseur",
|
||||
"TAX_CODE": "Code taxe",
|
||||
"TAX_CODE_DESCRIPTION": "Code entré lors de la création d'un contribuable",
|
||||
"FIND_A_NEIGHBORHOOD": "Rechercher un quartier *",
|
||||
"WHATS_YOUR_BUSINESS": "Quelle est votre activité *",
|
||||
"ID_CARD_NUMBER": "Numéro de la CNI",
|
||||
"BIRTH_DATE": "Date de naissance *",
|
||||
"BIRTH_PLACE": "Lieu de naissance *",
|
||||
"BIRTH_COUNTRY": "Pays de naissance *",
|
||||
"NATIONALITY_FORM": "Nationalité *",
|
||||
"MOTHER_LASTNAME": "Nom de la mère *",
|
||||
"MOTHER_FIRSTNAME": "Prénom de la mère",
|
||||
"FATHER_LASTNAME": "Nom du père *",
|
||||
"FATHER_FIRSTNAME": "Prénom du père",
|
||||
"SIGNBOARD": "Sigle *",
|
||||
"CREATION_DATE": "Date de création",
|
||||
"TECHNICAL_APPROVAL": "Agrément technique",
|
||||
"TRADE_LICENSE": "Patente",
|
||||
"MERCURIAL_VALUE": "Valeur mercuriale ",
|
||||
"CONSTRUCTION_VALUE": "Saisir la valeur de la construction",
|
||||
"BUILDING_CONSTRUCTED": "Immeuble bâti",
|
||||
"PAY": "Payer"
|
||||
}
|
||||
|
|
|
@ -103,7 +103,9 @@ async function queryData(data, url) {
|
|||
body: JSON.stringify(data),
|
||||
});
|
||||
let responseJson = null;
|
||||
console.log("response1===>>",data,response)
|
||||
let responseText = await response.text()
|
||||
console.log("response2===>>",data,responseText)
|
||||
try {
|
||||
console.warn("SERVER RESPONSE SUCCESS", responseText);
|
||||
responseJson = JSON.parse(responseText)
|
||||
|
@ -395,6 +397,9 @@ export const getTownInformationName = (town) => {
|
|||
export const getSupervisorInfoCode = () => {
|
||||
return queryData({"type": "all_supervisors_info_code", "tag": "member"}, memberActionUrl);
|
||||
}
|
||||
export const getSupervisorInfoCodeOffline = () => {
|
||||
return queryData({"type": "supervisors_infos_off_line", "tag": "member"}, memberActionUrl);
|
||||
}
|
||||
export const generateAgentGeo = async (newPhone) => {
|
||||
const user = await readUser();
|
||||
const items = await queryData({
|
||||
|
@ -406,7 +411,7 @@ export const generateAgentGeo = async (newPhone) => {
|
|||
}, memberActionUrl)
|
||||
return items;
|
||||
}
|
||||
export const AssignAgentGeo = async (codeValidation, phone, taxes, id_agent, password, id_tax_notice) => {
|
||||
export const AssignAgentGeo = async (codeValidation, phone, taxes, id_agent, password, id_tax_notice, neighborhood) => {
|
||||
const user = await readUser();
|
||||
const items = await queryData({
|
||||
"type": "assignNetworkAgentToGeo",
|
||||
|
@ -418,7 +423,8 @@ export const AssignAgentGeo = async (codeValidation, phone, taxes, id_agent, pas
|
|||
"lang": I18n.currentLocale(),
|
||||
agentId: id_agent,
|
||||
password,
|
||||
id_tax_notice
|
||||
id_tax_notice,
|
||||
neighborhood
|
||||
}, memberActionUrl)
|
||||
return items;
|
||||
}
|
||||
|
|
|
@ -1,35 +1,17 @@
|
|||
export const isDebugMode = false
|
||||
//base url test
|
||||
//export const baseUrl = "https://ilink-app.com/mobilebackendbeta"
|
||||
//base url production
|
||||
//export const baseUrl = "https://ilink-app.com/mobilebackend";
|
||||
//export const baseUrl = "https://test.ilink-app.com/mobilebackendtest";
|
||||
//export const baseUrl = "http://test.ilink-app.com:8080/mobilebackendtest";
|
||||
//const baseUrl = "https://ilink-app.com/mobilebackendtest2";
|
||||
|
||||
/*export const baseUrl = "http://city.ilink-app.com:8080/mobilebackend";
|
||||
export const testBaseUrl = "https://city.ilink-app.com:8081";*/
|
||||
// TODO: Switch from test to prod and vice versa
|
||||
|
||||
// PROD URL
|
||||
// export const baseUrl = "https://city-douala3.ilink-app.com:8080/mobilebackend";
|
||||
// export const testBaseUrl= "https://city-douala3.ilink-app.com:8081";
|
||||
|
||||
// TEST URL
|
||||
export const baseUrl = "https://test-city-douala3.ilink-app.com:9080/mobilebackend";
|
||||
export const testBaseUrl= "https://test-city-douala3.ilink-app.com:9081";
|
||||
|
||||
//CUD
|
||||
// export const baseUrl = "https://test-cud.ilink-app.com:9080/mobilebackend";
|
||||
// export const testBaseUrl = "https://test-cud.ilink-app.com:9081";
|
||||
|
||||
|
||||
// les derniers api modifiers commune X
|
||||
// export const baseUrl = "http://test-city.ilink-app.com:8080/mobilebackend";
|
||||
// export const testBaseUrl = "https://test-city.ilink-app.com:8081";
|
||||
|
||||
|
||||
|
||||
|
||||
/* export const baseUrl = "https://preprod.ilink-app.com:8080/mobilebackend";
|
||||
export const testBaseUrl = "https://preprod.ilink-app.com"; */
|
||||
|
||||
//base url agent test
|
||||
//const baseUrl = "https://ilink-app.com/mobilebackendtest";
|
||||
|
||||
export const adhesionUrl = baseUrl + '/interacted/LoginAction.php';
|
||||
export const memberActionUrl = baseUrl + '/interacted/MembersAction.php';
|
||||
|
|
|
@ -3,9 +3,11 @@ import React, {Component} from 'react';
|
|||
var db = require('./persistences/db.js');
|
||||
import I18n from 'react-native-i18n'
|
||||
import {readUser} from './AuthApi'
|
||||
import {isDebugMode, MARKER_URL, mobileAppVersion, opencageDataApiUrl} from "./IlinkConstants";
|
||||
import {isDebugMode, MARKER_URL, mobileAppVersion, opencageDataApiUrl, testBaseUrl} from "./IlinkConstants";
|
||||
|
||||
let GEOCODDING_URL = "https://test-city.ilink-app.com:8081/geocode";
|
||||
// let GEOCODDING_URL = "https://city-douala3.ilink-app.com:8081/geocode";
|
||||
let GEOCODDING_URL = testBaseUrl + "/geocode"
|
||||
console.log("GEOCODDING_URL===>>",GEOCODDING_URL)
|
||||
let API_KEY = "AIzaSyAme0ZMQjUynvo6AeSVlMRzUPdcOSuPbZE"
|
||||
export const getLocalMarkers = () => {
|
||||
return db.markers.get_all()
|
||||
|
@ -47,6 +49,7 @@ export const loadNetwork = (network, userid) => {
|
|||
return queryMap(data)
|
||||
}
|
||||
export const getPositionInformation = async (position) => {
|
||||
console.log("Messi===>>",position,mobileAppVersion)
|
||||
let url = GEOCODDING_URL.concat('?latitude=' + position.latitude + "&longitude=" + position.longitude + "&mobile_app_version=" + mobileAppVersion);
|
||||
console.log("GEOCODING", url);
|
||||
const data = fetch(url, {
|
||||
|
@ -57,8 +60,9 @@ export const getPositionInformation = async (position) => {
|
|||
}
|
||||
})
|
||||
.then((response) => response.json())
|
||||
.then((responseJson) =>
|
||||
responseJson
|
||||
.then((responseJson) =>{
|
||||
console.log("Messi2===>>",responseJson)
|
||||
return responseJson}
|
||||
).catch((error) => {
|
||||
console.log("error get position")
|
||||
console.log(error)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import {AsyncStorage} from "react-native";
|
||||
|
||||
export const storeData = async (key, value) => {
|
||||
console.log("Store data ===>>")
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
const val = await AsyncStorage.setItem(key, value);
|
||||
|
|
|
@ -245,7 +245,7 @@ export const saveQuitanceAction = (data, pay = false) => {
|
|||
}
|
||||
})
|
||||
.then(response => {
|
||||
console.log(response);
|
||||
console.log("Reponse Wallet===>>",response);
|
||||
dispatch(fetchModifyAvisImpositionSuccess(response));
|
||||
})
|
||||
.catch(error => {
|
||||
|
@ -604,6 +604,8 @@ export const savePenalityReset = () => {
|
|||
};
|
||||
|
||||
export const searchUserAction = (data, searchFromMap = false) => {
|
||||
console.log("searchUserAction===>>", data, searchFromMap);
|
||||
console.log("searchUserActionUrl===>>", searchFromMap ? searchUserHomeUrl : `${searchUserUrl}?name=${data}`);
|
||||
|
||||
const auth = store.getState().authKeyReducer;
|
||||
const authKey = auth !== null ? `${auth.authKey.token_type} ${auth.authKey.access_token}` : '';
|
||||
|
|