コード例 #1
0
ファイル: APFlowBLL.cs プロジェクト: hijoy/VSL_ERS
        //启动流程
        public void ApplyForm(APHelper AP, FormTableAdapter FormTA, int? RejectedFormID, FormDS.FormRow formRow, int OrganizationUnitID, string ProcessTemplateName, SystemEnums.FormStatus StatusID, Dictionary<string, object> map)
        {
            string email = string.Empty;
            if (StatusID == SystemEnums.FormStatus.Awaiting) {

                string ProcID = AP.createProcess(formRow.FormNo + ":" + DateTime.Now.ToString(), ProcessTemplateName, map);
                formRow.ProcID = ProcID;

                String inTurnStr = AP.startProcess(ProcID, OrganizationUnitID, ref email, formRow.UserID.ToString(), new AuthorizationBLL().GetStuffUserById(formRow.UserID).StuffName);

                string[] InTurn = inTurnStr.Split('&');//不同流程角色下的人员和职位
                string ids = "";
                string pids = "";
                for (int a = 0; a < InTurn.Length; a++) {
                    ids += InTurn[a].Split('$')[0].ToString();///人员
                    pids += InTurn[a].Split('$')[1].ToString();//职位
                }
                formRow.InTurnUserIds = ids;//下一步的人员
                formRow.InTurnPositionIds = pids;//下一步的人员职位
                formRow.StatusID = (int)SystemEnums.FormStatus.Awaiting;
                FormTA.Update(formRow);
            }

            //作废之前的单据
            if (RejectedFormID != null) {
                FormDS.FormRow oldRow = FormTA.GetDataByID(RejectedFormID.GetValueOrDefault())[0];
                if (oldRow.StatusID == (int)SystemEnums.FormStatus.Rejected) {
                    ScrapForm(oldRow.FormID);
                }
            }
        }
コード例 #2
0
ファイル: CommonUtility.cs プロジェクト: hijoy/VSL_ERS
 public static APHelper GetAPHelper(System.Web.SessionState.HttpSessionState session)
 {
     if (session["APHelper"] != null) {
         return (APHelper)session["APHelper"];
     } else {
         APHelper ap = new APHelper();
         session["APHelper"] = ap;
         return ap;
     }
 }
コード例 #3
0
ファイル: GetApprovalInfo.cs プロジェクト: hijoy/CPL_ERS
    public XmlDocument GetApprovalInfoByFormID(int FormID)
    {
        MasterData myDS = new MasterData();
        MasterData.ApprovalInfoDataTable tbApprovalInfo = myDS.ApprovalInfo;
        AuthorizationDS.PositionDataTable tbPosition = null;
        int index = 1;

        AuthorizationBLL authBLL = new AuthorizationBLL();
        OUTreeBLL ouBLL = new OUTreeBLL();

        MasterData.ApprovalInfoRow rowApprovalInfo = tbApprovalInfo.NewApprovalInfoRow();

        FormDS.FormRow rowForm = new FormSaleBLL().GetFormByID(FormID)[0];
        rowApprovalInfo.ApprovalInfoID = index++;
        rowApprovalInfo.StuffName = authBLL.GetStuffUserById(rowForm.UserID).StuffName;
        rowApprovalInfo.ApprovalDate = rowForm.SubmitDate.ToString("yyyy-MM-dd HH:mm");
        rowApprovalInfo.Position = ouBLL.GetPositionById(rowForm.PositionID).PositionName;
        rowApprovalInfo.Comment = "";
        rowApprovalInfo.Status = "Submit";
        tbApprovalInfo.AddApprovalInfoRow(rowApprovalInfo);

        if (!rowForm.IsProcIDNull()) {
            APWorkFlow.NodeStatusDataTable nodeTable = new APHelper().getApprovalStatus(rowForm.ProcID);
            foreach (APWorkFlow.NodeStatusRow item in nodeTable) {
                if ((!item.IsSTATUSNull()) && item.STATUS != "ASSIGNED") {
                    rowApprovalInfo = tbApprovalInfo.NewApprovalInfoRow();
                    item.PARTICIPANT = item.PARTICIPANT.Replace("PP", "P");
                    rowApprovalInfo.ApprovalInfoID = index++;
                    int i = 0;
                    foreach (var userid in item.PARTICIPANT.Split('$')[0].Split('P')) {

                        if ((!string.IsNullOrEmpty(userid)) && authBLL.GetStuffUserById(int.Parse(userid)).StuffName.Trim().Equals(item.APPROVED_BY)) {
                            tbPosition = ouBLL.GetPositionsByID(int.Parse(item.PARTICIPANT.Split('$')[1].Split('P')[i]));
                            rowApprovalInfo.Position = tbPosition.Count > 0 ? tbPosition[0].PositionName : "";
                            break;
                        }
                        i++;
                    }
                    rowApprovalInfo.StuffName = item.APPROVED_BY;
                    rowApprovalInfo.ApprovalDate = item.IsCOMPLETED_DATENull() ? "" : item.COMPLETED_DATE;

                    rowApprovalInfo.Comment = item.IsCOMMENTSNull() ? "" : item.COMMENTS;
                    rowApprovalInfo.Status = item.IsSTATUSNull() ? "" : item.STATUS;
                    tbApprovalInfo.AddApprovalInfoRow(rowApprovalInfo);
                }
            }
        }

        return new XmlDataDocument(myDS);
    }
コード例 #4
0
ファイル: SalesReimburseBLL.cs プロジェクト: hijoy/VSL_ERS
        public void AddFormReimburseMoney(int? RejectedFormID, int UserID, int? ProxyUserID, int? ProxyPositionID, int OrganizationUnitID, int PositionID, SystemEnums.FormType FormTypeID,
                SystemEnums.FormStatus StatusID, int CustomerID, int PaymentTypeID, string AttachedFileName, string RealAttachedFileName, string Remark, string FormApplyIds, string FormApplyNos, string FlowTemplate)
        {
            SqlTransaction transaction = null;
            try {
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormReimburse, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormReimburseDetail, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormReimburseInvoice, transaction);
                TableAdapterHelper.SetTransaction(this.TAPKRecord, transaction);

                FormDS.FormRow formRow = this.FormDataSet.Form.NewFormRow();
                if (RejectedFormID != null) {
                    formRow.RejectedFormID = RejectedFormID.GetValueOrDefault();
                }
                formRow.UserID = UserID;
                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                } else {
                    formRow.SetFormNoNull();
                }
                if (ProxyUserID != null) {
                    formRow.ProxyUserID = ProxyUserID.GetValueOrDefault();
                }
                if (ProxyPositionID != null) {
                    formRow.ProxyPositionID = ProxyPositionID.GetValueOrDefault();
                }
                formRow.OrganizationUnitID = OrganizationUnitID;
                formRow.PositionID = PositionID;
                formRow.FormTypeID = (int)FormTypeID;
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;
                formRow.InTurnUserIds = "P";//待改动
                formRow.InTurnPositionIds = "P";//待改动
                formRow.PageType = (int)SystemEnums.PageType.ReimburseMoneyApply;
                this.FormDataSet.Form.AddFormRow(formRow);
                this.TAForm.Update(formRow);
                //处理PKRecord,如果提交才需要锁定
                if (PaymentTypeID == (int)SystemEnums.PaymentType.PiaoKou && StatusID == SystemEnums.FormStatus.Awaiting) {
                    TAPKRecord.LockPKRecord(formRow.FormID, FormApplyNos);
                }
                //处理申请表的内容
                FormDS.FormReimburseRow FormReimburseRow = this.FormDataSet.FormReimburse.NewFormReimburseRow();
                FormReimburseRow.FormReimburseID = formRow.FormID;
                FormReimburseRow.CustomerID = CustomerID;
                FormReimburseRow.PaymentTypeID = PaymentTypeID;
                FormReimburseRow.Amount = 0;//默认值
                if (AttachedFileName != null && AttachedFileName != string.Empty) {
                    FormReimburseRow.AttachedFileName = AttachedFileName;
                }
                if (RealAttachedFileName != null && RealAttachedFileName != string.Empty) {
                    FormReimburseRow.RealAttachedFileName = RealAttachedFileName;
                }
                if (Remark != null && Remark != string.Empty) {
                    FormReimburseRow.Remark = Remark;
                }
                FormReimburseRow.FormApplyIds = FormApplyIds;
                FormReimburseRow.FormApplyNos = FormApplyNos;
                FormReimburseRow.IsDeliveryComplete = false;
                this.FormDataSet.FormReimburse.AddFormReimburseRow(FormReimburseRow);
                this.TAFormReimburse.Update(FormReimburseRow);

                //发票
                if (RejectedFormID != null) {
                    FormDS.FormReimburseInvoiceDataTable newInvoiceTable = new FormDS.FormReimburseInvoiceDataTable();
                    foreach (FormDS.FormReimburseInvoiceRow invoiceRow in this.FormDataSet.FormReimburseInvoice) {
                        if (invoiceRow.RowState != DataRowState.Deleted) {
                            FormDS.FormReimburseInvoiceRow newInvoiceRow = newInvoiceTable.NewFormReimburseInvoiceRow();
                            newInvoiceRow.FormReimburseID = FormReimburseRow.FormReimburseID;
                            newInvoiceRow.InvoiceNo = invoiceRow.InvoiceNo;
                            newInvoiceRow.InvoiceAmount = invoiceRow.InvoiceAmount;
                            newInvoiceRow.Remark = invoiceRow.IsRemarkNull() ? "" : invoiceRow.Remark;
                            newInvoiceRow.SystemInfo = invoiceRow.IsSystemInfoNull() ? "" : invoiceRow.SystemInfo;
                            newInvoiceTable.AddFormReimburseInvoiceRow(newInvoiceRow);
                        }
                        this.TAFormReimburseInvoice.Update(newInvoiceTable);
                    }
                } else {
                    foreach (FormDS.FormReimburseInvoiceRow invoiceRow in this.FormDataSet.FormReimburseInvoice) {
                        // 与父表绑定
                        if (invoiceRow.RowState != DataRowState.Deleted) {
                            invoiceRow.FormReimburseID = FormReimburseRow.FormReimburseID;
                        }
                    }
                }
                this.TAFormReimburseInvoice.Update(this.FormDataSet.FormReimburseInvoice);

                //明细表
                decimal totalAmount = 0;//计算总申请金额
                decimal totalTaxAmount = 0;//总税金
                FormDS.FormReimburseDetailDataTable newDetailTable = new FormDS.FormReimburseDetailDataTable();
                foreach (FormDS.FormReimburseDetailRow detailRow in this.FormDataSet.FormReimburseDetail) {
                    // 与父表绑定
                    if (detailRow.RowState != DataRowState.Deleted) {
                        totalAmount += detailRow.Amount;
                        totalTaxAmount += detailRow.IsTaxAmountNull() ? 0 : detailRow.TaxAmount;
                        FormDS.FormReimburseDetailRow newDetailRow = newDetailTable.NewFormReimburseDetailRow();
                        newDetailRow.FormReimburseID = FormReimburseRow.FormReimburseID;
                        newDetailRow.FormApplyExpenseDetailID = detailRow.FormApplyExpenseDetailID;
                        newDetailRow.ApplyFormNo = detailRow.ApplyFormNo;
                        newDetailRow.ApplyPeriod = detailRow.ApplyPeriod;
                        newDetailRow.ShopID = detailRow.ShopID;
                        newDetailRow.SKUID = detailRow.SKUID;
                        newDetailRow.ExpenseItemID = detailRow.ExpenseItemID;
                        newDetailRow.ApplyAmount = detailRow.ApplyAmount;
                        newDetailRow.RemainAmount = detailRow.RemainAmount;
                        newDetailRow.Amount = detailRow.Amount;
                        newDetailRow.TaxAmount = detailRow.IsTaxAmountNull() ? 0 : detailRow.TaxAmount;
                        newDetailRow.PrePaidAmount = detailRow.IsPrePaidAmountNull() ? 0 : detailRow.PrePaidAmount;
                        newDetailRow.ApplyPaymentTypeID = detailRow.ApplyPaymentTypeID;
                        newDetailRow.FormApplyID = detailRow.FormApplyID;
                        newDetailRow.AccruedAmount = detailRow.IsAccruedAmountNull() ? 0 : detailRow.AccruedAmount;
                        newDetailTable.AddFormReimburseDetailRow(newDetailRow);
                    }
                }
                this.TAFormReimburseDetail.Update(newDetailTable);
                FormReimburseRow.Amount = totalAmount;
                FormReimburseRow.TaxAmount = totalTaxAmount;
                this.TAFormReimburse.Update(FormReimburseRow);

                //作废之前的单据
                if (RejectedFormID != null) {
                    FormDS.FormRow oldRow = this.TAForm.GetDataByID(RejectedFormID.GetValueOrDefault())[0];
                    if (oldRow.StatusID == (int)SystemEnums.FormStatus.Rejected) {
                        oldRow.StatusID = (int)SystemEnums.FormStatus.Scrap;
                        this.TAForm.Update(oldRow);
                    }
                }

                // 正式提交或草稿
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    Dictionary<string, object> dic = new Dictionary<string, object>();
                    dic["Apply_Amount"] = totalAmount + totalTaxAmount;
                    //dic["Dept"] = new AuthorizationDSTableAdapters.OrganizationUnitTableAdapter().GetOrganizationUnitCodeByOrganizationUnitID(formRow.OrganizationUnitID)[0].OrganizationUnitCode;
                    dic["Expense_Category"] = getExpenseCategoryIDByFormID(int.Parse(FormApplyIds.Split(',')[0])).ToString();//此处待改动
                    APHelper AP = new APHelper();
                    new APFlowBLL().ApplyForm(AP, TAForm, null, formRow, formRow.OrganizationUnitID, FlowTemplate, StatusID, dic);
                }
                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException("Save Fail!" + ex.ToString());
            } finally {
                transaction.Dispose();
            }
        }
