예제 #1
0
파일: Pipe.cs 프로젝트: shenshunan/EFS
        /// <summary>
        /// 删除订单信息
        /// </summary>
        /// <param name="strOrdID">订单编码</param>
        /// <returns></returns>
        public static string ordersDel(string strOrdID)
        {
            /// 创建执行对象
            DataStorage obj_Storage   = new DataStorage();
            ReturnDoc   obj_ReturnDoc = new ReturnDoc();

            // 手工构造sql语句
            string str_SQL = "DELETE FROM PIPELINE WHERE PIPEID='" + strOrdID + "'";

            obj_Storage.addSQL(str_SQL);

            str_SQL = "DELETE FROM PIPELINEDETAIL WHERE PIPEID='" + strOrdID + "'";
            obj_Storage.addSQL(str_SQL);

            str_SQL = "DELETE FROM PIPELINEDETAIL1 WHERE PIPEID='" + strOrdID + "'";
            obj_Storage.addSQL(str_SQL);

            /// 执行sql
            string str_Return = obj_Storage.runSQL();


            if (!General.empty(str_Return))
            {
                obj_ReturnDoc.addErrorResult(Common.RT_FUNCERROR);
                obj_ReturnDoc.setFuncErrorInfo(str_Return);
            }
            else
            {
                obj_ReturnDoc.addErrorResult(Common.RT_SUCCESS);
            }

            return(obj_ReturnDoc.getXml());
        }
예제 #2
0
        public static string drop(string strAffairTypeID)
        {
            DataStorage storage = new DataStorage();
            // 删除角色权限
            string strSQL = "DELETE FROM ROLEPOWER WHERE EVENTTYPEID IN (SELECT EVENTTYPEID FROM EVENTTYPE WHERE AFFAIRTYPEID='" + strAffairTypeID + "')";

            storage.addSQL(strSQL);

            // 删除对应的事件
            strSQL = "DELETE FROM EVENTTYPE WHERE AFFAIRTYPEID='" + strAffairTypeID + "'";
            storage.addSQL(strSQL);

            // 删除对应的事务
            strSQL = "DELETE FROM AFFAIRTYPE WHERE AFFAIRTYPEID='" + strAffairTypeID + "'";
            storage.addSQL(strSQL);
            // 执行
            string    strReturn = storage.runSQL();
            ReturnDoc returndoc = new ReturnDoc();

            if (!General.empty(strReturn))
            {
                returndoc.addErrorResult(Common.RT_FUNCERROR);
                returndoc.setFuncErrorInfo(strReturn);
            }
            else
            {
                returndoc.addErrorResult(Common.RT_SUCCESS);
            }
            return(returndoc.getXml());
        }
예제 #3
0
파일: UserOb.cs 프로젝트: shenshunan/EFS
        /// <summary>
        /// 删除用户
        /// </summary>
        /// <param name="strUserID">用户编号</param>
        /// <returns></returns>
        public static string dropUser(string strUserID)
        {
            DataStorage storage = new DataStorage();
            string      str_SQL = "DELETE FROM USERLIST WHERE USERID='" + strUserID + "'";

            storage.addSQL(str_SQL);

            str_SQL = "DELETE FROM ROLEUSER WHERE USERID='" + strUserID + "'";
            storage.addSQL(str_SQL);
            // 执行
            string    strReturn = storage.runSQL();
            ReturnDoc returndoc = new ReturnDoc();

            if (!General.empty(strReturn))
            {
                returndoc.addErrorResult(Common.RT_FUNCERROR);
                returndoc.setFuncErrorInfo(strReturn);
            }
            else
            {
                returndoc.addErrorResult(Common.RT_SUCCESS);
            }

            return(returndoc.getXml());
        }
