コード例 #1
0
        private WorkOrder createWO(string itemNo, string orderTypeName, DateTime needDate,
                                int needQty, SalesOrder so, bool issueSO, UnitOfWork uow, StringBuilder sbMsg)
        {
            WorkOrder wo = WorkOrder.Create(itemNo, orderTypeName, needDate, needQty, uow);

            if (issueSO)
            {
                SalesOrderLine soLine = SalesOrderLine.Create(so, wo, "", uow);
                soLine.WareHouse = WareHouse.Find(uow, "HK良品仓");
                soLine.ShipMethod = ShipMethod.Find(uow, "交香港");
                soLine.ApprovedSalesOrderLine();
            }
            return wo;
        }
コード例 #2
0
ファイル: frmMassIssueNPD.cs プロジェクト: kamchung322/Namwah
        private WorkOrder createWO(Style style, string itemNoType, string orderTypeName, DateTime needDate,
                                        int needQty, SalesOrder so,bool issueSO, UnitOfWork uow, StringBuilder sbMsg)
        {
            string itemNo;

            if (itemNoType == "WA编码")
            {
                if (style.WANo == null)
                {
                    sbMsg.AppendLine(string.Format("不能发单, Style {0} 没有设定WA编码 !!", style.StyleNo));
                    return null;
                }
                else
                    itemNo = style.WANo.ItemNo;
            }
            else if (itemNoType == "CA编码")
            {
                if (style.CANo == null)
                {
                    sbMsg.AppendLine(string.Format("不能发单, Style {0} 没有设定CA编码 !!", style.StyleNo));
                    return null;
                }
                else
                    itemNo = style.CANo.ItemNo;

            }
            else
            {
                if (style.FANo == null)
                {
                    sbMsg.AppendLine(string.Format("不能发单, Style {0} 没有设定FA编码 !!", style.StyleNo));
                    return null;
                }
                else
                    itemNo = style.FANo.ItemNo;

            }

            //uow.FindObject<Customer>(new BinaryOperator("No", ((Project)lueProject.EditValue).Lot.Customer.No));
            WorkOrder wo = WorkOrder.Create(itemNo, orderTypeName, needDate, needQty, uow);
            Style s = uow.FindObject<Style>(new BinaryOperator("Oid", style.Oid));
            wo.Style = s;
            wo.Save();

            if (issueSO)
            {
                SalesOrderLine soLine = SalesOrderLine.Create(so, wo, "", uow);
                soLine.WareHouse = WareHouse.Find(uow, "HK良品仓");
                soLine.ShipMethod = ShipMethod.Find(uow, "交香港");
                soLine.Style = s;
                soLine.CustomerItemNo = style.ProjectLineNo;
                soLine.CustomerItemName = style.Project.Name;
                soLine.Save();
                soLine.ApprovedSalesOrderLine();
            }
            return wo;
        }
コード例 #3
0
ファイル: SalesOrder.cs プロジェクト: kamchung322/Namwah
        public static SalesOrder Create(string orderNo, Customer customer, Session session)
        {
            SalesOrder so = session.FindObject<SalesOrder>(new BinaryOperator("OrderNo", orderNo));

            if (so == null)
            {
                so = new SalesOrder(session);
                so.OrderNo = orderNo;
                so.Customer = customer;
                so.Save();
            }
            return so;
        }
コード例 #4
0
ファイル: frmDataImport.cs プロジェクト: kamchung322/Namwah
        private void ImportSalesOrder()
        {
            UnitOfWork uow = new UnitOfWork();
            SalesOrder so;
            int row = 3;

            uow.BeginTransaction();

            while (ExcelHelper.GetCellStringValue(xlSht, row, 1) != "")
            {
                so = uow.FindObject<SalesOrder>(new BinaryOperator("OrderNo", ExcelHelper.GetCellStringValue(xlSht, row, 1)));

                if (so == null)
                {
                    so = new SalesOrder(uow);
                    so.OrderNo = ExcelHelper.GetCellStringValue(xlSht, row, 1);
                    so.Customer = uow.FindObject<Customer>(new BinaryOperator("No", ExcelHelper.GetCellStringValue(xlSht, row, 2)));
                    so.OrderType = SalesOrder.SalesOrderType.Normal;
                    so.PoDate = ExcelHelper.GetCellDateTimeValue(xlSht, row, 4);
                    so.Save();
                    uow.CommitChanges();
                }

                row++;
            }

            uow.CommitTransaction();
        }
