using Biskilog_Accounting.Shared.CustomModels ;
using Biskilog_Accounting.Shared.POSModels ;
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Text ;
using System.Threading.Tasks ;
namespace Biskilog_Accounting.Shared.Interfaces
{
public interface ISalesInterface
{
Task FetchRecentTransaction ( int a_limit ) ;
Task FetchTransaction ( DateTime a_start , DateTime a_end ) ;
IEnumerable < SaleItem > GetTransactions ( DateTime a_start , DateTime a_end ) ;
IEnumerable < SaleItem > GetRecentTransaction ( ) ;
Task FetchReceipt ( string a_receiptId ) ;
IEnumerable < SaleItem > GetReceipt ( string a_receiptId ) ;
Task < IEnumerable < Tblcart > > GetReceiptDetail ( string a_receiptId ) ;
Task SyncCart ( List < Tblcart > a_item ) ;
Task SyncCancelledTransaction ( List < Tblcancelledtransaction > a_item ) ;
Task SyncCreditPurchase ( List < Creditpurchase > a_item ) ;
Task SyncCustomerAccount ( List < Customeraccount > a_customerAccounts ) ;
Task SyncCustomerPurchase ( List < Tblcustomerpurchase > a_customerPurchase ) ;
Task SyncDiscountLogs ( List < Tbldiscountlog > a_discountLog ) ;
Task SyncDeliveryDetails ( List < Tbldeliverydetail > a_details ) ;
Task SyncDeliveryHead ( List < Tbldeliveryhead > a_heads ) ;
Task SyncDeliveryRecipients ( List < Tbldeliveryrecipient > a_recipients ) ;
Task SyncInvoice ( List < Tblinvoice > a_invoice ) ;
DateTime GetLastSyncDate ( string a_tablename ) ;
void SetLastSyncDate ( string a_tableName , DateTime a_timestamp ) ;
event EventHandler TransactionsChanged ;
event EventHandler FetchComplete ;
event EventHandler FetchStart ;
}
}