public static HashMap<String, Double> calculeCalypso(Article_fabrication art,
            Vector<Caisson> caissons, Vector<Lame> lame, Vector<Type_pose> pose,
            Vector<Type_manoeuvre> manoeuvre) {
        HashMap<String, Double> cote = new HashMap<>();
        int leCaisson = 180;
        int lameAjourer = 10;
        int h = 0;
        String nomLame = "";
        String unePose = "";
        String uneManoeuvre = "";
        cote.put("hauteur", art.getHauteur());
        cote.put("largeur", art.getLargeur());
        cote.put("quantite", (double) art.getQuantite());
        for (Lame l : lame) {
            if (l.getId_lame() == art.getType_lame()) {
                nomLame = l.getNom_lame();
            }
        }
        h = (int) ((art.getHauteur() / 100) + 0.5);
        h = h * 100;
        for (Caisson c : caissons) {
            if (c.getType_volet().compareTo("Calypso") == 0) {
                if (c.getLame().compareTo(nomLame) == 0) {
                    if (c.getHauteur() == h) {
                        leCaisson = c.getCaisson();
                    }
                }
            }
        }
        for (Type_pose p : pose) {
            if (p.getId_type_pose() == art.getType_pose()) {
                unePose = p.getNom_type_pose();
            }
        }
        for (Type_manoeuvre m : manoeuvre) {
            if (m.getId_type_manoeuvre() == art.getType_manoeuvre()) {
                uneManoeuvre = m.getNom_type_manoeuvre();
            }
        }
        if (unePose.compareTo("Pose N5") == 0) {
            art.setHauteur((art.getHauteur() + leCaisson));
            art.setLargeur(art.getLargeur());
            cote.put("largeurCaisson", (art.getLargeur() - 7));
            cote.put("hauteurCaisson", (double) leCaisson);
            cote.put("hauteurCoulisse", (art.getHauteur() - 3 - leCaisson));
            cote.put("largeurLame", (art.getLargeur() - 74));
            cote.put("lameAjourer", (double) lameAjourer);
            if (uneManoeuvre.compareTo("sangle") == 0) {
                cote.put("axe", (art.getLargeur() - 143));
            }
            if (uneManoeuvre.compareTo("treuil") == 0) {
                cote.put("axe", (art.getLargeur() - 96));
            }
            if (uneManoeuvre.compareTo("tirage direct") == 0) {
                cote.put("axe", (art.getLargeur() - 120));
            }
            if (uneManoeuvre.regionMatches(0, "electrique", 0, 10)) {
                cote.put("axe", (art.getLargeur() - 96));
            }
            if (art.getHauteur() < 1700) {
                cote.put("nombreLame", (double) (int) ((art.getHauteur() - 210)
                        / 37 + 2));
            }
            if (art.getHauteur() >= 1700) {
                cote.put("nombreLame", (double) (int) ((art.getHauteur() - 240)
                        / 37 + 2));
            }
            return cote;
        } else {
            if (unePose.compareTo("Pose N3") == 0) {
                art.setHauteur((art.getHauteur() + leCaisson));
                cote.put("largeurCaisson", (art.getLargeur() - 7));
                cote.put("hauteurCaisson", (double) leCaisson);
                cote.put("hauteurCoulisse", (art.getHauteur() - 3 - leCaisson));
                cote.put("largeurLame", (art.getLargeur() - 74));
                cote.put("lameAjourer", (double) lameAjourer);
                if (uneManoeuvre.compareTo("sangle") == 0) {
                    cote.put("axe", (art.getLargeur() - 120));
                }
                if (uneManoeuvre.compareTo("treuil") == 0) {
                    cote.put("axe", (art.getLargeur() - 96));
                }
                if (uneManoeuvre.compareTo("tirage direct") == 0) {
                    cote.put("axe", (art.getLargeur() - 120));
                }
                if (uneManoeuvre.regionMatches(0, "electrique", 0, 10)) {
                    cote.put("axe", (art.getLargeur() - 96));
                }
                if (art.getHauteur() < 1700) {
                    cote.put("nombreLame", (double) (int) ((art.getHauteur() - 210)
                            / 37 + 2));
                }
                if (art.getHauteur() >= 1700) {
                    cote.put("nombreLame", (double) (int) ((art.getHauteur() - 240)
                            / 37 + 2));
                }
                return cote;
            } else {
                cote.put("largeurCaisson", (art.getLargeur() - 7));
                cote.put("hauteurCaisson", (double) leCaisson);
                cote.put("hauteurCoulisse", (art.getHauteur() - 3 - leCaisson));
                cote.put("largeurLame", (art.getLargeur() - 74));
                cote.put("lameAjourer", (double) lameAjourer);
                if (uneManoeuvre.compareTo("sangle") == 0) {
                    cote.put("axe", (art.getLargeur() - 120));
                }
                if (uneManoeuvre.compareTo("treuil") == 0) {
                    cote.put("axe", (art.getLargeur() - 96));
                }
                if (uneManoeuvre.compareTo("tirage direct") == 0) {
                    cote.put("axe", (art.getLargeur() - 120));
                }
                if (uneManoeuvre.regionMatches(0, "electrique", 0, 10)) {
                    cote.put("axe", (art.getLargeur() - 96));
                }
                if (art.getHauteur() < 1700) {
                    cote.put("nombreLame", (double) (int) ((art.getHauteur() - 210)
                            / 37 + 2));
                }
                if (art.getHauteur() >= 1700) {
                    cote.put("nombreLame", (double) (int) ((art.getHauteur() - 240)
                            / 37 + 2));
                }
                return cote;
            }
        }
    }