Exemple #1
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public TB_ToInvoice GetModel(int id)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select LastPayTotal,TempGuid,Id,ProNo,CreateUser,AppleDate,DaoKuanDate,Total,UpAccount,PoNo,PoName,GuestName,Remark,State,ZhangQi,FPNo,FPId,BusType ");
            strSql.Append(" FROM TB_ToInvoice ");
            strSql.Append(" where TB_ToInvoice.id=" + id + "");
            TB_ToInvoice model = null;

            using (SqlConnection conn = DBHelp.getConn())
            {
                conn.Open();
                SqlCommand objCommand = new SqlCommand(strSql.ToString(), conn);
                using (SqlDataReader dataReader = objCommand.ExecuteReader())
                {
                    if (dataReader.Read())
                    {
                        model              = ReaderBind(dataReader);
                        model.TempGuid     = dataReader["TempGuid"].ToString();
                        model.LastPayTotal = Convert.ToDecimal(dataReader["LastPayTotal"]);
                    }
                }
            }
            return(model);
        }
Exemple #2
0
        public bool updateTran(TB_ToInvoice model, VAN_OA.Model.EFrom.tb_EForm eform, tb_EForms forms)
        {
            using (SqlConnection conn = DBHelp.getConn())
            {
                conn.Open();
                SqlTransaction tan        = conn.BeginTransaction();
                SqlCommand     objCommand = conn.CreateCommand();
                objCommand.Transaction = tan;
                try
                {
                    model.State = eform.state;
                    objCommand.Parameters.Clear();
                    model.UpAccount = accountXishu(model, eform, objCommand);
                    Update(model, objCommand);

                    tb_EFormService eformSer = new tb_EFormService();
                    eformSer.Update(eform, objCommand);
                    tb_EFormsService eformsSer = new tb_EFormsService();
                    eformsSer.Add(forms, objCommand);
                    //判断是否是删除 -到款单删除
                    if (eform.proId == 38 && eform.state == "通过")
                    {
                        //及到款单删除会有两个层面,
                        //1,预付款模式,这时只需要在审批的最后一个流程总经理点确定时,删除相应的到款单;并弹出一个提示框,该预付到款单已删除,点确定,完成。
                        //2,发票到款模式,我们需要在最后一个审批流程点确定时,删除相应项目编号针对该发票号的发票签回单(如果有在审批执行中或已完成审批的),再删除该项目编号针对该发票号的到款单,
                        //并弹出一个提示框,该发票到款单已删除,点确定,完成。
                        if (model.BusType == 0)//实际发票到款
                        {
                            //删除发票签回单(如果有)
                            string deleteFPBack = string.Format("delete tb_EForms where e_Id in (select id from tb_EForm where proId=29 and allE_id in (select id from Sell_OrderFPBack where PId={0}));", model.FPId);
                            deleteFPBack += string.Format("delete tb_EForm where proId=29 and allE_id in (select id from Sell_OrderFPBack where PId={0});", model.FPId);
                            deleteFPBack += string.Format("delete Sell_OrderFPBacks  where Id in (select id from Sell_OrderFPBack where PId={0});delete Sell_OrderFPBack  where PId={0};", model.FPId);

                            objCommand.CommandText = deleteFPBack;
                            objCommand.ExecuteNonQuery();
                        }

                        //删除发票删除单 审批流
                        string deleteFPDelete = string.Format("delete tb_EForms where e_Id in (select id from tb_EForm where proId in (26,34,37) and allE_id={0});", model.Id);
                        deleteFPDelete        += string.Format("delete tb_EForm where proId in (27,38) and allE_id={0};", model.Id);
                        objCommand.CommandText = deleteFPDelete;
                        objCommand.ExecuteNonQuery();

                        string DeleteAll = string.Format("delete from [TB_ToInvoice] where id={0};", model.Id);
                        objCommand.CommandText = DeleteAll;
                        objCommand.ExecuteNonQuery();
                    }

                    tan.Commit();
                }
                catch (Exception)
                {
                    tan.Rollback();
                    return(false);
                }
            }

            return(true);
        }
