示例#1
0
        /// <summary>
        /// 无异常处理
        /// </summary>
        /// <param name="doc"></param>
        /// <returns></returns>
        public ExtractDocumentReport ExtractWith(Document doc)
        {
            ExtractDocumentReport ret = new ExtractDocumentReport();

            try
            {
                using (ExecutionContextScope scope = new ExecutionContextScope())
                {
                    foreach (ExtractDataNode _node in _extractNodes)
                    {
                        _node.ExtractDataAll(doc);
                    }
                }
            }
            catch (Exception extractEx)
            {
                ret.ExtractExcetpion = extractEx;
            }

            ret.CurrentExtractResult = ExtractScope.MergingAllScopeObject();

            //绑定结果(集)
            if (DocumentResult != null)
            {
                DocumentResult.DataBind(ret.CurrentExtractResult);
            }

            return(ret);
        }
        public async Task <DocumentResult> GetDocumentBinaryByPapmiNoAndPathAsync(string papmiNo, string path, bool isFileStreamResult)
        {
            var data = await _medicalRecordRepository.GetDocumentBinaryByPapmiNoAndPathAsync(papmiNo, path, isFileStreamResult);

            string contentType = data.DocType.GetContentTypeByDocType();

            if (!isFileStreamResult)
            {
                return(new DocumentResult()
                {
                    ContentType = contentType,
                    FileStreamResult = null
                });
            }

            Stream stream           = new MemoryStream(data.DocData);
            var    fileStreamResult = new FileStreamResult(stream, contentType);

            var result = new DocumentResult()
            {
                ContentType      = contentType,
                FileStreamResult = fileStreamResult
            };

            return(result);
        }
        public async Task <bool> DeleteDocumentAsync(DocumentResult documentResult)
        {
            _view.SetStatusBarMessage("Deleting Document...");
            var documentStore = _clientConnectionManager.CreateDocumentClientAndStore(SelectedConnection);

            try
            {
                var source           = new CancellationTokenSource();
                var document         = documentResult.Document;
                var partitionKeyPath = await documentStore.LookupPartitionKeyPath(SelectedConnection.Database, documentResult.CollectionName);

                var partionKeyValue = document.SelectToken(partitionKeyPath).ToString();
                var result          = await documentStore.ExecuteAsync(SelectedConnection.Database, documentResult.CollectionName,
                                                                       context => context.DeleteAsync(document[Constants.DocumentFields.ID].ToString(), new RequestOptions()
                {
                    PartitionKey = partionKeyValue
                }), source.Token);

                _view.SetStatusBarMessage("Document Deleted");
                _view.DocumentText = string.Empty;
                return(result);
            }
            catch (Exception ex)
            {
                _view.SetStatusBarMessage("Unable to delete document");
                _view.ShowMessage(ex.Message, "Document Delete Error", icon: System.Windows.Forms.MessageBoxIcon.Error);
                return(false);
            }
        }
示例#4
0
        public void AddingAvrgTimeIsCorrect()
        {
            // Arrange
            ScanResult res = new ScanResult(new Uri("http://mock.com"));

            TimeSpan ts1 = new TimeSpan(0, 1, 0);
            TimeSpan ts2 = new TimeSpan(0, 3, 0);
            TimeSpan avg = new TimeSpan(0, 2, 0); //TimeSpan.FromMilliseconds((ts1 + ts2).TotalMilliseconds  / 2);

            DocumentResult d_res1 = new DocumentResult()
            {
                DownloadTime = ts1
            };
            DocumentResult d_res2 = new DocumentResult()
            {
                DownloadTime = ts2
            };

            // Act
            res.AddDocumentResult(d_res1);
            res.AddDocumentResult(d_res2);

            // Assert
            Assert.Equal(avg, res.AvgDownloadTime);
        }
        /// <summary>
        /// Get Native file path of a document
        /// </summary>
        /// <param name="searchDocument">Document to get native file path of</param>
        /// <returns>Native file path</returns>
        private string GetNativeFilePath(DocumentResult searchDocument)
        {
            #region Pre-condition asserts

            searchDocument.ShouldNotBe(null);
            searchDocument.Fields.ShouldNotBe(null);

            #endregion

            var nativeFilePath      = string.Empty;
            var nativeFilePathField =
                searchDocument.Fields.Find(
                    x => String.CompareOrdinal(x.Name.ToLowerInvariant(), EVSystemFields.NativeFilePath.ToLower()) == 0);
            if (nativeFilePathField != null)
            {
                nativeFilePath = nativeFilePathField.Value;
            }

            #region Post-condition asserts

            searchDocument.ShouldNotBe(null);
            searchDocument.Fields.ShouldNotBe(null);

            #endregion

            return(nativeFilePath);
        }
        /// <summary>
        /// Construct Log Message and Call Log pipe
        /// </summary>
        private void LogMessage(DocumentResult document, bool success, string message)
        {
            var log    = new List <JobWorkerLog <LogInfo> >();
            var taskId = Convert.ToInt32(document.DocumentControlNumber.Replace(_mDataSet.DCNPrefix, string.Empty));
            // form the paser lof entity
            var parserLog = new JobWorkerLog <LogInfo>
            {
                JobRunId =

                    (!String.IsNullOrEmpty(PipelineId)) ? Convert.ToUInt32(PipelineId) : 0,
                CorrelationId    = taskId,
                WorkerRoleType   = "PrintValidationWorker",
                WorkerInstanceId = WorkerId,
                IsMessage        = false,
                Success          = success, //!string.IsNullOrEmpty(documentDetail.DocumentProductionNumber) && success,
                CreatedBy        = bulkPrintServiceRequestBEO.RequestedBy.UserId,
                LogInfo          =
                    new LogInfo
                {
                    TaskKey = document.DocumentControlNumber,
                    IsError = !success
                }
            };

            parserLog.LogInfo.AddParameters(Constants.DCN, document.DocumentControlNumber);
            parserLog.LogInfo.AddParameters(message, mappedPrinter.PrinterDetails.Name);
            log.Add(parserLog);
            SendLog(log);
        }
示例#7
0
 private void sendMeasureEndedMsg(object sender, DocumentResult e)
 {
     sendJsonAsync(new
     {
         Type   = "measure_ended",
         Result = e
     }).Wait();
 }
        public DocumentResult GetPeerResult(int id)
        {
            var query = (from m in _methodRepository.GetAllQueryable().Where(m => m.SourceCodeId == id)
                         join rr in
                         (from r in _resultRepository.GetAllQueryable()
                          join sm in _methodRepository.GetAllQueryable() on r.SimMethodId equals sm.Id into rmm
                          from sm in rmm
                          join so in _sourceCodeRepository.GetAllQueryable().Where(s => s.Type == Root.CommonEnum.SourceCodeType.PEER) on sm.SourceCodeId equals so.DocumentId into som
                          from so in som
                          select new { Result = r, SimMethod = sm, Type = so == null ? 0 : so.Type, Url = so == null ? "" : so.DocumentName }
                         ) on m.Id equals rr.Result.BaseMethodId into mrr
                         from rr in mrr.DefaultIfEmpty()
                         select new { Result = rr.Result, Method = m, SimMethod = rr.SimMethod, Type = rr == null ? 0 : rr.Type, Url = rr == null ? "" : rr.Url }).OrderBy(r => r.Method.Id).ToList();
            var document = _sourceCodeRepository.GetAllQueryable().FirstOrDefault(r => r.DocumentId == id);
            List <DocumentResultDetail> details = new List <DocumentResultDetail>();

            foreach (var m in query)
            {
                DocumentResultDetail item = new DocumentResultDetail
                {
                    Id         = m.Method.Id,
                    MethodName = m.Method.MethodName,
                    BaseMethod = m.Method.MethodString,
                };
                if (m.Result != null)
                {
                    if (m.Type == Root.CommonEnum.SourceCodeType.PEER)
                    {
                        item.SimMethod = m.SimMethod.MethodString;
                        item.Position  = JsonConvert.DeserializeObject <SimilarityPositions>(m.Result.ResultDetail);
                        item.SimRatio  = m.Result.SimRatio;
                        details.Add(item);
                    }
                }
                else
                {
                    item.SimMethod = null;
                    item.Position  = null;
                    item.SimRatio  = 0;
                    details.Add(item);
                }
            }
            var result = new DocumentResult()
            {
                FileName        = document.DocumentName,
                GeneralSimRatio = details.Sum(d => d.SimRatio) / details.Count,
                Details         = details
            };

            if (result.Details.Count > 0 && result.GeneralSimRatio > 0)
            {
                return(result);
            }
            else
            {
                return(null);
            }
        }
