Example #1
0
        private async Task <t_dohod> DohRecord(s_org org, dynamic objHeader, dynamic objTb, ImportParam importParam, DateTime dtmin, DateTime dtmax)
        {
            if (org == null)
            {
                return(null);
            }
            if (string.IsNullOrWhiteSpace(objTb.KBK)) // филтр на запись "Итого"
            {
                return(null);
            }

            t_dohod   dohod   = new t_dohod();
            t_dohorig dohorig = new t_dohorig();

            //// вспомогательные
            var codeoktmo = ((string)objTb.OKATO).Substr(0, 8);
            var oktmo     = GetOktmo(codeoktmo, importParam);

            if (oktmo == null)
            {
                return(null);
            }

            DateTime operDate;
            DateTime skipedDate;

            if (objTb.DATE_IN_TOFK == null && dtmin != dtmax)
            {
                // в файле разные даты
                operDate   = dtmax;    // на последнюю дату
                skipedDate = dtmax;    // и без смещения
            }
            else
            {
                // файл за один день - общие правила
                operDate   = objTb.DATE_IN_TOFK == null ? dtmax : (DateTime)objTb.DATE_IN_TOFK;
                skipedDate = _dohodDbContext.GetSkipedWorkDay(operDate, importParam.DaysToSkip);
            }


            //// dohorig
            dohorig.Oktmo    = codeoktmo;
            dohorig.OktmoPp  = objTb.OKATO; // пишем необрезанный
            dohorig.Kbk      = objTb.KBK;
            dohorig.KbkPp    = "";          // (поле 104)*
            dohorig.CodeCeli = "";
            dohorig.Inn      = objTb.INN_PAY;
            dohorig.Kpp      = objTb.KPP_PAY;
            dohorig.PlatName = objTb.CNAME_PAY;
            dohorig.Rs       = "";
            dohorig.Bic      = "";
            dohorig.BankName = "";

            //// dohod
            dohod.Date        = skipedDate;
            dohod.DateOper    = operDate;
            dohod.NumPp       = objTb.NOM_PP;
            dohod.DatePp      = objTb.DATE_PP;
            dohod.NumZf       = null;
            dohod.DateZf      = null;
            dohod.OktmoId     = oktmo.Sysid;
            dohod.KbkId       = (await _dohodDbContext.IdentKbk((string)objTb.KBK)).Sysid;
            dohod.CodeCeliId  = null;
            dohod.PlatId      = org.Sysid;
            dohod.IsRaschet   = true;
            dohod.IsSumRazb   = false;
            dohod.SumItg      = (decimal)objTb.SUMMA; // Сумма со сзаком
            dohod.ImnsInn     = objTb.INN_RCP;
            dohod.ImnsKpp     = objTb.KPP_RCP;
            dohod.LsAdb       = "";
            dohod.OsnPlat     = "";                 // (поле 106)*
            dohod.CodeVidOper = objTb.VID_OPERNAME == "Платежное поручение" ? "01" : "";
            dohod.VidOper     = objTb.VID_OPERNAME; // dohod.CodeVidOper.GetVidOperName();
            dohod.NaznPlat    = objTb.PURPOSE;      // Назначение платежа
            dohod.ImportFile  = importParam.FileName;
            dohod.IsNp        = dohorig.Kbk.IsNpCode() && dohod.SumItg >= 0.0M;
            dohod.IsVoz       = false;
            dohod.IsItg       = false;
            dohod.LinkNp      = null;
            dohod.LinkVoz     = null;
            dohod.LinkItg     = null;
            dohod.Guid        = "";
            dohod.VidDoc      = VidDoc.XL;
            //
            dohod.Orig = dohorig;
            await _dohodDbContext.RazbivkaItogSum(dohod);

            return(dohod);
        }
