示例#1
0
        public void AddGatherData(string pPWorkOrderNo, string saleBillNo)
        {
            HYProduceData produceData = LibHYProduceCache.Default.GetProduceData(pPWorkOrderNo);

            if (produceData != null)
            {
                LibBcfGrid        ppWorkOrderBcf = (LibBcfGrid)LibBcfSystem.Default.GetBcfInstance("pp.TenWorkRecord");
                LibQueryCondition lb             = new LibQueryCondition();
                lb.QueryFields.Add(new AxCRL.Core.Comm.LibQueryField()
                {
                    Name      = "WORKORDERNO",
                    QueryChar = LibQueryChar.Equal,
                    Value     = new List <object> {
                        pPWorkOrderNo
                    }
                });
                lb.QueryFields.Add(new AxCRL.Core.Comm.LibQueryField()
                {
                    Name      = "FROMSALEBILLNO",
                    QueryChar = LibQueryChar.Equal,
                    Value     = new List <object> {
                        saleBillNo
                    }
                });
                DataSet ds = ppWorkOrderBcf.BrowseTo(lb);
                if (ds.Tables.Count > 0)
                {
                    produceData.TenWorkRecord.EnforceConstraints = false;
                    try
                    {
                        DataTable dt = produceData.TenWorkRecord.Tables[0];
                        dt.BeginLoadData();
                        try
                        {
                            foreach (DataRow dr in ds.Tables[0].Rows)
                            {
                                DataRow row = dt.NewRow();
                                row.BeginEdit();
                                try
                                {
                                    foreach (DataColumn column in ds.Tables[0].Columns)
                                    {
                                        row[column.ColumnName] = dr[column.ColumnName];
                                    }
                                }
                                finally
                                {
                                    row.EndEdit();
                                }
                                dt.Rows.Add(row);
                            }
                        }
                        finally
                        {
                            dt.EndLoadData();
                        }
                    }
                    finally
                    {
                        produceData.TenWorkRecord.EnforceConstraints = true;
                    }
                }
            }
        }
示例#2
0
        public void RemoveFromSaleBillNo(string fromSaleBillNo)
        {
            //通过销售订单号查找派工单号
            string        sql        = string.Format(@"SELECT DISTINCT F.BILLNO
                                          FROM WORKORDER A
                                         INNER JOIN WORKORDERDETAIL B
                                            ON A.BILLNO = B.BILLNO
                                         INNER JOIN PLSSALESORDER C
                                            ON B.FROMBILLNO = C.BILLNO
                                         INNER JOIN PLSPRODUCEMONTHPLANDETAIL D
                                            ON D.WORKORDERBILLNO = B.BILLNO
                                         INNER JOIN PLSPRODUCEDAYPLANDETAIL E
                                            ON E.FROMBILLNO = D.BILLNO
                                           AND E.FROMROWID = D.ROW_ID
                                         INNER JOIN PPWORKORDER F
                                            ON E.PWORKORDERNO = F.BILLNO
                                         WHERE A.PARENTBILLNO IS NULL AND C.BILLNO = {0} ", LibStringBuilder.GetQuotString(fromSaleBillNo));
            LibDataAccess dataAccess = new LibDataAccess();
            StringBuilder builder    = new StringBuilder();
            Int32         index      = 1;

            using (IDataReader reader = dataAccess.ExecuteDataReader(sql))
            {
                while (reader.Read())
                {
                    string        workOrderNo   = LibSysUtils.ToString(reader["BILLNO"]);
                    HYProduceData hyProduceData = LibHYProduceCache.Default.GetProduceData(workOrderNo);
                    DataTable     dt            = hyProduceData.TenWorkRecord.Tables[0];
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        string saleBillNo = LibSysUtils.ToString(dt.Rows[i]["FROMSALEBILLNO"]);
                        if (saleBillNo == fromSaleBillNo)
                        {
                            dt.Rows[i].Delete();
                        }
                    }
                    dt.AcceptChanges();
                    if (index == 1)
                    {
                        builder.AppendFormat(" AND (WORKORDERNO = {0}", LibStringBuilder.GetQuotObject(reader["BILLNO"]));
                    }
                    else
                    {
                        builder.AppendFormat(" OR WORKORDERNO = {0}", LibStringBuilder.GetQuotObject(reader["BILLNO"]));
                    }
                    index++;
                }
            }
            if (builder.Length > 0)
            {
                builder.Append(")");
                sql = string.Format(@"DELETE FROM PPTENWORKRECORD WHERE 1=1 {0} AND FROMSALEBILLNO = '{1}'", builder.ToString(), fromSaleBillNo);
                LibDBTransaction trans = dataAccess.BeginTransaction();
                try
                {
                    int result = dataAccess.ExecuteNonQuery(sql);
                    trans.Commit();
                }
                catch (Exception)
                {
                    trans.Rollback();
                }
            }
        }