mirror of
https://github.com/klmp200/PQT_Gestionnaire_vente_stock.git
synced 2025-07-14 13:59:24 +00:00
Implémentation code module "sale" dans la partie client. répercussion modif diagrammes Astah
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
package com.pqt.client.module.query;
|
||||
|
||||
import com.pqt.client.module.query.query_callback.IUpdateQueryCallback;
|
||||
import com.pqt.client.module.query.query_callback.IIdQueryCallback;
|
||||
import com.pqt.core.entities.query.IQuery;
|
||||
import com.pqt.client.module.query.query_callback.ISimpleQueryCallback;
|
||||
import com.pqt.client.module.query.query_callback.IStatQueryCallback;
|
||||
@ -28,7 +28,7 @@ public class QueryExecutor {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public long execute(IQuery query, IUpdateQueryCallback callback) {
|
||||
public long execute(IQuery query, IIdQueryCallback callback) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
package com.pqt.client.module.query.query_callback;
|
||||
|
||||
public interface IUpdateQueryCallback {
|
||||
public interface IIdQueryCallback {
|
||||
public void ack(long id);
|
||||
public void err(long id, Throwable cause);
|
||||
public void ref(long id, Throwable cause);
|
@ -1,28 +1,76 @@
|
||||
package com.pqt.client.module.sale;
|
||||
|
||||
import com.pqt.core.entities.client.Client;
|
||||
import com.pqt.core.entities.product.Product;
|
||||
import com.pqt.core.entities.sale.Sale;
|
||||
import com.pqt.core.entities.sale.SaleStatus;
|
||||
import com.pqt.core.entities.sale.SaleType;
|
||||
import com.pqt.core.entities.user_account.Account;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
//TODO écrire contenu méthodes
|
||||
//TODO écrire javadoc
|
||||
public class SaleBuilder {
|
||||
|
||||
public boolean addProduct(Product product) {
|
||||
return false;
|
||||
private Map<Product, Integer> products;
|
||||
private Account orderedFor, orderedBy;
|
||||
private Client orderedWith;
|
||||
private SaleType type;
|
||||
|
||||
public SaleBuilder() {
|
||||
this.products = new HashMap<>();
|
||||
orderedFor = null;
|
||||
orderedBy = null;
|
||||
}
|
||||
|
||||
public SaleBuilder addProduct(Product product) {
|
||||
if(products.containsKey(product)){
|
||||
//Check for sufficient stock
|
||||
if(product.getAmountRemaining()<products.get(product)) {
|
||||
products.replace(product, products.get(product) + 1);
|
||||
}
|
||||
}else{
|
||||
products.put(product, 1);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean removeProduct(Product product) {
|
||||
return false;
|
||||
public SaleBuilder removeProduct(Product product) {
|
||||
if(products.containsKey(product)) {
|
||||
if (products.get(product) == 1)
|
||||
products.remove(product);
|
||||
else
|
||||
products.replace(product, products.get(product) - 1);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public Map<Product,Integer> getCurrentProductList() {
|
||||
return null;
|
||||
}
|
||||
public SaleBuilder orderedFor(Account account){
|
||||
orderedFor = account;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SaleBuilder orderedBy(Account account){
|
||||
orderedBy = account;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SaleBuilder orderedWith(Client client){
|
||||
this.orderedWith = client;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SaleBuilder saleType(SaleType type){
|
||||
this.type = type;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Sale build() {
|
||||
return null;
|
||||
return new Sale(0, products, new Date(), orderedWith, orderedBy, orderedFor, type, SaleStatus.PENDING);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,30 +1,58 @@
|
||||
package com.pqt.client.module.sale;
|
||||
|
||||
import com.pqt.client.module.query.QueryExecutor;
|
||||
import com.pqt.client.module.query.QueryFactory;
|
||||
import com.pqt.client.module.query.query_callback.IIdQueryCallback;
|
||||
import com.pqt.client.module.sale.listeners.ISaleFirerer;
|
||||
import com.pqt.client.module.sale.listeners.ISaleListener;
|
||||
import com.pqt.client.module.sale.listeners.SimpleSaleFirerer;
|
||||
|
||||
//TODO écrire contenu méthodes
|
||||
//TODO écrire javadoc
|
||||
//TODO add log lines
|
||||
public class SaleService {
|
||||
|
||||
public void getNewSaleBuilder() {
|
||||
private ISaleFirerer eventFirerer;
|
||||
|
||||
public SaleService() {
|
||||
eventFirerer = new SimpleSaleFirerer();
|
||||
}
|
||||
|
||||
public void commitSale(SaleBuilder saleBuilder) {
|
||||
|
||||
public SaleBuilder getNewSaleBuilder() {
|
||||
return new SaleBuilder();
|
||||
}
|
||||
|
||||
public long commitSale(SaleBuilder saleBuilder) {
|
||||
return QueryExecutor.INSTANCE.execute(QueryFactory.newSaleQuery(saleBuilder.build()), new IIdQueryCallback() {
|
||||
@Override
|
||||
public void ack(long id) {
|
||||
eventFirerer.fireSaleValidationSuccess(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void err(long id, Throwable cause) {
|
||||
eventFirerer.fireSaleValidationError(id, cause);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ref(long id, Throwable cause) {
|
||||
eventFirerer.fireSaleValidationRefused(id, cause);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
TODO implémenter le revert de commande
|
||||
public void revertSale(int saleId) {
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
public void addListener(ISaleListener listener) {
|
||||
|
||||
eventFirerer.addListener(listener);
|
||||
}
|
||||
|
||||
public void removeListener(ISaleListener listener) {
|
||||
|
||||
eventFirerer.removeListener(listener);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -4,11 +4,11 @@ import com.pqt.core.entities.sale.Sale;
|
||||
|
||||
public interface ISaleFirerer {
|
||||
|
||||
public abstract void fireSaleValidationSuccess(Sale sale);
|
||||
public abstract void fireSaleValidationSuccess(long saleId);
|
||||
|
||||
public abstract void fireSaleValidationError(Sale sale, Throwable cause);
|
||||
public abstract void fireSaleValidationError(long saleId, Throwable cause);
|
||||
|
||||
public abstract void fireSaleValidationRefused(Sale sale, Throwable cause);
|
||||
public abstract void fireSaleValidationRefused(long saleId, Throwable cause);
|
||||
|
||||
public abstract void addListener(ISaleListener listener);
|
||||
|
||||
|
@ -6,10 +6,10 @@ import java.util.EventListener;
|
||||
|
||||
public interface ISaleListener extends EventListener {
|
||||
|
||||
public abstract void onSaleValidationSuccess(Sale sale);
|
||||
public abstract void onSaleValidationSuccess(long saleId);
|
||||
|
||||
public abstract void onSaleValidationError(Sale sale, Throwable cause);
|
||||
public abstract void onSaleValidationError(long saleId, Throwable cause);
|
||||
|
||||
public abstract void onSaleValidationRefused(Sale sale, Throwable cause);
|
||||
public abstract void onSaleValidationRefused(long saleId, Throwable cause);
|
||||
|
||||
}
|
||||
|
@ -2,33 +2,32 @@ package com.pqt.client.module.sale.listeners;
|
||||
|
||||
import com.pqt.core.entities.sale.Sale;
|
||||
|
||||
//TODO écrire contenu méthodes
|
||||
//TODO écrire javadoc
|
||||
public class SaleListenerAdapter implements ISaleListener {
|
||||
|
||||
|
||||
/**
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationSuccess(com.pqt.core.entities.sale.Sale)
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationSuccess(long)
|
||||
*
|
||||
*
|
||||
*/
|
||||
public void onSaleValidationSuccess(Sale sale) {
|
||||
public void onSaleValidationSuccess(long saleId) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationError(com.pqt.core.entities.sale.Sale, Throwable)
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationError(long, Throwable)
|
||||
*/
|
||||
public void onSaleValidationError(Sale sale, Throwable cause) {
|
||||
public void onSaleValidationError(long saleId, Throwable cause) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationRefused(com.pqt.core.entities.sale.Sale, Throwable)
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleListener#onSaleValidationRefused(long, Throwable)
|
||||
*/
|
||||
public void onSaleValidationRefused(Sale sale, Throwable cause) {
|
||||
public void onSaleValidationRefused(long saleId, Throwable cause) {
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,33 +1,44 @@
|
||||
package com.pqt.client.module.sale.listeners;
|
||||
|
||||
import com.pqt.core.entities.sale.Sale;
|
||||
import javax.swing.event.EventListenerList;
|
||||
|
||||
//TODO écrire contenu méthodes
|
||||
//TODO écrire javadoc
|
||||
public class SimpleSaleFirerer implements ISaleFirerer {
|
||||
|
||||
|
||||
/**
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationSuccess(com.pqt.core.entities.sale.Sale)
|
||||
*/
|
||||
public void fireSaleValidationSuccess(Sale sale) {
|
||||
private EventListenerList listeners;
|
||||
|
||||
public SimpleSaleFirerer() {
|
||||
listeners = new EventListenerList();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationSuccess(long)
|
||||
*/
|
||||
public void fireSaleValidationSuccess(long saleId) {
|
||||
for(ISaleListener l : listeners.getListeners(ISaleListener.class)){
|
||||
l.onSaleValidationSuccess(saleId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationError(com.pqt.core.entities.sale.Sale, Throwable)
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationError(long, Throwable)
|
||||
*/
|
||||
public void fireSaleValidationError(Sale sale, Throwable cause) {
|
||||
|
||||
public void fireSaleValidationError(long saleId, Throwable cause) {
|
||||
for(ISaleListener l : listeners.getListeners(ISaleListener.class)){
|
||||
l.onSaleValidationError(saleId, cause);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationRefused(com.pqt.core.entities.sale.Sale, Throwable)
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#fireSaleValidationRefused(long, Throwable)
|
||||
*/
|
||||
public void fireSaleValidationRefused(Sale sale, Throwable cause) {
|
||||
|
||||
public void fireSaleValidationRefused(long saleId, Throwable cause) {
|
||||
for(ISaleListener l : listeners.getListeners(ISaleListener.class)){
|
||||
l.onSaleValidationRefused(saleId, cause);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -35,7 +46,7 @@ public class SimpleSaleFirerer implements ISaleFirerer {
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#addListener(com.pqt.client.module.sale.listeners.ISaleListener)
|
||||
*/
|
||||
public void addListener(ISaleListener listener) {
|
||||
|
||||
listeners.add(ISaleListener.class, listener);
|
||||
}
|
||||
|
||||
|
||||
@ -43,7 +54,7 @@ public class SimpleSaleFirerer implements ISaleFirerer {
|
||||
* @see com.pqt.client.module.sale.listeners.ISaleFirerer#removeListener(com.pqt.client.module.sale.listeners.ISaleListener)
|
||||
*/
|
||||
public void removeListener(ISaleListener listener) {
|
||||
|
||||
listeners.remove(ISaleListener.class, listener);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ package com.pqt.client.module.stock;
|
||||
import com.pqt.client.module.query.QueryExecutor;
|
||||
import com.pqt.client.module.query.QueryFactory;
|
||||
import com.pqt.client.module.query.query_callback.IStockQueryCallback;
|
||||
import com.pqt.client.module.query.query_callback.IUpdateQueryCallback;
|
||||
import com.pqt.client.module.query.query_callback.IIdQueryCallback;
|
||||
import com.pqt.client.module.stock.Listeners.IStockFirerer;
|
||||
import com.pqt.client.module.stock.Listeners.IStockListener;
|
||||
import com.pqt.client.module.stock.Listeners.SimpleStockFirerer;
|
||||
@ -75,7 +75,7 @@ public class StockDao {
|
||||
}
|
||||
|
||||
public long commitUpdate(List<ProductUpdate> updates){
|
||||
return QueryExecutor.INSTANCE.execute(QueryFactory.newUpdateQuery(updates),new IUpdateQueryCallback(){
|
||||
return QueryExecutor.INSTANCE.execute(QueryFactory.newUpdateQuery(updates),new IIdQueryCallback(){
|
||||
|
||||
@Override
|
||||
public void ack(long id) {
|
||||
|
@ -1,10 +1,5 @@
|
||||
package com.pqt.client.module.stock;
|
||||
|
||||
import com.pqt.client.module.query.QueryExecutor;
|
||||
import com.pqt.client.module.query.QueryFactory;
|
||||
import com.pqt.client.module.query.query_callback.IUpdateQueryCallback;
|
||||
import com.pqt.client.module.stock.Listeners.IStockFirerer;
|
||||
import com.pqt.client.module.stock.Listeners.SimpleStockFirerer;
|
||||
import com.pqt.core.entities.product.Product;
|
||||
import com.pqt.client.module.stock.Listeners.IStockListener;
|
||||
|
||||
|
Reference in New Issue
Block a user