示例#9
0
        public static string ResponseBuilder(DocumentResult document)
        {
            var TitleHeader    = "Title " + document.TitleNumber + " - " + document.TitleName + Environment.NewLine;
            var SubtitleHeader = document.SubtitleNumber.Trim() != "" && document.SubtitleName.Trim() != "" ?
                                 "Subtitle " + document.SubtitleNumber + " - " + document.SubtitleName + Environment.NewLine : "";
            var Body = document.DocumentHeader + Environment.NewLine + Environment.NewLine + document.DocumentText + Environment.NewLine + Environment.NewLine + document.Citation;

            return(TitleHeader + SubtitleHeader + Body);
        }
        public void OnResult(DocumentResult scanResult)
        {
            _textView.Text = "Document scanned successfully.";

            var resImg = (scanResult.Result as AnylineImage).Clone();

            _imageViewResult.SetImageBitmap(resImg.Bitmap);

            _toastAlreadyShowing = false;
        }
        public override async Task RunCommand(object sender)
        {
            var engine = (IAutomationEngineInstance)sender;

            string vUsername;
            string vPassword;

            var environmentSettings = new EnvironmentSettings();

            environmentSettings.Load();
            AuthMethods authMethods = new AuthMethods();

            authMethods.Initialize(environmentSettings.ServerType, environmentSettings.OrganizationName, environmentSettings.ServerUrl, environmentSettings.Username, environmentSettings.Password);

            if (environmentSettings.ServerType == "Local")
            {
                throw new Exception("Documents commands cannot be used with local Server");
            }
            else
            {
                vUsername = environmentSettings.Username;
                vPassword = environmentSettings.Password;
            }

            Guid vHumanTaskId = (Guid)await v_TaskId.EvaluateCode(engine);

            bool vSavePageText = (bool)await v_SavePageText.EvaluateCode(engine);

            bool vSavePageImages = (bool)await v_SavePageImages.EvaluateCode(engine);

            string vOutputFolder = (string)await v_OutputFolder.EvaluateCode(engine);

            bool vAwaitCompletion = (bool)await v_AwaitCompletion.EvaluateCode(engine);

            int vTimeout = (int)await v_Timeout.EvaluateCode(engine);

            var vData = await v_OutputUserVariableName5.EvaluateCode(engine);

            DataTable dataDt = vData == null ? null : (DataTable)vData;

            var            userInfo = authMethods.GetDocumentsAuthToken(vUsername, vPassword);
            DocumentResult docInfo  = DocumentMethods.SaveDocumentResults(userInfo, vHumanTaskId, vAwaitCompletion, vSavePageImages, vSavePageText, vTimeout,
                                                                          vOutputFolder, dataDt);
            string    docInfoAsJSON      = docInfo.OutputAsJSON;
            DataTable docInfoAsDataTable = docInfo.DataAsTable;

            dataDt = docInfo.OutputAsTable;

            docInfo.Status.SetVariableValue(engine, v_OutputUserVariableName);
            docInfo.IsCompleted.SetVariableValue(engine, v_OutputUserVariableName1);
            docInfo.HasFailedOrError.SetVariableValue(engine, v_OutputUserVariableName2);
            docInfoAsJSON.SetVariableValue(engine, v_OutputUserVariableName3);
            docInfoAsDataTable.SetVariableValue(engine, v_OutputUserVariableName4);
            dataDt.SetVariableValue(engine, v_OutputUserVariableName5);
        }
        public void Document_ToString_ContentNotNull()
        {
            var result = new DocumentResult<dynamic>(new OperationResult<dynamic>
            {
                Cas = 10202020202,
                Id = "foo",
                Value = new { Name = "ted", Age = 10 }
            });

            var expected = "{\"id\":\"foo\",\"cas\":10202020202,\"token\":null,\"content\":\"{\\\"Name\\\":\\\"ted\\\",\\\"Age\\\":10}\"}";
            Assert.AreEqual(expected, result.Document.ToString());
        }
示例#13
0
        public void Document_ToString_ContentNotNull()
        {
            var result = new DocumentResult <dynamic>(new OperationResult <dynamic>
            {
                Cas   = 10202020202,
                Id    = "foo",
                Value = new { Name = "ted", Age = 10 }
            });

            var expected = "{\"id\":\"foo\",\"cas\":10202020202,\"token\":null,\"content\":\"{\\\"Name\\\":\\\"ted\\\",\\\"Age\\\":10}\"}";

            Assert.AreEqual(expected, result.Document.ToString());
        }
示例#14
0
        /// <summary>
        ///     Methos to identify the field's to which values are to be updated
        /// </summary>
        /// <param name="document">DocumentResult</param>
        /// <param name="actualString">string</param>
        /// <param name="replaceString">string</param>
        /// <param name="userGuid">string</param>
        /// <returns>List<RVWDocumentFieldBEO /></returns>
        private List <RVWDocumentFieldBEO> GetFieldValuesToUpdate(DocumentResult document,
                                                                  string actualString, string replaceString, string userGuid)
        {
            var            documentFields = new List <RVWDocumentFieldBEO>();
            RVWDocumentBEO documentData   =
                DocumentService.GetDocumentData(document.MatterID.ToString(CultureInfo.InvariantCulture),
                                                document.CollectionID, document.DocumentID, userGuid, "false");

            if (documentData != null && !documentData.IsLocked && documentData.FieldList.Count > 0)
            {
                //Filters the system and read only fields
                IEnumerable <RVWDocumentFieldBEO> editableFields = documentData.FieldList.Where(x => !x.IsReadable);
                if (editableFields.Any())
                {
                    List <RVWDocumentFieldBEO> fields = editableFields.ToList();
                    documentData.FieldList.Clear();
                    fields.SafeForEach(y => documentData.FieldList.Add(y));
                }

                //Loop through the fields and update the field value accordingly
                foreach (RVWDocumentFieldBEO documentFieldValue in documentData.FieldList)
                {
                    if (documentFieldValue.FieldType.DataTypeId == Constants.ContentFieldType)
                    {
                        documentFieldValue.FieldValue = DecodeContentField(documentFieldValue.FieldValue);
                    }
                    if (!string.IsNullOrEmpty(documentFieldValue.FieldValue))
                    {
                        if (documentFieldValue.FieldValue.ToLowerInvariant().Contains(actualString.ToLowerInvariant()))
                        {
                            var             reg        = new Regex(actualString.ToLowerInvariant(), RegexOptions.Multiline);
                            MatchCollection theMatches = reg.Matches(documentFieldValue.FieldValue.ToLowerInvariant());
                            _mOccurrences += theMatches.Count;
                            documentFields.Add(new RVWDocumentFieldBEO
                            {
                                FieldId    = documentFieldValue.FieldId,
                                FieldName  = documentFieldValue.FieldName,
                                FieldValue = documentFieldValue.FieldValue.ToLowerInvariant().
                                             Replace(actualString.ToLowerInvariant(), replaceString),
                                FieldTypeId = documentFieldValue.FieldType.DataTypeId
                            });
                        }
                    }
                }
            }
            return(documentFields);
        }
示例#15
0
        internal DocumentResult UpdateDocumentMetadata(Session session, string documentId, DocumentMetadata documentMetadata)
        {
            var result = new DocumentResult {
                Success = false
            };

            try
            {
                //TODO - logic
            }
            catch (Exception ex)
            {
                Utilities.Util.LogError(ex.Message); //TODO - Replace with unified logging service.
                throw;
            }
            return(result);
        }
示例#16
0
        internal DocumentResult DeleteDocument(Session session, string documentId)
        {
            var result = new DocumentResult {
                Success = false
            };

            try
            {
                //TODO - logic
            }
            catch (Exception e)
            {
                //TODO - Log this.
                var log = e.Message;
            }
            return(result);
        }