Example #2
0
        private async Task <t_dohod> DohRecord(s_lev lev, dynamic objSE, dynamic obj, ImportParam importParam)
        {
            t_dohod   dohod   = new t_dohod();
            t_dohorig dohorig = new t_dohorig();

            if (obj.TYPE_KBK != "20")
            {
                return(null);
            }
            if (lev == null)
            {
                return(null);
            }

            // вспомогательные
            var oktmopp = lev?.Oktmo ?? "";
            //  Для IP пока не фильтруем по m.o.idOkato = 0
            var oktmo = GetOktmo(oktmopp.Substr(0, 8), importParam);

            // dohorig
            dohorig.Oktmo    = oktmo?.Oktmo;
            dohorig.OktmoPp  = oktmopp; // (поле 105)*
            dohorig.Kbk      = obj.KBK;
            dohorig.KbkPp    = obj.KBK; // (поле 104)*
            dohorig.CodeCeli = obj.ADD_KLASS;
            dohorig.Inn      = "";
            dohorig.Kpp      = "";
            dohorig.PlatName = "";
            dohorig.Rs       = lev?.Schet ?? "";
            dohorig.Bic      = "";
            dohorig.BankName = "";

            // dohod
            dohod.DateOper   = objSE.DATE_SP;
            dohod.Date       = dohod.DateOper; // _dohodDbContext.GetSkipedWorkDay(dohod.DateOper ?? default(DateTime), importParam.DaysToSkip);
            dohod.NumPp      = "";
            dohod.DatePp     = dohod.DateOper;
            dohod.NumZf      = null;
            dohod.DateZf     = null;
            dohod.OktmoId    = oktmo?.Sysid;
            dohod.KbkId      = (await _dohodDbContext.IdentKbk(dohorig.Kbk)).Sysid;
            dohod.CodeCeliId = (await _dohodDbContext.IdentKceli(dohorig.CodeCeli))?.Sysid;
            dohod.PlatId     = null;
            dohod.IsRaschet  = false; // ДЛЯ IP
            dohod.IsSumRazb  = true;  // true - Нестандартная разбивка по бюджетам - Разбивку не производим - только зануляем суммы по бюджетам
            if (obj.Marker == "SPOST")
            {
                dohod.SumItg = (decimal)obj.SUM_POST;
            }
            else if (obj.Marker == "SVIP")
            {
                dohod.SumItg = (decimal)obj.SUM_VIP;
            }
            dohod.ImnsInn     = lev == null ? "" : lev.Inn;
            dohod.ImnsKpp     = lev == null ? "" : lev.Kpp;
            dohod.LsAdb       = "";
            dohod.OsnPlat     = ""; // (поле 106)*
            dohod.CodeVidOper = "";
            dohod.VidOper     = "";
            dohod.NaznPlat    = ""; // Назначение платежа
            dohod.ImportFile  = importParam.FileName;
            dohod.IsNp        = dohorig.Kbk.IsNpCode();
            dohod.IsVoz       = false;
            dohod.IsItg       = false;
            dohod.LinkNp      = null;
            dohod.LinkVoz     = null;
            dohod.LinkItg     = null;
            dohod.Guid        = "";
            dohod.VidDoc      = VidDoc.SE;
            //
            dohod.Orig = dohorig;
            await _dohodDbContext.RazbivkaItogSum(dohod);

            return(dohod);
        }
