Example #1
0
    public bool    Load()
    {
        if (Connection == null)
        {
            return(false);
        }
        CRecordSet RecordSet = new   CRecordSet(Connection);

        if (RecordSet.Open("declare @OwnerCode as VarChar(32) select @OwnerCode=user_name() exec dbo.Mega_Common_Registry;1 @OwnerCode=@OwnerCode , @TaskCode='loader' , @TaskName='TAL\\FILIAL\\LOADER.EXC' "))
        {
            while (RecordSet.Read())
            {
                if (CCommon.IsDigit("0" + RecordSet["FlagCode"].Trim()))
                {
                    Current = CCommon.CInt32("0" + RecordSet["FlagCode"].Trim());
                    if (Current < TOTAL_GROUP)
                    {
                        Topics[Current]   = RecordSet["Name"].Trim();
                        Purposes[Current] = RecordSet["Info"].Trim();
                    }
                }
            }
        }
        RecordSet.Close();
        Print();
        Current = CConsole.GetMenuChoice("Принять такие назначения платежей", "Изменить назначения платежей");
        while (Current == 2)
        {
            Print();
            Current = CConsole.GetMenuChoice(TopicMenus);
            while (Current != 0)
            {
                CCommon.Write(" Введите номер балансового счета или список через запятую : ");
                Topics[Current - 1] = CCommon.Input().Trim();
                CCommon.Write(CAbc.CRLF + " Назначение платежа : ");
                Purposes[Current - 1] = CCommon.Input().Trim();
                Print();
                Current = CConsole.GetMenuChoice(TopicMenus);
            }
            Print();
            Current = CConsole.GetMenuChoice("Принять такие назначения платежей", "Изменить назначения платежей");
        }
        if (Current == 1)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
Example #2
0
    public string  Check(CCommand Command, string SourceFileName)
    {
        string Result        = "";
        string AboutError    = "";
        bool   HaveError     = false;
        string ShortFileName = CCommon.GetFileName(SourceFileName);

        TotalCredit = 0;
        StringCount = 0;
        if (AFileReader.Open(SourceFileName, CAbc.CHARSET_DOS))
        {
            HaveError = false;
            while (AFileReader.Read())
            {
                TotalCredit += CCommon.CInt64(AFileReader[CSepAFileInfo.L_SUMA].Trim());
                StringCount++;
                AboutError = "";
                CmdText    = "exec   dbo.pMega_OpenGate_CheckPalvis"
                             + " @Code         = '" + AFileReader[CSepAFileInfo.L_NDOC].Replace("'", "`").Trim() + "'"
                             + ",@Ctrls        = '" + AFileReader[CSepAFileInfo.L_NDOC].Replace("'", "`").Trim() + "'"
                             + ",@SourceCode   = '" + AFileReader[CSepAFileInfo.L_DEBITMFO].Replace("'", "`").Trim() + "'"
                             + ",@DebitMoniker = '" + AFileReader[CSepAFileInfo.L_DEBITACC].Replace("'", "`").Trim() + "'"
                             + ",@DebitState   = '" + AFileReader[CSepAFileInfo.L_OKPO1].Replace("'", "`").Trim() + "'"
                             + ",@DebitIBAN    = '" + AFileReader[CSepAFileInfo.L_DEBITIBAN].Replace("'", "`").Trim() + "'"
                             + ",@TargetCode   = '" + AFileReader[CSepAFileInfo.L_CREDITMFO].Replace("'", "`").Trim() + "'"
                             + ",@CreditMoniker= '" + AFileReader[CSepAFileInfo.L_CREDITACC].Replace("'", "`").Trim() + "'"
                             + ",@CreditState  = '" + AFileReader[CSepAFileInfo.L_OKPO2].Replace("'", "`").Trim() + "'"
                             + ",@CreditIBAN   = '" + AFileReader[CSepAFileInfo.L_CREDITIBAN].Replace("'", "`").Trim() + "'"
                             + ",@CrncyAmount  =  " + AFileReader[CSepAFileInfo.L_SUMA].Replace("'", "`").Trim()
                             + ",@CurrencyId   =  " + AFileReader[CSepAFileInfo.L_CURRENCY].Replace("'", "`").Trim()
                             + ",@FileName     = '" + ShortFileName.Replace("'", "`").Trim() + "'"
                             + ",@LineNum      =  " + StringCount.ToString()
                             + ",@UserName	= '******'"
                ;
                AboutError = (string)Command.GetScalar(CmdText);
                if (AFileReader[CSepAFileInfo.L_PURPOSE].Trim() == "")
                {
                    AboutError += " Не заполнено назначение платежа ;";
                }
                if (AFileReader[CSepAFileInfo.L_DEBITNAME].Trim() == "")
                {
                    AboutError += " Не заполнено название дб. счета ;";
                }
                if (AFileReader[CSepAFileInfo.L_CREDITNAME].Trim() == "")
                {
                    AboutError += " Не заполнено название кт. счета ;";
                }
                if (AboutError != null)
                {
                    if ((AboutError.Trim() != ""))
                    {
                        HaveError = true;
                        Result    = Result + " Ошибка в строке " + StringCount.ToString() + " : " + AboutError.Trim() + CAbc.CRLF;
                    }
                }
                CConsole.ShowBox("", " Проверяется строка" + CCommon.StrI(StringCount, 5) + " ", "");
            }
            CConsole.Clear();
            if (HaveError)
            {
                Result = Result + "Ошибка в реквизитах платежей !" + CAbc.CRLF;
            }
            if (TotalCredit != CCommon.CInt64(AFileReader.Head(CSepAFileInfo.H_TOTALCREDIT).Trim()))
            {
                Result = Result + CAbc.CRLF + "Неверная итоговая сумма платежей !" + CAbc.CRLF;
            }
            if (CCommon.IsDigit("0" + AFileReader.Head(CSepAFileInfo.H_STRCOUNT).Trim()) == false)
            {
                Result = Result + CAbc.CRLF + "Неверное общее количество строк !" + CAbc.CRLF;
            }
            else
            if (StringCount != CCommon.CInt32("0" + AFileReader.Head(CSepAFileInfo.H_STRCOUNT).Trim()))
            {
                Result = Result + CAbc.CRLF + "Неверное общее количество строк !" + CAbc.CRLF;
            }
        }
        else
        {
            Result += "Ошибка чтения файла !" + CAbc.CRLF;
        }
        AFileReader.Close();
        byte SavedColor = CConsole.BoxColor;

        if ((( int )CCommon.IsNull(Command.GetScalar("exec dbo.pMega_OpenGate_CheckPalvis;2 @TaskCode='OpenGate',@FileName='" + ShortFileName + "'"), (int)0)) > 0)
        {
            CConsole.BoxColor = CConsole.RED * 16 + CConsole.WHITE;
            CConsole.GetBoxChoice("Внимание ! Файл " + ShortFileName + " сегодня уже загружался !", "", "Нажмите Enter.");
            HaveError         = true;
            Result           += "Файл " + ShortFileName + " сегодня уже загружался !" + CAbc.CRLF;
            CConsole.BoxColor = SavedColor;
        }
        return(Result);
    }
Example #3
0
    public static bool    WriteBFiles(int DayDate, string DestinationFolder)
    {
        if (DestinationFolder == null)
        {
            return(false);
        }

        int        FileId;
        CRecordSet Data_Line   = new CRecordSet(Connection1);
        CRecordSet Data_Header = new CRecordSet(Connection2);
        string     DebitAcc, CreditAcc
        , CmdText = "exec pMega_OpenGate_Export;2 @TaskCode = 'ErcGate' "
                    + ", @Date=" + DayDate.ToString()
                    + ", @SeansNum=" + BFileNum.ToString()
                    + ", @FileName=''";

        if (Data_Header.Open(CmdText))
        {
            while (Data_Header.Read())
            {
                FileId = CCommon.CInt32(Data_Header["FileId"]);

                if (Data_Line.Open("exec dbo.pMega_OpenGate_Export;3 @FileId=" + FileId.ToString()))
                {
                    if (BFile.Create(DestinationFolder + "\\" + Data_Header["FileName"].Trim(), CAbc.CHARSET_DOS))
                    {
                        BFile.Head[CSepAFileInfo.H_EMPTYSTR]      = "";                                                         // char[100]  // Пеpвые 100 - пpобелы
                        BFile.Head[CSepAFileInfo.H_CRLF1]         = CAbc.CRLF;                                                  // char[  2]; // Символ концец строки
                        BFile.Head[CSepAFileInfo.H_FILENAME]      = Data_Header["FileName"].Trim();                             // char[ 12]; // Наименование  файла
                        BFile.Head[CSepAFileInfo.H_DATE]          = Now_Date_Str;                                               // char[  6]; // Дата создания файла
                        BFile.Head[CSepAFileInfo.H_TIME]          = Now_Time_Str;                                               // char[  4]; // Дата создания файла
                        BFile.Head[CSepAFileInfo.H_STRCOUNT]      = Data_Header["TotalLines"].Trim();                           // char[  6]; // Количество ИС в файле
                        BFile.Head[CSepAFileInfo.H_TOTALDEBET]    = "0";                                                        // char[ 16]; // Сумма дебета по файлу
                        BFile.Head[CSepAFileInfo.H_TOTALCREDIT]   = Data_Header["TotalCents"].Trim();                           // char[ 16]; // Сумма кpедита по файлу
                        BFile.Head[CSepAFileInfo.H_DES]           = Md5.GetHash(BFile.GetHeader().Substring(102, 60));          // char[ 64]; // ЕЦП
                        BFile.Head[CSepAFileInfo.H_DES_ID]        = "UIAB00";                                                   // char[  6]; // ID ключа ЕЦП
                        BFile.Head[CSepAFileInfo.H_DES_OF_HEADER] = "";                                                         // char[ 64]; // ЕЦП заголовка
                        BFile.Head[CSepAFileInfo.H_CRLF2]         = CAbc.CRLF;                                                  // char[  2]; // Символ конец строки

                        if (!BFile.WriteHeader())
                        {
                            Data_Header.Close();
                            Data_Line.Close();
                            BFile.Close();
                            return(false);
                        }

                        while (Data_Line.Read())
                        {
                            DebitAcc  = Data_Line["DebitAcc"].Trim();
                            CreditAcc = Data_Line["CreditAcc"].Trim();
                            BFile.Line[CSepAFileInfo.L_DEBITMFO]      = Data_Line["DebitMfo"].Trim();                                                           // char[  9]; // Дебет-МФО
                            BFile.Line[CSepAFileInfo.L_DEBITACC]      = DebitAcc;                                                                               // char[ 14]; // Дебет-счет
                            BFile.Line[CSepAFileInfo.L_DEBITACC_EXT]  = (DebitAcc.Length > 14 ? DebitAcc : "");                                                 // char[ 20]; // Расширенный Дебет-счет
                            BFile.Line[CSepAFileInfo.L_DEBITIBAN]     = Data_Line["DebitIBAN"].Trim();                                                          // char[ 34]; // Дебет-IBAN
                            BFile.Line[CSepAFileInfo.L_OKPO1]         = Data_Line["DebitState"].Trim();                                                         // char[ 14]; // Идент.код клиента А
                            BFile.Line[CSepAFileInfo.L_DEBITNAME]     = Data_Line["DebitName"].Trim().Replace("?", "i");                                        // char[ 38]; // Наименование дебет-счета
                            BFile.Line[CSepAFileInfo.L_CREDITMFO]     = Data_Line["CreditMfo"].Trim();                                                          // char[  9]; // Кредит-МФО
                            BFile.Line[CSepAFileInfo.L_CREDITACC]     = CreditAcc;                                                                              // char[ 14]; // Кредит счет
                            BFile.Line[CSepAFileInfo.L_CREDITACC_EXT] = (CreditAcc.Length > 14 ? CreditAcc : "");                                               // char[ 20]; // Расширенный Кредит счет
                            BFile.Line[CSepAFileInfo.L_OKPO2]         = Data_Line["CreditState"].Trim();                                                        // char[ 14]; // Идент.код клиента Б
                            BFile.Line[CSepAFileInfo.L_CREDITIBAN]    = Data_Line["CreditIBAN"].Trim();                                                         // char[ 34]; // Кредит-IBAN
                            BFile.Line[CSepAFileInfo.L_CREDITNAME]    = Data_Line["CreditName"].Trim().Replace("?", "i");                                       // char[ 38]; // Наименование кредит-счета
                            BFile.Line[CSepAFileInfo.L_FLAG]          = "1";                                                                                    // char[  1]; // Флаг `дебет/кредит`
                            BFile.Line[CSepAFileInfo.L_SUMA]          = Data_Line["Cents"].Trim();                                                              // char[ 16]; // Сумма в копейках
                            BFile.Line[CSepAFileInfo.L_DTYPE]         = "6";                                                                                    // char[  2]; // Вид документа
                            BFile.Line[CSepAFileInfo.L_NDOC]          = Data_Line["Code"].Trim();                                                               // char[ 10]; // Номер документа
                            BFile.Line[CSepAFileInfo.L_CURRENCY]      = Data_Line["CurrencyId"].Trim();                                                         // char[  3]; // Валюта
                            BFile.Line[CSepAFileInfo.L_DATE1]         = CCommon.DtoC(CCommon.CInt32(Data_Line["DayDate"].Trim())).Substring(2, 6);              // char[  6]; Дата платежа
                            BFile.Line[CSepAFileInfo.L_DATE2]         = CCommon.DtoC(CCommon.CInt32(Data_Line["OrgDate"].Trim())).Substring(2, 6);              // char[  6]; Дата пуступления документа
                            BFile.Line[CSepAFileInfo.L_PURPOSE]       = Data_Line["Purpose"].Trim().Replace("?", "i");                                          // char[160]; // Назначение платежа
                            BFile.Line[CSepAFileInfo.L_SYMBOL]        = Data_Line["Ctrls"].Trim();                                                              // char[  3]; // Кассовый символ
                            BFile.Line[CSepAFileInfo.L_ID]            = Data_Line["TransferId"].Trim();                                                         // char[  9]; // Идентификатор документа
                            BFile.Line[CSepAFileInfo.L_DES]           = Md5.GetHash(BFile.GetFullLine().Substring(0, 444));                                     // char[ 64]; // ЕЦП
                            BFile.Line[CSepAFileInfo.L_CRLF]          = CAbc.CRLF;                                                                              // char[  2]; // Символ `конец строки`

                            if (!BFile.WriteLine())
                            {
                                Data_Header.Close();
                                Data_Line.Close();
                                BFile.Close();
                                return(false);
                            }
                        }
                    }
                    BFile.Close();
                }
            }
            Data_Line.Close();
        }
        Data_Header.Close();
        return(true);
    }
Example #4
0
    public static bool    WriteVFiles(int DayDate, string DestinationFolder, int VMode)
    {
        CSepVWriter A         = new   CSepVWriter();
        string      File_Name = "!"
                                + (VMode == 0 ? "V" : "W")
                                + "UUIA"
                                + CCommon.StrY(CCommon.Month(DayDate), 1)
                                + CCommon.StrY(CCommon.Day(DayDate), 1)
                                + "."
                                + CCommon.Right("0" + CCommon.Hour(CCommon.Clock()), 2)
                                + CCommon.StrY(CCommon.Minute(CCommon.Clock()) >> 1, 1);

        if (!A.Create(DestinationFolder + "\\" + File_Name, CAbc.CHARSET_DOS))
        {
            return(false);
        }

        CRecordSet Data = new CRecordSet(Connection1);

        if (Data.Open("exec  dbo.pMega_OpenGate_Report;3   @TaskCode='ErcGate', @DateFrom = " + DayDate.ToString() + " , @Mode = " + VMode.ToString()))
        {
            if (!Data.Read())
            {
                A.Head[CSepVFileInfo.H_EMPTYSTR]    = "";                                                       // char[100]  // Пеpвые 100 - пpобелы
                A.Head[CSepVFileInfo.H_CRLF1]       = CAbc.CRLF;                                                // char[  2]; // Символ концец строки
                A.Head[CSepVFileInfo.H_FILENAME]    = CCommon.Left(File_Name.Trim(), 12);                       // char[ 12]; // Наименование  файла
                A.Head[CSepVFileInfo.H_DATE]        = Now_Date_Str;                                             // char[  6]; // Дата создания файла
                A.Head[CSepVFileInfo.H_TIME]        = Now_Time_Str;                                             // char[  4]; // Дата создания файла
                A.Head[CSepVFileInfo.H_STRCOUNT]    = "0";                                                      // char[  6]; // Количество ИС в файле
                A.Head[CSepVFileInfo.H_TOTALDEBET]  = "0";                                                      // char[ 16]; // Сумма дебета по файлу
                A.Head[CSepVFileInfo.H_TOTALCREDIT] = "0";                                                      // char[ 16]; // Сумма кpедита по файлу
                A.Head[CSepVFileInfo.H_EMPTYSTR2]   = "";                                                       // char[ 64]; // Пустое пространство
                A.Head[CSepVFileInfo.H_CRLF2]       = CAbc.CRLF;                                                // char[  2]; // Символ конец строки
                if (!A.WriteHeader())
                {
                    Data.Close();
                    A.Close();
                    return(false);
                }
            }
            else
            {
                A.Head[CSepVFileInfo.H_EMPTYSTR]    = "";                                                       // char[100]  // Пеpвые 100 - пpобелы
                A.Head[CSepVFileInfo.H_CRLF1]       = CAbc.CRLF;                                                // char[  2]; // Символ концец строки
                A.Head[CSepVFileInfo.H_FILENAME]    = CCommon.Left(File_Name.Trim(), 12);                       // char[ 12]; // Наименование  файла
                A.Head[CSepVFileInfo.H_DATE]        = Now_Date_Str;                                             // char[  6]; // Дата создания файла
                A.Head[CSepVFileInfo.H_TIME]        = Now_Time_Str;                                             // char[  4]; // Дата создания файла
                A.Head[CSepVFileInfo.H_STRCOUNT]    = Data["TotalLines"].Trim();                                // char[  6]; // Количество ИС в файле
                A.Head[CSepVFileInfo.H_TOTALDEBET]  = "0";                                                      // char[ 16]; // Сумма дебета по файлу
                A.Head[CSepVFileInfo.H_TOTALCREDIT] = Data["TotalCents"].Trim();                                // char[ 16]; // Сумма кpедита по файлу
                A.Head[CSepVFileInfo.H_EMPTYSTR2]   = "";                                                       // char[ 64]; // Пустое пространство
                A.Head[CSepVFileInfo.H_CRLF2]       = CAbc.CRLF;                                                // char[  2]; // Символ конец строки
                if (!A.WriteHeader())
                {
                    Data.Close();
                    A.Close();
                    return(false);
                }
                do
                {
                    A.Line[CSepVFileInfo.L_DEBITMFO]  = Data["SourceCode"].Trim();                                              // char[  9]; // Дебет-МФО
                    A.Line[CSepVFileInfo.L_DEBITACC]  = Data["DebitMoniker"].Trim();                                            // char[ 14]; // Дебет-счет
                    A.Line[CSepVFileInfo.L_CREDITMFO] = Data["TargetCode"].Trim();                                              // char[  9]; // Кредит-МФО
                    A.Line[CSepVFileInfo.L_CREDITACC] = Data["CreditMoniker"].Trim();                                           // char[ 14]; // Кредит счет
                    A.Line[CSepVFileInfo.L_FLAG]      = "1";                                                                    // char[  1]; // Флаг `дебет/кредит`
                    A.Line[CSepVFileInfo.L_SUMA]      = Data["CrncyCents"].Trim();                                              // char[ 16]; // Сумма в копейках
                    A.Line[CSepVFileInfo.L_DTYPE]     = Data["Kind"].Trim();                                                    // char[  2]; // Вид документа
                    A.Line[CSepVFileInfo.L_NDOC]      = Data["DocNum"].Trim();                                                  // char[ 10]; // Номер документа
                    A.Line[CSepVFileInfo.L_CURRENCY]  = Data["CurrencyId"].Trim();                                              // char[  3]; // Валюта
                    A.Line[CSepVFileInfo.L_DATE1]     = CCommon.DtoC(CCommon.CInt32(Data["DayDate"].Trim())).Substring(2, 6);   // char[  6]; // Дата платежа
                    A.Line[CSepVFileInfo.L_ID]        = Data["Id"].Trim();                                                      // char[  9]; // Идентификатор документа
                    A.Line[CSepVFileInfo.L_FILENAME1] = Data["FileName"].Trim();                                                // char[ 12]; // Имя файла N 1
                    A.Line[CSepVFileInfo.L_LINENUM1]  = Data["LineNum"].Trim();                                                 // char[  6]; // Номер строки в файле N 1
                    A.Line[CSepVFileInfo.L_FILENAME2] = Data["FileName"].Trim();                                                // char[ 12]; // Имя файла N 2
                    A.Line[CSepVFileInfo.L_LINENUM2]  = Data["LineNum"].Trim();                                                 // char[  6]; // Номер строки в файле N 2
                    A.Line[CSepVFileInfo.L_STATUS]    = (((CCommon.CInt32(Data["ProcessFlag"].Trim()) & 3) == 3)  ? "Y" : "N"); // char[  1]; // Флаг квитовки платежа
                    A.Line[CSepVFileInfo.L_TIME]      = Now_Time_Str;                                                           // char[  4]; // Время
                    A.Line[CSepVFileInfo.L_NOL1]      = "0";                                                                    // char[  1]; //
                    A.Line[CSepVFileInfo.L_NOL2]      = "0";                                                                    // char[  1]; //
                    A.Line[CSepVFileInfo.L_CRLF]      = CAbc.CRLF;                                                              // char[  2]; // Символы конца строки
                    if (!A.WriteLine())
                    {
                        Data.Close();
                        A.Close();
                        return(false);
                    }
                }       while   (Data.Read());
            }
        }
        Data.Close();
        A.Close();
        return(true);
    }