예제 #4
0
파일: UserOb.cs 프로젝트: shenshunan/EFS
        public static string addNew(string strXml)
        {
            DataDoc doc = new DataDoc(strXml);
            // 创建执行对象
            DataStorage storage = new DataStorage();
            int         size    = doc.getDataNum(Table.USERLIST);

            // 解析sql语句
            for (int i = 0; i < size; i++)
            {
                XmlElement ele = (XmlElement)doc.getDataNode(Table.USERLIST, i);
                string     a   = ele.InnerXml;

                XmlNode node  = XmlFun.getNode(ele, Field.USERID);
                string  strId = NumAssign.assignID_A("000002");
                XmlFun.setNodeValue(node, strId);

                storage.addSQL(SQLAnalyse.analyseXMLSQL(ele));
            }
            // 执行
            string    strReturn = storage.runSQL();
            ReturnDoc returndoc = new ReturnDoc();

            if (!General.empty(strReturn))
            {
                returndoc.addErrorResult(Common.RT_FUNCERROR);
                returndoc.setFuncErrorInfo(strReturn);
            }
            else
            {
                returndoc.addErrorResult(Common.RT_SUCCESS);
            }

            return(returndoc.getXml());
        }
예제 #5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            string sMothod = Request["method"];
            if (!General.empty(sMothod))
            {
                Type ts = typeof(baseRef);

                object obj = Activator.CreateInstance(ts, null); //获得一个实例

                object[] methodParamArgs = new object[] { Request, Response };

                MethodInfo mi = ts.GetMethod(sMothod);                 //获得执行方法

                string sXml = (string)mi.Invoke(obj, methodParamArgs); //带参数方法的调用并返回值

                Response.ContentType = "text/xml;charset=utf-8";
                Response.Charset     = "UTF-8";

                Response.Write(sXml);
            }
        }
        catch (Exception ex)
        {
            ReturnDoc obj_ReturnDoc = new ReturnDoc();
            obj_ReturnDoc.addErrorResult(ex.Message);
            obj_ReturnDoc.setFuncErrorInfo(Common.SRT_FUNCERROR);
            Response.Write(obj_ReturnDoc.getXml());
        }
    }
 public ReturnToSupplierDetails(ReturnDoc doc)
     : this()
 {
     DisplayName = "Новый возврат поставщику";
     InitDoc(doc);
     Lines.AddRange(doc.Lines);
 }
        public void Setup()
        {
            supplier = session.Query <Supplier>().First();
            stock    = new Stock()
            {
                Product          = "Папаверин",
                Status           = StockStatus.Available,
                Address          = address,
                Quantity         = 5,
                ReservedQuantity = 0,
                SupplierId       = supplier.Id,
            };
            session.Save(stock);

            session.DeleteEach <ReturnDoc>();

            doc = new ReturnDoc
            {
                Date     = DateTime.Now,
                Supplier = supplier,
                Address  = address
            };
            session.Save(doc);

            model        = Open(new ReturnToSuppliers());
            modelDetails = Open(new ReturnToSupplierDetails(doc.Id));
        }
예제 #8
0
        public ReturnWaybill(ReturnDoc returnToSupplier, WaybillSettings waybillSettings, User user)
        {
            _returnToSupplier = returnToSupplier;
            _waybillSettings  = waybillSettings;
            _user             = user;
            doc.PagePadding   = new Thickness(29);
            ((IDocumentPaginatorSource)doc).DocumentPaginator.PageSize = new Size(1069, 756);

            BlockStyle = new Style(typeof(Paragraph))
            {
                Setters =
                {
                    new Setter(Control.FontSizeProperty,                                 10d),
                    new Setter(System.Windows.Documents.Block.MarginProperty, new Thickness(0, 3, 0, 3))
                }
            };

            HeaderStyle = new Style(typeof(Run), HeaderStyle)
            {
                Setters =
                {
                    new Setter(Control.FontSizeProperty, 12d),
                }
            };
            TableHeaderStyle = new Style(typeof(TableCell), TableHeaderStyle)
            {
                Setters =
                {
                    new Setter(Control.FontSizeProperty, 10d),
                }
            };
        }