コード例 #5
0
        public void ImportSSTK()
        {
            string soPath = "http://nwszmail/public/namwah/Parts2/SafetyStock/";
            string strSQL = "";

            Dictionary<string, SalesOrder> dictSo = new Dictionary<string, SalesOrder>();

            ADODB.Connection cnn = new ADODB.Connection();
            ADODB.Recordset rst = new ADODB.Recordset();
            Item item;
            string partNo;
            string soLineIndex;

            CacheItem();
            ConnectDB(cnn, soPath);

            strSQL = "SELECT \"nw:cpo:item:initneeddate\", \"nw:cpo:date\" ";
            strSQL = strSQL + " , \"nw:cpo:item:needqty\", \"nw:cpo:item:needdate\", \"nw:cpo:item:priority\", \"nw:part:sstqty\" ";
            strSQL = strSQL + " , \"nw:cpo:no\", \"nw:part:tmxrefno\" ";
            strSQL = strSQL + " FROM \"" + soPath;
            strSQL = strSQL + "\" WHERE (\"DAV:ishidden\" = false )";

            rst.Open(strSQL, cnn, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockBatchOptimistic, 1);

            session.BeginTransaction();

            XPCollection<SalesOrderLine> soLines = new XPCollection<SalesOrderLine>(session);
            soLines.Criteria = CriteriaOperator.Parse("SalesOrder.OrderType == SalesOrder.SalesOrderType.SSTK");
            session.BeginTransaction();
            session.Delete(soLines);
            session.CommitTransaction();

            DateTime sTime = DateTime.Now;
            string poNo;

            while (!rst.EOF)
            {
                partNo = rst.Fields["nw:part:tmxrefno"].Value.ToString();
                soLineIndex = rst.Fields["nw:cpo:no"].Value.ToString() + "-" + rst.Fields["nw:part:tmxrefno"].Value.ToString();
                poNo = rst.Fields["nw:cpo:no"].Value.ToString();

                if (dictItem.ContainsKey(partNo))
                {
                    item = dictItem[partNo];
                    SalesOrder so;
                    if (dictSo.ContainsKey(rst.Fields["nw:cpo:no"].Value.ToString()))
                    {
                        so = dictSo[rst.Fields["nw:cpo:no"].Value.ToString()];
                    }
                    else
                    {
                        so = session.FindObject<SalesOrder>(new BinaryOperator("OrderNo", rst.Fields["nw:cpo:no"].Value.ToString()));

                        if (so == null)
                        {
                            so = new SalesOrder(session);
                            so.SetOrderNo(rst.Fields["nw:cpo:no"].Value.ToString());
                            so.OrderType = SalesOrder.SalesOrderType.SSTK;
                            so.Customer = GetCustomer("TIMEX");
                            so.Save();
                        }
                        dictSo.Add(rst.Fields["nw:cpo:no"].Value.ToString(), so);
                    }

                    SalesOrderLine soLine = new SalesOrderLine(session);
                    soLine.SalesOrder = so;
                    soLine.Item = item;
                    so.AddLineNo();
                    soLine.SetOrderLineNo(so.LastLineNo);
                    soLine.CustomerItemNo = rst.Fields["nw:part:tmxrefno"].Value.ToString();
                    soLine.CustomerOrderNo = rst.Fields["nw:cpo:no"].Value.ToString();
                    //soLine.InitNeedDate = DateTime.Parse(rst.Fields["nw:cpo:item:initneeddate"].Value.ToString());
                    soLine.NeedDate = DateTime.Parse(rst.Fields["nw:cpo:item:needdate"].Value.ToString());
                    soLine.NeedQty = float.Parse(rst.Fields["nw:part:sstqty"].Value.ToString());
                    soLine.PoDate = DateTime.Parse(rst.Fields["nw:cpo:date"].Value.ToString());
                    soLine.Priority = int.Parse(rst.Fields["nw:cpo:item:priority"].Value.ToString());
                    soLine.ApprovedSalesOrderLine();
                    soLine.Save();
                }
                rst.MoveNext();
            }

            System.Diagnostics.Debug.WriteLine("Start Time : " + sTime.ToString() + ".  End Time : " + DateTime.Now.ToString());
            session.CommitTransaction();
            System.Diagnostics.Debug.WriteLine("Commit Time : " + DateTime.Now.ToString());
        }
