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); } }
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); }
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); }
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); }