예제 #9
0
 public CreateReturnToSupplier(ReturnDoc doc)
 {
     InitFields();
     Doc          = doc;
     Suppliers    = Session.Query <Supplier>().ToArray();
     DisplayName  = "Создание накладной возврата";
     WasCancelled = true;
 }
예제 #10
0
        private string ContentWithoutSignatures(bool prependSlashes = false)
        {
            var sb = new StringBuilder();

            if (!Summary.IsEmpty())
            {
                if (prependSlashes)
                {
                    sb.Append(ParserToken.DocComment);
                }
                sb.AppendUnixLine(Summary);
            }

            foreach (var textOrExample in TextBlocks)
            {
                string str = textOrExample.ToString().TrimEndAndNewlines();
                if (!str.IsEmpty())
                {
                    if (textOrExample is DescriptionBlock && prependSlashes)
                    {
                        var multiLine = str.SplitLines();
                        foreach (var line in multiLine)
                        {
                            sb.Append(ParserToken.DocComment);
                            sb.AppendUnixLine(line);
                        }
                    }
                    else
                    {
                        //note, we do not prepend slashes to examples regardless
                        sb.AppendUnixLine(str);
                    }
                }
            }
            foreach (var param in Parameters)
            {
                if (param.HasDoc)
                {
                    if (prependSlashes)
                    {
                        sb.Append(ParserToken.DocComment);
                    }

                    sb.AppendUnixLine(param.ToString());
                }
            }
            if (ReturnDoc != null && ReturnDoc.HasDoc)
            {
                if (prependSlashes)
                {
                    sb.Append(ParserToken.DocComment);
                }

                sb.AppendUnixLine(ReturnDoc.ToString());
            }

            return(sb.ToString().Trim());
        }
예제 #11
0
파일: Pipe.cs 프로젝트: shenshunan/EFS
        public static string ExpExcel(string path)
        {
            ReturnDoc obj_ReturnDoc = new ReturnDoc();

            try
            {
                Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();

                Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
                Microsoft.Office.Interop.Excel.Workbook  workbook  = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
                Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1

                worksheet.Cells[1, 1] = "管道名称";


                // 数据查询

                OleDbDataReader rst = null;
                string          ret = CommonQuery.qryRst("select * from PIPELINE", ref rst);
                Int16           i   = 2;

                DicCache dic = DicCache.getInstance();

                if (ret.Equals("0"))
                {
                    while (rst.Read())
                    {
                        worksheet.Cells[i, 1] = rst["DATA1"].ToString();
                        i++;
                    }

                    rst.Close();
                }


                string sPath    = path;
                string filename = "海底管道数据导出.xls";

                workbook.Saved = true;
                workbook.SaveCopyAs(sPath + filename);

                xlApp.Quit();


                obj_ReturnDoc.addErrorResult(Common.RT_SUCCESS);
                obj_ReturnDoc.setFuncErrorInfo(filename);
            }
            catch (Exception e)
            {
                obj_ReturnDoc.addErrorResult(Common.RT_FUNCERROR);
                obj_ReturnDoc.setFuncErrorInfo(e.Message);
            }

            return(obj_ReturnDoc.getXml());
        }
예제 #12
0
        private void OutputForReturnDoc(bool prependSlashes, StringBuilder sb)
        {
            if (ReturnDoc != null && ReturnDoc.HasDoc)
            {
                if (prependSlashes)
                {
                    sb.Append(TxtToken.DocComment);
                }

                sb.AppendUnixLine(ReturnDoc.ToString());
            }
        }
        private void InitDoc(ReturnDoc doc)
        {
            Doc = doc;
            var docStatus    = Doc.ObservableForProperty(x => x.Status, skipInitial: false);
            var editOrDelete = docStatus
                               .CombineLatest(CurrentLine, (x, y) => y != null && x.Value == DocStatus.NotPosted);

            editOrDelete.Subscribe(CanEditLine);
            editOrDelete.Subscribe(CanDelete);
            docStatus.Subscribe(x => CanAdd.Value = x.Value == DocStatus.NotPosted);
            docStatus.Select(x => x.Value == DocStatus.NotPosted).Subscribe(CanPost);
            docStatus.Select(x => x.Value == DocStatus.Posted).Subscribe(CanUnPost);
        }
