Beispiel #1
0
 protected void grdFamily_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e)
 {
     if (e.DataColumn.FieldName == "relationshipid")
     {
         ASPxLabel lblRelate = grdFamily.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "lblRelate") as ASPxLabel;
         lblRelate.Text = objRelation.GetRelationship(Int32.Parse(e.CellValue.ToString())).name;
     }
 }
        protected void cbpnGiadinh_Callback(object sender, DevExpress.Web.ASPxClasses.CallbackEventArgsBase e)
        {
            var  cbpnGiadinh = sender as ASPxCallbackPanel;
            bool bChong      = rbChong.Checked;

            List <FamilyRelationshipInfo> frListS1 = null;
            List <FamilyRelationshipInfo> frListS2 = null;
            List <FamilyRelationshipInfo> frListS3 = null;
            List <FamilyRelationshipInfo> frListS  = null;

            List <FamilyRelationshipInfo> frListD1 = null;
            List <FamilyRelationshipInfo> frListD2 = null;
            List <FamilyRelationshipInfo> frListD3 = null;
            List <FamilyRelationshipInfo> frListD  = null;
            int nhanvienDich  = 0;
            int nhanvienNguon = 0;

            if (cbbSource.SelectedIndex != -1)
            {
                nhanvienNguon = Convert.ToInt32(cbbSource.SelectedItem.Value);
                frListS1      = frController.GetFamilyByEmployess(nhanvienNguon, 1);
                frListS2      = frController.GetFamilyByEmployess(nhanvienNguon, 2);
                frListS3      = frController.GetFamilyByEmployess(nhanvienNguon, 3);
                frListS       = frListS1.Union(frListS2).Union(frListS3).ToList();
            }
            if (cbbDest.SelectedIndex != -1)
            {
                nhanvienDich = Convert.ToInt32(cbbDest.SelectedItem.Value);
                frListD1     = frController.GetFamilyByEmployess(nhanvienDich, 1);
                frListD2     = frController.GetFamilyByEmployess(nhanvienDich, 2);
                frListD3     = frController.GetFamilyByEmployess(nhanvienDich, 3);
                frListD      = frListD1.Union(frListD2).Union(frListD3).ToList();
            }
            if (e.Parameter.StartsWith("TransferSelectedItem"))
            {
                if (frListD == null)
                {
                    frListD = new List <FamilyRelationshipInfo>();
                }

                var tempS = new List <FamilyRelationshipInfo>();
                var tempD = new List <FamilyRelationshipInfo>();

                string sourceItems = e.Parameter.Split(':')[1];
                string destItems   = e.Parameter.Split(':')[2];
                string allItem     = sourceItems + destItems;

                var tempList = frListS.ToList();
                RemoveUnMap(tempList, frListD, bChong);

                foreach (string item in allItem.Split(','))
                {
                    if (string.IsNullOrEmpty(item))
                    {
                        continue;
                    }
                    int rid   = Convert.ToInt32(item);
                    var ritem = tempList.Where(r => r.id == rid).FirstOrDefault();
                    if (ritem != null)
                    {
                        tempD.Add(ritem);
                    }
                }

                for (int i = 0; i < tempD.Count; i++)
                {
                    var ri   = tempD[i];
                    int mrid = MapRelationshipId(ri.relationshipid, bChong);
                    if (mrid == 0)
                    {
                        tempD.Remove(ri);
                    }
                    else
                    {
                        frListS.Remove(ri);
                        ri.description = objRelation.GetRelationship(mrid).name;
                    }
                }
                foreach (var ri in frListD)
                {
                    ri.description = objRelation.GetRelationship(ri.relationshipid).name;
                }

                frListD = frListD.Union(tempD).ToList();
                lbRelativeDest.DataSource = frListD;
                lbRelativeDest.DataBind();

                foreach (var ri in frListS)
                {
                    ri.description = objRelation.GetRelationship(ri.relationshipid).name;
                }
                lbRelativeSource.DataSource = frListS;
                lbRelativeSource.DataBind();

                cbpnGiadinh.JSProperties["cpOP"] = 0;
            }
            else if (e.Parameter.StartsWith("RemoveSelectedItem"))
            {
                if (frListD == null)
                {
                    frListD = new List <FamilyRelationshipInfo>();
                }

                var tempS = new List <FamilyRelationshipInfo>();
                var tempD = new List <FamilyRelationshipInfo>();

                string sourceItems     = e.Parameter.Split(':')[1];
                string destRemoveItems = e.Parameter.Split(':')[2];
                string destItems       = e.Parameter.Split(':')[3];
                string allItem         = sourceItems + destItems;

                List <int> tempSrcIdList        = new List <int>();
                List <int> tempDestRemoveIdList = new List <int>();
                List <int> tempDestAllIdList    = new List <int>();

                foreach (var strItem in sourceItems.Split(','))
                {
                    if (string.IsNullOrEmpty(strItem))
                    {
                        continue;
                    }
                    int id   = Convert.ToInt32(strItem);
                    var item = frListS.Where(r => r.id == id).FirstOrDefault();
                    if (item != null)
                    {
                        tempSrcIdList.Add(id);
                    }
                }

                foreach (var strItem in destRemoveItems.Split(','))
                {
                    if (string.IsNullOrEmpty(strItem))
                    {
                        continue;
                    }
                    int id   = Convert.ToInt32(strItem);
                    var item = frListD.Where(r => r.id == id).FirstOrDefault();
                    if (item == null)
                    {
                        tempDestRemoveIdList.Add(id);
                    }
                }

                foreach (var strItem in destItems.Split(','))
                {
                    if (string.IsNullOrEmpty(strItem))
                    {
                        continue;
                    }
                    int id   = Convert.ToInt32(strItem);
                    var item = frListD.Where(r => r.id == id).FirstOrDefault();
                    if (item == null)
                    {
                        tempDestAllIdList.Add(id);
                    }
                }

                tempSrcIdList     = tempSrcIdList.Union(tempDestRemoveIdList).ToList();
                tempDestAllIdList = tempDestAllIdList.Except(tempDestRemoveIdList).ToList();

                foreach (var id in tempSrcIdList)
                {
                    var ri = frController.GetFamilyRelationship(id);
                    ri.description = objRelation.GetRelationship(ri.relationshipid).name;
                    tempS.Add(ri);
                }

                foreach (var id in tempDestAllIdList)
                {
                    var ri   = frController.GetFamilyRelationship(id);
                    int mrid = MapRelationshipId(ri.relationshipid, bChong);
                    ri.description = objRelation.GetRelationship(mrid).name;
                    tempD.Add(ri);
                }

                lbRelativeSource.DataSource = tempS;
                lbRelativeSource.DataBind();

                foreach (var ri in frListD)
                {
                    ri.description = objRelation.GetRelationship(ri.relationshipid).name;
                }

                frListD = frListD.Union(tempD).ToList();
                lbRelativeDest.DataSource = frListD;
                lbRelativeDest.DataBind();
            }
            else if (e.Parameter.StartsWith("LR"))
            {
                if (frListS != null)
                {
                    foreach (var ri in frListS)
                    {
                        ri.description = objRelation.GetRelationship(ri.relationshipid).name;
                    }
                    lbRelativeSource.DataSource = frListS;
                    lbRelativeSource.DataBind();
                }
                if (frListD != null)
                {
                    foreach (var ri in frListD)
                    {
                        ri.description = objRelation.GetRelationship(ri.relationshipid).name;
                    }
                    lbRelativeDest.DataSource = frListD;
                    lbRelativeDest.DataBind();
                }
                cbpnGiadinh.JSProperties["cpOP"] = 0;
            }
            else if (e.Parameter.StartsWith("Save"))
            {
                try
                {
                    if (frListS == null)
                    {
                        return;
                    }
                    if (frListD == null)
                    {
                        frListD = new List <FamilyRelationshipInfo>();
                    }

                    string destItems = e.Parameter.Split(':')[1];
                    var    tempList  = new List <FamilyRelationshipInfo>();

                    List <int> frDestIdList = new List <int>();


                    foreach (string stritem in destItems.Split(','))
                    {
                        if (string.IsNullOrEmpty(stritem))
                        {
                            continue;
                        }
                        int id   = Convert.ToInt32(stritem);
                        var item = frListD.Where(r => r.id == id).FirstOrDefault();
                        if (item == null)
                        {
                            frDestIdList.Add(id);
                        }
                    }

                    foreach (var id in frDestIdList)
                    {
                        var item = frController.GetFamilyRelationship(id);
                        int rid  = MapRelationshipId(item.relationshipid, bChong);
                        if (rid == 0)
                        {
                            continue;
                        }
                        item.relationshipid = rid;
                        item.employeeid     = nhanvienDich;
                        frController.AddFamilyRelationship(item);
                    }

                    FamilyRelationshipInfo fri = new FamilyRelationshipInfo();
                    var emp = objEmployees.GetEmployees(nhanvienNguon);
                    if (bChong)
                    {
                        //them thong tin chong
                        fri.fullname       = emp.fullname;
                        fri.employeeid     = nhanvienDich;
                        fri.address        = emp.placeofcurrent;
                        fri.birthday       = String.Format("{0:yyyy}", emp.birthday);;
                        fri.occupation     = emp.occupation;
                        fri.placeofbirth   = emp.placeofbirth;
                        fri.relationshipid = 10; //10 = chong
                    }
                    else
                    {
                        //them thong tin vo
                        fri.fullname       = emp.fullname;
                        fri.employeeid     = nhanvienDich;
                        fri.address        = emp.placeofcurrent;
                        fri.birthday       = String.Format("{0:yyyy}", emp.birthday);
                        fri.occupation     = emp.occupation;
                        fri.placeofbirth   = emp.placeofbirth;
                        fri.relationshipid = 11; //11 = vo
                    }

                    frController.AddFamilyRelationship(fri);

                    cbpnGiadinh.JSProperties["cpOP"] = 1;
                }
                catch
                {
                    cbpnGiadinh.JSProperties["cpOP"] = 2;
                }
            }
        }