Пример #1
0
 public DataTable GetDataP3(string ICSType, string Year)
 {
     return(UnitInformation_DL.GetDataP3(ICSType, Year));
 }
    private void BindgvPlan(int year, decimal DaysPerFarmer, DateTime start, DateTime end, string role)
    {
        try
        {
            DataTable dtNewPlan = new DataTable();
            dtNewPlan.Columns.Add("FarmerID");
            dtNewPlan.Columns.Add("FarmerName");
            dtNewPlan.Columns.Add("FarmerCode");
            dtNewPlan.Columns.Add("FarmerArea");
            dtNewPlan.Columns.Add("InspectorID");
            dtNewPlan.Columns.Add("InspectorName");
            dtNewPlan.Columns.Add("PlanDate");
            dtNewPlan.Columns.Add("VisitedDate");
            dtNewPlan.Columns.Add("InspectionID");
            List <DateTime> dates      = GetDates(year, start, end);
            DataTable       dtHolidays = InspectionPlan_DL.Holidays(year, start, end);
            foreach (DataRow item in dtHolidays.Rows)
            {
                string stDate = Convert.ToString(item["HolidayDate"]);
                if (stDate.Contains("/"))
                {
                    string[] keys  = stDate.Split('/');
                    DateTime hdate = new DateTime(Convert.ToInt32(keys[2]), Convert.ToInt32(keys[0]), Convert.ToInt32(keys[1]));
                    if (hdate.DayOfWeek != DayOfWeek.Sunday && dates.Contains(hdate))
                    {
                        dates.Remove(new DateTime(Convert.ToInt32(keys[2]), Convert.ToInt32(keys[0]), Convert.ToInt32(keys[1])));
                    }
                }
            }
            dates = dates.OrderBy(m => m).ToList();
            List <int> months = dates.Select(m => m.Month).Distinct().ToList();

            DataTable farmervillages = UnitInformation_DL.FarmersVillageListByIcs("ICS02");
            int       c = farmervillages.Rows.Count;

            List <MudarVillage> villages = new List <MudarVillage>();
            foreach (DataRow item in farmervillages.Rows)
            {
                MudarVillage village = new MudarVillage();
                village.VillageName = Convert.ToString(item["City_Village"]);
                DataTable dtFarmer = Farmer_DL.GetFarmerlistVillagewise(village.VillageName);

                List <MudarFarmer> farmers = new List <MudarFarmer>();
                for (int j = 0; j < dtFarmer.Rows.Count; j++)
                {
                    MudarFarmer farmer = new MudarFarmer();
                    farmer.FarmerID   = Convert.ToString(dtFarmer.Rows[j]["FarmerID"]);
                    farmer.FirstName  = Convert.ToString(dtFarmer.Rows[j]["FirstName"]);
                    farmer.FarmerCode = Convert.ToString(dtFarmer.Rows[j]["FarmerCode"]);
                    farmer.IsVisited  = false;
                    farmers.Add(farmer);
                }
                int[] visitMonths = ShareEqual(farmers.Count, months.Count);
                int   mn          = 0;
                int   skip        = 0;
                foreach (var vm in months)
                {
                    farmers.Skip(skip).Take(visitMonths[mn]).ToList().ForEach(m => m.VisitedMonth = vm);
                    skip = skip + visitMonths[mn];
                    mn   = mn + 1;
                }
                village.Farmers = farmers;
                villages.Add(village);
            }
            DataTable            EmployeeTable = BranchsRolesEmployees_DL.GetEmployeBasedonRoleID(role);
            List <MudarEmployee> emps          = new List <MudarEmployee>();
            foreach (DataRow item in EmployeeTable.Rows)
            {
                MudarEmployee emp = new MudarEmployee();
                emp.EmployeeID   = new Guid(Convert.ToString(item["EmployeeId"]));
                emp.EmployeeName = Convert.ToString(item["EmployeeFristName"]);
                emps.Add(emp);
            }
            List <MudarPlanModel> newPlans = new List <MudarPlanModel>();
            foreach (var mnth in months)
            {
                List <DateTime> monthDates = dates.Where(m => m.Month == mnth && m.Year == year).ToList();
                int             mod        = Convert.ToInt32((monthDates.Count) / c);
                int             l          = Convert.ToInt32((monthDates.Count) % c);
                villages.ForEach(m => m.loopCount = mod);
                for (int i = 0; i < l; i++)
                {
                    villages[i].loopCount += 1;
                }
                int h = 0;
                foreach (var item in villages)
                {
                    List <MudarFarmer> listFarmers = item.Farmers.Where(m => m.VisitedMonth == mnth).ToList();
                    int[] farmerVisitedPerInsp     = ShareEqual(listFarmers.Count, emps.Count);
                    int   f = 0;
                    foreach (var item1 in emps)
                    {
                        int[] timesVisit = ShareEqual(farmerVisitedPerInsp[f], item.loopCount);
                        int   k          = h;
                        foreach (var visit in timesVisit)
                        {
                            List <MudarFarmer> visitFarmers = listFarmers.Where(m => m.IsVisited == false).Take(visit).ToList();
                            foreach (var farm in visitFarmers)
                            {
                                MudarPlanModel plan = new MudarPlanModel();
                                plan.FarmerID      = farm.FarmerID;
                                plan.FarmerName    = farm.FirstName;
                                plan.FarmerCode    = farm.FarmerCode;
                                plan.VillageName   = item.VillageName;
                                plan.InspectorCode = item1.EmployeeID;
                                plan.InspectorName = item1.EmployeeName;
                                plan.PlanDate      = monthDates[k];
                                plan.VisitedDate   = monthDates[k];
                                var empCheck = newPlans.Where(m => m.PlanDate.ToShortDateString() == plan.PlanDate.ToShortDateString() && m.VillageName == plan.VillageName && m.InspectorName != plan.InspectorName).ToList();
                                if (empCheck.Count <= 0)
                                {
                                    newPlans.Add(plan);
                                }
                            }
                            listFarmers.Where(m => m.IsVisited == false).Take(visit).ToList().ForEach(m => m.IsVisited = true);
                            k = k + villages.Count;
                            if (k >= monthDates.Count)
                            {
                                k = 0;
                            }
                        }
                        f = f + 1;
                        h = h + 1;
                    }
                    h = h - 1;
                    item.Farmers.Where(m => m.VisitedMonth == mnth).ToList().ForEach(m => m.IsVisited = true);
                }
            }
            newPlans = newPlans.OrderBy(m => m.PlanDate).ToList();
            foreach (var item in newPlans)
            {
                DataRow newrow = dtNewPlan.NewRow();
                newrow["FarmerID"]      = item.FarmerID;
                newrow["FarmerName"]    = item.FarmerName;
                newrow["FarmerCode"]    = item.FarmerCode;
                newrow["FarmerArea"]    = item.VillageName;
                newrow["InspectorID"]   = item.InspectorCode;
                newrow["InspectorName"] = item.InspectorName;
                newrow["PlanDate"]      = item.PlanDate.ToShortDateString();
                newrow["VisitedDate"]   = item.VisitedDate.ToShortDateString();
                dtNewPlan.Rows.Add(newrow);
            }
            dt = dtNewPlan;
            if (dt.Rows.Count > 0)
            {
                Session["Inspec"]          = string.Empty;
                Session["Inspec"]          = dt;
                lblFarmers.Text            = dt.Rows.Count.ToString();
                divShowPlanDetails.Visible = true;
                btnSubmit.Visible          = true;
                gvPlan.DataSource          = dt;
                gvPlan.DataBind();
            }
            else
            {
                Response.Write("<script>alert('No Data Found for InspectionPlan !!!!'</script>");
            }
        }
        catch (Exception ex)
        {
            Session["ErrorMsg"] = ex.Message;
            Response.Redirect("~/NoAccess.aspx", false);
        }
    }
