示例#1
0
        private void AddPoContent(string documentName, int pageNumber, PoPurchaseOrder purchaseOrder)
        {
            if (purchaseOrder == null)
            {
                return;
            }

            var partNumber           = purchaseOrder.EconomicalInfo.PartNumber;
            var supersededPartNumber = purchaseOrder.EconomicalInfo.SupersededPartNumber;
            var currency             = purchaseOrder.EconomicalInfo.Currency;
            var materials            = purchaseOrder.Materials;

            if (materials != null)
            {
                foreach (var material in materials)
                {
                    var effectiveDate = GetDate(material.EffectiveDate);
                    var price         = GetDecimal(material.Price);
                    var plantCodeName = material.PlantCodeName;

                    AddContent(_worksheetPo, 'a', _indexPo, plantCodeName);
                    AddContent(_worksheetPo, 'B', _indexPo, partNumber);
                    AddContent(_worksheetPo, 'C', _indexPo, supersededPartNumber);
                    AddContent(_worksheetPo, 'D', _indexPo, currency);
                    AddContent(_worksheetPo, 'E', _indexPo, price);
                    AddContent(_worksheetPo, 'F', _indexPo, effectiveDate);
                    AddContent(_worksheetPo, 'G', _indexPo, documentName, true);
                    AddContent(_worksheetPo, 'H', _indexPo, pageNumber, true);

                    _indexPo++;
                }
            }
        }
示例#2
0
        public void Process()
        {
            PoPurchaseOrder purchaseOrder = null;
            var             line          = _context.Line;

            if (line.StartsWith(PoConstants.PurchaseOrder))
            {
                purchaseOrder          = new PoPurchaseOrder();
                _context.PurchaseOrder = purchaseOrder;
                _context.Next();
            }
            else
            {
                _context.PurchaseOrder = null;
                return;
            }

            line = _context.Line;
            if (line.StartsWith(PoConstants.DateOfOrder))
            {
                purchaseOrder.DateOfOrder = line;
                _context.Next();
            }

            line = _context.Line;
            if (line.StartsWith(PoConstants.AtpNumber))
            {
                _context.Next();
                line = _context.Line;
                purchaseOrder.AtpNumber = line;
                _context.Next();
            }

            line = _context.Line;
            if (line.StartsWith(PoConstants.BuyerEntity))
            {
                _context.State = new PoStateBuyerEntity(_context);
                _context.Process();
            }
            else
            {
                throw new Exception($"[HeaderState] Unknown format: {line}");
            }
        }