예제 #14
0
        public IEnumerable <IResult> Create()
        {
            if (Address == null)
            {
                yield break;
            }
            var doc = new ReturnDoc(Address, User);

            yield return(new DialogResult(new CreateReturnToSupplier(doc)));

            Session.Save(doc);
            Update();
            Shell.Navigate(new ReturnToSupplierDetails(doc.Id));
        }
예제 #15
0
        public static string addNew(string strXml)
        {
            /// 创建执行对象
            DataStorage obj_Storage   = new DataStorage();
            ReturnDoc   obj_ReturnDoc = new ReturnDoc();

            try
            {
                XmlDocument obj_Doc = XmlFun.CreateNewDoc(strXml);
                XmlNodeList nodeLst = obj_Doc.SelectNodes("//*[@operation][@operation!='']");

                for (int i = 0; i < nodeLst.Count; i++)
                {
                    XmlElement ele_Temp = (XmlElement)nodeLst.Item(i);

                    // 分配学生编码
                    string strpersonid = NumAssign.assignID_B("100001", "1007");
                    XmlFun.setNodeValue(ele_Temp.SelectSingleNode("//PERSONID"), strpersonid);

                    string stT = ele_Temp.InnerXml;

                    //      创建插入数据的XML
                    string str_SQL = SQLAnalyse.analyseXMLSQL(ele_Temp);

                    obj_Storage.addSQL(str_SQL);
                }

                /// 执行
                string str_Return = obj_Storage.runSQL();


                if (!General.empty(str_Return))
                {
                    obj_ReturnDoc.addErrorResult(Common.RT_FUNCERROR);
                    obj_ReturnDoc.setFuncErrorInfo(str_Return);
                }
                else
                {
                    obj_ReturnDoc.addErrorResult(Common.RT_SUCCESS);
                }
            }
            catch (Exception e)
            {
                obj_ReturnDoc.addErrorResult(Common.RT_FUNCERROR);
                obj_ReturnDoc.setFuncErrorInfo(e.Message);
            }

            return(obj_ReturnDoc.getXml());
        }
예제 #16
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "text/xml;charset=utf-8";
        Response.Charset     = "UTF-8";
        string    strDicName    = Request["txtDicName"];
        ReturnDoc obj_ReturnDoc = new ReturnDoc();

        try
        {
            General.CreateDicFile(strDicName);
            obj_ReturnDoc.setErrorResult(Common.SRT_SUCCESS);
        }
        catch (Exception ep)
        {
            obj_ReturnDoc.addErrorResult(ep.Message);
            obj_ReturnDoc.setFuncErrorInfo(Common.SRT_FUNCERROR);
        }

        Response.Write(obj_ReturnDoc.getXml());
    }
예제 #17
0
        public override string ToString()
        {
            var sb = new StringBuilder();

            if (SignatureList.Any())
            {
                sb.AppendUnixLine(SignatureOpen);
                foreach (var sig in SignatureList)
                {
                    sb.AppendUnixLine(sig);
                }
                sb.AppendUnixLine(SignatureClose);
            }
            sb.AppendUnixLine(Summary);
            foreach (var textOrExample in TextBlocks)
            {
                string str = textOrExample.ToString().TrimEndAndNewlines();
                if (!str.IsEmpty())
                {
                    sb.AppendUnixLine(str);
                }
            }
            foreach (var param in Parameters)
            {
                if (param.HasDoc)
                {
                    sb.AppendUnixLine(param.ToString());
                }
            }
            if (ReturnDoc != null && ReturnDoc.HasDoc)
            {
                sb.AppendUnixLine(ReturnDoc.ToString());
            }

            return(sb.ToString().Trim());
        }
