/// <summary>Заповнити як попередній</summary> private void fillFromPrev() { //Сохраняем штрихкод, а то он затрется string currBarcode = accessory.BarCode; Accessory lastObj; //Получаем объект последнего комплектующего if (Accessory.GetLastAccesory(currentType, out lastObj)) { accessory = lastObj.CopyWithoutLinks(); MainProcess.ClearControls(); accessory.Status = TypesOfLampsStatus.Storage; accessory.ClearPosition(); showData(false, currBarcode); } }
/// <summary>��������� �� ���������</summary> private void fillFromPrev() { //��������� ��������, � �� �� �������� string currBarcode = accessory.BarCode; Accessory lastObj; //�������� ������ ���������� �������������� if (Accessory.GetLastAccesory(currentType, out lastObj)) { accessory = lastObj.CopyWithoutLinks(); MainProcess.ClearControls(); accessory.Status = TypesOfLampsStatus.Storage; accessory.ClearPosition(); showData(false, currBarcode); } }
/// <summary>�������</summary> /// <param name="sender">��������� ��� ���������� �������������</param> private void button_click(object sender) { Button button = ((Button)sender); Type type = button.Tag as Type; if (isMainDataEntered) { if (warrantlyDataIsValid()) { if (type != null) { MainProcess.ClearControls(); bool isNewObject = accessory.IsNew; //���� ��������� ��� ��������� � �������� ����� - "���������� ������������ ������" if (mainType == type && linkId != -1) { accessory.SetValue(mainType.Name.Substring(0, mainType.Name.Length - 1), linkId); //��������� ��� ���� ��� �� �������� accessory.Id accessory.Write(); dbObject mainObj = (Accessory)Activator.CreateInstance(mainType); mainObj = (Accessory)mainObj.Read(mainType, linkId, dbObject.IDENTIFIER_NAME); mainObj.SetValue(currentType.Name.Substring(0, currentType.Name.Length - 1), accessory.Id); mainObj.Write(); } //������ accessory.Write(); //���� �������� ����� - ������ ��� ������� "�����������" if (isNewObject) { //�������� ������ � "�����������" Movement.RegisterLighter(accessory.BarCode, accessory.SyncRef, OperationsWithLighters.Registration); } //����������� string propertyName = type.Name.Substring(0, type.Name.Length - 1); object newAccessory = accessory.GetPropery(propertyName); long newAccessoryId = newAccessory == null ? 0 : Convert.ToInt64(newAccessory); //������� �� ��������� ������������� if ((newAccessoryId != 0 || (newAccessoryId == 0 && linkId != -1 && mainType == type)) && button.Text != okBtnText && button.Text != nextBtnText) { Accessory newObj = (Accessory)Activator.CreateInstance(type); newObj.Read(type, newAccessoryId, dbObject.IDENTIFIER_NAME); MainProcess.Process = new EditBuilder(MainProcess, mainType, mainTopic, type, button.Text, newObj, newObj.BarCode); accessory = newObj; } //������� �� ����� ��������� ��� �������������� else { //���� ��������� ��� ��������� � �������� ����� if (mainType == type) { if (mainType == null || linkId == -1) { accessory = (Accessory)accessory.Copy(); accessory.ClearPosition(); MainProcess.Process = new EditBuilder(MainProcess, mainType, mainType, mainTopic); } MainProcess.Process = new EditBuilder(MainProcess, mainType, mainType, mainTopic); } //�� ��������� - "�������� �� �������������� � �������� ���������" else { MainProcess.Process = new EditBuilder(MainProcess, type, mainType, button.Text, accessory.Id, type == typeof(ElectronicUnits)); } //���� �� ���� ����������� ����������� ����� ��� ���������� ��������������, �� �������� ��� ���� if (!accessory.IsNew) { accessory = null; } } } } } else { showWriteErrorMessage(); } }
/// <summary>Переход</summary> /// <param name="sender">Выбранный тип следующего коплектующего</param> private void button_click(object sender) { Button button = ((Button)sender); Type type = button.Tag as Type; if (isMainDataEntered) { if (warrantlyDataIsValid()) { if (type != null) { MainProcess.ClearControls(); bool isNewObject = accessory.IsNew; //Если выбранный тип совпадает с основным типом - "Сохранение перекрестных ссылок" if (mainType == type && linkId != -1) { accessory.SetValue(mainType.Name.Substring(0, mainType.Name.Length - 1), linkId); //Сохраняем для того что бы получить accessory.Id accessory.Write(); dbObject mainObj = (Accessory)Activator.CreateInstance(mainType); mainObj = (Accessory)mainObj.Read(mainType, linkId, dbObject.IDENTIFIER_NAME); mainObj.SetValue(currentType.Name.Substring(0, currentType.Name.Length - 1), accessory.Id); mainObj.Write(); } //Запись accessory.Write(); //Если документ новый - значит был процесс "Регистрация" if (isNewObject) { //Внесение записи в "Перемещение" Movement.RegisterLighter(accessory.BarCode, accessory.SyncRef, OperationsWithLighters.Registration); } //Отображение string propertyName = type.Name.Substring(0, type.Name.Length - 1); object newAccessory = accessory.GetPropery(propertyName); long newAccessoryId = newAccessory == null ? 0 : Convert.ToInt64(newAccessory); //Переход на связанное комплектующее if ((newAccessoryId != 0 || (newAccessoryId == 0 && linkId != -1 && mainType == type)) && button.Text != okBtnText && button.Text != nextBtnText) { Accessory newObj = (Accessory)Activator.CreateInstance(type); newObj.Read(type, newAccessoryId, dbObject.IDENTIFIER_NAME); MainProcess.Process = new EditBuilder(MainProcess, mainType, mainTopic, type, button.Text, newObj, newObj.BarCode); accessory = newObj; } //Переход на НОВЫЙ выбранный тип комплектующего else { //Если выбранный тип совпадает с основным типом if (mainType == type) { if (mainType == null || linkId == -1) { accessory = (Accessory)accessory.Copy(); accessory.ClearPosition(); MainProcess.Process = new EditBuilder(MainProcess, mainType, mainType, mainTopic); } MainProcess.Process = new EditBuilder(MainProcess, mainType, mainType, mainTopic); } //Не совпадает - "Передача ИД комплектующего с которого переходим" else { MainProcess.Process = new EditBuilder(MainProcess, type, mainType, button.Text, accessory.Id, type == typeof(ElectronicUnits)); } //Если не было произведено копирование полей для следующего комплектующего, то очистить все поля if (!accessory.IsNew) { accessory = null; } } } } } else { showWriteErrorMessage(); } }