示例#17
0
        internal DocumentResult AddDocument(Session session, DocumentMetadata documentMetadata, byte[] documentData)
        {
            var result = new DocumentResult {
                Success = false
            };

            try
            {
                // Determine where the document should be placed.

                //TODO - logic
            }
            catch (Exception ex)
            {
                Utilities.Util.LogError(ex.Message); //TODO - Replace with unified logging service.
                throw;
            }
            return(result);
        }
        private static Tuple <DocumentResult, string> ParallelLoadSynced(string dokumentNummer)
        {
            var svcTask  = new Task <DocumentResult>(() => LoadFromServiceAsync(dokumentNummer).Result);
            var htmlTask = new Task <string>(() => DownloadHtmlFromRisServer(dokumentNummer).Result);

            svcTask.Start();
            htmlTask.Start();

            Task.WaitAll(svcTask, htmlTask);

            DocumentResult docResult = svcTask.Result;
            string         html      = htmlTask.Result;

            if (null != docResult && html != null)
            {
                return(new Tuple <DocumentResult, string>(docResult, html));
            }

            return(null);
        }
        public async Task <object> SaveDocumentAsync(DocumentResult documentResult)
        {
            _view.SetStatusBarMessage("Saving Document...");
            var documentStore = _clientConnectionManager.CreateDocumentClientAndStore(SelectedConnection);

            try
            {
                var source = new CancellationTokenSource();
                var result = await documentStore.ExecuteAsync(SelectedConnection.Database, documentResult.CollectionName, context => context.UpdateAsync(documentResult.Document), source.Token);

                _view.SetStatusBarMessage("Document Saved");
                _view.SetUpdatedResultDocument(result);
                return(result);
            }
            catch (Exception ex)
            {
                _view.SetStatusBarMessage("Unable to save document");
                _view.ShowMessage(ex.Message, "Document Save Error", icon: System.Windows.Forms.MessageBoxIcon.Error);
                return(false);
            }
        }
