public Trip(string fileName) { string stringUnit = ""; int lineNumber = 0; List <string> unitsFromLine = new List <string>(); Lines = new TripLines(); IEnumerable <string> fileStrings = File.ReadAllLines(fileName); foreach (var line in fileStrings) { lineNumber += 1; if (lineNumber == 2 || lineNumber > 3) { for (int i = 0; i < line.Length; i++) { char symbol = line[i]; if (symbol == ';') { unitsFromLine.Add(stringUnit); stringUnit = ""; } else if (i == line.Length - 1) { stringUnit += line[i]; unitsFromLine.Add(stringUnit); stringUnit = ""; } else { stringUnit += line[i]; } } if (lineNumber == 2) { Header = new TripHeader(unitsFromLine); unitsFromLine.Clear(); } else { Lines.Add(new Order(unitsFromLine)); } } } }
public static System.Int64 Header(TripHeader header) { System.Int64 result; try { SqlConnection connection = new SqlConnection("context connection=true"); using (connection) { connection.Open(); using (var sqlTrans = connection.BeginTransaction()) //one transaction instead of many from each insert implicit { var cmdText01 = @"INSERT INTO [dbo].[_1s_TMS_Import_ЗаявкаТЭП_ш] ([СтатусШлюза] ,[ДатаВремяИзменения] ,[Идентификатор] ,[ДатаДок] ,[ВидОтгрузки] ,[СтатусРейса] ,[Заказчик] ,[Грузоотправитель] ,[ДатаНачалаПогрузкиПлан] ,[ВремяНачалаПогрузкиПлан] ,[ДатаНачалаПогрузкиФакт] ,[ВремяНачалаПогрузкиФакт] ,[ДатаОкончанияПогрузкиПлан] ,[ВремяОкончанияПогрузкиПлан] ,[ДатаОкончанияПогрузкиФакт] ,[ВремяОкончанияПогрузкиФакт] ,[АТПСсылка] ,[АТП] ,[ТЭП] ,[Водитель] ,[ВодительСерияПаспорта] ,[ВодительНомерПаспорта] ,[ВодительДатаВыдачиПаспорта] ,[ВодительКемВыданПаспорт] ,[ВодительПрава] ,[Автомобиль] ,[Прицеп] ,[МестоПогрузки] ,[ГрузСдал] ,[ТипГруза] ,[ВесОбщий] ,[ВидПогрузки] ,[СуммаФрахтПлан] ,[СуммаФрахтФакт] ,[ДопТЧДокументаЗаявкаТЭП_Сумма] ,[ДопТЧДокументаЗаявкаТЭП_Примечание] ,[Ответственный] ,[ТребАвто] ,[ТелефНомВодилы] ,[Примечание] ,[ОбщКилоМетраж] ,[ID_code_truck] ,[ID_code_trailer] ,[ID_code_driver] ,[РоботИмпортер]) VALUES ('P' ,getdate() ,@Идентификатор ,@ДатаДок ,@ВидОтгрузки ,@СтатусРейса ,@Заказчик ,@Грузоотправитель ,@ДатаНачалаПогрузкиПлан ,@ВремяНачалаПогрузкиПлан ,@ДатаНачалаПогрузкиФакт ,@ВремяНачалаПогрузкиФакт ,@ДатаОкончанияПогрузкиПлан ,@ВремяОкончанияПогрузкиПлан ,@ДатаОкончанияПогрузкиФакт ,@ВремяОкончанияПогрузкиФакт ,@АТПСсылка ,@АТП ,@ТЭП ,@Водитель ,@ВодительСерияПаспорта ,@ВодительНомерПаспорта ,@ВодительДатаВыдачиПаспорта ,@ВодительКемВыданПаспорт ,@ВодительПрава ,@Автомобиль ,@Прицеп ,@МестоПогрузки ,@ГрузСдал ,@ТипГруза ,@ВесОбщий ,@ВидПогрузки ,@СуммаФрахтПлан ,@СуммаФрахтФакт ,@ДопТЧДокументаЗаявкаТЭП_Сумма ,@ДопТЧДокументаЗаявкаТЭП_Примечание ,@Ответственный ,@ТребАвто ,@ТелефНомВодилы ,@Примечание ,@ОбщКилоМетраж ,@ID_code_truck ,@ID_code_trailer ,@ID_code_driver ,null)"; using (var cmd = new SqlCommand(cmdText01, connection, sqlTrans)) { var Идентификатор = cmd.Parameters.Add("@Идентификатор", SqlDbType.NVarChar, 50); var ДатаДок = cmd.Parameters.Add("@ДатаДок", SqlDbType.DateTime); var ВидОтгрузки = cmd.Parameters.Add("@ВидОтгрузки", SqlDbType.Char, 9); var СтатусРейса = cmd.Parameters.Add("@СтатусРейса", SqlDbType.NVarChar, 50); var Заказчик = cmd.Parameters.Add("@Заказчик", SqlDbType.Char, 9); var Грузоотправитель = cmd.Parameters.Add("@Грузоотправитель", SqlDbType.Char, 9); var ДатаНачалаПогрузкиПлан = cmd.Parameters.Add("@ДатаНачалаПогрузкиПлан", SqlDbType.DateTime); var ВремяНачалаПогрузкиПлан = cmd.Parameters.Add("@ВремяНачалаПогрузкиПлан", SqlDbType.Int); var ДатаНачалаПогрузкиФакт = cmd.Parameters.Add("@ДатаНачалаПогрузкиФакт", SqlDbType.DateTime); var ВремяНачалаПогрузкиФакт = cmd.Parameters.Add("@ВремяНачалаПогрузкиФакт", SqlDbType.Int); var ДатаОкончанияПогрузкиПлан = cmd.Parameters.Add("@ДатаОкончанияПогрузкиПлан", SqlDbType.DateTime); var ВремяОкончанияПогрузкиПлан = cmd.Parameters.Add("@ВремяОкончанияПогрузкиПлан", SqlDbType.Int); var ДатаОкончанияПогрузкиФакт = cmd.Parameters.Add("@ДатаОкончанияПогрузкиФакт", SqlDbType.DateTime); var ВремяОкончанияПогрузкиФакт = cmd.Parameters.Add("@ВремяОкончанияПогрузкиФакт", SqlDbType.Int); var АТПСсылка = cmd.Parameters.Add("@АТПСсылка", SqlDbType.Char, 9); var АТП = cmd.Parameters.Add("@АТП", SqlDbType.NVarChar, 500); var ТЭП = cmd.Parameters.Add("@ТЭП", SqlDbType.Char, 9); var Водитель = cmd.Parameters.Add("@Водитель", SqlDbType.NVarChar, 50); var ВодительСерияПаспорта = cmd.Parameters.Add("@ВодительСерияПаспорта", SqlDbType.NVarChar, 50); var ВодительНомерПаспорта = cmd.Parameters.Add("@ВодительНомерПаспорта", SqlDbType.NVarChar, 50); var ВодительДатаВыдачиПаспорта = cmd.Parameters.Add("@ВодительДатаВыдачиПаспорта", SqlDbType.DateTime); var ВодительКемВыданПаспорт = cmd.Parameters.Add("@ВодительКемВыданПаспорт", SqlDbType.NVarChar, 500); var ВодительПрава = cmd.Parameters.Add("@ВодительПрава", SqlDbType.NVarChar, 50); var Автомобиль = cmd.Parameters.Add("@Автомобиль", SqlDbType.NVarChar, 50); var Прицеп = cmd.Parameters.Add("@Прицеп", SqlDbType.NVarChar, 50); var МестоПогрузки = cmd.Parameters.Add("@МестоПогрузки", SqlDbType.NVarChar, 80); var ГрузСдал = cmd.Parameters.Add("@ГрузСдал", SqlDbType.Char, 9); var ТипГруза = cmd.Parameters.Add("@ТипГруза", SqlDbType.NVarChar, 50); var ВесОбщий = cmd.Parameters.Add("@ВесОбщий", SqlDbType.NVarChar, 50); var ВидПогрузки = cmd.Parameters.Add("@ВидПогрузки", SqlDbType.NVarChar, 50); var СуммаФрахтПлан = cmd.Parameters.Add("@СуммаФрахтПлан", SqlDbType.Money); var СуммаФрахтФакт = cmd.Parameters.Add("@СуммаФрахтФакт", SqlDbType.Money); var ДопТЧДокументаЗаявкаТЭП_Сумма = cmd.Parameters.Add("@ДопТЧДокументаЗаявкаТЭП_Сумма", SqlDbType.Money); var ДопТЧДокументаЗаявкаТЭП_Примечание = cmd.Parameters.Add("@ДопТЧДокументаЗаявкаТЭП_Примечание", SqlDbType.NVarChar, 50); var Ответственный = cmd.Parameters.Add("@Ответственный", SqlDbType.Char, 9); var ТребАвто = cmd.Parameters.Add("@ТребАвто", SqlDbType.NVarChar, 100); var ТелефНомВодилы = cmd.Parameters.Add("@ТелефНомВодилы", SqlDbType.NVarChar, 50); var Примечание = cmd.Parameters.Add("@Примечание", SqlDbType.NVarChar, 100); var ОбщКилоМетраж = cmd.Parameters.Add("@ОбщКилоМетраж", SqlDbType.Int); var ID_code_truck = cmd.Parameters.Add("@ID_code_truck", SqlDbType.NVarChar, 50); var ID_code_trailer = cmd.Parameters.Add("@ID_code_trailer", SqlDbType.NVarChar, 50); var ID_code_driver = cmd.Parameters.Add("@ID_code_driver", SqlDbType.NVarChar, 50); Идентификатор.Value = header.IdTrip; ДатаДок.Value = header.DateDoc; ВидОтгрузки.Value = header.LoadForm; СтатусРейса.Value = header.TripStatus; Заказчик.Value = header.Customer; Грузоотправитель.Value = header.Shipper; ДатаНачалаПогрузкиПлан.Value = header.DateStartLoadingPlan; ВремяНачалаПогрузкиПлан.Value = header.TimeSecStartLoadingPlan; ДатаНачалаПогрузкиФакт.Value = header.DateStartLoadingRealise; ВремяНачалаПогрузкиФакт.Value = header.TimeSecStartLoadingRealise; ДатаОкончанияПогрузкиПлан.Value = header.DateFinishLoadingPlan; ВремяОкончанияПогрузкиПлан.Value = header.TimeSecFinishLoadingPlan; ДатаОкончанияПогрузкиФакт.Value = header.DateFinishLoadingRealise; ВремяОкончанияПогрузкиФакт.Value = header.TimeSecFinishLoadingRealise; АТПСсылка.Value = header.CarrierAutoId; АТП.Value = header .CarrierAutoName; ТЭП.Value = header.CarrierShopId; Водитель.Value = header.DriversName; ВодительСерияПаспорта.Value = header.DriversPassportSeries; ВодительНомерПаспорта.Value = header.DriversPassportNumber; ВодительДатаВыдачиПаспорта.Value = header.DriversPassportDateIssued; ВодительКемВыданПаспорт.Value = header.DriversPassportIssuedBy; ВодительПрава.Value = header.DriversLicense; Автомобиль.Value = header.TruckName; Прицеп.Value = header.TrailerName; МестоПогрузки.Value = header.LoadingPlaceCode; ГрузСдал.Value = header.StufferId; ТипГруза.Value = header.LoadType; ВесОбщий.Value = header.Weight; ВидПогрузки.Value = header.LoadingType; СуммаФрахтПлан.Value = header.SummCostPlan; СуммаФрахтФакт.Value = header.SummCostRealise; ДопТЧДокументаЗаявкаТЭП_Сумма.Value = header.SummSurcharge; ДопТЧДокументаЗаявкаТЭП_Примечание.Value = header.SurchargeComment; Ответственный.Value = header.CreatedStufferId; ТребАвто.Value = header.TruckLength; ТелефНомВодилы.Value = header.DriversPhoneNumber; Примечание.Value = header.Comment; ОбщКилоМетраж.Value = header.Distance; ID_code_truck.Value = header.IdCodeTruck; ID_code_trailer.Value = header.IdCodeTrailer; ID_code_driver.Value = header.IdCodeDriver; cmd.ExecuteNonQuery(); sqlTrans.Commit(); } } var cmdText02 = @"select max(Код) from dbo._1s_TMS_Import_ЗаявкаТЭП_ш;"; using (var cmd = new SqlCommand(cmdText02, connection)) { result = (System.Int64)cmd.ExecuteScalar(); } connection.Close(); } } catch { result = -1; } return(result); }
public void SaveHeader(TripHeader header) { SqlConnection connection = new SqlConnection("context connection=true"); using (connection) { connection.Open(); using (var sqlTrans = connection.BeginTransaction()) //one transaction instead of many from each insert implicit { string cmdText = @"if object_id(N'dbo.trip_header',N'U') is null create table dbo.trip_header ( trip_code varchar(50), created_datetime varchar(50), shift_status varchar(50), transportation_client varchar(50), shipper varchar(50), planned_pickup_stop_startInstant varchar(50), realized_pickup_stop_startInstant varchar(50), planned_pickup_stop_finishInstant varchar(50), realized_pickup_stop_finishInstant varchar(50), resource_subcontractor_externalId varchar(50), resource_subcontractor_name varchar(50), shift_subcontractor varchar(50), driver_name varchar(50), driver_passport_series varchar(50), driver_passport_number varchar(50), driver_passport_date_issued varchar(50), driver_passport_issued_by varchar(50), driver_driver_license varchar(50), truck_name varchar(50), trailer_name varchar(50), pickup_address_externalId varchar(50), products varchar(50), truck_capacity varchar(50), addresses_delivery_capabilities varchar(50), plancost varchar(50), realcost varchar(50), surcharge varchar(50), surcharge_comment varchar(50), created_user varchar(50), udf_truck_length varchar(50), driver_phone varchar(50), shift_comment varchar(50), disable_delivery_type_check varchar(50), trip_distance varchar(50), ID_code_truck varchar(50), ID_code_trailer varchar(50), ID_code_driver varchar(50) )"; using (var cmd01 = new SqlCommand(cmdText, connection, sqlTrans)) { cmd01.ExecuteNonQuery(); } cmdText = @"INSERT INTO dbo.trip_header VALUES ( @v01,@v02,@v03,@v04,@v05,@v06,@v07,@v08,@v09,@v10,@v11,@v12,@v13,@v14,@v15,@v16,@v17,@v18,@v19,@v20,@v21,@v22,@v23,@v24,@v25,@v26,@v27,@v28,@v29,@v30,@v31,@v32,@v33,@v34,@v35,@v36,@v37)"; using (var cmd = new SqlCommand(cmdText, connection, sqlTrans)) { var v01 = cmd.Parameters.Add("@v01", SqlDbType.NVarChar, 50); var v02 = cmd.Parameters.Add("@v02", SqlDbType.NVarChar, 50); var v03 = cmd.Parameters.Add("@v03", SqlDbType.NVarChar, 50); var v04 = cmd.Parameters.Add("@v04", SqlDbType.NVarChar, 50); var v05 = cmd.Parameters.Add("@v05", SqlDbType.NVarChar, 50); var v06 = cmd.Parameters.Add("@v06", SqlDbType.NVarChar, 50); var v07 = cmd.Parameters.Add("@v07", SqlDbType.NVarChar, 50); var v08 = cmd.Parameters.Add("@v08", SqlDbType.NVarChar, 50); var v09 = cmd.Parameters.Add("@v09", SqlDbType.NVarChar, 50); var v10 = cmd.Parameters.Add("@v10", SqlDbType.NVarChar, 50); var v11 = cmd.Parameters.Add("@v11", SqlDbType.NVarChar, 50); var v12 = cmd.Parameters.Add("@v12", SqlDbType.NVarChar, 50); var v13 = cmd.Parameters.Add("@v13", SqlDbType.NVarChar, 50); var v14 = cmd.Parameters.Add("@v14", SqlDbType.NVarChar, 50); var v15 = cmd.Parameters.Add("@v15", SqlDbType.NVarChar, 50); var v16 = cmd.Parameters.Add("@v16", SqlDbType.NVarChar, 50); var v17 = cmd.Parameters.Add("@v17", SqlDbType.NVarChar, 50); var v18 = cmd.Parameters.Add("@v18", SqlDbType.NVarChar, 50); var v19 = cmd.Parameters.Add("@v19", SqlDbType.NVarChar, 50); var v20 = cmd.Parameters.Add("@v20", SqlDbType.NVarChar, 50); var v21 = cmd.Parameters.Add("@v21", SqlDbType.NVarChar, 50); var v22 = cmd.Parameters.Add("@v22", SqlDbType.NVarChar, 50); var v23 = cmd.Parameters.Add("@v23", SqlDbType.NVarChar, 50); var v24 = cmd.Parameters.Add("@v24", SqlDbType.NVarChar, 50); var v25 = cmd.Parameters.Add("@v25", SqlDbType.NVarChar, 50); var v26 = cmd.Parameters.Add("@v26", SqlDbType.NVarChar, 50); var v27 = cmd.Parameters.Add("@v27", SqlDbType.NVarChar, 50); var v28 = cmd.Parameters.Add("@v28", SqlDbType.NVarChar, 50); var v29 = cmd.Parameters.Add("@v29", SqlDbType.NVarChar, 50); var v30 = cmd.Parameters.Add("@v30", SqlDbType.NVarChar, 50); var v31 = cmd.Parameters.Add("@v31", SqlDbType.NVarChar, 50); var v32 = cmd.Parameters.Add("@v32", SqlDbType.NVarChar, 50); var v33 = cmd.Parameters.Add("@v33", SqlDbType.NVarChar, 50); var v34 = cmd.Parameters.Add("@v34", SqlDbType.NVarChar, 50); var v35 = cmd.Parameters.Add("@v35", SqlDbType.NVarChar, 50); var v36 = cmd.Parameters.Add("@v36", SqlDbType.NVarChar, 50); var v37 = cmd.Parameters.Add("@v37", SqlDbType.NVarChar, 50); v01.Value = header.trip_code; v02.Value = header.created_datetime; v03.Value = header.shift_status; v04.Value = header.transportation_client; v05.Value = header.shipper; v06.Value = header.planned_pickup_stop_startInstant; v07.Value = header.realized_pickup_stop_startInstant; v08.Value = header.planned_pickup_stop_finishInstant; v09.Value = header.realized_pickup_stop_finishInstant; v10.Value = header.resource_subcontractor_externalId; v11.Value = header.resource_subcontractor_name; v12.Value = header.shift_subcontractor; v13.Value = header.driver_name; v14.Value = header.driver_passport_series; v15.Value = header.driver_passport_number; v16.Value = header.driver_passport_date_issued; v17.Value = header.driver_passport_issued_by; v18.Value = header.driver_driver_license; v19.Value = header.truck_name; v20.Value = header.trailer_name; v21.Value = header.pickup_address_externalId; v22.Value = header.products; v23.Value = header.truck_capacity; v24.Value = header.addresses_delivery_capabilities; v25.Value = header.plancost; v26.Value = header.realcost; v27.Value = header.surcharge; v28.Value = header.surcharge_comment; v29.Value = header.created_user; v30.Value = header.udf_truck_length; v31.Value = header.driver_phone; v32.Value = header.shift_comment; v33.Value = header.disable_delivery_type_check; v34.Value = header.trip_distance; v35.Value = header.ID_code_truck; v36.Value = header.ID_code_trailer; v37.Value = header.ID_code_driver; cmd.ExecuteNonQuery(); } sqlTrans.Commit(); } connection.Close(); } }
public void Test(string fileName) { string stringUnit = ""; char symbol = new char(); int lineNumber = 0; List <string> unitsFromLine = new List <string>(); IEnumerable <string> fileStrings = File.ReadAllLines(fileName); TripLines tripLines = new TripLines(); foreach (var line in fileStrings) { lineNumber += 1; if (lineNumber == 2) // || lineNumber > 3) { //Console.WriteLine(line); for (int i = 0; i < line.Length; i++) { symbol = line[i]; //Console.WriteLine($"symbol = {symbol}, line.Length = {line.Length}, i = {i}"); if (symbol == ';') { unitsFromLine.Add(stringUnit); stringUnit = ""; } else if (i == line.Length - 1) { stringUnit += line[i]; unitsFromLine.Add(stringUnit); stringUnit = ""; } else { stringUnit += line[i]; } } TripHeader header = new TripHeader(unitsFromLine); SaveHeader(header); } else if (lineNumber > 3) { unitsFromLine.Clear(); //Console.WriteLine(line.Count()); //Console.WriteLine(line); for (int i = 0; i < line.Length; i++) { symbol = line[i]; //Console.WriteLine($"symbol = {symbol}, line.Length = {line.Length}, i = {i}"); if (symbol == ';') { //Console.WriteLine(stringUnit); unitsFromLine.Add(stringUnit); stringUnit = ""; } else if (i == line.Length - 1) { stringUnit += line[i]; //Console.WriteLine(stringUnit); unitsFromLine.Add(stringUnit); stringUnit = ""; } else { stringUnit += line[i]; } } tripLines.Add(new Order(unitsFromLine)); } } }