Beispiel #1
0
        public static List <B2b> GetB2BGst1Save(DataTable dtInvoice, DataTable dtInvoiceItemRate)
        {
            #region B2B Section
            List <B2b> _resB2BList = new List <B2b>();

            List <Inv> _resB2BInv = new List <Inv>();
            List <Itm> _resB2BItm = new List <Itm>();
            #endregion

            List <B2b> _b2bList     = new List <B2b>();
            var        distinctctin = (from DataRow dRow in dtInvoice.Rows
                                       select new { col1 = dRow["ctin"] }).Distinct().ToList();

            for (int k = 0; k < distinctctin.Count(); k++)
            {
                B2b _b2b = new B2b();
                _b2b.ctin = distinctctin[k].ToString().Replace("col1 =", "").Replace("{", "").Replace("}", "");
                string _selectParam    = "ctin =" + "'" + _b2b.ctin.TrimStart().TrimEnd() + "'";
                var    currInvoiceLoop = dtInvoice.Select(_selectParam).CopyToDataTable();

                List <ItmDet> _itmdetList = new List <ItmDet>();
                string        JSONString  = string.Empty;
                JSONString = JsonConvert.SerializeObject(currInvoiceLoop);
                _resB2BInv = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Inv> >(JSONString);

                string JSONStringItem = string.Empty;
                JSONStringItem = JsonConvert.SerializeObject(dtInvoiceItemRate);
                _itmdetList    = Newtonsoft.Json.JsonConvert.DeserializeObject <List <ItmDet> >(JSONStringItem);
                _b2b.inv       = _resB2BInv;
                List <Inv> _invList = new List <Inv>();
                for (int i = 0; i < currInvoiceLoop.Rows.Count; i++)
                {
                    Inv           _inv       = new Inv();
                    List <ItmDet> itmdetList = new List <ItmDet>();
                    List <Itm>    _itmList   = new List <Itm>();
                    string        invoiceId  = _b2b.inv[i].InvoiceId;
                    var           _curritm   = (List <ItmDet>)_itmdetList.Where(x => x.InvoiceId == invoiceId).Select(x => x).ToList();
                    _inv = _resB2BInv[i];

                    for (int j = 0; j < _curritm.Count(); j++)
                    {
                        Itm    _itm    = new Itm();
                        ItmDet _itmdet = new ItmDet();
                        _itmdet      = (_curritm[j]);
                        _itm.num     = i + 1;
                        _itm.itm_det = _itmdet;
                        _itmList.Add(_itm);
                        _inv.itms   = _itmList;
                        _b2b.inv[i] = _inv;
                    }
                }
                _b2bList.Add(_b2b);
            }
            return(_b2bList);
        }
Beispiel #2
0
        private void btnReadJson_Click(object sender, EventArgs e)
        {
            List <Invoice> invoices = new List <Invoice>();

            JsonSerializer jsonSerializer = new JsonSerializer();

            using (StreamReader r = new StreamReader(@"D:\DotNet\Forms\JsonReader\JsonReader\Json\Data.json"))
            {
                var json = r.ReadToEnd();

                var        items      = JsonConvert.DeserializeObject <JSONReader>(json);
                JSONReader jSONReader = new JSONReader()
                {
                    b2b   = items.b2b,
                    gstin = items.gstin,
                    fp    = items.fp
                };
                Itm itmm = new Itm();
                using (RootDataContext dbContext = new RootDataContext())
                {
                    var b2bList = jSONReader.b2b; //b2b
                    foreach (var data in b2bList)
                    {
                        B2b b2 = new B2b()
                        {
                            cfs   = data.cfs,
                            cname = data.cname,
                            ctin  = data.ctin,
                            inv   = data.inv//
                        };

                        var invList = data.inv;
                        foreach (var invItem in invList)// inv
                        {
                            var        invItems = invItem.itms;
                            List <Inv> InvList  = new List <Inv>();
                            // Itm Done Here
                            foreach (var Items in invItems)
                            {
                                var Itm_DetItem = Items.itm_det;
                                var ItemDetObj  = new Itm_Det()
                                {
                                    camt  = Itm_DetItem.camt,
                                    csamt = Itm_DetItem.csamt,
                                    rt    = Itm_DetItem.rt,
                                    samt  = Itm_DetItem.samt,
                                    txval = Itm_DetItem.txval
                                };

                                var itm = new Itm()
                                {
                                    num     = Items.num,
                                    itm_det = ItemDetObj
                                };

                                List <Itm> ItemList = new List <Itm>()  // inv List Done Here
                                {
                                    new Itm()
                                    {
                                        num     = itm.num,
                                        itm_det = itm.itm_det
                                    }
                                };
                                Inv inv = new Inv()
                                {
                                    chksum  = invItem.chksum,
                                    idt     = invItem.idt,
                                    inum    = invItem.inum,
                                    inv_typ = invItem.inv_typ,
                                    pos     = invItem.pos,
                                    rchrg   = invItem.rchrg,
                                    val     = invItem.val,
                                    itms    = ItemList,
                                };


                                InvList.Add(inv);
                            }
                        }
                    }
                }
            }
        }