public int Delete(Int64 HeadId)
        {
            //clsAccountPosting objclsAccountPosting = new clsAccountPosting();
            int value = 0;

            using (TransportMandiEntities db = new TransportMandiEntities(MultipleDBDAL.strDynamicConString()))
            {
                MatIssHead        qth = db.MatIssHeads.Where(h => h.MatIss_Idno == HeadId).FirstOrDefault();
                List <MatIssDetl> qtd = db.MatIssDetls.Where(d => d.MatIssDet_Idno == HeadId).ToList();
                if (qth != null)
                {
                    foreach (var d in qtd)
                    {
                        if (d.Serial_Idno > 0)
                        {
                            Stckdetl Sd = db.Stckdetls.Where(r => r.SerlDetl_id == d.Serial_Idno).FirstOrDefault();
                            Sd.MtrlIssue_Idno = 0;
                            Sd.Is_Issued      = false;

                            db.MatIssDetls.DeleteObject(d);
                            db.SaveChanges();
                        }
                    }
                    db.MatIssHeads.DeleteObject(qth);
                    db.SaveChanges();
                    value = 1;
                }

                List <MatIssIdDetl> MtId = db.MatIssIdDetls.Where(d => d.DocIdno == HeadId).ToList();
                if (MtId != null)
                {
                    foreach (var d in MtId)
                    {
                        if (d.StckIdno > 0)
                        {
                            Stckdetl Sd = db.Stckdetls.Where(r => r.SerlDetl_id == d.StckIdno).FirstOrDefault();
                            Sd.MtrlIssue_Idno = 0;
                            Sd.Is_Issued      = false;
                            db.MatIssIdDetls.DeleteObject(d);
                            db.SaveChanges();
                        }
                    }
                }
            }
            return(value);
        }
        public Int64 InsertMat(DateTime?dtMat_Date, Int32 IAgainst, Int64 intMat_No, Int32 intLoc_Idno, Int32 TruckNoIdno, string km, Double DNetAmnt, Int32 YearIdno, DataTable dtDetail, Int32 intIssueTo, string strRemark, Int64 DriverIdno, Int64 intPrtyIdno, string strOwnerName, Int64 IssueType)
        {
            Int64 intMateIdno = 0;

            using (TransportMandiEntities db = new TransportMandiEntities(MultipleDBDAL.strDynamicConString()))
            {
                try
                {
                    MatIssHead objMatHead = db.MatIssHeads.Where(rh => (rh.MatIss_No == intMat_No) && (rh.Loc_Idno == intLoc_Idno) && (rh.Year_Idno == YearIdno)).FirstOrDefault();

                    if (objMatHead == null)
                    {
                        objMatHead             = new MatIssHead();
                        objMatHead.MatIss_Date = dtMat_Date;
                        objMatHead.MatIss_Typ  = IAgainst;
                        objMatHead.MatIss_No   = intMat_No;
                        objMatHead.Loc_Idno    = intLoc_Idno;
                        objMatHead.Truck_Idno  = TruckNoIdno;
                        objMatHead.Fitment_km  = km;
                        objMatHead.Net_Amnt    = DNetAmnt;
                        objMatHead.Year_Idno   = YearIdno;
                        objMatHead.Issue_To    = intIssueTo;
                        objMatHead.ReMark      = strRemark;
                        objMatHead.Date_Added  = System.DateTime.Now;
                        objMatHead.Mat_Frm     = "BK";
                        objMatHead.Driver_Idno = DriverIdno;
                        objMatHead.Prty_Idno   = intPrtyIdno;
                        objMatHead.Issue_Type  = IssueType;
                        objMatHead.Owner_Name  = strOwnerName;
                        db.MatIssHeads.AddObject(objMatHead);
                        db.SaveChanges();
                        intMateIdno = objMatHead.MatIss_Idno;
                        if (intMateIdno > 0)
                        {
                            foreach (DataRow row in dtDetail.Rows)
                            {
                                MatIssDetl objMatDetl = new MatIssDetl();
                                objMatDetl.MatIssHead_Idno   = Convert.ToInt64(intMateIdno);
                                objMatDetl.Iteam_Idno        = Convert.ToInt32(row["Item_Idno"]);
                                objMatDetl.Item_Qty          = Convert.ToInt64(row["Quantity"]);
                                objMatDetl.Item_Weght        = Convert.ToDouble(row["Weight"]);
                                objMatDetl.Item_Rate         = Convert.ToDouble(row["Rate"]);
                                objMatDetl.Item_Amnt         = Convert.ToDouble(row["Amount"]);
                                objMatDetl.Remark            = Convert.ToString(row["Detail"]);
                                objMatDetl.Serial_Idno       = Convert.ToInt64(row["SerialId"]);
                                objMatDetl.Serial_Number     = Convert.ToString(row["SerialNo"]);
                                objMatDetl.NSD               = Convert.ToString(row["NSD"]);
                                objMatDetl.PSI               = Convert.ToString(row["PSI"]);
                                objMatDetl.TType             = Convert.ToInt32(row["TType"]);
                                objMatDetl.RSerial_Idno      = Convert.ToInt64(row["RSerialId"]);
                                objMatDetl.RSerial_No        = Convert.ToString(row["RSerialNo"]);
                                objMatDetl.RNSD              = Convert.ToString(row["RNSD"]);
                                objMatDetl.RPSI              = Convert.ToString(row["RPSI"]);
                                objMatDetl.RTType            = Convert.ToInt32(row["RTType"]);
                                objMatDetl.TyresizeIdno      = Convert.ToInt32(row["Tyresize_Idno"]);
                                objMatDetl.Tyreposition_Idno = Convert.ToInt32(row["Tyreposition_Idno"]);
                                objMatDetl.Align             = string.IsNullOrEmpty(Convert.ToString(row["Align"])) ? false : Convert.ToBoolean(row["Align"]);
                                if ((Convert.ToString(row["AlignDate"]) != ""))
                                {
                                    objMatDetl.AlignDate = Convert.ToDateTime(row["AlignDate"]);
                                }
                                if ((Convert.ToString(row["PrevAlignDate"]) != ""))
                                {
                                    objMatDetl.Prev_AlignDate = Convert.ToDateTime(row["PrevAlignDate"]);
                                }
                                objMatDetl.RPrice = Convert.ToDouble(row["RPrice"]);

                                db.MatIssDetls.AddObject(objMatDetl);
                                db.SaveChanges();

                                Int64           SrId     = Convert.ToInt64(row["SerialId"]);
                                List <Stckdetl> StckDetl = db.Stckdetls.Where(rd => rd.SerlDetl_id == SrId).ToList();
                                foreach (var d in StckDetl)
                                {
                                    d.MtrlIssue_Idno = intMateIdno;
                                    d.Is_Issued      = true;
                                    db.SaveChanges();
                                }

                                Int64           RSrId     = Convert.ToInt64(row["RSerialId"]);
                                List <Stckdetl> RStckDetl = db.Stckdetls.Where(rd => rd.SerlDetl_id == RSrId).ToList();
                                foreach (var d in RStckDetl)
                                {
                                    d.MtrlIssue_Idno = 0;
                                    d.Is_Issued      = false;
                                    db.SaveChanges();
                                }
                                MatIssIdDetl MtIdDetl = new MatIssIdDetl();
                                MtIdDetl.MtrlDetlIdno = objMatDetl.MatIssDet_Idno;
                                MtIdDetl.DocIdno      = intMateIdno;
                                MtIdDetl.StckIdno     = SrId;
                                MtIdDetl.DocType      = "MT";
                                db.MatIssIdDetls.AddObject(MtIdDetl);
                                db.SaveChanges();
                            }
                            //    tScope.Complete();
                        }
                    }
                    else
                    {
                        intMateIdno = -1;
                    }
                }
                catch (Exception Ex)
                {
                    intMateIdno = 0;
                }
            }
            return(intMateIdno);
        }