private void Service_AddButtonClicked(Object sender, EventArgs e) { try { ServiceForm Form = !Dic_Changes.Any() ? new ServiceForm(Context, UniversalCard, CardScript.CardFrame.CardHost, Guid.Empty, Convert.ToDateTime(GetControlValue(RefApplicationCard.MainInfo.RegDate))) : new ServiceForm(Context, UniversalCard, CardScript.CardFrame.CardHost, Guid.Empty, Convert.ToDateTime(GetControlValue(RefApplicationCard.MainInfo.RegDate)), Dic_Changes.Select(ch => ch.DeviceNumberId.NewValue).ToList(), Dic_Changes.SelectMany(ch => String.IsNullOrEmpty(ch.Sensors.NewValue) ? new List <String>() : ch.Sensors.NewValue.Split(';').ToList()).ToList()); switch (Form.ShowDialog()) { case DialogResult.OK: BaseCardProperty Row = Table_Service[Table_Service.FocusedRowIndex]; Guid RowId = Guid.NewGuid(); Row[RefApplicationCard.Service.Id] = RowId; Row[RefApplicationCard.Service.DeviceID] = Form.DeviceId; Row[RefApplicationCard.Service.DeviceNumber] = Form.DeviceNumber; Row[RefApplicationCard.Service.DeviceNumberID] = Form.DeviceNumberId; Row[RefApplicationCard.Service.AC] = Form.AC; Row[RefApplicationCard.Service.Sensors] = Form.Sensors; Row[RefApplicationCard.Service.Verify] = Form.Verify; Row[RefApplicationCard.Service.Repair] = Form.Repair; Row[RefApplicationCard.Service.Calibrate] = Form.Calibrate; Row[RefApplicationCard.Service.Wash] = Form.Wash; Row[RefApplicationCard.Service.WarrantyServices] = Form.Warranty; Row[RefApplicationCard.Service.ACList] = Form.ACList; Row[RefApplicationCard.Service.Comments] = Form.Comment; Row[RefApplicationCard.Service.PackedListData] = Form.CData; Row[RefApplicationCard.Service.PackedListID] = Guid.Empty; Table_Service.RefreshRow(Table_Service.FocusedRowIndex); ServiceTableChange Change = (ServiceTableChange)Row; Change.FileIsChanged = true; Dic_Changes.Add(Change); UpdateACRows(RowId, Form.ACRows.Select(i => (SKB.PaymentAndShipment.Forms.AccountCard.SaleCompleteRow)i).ToList()); break; default: Table_Service.RemoveRow(CardScript.BaseObject, Table_Service.FocusedRowIndex); break; } } catch (MyException) { Table_Service.RemoveRow(CardScript.BaseObject, Table_Service.FocusedRowIndex); } catch (Exception Ex) { CallError(Ex); } }
/// <summary> /// Обновляет строки таблицы "Дополнительные комплектующие" из-за изменения комплектации. /// </summary> /// <param name="RowId">Идентификатор родительской строки.</param> /// <param name="Rows">Строки таблицы комплектующих.</param> private void UpdateACRows(Guid RowId, List <SKB.PaymentAndShipment.Forms.AccountCard.SaleCompleteRow> Rows) { BaseCardProperty Row; for (Int32 i = 0; i < Table_AddComplete.RowCount; i++) { Row = Table_AddComplete[i]; if (Row[RefApplicationCard.AddComplete.ParentTableRowId].ToGuid().Equals(RowId) && !Rows.Any(r => r.Name == Row[RefApplicationCard.AddComplete.Name].ToString())) { Table_AddComplete.RemoveRow(CardScript.BaseObject, i--); } } for (Int32 i = 0; i < Rows.Count; i++) { Boolean Flag = true; for (Int32 j = 0; j < Table_AddComplete.RowCount; j++) { Row = Table_AddComplete[j]; if (Row[RefApplicationCard.AddComplete.ParentTableRowId].ToGuid().Equals(RowId) && Rows[i].Name == Row[RefApplicationCard.AddComplete.Name].ToString()) { Row[RefApplicationCard.AddComplete.Count] = Rows[i].Count; Table_AddComplete.RefreshRow(Table_AddComplete.RowCount - 1); Flag = false; } } if (Flag) { Table_AddComplete.AddRow(CardScript.BaseObject); Row = Table_AddComplete[Table_AddComplete.RowCount - 1]; Row[RefApplicationCard.AddComplete.ParentTableRowId] = RowId; Row[RefApplicationCard.AddComplete.Id] = Rows[i].Id; Row[RefApplicationCard.AddComplete.Name] = Rows[i].Name; Row[RefApplicationCard.AddComplete.Code] = Rows[i].Code; Row[RefApplicationCard.AddComplete.Count] = Rows[i].Count; Row[RefApplicationCard.AddComplete.Ordered] = Rows[i].Ordered; Row[RefApplicationCard.AddComplete.Comment] = Rows[i].Comment; Table_AddComplete.RefreshRow(Table_AddComplete.RowCount - 1); } } }