public static void 批量添加费用(ArchiveOperationForm masterForm) { IControlManager cm = masterForm.ControlManager; ArchiveSelectForm selectForm = new ArchiveSelectForm("批量添加非业务费用"); if (selectForm.ShowDialog() == DialogResult.OK) { ArchiveCheckForm form = selectForm.SelectedForm as ArchiveCheckForm; if (form != null && form.ShowDialog() == DialogResult.OK) { foreach (object i in form.SelectedEntites) { 非业务费用 newItem = new 非业务费用(); if (i is 费用实体) { newItem.费用实体 = i as 费用实体; } else { System.Diagnostics.Debug.Assert(false, "选中的费用实体类型不是要求类型,而是" + i.GetType().ToString()); } cm.AddNew(); cm.DisplayManager.Items[cm.DisplayManager.Position] = newItem; cm.EndEdit(); //string filter = "现有费用实体类型 LIKE '%" + (int)item.费用实体.费用实体类型 + ",%'"; //masterForm.ActiveGrid.CurrentDataRow.Cells["费用项编号"].CellEditorManager = ControlDataLoad.GetGridComboEditor("费用项_非业务", filter); } } } }
public override void PreparingOperate(OperateArgs e) { base.PreparingOperate(e); if (e.OperateType == OperateType.Save || e.OperateType == OperateType.Update) { 非业务费用 entity = e.Entity as 非业务费用; if (string.IsNullOrEmpty(entity.费用项编号)) { entity.费用类别编号 = null; } else { // 当费用项变换时,要重新设置费用类别编号 entity.费用项 = EntityBufferCollection.Instance.Get <费用项>(entity.费用项编号); entity.费用类别编号 = entity.收付标志 == 收付标志.收 ? entity.费用项.收入类别 : entity.费用项.支出类别; if (!entity.费用类别编号.HasValue) { throw new InvalidUserOperationException("您选择的费用项和收付有误,请重新选择!"); } } } }
private static void GeneratePzYsyf(IRepository rep, 凭证 pz) { rep.Initialize(pz.凭证费用明细, pz); foreach (凭证费用明细 pzfymx in pz.凭证费用明细) { rep.Initialize(pzfymx.费用, pzfymx); 费用项 fyx = EntityBufferCollection.Instance.Get <费用项>(pzfymx.费用项编号); if (pzfymx.费用.Count > 0) { // 通过对账单包进来的 if (fyx.应收应付类型 == 应收应付类型.业务) { 应收应付款 ysyfk = new 应收应付款(); ysyfk.IsActive = true; ysyfk.费用项编号 = pzfymx.费用项编号; ysyfk.结算期限 = pz.日期; ysyfk.金额 = -pzfymx.金额; // 取反 ysyfk.日期 = pz.日期; ysyfk.收付标志 = pzfymx.收付标志; ysyfk.相关人编号 = pzfymx.相关人编号; ysyfk.业务类型编号 = pzfymx.业务类型编号.Value; ysyfk.应收应付源 = pz; ysyfk.备注 = pzfymx.备注; (new HdBaseDao <应收应付款>()).Save(rep, ysyfk); } continue; } if (fyx.应收应付类型 == 应收应付类型.业务) { 应收应付款 ysyfk = new 应收应付款(); ysyfk.IsActive = true; ysyfk.费用项编号 = pzfymx.费用项编号; ysyfk.结算期限 = pz.日期; ysyfk.金额 = -pzfymx.金额; // 取反 ysyfk.日期 = pz.日期; ysyfk.收付标志 = pzfymx.收付标志; ysyfk.相关人编号 = pzfymx.相关人编号; ysyfk.业务类型编号 = pzfymx.业务类型编号.Value; ysyfk.应收应付源 = pz; ysyfk.备注 = pzfymx.备注; (new HdBaseDao <应收应付款>()).Save(rep, ysyfk); } else if (fyx.应收应付类型 == 应收应付类型.借款类型) { 应收应付款 ysyfk = new 应收应付款(); ysyfk.IsActive = true; ysyfk.费用项编号 = "002"; // 其他 //IList<GridColumnInfo> infos = new List<GridColumnInfo> { // new GridColumnInfo { Caption = "结算期限", DataControlVisible = "True", DataControlType = "MyDatePicker", PropertyName = "结算期限", NotNull = "True"} , // }; //ArchiveDataControlForm form = new ArchiveDataControlForm(new ControlManager(null), infos); //if (form.ShowDialog() == DialogResult.OK) //{ // ysyfk.结算期限 = (DateTime)form.DataControls["结算期限"].SelectedDataValue; //} //else //{ // throw new InvalidUserOperationException("借款必须填写结算期限!"); //} ysyfk.结算期限 = pzfymx.结算期限.HasValue ? pzfymx.结算期限.Value : pz.日期; ysyfk.金额 = pzfymx.金额; ysyfk.日期 = pz.日期; ysyfk.收付标志 = pzfymx.收付标志 == 收付标志.付 ? 收付标志.收 : 收付标志.付; ysyfk.相关人编号 = pzfymx.相关人编号; ysyfk.业务类型编号 = pzfymx.业务类型编号.Value; ysyfk.应收应付源 = pz; ysyfk.备注 = pzfymx.备注; (new HdBaseDao <应收应付款>()).Save(rep, ysyfk); } else if (fyx.应收应付类型 == 应收应付类型.管理费用类型) { 非业务费用 fy = new 非业务费用(); fy.IsActive = true; fy.费用项编号 = pzfymx.费用项编号; fy.金额 = pzfymx.金额; fy.收付标志 = pzfymx.收付标志; fy.相关人编号 = pzfymx.相关人编号; fy.备注 = pzfymx.备注; if (string.IsNullOrEmpty(s_非业务默认费用实体)) { throw new ArgumentException("必须指定一个非业务默认费用实体!"); } fy.费用实体 = rep.Get <费用实体>(new Guid(s_非业务默认费用实体)); fy.凭证费用明细 = pzfymx; (new 非业务费用Dao()).Save(rep, fy); } else if (fyx.应收应付类型 == 应收应付类型.待分摊类型) { 应收应付款 ysyfk = new 应收应付款(); ysyfk.IsActive = true; ysyfk.费用项编号 = "004"; // 其他 ysyfk.结算期限 = pzfymx.结算期限.HasValue ? pzfymx.结算期限.Value : pz.日期; ysyfk.金额 = pzfymx.金额; ysyfk.日期 = pz.日期; ysyfk.收付标志 = pzfymx.收付标志 == 收付标志.付 ? 收付标志.收 : 收付标志.付; ysyfk.相关人编号 = "900031"; ysyfk.业务类型编号 = pzfymx.业务类型编号.Value; ysyfk.应收应付源 = pz; ysyfk.备注 = pzfymx.备注; (new HdBaseDao <应收应付款>()).Save(rep, ysyfk); } else if (fyx.应收应付类型 == 应收应付类型.其他) { } } }
public static void 生成相同费用(ArchiveOperationForm masterForm) { if (masterForm.MasterGrid.GridControl.SelectedRows.Count == 0) { ServiceProvider.GetService<IMessageBox>().ShowWarning("请选择费用!"); return; } if (!MessageForm.ShowYesNo("是否要生成选中项相同的费用?", "确认")) { return; } int cnt = 0; using (IRepository rep = ServiceProvider.GetService<IRepositoryFactory>().GenerateRepository<非业务费用>()) { foreach (Xceed.Grid.Row row in masterForm.MasterGrid.GridControl.SelectedRows) { Xceed.Grid.DataRow dataRow = row as Xceed.Grid.DataRow; if (dataRow == null) continue; 非业务费用 entity = dataRow.Tag as 非业务费用; if (entity.非业务费用实体.费用实体类型编号 != 37/*费用实体类型.其他非业务*/) continue; rep.Initialize(entity.费用实体, entity); 非业务费用 item = new 非业务费用(); item.收付标志 = entity.收付标志; item.费用实体 = entity.费用实体; item.费用项编号 = entity.费用项编号; item.费用类别编号 = entity.费用类别编号; item.金额 = entity.金额; item.相关人编号 = entity.相关人编号; object newEntity = masterForm.ControlManager.AddNew(); if (newEntity != null) { masterForm.ControlManager.DisplayManager.Items[masterForm.ControlManager.DisplayManager.Position] = item; masterForm.ControlManager.EndEdit(); (masterForm.MasterGrid.CurrentRow as Xceed.Grid.DataRow).Cells["费用项编号"].CellEditorManager = dataRow.Cells["费用项编号"].CellEditorManager; cnt++; } else { masterForm.ControlManager.CancelEdit(); break; } } } MessageForm.ShowInfo("已生成" + cnt + "条费用!"); }