Example #3
0
        private async Task <t_dohod> DohRecord(dynamic objSF, dynamic objSFDOC, dynamic objSFST, ImportParam importParam)
        {
            t_dohod   dohod   = new t_dohod();
            t_dohorig dohorig = new t_dohorig();

            // вспомогательные
            dohorig.OktmoPp = objSFST.OKATO; // (поле 105)*
            var oktmo = GetOktmo(dohorig.OktmoPp.Substr(0, 8), importParam, true);

            if (oktmo == null)
            {
                return(null);
            }


            // dohorig
            dohorig.Oktmo    = oktmo.Oktmo; // objBDPDST.ОКАТО;
            dohorig.Kbk      = objSFST.KBK;
            dohorig.KbkPp    = "";          // (поле 104)*
            dohorig.CodeCeli = "";
            dohorig.Inn      = objSFST.INN_PAY;
            dohorig.Kpp      = objSFST.KPP_PAY;
            dohorig.PlatName = "";
            dohorig.Rs       = "";
            dohorig.Bic      = "";
            dohorig.BankName = "";
            // если нет в справочние, добавлять не нужно
            var org = await _dohodDbContext.IdentPlat(dohorig.Inn, dohorig.Kpp, dohorig.PlatName, dohorig.Rs, false);

            // dohod
            dohod.DateOper    = objSF.DATE;
            dohod.Date        = _dohodDbContext.GetSkipedWorkDay(dohod.DateOper ?? default(DateTime), importParam.DaysToSkip);
            dohod.NumPp       = objSFST.NOM_DOC;
            dohod.DatePp      = objSFST.DATE_DOC;
            dohod.NumZf       = objSFDOC.NOM_SF;
            dohod.DateZf      = objSFDOC.DATE_OTCH;
            dohod.OktmoId     = oktmo.Sysid;
            dohod.KbkId       = (await _dohodDbContext.IdentKbk(dohorig.Kbk)).Sysid;
            dohod.CodeCeliId  = null;
            dohod.PlatId      = org?.Sysid;
            dohod.IsRaschet   = true;
            dohod.IsSumRazb   = false;
            dohod.SumItg      = (decimal)objSFST.SUM_SFST;
            dohod.ImnsInn     = objSFST.INN_ADB;
            dohod.ImnsKpp     = objSFST.KPP_ADB;
            dohod.LsAdb       = "";
            dohod.OsnPlat     = "";               // (поле 106)*
            dohod.CodeVidOper = "";
            dohod.VidOper     = objSFST.NAME_DOC; // "Справка органа ФК"
            dohod.NaznPlat    = objSFST.OPER;     // "Уточнение види и ...."
            dohod.ImportFile  = importParam.FileName;
            dohod.IsNp        = dohorig.Kbk.IsNpCode();
            dohod.IsVoz       = false;
            dohod.IsItg       = false;
            dohod.LinkNp      = null;
            dohod.LinkVoz     = null;
            dohod.LinkItg     = null;
            dohod.Guid        = objSFDOC.GUID_FK;
            dohod.VidDoc      = VidDoc.SF;
            //
            dohod.Orig = dohorig;
            await _dohodDbContext.RazbivkaItogSum(dohod);

            return(dohod);
        }
Example #4
0
        private async Task <t_dohod> DohRecord(s_org org, dynamic objBD, dynamic objBDPD, dynamic objBDPDST, ImportParam importParam)
        {
            t_dohod   dohod   = new t_dohod();
            t_dohorig dohorig = new t_dohorig();

            // вспомогательные
            var oktmo = GetOktmo((string)objBDPDST.ОКАТО, importParam);

            if (oktmo == null)
            {
                return(null);
            }
            var iSign = (objBDPDST.DIR_SUM ?? "0") == "0" ? +1.0M : -1.0M; // 0 - зачисление; 1 - списание.

            // dohorig
            dohorig.Oktmo    = oktmo.Oktmo;   // objBDPDST.ОКАТО;
            dohorig.OktmoPp  = objBDPD.OKATO; // (поле 105)*
            dohorig.Kbk      = objBDPDST.KBK;
            dohorig.KbkPp    = objBDPD.KBK;   // (поле 104)*
            dohorig.CodeCeli = objBDPDST.ADD_KLASS;
            dohorig.Inn      = objBDPD.INN_PAY;
            dohorig.Kpp      = objBDPD.KPP_PAY;
            dohorig.PlatName = objBDPD.CNAME_PAY;
            dohorig.Rs       = objBDPD.BS_PAY;
            dohorig.Bic      = objBDPD.BIC_PAY;
            dohorig.BankName = objBDPD.NAME_BIC_PAY;

            // dohod
            dohod.Date        = _dohodDbContext.GetSkipedWorkDay((DateTime)objBDPD.DATE_IN_TOFK, importParam.DaysToSkip);
            dohod.DateOper    = objBDPD.DATE_IN_TOFK;
            dohod.NumPp       = objBDPD.NUM_PP;
            dohod.DatePp      = objBDPD.DATE_PP;
            dohod.NumZf       = null;
            dohod.DateZf      = null;
            dohod.OktmoId     = oktmo.Sysid;
            dohod.KbkId       = (await _dohodDbContext.IdentKbk((string)objBDPDST.KBK)).Sysid;
            dohod.CodeCeliId  = (await _dohodDbContext.IdentKceli((string)objBDPDST.ADD_KLASS))?.Sysid;
            dohod.PlatId      = org.Sysid;
            dohod.IsRaschet   = true;
            dohod.IsSumRazb   = false;
            dohod.SumItg      = (decimal)objBDPDST.SUM * iSign;
            dohod.ImnsInn     = objBDPD.INN_RCP;
            dohod.ImnsKpp     = objBDPD.KPP_RCP;
            dohod.LsAdb       = objBD.LS;
            dohod.OsnPlat     = objBDPD.OSNPLAT; // (поле 106)*
            dohod.CodeVidOper = objBDPD.VID_OPER;
            dohod.VidOper     = dohod.CodeVidOper.GetVidOperName();
            dohod.NaznPlat    = objBDPD.PURPOSE; // Назначение платежа
            dohod.ImportFile  = importParam.FileName;
            dohod.IsNp        = dohorig.Kbk.IsNpCode();
            dohod.IsVoz       = false;
            dohod.IsItg       = false;
            dohod.LinkNp      = null;
            dohod.LinkVoz     = null;
            dohod.LinkItg     = null;
            dohod.Guid        = objBDPD.GUID;
            dohod.VidDoc      = VidDoc.BD;
            //
            dohod.Orig = dohorig;
            await _dohodDbContext.RazbivkaItogSum(dohod);

            return(dohod);
        }
