Ejemplo n.º 1
0
        /// <summary>
        /// Reads basic summary details from the project header.
        /// </summary>
        /// <param name="file">project file</param>
        public static void listProjectHeader(ProjectFile file)
        {
            ProjectHeader header              = file.ProjectHeader;
            String        formattedStartDate  = header.StartDate == null ? "(none)" : header.StartDate.ToDateTime().ToString();
            String        formattedFinishDate = header.FinishDate == null ? "(none)" : header.FinishDate.ToDateTime().ToString();

            System.Console.WriteLine("Project Header: StartDate=" + formattedStartDate + " FinishDate=" + formattedFinishDate);
            System.Console.WriteLine();
        }
Ejemplo n.º 2
0
        private void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            ProjectHeader header = _mpx.ProjectHeader;

            try
            {
                _progressMax = _wbsOutput.Count - 1;
                _message     = "Creating WBS structure in Aras...";
                backgroundWorker1.ReportProgress(0);

                // create top WBS
                var wbsRoot   = _inn.getNewID();
                var projectID = _inn.getNewID();

                CreateProject(wbsRoot, projectID, header);

                CreateWBS(wbsRoot);

                CreateAssignments();

                CreatePredecessors();

                if (!_isTemplate)
                {
                    _progressMax = _wbsOutput.Count - 1;
                    _message     = "Scheduling project in Aras...";
                    backgroundWorker1.ReportProgress(0);

                    var sProj = _inn.newItem("Project");
                    sProj.setID(projectID);
                    var resProj = sProj.apply("Schedule Project");
                    if (resProj.isError())
                    {
                        throw new Exception("Error scheduling project :" +
                                            resProj.getErrorDetail());
                    }

                    backgroundWorker1.ReportProgress(_wbsOutput.Count - 1);
                    Thread.Sleep(300);
                }
            }
            catch (Exception ex)
            {
                _backgroundErrorMsg = ex.Message;
            }
        }
Ejemplo n.º 3
0
        private void CreateProject(string wbsRoot, string projectID, ProjectHeader header)
        {
            var topWbs = _inn.newItem();

            topWbs.setID(wbsRoot);
            topWbs.setType("WBS Element");
            topWbs.setProperty("name", _projectTitle);
            topWbs.setProperty("is_top", "1");
            topWbs.setAction("add");

            ArasCommit(topWbs, "Top WBS", null);

            var iProject = _inn.newItem();

            iProject.setID(projectID);

            if (!_isTemplate) // project
            {
                iProject.setType("Project");
                _innovProjectNumber = _inn.getNextSequence("Project Number");
                iProject.setProperty("date_start_target", ArasHelpers.ConvertDate(_inn, header.StartDate));
                iProject.setProperty("date_due_target", ArasHelpers.ConvertDate(_inn, header.FinishDate));
                iProject.setProperty("project_number", _innovProjectNumber);
                iProject.setProperty("scheduling_type", "Forward");
                iProject.setProperty("scheduling_method", "7DC85B0668134E949B9212D7CE199265");
                iProject.setProperty("update_method", "6E1133AB87A44D529DF5F9D1FD740100");
                iProject.setProperty("scheduling_mode", "1");
                iProject.setProperty("project_update_mode", "1");
            }
            else // template
            {
                iProject.setType("Project Template");
            }
            iProject.setProperty("name", _projectTitle);
            iProject.setProperty("wbs_id", wbsRoot);
            iProject.setAction("add");
            ArasCommit(iProject, "Top Project", null);
        }
