public ShiftMasterVM SaveShift(ShiftMasterVM Sft)
 {
     if (!Sft.EditFlag)
     {
         Sft.PRSFT001_code = _codeRep.GetCode(Sft.CmpyCode, "ShiftMaster");
     }
     return(_ShiftPayrollRepo.SaveShift(Sft));
 }
        public ActionResult SaveShift(ShiftMasterVM Sft)
        {
            List <SessionListnew> list = Session["SesDet"] as List <SessionListnew>;

            if (list == null)
            {
                return(Redirect("Login/InLogin"));
            }
            else
            {
                Sft.CmpyCode = list[0].CmpyCode;
                Sft.UserName = list[0].user_name;
                return(Json(_ShiftService.SaveShift(Sft), JsonRequestBehavior.AllowGet));
            }
        }
        public ShiftMasterVM GetShiftEdit(string CmpyCode, string PRSFT001_code)
        {
            ds = _EzBusinessHelper.ExecuteDataSet("Select * from PRSFT001 where CmpyCode='" + CmpyCode + "' and PRSFT001_code='" + PRSFT001_code + "'and Flag=0");

            dt = ds.Tables[0];
            ShiftMasterVM pr = new ShiftMasterVM();

            foreach (DataRow dr in dt.Rows)
            {
                pr.CmpyCode      = dr["CmpyCode"].ToString();
                pr.PRSFT001_code = dr["PRSFT001_code"].ToString();
                pr.country       = dr["country"].ToString();
                pr.StTime        = dr["StTime"].ToString();
                pr.EdTime        = dr["EdTime"].ToString();
                pr.division      = dr["division"].ToString();
                pr.ShiftName     = dr["ShiftName"].ToString();
            }
            return(pr);
        }
        public ShiftMasterVM SaveShift(ShiftMasterVM Sft)
        {
            int      n;
            int      k = 0;
            string   Dst1, Dst2 = null;
            DateTime dt1, dt2;
            string   Approved;

            if (!Sft.EditFlag)
            {
                ShiftMaster pt  = new ShiftMaster();
                int         pno = _EzBusinessHelper.ExecuteScalar("Select Nos from PARTTBL001 where CmpyCode='" + Sft.CmpyCode + "' and Code='PRSFT' ");

                //pt.PRBM001_code = string.Concat("PRBM", "-", (pno + 1).ToString().PadLeft(4, '0')).ToString();
                List <ShiftAllocationH> ObjList = new List <ShiftAllocationH>();
                ObjList.AddRange(Sft.Shift.Select(m => new ShiftAllocationH
                {
                    CmpyCode      = m.CmpyCode,
                    PRSFT002_code = m.PRSFT002_code,
                    PRSFT001_code = m.PRSFT001_code,
                    Enttry_Date   = m.Enttry_Date,
                    Effect_Date   = m.Effect_Date,
                    division      = m.division,
                    ApprovalYN    = m.ApprovalYN,
                }).ToList());

                k = _EzBusinessHelper.ExecuteScalar("Select count(*) from PRSFT001 where CmpyCode='" + Sft.CmpyCode + "' and PRSFT001_code='" + Sft.PRSFT001_code + "' ");

                n = ObjList.Count;
                if (n != 0 && k == 0)
                {
                    using (TransactionScope scope = new TransactionScope())
                    {
                        _EzBusinessHelper.ExecuteNonQuery("insert into PRSFT001(PRSFT001_code,CmpyCode,country,division,ShiftName,StTime,EdTime) values('" + Sft.PRSFT001_code + "','" + Sft.CmpyCode + "','" + Sft.country + "','" + Sft.division + "','" + Sft.ShiftName + "','" + Sft.StTime + "','" + Sft.EdTime + "')");

                        while (n > 0)
                        {
                            dt1  = Convert.ToDateTime(ObjList[n - 1].Enttry_Date.ToString());
                            Dst1 = dt1.ToString("yyyy-MM-dd hh:mm:ss tt");
                            dt2  = Convert.ToDateTime(ObjList[n - 1].Effect_Date.ToString());
                            Dst2 = dt2.ToString("yyyy-MM-dd hh:mm:ss tt");
                            //if (ObjList[n - 1].ApprovalYN ="YES")
                            //    Approved = "Y";
                            //else
                            //    Approved = "N";


                            _EzBusinessHelper.ExecuteNonQuery("insert into PRSFT002(PRSFT001_code,PRSFT002_code,CmpyCode,division,Enttry_Date,Effect_Date,ApprovalYN) values('" + Sft.PRSFT001_code + "','" + ObjList[n - 1].PRSFT002_code + "','" + Sft.CmpyCode + "', '" + ObjList[n - 1].division + "', '" + Dst1 + "', '" + Dst2 + "', '" + ObjList[n - 1].ApprovalYN + "')");



                            n = n - 1;
                        }
                        _EzBusinessHelper.ActivityLog(Sft.CmpyCode, Sft.UserName, "Add Shift  Master", Sft.PRSFT001_code, Environment.MachineName);
                        _EzBusinessHelper.ExecuteNonQuery("UPDATE PARTTBL001 SET Nos =" + (pno + 1) + " where CmpyCode='" + Sft.CmpyCode + "' and Code='PRSFT'");
                        Sft.SaveFlag     = true;
                        Sft.ErrorMessage = string.Empty;
                        scope.Complete();
                    }
                }
                else
                {
                    Sft.SaveFlag     = true;
                    Sft.ErrorMessage = "Duplicate Record";
                }
            }
            else
            {
                k = 0;//_EzBusinessHelper.ExecuteScalar("Select count(*) from PRSFT003 where CmpyCode='" + Sft.CmpyCode + "' and PRSFT001_code='" + Sft.PRSFT001_code + "'");
                n = _EzBusinessHelper.ExecuteScalar("Select count(*) from PRSFT001 where CmpyCode='" + Sft.CmpyCode + "' and PRSFT001_code='" + Sft.PRSFT001_code + "' ");

                if (n != 0 && k == 0)
                {
                    string DT1, DT2;

                    using (TransactionScope scope1 = new TransactionScope())
                    {
                        _EzBusinessHelper.ExecuteNonQuery("delete from PRSFT001 where CmpyCode='" + Sft.CmpyCode + "' and PRSFT001_code='" + Sft.PRSFT001_code + "'");
                        _EzBusinessHelper.ExecuteNonQuery("delete from PRSFT002 where CmpyCode='" + Sft.CmpyCode + "' and PRSFT001_code='" + Sft.PRSFT001_code + "'");

                        ShiftMaster             pt      = new ShiftMaster();
                        List <ShiftAllocationH> ObjList = new List <ShiftAllocationH>();
                        ObjList.AddRange(Sft.Shift.Select(m => new ShiftAllocationH
                        {
                            PRSFT001_code = m.PRSFT001_code,
                            PRSFT002_code = m.PRSFT002_code,
                            CmpyCode      = m.CmpyCode,
                            ApprovalYN    = m.ApprovalYN,
                            division      = m.division,
                            Effect_Date   = m.Effect_Date,
                            Enttry_Date   = m.Enttry_Date
                        }).ToList());

                        _EzBusinessHelper.ExecuteNonQuery("insert into PRSFT001(PRSFT001_code,CmpyCode,country,division,ShiftName,StTime,EdTime) values('" + Sft.PRSFT001_code + "','" + Sft.CmpyCode + "','" + Sft.country + "','" + Sft.division + "','" + Sft.ShiftName + "','" + Sft.StTime + "','" + Sft.EdTime + "')");
                        n = ObjList.Count;


                        while (n > 0)
                        {
                            dt1  = Convert.ToDateTime(ObjList[n - 1].Enttry_Date.ToString());
                            Dst1 = dt1.ToString("yyyy-MM-dd hh:mm:ss tt");
                            dt2  = Convert.ToDateTime(ObjList[n - 1].Effect_Date.ToString());
                            Dst2 = dt2.ToString("yyyy-MM-dd hh:mm:ss tt");

                            _EzBusinessHelper.ExecuteNonQuery("insert into PRSFT002(PRSFT001_code,PRSFT002_code,CmpyCode,division,Enttry_Date,Effect_Date,ApprovalYN) values('" + Sft.PRSFT001_code + "','" + ObjList[n - 1].PRSFT002_code + "','" + Sft.CmpyCode + "', '" + ObjList[n - 1].division + "', '" + Dst1 + "', '" + Dst2 + "', '" + ObjList[n - 1].ApprovalYN + "')");
                            n = n - 1;
                        }

                        _EzBusinessHelper.ActivityLog(Sft.CmpyCode, Sft.UserName, "Update Shift  Master", Sft.PRSFT001_code, Environment.MachineName);
                        Sft.SaveFlag     = true;
                        Sft.ErrorMessage = string.Empty;

                        scope1.Complete();
                    }
                }
                else
                {
                    Sft.SaveFlag     = true;
                    Sft.ErrorMessage = "Error occur";
                }
            }

            return(Sft);
        }