Exemple #3
0
        protected void gvList_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#EAF1FD',this.style.fontWeight='';");
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor,this.style.fontWeight='';");
                TB_ToInvoice model = e.Row.DataItem as TB_ToInvoice;
                if (model != null)
                {
                    if (model.POTotal != 0 && model.HadFpTotal == model.POTotal)
                    {
                        e.Row.BackColor = System.Drawing.Color.Red;
                    }
                    else if (model.HadFpTotal != 0)
                    {
                        e.Row.BackColor = System.Drawing.Color.Yellow;
                    }
                }
                if (model.IsQuanDao)
                {
                    var lblDays = e.Row.FindControl("lblDays") as Label;
                    lblDays.Font.Underline = true;
                }
                if (model.POTotal == model.Total)
                {
                    var lblFPDays = e.Row.FindControl("lblFPDays") as Label;
                    lblFPDays.Font.Underline = true;
                }

                if (model.FPDate.HasValue)
                {
                    var lblWeiFPDays = e.Row.FindControl("lblWeiFPDays") as Label;
                    lblWeiFPDays.Font.Underline = true;
                }
            }
            if (e.Row.RowType == DataControlRowType.Footer)
            {
            }
        }
Exemple #4
0
        private decimal accountXishu(TB_ToInvoice model, VAN_OA.Model.EFrom.tb_EForm eform, SqlCommand objCommand)
        {
            if (eform.state == "通过")
            {
                string sql = string.Format(@"declare @cou int;
                                        declare @lastDate datetime;
                                        select @cou=COUNT(*) from TB_ToInvoice where FPId={2};
                                        if (@cou=0)
                                        begin  
                                        select @lastDate=DaoKuanDate from TB_ToInvoice where State='通过' and PoNo='{0}' and Id<>{1} order by DaoKuanDate
                                        end
                                        select @lastDate;", model.PoNo, model.Id, model.FPId);
                objCommand.CommandText = sql;
                object objdate = objCommand.ExecuteScalar();

                //查找第一次销售出库日期

                sql = string.Format("select  top 1 rutime from Sell_OrderOutHouse where pono='{0}' order by rutime ", model.PoNo);
                objCommand.CommandText = sql;
                DateTime sellDate = Convert.ToDateTime(objCommand.ExecuteScalar());

                DateTime fristDate = DateTime.Now;
                if (objdate is DBNull)
                {
                    fristDate = model.DaoKuanDate;
                }
                else
                {
                    fristDate = Convert.ToDateTime(objdate);
                }
                TimeSpan ts = fristDate - sellDate;
                sql = string.Format("select top 1 accountXishu from TB_AccountPeriod where  accountName<={0}  order by accountName desc", ts.Days);
                objCommand.CommandText = sql;
                decimal accountXishu = Convert.ToDecimal(objCommand.ExecuteScalar());
                return(accountXishu);
            }
            return(0);
        }
Exemple #5
0
        public int addTran(TB_ToInvoice model, VAN_OA.Model.EFrom.tb_EForm eform)
        {
            int id = 0;

            using (SqlConnection conn = DBHelp.getConn())
            {
                conn.Open();
                SqlTransaction tan        = conn.BeginTransaction();
                SqlCommand     objCommand = conn.CreateCommand();
                objCommand.Transaction = tan;
                try
                {
                    objCommand.Parameters.Clear();
                    tb_EFormService eformSer = new tb_EFormService();
                    string          proNo    = eformSer.GetAllE_No("TB_ToInvoice", objCommand);
                    model.ProNo = proNo;
                    eform.E_No  = proNo;

                    model.State     = eform.state;
                    model.UpAccount = accountXishu(model, eform, objCommand);
                    id = Add(model, objCommand);


                    eform.allE_id = id;
                    eformSer.Add(eform, objCommand);

                    tan.Commit();
                }
                catch (Exception)
                {
                    tan.Rollback();
                    return(0);
                }
                return(id);
            }
        }
Exemple #6
0
        /// <summary>
        /// 预付款结转 生成 实际到款单
        /// </summary>
        /// <returns></returns>
        public bool YuPay_CreateInvoice(Sell_OrderFP model, decimal PayTotal)
        {
            DateTime daoKuanDate = Convert.ToDateTime("1900-1-1");

            using (SqlConnection conn = DBHelp.getConn())
            {
                conn.Open();
                SqlTransaction tan        = conn.BeginTransaction();
                SqlCommand     objCommand = conn.CreateCommand();
                objCommand.Transaction = tan;

                objCommand.CommandText = string.Format("select isnull(sum(Total),0) from TB_ToInvoice where BusType=1 and PoNo='{0}' and State='通过'", model.PONo);
                var result_payTotal = Convert.ToDecimal(objCommand.ExecuteScalar());



                objCommand.CommandText = string.Format("select isnull(max(DaoKuanDate),getdate()) from TB_ToInvoice where BusType=1 and PoNo='{0}' and State='通过'", model.PONo);
                daoKuanDate            = Convert.ToDateTime(objCommand.ExecuteScalar());

                if (PayTotal < model.Total || (PayTotal == model.Total && result_payTotal == PayTotal))
                {
                    //所有预付款记录的剩余预付款字段金额更新 为0
                    objCommand.CommandText = string.Format("update TB_ToInvoice set Total=0 where BusType=1 and PoNo='{0}' and State='通过' ", model.PONo);
                    objCommand.ExecuteNonQuery();
                }
                if (PayTotal == model.Total && result_payTotal > PayTotal)
                {
                    //提交审批通过后 第一条预付款记录的剩余预付款字段金额更新 为 (原所有预付款记录的剩余金额合计值-此发票金额),
                    objCommand.CommandText = string.Format("select id,Total,DaoKuanDate from TB_ToInvoice where BusType=1 and PoNo='{0}'  and State='通过' order by AppleDate ", model.PONo);

                    List <TB_ToInvoice> invoList = new List <TB_ToInvoice>();
                    using (SqlDataReader dataReader = objCommand.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
                            TB_ToInvoice invM = new TB_ToInvoice();
                            invM.Id    = (int)dataReader["id"];
                            invM.Total = Convert.ToDecimal(dataReader["Total"]);

                            try
                            {
                                invM.DaoKuanDate = Convert.ToDateTime(dataReader["DaoKuanDate"]);
                            }
                            catch (Exception)
                            {
                            }
                            invoList.Add(invM);
                            if (invoList.Sum(t => t.Total) > PayTotal)
                            {
                                break;
                            }
                        }
                    }
                    decimal sum = 0;
                    for (int i = 0; i < invoList.Count; i++)
                    {
                        if (i == invoList.Count - 1)
                        {
                            objCommand.CommandText = string.Format("update TB_ToInvoice set Total=Total-{1} where id={0} ",
                                                                   invoList[i].Id, (PayTotal - sum));
                            objCommand.ExecuteNonQuery();
                        }
                        else
                        {
                            objCommand.CommandText = string.Format("update TB_ToInvoice set Total=0 where id={0} ", invoList[i].Id);
                            objCommand.ExecuteNonQuery();
                            sum += invoList[i].Total;
                        }
                    }
                }
                tan.Commit();
            }
            //生成预付款单
            TB_ToInvoice toInvoic_model = new TB_ToInvoice();

            toInvoic_model.AppleDate   = DateTime.Now;
            toInvoic_model.CreateUser  = "******";
            toInvoic_model.DaoKuanDate = daoKuanDate;
            toInvoic_model.GuestName   = model.GuestName;
            toInvoic_model.PoName      = model.POName;
            toInvoic_model.PoNo        = model.PONo;
            toInvoic_model.Total       = PayTotal;
            toInvoic_model.UpAccount   = 0;
            toInvoic_model.FPNo        = model.FPNo;
            string sql = string.Format("select top 1 guestDays from TB_GuestTrack where guestName='{0}'", model.GuestName);
            object ob  = DBHelp.ExeScalar(sql);

            toInvoic_model.ZhangQi = ob is DBNull ? 0 : Convert.ToDecimal(ob);
            toInvoic_model.FPId    = model.Id;
            toInvoic_model.BusType = 0;
            toInvoic_model.State   = "通过";
            toInvoic_model.Remark  = "";

            VAN_OA.Model.EFrom.tb_EForm eform = new tb_EForm();
            eform.appPer     = 1;
            eform.appTime    = DateTime.Now;
            eform.createPer  = 1;
            eform.createTime = DateTime.Now;
            eform.proId      = 27;
            eform.state      = "通过";
            eform.toPer      = 0;
            eform.toProsId   = 0;
            if (addTran(toInvoic_model, eform) > 0)
            {
                new CG_POOrderService().GetOrder_ToInvoiceAndUpdatePoStatus(toInvoic_model.PoNo);
            }
            return(true);
        }
