/// <summary> /// 更改区域启用状态 /// </summary> /// <param name="LocationID"></param> /// <param name="status"></param> /// <returns></returns> public ReturnInfo ChangeEnable(String LocationID, LocationStatus status) { ReturnInfo RInfo = new ReturnInfo(); try { if (String.IsNullOrEmpty(LocationID)) { throw new Exception("区域编号不能为空"); } AssLocation al = _AssLocationRepository.GetByID(LocationID).FirstOrDefault(); if (al == null) { throw new Exception("区域编号不存在,请检查!"); } al.ISENABLE = (int)status; _unitOfWork.RegisterDirty(al); bool result = _unitOfWork.Commit(); RInfo.IsSuccess = true; return(RInfo); } catch (Exception ex) { _unitOfWork.Rollback(); RInfo.IsSuccess = false; RInfo.ErrorInfo = ex.Message; return(RInfo); } }
public Location GetCurrentLocation() { Random rnd = new Random(); decimal newLat = _location.Latitude + rnd.Next(-1, 2); decimal newLong = _location.Longitude + rnd.Next(-1, 2); // Assume arrival if the difference in latitude is 3. _lastLocation = _location; LocationStatus status = Math.Abs(_startLocation.Latitude - newLat) >= 3 ? LocationStatus.Finished : LocationStatus.EnRoute; _location = new Location(_location.Latitude + rnd.Next(-1, 2), _location.Longitude + rnd.Next(-1, 2), DateTime.UtcNow, status); if (!_location.Equals(_lastLocation)) { // Notify observers. foreach (IObserver <Location> observer in observers) { observer.OnNext(this.Location); // Assume that we've arrived at location of Latitude has changed by 4. if (_location.Status == LocationStatus.Finished) { observer.OnCompleted(); } } } return(this.Location); }
public Location(decimal lat, decimal lon, DateTime dateAndTime, LocationStatus status) { this.Latitude = lat; this.Longitude = lon; this.DateAndTime = dateAndTime; this.Status = status; }
private async Task GetLocationStatusAsync() { if (_evoHomeSettings.DisableMqtt) { return; } try { var token = await _manager.GetToken(_evoHomeSettings.EvoUsername, _evoHomeSettings.EvoPassword); Client.AuthHeader = $"{token.TokenType} {token.AccessToken}"; _logger.LogInformation($"Retrieving Location Status For {_location.LocationInfo.Name}"); _status = await Client.GetLocationStatusAsync(_location.LocationInfo.LocationId, true); _logger.LogInformation($"Retrieved Location Status For {_location.LocationInfo.Name}"); foreach (var zone in _status.Gateways.SelectMany(x => x.TemperatureControlSystems) .SelectMany(x => x.Zones)) { _logger.LogInformation($"Publishing updated status for zone {zone.Name}"); await Publish(zone.ZoneId, ZoneToStatus(zone)); } } catch (Exception e) { _logger.LogError("Failed to retrieve status updates", e); } }
public NativeFilter() { Name = "Native to"; Status = LocationStatus.Native; InputType = InputType.Select; FilterType = FilterType.String; FacetValues = new Dictionary <string, long?>(); }
private LocationSimulator(decimal latitude, decimal longitude, LocationStatus status) { _location = new Location(latitude, longitude, DateTime.UtcNow, status); _lastLocation = _location; if (status == LocationStatus.Started) { _startLocation = _location; } }
private async Task SplitterPortDefaults() { using (var odw = new OracleDatabaseWorker(tbOracleConnectionStringText)) { List <string> splitterportstatuses = await Task.FromResult(odw.GetDistinctDataColumn(splitterPortsTable, "STATUS")); //splitter eqtype using (var puow = new UnitOfWork(Tsdl)) { using (var uow = new UnitOfWork(Tsdl)) { var gss = GlobalSystemSettings.GetInstanceFromDatabase(uow); ////////// if (gss.SplitterPortType == null) { gss.SplitterPortType = new PortType(uow) { TypeName = "SPLITTERPORT" }; uow.CommitChanges(); } splitterEquipmentTypeOid = gss .SplitterPortType.Oid; } //status var del = new MyDelegate((lst) => { using (var uow = new UnitOfWork(Tsdl)) { foreach (var str in lst .Where(s => s != "" && !uow.Query <LocationStatus>().Select(x => x.StatusName) .Contains(s)) ) { if (!uow.Query <LocationStatus>().Any(x => x.StatusName == str)) { LocationStatus cs = new LocationStatus(uow) { StatusName = str }; uow.CommitChanges(); } } return(true); } }); IAsyncResult statusres = del.BeginInvoke(splitterportstatuses, null, null); } }//using ORACLE odw }
public LocationInfo( int id, string name, LocationStatus status = LocationStatus.Healthy) { Ensure.IsValidId(id); Ensure.NotNullOrEmpty(name, nameof(name)); Id = id; ProviderId = LocationId.Create(id).ProviderId; Name = name; Status = status; }
/// <summary> /// Resets the API. /// </summary> public void Reset() { //Reset services. try { Events = new Events.EventHandler(); } catch (Exception ex) { Logger.Log(Severity.Warning, "Couldn't instantiate service 'Events'.", ex); } try { Commander = new CommanderStatus(this); } catch (Exception ex) { Logger.Log(Severity.Warning, "Couldn't instantiate service 'Commander'.", ex); } try { Location = new LocationStatus(this); } catch (Exception ex) { Logger.Log(Severity.Warning, "Couldn't instantiate service 'Location'.", ex); } try { DiscordRichPresence = new RichPresenceClient(this); } catch (Exception ex) { Logger.Log(Severity.Warning, "Couldn't instantiate service 'DiscordRichPresence'.", ex); } try { StatusWatcher = new StatusWatcher(this); } catch (Exception ex) { Logger.Log(Severity.Warning, "Couldn't instantiate service 'StatusWatcher'.", ex); } try { CargoWatcher = new CargoWatcher(this); } catch (Exception ex) { Logger.Log(Severity.Warning, "Couldn't instantiate service 'CargoWatcher'.", ex); } try { Status = EliteAPI.Status.GameStatus.FromFile(new FileInfo(JournalDirectory + "//Status.json"), this); } catch (Exception ex) { Logger.Log(Severity.Warning, "Couldn't instantiate service 'Status'.", ex); } try { JournalParser = new JournalParser(this); } catch (Exception ex) { Logger.Log(Severity.Warning, "Couldn't instantiate service 'JournalParser'.", ex); } try { MaterialWatcher = new MaterialWatcher(this); } catch (Exception ex) { Logger.Log(Severity.Warning, "Couldn't instantiate service 'MaterialWatcher'.", ex); } JournalParser.processedLogs = new List <string>(); }
private void OnApplicationFocus(bool focus) { if (focus && locationStatus == LocationStatus.LocationPermissionRequested) { StartCoroutine(EnsureLocationAndroid()); } if (!focus && locationStatus == LocationStatus.LocationPermissionNotAcquired) { if (Application.platform == RuntimePlatform.Android) { locationStatus = LocationStatus.LocationPermissionRequested; } } }
/// <summary> /// 根据地址获取坐标 /// </summary> /// <param name="addr"></param> /// <returns></returns> public static Location GetLocation(string addr) { LocationStatus ls = null; string getStr = HttpUtil.HttpGet(BaiduMapGeocoderUrl, "output=json&address=" + addr); ls = JsonUtil.parse <LocationStatus>(getStr); if (ls != null && ls.result != null && ls.result.location != null) { return(ls.result.location); } else { return(null); } }
public void OnGpsStatusChanged(GpsEvent e) { LocationStatus gpsStatus = LocationStatus.Started; if (e == GpsEvent.Stopped) { gpsStatus = LocationStatus.Stopped; } var handler = LocationStatusChanged; handler?.Invoke(this, new LocationStatusChangedEventArgs() { Status = gpsStatus }); }
private void OnApiLocationChanged(object sender, LocationStatus e) => Dispatcher?.Invoke(() => { if (e.StarSystem != null) { gbStarSystem.Visibility = Visibility.Visible; tbStarSystem_Name.Text = e.StarSystem.Name; tbStarSystem_Population.Text = e.StarSystem.Population.ToString("#,##0"); tbStarSystem_Government.Text = e.StarSystem.Government.ToString(); tbStarSystem_Security.Text = e.StarSystem.Security.ToString(); tbStarSystem_Economy.Text = e.StarSystem.Economy.ToString(); tbStarSystem_SecondaryEconomy.Text = e.StarSystem.SecondEconomy.ToString(); } else { gbStarSystem.Visibility = Visibility.Hidden; } if (e.Body != null) { gbSystemBody.Visibility = Visibility.Visible; tbSystemBody_Type.Text = TextHelper.GetText(e.Body.Type); tbSystemBody_Name.Text = e.Body.Name; } else { gbSystemBody.Visibility = Visibility.Hidden; } if (e.Station != null) { gbStation.Visibility = Visibility.Visible; tbStation_Name.Text = e.Station.Name; tbStation_Type.Text = e.Station.Type.ToString(); tbStation_Government.Text = e.Station.Government.ToString(); tbStation_Economy.Text = e.Station.Economy.ToString(); } else { gbStation.Visibility = Visibility.Hidden; } });
IEnumerator EnsureLocationAndroid() { int maxWait = timeOut > 0 ? timeOut : 20; if (!Permission.HasUserAuthorizedPermission(Permission.FineLocation)) { Logger.Log("User rejected location permission."); initLocationServiceException = new LocationException("User rejected location permission"); yield break;//Exception will be thrown from RetrieveLocation() } else { locationStatus = LocationStatus.LocationPermissionAcquired; Logger.Log("User accepted location permission."); Input.location.Start(); while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) { yield return(new WaitForSeconds(1)); Logger.Log("Initializing Location Service, Exiting " + maxWait); maxWait--; } // Service didn't initialize in before the timeOut threshold if (maxWait < 1) { Logger.Log("Initializing Location Service Timed Out"); Input.location.Stop(); initLocationServiceException = new LocationException("Initializing Location Service Timed Out"); yield break; //Exception will be thrown from RetrieveLocation() } else { if (Input.location.status == LocationServiceStatus.Running) { Logger.Log("Location Service succeded, Stopping LocationService, data saved to Input.location.lastData"); Input.location.Stop(); } yield break; } } }
private async Task SplitterDefaults() { var tasks = new List <Task>(); using (var odw = new OracleDatabaseWorker(tbOracleConnectionStringText)) { List <string> wirecentersids = odw.GetDistinctDataColumn(splitterTable, "CR_SITE_ID"); ; List <string> splitterstatuses = odw.GetDistinctDataColumn(splitterTable, "STATUS"); splitterstatuses.Add("UNKNOWN"); //splitter eqtype var del = new MyDelegate((lst) => { using (var uow = new UnitOfWork(Tsdl)) { var gss = GlobalSystemSettings.GetInstanceFromDatabase(uow); ////////// if (gss.SplitterEquipmentType == null) { var eq = new EquipmentType(uow) { TypeName = "SPLITTER" }; uow.Save(eq); uow.CommitChanges(); gss.SplitterEquipmentType = eq; uow.CommitChanges(); } splitterEquipmentTypeOid = gss.SplitterEquipmentType.Oid; } return(true); }); IAsyncResult sizeres = del.BeginInvoke(null, null, null); await Task.FromResult(sizeres); //status del = new MyDelegate((lst) => { using (var uow = new UnitOfWork(Tsdl)) { foreach (var str in lst .Where(s => s != "" && !uow.Query <LocationStatus>().Select(x => x.StatusName).Contains(s)) ) { LocationStatus cs = new LocationStatus(uow) { StatusName = str }; uow.CommitChanges(); } } return(true); }); IAsyncResult statusres = del.BeginInvoke(splitterstatuses, null, null); await Task.FromResult(statusres); ////wirecenter //del = new MyDelegate((lst) => //{ // using (var uow = new UnitOfWork(Tsdl)) // { // foreach (var str in lst // .Where(s => s != "" && !uow.Query<Wirecenter>().Select(x => x.ExternalSystemId.ToString()).Contains(s)) // ) // { // Wirecenter cs = new Wirecenter(uow) { ExternalSystemId = int.TryParse(str, out int eid) ? eid : 0, LocationName = str, CLLI = str, SourceTable = splitterTable }; // uow.CommitChanges(); // } // } // return true; //}); //IAsyncResult wcres = del.BeginInvoke(wirecentersids, null, null); //await Task.FromResult(wcres); } }
public virtual void IntegrityCheckProc(INItemSiteSummary itemsite, string minPeriod, bool replanBackorders) { using (PXConnectionScope cs = new PXConnectionScope()) { using (PXTransactionScope ts = new PXTransactionScope()) { foreach (INItemPlan p in PXSelectReadonly2 <INItemPlan, LeftJoin <Note, On <Note.noteID, Equal <INItemPlan.refNoteID> > >, Where <INItemPlan.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >, And <INItemPlan.siteID, Equal <Current <INItemSiteSummary.siteID> >, And <Note.noteID, IsNull> > > > .SelectMultiBound(this, new object[] { itemsite })) { PXDatabase.Delete <INItemPlan>(new PXDataFieldRestrict("PlanID", PXDbType.BigInt, 8, p.PlanID, PXComp.EQ)); } foreach (INItemPlan p in PXSelectReadonly2 <INItemPlan, InnerJoin <INRegister, On <INRegister.noteID, Equal <INItemPlan.refNoteID>, And <INRegister.siteID, Equal <INItemPlan.siteID> > > >, Where <INRegister.docType, Equal <INDocType.transfer>, And <INRegister.released, Equal <boolTrue>, And <INItemPlan.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >, And <INItemPlan.siteID, Equal <Current <INItemSiteSummary.siteID> > > > > > > .SelectMultiBound(this, new object[] { itemsite })) { PXDatabase.Delete <INItemPlan>(new PXDataFieldRestrict("PlanID", PXDbType.BigInt, 8, p.PlanID, PXComp.EQ)); } foreach (PXResult <INTranSplit, INRegister, INSite, INItemSite> res in PXSelectJoin <INTranSplit, InnerJoin <INRegister, On <INRegister.docType, Equal <INTranSplit.docType>, And <INRegister.refNbr, Equal <INTranSplit.refNbr> > >, InnerJoin <INSite, On <INSite.siteID, Equal <INRegister.toSiteID> >, LeftJoin <INItemSite, On <INItemSite.inventoryID, Equal <INTranSplit.inventoryID>, And <INItemSite.siteID, Equal <INRegister.toSiteID> > >, LeftJoin <INTran, On <INTran.origTranType, Equal <INTranSplit.tranType>, And <INTran.origRefNbr, Equal <INTranSplit.refNbr>, And <INTran.origLineNbr, Equal <INTranSplit.lineNbr> > > >, LeftJoin <INItemPlan, On <INItemPlan.planID, Equal <INTranSplit.planID> > > > > > >, Where <INRegister.docType, Equal <INDocType.transfer>, And2 <Where <INRegister.released, Equal <boolTrue>, And <INTranSplit.released, Equal <boolTrue>, Or <INRegister.released, Equal <boolFalse> > > >, And <INTranSplit.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >, And <INTranSplit.siteID, Equal <Current <INItemSiteSummary.siteID> >, And <INTranSplit.invtMult, Equal <shortMinus1>, And <INItemPlan.planID, IsNull, And <INTran.refNbr, IsNull> > > > > > > > .SelectMultiBound(this, new object[] { itemsite })) { INTranSplit split = res; INRegister doc = res; if (split.TransferType == INTransferType.OneStep && doc.Released == true) { if (doc.TransferType == INTransferType.OneStep) { doc.TransferType = INTransferType.TwoStep; Caches[typeof(INRegister)].Update(doc); } split.TransferType = INTransferType.TwoStep; } INItemPlan plan = INItemPlanIDAttribute.DefaultValues(this.Caches[typeof(INTranSplit)], res); if (plan.LocationID == null) { plan.LocationID = ((INItemSite)res).DfltReceiptLocationID ?? ((INSite)res).ReceiptLocationID; } plan = (INItemPlan)this.Caches[typeof(INItemPlan)].Insert(plan); split.PlanID = plan.PlanID; Caches[typeof(INTranSplit)].SetStatus(split, PXEntryStatus.Updated); } PXDatabase.Update <INSiteStatus>( new PXDataFieldRestrict <INSiteStatus.inventoryID>(PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ), new PXDataFieldRestrict <INSiteStatus.siteID>(PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ), new PXDataFieldAssign <INSiteStatus.qtyAvail>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyHardAvail>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyNotAvail>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyINIssues>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyINReceipts>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyInTransit>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyINAssemblySupply>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyINAssemblyDemand>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyINReplaned>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyPOPrepared>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyPOOrders>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyPOReceipts>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtySOPrepared>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtySOBooked>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtySOShipped>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtySOShipping>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtySOBackOrdered>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtySOFixed>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyPOFixedOrders>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyPOFixedPrepared>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyPOFixedReceipts>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtySODropShip>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyPODropShipOrders>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyPODropShipPrepared>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyPODropShipReceipts>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INSiteStatus.qtyInTransitToSO>(PXDbType.Decimal, 0m) ); PXDatabase.Update <INLocationStatus>( new PXDataFieldRestrict <INLocationStatus.inventoryID>(PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ), new PXDataFieldRestrict <INLocationStatus.siteID>(PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ), new PXDataFieldAssign <INLocationStatus.qtyAvail>(PXDbType.DirectExpression, "QtyOnHand"), new PXDataFieldAssign <INLocationStatus.qtyHardAvail>(PXDbType.DirectExpression, "QtyOnHand"), new PXDataFieldAssign <INLocationStatus.qtyINIssues>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyINReceipts>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyInTransit>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyINAssemblySupply>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyINAssemblyDemand>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyPOPrepared>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyPOOrders>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyPOReceipts>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtySOPrepared>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtySOBooked>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtySOShipped>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtySOShipping>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtySOBackOrdered>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtySOFixed>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyPOFixedOrders>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyPOFixedPrepared>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyPOFixedReceipts>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtySODropShip>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyPODropShipOrders>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyPODropShipPrepared>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyPODropShipReceipts>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLocationStatus.qtyInTransitToSO>(PXDbType.Decimal, 0m) ); PXDatabase.Update <INLotSerialStatus>( new PXDataFieldRestrict <INLotSerialStatus.inventoryID>(PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ), new PXDataFieldRestrict <INLotSerialStatus.siteID>(PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ), new PXDataFieldAssign <INLotSerialStatus.qtyAvail>(PXDbType.DirectExpression, "QtyOnHand"), new PXDataFieldAssign <INLotSerialStatus.qtyHardAvail>(PXDbType.DirectExpression, "QtyOnHand"), new PXDataFieldAssign <INLotSerialStatus.qtyINIssues>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyINReceipts>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyInTransit>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyINAssemblySupply>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyINAssemblyDemand>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyPOPrepared>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyPOOrders>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyPOReceipts>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtySOPrepared>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtySOBooked>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtySOShipped>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtySOShipping>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtySOBackOrdered>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtySOFixed>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyPOFixedOrders>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyPOFixedPrepared>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyPOFixedReceipts>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtySODropShip>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyPODropShipOrders>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyPODropShipPrepared>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyPODropShipReceipts>(PXDbType.Decimal, 0m), new PXDataFieldAssign <INLotSerialStatus.qtyInTransitToSO>(PXDbType.Decimal, 0m) ); PXDatabase.Update <INItemLotSerial>( new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ), new PXDataFieldAssign("QtyAvail", PXDbType.DirectExpression, "QtyOnHand"), new PXDataFieldAssign("QtyHardAvail", PXDbType.DirectExpression, "QtyOnHand"), new PXDataFieldAssign("QtyINTransit", PXDbType.Decimal, 0m) ); PXDatabase.Update <INSiteLotSerial>( new PXDataFieldRestrict <INSiteLotSerial.inventoryID>(PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ), new PXDataFieldRestrict <INSiteLotSerial.siteID>(PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ), new PXDataFieldAssign <INSiteLotSerial.qtyAvail>(PXDbType.DirectExpression, "QtyOnHand"), new PXDataFieldAssign <INSiteLotSerial.qtyHardAvail>(PXDbType.DirectExpression, "QtyOnHand"), new PXDataFieldAssign <INSiteLotSerial.qtyInTransit>(PXDbType.Decimal, 0m) ); foreach (PXResult <ReadOnlyLocationStatus, INLocation> res in PXSelectJoinGroupBy <ReadOnlyLocationStatus, InnerJoin <INLocation, On <INLocation.locationID, Equal <ReadOnlyLocationStatus.locationID> > >, Where <ReadOnlyLocationStatus.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >, And <ReadOnlyLocationStatus.siteID, Equal <Current <INItemSiteSummary.siteID> > > >, Aggregate <GroupBy <ReadOnlyLocationStatus.inventoryID, GroupBy <ReadOnlyLocationStatus.siteID, GroupBy <ReadOnlyLocationStatus.subItemID, GroupBy <INLocation.inclQtyAvail, Sum <ReadOnlyLocationStatus.qtyOnHand> > > > > > > .SelectMultiBound(this, new object[] { itemsite })) { SiteStatus status = new SiteStatus(); status.InventoryID = ((ReadOnlyLocationStatus)res).InventoryID; status.SubItemID = ((ReadOnlyLocationStatus)res).SubItemID; status.SiteID = ((ReadOnlyLocationStatus)res).SiteID; status = (SiteStatus)sitestatus.Cache.Insert(status); if (((INLocation)res).InclQtyAvail == true) { status.QtyAvail += ((ReadOnlyLocationStatus)res).QtyOnHand; status.QtyHardAvail += ((ReadOnlyLocationStatus)res).QtyOnHand; } else { status.QtyNotAvail += ((ReadOnlyLocationStatus)res).QtyOnHand; } } INPlanType plan60 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan60> > > .Select(this); INPlanType plan61 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan61> > > .Select(this); INPlanType plan70 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan70> > > .Select(this); INPlanType plan74 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan74> > > .Select(this); INPlanType plan76 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan76> > > .Select(this); INPlanType plan42 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan42> > > .Select(this); INPlanType plan44 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan44> > > .Select(this); foreach (PXResult <INItemPlan, INPlanType, SOShipLineSplit, POReceiptLineSplit> res in PXSelectJoin <INItemPlan, InnerJoin <INPlanType, On <INPlanType.planType, Equal <INItemPlan.planType> >, LeftJoin <SOShipLineSplit, On <SOShipLineSplit.planID, Equal <INItemPlan.planID> >, LeftJoin <POReceiptLineSplit, On <POReceiptLineSplit.planID, Equal <INItemPlan.planID> > > > >, Where <INItemPlan.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >, And <INItemPlan.siteID, Equal <Current <INItemSiteSummary.siteID> > > > > .SelectMultiBound(this, new object[] { itemsite })) { INItemPlan plan = (INItemPlan)res; INPlanType plantype = (INPlanType)res; INPlanType locplantype; SOShipLineSplit sosplit = (SOShipLineSplit)res; POReceiptLineSplit posplit = (POReceiptLineSplit)res; if (plan.InventoryID != null && plan.SubItemID != null && plan.SiteID != null) { switch (plan.PlanType) { case INPlanConstants.Plan61: case INPlanConstants.Plan63: locplantype = plantype; if (sosplit.ShipmentNbr != null) { SOOrderType ordetype = PXSelect <SOOrderType, Where <SOOrderType.orderType, Equal <Current <SOShipLineSplit.origOrderType> > > > .SelectSingleBound(this, new object[] { sosplit }); if (plan.OrigPlanType == null) { plan.OrigPlanType = ordetype.OrderPlanType; } if (plan.OrigPlanType == INPlanConstants.Plan60 && sosplit.IsComponentItem != true) { plantype = plantype - plan60; } if ((plan.OrigPlanType == INPlanConstants.Plan61 || plan.OrigPlanType == INPlanConstants.Plan63) && sosplit.IsComponentItem != true) { plantype = plantype - plan61; } } break; case INPlanConstants.Plan71: case INPlanConstants.Plan72: locplantype = plantype; if (posplit.ReceiptNbr == null) { PXDatabase.Delete <INItemPlan>(new PXDataFieldRestrict("PlanID", PXDbType.BigInt, 8, plan.PlanID, PXComp.EQ)); continue; } if (posplit.PONbr != null) { plantype = plantype - plan70; } break; case INPlanConstants.Plan77: locplantype = plantype; if (posplit.ReceiptNbr != null && posplit.PONbr != null) { plantype = plantype - plan76; } break; case INPlanConstants.Plan75: locplantype = plantype; if (posplit.ReceiptNbr != null && posplit.PONbr != null) { plantype = plantype - plan74; } break; case INPlanConstants.Plan43: case INPlanConstants.Plan45: if (plan.OrigPlanType == INPlanConstants.Plan44) { plantype = plantype - plan44; } if (plan.OrigPlanType == INPlanConstants.Plan42) { plantype = plantype - plan42; } locplantype = plantype; break; default: locplantype = plantype; break; } if (plan.LocationID != null) { LocationStatus item = INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <LocationStatus>(this, plan, locplantype, true); INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <SiteStatus>(this, plan, plantype, (bool)item.InclQtyAvail); if (!string.IsNullOrEmpty(plan.LotSerialNbr)) { INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <LotSerialStatus>(this, plan, locplantype, true); INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <ItemLotSerial>(this, plan, locplantype, true); INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <SiteLotSerial>(this, plan, locplantype, true); } } else { INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <SiteStatus>(this, plan, plantype, true); if (!string.IsNullOrEmpty(plan.LotSerialNbr)) { //TODO: check if LotSerialNbr was allocated on OrigPlanType INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <ItemLotSerial>(this, plan, plantype, true); INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <SiteLotSerial>(this, plan, plantype, true); } } } } if (replanBackorders) { INReleaseProcess.ReplanBackOrders(this); initemplan.Cache.Persist(PXDBOperation.Insert); initemplan.Cache.Persist(PXDBOperation.Update); } Caches[typeof(INTranSplit)].Persist(PXDBOperation.Update); sitestatus.Cache.Persist(PXDBOperation.Insert); sitestatus.Cache.Persist(PXDBOperation.Update); locationstatus.Cache.Persist(PXDBOperation.Insert); locationstatus.Cache.Persist(PXDBOperation.Update); lotserialstatus.Cache.Persist(PXDBOperation.Insert); lotserialstatus.Cache.Persist(PXDBOperation.Update); itemlotserial.Cache.Persist(PXDBOperation.Insert); itemlotserial.Cache.Persist(PXDBOperation.Update); sitelotserial.Cache.Persist(PXDBOperation.Insert); sitelotserial.Cache.Persist(PXDBOperation.Update); if (minPeriod != null) { FinPeriod period = PXSelect <FinPeriod, Where <FinPeriod.finPeriodID, Equal <Required <FinPeriod.finPeriodID> > > > .SelectWindowed(this, 0, 1, minPeriod); if (period == null) { return; } DateTime startDate = (DateTime)period.StartDate; PXDatabase.Delete <INItemCostHist>( new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ), new PXDataFieldRestrict("CostSiteID", PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ), new PXDataFieldRestrict("FinPeriodID", PXDbType.Char, 6, minPeriod, PXComp.GE) ); PXDatabase.Delete <INItemSalesHistD>( new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ), new PXDataFieldRestrict("SiteID", PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ), new PXDataFieldRestrict("QtyPlanSales", PXDbType.Decimal, 0m), new PXDataFieldRestrict("SDate", PXDbType.DateTime, 8, startDate, PXComp.GE) ); PXDatabase.Delete <INItemCustSalesStats>( new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ), new PXDataFieldRestrict("SiteID", PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ), new PXDataFieldRestrict("LastDate", PXDbType.DateTime, 8, startDate, PXComp.GE)); PXDatabase.Update <INItemSalesHistD>( new PXDataFieldAssign("QtyIssues", PXDbType.Decimal, 0m), new PXDataFieldAssign("QtyExcluded", PXDbType.Decimal, 0m), new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ), new PXDataFieldRestrict("SiteID", PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ), new PXDataFieldRestrict("SDate", PXDbType.DateTime, 8, startDate, PXComp.GE) ); foreach (INLocation loc in PXSelectReadonly2 <INLocation, InnerJoin <INItemCostHist, On <INItemCostHist.costSiteID, Equal <INLocation.locationID> > >, Where <INLocation.siteID, Equal <Current <INItemSiteSummary.siteID> >, And <INItemCostHist.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> > > > > .SelectMultiBound(this, new object[] { itemsite })) { PXDatabase.Delete <INItemCostHist>( new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ), new PXDataFieldRestrict("CostSiteID", PXDbType.Int, 4, loc.LocationID, PXComp.EQ), new PXDataFieldRestrict("FinPeriodID", PXDbType.Char, 6, minPeriod, PXComp.GE) ); } PXDatabase.Delete <INItemSiteHist>( new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ), new PXDataFieldRestrict("SiteID", PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ), new PXDataFieldRestrict("FinPeriodID", PXDbType.Char, 6, minPeriod, PXComp.GE) ); PXDatabase.Delete <INItemSiteHistD>( new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ), new PXDataFieldRestrict("SiteID", PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ), new PXDataFieldRestrict("SDate", PXDbType.DateTime, 8, startDate, PXComp.GE) ); INTran prev_tran = null; foreach (PXResult <INTran, INTranSplit> res in PXSelectReadonly2 <INTran, InnerJoin <INTranSplit, On <INTranSplit.tranType, Equal <INTran.tranType>, And <INTranSplit.refNbr, Equal <INTran.refNbr>, And <INTranSplit.lineNbr, Equal <INTran.lineNbr> > > > >, Where <INTran.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >, And <INTran.siteID, Equal <Current <INItemSiteSummary.siteID> >, And <INTran.finPeriodID, GreaterEqual <Required <INTran.finPeriodID> >, And <INTran.released, Equal <boolTrue> > > > >, OrderBy <Asc <INTran.tranType, Asc <INTran.refNbr, Asc <INTran.lineNbr> > > > > .SelectMultiBound(this, new object[] { itemsite }, minPeriod)) { INTran tran = res; INTranSplit split = res; if (!Caches[typeof(INTran)].ObjectsEqual(prev_tran, tran)) { INReleaseProcess.UpdateSalesHistD(this, tran); INReleaseProcess.UpdateCustSalesStats(this, tran); prev_tran = tran; } if (split.BaseQty != 0m) { INReleaseProcess.UpdateSiteHist(this, res, split); INReleaseProcess.UpdateSiteHistD(this, split); } } foreach (PXResult <INTran, INTranCost> res in PXSelectReadonly2 <INTran, InnerJoin <INTranCost, On <INTranCost.tranType, Equal <INTran.tranType>, And <INTranCost.refNbr, Equal <INTran.refNbr>, And <INTranCost.lineNbr, Equal <INTran.lineNbr> > > > >, Where <INTran.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >, And <INTran.siteID, Equal <Current <INItemSiteSummary.siteID> >, And <INTranCost.finPeriodID, GreaterEqual <Required <INTran.finPeriodID> >, And <INTran.released, Equal <boolTrue> > > > > > .SelectMultiBound(this, new object[] { itemsite }, minPeriod)) { INReleaseProcess.UpdateCostHist(this, (INTranCost)res, (INTran)res); } itemcosthist.Cache.Persist(PXDBOperation.Insert); itemcosthist.Cache.Persist(PXDBOperation.Update); itemsitehist.Cache.Persist(PXDBOperation.Insert); itemsitehist.Cache.Persist(PXDBOperation.Update); itemsitehistd.Cache.Persist(PXDBOperation.Insert); itemsitehistd.Cache.Persist(PXDBOperation.Update); itemsalehistd.Cache.Persist(PXDBOperation.Insert); itemsalehistd.Cache.Persist(PXDBOperation.Update); itemcustsalesstats.Cache.Persist(PXDBOperation.Insert); itemcustsalesstats.Cache.Persist(PXDBOperation.Update); } ts.Complete(); } sitestatus.Cache.Persisted(false); locationstatus.Cache.Persisted(false); lotserialstatus.Cache.Persisted(false); itemcosthist.Cache.Persisted(false); itemsitehist.Cache.Persisted(false); itemsitehistd.Cache.Persisted(false); } }
/// <summary> /// EnsureLocation Confirm that user location is valid, user location is essential for MobiledgeX services /// If Location permission is denied by User an exception will be thrown once RetrieveLocation() is called /// </summary> public static IEnumerator EnsureLocation() { if (!SystemInfo.supportsLocationService) { Logger.Log("Your Device doesn't support LocationService"); yield break; } #if UNITY_EDITOR locationStatus = LocationStatus.LocationNotSupported; Logger.Log("LocationService is not supported in UNITY_EDITOR"); yield break; #else int timeOutValue = FindObjectOfType <LocationService>().timeOut; int maxWait = timeOutValue > 0 ? timeOutValue : 20; if (Application.platform == RuntimePlatform.IPhonePlayer) { Input.location.Start(); yield return(new WaitForEndOfFrame()); while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) { yield return(new WaitForSeconds(1)); Logger.Log("Initializing Location Service, Exiting " + maxWait); maxWait--; } // Service didn't initialize in before the timeOut threshold if (maxWait < 1) { Logger.Log("Initializing Location Service Timed Out"); initLocationServiceException = new LocationException("Initializing Location Service Timed Out"); yield break;//Exception will be thrown from RetrieveLocation() } else { if (Input.location.status == LocationServiceStatus.Running) { Logger.Log("Location Service succeded, Stopping LocationService, data saved to Input.location.lastData"); Input.location.Stop(); } yield break; } } if (Application.platform == RuntimePlatform.Android) { if (Input.location.isEnabledByUser) { locationStatus = LocationStatus.LocationPermissionAcquired; Input.location.Start(); while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0) { yield return(new WaitForSeconds(1)); Logger.Log("Initializing Location Service, Exiting " + maxWait); maxWait--; } // Service didn't initialize in before the timeOut threshold if (maxWait < 1) { Logger.Log("Initializing Location Service Timed Out"); Input.location.Stop(); initLocationServiceException = new LocationException("Initializing Location Service Timed Out"); yield break;//Exception will be thrown from RetrieveLocation() } if (Input.location.status == LocationServiceStatus.Running) { Logger.Log("Location Service succeded, Stopping LocationService, data saved to Input.location.lastData"); Input.location.Stop(); } yield break; } else { locationStatus = LocationStatus.LocationPermissionNotAcquired; Logger.Log("Location permission is not allowed by user yet."); Permission.RequestUserPermission(Permission.FineLocation); yield return(new WaitForSeconds(1)); // Application Out of focus , waiting for user decision on Location Permission } } #endif }
private async Task Junction_LocationDefaults() { using (var odw = new OracleDatabaseWorker(tbOracleConnectionStringText)) { List <string> boundaries = odw.GetDistinctDataColumn(junkTable, "CITY"); List <string> types = odw.GetListForDataColumn(@"select distinct FINALTYPE from junctions"); List <string> statuses = odw.GetDistinctDataColumn(junkTable, "STATUS"); statuses.Add(UNK); List <string> routes = odw.GetDistinctDataColumn(junkTable, "ROUTE"); //unknjown junction using (var uow = new UnitOfWork(Tsdl)) { var gss = GlobalSystemSettings.GetInstanceFromDatabase(uow); var junc = new Junction(uow) { LocationName = UNK, Status = gss.DefaultLocationStatusActive }; uow.CommitChanges(); } //routes var del = new MyDelegate((lst) => { using (var uow = new UnitOfWork(Tsdl)) { foreach (var str in lst .Where(s => s != "")) { if (!uow.Query <Route>().Any(x => x.Name == str)) { Route cs = new Route(uow) { Name = str }; uow.CommitChanges(); } } } return(true); }); IAsyncResult routeres = del.BeginInvoke(routes, null, null); await Task.FromResult(routes); //boundaries del = new MyDelegate((lst) => { using (var uow = new UnitOfWork(Tsdl)) { foreach (var str in lst .Where(s => s != "")) { if (!string.IsNullOrWhiteSpace(str) && !uow.Query <Boundary>().Any(x => x.Name == str)) { Boundary cs = new Boundary(uow) { Name = str }; uow.CommitChanges(); } } } return(true); }); IAsyncResult boundres = del.BeginInvoke(boundaries, null, null); await Task.FromResult(boundres); //type del = new MyDelegate((lst) => { using (var uow = new UnitOfWork(Tsdl)) { foreach (var str in lst .Where(s => s != "")) { if (!uow.Query <JunctionType>().Any(x => x.TypeName == str)) { JunctionType cs = new JunctionType(uow) { TypeName = str, TypeDescription = str }; uow.CommitChanges(); } } } return(true); }); IAsyncResult typeres = del.BeginInvoke(types, null, null); await Task.FromResult(typeres); // status del = new MyDelegate((lst) => { using (var uow = new UnitOfWork(Tsdl)) { foreach (var str in lst .Where(s => s != "")) { if (!uow.Query <LocationStatus>().Any(x => x.StatusName == str)) { LocationStatus cs = new LocationStatus(uow) { StatusName = str, StatusDescription = str }; uow.CommitChanges(); } } } return(true); }); IAsyncResult statusres = del.BeginInvoke(statuses, null, null); await Task.FromResult(statusres); }//using odw }