Added GetMaterialdaten und GetHerstellerdaten

This commit is contained in:
2025-09-09 13:59:30 +02:00
parent f5cd3989aa
commit 1634e2822a
2 changed files with 1034 additions and 76 deletions

View File

@@ -5,13 +5,11 @@ using System.Threading;
using System.Threading.Tasks;
using System.Web.Http;
using CompControl.ErpConnector.Service.Models;
using static CompControl.ErpConnector.Service.Models.Cicor_SapModels;
using static CompControl.ErpConnector.Service.Models.SapDataTypes;
namespace CompControl.SapFrameworkConnector
{
[RoutePrefix("api/we")]
[RoutePrefix("api/standard")]
public class StandardApiController: ApiController
{
private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
@@ -21,73 +19,11 @@ namespace CompControl.SapFrameworkConnector
public async Task<HttpResponseMessage> GetBestellungen([FromBody] FilterBestellungen filterBestellungen, CancellationToken cancellationToken)
{
ApiResultBestellungen result = new ApiResultBestellungen(); //New ApiResult to return via Web
_log.Debug("GetBestellungen received for Filter: " + filterBestellungen.ToString());
try
{
_log.Debug("GetBestellungen received for Filter: " + filterBestellungen.ToString());
BAPI_PO_GETDETAIL_IMPORT import = new BAPI_PO_GETDETAIL_IMPORT() { PURCHASEORDER = filterBestellungen.OrderNo };
BAPI_PO_GETDETAIL_EXPORT details = SapStandardFunctions.BAPI_PO_GETDETAILS(import);
int cnt = 0;
foreach (BAPIEKPO det in details.PO_ITEMS)
{
cnt++;
string inspect = "";
string inspectInfo = "";
string prioText = "";
string prioChar = "";
string ItemText1 = "";
bool posIsClosed = false;
DateTime expDeliverDate = DateTime.MaxValue;
if (det.QUAL_INSP.Equals("X"))
{
inspect = "Q";
if (ConfigHelper.SapLanguage.Equals("DE")) { inspectInfo = "Qualitaetspruefung erforderlich!"; }
else { inspectInfo = "Quality check mandatory!"; }
}
expDeliverDate = SapStandardFunctions.ConvertSapDateToDateTime(det.ExpectedDeliveryDate, false);
if (det.QUANTITY <= det.QUANTITYPROCESSED) { posIsClosed = true; }
GetMAKTXfromMATNR_IMPORT getMak = new GetMAKTXfromMATNR_IMPORT();
getMak.MATNR = det.MATERIAL.Trim();
GetMAKTXfromMATNR_EXPORT outMak = SapStandardFunctions.GetMAKTXfromMATNR(getMak);
ItemText1 = outMak.MAKTX;
GrDataItem gr = new GrDataItem();
gr.AcceptedManufacturesLink = cnt.ToString();
gr.Created = SapStandardFunctions.ConvertSapDateToDateTime(details.PO_HEADER.CREATED_ON);
gr.LastUpdate = SapStandardFunctions.ConvertSapDateToDateTime(det.CHANGED_ON);
gr.PosIsClosed = posIsClosed;
gr.OrderNo = det.PO_NUMBER;
gr.OrderPos = det.PO_ITEM;
gr.OrderQuantity = det.QUANTITY;
gr.ItemNo = det.MATERIAL.Trim();
gr.ItemText1 = ItemText1;
gr.ItemNoRef = gr.CustomValue05 = det.PUR_MAT;
gr.OrderPosInfoText = det.ACCTASSCAT;
gr.QuantityProcessed = det.QUANTITYPROCESSED;
gr.QuantityUnit = det.UNIT;
gr.Plant = det.PLANT;
gr.Inspection = inspect;
gr.InspectionInfo = inspectInfo;
gr.Priority = prioChar;
gr.PriorityInfoText = prioText;
gr.CustomValue01 = det.QUAL_INSP;
gr.ExpectedDeliveryDate = expDeliverDate;
gr.MPN = det.MANU_MAT.Trim();
gr.SupplierNo = details.PO_HEADER.VENDOR;
gr.SupplierName = details.PO_HEADER.VEND_NAME;
gr.SupplierItemNo = det.VEND_MAT;
gr.StorageLocation = det.STOR_LOC;
gr.Schedule = det.SCHEDULE.TrimStart('0');
gr.CustomValue08 = details.PO_HEADER.DOC_TYPE;
if (!det.DELETE_IND.Equals("L")) { result.GrDataItems.Add(gr); }
}
_log.Debug($"Result of GetBestellungen now consists of {result.GrDataItems.Count} GrDataItems and {result.ManufacturerDataItems.Count} ManufactuerDataItems...");
SapStandardFunctions.GetBestellung(filterBestellungen.OrderNo);
if (result.IsSuccessful) { _log.Debug(result); } //Action was successful => log for debug
else { _log.Error(result); } //An error occurred
@@ -108,7 +44,6 @@ namespace CompControl.SapFrameworkConnector
return Request.CreateResponse(HttpStatusCode.OK, result);
}
[Route("getherstellerdaten")]
public async Task<HttpResponseMessage> GetHerstellerdaten([FromUri] string itemNo, CancellationToken cancellationToken)
{
@@ -117,7 +52,7 @@ namespace CompControl.SapFrameworkConnector
try
{
SapStandardFunctions.GetHerstellerdaten(itemNo);
if (result.IsSuccessful) { _log.Debug(result); } //Action was successful => log for debug
else { _log.Error(result); } //An error occurred
@@ -137,5 +72,63 @@ namespace CompControl.SapFrameworkConnector
return Request.CreateResponse(HttpStatusCode.OK, result);
}
[Route("getmaterialdaten")]
public async Task<HttpResponseMessage> GetMaterialdaten([FromUri] string itemNo, CancellationToken cancellationToken)
{
ApiResultMaterialdaten result = new ApiResultMaterialdaten(); //New ApiResult to return via Web
_log.Debug("GetMaterialdaten received for itemNo: " + itemNo);
try
{
result = SapStandardFunctions.GetMaterialdaten(itemNo);
if (result.IsSuccessful) { _log.Debug(result); } //Action was successful => log for debug
else { _log.Error(result); } //An error occurred
}
catch (Exception ex)
{
string sm = $"GetMaterialdaten: An unexpected error occured for '{itemNo}' " + ex;
_log.Error(sm);
result = new ApiResultMaterialdaten //Default ApiResult on error
{
ErrorNumber = 101,
MessageShort = sm,
MessageLong = sm,
MessageTechnical = $"{sm} [{itemNo}] - {ex}"
};
}
return Request.CreateResponse(HttpStatusCode.OK, result);
}
[Route("getallmaterialdaten")]
public async Task<HttpResponseMessage> GetAllMaterialdaten(CancellationToken cancellationToken)
{
ApiResultMaterialdaten result = new ApiResultMaterialdaten(); //New ApiResult to return via Web
_log.Debug("GetAllMaterialdaten received ");
try
{
result = SapStandardFunctions.GetMaterialdaten("");
if (result.IsSuccessful) { _log.Debug(result); } //Action was successful => log for debug
else { _log.Error(result); } //An error occurred
}
catch (Exception ex)
{
string sm = $"GetAllMaterialdaten: An unexpected error occured => " + ex;
_log.Error(sm);
result = new ApiResultMaterialdaten //Default ApiResult on error
{
ErrorNumber = 101,
MessageShort = sm,
MessageLong = sm,
MessageTechnical = $"{sm} [] - {ex}"
};
}
return Request.CreateResponse(HttpStatusCode.OK, result);
}
}
}