// *** Generated Source File *** // Portions Copyright (c) 1996-2001, SilverStream Software, Inc., All Rights Reserved /** *

Title:

*

Description:

*

Copyright: Copyright (c) 2002

*

Company:

* @author */ package com.gpc.pointofsale.ejb.invoice; import java.math.BigDecimal; import java.rmi.RemoteException; import java.util.Date; import java.sql.Timestamp; import java.util.HashMap; import java.util.Vector; import java.util.List; import java.util.Map; import javax.ejb.EJBObject; import com.gpc.common.ProtobaseException; import com.gpc.common.exception.ApplicationException; import com.gpc.common.util.LockableBoolean; import com.gpc.common.util.azure.monitor.LogType; import com.gpc.valueobjects.bre.BREStatusVO; import com.gpc.valueobjects.cepdi.CEPDIStatusVO; import com.gpc.valueobjects.invoice.InvoiceVO; import com.gpc.valueobjects.invoice.PaymentVO; import com.gpc.valueobjects.customer.CustomerVO; import com.gpc.valueobjects.invoice.SavedInvoiceQuoteVO; import com.gpc.valueobjects.invoice.line.BaseLineItemVO; import com.gpc.valueobjects.ordering.notification.OrderUpdateDetail; import com.gpc.valueobjects.ordering.notification.OrderNotificationStatus; import com.gpc.valueobjects.ordering.salesorder.SalesOrderVO; import com.gpc.valueobjects.profile.InvoiceMessageProfileVO; import com.gpc.valueobjects.report.FwoReportResponse; import com.gpc.valueobjects.report.GenericReportRequest; public interface SBInvoice extends EJBObject { public InvoiceVO postInvoice(InvoiceVO invoiceVO) throws RemoteException, ApplicationException; public InvoiceVO procesProtobaseAndPostInvoice(InvoiceVO invoiceVO, Boolean printingOnPlainPaper) throws RemoteException, ApplicationException, ProtobaseException; public InvoiceVO procesProtobaseAndPostInvoice(InvoiceVO invoiceVO) throws RemoteException, ApplicationException, ProtobaseException; public InvoiceVO postROAInvoice(InvoiceVO invoiceVO, Boolean printingOnPlainPaper) throws RemoteException, ApplicationException; public InvoiceVO findInvoice(Integer invoiceID, Integer loc) throws RemoteException, ApplicationException; public InvoiceVO findInvoiceByJournalKey(String journalKey, Integer loc) throws RemoteException, ApplicationException; public void voidInvoice(Integer id, Integer loc, Integer altCoreOrPartsBilledInvID ,String clientIPAddress, Integer modifiedByEmployeeID, String programSource) throws RemoteException, ApplicationException; public void changePONumber(Integer invoiceID, Integer loc, String aPONumber) throws RemoteException, ApplicationException; public void createInvoicePayments(Integer invoiceID, Integer loc, Vector paymentVOs, boolean deleteOldPayments, Timestamp transactionDate) throws RemoteException, ProtobaseException, ApplicationException; public InvoiceVO getReverseInvoiceVO(Integer originalInvoiceID, Integer loc, boolean debit) throws RemoteException, ApplicationException; public InvoiceVO getRebillInvoiceVO(Integer originalInvoiceID, Integer loc, HashMap priceCorrections) throws RemoteException, ApplicationException; public InvoiceMessageProfileVO getMOD(Integer loc) throws RemoteException, ApplicationException; public void sortInvoiceItems(Integer invoiceID, Integer sortOrder, Integer loc) throws RemoteException, ApplicationException; public Integer getInvoiceNumber (Integer loc, //Location Integer id //ID ) throws ApplicationException, RemoteException; public InvoiceVO findInvoiceForReturn(BaseLineItemVO baseLineItemVO, Integer customerID, Integer invoiceNumber) throws RemoteException, ApplicationException; /** * This method is used to retrieve the invoices for a returned part number * as a collection of InvoiceLineItemReturnVO * * @param customerVO - value object containing customer details * @param partNum - part number of a returned part * @param lineabbrev - line abbreviation of a returned part * @param Boolean - coreOnly * @param Boolean - hasCoreCharge * @param Boolean - isKitPart * @param savedInvoiceId - ID of the saved invoice * * @return The Vector of InvoiceLineItemReturnVO * * @throws Remote Exception, ApplicationException */ public Vector findInvoiceByCustPartLine(CustomerVO customerVO, String partNum, String lineAbbrev, Boolean coreOnly, Boolean hasCoreCharge, Boolean isKitPart, Integer savedInvoiceId) throws RemoteException, ApplicationException; public Vector findInvoiceByCustPartLine(CustomerVO customerVO, String partNum, String lineAbbrev, Boolean coreOnly, Boolean hasCoreCharge, Boolean isKitPart, Integer savedInvoiceId, Integer invoiceId) throws RemoteException, ApplicationException; public Boolean doesInvExist(InvoiceVO invoiceVO) throws RemoteException, ApplicationException; //Saved Invoices methods public Integer saveInvoice(InvoiceVO invoiceVO) throws RemoteException, ApplicationException; public Vector recallAllSavedInvoices(Integer loc, List savedInvoiceType) throws RemoteException, ApplicationException; public Vector recallSavedInvoices(Integer loc, Integer customerID, List savedInvoiceType) throws RemoteException, ApplicationException; public InvoiceVO recallSavedInvoice(Integer invoiceID, Integer loc) throws RemoteException, ApplicationException; //Modified the method signature to fix 33959 bug public void deleteSavedInvoice(InvoiceVO invoiceVO, Boolean isDeleted) throws RemoteException, ApplicationException; public void updateSavedInvItem(BaseLineItemVO baseLineItemVO) throws RemoteException, ApplicationException; public void deleteSavedInvItem(BaseLineItemVO baseLineItemVO) throws RemoteException, ApplicationException; public int getSavedInvItemCount(int savedInvoiceID) throws RemoteException, ApplicationException ; // Printing and Reprinting Invoices public Integer printInvoice(InvoiceVO invoiceVO, Boolean printingOnPaper) throws RemoteException, ApplicationException; public FwoReportResponse printInvoice(GenericReportRequest rptRequest) throws RemoteException, ApplicationException; public Integer reprintInvoice(InvoiceVO invoiceVO) throws RemoteException, ApplicationException; public Vector getCashierInvoices(Integer loc, Integer transactionNum) throws RemoteException, ApplicationException; public Boolean doesInvHaveReturns(Integer loc, Integer invoiceID) throws RemoteException, ApplicationException; public void emailEInvoiceCopiesToCustomer(List invoices)throws RemoteException, ApplicationException; public void emailEInvoiceCopiesEOD(List invoices, Integer loc)throws RemoteException, ApplicationException; public void emailEInvoiceCopiesEOW(List invoices, Integer loc)throws RemoteException, ApplicationException; // Method added to get alternate core invoice number and invoice id public Integer[] getAlternateCoreInvoiceNumberAndID(Integer invoiceID, Integer loc) throws RemoteException, ApplicationException; // Method added to check of main invoice is voided or not public Object[] isMainInvoiceVoided(Integer invoiceID, Integer loc) throws RemoteException, ApplicationException; // Method added to fix bug 26665 public Vector getReturnItems(BaseLineItemVO baseLineItemVO) throws RemoteException, ApplicationException; /** * This method is used to retrieve all invoice line item records for a * returned kit part number. * * @param invoiceID - invoiceID of a kit * @param loc - Location * @param sequence - Sequence of product kit selected for return * * @return The List of kit line items * * @throws RemoteException, ApplicationException */ public List findInvoiceLineItemsForReturn(Integer invoiceID, Integer loc, Short sequence) throws RemoteException, ApplicationException; public void exportInvoice(String startDate,String endDate,String customerNumFrom, String customerNumTo)throws RemoteException, ApplicationException; /** * This method is used to retrieve all SORT_FIELD in TEMP_INVOICE_EXPORT * * @return The List of SORT_FIELD * * @throws RemoteException, ApplicationException */ public List getSortFieldOfExportInvoice()throws RemoteException, ApplicationException ; public void refreshSavedInvoice(Integer savedInvoiceID, Integer loc, Date refreshTime) throws RemoteException, ApplicationException; /** * This method returns invoice id. * * @param loc Location. * @param invoiceNumber Invoice number. * @param customerId Customer ID. * @param invoiceDate Invoice Date. * @param invoiceTotal Invoice Total. * @param salesYearMonth Sales Year Month. * @param accountingDay Accounting Day. * @return Invoice id. * @throws ApplicationException if an error occurs. * @throws RemoteException if an error occurs. */ public Integer getInvoiceId(Integer loc, Integer invoiceNumber, Integer customerId, java.sql.Date invoiceDate, BigDecimal invoiceTotal, java.sql.Date salesYearMonth, Integer accountingDay) throws RemoteException, ApplicationException; /** * Method to check if RGN is Created for the selected invoice. * * @param invoiceId the invoice id * @param loc the location code * @return the list of parts that are in associated with an RGN for the given invoice id * @throws RemoteException If any RemoteException occurs * @throws ApplicationException If any application specific exception occurs */ public List getRGNNumber(Integer invoiceId, Integer loc) throws RemoteException, ApplicationException; /** * Method to get NAPA Reward non eligible line items. * * @return the list of line items that are non eligible for NAPA reward * @throws RemoteException If any RemoteException occurs * @throws ApplicationException If any application specific exception occurs */ public List getNapaRewardsNonEligibleList() throws RemoteException, ApplicationException; /** * This method updates NAPA Rewards data in INVOICE table. * * @param id * @param loc * @param refLoyaltyInvoiceStatusId * @throws RemoteException * @throws ApplicationException */ public void updateInvoiceWithNAPARewardsData(Integer id, Integer loc, byte refLoyaltyInvoiceStatusId) throws RemoteException, ApplicationException; /** * The method returns the refInvoiceFormTpeID value of the printer. * @return byte - refInvoiceFormTypeId. * @throws RemoteException If any RemoteException occurs * @throws ApplicationException If any application specific exception occurs */ public byte getRefInvoiceFormTypeId(int loc, int printerID) throws RemoteException, ApplicationException; /** * This method prints the cores pending return report if the invoice is eligible. * * @param invoiceVO * @param printingPaperFormat * @return boolean * @throws RemoteException If any RemoteException occurs * @throws ApplicationException If any application specific exception occurs */ public boolean printCoresPendingReturnReportIfEligible(InvoiceVO invoiceVO, Boolean printingPaperFormat) throws RemoteException, ApplicationException; /** * This will load existing FULFILLMENT by SALES_ORDER.ID * * @param salesOrderId * @param loc * @return * @throws RemoteException * @throws ApplicationException */ public List findFulfillmentsBySalesOrderId(final Integer salesOrderId, Integer loc) throws RemoteException, ApplicationException; public void createFulfillments(SalesOrderVO salesOrderVO) throws RemoteException, ApplicationException; public CEPDIStatusVO stampEInvoice(final InvoiceVO invoiceVO) throws RemoteException, ApplicationException; public boolean notifyNolOrderCancel(SalesOrderVO salesOrderVO, String reasonCode) throws RemoteException ; public void notifyNolOrderUpdate(SalesOrderVO salesOrderVO) throws RemoteException; public boolean notifyNolOrderPickup(SalesOrderVO salesOrderVO) throws RemoteException; public String nolOrderPaymentValidation(BigDecimal invoiceTotal,int salesOrderId,int numberOfLines,int loc) throws RemoteException; public void updateWIPSavedInvoice(Integer savedInvoiceId, Integer loc) throws RemoteException,ApplicationException; public OrderNotificationStatus sendOrderUpdateNotification( final OrderUpdateDetail orderUpdateDetail) throws RemoteException, ApplicationException; public SalesOrderVO findSalesOrderById(Integer salesOrderId, Integer location) throws RemoteException, ApplicationException; public OrderNotificationStatus sendNXPInterstoreUpdateNotification( final InvoiceVO invoiceVO, final boolean isCancelInvoice) throws RemoteException, ApplicationException; /** * This method gets the CSG restricted original invoice. * * @param invoiceNumber * @param loc * @return InvoiceVO * @throws RemoteException * @throws ApplicationException */ public InvoiceVO getOriginalCSGRestrictedInvoice(Integer invoiceNumber, Integer loc) throws RemoteException, ApplicationException ; /** * This method finds any return invoice against original invoice. * * @param loc * @param invoiceNumber * @return Boolean * @throws RemoteException * @throws ApplicationException */ public Boolean doesCSGInvoiceHaveReturns(Integer loc, Integer invoiceNumber) throws RemoteException, ApplicationException; /** * This method validates the charge invoice against the Business Rules Engine by invoking BRE service. * * @param invoiceVO * @return BREStatusVO * @throws RemoteException * @throws ApplicationException */ public BREStatusVO validateBREInvoice(final InvoiceVO invoiceVO, String action) throws RemoteException, ApplicationException; public BREStatusVO validateRemoteBREInvoice(final InvoiceVO invoiceVO, String action, final CustomerVO customerVO) throws RemoteException, ApplicationException; public String generateAndTransmitEInvoice(final InvoiceVO invoiceVO, final boolean isLocalInvoice) throws RemoteException, ApplicationException; /** * This method gets the AR invoice details. * * @param invoiceNumber * @param loc * @param customerId * @return InvoiceVO * @throws RemoteException * @throws ApplicationException */ public InvoiceVO getARStoreInvoiceDetails(Integer loc, Integer invoiceNumber, Integer customerId) throws RemoteException, ApplicationException; /** * This method gets the Refund Payment Methods. * * @param getValidRefundPaymentMethods * @throws RemoteException * @throws ApplicationException */ public Map getValidRefundPaymentMethods(String originalPaymentMethodIds) throws RemoteException, ApplicationException ; /** * getQuoteNumber method is to get the SavedQuoteNumber * @param TABLE_NAME * @param loc * @return QuoteNumber * @throws RemoteException * @throws ApplicationException */ public Integer getQuoteNumber(String TABLE_NAME, Integer loc) throws RemoteException, ApplicationException; /** * insertSavedInvoiceQuote method helps to insert the Quote details in the Table * @param savedInvoiceQuoteVO * @param loc * @return SavedInvoiceQuoteVO * @throws RemoteException * @throws ApplicationException */ public SavedInvoiceQuoteVO insertSavedInvoiceQuote(SavedInvoiceQuoteVO savedInvoiceQuoteVO, Integer loc) throws RemoteException, ApplicationException; /** * getSavedQuoteDetails is to get the saved Quote details from the DB. * @param invoiceID * @param integer * @return SavedInvoiceQuoteVO * @throws RemoteException * @throws ApplicationException */ public SavedInvoiceQuoteVO getSavedQuoteDetails(Integer invoiceID, Integer integer) throws RemoteException, ApplicationException; /** * checkCalcTaxOnQuote is to get the saved Quote details from the DB. * @param invoiceID * @param integer * @return SavedInvoiceQuoteVO * @throws RemoteException * @throws ApplicationException */ public LockableBoolean checkCalcTaxOnQuote() throws RemoteException, ApplicationException; /** * sendEmailQuote is to send the Email Quote to customer. * @param invoice * @throws RemoteException * @throws ApplicationException */ public void sendEmailQuote(InvoiceVO invoice) throws RemoteException, ApplicationException; /** * updateSavedInvoiceVo is to do the update the savedInvoiceValue in table. * @param invoiceVO * @param currUser * @throws RemoteException * @throws ApplicationException */ public void updateSavedInvoiceVo(InvoiceVO invoiceVO, Integer currUser) throws RemoteException,ApplicationException; /** * getTableSequenceID method is to get the last Sequence number. * @param TABLE_NAME * @param loc * @return * @throws RemoteException * @throws ApplicationException */ public Integer getTableSequenceID(String TABLE_NAME, Integer loc) throws RemoteException, ApplicationException; /** * setUpdatedTableSequenceID insert the updated sequence number into the table. * @param seq * @param TABLE_NAME * @param loc * @throws RemoteException * @throws ApplicationException */ public void setUpdatedTableSequenceID(Integer seq, String TABLE_NAME, Integer loc) throws RemoteException,ApplicationException; /** * updateInvoiceWithSignature is to update the invoice with signature . * @param invoiceId * @param loc * @param signatureFile * @throws RemoteException * @throws ApplicationException */ public void updateInvoiceWithSignature(Integer invoiceId, Integer loc, byte[] signatureFile) throws RemoteException, ApplicationException; public InvoiceVO findInvoiceByInvoiceNumber(final Integer invoiceNumber, final Integer customerId, final Integer location) throws RemoteException, ApplicationException; public List retrieveRemoteStoreInvoicePaymentDetails(final Integer invoiceNumber, final Date invoiceDate, final String remoteStoreNumber) throws RemoteException, ApplicationException; public void sendMetricsToAzure(final String message, LogType.Status status, final String payload, final String ipAddress, final int code, LogType.Feature type, final int loc) throws RemoteException, ApplicationException; public List printOpenInvoicesForStatement(Integer customerNumber) throws RemoteException, ApplicationException; public void createVLMOrders(String invoice) throws RemoteException, ApplicationException; }