Example #1
0
        public async Task <ResultCrmDb> ParseFile()
        {
            var result = new ResultCrmDb();

            var dt = FileData.DocxTableToDataTableByCaptionStart("Описание");

            if (dt.Rows.Count == 0 || dt.Columns.Count != 6)
            {
                dt = FileData.DocxTableToDataTableByTbNumber(2);
            }
            if (dt.Rows.Count == 0 || dt.Columns.Count != 6)
            {
                dt = FileData.DocxTableToDataTableByTbNumber(1);
            }

            if (dt.Rows.Count == 0 || dt.Columns.Count != 6)
            {
                result.AddError(Constant.ErrCodeImport, $"Файл не содержит данных.");
                return(result);
            }

            var fkDoc = await _dohodDbContext.fk_doc.Where(x => (x.Group ?? "") == "FKDOCX" &&
                                                           (x.Format ?? "") == "00")
                        .OrderBy(x => x.Nfrm).LastOrDefaultAsync();

            if (fkDoc == null)
            {
                result.AddError(Constant.ErrCodeImport, $"Требуется файл формата: {ImportParam.Format}");
                return(result);
            }


            var fkCodes = await _dohodDbContext.fk_code.Where(x => x.DocId == fkDoc.Sysid).ToListAsync();

            if (fkCodes == null || fkCodes.Count == 0)
            {
                result.AddError(Constant.ErrCodeImport, $"Не заполнена структура формата {ImportParam.Format} версии {fkDoc.Nfrm} в fk_doc");
                return(result);
            }


            result.Result = GetDocsObject(dt, fkDoc, fkCodes);
            return(result);
        }