Example #5
0
        private async Task <t_dohod> DohRecord(dynamic objNP, dynamic objNPST, ImportParam importParam)
        {
            t_dohod   dohod    = new t_dohod();
            t_dohorig dohorig  = new t_dohorig();
            var       dateOtch = (DateTime)objNP.DATE_OTCH;
            var       dateEnd  = (DateTime)objNP.DATE_END_PER;

            if (dateOtch != dateEnd)
            {
                dateOtch = objNPST.DATE_DOC_VB;
            }
            if (dateOtch == null)
            {
                return(null); // Пока пропускаем, могли писать бы на какую то дату MIN(MAX(m.dDateBeg, m.o.dDatePP + 2), m.dDateEnd) например
            }
            if (objNPST.TYPE_KBK != "20")
            {
                return(null);
            }

            string oktmopp = objNPST.OKATO;
            // Область обязательно, даже если не прописана в ca_okato(из за акцизов)
            var isOblast = oktmopp.StartsWith("45000000") || oktmopp.StartsWith("46000000");
            var oktmo    = GetOktmo(oktmopp.Substr(0, 8), importParam);

            if (oktmo == null && !isOblast)
            {
                return(null);
            }


            // dohorig
            dohorig.Oktmo    = oktmo?.Oktmo ?? oktmopp.Substr(0, 8); // objBDPDST.ОКАТО;
            dohorig.OktmoPp  = oktmopp;                              // (поле 105)*
            dohorig.Kbk      = objNPST.KBK;
            dohorig.KbkPp    = dohorig.Kbk;                          // (поле 104)*
            dohorig.CodeCeli = "";
            dohorig.Inn      = objNPST.INN_PAY;
            dohorig.Kpp      = objNPST.KPP_PAY;
            dohorig.PlatName = objNPST.NAME_PAY;
            dohorig.Rs       = "";
            dohorig.Bic      = "";
            dohorig.BankName = "";

            // dohod
            dohod.DateOper    = objNP.DATE_END_PER;
            dohod.Date        = _dohodDbContext.GetSkipedWorkDay((DateTime)objNP.DATE_END_PER, importParam.DaysToSkip);
            dohod.NumPp       = objNPST.NOM_DOC;
            dohod.DatePp      = objNPST.DATE_DOC;
            dohod.NumZf       = null;
            dohod.DateZf      = null;
            dohod.OktmoId     = oktmo.Sysid;
            dohod.KbkId       = (await _dohodDbContext.IdentKbk(dohorig.Kbk)).Sysid;
            dohod.CodeCeliId  = null;
            dohod.PlatId      = (await _dohodDbContext.IdentPlat(dohorig)).Sysid;
            dohod.IsRaschet   = true;
            dohod.IsSumRazb   = false;
            dohod.SumItg      = (decimal)objNPST.SUM;
            dohod.ImnsInn     = objNPST.INN_ADB;
            dohod.ImnsKpp     = objNPST.KPP_ADB;
            dohod.LsAdb       = "";
            dohod.OsnPlat     = ""; // (поле 106)*
            dohod.VidOper     = objNPST.NAME_DOC;
            dohod.CodeVidOper = dohod.VidOper == "Платежное поручение" ? "01" : "";
            dohod.NaznPlat    = objNPST.NOTE; // Назначение платежа !!! в Фох считывали с какого то файла отдельно
            dohod.ImportFile  = importParam.FileName;
            dohod.IsNp        = dohorig.Kbk.IsNpCode();
            dohod.IsVoz       = false;
            dohod.IsItg       = false;
            dohod.LinkNp      = null;
            dohod.LinkVoz     = null;
            dohod.LinkItg     = null;
            dohod.Guid        = "";
            dohod.VidDoc      = VidDoc.NP;
            //
            dohod.Orig = dohorig;
            await _dohodDbContext.RazbivkaItogSum(dohod);

            return(dohod);
        }
