MPInterfacebImportPurchaseProcessDocument Method |
You can create the object via CreatePurchaseDocumentFromPurchaseProcess(Int32, DateTime, clsImportSalesContractDocumenteDocTypes, clsImportSalesContractDocumenteFilterBalanceMode, Int32).
After creation you can modify the document clsImportPurchaseProcessDocument and save with this method.
Namespace: MARIInterface
public bool bImportPurchaseProcessDocument( clsImportPurchaseProcessDocument oPurchaseProcessDocument, clsImportBaseeImportMode nImportMode )
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; }
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; }