コード例 #6
0
        public void ImportSalesOrder()
        {
            string soPath = "http://nwszmail/public/namwah/Sales/Timex/PurchaseOrders/";
            string strSQL = "";

            Dictionary<string, SalesOrder> dictSo = new Dictionary<string, SalesOrder>();

            ADODB.Connection cnn = new ADODB.Connection();
            ADODB.Recordset rst = new ADODB.Recordset();
            Item item;

            /*
            XPCollection<SalesOrderLine> soLines = new XPCollection<SalesOrderLine>(session);
            session.BeginTransaction();
            session.Delete(soLines);
            session.CommitTransaction();

            return;
            */

            string partNo;
            string soLineIndex;

            CacheItem();
            CacheSalesOrderLine(Namwah.Module.BO.SalesOrder.SalesOrderType.Normal);

            ConnectDB(cnn, soPath);

            strSQL = "SELECT \"nw:partno\" , \"nw:cpo:item:ignore\", \"nw:cpo:item:index\", \"nw:cpo:item:initneeddate\", \"nw:cpo:date\" ";
            strSQL = strSQL + " , \"nw:cpo:item:needqty\", \"nw:cpo:item:needdate\", \"nw:cpo:item:priority\", \"nw:cpo:item:shippedqty\" ";
            strSQL = strSQL + " , \"nw:cpo:item:remark\", \"nw:cpo:no\", \"nw:customer\", \"nw:part:tmxrefno\" ";
            strSQL = strSQL + " FROM \"" + soPath;
            strSQL = strSQL + "\" WHERE (\"DAV:ishidden\" = false AND \"nw:customer\" = 'Timex' )";
            return ;
            rst.Open(strSQL, cnn, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockBatchOptimistic, 1);

            session.BeginTransaction();
            DateTime sTime = DateTime.Now;
            string poNo;

            while (!rst.EOF)
            {
                partNo = rst.Fields["nw:partno"].Value.ToString();
                soLineIndex = rst.Fields["nw:cpo:no"].Value.ToString() + "-" + rst.Fields["nw:cpo:item:index"].Value.ToString();
                poNo = rst.Fields["nw:cpo:no"].Value.ToString();

                if (poNo.StartsWith("PoHistory") == false)
                {
                    if (dictItem.ContainsKey(partNo))
                    {
                        if (dictSalesOrderLine.ContainsKey(soLineIndex))
                        {
                            SalesOrderLine soLine = dictSalesOrderLine[soLineIndex];

                            soLine.NeedQty = float.Parse(rst.Fields["nw:cpo:item:needqty"].Value.ToString());
                            soLine.Priority = int.Parse(rst.Fields["nw:cpo:item:priority"].Value.ToString());
                            soLine.NeedQty = float.Parse(rst.Fields["nw:cpo:item:needqty"].Value.ToString());
                            soLine.SetShipQty(float.Parse(rst.Fields["nw:cpo:item:shippedqty"].Value.ToString()));
                            soLine.Save();
                        }
                        else
                        {
                            item = dictItem[partNo];
                            SalesOrder so;

                            if (dictSo.ContainsKey(rst.Fields["nw:cpo:no"].Value.ToString()))
                            {
                                so = dictSo[rst.Fields["nw:cpo:no"].Value.ToString()];
                            }
                            else
                            {
                                so = session.FindObject<SalesOrder>(new BinaryOperator("OrderNo", rst.Fields["nw:cpo:no"].Value.ToString()));

                                if (so == null)
                                {
                                    so = new SalesOrder(session);
                                    so.SetOrderNo(rst.Fields["nw:cpo:no"].Value.ToString());
                                    so.Customer = GetCustomer(rst.Fields["nw:customer"].Value.ToString());
                                    so.Save();
                                }
                                dictSo.Add(rst.Fields["nw:cpo:no"].Value.ToString(), so);
                            }

                            SalesOrderLine soLine = new SalesOrderLine(session);
                            soLine.SalesOrder = so;
                            soLine.Item = item;
                            soLine.SetOrderLineNo(int.Parse(rst.Fields["nw:cpo:item:index"].Value.ToString()));
                            soLine.CustomerItemNo = rst.Fields["nw:part:tmxrefno"].Value.ToString();
                            soLine.CustomerOrderNo = rst.Fields["nw:cpo:no"].Value.ToString();
                            if (rst.Fields["nw:cpo:item:ignore"].Value.ToString() != "")
                                soLine.IgnorePlanningReport = bool.Parse(rst.Fields["nw:cpo:item:ignore"].Value.ToString());

                            if (rst.Fields["nw:cpo:item:initneeddate"].Value.ToString() != "")
                                soLine.InitNeedDate = DateTime.Parse(rst.Fields["nw:cpo:item:initneeddate"].Value.ToString());

                            soLine.NeedDate = DateTime.Parse(rst.Fields["nw:cpo:item:needdate"].Value.ToString());
                            soLine.NeedQty = float.Parse(rst.Fields["nw:cpo:item:needqty"].Value.ToString());
                            soLine.PoDate = DateTime.Parse(rst.Fields["nw:cpo:date"].Value.ToString());
                            soLine.Priority = int.Parse(rst.Fields["nw:cpo:item:priority"].Value.ToString());
                            soLine.SetShipQty(float.Parse(rst.Fields["nw:cpo:item:shippedqty"].Value.ToString()));
                            soLine.ApprovedSalesOrderLine();
                            soLine.Save();
                        }
                    }
                }
                rst.MoveNext();
            }

            System.Diagnostics.Debug.WriteLine("Start Time : " + sTime.ToString() + ".  End Time : " + DateTime.Now.ToString());
            session.CommitTransaction();
            System.Diagnostics.Debug.WriteLine("Commit Time : " + DateTime.Now.ToString());
        }