コード例 #5
0
        public void AddFormPersonalReimburse(int? RejectedFormID, int UserID, int? ProxyUserID, int? ProxyPositionID, int OrganizationUnitID, int PositionID, SystemEnums.FormType FormTypeID,
                SystemEnums.FormStatus StatusID, DateTime? Period, string Remark, string AttachedFileName, string RealAttachedFileName, string FlowTemplate)
        {
            SqlTransaction transaction = null;
            try {
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormPersonalReimburse, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormPersonalReimburseDetail, transaction);

                FormDS.FormRow formRow = this.FormDataSet.Form.NewFormRow();
                if (RejectedFormID != null) {
                    formRow.RejectedFormID = RejectedFormID.GetValueOrDefault();
                }
                formRow.UserID = UserID;
                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                } else {
                    formRow.SetFormNoNull();
                }
                if (ProxyUserID != null) {
                    formRow.ProxyUserID = ProxyUserID.GetValueOrDefault();
                }
                if (ProxyPositionID != null) {
                    formRow.ProxyPositionID = ProxyPositionID.GetValueOrDefault();
                }
                formRow.OrganizationUnitID = OrganizationUnitID;
                formRow.PositionID = PositionID;
                formRow.FormTypeID = (int)FormTypeID;
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;
                formRow.InTurnUserIds = "P";//待改动
                formRow.InTurnPositionIds = "P";//待改动
                formRow.PageType = (int)SystemEnums.PageType.PersonalReimburseApply;
                this.FormDataSet.Form.AddFormRow(formRow);
                this.TAForm.Update(formRow);

                //处理申请表的内容
                FormDS.FormPersonalReimburseRow formPersonalReimburseRow = this.FormDataSet.FormPersonalReimburse.NewFormPersonalReimburseRow();
                formPersonalReimburseRow.FormPersonalReimburseID = formRow.FormID;
                formPersonalReimburseRow.Period = Period.GetValueOrDefault();
                formPersonalReimburseRow.Amount = decimal.Zero;
                formPersonalReimburseRow.Remark = Remark;

                decimal[] calculateAssistant = this.GetPersonalBudgetByParameter(PositionID, Period);
                formPersonalReimburseRow.TotalBudget = calculateAssistant[0];
                formPersonalReimburseRow.ApprovedAmount = calculateAssistant[1];
                formPersonalReimburseRow.ApprovingAmount = calculateAssistant[2];
                formPersonalReimburseRow.RemainAmount = calculateAssistant[3];
                if (AttachedFileName != null) {
                    formPersonalReimburseRow.AttachedFileName = AttachedFileName;
                }
                if (RealAttachedFileName != null) {
                    formPersonalReimburseRow.RealAttachedFileName = RealAttachedFileName;
                }

                this.FormDataSet.FormPersonalReimburse.AddFormPersonalReimburseRow(formPersonalReimburseRow);
                this.TAFormPersonalReimburse.Update(formPersonalReimburseRow);

                //明细表
                decimal totalAmount = 0;//计算总申请金额

                if (RejectedFormID != null) {
                    FormDS.FormPersonalReimburseDetailDataTable newDetailTable = new FormDS.FormPersonalReimburseDetailDataTable();
                    foreach (FormDS.FormPersonalReimburseDetailRow detailRow in this.FormDataSet.FormPersonalReimburseDetail) {
                        if (detailRow.RowState != System.Data.DataRowState.Deleted) {
                            FormDS.FormPersonalReimburseDetailRow newDetailRow = newDetailTable.NewFormPersonalReimburseDetailRow();
                            newDetailRow.FormPersonalReimburseID = formPersonalReimburseRow.FormPersonalReimburseID;
                            newDetailRow.OccurDate = detailRow.OccurDate;
                            newDetailRow.ExpenseManageTypeID = detailRow.ExpenseManageTypeID;
                            newDetailRow.Amount = detailRow.Amount;
                            newDetailRow.RealAmount = detailRow.RealAmount;
                            if (!detailRow.IsRemarkNull()) {
                                newDetailRow.Remark = detailRow.Remark;
                            }
                            totalAmount += newDetailRow.Amount;
                            newDetailTable.AddFormPersonalReimburseDetailRow(newDetailRow);
                        }
                    }
                    this.TAFormPersonalReimburseDetail.Update(newDetailTable);
                } else {
                    foreach (FormDS.FormPersonalReimburseDetailRow detailRow in this.FormDataSet.FormPersonalReimburseDetail) {
                        // 与父表绑定
                        if (detailRow.RowState != DataRowState.Deleted) {
                            detailRow.FormPersonalReimburseID = formPersonalReimburseRow.FormPersonalReimburseID;
                            totalAmount += detailRow.Amount;
                        }
                    }
                    this.TAFormPersonalReimburseDetail.Update(this.FormDataSet.FormPersonalReimburseDetail);
                }

                formPersonalReimburseRow.Amount = totalAmount;
                this.TAFormPersonalReimburse.Update(formPersonalReimburseRow);

                // 正式提交或草稿
                Dictionary<string, object> dic = new Dictionary<string, object>();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    //如果申请总额大于可用余额,不能提交
                    if (formPersonalReimburseRow.Amount > calculateAssistant[3]) {//如果是减少预算,要做检查
                        throw new ApplicationException("申请报销总额超出部门可用余额,不能提交!");
                    }

                    dic["Apply_Amount"] = totalAmount;//金额
                    AuthorizationDS.OrganizationUnitDataTable OUTable = new AuthorizationDSTableAdapters.OrganizationUnitTableAdapter().GetOrganizationUnitCodeByOrganizationUnitID(formRow.OrganizationUnitID);
                    if (OUTable.Count == 0) {
                        throw new ApplicationException("没有找到您所在部门的流程,请联系管理员");
                    }
                    dic["Department"] = OUTable[0].OrganizationUnitCode;
                    APHelper AP = new APHelper();
                    new APFlowBLL().ApplyForm(AP, TAForm, RejectedFormID, formRow, OrganizationUnitID, FlowTemplate, StatusID, dic);
                }
                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException(ex.Message);
            } finally {
                transaction.Dispose();
            }
        }
コード例 #6
0
ファイル: SalesApplyBLL.cs プロジェクト: hijoy/VSL_ERS
        public void AddFormApplyRebate(int? RejectedFormID, int UserID, int? ProxyUserID, int? ProxyPositionID, int OrganizationUnitID, int PositionID, SystemEnums.FormType FormTypeID, SystemEnums.FormStatus StatusID,
                        DateTime BeginPeriod, DateTime EndPeriod, int CustomerID, int ShopID, int PaymentTypeID, int ExpenseSubCategoryID, string ContractNo, decimal? CustomerBudget,
                        decimal? CustomerBudgetRemain, decimal? OUBudget, decimal? OUAppovedAmount, decimal? OUApprovingAmount, decimal? OUCompletedAmount, decimal? OUReimbursedAmount, decimal? OUBudgetRemain,
                        decimal? OUBudgetRate, string AttachedFileName, string RealAttachedFileName, string Remark, string FlowTemplate, string FormApplyName)
        {
            SqlTransaction transaction = null;

            try {
                //事务开始
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormApply, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormApplySKUDetail, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormApplyExpenseDetail, transaction);

                //处理单据的内容
                FormDS.FormRow formRow = this.FormDataSet.Form.NewFormRow();
                if (RejectedFormID != null) {
                    formRow.RejectedFormID = RejectedFormID.GetValueOrDefault();
                }
                formRow.UserID = UserID;

                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                } else {
                    formRow.SetFormNoNull();
                }

                if (ProxyUserID != null) {
                    formRow.ProxyUserID = ProxyUserID.GetValueOrDefault();
                }
                if (ProxyPositionID != null) {
                    formRow.ProxyPositionID = ProxyPositionID.GetValueOrDefault();
                }
                formRow.OrganizationUnitID = OrganizationUnitID;
                formRow.PositionID = PositionID;
                formRow.FormTypeID = (int)FormTypeID;
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;
                formRow.InTurnUserIds = "P";//待改动
                formRow.InTurnPositionIds = "P";//待改动
                formRow.PageType = (int)SystemEnums.PageType.RebateApply;
                this.FormDataSet.Form.AddFormRow(formRow);
                this.TAForm.Update(formRow);

                //处理申请表的内容
                FormDS.FormApplyRow formApplyRow = this.FormDataSet.FormApply.NewFormApplyRow();
                formApplyRow.FormApplyID = formRow.FormID;
                formApplyRow.Period = DateTime.Parse(BeginPeriod.Year.ToString() + "-" + BeginPeriod.Month.ToString() + "-01");
                formApplyRow.BeginPeriod = DateTime.Parse(BeginPeriod.Year.ToString() + "-" + BeginPeriod.Month.ToString() + "-01");
                formApplyRow.EndPeriod = DateTime.Parse(EndPeriod.Year.ToString() + "-" + EndPeriod.Month.ToString() + "-01");
                formApplyRow.ShopID = ShopID;
                formApplyRow.CustomerID = CustomerID;
                formApplyRow.PaymentTypeID = PaymentTypeID;
                formApplyRow.ExpenseSubCategoryID = ExpenseSubCategoryID;
                if (ContractNo != "") {
                    formApplyRow.ContractNo = ContractNo;
                }
                if (CustomerBudget != null) {
                    formApplyRow.CustomerBudget = CustomerBudget.GetValueOrDefault();
                }
                if (CustomerBudgetRemain != null) {
                    formApplyRow.CustomerBudgetRemain = CustomerBudgetRemain.GetValueOrDefault();
                }
                if (OUBudget != null) {
                    formApplyRow.OUBudget = OUBudget.GetValueOrDefault();
                }
                if (OUAppovedAmount != null) {
                    formApplyRow.OUAppovedAmount = OUAppovedAmount.GetValueOrDefault();
                }
                if (OUApprovingAmount != null) {
                    formApplyRow.OUApprovingAmount = OUApprovingAmount.GetValueOrDefault();
                }
                if (OUCompletedAmount != null) {
                    formApplyRow.OUCompletedAmount = OUCompletedAmount.GetValueOrDefault();
                }
                if (OUReimbursedAmount != null) {
                    formApplyRow.OUReimbursedAmount = OUReimbursedAmount.GetValueOrDefault();
                }
                if (OUBudgetRemain != null) {
                    formApplyRow.OUBudgetRemain = OUBudgetRemain.GetValueOrDefault();
                }
                if (OUBudgetRate != null) {
                    formApplyRow.OUBudgetRate = OUBudgetRate.GetValueOrDefault();
                }
                if (AttachedFileName != null && AttachedFileName != string.Empty) {
                    formApplyRow.AttachedFileName = AttachedFileName;
                }
                if (RealAttachedFileName != null && RealAttachedFileName != string.Empty) {
                    formApplyRow.RealAttachedFileName = RealAttachedFileName;
                }
                if (Remark != null && Remark != string.Empty) {
                    formApplyRow.Remark = Remark;
                }

                formApplyRow.Amount = 0;//先赋默认值
                formApplyRow.IsClose = false;
                formApplyRow.IsComplete = false;
                formApplyRow.IsAutoSplit = false;

                formApplyRow.FormApplyName = FormApplyName;
                this.FormDataSet.FormApply.AddFormApplyRow(formApplyRow);
                this.TAFormApply.Update(formApplyRow);

                //处理明细
                decimal totalAmount = 0;//计算总申请金额
                //处理子表
                foreach (FormDS.FormApplyDetailViewRow viewRow in this.FormDataSet.FormApplyDetailView) {
                    if (viewRow.RowState != DataRowState.Deleted) {
                        FormDS.FormApplySKUDetailRow skuRow = this.FormDataSet.FormApplySKUDetail.NewFormApplySKUDetailRow();
                        skuRow.FormApplyID = formApplyRow.FormApplyID;
                        skuRow.SKUID = viewRow.SKUID;
                        if (!viewRow.IsSalesAmountNull()) {
                            skuRow.SalesAmount = viewRow.SalesAmount;
                        }
                        this.FormDataSet.FormApplySKUDetail.AddFormApplySKUDetailRow(skuRow);
                        this.TAFormApplySKUDetail.Update(skuRow);

                        FormDS.FormApplyExpenseDetailRow expenseRow = this.FormDataSet.FormApplyExpenseDetail.NewFormApplyExpenseDetailRow();
                        expenseRow.FormApplySKUDetailID = skuRow.FormApplySKUDetailID;
                        expenseRow.ExpenseItemID = viewRow.ExpenseItemID;
                        expenseRow.Amount = viewRow.Amount;
                        this.FormDataSet.FormApplyExpenseDetail.AddFormApplyExpenseDetailRow(expenseRow);
                        this.TAFormApplyExpenseDetail.Update(expenseRow);

                        totalAmount += viewRow.Amount;
                    }
                }
                formApplyRow.Amount = totalAmount;
                TAFormApply.Update(formApplyRow);

                // 正式提交或草稿

                Dictionary<string, object> dic = new Dictionary<string, object>();
                dic["Apply_Amount"] = totalAmount;
                // dic["Dept"] = new AuthorizationDSTableAdapters.OrganizationUnitTableAdapter().GetOrganizationUnitCodeByOrganizationUnitID(formRow.OrganizationUnitID)[0].OrganizationUnitCode;
                dic["Expense_Category"] = getExpenseCategoryIDByExpenseSubCategoryID(formApplyRow.ExpenseSubCategoryID).ToString();//此处待改动
                APHelper AP = new APHelper();
                new APFlowBLL().ApplyForm(AP, TAForm, null, formRow, formRow.OrganizationUnitID, FlowTemplate, StatusID, dic);

                transaction.Commit();
            } catch (ApplicationException ex) {
                transaction.Rollback();
                throw ex;
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException("Save Fail!" + ex.ToString());
            } finally {
                transaction.Dispose();
            }
        }