Пример #3
0
 public DataTable GetDisitlationUnits(string UnitID, string ICSType, string Year)
 {
     return(UnitInformation_DL.GetDisitlationUnits(UnitID, ICSType, Year));
 }
Пример #4
0
 public DataTable GetDisitlationUnits(string ICSType)
 {
     return(UnitInformation_DL.GetDisitlationUnits(ICSType));
 }
Пример #5
0
 public DataTable FarmersVillageList(string FarmerID)
 {
     return(UnitInformation_DL.FarmersVillageList(FarmerID));
 }
Пример #6
0
 public DataTable UnitInformationBasedOnVillage(string Village)
 {
     return(UnitInformation_DL.UnitInformationBasedOnVillage(Village));
 }
Пример #7
0
 public DataTable FarmersVillageList()
 {
     return(UnitInformation_DL.FarmersVillageList());
 }
Пример #8
0
 public DataTable FarmersVillageListByIcs(string icsType)
 {
     return(UnitInformation_DL.FarmersVillageListByIcs(icsType));
 }
Пример #9
0
 public DataSet UnitInformation(string UnitID)
 {
     return(UnitInformation_DL.UnitInformation(UnitID));
 }
Пример #10
0
 public DataTable GetUnitInofBasedonICS(string ICSVillage)
 {
     return(UnitInformation_DL.GetUnitInofBasedonICS(ICSVillage));
 }
Пример #11
0
 public DataTable UnitInformation()
 {
     return(UnitInformation_DL.UnitInformation());
 }