Exemple #7
0
        /// <summary>
        /// 对象实体绑定数据
        /// </summary>
        public TB_ToInvoice ReaderBind(IDataReader dataReader)
        {
            TB_ToInvoice model = new TB_ToInvoice();
            object       ojb;

            ojb = dataReader["Id"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.Id = (int)ojb;
            }
            model.ProNo      = dataReader["ProNo"].ToString();
            model.CreateUser = dataReader["CreateUser"].ToString();
            ojb = dataReader["AppleDate"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.AppleDate = (DateTime)ojb;
            }
            ojb = dataReader["DaoKuanDate"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.DaoKuanDate = (DateTime)ojb;
            }
            ojb = dataReader["Total"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.Total = (decimal)ojb;
            }
            ojb = dataReader["UpAccount"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.UpAccount = (decimal)ojb;
            }
            model.PoNo      = dataReader["PoNo"].ToString();
            model.PoName    = dataReader["PoName"].ToString();
            model.GuestName = dataReader["GuestName"].ToString();
            model.Remark    = dataReader["Remark"].ToString();
            model.State     = dataReader["State"].ToString();
            ojb             = dataReader["ZhangQi"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.ZhangQi = (decimal)ojb;
            }
            ojb = dataReader["FPNo"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.FPNo = ojb.ToString();
            }

            ojb = dataReader["FPId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.FPId = (int)ojb;
            }

            ojb = dataReader["BusType"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.BusType = (int)ojb;
            }
            return(model);
        }