Example #6
0
File: Fn.cs Project: paxan89/Monica
 public static async Task <s_org> IdentPlat(this DohodDbContext dbContext, t_dohorig dohorig)
 {
     return(await IdentPlat(dbContext, dohorig.Inn, dohorig.Kpp, dohorig.PlatName, dohorig.Rs));
 }
Example #7
0
        private async Task <t_dohod> DohRecord(dynamic objVT, dynamic objVTOPER, ImportParam importParam)
        {
            t_dohod   dohod   = new t_dohod();
            t_dohorig dohorig = new t_dohorig();


            // вспомогательные
            var kodDoc = (string)objVTOPER.KOD_DOC; // "SF" или "UF"

            if (kodDoc != "UF")                     // филтр - Только UF
            {
                return(null);                       // c 20150216 - SF пишем только из *.SF файлов
            }
            dohorig.OktmoPp = objVTOPER.OKATO;      // (поле 105)*
            var oktmo = GetOktmo(dohorig.OktmoPp.Substr(0, 8), importParam, true);

            if (oktmo == null)
            {
                return(null);
            }

            // dohorig
            dohorig.Oktmo    = oktmo.Oktmo;
            dohorig.Kbk      = objVTOPER.KBK;
            dohorig.KbkPp    = ""; // (поле 104)*
            dohorig.CodeCeli = objVTOPER.ADD_KLASS;
            dohorig.Inn      = "";
            dohorig.Kpp      = "";
            dohorig.PlatName = "";
            dohorig.Rs       = "";
            dohorig.Bic      = "";
            dohorig.BankName = "";

            // dohod
            var date = (DateTime)objVT.DATE_OTCH;

            dohod.Date     = _dohodDbContext.GetSkipedWorkDay(date, importParam.DaysToSkip);
            dohod.DateOper = date;
            // Номер уведомления знаем, справки нет
            dohod.NumPp       = objVTOPER.NOM_DOC;
            dohod.DatePp      = objVTOPER.DATE_DOC;
            dohod.NumZf       = null;
            dohod.DateZf      = null;
            dohod.OktmoId     = oktmo.Sysid;
            dohod.KbkId       = (await _dohodDbContext.IdentKbk((string)objVTOPER.KBK)).Sysid;
            dohod.CodeCeliId  = (await _dohodDbContext.IdentKceli((string)objVTOPER.ADD_KLASS))?.Sysid;
            dohod.PlatId      = null;
            dohod.IsRaschet   = true;
            dohod.IsSumRazb   = false;
            dohod.SumItg      = (decimal)objVTOPER.SUM_ZACH;
            dohod.ImnsInn     = objVTOPER.INN_ADB;
            dohod.ImnsKpp     = objVTOPER.KPP_ADB;
            dohod.LsAdb       = "";
            dohod.OsnPlat     = "";                         // (поле 106)*
            dohod.CodeVidOper = "";                         // Нет ??
            dohod.VidOper     = "Уведомление об уточнении"; // dohod.CodeVidOper.GetVidOperName();
            dohod.NaznPlat    = "";                         // Назначение платежа
            dohod.ImportFile  = importParam.FileName;
            dohod.IsNp        = dohorig.Kbk.IsNpCode();
            dohod.IsVoz       = false;
            dohod.IsItg       = false;
            dohod.LinkNp      = null;
            dohod.LinkVoz     = null;
            dohod.LinkItg     = null;
            dohod.Guid        = objVTOPER.GUID;
            dohod.VidDoc      = VidDoc.VT;
            //
            dohod.Orig = dohorig;
            await _dohodDbContext.RazbivkaItogSum(dohod);

            return(dohod);
        }