コード例 #7
0
ファイル: SalesApplyBLL.cs プロジェクト: hijoy/VSL_ERS
        public void UpdateFormApplyGeneral(int FormID, SystemEnums.FormStatus StatusID, SystemEnums.FormType FormTypeID, int ShopID, int PaymentTypeID, string ContractNo, DateTime PromotionBeginDate,
                        DateTime PromotionEndDate, int PromotionScopeID, int PromotionTypeID, string PromotionDesc, int ShelfTypeID, int? FirstVolume, int? SecondVolume, int? ThirdVolume, int? EstimatedSaleVolume,
                        decimal? CustomerBudget, decimal? CustomerBudgetRemain, decimal? OUBudget, decimal? OUAppovedAmount, decimal? OUApprovingAmount, decimal? OUCompletedAmount, decimal? OUReimbursedAmount,
                        decimal? OUBudgetRemain, decimal? OUBudgetRate, string AttachedFileName, string RealAttachedFileName, string Remark, int ReimburseRequirements, string FlowTemplate, string FormApplyName)
        {
            SqlTransaction transaction = null;

            try {
                //事务开始
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormApply, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormApplySKUDetail, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormApplyExpenseDetail, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormApplySplitRate, transaction);

                FormDS.FormRow formRow = this.TAForm.GetDataByID(FormID)[0];
                FormDS.FormApplyRow formApplyRow = this.TAFormApply.GetDataByID(FormID)[0];

                //处理单据的内容
                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                    formRow.InTurnUserIds = "P";//待改动
                    formRow.InTurnPositionIds = "P";//待改动
                } else {
                    formRow.SetFormNoNull();
                }
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;
                //申请单内容
                formApplyRow.ShopID = ShopID;
                formApplyRow.PaymentTypeID = PaymentTypeID;
                if (ContractNo != "") {
                    formApplyRow.ContractNo = ContractNo;
                }
                formApplyRow.PromotionBeginDate = PromotionBeginDate;
                formApplyRow.PromotionEndDate = PromotionEndDate;
                formApplyRow.PromotionScopeID = PromotionScopeID;
                formApplyRow.PromotionTypeID = PromotionTypeID;
                if (PromotionDesc != "") {
                    formApplyRow.PromotionDesc = PromotionDesc;
                }
                formApplyRow.ShelfTypeID = ShelfTypeID;
                if (FirstVolume != null) {
                    formApplyRow.FirstVolume = FirstVolume.GetValueOrDefault();
                }
                if (SecondVolume != null) {
                    formApplyRow.SecondVolume = SecondVolume.GetValueOrDefault();
                }
                if (ThirdVolume != null) {
                    formApplyRow.ThirdVolume = ThirdVolume.GetValueOrDefault();
                }
                if (EstimatedSaleVolume != null) {
                    formApplyRow.PackageUnitPrice = EstimatedSaleVolume.GetValueOrDefault();
                }
                if (CustomerBudget != null) {
                    formApplyRow.CustomerBudget = CustomerBudget.GetValueOrDefault();
                }
                if (CustomerBudgetRemain != null) {
                    formApplyRow.CustomerBudgetRemain = CustomerBudgetRemain.GetValueOrDefault();
                }
                if (OUBudget != null) {
                    formApplyRow.OUBudget = OUBudget.GetValueOrDefault();
                }
                if (OUAppovedAmount != null) {
                    formApplyRow.OUAppovedAmount = OUAppovedAmount.GetValueOrDefault();
                }
                if (OUApprovingAmount != null) {
                    formApplyRow.OUApprovingAmount = OUApprovingAmount.GetValueOrDefault();
                }
                if (OUCompletedAmount != null) {
                    formApplyRow.OUCompletedAmount = OUCompletedAmount.GetValueOrDefault();
                }
                if (OUReimbursedAmount != null) {
                    formApplyRow.OUReimbursedAmount = OUReimbursedAmount.GetValueOrDefault();
                }
                if (OUBudgetRemain != null) {
                    formApplyRow.OUBudgetRemain = OUBudgetRemain.GetValueOrDefault();
                }
                if (OUBudgetRate != null) {
                    formApplyRow.OUBudgetRate = OUBudgetRate.GetValueOrDefault();
                }
                if (AttachedFileName != null && AttachedFileName != string.Empty) {
                    formApplyRow.AttachedFileName = AttachedFileName;
                }
                if (RealAttachedFileName != null && RealAttachedFileName != string.Empty) {
                    formApplyRow.RealAttachedFileName = RealAttachedFileName;
                }
                if (Remark != null && Remark != string.Empty) {
                    formApplyRow.Remark = Remark;
                }
                formApplyRow.FormApplyName = FormApplyName;
                formApplyRow.ReimburseRequirements = ReimburseRequirements;

                this.TAForm.Update(formRow);
                this.TAFormApply.Update(formApplyRow);

                ArrayList deletedSKURows = new ArrayList();//save sku rows and expense rows that not deleted
                decimal totalAmount = 0;//计算总申请金额
                //先删除所有明细记录
                //FormDS.FormApplyExpenseDetailDataTable deleteExpenseTable = this.TAFormApplyExpenseDetail.GetDataByFormApplyID(formApplyRow.FormApplyID);
                //foreach (FormDS.FormApplyExpenseDetailRow deleteExpenseRow in deleteExpenseTable) {
                //    deleteExpenseRow.Delete();
                //}
                //this.TAFormApplyExpenseDetail.Update(deleteExpenseTable);

                //FormDS.FormApplySKUDetailDataTable deleteSKUTable = this.TAFormApplySKUDetail.GetDataByFormApplyID(formApplyRow.FormApplyID);
                //foreach (FormDS.FormApplySKUDetailRow deleteSKURow in deleteSKUTable) {
                //    deleteSKURow.Delete();
                //}
                //this.TAFormApplySKUDetail.Update(deleteSKUTable);

                this.TAFormApplyExpenseDetail.DeleteByFormApplyID(FormID);
                this.TAFormApplySKUDetail.DeleteByFormApplyID(FormID);

                //再插入新的表
                foreach (FormDS.FormApplyDetailViewRow viewRow in this.FormDataSet.FormApplyDetailView) {
                    if (viewRow.RowState != DataRowState.Deleted) {
                        FormDS.FormApplySKUDetailRow skuRow = this.FormDataSet.FormApplySKUDetail.NewFormApplySKUDetailRow();
                        skuRow.FormApplyID = formApplyRow.FormApplyID;
                        skuRow.SKUID = viewRow.SKUID;
                        skuRow.Remark = viewRow.Remark;
                        this.FormDataSet.FormApplySKUDetail.AddFormApplySKUDetailRow(skuRow);
                        this.TAFormApplySKUDetail.Update(skuRow);

                        FormDS.FormApplyExpenseDetailRow expenseRow = this.FormDataSet.FormApplyExpenseDetail.NewFormApplyExpenseDetailRow();
                        expenseRow.FormApplySKUDetailID = skuRow.FormApplySKUDetailID;
                        expenseRow.ExpenseItemID = viewRow.ExpenseItemID;
                        expenseRow.Amount = viewRow.Amount;
                        expenseRow.RepeatFormInfo = UtilityBLL.GenerateRepeatFormStr(this.TAForm.GetRepeatFormApplyNo(formApplyRow.PromotionBeginDate, formApplyRow.PromotionEndDate, expenseRow.ExpenseItemID, formApplyRow.ShopID, formApplyRow.FormApplyID));
                        this.FormDataSet.FormApplyExpenseDetail.AddFormApplyExpenseDetailRow(expenseRow);
                        this.TAFormApplyExpenseDetail.Update(expenseRow);

                        totalAmount += viewRow.Amount;
                    }
                }

                this.TAFormApplySplitRate.Update(FormDataSet.FormApplySplitRate);

                formApplyRow.Amount = totalAmount;
                if (!formApplyRow.IsEstimatedSaleVolumeNull()) {
                    formApplyRow.PackageUnitPrice = decimal.Round(formApplyRow.Amount / formApplyRow.EstimatedSaleVolume, 2);
                }
                this.TAFormApply.Update(formApplyRow);

                // 正式提交或草稿

                Dictionary<string, object> dic = new Dictionary<string, object>();
                dic["Apply_Amount"] = totalAmount;
                //  dic["Dept"] = new AuthorizationDSTableAdapters.OrganizationUnitTableAdapter().GetOrganizationUnitCodeByOrganizationUnitID(formRow.OrganizationUnitID)[0].OrganizationUnitCode;
                dic["Expense_Category"] = getExpenseCategoryIDByExpenseSubCategoryID(formApplyRow.ExpenseSubCategoryID).ToString();//此处待改动
                APHelper AP = new APHelper();
                new APFlowBLL().ApplyForm(AP, TAForm, null, formRow, formRow.OrganizationUnitID, FlowTemplate, StatusID, dic);

                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException("Save Fail!" + ex.ToString());
            } finally {
                transaction.Dispose();
            }
        }
