Esempio n. 1
0
        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);
                    }
                }
            }
        }
Esempio n. 2
0
        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("您选择的费用项和收付有误,请重新选择!");
                    }
                }
            }
        }
Esempio n. 3
0
        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.应收应付类型 == 应收应付类型.其他)
                {
                }
            }
        }
Esempio n. 4
0
        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 + "条费用!");
        }