예제 #18
0
        public static string getQueryXml(OleDbDataReader rst,
                                         string[] strDicFieldList,
                                         string[] strDicNameList,
                                         string[] strDateFieldList,
                                         int int_TotalRecords,
                                         int int_TotalPages,
                                         Boolean blnDicInSv,
                                         string strListName)
        {
            strListName = strListName == null ? Common.XDOC_ROW : strListName;

            ReturnDoc docReturn = new ReturnDoc();

            try
            {
                if (docReturn.getQueryInfo(rst, strListName))
                {
                    XmlDocument doc      = docReturn.getDocument();
                    XmlNodeList nodeList = doc.SelectNodes(Common.BAR2 + strListName);

                    for (int k = 0; k < nodeList.Count; k++)
                    {
                        XmlNode node = (XmlElement)nodeList.Item(k);

                        XmlElement node_Temp;
                        /// 处理字典的翻译
                        DicCache obj_DicCache = DicCache.getInstance();
                        if (strDicFieldList != null)
                        {
                            for (int i = 0; i < strDicFieldList.Length; i++)
                            {
                                node_Temp = (XmlElement)node.SelectSingleNode(strDicFieldList[i]);
                                string str_Text = node_Temp.InnerText;

                                if (General.empty(str_Text))
                                {
                                    continue;
                                }

                                string str_SV = obj_DicCache.getText(strDicNameList[i], str_Text);


                                if (!blnDicInSv)
                                {
                                    if (str_SV != null)
                                    {
                                        node_Temp.InnerText = str_SV;
                                    }
                                }
                                else
                                {
                                    if (str_SV != null)
                                    {
                                        node_Temp.SetAttribute(Common.XML_PROP_SV, str_SV);
                                    }
                                }
                            }
                        }

                        /// 处理日期类型的字段
                        if (strDateFieldList != null)
                        {
                            for (int i = 0; i < strDateFieldList.Length; i++)
                            {
                                node_Temp = (XmlElement)node.SelectSingleNode(strDateFieldList[i]);
                                string str_Text = node_Temp.InnerText;

                                if (General.empty(str_Text))
                                {
                                    continue;
                                }

                                string str_SV = General.cDateStr(str_Text);
                                str_Text            = General.strToDate(str_SV);
                                node_Temp.InnerText = str_Text;

                                if (blnDicInSv)
                                {
                                    if (str_SV != null)
                                    {
                                        node_Temp.SetAttribute(Common.XML_PROP_SV, str_SV);
                                    }
                                }
                            }
                        }
                    }
                    docReturn.addErrorResult(Common.RT_QUERY_SUCCESS);
                }
                else
                {
                    docReturn.addErrorResult(Common.RT_QUERY_NOTHING);
                }
                docReturn.addPropToQueryInfo(Common.XML_PROP_TOTALPAGES, int_TotalPages.ToString());
                docReturn.addPropToQueryInfo(Common.XML_PROP_RECORDS, int_TotalRecords.ToString());
            }
            catch (Exception e)
            {
            }
            return(docReturn.getXml());
        }