コード例 #8
0
ファイル: SalesApplyBLL.cs プロジェクト: hijoy/VSL_ERS
        public void AddFormApply(int? RejectedFormID, int UserID, int? ProxyUserID, int? ProxyPositionID, int OrganizationUnitID, int PositionID, SystemEnums.FormType FormTypeID, SystemEnums.FormStatus StatusID,
                        DateTime BeginPeriod, DateTime EndPeriod, int CustomerID, int ShopID, int PaymentTypeID, int ExpenseSubCategoryID, string ContractNo, DateTime PromotionBeginDate, DateTime PromotionEndDate,
                        DateTime DeliveryBeginDate, DateTime DeliveryEndDate, int PromotionScopeID, int PromotionTypeID, string PromotionDesc, int ShelfTypeID, int? FirstVolume, int? SecondVolume, int? ThirdVolume,
                        decimal? CustomerBudget, decimal? CustomerBudgetRemain, decimal? OUBudget, decimal? OUAppovedAmount, decimal? OUApprovingAmount, decimal? OUCompletedAmount, decimal? OUReimbursedAmount, decimal? OUBudgetRemain, decimal? OUBudgetRate,
                        string AttachedFileName, string RealAttachedFileName, string Remark, int PromotionPriceType, int ReimburseRequirements, string FlowTemplate, string FormApplyName)
        {
            SqlTransaction transaction = null;

            try {
                ////事务开始
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormApply, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormApplySKUDetail, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormApplyExpenseDetail, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormApplySplitRate, transaction);

                //处理单据的内容
                FormDS.FormRow formRow = this.FormDataSet.Form.NewFormRow();
                if (RejectedFormID != null) {
                    formRow.RejectedFormID = RejectedFormID.GetValueOrDefault();
                }
                formRow.UserID = UserID;

                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                } else {
                    formRow.SetFormNoNull();
                }

                if (ProxyUserID != null) {
                    formRow.ProxyUserID = ProxyUserID.GetValueOrDefault();
                }
                if (ProxyPositionID != null) {
                    formRow.ProxyPositionID = ProxyPositionID.GetValueOrDefault();
                }
                formRow.OrganizationUnitID = OrganizationUnitID;
                formRow.PositionID = PositionID;
                formRow.FormTypeID = (int)FormTypeID;
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;
                formRow.InTurnUserIds = "P";//待改动
                formRow.InTurnPositionIds = "P";//待改动
                formRow.PageType = (int)SystemEnums.PageType.PromotionApply;
                this.FormDataSet.Form.AddFormRow(formRow);
                this.TAForm.Update(formRow);

                //处理申请表的内容
                FormDS.FormApplyRow formApplyRow = this.FormDataSet.FormApply.NewFormApplyRow();
                formApplyRow.FormApplyID = formRow.FormID;
                formApplyRow.Period = DateTime.Parse(BeginPeriod.Year.ToString() + "-" + BeginPeriod.Month.ToString() + "-01");
                formApplyRow.BeginPeriod = DateTime.Parse(BeginPeriod.Year.ToString() + "-" + BeginPeriod.Month.ToString() + "-01");
                formApplyRow.EndPeriod = DateTime.Parse(EndPeriod.Year.ToString() + "-" + EndPeriod.Month.ToString() + "-01");
                formApplyRow.ShopID = ShopID;
                formApplyRow.CustomerID = CustomerID;
                formApplyRow.PaymentTypeID = PaymentTypeID;
                formApplyRow.ExpenseSubCategoryID = ExpenseSubCategoryID;
                if (ContractNo != "") {
                    formApplyRow.ContractNo = ContractNo;
                }
                formApplyRow.PromotionBeginDate = PromotionBeginDate;
                formApplyRow.PromotionEndDate = PromotionEndDate;
                formApplyRow.DeliveryBeginDate = DeliveryBeginDate;
                formApplyRow.DeliveryEndDate = DeliveryEndDate;
                formApplyRow.PromotionScopeID = PromotionScopeID;
                formApplyRow.PromotionTypeID = PromotionTypeID;
                if (PromotionDesc != "") {
                    formApplyRow.PromotionDesc = PromotionDesc;
                }
                formApplyRow.ShelfTypeID = ShelfTypeID;
                if (FirstVolume != null) {
                    formApplyRow.FirstVolume = FirstVolume.GetValueOrDefault();
                }
                if (SecondVolume != null) {
                    formApplyRow.SecondVolume = SecondVolume.GetValueOrDefault();
                }
                if (ThirdVolume != null) {
                    formApplyRow.ThirdVolume = ThirdVolume.GetValueOrDefault();
                }
                if (CustomerBudget != null) {
                    formApplyRow.CustomerBudget = CustomerBudget.GetValueOrDefault();
                }
                if (CustomerBudgetRemain != null) {
                    formApplyRow.CustomerBudgetRemain = CustomerBudgetRemain.GetValueOrDefault();
                }
                if (OUBudget != null) {
                    formApplyRow.OUBudget = OUBudget.GetValueOrDefault();
                }
                if (OUAppovedAmount != null) {
                    formApplyRow.OUAppovedAmount = OUAppovedAmount.GetValueOrDefault();
                }
                if (OUApprovingAmount != null) {
                    formApplyRow.OUApprovingAmount = OUApprovingAmount.GetValueOrDefault();
                }
                if (OUCompletedAmount != null) {
                    formApplyRow.OUCompletedAmount = OUCompletedAmount.GetValueOrDefault();
                }
                if (OUReimbursedAmount != null) {
                    formApplyRow.OUReimbursedAmount = OUReimbursedAmount.GetValueOrDefault();
                }
                if (OUBudgetRemain != null) {
                    formApplyRow.OUBudgetRemain = OUBudgetRemain.GetValueOrDefault();
                }
                if (OUBudgetRate != null) {
                    formApplyRow.OUBudgetRate = OUBudgetRate.GetValueOrDefault();
                }
                if (AttachedFileName != null && AttachedFileName != string.Empty) {
                    formApplyRow.AttachedFileName = AttachedFileName;
                }
                if (RealAttachedFileName != null && RealAttachedFileName != string.Empty) {
                    formApplyRow.RealAttachedFileName = RealAttachedFileName;
                }
                if (Remark != null && Remark != string.Empty) {
                    formApplyRow.Remark = Remark;
                }
                formApplyRow.FormApplyName = FormApplyName;
                formApplyRow.PromotionPriceType = PromotionPriceType;
                formApplyRow.ReimburseRequirements = ReimburseRequirements;

                formApplyRow.Amount = 0;//先赋默认值
                formApplyRow.IsClose = false;
                formApplyRow.IsComplete = false;
                formApplyRow.IsAutoSplit = false;
                this.FormDataSet.FormApply.AddFormApplyRow(formApplyRow);
                this.TAFormApply.Update(formApplyRow);

                //处理明细
                decimal totalAmount = 0;//计算总申请金额
                if (RejectedFormID != null) {
                    FormDS.FormApplyExpenseDetailDataTable newExpenseTable = new FormDS.FormApplyExpenseDetailDataTable();
                    foreach (FormDS.FormApplySKUDetailRow skuRow in this.FormDataSet.FormApplySKUDetail) {
                        if (skuRow.RowState != System.Data.DataRowState.Deleted) {
                            FormDS.FormApplySKUDetailDataTable newSKUTable = new FormDS.FormApplySKUDetailDataTable();
                            FormDS.FormApplySKUDetailRow newSKURow = newSKUTable.NewFormApplySKUDetailRow();
                            newSKURow.FormApplyID = formApplyRow.FormApplyID;
                            newSKURow.SKUID = skuRow.SKUID;
                            newSKURow.SupplyPrice = skuRow.SupplyPrice;
                            newSKURow.PromotionPrice = skuRow.PromotionPrice;
                            newSKURow.BuyQuantity = skuRow.BuyQuantity;
                            newSKURow.GiveQuantity = skuRow.GiveQuantity;
                            newSKURow.EstimatedSaleVolume = skuRow.EstimatedSaleVolume;
                            if (!skuRow.IsAmountNull()) {
                                newSKURow.Amount = skuRow.Amount;
                            }
                            if (!skuRow.IsRemarkNull()) {
                                newSKURow.Remark = skuRow.Remark;
                            }
                            newSKUTable.AddFormApplySKUDetailRow(newSKURow);
                            this.TAFormApplySKUDetail.Update(newSKUTable);
                            int newID = newSKURow.FormApplySKUDetailID;
                            FormDS.FormApplyExpenseDetailRow[] dr = (FormDS.FormApplyExpenseDetailRow[])this.FormDataSet.FormApplyExpenseDetail.Select("FormApplySKUDetailID = " + skuRow.FormApplySKUDetailID.ToString());
                            for (int i = 0; i < dr.Length; i++) {
                                FormDS.FormApplyExpenseDetailRow newExpenseRow = newExpenseTable.NewFormApplyExpenseDetailRow();
                                newExpenseRow.FormApplySKUDetailID = newID;
                                newExpenseRow.ExpenseItemID = dr[i].ExpenseItemID;
                                newExpenseRow.Amount = dr[i].Amount;
                                newExpenseRow.PackageUnitPrice = dr[i].PackageUnitPrice;
                                newExpenseRow.RepeatFormInfo = UtilityBLL.GenerateRepeatFormStr(this.TAForm.GetRepeatFormApplyNo(formApplyRow.PromotionBeginDate, formApplyRow.PromotionEndDate, newExpenseRow.ExpenseItemID, formApplyRow.ShopID, formApplyRow.FormApplyID));
                                newExpenseTable.AddFormApplyExpenseDetailRow(newExpenseRow);
                                if (dr[i].RowState != DataRowState.Deleted) {
                                    totalAmount += dr[i].Amount;
                                }
                            }
                        }
                    }
                    this.TAFormApplyExpenseDetail.Update(newExpenseTable);
                } else {
                    foreach (FormDS.FormApplySKUDetailRow skuRow in this.FormDataSet.FormApplySKUDetail) {
                        // 与父表绑定
                        if (skuRow.RowState != DataRowState.Deleted) {
                            skuRow.FormApplyID = formApplyRow.FormApplyID;
                            int oldID = skuRow.FormApplySKUDetailID;
                            this.TAFormApplySKUDetail.Update(skuRow);
                            int newID = skuRow.FormApplySKUDetailID;
                            FormDS.FormApplyExpenseDetailRow[] dr = (FormDS.FormApplyExpenseDetailRow[])this.FormDataSet.FormApplyExpenseDetail.Select("FormApplySKUDetailID = " + oldID.ToString());
                            for (int i = 0; i < dr.Length; i++) {
                                dr[i].FormApplySKUDetailID = newID;
                                dr[i].PackageUnitPrice = dr[i].Amount / skuRow.EstimatedSaleVolume;
                                if (dr[i].RowState != DataRowState.Deleted) {
                                    totalAmount += dr[i].Amount;
                                }
                                dr[i].RepeatFormInfo = UtilityBLL.GenerateRepeatFormStr(this.TAForm.GetRepeatFormApplyNo(formApplyRow.PromotionBeginDate, formApplyRow.PromotionEndDate, dr[i].ExpenseItemID, formApplyRow.ShopID, formApplyRow.FormApplyID));
                            }
                        }
                    }
                    this.TAFormApplyExpenseDetail.Update(this.FormDataSet.FormApplyExpenseDetail);
                }

                //分摊比例
                foreach (FormDS.FormApplySplitRateRow item in FormDataSet.FormApplySplitRate) {
                    item.FormApplyID = formApplyRow.FormApplyID;
                }
                this.TAFormApplySplitRate.Update(FormDataSet.FormApplySplitRate);

                formApplyRow.Amount = totalAmount;
                TAFormApply.Update(formApplyRow);

                // 正式提交或草稿

                Dictionary<string, object> dic = new Dictionary<string, object>();
                dic["Apply_Amount"] = totalAmount;
                //dic["Dept"] = new AuthorizationDSTableAdapters.OrganizationUnitTableAdapter().GetOrganizationUnitCodeByOrganizationUnitID(formRow.OrganizationUnitID)[0].OrganizationUnitCode;
                dic["Expense_Category"] = getExpenseCategoryIDByExpenseSubCategoryID(ExpenseSubCategoryID).ToString();//此处待改动(目前市场部的ID为7)
                APHelper AP = new APHelper();
                new APFlowBLL().ApplyForm(AP, TAForm, RejectedFormID, formRow, OrganizationUnitID, FlowTemplate, StatusID, dic);

                transaction.Commit();
            } catch (ApplicationException ex) {
                transaction.Rollback();
                throw ex;
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException("Save Fail!" + ex.ToString());
            } finally {
                transaction.Dispose();
            }
        }
