예제 #1
0
        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); }
        }
예제 #2
0
        /// <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);
                }
            }
        }