Ejemplo n.º 1
0
        private void LoadPawnageInfo(int intTicketID)
        {
            m_TicketID = intTicketID;
            DDPawnTicket newTicket = new DDPawnTicket("TicketID", intTicketID);

            Query query = new Query(DDOperation.Schema);

            query.AddWhere("TicketID", intTicketID);
            query.AddWhere("OperationType", 4);
            query.AddWhere("NextOperationID", 0);
            DataTable dt = query.ExecuteDataSet().Tables[0];

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                this.dataGridView1.Rows.Add(1);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["PawnageID"].Value   = dt.Rows[i]["PawnageID"];
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["OperationID"].Value = dt.Rows[i]["OperationID"];
                DDPawnageInfo pawnageInfo = new DDPawnageInfo("PawnageID", dt.Rows[i]["PawnageID"]);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["TicketNumber"].Value = newTicket.TicketNumber;
                DDPawnageClass newClass = new DDPawnageClass("ClassID", pawnageInfo.ClassID);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ClassName"].Value    = newClass.ClassName;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["CloseDate"].Value    = dt.Rows[i]["OperationDate"];
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Amount"].Value       = dt.Rows[i]["Amount"];
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ReckonAmount"].Value = dt.Rows[i]["Amount"];
            }
        }
Ejemplo n.º 2
0
        private void UpdateTicketStatus(int iTicketID)
        {
            DDPawnTicket newTicket = new DDPawnTicket("TicketID", iTicketID);

            newTicket.StatusID = 2;
            newTicket.Save();
        }
Ejemplo n.º 3
0
        private void UpdateTicketStatus()
        {
            DDPawnTicket newTicket = new DDPawnTicket("TicketID", m_TicketID);

            newTicket.StatusID = 7;
            newTicket.Save();
        }
Ejemplo n.º 4
0
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex > 0)
            {
                DataGridView dgv = (DataGridView)sender;
                if (dgv.Columns[e.ColumnIndex].Name == "BtnClose")
                {
                    DataGridViewRow dgr = dataGridView1.CurrentRow;

                    int intStatusID = Convert.ToInt32(dgr.Cells["StatusID"].Value);

                    if (intStatusID == 1 || intStatusID == 3)
                    {
                        int          intTicketID = Convert.ToInt32(dgr.Cells["TicketID"].Value);
                        DDPawnTicket oldTicket   = new DDPawnTicket("TicketID", intTicketID);

                        DialogResult dialogResult = MessageBox.Show("确定进行绝当处理?", "绝当", MessageBoxButtons.OKCancel);
                        if (dialogResult == DialogResult.OK)
                        {
                            LoadOperationNumber();
                            UpdateOperation();
                            UpdateOperationNumber();
                        }
                    }
                    else
                    {
                        MessageBox.Show("该当票不能进行绝当处理!", "绝当");
                    }
                }
            }
        }
Ejemplo n.º 5
0
        private void UpdatePawnTicket()
        {
            DDPawnTicket oldTicket = new DDPawnTicket("TicketID", m_OldTicketID);

            oldTicket.IsLast = 0;

            DDPawnTicket newTicket = new DDPawnTicket();

            newTicket.CustomerID      = oldTicket.CustomerID;
            newTicket.StatusID        = 3;
            newTicket.OldTicketID     = oldTicket.TicketID;
            newTicket.TicketNumber    = this.tbxTicketNumber.Text;
            newTicket.OldTicketNumber = this.lblOldTicketNum.Text;
            newTicket.TotalAmount     = this.tbxTotalAmount.Text;
            newTicket.ServiceFee      = this.tbxServiceFee.Text;
            newTicket.InterestFee     = this.tbxInterestFee.Text;
            newTicket.OverdueFee      = oldTicket.OverdueFee;
            newTicket.ReturnFee       = oldTicket.ReturnFee;
            newTicket.StartDate       = this.tbxStartDate.Text;
            newTicket.EndDate         = this.tbxEndDate.Text;
            newTicket.OperateDate     = this.tbxStartDate.Text;
            newTicket.OperaterName    = MainForm.AccountName;
            newTicket.IsLast          = 1;
            try
            {
                oldTicket.Save();
                newTicket.Save();
                UpdatePawages(newTicket.TicketID);
                MessageBox.Show(this, "续当成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch
            {
                MessageBox.Show(this, "数据更新失败,请检查数据库是否连接正确!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Ejemplo n.º 6
0
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (e.ColumnIndex > 0)
                {
                    DataGridView dgv = (DataGridView)sender;
                    if (dgv.Columns[e.ColumnIndex].Name == "BtnFreeze")
                    {
                        DataGridViewRow dgr         = dataGridView1.CurrentRow;
                        int             intTicketID = Convert.ToInt32(dgr.Cells["TicketID"].Value);
                        DDPawnTicket    oldTicket   = new DDPawnTicket("TicketID", intTicketID);

                        DialogResult dialogResult = MessageBox.Show("确定进行冻结处理?", "冻结", MessageBoxButtons.OKCancel);
                        if (dialogResult == DialogResult.OK)
                        {
                            UpdateOperation();
                            UpdateOperationNumber();
                        }
                    }
                }
            }
            catch
            {
                MessageBox.Show("数据库连接失败", "提示信息");
            }
        }
Ejemplo n.º 7
0
        private void LoadAllData(int intTicketID)
        {
            DDPawnTicket newTicket = new DDPawnTicket("TicketID", intTicketID);

            LoadCompanyInfo(Convert.ToInt32(newTicket.CompanyID));
            LoadCustomerInfo(Convert.ToInt32(newTicket.CustomerID));
            LoadPawnageInfo(intTicketID);
        }
Ejemplo n.º 8
0
        private void LoadTicketInfo(int intTicketID)
        {
            m_TicketID = intTicketID;
            double       TotalLastInterestFee = 0;
            double       LastInterestFee      = 0;
            DDPawnTicket newTicket            = new DDPawnTicket("TicketID", intTicketID);

            this.lblOldTicketNum.Text = newTicket.TicketNumber;
            this.tbxStartDate.Text    = newTicket.EndDate;
            this.tbxEndDate.Text      = newTicket.EndDate;
            m_EndDate = newTicket.EndDate;
            DateTime operationDate = DateTime.Now;

            this.tbxOperationDate.Text = operationDate.Year.ToString() + "-" + operationDate.Month.ToString() + "-" + operationDate.Day.ToString();

            Query query = new Query(DDOperation.Schema);

            query.AddWhere("TicketID", intTicketID);
            query.AddWhere("NextOperationID", 0);
            query.AddWhere("OperationType", Comparison.NotEquals, 6);
            DataTable dt = query.ExecuteDataSet().Tables[0];

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DDPawnageInfo pawnageInfo = new DDPawnageInfo("PawnageID", dt.Rows[i]["PawnageID"]);
                this.dataGridView1.Rows.Add(1);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["OperationID"].Value   = dt.Rows[i]["OperationID"];
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["PawnageID"].Value     = pawnageInfo.PawnageID;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ParentClassID"].Value = pawnageInfo.ParentID;
                DDPawnageClass parentClass = new DDPawnageClass("ClassID", pawnageInfo.ParentID);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ParentClass"].Value  = parentClass.ClassName;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ChildClassID"].Value = pawnageInfo.ClassID;
                DDPawnageClass childClass = new DDPawnageClass("ClassID", pawnageInfo.ClassID);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ChildClass"].Value      = childClass.ClassName;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["FeeRate"].Value         = dt.Rows[i]["ServiceFeeRate"].ToString();
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["InterestRate"].Value    = dt.Rows[i]["InterestFeeRate"].ToString();
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Description"].Value     = pawnageInfo.Description;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["CountNumber"].Value     = pawnageInfo.CountNumber;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Weight"].Value          = pawnageInfo.Weight;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["DiscountPercent"].Value = pawnageInfo.DiscountPercent;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Amount"].Value          = dt.Rows[i]["Amount"];
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Remark"].Value          = pawnageInfo.Remark;

                //计算上期利息
                DateTime StartDate        = DateTime.Parse(dt.Rows[i]["StartDate"].ToString());
                DateTime EndDate          = DateTime.Parse(dt.Rows[i]["EndDate"].ToString());
                PawnSpan LastInterestSpan = DianDangFunction.GetPawnSpan(StartDate, EndDate, FeeType.InterestFee, PeridType.Within);

                LastInterestFee = (LastInterestSpan.Months + LastInterestSpan.CountDays / 30) * Convert.ToDouble(dt.Rows[i]["InterestFeeRate"].ToString()) * Convert.ToDouble(dt.Rows[i]["Amount"].ToString()) / 100;
                LastInterestFee = DianDangFunction.myRound(LastInterestFee, MainForm.AmountAccuracy);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["InterestFee"].Value = LastInterestFee;
                TotalLastInterestFee += LastInterestFee;
            }
            CaculateAmount();

            this.tbxLastInterestFee.Text = TotalLastInterestFee.ToString();
            this.lblLastInterestFee.Text = newChinese.toChineseChar(Convert.ToDecimal(TotalLastInterestFee));
        }
Ejemplo n.º 9
0
        private void InitGridSource()
        {
            m_GridTable.Rows.Clear();
            int    intStatusID = Convert.ToInt32(this.cbxOperationType.SelectedValue);
            string strStatus   = this.cbxOperationType.Text;
            Query  query       = new Query(DDOperation.Schema);

            query.AddBetweenAnd("OperationDate", Convert.ToDateTime(this.tbxStartDate.Text), Convert.ToDateTime(this.tbxEndDate.Text));

            if (strStatus != "全部")
            {
                query.AddWhere("OperationType", intStatusID);
            }

            DataTable dt = query.ExecuteDataSet().Tables[0];

            if (dt.Rows.Count > 0)
            {
                double serviceFee = 0, interestFee = 0, overdueFee = 0, returnFee = 0;
                double amount = 0, moneyRL = 0;
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DataRow      drow      = m_GridTable.NewRow();
                    DDPawnTicket newTicket = new DDPawnTicket("TicketID", dt.Rows[i]["TicketID"]);
                    drow["TicketNumber"]  = newTicket.TicketNumber;
                    drow["Amount"]        = dt.Rows[i]["Amount"];
                    drow["OperationType"] = dt.Rows[i]["OperationType"];
                    drow["OperationDate"] = dt.Rows[i]["OperationDate"];
                    drow["OperaterName"]  = dt.Rows[i]["OperaterName"];
                    m_GridTable.Rows.Add(drow);

                    amount      = Convert.ToDouble(dt.Rows[i]["Amount"]);
                    serviceFee  = Convert.ToDouble(dt.Rows[i]["ServiceFee"]);
                    interestFee = Convert.ToDouble(dt.Rows[i]["InterestFee"]);
                    overdueFee  = Convert.ToDouble(dt.Rows[i]["OverdueFee"]);
                    returnFee   = Convert.ToDouble(dt.Rows[i]["ReturnFee"]);

                    switch (Convert.ToInt32(dt.Rows[i]["OperationType"]))
                    {
                    case 1:
                        moneyRL = moneyRL - amount + serviceFee;
                        break;

                    case 2:
                        moneyRL = moneyRL + amount + overdueFee + interestFee - returnFee;
                        break;

                    case 3:
                        moneyRL = moneyRL + serviceFee;
                        break;

                    default:
                        break;
                    }
                }
                this.lblMoneyRL.Text = moneyRL.ToString();
            }
        }
Ejemplo n.º 10
0
        private void UpdateCloseOperation()
        {
            DataGridViewRow dgr         = dataGridView1.CurrentRow;
            int             intStatusID = Convert.ToInt32(dgr.Cells["StatusID"].Value);

            if (intStatusID == 1 || intStatusID == 3)
            {
                int          iTicketID = Convert.ToInt32(dgr.Cells["TicketID"].Value);
                DDPawnTicket newTicket = new DDPawnTicket("TicketID", iTicketID);

                Query queryOperations = new Query(DDOperation.Schema);
                queryOperations.AddWhere("TicketID", iTicketID);
                queryOperations.AddWhere("NextOperationID", 0);
                DataTable dtOperations = queryOperations.ExecuteDataSet().Tables[0];
                if (dtOperations.Rows.Count > 0)
                {
                    newTicket.StatusID = 4;
                    newTicket.Save();
                    DateTime operateDate    = DateTime.Now;
                    string   strDate        = operateDate.Year.ToString() + "-" + operateDate.Month.ToString() + "-" + operateDate.Day.ToString();
                    int      preOperationID = 0;

                    for (int i = 0; i < dtOperations.Rows.Count; i++)
                    {
                        DDOperation newOperation = new DDOperation();
                        preOperationID               = Convert.ToInt32(dtOperations.Rows[i]["OperationID"]);
                        newOperation.TicketID        = iTicketID;
                        newOperation.PawnageID       = Convert.ToInt32(dtOperations.Rows[i]["PawnageID"]);
                        newOperation.OperationType   = 4; //4 :绝当
                        newOperation.OperationNumber = m_OperationNumber;
                        newOperation.ServiceFee      = "0";
                        newOperation.InterestFee     = "0";
                        newOperation.ReturnFee       = "0";
                        newOperation.OverdueFee      = "0";
                        newOperation.Amount          = dtOperations.Rows[i]["Amount"].ToString();
                        newOperation.ReckonAmount    = "0";
                        newOperation.OperationDate   = strDate;
                        newOperation.OperaterName    = MainForm.AccountName;
                        newOperation.PreOperationID  = preOperationID;
                        newOperation.NextOperationID = 0;
                        newOperation.Save();

                        DDOperation oldOperation = new DDOperation("OperationID", preOperationID);
                        oldOperation.NextOperationID = newOperation.OperationID;
                        oldOperation.Save();
                    }

                    InitGridSource();
                    dataGridView1.DataSource = m_GridTable;
                    MessageBox.Show("绝当处理成功!", "绝当");
                }
            }
            else
            {
                MessageBox.Show("该当票不能进行绝当操作!", "绝当");
            }
        }
