Example #1
0
        private void refreshDataGridViewCustomers()
        {
            int  channelId = Convert.ToInt16(((DataRowView)comboBoxChannel.SelectedItem).Row["id"]);
            Data customers = ShardDb.getSellerStatistic(dateTimePickerStartDate.Value.ToShortDateString(), dateTimePickerEndDate.Value.ToShortDateString(), textBoxConsultant.Text.Trim(), channelId, textBoxPartnerName.Text.Trim());

            if (!customers.Success)
            {
                this.Close();
                return;
            }
            dataGridViewCustomers.DataSource                   = customers.DataTable;
            dataGridViewCustomers.Columns["id1"].Visible       = false;
            dataGridViewCustomers.Columns["channelId"].Visible = false;
            dataGridViewCustomers.Columns["id"].Visible        = false;
            dataGridViewCustomers.Columns["status"].Visible    = false;
            if (channelId != 3 && channelId != 0)
            {
                dataGridViewCustomers.Columns["partnerName"].Visible = false;
            }
            else
            {
                dataGridViewCustomers.Columns["partnerName"].Visible = true;
            }
            changeDataGridViewColumnTitle();
            if (dataGridViewCustomers.RowCount > 0)
            {
                /*
                 * A:新客户,淘宝客服已经联系但是前台还未联系的客人 (reservetimes:0)
                 * B:已联系客户但未成功预约到店时间 (reservetimes+1)
                 * C:已联系客户并预约到店时间 (reservetimes+1)
                 * D:客户已流失 (reservetimes+1)
                 * E:到店未成交
                 * F:客户交定金,衣服款式未定
                 * G:客户已完款,衣服款式未定
                 * H:客户交定金,衣服款式已定
                 * I:客户已完款,衣服款式已定
                 */
                //foreach(DataRow row in ((DataTable)dataGridViewCustomers.DataSource).Rows)
                //{
                //    switch(Convert.ToInt16(row["status"])){
                //        case "A": row["status"] = "新客户"; break;
                //        case "B": row["status"] = "未成功预约"; break;
                //        case "C": row["status"] = "成功预约"; break;
                //        case "D": row["status"] = "已流失"; break;
                //        case "E": row["status"] = "到店未成交"; break;
                //        case "F": row["status"] = "交定金款式未定"; break;
                //        case "G": row["status"] = "交全款款式未定"; break;
                //        case "H": row["status"] = "交定金款式已定"; break;
                //        case "I": row["status"] = "交全款款式已定"; break;
                //    }
                //}
                textBoxAccountReceivable.Text = Decimal.Parse(((DataTable)dataGridViewCustomers.DataSource).Compute("Sum(totalAmount)", "True").ToString()).ToString("0.00");
                textBoxPaid.Text = Decimal.Parse(((DataTable)dataGridViewCustomers.DataSource).Compute("Sum(orderAmountafter)", "True").ToString()).ToString("0.00");
                int     totalCount         = int.Parse(((DataTable)dataGridViewCustomers.DataSource).Compute("count(brideName)", "").ToString());
                int     ABCount            = int.Parse(((DataTable)dataGridViewCustomers.DataSource).Compute("count(status)", "status=1 or  status=2").ToString());
                int     ABCCount           = int.Parse(((DataTable)dataGridViewCustomers.DataSource).Compute("count(status)", "status=1 or  status=2 or status=3").ToString());
                int     FGHICount          = int.Parse(((DataTable)dataGridViewCustomers.DataSource).Compute("count(status)", "status=6 or  status=7 or status=8 or status=9").ToString());
                int     invitationRate     = 0;
                int     toShopRate         = 0;
                int     transferRate       = 0;
                Decimal perCustomerPayment = 0;
                if (totalCount > 0)
                {
                    invitationRate = (totalCount - ABCount) * 100 / totalCount;
                }
                if ((totalCount - ABCount) > 0)
                {
                    toShopRate = (totalCount - ABCCount) * 100 / (totalCount - ABCount);
                }
                if ((totalCount - ABCCount) > 0)
                {
                    transferRate = FGHICount * 100 / (totalCount - ABCCount);
                }
                if (FGHICount > 0)
                {
                    perCustomerPayment = Decimal.Parse(textBoxPaid.Text) / FGHICount;
                }
                textBoxInvitationRate.Text     = invitationRate.ToString() + "%";
                textBoxToShopRate.Text         = toShopRate.ToString() + "%";
                textBoxTransferRate.Text       = transferRate.ToString() + "%";
                textBoxPerCustomerPayment.Text = perCustomerPayment.ToString("0.00");
            }
        }