package ordering.common.model;

 

import ordering.common.vo.*;

import ordering.common.exceptions.*;

import java.util.Collection;

import ordering.common.exceptions.ModelAccessException;

 

/**

 * OrderingModel interface is generic interface to access Ordering System.

 * Concrete implementation will be generated on run-time by OrderingModelFactory

 */

public interface OrderingModel

{

 

  public void addPurchaseOrder(PurchaseOrderVO po) throws ModelAccessException, IntegrityException;

  public Collection getPODescriptors(int partnerId, String status) throws ModelAccessException, NotFoundException;

  public PurchaseOrderVO getPurchaseOrder(int id) throws ModelAccessException, NotFoundException;

  public void acceptPurchaseOrder(int id) throws ModelAccessException, NotFoundException;

  public void rejectPurchaseOrder(int id) throws ModelAccessException, NotFoundException;

  public Collection getInvoiceDescriptors(int partnerId, String status) throws ModelAccessException, InvalidStatusException,NotFoundException;

  public InvoiceVO getInvoice(int id) throws ModelAccessException, NotFoundException;

  public void saveInvoice(InvoiceVO invoice) throws ModelAccessException, IntegrityException;

  public void sendInvoice(int id) throws ModelAccessException, NotFoundException;

  public int newId(String sequence_name) throws ModelAccessException, NotFoundException;

 

}