Ejemplo n.º 11
0
        private void LoadTicketInfo(int intTicketID)
        {
            m_TicketID = intTicketID;
            DDPawnTicket newTicket = new DDPawnTicket("TicketID", intTicketID);

            this.tbxTicketNumber.Text = newTicket.TicketNumber;
            this.tbxStartDate.Text    = newTicket.StartDate;
            this.tbxEndDate.Text      = newTicket.EndDate;
            DateTime operationDate = DateTime.Now;

            LoadCustomerInfo(Convert.ToInt32(newTicket.CustomerID));
            Query query = new Query(DDOperation.Schema);

            query.AddWhere("TicketID", intTicketID);
            query.AddWhere("OperationType", 1);
            DataTable dt = query.ExecuteDataSet().Tables[0];

            double totalServiceFee  = 0;
            double totalAmount      = 0;
            double totalInterestFee = 0;
            double paidFee          = 0;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DDPawnageInfo pawnageInfo = new DDPawnageInfo("PawnageID", dt.Rows[i]["PawnageID"]);
                this.dataGridView1.Rows.Add(1);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ParentClassID"].Value = pawnageInfo.ParentID;
                DDPawnageClass parentClass = new DDPawnageClass("ClassID", pawnageInfo.ParentID);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ParentClass"].Value  = parentClass.ClassName;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ChildClassID"].Value = pawnageInfo.ClassID;
                DDPawnageClass childClass = new DDPawnageClass("ClassID", pawnageInfo.ClassID);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ChildClass"].Value      = childClass.ClassName;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["FeeRate"].Value         = pawnageInfo.FeeRate;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["InterestRate"].Value    = pawnageInfo.InterestRate;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Description"].Value     = pawnageInfo.Description;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["CountNumber"].Value     = pawnageInfo.CountNumber;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Weight"].Value          = pawnageInfo.Weight;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["DiscountPercent"].Value = pawnageInfo.DiscountPercent;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Amount"].Value          = dt.Rows[i]["Amount"];
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["PawnageID"].Value       = dt.Rows[i]["PawnageID"].ToString();
                totalAmount      += Convert.ToDouble(dt.Rows[i]["Amount"]);
                totalServiceFee  += Convert.ToDouble(dt.Rows[i]["ServiceFee"]);
                totalInterestFee += Convert.ToDouble(dt.Rows[i]["InterestFee"]);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Remark"].Value = pawnageInfo.Remark;
            }
            this.tbxTotalAmount.Text = totalAmount.ToString();
            this.lblTotalAmount.Text = newChinese.toChineseChar(Convert.ToDecimal(totalAmount));
            this.tbxServiceFee.Text  = totalServiceFee.ToString();
            this.lblServiceFee.Text  = newChinese.toChineseChar(Convert.ToDecimal(totalServiceFee));;
            this.tbxInterestFee.Text = totalInterestFee.ToString();
            this.lblInterestFee.Text = newChinese.toChineseChar(Convert.ToDecimal(totalInterestFee));
            paidFee = totalAmount - totalServiceFee;
            this.tbxPaidFee.Text = paidFee.ToString();
            this.lblPaidFee.Text = newChinese.toChineseChar(Convert.ToDecimal(paidFee));
        }
Ejemplo n.º 12
0
        private void LoadPawnageInfo(int intTicketID)
        {
            DDPawnTicket newTicket = new DDPawnTicket("TicketID", intTicketID);

            this.tbxTicketNumber.Text = newTicket.TicketNumber;
            this.tbxStartDate.Text    = newTicket.StartDate;
            this.tbxEndDate.Text      = newTicket.EndDate;
            this.tbxOperateDate.Text  = newTicket.OperateDate;

            Query query = new Query(DDPawnageInfo.Schema);

            query.AddWhere("TicketID", intTicketID);
            DataSet   ds = query.ExecuteDataSet();
            DataTable dt = ds.Tables[0];

            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    switch (i)
                    {
                    case 0:
                        this.cbxParentClass1.SelectedValue = Convert.ToInt32(dt.Rows[i]["ParentID"]);
                        this.cbxChildClass1.SelectedValue  = Convert.ToInt32(dt.Rows[i]["ClassID"]);
                        this.tbxCount1.Text         = dt.Rows[i]["CountNumber"].ToString();
                        this.tbxPrice1.Text         = dt.Rows[i]["Price"].ToString();
                        this.tbxPercent1.Text       = dt.Rows[i]["DiscountPercent"].ToString();
                        this.tbxPawnageAmount1.Text = dt.Rows[i]["Amount"].ToString();
                        this.tbxDescr1.Text         = dt.Rows[i]["Description"].ToString();
                        break;

                    case 1:
                        this.cbxParentClass2.SelectedValue = Convert.ToInt32(dt.Rows[i]["ParentID"]);
                        this.cbxChildClass2.SelectedValue  = Convert.ToInt32(dt.Rows[i]["ClassID"]);
                        this.tbxCount2.Text         = dt.Rows[i]["CountNumber"].ToString();
                        this.tbxPrice2.Text         = dt.Rows[i]["Price"].ToString();
                        this.tbxPercent2.Text       = dt.Rows[i]["DiscountPercent"].ToString();
                        this.tbxPawnageAmount2.Text = dt.Rows[i]["Amount"].ToString();
                        this.tbxDescr2.Text         = dt.Rows[i]["Description"].ToString();
                        break;

                    case 2:
                        this.cbxParentClass3.SelectedValue = Convert.ToInt32(dt.Rows[i]["ParentID"]);
                        this.cbxChildClass3.SelectedValue  = Convert.ToInt32(dt.Rows[i]["ClassID"]);
                        this.tbxCount3.Text         = dt.Rows[i]["CountNumber"].ToString();
                        this.tbxPrice3.Text         = dt.Rows[i]["Price"].ToString();
                        this.tbxPercent3.Text       = dt.Rows[i]["DiscountPercent"].ToString();
                        this.tbxPawnageAmount3.Text = dt.Rows[i]["Amount"].ToString();
                        this.tbxDescr3.Text         = dt.Rows[i]["Description"].ToString();
                        break;
                    }
                }
            }
        }
Ejemplo n.º 13
0
        private void UpdateOperation()
        {
            try
            {
                if (dataGridView1.Rows.Count > 0)
                {
                    DateTime operateDate = DateTime.Now;
                    string   strDate     = operateDate.Year.ToString() + "-" + operateDate.Month.ToString() + "-" + operateDate.Day.ToString();

                    int iPawnageID     = 0;
                    int preOperationID = 0;
                    for (int i = dataGridView1.Rows.Count - 1; i > -1; i--)
                    {
                        DataGridViewRow dgr = dataGridView1.Rows[i];

                        iPawnageID     = Convert.ToInt32(dgr.Cells["PawnageID"].Value);
                        preOperationID = Convert.ToInt32(dgr.Cells["OperationID"].Value);
                        DDOperation newOperation = new DDOperation();
                        newOperation.TicketID        = m_TicketID;
                        newOperation.PawnageID       = iPawnageID;
                        newOperation.OperationType   = 7; //7:清算
                        newOperation.OperationNumber = m_OperationNumber;
                        newOperation.ServiceFee      = "0";
                        newOperation.InterestFee     = "0";
                        newOperation.ReturnFee       = "0";
                        newOperation.OverdueFee      = "0";
                        newOperation.Amount          = dgr.Cells["Amount"].Value.ToString();
                        newOperation.ReckonAmount    = dgr.Cells["ReckonAmount"].Value.ToString();
                        newOperation.OperationDate   = strDate;
                        newOperation.OperaterName    = MainForm.AccountName;
                        newOperation.PreOperationID  = preOperationID;
                        newOperation.NextOperationID = 0;
                        newOperation.Deleted         = 0;
                        newOperation.Save();

                        DDOperation oldOperation = new DDOperation("OperationID", preOperationID);
                        oldOperation.NextOperationID = newOperation.OperationID;
                        oldOperation.Save();

                        DDPawnageInfo newInfo = new DDPawnageInfo("PawnageID", iPawnageID);
                        newInfo.StatusID = 7;
                        newInfo.Save();
                    }
                    DDPawnTicket newTicket = new DDPawnTicket("TicketID", m_TicketID);
                    newTicket.StatusID = 7;  //7:清算
                    newTicket.Save();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 14
0
        private void InitGridTable(int iTicketID)
        {
            m_GridTable.Columns.Add("TicketNumber", typeof(System.String));
            m_GridTable.Columns.Add("PawnageClass", typeof(System.String));
            m_GridTable.Columns.Add("OperationDate", typeof(System.String));
            m_GridTable.Columns.Add("OperationType", typeof(System.Int32));
            m_GridTable.Columns.Add("Operater", typeof(System.String));
            m_GridTable.Columns.Add("OperationNumber", typeof(String));
            m_GridTable.Columns.Add("StartDate", typeof(System.String));
            m_GridTable.Columns.Add("EndDate", typeof(System.String));
            m_GridTable.Columns.Add("ServiceFee", typeof(System.String));
            m_GridTable.Columns.Add("InterestFee", typeof(System.String));
            m_GridTable.Columns.Add("ReturnServiceFee", typeof(System.String));
            m_GridTable.Columns.Add("OverdueServiceFee", typeof(System.String));


            DDPawnTicket newTicket = new DDPawnTicket("TicketID", iTicketID);

            Query query = new Query(DDOperation.Schema);

            query.AddWhere("TicketID", iTicketID);
            query.AddWhere("OperationType", Comparison.NotEquals, 6);
            DataTable dt = query.ExecuteDataSet().Tables[0];

            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    string Item = dt.Rows[i]["OperationNumber"].ToString();
                    if (!isInSearchStatusList(Item))
                    {
                        DataRow drow = m_GridTable.NewRow();
                        drow["TicketNumber"] = newTicket.TicketNumber;
                        DDPawnageInfo  newInfo  = new DDPawnageInfo("PawnageID", Convert.ToInt32(dt.Rows[i]["PawnageID"]));
                        DDPawnageClass newClass = new DDPawnageClass("ClassID", newInfo.ClassID);
                        drow["PawnageClass"]      = newClass.ClassName;
                        drow["OperationDate"]     = dt.Rows[i]["OperationDate"];
                        drow["OperationType"]     = dt.Rows[i]["OperationType"];
                        drow["Operater"]          = dt.Rows[i]["OperaterName"];
                        drow["OperationNumber"]   = dt.Rows[i]["OperationNumber"];
                        drow["StartDate"]         = dt.Rows[i]["StartDate"];
                        drow["EndDate"]           = dt.Rows[i]["EndDate"];
                        drow["ServiceFee"]        = dt.Rows[i]["ServiceFee"];
                        drow["InterestFee"]       = dt.Rows[i]["InterestFee"];
                        drow["ReturnServiceFee"]  = dt.Rows[i]["ReturnFee"];
                        drow["OverdueServiceFee"] = dt.Rows[i]["OverdueFee"];
                        m_GridTable.Rows.Add(drow);
                        SearchStatus.Add(Item);
                    }
                }
            }
            this.dataGridView1.DataSource = m_GridTable;
        }
Ejemplo n.º 15
0
        public void Insert(int?CustomerID, string TicketNumber, string StartDate, string EndDate, int?StatusID)
        {
            DDPawnTicket item = new DDPawnTicket();

            item.CustomerID = CustomerID;

            item.TicketNumber = TicketNumber;

            item.StartDate = StartDate;

            item.EndDate = EndDate;

            item.StatusID = StatusID;


            item.Save(UserName);
        }
Ejemplo n.º 16
0
        public void Update(int TicketID, int?CustomerID, string TicketNumber, string StartDate, string EndDate, int?StatusID)
        {
            DDPawnTicket item = new DDPawnTicket();

            item.MarkOld();
            item.IsLoaded = true;

            item.TicketID = TicketID;

            item.CustomerID = CustomerID;

            item.TicketNumber = TicketNumber;

            item.StartDate = StartDate;

            item.EndDate = EndDate;

            item.StatusID = StatusID;

            item.Save(UserName);
        }
Ejemplo n.º 17
0
        private void LoadOldTicketInfo(int intTicketID)
        {
            DDPawnTicket newTicket = new DDPawnTicket("TicketID", intTicketID);

            this.lblOldTicketNum.Text = newTicket.TicketNumber;
            this.tbxStartDate.Text    = newTicket.StartDate;
            this.tbxPawnTerm.Text     = "1";
            DateTime endDate = DateTime.Now.AddMonths(1);

            this.tbxEndDate.Text = endDate.Year.ToString() + "-" + endDate.Month.ToString() + "-" + endDate.Day.ToString();

            Query query = new Query(DDTicketPawnage.Schema);

            query.AddWhere("TicketID", intTicketID);
            DataTable dt = query.ExecuteDataSet().Tables[0];

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DDPawnageInfo pawnageInfo = new DDPawnageInfo("PawnageID", dt.Rows[i]["PawnageID"]);
                this.dataGridView1.Rows.Add(1);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ParentClassID"].Value = pawnageInfo.ParentID;
                DDPawnageClass parentClass = new DDPawnageClass("ClassID", pawnageInfo.ParentID);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ParentClass"].Value  = parentClass.ClassName;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ChildClassID"].Value = pawnageInfo.ClassID;
                DDPawnageClass childClass = new DDPawnageClass("ClassID", pawnageInfo.ClassID);
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["ChildClass"].Value      = childClass.ClassName;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["FeeRate"].Value         = childClass.MonthFeeRate;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["InterestRate"].Value    = childClass.InterestRate;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Description"].Value     = pawnageInfo.Description;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["CountNumber"].Value     = pawnageInfo.CountNumber;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Weight"].Value          = pawnageInfo.Weight;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["DiscountPercent"].Value = pawnageInfo.DiscountPercent;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Amount"].Value          = pawnageInfo.Amount;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Remark"].Value          = pawnageInfo.Remark;
            }
            CaculateAmount();
        }
Ejemplo n.º 18
0
        private void UpdatePawnTicket()
        {
            int intCustomerID = UpdateCustomerInfo();

            DDPawnTicket newTicket = new DDPawnTicket();

            newTicket.CompanyID    = 1;
            newTicket.CustomerID   = intCustomerID;
            newTicket.StatusID     = 1;
            newTicket.TicketNumber = this.tbxTicketNumber.Text;
            newTicket.StartDate    = this.tbxStartDate.Text;
            newTicket.EndDate      = this.tbxEndDate.Text;
            newTicket.OperateDate  = this.tbxOperateDate.Text;
            //newTicket.OperatorID = 1111;
            try
            {
                newTicket.Save();
                UpdatePawages(newTicket.TicketID);
            }
            catch
            {
                MessageBox.Show("当票信息更新失败,请检查数据库连接状态!");
            }
        }
