private void GetDrawingApprovalData(int jobId, enterprise.QueryResult result, double?version, int employeeNumber, double?drawHour, DateTime?dueDate, int requisitionId, string drawingType, string sfDrawingID, double?NumofDrawings, DateTime?dueTime, DateTime?issueDateTime)
        {
            try
            {
                if (version == null || result == null || (result != null && result.size == 0))
                {
                    return;
                }

                //cast query results
                IEnumerable <enterprise.ProcessInstance> processInstanceList = result.records.Cast <enterprise.ProcessInstance>();

                foreach (var el in processInstanceList)
                {
                    int   taskType   = 501;
                    short taskStatus = 549;
                    if (drawingType.Trim() == "Structure")
                    {
                        taskType   = 551;
                        taskStatus = 599;
                    }

                    if (el.Status == "Pending")
                    {
                        int drawingID = CommonMethods.GetMISID(TableName.Sales_Dispatching, sfDrawingID, salesForceProjectID);
                        if (drawingID == 0)
                        {
                            //not exist
                            var vm = new SubmitDrawingRequestVm(requisitionId, employeeNumber);
                            if (dueDate != null)
                            {
                                if (dueTime != null)
                                {
                                    TimeZone localZone  = TimeZone.CurrentTimeZone;
                                    DateTime currentUTC = localZone.ToUniversalTime(dueTime.Value);
                                    DateTime localTime  = new DateTime(dueDate.Value.Year, dueDate.Value.Month, dueDate.Value.Day, currentUTC.Hour, currentUTC.Minute, 00);
                                    if (localZone.IsDaylightSavingTime(localTime))
                                    {
                                        localTime = localTime.AddHours(-1);
                                    }
                                    vm.FormatedRequiredTime = localTime.ToString("MMM dd, yyyy  hh:mm tt");
                                }
                                else
                                {
                                    vm.FormatedRequiredTime = new DateTime(dueDate.Value.Year, dueDate.Value.Month, dueDate.Value.Day, dueDate.Value.Hour, dueDate.Value.Minute, 00).ToString("MMM dd, yyyy  hh:mm tt");
                                }
                            }
                            else
                            {
                                DateTime dt1 = MyDateTime.GetDateOfAddedBusinessDays(DateTime.Today, 2);
                                DateTime dt2 = DateTime.Now.AddMinutes(2);
                                vm.FormatedRequiredTime =
                                    new DateTime(dt1.Year, dt1.Month, dt1.Day, dt2.Hour, dt2.Minute, 00).ToString("MMM dd, yyyy  hh:mm tt");
                            }
                            long taskID;
                            if (issueDateTime == null)
                            {
                                taskID = vm.Create();
                            }
                            else
                            {
                                taskID = vm.Create(issueDateTime.Value.ToLocalTime());
                            }
                            if (taskID > 0)
                            {
                                CommonMethods.InsertToMISSalesForceMapping(TableName.Sales_Dispatching, sfDrawingID, taskID.ToString(), salesForceProjectID);
                            }
                        }

                        /*
                         * var sales_Dispatching = _db.Sales_Dispatching.Where(x => x.JobID == jobId && x.TaskType == taskType && x.Importance == version).FirstOrDefault();
                         * if (sales_Dispatching == null)
                         * {
                         *  var vm = new SubmitDrawingRequestVm(requisitionId, employeeNumber);
                         *  if (dueDate != null)
                         *  {
                         *      vm.FormatedRequiredTime = new DateTime(dueDate.Value.Year, dueDate.Value.Month, dueDate.Value.Day, dueDate.Value.Hour, dueDate.Value.Minute, 00).ToString("MMM dd, yyyy  hh:mm tt");
                         *  }
                         *  else
                         *  {
                         *      DateTime dt1 = MyDateTime.GetDateOfAddedBusinessDays(DateTime.Today, 2);
                         *      DateTime dt2 = DateTime.Now.AddMinutes(2);
                         *      vm.FormatedRequiredTime =
                         *          new DateTime(dt1.Year, dt1.Month, dt1.Day, dt2.Hour, dt2.Minute, 00).ToString("MMM dd, yyyy  hh:mm tt");
                         *  }
                         *  vm.Create();
                         * }
                         * */
                    }
                    else if (el.Status == "Approved")
                    {
                        int drawingID = CommonMethods.GetMISID(TableName.Sales_Dispatching, sfDrawingID, salesForceProjectID);
                        if (drawingID > 0)
                        {
                            var sales_Dispatching = _db.Sales_Dispatching.Where(x => x.TaskID == drawingID).FirstOrDefault();
                            if (sales_Dispatching != null)
                            {
                                if (drawHour != null)
                                {
                                    sales_Dispatching.WorkedHour = drawHour;
                                }

                                if (NumofDrawings != null)
                                {
                                    sales_Dispatching.NumberOfDrawing = Convert.ToInt32(NumofDrawings);
                                }

                                sales_Dispatching.Status = taskStatus;
                                if (el.CompletedDate != null)
                                {
                                    sales_Dispatching.FinishedDate = el.CompletedDate.Value.ToLocalTime();
                                }

                                _db.Entry(sales_Dispatching).State = EntityState.Modified;
                                _db.SaveChanges();
                            }
                        }
                    }
                    else if (el.Status == "Removed")
                    {
                        int drawingID = CommonMethods.GetMISID(TableName.Sales_Dispatching, sfDrawingID, salesForceProjectID);
                        if (drawingID > 0)
                        {
                            var sales_Dispatching = _db.Sales_Dispatching.Where(x => x.TaskID == drawingID).FirstOrDefault();
                            if (sales_Dispatching != null)
                            {
                                /* delete a row in Sales_Dispatching */
                                _db.Sales_Dispatching.Remove(sales_Dispatching);
                                _db.SaveChanges();
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                LogMethods.Log.Error("GetDrawingApprovalData:Error:" + e.Message);
            }
        }
Beispiel #2
0
        private void GetEstimationApprovalData(string sfEstimaitonID, int jobId, int estRevID, enterprise.QueryResult result, double?version, int employeeNumber, double?estHour, DateTime?dueDate, DateTime?dueTime, DateTime?issueDateTime)
        {
            try
            {
                if (version == null || result == null || (result != null && result.size == 0))
                {
                    return;
                }

                //cast query results
                IEnumerable <enterprise.ProcessInstance> processInstanceList = result.records.Cast <enterprise.ProcessInstance>();

                foreach (var el in processInstanceList)
                {
                    if (el.Status == "Pending")
                    {
                        var sales_Dispatching = _db.Sales_Dispatching.Where(x => x.JobID == jobId && x.TaskType == 201 && x.Importance == version).FirstOrDefault();
                        if (sales_Dispatching == null)
                        {
                            SubmitEstimationRequestVm vm = new SubmitEstimationRequestVm();
                            vm.JobID       = jobId;
                            vm.EstRevID    = estRevID;
                            vm.SubmitBy    = employeeNumber;
                            vm.EstimatorID = 8; //mr Fan

                            if (dueDate != null)
                            {
                                if (dueTime != null)
                                {
                                    TimeZone localZone  = TimeZone.CurrentTimeZone;
                                    DateTime currentUTC = localZone.ToUniversalTime(dueTime.Value);
                                    DateTime localTime  = new DateTime(dueDate.Value.Year, dueDate.Value.Month, dueDate.Value.Day, currentUTC.Hour, currentUTC.Minute, 00);
                                    if (localZone.IsDaylightSavingTime(localTime))
                                    {
                                        localTime = localTime.AddHours(-1);
                                    }
                                    vm.FormatedRequiredTime = localTime.ToString("MMM dd, yyyy  hh:mm tt");
                                }
                                else
                                {
                                    vm.FormatedRequiredTime = new DateTime(dueDate.Value.Year, dueDate.Value.Month, dueDate.Value.Day, dueDate.Value.Hour, dueDate.Value.Minute, 00).ToString("MMM dd, yyyy  hh:mm tt");
                                }
                            }
                            else
                            {
                                DateTime dt1 = MyDateTime.GetDateOfAddedBusinessDays(DateTime.Today, 2);
                                DateTime dt2 = DateTime.Now.AddMinutes(2);
                                vm.FormatedRequiredTime =
                                    new DateTime(dt1.Year, dt1.Month, dt1.Day, dt2.Hour, dt2.Minute, 00).ToString("MMM dd, yyyy  hh:mm tt");
                            }

                            if (issueDateTime != null)
                            {
                                vm.Create(issueDateTime.Value.ToLocalTime());
                            }
                            else
                            {
                                vm.Create();
                            }
                            vm.OnEstimationSubmittedWithoutChangingEstVer();
                        }
                    }
                    else if (el.Status == "Approved")
                    {
                        var sales_Dispatching = _db.Sales_Dispatching.Where(x => x.JobID == jobId && x.TaskType == 201 && x.Importance == version).FirstOrDefault();
                        if (sales_Dispatching != null)
                        {
                            if (estHour != null)
                            {
                                sales_Dispatching.WorkedHour = estHour;
                            }
                            sales_Dispatching.Status = 249;
                            if (el.CompletedDate != null)
                            {
                                sales_Dispatching.FinishedDate = el.CompletedDate.Value.ToLocalTime();
                            }

                            _db.Entry(sales_Dispatching).State = EntityState.Modified;
                            _db.SaveChanges();
                        }
                    }
                    else if (el.Status == "Removed")
                    {
                        var sales_Dispatching = _db.Sales_Dispatching.Where(x => x.JobID == jobId && x.TaskType == 201 && x.Importance == version + 1).FirstOrDefault();
                        if (sales_Dispatching != null)
                        {
                            /* delete a row in Sales_Dispatching */
                            _db.Sales_Dispatching.Remove(sales_Dispatching);
                            _db.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception e)
            {
                LogMethods.Log.Error("GetEstimationApprovalData:Error:" + e.Message);
            }
        }