コード例 #9
0
ファイル: SalesApplyBLL.cs プロジェクト: hijoy/VSL_ERS
        public void UpdateFormApply(int FormID, SystemEnums.FormStatus StatusID, SystemEnums.FormType FormTypeID, int ShopID, int PaymentTypeID, string ContractNo, DateTime PromotionBeginDate,
                        DateTime PromotionEndDate, DateTime DeliveryBeginDate, DateTime DeliveryEndDate, int PromotionScopeID, int PromotionTypeID, string PromotionDesc, int ShelfTypeID, int? FirstVolume, int? SecondVolume, int? ThirdVolume,
                        decimal? CustomerBudget, decimal? CustomerBudgetRemain, decimal? OUBudget, decimal? OUAppovedAmount, decimal? OUApprovingAmount, decimal? OUCompletedAmount, decimal? OUReimbursedAmount,
                        decimal? OUBudgetRemain, decimal? OUBudgetRate, string AttachedFileName, string RealAttachedFileName, string Remark, int ReimburseRequirements, string FlowTemplate, string FormApplyName)
        {
            SqlTransaction transaction = null;

            try {
                ////事务开始
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormApply, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormApplySKUDetail, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormApplyExpenseDetail, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormApplySplitRate, transaction);

                FormDS.FormRow formRow = this.TAForm.GetDataByID(FormID)[0];
                FormDS.FormApplyRow formApplyRow = this.TAFormApply.GetDataByID(FormID)[0];

                //处理单据的内容
                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                    formRow.InTurnUserIds = "P";//待改动
                    formRow.InTurnPositionIds = "P";//待改动
                } else {
                    formRow.SetFormNoNull();
                }
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;
                //申请单内容
                formApplyRow.ShopID = ShopID;
                formApplyRow.PaymentTypeID = PaymentTypeID;
                if (ContractNo != "") {
                    formApplyRow.ContractNo = ContractNo;
                }
                formApplyRow.PromotionBeginDate = PromotionBeginDate;
                formApplyRow.PromotionEndDate = PromotionEndDate;
                formApplyRow.DeliveryBeginDate = DeliveryBeginDate;
                formApplyRow.DeliveryEndDate = DeliveryEndDate;
                formApplyRow.PromotionScopeID = PromotionScopeID;
                formApplyRow.PromotionTypeID = PromotionTypeID;
                if (PromotionDesc != "") {
                    formApplyRow.PromotionDesc = PromotionDesc;
                }
                formApplyRow.ShelfTypeID = ShelfTypeID;
                if (FirstVolume != null) {
                    formApplyRow.FirstVolume = FirstVolume.GetValueOrDefault();
                }
                if (SecondVolume != null) {
                    formApplyRow.SecondVolume = SecondVolume.GetValueOrDefault();
                }
                if (ThirdVolume != null) {
                    formApplyRow.ThirdVolume = ThirdVolume.GetValueOrDefault();
                }
                if (CustomerBudget != null) {
                    formApplyRow.CustomerBudget = CustomerBudget.GetValueOrDefault();
                }
                if (CustomerBudgetRemain != null) {
                    formApplyRow.CustomerBudgetRemain = CustomerBudgetRemain.GetValueOrDefault();
                }
                if (OUBudget != null) {
                    formApplyRow.OUBudget = OUBudget.GetValueOrDefault();
                }
                if (OUAppovedAmount != null) {
                    formApplyRow.OUAppovedAmount = OUAppovedAmount.GetValueOrDefault();
                }
                if (OUApprovingAmount != null) {
                    formApplyRow.OUApprovingAmount = OUApprovingAmount.GetValueOrDefault();
                }
                if (OUCompletedAmount != null) {
                    formApplyRow.OUCompletedAmount = OUCompletedAmount.GetValueOrDefault();
                }
                if (OUReimbursedAmount != null) {
                    formApplyRow.OUReimbursedAmount = OUReimbursedAmount.GetValueOrDefault();
                }
                if (OUBudgetRemain != null) {
                    formApplyRow.OUBudgetRemain = OUBudgetRemain.GetValueOrDefault();
                }
                if (OUBudgetRate != null) {
                    formApplyRow.OUBudgetRate = OUBudgetRate.GetValueOrDefault();
                }
                if (AttachedFileName != null && AttachedFileName != string.Empty) {
                    formApplyRow.AttachedFileName = AttachedFileName;
                }
                if (RealAttachedFileName != null && RealAttachedFileName != string.Empty) {
                    formApplyRow.RealAttachedFileName = RealAttachedFileName;
                }
                if (Remark != null && Remark != string.Empty) {
                    formApplyRow.Remark = Remark;
                }
                formApplyRow.FormApplyName = FormApplyName;
                formApplyRow.ReimburseRequirements = ReimburseRequirements;

                this.TAForm.Update(formRow);
                this.TAFormApply.Update(formApplyRow);

                ArrayList deletedSKURows = new ArrayList();//save sku rows and expense rows that not deleted
                decimal totalAmount = 0;//计算总申请金额
                foreach (FormDS.FormApplySKUDetailRow skuRow in this.FormDataSet.FormApplySKUDetail) {
                    // 与父表绑定
                    if (skuRow.RowState != DataRowState.Deleted) {
                        int oldID = skuRow.FormApplySKUDetailID;
                        this.TAFormApplySKUDetail.Update(skuRow);
                        int newID = skuRow.FormApplySKUDetailID;
                        FormDS.FormApplyExpenseDetailRow[] dr = (FormDS.FormApplyExpenseDetailRow[])this.FormDataSet.FormApplyExpenseDetail.Select("FormApplySKUDetailID = " + oldID.ToString());
                        for (int i = 0; i < dr.Length; i++) {
                            dr[i].FormApplySKUDetailID = newID;
                            if (dr[i].RowState != DataRowState.Deleted) {
                                totalAmount += dr[i].Amount;
                            }
                            dr[i].RepeatFormInfo = UtilityBLL.GenerateRepeatFormStr(this.TAForm.GetRepeatFormApplyNo(formApplyRow.PromotionBeginDate, formApplyRow.PromotionEndDate, dr[i].ExpenseItemID, formApplyRow.ShopID, formApplyRow.FormApplyID));
                        }
                    } else {
                        deletedSKURows.Add(skuRow);
                    }
                }
                //save expense detail rows

                foreach (FormDS.FormApplyExpenseDetailRow expenseRow in this.FormDataSet.FormApplyExpenseDetail) {
                    if (expenseRow.RowState != DataRowState.Deleted) {
                        expenseRow.RepeatFormInfo = UtilityBLL.GenerateRepeatFormStr(this.TAForm.GetRepeatFormApplyNo(formApplyRow.PromotionBeginDate, formApplyRow.PromotionEndDate, expenseRow.ExpenseItemID, formApplyRow.ShopID, formApplyRow.FormApplyID));
                    }
                }

                this.TAFormApplyExpenseDetail.Update(this.FormDataSet.FormApplyExpenseDetail);
                //save deleted sku rows
                foreach (FormDS.FormApplySKUDetailRow skuRow in deletedSKURows) {
                    if (skuRow.RowState == DataRowState.Deleted) {
                        this.TAFormApplySKUDetail.Update(skuRow);
                    }
                }
                formApplyRow.Amount = totalAmount;
                this.TAFormApply.Update(formApplyRow);

                this.TAFormApplySplitRate.Update(FormDataSet.FormApplySplitRate);

                // 正式提交或草稿
                Dictionary<string, object> dic = new Dictionary<string, object>();
                dic["Apply_Amount"] = totalAmount;
                dic["Expense_Category"] = getExpenseCategoryIDByExpenseSubCategoryID(formApplyRow.ExpenseSubCategoryID).ToString();
                //dic["Dept"] = new AuthorizationDSTableAdapters.OrganizationUnitTableAdapter().GetOrganizationUnitCodeByOrganizationUnitID(formRow.OrganizationUnitID)[0].OrganizationUnitCode;
                APHelper AP = new APHelper();
                new APFlowBLL().ApplyForm(AP, TAForm, null, formRow, formRow.OrganizationUnitID, FlowTemplate, StatusID, dic);

                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException("Save Fail!" + ex.ToString());
            } finally {
                transaction.Dispose();
            }
        }
コード例 #10
0
ファイル: MaterialApplyBLL.cs プロジェクト: hijoy/VSL_ERS
        public void AddFormMaterial(int? RejectedFormID, int UserID, int? ProxyUserID, int? ProxyPositionID, int OrganizationUnitID, int PositionID, SystemEnums.FormType FormTypeID,
                SystemEnums.FormStatus StatusID, int ShopID, int FirstVolume, int SecondVolume, int ThirdVolume, string Remark, string FlowTemplate)
        {
            SqlTransaction transaction = null;
            try {
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormMaterial, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormMaterialDetail, transaction);

                FormDS.FormRow formRow = this.FormDataSet.Form.NewFormRow();
                if (RejectedFormID != null) {
                    formRow.RejectedFormID = RejectedFormID.GetValueOrDefault();
                }
                formRow.UserID = UserID;
                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                } else {
                    formRow.SetFormNoNull();
                }
                if (ProxyUserID != null) {
                    formRow.ProxyUserID = ProxyUserID.GetValueOrDefault();
                }
                if (ProxyPositionID != null) {
                    formRow.ProxyPositionID = ProxyPositionID.GetValueOrDefault();
                }
                formRow.OrganizationUnitID = OrganizationUnitID;
                formRow.PositionID = PositionID;
                formRow.FormTypeID = (int)FormTypeID;
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;
                formRow.InTurnUserIds = "P";//待改动
                formRow.InTurnPositionIds = "P";//待改动
                formRow.PageType = (int)SystemEnums.PageType.MaterialApply;
                this.FormDataSet.Form.AddFormRow(formRow);
                this.TAForm.Update(formRow);

                //处理申请表的内容
                FormDS.FormMaterialRow formMaterialRow = this.FormDataSet.FormMaterial.NewFormMaterialRow();
                formMaterialRow.FormMaterialID = formRow.FormID;
                formMaterialRow.ShopID = ShopID;
                formMaterialRow.FirstVolume = FirstVolume;
                formMaterialRow.SecondVolume = SecondVolume;
                formMaterialRow.ThirdVolume = ThirdVolume;
                formMaterialRow.Amount = 0;//默认值
                formMaterialRow.Remark = Remark;

                this.FormDataSet.FormMaterial.AddFormMaterialRow(formMaterialRow);
                this.TAFormMaterial.Update(formMaterialRow);

                //明细表
                decimal totalAmount = 0;//计算总申请金额

                if (RejectedFormID != null) {
                    FormDS.FormMaterialDetailDataTable newDetailTable = new FormDS.FormMaterialDetailDataTable();
                    foreach (FormDS.FormMaterialDetailRow detailRow in this.FormDataSet.FormMaterialDetail) {
                        if (detailRow.RowState != System.Data.DataRowState.Deleted) {
                            FormDS.FormMaterialDetailRow newDetailRow = newDetailTable.NewFormMaterialDetailRow();
                            newDetailRow.FormMaterialID = formMaterialRow.FormMaterialID;
                            newDetailRow.MaterialID = detailRow.MaterialID;
                            ERS.MaterialRow material = new MasterDataBLL().GetMaterialById(detailRow.MaterialID);
                            newDetailRow.MaterialName = material.MaterialName;
                            newDetailRow.UOM = material.UOM;
                            newDetailRow.Description = material.Description;
                            newDetailRow.MaterialPrice = material.MaterialPrice;
                            newDetailRow.Quantity = detailRow.Quantity;
                            newDetailRow.Amount = newDetailRow.MaterialPrice * detailRow.Quantity;
                            if (!detailRow.IsRemarkNull()) {
                                newDetailRow.Remark = detailRow.Remark;
                            }
                            totalAmount += newDetailRow.Amount;
                            newDetailTable.AddFormMaterialDetailRow(newDetailRow);
                        }
                    }
                    this.TAFormMaterialDetail.Update(newDetailTable);
                } else {
                    foreach (FormDS.FormMaterialDetailRow detailRow in this.FormDataSet.FormMaterialDetail) {
                        // 与父表绑定
                        if (detailRow.RowState != DataRowState.Deleted) {
                            detailRow.FormMaterialID = formMaterialRow.FormMaterialID;
                            totalAmount += detailRow.Amount;
                        }
                    }
                    this.TAFormMaterialDetail.Update(this.FormDataSet.FormMaterialDetail);
                }

                formMaterialRow.Amount = totalAmount;
                this.TAFormMaterial.Update(formMaterialRow);

                // 正式提交或草稿

                    Dictionary<string, object> dic = new Dictionary<string, object>();
                    dic["Apply_Amount"] = totalAmount;//金额
                    APHelper AP = new APHelper();
                    new APFlowBLL().ApplyForm(AP, TAForm, RejectedFormID, formRow, OrganizationUnitID, FlowTemplate, StatusID, dic);

                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException("Save Fail!" + ex.ToString());
            } finally {
                transaction.Dispose();
            }
        }
