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 + "条费用!"); }
static void DataRowTemplate_BeginningEdit(object sender, System.ComponentModel.CancelEventArgs e) { Xceed.Grid.DataRow row = sender as Xceed.Grid.DataRow; 非业务费用 item = row.Tag as 非业务费用; string filter = "现有费用实体类型 LIKE '%" + item.费用实体.费用实体类型编号 + ",%'"; row.Cells["费用项编号"].CellEditorManager = GridDataLoad.GetGridComboEditor("费用项_非业务", filter); }
/// <summary> /// 提交 /// </summary> /// <param name="rep"></param> /// <param name="entity"></param> public override void Submit(IRepository rep, 坏账 entity) { 对账单 dzd = new 对账单(); dzd.对账单类型 = (int)财务对账单类型.坏账; dzd.结束日期 = entity.日期; dzd.费用 = new List <费用>(); dzd.费用项编号 = entity.费用项编号; dzd.关账日期 = entity.日期; dzd.结算期限 = entity.日期; dzd.金额 = -entity.金额; dzd.收付标志 = entity.收付标志; dzd.送出时间 = entity.日期; dzd.相关人编号 = entity.相关人编号; dzd.业务类型编号 = entity.业务类型编号; dzd.Submitted = true; (new HdBaseDao <对账单>()).Save(rep, dzd); 非业务费用 fy = new 非业务费用(); fy.费用项编号 = "352"; // 坏账 fy.费用实体 = entity; fy.金额 = entity.金额; fy.收付标志 = entity.收付标志 == 收付标志.付 ? 收付标志.收 : 收付标志.付; fy.相关人编号 = entity.相关人编号; fy.对账单 = dzd; (new 非业务费用Dao()).Save(rep, fy); dzd.费用.Add(fy); entity.费用 = new List <费用>(); entity.费用.Add(fy); 应收应付款 ysyfk = new 应收应付款(); ysyfk.费用项编号 = entity.费用项编号; ysyfk.结算期限 = dzd.结算期限.HasValue ? dzd.结算期限.Value : dzd.关账日期.Value; ysyfk.金额 = dzd.金额; ysyfk.日期 = dzd.关账日期.Value; ysyfk.收付标志 = dzd.收付标志; ysyfk.相关人编号 = dzd.相关人编号; ysyfk.业务类型编号 = entity.业务类型编号; ysyfk.应收应付源 = dzd; (new HdBaseDao <应收应付款>()).Save(rep, ysyfk); dzd.应收应付款 = new List <应收应付款>(); dzd.应收应付款.Add(ysyfk); entity.对账单号 = dzd.编号; entity.Submitted = true; this.Update(rep, entity); }
private static IList <费用> GetSelectedFee4Pz(ArchiveOperationForm masterForm) { IList <费用> list = new List <费用>(); foreach (Xceed.Grid.Row row in masterForm.MasterGrid.GridControl.SelectedRows) { Xceed.Grid.DataRow dataRow = row as Xceed.Grid.DataRow; if (dataRow == null) { continue; } 非业务费用 item = dataRow.Tag as 非业务费用; if (item.凭证费用明细 == null) { list.Add(item.Clone() as 非业务费用); } } return(list); }
/// <summary> /// 提交 /// </summary> /// <param name="rep"></param> /// <param name="entity"></param> public override void Submit(IRepository rep, 工资单 entity) { if (entity.费用 != null) { rep.Initialize(entity.费用, entity); System.Diagnostics.Debug.Assert(entity.费用.Count <= 1, "工资单费用最多只有一条!"); } else { entity.费用 = new List <费用>(); } 非业务费用 fy; if (entity.费用.Count == 0) { fy = new 非业务费用(); fy.费用实体 = entity; fy.费用项编号 = "341"; fy.金额 = entity.工资小计; fy.收付标志 = 收付标志.付; fy.相关人编号 = entity.员工编号; (new 非业务费用Dao()).Save(rep, fy); entity.费用.Add(fy); } else { fy = entity.费用[0] as 非业务费用; fy.金额 = entity.工资小计; fy.相关人编号 = entity.员工编号; (new 非业务费用Dao()).Update(rep, fy); } entity.Submitted = true; this.Update(rep, entity); entity.登记金额 = entity.工资小计; }
public static void 固定资产_生产全部费用(GeneratedArchiveOperationForm masterForm) { if (MessageForm.ShowYesNo("是否生产当前所有费用?", "提示")) { IList list = masterForm.DisplayManager.Items; using (IRepository rep = ServiceProvider.GetService <IRepositoryFactory>().GenerateRepository <固定资产>()) { rep.BeginTransaction(); foreach (object i in list) { 非业务费用 fy_dw = new 非业务费用(); if (i is 固定资产) { 固定资产 item = i as 固定资产; if (item.Submitted) { continue; } fy_dw.费用实体 = item; fy_dw.收付标志 = Hd.Model.收付标志.付; fy_dw.相关人编号 = "900031"; fy_dw.费用项编号 = "387"; fy_dw.金额 = item.月折旧额; fy_dw.费用类别编号 = 186; new 非业务费用Dao().Save(rep, fy_dw); } else { System.Diagnostics.Debug.Assert(false, "费用实体类型不是要求类型,而是" + i.GetType().ToString()); } } rep.CommitTransaction(); } masterForm.DisplayManager.DisplayCurrent(); } }
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 static void 择固定资产(ArchiveOperationForm masterForm) { Dictionary <string, object> dict = new Dictionary <string, object>(); ArchiveCheckForm form = ProcessSelect.Execute((masterForm.ArchiveDetailForm as IDisplayManagerContainer).DisplayManager, "选择_非业务财务_固定资产折旧", dict); if (form != null) { IControlManager detailCm = (((IArchiveDetailFormWithDetailGrids)masterForm.ArchiveDetailForm).DetailGrids[0] as IArchiveGrid).ControlManager; using (var rep = ServiceProvider.GetService <IRepositoryFactory>().GenerateRepository <非业务费用>()) { foreach (object i in form.SelectedEntites) { 非业务费用 item = i as 非业务费用; item.对账单 = masterForm.DisplayManager.CurrentItem as 对账单; detailCm.AddNew(); detailCm.DisplayManager.Items[detailCm.DisplayManager.Position] = item; detailCm.EndEdit(); } //foreach (object i in form.SelectedEntites) //{ // 非业务费用 item = new 非业务费用(); // DataRowView row = i as DataRowView; // item.费用实体 = rep.Get<费用实体>((Guid)row["Id"]); // item.相关人编号 = masterForm.ControlManager.DisplayManager.DataControls["相关人编号"].SelectedDataValue.ToString(); // item.费用项编号 = "387"; // 固定资产折旧 // item.收付标志 = 收付标志.付; // detailCm.AddNew(); // detailCm.DisplayManager.Items[detailCm.DisplayManager.Position] = item; // detailCm.EndEdit(); //} } } }
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_非业务默认费用实体)); if (fy.费用实体 == null) { throw new ArgumentException("指定的非业务默认费用实体不存在!"); } 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.应收应付类型 == 应收应付类型.其他) { } } }
void 承兑汇票Bll_EntityOperating(object sender, OperateArgs <承兑汇票> e) { switch (e.OperateType) { case OperateType.Update: if (e.Entity.托收贴现.HasValue) { if (e.Entity.返回方式.HasValue) { e.Repository.Initialize(e.Entity.费用, e.Entity); if (e.Entity.费用.Count == 0) { decimal?txf = e.Entity.金额 - e.Entity.返回金额; if (!ServiceProvider.GetService <IMessageBox>().ShowYesNo("贴息费为" + txf.Value.ToString("N2") + "元,是否正确?", "确认")) { throw new InvalidUserOperationException("金额填写错误,请重新填写!"); } 非业务费用 fee = new 非业务费用(); fee.费用实体 = e.Entity; fee.费用项编号 = "333"; // 贴息费 fee.金额 = e.Entity.金额 - e.Entity.返回金额; fee.收付标志 = 收付标志.付; fee.相关人编号 = e.Entity.经办人编号; 凭证 pz = new 凭证(); pz.Submitted = true; pz.备注 = e.Entity.备注; pz.出纳编号 = SystemConfiguration.UserName; // e.Entity.返回经手人编号; pz.收支状态 = true; pz.会计编号 = SystemConfiguration.UserName; // e.Entity.返回经手人编号; pz.会计金额 = fee.金额; pz.金额.币制编号 = "CNY"; pz.金额.数额 = pz.会计金额.Value; pz.凭证类别 = 凭证类别.付款凭证; pz.日期 = e.Entity.返回时间.Value; pz.审核人编号 = null; pz.相关人编号 = fee.相关人编号; pz.自动手工标志 = 自动手工标志.承兑汇票; pz.凭证费用明细 = new List <凭证费用明细>(); pz.凭证收支明细 = new List <凭证收支明细>(); pz.审核状态 = true; 凭证费用明细 pzs1 = new 凭证费用明细(); pzs1.费用项编号 = "333"; pzs1.金额 = pz.会计金额; pzs1.凭证 = pz; pzs1.收付标志 = 收付标志.付; pzs1.相关人编号 = pz.相关人编号; pzs1.费用 = new List <费用>(); pzs1.费用.Add(fee); fee.凭证费用明细 = pzs1; pz.凭证费用明细.Add(pzs1); 凭证收支明细 pzs2 = new 凭证收支明细(); pzs2.凭证 = pz; pzs2.金额 = e.Entity.金额; pzs2.收付标志 = 收付标志.付; pzs2.收付款方式 = 收付款方式.银行承兑汇票; pzs2.票据号码 = e.Entity.票据号码; pz.凭证收支明细.Add(pzs2); 凭证收支明细 pzs3 = new 凭证收支明细(); pzs3.凭证 = pz; pzs3.金额 = e.Entity.返回金额; pzs3.收付标志 = 收付标志.收; if (e.Entity.返回方式.Value == 承兑汇票返回方式.银行) { pzs3.收付款方式 = 收付款方式.银行收付; pzs3.银行账户编号 = e.Entity.入款账户编号; } else { pzs3.收付款方式 = 收付款方式.现金; } pz.凭证收支明细.Add(pzs3); (new HdBaseDao <凭证>()).Save(e.Repository, pz); (new HdBaseDao <凭证费用明细>()).Save(e.Repository, pzs1); (new HdBaseDao <凭证收支明细>()).Save(e.Repository, pzs2); (new HdBaseDao <凭证收支明细>()).Save(e.Repository, pzs3); (new 非业务费用Dao()).Save(e.Repository, fee); e.Entity.费用.Add(fee); } } else { e.Repository.Initialize(e.Entity.费用, e.Entity); System.Diagnostics.Debug.Assert(e.Entity.费用.Count <= 1, "承兑汇票费用只有贴息费一项!"); if (e.Entity.费用.Count == 1) { 非业务费用 fee = e.Entity.费用[0] as 非业务费用; 凭证费用明细 pzs1 = fee.凭证费用明细; if (pzs1 != null) { 凭证 pz = pzs1.凭证; e.Repository.Initialize(pz.凭证收支明细, pz); foreach (凭证收支明细 pzs2 in pz.凭证收支明细) { (new HdBaseDao <凭证收支明细>()).Delete(e.Repository, pzs2); } pz.Submitted = false; pz.是否作废 = true; pz.审核状态 = false; pz.收支状态 = false; (new HdBaseDao <凭证>()).Update(e.Repository, pz); (new HdBaseDao <凭证费用明细>()).Update(e.Repository, pzs1); } fee.凭证费用明细 = null; (new 非业务费用Dao()).Delete(e.Repository, fee); e.Entity.费用.Remove(e.Entity.费用[0]); } } } break; } }