示例#20
0
        public async Task <ActionResult <IEnumerable <DocumentResult> > > ListFiles()
        {
            try
            {
                var blobsInfoList = new List <DocumentResult>();

                // List all blobs in the container
                await foreach (BlobItem blobItem in _blobContainerClient.GetBlobsAsync())
                {
                    var dr = new DocumentResult {
                        Name = blobItem.Name, Location = CONTAINER_NAME, FileSize = blobItem.Properties.ContentLength
                    };

                    blobsInfoList.Add(dr);
                }

                return(blobsInfoList);
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
        /// <summary>
        /// Print the document
        /// </summary>
        /// <param name="jobId"></param>
        /// <param name="request"></param>
        /// <param name="document"></param>       
        /// <param name="separatorSheet"></param>
        /// <param name="errorCode"></param>
        /// <returns></returns>
        private bool PrintDocumentSet(string jobId, BulkPrintServiceRequestBEO request, DocumentResult document,
            string separatorSheet, out string errorCode)
        {
            var toReturn = false;
            var title = string.Empty;
            var fieldValue = string.Empty;
            var binaryType = NativeSetBinaryType;
            var sb = new StringBuilder(string.Empty);
            //Get the binary types for the images
            switch (request.BulkPrintOptions.ImageType.ImageType)
            {
                case DocumentImageTypeBEO.Native:
                    binaryType = NativeSetBinaryType;
                    break;
                case DocumentImageTypeBEO.ImageSet:
                    binaryType = ImageSetBinaryType;
                    break;
                case DocumentImageTypeBEO.ProductionSet:
                    binaryType = ProductionSetBinaryType;
                    break;
            }
            //Get the document binary            
            var documentData = DocumentBO.GetDocumentBinaryData(long.Parse(request.DataSet.MatterId),
                request.BulkPrintOptions.ImageType.
                    ImageIdentifier.CollectionId,
                document.DocumentID, binaryType,
                string.Empty);

            #region Assertion

            documentData.ShouldNotBe(null);
            documentData.DocumentBinary.ShouldNotBe(null);

            #endregion

            var isFileExists = documentData.DocumentBinary.FileList.Count > 0;
            errorCode = string.Empty;
            foreach (var fileInfo in documentData.DocumentBinary.FileList)
            {
                if (!File.Exists(fileInfo.Path))
                {
                    isFileExists = false;
                    break;
                }
            }
            m_UserDetails = UserBO.GetUserUsingGuid(request.RequestedBy.UserId);
            userContext = CreateUserContext(request.RequestedBy.UserId);
            EVHttpContext.CurrentContext = userContext;
            //Construct Query string                       
            if (!isFileExists)
            {
                errorCode = "Bulk print Invalid file";
                toReturn = true;
            }
            else
            {
                fieldValue = document.DocumentControlNumber;
                if (document.Fields != null && document.Fields.Any())
                {
                    fieldValue = document.DocumentControlNumber;
                    title = Constants.TitleNotAvailable;
                    foreach (var field in document.Fields)
                    {
                        if (field == null) continue;
                        if (field.DataTypeId == Constants.TitleFieldType)
                            title = !string.IsNullOrEmpty(field.Value) ? fieldValue.Trim() : title;
                        if (String.IsNullOrEmpty(field.Name)) continue;
                        if (field.Name.Equals(_mBootParameters.FieldName))
                            fieldValue = !string.IsNullOrEmpty(field.Value) ? field.Value.Trim() : fieldValue;
                    }
                }
                var specialChars = new List<string> {"<", ">", ":", "\"", "\\", "|", "?", "*", "."};
                if (specialChars.Exists(x => fieldValue.Contains(x)))
                {
                    // Log documents with special characters or empty values...
                    toReturn = false;
                    errorCode = "Special characters in the field value and hence cannot be printed";
                }
                else
                {
                    ConstructQueryString(jobId, document, title, separatorSheet, sb, documentData, fieldValue);
                    try
                    {
                        toReturn = CreatePostWebRequestForCreatingPdf(jobId, sb.ToString());
                    }
                    catch (WebException webException)
                    {
                        webException.Trace().Swallow();
                    }
                    catch (Exception ex)
                    {
                        ex.Trace().Swallow();
                        errorCode = "Error in Conversion and hence cannot be printed";
                    }
                }
            }
            return toReturn;
        }
 private static FilteredDocumentBusinessEntity ConstructFilteredDocument(DocumentResult documentResult)
 {
     var filteredDocument = new FilteredDocumentBusinessEntity
     {
         Id = documentResult.DocumentID,
         MatterId = documentResult.MatterID.ToString(CultureInfo.InvariantCulture),
         CollectionId = documentResult.CollectionID,
         IsLocked = documentResult.IsLocked,
         ReviewsetId = documentResult.ReviewsetID,
         DCN = documentResult.DocumentControlNumber,
         FamilyId = documentResult.FamilyID
     };
     filteredDocument.OutPutFields.AddRange(documentResult.Fields);
     return filteredDocument;
 }
示例#23
0
        private static List <DocumentResult> WriteXmlFiles(string reportFilePath
                                                           , Dictionary <Comparison.Comparer.FileUnitProperties, Dictionary <string, Dictionary <string, Comparison.Comparer.ComparisonParagraphUnit> > >
                                                           fileComparisonFileParagraphUnits)
        {
            _idMappings = new List <TERpIdMapping>();

            var workingDir = Path.GetDirectoryName(reportFilePath);

            TerpPath = WriteTerpProcessorFile(workingDir);

            var results = new List <DocumentResult>();

            foreach (var fileComparisonFileParagraphUnit in fileComparisonFileParagraphUnits)
            {
                if (fileComparisonFileParagraphUnit.Value == null)
                {
                    continue;
                }

                var fileUnitProperties = fileComparisonFileParagraphUnit.Key;
                var language           = fileUnitProperties.TargetLanguageIdUpdated;
                var filePath           = Path.GetFileName(fileUnitProperties.FilePathUpdated);

                if (workingDir == null)
                {
                    continue;
                }

                var fileRef    = Path.Combine(workingDir, filePath + "." + language + ".terp.ref.xml");
                var filehyp    = Path.Combine(workingDir, filePath + "." + language + ".terp.hyp.xml");
                var filePrefix = Path.Combine(workingDir, filePath + "." + language + ".out");

                WriteXmlDocument(fileRef, fileComparisonFileParagraphUnit, true);
                var segmentDatas = WriteXmlDocument(filehyp, fileComparisonFileParagraphUnit, false);

                if (segmentDatas.Count > 0)
                {
                    var info = new ProcessStartInfo("\"" + JavaPath + "\"")
                    {
                        Arguments   = " -jar \"" + TerpPath + "\" -r \"" + filehyp + "\" -h \"" + fileRef + "\" -n \"" + filePrefix + "\" -o sum,pra,nist,html,param",
                        WindowStyle = ProcessWindowStyle.Hidden
                    };
                    var process = System.Diagnostics.Process.Start(info);
                    if (process != null)
                    {
                        process.WaitForExit();
                    }

                    if (!File.Exists(filePrefix + ".sum"))
                    {
                        continue;
                    }

                    string sumContent;
                    using (var reader = new StreamReader(filePrefix + ".sum"))
                    {
                        sumContent = reader.ReadToEnd();
                        reader.Close();
                    }

                    var regexLines        = new Regex("^(?<x1>.*|)$", RegexOptions.Multiline);
                    var regexNameAndSegId = new Regex(@"\[(?<x1>.*|)\]\[(?<x2>.*|)\]", RegexOptions.IgnoreCase);
                    var mcLines           = regexLines.Matches(sumContent);
                    if (mcLines.Count > 0)
                    {
                        foreach (Match mLine in mcLines)
                        {
                            var strLine = mLine.Value;

                            var columns = strLine.Split('|');
                            if (columns.Count() != 12)
                            {
                                continue;
                            }

                            var mcNameAndSegId = regexNameAndSegId.Match(columns[0]);
                            if (!mcNameAndSegId.Success)
                            {
                                continue;
                            }

                            var name = mcNameAndSegId.Groups["x1"].Value;
                            var id   = mcNameAndSegId.Groups["x2"].Value.TrimStart('0');

                            if (string.IsNullOrEmpty(id))
                            {
                                continue;
                            }

                            var segId = _idMappings.FirstOrDefault(s => s.Id.ToString() == id);
                            if (segId == null)
                            {
                                continue;
                            }

                            var segmentData = segmentDatas.SingleOrDefault(a => a.SegmentId == segId.SegmentId && a.FileName == name);
                            if (segmentData == null)
                            {
                                continue;
                            }

                            segmentData.Ins    = ReportUtils.GetDecimal(columns[1]);
                            segmentData.Del    = ReportUtils.GetDecimal(columns[2]);
                            segmentData.Sub    = ReportUtils.GetDecimal(columns[3]);
                            segmentData.Stem   = ReportUtils.GetDecimal(columns[4]);
                            segmentData.Syn    = ReportUtils.GetDecimal(columns[5]);
                            segmentData.Phrase = ReportUtils.GetDecimal(columns[6]);
                            segmentData.Shft   = ReportUtils.GetDecimal(columns[7]);
                            segmentData.Wdsh   = ReportUtils.GetDecimal(columns[8]);
                            segmentData.NumEr  = ReportUtils.GetDecimal(columns[9]);
                            segmentData.NumWd  = ReportUtils.GetDecimal(columns[10]);
                            segmentData.Terp   = ReportUtils.GetDecimal(columns[11]);
                            segmentData.NumCap = 0;
                        }
                    }

                    var result = new DocumentResult
                    {
                        OriginalDocumentPath = fileUnitProperties.FilePathOriginal,
                        UpdatedDocumentPath  = fileUnitProperties.FilePathUpdated,
                        HtmlPath             = filePrefix + ".html",
                        SegmentDatas         = segmentDatas
                    };
                    results.Add(result);

                    File.Delete(filePrefix + ".sum");
                }


                File.Delete(fileRef);
                File.Delete(filehyp);
            }

            if (File.Exists(TerpPath))
            {
                File.Delete(TerpPath);
            }

            return(results);
        }
        /// <summary>
        /// Construct Query string for Redact-it
        /// </summary>
        /// <param name="jobId">Job Id</param>
        /// <param name="document">Document:Contains the document details (DocumentID) and field information's(filed type)</param>
        /// <param name="title">Title</param>
        /// <param name="separatorSheet">separator sheet path</param>
        /// <param name="sb">String builder</param>
        /// <param name="documentInfo">RVWDocumentBEO</param>
        /// <param name="fieldValue"></param>
        public void ConstructQueryString(string jobId, DocumentResult document, string title, string separatorSheet,
            StringBuilder sb, RVWDocumentBEO documentInfo, string fieldValue)
        {
            var targetDirectoryPath = Path.Combine(_mSharedLocation, _mBootParameters.Name);
            //Url Encode for target file path
            targetDirectoryPath = HttpUtility.UrlEncode(targetDirectoryPath);
            separatorSheet = HttpUtility.UrlEncode(separatorSheet);
            var sourceCount = 0;
            if (documentInfo.DocumentBinary.FileList.Count > 0)
            {
                //Adds the separator sheet for each document
                sb.Append(Constants.Source.ConcatStrings(new List<string>
                {
                    sourceCount.ToString(CultureInfo.InvariantCulture),
                    Constants.EqualTo,
                    separatorSheet,
                    Constants.Ampersand
                }));
                foreach (var t in documentInfo.DocumentBinary.FileList)
                {
                    sourceCount++;
                    //Adds the native/image/production files for each document
                    sb.Append(Constants.Source.ConcatStrings(new List<string>
                    {
                        sourceCount.ToString(CultureInfo.InvariantCulture),
                        Constants.EqualTo,
                        HttpUtility.UrlEncode(t.Path),
                        Constants.Ampersand
                    }));
                }
            }
            else
            {
                sb.Append(Constants.Source0.ConcatStrings(new List<string>
                {
                    separatorSheet,
                    Constants.Source1,
                    HttpUtility.UrlEncode(documentInfo.NativeFilePath)
                }));
            }
            sb.Append(Constants.Target.ConcatStrings(new List<string>
            {
                targetDirectoryPath,
                Constants.CSFName,
                fieldValue,
                Constants.PdfAndNotificationUrl,
                CmgServiceConfigBO.GetServiceConfigurationsforConfig(Constants.CallBackUri),
                Constants.BulkPrintRequestId,
                jobId
            }));
            sb.Append(Constants.MatterId.ConcatStrings(new List<string>
            {
                document.MatterID.ToString(),
                Constants.CollectionId,
                document.CollectionID,
                Constants.DocumentId,
                document.DocumentID
            }));
            sb.Append(Constants.Title + title);
            sb.Append(Constants.NotificationVerb);
            sb.Append(Constants.PublishBlankPagesQueryString);
            sb.Append(CmgServiceConfigBO.GetServiceConfigurationsforConfig(Constants.PublishBlankPages));

        }
示例#25
0
        public IHttpActionResult GenerateRepairOrder([FromBody] myRepairOrder pRepairOrder)
        {
            MovOrdemReparacao    myRepairOrder;
            MovOrdemReparacaoLin newLine;
            List <string>        lstMsg = new List <string>();
            int searchItem = 0;

            var errorDescription = "";
            var result           = new DocumentResult();

            try
            {
                myRepairOrder = Eti.Aplicacao.MovimentosAutoGest.MovOrdensReparacao.GetNew(pRepairOrder.FiscalYear, pRepairOrder.SectionCode, pRepairOrder.DocTypeAbbrev);

                //Á custa de um orçamento
                //ConversaoOficinas conv = new ConversaoOficinas(Eti.Aplicacao);
                //bool res = conv.GetOR_FromOrcamento(movOrcamento, ref movOR, false, ref msg, true, false, false, 0, 0);

                myRepairOrder.Cabecalho.CodEntidade = pRepairOrder.EntityCode;
                myRepairOrder.AlteraCliente(pRepairOrder.EntityCode, true);

                myRepairOrder.Cabecalho.DataMov      = pRepairOrder.Date;
                myRepairOrder.Cabecalho.DataAbertura = pRepairOrder.Date;

                myRepairOrder.AlteraViatura(pRepairOrder.Vehicle, false);

                //inserir linhas de materiais
                foreach (MaterialsLine lineMaterial in pRepairOrder.LinesMaterials.OrderBy(p => p.LineNumber))
                {
                    newLine = myRepairOrder.NovaLinha(TpLinhaOficinas.Materiais, true);

                    newLine.CodArtigo = lineMaterial.ItemCode;
                    myRepairOrder.SetInfoArtigo(newLine, TpLinhaOficinas.Materiais, ref searchItem);
                    newLine.DescArtigo = lineMaterial.ItemDescription;


                    if (myRepairOrder.Cabecalho.IvaIncluido)
                    {
                        lineMaterial.UnitPriceExcludedVAT = lineMaterial.UnitPriceExcludedVAT * (1 + lineMaterial.VATTax / 100.0);
                    }

                    newLine.PrecoUnitario = lineMaterial.UnitPriceExcludedVAT;
                    newLine.Quantidade    = lineMaterial.Quantity;

                    myRepairOrder.CalculaTotaisLinha(newLine);
                }

                //serviços internos
                foreach (InternalServicesLine lineInternalService in pRepairOrder.LinesInternalServices.OrderBy(p => p.LineNumber))
                {
                    newLine = myRepairOrder.NovaLinha(TpLinhaOficinas.ServInternos, true);

                    newLine.CodArtigo = lineInternalService.ItemCode;
                    myRepairOrder.SetInfoArtigo(newLine, TpLinhaOficinas.ServInternos, ref searchItem);
                    newLine.DescArtigo = lineInternalService.ItemDescription;

                    if (myRepairOrder.Cabecalho.IvaIncluido)
                    {
                        lineInternalService.UnitPriceExcludedVAT = lineInternalService.UnitPriceExcludedVAT * (1 + lineInternalService.VATTax / 100.0);
                    }

                    newLine.PrecoUnitario = lineInternalService.UnitPriceExcludedVAT;
                    newLine.Quantidade    = lineInternalService.Quantity;

                    myRepairOrder.CalculaTotaisLinha(newLine);
                }

                //serviços externos
                foreach (ExternalServicesLine lineExternalService in pRepairOrder.LinesExternalServices.OrderBy(p => p.LineNumber))
                {
                    newLine = myRepairOrder.NovaLinha(TpLinhaOficinas.ServExternos, true);

                    newLine.CodArtigo = lineExternalService.ItemCode;
                    myRepairOrder.SetInfoArtigo(newLine, TpLinhaOficinas.ServExternos, ref searchItem);
                    newLine.DescArtigo = lineExternalService.ItemDescription;

                    if (myRepairOrder.Cabecalho.IvaIncluido)
                    {
                        lineExternalService.UnitPriceExcludedVAT = lineExternalService.UnitPriceExcludedVAT * (1 + lineExternalService.VATTax / 100.0);
                    }

                    newLine.PrecoUnitario = lineExternalService.UnitPriceExcludedVAT;
                    newLine.Quantidade    = lineExternalService.Quantity;

                    myRepairOrder.CalculaTotaisLinha(newLine);
                }

                // Linhas de actividades

                /// Obtem primeiro grupo de componentes de atividades
                int defaultNode = myRepairOrder.DocumentoActividades.GetFirstNumNodo();
                if (defaultNode == 0)
                {
                    defaultNode = myRepairOrder.DocumentoActividades.GetNextNumNodo();
                }

                ///Adiciona atividades à ordem de reparação
                foreach (var activity in pRepairOrder.Activities)
                {
                    MovOrdemReparacaoItensActividade actividade = myRepairOrder.Actividades.CreateNew();
                    myRepairOrder.Actividades.Add(actividade);
                    actividade.NodoPai           = defaultNode;
                    actividade.CodTipoActividade = activity.ActivityCode;
                    actividade.Solicitado        = true;
                }

                var validate = myRepairOrder.Validate(true, ref lstMsg, 0);
                if (validate)
                {
                    Eti.Aplicacao.MovimentosAutoGest.MovOrdensReparacao.Update(myRepairOrder, 0);
                }

                if (!string.IsNullOrEmpty(myRepairOrder.EtiErrorCode))
                {
                    result.ErrorDescription = myRepairOrder.EtiErrorDescription;
                }
                else
                {
                    result = new DocumentResult()
                    {
                        ErrorDescription = myRepairOrder.EtiErrorDescription,
                        DocumentKey      = new Helpers.DocumentKey()
                        {
                            SectionCode   = myRepairOrder.Cabecalho.CodSeccao,
                            DocTypeAbbrev = myRepairOrder.Cabecalho.AbrevTpDoc,
                            FiscalYear    = myRepairOrder.Cabecalho.CodExercicio,
                            Number        = myRepairOrder.Cabecalho.Numero
                        }
                    };
                }
            }
            catch (Exception ex)
            {
                errorDescription        = string.Format("{0}.{1}.{2}", MethodBase.GetCurrentMethod().DeclaringType.FullName, MethodBase.GetCurrentMethod().Name, ex.Message);
                result.ErrorDescription = errorDescription;
            }

            return(Ok(result));
        }
示例#26
0
        public static void ShowResults(string title, DocumentResult result)
        {
            ShowHeader(title);
            Console.WriteLine("SessionId     {0}", result.SessionId);
            Console.WriteLine("SessionDate   {0}", result.SessionDate);
            Console.WriteLine("AccountNumber {0}", result.AccountNumber);
            Console.WriteLine("IsSuccessful  {0}", result.Success);

            if (result.Exceptions != null)
                foreach (ExceptionMessage ex in result.Exceptions) {
                    Console.WriteLine("    Exception: [{0}] - {1}, {2}", ((int)ex.ExceptionType), ex.ExceptionType, ex.Message);
                }
            Console.WriteLine();
        }
示例#27
0
        /// <summary>
        /// Construct Query string for Redact-it
        /// </summary>
        /// <param name="jobId">Job Id</param>
        /// <param name="document">Document:Contains the document details (DocumentID) and field information's(filed type)</param>
        /// <param name="title">Title</param>
        /// <param name="separatorSheet">separator sheet path</param>
        /// <param name="sb">String builder</param>
        /// <param name="documentInfo">RVWDocumentBEO</param>
        /// <param name="fieldValue"></param>
        public void ConstructQueryString(string jobId, DocumentResult document, string title, string separatorSheet,
                                         StringBuilder sb, RVWDocumentBEO documentInfo, string fieldValue)
        {
            var targetDirectoryPath = Path.Combine(_mSharedLocation, _mBootParameters.Name);

            //Url Encode for target file path
            targetDirectoryPath = HttpUtility.UrlEncode(targetDirectoryPath);
            separatorSheet      = HttpUtility.UrlEncode(separatorSheet);
            var sourceCount = 0;

            if (documentInfo.DocumentBinary.FileList.Count > 0)
            {
                //Adds the separator sheet for each document
                sb.Append(Constants.Source.ConcatStrings(new List <string>
                {
                    sourceCount.ToString(CultureInfo.InvariantCulture),
                    Constants.EqualTo,
                    separatorSheet,
                    Constants.Ampersand
                }));
                foreach (var t in documentInfo.DocumentBinary.FileList)
                {
                    sourceCount++;
                    //Adds the native/image/production files for each document
                    sb.Append(Constants.Source.ConcatStrings(new List <string>
                    {
                        sourceCount.ToString(CultureInfo.InvariantCulture),
                        Constants.EqualTo,
                        HttpUtility.UrlEncode(t.Path),
                        Constants.Ampersand
                    }));
                }
            }
            else
            {
                sb.Append(Constants.Source0.ConcatStrings(new List <string>
                {
                    separatorSheet,
                    Constants.Source1,
                    HttpUtility.UrlEncode(documentInfo.NativeFilePath)
                }));
            }
            sb.Append(Constants.Target.ConcatStrings(new List <string>
            {
                targetDirectoryPath,
                Constants.CSFName,
                fieldValue,
                Constants.PdfAndNotificationUrl,
                CmgServiceConfigBO.GetServiceConfigurationsforConfig(Constants.CallBackUri),
                Constants.BulkPrintRequestId,
                jobId
            }));
            sb.Append(Constants.MatterId.ConcatStrings(new List <string>
            {
                document.MatterID.ToString(),
                Constants.CollectionId,
                document.CollectionID,
                Constants.DocumentId,
                document.DocumentID
            }));
            sb.Append(Constants.Title + title);
            sb.Append(Constants.NotificationVerb);
            sb.Append(Constants.PublishBlankPagesQueryString);
            sb.Append(CmgServiceConfigBO.GetServiceConfigurationsforConfig(Constants.PublishBlankPages));
        }
        public IHttpActionResult GenerateSalesDoc([FromBody] Models.mySale pSale)
        {
            MovVenda    mySale;
            MovVendaLin saleLine;
            var         byRefFalse        = false;
            var         stockAvailable    = true;
            var         affectsOtherLines = true;
            var         fixedAssociation  = true;
            var         freeAssociation   = true;
            var         checkStock        = false;
            var         famForQty         = false;
            var         famForPrice       = false;
            short       searchItem        = 0;
            int         numberLine;
            string      itemCode;

            var errorDescription = "";
            var result           = new DocumentResult();

            try
            {
                //pSale = GetNewSale();

                mySale = Eti.Aplicacao.Movimentos.MovVendas.GetNew(pSale.DocTypeAbbrev, pSale.SectionCode);
                mySale.Cabecalho.CodExercicio = pSale.FiscalYear;

                mySale.Cabecalho.AplicacaoOrigem = "WS";

                mySale.Cabecalho.Data           = pSale.Date.Date;
                mySale.Cabecalho.DataVencimento = pSale.ExpirationDate;
                mySale.Cabecalho.Hora           = pSale.Date.Hour.ToString("00") + ":" + pSale.Date.Minute.ToString("00");

                mySale.Cabecalho.CodEntidade = pSale.EntityCode;
                mySale.AlteraEntidade(TpEntidade.Cliente, mySale.Cabecalho.CodEntidade, true, true);

                mySale.Cabecalho.AbrevMoeda = pSale.CurrencyCode;
                mySale.AlteraMoeda(pSale.CurrencyCode, ref byRefFalse, false);

                foreach (SalesLine line in pSale.Lines.OrderBy(p => p.LineNumber))
                {
                    itemCode = line.ItemCode;

                    numberLine = mySale.CountLin + 1;
                    mySale.AddLin(ref numberLine);
                    saleLine           = mySale.Lines[numberLine];
                    saleLine.TipoLinha = (byte)TpLinha.Artigo;

                    saleLine.CodArtigo = itemCode;
                    mySale.AlteraArtigo(numberLine, ref itemCode, ref affectsOtherLines, ref fixedAssociation, ref freeAssociation, ref searchItem, checkStock, ref stockAvailable, ref famForQty, ref famForPrice);
                    saleLine.DescArtigo = line.ItemDescription;

                    saleLine.Quantidade = line.Quantity;
                    mySale.AlteraQuantidade(numberLine, saleLine.Quantidade, ref affectsOtherLines, false, ref stockAvailable);

                    if (mySale.TDocIvaIncluido)
                    {
                        line.UnitPriceExcludedVAT = line.UnitPriceExcludedVAT * (1 + line.VATTax / 100.0);
                    }

                    saleLine.PrecoUnitario = Convert.ToDouble(line.UnitPriceExcludedVAT);
                    mySale.AlteraPrecoUnitario(numberLine, saleLine.PrecoUnitario, ref byRefFalse);

                    saleLine.TaxaIva    = Convert.ToDouble(line.VATTax);
                    saleLine.CodTaxaIva = Eti.Aplicacao.Tabelas.TaxasIvas.GetTaxaIva(Convert.ToDecimal(saleLine.TaxaIva));
                    mySale.AlteraTaxaIVA(numberLine, saleLine.CodTaxaIva);

                    saleLine.Desconto1 = line.Discount1;
                    mySale.AlteraDesconto(1, numberLine, saleLine.Desconto1);

                    saleLine.Desconto2 = line.Discount2;
                    mySale.AlteraDesconto(2, numberLine, saleLine.Desconto2);

                    saleLine.Desconto3 = line.Discount3;
                    mySale.AlteraDesconto(3, numberLine, saleLine.Desconto3);

                    saleLine.DescontoValorLinha = line.DiscountValue;
                    mySale.AlteraDesconto(4, numberLine, saleLine.DescontoValorLinha);
                }

                //documento externo certeficado
                //mySale.AlteraInfoCertificacao(certificationNumber, "1", hash, saftDocNo);

                var validate = mySale.Validate(true);
                if (validate)
                {
                    var blockingStock = false;
                    Eti.Aplicacao.Movimentos.MovVendas.Update(ref mySale, ref blockingStock, true, 0, "");
                }

                if (!string.IsNullOrEmpty(mySale.EtiErrorCode))
                {
                    result.ErrorDescription = mySale.EtiErrorDescription;
                }
                else
                {
                    result = new DocumentResult()
                    {
                        ErrorDescription = mySale.EtiErrorDescription,
                        DocumentKey      = new Helpers.DocumentKey()
                        {
                            SectionCode   = mySale.Cabecalho.CodSeccao,
                            DocTypeAbbrev = mySale.Cabecalho.AbrevTpDoc,
                            FiscalYear    = mySale.Cabecalho.CodExercicio,
                            Number        = mySale.Cabecalho.Numero
                        }
                    };

                    if (pSale.GetReportBytes)
                    {
                        result.reportBytes = Functions.GetReportBytes(TpDocumentoAEmitir.Vendas, result.DocumentKey);
                    }
                }

                return(Ok(result));
            }
            catch (Exception ex)
            {
                errorDescription        = string.Format("{0}.{1}.{2}", MethodBase.GetCurrentMethod().DeclaringType.FullName, MethodBase.GetCurrentMethod().Name, ex.Message);
                result.ErrorDescription = errorDescription;
            }

            return(Ok(result));
        }
        /// <summary>
        /// Construct Log Message and Call Log pipe
        /// </summary>
        private void LogMessage(DocumentResult document, bool success, string message)
        {
            var log = new List<JobWorkerLog<LogInfo>>();
            var taskId = Convert.ToInt32(document.DocumentControlNumber.Replace(_mDataSet.DCNPrefix, string.Empty));
            // form the paser lof entity
            var parserLog = new JobWorkerLog<LogInfo>
            {
                JobRunId =

                    (!String.IsNullOrEmpty(PipelineId)) ? Convert.ToUInt32(PipelineId) : 0,
                CorrelationId = taskId,
                WorkerRoleType = "PrintValidationWorker",
                WorkerInstanceId = WorkerId,
                IsMessage = false,
                Success = success, //!string.IsNullOrEmpty(documentDetail.DocumentProductionNumber) && success,
                CreatedBy = bulkPrintServiceRequestBEO.RequestedBy.UserId,
                LogInfo =
                    new LogInfo
                    {
                        TaskKey = document.DocumentControlNumber,
                        IsError = !success

                    }

            };
            parserLog.LogInfo.AddParameters(Constants.DCN, document.DocumentControlNumber);
            parserLog.LogInfo.AddParameters(message, mappedPrinter.PrinterDetails.Name);
            log.Add(parserLog);
            SendLog(log);
        }
        public IHttpActionResult GenerateOrdersSatisfaction([FromBody] MyOrderSatisfaction pOrder)
        {
            MovVenda     mySale;
            MovVendaLin  saleLine;
            MovEncomenda myOrder;
            var          stockAvailable    = true;
            var          affectsOtherLines = true;
            var          fixedAssociation  = true;
            var          freeAssociation   = true;
            var          checkStock        = false;
            var          famForQty         = false;
            var          famForPrice       = false;
            var          byRefFalse        = false;
            short        searchItem        = 0;
            int          numberLine;
            string       itemCode;

            var errorDescription = "";
            var result           = new DocumentResult();

            try
            {
                //Encomenda a satisfazer
                myOrder = Eti.Aplicacao.Movimentos.MovEncomendasCli.Find(pOrder.KeyOrder.DocTypeAbbrev, pOrder.KeyOrder.FiscalYear, pOrder.KeyOrder.Number, pOrder.KeyOrder.SectionCode);

                //Nova venda
                mySale = Eti.Aplicacao.Movimentos.MovVendas.GetNew(pOrder.DocTypeAbbrevSale, pOrder.KeyOrder.SectionCode);
                mySale.Cabecalho.CodExercicio = pOrder.FiscalYearSale;

                mySale.Cabecalho.AplicacaoOrigem = "WS";

                mySale.Cabecalho.Data           = pOrder.DateSale.Date;
                mySale.Cabecalho.DataVencimento = pOrder.ExpirationDateSale;
                mySale.Cabecalho.Hora           = pOrder.DateSale.Date.Hour.ToString("00") + ":" + pOrder.DateSale.Date.Minute.ToString("00");

                mySale.Cabecalho.CodEntidade = myOrder.Cabecalho.CodEntidade;
                mySale.AlteraEntidade(TpEntidade.Cliente, mySale.Cabecalho.CodEntidade, true, true);

                //irá satisfazer toda a encomenda.
                foreach (MovEncomendaLin line in myOrder.Lines)
                {
                    itemCode = line.CodArtigo;

                    numberLine = mySale.CountLin + 1;
                    mySale.AddLin(ref numberLine);
                    saleLine           = mySale.Lines[numberLine];
                    saleLine.TipoLinha = 5;

                    saleLine.CodArtigo = itemCode;
                    mySale.AlteraArtigo(numberLine, ref itemCode, ref affectsOtherLines, ref fixedAssociation, ref freeAssociation, ref searchItem, checkStock, ref stockAvailable, ref famForQty, ref famForPrice);

                    saleLine.Quantidade = line.Quantidade;
                    mySale.AlteraQuantidade(numberLine, saleLine.Quantidade, ref affectsOtherLines, false, ref stockAvailable);

                    saleLine.CodArmazem = line.CodArmazem;
                    mySale.AlteraArmazem(numberLine, saleLine.CodArmazem, false, ref stockAvailable);

                    //Tratar a questão do IVA pois os tipos de documentos podem não ter o IVA incluido
                    saleLine.PrecoUnitario = Convert.ToDouble(line.PrecoUnitario);
                    mySale.AlteraPrecoUnitario(numberLine, saleLine.PrecoUnitario, ref byRefFalse);

                    //Ligar a linha da venda á encomenda, 1 linha de venda para 1 linha de encomenda
                    var countLinIntgr = 1;
                    mySale.SetCountLinEncomIntegr(ref numberLine, ref countLinIntgr);

                    var numberLineIntgr = 1;
                    saleLine.EncomIntegr(numberLineIntgr).EncomCodSeccao    = pOrder.KeyOrder.SectionCode;
                    saleLine.EncomIntegr(numberLineIntgr).EncomAbrevTpDoc   = pOrder.KeyOrder.DocTypeAbbrev;
                    saleLine.EncomIntegr(numberLineIntgr).EncomCodExercicio = pOrder.KeyOrder.FiscalYear;
                    saleLine.EncomIntegr(numberLineIntgr).EncomNumero       = pOrder.KeyOrder.Number;
                    saleLine.EncomIntegr(numberLineIntgr).EncomNumLinha     = line.NumLinha;
                    saleLine.EncomIntegr(numberLineIntgr).QtdSatisf         = line.QuantidadePend;
                    saleLine.EncomIntegr(numberLineIntgr).QtdPendente       = 0;

                    saleLine.DocAQueReporta = pOrder.KeyOrder.DocTypeAbbrev + ' ' + pOrder.KeyOrder.SectionCode + '/' + pOrder.KeyOrder.Number.ToString();
                }

                var validate = mySale.Validate(true);
                if (validate)
                {
                    var blockingStock = false;
                    Eti.Aplicacao.Movimentos.MovVendas.Update(ref mySale, ref blockingStock, true, 0, "");
                }

                if (!string.IsNullOrEmpty(mySale.EtiErrorCode))
                {
                    result.ErrorDescription = mySale.EtiErrorDescription;
                }
                else
                {
                    result = new DocumentResult()
                    {
                        ErrorDescription = mySale.EtiErrorDescription,
                        DocumentKey      = new Helpers.DocumentKey()
                        {
                            SectionCode   = mySale.Cabecalho.CodSeccao,
                            DocTypeAbbrev = mySale.Cabecalho.AbrevTpDoc,
                            FiscalYear    = mySale.Cabecalho.CodExercicio,
                            Number        = mySale.Cabecalho.Numero
                        }
                    };
                }
            }
            catch (Exception ex)
            {
                errorDescription        = string.Format("{0}.{1}.{2}", MethodBase.GetCurrentMethod().DeclaringType.FullName, MethodBase.GetCurrentMethod().Name, ex.Message);
                result.ErrorDescription = errorDescription;
            }

            return(Ok(result));
        }
示例#31
0
        private DocumentResult Document(CommonTree tree)
        {
            var result = new DocumentResult();
            var context = new Context();

            if (tree.Children == null) return result;

            foreach (var section in tree.Children)
            {
                ITemplateType o;
                var s = new Section(section);
                var e = s.Eval(context, this, out o);
                result.Errors.AddRange(e);
                if (e.ContainsError())
                    continue;
                o.WriteTo(result.Buffer);
            }

            return result;
        }
        public IHttpActionResult GenerateSettlement([FromBody] mySettlement pSettlement)
        {
            MovLiquidacao mySettlement;
            var           result = new DocumentResult();

            var errorDescription = "";

            try
            {
                mySettlement = Eti.Aplicacao.Movimentos.MovLiquidacoes.GetNew(pSettlement.DocTypeAbbrev, pSettlement.SectionCode);

                mySettlement.Cabecalho.CodEntidade = 1;
                mySettlement.AlteraEntidade(mySettlement.Cabecalho.CodEntidade, true);
                mySettlement.FindDocs(0, 0, 0, 1);

                //mySettlement.Cabecalho.set_CampoAdicional(Constants.CA_LIQ_Auto, true);

                var linePend = mySettlement.get_LinhaOfPendente(pSettlement.PendingDocument.SectionCode, pSettlement.PendingDocument.DocTypeAbbrev, pSettlement.PendingDocument.FiscalYear, pSettlement.PendingDocument.Number);
                if (linePend.ValorPendente > 0)
                {
                    //atualizar linha de liquidação
                    var lineSettlement = mySettlement.get_LinhaOfDocumento(linePend.CodSeccaoPend, linePend.AbrevTpDocPend, linePend.CodExercicioPend, linePend.NumeroPend);

                    short IRS = 0;
                    mySettlement.AlteraConfirmacao(lineSettlement.NumLinha, true, ref IRS);

                    linePend.Confirmacao = 1;

                    var validate = mySettlement.Validate();
                    if (validate)
                    {
                        Eti.Aplicacao.Movimentos.MovLiquidacoes.Update(ref mySettlement);
                    }

                    if (!string.IsNullOrEmpty(mySettlement.EtiErrorCode))
                    {
                        result.ErrorDescription = mySettlement.EtiErrorDescription;
                    }
                    else
                    {
                        result = new DocumentResult()
                        {
                            ErrorDescription = mySettlement.EtiErrorDescription,
                            DocumentKey      = new Helpers.DocumentKey()
                            {
                                SectionCode   = mySettlement.Cabecalho.CodSeccao,
                                DocTypeAbbrev = mySettlement.Cabecalho.AbrevTpDoc,
                                FiscalYear    = mySettlement.Cabecalho.CodExercicio,
                                Number        = mySettlement.Cabecalho.Numero
                            }
                        };
                    }
                }
            }
            catch (Exception ex)
            {
                errorDescription = string.Format("{0}.{1}.{2}", MethodBase.GetCurrentMethod().DeclaringType.FullName, MethodBase.GetCurrentMethod().Name, ex.Message);
                return(BadRequest(errorDescription));
            }

            return(Ok(result));
        }
示例#33
0
        /// <summary>
        /// Print the document
        /// </summary>
        /// <param name="jobId"></param>
        /// <param name="request"></param>
        /// <param name="document"></param>
        /// <param name="separatorSheet"></param>
        /// <param name="errorCode"></param>
        /// <returns></returns>
        private bool PrintDocumentSet(string jobId, BulkPrintServiceRequestBEO request, DocumentResult document,
                                      string separatorSheet, out string errorCode)
        {
            var toReturn   = false;
            var title      = string.Empty;
            var fieldValue = string.Empty;
            var binaryType = NativeSetBinaryType;
            var sb         = new StringBuilder(string.Empty);

            //Get the binary types for the images
            switch (request.BulkPrintOptions.ImageType.ImageType)
            {
            case DocumentImageTypeBEO.Native:
                binaryType = NativeSetBinaryType;
                break;

            case DocumentImageTypeBEO.ImageSet:
                binaryType = ImageSetBinaryType;
                break;

            case DocumentImageTypeBEO.ProductionSet:
                binaryType = ProductionSetBinaryType;
                break;
            }
            //Get the document binary
            var documentData = DocumentBO.GetDocumentBinaryData(long.Parse(request.DataSet.MatterId),
                                                                request.BulkPrintOptions.ImageType.
                                                                ImageIdentifier.CollectionId,
                                                                document.DocumentID, binaryType,
                                                                string.Empty);

            #region Assertion

            documentData.ShouldNotBe(null);
            documentData.DocumentBinary.ShouldNotBe(null);

            #endregion

            var isFileExists = documentData.DocumentBinary.FileList.Count > 0;
            errorCode = string.Empty;
            foreach (var fileInfo in documentData.DocumentBinary.FileList)
            {
                if (!File.Exists(fileInfo.Path))
                {
                    isFileExists = false;
                    break;
                }
            }
            m_UserDetails = UserBO.GetUserUsingGuid(request.RequestedBy.UserId);
            userContext   = CreateUserContext(request.RequestedBy.UserId);
            EVHttpContext.CurrentContext = userContext;
            //Construct Query string
            if (!isFileExists)
            {
                errorCode = "Bulk print Invalid file";
                toReturn  = true;
            }
            else
            {
                fieldValue = document.DocumentControlNumber;
                if (document.Fields != null && document.Fields.Any())
                {
                    fieldValue = document.DocumentControlNumber;
                    title      = Constants.TitleNotAvailable;
                    foreach (var field in document.Fields)
                    {
                        if (field == null)
                        {
                            continue;
                        }
                        if (field.DataTypeId == Constants.TitleFieldType)
                        {
                            title = !string.IsNullOrEmpty(field.Value) ? fieldValue.Trim() : title;
                        }
                        if (String.IsNullOrEmpty(field.Name))
                        {
                            continue;
                        }
                        if (field.Name.Equals(_mBootParameters.FieldName))
                        {
                            fieldValue = !string.IsNullOrEmpty(field.Value) ? field.Value.Trim() : fieldValue;
                        }
                    }
                }
                var specialChars = new List <string> {
                    "<", ">", ":", "\"", "\\", "|", "?", "*", "."
                };
                if (specialChars.Exists(x => fieldValue.Contains(x)))
                {
                    // Log documents with special characters or empty values...
                    toReturn  = false;
                    errorCode = "Special characters in the field value and hence cannot be printed";
                }
                else
                {
                    ConstructQueryString(jobId, document, title, separatorSheet, sb, documentData, fieldValue);
                    try
                    {
                        toReturn = CreatePostWebRequestForCreatingPdf(jobId, sb.ToString());
                    }
                    catch (WebException webException)
                    {
                        webException.Trace().Swallow();
                    }
                    catch (Exception ex)
                    {
                        ex.Trace().Swallow();
                        errorCode = "Error in Conversion and hence cannot be printed";
                    }
                }
            }
            return(toReturn);
        }
        /// <summary>
        /// Converts the result document to document result.
        /// </summary>
        /// <param name="resultDocument">The result document.</param>
        /// <returns></returns>
        private static DocumentResult ConvertResultDocumentToDocumentResult(ResultDocument resultDocument)
        {
            var docResult = new DocumentResult
            {
                DocumentID = resultDocument.DocumentId.DocumentId,
                IsLocked = resultDocument.IsLocked,
                RedactableDocumentSetId = resultDocument.RedactableDocumentSetId,
                MatterID = long.Parse(resultDocument.DocumentId.MatterId),
                CollectionID = resultDocument.DocumentId.CollectionId,
                //family id is needed so that bulk tagging/ reviweset creation can be done for family options
                FamilyID = resultDocument.DocumentId.FamilyId
            };

            if (resultDocument.FieldValues != null)
                foreach (FieldResult fieldResult in resultDocument.FieldValues.Select(ConvertDocumentFieldToFieldResult))
                {
                    docResult.Fields.Add(fieldResult);
                    if (fieldResult.DataTypeId == 3000) docResult.DocumentControlNumber = fieldResult.Value;
                }
            return docResult;
        }
        public IHttpActionResult GenerateCustomerOrder([FromBody] myCustomerOrder pOrder)
        {
            MovEncomenda    myOrder;
            MovEncomendaLin myOrderLine;

            var             byRefFalse        = false;
            var             stockAvailable    = true;
            var             affectsOtherLines = true;
            var             fixedAssociation  = true;
            var             freeAssociation   = true;
            var             checkStock        = false;
            var             famForQty         = false;
            var             famForPrice       = false;
            TpProcuraArtigo searchItem        = 0;
            int             numberLine;
            string          itemCode;

            var errorDescription = "";
            var result           = new DocumentResult();

            try
            {
                //pOrder = GetNewCustomerOrder();

                myOrder = Eti.Aplicacao.Movimentos.MovEncomendasCli.GetNew(pOrder.DocTypeAbbrev, pOrder.SectionCode);
                myOrder.Cabecalho.CodExercicio = pOrder.FiscalYear;

                myOrder.Cabecalho.AplicacaoOrigem = "WS";

                myOrder.Cabecalho.Data           = pOrder.Date.Date;
                myOrder.Cabecalho.DataVencimento = pOrder.ExpirationDate;
                myOrder.Cabecalho.Hora           = pOrder.Date.Hour.ToString("00") + ":" + pOrder.Date.Minute.ToString("00");

                myOrder.Cabecalho.CodEntidade = pOrder.EntityCode;
                myOrder.AlteraEntidade((byte)TpEntidade.Cliente, myOrder.Cabecalho.CodEntidade, true);

                myOrder.Cabecalho.AbrevMoeda = pOrder.CurrencyCode;
                myOrder.AlteraMoeda(pOrder.CurrencyCode, ref byRefFalse, false);

                foreach (CustomerOrderLine line in pOrder.Lines.OrderBy(p => p.LineNumber))
                {
                    itemCode = line.ItemCode;

                    numberLine = myOrder.Lines.Count + 1;
                    myOrder.AddLin(ref numberLine);
                    myOrderLine           = myOrder.Lines[numberLine];
                    myOrderLine.TipoLinha = TpLinha.Artigo;

                    myOrderLine.CodArtigo = itemCode;
                    myOrder.AlteraArtigo(numberLine, ref itemCode, ref affectsOtherLines, ref fixedAssociation, ref freeAssociation, ref searchItem, checkStock, ref stockAvailable, ref famForQty, ref famForPrice);
                    myOrderLine.DescArtigo = line.ItemDescription;

                    myOrderLine.Quantidade = line.Quantity;
                    myOrder.AlteraQuantidade(numberLine, myOrderLine.Quantidade, ref affectsOtherLines, false, ref stockAvailable);

                    if (myOrder.TDocIvaIncluido)
                    {
                        line.UnitPriceExcludedVAT = line.UnitPriceExcludedVAT * (1 + line.VATTax / 100.0);
                    }

                    myOrderLine.PrecoUnitario = Convert.ToDouble(line.UnitPriceExcludedVAT);
                    myOrder.AlteraPrecoUnitario(numberLine, myOrderLine.PrecoUnitario, ref byRefFalse);

                    myOrderLine.TaxaIva    = Convert.ToDouble(line.VATTax);
                    myOrderLine.CodTaxaIva = Eti.Aplicacao.Tabelas.TaxasIvas.GetTaxaIva(Convert.ToDecimal(myOrderLine.TaxaIva));
                    myOrder.AlteraTaxaIVA(numberLine, myOrderLine.CodTaxaIva);

                    myOrderLine.Desconto1 = line.Discount1;
                    myOrder.AlteraDesconto(1, numberLine, myOrderLine.Desconto1);

                    myOrderLine.Desconto2 = line.Discount2;
                    myOrder.AlteraDesconto(2, numberLine, myOrderLine.Desconto2);

                    myOrderLine.Desconto3 = line.Discount3;
                    myOrder.AlteraDesconto(3, numberLine, myOrderLine.Desconto3);

                    myOrderLine.DescontoValorLinha = line.DiscountValue;
                    myOrder.AlteraDesconto(4, numberLine, myOrderLine.DescontoValorLinha);
                }

                var validate = myOrder.Validate(true);
                if (validate)
                {
                    Eti.Aplicacao.Movimentos.MovEncomendasCli.Update(ref myOrder);
                }

                if (myOrder.EtiErrorDescription == "")
                {
                    result = new DocumentResult()
                    {
                        ErrorDescription = myOrder.EtiErrorDescription,
                        DocumentKey      = new Helpers.DocumentKey()
                        {
                            SectionCode   = myOrder.Cabecalho.CodSeccao,
                            DocTypeAbbrev = myOrder.Cabecalho.AbrevTpDoc,
                            FiscalYear    = myOrder.Cabecalho.CodExercicio,
                            Number        = myOrder.Cabecalho.Numero
                        }
                    };

                    if (pOrder.GetReportBytes)
                    {
                        result.reportBytes = Functions.GetReportBytes(TpDocumentoAEmitir.Encomendas, result.DocumentKey);
                    }
                }
                else
                {
                    result.ErrorDescription = myOrder.EtiErrorDescription;
                }
            }
            catch (Exception ex)
            {
                errorDescription        = string.Format("{0}.{1}.{2}", MethodBase.GetCurrentMethod().DeclaringType.FullName, MethodBase.GetCurrentMethod().Name, ex.Message);
                result.ErrorDescription = errorDescription;
            }

            return(Ok(result));
        }