/// <summary>
        /// Fill subscriber datas
        /// </summary>
        /// <param name="subscriberNo"></param>
        public void FillDatas(string subscriberNo = null)
        {
            int             totalBlackList  = 0;
            FileParser      fileParser      = new FileParser();
            PaymentProvider paymentProvider = new PaymentProvider();
            string          targetPath      = @"Datas";

            Directory.CreateDirectory(targetPath);
            string[]          filesindirectory = Directory.GetFiles(targetPath);
            List <Subscriber> subscribers      = new List <Subscriber>();
            ImportData        importData;

            foreach (var item in filesindirectory)
            {
                importData = paymentProvider.ImportPayment(FileParser.ParseFile(item));
                subscribers.AddRange(importData.Subscribers);
                totalBlackList += importData.BlackList;
            }

            if (subscriberNo != string.Empty && subscriberNo != null)
            {
                subscribers = subscribers.Where(i => i.No == subscriberNo).ToList();
            }

            List <PaymentData> paymentDatas = new List <PaymentData>();
            List <InvoiceData> invoiceDatas = new List <InvoiceData>();

            foreach (var item in subscribers)
            {
                foreach (var payment in item.Payments)
                {
                    paymentDatas.Add(new PaymentData
                    {
                        Amount       = payment.Amount,
                        SubscriberNo = payment.Subscriber.No,
                        Date         = payment.Date
                    });
                }
                lblPayment.Text = paymentDatas.Sum(i => i.Amount).ToString();
                foreach (var invoice in item.Invoices)
                {
                    invoiceDatas.Add(new InvoiceData
                    {
                        DueDate      = invoice.DueDate,
                        InvoiceNo    = invoice.No,
                        Period       = invoice.Period,
                        SubscriberNo = invoice.Subscriber.No
                    });
                }
            }


            DataTable        dt = new DataTable();
            ConvertDataTable convertDataTable = new ConvertDataTable();

            dt = convertDataTable.ConvertToDataTable <InvoiceData>(invoiceDatas);
            dViewInvoices.DataSource = dt;

            DataTable        dt2 = new DataTable();
            ConvertDataTable convertDataTable2 = new ConvertDataTable();

            dt2 = convertDataTable.ConvertToDataTable <PaymentData>(paymentDatas);
            dViewPayments.DataSource = dt2;

            if (totalBlackList > 0)
            {
                MessageBox.Show($"{totalBlackList } datas could not be added to the system.");
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 投资统计接口
        /// </summary>
        /// <param name="t"></param>
        /// <param name="token"></param>
        /// <param name="startdate"></param>
        /// <param name="enddate"></param>
        /// <param name="page"></param>
        /// <param name="pagesize"></param>
        /// <returns></returns>
        public string Tongji_Invest(HttpRequestBase Request, string t = "1", string token = "", string startdate = "", string enddate = "", int page = 1, int pagesize = 10)
        {
            try
            {
                if (CheckTimeOut(t))
                {
                    return("{\"code\":1008,\"msg\":\"请求失效\"}");
                }
                if (string.IsNullOrEmpty(token))
                {
                    return("{\"code\":1008,\"msg\":\"参数token错误\"}");
                }
                string localToken = Utils.MD5(Utils.MD5(t) + _client_secret); //EncryptHelper.GetMd5Str32(EncryptHelper.GetMd5Str32(t, "x") + _client_secret, "x");
                if (localToken != token)
                {
                    return("{\"code\":1008,\"msg\":\"请求被篡改\"}");
                }
                //var retData = from item in ef.hx_member_table
                //              join channel in ef.hx_Channel
                //              on item.channel_invitedcode equals channel.Invitedcode
                //              join invest in ef.hx_Bid_records
                //              on item.registerid equals invest.investor_registerid
                //              where channel.ChannelName == "xicai"
                //              select new
                //              {
                //                  username = item.username,
                //                  invest_time = invest.invest_time,
                //                  targetid = invest.targetid,
                //                  investor_registerid = invest.investor_registerid,
                //                  borrower_registerid = invest.borrower_registerid,
                //                  bid_records_id = invest.bid_records_id,
                //                  investment_amount = invest.investment_amount,
                //                  mobile = item.mobile
                //              };
                StringBuilder sql = new StringBuilder(@"
	                            select 
                                row_number() over (order by c.registration_time asc) as RowNumber,
	                            '' url,
	                            0 commision,
	                            e.targetid pid,
	                            e.invest_time [datetime],
	                            [money] Earnings,
	                            bid_records_id id,
	                            investment_amount [money],
	                            c.mobile phone,
	                            f.annual_interest_rate rate,
	                            case f.unit_day when 1 then ISNULL(life_of_loan,0)*30 else life_of_loan end life_cycle,
	                            c.username username
	                            from hx_member_table c
	                            join hx_Channel d
	                            on c.channel_invitedcode = d.Invitedcode
	                            join hx_Bid_records e
	                            on c.registerid = e.investor_registerid
	                            join hx_borrowing_target f
	                            on e.targetid = f.targetid
	                            left join 
	                            (select sum(interestpayment) [money],
	                            investor_registerid,
	                            borrower_registerid,
	                            targetid 
	                            from hx_income_statement 
	                            group by investor_registerid,borrower_registerid,targetid) g
	                            on e.investor_registerid = g.investor_registerid and e.borrower_registerid = g.borrower_registerid and e.targetid = g.targetid
	                            where d.ChannelName = 'xicai'"    );

                StringBuilder sqlCount = new StringBuilder(@"
	                            select count(*)
	                            from hx_member_table c
	                            join hx_Channel d
	                            on c.channel_invitedcode = d.Invitedcode
	                            join hx_Bid_records e
	                            on c.registerid = e.investor_registerid
	                            join hx_borrowing_target f
	                            on e.targetid = f.targetid
	                            left join 
	                            (select sum(interestpayment) [money],
	                            investor_registerid,
	                            borrower_registerid,
	                            targetid 
	                            from hx_income_statement 
	                            group by investor_registerid,borrower_registerid,targetid) g
	                            on e.investor_registerid = g.investor_registerid and e.borrower_registerid = g.borrower_registerid and e.targetid = g.targetid
	                            where d.ChannelName = 'xicai'"    );
                if (!string.IsNullOrWhiteSpace(startdate))
                {
                    DateTime sTime = DateTime.Parse(startdate);
                    //retData = from item in retData
                    //          where item.invest_time >= sTime
                    //          select item;
                    sql.Append(" and e.invest_time >=");
                    sql.Append(sTime.ToString("yyyy-MM-dd"));

                    sqlCount.Append(" and e.invest_time >=");
                    sqlCount.Append(sTime.ToString("yyyy-MM-dd"));
                }
                if (!string.IsNullOrWhiteSpace(enddate))
                {
                    DateTime eTime = DateTime.Parse(enddate);
                    //retData = from item in retData
                    //          where item.invest_time <= eTime
                    //          select item;
                    sql.Append(" and e.invest_time <=");
                    sql.Append(eTime.ToString("yyyy-MM-dd"));
                    sqlCount.Append(" and e.invest_time <=");
                    sqlCount.Append(eTime.ToString("yyyy-MM-dd"));
                }
                //var resData = from item in retData
                //              join target in ef.hx_borrowing_target
                //              on item.targetid equals target.targetid
                //              join earning in
                //              (from item in ef.hx_income_statement
                //               group item by new
                //               {
                //                   investor = item.investor_registerid,
                //                   borrower = item.borrower_registerid,
                //                   targetID = item.targetid
                //               } into g
                //               select new
                //               {
                //                   investor = g.Key.investor,
                //                   borrower = g.Key.borrower,
                //                   targetID = g.Key.targetID,
                //                   money = g.Sum(c => c.interestpayment ?? 0)
                //               })
                //               on new { investor = item.investor_registerid, borrower = item.borrower_registerid, targetID = item.targetid }
                //               equals new { investor = earning.investor, borrower = earning.borrower, targetID = earning.targetID }
                //              select new
                //              {
                //                  datetime = item.invest_time,
                //                  Earnings = earning.money,
                //                  id = item.bid_records_id,
                //                  money = item.investment_amount,
                //                  phone = item.mobile,
                //                  pid = item.targetid,
                //                  rate = target.annual_interest_rate,
                //                  term = target.unit_day == 1 ? (target.life_of_loan ?? 0) * 30 : (target.life_of_loan ?? 0),
                //                  username = item.username
                //              };

                if (page <= 0)
                {
                    page = 1;
                }
                if (pagesize > 50)
                {
                    pagesize = 50;
                }
                if (pagesize <= 0)
                {
                    pagesize = 1;
                }
                DataTable dtCount   = DbHelperSQL.GET_DataTable_List(sqlCount.ToString());
                string    filnalSql = "select top " + pagesize + @" * from (" + sql.ToString() + ")as temp where RowNumber > " + (pagesize * (page - 1));
                DataTable dtRecord  = DbHelperSQL.GET_DataTable_List(filnalSql);
                //var totalCount = resData.Count();
                //var cc = resData.OrderBy(c => c.datetime).Skip((page - 1) * pagesize).Take(pagesize);
                //var res = (from item in cc.ToList()
                //           select new tj_data
                //           {
                //               url = Request.Url.GetLeftPart(UriPartial.Authority) + "/invest_borrow_" + item.pid + ".html",
                //               commision = 0,
                //               pid = (item.pid ?? 0).ToString(),
                //               datetime = (Convert.ToDateTime(item.datetime).ToString("yyyy-MM-dd HH:mm:ss")),
                //               Earnings = item.Earnings,
                //               id = item.id.ToString(),
                //               money = item.money ?? 0,
                //               phone = item.phone,
                //               rate = item.rate ?? 0,
                //               life_cycle = item.term,
                //               username = item.username
                //           }).ToList();
                List <tj_data> res = new List <tj_data>();
                res = ConvertDataTable <tj_data> .ConvertToList(dtRecord);

                int    totalCount = Convert.ToInt32(dtCount.Rows[0][0]);
                string r          = "{\"list\":" + JsonConvert.SerializeObject(res, Formatting.Indented, timeFormat) + ",\"total\":" + totalCount + ",\"code\":0}";
                return(r);
            }
            catch (Exception ex)
            {
                LogInfo.WriteLog("投资统计接口,异常消息:" + ex.Message + ",Trace:" + ex.StackTrace + ex.InnerException.StackTrace);
                return("操作异常,请稍后重试");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 创建订单时记录打折活动信息
        /// </summary>
        /// <param name="requestList"></param>
        /// <returns></returns>
        public static async Task <bool> SaveCreateOrderDiscountInfo(List <SalePromotionActivityDiscountOrder> orderInfoList)
        {
            bool result = true;

            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Gungnir"].ConnectionString))
            {
                conn.Open();
                using (var tran = conn.BeginTransaction())
                {
                    using (var cmd = new SqlCommand("", conn, tran))
                    {
                        try
                        {
                            var orderInfoTmp = orderInfoList.Select(item => new
                            {
                                UserId     = item.UserId,
                                OrderId    = item.OrderId,
                                Pid        = item.Pid,
                                Num        = item.Num,
                                ActivityId = item.ActivityId
                            });
                            DataTable orderInfoDT = ConvertDataTable.ToDataTable(orderInfoTmp);
                            cmd.CommandText = @"CREATE TABLE #orderInfoTmp([UserId] [nvarchar](100) NOT NULL,
	                                                                        [OrderId] [int] NULL,
	                                                                        [Pid] [nvarchar](100) NOT NULL,
	                                                                        [Num] [int] NOT NULL,
	                                                                        [ActivityId] [nvarchar](100) NOT NULL);"    ;
                            await cmd.ExecuteNonQueryAsync();

                            using (SqlBulkCopy bulkcopy = new SqlBulkCopy(conn, SqlBulkCopyOptions.KeepIdentity, tran))
                            {
                                bulkcopy.BulkCopyTimeout      = 660;
                                bulkcopy.DestinationTableName = "#orderInfoTmp";
                                bulkcopy.WriteToServer(orderInfoDT);
                                bulkcopy.Close();
                            }
                            //若记录已存在,覆盖;不存在则插入
                            string sql = @"MERGE INTO [Activity].[dbo].[SalePromotionDiscountOrder] WITH ( ROWLOCK ) AS do
                                            USING #orderInfoTmp AS temp
                                            ON do.OrderId = temp.OrderId and do.UserId=temp.UserId
                                               and do.Pid=temp.Pid and do.OrderStatus=1
                                            WHEN MATCHED THEN
                                                UPDATE SET do.Num=temp.Num,
                                                           do.ActivityId=temp.ActivityId,
                                                           do.LastUpdateDateTime=getdate()
                                            WHEN NOT MATCHED THEN
                                                INSERT ([UserId],[OrderId],[Pid],[Num],
                                                        [ActivityId],[OrderStatus],[CreateDateTime])
                                                VALUES (temp.UserId,temp.OrderId,temp.Pid,temp.Num,
                                                        temp.ActivityId,1,getdate());";
                            cmd.CommandText = sql;
                            if ((await cmd.ExecuteNonQueryAsync()) != orderInfoList.Count)
                            {
                                result = false;
                            }
                            if (result)
                            {
                                tran.Commit();
                                var keys = new List <string>();
                                foreach (var item in orderInfoList)
                                {
                                    keys.Add(item.ActivityId + "/" + item.Pid);
                                    keys.Add(item.ActivityId + "/" + item.UserId);
                                    keys.Add(item.OrderId.ToString());
                                }
                                DBReadOnlyFlagHelper.SetDBReadOnlyFlagCache(SalePromotionActivityConst.SalePromotionDiscountOrder, keys.ToList());
                            }
                            else
                            {
                                tran.Rollback();
                                Logger.Error($"SaveCreateOrderDiscountInfo插入订单折扣信息记录失败,订单id{orderInfoList[0].OrderId}");
                            }
                        }
                        catch (Exception ex)
                        {
                            result = false;
                            tran.Rollback();
                            Logger.Error($"SaveCreateOrderDiscountInfo插入订单折扣信息记录异常,订单id{orderInfoList[0].OrderId},异常:{ex}");
                        }
                    }
                }
            }
            return(result);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 修改活动商品的已售数量
        /// </summary>
        /// <param name="orderInfoList"></param>
        /// <returns></returns>
        public static async Task <bool> UpdateProductSoldQuantity(List <ActivityPidSoldNumModel> orderInfoList)
        {
            bool result = true;

            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Gungnir"].ConnectionString))
            {
                conn.Open();
                using (var tran = conn.BeginTransaction())
                {
                    using (var cmd = new SqlCommand("", conn, tran))
                    {
                        try
                        {
                            var orderInfoTmp = orderInfoList.Select(item => new
                            {
                                Pid          = item.Pid,
                                SoldQuantity = item.SoldNum >= 0 ? item.SoldNum : 0,
                                ActivityId   = item.ActivityId
                            });
                            DataTable orderInfoDT = ConvertDataTable.ToDataTable(orderInfoTmp);
                            cmd.CommandText = @"CREATE TABLE #orderInfoTmp([Pid] [nvarchar](100) NOT NULL,
                                                                           [SoldQuantity] [int] NOT NULL,
                                                                           [ActivityId] [nvarchar](100) NOT NULL);";
                            await cmd.ExecuteNonQueryAsync();

                            using (SqlBulkCopy bulkcopy = new SqlBulkCopy(conn, SqlBulkCopyOptions.KeepIdentity, tran))
                            {
                                bulkcopy.BulkCopyTimeout      = 660;
                                bulkcopy.DestinationTableName = "#orderInfoTmp";
                                bulkcopy.WriteToServer(orderInfoDT);
                                bulkcopy.Close();
                            }
                            string sql = @"MERGE INTO [Activity].[dbo].[SalePromotionActivityProduct] WITH ( ROWLOCK ) AS p
                                            USING #orderInfoTmp AS temp
                                            ON p.ActivityId=temp.ActivityId and p.Pid=temp.Pid and p.Is_Deleted=0
                                            WHEN MATCHED THEN
                                                UPDATE SET  p.SoldQuantity=temp.SoldQuantity;";
                            cmd.CommandText = sql;
                            await cmd.ExecuteNonQueryAsync();

                            if (result)
                            {
                                tran.Commit();
                            }
                            else
                            {
                                tran.Rollback();
                                Logger.Error($"UpdateProductSoldQuantity更新活动打折商品已售数量异常," +
                                             $"活动id{string.Join(",",orderInfoList.Select(o=>o.ActivityId).Distinct())}");
                            }
                        }
                        catch (Exception ex)
                        {
                            result = false;
                            tran.Rollback();
                            Logger.Error($"UpdateProductSoldQuantity,更新活动打折商品已售数量异常," +
                                         $"活动id{string.Join(",", orderInfoList.Select(o => o.ActivityId).Distinct())},ex:{ex}");
                        }
                    }
                }
            }
            return(result);
        }
Exemplo n.º 5
0
        protected void lknTerminar_Click(object sender, EventArgs e)
        {
            string         mensaje = String.Empty;
            AdminProductos aPro    = new AdminProductos();

            lblCambioTitulo.Text = "Cambio: ";
            Double value;

            if (txtRecibido.Text.Equals(""))
            {
                //txtRecibido.Text = "0";
                mensaje = "Debe ingresar el valor entregado por el Cliente";
            }
            else
            {
                if (txtNombre.Text.Equals(""))
                {
                    txtNombre.Text = "Usuario No Definido";
                }

                tblUsuarios usuario;
                if (Session["user"] != null)
                {
                    if (Session["ventas"] != null)
                    {
                        listaProductos = (List <ProductoVenta>)Session["ventas"];
                    }
                    updateTotal();
                    usuario = (tblUsuarios)Session["user"];
                    int factura = aPro.insertarFactura(txtNombre.Text, txtCelular.Text, txtDireccion.Text, valorFactura, usuario.nombres + " " + usuario.apellidos, usuario.id_sucursal.Value);
                    if (factura != 0)
                    {
                        if (Double.TryParse((Convert.ToDecimal(txtRecibido.Text) - valorFactura).ToString(), out value))
                        {
                            lblCambioTitulo.Text = lblCambioTitulo.Text + " " + String.Format(System.Globalization.CultureInfo.CurrentCulture, "{0:C2}", value);
                        }
                        foreach (ProductoVenta p in listaProductos)
                        {
                            aPro.insertarVenta(factura, p.IdProducto, (int)p.Cantidad, (double)p.Valor, (double)p.Total);
                        }

                        LocalReport localReport = new LocalReport();
                        localReport.ReportPath = "rptFactura.rdlc";
                        ReportParameter[] parameters = new ReportParameter[2];
                        parameters[0] = new ReportParameter("nombre", txtNombre.Text);
                        parameters[1] = new ReportParameter("facturaId", factura.ToString());
                        localReport.SetParameters(parameters);
                        ReportDataSource rds = new ReportDataSource("dsProductosVentas", ConvertDataTable.ConvertToDataTable(listaProductos));
                        localReport.DataSources.Add(rds);
                        ImprimirArchivos imp = new ImprimirArchivos();
                        imp.Export(localReport);
                        imp.Print();
                    }
                }
            }
        }