Ejemplo n.º 19
0
        private void OperationCount()
        {
            try
            {
                DateTime startDate = Convert.ToDateTime(this.tbxStartDate.Text.Trim());
                DateTime endDate   = Convert.ToDateTime(this.tbxEndDate.Text.Trim());

                int newPawnCount         = 0;
                int closeOfNewCount      = 0;
                int redeemPawnCount      = 0;
                int renewPawnCount       = 0;
                int closePawnCount       = 0;
                int goldOfClosePawnCount = 0;

                int operationType = 0;

                string    selectList      = string.Format("{0},{1},{2},{3},{4}", DDOperation.OperationNumberColumn.ColumnName, DDOperation.OperationTypeColumn.ColumnName, DDOperation.PawnageIDColumn.ColumnName, DDOperation.TicketIDColumn.ColumnName, DDOperation.OperationDateColumn.ColumnName);
                Query     queryOperations = new Query(DDOperation.Schema).SetSelectList(selectList).AddBetweenAnd("OperationDate", startDate, endDate).ORDER_BY(DDOperation.OperationNumberColumn.ColumnName);
                DataTable dtOperations    = queryOperations.ExecuteDataSet().Tables[0];
                if (dtOperations.Rows.Count > 0)
                {
                    string operationNumber    = "0";
                    string preOperationNumber = "0";
                    for (int i = 0; i < dtOperations.Rows.Count; i++)
                    {
                        operationNumber = dtOperations.Rows[i]["OperationNumber"].ToString();

                        if (operationNumber != preOperationNumber)
                        {
                            operationType = Convert.ToInt32(dtOperations.Rows[i]["OperationType"]);
                            switch (operationType)
                            {
                            case 1:
                                newPawnCount++;
                                DDPawnTicket newTicket = new DDPawnTicket("TicketID", Convert.ToInt32(dtOperations.Rows[i]["TicketID"]));
                                if (newTicket.StatusID == 4 || newTicket.StatusID == 7)
                                {
                                    closeOfNewCount++;
                                }
                                break;

                            case 2:
                                redeemPawnCount++;
                                break;

                            case 3:
                                renewPawnCount++;
                                break;

                            case 4:
                                closePawnCount++;
                                DDPawnageInfo newPawnage = new DDPawnageInfo("PawnageID", Convert.ToInt32(dtOperations.Rows[i]["PawnageID"]));
                                if (newPawnage.ParentID == 2)      //109:黄金类ClassID
                                {
                                    goldOfClosePawnCount++;
                                }
                                break;

                            default:
                                break;
                            }
                            preOperationNumber = operationNumber;
                        }
                    }
                }

                double allNewPawnCount = 0;
                //double closeOfAllNewPawnCount = 0;
                double allRedeemPawnCount = 0;
                double allClosePawnCount  = 0;

                DDCompanyInfo company            = new DDCompanyInfo("CompanyID", 1);
                DateTime      setupDate          = Convert.ToDateTime(company.SetupDate);
                Query         queryAllOperations = new Query(DDOperation.Schema).SetSelectList(selectList).DISTINCT().ORDER_BY(DDOperation.OperationNumberColumn.ColumnName);
                queryAllOperations.AddBetweenAnd("OperationDate", setupDate, endDate);  //所有的操作记录
                DataTable dtAllOperations = queryAllOperations.ExecuteDataSet().Tables[0];
                if (dtAllOperations.Rows.Count > 0)
                {
                    string operationNumber    = "0";
                    string preOperationNumber = "0";

                    for (int j = 0; j < dtAllOperations.Rows.Count; j++)
                    {
                        operationNumber = dtAllOperations.Rows[j]["OperationNumber"].ToString();
                        if (operationNumber != preOperationNumber)
                        {
                            operationType = Convert.ToInt32(dtAllOperations.Rows[j]["OperationType"]);
                            if (operationType == 1)
                            {
                                allNewPawnCount++;
                                //    DDPawnTicket newTicket = new DDPawnTicket("TicketID", Convert.ToInt32(dtAllOperations.Rows[j]["TicketID"]));
                                //    if (newTicket.StatusID == 4 || newTicket.StatusID == 7)
                                //    {
                                //        closeOfAllNewPawnCount++;
                                //    }
                            }
                            if (operationType == 2)
                            {
                                allRedeemPawnCount++;
                            }
                            if (operationType == 4)
                            {
                                allClosePawnCount++;
                            }
                            preOperationNumber = operationNumber;
                        }
                    }
                }

                double startTotalCount = 0;
                double endTotalCount   = 0;
                double increCount      = 0;
                endTotalCount   = allNewPawnCount - allRedeemPawnCount - allClosePawnCount;
                increCount      = newPawnCount - redeemPawnCount - closePawnCount;
                startTotalCount = endTotalCount - increCount;

                this.lblNewPawnCount.Text     = newPawnCount.ToString();
                this.lblCloseOfNewCount.Text  = closeOfNewCount.ToString();
                this.lblRenewPawnCount.Text   = renewPawnCount.ToString();
                this.lblSalesCount.Text       = (newPawnCount + renewPawnCount).ToString();
                this.lblRedeemPawnCount.Text  = redeemPawnCount.ToString();
                this.lblClosePawnCount.Text   = closePawnCount.ToString();
                this.lblGoldOfCloseCount.Text = goldOfClosePawnCount.ToString();

                this.lblStartTotalCount.Text = startTotalCount.ToString();
                this.lblEndTotalCount.Text   = endTotalCount.ToString();
                this.lblIncreCount.Text      = increCount.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 20
0
        private void LoadTemplate(int iTicketID, string strOperationNumber)
        {
            double        TotalAmount          = 0;
            double        TotalServiceFee      = 0;
            double        TotalLastInterestFee = 0;
            double        TotalReturnFee       = 0;
            double        TotalOverdueFee      = 0;
            double        FirstTotalServiceFee = 0;
            double        FirstTotalAmount     = 0;
            List <string> strList = new List <string>();

            DDPawnTicket   newTicket   = new DDPawnTicket("TicketID", m_TicketID);
            DDCustomerInfo newCustomer = new DDCustomerInfo("CustomerID", newTicket.CustomerID);

            Query queryOperation = new Query(DDOperation.Schema);

            queryOperation.AddWhere("TicketID", m_TicketID);
            queryOperation.AddWhere("OperationNumber", strOperationNumber);
            queryOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
            DataTable dtOperation = queryOperation.ExecuteDataSet().Tables[0];

            for (int i = 0; i < dtOperation.Rows.Count; i++)
            {
                TotalAmount          += Convert.ToDouble(dtOperation.Rows[i]["Amount"].ToString());
                TotalServiceFee      += Convert.ToDouble(dtOperation.Rows[i]["ServiceFee"].ToString());
                TotalLastInterestFee += Convert.ToDouble(dtOperation.Rows[i]["InterestFee"].ToString());
                TotalReturnFee       += Convert.ToDouble(dtOperation.Rows[i]["ReturnFee"].ToString());
                TotalOverdueFee      += Convert.ToDouble(dtOperation.Rows[i]["OverdueFee"].ToString());
            }
            TotalAmount          = DianDangFunction.myRound(TotalAmount, MainForm.AmountAccuracy);
            TotalServiceFee      = DianDangFunction.myRound(TotalServiceFee, MainForm.AmountAccuracy);
            TotalLastInterestFee = DianDangFunction.myRound(TotalLastInterestFee, MainForm.AmountAccuracy);
            TotalReturnFee       = DianDangFunction.myRound(TotalReturnFee, MainForm.AmountAccuracy);
            TotalOverdueFee      = DianDangFunction.myRound(TotalOverdueFee, MainForm.AmountAccuracy);

            queryOperation = new Query(DDOperation.Schema);
            queryOperation.AddWhere("TicketID", m_TicketID);
            queryOperation.AddWhere("PreOperationID", 0);
            queryOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
            dtOperation = queryOperation.ExecuteDataSet().Tables[0];
            for (int i = 0; i < dtOperation.Rows.Count; i++)
            {
                FirstTotalAmount     += Convert.ToDouble(dtOperation.Rows[i]["Amount"].ToString());
                FirstTotalServiceFee += Convert.ToDouble(dtOperation.Rows[i]["ServiceFee"].ToString());
            }
            FirstTotalAmount     = DianDangFunction.myRound(FirstTotalAmount, MainForm.AmountAccuracy);
            FirstTotalServiceFee = DianDangFunction.myRound(FirstTotalServiceFee, MainForm.AmountAccuracy);



            MSExcel.Application excelApp;              //Excel应用程序变量
            MSExcel.Workbook    excelDoc;              //Excel文档变量
            excelApp = new MSExcel.ApplicationClass(); //初始化
            //由于使用的是COM库,因此有许多变量需要用Nothing代替
            Object Nothing = Missing.Value;

            excelDoc = excelApp.Workbooks._Open(Application.StartupPath + @"\Pram\RedeemTemplate_TongBao.dd", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

            //使用第一个工作表作为插入数据的工作表
            MSExcel.Worksheet ws = (MSExcel.Worksheet)excelDoc.Sheets[1];

            //声明一个MSExcel.Range 类型的变量r
            MSExcel.Range r;

            DDCompanyInfo company = new DDCompanyInfo("CompanyID", 1);

            //r = ws.get_Range(("F" + 4), ("F" + 4)); r.Value2 = company.CompanyName;
            r = ws.get_Range(("K" + 5), ("K" + 5)); r.Value2 = newTicket.TicketNumber.ToString();

            r = ws.get_Range(("D" + 5), ("D" + 5)); r.Value2 = newCustomer.CustomerName;


            //TotalAmount:
            string strTotalMount = TotalAmount.ToString("0.00");

            r = ws.get_Range(("D" + 7), ("D" + 7)); r.Value2 = newChinese.toChineseChar(strTotalMount);
            r = ws.get_Range(("M" + 7), ("M" + 7)); r.Value2 = strTotalMount;


            //Fee
            string strFirstGive = (FirstTotalAmount - FirstTotalServiceFee).ToString("0.00");

            r = ws.get_Range(("E" + 13), ("E" + 13)); r.Value2 = newChinese.toChineseChar(strFirstGive);
            r = ws.get_Range(("L" + 13), ("L" + 13)); r.Value2 = strFirstGive;

            string strFirstServiceFee = FirstTotalServiceFee.ToString("0.00");

            r = ws.get_Range(("E" + 15), ("E" + 15)); r.Value2 = newChinese.toChineseChar(strFirstServiceFee);
            r = ws.get_Range(("L" + 15), ("L" + 15)); r.Value2 = strFirstServiceFee;

            string strOverdue = (Math.Abs(TotalLastInterestFee + TotalOverdueFee - TotalReturnFee + TotalServiceFee)).ToString("0.00");

            r = ws.get_Range(("E" + 17), ("E" + 17)); r.Value2 = newChinese.toChineseChar(strOverdue);
            r = ws.get_Range(("L" + 17), ("L" + 17)); r.Value2 = strOverdue;

            string strAll = (TotalAmount + TotalLastInterestFee + TotalOverdueFee + TotalServiceFee - TotalReturnFee).ToString("0.00");

            strList = newChinese.toStrList(strAll, 5, 2);
            r       = ws.get_Range(("D" + 19), ("D" + 19)); r.Value2 = strList[0];
            r       = ws.get_Range(("E" + 19), ("E" + 19)); r.Value2 = strList[1];
            r       = ws.get_Range(("G" + 19), ("G" + 19)); r.Value2 = strList[2];
            r       = ws.get_Range(("H" + 19), ("H" + 19)); r.Value2 = strList[3];
            r       = ws.get_Range(("I" + 19), ("I" + 19)); r.Value2 = strList[4];
            r       = ws.get_Range(("J" + 19), ("J" + 19)); r.Value2 = strList[5];
            r       = ws.get_Range(("L" + 19), ("L" + 19)); r.Value2 = strList[6];
            r       = ws.get_Range(("N" + 19), ("N" + 19)); r.Value2 = strAll;

            //日期
            DDOperation ThisOperation = new DDOperation("OperationNumber", strOperationNumber);
            DDOperation LastOperation = new DDOperation("OperationID", ThisOperation.PreOperationID);

            DateTime operationDate = Convert.ToDateTime(ThisOperation.OperationDate);
            DateTime lastStartDate = Convert.ToDateTime(LastOperation.StartDate);
            DateTime lastEndDate   = Convert.ToDateTime(LastOperation.EndDate);

            r = ws.get_Range(("C" + 9), ("C" + 9)); r.Value2 = lastStartDate.Year.ToString();
            r = ws.get_Range(("E" + 9), ("E" + 9)); r.Value2 = lastStartDate.Month.ToString();
            r = ws.get_Range(("G" + 9), ("G" + 9)); r.Value2 = lastStartDate.Day.ToString();
            r = ws.get_Range(("I" + 9), ("I" + 9)); r.Value2 = lastEndDate.Year.ToString();
            r = ws.get_Range(("J" + 9), ("J" + 9)); r.Value2 = lastEndDate.Month.ToString();
            r = ws.get_Range(("L" + 9), ("L" + 9)); r.Value2 = lastEndDate.Day.ToString();


            r = ws.get_Range(("B" + 11), ("B" + 11)); r.Value2 = operationDate.Year.ToString();
            r = ws.get_Range(("D" + 11), ("D" + 11)); r.Value2 = operationDate.Month.ToString();
            r = ws.get_Range(("G" + 11), ("G" + 11)); r.Value2 = operationDate.Day.ToString();
            r = ws.get_Range(("L" + 3), ("L" + 3)); r.Value2 = operationDate.Year.ToString();
            r = ws.get_Range(("N" + 3), ("N" + 3)); r.Value2 = operationDate.Month.ToString();
            r = ws.get_Range(("O" + 3), ("O" + 3)); r.Value2 = operationDate.Day.ToString();

            //double serviceFeeRate = Convert.ToDouble(dtOperation.Rows[0]["ServiceFeeRate"].ToString());
            //double interestRate = Convert.ToDouble(dtOperation.Rows[0]["InterestFeeRate"].ToString());
            //r = ws.get_Range(("D" + 11), ("D" + 11)); r.Value2 = serviceFeeRate.ToString();
            //r = ws.get_Range(("D" + 12), ("D" + 12)); r.Value2 = interestRate.ToString();

            DDUser newUser = new DDUser("AccountName", MainForm.AccountName);

            r = ws.get_Range(("K" + 21), ("K" + 21)); r.Value2 = newUser.UserName;

            //WdSaveFormat为Excel文档的保存格式
            object format = MSExcel.XlFileFormat.xlWorkbookNormal;

            //将excelDoc文档对象的内容保存为dd文档
            //excelDoc.Save();
            //excelDoc.SaveAs(path, format, Nothing, Nothing, Nothing, Nothing, MSExcel.ddaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);

            excelDoc.PrintOut(Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing);

            if (File.Exists(Application.StartupPath + @"\Pram\dump.dd"))
            {
                try
                {
                    File.Delete(Application.StartupPath + @"\Pram\dump.dd");
                }
                catch (FieldAccessException e)
                {
                    MessageBox.Show("记录文件正在被使用,请退出Excel\n" + e.ToString());
                }
            }
            excelDoc.SaveAs(Application.StartupPath + @"\Pram\dump.dd", format, Nothing, Nothing, Nothing, Nothing, MSExcel.XlSaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);


            //关闭excelDoc文档对象
            excelDoc.Close(Nothing, Nothing, Nothing);

            //关闭excelApp组件对象
            excelApp.Quit();
            //MessageBox.Show("生成成功");
            //PrintReceipt();
        }
Ejemplo n.º 21
0
        private void btnCaculate_Click(object sender, EventArgs e)
        {
            double totalCount        = 0;
            double totalAmount       = 0;
            double redeemAmount      = 0;
            double closeAmount       = 0;
            double closeClearAmount  = 0;
            double clearAmount       = 0;
            double unclearAmount     = 0;
            double reckoningRlAmount = 0;
            double frezeeAmount      = 0;
            double createServiceFee  = 0;
            double renewServiceFee   = 0;
            double interestFee       = 0;
            double overdueFee        = 0;

            int intTicketID = 0;

            if (dataGridView1.SelectedRows.Count < 1)
            {
                totalCount = m_GridTable.Rows.Count;
            }
            else
            {
                totalCount = dataGridView1.SelectedRows.Count;
            }
            for (int i = 0; i < totalCount; i++)
            {
                if (dataGridView1.SelectedRows.Count < 1)
                {
                    intTicketID = Convert.ToInt32(m_GridTable.Rows[i]["TicketID"]);
                }
                else
                {
                    intTicketID = Convert.ToInt32(dataGridView1.SelectedRows[i].Cells["TicketID"].Value);
                }
                DDPawnTicket newTicket = new DDPawnTicket("TicketID", intTicketID);

                Query query = new Query(DDOperation.Schema);
                query.AddWhere("TicketID", intTicketID);
                DataTable dt = query.ExecuteDataSet().Tables[0];
                if (dt.Rows.Count > 0)
                {
                    int    operationType  = 0;
                    double amount         = 0;
                    double tmpServiceFee  = 0;
                    double tmpInterestFee = 0;
                    double tmpOverdueFee  = 0;
                    double tmpReturnFee   = 0;

                    for (int j = 0; j < dt.Rows.Count; j++)
                    {
                        operationType  = Convert.ToInt32(dt.Rows[j]["OperationType"]);
                        amount         = Convert.ToDouble(dt.Rows[j]["Amount"]);
                        tmpServiceFee  = Convert.ToDouble(dt.Rows[j]["ServiceFee"]);
                        tmpInterestFee = Convert.ToDouble(dt.Rows[j]["InterestFee"]);

                        switch (operationType)
                        {
                        case 1:
                            totalAmount      += amount;
                            createServiceFee += tmpServiceFee;
                            interestFee      += tmpInterestFee;
                            break;

                        case 2:
                            redeemAmount += amount;
                            interestFee  += tmpInterestFee;
                            tmpOverdueFee = Convert.ToDouble(dt.Rows[j]["OverdueFee"]);
                            tmpReturnFee  = Convert.ToDouble(dt.Rows[j]["ReturnFee"]);
                            overdueFee   += tmpOverdueFee;
                            break;

                        case 3:
                            interestFee     += tmpInterestFee;
                            renewServiceFee += tmpServiceFee;
                            break;

                        case 4:
                            closeAmount += amount;
                            break;

                        case 5:
                            frezeeAmount += amount;
                            break;

                        case 7:
                            closeClearAmount += amount;
                            clearAmount      += Convert.ToDouble(dt.Rows[j]["ReckonAmount"]);
                            break;

                        default:
                            break;
                        }
                    }
                    reckoningRlAmount = clearAmount - closeClearAmount;
                    unclearAmount     = closeAmount - closeClearAmount;
                }
            }

            this.lblTotalCount.Text       = totalCount.ToString();
            this.lblTotalAmount.Text      = totalAmount.ToString();
            this.lblRedeemAmount.Text     = redeemAmount.ToString();
            this.lblCloseAmount.Text      = closeAmount.ToString();
            this.lblCloseClearAmount.Text = closeClearAmount.ToString();
            this.lblClearAmount.Text      = clearAmount.ToString();
            this.lblUnclearAmount.Text    = unclearAmount.ToString();
            this.lblReckoningRL.Text      = reckoningRlAmount.ToString();
            this.lblFrezeeAmount.Text     = frezeeAmount.ToString();
            this.lblCreateServiceFee.Text = createServiceFee.ToString();
            this.lblRenewServiceFee.Text  = renewServiceFee.ToString();
            this.lblInterestFee.Text      = interestFee.ToString();
            this.lblOverdueFee.Text       = overdueFee.ToString();

            this.gbCaculate.Visible = true;
        }
Ejemplo n.º 22
0
        private void LoadTemplate(int iTicketID, string strOperationNumber)
        {
            double TotalAmount          = 0;
            double TotalServiceFee      = 0;
            double TotalLastInterestFee = 0;

            DDPawnTicket newTicket = new DDPawnTicket("TicketID", m_TicketID);

            Query queryOperation = new Query(DDOperation.Schema);

            queryOperation.AddWhere("TicketID", m_TicketID);
            queryOperation.AddWhere("OperationNumber", strOperationNumber);
            queryOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
            DataTable dtOperation = queryOperation.ExecuteDataSet().Tables[0];

            for (int i = 0; i < dtOperation.Rows.Count; i++)
            {
                TotalAmount          += Convert.ToDouble(dtOperation.Rows[i]["Amount"].ToString());
                TotalServiceFee      += Convert.ToDouble(dtOperation.Rows[i]["ServiceFee"].ToString());
                TotalLastInterestFee += Convert.ToDouble(dtOperation.Rows[i]["InterestFee"].ToString());
            }
            TotalAmount          = DianDangFunction.myRound(TotalAmount, MainForm.AmountAccuracy);
            TotalServiceFee      = DianDangFunction.myRound(TotalServiceFee, MainForm.AmountAccuracy);
            TotalLastInterestFee = DianDangFunction.myRound(TotalLastInterestFee, MainForm.AmountAccuracy);


            MSExcel.Application excelApp;              //Excel应用程序变量
            MSExcel.Workbook    excelDoc;              //Excel文档变量
            excelApp = new MSExcel.ApplicationClass(); //初始化
            //由于使用的是COM库,因此有许多变量需要用Nothing代替
            Object Nothing = Missing.Value;

            excelDoc = excelApp.Workbooks._Open(Application.StartupPath + @"\Pram\RenewTemplate.dd", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

            //使用第一个工作表作为插入数据的工作表
            MSExcel.Worksheet ws = (MSExcel.Worksheet)excelDoc.Sheets[1];

            //声明一个MSExcel.Range 类型的变量r
            MSExcel.Range r;

            DDCompanyInfo company = new DDCompanyInfo("CompanyID", 1);

            //this.lblCompanyName.Text = company.CompanyName;
            //this.lblOldTicketNumber.Text = frmRenewPawnOperation.lblOldTicketNum.Text;
            r = ws.get_Range(("F" + 4), ("F" + 4)); r.Value2 = company.CompanyName;
            r = ws.get_Range(("M" + 4), ("M" + 4)); r.Value2 = newTicket.TicketNumber.ToString();
            ;
            DDCustomerInfo newCustomer = new DDCustomerInfo("CustomerID", newTicket.CustomerID);

            //this.lblCustomerName.Text = newCustomer.CustomerName;
            //this.lblContactPerson.Text = newCustomer.ContactPerson;
            r = ws.get_Range(("F" + 5), ("F" + 5)); r.Value2 = newCustomer.CustomerName;
            r = ws.get_Range(("M" + 5), ("M" + 5)); r.Value2 = newCustomer.ContactPerson;

            //this.lblAmount.Text = frmRenewPawnOperation.tbxTotalAmount.Text;
            //this.lblAmountChinese.Text = newChinese.toChineseChar(Convert.ToDecimal(frmRenewPawnOperation.tbxTotalAmount.Text));
            //this.lblServiceFee.Text = frmRenewPawnOperation.tbxServiceFee.Text;
            //this.lblServiceFeeChinese.Text = newChinese.toChineseChar(Convert.ToDecimal(frmRenewPawnOperation.tbxServiceFee.Text));
            //this.lblPaidInterestFee.Text = frmRenewPawnOperation.lblPaidInterest.Text;
            //this.lblPaidInterestFeeChinese.Text = newChinese.toChineseChar(Convert.ToDecimal(frmRenewPawnOperation.lblPaidInterest.Text));
            r = ws.get_Range(("M" + 6), ("M" + 6)); r.Value2 = TotalAmount.ToString("0.00");
            r = ws.get_Range(("H" + 6), ("H" + 6)); r.Value2 = newChinese.toChineseChar(Convert.ToDecimal(TotalAmount));
            r = ws.get_Range(("M" + 7), ("M" + 7)); r.Value2 = TotalServiceFee.ToString("0.00");
            r = ws.get_Range(("H" + 7), ("H" + 7)); r.Value2 = newChinese.toChineseChar(Convert.ToDecimal(TotalServiceFee));
            r = ws.get_Range(("M" + 8), ("M" + 8)); r.Value2 = TotalLastInterestFee.ToString("0.00");
            r = ws.get_Range(("H" + 8), ("H" + 8)); r.Value2 = newChinese.toChineseChar(Convert.ToDecimal(TotalLastInterestFee));

            double totalPaidFee = TotalServiceFee + TotalLastInterestFee;

            //this.lblPaidFee.Text = totalPaidFee.ToString();
            //this.lblPaidFeeChinese.Text = newChinese.toChineseChar(Convert.ToDecimal(totalPaidFee));
            r = ws.get_Range(("H" + 9), ("H" + 9)); r.Value2 = newChinese.toChineseChar(Convert.ToDecimal(totalPaidFee));
            r = ws.get_Range(("M" + 9), ("M" + 9)); r.Value2 = totalPaidFee.ToString("0.00");

            DateTime startDate     = Convert.ToDateTime(dtOperation.Rows[0]["StartDate"].ToString());
            DateTime endDate       = Convert.ToDateTime(dtOperation.Rows[0]["EndDate"].ToString());
            DateTime operationDate = Convert.ToDateTime(dtOperation.Rows[0]["OperationDate"].ToString());

            //this.lblStartYear.Text = startDate.Year.ToString();
            //this.lblStartMonth.Text = startDate.Month.ToString();
            //this.lblStartDay.Text = startDate.Day.ToString();
            //this.lblEndYear.Text = endDate.Year.ToString();
            //this.lblEndMonth.Text = endDate.Month.ToString();
            //this.lblEndDay.Text = endDate.Day.ToString();
            //this.lblOperationYear.Text = operationDate.Year.ToString();
            //this.lblOperationMonth.Text = operationDate.Month.ToString();
            //this.lblOperationDay.Text = operationDate.Day.ToString();
            r = ws.get_Range(("F" + 10), ("F" + 10)); r.Value2 = startDate.Year.ToString();
            r = ws.get_Range(("I" + 10), ("I" + 10)); r.Value2 = startDate.Month.ToString();
            r = ws.get_Range(("J" + 10), ("J" + 10)); r.Value2 = startDate.Day.ToString();
            r = ws.get_Range(("K" + 10), ("K" + 10)); r.Value2 = endDate.Year.ToString();
            r = ws.get_Range(("L" + 10), ("L" + 10)); r.Value2 = endDate.Month.ToString();
            r = ws.get_Range(("M" + 10), ("M" + 10)); r.Value2 = endDate.Day.ToString();
            r = ws.get_Range(("M" + 13), ("M" + 13)); r.Value2 = operationDate.Year.ToString();
            r = ws.get_Range(("O" + 13), ("O" + 13)); r.Value2 = operationDate.Month.ToString();
            r = ws.get_Range(("Q" + 13), ("Q" + 13)); r.Value2 = operationDate.Day.ToString();


            double serviceFeeRate = Convert.ToDouble(dtOperation.Rows[0]["ServiceFeeRate"].ToString());
            double interestRate   = Convert.ToDouble(dtOperation.Rows[0]["InterestFeeRate"].ToString());

            //this.lblMonthFeeRate.Text = serviceFeeRate.ToString();
            //this.lblInterestFeeRate.Text = interestRate.ToString();
            //this.lblOperater.Text = MainForm.AccountName;
            r = ws.get_Range(("D" + 11), ("D" + 11)); r.Value2 = serviceFeeRate.ToString();
            r = ws.get_Range(("D" + 12), ("D" + 12)); r.Value2 = interestRate.ToString();

            DDUser newUser = new DDUser("AccountName", MainForm.AccountName);

            r = ws.get_Range(("I" + 13), ("I" + 13)); r.Value2 = newUser.UserName;

            //WdSaveFormat为Excel文档的保存格式
            object format = MSExcel.XlFileFormat.xlWorkbookNormal;

            //将excelDoc文档对象的内容保存为dd文档
            //excelDoc.Save();
            //excelDoc.SaveAs(path, format, Nothing, Nothing, Nothing, Nothing, MSExcel.ddaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);

            excelDoc.PrintOut(Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing);

            if (File.Exists(Application.StartupPath + @"\Pram\dump.dd"))
            {
                try
                {
                    File.Delete(Application.StartupPath + @"\Pram\dump.dd");
                }
                catch (FieldAccessException e)
                {
                    MessageBox.Show("记录文件正在被使用,请退出Excel\n" + e.ToString());
                }
            }
            excelDoc.SaveAs(Application.StartupPath + @"\Pram\dump.dd", format, Nothing, Nothing, Nothing, Nothing, MSExcel.XlSaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);


            //关闭excelDoc文档对象
            excelDoc.Close(Nothing, Nothing, Nothing);

            //关闭excelApp组件对象
            excelApp.Quit();
            //MessageBox.Show("生成成功");
            //PrintReceipt();
        }
Ejemplo n.º 23
0
        private void UpdateOperation()
        {
            try
            {
                if (dataGridView1.Rows.Count > 0)
                {
                    DDPawnTicket newTicket = new DDPawnTicket("TicketID", m_TicketID);

                    newTicket.StatusID = 3;  //3:续当
                    newTicket.EndDate  = this.tbxEndDate.Text;
                    newTicket.Save();

                    int iPawnageID     = 0;
                    int preOperationID = 0;

                    for (int i = dataGridView1.Rows.Count - 1; i > -1; i--)
                    {
                        DataGridViewRow dgr = dataGridView1.Rows[i];
                        iPawnageID = Convert.ToInt32(dgr.Cells["PawnageID"].Value);
                        DDPawnageInfo newInfo = new DDPawnageInfo("PawnageID", iPawnageID);


                        preOperationID = Convert.ToInt32(dgr.Cells["OperationID"].Value);
                        DDOperation newOperation = new DDOperation();
                        newOperation.TicketID        = m_TicketID;
                        newOperation.PawnageID       = iPawnageID;
                        newOperation.OperationType   = 3; //3 :续当
                        newOperation.OperationNumber = m_OperationNumber;
                        newOperation.ServiceFee      = dataGridView1.Rows[i].Cells["ServiceFee"].Value.ToString();
                        newOperation.InterestFee     = dataGridView1.Rows[i].Cells["InterestFee"].Value.ToString();
                        newOperation.ReturnFee       = "0";
                        newOperation.OverdueFee      = "0";
                        newOperation.Amount          = dgr.Cells["Amount"].Value.ToString();
                        newOperation.ReckonAmount    = "0";
                        newOperation.OperationDate   = this.tbxOperationDate.Text;
                        newOperation.StartDate       = this.tbxStartDate.Text;
                        newOperation.EndDate         = this.tbxEndDate.Text;
                        DDUser newOperater = new DDUser("AccountName", MainForm.AccountName);
                        newOperation.OperaterName    = newOperater.UserName;
                        newOperation.PreOperationID  = preOperationID;
                        newOperation.ServiceFeeRate  = dgr.Cells["FeeRate"].Value.ToString();
                        newOperation.InterestFeeRate = dgr.Cells["InterestRate"].Value.ToString();
                        newOperation.NextOperationID = 0;
                        newOperation.Deleted         = 0;
                        newOperation.Save();

                        DDOperation oldOperation = new DDOperation("OperationID", preOperationID);
                        oldOperation.NextOperationID = newOperation.OperationID;
                        oldOperation.Save();

                        newInfo.FeeRate      = dgr.Cells["FeeRate"].Value.ToString();
                        newInfo.InterestRate = dgr.Cells["InterestRate"].Value.ToString();
                        newInfo.EndDate      = this.tbxEndDate.Text;
                        newInfo.StatusID     = 3; //续当
                        newInfo.Save();
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 24
0
        private void UpdateOperation()
        {
            try
            {
                DataGridViewRow dgr         = dataGridView1.CurrentRow;
                int             intStatusID = Convert.ToInt32(dgr.Cells["StatusID"].Value);

                if (intStatusID == 1 || intStatusID == 3)
                {
                    int          iTicketID = Convert.ToInt32(dgr.Cells["TicketID"].Value);
                    DDPawnTicket newTicket = new DDPawnTicket("TicketID", iTicketID);

                    Query queryOperations = new Query(DDOperation.Schema);
                    queryOperations.AddWhere("TicketID", iTicketID);
                    queryOperations.AddWhere("NextOperationID", 0);
                    queryOperations.AddWhere("OperationType", Comparison.NotEquals, 6);
                    DataTable dtOperations = queryOperations.ExecuteDataSet().Tables[0];
                    if (dtOperations.Rows.Count > 0)
                    {
                        newTicket.StatusID = 4;
                        newTicket.Save();
                        int preOperationID = 0;

                        for (int i = 0; i < dtOperations.Rows.Count; i++)
                        {
                            DDOperation newOperation = new DDOperation();
                            preOperationID               = Convert.ToInt32(dtOperations.Rows[i]["OperationID"]);
                            newOperation.TicketID        = iTicketID;
                            newOperation.PawnageID       = Convert.ToInt32(dtOperations.Rows[i]["PawnageID"]);
                            newOperation.OperationType   = 4; //4 :绝当
                            newOperation.OperationNumber = m_OperationNumber;
                            newOperation.ServiceFee      = "0";
                            newOperation.InterestFee     = "0";
                            newOperation.ReturnFee       = "0";
                            newOperation.OverdueFee      = "0";
                            newOperation.Amount          = dtOperations.Rows[i]["Amount"].ToString();
                            newOperation.ReckonAmount    = "0";
                            newOperation.OperationDate   = dgr.Cells["OperationDate"].Value.ToString();
                            newOperation.OperaterName    = MainForm.AccountName;
                            newOperation.PreOperationID  = preOperationID;
                            newOperation.NextOperationID = 0;
                            newOperation.Deleted         = 0;
                            newOperation.Save();

                            DDOperation oldOperation = new DDOperation("OperationID", preOperationID);
                            oldOperation.NextOperationID = newOperation.OperationID;
                            oldOperation.Save();


                            //更新当品信息与当票信息
                            DDPawnageInfo newPawn = new DDPawnageInfo("PawnageID", dtOperations.Rows[i]["PawnageID"]);
                            newPawn.StatusID = 4;  //绝当
                            newPawn.Save();
                        }

                        InitGridSource();
                        dataGridView1.DataSource = m_GridTable;
                        MessageBox.Show("绝当处理成功!", "绝当");
                    }
                }
                else
                {
                    MessageBox.Show("该当票不能进行绝当操作!", "绝当");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 25
0
        private void LoadTemplate(RenewPawnOperationForm frmRenewPawnOperation, int iTicketID)
        {
            MSExcel.Application excelApp;              //Excel应用程序变量
            MSExcel.Workbook    excelDoc;              //Excel文档变量
            excelApp = new MSExcel.ApplicationClass(); //初始化
            //由于使用的是COM库,因此有许多变量需要用Nothing代替
            Object Nothing = Missing.Value;

            excelDoc = excelApp.Workbooks._Open(Application.StartupPath + @"\Pram\RenewTemplate.dd", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

            //使用第一个工作表作为插入数据的工作表
            MSExcel.Worksheet ws = (MSExcel.Worksheet)excelDoc.Sheets[1];

            //声明一个MSExcel.Range 类型的变量r
            MSExcel.Range r;

            DDCompanyInfo company = new DDCompanyInfo("CompanyID", 1);

            //this.lblCompanyName.Text = company.CompanyName;
            //this.lblOldTicketNumber.Text = frmRenewPawnOperation.lblOldTicketNum.Text;
            r = ws.get_Range(("F" + 4), ("F" + 4)); r.Value2 = company.CompanyName;
            r = ws.get_Range(("M" + 4), ("M" + 4)); r.Value2 = frmRenewPawnOperation.lblOldTicketNum.Text;

            m_TicketID = iTicketID;
            DDPawnTicket   newTicket   = new DDPawnTicket("TicketID", iTicketID);
            DDCustomerInfo newCustomer = new DDCustomerInfo("CustomerID", newTicket.CustomerID);

            //this.lblCustomerName.Text = newCustomer.CustomerName;
            //this.lblContactPerson.Text = newCustomer.ContactPerson;
            r = ws.get_Range(("F" + 5), ("F" + 5)); r.Value2 = newCustomer.CustomerName;
            r = ws.get_Range(("M" + 5), ("M" + 5)); r.Value2 = newCustomer.ContactPerson;

            //this.lblAmount.Text = frmRenewPawnOperation.tbxTotalAmount.Text;
            //this.lblAmountChinese.Text = newChinese.toChineseChar(Convert.ToDecimal(frmRenewPawnOperation.tbxTotalAmount.Text));
            //this.lblServiceFee.Text = frmRenewPawnOperation.tbxServiceFee.Text;
            //this.lblServiceFeeChinese.Text = newChinese.toChineseChar(Convert.ToDecimal(frmRenewPawnOperation.tbxServiceFee.Text));
            //this.lblPaidInterestFee.Text = frmRenewPawnOperation.lblPaidInterest.Text;
            //this.lblPaidInterestFeeChinese.Text = newChinese.toChineseChar(Convert.ToDecimal(frmRenewPawnOperation.lblPaidInterest.Text));
            r = ws.get_Range(("M" + 6), ("M" + 6)); r.Value2 = Convert.ToDouble(frmRenewPawnOperation.tbxTotalAmount.Text).ToString("0.00");
            r = ws.get_Range(("H" + 6), ("H" + 6)); r.Value2 = newChinese.toChineseChar(Convert.ToDecimal(frmRenewPawnOperation.tbxTotalAmount.Text));
            r = ws.get_Range(("M" + 7), ("M" + 7)); r.Value2 = Convert.ToDouble(frmRenewPawnOperation.tbxServiceFee.Text).ToString("0.00");
            r = ws.get_Range(("H" + 7), ("H" + 7)); r.Value2 = newChinese.toChineseChar(Convert.ToDecimal(frmRenewPawnOperation.tbxServiceFee.Text));
            r = ws.get_Range(("M" + 8), ("M" + 8)); r.Value2 = Convert.ToDouble(frmRenewPawnOperation.tbxLastInterestFee.Text).ToString("0.00");
            r = ws.get_Range(("H" + 8), ("H" + 8)); r.Value2 = newChinese.toChineseChar(Convert.ToDecimal(frmRenewPawnOperation.tbxLastInterestFee.Text));

            double totalPaidFee = Convert.ToDouble(frmRenewPawnOperation.tbxServiceFee.Text) + Convert.ToDouble(frmRenewPawnOperation.tbxLastInterestFee.Text);

            //this.lblPaidFee.Text = totalPaidFee.ToString();
            //this.lblPaidFeeChinese.Text = newChinese.toChineseChar(Convert.ToDecimal(totalPaidFee));
            r = ws.get_Range(("H" + 9), ("H" + 9)); r.Value2 = newChinese.toChineseChar(Convert.ToDecimal(totalPaidFee));
            r = ws.get_Range(("M" + 9), ("M" + 9)); r.Value2 = totalPaidFee.ToString("0.00");

            DateTime startDate     = Convert.ToDateTime(frmRenewPawnOperation.tbxStartDate.Text);
            DateTime endDate       = Convert.ToDateTime(frmRenewPawnOperation.tbxEndDate.Text);
            DateTime operationDate = Convert.ToDateTime(frmRenewPawnOperation.tbxOperationDate.Text);

            //this.lblStartYear.Text = startDate.Year.ToString();
            //this.lblStartMonth.Text = startDate.Month.ToString();
            //this.lblStartDay.Text = startDate.Day.ToString();
            //this.lblEndYear.Text = endDate.Year.ToString();
            //this.lblEndMonth.Text = endDate.Month.ToString();
            //this.lblEndDay.Text = endDate.Day.ToString();
            //this.lblOperationYear.Text = operationDate.Year.ToString();
            //this.lblOperationMonth.Text = operationDate.Month.ToString();
            //this.lblOperationDay.Text = operationDate.Day.ToString();
            r = ws.get_Range(("F" + 10), ("F" + 10)); r.Value2 = startDate.Year.ToString();
            r = ws.get_Range(("I" + 10), ("I" + 10)); r.Value2 = startDate.Month.ToString();
            r = ws.get_Range(("J" + 10), ("J" + 10)); r.Value2 = startDate.Day.ToString();
            r = ws.get_Range(("K" + 10), ("K" + 10)); r.Value2 = endDate.Year.ToString();
            r = ws.get_Range(("L" + 10), ("L" + 10)); r.Value2 = endDate.Month.ToString();
            r = ws.get_Range(("M" + 10), ("M" + 10)); r.Value2 = endDate.Day.ToString();
            r = ws.get_Range(("M" + 13), ("M" + 13)); r.Value2 = operationDate.Year.ToString();
            r = ws.get_Range(("O" + 13), ("O" + 13)); r.Value2 = operationDate.Month.ToString();
            r = ws.get_Range(("Q" + 13), ("Q" + 13)); r.Value2 = operationDate.Day.ToString();


            double serviceFeeRate = Convert.ToDouble(frmRenewPawnOperation.dataGridView1.Rows[0].Cells["FeeRate"].Value);
            double interestRate   = Convert.ToDouble(frmRenewPawnOperation.dataGridView1.Rows[0].Cells["InterestRate"].Value);

            //this.lblMonthFeeRate.Text = serviceFeeRate.ToString();
            //this.lblInterestFeeRate.Text = interestRate.ToString();
            //this.lblOperater.Text = MainForm.AccountName;
            r = ws.get_Range(("D" + 11), ("D" + 11)); r.Value2 = serviceFeeRate.ToString();
            r = ws.get_Range(("D" + 12), ("D" + 12)); r.Value2 = interestRate.ToString();

            DDUser newUser = new DDUser("AccountName", MainForm.AccountName);

            r = ws.get_Range(("I" + 13), ("I" + 13)); r.Value2 = newUser.UserName;

            //WdSaveFormat为Excel文档的保存格式
            object format = MSExcel.XlFileFormat.xlWorkbookNormal;

            //将excelDoc文档对象的内容保存为dd文档
            //excelDoc.Save();
            //excelDoc.SaveAs(path, format, Nothing, Nothing, Nothing, Nothing, MSExcel.ddaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);

            excelDoc.PrintOut(Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing);

            if (File.Exists(Application.StartupPath + @"\Pram\dump.dd"))
            {
                try
                {
                    File.Delete(Application.StartupPath + @"\Pram\dump.dd");
                }
                catch (FieldAccessException e)
                {
                    MessageBox.Show("记录文件正在被使用,请退出Excel\n" + e.ToString());
                }
            }
            excelDoc.SaveAs(Application.StartupPath + @"\Pram\dump.dd", format, Nothing, Nothing, Nothing, Nothing, MSExcel.XlSaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);


            //关闭excelDoc文档对象
            excelDoc.Close(Nothing, Nothing, Nothing);

            //关闭excelApp组件对象
            excelApp.Quit();
            //MessageBox.Show("生成成功");
            //PrintReceipt();
        }
Ejemplo n.º 26
0
        private void btnSearch_Click(object sender, EventArgs e)
        {
            m_GridTable.Rows.Clear();
            Query  queryPawnage = new Query(DDPawnageInfo.Schema);
            bool   RedyToQuery  = true;
            double Amount       = 0;
            string KeyWord      = "%" + tbxKeyWord.Text + "%";


            #region 加上SearchRange查询限制
            switch (cbxSearchRange.Text)
            {
            case "在库全部":
                queryPawnage.AddWhere("StatusID", Comparison.In, new int[] { 1, 3, 4, 5 });
                break;

            case "在库正常":
                queryPawnage.AddWhere("StatusID", Comparison.In, new int[] { 1, 3 });
                queryPawnage.AddBetweenAnd("EndDate", DateTime.Now, new DateTime(9999, 12, 23));
                break;

            case "在库过期":
                queryPawnage.AddWhere("StatusID", Comparison.In, new int[] { 1, 3 });
                queryPawnage.AddBetweenAnd("EndDate", new DateTime(1900, 1, 1), DateTime.Now);
                break;

            case "冻结当品":
                queryPawnage.AddWhere("StatusID", 5);
                break;

            case "已绝当":
                queryPawnage.AddWhere("StatusID", 4);
                break;

            case "已赎回":
                queryPawnage.AddWhere("StatusID", 2);
                break;

            case "已清算":
                queryPawnage.AddWhere("StatusID", 7);
                break;

            default:
                break;
            }
            #endregion


            #region 加上SearchOption查询限制

            Hashtable PawnageIDList = new Hashtable();
            if (cbxSearchOption.Text == "当票号")
            {
                Query queryTicket = new Query(DDPawnTicket.Schema);
                queryTicket.AddWhere("TicketNumber", Comparison.Like, KeyWord);
                DataTable dtTicket     = queryTicket.ExecuteDataSet().Tables[0];
                int[]     TicketIDList = new int[dtTicket.Rows.Count];
                for (int i = 0; i < dtTicket.Rows.Count; i++)
                {
                    TicketIDList[i] = Convert.ToInt32(dtTicket.Rows[i]["TicketID"].ToString());
                }

                Query queryOperation = new Query(DDOperation.Schema);
                queryOperation.AddWhere("TicketID", Comparison.In, TicketIDList);
                queryOperation.AddWhere("NextOperationID", 0);
                queryOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
                DataTable dtOperation = queryOperation.ExecuteDataSet().Tables[0];
                for (int i = 0; i < dtOperation.Rows.Count; i++)
                {
                    PawnageIDList.Add(dtOperation.Rows[i]["PawnageID"], 0);
                }
            }
            else if (cbxSearchOption.Text == "客户姓名")
            {
                Query queryCustomer = new Query(DDCustomerInfo.Schema);
                queryCustomer.AddWhere("CustomerName", Comparison.Like, KeyWord);
                DataTable dtCustomer     = queryCustomer.ExecuteDataSet().Tables[0];
                int[]     CustomerIDList = new int[dtCustomer.Rows.Count];
                for (int i = 0; i < dtCustomer.Rows.Count; i++)
                {
                    CustomerIDList[i] = Convert.ToInt32(dtCustomer.Rows[i]["CustomerID"].ToString());
                }

                Query queryTicket = new Query(DDPawnTicket.Schema);
                queryTicket.AddWhere("CustomerID", Comparison.In, CustomerIDList);
                DataTable dtTicket     = queryTicket.ExecuteDataSet().Tables[0];
                int[]     TicketIDList = new int[dtTicket.Rows.Count];
                for (int i = 0; i < dtTicket.Rows.Count; i++)
                {
                    TicketIDList[i] = Convert.ToInt32(dtTicket.Rows[i]["TicketID"].ToString());
                }

                Query queryOperation = new Query(DDOperation.Schema);
                queryOperation.AddWhere("TicketID", Comparison.In, TicketIDList);
                queryOperation.AddWhere("NextOperationID", 0);
                queryOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
                DataTable dtOperation = queryOperation.ExecuteDataSet().Tables[0];

                for (int i = 0; i < dtOperation.Rows.Count; i++)
                {
                    PawnageIDList.Add(dtOperation.Rows[i]["PawnageID"], 0);
                }
            }
            else if (cbxSearchOption.Text == "当值大于")
            {
                try
                {
                    Amount = Convert.ToDouble(tbxKeyWord.Text);
                    queryPawnage.AddWhere("Price", Comparison.GreaterOrEquals, Amount);
                }
                catch
                {
                    RedyToQuery = false;
                    MessageBox.Show("请填入正确的金额", "提示信息");
                }
            }
            else if (cbxSearchOption.Text == "当值小于")
            {
                try
                {
                    Amount = Convert.ToDouble(tbxKeyWord.Text);
                    queryPawnage.AddWhere("Price", Comparison.LessThan, Amount);
                }
                catch
                {
                    RedyToQuery = false;
                    MessageBox.Show("请填入正确的金额", "提示信息");
                }
            }
            else if (cbxSearchOption.Text == "一级分类")
            {
                queryPawnage.AddWhere("ParentID", cbxClassSelector.SelectedValue);
            }
            else if (cbxSearchOption.Text == "二级分类")
            {
                queryPawnage.AddWhere("ClassID", cbxClassSelector.SelectedValue);
            }
            else
            {
                queryPawnage.AddWhere(cbxSearchOption.SelectedValue.ToString(), Comparison.Like, KeyWord);
            }
            #endregion



            #region 执行查询
            if (RedyToQuery)
            {
                DataTable dtPawnage = queryPawnage.ExecuteDataSet().Tables[0];
                for (int i = 0; i < dtPawnage.Rows.Count; i++)
                {
                    if ((PawnageIDList[dtPawnage.Rows[i]["PawnageID"]] != null && (this.cbxSearchOption.Text == "当票号" || this.cbxSearchOption.Text == "客户姓名")) || (this.cbxSearchOption.Text != "当票号" && this.cbxSearchOption.Text != "客户姓名"))
                    {
                        DataRow dRow = m_GridTable.NewRow();
                        dRow["PawnageID"]     = dtPawnage.Rows[i]["PawnageID"].ToString();
                        dRow["OperationFlag"] = false;
                        dRow["FirstClass"]    = dtPawnage.Rows[i]["ParentID"].ToString();
                        dRow["SecondClass"]   = dtPawnage.Rows[i]["ClassID"].ToString();
                        dRow["Description"]   = dtPawnage.Rows[i]["Description"].ToString();
                        dRow["Weight"]        = dtPawnage.Rows[i]["Weight"].ToString();
                        dRow["Price"]         = dtPawnage.Rows[i]["Price"].ToString();
                        dRow["TotalCount"]    = dtPawnage.Rows[i]["CountNumber"].ToString();
                        dRow["FeeRate"]       = dtPawnage.Rows[i]["FeeRate"].ToString();
                        dRow["InterestRate"]  = dtPawnage.Rows[i]["InterestRate"].ToString();
                        dRow["Remark"]        = dtPawnage.Rows[i]["Remark"].ToString();
                        dRow["PhotoPath"]     = dtPawnage.Rows[i]["PhotoPath"].ToString();
                        //获取当票号
                        Query queryOperation = new Query(DDOperation.Schema);
                        queryOperation.AddWhere("PawnageID", dtPawnage.Rows[i]["PawnageID"]);
                        queryOperation.AddWhere("NextOperationID", 0);
                        queryOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
                        DataTable dtOperation = queryOperation.ExecuteDataSet().Tables[0];
                        if (dtOperation.Rows.Count > 0)
                        {
                            string       TicketID  = dtOperation.Rows[dtOperation.Rows.Count - 1]["TicketID"].ToString();
                            DDPawnTicket newTicket = new DDPawnTicket("TicketID", TicketID);
                            dRow["TicketNumber"] = newTicket.TicketNumber;
                        }
                        m_GridTable.Rows.Add(dRow);
                    }
                }
                dataGridView1.DataSource = m_GridTable;

                if (dtPawnage.Rows.Count > 0)
                {
                    btnPrint.Enabled = true;
                }
            }
            #endregion

            SetForGridViewPage();
        }
Ejemplo n.º 27
0
        private void LoadTicketInfo()
        {
            this.m_GridTable.Rows.Clear();

            DDPawnTicket newTicket = new DDPawnTicket("TicketID", m_TicketID);

            Query queryOperations = new Query(DDOperation.Schema);

            queryOperations.AddWhere("TicketID", m_TicketID);
            queryOperations.AddWhere("OperationType", Comparison.In, new int[] { 1, 3 });
            queryOperations.AddWhere("OperationType", Comparison.NotEquals, 6);
            queryOperations.AddWhere("NextOperationID", 0);

            DataTable dtOperations = queryOperations.ExecuteDataSet().Tables[0];

            m_StartDate = Convert.ToDateTime(newTicket.StartDate);
            m_EndDate   = Convert.ToDateTime(newTicket.EndDate);
            try
            {
                m_OperationDate = Convert.ToDateTime(this.tbxOperationDate.Text.Trim());
            }
            catch
            {
                MessageBox.Show("请输入正确的日期", "提示信息");
            }

            if (dtOperations.Rows.Count > 0)
            {
                for (int i = 0; i < dtOperations.Rows.Count; i++)
                {
                    double amount = 0;
                    double serviceFee = 0, interestFee = 0, paidInterestFee = 0;
                    double chargedServiceFee = 0, chargedInterestFee = 0;
                    double singleChargedServiceFee = 0, singleChargedInterestFee = 0;
                    double returnServiceFee = 0, returnInterestFee = 0;
                    double singleReturnServiceFee = 0, singleReturnInterestFee = 0;
                    double serviceFeeRate = 0, interestFeeRate = 0;

                    double overdueFee = 0;
                    amount = Convert.ToDouble(dtOperations.Rows[i]["Amount"]);
                    #region 原先错误的算法

                    /*
                     * Query queryRenewPawn = new Query(DDOperation.Schema);
                     * queryRenewPawn.AddWhere("TicketID",m_TicketID);
                     * queryRenewPawn.AddWhere("PawnageID",Convert.ToInt32(dtOperations.Rows[i]["PawnageID"]));
                     * queryRenewPawn.AddWhere("OperationType",3);
                     * DataTable dtRenewPawn = queryRenewPawn.ExecuteDataSet().Tables[0];
                     * if (dtRenewPawn.Rows.Count > 0)
                     * {
                     *  for (int j = 0; j < dtRenewPawn.Rows.Count; j++)
                     *  {
                     *      serviceFee += Convert.ToDouble(dtRenewPawn.Rows[j]["ServiceFee"]);
                     *      interestFee += Convert.ToDouble(dtRenewPawn.Rows[j]["InterestFee"]);
                     *  }
                     * }
                     *
                     * totalServiceFee += serviceFee;
                     * totalInterestFee += interestFee;
                     * //overdueFee = CaculateOverdueFee(amount, Convert.ToDouble(pawnageInfo.FeeRate), Convert.ToDouble(pawnageInfo.InterestRate))
                     * //returnFee = serviceFee + interestFee - CaculatePaidFee(amount, Convert.ToDouble(pawnageInfo.FeeRate), Convert.ToDouble(pawnageInfo.InterestRate));
                     * //returnFee = CaculateReturnFee(amount, Convert.ToDouble(pawnageInfo.FeeRate), Convert.ToDouble(pawnageInfo.InterestRate));
                     * if (returnFee < 0)
                     * {
                     *  returnFee = 0;
                     * }
                     * totalOverdueFee += overdueFee;
                     * totalReturnFee += returnFee;
                     */
                    #endregion

                    DDPawnageInfo pawnageInfo = new DDPawnageInfo("PawnageID", Convert.ToInt32(dtOperations.Rows[i]["PawnageID"]));

                    #region 费用计算
                    //判断当票状态
                    int PawnTicketStatus = 0;  //0:正好,1:提前,2:过期

                    //DDPawnTicket theTicket = new DDPawnTicket("TicketID", m_TicketID);
                    if (m_OperationDate <= DateTime.Parse(dtOperations.Rows[i]["EndDate"].ToString()))
                    {
                        PawnSpan Span     = DianDangFunction.GetPawnSpan(m_OperationDate, DateTime.Parse(dtOperations.Rows[i]["StartDate"].ToString()));
                        PawnSpan LastSpan = DianDangFunction.GetPawnSpan(DateTime.Parse(dtOperations.Rows[i]["StartDate"].ToString()), DateTime.Parse(dtOperations.Rows[i]["EndDate"].ToString()));
                        if (Span.Months == LastSpan.Months && Span.CountDays == LastSpan.CountDays && m_OperationDate >= DateTime.Parse(dtOperations.Rows[i]["StartDate"].ToString()))
                        {
                            PawnTicketStatus = 0;
                        }
                        else
                        {
                            PawnTicketStatus = 1;
                        }
                    }
                    else
                    {
                        PawnTicketStatus = 2;
                    }


                    if (DateTime.Parse(newTicket.StartDate) == m_OperationDate)//当天建当,当天还
                    {
                        int ifReturn = 0;

                        double InOperationServiceFee = 0, InOperationInterestFee = 0;
                        double InOPerationChargedServiceFee = 0, InOperationChargedInterestFee = 0;

                        //总计征收的费用
                        Query queryPaidOperation = new Query(DDOperation.Schema);
                        queryPaidOperation.AddWhere("PawnageID", pawnageInfo.PawnageID);
                        queryPaidOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
                        queryPaidOperation.AddWhere("Deleted", 0);
                        DataTable dtPaidOperation = queryPaidOperation.ExecuteDataSet().Tables[0];
                        for (int j = 0; j < dtPaidOperation.Rows.Count; j++)
                        {
                            singleChargedServiceFee  = Convert.ToDouble(dtPaidOperation.Rows[j]["ServiceFee"].ToString());
                            singleChargedServiceFee  = DianDangFunction.myRound(singleChargedServiceFee, MainForm.AmountAccuracy);
                            chargedServiceFee       += singleChargedServiceFee;
                            singleChargedInterestFee = Convert.ToDouble(dtPaidOperation.Rows[j]["InterestFee"].ToString());
                            singleChargedInterestFee = DianDangFunction.myRound(singleChargedInterestFee, MainForm.AmountAccuracy);
                            chargedInterestFee      += singleChargedInterestFee;
                        }

                        //计算争议的服务费
                        Query queryInOperation = new Query(DDOperation.Schema);
                        queryInOperation.AddBetweenAnd("EndDate", m_OperationDate, new DateTime(9998, 12, 31));
                        queryInOperation.AddBetweenAnd("StartDate", new DateTime(1755, 1, 1), m_OperationDate);
                        queryInOperation.AddWhere("PawnageID", pawnageInfo.PawnageID);
                        queryInOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
                        queryInOperation.AddWhere("Deleted", 0);
                        DataTable dtInOperation = queryInOperation.ExecuteDataSet().Tables[0];
                        if (dtInOperation.Rows.Count > 0)
                        {
                            InOPerationChargedServiceFee = Convert.ToDouble(dtInOperation.Rows[0]["ServiceFee"].ToString());

                            PawnSpan OperationSpan = DianDangFunction.GetPawnSpan(DateTime.Parse(dtInOperation.Rows[0]["StartDate"].ToString()), DateTime.Parse(dtInOperation.Rows[0]["EndDate"].ToString()));
                            PawnSpan Span          = DianDangFunction.GetPawnSpan(DateTime.Parse(dtInOperation.Rows[0]["StartDate"].ToString()), m_OperationDate);
                            double   DayFeeRate    = InOPerationChargedServiceFee / OperationSpan.CountDaysAll / amount * 100;

                            if (Span.CountDaysAll > OperationSpan.CountDaysAll)
                            {
                                Span.CountDaysAll = OperationSpan.CountDaysAll;
                            }
                            InOperationServiceFee = (Span.CountDaysAll) * amount * DayFeeRate / 100;
                            InOperationServiceFee = DianDangFunction.myRound(InOperationServiceFee, MainForm.AmountAccuracy);
                        }

                        //计算肯定要返还的费用
                        Query queryReturnOperation = new Query(DDOperation.Schema);
                        queryReturnOperation.AddBetweenAnd("StartDate", m_OperationDate.AddDays(1), new DateTime(9998, 12, 31));
                        queryReturnOperation.AddWhere("PawnageID", pawnageInfo.PawnageID);
                        queryReturnOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
                        queryReturnOperation.AddWhere("Deleted", 0);
                        DataTable dtReturnOperation = queryReturnOperation.ExecuteDataSet().Tables[0];
                        for (int j = 0; j < dtReturnOperation.Rows.Count; j++)
                        {
                            //计算争议的利息费,因为本次收取的利息为上月利息,即为争议利息
                            if (j == 0 && dtInOperation.Rows.Count > 0)
                            {
                                InOperationChargedInterestFee = Convert.ToDouble(dtReturnOperation.Rows[0]["InterestFee"].ToString());
                                PawnSpan OperationSpan = DianDangFunction.GetPawnSpan(DateTime.Parse(dtInOperation.Rows[0]["StartDate"].ToString()), DateTime.Parse(dtInOperation.Rows[0]["EndDate"].ToString()));
                                PawnSpan Span          = DianDangFunction.GetPawnSpan(DateTime.Parse(dtInOperation.Rows[0]["StartDate"].ToString()), m_OperationDate);

                                double DayInterestFeeRate = InOperationChargedInterestFee / OperationSpan.CountDaysAll / amount * 100;
                                if (Span.CountDaysAll > OperationSpan.CountDaysAll)
                                {
                                    Span.CountDaysAll = OperationSpan.CountDaysAll;
                                }
                                InOperationInterestFee = (Span.CountDaysAll) * amount * DayInterestFeeRate / 100;
                                InOperationInterestFee = DianDangFunction.myRound(InOperationInterestFee, MainForm.AmountAccuracy);
                            }


                            ifReturn++;
                            singleReturnServiceFee = Convert.ToDouble(dtReturnOperation.Rows[j]["ServiceFee"].ToString());
                            singleReturnServiceFee = DianDangFunction.myRound(singleReturnServiceFee, MainForm.AmountAccuracy);
                            returnServiceFee      += singleReturnServiceFee;
                            if (j != 0 || dtInOperation.Rows.Count == 0)
                            {
                                singleReturnInterestFee = Convert.ToDouble(dtReturnOperation.Rows[j]["InterestFee"].ToString());
                                singleReturnInterestFee = DianDangFunction.myRound(singleReturnInterestFee, MainForm.AmountAccuracy);
                                returnInterestFee      += singleReturnInterestFee;
                            }
                        }



                        if (m_OperationDate > DateTime.Parse(dtOperations.Rows[i]["StartDate"].ToString())) //操作日期大于最后一次操作开始日期,则收取利息
                        {
                            PawnSpan Span = DianDangFunction.GetPawnSpan(DateTime.Parse(dtOperations.Rows[i]["StartDate"].ToString()), m_OperationDate);
                            paidInterestFee = 0;
                            paidInterestFee = (Span.Months + Span.Days / 30) * Convert.ToDouble(dtOperations.Rows[i]["InterestFeeRate"].ToString()) * amount / 100;
                            paidInterestFee = DianDangFunction.myRound(paidInterestFee, MainForm.AmountAccuracy);
                        }



                        returnServiceFee  = returnServiceFee + InOPerationChargedServiceFee - InOperationServiceFee;
                        returnServiceFee  = DianDangFunction.myRound(returnServiceFee, MainForm.AmountAccuracy);
                        returnInterestFee = returnInterestFee + InOperationChargedInterestFee - InOperationInterestFee;
                        returnInterestFee = DianDangFunction.myRound(returnInterestFee, MainForm.AmountAccuracy);


                        serviceFee  = chargedServiceFee - returnServiceFee;
                        serviceFee  = DianDangFunction.myRound(serviceFee, MainForm.AmountAccuracy);
                        interestFee = chargedInterestFee + paidInterestFee - returnInterestFee;
                        interestFee = DianDangFunction.myRound(interestFee, MainForm.AmountAccuracy);
                    }

                    else
                    {
                        if (PawnTicketStatus == 0)  //收取上期服务费
                        {
                            //计算上期利息
                            PawnSpan LastSpan = DianDangFunction.GetPawnSpan(DateTime.Parse(dtOperations.Rows[i]["StartDate"].ToString()), DateTime.Parse(dtOperations.Rows[i]["EndDate"].ToString()));
                            paidInterestFee = (LastSpan.Months + LastSpan.CountDays / 30) * amount * Convert.ToDouble(dtOperations.Rows[i]["InterestFeeRate"].ToString()) / 100;
                            paidInterestFee = DianDangFunction.myRound(paidInterestFee, MainForm.AmountAccuracy);

                            //计算已经付出的服务费和利息
                            Query queryPaidOperation = new Query(DDOperation.Schema);
                            queryPaidOperation.AddWhere("TicketID", m_TicketID);
                            queryPaidOperation.AddWhere("PawnageID", pawnageInfo.PawnageID);
                            queryPaidOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
                            queryPaidOperation.AddWhere("Deleted", 0);
                            DataTable dtPaidOperation = queryPaidOperation.ExecuteDataSet().Tables[0];
                            if (dtPaidOperation.Rows.Count > 0)
                            {
                                for (int j = 0; j < dtPaidOperation.Rows.Count; j++)
                                {
                                    singleChargedServiceFee  = Convert.ToDouble(dtPaidOperation.Rows[j]["ServiceFee"].ToString());
                                    singleChargedServiceFee  = DianDangFunction.myRound(singleChargedServiceFee, MainForm.AmountAccuracy);
                                    chargedServiceFee       += singleChargedServiceFee;
                                    singleChargedInterestFee = Convert.ToDouble(dtPaidOperation.Rows[j]["InterestFee"].ToString());
                                    singleChargedInterestFee = DianDangFunction.myRound(singleChargedInterestFee, MainForm.AmountAccuracy);
                                    chargedInterestFee      += singleChargedInterestFee;
                                }
                            }

                            //当品应收的利息等于之前收过的利息+上期利息
                            interestFee = chargedInterestFee + paidInterestFee;
                            serviceFee  = chargedServiceFee;
                        }
                        else if (PawnTicketStatus == 2)  //过期状态,收取
                        {
                            //计算上期利息+过期利息,计算过期服务费
                            PawnSpan LastSpan = DianDangFunction.GetPawnSpan(DateTime.Parse(dtOperations.Rows[i]["StartDate"].ToString()), m_OperationDate);
                            paidInterestFee = (LastSpan.Months + LastSpan.CountDays / 30) * amount * Convert.ToDouble(dtOperations.Rows[i]["InterestFeeRate"].ToString()) / 100;
                            paidInterestFee = DianDangFunction.myRound(paidInterestFee, MainForm.AmountAccuracy);

                            PawnSpan OverdueSpan = DianDangFunction.GetPawnSpan(DateTime.Parse(dtOperations.Rows[i]["EndDate"].ToString()), m_OperationDate);
                            overdueFee = (OverdueSpan.Months + OverdueSpan.CountDays / 30) * amount * Convert.ToDouble(dtOperations.Rows[i]["ServiceFeeRate"].ToString()) / 100;
                            overdueFee = DianDangFunction.myRound(overdueFee, MainForm.AmountAccuracy);


                            //计算已经付出的服务费和利息
                            Query queryPaidOperation = new Query(DDOperation.Schema);
                            queryPaidOperation.AddWhere("TicketID", m_TicketID);
                            queryPaidOperation.AddWhere("PawnageID", pawnageInfo.PawnageID);
                            queryPaidOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
                            queryPaidOperation.AddWhere("Deleted", 0);
                            DataTable dtPaidOperation = queryPaidOperation.ExecuteDataSet().Tables[0];
                            if (dtPaidOperation.Rows.Count > 0)
                            {
                                for (int j = 0; j < dtPaidOperation.Rows.Count; j++)
                                {
                                    singleChargedServiceFee  = Convert.ToDouble(dtPaidOperation.Rows[j]["ServiceFee"].ToString());
                                    singleChargedServiceFee  = DianDangFunction.myRound(singleChargedServiceFee, MainForm.AmountAccuracy);
                                    chargedServiceFee       += singleChargedServiceFee;
                                    singleChargedInterestFee = Convert.ToDouble(dtPaidOperation.Rows[j]["InterestFee"].ToString());
                                    singleChargedInterestFee = DianDangFunction.myRound(singleChargedInterestFee, MainForm.AmountAccuracy);
                                    chargedInterestFee      += singleChargedInterestFee;
                                }
                            }

                            //当品应收的利息等于之前收过的利息+应付利息
                            interestFee = chargedInterestFee + paidInterestFee;
                            //服务费应该等于所有已经收取的服务费+过期服务费
                            serviceFee = chargedServiceFee + overdueFee;
                        }
                        else if (PawnTicketStatus == 1)  //提前赎当
                        {
                            int ifReturn = 0;

                            double InOperationServiceFee = 0, InOperationInterestFee = 0;
                            double InOPerationChargedServiceFee = 0, InOperationChargedInterestFee = 0;

                            //总计征收的费用
                            Query queryPaidOperation = new Query(DDOperation.Schema);
                            queryPaidOperation.AddWhere("PawnageID", pawnageInfo.PawnageID);
                            queryPaidOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
                            queryPaidOperation.AddWhere("Deleted", 0);
                            DataTable dtPaidOperation = queryPaidOperation.ExecuteDataSet().Tables[0];
                            for (int j = 0; j < dtPaidOperation.Rows.Count; j++)
                            {
                                singleChargedServiceFee  = Convert.ToDouble(dtPaidOperation.Rows[j]["ServiceFee"].ToString());
                                singleChargedServiceFee  = DianDangFunction.myRound(singleChargedServiceFee, MainForm.AmountAccuracy);
                                chargedServiceFee       += singleChargedServiceFee;
                                singleChargedInterestFee = Convert.ToDouble(dtPaidOperation.Rows[j]["InterestFee"].ToString());
                                singleChargedInterestFee = DianDangFunction.myRound(singleChargedInterestFee, MainForm.AmountAccuracy);
                                chargedInterestFee      += singleChargedInterestFee;
                            }

                            //计算争议的服务费
                            Query queryInOperation = new Query(DDOperation.Schema);
                            queryInOperation.AddBetweenAnd("EndDate", m_OperationDate.AddDays(1), new DateTime(9998, 12, 31));
                            queryInOperation.AddBetweenAnd("StartDate", new DateTime(1755, 1, 1), m_OperationDate.AddDays(-1));
                            queryInOperation.AddWhere("PawnageID", pawnageInfo.PawnageID);
                            queryInOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
                            queryInOperation.AddWhere("Deleted", 0);
                            DataTable dtInOperation = queryInOperation.ExecuteDataSet().Tables[0];
                            if (dtInOperation.Rows.Count > 0)
                            {
                                InOPerationChargedServiceFee = Convert.ToDouble(dtInOperation.Rows[0]["ServiceFee"].ToString());

                                PawnSpan OperationSpan = DianDangFunction.GetPawnSpan(DateTime.Parse(dtInOperation.Rows[0]["StartDate"].ToString()), DateTime.Parse(dtInOperation.Rows[0]["EndDate"].ToString()));
                                PawnSpan Span          = DianDangFunction.GetPawnSpan(DateTime.Parse(dtInOperation.Rows[0]["StartDate"].ToString()), m_OperationDate);
                                double   DayFeeRate    = InOPerationChargedServiceFee / OperationSpan.CountDaysAll / amount * 100;

                                if (Span.CountDaysAll > OperationSpan.CountDaysAll)
                                {
                                    Span.CountDaysAll = OperationSpan.CountDaysAll;
                                }
                                InOperationServiceFee = (Span.CountDaysAll) * amount * DayFeeRate / 100;
                                InOperationServiceFee = DianDangFunction.myRound(InOperationServiceFee, MainForm.AmountAccuracy);
                            }

                            //计算肯定要返还的费用
                            Query queryReturnOperation = new Query(DDOperation.Schema);
                            queryReturnOperation.AddBetweenAnd("StartDate", m_OperationDate, new DateTime(9998, 12, 31));
                            queryReturnOperation.AddWhere("PawnageID", pawnageInfo.PawnageID);
                            queryReturnOperation.AddWhere("OperationType", Comparison.NotEquals, 6);
                            queryReturnOperation.AddWhere("Deleted", 0);
                            DataTable dtReturnOperation = queryReturnOperation.ExecuteDataSet().Tables[0];
                            for (int j = 0; j < dtReturnOperation.Rows.Count; j++)
                            {
                                //计算争议的利息费,因为本次收取的利息为上月利息,即为争议利息
                                if (j == 0 && dtInOperation.Rows.Count > 0)
                                {
                                    InOperationChargedInterestFee = Convert.ToDouble(dtReturnOperation.Rows[0]["InterestFee"].ToString());
                                    PawnSpan OperationSpan = DianDangFunction.GetPawnSpan(DateTime.Parse(dtInOperation.Rows[0]["StartDate"].ToString()), DateTime.Parse(dtInOperation.Rows[0]["EndDate"].ToString()));
                                    PawnSpan Span          = DianDangFunction.GetPawnSpan(DateTime.Parse(dtInOperation.Rows[0]["StartDate"].ToString()), m_OperationDate);

                                    double DayInterestFeeRate = InOperationChargedInterestFee / OperationSpan.CountDaysAll / amount * 100;
                                    if (Span.CountDaysAll > OperationSpan.CountDaysAll)
                                    {
                                        Span.CountDaysAll = OperationSpan.CountDaysAll;
                                    }
                                    InOperationInterestFee = (Span.CountDaysAll) * amount * DayInterestFeeRate / 100;
                                    InOperationInterestFee = DianDangFunction.myRound(InOperationInterestFee, MainForm.AmountAccuracy);
                                }


                                ifReturn++;
                                singleReturnServiceFee = Convert.ToDouble(dtReturnOperation.Rows[j]["ServiceFee"].ToString());
                                singleReturnServiceFee = DianDangFunction.myRound(singleReturnServiceFee, MainForm.AmountAccuracy);
                                returnServiceFee      += singleReturnServiceFee;
                                if (j != 0 || dtInOperation.Rows.Count == 0)
                                {
                                    singleReturnInterestFee = Convert.ToDouble(dtReturnOperation.Rows[j]["InterestFee"].ToString());
                                    singleReturnInterestFee = DianDangFunction.myRound(singleReturnInterestFee, MainForm.AmountAccuracy);
                                    returnInterestFee      += singleReturnInterestFee;
                                }
                            }



                            if (m_OperationDate > DateTime.Parse(dtOperations.Rows[i]["StartDate"].ToString())) //操作日期大于最后一次操作开始日期,则收取利息
                            {
                                PawnSpan Span = DianDangFunction.GetPawnSpan(DateTime.Parse(dtOperations.Rows[i]["StartDate"].ToString()), m_OperationDate);
                                paidInterestFee = 0;
                                paidInterestFee = (Span.Months + Span.Days / 30) * Convert.ToDouble(dtOperations.Rows[i]["InterestFeeRate"].ToString()) * amount / 100;
                                paidInterestFee = DianDangFunction.myRound(paidInterestFee, MainForm.AmountAccuracy);
                            }



                            returnServiceFee  = returnServiceFee + InOPerationChargedServiceFee - InOperationServiceFee;
                            returnServiceFee  = DianDangFunction.myRound(returnServiceFee, MainForm.AmountAccuracy);
                            returnInterestFee = returnInterestFee + InOperationChargedInterestFee - InOperationInterestFee;
                            returnInterestFee = DianDangFunction.myRound(returnInterestFee, MainForm.AmountAccuracy);


                            serviceFee  = chargedServiceFee - returnServiceFee;
                            serviceFee  = DianDangFunction.myRound(serviceFee, MainForm.AmountAccuracy);
                            interestFee = chargedInterestFee + paidInterestFee - returnInterestFee;
                            interestFee = DianDangFunction.myRound(interestFee, MainForm.AmountAccuracy);
                        }
                    }



                    //Query queryOperation = new Query(DDOperation.Schema);
                    //queryOperations.AddWhere("TicketID", m_TicketID);

                    #endregion

                    serviceFeeRate  = Convert.ToDouble(dtOperations.Rows[i]["ServiceFeeRate"].ToString());
                    interestFeeRate = Convert.ToDouble(dtOperations.Rows[i]["InterestFeeRate"].ToString());

                    interestFee        = DianDangFunction.myRound(interestFee, MainForm.AmountAccuracy);
                    serviceFee         = DianDangFunction.myRound(serviceFee, MainForm.AmountAccuracy);
                    amount             = DianDangFunction.myRound(amount, MainForm.AmountAccuracy);
                    returnServiceFee   = DianDangFunction.myRound(returnServiceFee, MainForm.AmountAccuracy);
                    returnInterestFee  = DianDangFunction.myRound(returnInterestFee, MainForm.AmountAccuracy);
                    overdueFee         = DianDangFunction.myRound(overdueFee, MainForm.AmountAccuracy);
                    paidInterestFee    = DianDangFunction.myRound(paidInterestFee, MainForm.AmountAccuracy);
                    chargedServiceFee  = DianDangFunction.myRound(chargedServiceFee, MainForm.AmountAccuracy);
                    chargedInterestFee = DianDangFunction.myRound(chargedInterestFee, MainForm.AmountAccuracy);


                    DataRow        drow         = m_GridTable.NewRow();
                    DDPawnageClass pawnageClass = new DDPawnageClass("ClassID", pawnageInfo.ClassID);
                    drow["ClassName"]          = pawnageClass.ClassName;
                    drow["Amount"]             = amount;
                    drow["ServiceFee"]         = serviceFee;
                    drow["InterestFee"]        = interestFee;
                    drow["ReturnFee"]          = returnServiceFee;
                    drow["ReturnInterestFee"]  = returnInterestFee;
                    drow["OverdueFee"]         = overdueFee;
                    drow["PaidInterestFee"]    = paidInterestFee;
                    drow["ChargedServiceFee"]  = chargedServiceFee;
                    drow["ChargedInterestFee"] = chargedInterestFee;
                    drow["PawnageID"]          = dtOperations.Rows[i]["PawnageID"].ToString();
                    drow["ServiceFeeRate"]     = serviceFeeRate;
                    drow["InterestFeeRate"]    = interestFeeRate;
                    m_GridTable.Rows.Add(drow);
                }
            }


            this.dataGridView1.DataSource = m_GridTable;
            CaculateDatagridAmount();
        }
Ejemplo n.º 28
0
        private void OperationAmount()
        {
            DateTime startDate = Convert.ToDateTime(this.tbxStartDate.Text.Trim());
            DateTime endDate   = Convert.ToDateTime(this.tbxEndDate.Text.Trim());

            double newPawnAmount         = 0;
            double closeOfNewAmount      = 0;
            double redeemPawnAmount      = 0;
            double renewPawnAmount       = 0;
            double closePawnAmount       = 0;
            double goldOfClosePawnAmount = 0;
            double clearPawnAmount       = 0;
            double clearPawnReckonAmount = 0;
            double reckoningPL           = 0; //清算盈亏
            double unclearPawnAmount     = 0;
            double newPawnServiceFee     = 0; //建当服务费
            double renewPawnServiceFee   = 0; //续当服务费
            double interestFee           = 0; //典当利息
            double overDueFee            = 0; //逾期服务费
            double returnFee             = 0; //返回服务费
            double totalFee = 0;              //总计营收

            int    operationType = 0;
            double amount        = 0;

            Query queryOperations = new Query(DDOperation.Schema);

            queryOperations.AddBetweenAnd("OperationDate", startDate, endDate);
            DataTable dtOperations = queryOperations.ExecuteDataSet().Tables[0];

            if (dtOperations.Rows.Count > 0)
            {
                for (int i = 0; i < dtOperations.Rows.Count; i++)
                {
                    operationType = Convert.ToInt32(dtOperations.Rows[i]["OperationType"]);
                    amount        = Convert.ToDouble(dtOperations.Rows[i]["Amount"]);

                    switch (operationType)
                    {
                    case 1:
                        newPawnAmount += amount;
                        DDPawnTicket newTicket = new DDPawnTicket("TicketID", Convert.ToInt32(dtOperations.Rows[i]["TicketID"]));
                        if (newTicket.StatusID == 4 || newTicket.StatusID == 7)
                        {
                            closeOfNewAmount += amount;
                        }
                        newPawnServiceFee += Convert.ToDouble(dtOperations.Rows[i]["ServiceFee"]);
                        interestFee       += Convert.ToDouble(dtOperations.Rows[i]["InterestFee"]);
                        break;

                    case 2:
                        redeemPawnAmount += amount;
                        overDueFee       += Convert.ToDouble(dtOperations.Rows[i]["OverdueFee"]);
                        returnFee        += Convert.ToDouble(dtOperations.Rows[i]["ReturnFee"]);
                        interestFee      += Convert.ToDouble(dtOperations.Rows[i]["InterestFee"]);
                        break;

                    case 3:
                        renewPawnAmount     += amount;
                        renewPawnServiceFee += Convert.ToDouble(dtOperations.Rows[i]["ServiceFee"]);
                        interestFee         += Convert.ToDouble(dtOperations.Rows[i]["InterestFee"]);
                        break;

                    case 4:
                        closePawnAmount += amount;
                        DDPawnageInfo newPawnage = new DDPawnageInfo("PawnageID", Convert.ToInt32(dtOperations.Rows[i]["PawnageID"]));
                        if (newPawnage.ParentID == 2)      //2:黄金类ClassID
                        {
                            goldOfClosePawnAmount += amount;
                        }
                        break;

                    case 7:
                        clearPawnAmount       += amount;
                        clearPawnReckonAmount += Convert.ToDouble(dtOperations.Rows[i]["ReckonAmount"]);
                        break;

                    default:
                        break;
                    }
                }
                reckoningPL       = clearPawnReckonAmount - clearPawnAmount; //清算盈亏
                unclearPawnAmount = closePawnAmount - clearPawnAmount;       //未清算金额
                totalFee          = newPawnServiceFee + renewPawnServiceFee + interestFee + overDueFee - returnFee;
            }

            double allNewPawnAmount = 0;
            //double closeOfAllNewPawnAmount = 0;
            double allRedeemPawnAmount = 0;
            double allClosePawnAmount  = 0;

            DDCompanyInfo company            = new DDCompanyInfo("CompanyID", 1);
            DateTime      setupDate          = Convert.ToDateTime(company.SetupDate);
            Query         queryAllOperations = new Query(DDOperation.Schema);

            queryAllOperations.AddBetweenAnd("OperationDate", setupDate, endDate);  //所有的操作记录
            DataTable dtAllOperations = queryAllOperations.ExecuteDataSet().Tables[0];

            if (dtAllOperations.Rows.Count > 0)
            {
                for (int j = 0; j < dtAllOperations.Rows.Count; j++)
                {
                    operationType = Convert.ToInt32(dtAllOperations.Rows[j]["OperationType"]);
                    amount        = Convert.ToDouble(dtAllOperations.Rows[j]["Amount"]);
                    if (operationType == 1)
                    {
                        allNewPawnAmount += amount;
                        //DDPawnTicket newTicket = new DDPawnTicket("TicketID", Convert.ToInt32(dtAllOperations.Rows[j]["TicketID"]));
                        //if (newTicket.StatusID == 4 || newTicket.StatusID == 7)
                        //{
                        //    closeOfAllNewPawnAmount += amount;
                        //}
                    }
                    if (operationType == 2)
                    {
                        allRedeemPawnAmount += amount;
                    }
                    if (operationType == 4)
                    {
                        allClosePawnAmount += amount;
                    }
                }
            }
            double startTotalAmount = 0;
            double endTotalAmount   = 0;
            double increAmount      = 0;
            double totalAmount      = 0;

            endTotalAmount   = allNewPawnAmount - allClosePawnAmount - allRedeemPawnAmount;
            increAmount      = newPawnAmount - closePawnAmount - redeemPawnAmount;
            startTotalAmount = endTotalAmount - increAmount;
            totalAmount      = endTotalAmount + unclearPawnAmount;

            double percentCloseOfNewPawn             = 0;
            double percentIncreOfStart               = 0;
            double percentIncreOfEnd                 = 0;
            double percentNewPawnServiceFeeOfTotal   = 0;
            double percentRenewPawnServiceFeeOfTotal = 0;
            double percentInterestFeeOfTotal         = 0;
            double percentRetureFeeOfTotal           = 0;
            double percentOverdueFeeOfTotal          = 0;

            if (newPawnAmount != 0)
            {
                percentCloseOfNewPawn = closeOfNewAmount * 100 / newPawnAmount;
                percentCloseOfNewPawn = DianDangFunction.myRound(percentCloseOfNewPawn, MainForm.AmountAccuracy);
            }

            if (startTotalAmount != 0)
            {
                percentIncreOfStart = increAmount * 100 / startTotalAmount;
                percentIncreOfStart = DianDangFunction.myRound(percentIncreOfStart, MainForm.AmountAccuracy);
            }

            if (endTotalAmount != 0)
            {
                percentIncreOfEnd = increAmount * 100 / endTotalAmount;
                percentIncreOfEnd = DianDangFunction.myRound(percentIncreOfEnd, MainForm.AmountAccuracy);
            }

            if (totalFee != 0)
            {
                percentNewPawnServiceFeeOfTotal   = newPawnServiceFee * 100 / totalFee;
                percentNewPawnServiceFeeOfTotal   = DianDangFunction.myRound(percentNewPawnServiceFeeOfTotal, MainForm.AmountAccuracy);
                percentRenewPawnServiceFeeOfTotal = renewPawnServiceFee * 100 / totalFee;
                percentRenewPawnServiceFeeOfTotal = DianDangFunction.myRound(percentRenewPawnServiceFeeOfTotal, MainForm.AmountAccuracy);
                percentInterestFeeOfTotal         = interestFee * 100 / totalFee;
                percentInterestFeeOfTotal         = DianDangFunction.myRound(percentInterestFeeOfTotal, MainForm.AmountAccuracy);
                percentRetureFeeOfTotal           = returnFee * 100 / totalFee;
                percentRetureFeeOfTotal           = DianDangFunction.myRound(percentRetureFeeOfTotal, MainForm.AmountAccuracy);
                percentOverdueFeeOfTotal          = overDueFee * 100 / totalFee;
                percentOverdueFeeOfTotal          = DianDangFunction.myRound(percentOverdueFeeOfTotal, MainForm.AmountAccuracy);
            }

            this.lblNewPawnAmount.Text     = newPawnAmount.ToString();
            this.lblCloseOfNewAmount.Text  = closeOfNewAmount.ToString();
            this.lblRenewPawnAmount.Text   = renewPawnAmount.ToString();
            this.lblSalesSize.Text         = (newPawnAmount + renewPawnAmount).ToString();
            this.lblRedeemPawnAmount.Text  = redeemPawnAmount.ToString();
            this.lblClosePawnAmount.Text   = closePawnAmount.ToString();
            this.lblGoldOfCloseAmount.Text = goldOfClosePawnAmount.ToString();
            this.lblStartTotalAmount.Text  = startTotalAmount.ToString();
            this.lblEndTotalAmount.Text    = endTotalAmount.ToString();
            this.lblIncreAmount.Text       = increAmount.ToString();
            this.lblTotalFee.Text          = totalFee.ToString();
            newPawnServiceFee = DianDangFunction.myRound(newPawnServiceFee, MainForm.AmountAccuracy);
            this.lblNewPawnServiceFee.Text   = newPawnServiceFee.ToString();
            this.lblRenewPawnServiceFee.Text = renewPawnServiceFee.ToString();
            this.lblInterestFee.Text         = interestFee.ToString();
            this.lblOverDueFee.Text          = overDueFee.ToString();
            this.lblReturnFee.Text           = returnFee.ToString();
            this.lblCloseClearAmount.Text    = clearPawnAmount.ToString();       //绝当处理金额
            this.lblClearAmount.Text         = clearPawnReckonAmount.ToString(); //清算金额
            this.lblReckoningPL.Text         = reckoningPL.ToString();
            this.lblUnclearAmount.Text       = unclearPawnAmount.ToString();
            this.lblTotalAmount.Text         = totalAmount.ToString();
            //总收入
            this.lblTotalIncommingAmount.Text = (totalFee + redeemPawnAmount).ToString();
            //总支出
            this.lblTotalOutAmount.Text = newPawnAmount.ToString();
            //收支余额
            this.lblTotalBalance.Text = (totalFee + redeemPawnAmount - newPawnAmount).ToString("0.00");

            this.lblCloseOfNewPercent.Text      = percentCloseOfNewPawn.ToString();
            this.lblIncreOfStartPercent.Text    = percentIncreOfStart.ToString();
            this.lblIncreOfEndPercent.Text      = percentIncreOfEnd.ToString();
            this.lblNewServiceFeeOfTotal.Text   = percentNewPawnServiceFeeOfTotal.ToString();
            this.lblRenewServiceFeeOfTotal.Text = percentRenewPawnServiceFeeOfTotal.ToString();
            this.lblInterestFeeOfTotal.Text     = percentInterestFeeOfTotal.ToString();
            this.lblReturnfeeOfTotal.Text       = percentRetureFeeOfTotal.ToString();
            this.lblOverdueFeeOfTotal.Text      = percentOverdueFeeOfTotal.ToString();
        }
Ejemplo n.º 29
0
 public bool Destroy(object TicketID)
 {
     return(DDPawnTicket.Destroy(TicketID) == 1);
 }
Ejemplo n.º 30
0
 public bool Delete(object TicketID)
 {
     return(DDPawnTicket.Delete(TicketID) == 1);
 }