logo

Readme-Racker

Say Goodbye to Manual README Writing.

← Back

Show Markdown

Download Markdown

Readme

Module de gestion des stocks pour le commerce de détail

Ce module fournit des fonctionnalités pour la gestion des stocks, des ventes, des achats, des fournisseurs, des types de produits et des catégories pour une entreprise de vente au détail.

Fonctionnalités

  • Gestion des produits : Ajouter, mettre à jour, supprimer et récupérer des produits.
  • Gestion des catégories : Ajouter, mettre à jour, supprimer et récupérer des catégories de produits.
  • Gestion des types de produits : Ajouter, mettre à jour, supprimer et récupérer des types de produits.
  • Gestion des fournisseurs : Ajouter, mettre à jour, supprimer et récupérer des fournisseurs.
  • Gestion des achats : Enregistrer les achats de produits auprès des fournisseurs.
  • Gestion des ventes : Enregistrer les ventes de produits aux clients.

Exemples d'utilisation

Enregistrement d'une vente (Service)

@Service
public class ExampleService {

    private final SaleService saleService;

    public ExampleService(SaleService saleService) {
        this.saleService = saleService;
    }

    public void registerNewSale() {
        SaleDetailsRequestDto saleDetailsRequestDto = SaleDetailsRequestDto.builder()
                .productsList(List.of(ProductPatchRequestDto.builder().name("Product Name").build()))
                .amount(new BigDecimal("100.00"))
                .discount(new BigDecimal("0.10"))
                .quantity(1L)
                .build();

        SaleResponseDto saleResponseDto = saleService.registerSale(saleDetailsRequestDto);
        System.out.println("Sale registered with ID: " + saleResponseDto.getId());
    }
}

Enregistrement d'une vente (API REST)

Pour enregistrer une vente, envoyez une requête POST à /sales/register avec la charge utile JSON suivante :

{
  "productsList": [
    {
      "name": "Product Name"
    }
  ],
  "amount": 100.00,
  "discount": 0.10,
  "quantity": 1
}

Exemple utilisant curl :

curl -X POST \
  http://localhost:8080/sales/register \
  -H 'Content-Type: application/json' \
  -d '{
    "productsList": [
      {
        "name": "Product Name"
      }
    ],
    "amount": 100.00,
    "discount": 0.10,
    "quantity": 1
  }'

Ajout d'un produit (API REST)

Pour ajouter un produit, envoyez une requête POST à /products/add avec la charge utile JSON suivante :

{
  "name": "New Product",
  "description": "Product Description",
  "categoryId": 1,
  "buyPrice": 50.00,
  "salePrice": 100.00,
  "stock": 100,
  "supplierId": 1,
  "productTypeId": 1
}

Exemple utilisant curl :

curl -X POST \
  http://localhost:8080/products/add \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "New Product",
  "description": "Product Description",
  "categoryId": 1,
  "buyPrice": 50.00,
  "salePrice": 100.00,
  "stock": 100,
  "supplierId": 1,
  "productTypeId": 1
}'

Détails de la configuration

Configuration CORS

Le module inclut une classe CorsConfig pour configurer le partage de ressources entre origines multiples (CORS).

@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("http://localhost:5173")
                .allowedMethods("*")
                .allowedHeaders("*")
                .allowCredentials(true);
    }
}

Cette configuration autorise les requêtes provenant de http://localhost:5173.

Dépendances

Pour utiliser ce module, vous aurez besoin des dépendances suivantes dans votre pom.xml :

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

🌍 Ce README est disponible en plusieurs langues : 🔗 readme.maxpfeffer.de