コード例 #11
0
ファイル: APFlowBLL.cs プロジェクト: hijoy/VSL_ERS
        //审批方法
        public void ApproveForm(APHelper AP, int formID, int stuffUserId, string stuffName, bool pass, string comment, string ProxyStuffName, int OrganizationUnitID)
        {
            string email = string.Empty;
            SqlTransaction transaction = null;
            try {
                FormTableAdapter TAMainForm = new FormTableAdapter();

                transaction = TableAdapterHelper.BeginTransaction(TAMainForm);

                FormDS.FormRow formRow = TAMainForm.GetDataByID(formID)[0];

                string returnValue = AP.approve(pass, comment, stuffUserId.ToString(), stuffName, formRow.ProcID, ProxyStuffName, formRow.OrganizationUnitID, ref email);
                string[] approveinfo = AP.GetProcessApproveUser(formRow.ProcID);
                if (AP.GetProcessIsEnd(formRow.ProcID)) {
                    formRow.LastApprover = stuffUserId.ToString();
                    formRow.Comment = comment;
                    formRow.ApprovedDate = Convert.ToDateTime(approveinfo[0]);
                }
                formRow.ApproverIds = approveinfo[3];
                if (returnValue == null) {
                    formRow.InTurnUserIds = "P";
                    formRow.InTurnPositionIds = "P";
                    //formRow.SubmitDate = DateTime.Now;

                    if (pass) {
                        //如果审批通过且返回值为空则该流程结束

                        formRow.StatusID = (int)SystemEnums.FormStatus.ApproveCompleted;
                        //mailTitle = string.Format("您申请的编号为{0}的单据已经通过审批", formRow.FormNo);
                        //mailBody = string.Format(mailBody, formRow.FormNo);
                        //email = AP.getUserEmailByID(formRow.UserID);

                        //AP.sendMail(email, "", mailTitle, mailBody);

                    } else {
                        //如果不通过则为驳回
                        formRow.StatusID = (int)SystemEnums.FormStatus.Rejected;

                        //mailTitle = string.Format("您有单据申请被{0}退回", stuffName);
                        //mailBody = string.Format(mailBody, formRow.FormNo);
                        //email = AP.getUserEmailByID(formRow.UserID);

                        //AP.sendMail(email, "", mailTitle, mailBody);

                    }
                } else {
                    string[] InTurn = returnValue.Split('&');//不同流程角色下的人员和职位
                    string ids = "";
                    string pids = "";
                    for (int a = 0; a < InTurn.Length; a++) {
                        ids += InTurn[a].Split('$')[0].ToString();///人员
                        pids += InTurn[a].Split('$')[1].ToString();//职位
                    }
                    formRow.InTurnUserIds = ids;//下一步的人员
                    formRow.InTurnPositionIds = pids;//下一步的人员职位

                    //mailTitle = string.Format(mailTitle, stuffName, formRow.FormNo);
                    //mailBody = string.Format(mailBody, formRow.FormNo);
                    //AP.sendMail(email, "", mailTitle,mailBody);

                }

                TAMainForm.Update(formRow);

                transaction.Commit();
            } catch (Exception ex) {
                if (transaction != null)
                    transaction.Rollback();
                throw ex;
            } finally {
                if (transaction != null)
                    transaction.Dispose();
            }
            //System.Threading.Thread.Sleep(3000);
        }
コード例 #12
0
ファイル: SalesReimburseBLL.cs プロジェクト: hijoy/VSL_ERS
        public void UpdateFormReimburseMoney(int FormID, SystemEnums.FormStatus StatusID, SystemEnums.FormType FormTypeID,
            string AttachedFileName, string RealAttachedFileName, string Remark, string FlowTemplate)
        {
            SqlTransaction transaction = null;
            try {
                //事务开始
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormReimburse, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormReimburseDetail, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormReimburseInvoice, transaction);
                TableAdapterHelper.SetTransaction(this.TAPKRecord, transaction);

                FormDS.FormRow formRow = this.TAForm.GetDataByID(FormID)[0];
                FormDS.FormReimburseRow FormReimburseRow = this.TAFormReimburse.GetDataByID(FormID)[0];

                //处理单据的内容
                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                } else {
                    formRow.SetFormNoNull();
                }
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;

                this.TAForm.Update(formRow);

                //处理FormReimburseRow的内容
                if (AttachedFileName != null && AttachedFileName != string.Empty) {
                    FormReimburseRow.AttachedFileName = AttachedFileName;
                } else {
                    FormReimburseRow.SetAttachedFileNameNull();
                }
                if (RealAttachedFileName != null && RealAttachedFileName != string.Empty) {
                    FormReimburseRow.RealAttachedFileName = RealAttachedFileName;
                } else {
                    FormReimburseRow.SetRealAttachedFileNameNull();
                }
                if (Remark != null && Remark != string.Empty) {
                    FormReimburseRow.Remark = Remark;
                }

                this.TAFormReimburse.Update(FormReimburseRow);

                //发票
                foreach (FormDS.FormReimburseInvoiceRow invoiceRow in this.FormDataSet.FormReimburseInvoice) {
                    // 与父表绑定
                    if (invoiceRow.RowState != DataRowState.Deleted) {
                        invoiceRow.FormReimburseID = FormReimburseRow.FormReimburseID;
                    }
                }
                this.TAFormReimburseInvoice.Update(this.FormDataSet.FormReimburseInvoice);

                //处理明细
                decimal totalAmount = 0;
                decimal totalTaxAmount = 0;//总税金

                foreach (FormDS.FormReimburseDetailRow detailRow in this.FormDataSet.FormReimburseDetail) {
                    if (detailRow.RowState != DataRowState.Deleted) {
                        totalAmount += detailRow.Amount;
                        totalTaxAmount += detailRow.IsTaxAmountNull() ? 0 : detailRow.TaxAmount;
                        detailRow.FormReimburseID = FormReimburseRow.FormReimburseID;
                    }
                }
                this.TAFormReimburseDetail.Update(this.FormDataSet.FormReimburseDetail);

                FormReimburseRow.Amount = totalAmount;
                FormReimburseRow.TaxAmount = totalTaxAmount;
                this.TAFormReimburse.Update(FormReimburseRow);

                // 正式提交
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    Dictionary<string, object> dic = new Dictionary<string, object>();
                    dic["Apply_Amount"] = totalAmount + totalTaxAmount;
                    //dic["Dept"] = new AuthorizationDSTableAdapters.OrganizationUnitTableAdapter().GetOrganizationUnitCodeByOrganizationUnitID(formRow.OrganizationUnitID)[0].OrganizationUnitCode;
                    dic["Expense_Category"] = getExpenseCategoryIDByFormID(int.Parse(FormReimburseRow.FormApplyIds.Split(',')[0])).ToString();//此处待改动
                    APHelper AP = new APHelper();
                    new APFlowBLL().ApplyForm(AP, TAForm, null, formRow, formRow.OrganizationUnitID, FlowTemplate, StatusID, dic);
                }
                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException("Save Fail!" + ex.ToString());
            } finally {
                transaction.Dispose();
            }
        }
コード例 #13
0
ファイル: ContractApplyBLL.cs プロジェクト: hijoy/VSL_ERS
        public void AddFormContract(int? RejectedFormID, int UserID, int? ProxyUserID, int? ProxyPositionID, int OrganizationUnitID, int PositionID, SystemEnums.FormType FormTypeID,
                SystemEnums.FormStatus StatusID, string ContractName, int ContractTypeID, Decimal? ContractAmount, int? PageNumber, string FirstCompany, string SecondCompany, string ThirdCompany, DateTime? BeginDate, DateTime? EndDate, string PaymentType, string MainContent, string ChangePart, string AttachedFileName, string RealAttachedFileName, string FlowTemplate)
        {
            SqlTransaction transaction = null;
            try {
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormContract, transaction);

                FormDS.FormRow formRow = this.FormDataSet.Form.NewFormRow();
                if (RejectedFormID != null) {
                    formRow.RejectedFormID = RejectedFormID.GetValueOrDefault();
                }
                formRow.UserID = UserID;
                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                } else {
                    formRow.SetFormNoNull();
                }
                if (ProxyUserID != null) {
                    formRow.ProxyUserID = ProxyUserID.GetValueOrDefault();
                }
                if (ProxyPositionID != null) {
                    formRow.ProxyPositionID = ProxyPositionID.GetValueOrDefault();
                }
                formRow.OrganizationUnitID = OrganizationUnitID;
                formRow.PositionID = PositionID;
                formRow.FormTypeID = (int)FormTypeID;
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;
                formRow.InTurnUserIds = "P";//待改动
                formRow.InTurnPositionIds = "P";//待改动
                formRow.PageType = (int)SystemEnums.PageType.ContractApply;
                this.FormDataSet.Form.AddFormRow(formRow);
                this.TAForm.Update(formRow);

                //处理申请表的内容
                FormDS.FormContractRow formContractRow = this.FormDataSet.FormContract.NewFormContractRow();
                formContractRow.ContractName = ContractName;
                formContractRow.FormContractID = formRow.FormID;
                formContractRow.ContractTypeID = ContractTypeID;
                formContractRow.ContractAmount = ContractAmount.GetValueOrDefault();
                formContractRow.PageNumber = PageNumber.GetValueOrDefault();
                formContractRow.FirstCompany = FirstCompany;
                formContractRow.SecondCompany = SecondCompany;
                formContractRow.ThirdCompany = ThirdCompany;
                formContractRow.BeginDate = BeginDate.GetValueOrDefault();
                formContractRow.EndDate = EndDate.GetValueOrDefault();
                formContractRow.PaymentType = PaymentType;
                formContractRow.MainContent = MainContent;
                formContractRow.ChangePart = ChangePart;
                formContractRow.AttachedFileName = AttachedFileName;
                formContractRow.RealAttachedFileName = RealAttachedFileName;
                if (StatusID == SystemEnums.FormStatus.Awaiting)
                {
                    formContractRow.ContractNo = GetContractNo(ContractTypeID);
                }
                this.FormDataSet.FormContract.AddFormContractRow(formContractRow);
                this.TAFormContract.Update(formContractRow);

                // 正式提交或草稿

                    Dictionary<string, object> dic = new Dictionary<string, object>();
                    dic["Apply_Amount"] = ContractAmount;//合同金额
                    dic["ContractType"] = new MasterDataBLL().GetContractTypeById(ContractTypeID).ContractTypeName;
                    APHelper AP = new APHelper();
                    new APFlowBLL().ApplyForm(AP, TAForm, RejectedFormID, formRow, OrganizationUnitID, FlowTemplate, StatusID, dic);

                //this.TAFormContract.Update(formContractRow);
                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException("Save Fail!" + ex.ToString());
            } finally {
                transaction.Dispose();
            }
        }