예제 #19
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            try{
                string strXml = Request["txtXML"];
                // strXml = XmlFun.addXDocHead(strXml);
                XmlDocument doc = XmlFun.CreateNewDoc(strXml);

                string strUsertitle = XmlFun.getNodeValue(doc, Common.BAR2 + Common.XDOC_LOGININFO + Common.BAR + Field.USERTITLE);
                string strPassWord  = XmlFun.getNodeValue(doc, Common.BAR2 + Common.XDOC_LOGININFO + Common.BAR + Field.USERPASSWORD);
                string strIP        = XmlFun.getNodeValue(doc, Common.BAR2 + Common.XDOC_LOGININFO + Common.BAR + Field.LOGINIP);
                string strMac       = XmlFun.getNodeValue(doc, Common.BAR2 + Common.XDOC_LOGININFO + Common.BAR + Field.MAC);

                string    str_SQL = "SELECT * FROM VW_USERLIST WHERE USERTITLE='" + strUsertitle + "'";
                string    strErr  = "";
                ReturnDoc Rtdoc   = new ReturnDoc();

                OleDbDataReader rst    = null;
                string          strRet = CommonQuery.qryRst(str_SQL, ref rst);
                if (strRet == "0")
                {
                    Rtdoc.getQueryInfo(rst);

                    if (strPassWord != Rtdoc.getNodeValue(Common.BAR2 + Field.USERPASSWORD))
                    {
                        strErr = "密码错误";
                    }
                }
                else
                {
                    strErr = "查询用户信息为空";
                }

                rst.Close();

                if (strErr == "")
                {
                    UserSession user = new UserSession(Rtdoc.getXml());

                    string[] arrSys = { user.getUserID(), user.getUserTitle(), user.getUserName(), "", user.getUnitID(), user.getUnitName(), strIP, strMac };
                    string   logid  = SystemLog.addSysLog(arrSys);
                    user.setLogID(logid);

                    Session.Add("RoleUser", user);
                    Response.Redirect("Login.aspx");
                    Response.End();
                }
                else
                {
                    Response.Write("<script language=\"javascript\">");
                    Response.Write("alert('" + strErr + "');");
                    Response.Write("history.back();");
                    Response.Write("</script>");
                }
            }
            catch (Exception ex)
            {
            }
        }
    }
