Click or drag to resize

clsImportPurchaseProcessDocument Class

Handling to import purchase process: purchase documents. The class reads from the MS Access table MARIProjektImportPurchaseProcessDocument.
Inheritance Hierarchy
SystemObject
  MARIInterfaceclsImportBase
    MARIInterfaceclsImportSalesContractDocument
      MARIInterfaceclsImportPurchaseProcessDocument

Namespace:  MARIInterface
Assembly:  MARIInterface (in MARIInterface.dll) Version: 8.0.0.100
Syntax
public class clsImportPurchaseProcessDocument : clsImportSalesContractDocument

The clsImportPurchaseProcessDocument type exposes the following members.

Constructors
  NameDescription
Public methodclsImportPurchaseProcessDocument
Initializes a new instance of the clsImportPurchaseProcessDocument class
Top
Methods
  NameDescription
Public methodGetListUserDefinedFields
Returns the user defined field definition for the dimension "Purchase Process Document". The fields have to be defined directly in MARIProject.
(Overrides clsImportSalesContractDocumentGetListUserDefinedFields(MPInterface).)
Top
Remarks
Examples
Create Purchase Order
private int CreatePurchaseOrder(int lPOProcessID, DateTime dtDocumentDate) {
    Log($"CreatePurchaseOrder(lPOProcessID={lPOProcessID},{dtDocumentDate.ToShortDateString()})");

    clsImportPurchaseProcessDocument oNewPODoc;
    DateTime dtFilterPos = new DateTime(2016, 7, 1);
    clsImportSalesContractDocument.eDocTypes nDocType = clsImportSalesContractDocument.eDocTypes.PurchaseOrder;
    clsImportSalesContractDocument.eFilterBalanceMode nFilterBalance = clsImportSalesContractDocument.eFilterBalanceMode.NoFilterByQty;

    //The interface will now open the purchase process and creates a new PO document based on the BalaceMode
    oNewPODoc = oMPInterface.CreatePurchaseDocumentFromPurchaseProcess(lPOProcessID, dtFilterPos, nDocType, nFilterBalance,/*BaseDoc*/ 0);

    //add the external information
    oNewPODoc.DocumentDate = dtDocumentDate;
    oNewPODoc.PostingDate = dtDocumentDate;
    oNewPODoc.DocDueDate = new DateTime(2016, 8, 1); //delivery date for the print out

    //change del date in the positiosn
    foreach (clsImportPurchaseProcessDocumentPositions oPos in oNewPODoc.Positions) {
        oPos.DeliveryDate = new DateTime(2016, 8, 1);
    }

    //Create SBO document out of the MARIProject document
    oNewPODoc.TransferERP = true;

    if (oMPInterface.bImportPurchaseProcessDocument(oNewPODoc, clsImportBase.eImportMode.ValidateAndImport)) {
        Log($"CreatePurchaseOrder MPDocID={oNewPODoc.DocumentID}, SBO DocEntry={oNewPODoc.DocEntry}");
        return oNewPODoc.DocumentID;
    } else {
        LogFail("CreatePurchaseOrder: " + oMPInterface.oErrors.PrintErrors());
    }
    return 0;
}
A/P Invoice example
private int CreatePODocumentForPOProcess(int lPOProcessID, int lPurchaseOrderDocID, DateTime dtDocumentDate) {
    Log($"CreatePODocumentForPOProcess({lPOProcessID}, {lPurchaseOrderDocID}, {dtDocumentDate.ToShortDateString()})");

    clsImportPurchaseProcessDocument oNewPODoc;
    DateTime dtFilterPos = new DateTime(2016, 7, 1);
    clsImportSalesContractDocument.eDocTypes nDocType = clsImportSalesContractDocument.eDocTypes.AP_Invoice;
    clsImportSalesContractDocument.eFilterBalanceMode nFilterBalance = clsImportSalesContractDocument.eFilterBalanceMode.QuantityByBaseDocument;

    //The interface will now open the purchase process and creats a new PO document based on the BalaceMode
    oNewPODoc = oMPInterface.CreatePurchaseDocumentFromPurchaseProcess(lPOProcessID, dtFilterPos, nDocType, nFilterBalance, lPurchaseOrderDocID);

    //add the external information
    oNewPODoc.REFNumber = "123456"; // external AP Invoice number
    oNewPODoc.DocumentDate = dtDocumentDate;
    oNewPODoc.PostingDate = dtDocumentDate;
    oNewPODoc.JournalRemark = "Journal Remark";

    //Create SBO document out of the MARIProject document
    oNewPODoc.TransferERP = true;

    //example to add a new text line. Adding other position types needs a reference to the sales contract position.
    clsImportPurchaseProcessDocumentPositions oNewPos = new clsImportPurchaseProcessDocumentPositions();
    oNewPos.PositionType = clsImportSalesContractDocumentPositions.ePosTypes.Text;
    oNewPos.MPPositionType = clsImportProjectContractPosition.eContractPositionType.TextPosition;
    oNewPos.AccountingInfo = "My text";
    oNewPODoc.AddPosition(oNewPos);

    if (oMPInterface.bImportPurchaseProcessDocument(oNewPODoc, clsImportBase.eImportMode.ValidateAndImport)) {
        Log($"bImportPurchaseProcessDocument: MPDocID={oNewPODoc.DocumentID}, SBO DocEntry={oNewPODoc.DocEntry}");
        return oNewPODoc.DocumentID;
    } else {
        LogFail("bImportPurchaseProcessDocument: " + oMPInterface.oErrors.PrintErrors());
    }
    return 0;
}
See Also