コード例 #14
0
ファイル: PersonalReimburseBLL.cs プロジェクト: hijoy/VSL_ERS
        public void UpdateFormTravelApply(int FormID, SystemEnums.FormStatus StatusID, decimal? TransportFee, decimal? HotelFee,
            decimal? MealFee, decimal? OtherFee, string Remark, string AttachmentFileName, string RealAttachmentFileName)
        {
            SqlTransaction transaction = null;
            try {
                //事务开始
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormTravelApply, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormTravelApplyDetail, transaction);

                FormDS.FormRow formRow = this.TAForm.GetDataByID(FormID)[0];
                FormDS.FormTravelApplyRow FormTravelApplyApplyRow = this.TAFormTravelApply.GetDataByID(FormID)[0];

                //处理单据内容
                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString(formRow.FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                    formRow.InTurnUserIds = "P";//待改动
                    formRow.InTurnPositionIds = "P";//待改动
                } else {
                    formRow.SetFormNoNull();
                }
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;

                this.TAForm.Update(formRow);

                decimal TotalAmount = 0;
                //处理申请表的内容
                if (TransportFee != null) {
                    FormTravelApplyApplyRow.TransportFee = TransportFee.GetValueOrDefault();
                    TotalAmount += FormTravelApplyApplyRow.TransportFee;
                }
                if (HotelFee != null) {
                    FormTravelApplyApplyRow.HotelFee = HotelFee.GetValueOrDefault();
                    TotalAmount += FormTravelApplyApplyRow.HotelFee;
                }
                if (MealFee != null) {
                    FormTravelApplyApplyRow.MealFee = MealFee.GetValueOrDefault();
                    TotalAmount += FormTravelApplyApplyRow.MealFee;
                }
                if (OtherFee != null) {
                    FormTravelApplyApplyRow.OtherFee = OtherFee.GetValueOrDefault();
                    TotalAmount += FormTravelApplyApplyRow.OtherFee;
                }
                FormTravelApplyApplyRow.Remark = Remark;
                FormTravelApplyApplyRow.TotalFee = TotalAmount;
                FormTravelApplyApplyRow.AttachedFileName = AttachmentFileName;
                FormTravelApplyApplyRow.RealAttachedFileName = RealAttachmentFileName;

                this.TAFormTravelApply.Update(FormTravelApplyApplyRow);

                //处理明细数据
                int TotalDays = 0;
                FormDS.FormTravelApplyDetailDataTable newDetailTable = new FormDS.FormTravelApplyDetailDataTable();
                foreach (FormDS.FormTravelApplyDetailRow detailRow in this.FormDataSet.FormTravelApplyDetail) {
                    if (detailRow.RowState != System.Data.DataRowState.Deleted) {
                        detailRow.FormTravelApplyID = FormTravelApplyApplyRow.FormTravelApplyID;
                        TotalDays += detailRow.Days;
                    }
                }
                FormTravelApplyApplyRow.Days = TotalDays;

                this.TAFormTravelApplyDetail.Update(this.FormDataSet.FormTravelApplyDetail);
                this.TAFormTravelApply.Update(FormTravelApplyApplyRow);

                // 正式提交或草稿 流程模板带修改
                Dictionary<string, object> dic = new Dictionary<string, object>();
                dic["Apply_Amount"] = FormTravelApplyApplyRow.TotalFee;//金额
                dic["Days"] = TotalDays;
                AuthorizationDS.OrganizationUnitDataTable OUTable = new AuthorizationDSTableAdapters.OrganizationUnitTableAdapter().GetOrganizationUnitCodeByOrganizationUnitID(formRow.OrganizationUnitID);
                if (OUTable.Count == 0) {
                    throw new ApplicationException("没有找到您所在部门的流程,请联系管理员");
                }
                dic["Department"] = OUTable[0].OrganizationUnitCode;
                APHelper AP = new APHelper();
                new APFlowBLL().ApplyForm(AP, TAForm, null, formRow, formRow.OrganizationUnitID, new AuthorizationBLL().GetFlowTemplate((int)SystemEnums.BusinessUseCase.FormTravelApply, formRow.UserID), StatusID, dic);
                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException(ex.Message);
            } finally {
                transaction.Dispose();
            }
        }
コード例 #15
0
ファイル: PersonalReimburseBLL.cs プロジェクト: hijoy/VSL_ERS
        public void AddFormTravelApply(int? RejectedFormID, int UserID, int? ProxyUserID, int? ProxyPositionID, int OrganizationUnitID,
            int PositionID, SystemEnums.FormType FormTypeID, SystemEnums.FormStatus StatusID, decimal? TransportFee, decimal? HotelFee,
            decimal? MealFee, decimal? OtherFee, string Remark, string AttachmentFileName, string RealAttachmentFileName)
        {
            SqlTransaction transaction = null;
            try {
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormTravelApply, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormTravelApplyDetail, transaction);

                FormDS.FormDataTable tbForm = new FormDS.FormDataTable();
                FormDS.FormRow formRow = tbForm.NewFormRow();
                if (RejectedFormID != null) {
                    formRow.RejectedFormID = RejectedFormID.GetValueOrDefault();
                }
                formRow.UserID = UserID;
                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                } else {
                    formRow.SetFormNoNull();
                }
                if (ProxyUserID != null) {
                    formRow.ProxyUserID = ProxyUserID.GetValueOrDefault();
                }
                if (ProxyPositionID != null) {
                    formRow.ProxyPositionID = ProxyPositionID.GetValueOrDefault();
                }
                formRow.OrganizationUnitID = OrganizationUnitID;
                formRow.PositionID = PositionID;
                formRow.FormTypeID = (int)FormTypeID;
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;
                formRow.InTurnUserIds = "P";//待改动
                formRow.InTurnPositionIds = "P";//待改动
                formRow.PageType = (int)SystemEnums.PageType.TravelApply;
                tbForm.AddFormRow(formRow);
                this.TAForm.Update(tbForm);

                //处理申请表的内容
                FormDS.FormTravelApplyDataTable tbFormTravelApply = new FormDS.FormTravelApplyDataTable();
                FormDS.FormTravelApplyRow rowFormTravelApply = tbFormTravelApply.NewFormTravelApplyRow();
                decimal TotalFee = 0;

                rowFormTravelApply.FormTravelApplyID = formRow.FormID;
                if (TransportFee != null) {
                    rowFormTravelApply.TransportFee = TransportFee.GetValueOrDefault();
                    TotalFee += rowFormTravelApply.TransportFee;
                }
                if (HotelFee != null) {
                    rowFormTravelApply.HotelFee = HotelFee.GetValueOrDefault();
                    TotalFee += rowFormTravelApply.HotelFee;
                }
                if (MealFee != null) {
                    rowFormTravelApply.MealFee = MealFee.GetValueOrDefault();
                    TotalFee += rowFormTravelApply.MealFee;
                }
                if (OtherFee != null) {
                    rowFormTravelApply.OtherFee = OtherFee.GetValueOrDefault();
                    TotalFee += rowFormTravelApply.OtherFee;
                }
                rowFormTravelApply.TotalFee = TotalFee;
                if (Remark != null) {
                    rowFormTravelApply.Remark = Remark;
                }
                rowFormTravelApply.AttachedFileName = AttachmentFileName;
                rowFormTravelApply.RealAttachedFileName = RealAttachmentFileName;
                tbFormTravelApply.AddFormTravelApplyRow(rowFormTravelApply);
                this.TAFormTravelApply.Update(tbFormTravelApply);

                int TotalDays = 0;
                //处理明细数据
                if (RejectedFormID != null) {
                    FormDS.FormTravelApplyDetailDataTable newDetailTable = new FormDS.FormTravelApplyDetailDataTable();
                    foreach (FormDS.FormTravelApplyDetailRow detailRow in this.FormDataSet.FormTravelApplyDetail) {
                        if (detailRow.RowState != System.Data.DataRowState.Deleted) {
                            FormDS.FormTravelApplyDetailRow newDetailRow = newDetailTable.NewFormTravelApplyDetailRow();
                            newDetailRow.FormTravelApplyID = rowFormTravelApply.FormTravelApplyID;
                            newDetailRow.BeginDate = detailRow.BeginDate;
                            newDetailRow.EndDate = detailRow.EndDate;
                            newDetailRow.Departure = detailRow.Departure;
                            newDetailRow.Destination = detailRow.Destination;
                            newDetailRow.Vehicle = detailRow.Vehicle;
                            newDetailRow.Remark = detailRow.Remark;
                            newDetailRow.Days = (detailRow.EndDate - detailRow.BeginDate).Days + 1;
                            TotalDays += newDetailRow.Days;
                            newDetailTable.AddFormTravelApplyDetailRow(newDetailRow);
                        }
                    }
                    this.TAFormTravelApplyDetail.Update(newDetailTable);
                } else {
                    foreach (FormDS.FormTravelApplyDetailRow detailRow in this.FormDataSet.FormTravelApplyDetail) {
                        // 与父表绑定
                        if (detailRow.RowState != DataRowState.Deleted) {
                            detailRow.FormTravelApplyID = rowFormTravelApply.FormTravelApplyID;
                            TotalDays += detailRow.Days;
                        }
                    }
                    this.TAFormTravelApplyDetail.Update(this.FormDataSet.FormTravelApplyDetail);
                }

                this.TAFormTravelApply.Update(rowFormTravelApply);

                //作废之前的单据
                if (RejectedFormID != null) {
                    FormDS.FormRow oldRow = TAForm.GetDataByID(RejectedFormID.GetValueOrDefault())[0];
                    if (oldRow.StatusID == (int)SystemEnums.FormStatus.Rejected) {
                        new APFlowBLL().ScrapForm(oldRow.FormID);
                    }
                }

                // 正式提交或草稿 流程模板带修改
                Dictionary<string, object> dic = new Dictionary<string, object>();
                dic["Apply_Amount"] = rowFormTravelApply.TotalFee;//金额
                AuthorizationDS.OrganizationUnitDataTable OUTable = new AuthorizationDSTableAdapters.OrganizationUnitTableAdapter().GetOrganizationUnitCodeByOrganizationUnitID(formRow.OrganizationUnitID);
                if (OUTable.Count == 0) {
                    throw new ApplicationException("没有找到您所在部门的流程,请联系管理员");
                }
                dic["Days"] = TotalDays;
                dic["Department"] = OUTable[0].OrganizationUnitCode;
                APHelper AP = new APHelper();
                new APFlowBLL().ApplyForm(AP, TAForm, RejectedFormID, formRow, OrganizationUnitID, new AuthorizationBLL().GetFlowTemplate((int)SystemEnums.BusinessUseCase.FormTravelApply, formRow.UserID), StatusID, dic);
                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException(ex.Message);
            } finally {
                transaction.Dispose();
            }
        }
