Beispiel #1
0
        /// <summary>
        /// Read Line Items details : DataTable to Object
        /// </summary>
        /// <param name="table"></param>
        public static void ReadLineItems(DataTable table)
        {
            LineItems lineItem;
            int       id = 0;

            foreach (var row in table.AsEnumerable())
            {
                lineItem               = new LineItems();
                lineItem.Amount        = Double.Parse((string)row[VBEle.amount]);
                lineItem.Description   = (string)row[VBEle.description];
                lineItem.DiscountValue = Double.Parse((string)row[VBEle.discount_value]);;
                lineItem.ID            = ++id;
                lineItem.ItemCode      = (string)row[VBEle.item_code];
                lineItem.LineType      = (string)row[VBEle.line_item_type];
                lineItem.Qty           = Double.Parse((string)row[VBEle.qty]);;
                lineItem.Rate          = Double.Parse((string)row[VBEle.rate]);;
                lineItem.Serial        = Int16.Parse((string)row[VBEle.serial]);;
                lineItem.Value         = Double.Parse((string)row[VBEle.value]);;
                lineItem.VoyBillId     = -1;

                vBill.AddLineItem(lineItem);
            }
        }
Beispiel #2
0
 public void AddLineItem(LineItems items)
 {
     lineItems.Add(items);
 }
Beispiel #3
0
        protected static void ReadLineItems( )
        {
            //TODO:  where element /value/name is blank check for subsequent data and still null or blank
            // then read Next Line
            // Check With AtLeast 10 20 bills of different type
            //Still getting blank or end element then alert only for testing purpose
            int       a      = 0;
            LineItems lItems = null;

            ws.WriteLine("Reading Line Items ");
            int ids = 0;

            do
            {
                a++;
                ws.WriteLine("\na{0})ReaderName:{1}/Value:{2}", a, reader.Name, reader.Value);
                // reader.Read ();
                // ws.WriteLine ("\nb{0})ReaderName:{1}/Value:{2}",a, reader.Name, reader.Value);

                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                    case VBEle.line_item:     // Init line items
                        lItems = new LineItems
                        {
                            ID        = ++ids,
                            VoyBillId = -1
                        };
                        ws.WriteLine(" Line Item:{0},", ids);
                        break;

                    case VBEle.line_item_type:
                        ws.Write(reader.Name + ": ");
                        reader.Read();
                        lItems.LineType = reader.Value;
                        ws.WriteLine(reader.Value);
                        reader.Read();
                        break;

                    case VBEle.item_code:
                        ws.Write(reader.Name + ": ");
                        reader.Read();
                        lItems.ItemCode = reader.Value;
                        ws.WriteLine(reader.Value);

                        reader.Read();
                        break;

                    case VBEle.serial:
                        ws.Write(reader.Name + ": ");
                        reader.Read();
                        lItems.Serial = Int32.Parse(reader.Value);
                        ws.WriteLine(reader.Value);
                        reader.Read();
                        break;

                    case VBEle.value:
                        ws.Write(reader.Name + ": ");
                        reader.Read();
                        lItems.Value = double.Parse(reader.Value);
                        ws.WriteLine(reader.Value);
                        reader.Read();
                        break;

                    case VBEle.rate:
                        ws.Write(reader.Name + ": ");
                        reader.Read();
                        lItems.Rate = double.Parse(reader.Value);
                        ws.WriteLine(reader.Value);
                        reader.Read();
                        break;

                    case VBEle.qty:
                        ws.Write(reader.Name + ": ");
                        reader.Read();
                        lItems.Qty = double.Parse(reader.Value);
                        ws.WriteLine(reader.Value);
                        reader.Read();
                        break;

                    case VBEle.discount_value:
                        ws.Write(reader.Name + ": ");
                        reader.Read();
                        lItems.DiscountValue = double.Parse(reader.Value);
                        ws.WriteLine(reader.Value);

                        reader.Read();
                        break;

                    case VBEle.amount:
                        ws.Write(reader.Name + ": ");
                        reader.Read();
                        lItems.Amount = double.Parse(reader.Value);
                        ws.WriteLine(reader.Value);
                        reader.Read();
                        break;

                    case VBEle.description:
                        ws.Write(reader.Name + ": ");
                        reader.Read();
                        lItems.Description = reader.Value;
                        ws.WriteLine(reader.Value);
                        reader.Read();
                        break;
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    switch (reader.Name)
                    {
                    case VBEle.line_item:
                        vBill.lineItems.Add(lItems);
                        ws.WriteLine("LineItems {0} end.", ids);
                        break;

                    case VBEle.line_items:
                        ws.WriteLine("LineItems Over");
                        break;
                    }
                }
                else
                {
                    reader.Read();
                    ws.WriteLine("\nc{0})ReaderName:{1}/Value:{2}", a, reader.Name, reader.Value);
                }
            } while (reader.Name != VBEle.line_items && reader.NodeType != XmlNodeType.EndElement);
        }