Beispiel #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);
        }
    }
Beispiel #3
0
 public DataTable GetDisitlationUnits(string UnitID, string ICSType, string Year)
 {
     return(UnitInformation_DL.GetDisitlationUnits(UnitID, ICSType, Year));
 }
Beispiel #4
0
 public DataTable GetDisitlationUnits(string ICSType)
 {
     return(UnitInformation_DL.GetDisitlationUnits(ICSType));
 }
Beispiel #5
0
 public DataTable FarmersVillageList(string FarmerID)
 {
     return(UnitInformation_DL.FarmersVillageList(FarmerID));
 }
Beispiel #6
0
 public DataTable UnitInformationBasedOnVillage(string Village)
 {
     return(UnitInformation_DL.UnitInformationBasedOnVillage(Village));
 }
Beispiel #7
0
 public DataTable FarmersVillageList()
 {
     return(UnitInformation_DL.FarmersVillageList());
 }
Beispiel #8
0
 public DataTable FarmersVillageListByIcs(string icsType)
 {
     return(UnitInformation_DL.FarmersVillageListByIcs(icsType));
 }
Beispiel #9
0
 public DataSet UnitInformation(string UnitID)
 {
     return(UnitInformation_DL.UnitInformation(UnitID));
 }
Beispiel #10
0
 public DataTable GetUnitInofBasedonICS(string ICSVillage)
 {
     return(UnitInformation_DL.GetUnitInofBasedonICS(ICSVillage));
 }
Beispiel #11
0
 public DataTable UnitInformation()
 {
     return(UnitInformation_DL.UnitInformation());
 }
Beispiel #12
0
 public bool UnitInformation(string UnitID, ref DataTable dtUnitInfo)
 {
     return(UnitInformation_DL.UnitInformation(UnitID, ref dtUnitInfo));
 }
Beispiel #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);
        }