コード例 #16
0
        public void AddFormBudgetAllocation(int? RejectedFormID, int UserID, int? ProxyUserID, int? ProxyPositionID, int OrganizationUnitID, int PositionID, SystemEnums.FormType FormTypeID,
                SystemEnums.FormStatus StatusID, string Remark, string AttachFileName, string RealAttachFileName, string FlowTemplate)
        {
            SqlTransaction transaction = null;
            try {
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormBudgetAllocation, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormBudgetAllocationDetail, transaction);

                FormDS.FormRow formRow = this.FormDataSet.Form.NewFormRow();
                if (RejectedFormID != null) {
                    formRow.RejectedFormID = RejectedFormID.GetValueOrDefault();
                }
                formRow.UserID = UserID;
                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                } else {
                    formRow.SetFormNoNull();
                }
                if (ProxyUserID != null) {
                    formRow.ProxyUserID = ProxyUserID.GetValueOrDefault();
                }
                if (ProxyPositionID != null) {
                    formRow.ProxyPositionID = ProxyPositionID.GetValueOrDefault();
                }
                formRow.OrganizationUnitID = OrganizationUnitID;
                formRow.PositionID = PositionID;
                formRow.FormTypeID = (int)FormTypeID;
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;
                formRow.InTurnUserIds = "P";//待改动
                formRow.InTurnPositionIds = "P";//待改动
                formRow.PageType = (int)SystemEnums.PageType.BudgetAllocationApply;
                this.FormDataSet.Form.AddFormRow(formRow);
                this.TAForm.Update(formRow);

                //处理申请表的内容
                FormDS.FormBudgetAllocationRow formBudgetAllocationRow = this.FormDataSet.FormBudgetAllocation.NewFormBudgetAllocationRow();
                formBudgetAllocationRow.FormBudgetAllocationID = formRow.FormID;
                formBudgetAllocationRow.Amount = decimal.Zero;
                formBudgetAllocationRow.AttachFileName = AttachFileName;
                formBudgetAllocationRow.RealAttachFileName = RealAttachFileName;
                formBudgetAllocationRow.Remark = Remark;

                this.FormDataSet.FormBudgetAllocation.AddFormBudgetAllocationRow(formBudgetAllocationRow);
                this.TAFormBudgetAllocation.Update(formBudgetAllocationRow);

                //明细表
                decimal totalAmount = 0;//计算总申请金额
                decimal totalInAmount = 0;//计算调入总金额
                decimal totalOutAmount = 0;//计算调出总金额

                if (RejectedFormID != null) {
                    FormDS.FormBudgetAllocationDetailDataTable newDetailTable = new FormDS.FormBudgetAllocationDetailDataTable();
                    foreach (FormDS.FormBudgetAllocationDetailRow detailRow in this.FormDataSet.FormBudgetAllocationDetail) {
                        if (detailRow.RowState != System.Data.DataRowState.Deleted) {
                            FormDS.FormBudgetAllocationDetailRow newDetailRow = newDetailTable.NewFormBudgetAllocationDetailRow();
                            newDetailRow.FormBudgetAllocationID = formBudgetAllocationRow.FormBudgetAllocationID;
                            newDetailRow.CustomerID = detailRow.CustomerID;
                            newDetailRow.CustomerName = detailRow.CustomerName;
                            newDetailRow.ExpenseItemID = detailRow.ExpenseItemID;
                            newDetailRow.ExpenseItemName = detailRow.ExpenseItemName;
                            newDetailRow.Period = detailRow.Period;
                            newDetailRow.OriginalBudget = detailRow.OriginalBudget;
                            newDetailRow.NormalBudget = detailRow.NormalBudget;
                            newDetailRow.AdjustBudget = detailRow.AdjustBudget;
                            newDetailRow.TotalBudget = detailRow.TotalBudget;
                            newDetailRow.TransferBudget = detailRow.TransferBudget;
                            newDetailRow.AllocationType = detailRow.AllocationType;
                            newDetailRow.BudgetSalesFeeId = detailRow.BudgetSalesFeeId;
                            totalAmount += newDetailRow.TransferBudget;
                            if (detailRow.AllocationType == (int)SystemEnums.AllocationType.In) {
                                totalInAmount += detailRow.TransferBudget;
                            } else {
                                totalOutAmount += detailRow.TransferBudget;
                            }
                            newDetailTable.AddFormBudgetAllocationDetailRow(newDetailRow);
                        }
                    }
                    this.TAFormBudgetAllocationDetail.Update(newDetailTable);
                } else {
                    foreach (FormDS.FormBudgetAllocationDetailRow detailRow in this.FormDataSet.FormBudgetAllocationDetail) {
                        // 与父表绑定
                        if (detailRow.RowState != DataRowState.Deleted) {
                            detailRow.FormBudgetAllocationID = formBudgetAllocationRow.FormBudgetAllocationID;
                            if (detailRow.AllocationType == (int)SystemEnums.AllocationType.In) {
                                totalInAmount += detailRow.TransferBudget;
                            } else {
                                totalOutAmount += detailRow.TransferBudget;
                            }
                            totalAmount += detailRow.TransferBudget;
                        }
                    }
                    this.TAFormBudgetAllocationDetail.Update(this.FormDataSet.FormBudgetAllocationDetail);
                }

                formBudgetAllocationRow.Amount = totalOutAmount;
                this.TAFormBudgetAllocation.Update(formBudgetAllocationRow);
                // 正式提交或草稿

                    Dictionary<string, object> dic = new Dictionary<string, object>();
                    dic["Apply_Amount"] = totalOutAmount;//调拨金额

                    APHelper AP = new APHelper();
                    new APFlowBLL().ApplyForm(AP, TAForm, RejectedFormID, formRow, OrganizationUnitID, FlowTemplate, StatusID, dic);

                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException(ex.Message);
            } finally {
                transaction.Dispose();
            }
        }
コード例 #17
0
        public void UpdateFormBudgetAllocation(int FormID, SystemEnums.FormStatus StatusID, SystemEnums.FormType FormTypeID, string Remark, string AttachFileName, string RealAttachFileName, string FlowTemplate)
        {
            SqlTransaction transaction = null;
            try {
                ////事务开始
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormBudgetAllocation, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormBudgetAllocationDetail, transaction);

                FormDS.FormRow formRow = this.TAForm.GetDataByID(FormID)[0];
                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                    formRow.InTurnUserIds = "P";//待改动
                    formRow.InTurnPositionIds = "P";//待改动
                } else {
                    formRow.SetFormNoNull();
                }
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;
                this.TAForm.Update(formRow);

                //处理申请表的内容
                FormDS.FormBudgetAllocationRow formBudgetAllocationRow = this.TAFormBudgetAllocation.GetDataByID(FormID)[0];
                formBudgetAllocationRow.Amount = decimal.Zero;
                formBudgetAllocationRow.AttachFileName = AttachFileName;
                formBudgetAllocationRow.RealAttachFileName = RealAttachFileName;
                formBudgetAllocationRow.Remark = Remark;
                this.TAFormBudgetAllocation.Update(formBudgetAllocationRow);

                //明细表
                decimal totalAmount = 0;//计算总申请金额
                decimal totalInAmount = 0;//计算调入总金额
                decimal totalOutAmount = 0;//计算调出总金额

                foreach (FormDS.FormBudgetAllocationDetailRow detailRow in this.FormDataSet.FormBudgetAllocationDetail) {
                    // 与父表绑定
                    if (detailRow.RowState != DataRowState.Deleted) {
                        detailRow.FormBudgetAllocationID = formBudgetAllocationRow.FormBudgetAllocationID;
                        if (detailRow.AllocationType == (int)SystemEnums.AllocationType.In) {
                            totalInAmount += detailRow.TransferBudget;
                        } else {
                            totalOutAmount += detailRow.TransferBudget;
                        }
                        totalAmount += detailRow.TransferBudget;
                    }
                }

                this.TAFormBudgetAllocationDetail.Update(this.FormDataSet.FormBudgetAllocationDetail);

                formBudgetAllocationRow.Amount = totalOutAmount;
                this.TAFormBudgetAllocation.Update(formBudgetAllocationRow);

                // 正式提交或草稿

                    Dictionary<string, object> dic = new Dictionary<string, object>();
                    dic["Apply_Amount"] = totalOutAmount;//调拨金额

                    APHelper AP = new APHelper();
                    new APFlowBLL().ApplyForm(AP, TAForm, null, formRow, formRow.OrganizationUnitID, FlowTemplate, StatusID, dic);

                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException(ex.Message);
            } finally {
                transaction.Dispose();
            }
        }
コード例 #18
0
    protected void Page_Load(object sender, EventArgs e)
    {
        base.Page_Load(sender,e);
        if(!IsPostBack){
            PageUtility.SetContentTitle(this, "流程管理");
            this.Page.Title = "流程管理";
            int opManageId = BusinessUtility.GetBusinessOperateId(SystemEnums.BusinessUseCase.FlowParticipant, SystemEnums.OperateEnum.Manage);
            AuthorizationDS.PositionRow position = (AuthorizationDS.PositionRow)this.Session["Position"];
            PositionRightBLL positionRightBLL = new PositionRightBLL();
            if (!positionRightBLL.CheckPositionRight(position.PositionId, opManageId)) {
                Response.Redirect("~/ErrorPage/NoRightErrorPage.aspx");
                return;
            }

            DropDownList ddlDefName = (DropDownList)this.fvFlowConfigure.FindControl("ddlDefName");
            DataTable dt = new APHelper().GetDefNames();
            ddlDefName.DataSource = dt;
            ddlDefName.DataValueField = "DefName";
            ddlDefName.DataTextField = "DefName";
            ddlDefName.DataBind();

            ViewState["ddlDefNameTable"] = dt;

        }
    }
コード例 #19
0
ファイル: MaterialApplyBLL.cs プロジェクト: hijoy/VSL_ERS
        public void UpdateFormMaterial(int FormID, SystemEnums.FormStatus StatusID, SystemEnums.FormType FormTypeID, int ShopID, int FirstVolume, int SecondVolume, int ThirdVolume, string Remark, string FlowTemplate)
        {
            SqlTransaction transaction = null;
            try {
                ////事务开始
                transaction = TableAdapterHelper.BeginTransaction(this.TAForm);
                TableAdapterHelper.SetTransaction(this.TAFormMaterial, transaction);
                TableAdapterHelper.SetTransaction(this.TAFormMaterialDetail, transaction);

                FormDS.FormRow formRow = this.TAForm.GetDataByID(FormID)[0];
                UtilityBLL utility = new UtilityBLL();
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    string formTypeString = utility.GetFormTypeString((int)FormTypeID);
                    formRow.FormNo = utility.GetFormNo(formTypeString);
                    formRow.InTurnUserIds = "P";//待改动
                    formRow.InTurnPositionIds = "P";//待改动
                } else {
                    formRow.SetFormNoNull();
                }
                formRow.StatusID = (int)StatusID;
                formRow.SubmitDate = DateTime.Now;
                formRow.LastModified = DateTime.Now;
                this.TAForm.Update(formRow);

                //处理申请表的内容
                FormDS.FormMaterialRow formMaterialRow = this.TAFormMaterial.GetDataByID(FormID)[0];
                formMaterialRow.ShopID = ShopID;
                formMaterialRow.FirstVolume = FirstVolume;
                formMaterialRow.SecondVolume = SecondVolume;
                formMaterialRow.ThirdVolume = ThirdVolume;
                formMaterialRow.Remark = Remark;
                this.TAFormMaterial.Update(formMaterialRow);

                //明细表
                decimal totalAmount = 0;//计算总申请金额
                foreach (FormDS.FormMaterialDetailRow detailRow in this.FormDataSet.FormMaterialDetail) {
                    // 与父表绑定
                    if (detailRow.RowState != DataRowState.Deleted) {
                        detailRow.FormMaterialID = formMaterialRow.FormMaterialID;
                        totalAmount += detailRow.Amount;
                    }
                }
                this.TAFormMaterialDetail.Update(this.FormDataSet.FormMaterialDetail);

                formMaterialRow.Amount = totalAmount;
                this.TAFormMaterial.Update(formMaterialRow);
                // 正式提交或草稿
                if (StatusID == SystemEnums.FormStatus.Awaiting) {
                    Dictionary<string, object> dic = new Dictionary<string, object>();
                    dic["Apply_Amount"] = totalAmount;//金额
                    APHelper AP = new APHelper();
                    new APFlowBLL().ApplyForm(AP, TAForm, null, formRow, formRow.OrganizationUnitID, FlowTemplate, StatusID, dic);
                }
                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw new ApplicationException("Save Fail!" + ex.ToString());
            } finally {
                transaction.Dispose();
            }
        }