Exemple #8
0
        public List <TB_ToInvoice> GetListArrayReport_HeBing(string strWhere, string strWhere2, string strWhere3, string fpTotal, string isColse)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.AppendFormat(@"select Model,FPDate,CG_POOrder.AE,MaxDaoKuanDate,MinDaoKuanDate,CG_POOrder.IsPoFax,minProNo,minOutTime,FPTotal,newtable1.PONo,
POTotal_SumView.SUMPOTotal as POTotal,hadFpTotal,CG_POOrder.PODate as minPoDate,Total,newtable1.PoName,newtable1.GuestName from(
select PONo,PoName,GuestName from CG_POOrder where Status='通过'and IFZhui=0 {0} {2} {3} group by PONo,PoName,GuestName ) as newtable1
left join(select PONo ,sum(TuiTotal) as TuiTotal from Sell_OrderInHouse where Status='通过'  group by PONo) as newtable2 on newtable1.PONo= newtable2.PONo
left join( select PONo, sum(Total) as hadFpTotal,min(ruTime) as FPDate from Sell_OrderFP where Status='通过' group by PONo) as newtable3 on newtable1.PONo= newtable3.PONo
left join (select pono ,sum(Total) as Total,Min(ProNo) as minProNo,min(DaoKuanDate) as MinDaoKuanDate from  TB_ToInvoice where {1} group by PONo )as newtable4 on newtable1.PONo= newtable4.PONo 
left join( select min(RuTime) as minOutTime, PONo from Sell_OrderOutHouse group by PONo) as newtable5 on newtable1.PONo= newtable5.PONo
left join CG_POOrder on CG_POOrder.pono=newtable1.PONo and Status='通过' and IFZhui=0 
left join (select pono ,max(DaoKuanDate) as MaxDaoKuanDate from  TB_ToInvoice where State='通过' group by PONo )as newtable6 on newtable1.PONo= newtable6.PONo 
LEFT JOIN POTotal_SumView ON POTotal_SumView.PONo=newtable1.PONo ", strWhere3, strWhere, fpTotal, isColse);

            if (strWhere.Trim() != "")
            {
                strSql.Append(" where 1=1 " + strWhere2);
            }
            strSql.Append(" order by newtable1.PONo desc");
            List <TB_ToInvoice> list = new List <TB_ToInvoice>();

            using (SqlConnection conn = DBHelp.getConn())
            {
                conn.Open();
                SqlCommand objCommand = new SqlCommand(strSql.ToString(), conn);
                using (SqlDataReader dataReader = objCommand.ExecuteReader())
                {
                    while (dataReader.Read())
                    {
                        TB_ToInvoice model = new TB_ToInvoice();
                        object       ojb;
                        ojb = dataReader["Model"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.Model = Convert.ToString(ojb);
                        }

                        ojb = dataReader["FPDate"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.FPDate = Convert.ToDateTime(ojb);
                        }

                        ojb = dataReader["IsPoFax"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.IsPoFax = Convert.ToBoolean(ojb);
                        }
                        ojb = dataReader["AE"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.AE = Convert.ToString(ojb);
                        }
                        ojb = dataReader["POTotal"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.POTotal = Convert.ToDecimal(ojb);
                        }
                        ojb = dataReader["HadFpTotal"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.HadFpTotal = Convert.ToDecimal(ojb);
                        }

                        ojb = dataReader["MinPoDate"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.MinPoDate = Convert.ToDateTime(ojb);
                        }
                        model.PoNo      = dataReader["PoNo"].ToString();
                        model.PoName    = dataReader["PoName"].ToString();
                        model.GuestName = dataReader["GuestName"].ToString();
                        ojb             = dataReader["Total"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.Total = (decimal)ojb;
                        }
                        ojb = dataReader["MinOutTime"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.MinOutTime = Convert.ToDateTime(ojb);
                            //TimeSpan ts=(DateTime.Now - model.MinOutTime.Value);
                            TimeSpan ts = (Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")) - Convert.ToDateTime(model.MinOutTime.Value.ToString("yyyy-MM-dd")));

                            model.Days = ts.Days;
                        }
                        //在到款单列表(见第二画面),出库单已经开具的情况下,如果项目金额=0,则 不管到款金额合并 是否打勾,该项目的天数 一律显示0,表示不需要到款。
                        //这个逻辑 也需要在 销售业绩帐期考核、销售报表汇总、项目费用汇总统计  的 天数或实际到款期 中 同步修改
                        if (model.POTotal == 0)
                        {
                            model.Days = 0;
                        }

                        ojb = dataReader["FPTotal"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.FPNo = ojb.ToString();
                        }
                        model.BusTypeStr = "发票";
                        model.PONo_Id    = model.PoNo + "_" + model.Id;
                        ojb = dataReader["MinDaoKuanDate"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.DaoKuanDate1 = (DateTime)ojb;
                        }
                        ojb = dataReader["MinProNo"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.ProNo = ojb.ToString();
                        }
                        ojb = dataReader["MaxDaoKuanDate"];
                        if (ojb != null && ojb != DBNull.Value && model.MinOutTime.HasValue && model.POTotal != 0 && model.POTotal <= model.Total)
                        {
                            TimeSpan ts = (Convert.ToDateTime(Convert.ToDateTime(ojb).ToString("yyyy-MM-dd")) - Convert.ToDateTime(model.MinOutTime.Value.ToString("yyyy-MM-dd")));

                            model.Days = ts.Days;

                            //model.Days = Convert.ToDateTime(ojb).Subtract(model.MinOutTime.Value).Days;
                        }
                        if (model.POTotal <= model.Total)
                        {
                            model.IsQuanDao = true;
                        }
                        // 开票天数
                        if (model.FPDate != null)
                        {
                            if (model.Total < model.POTotal)
                            {
                                // 1.到款金额<项目金额 开票天数=今天-开票日期
                                TimeSpan ts = (Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")) - Convert.ToDateTime(model.FPDate.Value.ToString("yyyy-MM-dd")));
                                model.FPDays = ts.Days;
                            }
                            else if (model.Total == model.POTotal)
                            {
                                //2.到款金额=项目金额 开票天数=最后一笔到款的日期-开票日期,开票天数用下划线 3.开票日期没有的话,开票日期和开票天数均不显示
                                TimeSpan ts = (Convert.ToDateTime(model.DaoKuanDate1) - Convert.ToDateTime(model.FPDate.Value.ToString("yyyy-MM-dd")));
                                model.FPDays = ts.Days;
                            }
                        }
                        //增加一列
                        if (model.MinOutTime != null)
                        {
                            if (model.FPDate != null)
                            {
                                //如该项目某天开出发票了,未开票天数=(某天-该项目第一笔的出库日期)-1
                                TimeSpan ts = model.FPDate.Value.Date - Convert.ToDateTime(model.MinOutTime.Value.ToString("yyyy-MM-dd"));
                                model.WeiFPDays = ts.Days;
                            }
                            else
                            {
                                //未开票天数=没有开过票的项目的 今天-该项目第一笔的出库日期;
                                TimeSpan ts = DateTime.Now.Date - Convert.ToDateTime(model.MinOutTime.Value.ToString("yyyy-MM-dd"));
                                model.WeiFPDays = ts.Days;
                            }
                        }
                        list.Add(model);
                    }
                }
            }
            return(list);
        }
Exemple #9
0
        public List <TB_ToInvoice> GetListArrayReport(string strWhere, string strWhere2, string isColse)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.AppendFormat(@"select Model,FPDate,sumTotal,sumFPTotal,CG_POOrder.AE,CG_POOrder.IsPoFax,newtable1.PONo,newtable1.POTotal-isnull(TuiTotal,0) as POTotal,hadFpTotal,minOutTime,CG_POOrder.PODate as minPoDate,
TB_ToInvoice.Id,TB_ToInvoice.ProNo,DaoKuanDate,Total,UpAccount,newtable1.PoName,newtable1.GuestName,State,FPNo,FPId,BusType,CreateUser,AppleDate,Remark,newtable1.AppName from(
select PONo,sum(POTotal) AS POTotal,PoName,GuestName,AppName  from CG_POOrder where Status='通过' {0} {1} group by PONo,PoName,GuestName,AppName  ) as newtable1
left join(select PONo ,sum(TuiTotal) as TuiTotal from Sell_OrderInHouse where Status='通过'  group by PONo) as newtable2 on newtable1.PONo= newtable2.PONo
left join( select PONo, sum(Total) as hadFpTotal,min(ruTime) as FPDate from Sell_OrderFP where Status='通过' group by PONo) as newtable3 on newtable1.PONo= newtable3.PONo
left join( select min(RuTime) as minOutTime, PONo from Sell_OrderOutHouse group by PONo) as newtable4 on newtable1.PONo= newtable4.PONo
left join TB_ToInvoice on  newtable1.PONo= TB_ToInvoice.PONo
left join CG_POOrder on CG_POOrder.pono=newtable1.PONo and Status='通过' and IFZhui=0
left join (SELECT FPId AS TempFPId,sumTotal,Total AS sumFPTotal FROM (SELECT FPId,sum(Total) as sumTotal FROM TB_ToInvoice WHERE State<>'不通过' GROUP BY FPId) as newtable
 left join Sell_OrderFP on Sell_OrderFP.Id=newtable.FPId) AS TB ON TB.TempFPId=TB_ToInvoice.FPID ", strWhere2, isColse);

            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }
            strSql.Append(" order by newtable1.PONo desc,DaoKuanDate desc,ProNo desc");
            List <TB_ToInvoice> list = new List <TB_ToInvoice>();

            using (SqlConnection conn = DBHelp.getConn())
            {
                conn.Open();
                SqlCommand objCommand = new SqlCommand(strSql.ToString(), conn);
                using (SqlDataReader dataReader = objCommand.ExecuteReader())
                {
                    while (dataReader.Read())
                    {
                        TB_ToInvoice model = new TB_ToInvoice();
                        object       ojb;
                        ojb = dataReader["FPDate"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.FPDate = Convert.ToDateTime(ojb);
                        }
                        ojb = dataReader["POTotal"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.POTotal = Convert.ToDecimal(ojb);
                        }
                        ojb = dataReader["AE"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.AE = Convert.ToString(ojb);
                        }
                        ojb = dataReader["Model"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.Model = Convert.ToString(ojb);
                        }
                        ojb = dataReader["HadFpTotal"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.HadFpTotal = Convert.ToDecimal(ojb);
                        }
                        ojb = dataReader["MinOutTime"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.MinOutTime = Convert.ToDateTime(ojb);
                            TimeSpan ts = (Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")) - Convert.ToDateTime(model.MinOutTime.Value.ToString("yyyy-MM-dd")));

                            model.Days = ts.Days;
                        }
                        ojb = dataReader["MinPoDate"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.MinPoDate = Convert.ToDateTime(ojb);
                        }
                        ojb = dataReader["IsPoFax"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.IsPoFax = Convert.ToBoolean(ojb);
                        }


                        model.PoNo      = dataReader["PoNo"].ToString();
                        model.PoName    = dataReader["PoName"].ToString();
                        model.GuestName = dataReader["GuestName"].ToString();

                        ojb = dataReader["Id"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.Id = (int)ojb;


                            model.ProNo      = dataReader["ProNo"].ToString();
                            model.CreateUser = dataReader["CreateUser"].ToString();
                            ojb = dataReader["AppleDate"];
                            if (ojb != null && ojb != DBNull.Value)
                            {
                                model.AppleDate = (DateTime)ojb;
                            }
                            ojb = dataReader["DaoKuanDate"];
                            if (ojb != null && ojb != DBNull.Value)
                            {
                                model.DaoKuanDate1 = (DateTime)ojb;
                                if (model.MinOutTime != null)
                                {
                                    TimeSpan ts = (Convert.ToDateTime(Convert.ToDateTime(ojb).ToString("yyyy-MM-dd")) - Convert.ToDateTime(model.MinOutTime.Value.ToString("yyyy-MM-dd")));

                                    model.Days = ts.Days;
                                }
                            }
                            ojb = dataReader["Total"];
                            if (ojb != null && ojb != DBNull.Value)
                            {
                                model.Total = (decimal)ojb;
                            }
                            ojb = dataReader["UpAccount"];
                            if (ojb != null && ojb != DBNull.Value)
                            {
                                model.UpAccount = (decimal)ojb;
                            }


                            model.Remark = dataReader["Remark"].ToString();
                            model.State  = dataReader["State"].ToString();
                            //ojb = dataReader["ZhangQi"];
                            //if (ojb != null && ojb != DBNull.Value)
                            //{
                            //    model.ZhangQi = (decimal)ojb;
                            //}
                            ojb = dataReader["FPNo"];
                            if (ojb != null && ojb != DBNull.Value)
                            {
                                model.FPNo = ojb.ToString();
                            }

                            ojb = dataReader["FPId"];
                            if (ojb != null && ojb != DBNull.Value)
                            {
                                model.FPId = (int)ojb;
                            }

                            ojb = dataReader["BusType"];
                            if (ojb != null && ojb != DBNull.Value)
                            {
                                model.BusType = (int)ojb;
                            }
                            if (model.BusType == 0)
                            {
                                model.BusTypeStr = "实际发票到款";
                            }
                            else
                            {
                                model.BusTypeStr = "预付款";
                            }
                        }
                        model.PONo_Id = model.PoNo + "_" + model.Id;
                        decimal sumTotal = 0;
                        ojb = dataReader["sumTotal"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            sumTotal = (decimal)ojb;
                        }
                        decimal sumFPTotal = 0;
                        ojb = dataReader["sumFPTotal"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            sumFPTotal = (decimal)ojb;
                        }

                        if (sumTotal <= sumFPTotal)
                        {
                            model.IsQuanDao = true;
                        }

                        // 开票天数
                        if (model.FPDate != null)
                        {
                            if (model.Total < model.POTotal)
                            {
                                // 1.到款金额<项目金额 开票天数=今天-开票日期
                                TimeSpan ts = (Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")) - Convert.ToDateTime(model.FPDate.Value.ToString("yyyy-MM-dd")));
                                model.FPDays = ts.Days;
                            }
                            else if (model.Total == model.POTotal)
                            {
                                //2.到款金额=项目金额 开票天数=最后一笔到款的日期-开票日期,开票天数用下划线 3.开票日期没有的话,开票日期和开票天数均不显示
                                TimeSpan ts = (Convert.ToDateTime(model.DaoKuanDate1) - Convert.ToDateTime(model.FPDate.Value.ToString("yyyy-MM-dd")));
                                model.FPDays = ts.Days;
                            }
                        }
                        //增加一列
                        if (model.MinOutTime != null)
                        {
                            if (model.FPDate != null)
                            {
                                //如该项目某天开出发票了,未开票天数=(某天-该项目第一笔的出库日期)-1
                                TimeSpan ts = model.FPDate.Value.Date - Convert.ToDateTime(model.MinOutTime.Value.ToString("yyyy-MM-dd"));
                                model.WeiFPDays = ts.Days;
                            }
                            else
                            {
                                //未开票天数=没有开过票的项目的 今天-该项目第一笔的出库日期;
                                TimeSpan ts = DateTime.Now.Date - Convert.ToDateTime(model.MinOutTime.Value.ToString("yyyy-MM-dd"));
                                model.WeiFPDays = ts.Days;
                            }
                        }
                        list.Add(model);
                    }
                }
            }
            return(list);
        }
Exemple #10
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public void Update(TB_ToInvoice model, SqlCommand objCommand)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update TB_ToInvoice set ");
            if (model.ProNo != null)
            {
                strSql.Append("ProNo='" + model.ProNo + "',");
            }
            if (model.CreateUser != null)
            {
                strSql.Append("CreateUser='******',");
            }
            if (model.AppleDate != null)
            {
                strSql.Append("AppleDate='" + model.AppleDate + "',");
            }
            if (model.DaoKuanDate != null)
            {
                strSql.Append("DaoKuanDate='" + model.DaoKuanDate + "',");
            }
            if (model.Total != null)
            {
                strSql.Append("Total=" + model.Total + ",");
            }
            if (model.UpAccount != null)
            {
                strSql.Append("UpAccount=" + model.UpAccount + ",");
            }
            if (model.PoNo != null)
            {
                strSql.Append("PoNo='" + model.PoNo + "',");
            }
            if (model.PoName != null)
            {
                strSql.Append("PoName='" + model.PoName + "',");
            }
            if (model.GuestName != null)
            {
                strSql.Append("GuestName='" + model.GuestName + "',");
            }
            if (model.Remark != null)
            {
                strSql.Append("Remark='" + model.Remark + "',");
            }
            if (model.State != null)
            {
                strSql.Append("State='" + model.State + "',");
            }
            else
            {
                strSql.Append("State= null ,");
            }
            int n = strSql.ToString().LastIndexOf(",");

            strSql.Remove(n, 1);
            strSql.Append(" where Id=" + model.Id + "");

            objCommand.CommandText = strSql.ToString();
            objCommand.ExecuteNonQuery();
        }
Exemple #11
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(TB_ToInvoice model, SqlCommand objCommand)
        {
            StringBuilder strSql  = new StringBuilder();
            StringBuilder strSql1 = new StringBuilder();
            StringBuilder strSql2 = new StringBuilder();

            if (model.ProNo != null)
            {
                strSql1.Append("ProNo,");
                strSql2.Append("'" + model.ProNo + "',");
            }
            if (model.CreateUser != null)
            {
                strSql1.Append("CreateUser,");
                strSql2.Append("'" + model.CreateUser + "',");
            }
            if (model.AppleDate != null)
            {
                strSql1.Append("AppleDate,");
                strSql2.Append("'" + model.AppleDate + "',");
            }
            if (model.DaoKuanDate != null)
            {
                strSql1.Append("DaoKuanDate,");
                strSql2.Append("'" + model.DaoKuanDate + "',");
            }
            if (model.Total != null)
            {
                strSql1.Append("Total,");
                strSql2.Append("" + model.Total + ",");
            }
            if (model.LastPayTotal != null)
            {
                strSql1.Append("LastPayTotal,");
                strSql2.Append("" + model.LastPayTotal + ",");
            }

            if (model.UpAccount != null)
            {
                strSql1.Append("UpAccount,");
                strSql2.Append("" + model.UpAccount + ",");
            }
            if (model.PoNo != null)
            {
                strSql1.Append("PoNo,");
                strSql2.Append("'" + model.PoNo + "',");
            }
            if (model.PoName != null)
            {
                strSql1.Append("PoName,");
                strSql2.Append("'" + model.PoName + "',");
            }
            if (model.GuestName != null)
            {
                strSql1.Append("GuestName,");
                strSql2.Append("'" + model.GuestName + "',");
            }
            if (model.Remark != null)
            {
                strSql1.Append("Remark,");
                strSql2.Append("'" + model.Remark + "',");
            }
            if (model.State != null)
            {
                strSql1.Append("State,");
                strSql2.Append("'" + model.State + "',");
            }

            if (model.ZhangQi != null)
            {
                strSql1.Append("ZhangQi,");
                strSql2.Append("" + model.ZhangQi + ",");
            }
            if (model.FPNo != null)
            {
                strSql1.Append("FPNo,");
                strSql2.Append("'" + model.FPNo + "',");
            }

            if (model.FPId != null)
            {
                strSql1.Append("FPId,");
                strSql2.Append("" + model.FPId + ",");
            }
            if (model.BusType != null)
            {
                strSql1.Append("BusType,");
                strSql2.Append("" + model.BusType + ",");
            }

            if (model.TempGuid != null)
            {
                strSql1.Append("TempGuid,");
                strSql2.Append("'" + model.TempGuid + "',");
            }


            strSql.Append("insert into TB_ToInvoice(");
            strSql.Append(strSql1.ToString().Remove(strSql1.Length - 1));
            strSql.Append(")");
            strSql.Append(" values (");
            strSql.Append(strSql2.ToString().Remove(strSql2.Length - 1));
            strSql.Append(")");
            strSql.Append(";select @@IDENTITY");
            int result;

            objCommand.CommandText = strSql.ToString();
            object obj = objCommand.ExecuteScalar();

            if (!int.TryParse(obj.ToString(), out result))
            {
                return(0);
            }
            return(result);
        }