예제 #20
0
        public void Exchange()
        {
            localSession.Connection.Execute(@"delete from Stocks; delete from StockActions;");
            session.Connection.Execute(@"delete from inventory.Stocks;");
            session.Connection.Execute(@"delete from inventory.StockActions;");
            session.Connection.Execute(@"delete from  Documents.DocumentHeaders;");
            var stockCount = session.Connection.Query <object>("select * from inventory.Stocks").ToArray();
            var actions    = session.Connection.Query <object>("select * from inventory.StockActions").ToArray();

            stockCount = localSession.Connection.Query <object>("select * from Stocks").ToArray();
            actions    = localSession.Connection.Query <object>("select * from StockActions").ToArray();

            Run(new SyncCommand());

            var fixture = new CreateWaybill();

            Fixture(fixture);

            Run(new UpdateCommand("Waybills"));
            var waybill  = localSession.Load <Waybill>(fixture.Waybill.Log.Id);
            var stockids = waybill.Lines.Where(x => x.StockId != null).Select(x => x.StockId).ToArray();
            var map      = localSession.Query <Stock>().Where(x => stockids.Contains(x.ServerId)).ToDictionary(x => x.ServerId);

            waybill.Lines.Each(y =>
            {
                y.Stock = map.GetValueOrDefault(y.StockId);
            });
            waybill.Stock(localSession);
            // чек +0 сток = 33  +1 стокакшин = 34
            var check = new Check(localSession.Query <User>().First(), address, new[] { new CheckLine(waybill.Lines[0].Stock, 1), }, CheckType.SaleBuyer);

            check.Lines.Each(x => x.Doc = check);
            localSession.Save(check);
            localSession.SaveEach(check.Lines);
            localSession.SaveEach(check.Lines.Select(x => x.UpdateStock(x.Stock, CheckType.SaleBuyer)));

            // распаковка +1 сток = 34  +2 стокакшин = 36
            var unpackingDoc  = new UnpackingDoc(address, localSession.Query <User>().First());
            var unpackingLine = new UnpackingLine(waybill.Lines[1].Stock, 10);

            unpackingDoc.Lines.Add(unpackingLine);
            unpackingDoc.Post();
            unpackingDoc.PostStockActions();
            localSession.Save(unpackingDoc);
            foreach (var line in unpackingDoc.Lines)
            {
                localSession.Save(line);
            }
            unpackingDoc.PostStockActions();
            foreach (var line in unpackingDoc.Lines)
            {
                localSession.Save(line.SrcStockAction);
                localSession.Save(line.DstStockAction);
            }

            // Списание +0 сток = 34  +1 стокакшин = 37
            var writeoffDoc  = new WriteoffDoc(address, localSession.Query <User>().First());
            var writeoffLine = new WriteoffLine(waybill.Lines[2].Stock, 1);

            writeoffDoc.Lines.Add(writeoffLine);
            writeoffDoc.Post(localSession);
            localSession.Save(writeoffDoc);

            //Возврат +0 сток = 34  +1 стокакшин = 38
            var ReturnDoc = new ReturnDoc(address, localSession.Query <User>().First());

            ReturnDoc.Supplier = waybill.Supplier;
            var ReturnLine = new ReturnLine(waybill.Lines[3].Stock, 1);

            ReturnDoc.Lines.Add(ReturnLine);
            ReturnDoc.Post(localSession);
            localSession.Save(ReturnDoc);

            //переоценка +1 сток = 35  +2 стокакшин = 40
            var ReassessmentDoc = new ReassessmentDoc(address, localSession.Query <User>().First());
            var stock           = waybill.Lines[4].Stock.Copy();

            stock.RetailCost += 10;
            var ReassessmentLine = new ReassessmentLine(waybill.Lines[4].Stock, stock);

            ReassessmentDoc.Lines.Add(ReassessmentLine);
            ReassessmentDoc.Post(localSession);
            localSession.Save(ReassessmentDoc);

            //переоценка +0 сток = 35  +1 стокакшин = 41
            var InventoryDoc  = new InventoryDoc(address, localSession.Query <User>().First());
            var InventoryLine = new InventoryLine(InventoryDoc, waybill.Lines[5].Stock, 5, localSession);

            InventoryDoc.Lines.Add(InventoryLine);
            InventoryDoc.Post();
            localSession.Save(InventoryDoc);

            //Перемещение +1 сток = 36  +2 стокакшин = 43
            var DisplacementDoc  = new DisplacementDoc(address, localSession.Query <User>().First());
            var DisplacementLine = new DisplacementLine(waybill.Lines[6].Stock, waybill.Lines[6].Stock.Copy(), 1);

            DisplacementDoc.Lines.Add(DisplacementLine);
            DisplacementDoc.Post(localSession);
            localSession.Save(DisplacementDoc);

            Run(new SyncCommand());
            stockCount = session.Connection.Query <object>("select * from inventory.Stocks").ToArray();
            actions    = session.Connection.Query <object>("select * from inventory.StockActions").ToArray();
            Assert.AreEqual(36, stockCount.Length);
            Assert.AreEqual(43, actions.Length);

            Run(new SyncCommand());
            stockCount = session.Connection.Query <object>("select * from inventory.Stocks").ToArray();
            actions    = session.Connection.Query <object>("select * from inventory.StockActions").ToArray();
            Assert.AreEqual(36, stockCount.Length);
            Assert.AreEqual(43, actions.Length);
        }
 public ReturnToSuppliersDetailsDocument(ReturnLine[] items, ReturnDoc doc, WaybillSettings waybillSettings)
 {
     _items           = items;
     _doc             = doc;
     _waybillSettings = waybillSettings;
 }