Ejemplo n.º 4
0
        private void ProjectLineGetPreviousAction_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            try
            {
                GlobalFunction _globFunc    = new GlobalFunction();
                IObjectSpace   _objectSpace = View is ListView?Application.CreateObjectSpace() : View.ObjectSpace;

                ArrayList     _objectsToProcess = new ArrayList(e.SelectedObjects);
                DateTime      now                   = DateTime.Now;
                Session       _currSession          = null;
                string        _currObjectId         = null;
                ProjectHeader _locProjectHeaderXPO  = null;
                string        _locProjectHeaderCode = null;

                if (this.ObjectSpace != null)
                {
                    _currSession = ((XPObjectSpace)this.ObjectSpace).Session;
                }

                if (_objectsToProcess != null)
                {
                    foreach (Object obj in _objectsToProcess)
                    {
                        ProjectLine _locProjectLineOS = (ProjectLine)_objectSpace.GetObject(obj);


                        if (_locProjectLineOS != null)
                        {
                            if (_locProjectLineOS.ProjectHeader != null)
                            {
                                if (_locProjectLineOS.ProjectHeader.Code != null)
                                {
                                    _locProjectHeaderCode = _locProjectLineOS.ProjectHeader.Code;
                                }
                            }

                            if (_locProjectLineOS.Code != null)
                            {
                                _currObjectId = _locProjectLineOS.Code;

                                ProjectLine _locProjectLineXPO = _currSession.FindObject <ProjectLine>
                                                                     (new GroupOperator(GroupOperatorType.And,
                                                                                        new BinaryOperator("Code", _currObjectId)));

                                if (_locProjectLineXPO == null)
                                {
                                    if (_locProjectHeaderCode != null)
                                    {
                                        _locProjectHeaderXPO = _currSession.FindObject <ProjectHeader>
                                                                   (new GroupOperator(GroupOperatorType.And,
                                                                                      new BinaryOperator("Code", _locProjectHeaderCode)));
                                    }

                                    if (_locProjectHeaderXPO != null)
                                    {
                                        XPCollection <ProjectLine> _numLines = new XPCollection <ProjectLine>
                                                                                   (_currSession, new GroupOperator(GroupOperatorType.And,
                                                                                                                    new BinaryOperator("ProjectHeader", _locProjectHeaderXPO)),
                                                                                   new SortProperty("No", DevExpress.Xpo.DB.SortingDirection.Ascending));

                                        if (_numLines != null && _numLines.Count > 0)
                                        {
                                            foreach (ProjectLine _numLine in _numLines)
                                            {
                                                if (_numLine.No == _numLines.Count())
                                                {
                                                    _locProjectLineOS.Title  = _numLine.Title;
                                                    _locProjectLineOS.Title2 = _numLine.Title2;
                                                    _locProjectLineOS.Title3 = _numLine.Title3;
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    ErrorMessageShow("Data Project Line Not Available");
                                }
                            }
                            else
                            {
                                ErrorMessageShow("Data Project Line Not Available");
                            }
                        }
                    }
                }

                if (View is DetailView && ((DetailView)View).ViewEditMode == ViewEditMode.View)
                {
                    _objectSpace.CommitChanges();
                    _objectSpace.Refresh();
                }
                if (View is ListView)
                {
                    _objectSpace.CommitChanges();
                    View.ObjectSpace.Refresh();
                }
            }
            catch (Exception ex)
            {
                Tracing.Tracer.LogError(" BusinessObject = ProjectLine " + ex.ToString());
            }
        }
Ejemplo n.º 5
0
        private void ProjectLineMirrorAction_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            try
            {
                GlobalFunction _globFunc    = new GlobalFunction();
                IObjectSpace   _objectSpace = View is ListView?Application.CreateObjectSpace() : View.ObjectSpace;

                ArrayList     _objectsToProcess = new ArrayList(e.SelectedObjects);
                DateTime      now                   = DateTime.Now;
                Session       _currSession          = null;
                string        _currObjectId         = null;
                ProjectHeader _locProjectHeaderXPO  = null;
                string        _locProjectHeaderCode = null;

                if (this.ObjectSpace != null)
                {
                    _currSession = ((XPObjectSpace)this.ObjectSpace).Session;
                }

                if (_objectsToProcess != null)
                {
                    foreach (Object obj in _objectsToProcess)
                    {
                        ProjectLine _locProjectLineOS = (ProjectLine)_objectSpace.GetObject(obj);


                        if (_locProjectLineOS != null)
                        {
                            if (_locProjectLineOS.ProjectHeader != null)
                            {
                                if (_locProjectLineOS.ProjectHeader.Code != null)
                                {
                                    _locProjectHeaderCode = _locProjectLineOS.ProjectHeader.Code;
                                }
                            }

                            if (_locProjectLineOS.Code != null)
                            {
                                if (_locProjectHeaderCode != null)
                                {
                                    _locProjectHeaderXPO = _currSession.FindObject <ProjectHeader>
                                                               (new GroupOperator(GroupOperatorType.And,
                                                                                  new BinaryOperator("Code", _locProjectHeaderCode)));

                                    if (_locProjectHeaderXPO != null)
                                    {
                                        _currObjectId = _locProjectLineOS.Code;

                                        ProjectLine _locProjectLineXPO = _currSession.FindObject <ProjectLine>
                                                                             (new GroupOperator(GroupOperatorType.And,
                                                                                                new BinaryOperator("Code", _currObjectId),
                                                                                                new BinaryOperator("ProjectHeader", _locProjectHeaderXPO)));


                                        if (_locProjectLineXPO != null)
                                        {
                                            XPCollection <ProjectLineItem> _numProjectLineItems = new XPCollection <ProjectLineItem>
                                                                                                      (_currSession, new GroupOperator(GroupOperatorType.And,
                                                                                                                                       new BinaryOperator("ProjectHeader", _locProjectHeaderXPO),
                                                                                                                                       new BinaryOperator("ProjectLine", _locProjectLineXPO)),
                                                                                                      new SortProperty("No", DevExpress.Xpo.DB.SortingDirection.Ascending));

                                            if (_numProjectLineItems != null && _numProjectLineItems.Count > 0)
                                            {
                                                foreach (ProjectLineItem _numProjectLineItem in _numProjectLineItems)
                                                {
                                                    if (_numProjectLineItem.Item != null && (_numProjectLineItem.Status == Status.Open || _numProjectLineItem.Status == Status.Progress || _numProjectLineItem.Status == Status.Lock))
                                                    {
                                                        #region Mirror ProjectLineItem2
                                                        XPCollection <ItemComponent> _locItemComponents = new XPCollection <ItemComponent>(_currSession, new GroupOperator(GroupOperatorType.And,
                                                                                                                                                                           new BinaryOperator("Item", _numProjectLineItem.Item),
                                                                                                                                                                           new BinaryOperator("Active", true)));

                                                        if (_locItemComponents != null && _locItemComponents.Count > 0)
                                                        {
                                                            foreach (ItemComponent _locItemComponent in _locItemComponents)
                                                            {
                                                                ProjectLineItem2 _locProjectLineItem2 = _currSession.FindObject <ProjectLineItem2>(
                                                                    new GroupOperator(GroupOperatorType.And,
                                                                                      new BinaryOperator("ProjectHeader", _locProjectHeaderXPO),
                                                                                      new BinaryOperator("ProjectLine", _locProjectLineXPO),
                                                                                      new BinaryOperator("ProjectLineItem", _numProjectLineItem),
                                                                                      new BinaryOperator("Item", _locItemComponent.ItemComp)
                                                                                      ));

                                                                if (_locProjectLineItem2 == null)
                                                                {
                                                                    if (_numProjectLineItem.Item == _locItemComponent.ItemComp)
                                                                    {
                                                                        ProjectLineItem2 _saveDataPLI2 = new ProjectLineItem2(_currSession)
                                                                        {
                                                                            Item            = _numProjectLineItem.Item,
                                                                            DUOM            = _numProjectLineItem.DUOM,
                                                                            DQty            = _numProjectLineItem.DQty,
                                                                            TQty            = _numProjectLineItem.TQty,
                                                                            ProjectHeader   = _locProjectHeaderXPO,
                                                                            ProjectLine     = _locProjectLineXPO,
                                                                            ProjectLineItem = _numProjectLineItem
                                                                        };
                                                                        _saveDataPLI2.Save();
                                                                        _saveDataPLI2.Session.CommitTransaction();
                                                                    }
                                                                    else
                                                                    {
                                                                        ProjectLineItem2 _saveDataPLI2 = new ProjectLineItem2(_currSession)
                                                                        {
                                                                            Item            = _locItemComponent.ItemComp,
                                                                            DUOM            = _locItemComponent.UOM,
                                                                            DQty            = _locItemComponent.Qty,
                                                                            ProjectHeader   = _locProjectHeaderXPO,
                                                                            ProjectLine     = _locProjectLineXPO,
                                                                            ProjectLineItem = _numProjectLineItem
                                                                        };
                                                                        _saveDataPLI2.Save();
                                                                        _saveDataPLI2.Session.CommitTransaction();
                                                                    }
                                                                }
                                                            }
                                                        }
                                                        else
                                                        {
                                                            ProjectLineItem2 _locProjectLineItem2 = _currSession.FindObject <ProjectLineItem2>(
                                                                new GroupOperator(GroupOperatorType.And,
                                                                                  new BinaryOperator("ProjectHeader", _locProjectHeaderXPO),
                                                                                  new BinaryOperator("ProjectLine", _locProjectLineXPO),
                                                                                  new BinaryOperator("ProjectLineItem", _numProjectLineItem),
                                                                                  new BinaryOperator("Item", _numProjectLineItem.Item)
                                                                                  ));

                                                            if (_locProjectLineItem2 != null)
                                                            {
                                                                _locProjectLineItem2.Name          = _numProjectLineItem.Name;
                                                                _locProjectLineItem2.Item          = _numProjectLineItem.Item;
                                                                _locProjectLineItem2.DQty          = _numProjectLineItem.DQty;
                                                                _locProjectLineItem2.DUOM          = _numProjectLineItem.DUOM;
                                                                _locProjectLineItem2.Qty           = _numProjectLineItem.Qty;
                                                                _locProjectLineItem2.UOM           = _numProjectLineItem.UOM;
                                                                _locProjectLineItem2.TQty          = _numProjectLineItem.TQty;
                                                                _locProjectLineItem2.Description   = _numProjectLineItem.Description;
                                                                _locProjectLineItem2.ProjectHeader = _locProjectHeaderXPO;
                                                                _locProjectLineItem2.ProjectLine   = _locProjectLineXPO;
                                                                _locProjectLineItem2.Save();
                                                                _locProjectLineItem2.Session.CommitTransaction();
                                                            }
                                                            else
                                                            {
                                                                ProjectLineItem2 _saveDataPLI2 = new ProjectLineItem2(_currSession)
                                                                {
                                                                    Item            = _numProjectLineItem.Item,
                                                                    DUOM            = _numProjectLineItem.DUOM,
                                                                    DQty            = _numProjectLineItem.DQty,
                                                                    Qty             = _numProjectLineItem.Qty,
                                                                    UOM             = _numProjectLineItem.UOM,
                                                                    TQty            = _numProjectLineItem.TQty,
                                                                    ProjectHeader   = _locProjectHeaderXPO,
                                                                    ProjectLine     = _locProjectLineXPO,
                                                                    ProjectLineItem = _numProjectLineItem
                                                                };
                                                                _saveDataPLI2.Save();
                                                                _saveDataPLI2.Session.CommitTransaction();
                                                            }
                                                        }
                                                        #endregion Mirror ProjectLineItem2

                                                        #region Mirror ProjectLineServices
                                                        ProjectLineService _locProjectLineService = _currSession.FindObject <ProjectLineService>
                                                                                                        (new GroupOperator(GroupOperatorType.And,
                                                                                                                           new BinaryOperator("ProjectHeader", _locProjectHeaderXPO),
                                                                                                                           new BinaryOperator("ProjectLine", _locProjectLineXPO),
                                                                                                                           new BinaryOperator("ProjectLineItem", _numProjectLineItem)));
                                                        if (_locProjectLineService != null)
                                                        {
                                                            _locProjectLineService.Qty             = _numProjectLineItem.TQty;
                                                            _locProjectLineService.UOM             = _numProjectLineItem.DUOM;
                                                            _locProjectLineService.ProjectHeader   = _locProjectHeaderXPO;
                                                            _locProjectLineService.ProjectLine     = _locProjectLineXPO;
                                                            _locProjectLineService.ProjectLineItem = _numProjectLineItem;
                                                        }
                                                        if (_locProjectLineService == null)
                                                        {
                                                            ProjectLineService _saveDataPLS = new ProjectLineService(_currSession)
                                                            {
                                                                Qty             = _numProjectLineItem.TQty,
                                                                UOM             = _numProjectLineItem.DUOM,
                                                                ProjectHeader   = _locProjectHeaderXPO,
                                                                ProjectLine     = _locProjectLineXPO,
                                                                ProjectLineItem = _numProjectLineItem
                                                            };
                                                            _saveDataPLS.Save();
                                                            _saveDataPLS.Session.CommitTransaction();
                                                        }
                                                        #endregion Mirror ProjectLineServices
                                                    }
                                                }
                                            }
                                        }
                                        SuccessMessageShow("Project Line Item Has Successfully Mirror to Project Line Item 2");
                                    }
                                }
                                else
                                {
                                    ErrorMessageShow("Data Project Line Not Available");
                                }
                            }
                            else
                            {
                                ErrorMessageShow("Data Project Line Not Available");
                            }
                        }
                    }
                }

                if (View is DetailView && ((DetailView)View).ViewEditMode == ViewEditMode.View)
                {
                    _objectSpace.CommitChanges();
                    _objectSpace.Refresh();
                }
                if (View is ListView)
                {
                    _objectSpace.CommitChanges();
                    View.ObjectSpace.Refresh();
                }
            }
            catch (Exception ex)
            {
                Tracing.Tracer.LogError(" BusinessObject = ProjectLine " + ex.ToString());
            }
        }
        private List <MyWorkItem> GroupProjectsByStatus(List <MyWorkItem> listWork)
        {
            //var listWork = new ObservableCollection<MyWorkItem>(Projects.OrderByDescending(x => x.IsActive));

            List <ProjectHeader> PositionsForInsert = new List <ProjectHeader>();
            bool?previousState = null;

            for (int x = 0; x < listWork.Count(); x++)
            {
                if (listWork[x].TitleColor == null)
                {
                    listWork[x].TitleColor = "#000000";
                }

                if (x < listWork.Count() - 1)
                {
                    if (listWork[x].IsActive != previousState)
                    {
                        ProjectHeader header = new ProjectHeader();
                        header.Position = x;
                        //header.ProjectState = listWork[x].ProjectState;
                        if (listWork[x].IsActive)
                        {
                            header.ProjectState = 0;
                        }
                        else
                        {
                            header.ProjectState = 2;
                        }

                        PositionsForInsert.Add(header);
                        previousState = listWork[x].IsActive;
                        //previousState = listWork[x].ProjectState;
                    }
                }
            }

            int counter = 0;

            foreach (ProjectHeader header in PositionsForInsert)
            {
                MyWorkItem head = new MyWorkItem();
                switch (header.ProjectState)
                {
                case 0:
                    head.TitleColor = ConvertColorToHex((Color)Application.Current.Resources["GreenTextColor"]);
                    //head.TitleColor = "#07aa07";
                    head.Title = "Active";
                    break;

                case 1:
                    head.TitleColor = ConvertColorToHex((Color)Application.Current.Resources["LightGrayTextColor"]);
                    head.Title      = "Archive";
                    break;

                case 2:
                    head.TitleColor = ConvertColorToHex((Color)Application.Current.Resources["LightGrayTextColor"]);
                    //head.TitleColor = "#828282";
                    head.Title = "Planning";
                    break;

                case 3:
                    head.TitleColor = ConvertColorToHex((Color)Application.Current.Resources["LightGrayTextColor"]);
                    head.Title      = "Template";
                    break;

                case 4:
                    head.TitleColor = ConvertColorToHex((Color)Application.Current.Resources["LightGrayTextColor"]);
                    head.Title      = "Project Baseline";
                    break;

                case 5:
                    head.TitleColor = ConvertColorToHex((Color)Application.Current.Resources["LightGrayTextColor"]);
                    head.Title      = "To Be Deleted";
                    break;

                case 6:
                    head.TitleColor = ConvertColorToHex((Color)Application.Current.Resources["LightGrayTextColor"]);
                    head.Title      = "Change Order";
                    break;
                }

                head.isHeader = true;
                head.isItem   = false;
                listWork.Insert(header.Position + counter, head);
                counter++;
            }

            return(listWork);
        }
Ejemplo n.º 7
0
        private void LoadPrjBtn_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            listBox2.Items.Clear();
            listBox3.Items.Clear();

            OpenFileDialog openFileDialog1 = new OpenFileDialog
            {
                Filter = "GO Project File |*.prj",
                Title  = "Select a Map Project File"
            };


            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                string fullpath      = openFileDialog1.FileName;
                string directoryPath = Path.GetDirectoryName(fullpath);
                string filename      = Path.GetFileName(fullpath);

                ProjectHeader Project = new ProjectHeader();
                try
                {
                    string       path   = fullpath;
                    FileStream   fs     = new FileStream(path, FileMode.Open, FileAccess.Read);
                    BinaryReader reader = new BinaryReader(fs, Encoding.GetEncoding("EUC-KR"));
                    ReadString   str    = new ReadString();
                    CurrentEditLabel.Visible = true;
                    CurrentEditLabel.Text    = "Current Editing : " + filename;

                    str.FiersRead = reader.ReadBytes(0x50);
                    str.Decode();
                    reader.ReadInt32();
                    Project.MapName = str.Name;
                    Project.Theme   = reader.ReadInt32();
                    Project.Region  = reader.ReadInt32();
                    Project.MapType = reader.ReadInt32();


                    //sub_96FFE0
                    str.FiersRead = reader.ReadBytes(0x80);
                    str.Decode();
                    Project.BackgroundFile = str.Name;



                    str.FiersRead = reader.ReadBytes(0x80);
                    str.Decode();
                    Project.TileFile = str.Name;

                    str.FiersRead = reader.ReadBytes(0x80);
                    str.Decode();
                    Project.MapFile = str.Name;

                    MapName.Text        = Project.MapName;
                    ThemeMap.Text       = Project.Theme.ToString();
                    RegionMap.Text      = Project.Region.ToString();
                    BackgroundFile.Text = Project.BackgroundFile;
                    TileFile.Text       = Project.TileFile;
                    MapFile.Text        = Project.MapFile;
                    //////// OBJ
                    Project.ObjectCount = reader.ReadInt32();

                    SprResourceCountLabel.Text    = "Spr Resource Count : " + Project.ObjectCount.ToString();
                    SprResourceCountLabel.Visible = true;
                    for (int i = 0; i < Project.ObjectCount; i++)
                    {
                        string SprFile = "";
                        char   ch1;
                        while ((int)(ch1 = reader.ReadChar()) != 0)
                        {
                            SprFile = SprFile + ch1;
                        }
                        reader.ReadBytes(127 - SprFile.Length);// acc 128
                        Console.WriteLine(SprFile);
                        listBox1.Items.Insert(i, SprFile);
                    }

                    Project.MotCount = reader.ReadInt32();

                    for (int i = 0; i < Project.MotCount; i++)
                    {
                        string MotFile = "";
                        char   ch2;
                        while ((int)(ch2 = reader.ReadChar()) != 0)
                        {
                            MotFile = MotFile + ch2;
                        }
                        reader.ReadBytes(127 - MotFile.Length);// acc 128
                        Console.WriteLine(MotFile);
                        listBox2.Items.Insert(i, MotFile);
                    }



                    reader.ReadInt32();
                    reader.ReadInt32();
                    reader.ReadInt32();
                    for (int i = 0; i < Project.MotCount; i++)
                    {
                        string MotTFile = "";
                        char   ch3;
                        while ((int)(ch3 = reader.ReadChar()) != 0)
                        {
                            MotTFile = MotTFile + ch3;
                        }
                        reader.ReadBytes(127 - MotTFile.Length);// acc 128
                        Console.WriteLine(MotTFile);
                        listBox3.Items.Insert(i, MotTFile);
                    }


                    MotResourceCountLabel.Text    = "Mot Resource Count : " + Project.MotCount.ToString();
                    MotResourceCountLabel.Visible = true;
                }
                catch
                {
                    MessageBox.Show("Failed to read file", "");
                }
            }
        }
