예제 #1
0
 public DataTable GetDetail(string billNo)
 {
     using (PersistentManager pm = new PersistentManager())
     {
         ProductStateDao psDao = new ProductStateDao();
         return psDao.FindDetail(billNo);
     }
 }
예제 #2
0
파일: BillDal.cs 프로젝트: SaintLoong/PFK
        public void VerifyQuantity(DataTable detailTable, Dictionary<string, DataTable> productState)
        {
            using (PersistentManager pm = new PersistentManager())
            {
                foreach (DataRow row in detailTable.Rows)
                {
                    string billNo = row["BILLNO"].ToString();
                    string productCode = row["PRODUCTCODE"].ToString().Trim();
                    string productName = row["PRODUCTNAME"].ToString();

                    if (!productName.EndsWith("����"))
                    {
                        double tmpQuantity = Convert.ToDouble(row["QUANTITY"]);
                        double packageCount = Convert.ToInt32(row["PACKAGECOUNT"]);

                        DataTable table = null;
                        if (productState != null && productState.ContainsKey(productCode))
                        {
                            table = productState[productCode];
                        }
                        else
                        {
                            ProductStateDao stateDao = new ProductStateDao();
                            table = stateDao.FindDetail(billNo, productCode);
                        }

                        double stateQuantity = 0, stateCount = 0;

                        foreach (DataRow stateRow in table.Rows)
                        {
                            if (stateRow.RowState != DataRowState.Deleted)
                            {
                                stateQuantity += Convert.ToDouble(stateRow["QUANTITY"]);
                                if (stateRow["ISMIX"].ToString() == "0")
                                    stateCount += 1;
                            }
                        }

                        if (tmpQuantity != stateQuantity || packageCount != stateCount)
                            throw new Exception(string.Format("��Ʒ����Ϊ'{0}'�����ݲ���ȷ������е�����\n������={1},ʵ������={2}\n�ܰ���={3},ʵ�ʰ���={4}", productName, tmpQuantity, stateQuantity, packageCount, stateCount));
                    }

                }
            }
        }
예제 #3
0
파일: BillDal.cs 프로젝트: SaintLoong/PFK
        /// <summary>
        /// ���������ҵ
        /// </summary>
        /// <param name="billNo"></param>
        /// <param name="userID"></param>
        /// <param name="date"></param>
        public DataTable TaskUrgentBill(string billNo, string status, string userID, string date)
        {
            DataTable table = null;
            using (PersistentManager pm = new PersistentManager())
            {
                BillDao billDao = new BillDao();
                ProductStateDao stateDao = new ProductStateDao();
                TaskDao taskDao = new TaskDao();

                try
                {
                    pm.BeginTransaction();

                    DataTable masterTable = billDao.FindMaster(billNo);
                    if (masterTable.Rows.Count != 0)
                    {
                        string scheduleNo = masterTable.Rows[0]["SCHEDULENO"].ToString();

                        //PRODUCTSTATE��û������
                        //if (stateDao.FindDetail(billNo).Rows.Count == 0)
                        //{
                        //    DataTable detailTable = billDao.FindDetail(billNo);
                        //    int item = 1;
                        //    stateDao.Insert(scheduleNo, billNo, detailTable, ref item);
                        //}

                        string result = billDao.TaskUrgentOutBill(billNo);
                        if (result != "0")
                            throw new Exception("û��Ϊ��Ʒ�ҵ���λ���⡣");

                        ////����billmaster״̬
                        billDao.UpdateMasterState(billNo, "3", "TASKER", userID, "TASKDATE", date);

                        //���ij����ܰ���
                        //int packageCount = taskDao.FindTaskCount(billNo);
                        //ScheduleDao scheduleDao = new ScheduleDao();
                        //scheduleDao.UpdatePackageCount(scheduleNo, packageCount);
                    }
                    else
                        throw new Exception(string.Format("δ�ҵ����ݺ�Ϊ'{0}'�ĵ��ݡ�", billNo));

                    table = stateDao.FindDetail(billNo);
                    pm.Commit();
                    return table;

                }
                catch (Exception e)
                {
                    pm.Rollback();
                    throw new Exception(e.Message);
                }
            }
        }