예제 #22
0
        public string getUserRightsByUserID()
        {
            /// 查询出该用户的权限信息
            string str_SQL = Common.SELECT + Common.DISTINCT + Common.ALL +
                             Common.S_FROM + Table.VW_USERRIGHTTREE +
                             Common.S_WHERE + Field.USERID + Common.EQUAL + General.addQuotes(this.getUserID()) +
                             Common.S_ORDER + Field.AFFAIRTYPEID + Common.COMMA + Field.EVENTTYPEID;


            OleDbDataReader rst_UserRight = null;

            try
            {
                string strRet = CommonQuery.qryRst(str_SQL, ref rst_UserRight);

                if (strRet != "0")
                {
                    throw new Exception("获得用户权限失败");
                }

                string str_PreAffairTypeID = "";
                string str_PreEventTypeID  = "";

                ReturnDoc doc_RightTree = new ReturnDoc();

                XmlDocument doc_tmp = doc_RightTree.getDocument();

                XmlElement ele_Root       = null;
                XmlElement ele_Query      = null;
                XmlElement ele_AffairType = null;

                /// 对结果集进行遍历,用来生成功能树
                while (rst_UserRight.Read())
                {
                    /// 创建查询返回节点
                    if (!doc_RightTree.createQueryInfoNode())
                    {
                        throw new Exception("UserCache.setUserRightsByUserID.创建查询返回节点时发生错误");
                    } /// if (!doc_RightTree.createQueryInfoNode())

                    ele_Root = ele_Root == null ? (XmlElement)doc_RightTree.getQueryInfoNode() : ele_Root;

                    string str_AffairTypeID   = rst_UserRight[Field.AFFAIRTYPEID].ToString();
                    string str_AffairTypeName = rst_UserRight[Field.AFFAIRTYPENAME].ToString();
                    string str_EventTypeID    = rst_UserRight[Field.EVENTTYPEID].ToString();
                    string str_EventTypeName  = rst_UserRight[Field.EVENTTYPENAME].ToString();
                    string str_OpURL          = rst_UserRight[Field.OPURL].ToString();

                    int int_AffairTypeID = Convert.ToInt32(str_AffairTypeID);

                    XmlElement ele_EventType = null;

                    /// 查询事务
                    if (int_AffairTypeID == 4)
                    {
                        ele_AffairType = doc_tmp.CreateElement(Common.XDOC_OPERATION);
                        ele_AffairType.SetAttribute(Common.XML_PROP_AFFAIRTYPEID, str_AffairTypeID);
                        ele_AffairType.SetAttribute(Common.XML_PROP_NAME, str_AffairTypeName);

                        ele_Query = ele_AffairType;
                        ele_Root.AppendChild(ele_AffairType);
                    } /// if (int_AffairTypeID==4)
                    else
                    {
                        if (!str_PreAffairTypeID.EndsWith(str_AffairTypeID))
                        {
                            ele_AffairType = doc_tmp.CreateElement(Table.AFFAIRTYPE);
                            ele_AffairType.SetAttribute(Common.XML_PROP_AFFAIRTYPEID, str_AffairTypeID);
                            ele_AffairType.SetAttribute(Common.XML_PROP_TEXT, str_AffairTypeName);

                            str_PreAffairTypeID = str_AffairTypeID;
                            ele_Root.AppendChild(ele_AffairType);
                        }
                    }

                    /// 相同的事件类型,则不用重复创建
                    if (!str_PreEventTypeID.Equals(str_EventTypeID))
                    {
                        ele_EventType = doc_tmp.CreateElement(Table.EVENTTYPE);
                        ele_EventType.SetAttribute(Common.XML_PROP_EVENTTYPEID, str_EventTypeID);
                        ele_EventType.SetAttribute(Common.XML_PROP_TEXT, str_EventTypeName);
                        ele_EventType.SetAttribute(Common.XML_PROP_OPURL, str_OpURL);
                        ele_AffairType.AppendChild(ele_EventType);
                        str_PreEventTypeID = str_EventTypeID;
                    } /// if (!str_PreEventTypeID.equals(str_EventTypeID))
                }     /// while (rst_UserRight.next())



                /// 将查询事务节点,追加到权限功能树的最后
                if (ele_Query != null)
                {
                    XmlElement ele_TempQuery = (XmlElement)ele_Query.Clone();
                    XmlElement ele_QueryInfo = (XmlElement)doc_RightTree.getQueryInfoNode();
                    ele_QueryInfo.RemoveChild(ele_Query);
                    ele_QueryInfo.AppendChild(ele_TempQuery);
                } /// if (ele_Query!=null)

                if (!doc_RightTree.addErrorResult(Common.RT_QUERY_SUCCESS))
                {
                    throw new Exception("添加函数返回结果失败");
                } /// if (!doc_RightTree.addErrorResult(Common.RT_QUERY_SUCCESS))

                return(doc_RightTree.getXml());
            }
            catch (Exception e)
            {
                return(e.Message);
            }
            finally
            {
                rst_UserRight.Close();
            }
        }