row.createCell((short) 3).setCellValue(
new HSSFRichTextString("Date de transaction"));
for (Map.Entry<Secteur, Integer> entry : mapSecteurIndex.entrySet())
{
Secteur secteur = entry.getKey();
short index = entry.getValue().shortValue();
row.createCell(index).setCellValue(
new HSSFRichTextString(secteur.getCode()));
}
// --------- Liste des transactions -------
int i = 8;
BigDecimal totalGlobal = BigDecimal.ZERO;
List<Transaction> transactions = transactionService
.findApprouvedByDateCreated(options.getDateDebut(), options
.getDateFin());
for (Transaction transaction : transactions)
{
row = sheet.createRow((short) ++i);
Facture facture = transaction.getFacture();
Double totalTransaction = facture.getTotal();
row.createCell((short) 0).setCellValue(totalTransaction);
row.createCell((short) 1).setCellValue(
new HSSFRichTextString(transaction.getId().toString()));
row.createCell((short) 2).setCellValue(
new HSSFRichTextString(transaction.getAccountType()));
HSSFUtils.createDateTimeCell(wb, row, 3, transaction
.getDateCreated());
/**
* Set qui indique si la transaction est liée à un secteur. Si le secteur est dans
* le set, on sait que la transaction est liée à ce secteur.
*/
Set<Secteur> setFactureLieASecteur = new HashSet<Secteur>();
for (FactureItem factureItem : facture.getFactureItems())
{
if (factureItem.getInscription() != null)
{
Inscription inscription = factureItem.getInscription();
Course course = inscription.getCourse();
Evenement evenement = course.getEvenement();
Saison saison = evenement.getSaison();
setFactureLieASecteur.add(saison.getSecteur());
}
else if (factureItem.getArticle() != null)
{
Article article = factureItem.getArticle();
Choix choix = article.getChoix();
Evenement evenement = choix.getEvenement();
if (evenement != null)
{
Saison saison = evenement.getSaison();
setFactureLieASecteur.add(saison.getSecteur());
}
}
else
{
//Pas d'article + pas d'inscription = Annulation. On n'en
//tient pas compte.
}
}
for (Map.Entry<Secteur, Integer> entry : mapSecteurIndex.entrySet())
{
Secteur secteur = entry.getKey();
short index = entry.getValue().shortValue();
boolean lieASecteur = setFactureLieASecteur.contains(secteur);
row.createCell(index).setCellValue(
new HSSFRichTextString((lieASecteur ? "X" : "")));