示例#1
0
        public QcInspectionResponse QueryQcInspection(string externalId)
        {
            var inspectionQuery = new MaterialInspectionReadByIDQueryMessage_sync();

            inspectionQuery.MaterialInspection          = new MaterialInspectionReadByIDQuery();
            inspectionQuery.MaterialInspection.ID       = new BusinessTransactionDocumentID();
            inspectionQuery.MaterialInspection.ID.Value = externalId;

            MaterialInspectionReadByIDResponseMessage_sync sapResponse = new MaterialInspectionReadByIDResponseMessage_sync();

            try
            {
                sapResponse = _sapClient.Read(inspectionQuery);
            }
            catch (Exception e)
            {
                return(new QcInspectionResponse {
                    Errors = new List <string> {
                        "Failure to read Qc Inspection: " + e.Message
                    }
                });
            }

            return(ParseSapQcInspectionRead(sapResponse));
        }
示例#2
0
        public QcInspectionResponse ParseSapQcInspectionRead(MaterialInspectionReadByIDResponseMessage_sync sapResponse)
        {
            QcInspectionResponse response = new QcInspectionResponse();
            BaseResponse         tempRes  = SapLogParser.ParseSapResponseLog(sapResponse.Log);

            response.Errors   = tempRes.Errors;
            response.Warnings = tempRes.Warnings;

            try
            {
                if (sapResponse.MaterialInspection != null)
                {
                    response.ExternalId = sapResponse.MaterialInspection.ID.Value;

                    if (sapResponse.MaterialInspection.IdentifiedStockKey != null)
                    {
                        response.InventoryId = sapResponse.MaterialInspection.IdentifiedStockKey.ID.Value;
                    }

                    if (sapResponse.MaterialInspection.InspectionQuantity != null)
                    {
                        response.InspectionQty = sapResponse.MaterialInspection.InspectionQuantity.Value;
                    }

                    if (sapResponse.MaterialInspection.Decision != null && sapResponse.MaterialInspection.Decision.AttachmentFolder != null &&
                        sapResponse.MaterialInspection.Decision.AttachmentFolder.Document != null)
                    {
                        var documents   = sapResponse.MaterialInspection.Decision.AttachmentFolder.Document;
                        var pdfDocument = documents.FirstOrDefault(x => x.CategoryCode == "3" && x.TypeCode != null && x.TypeCode.Value == "10001");
                        response.DocumentExternalId = (pdfDocument != null && pdfDocument.UUID != null) ? pdfDocument.UUID.Value : null;
                    }
                }
            }
            catch (Exception e)
            {
                response.Errors.Add("Failed to parse Qc Inspection Read Response from Sap: " + e.Message);
                return(response);
            }

            return(response);
        }