コード例 #7
0
ファイル: SalesOrderLine.cs プロジェクト: kamchung322/Namwah
        public static SalesOrderLine Create(SalesOrder order, WorkOrder wo, string remark, Session session)
        {
            SalesOrderLine orderLine = new SalesOrderLine(session);
            orderLine.SalesOrder = order;
            orderLine.Item = wo.Item;
            if (wo.Item.CustomerItemNo == "")
                orderLine.CustomerItemNo = wo.Item.ItemNo;
            else
                orderLine.CustomerItemNo = wo.Item.CustomerItemNo;
            orderLine.CustomerItemName = wo.Item.ItemName;
            orderLine.CustomerPrice = wo.Item.SalesPrice;
            orderLine.OrderType = wo.OrderType;
            orderLine.PriceUnit = order.Customer.Currency;
            orderLine.InitNeedDate = wo.NeedDate;
            orderLine.NeedDate = wo.NeedDate;
            orderLine.NeedQty = wo.NeedQty;
            orderLine.WorkOrder = wo;
            orderLine.Save();

            wo.SalesOrderLine = orderLine;
            wo.Save();

            return orderLine;
        }
コード例 #8
0
ファイル: SalesOrderLine.cs プロジェクト: kamchung322/Namwah
        public static SalesOrderLine Create(string poNo, string customerNo, string cItemNo, string cItemName,
        float price, float needQty, DateTime needDate, string remark,
        ref string errMsg, Session session)
        {
            SalesOrder order = session.FindObject<SalesOrder>(new BinaryOperator("OrderNo", poNo));
            errMsg = "";

            if (order == null)
            {
                Customer customer = session.FindObject<Customer>(new BinaryOperator("No", customerNo));

                if (customer == null)
                {
                    errMsg = string.Format("找不到此人客资料, 人客编码 : {0}", customerNo);
                    return null;
                }
                order = new SalesOrder(session);
                order.Customer = customer;
                order.OrderNo = poNo;
                order.Save();
            }

            return SalesOrderLine.Create(order, cItemNo, cItemName, price, needQty, needDate, remark, ref errMsg, session);
        }
コード例 #9
0
ファイル: SalesOrderLine.cs プロジェクト: kamchung322/Namwah
        public static SalesOrderLine Create(SalesOrder sOrder, string cItemNo, string cItemName,
        float price, float needQty, DateTime needDate, string remark,
        ref string errMsg, Session session)
        {
            Item item = session.FindObject<Item>(new BinaryOperator("CustomerItemNo", cItemNo));
            errMsg = "";

            if (item == null)
            {
                errMsg = string.Format("找不到这产品资料, 人客编码 {0}", cItemNo);
                return null;
            }

            try
            {
                SalesOrderLine orderLine = new SalesOrderLine(session);
                orderLine.SalesOrder = sOrder;
                orderLine.Item = item;
                orderLine.CustomerItemNo = cItemNo;
                orderLine.CustomerItemName = cItemName;
                orderLine.CustomerPrice = price;
                orderLine.CustomerOrderNo = sOrder.OrderNo;
                orderLine.InitNeedDate = needDate;
                orderLine.NeedDate = needDate;
                orderLine.NeedQty = needQty;
                orderLine.Remark = remark;
                orderLine.Save();
                return orderLine;
            }
            catch (Exception ex)
            {
                errMsg = ex.Message;
                return null;
            }
        }