boutique.service.PaiementService.java Source code

Java tutorial

Introduction

Here is the source code for boutique.service.PaiementService.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package boutique.service;

import boutique.entity.Article;
import boutique.entity.CodePromo;
import boutique.entity.Commande;
import boutique.entity.SousCommande;
import boutique.enumeration.TypeCodePromo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 *
 * @author admin
 */
@Service
public class PaiementService {

    @Autowired
    CommandeService commandeService;

    @Autowired
    CodePromoService codePromoService;

    @Autowired
    ArticleService articleService;

    public void mAjPrixTotal(Commande cmd) {

        Double total = 0.0;

        for (SousCommande sscmd : cmd.getSousCommandes()) {
            total = total + (sscmd.getArticle().getPrix() * sscmd.getQuantite());
        }

        cmd.setPrixTotal(total);
    }

    public Double calculPrixTotalCodePromo(String code, Commande cmd) {
        CodePromo codePromo = codePromoService.findByCode(code);
        Double reduction = 0.0;
        Double prixTotal = 0.0;

        //Si le code promo n'existe pas calcul du total sans remise
        if (codePromo == null) {
            System.out.println("Code Promo invalide");
            mAjPrixTotal(cmd);
        }
        //Calculs de la rduction selonn le typeCodePromo : Poucentage, Remise
        if (codePromo.getTypeCodePromo() == TypeCodePromo.Pourcentage) {
            mAjPrixTotal(cmd);
            reduction = cmd.getPrixTotal() * (codePromo.getValeur() / 100);
        }

        if (codePromo.getTypeCodePromo() == TypeCodePromo.Remise) {
            mAjPrixTotal(cmd);
            reduction = codePromo.getValeur();
        }

        return prixTotal = cmd.getPrixTotal() - reduction;

    }

    public void payerCommande(Commande cmd) {
        cmd.setPayee(Boolean.TRUE);

        //Mise  jour du stock article
        for (SousCommande sscmd : cmd.getSousCommandes()) {
            Article a = sscmd.getArticle();
            a.setStock(a.getStock() - sscmd.getQuantite());
            articleService.save(a);

        }
    }

}