Export données serials

  • Posts: 96
  • Thank you received: 5
  • Hikamarket Multivendor Hikaserial Standard Hikashop Business
1 week 6 days ago #365167

-- HikaShop version -- : 5.1.2
-- HikaSerial version -- : 5.0.0
-- Joomla version -- : 5.2.2
-- PHP version -- : 8.3

Bonjour,
Ma demande concerne un shop vendant des bons cadeaux de type activité/loisir avec une date d'expiration (de 2 ans) utilisant les plugin Time limited et Attach serail.

Actuellement, je peux exporter :
Dans Hikashop : Les commandes (date, montant, etc...) et les serials associés.
Dans hikaserial : Les serials, leur date d'association et leur statuts (non utilisé ou utilisé).
En faisant un tableau croisé dynamique, je peux donc savoir quels sont les serials utilisés ou non.

Seulement voilà,
Afin de pouvoir fournir à mon comptable des données complètes sur 1 année comptable, j'aurais besoin de pouvoir exporter la date de modification de statut (date où le QR est scanné).
Ceci afin de pouvoir avoir des données exactes, par an, de Serials achétés, utlisés, non utilisés ou périmés,

A ma connaissance, ce n'est actuellement pas possible via le système d'export dans Hikaserial, alors que cette donnée est bien présente dans chaque fiche de chaque serial.

Avez vous une solution à me proposer, afin de récupérer cette donnée hyper importante.
Et, si jamais, le top du top serait de pouvoir tout exporter (données Hikashop et Hikaserail) dans un même fichier :)

J'espère avoir été assez clair dans ma demande...
Merci pour votre aide précieuse.

Please Log in or Create an account to join the conversation.

  • Posts: 26185
  • Thank you received: 4030
  • MODERATOR
1 week 6 days ago #365173

Bonjour,

L'information que vous recherchez se trouve dans la table "serial history", qui va, comme son nom l'indique, contenir l'historique des changements des serials.
Afin de pouvoir connaitre la date du changement, il faut récupérer l'entrée la plus ancienne indiquant un status "used" ; cela sera le moment ou le serial sera passé de "assigned" à "used" (mais potentiellement de "created" à "used" pour les serials non consommables).
Je vous invite dans un premier temps à faire votre export en SQL, via PhpMyAdmin ou tout autre interface pour gérer votre base de données MySQL.

Actuellement, il n'y a pas de trigger dans HikaSerial pour qu'un plugin puisse interférer avec l'export des serials dans le backend.
Néanmoins, vu votre demande, nous pouvons travailler à cet ajout.

Mais vu la nature de la donnée à extraire, je pense qu'un changement dans la récupération des "rows" devrait plus vous aider.
Ainsi, si vous pouvez avoir facilement la liste des "serial_id" qui sont exportés ; vous pouvez, dans la vue "serial/export" ; lancer une seconde requête SQL pour récupérer les données spécifiques dans "serial history" et les traiter ensuite dans la boucle "for" qui s'occupe de la génération du CSV/XLS.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 96
  • Thank you received: 5
  • Hikamarket Multivendor Hikaserial Standard Hikashop Business
1 week 5 days ago #365177

Bonjour Jerome,

Bon, j'avoue, je n'ai pas tout compris...
Surtout la deuxieme partie avec les "rows" et les "for"... Je comprends l'idée de modifier la vue de l'export, mais je ne sait pas vraiment comment faire...Ce serait cool d'avoir un tuto ou un exemple.
De plus, je n'ai pas retrouvé la date de "consume" dans l'export xxx_hikaserial_history.

Mais :)
Du coup, j'ai exporté (depuis la BDD) la table xxx_hikaserial_serial ou j'ai retrouvé les données serial_assign_date et serial_consume_date.
Avec ça, je devrais pouvoir m'en soritr, ça va déjà me permettre de faire un tableau croisé dynamique (avec les commandes) propre.

Ce serait vraiment cool ! de pouvoir choisir serial_consume_date en natif dans le système d'export, voir même le numéro de commande associé et le must du must, le montant du bon cadeau - mais peut être que je rme mets à rêver :)
Tout ceci afin de n'exporter qu'un seul fichier pour les comptables et, du coup, vraiment simplifier la procédure ;)

Pour ceux que ça intéresse, lors de l'export depuis la BDD, les dates se retrouve encodée en timestamp Unix, qui représentent le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC
Pour les passer dans le bon format :
- Ouvrez votre fichier CSV dans Excel.
- Identifiez la colonne contenant les timestamps (comme 1408046419).
- Créez une nouvelle colonne pour afficher les dates converties.
- Utilisez la formule suivante dans la première cellule de cette nouvelle colonne (pour excel en français) : =DATE(1970;1;1) + A1 / 86400
A1 correpondant à la cellule en format timestamp

Formatez la colonne résultante en format de date :
- Sélectionnez la colonne contenant les résultats.
- Cliquez sur l'onglet Accueil, puis sur le menu déroulant dans la section "Nombre."
- Choisissez Date courte ou Date longue.



Bref, même si je n'ai pas tout capté, merci Jérome car tu m'as mis sur la voie ;)
Bonne journée

Please Log in or Create an account to join the conversation.

  • Posts: 26185
  • Thank you received: 4030
  • MODERATOR
1 week 5 days ago #365194

Bonjour,

A me focaliser sur l'historique, j'en avait oublié "serial_consume_date" !

Via les vues "serial / export" (et "exportconf" si jamais vous souhaiter créer de nouveaux paramètres), vous pouvez déjà rajouter la logique d'exportation.
Et nn passant via l'export, vous avez accès aux outils d'HikaShop et HikaSerial pour l'affichage et le formatage.

Prenons pour example pour la partie qui exporte la date d'assignation, avec :

	if(!empty($this->export_params['date'])) $first[] = 'date';
et
	if(!empty($this->export_params['date'])) {
		if(!empty($row->serial_assign_date))
			$data[] = hikaserial::getDate($row->serial_assign_date,'%Y-%m-%d %H:%M:%S');
		else
			$data[] = '';
	}
Vous pouvez ajouter à l'export une colonne pour la date de consommation.
Vous pouvez utiliser le même paramètre d'export "date" et ajouter une autre colonne "consume date" et utiliser "serial_consume_date" à la place de "serial_assign_date" pour le code mentionné.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 96
  • Thank you received: 5
  • Hikamarket Multivendor Hikaserial Standard Hikashop Business
1 week 3 days ago #365214

Bonjour Jérome,

Bon, je suis quand même tombé sur un os, car, les serials dont le statut est modifié manuellement, c.a.d sans scanner le QR n'ont pas de date de consommation ("serial_assign_date" )... or mon client doit parfois le faire (ex : pas de réseau lors de l'activité).
Du coup, j'ai du exporter, et la table xxx_hikaserial_serial et la table serial history (contenant l'ID de l'utilisateur ayant changé le statut, le statut et la date de changement de statut).
Je me retrouve donc avec 3 csv à coupler :/

Je vais tester l'intégration des colonnes dans la vue semaine pro.
Je te tiens au courant.

Merci

The following user(s) said Thank You: Jerome

Please Log in or Create an account to join the conversation.

Moderators: Obsidev
Time to create page: 0.061 seconds
Powered by Kunena Forum