Example #8
0
        private async Task <t_dohod> DohRecord(dynamic objZF, dynamic objZFPP, ImportParam importParam)
        {
            t_dohod   dohod   = new t_dohod();
            t_dohorig dohorig = new t_dohorig();

            // вспомогательные
            var oktmo = GetOktmo((string)objZF.OKATO_PP, importParam);

            //if (oktmo == null)
            //    return null;

            // dohorig
            dohorig.Oktmo    = objZF.OKATO_PP;
            dohorig.OktmoPp  = objZFPP.OKATO; // (поле 105)*
            dohorig.Kbk      = objZF.KBK_PP;
            dohorig.KbkPp    = objZFPP.KBK;   // (поле 104)*
            dohorig.CodeCeli = objZF.ADD_KLASS;
            dohorig.Inn      = objZF.INN_PL;
            dohorig.Kpp      = objZF.KPP_PL;
            dohorig.PlatName = objZF.CNAME_PL;
            dohorig.Rs       = objZFPP.BS_PAY;
            dohorig.Bic      = objZFPP.BIC_PAY;
            dohorig.BankName = objZFPP.NAME_BIC_PAY;

            // dohod
            dohod.DateOper   = objZF.DATE_ZF;
            dohod.Date       = _dohodDbContext.GetSkipedWorkDay(dohod.DateOper ?? default(DateTime), importParam.DaysToSkip);
            dohod.NumPp      = objZF.NUM_PP;
            dohod.DatePp     = objZF.DATE_PP;
            dohod.NumZf      = objZF.NOM_ZF;
            dohod.DateZf     = dohod.DateOper;
            dohod.OktmoId    = oktmo?.Sysid;
            dohod.KbkId      = (await _dohodDbContext.IdentKbk(dohorig.Kbk))?.Sysid;
            dohod.CodeCeliId = (await _dohodDbContext.IdentKceli(dohorig.CodeCeli))?.Sysid;
            dohod.PlatId     = (await _dohodDbContext.IdentPlat(dohorig)).Sysid;

            dohod.IsRaschet   = false; // всегда не показывается
            dohod.IsSumRazb   = false;
            dohod.SumItg      = (decimal)objZF.SUM_PP;
            dohod.ImnsInn     = objZFPP.INN_RCP;
            dohod.ImnsKpp     = objZFPP.KPP_RCP;
            dohod.LsAdb       = "";
            dohod.OsnPlat     = objZFPP.OSNPLAT;  // (поле 106)*
            dohod.CodeVidOper = objZFPP.VID_OPER;
            dohod.VidOper     = objZF.NAME_PP;    // dohod.CodeVidOper.GetVidOperName();
            dohod.NaznPlat    = objZF.PURPOSE_PP; // Назначение платежа
            dohod.ImportFile  = importParam.FileName;
            dohod.IsNp        = dohorig.Kbk.IsNpCode();
            dohod.IsVoz       = false;
            dohod.IsItg       = false;
            dohod.LinkNp      = null;
            dohod.LinkVoz     = null;
            dohod.LinkItg     = null;
            dohod.Guid        = objZFPP.GUID;
            dohod.VidDoc      = VidDoc.ZF;
            //
            dohod.Orig = dohorig;
            await _dohodDbContext.RazbivkaItogSum(dohod);

            return(dohod);
        }