Ejemplo n.º 8
0
        private void PurchaseOrderReceiptAction_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            try
            {
                GlobalFunction _globFunc    = new GlobalFunction();
                IObjectSpace   _objectSpace = View is ListView?Application.CreateObjectSpace() : View.ObjectSpace;

                ArrayList     _objectsToProcess = new ArrayList(e.SelectedObjects);
                DateTime      now               = DateTime.Now;
                Session       _currSession      = null;
                string        _currObjectId     = null;
                string        _locDocCode       = null;
                ProjectHeader _locProjectHeader = null;


                if (this.ObjectSpace != null)
                {
                    _currSession = ((XPObjectSpace)this.ObjectSpace).Session;
                }

                if (_objectsToProcess != null)
                {
                    foreach (Object obj in _objectsToProcess)
                    {
                        PurchaseOrder _locPurchaseOrderOS = (PurchaseOrder)_objectSpace.GetObject(obj);

                        if (_locPurchaseOrderOS != null)
                        {
                            if (_locPurchaseOrderOS.Code != null)
                            {
                                _currObjectId = _locPurchaseOrderOS.Code;

                                PurchaseOrder _locPurchaseOrderXPO = _currSession.FindObject <PurchaseOrder>
                                                                         (new GroupOperator(GroupOperatorType.And,
                                                                                            new BinaryOperator("Code", _currObjectId),
                                                                                            new BinaryOperator("Status", Status.Progress)));

                                if (_locPurchaseOrderXPO != null)
                                {
                                    if (_locPurchaseOrderXPO.ProjectHeader != null)
                                    {
                                        _locProjectHeader = _locPurchaseOrderXPO.ProjectHeader;
                                    }


                                    DocumentType _locDocumentTypeXPO = _currSession.FindObject <DocumentType>
                                                                           (new GroupOperator(GroupOperatorType.And,
                                                                                              new BinaryOperator("DirectionType", DirectionType.External),
                                                                                              new BinaryOperator("InventoryMovingType", InventoryMovingType.Receive),
                                                                                              new BinaryOperator("ObjectList", ObjectList.InventoryTransfer),
                                                                                              new BinaryOperator("DocumentRule", DocumentRule.Vendor),
                                                                                              new BinaryOperator("Active", true),
                                                                                              new BinaryOperator("Default", true)));

                                    if (_locDocumentTypeXPO != null)
                                    {
                                        _locDocCode = _globFunc.GetDocumentNumberingUnlockOptimisticRecord(_currSession.DataLayer, _locDocumentTypeXPO);

                                        if (_locDocCode != null)
                                        {
                                            InventoryTransfer _saveDataIT = new InventoryTransfer(_currSession)
                                            {
                                                DirectionType       = _locDocumentTypeXPO.DirectionType,
                                                InventoryMovingType = _locDocumentTypeXPO.InventoryMovingType,
                                                ObjectList          = _locDocumentTypeXPO.ObjectList,
                                                DocumentType        = _locDocumentTypeXPO,
                                                DocNo         = _locDocCode,
                                                EstimatedDate = _locPurchaseOrderXPO.EstimatedDate,
                                                PurchaseOrder = _locPurchaseOrderXPO,
                                                ProjectHeader = _locProjectHeader
                                            };
                                            _saveDataIT.Save();
                                            _saveDataIT.Session.CommitTransaction();

                                            InventoryTransfer _locInventoryTransfer = _currSession.FindObject <InventoryTransfer>
                                                                                          (new GroupOperator(GroupOperatorType.And,
                                                                                                             new BinaryOperator("DocNo", _locDocCode),
                                                                                                             new BinaryOperator("PurchaseOrder", _locPurchaseOrderXPO),
                                                                                                             new BinaryOperator("ProjectHeader", _locProjectHeader)));

                                            if (_locInventoryTransfer != null)
                                            {
                                                XPCollection <PurchaseOrderLine> _locPurchaseOrderLines = new XPCollection <PurchaseOrderLine>
                                                                                                              (_currSession, new GroupOperator(GroupOperatorType.And,
                                                                                                                                               new BinaryOperator("PurchaseOrder", _locPurchaseOrderXPO),
                                                                                                                                               new BinaryOperator("Status", Status.Progress)));

                                                if (_locPurchaseOrderLines != null && _locPurchaseOrderLines.Count > 0)
                                                {
                                                    foreach (PurchaseOrderLine _locPurchaseOrderLine in _locPurchaseOrderLines)
                                                    {
                                                        InventoryTransferLine _saveDataInventoryTransferLine = new InventoryTransferLine(_currSession)
                                                        {
                                                            Item              = _locPurchaseOrderLine.Item,
                                                            MxDQty            = _locPurchaseOrderLine.DQty,
                                                            MxDUOM            = _locPurchaseOrderLine.DUOM,
                                                            MxQty             = _locPurchaseOrderLine.Qty,
                                                            MxUOM             = _locPurchaseOrderLine.UOM,
                                                            MxTQty            = _locPurchaseOrderLine.TQty,
                                                            DQty              = _locPurchaseOrderLine.DQty,
                                                            DUOM              = _locPurchaseOrderLine.DUOM,
                                                            Qty               = _locPurchaseOrderLine.Qty,
                                                            UOM               = _locPurchaseOrderLine.UOM,
                                                            TQty              = _locPurchaseOrderLine.TQty,
                                                            EstimatedDate     = _locInventoryTransfer.EstimatedDate,
                                                            InventoryTransfer = _locInventoryTransfer
                                                        };
                                                        _saveDataInventoryTransferLine.Save();
                                                        _saveDataInventoryTransferLine.Session.CommitTransaction();

                                                        //Change Status POL From Progress To Posted
                                                        _locPurchaseOrderLine.Status     = Status.Posted;
                                                        _locPurchaseOrderLine.StatusDate = now;
                                                        _locPurchaseOrderLine.Save();
                                                        _locPurchaseOrderLine.Session.CommitTransaction();
                                                    }
                                                }
                                            }
                                        }
                                    }

                                    //Change Status PO From Progress To Posted
                                    _locPurchaseOrderXPO.Status     = Status.Posted;
                                    _locPurchaseOrderXPO.StatusDate = now;
                                    _locPurchaseOrderXPO.Save();
                                    _locPurchaseOrderXPO.Session.CommitTransaction();

                                    SuccessMessageShow(_locPurchaseOrderXPO, "Inventory Transfer");
                                }
                                else
                                {
                                    ErrorMessageShow("Data Purchase Order Not Available");
                                }
                            }
                            else
                            {
                                ErrorMessageShow("Data Purchase Order Not Available");
                            }
                        }
                    }
                }

                if (View is DetailView && ((DetailView)View).ViewEditMode == ViewEditMode.View)
                {
                    _objectSpace.CommitChanges();
                    _objectSpace.Refresh();
                }
                if (View is ListView)
                {
                    _objectSpace.CommitChanges();
                    View.ObjectSpace.Refresh();
                }
            }
            catch (Exception ex)
            {
                Tracing.Tracer.LogError(" BusinessObject = PurchaseOrder " + ex.ToString());
            }
        }