/// <summary> /// Заполнение списка видов заявок /// </summary> private void FillNewRequestItems() { if (NewRequestAction.Items.Count() > 0) { return; } NewRequestAction.Items.Clear(); SuperRequest paymentSuperRequestFinItem = new SuperRequest(typeof(fmCPRPaymentRequestFinOrder), -1); ChoiceActionItem paymentRequestFinItem = new ChoiceActionItem("1", "Финансовая заявка", paymentSuperRequestFinItem); //typeof(fmCPRPaymentRequestFinOrder)); NewRequestAction.Items.Add(paymentRequestFinItem); //MemberInfo[] memberInfos = typeof(FinRequestKind).GetMembers(BindingFlags.Public | BindingFlags.Static); //for (int i = 0; i < memberInfos.Length; i++) { // //ddProperty.Items.Add(new ListItem(memberInfos[i].Name, memberInfos[i].GetType().Name)); // ChoiceActionItem paymentRequestFinEnumItem = new ChoiceActionItem("1." + i.ToString(), " - " + memberInfos[i].GetType().Name, typeof(fmCPRPaymentRequestFinOrder)); // NewRequestAction.Items.Add(paymentRequestFinEnumItem); //} IModelLocalizationItemBase node = View.Model.Application.Localization["Enums"]["IntecoAG.ERM.FM.PaymentRequest.FinRequestKind"]; if (node != null) { for (int i = 0; i < node.NodeCount; i++) { string name = node.GetNode(i).GetValue <string>("Name"); string value = node.GetNode(i).GetValue <string>("Value"); FinRequestKind enumItem = (FinRequestKind)Enum.Parse(typeof(FinRequestKind), name); int index = (int)enumItem; SuperRequest paymentSuperRequestFinEnumItem = new SuperRequest(typeof(fmCPRPaymentRequestFinOrder), index); ChoiceActionItem paymentRequestFinEnumItem = new ChoiceActionItem("1." + (i + 1).ToString(), " - " + value, paymentSuperRequestFinEnumItem); //typeof(fmCPRPaymentRequestFinOrder)); NewRequestAction.Items.Add(paymentRequestFinEnumItem); } } SuperRequest objRequesContractItem = new SuperRequest(typeof(fmCPRPaymentRequestContract), -1); ChoiceActionItem paymentRequesContractItem = new ChoiceActionItem("2", "Заявка на оплату по договору", objRequesContractItem); //typeof(fmCPRPaymentRequestContract)); NewRequestAction.Items.Add(paymentRequesContractItem); SuperRequest objRequestSingleItem = new SuperRequest(typeof(fmCPRPaymentRequestSingle), -1); ChoiceActionItem akkreditivRequestSingleItem = new ChoiceActionItem("3", "Заявка на оплату по разовому счету", objRequestSingleItem); //typeof(fmCPRPaymentRequestSingle)); NewRequestAction.Items.Add(akkreditivRequestSingleItem); SuperRequest objRequestMemorandumItem = new SuperRequest(typeof(fmPaymentRequestMemorandum), -1); ChoiceActionItem budgetRequestItem = new ChoiceActionItem("4", "Служебная записка на оплату", objRequestMemorandumItem); //typeof(fmPaymentRequestMemorandum)); NewRequestAction.Items.Add(budgetRequestItem); }
/// <summary> /// Создать заявку выбранного типа и показать в модальном окне /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void NewRequestAction_Execute(object sender, SingleChoiceActionExecuteEventArgs e) { if (e.SelectedChoiceActionItem != null) { // Вариант с явным показом заявки в модальном окне (пользователь вручную дорабатывает её) IObjectSpace workOS = ObjectSpace.CreateNestedObjectSpace(); //IObjectSpace workOS = ObjectSpace; //fmCPRPaymentRequest request = CreateRequest(e.SelectedChoiceActionItem.Data as SuperRequest, workOS); SuperRequest superRequest = e.SelectedChoiceActionItem.Data as SuperRequest; fmCPRPaymentRequest request = fmCPRPaymentRequestBusinesLogic.CreateRequest(workOS, View.CurrentObject as fmCPRRepaymentTask, superRequest.RequestType as Type, GetFinRequestKindByIndex(superRequest.RequestKind)); Boolean byFin = false; if (request.State == PaymentRequestStates.FINANCE_PAYMENT) { byFin = true; } if (request != null) { // Привязка BindRequest(request, workOS); } if (byFin) { request.State = PaymentRequestStates.FINANCE_PAYMENT; } // Показать картинку ShowRequest(workOS, request, e.ShowViewParameters); //, workOS); // Сброс выбора в списке NewRequestAction.SelectedItem = null; // Не обновляется форма в Root после сохранения вложенного ObjectSpace и заявки нет в списке всех заявок } }