const CrudService = require("./CrudService");
/**
* @extends Myintranet.Services.CrudService
* @memberof Myintranet.Services
* @inheritDoc
*/
class GarantieService extends CrudService {
constructor(db) {
super(db.Garantie);
this.db = db;
}
async getAll(request) {
try {
let allData = await this.db.Garantie.findAll();
if (allData.length === 0) {
await this.insertInitialData();
allData = await this.db.Garantie.findAll();
}
//console.log("je suisi ici",allData)
return allData;
} catch (error) {
console.error('Erreur lors de la récupération des données :', error);
throw error;
}
}
async getOne(request){
return await this.getAll(request)
}
async insertInitialData() {
try {
const initialData = [
{ ca: "CA Alpha", montant: null, autres: "Chiffre d'affaire Alpha" },
{ ca: "CA Talent Factory", montant: null, autres: "Chiffre d'affaire Talent Factory" },
{ ca: "CA Rocketz", montant: null, autres: "Chiffre d'affaire Rocketz" },
{ ca: "CA BigBen", montant: null, autres: "Chiffre d'affaire Bigben" },
{ ca: "CA Portage Lab", montant: null, autres: "Chiffre d'affaire Portage Lab", style: "text-purple-700 font-bold" },
{ ca: "Total entrées de CA HT:", montant: null, autres: "Chiffre d'affaire Groupe", isTitle: true },
{ ca: "Total TVA Alpha", montant: null, autres: "virement Alpha" },
{ ca: "Total TVA Talent Factory", montant: null, autres: "virement Talent Factory" },
{ ca: "Total TVA Rocketz", montant: null, autres: "virement Rocketz" },
{ ca: "Total TVA BigBen", montant: null, autres: "virement Bigben" },
{ ca: "Total TVA Portage Lab", montant: null, autres: "virement Portage Lab", style: "text-purple-700 font-bold" },
{ ca: "Total TVA à collecté:", montant: null, autres: "TVA à provisionner", isTitle: true },
{ ca: "Total NET à Payer:", montant: null, autres: "paiement au 05 du mois en cours", style: "font-bold isTitle" },
{ ca: "Total Salaire Alpha", montant: null, autres: "virement Alpha" },
{ ca: "Total PAS Alpha", montant: null, autres: "Prélèvement à la source Alpha" },
{ ca: "Total Salaire Talent Factory", montant: null, autres: "virement Talent Factory" },
{ ca: "Total PAS Talent", montant: null, autres: "Prélèvement à la source Talent" },
{ ca: "Total Salaire Rocketz", montant: null, autres: "virement Rocketz" },
{ ca: "Total PAS Rocketz", montant: null, autres: "Prélèvement à la source Rocketz" },
{ ca: "Total Salaire BigBen", montant: null, autres: "virement Bigben" },
{ ca: "Total PAS BigBen", montant: null, autres: "virement Bigben" },
{ ca: "Total Salaire Portage Lab", montant: null, autres: "virement Portage Lab", style: "text-purple-700 font-bold" },
{ ca: "Total variables:", montant: null, autres: "paiement au 15 du mois en cours", isTitle: true },
{ ca: "Total Variable Alpha", montant: null, autres: "variable Alpha" },
{ ca: "Total Variable Talent Factory", montant: null, autres: "Variable talent Factory" },
{ ca: "Total Variable Rocketz", montant: null, autres: "Variable Rocketz" },
{ ca: "Total Variable BigBen", montant: null, autres: "Variable BigBen" },
{ ca: "Total Variable Portage Lab", montant: null, autres: "variable Portage Lab", style: "text-purple-700 font-bold" },
{ ca: "Apporteur affaires: Remise Escompte", montant: null, autres: " Total com à versé , Total Escompte à déduire", style: "text-purple-700 font-bold" },
{ ca: "Salaires + Vava (sans com ext):", montant: null, autres: "pour le mois en cours", isTitle: true },
{ ca: "Total Prov Charges Alpha", montant: null, autres: "a reporté pour paiement URSSAF fin trimestre" },
{ ca: "Total Prov Charges Talent Factory", montant: null, autres: "a reporté pour paiement URSSAF fin trimestre" },
{ ca: "Total Prov Charges Rocketz", montant: null, autres: "a reporté pour paiement URSSAF fin trimestre" },
{ ca: "Total Prov Charges BigBen", montant: null, autres: "a reporté pour paiement URSSAF fin trimestre" },
{ ca: "Total Prov Charges Portage Lab", montant: null, autres: "a reporté pour paiement URSSAF fin trimestre", style: "text-purple-700 font-bold" },
{ ca: "Frais gestion provisionné", montant: null, autres: "alpha", style: "text-yellow-500" },
{ ca: "Frais gestion provisionné", montant: null, autres: "talent factory", style: "text-yellow-500" },
{ ca: "Frais gestion provisionné", montant: null, autres: "rocketz", style: "text-yellow-500" },
{ ca: "Frais gestion provisionné", montant: null, autres: "bigben", style: "text-yellow-500" },
{ ca: "Frais gestion provisionné", montant: null, autres: "Portage Lab", style: "text-purple-700 font-bold" },
{ ca: "Total Frais gestion provisionné", montant: null, autres: "alpha + innov8 => Prov Alpha + Prov Innov8", isTitle: true },
{ ca: "Total Frais gestion réel calculé", montant: null, autres: "alpha + innov8 => CA - SALAIRE - VAVA - URSSAF", isTitle: true },
{ ca: "Total Frais gestion réel estimé", montant: null, autres: "alpha + innov8 (moyenne prov et calc)", isTitle: true },
{ ca: "Apport Affaire / Escompte", montant: null, autres: "" },
{ ca: "Classe Creme & Creme Fraiche & Creme Brulé", montant: null, autres: "remb crédit, assurance, essence, etc..." },
{ ca: "", montant: null, autres: "" },
{ ca: "Coût des Projet Externalisés", montant: null, autres: "" },
{ ca: "Equipe de réalisation (projet Birds)", montant: null, autres: "" },
{ ca: "Base Poissy", montant: null, autres: "loyer + charges + Sunnah du vendredi + divers" },
{ ca: "Cabinet Comptable", montant: null, autres: "DCA BC LBC SSD" },
{ ca: "Total Charge fixe hors salaire", montant: null, autres: "", isTitle: true },
{ ca: "Benefice Net (pessimiste)", montant: null, autres: "frais de gestion", style: "text-green-500 font-bold" },
{ ca: "CA minimum exigé", montant: null, autres: "" },
];
await Promise.all(initialData.map(row => this.db.Garantie.create({
ca: row.ca,
montant: row.montant,
autres: row.autres
})));
} catch (error) {
console.error('Erreur lors de l\'insertion des données initiales :', error);
throw error;
}
}
async update(request) {
let {db} = this;
let data = request.body
console.log(data)
try {
for (let row of data) {
// console.log(`Mise à jour du montant pour id: ${row.id}, montant: ${row.montant}`);
await db.Garantie.update(
{ montant: row.montant },
{ where: { id: row.id } }
);
}
// console.log('Mise à jour réussie');
} catch (error) {
console.error('Erreur lors de la mise à jour :', error);
throw error;
}
}
}
module.exports = GarantieService;