Example #9
0
        private async Task WriteDohod(List <ExpandoObject> lst)
        {
            _dohodDbContext.TruncateDbTable(typeof(t_dohorig).Name);
            _dohodDbContext.TruncateDbTable(typeof(t_dohod).Name);

            foreach (dynamic obj in lst)
            {
                t_dohod dohod = new t_dohod()
                {
                    LinkVoz = null, LinkNp = null, LinkItg = null
                };
                t_dohorig dohorig = new t_dohorig();

                var codeDoc = (int)(obj.CODE_DOC ?? 0);
                var sysid   = (int)obj.SYSID;
                var linkNp  = (int?)obj.LINK_NP ?? 0;
                var linkVoz = (int?)obj.LINK_VOZ ?? 0;
                var linkItg = (int?)obj.LINK_ITG ?? 0;
                var isNp    = linkNp != 0;
                var isVoz   = linkVoz != 0;
                var isItg   = linkItg == -1;


                // dohorig =
                dohorig.Oktmo    = obj.OKATOFL;
                dohorig.OktmoPp  = obj.OKATO; // (поле 105)*
                dohorig.Kbk      = obj.KBK;
                dohorig.KbkPp    = obj.KBKPP; // (поле 104)*
                dohorig.CodeCeli = obj.KCELI;
                dohorig.Inn      = obj.INN;
                dohorig.Kpp      = obj.KPP;
                dohorig.PlatName = obj.PLAT_NAME;
                dohorig.Rs       = obj.RSCHET;
                dohorig.Bic      = obj.BIC;
                dohorig.KorSchet = obj.KOR_SCHET;
                dohorig.BankName = obj.BANK_NAME;

                var xx = (string)(obj.INN);

                // dohod
                dohod.Date        = obj.DATE;
                dohod.DateOper    = obj.DATE_OPER;
                dohod.NumPp       = obj.NUMPP;
                dohod.DatePp      = obj.DATEPP;
                dohod.NumZf       = obj.NOM_ZF;
                dohod.DateZf      = obj.DATE_ZF;
                dohod.OktmoId     = (obj.ID_OKATO ?? 0) > 0 ? obj.ID_OKATO : null; // (await _dohodDbContext.GetOkttoOnCode(dohorig.Oktmo))?.Sysid;
                dohod.KbkId       = (obj.ID_KBK ?? 0) > 0 ? obj.ID_KBK : null;     // (await _dohodDbContext.IdentKbk(dohorig.Kbk))?.Sysid;
                dohod.PlatId      = (obj.ID_PLAT ?? 0) > 0 ? obj.ID_PLAT : null;   // (await _dohodDbContext.IdentPlat(dohorig))?.Sysid; ;
                dohod.CodeCeliId  = (await _dohodDbContext.IdentKceli(dohorig.CodeCeli))?.Sysid;
                dohod.IsRaschet   = obj.RASCH ?? false;
                dohod.IsSumRazb   = obj.SUMRAZBN ?? false;
                dohod.SumItg      = (decimal)(obj.SUM_ITOG ?? 0.0M);
                dohod.SumFed      = (decimal)(obj.SUM_FED ?? 0.0M);
                dohod.SumObl      = (decimal)(obj.SUM_OBL ?? 0.0M);
                dohod.SumMest     = (decimal)(obj.SUM_MEST ?? 0.0M);
                dohod.SumPgt      = (decimal)(obj.SUM_DOP1 ?? 0.0M);
                dohod.SumPst      = (decimal)(obj.SUM_DOP2 ?? 0.0M);
                dohod.SumFond     = (decimal)(obj.SUM_FOND ?? 0.0M);
                dohod.SumSmol     = (decimal)(obj.SUM_SMLN ?? 0.0M);
                dohod.ImnsInn     = obj.IMNS_INN;
                dohod.ImnsKpp     = obj.IMNS_KPP;
                dohod.LsAdb       = obj.LS_ADB;
                dohod.OsnPlat     = obj.OSN_PLAT; // (поле 106)*
                dohod.CodeVidOper = codeDoc == 0 ? "" : codeDoc.ToString().PadLeft(2, '0');
                dohod.VidOper     = obj.VIDOPER;
                dohod.NaznPlat    = obj.NAZNPLAT; // Назначение платежа
                dohod.ImportFile  = obj.IMPFILE;

                dohod.IsVoz = isVoz;
                if (linkVoz > 0)
                {
                    dohod.LinkVoz = linkVoz;
                }
                dohod.IsNp = isNp;
                if (linkNp > 0)
                {
                    dohod.LinkNp = linkNp;
                }
                dohod.IsItg = isItg;
                if (linkItg > 0)
                {
                    dohod.LinkItg = linkItg;
                }

                dohod.Guid   = obj.GUID;
                dohod.VidDoc = (VidDoc)(obj.VIDDOC ?? 0);
                if (dohod.VidDoc == VidDoc.CE && Path.GetExtension(dohod.ImportFile).ToUpper().StartsWith(".SE"))
                {
                    dohod.VidDoc = VidDoc.SE;
                }
                dohod.Sysid     = sysid;
                dohorig.Sysid   = sysid;
                dohorig.DohodId = sysid;

                FillAppEditFields(obj, dohod);
                FillAppEditFields(obj, dohorig);
                await _dohodDbContext.t_dohod.AddAsync(dohod);

                await _dohodDbContext.t_dohorig.AddAsync(dohorig);
            }
            await _dohodDbContext.SaveChangesAsync();

            return;
        }