Пример #12
0
 public bool UnitInformation(string UnitID, ref DataTable dtUnitInfo)
 {
     return(UnitInformation_DL.UnitInformation(UnitID, ref dtUnitInfo));
 }
Пример #13
0
 public bool UnitInformationDetails_INSandUPDandDEL_new(string UnitId, string Name, string Ucode, string Uowner, string Address, int RawRequired, string OutputState, string OutputMaterial, string CapacityOfPlant, string LotsOfProducesSimultaneously, int PermanentLabour, int TemporaryLabour, int ChildLabour, string CreatedBy, string ModifiedBy, int TypeOfOperation, string Unit_Village)
 {
     return(UnitInformation_DL.UnitInformationDetails_INSandUPDandDEL_new(UnitId, Name, Ucode, Uowner, Address, RawRequired, OutputState, OutputMaterial, CapacityOfPlant, LotsOfProducesSimultaneously, PermanentLabour, TemporaryLabour, ChildLabour, CreatedBy, ModifiedBy, TypeOfOperation, Unit_Village));
 }
        public DataTable Newplan(int year, decimal DaysPerFarmer, DateTime startDate, DateTime endDate, string role)
        {
            int       count      = 0;
            DataTable dtNewPlan  = new DataTable();
            DataTable dtHolidays = Holidays(year, startDate, endDate);
            DateTime  planDate;
            DateTime  planDate1 = startDate;
            DataTable dtdate    = new DataTable();

            dtdate.Columns.Add("Village");
            dtdate.Columns.Add("PlanDate");
            dtdate.Columns.Add("InspectorID");
            dtdate.Columns.Add("InspectorName");
            DataTable farmervillages = UnitInformation_DL.FarmersVillageList();
            Random    randomdate     = new Random();

            for (int v = 0; v < farmervillages.Rows.Count; v++)
            {
                for (int d = 0; d < 5; d++)
                {
                    DataRow newrow = dtdate.NewRow();
                    newrow["Village"] = farmervillages.Rows[v]["City_Village"].ToString();
                    if (planDate1 >= startDate && planDate1 <= endDate)
                    {
                        int range = ((TimeSpan)(Convert.ToDateTime(endDate) - Convert.ToDateTime(startDate))).Days;
                        planDate = Convert.ToDateTime(startDate).AddDays(randomdate.Next(range));
                        DataTable EmployeeTable = BranchsRolesEmployees_DL.GetEmployeBasedonRoleID(role);
                        if (EmployeeTable.Rows.Count > 0)
                        {
                            int getunitID = new Random().Next(0, EmployeeTable.Rows.Count);
                            if (count == 0)
                            {
                                newrow["InspectorID"]   = EmployeeTable.Rows[getunitID]["EmployeeId"].ToString();
                                newrow["InspectorName"] = EmployeeTable.Rows[getunitID]["EmployeeFristName"].ToString();
                                count++;
                            }
                            else
                            {
                                newrow["InspectorID"]   = EmployeeTable.Rows[count]["EmployeeId"].ToString();
                                newrow["InspectorName"] = EmployeeTable.Rows[count]["EmployeeFristName"].ToString();
                            }
                        }
                        if (planDate.DayOfWeek.ToString().ToLower() == "sunday")
                        {
                            planDate = planDate.AddDays(1);
                        }
                        if (planDate.DayOfWeek.ToString().ToLower() != "sunday")
                        {
                            for (int hcount = 0; hcount < dtHolidays.Rows.Count; hcount++)
                            {
                                if (DateTime.Compare(planDate, Convert.ToDateTime(dtHolidays.Rows[hcount]["HolidayDate"].ToString().Trim())) == 0)
                                {
                                    planDate = planDate.AddDays(1);
                                    hcount   = -1;
                                }
                            }
                            if (planDate.DayOfWeek.ToString().ToLower() == "sunday")
                            {
                                planDate = planDate.AddDays(1);
                            }
                            newrow["PlanDate"] = planDate.ToShortDateString();
                        }
                    }
                    dtdate.Rows.Add(newrow);
                }
            }
            return(dtdate);
        }
        // new code testing purpose
        public DataTable Newoneplan(int year, decimal DaysPerFarmer, DateTime startDate, DateTime endDate, string role)
        {
            DataTable dtNewPlan = new DataTable();

            dtNewPlan.Columns.Add("FarmerID");
            dtNewPlan.Columns.Add("FarmerName");
            dtNewPlan.Columns.Add("FarmerCode");
            dtNewPlan.Columns.Add("FarmerArea");
            dtNewPlan.Columns.Add("InspectorID");
            dtNewPlan.Columns.Add("InspectorName");
            dtNewPlan.Columns.Add("PlanDate");
            dtNewPlan.Columns.Add("VisitedDate");
            dtNewPlan.Columns.Add("InspectionID");
            List <DateTime> dates      = GetDates(year, startDate, endDate);
            DataTable       dtHolidays = InspectionPlan_DL.Holidays(year, startDate, endDate);

            foreach (DataRow item in dtHolidays.Rows)
            {
                string stDate = Convert.ToString(item["HolidayDate"]);
                if (stDate.Contains("/"))
                {
                    string[] keys  = stDate.Split('/');
                    DateTime hdate = new DateTime(Convert.ToInt32(keys[2]), Convert.ToInt32(keys[0]), Convert.ToInt32(keys[1]));
                    if (hdate.DayOfWeek != DayOfWeek.Sunday && dates.Contains(hdate))
                    {
                        dates.Remove(new DateTime(Convert.ToInt32(keys[2]), Convert.ToInt32(keys[0]), Convert.ToInt32(keys[1])));
                    }
                }
            }
            dates = dates.OrderBy(m => m).ToList();
            DataTable           farmervillages = UnitInformation_DL.FarmersVillageList();
            int                 c        = farmervillages.Rows.Count;
            int                 mod      = Convert.ToInt32(dates.Count / c);
            int                 l        = Convert.ToInt32(dates.Count % c);
            List <MudarVillage> villages = new List <MudarVillage>();

            foreach (DataRow item in farmervillages.Rows)
            {
                MudarVillage village = new MudarVillage();
                village.VillageName = Convert.ToString(item["City_Village"]);
                village.loopCount   = mod;
                villages.Add(village);
            }
            for (int i = 0; i < l; i++)
            {
                villages[i].loopCount += 1;
            }

            DataTable            EmployeeTable = BranchsRolesEmployees_DL.GetEmployeBasedonRoleID(role);
            List <MudarEmployee> emps          = new List <MudarEmployee>();

            foreach (DataRow item in EmployeeTable.Rows)
            {
                MudarEmployee emp = new MudarEmployee();
                emp.EmployeeID   = new Guid(Convert.ToString(item["EmployeeId"]));
                emp.EmployeeName = Convert.ToString(item["EmployeeFristName"]);
                emps.Add(emp);
            }
            bool   first    = false;
            int    h        = 0;
            int    village2 = 0;
            Random random   = new Random();

            for (int wd = 0; wd < dates.Count; wd++)
            {
                for (int vil = h; vil < 2; vil++)
                {
                    string village = string.Empty;
                    int    getID   = random.Next(0, farmervillages.Rows.Count);
                    village = farmervillages.Rows[getID]["City_Village"].ToString();
                    DataTable dtFarmer = Farmer_DL.GetFarmerlistVillagewise(village);
                    for (int r = 0; r < dtNewPlan.Rows.Count; r++)
                    {
                        string    farmersid = string.Empty;
                        DataTable newdt     = new DataTable();
                        farmersid = dtNewPlan.Rows[r]["FarmerID"].ToString();
                        for (int fv = 0; fv < dtFarmer.Rows.Count; fv++)
                        {
                            if (dtNewPlan.Rows[r]["FarmerID"].ToString() == dtFarmer.Rows[fv]["FarmerID"].ToString())
                            {
                            }
                        }
                    }
                    int p = (Convert.ToInt32(dtFarmer.Rows.Count.ToString()) / mod);
                    for (int f = 0; f < p; f++)
                    {
                        DataRow newrow = dtNewPlan.NewRow();
                        newrow["InspectionID"] = "0";
                        newrow["FarmerID"]     = dtFarmer.Rows[f]["FarmerID"];
                        newrow["FarmerName"]   = dtFarmer.Rows[f]["FirstName"];
                        newrow["FarmerCode"]   = dtFarmer.Rows[f]["FarmerCode"];
                        newrow["FarmerArea"]   = dtFarmer.Rows[f]["City_Village"];
                        if (first == false)
                        {
                            newrow["InspectorID"]   = emps[0].EmployeeID;
                            newrow["InspectorName"] = emps[0].EmployeeName;
                            //first = true;
                        }
                        else
                        {
                            newrow["InspectorID"]   = emps[1].EmployeeID;
                            newrow["InspectorName"] = emps[1].EmployeeName;
                            //first = false;
                        }
                        newrow["PlanDate"]    = dates[wd].ToShortDateString();
                        newrow["VisitedDate"] = dates[wd].ToShortDateString();
                        dtNewPlan.Rows.Add(newrow);
                    }

                    first    = true;
                    village2 = village2 + 1;
                    h++;
                    if (village2 == 2)
                    {
                        //wd = wd + 1;
                        village2 = 0;
                        first    = false;
                        h        = 0;
                        break;
                    }
                }
            }
            return(dtNewPlan);
        }