public override void ReadDataRow(DataRow PropRow, Dictionary <string, Int32> NodeMap, Dictionary <Int32, Int32> NodeTypeMap)
        {
            string StringVal = CswTools.XmlRealAttributeName(PropRow[_QuantitySubField.ToXmlNodeName()].ToString());

            if (CswTools.IsFloat(StringVal))
            {
                Quantity = Convert.ToDouble(StringVal);
            }
            CachedUnitName = CswTools.XmlRealAttributeName(PropRow[_UnitNameSubField.ToXmlNodeName()].ToString());

            string NodeId = CswTools.XmlRealAttributeName(PropRow[_UnitIdSubField.ToXmlNodeName()].ToString());

            if (NodeMap != null && NodeMap.ContainsKey(NodeId.ToLower()))
            {
                UnitId = new CswPrimaryKey("nodes", NodeMap[NodeId.ToLower()]);
            }
            else if (CswTools.IsInteger(NodeId))
            {
                UnitId = new CswPrimaryKey("nodes", CswConvert.ToInt32(NodeId));
            }
            else
            {
                UnitId = null;
            }

            if (null != UnitId)
            {
                PendingUpdate = true;
            }
        }
Example #2
0
        /// <summary>
        /// Changes a checkbox for a particular set of values
        /// </summary>
        public void SetValue(string XValue, string YValue, bool Checked)
        {
            XmlNode YValueNode = LogicalSetXmlDoc.ChildNodes[0].SelectSingleNode("YValue[@y='" + CswTools.XPathSafeParameter(YValue) + "']");

            if (YValueNode == null)
            {
                YValueNode = LogicalSetXmlDoc.CreateElement("YValue");
                XmlAttribute YAttribute = LogicalSetXmlDoc.CreateAttribute("y");
                YAttribute.Value = CswTools.XPathSafeParameter(YValue);
                YValueNode.Attributes.Append(YAttribute);
                LogicalSetXmlDoc.ChildNodes[0].AppendChild(YValueNode);
            }

            XmlNode XValueNode = YValueNode.SelectSingleNode(XValue);

            if (XValueNode == null)
            {
                XValueNode = LogicalSetXmlDoc.CreateElement(XValue);
                YValueNode.AppendChild(XValueNode);
            }

            if (Checked)
            {
                XValueNode.InnerText = "1";
            }
            else
            {
                XValueNode.InnerText = "0";
            }
        }
        public CswNbtNode GetNode(string NodeId, string NodeKey, CswDateTime Date = null)
        {
            CswNbtNode Node = null;

            if (!string.IsNullOrEmpty(NodeKey))
            {
                //CswNbtNodeKey RealNodeKey = new CswNbtNodeKey( CswNbtResources, FromSafeJavaScriptParam( NodeKey ) );
                CswNbtNodeKey RealNodeKey = new CswNbtNodeKey(NodeKey);
                Node = _CswNbtResources.getNode(RealNodeKey, Date);
            }
            else if (!string.IsNullOrEmpty(NodeId))
            {
                CswPrimaryKey RealNodeId = new CswPrimaryKey();
                if (CswTools.IsInteger(NodeId))
                {
                    RealNodeId.TableName  = "nodes";
                    RealNodeId.PrimaryKey = CswConvert.ToInt32(NodeId);
                }
                else
                {
                    RealNodeId.FromString(NodeId);
                }
                Node = _CswNbtResources.getNode(RealNodeId, Date);
            }
            return(Node);
        } // getNode()
        public static void getUserDefaults(ICswResources CswResources, CswNbtAuthReturn Ret, object Request)
        {
            CswNbtResources NbtResources = (CswNbtResources)CswResources;

            if (CswTools.IsPrimaryKey(NbtResources.CurrentNbtUser.DefaultLocationId))
            {
                Ret.Data.DefaultLocationId = NbtResources.CurrentNbtUser.DefaultLocationId.ToString();
            }
            if (CswTools.IsPrimaryKey(NbtResources.CurrentNbtUser.DefaultPrinterId))
            {
                Ret.Data.DefaultPrinterId = NbtResources.CurrentNbtUser.DefaultPrinterId.ToString();
            }
            if (CswTools.IsPrimaryKey(NbtResources.CurrentNbtUser.DefaultBalanceId))
            {
                Ret.Data.DefaultBalanceId = NbtResources.CurrentNbtUser.DefaultBalanceId.ToString();
            }
            if (CswTools.IsPrimaryKey(NbtResources.CurrentNbtUser.JurisdictionId))
            {
                Ret.Data.JurisdictionId = NbtResources.CurrentNbtUser.JurisdictionId.ToString();
            }
            if (CswTools.IsPrimaryKey(NbtResources.CurrentNbtUser.CurrentWorkUnitId))
            {
                Ret.Data.WorkUnitId = NbtResources.CurrentNbtUser.CurrentWorkUnitId.ToString();
            }
            Ret.Data.DateFormatDn = NbtResources.CurrentNbtUser.DateFormat;
            Ret.Data.TimeFormatDn = NbtResources.CurrentNbtUser.TimeFormat;
            Ret.Data.DateFormatJs = CswTools.ConvertNetToPHP(NbtResources.CurrentNbtUser.DateFormat);
            Ret.Data.TimeFormatJs = CswTools.ConvertNetToPHP(NbtResources.CurrentNbtUser.TimeFormat);
        }
Example #5
0
        /// <summary>
        /// Updates the default Expiration Date on containers to receive based on Receipt Lot's Manufactured Date
        /// </summary>
        public ContainerData.ReceivingData updateExpirationDate(ContainerData.ReceiptLotRequest Request)
        {
            ContainerData.ReceivingData ReceiveData = new ContainerData.ReceivingData();
            JObject ReceiptLotPropsObj = CswConvert.ToJObject(Request.ReceiptLotProps);

            if (ReceiptLotPropsObj.HasValues)
            {
                CswPrimaryKey ReceiptLotId = CswConvert.ToPrimaryKey(Request.ReceiptLotId);
                if (CswTools.IsPrimaryKey(ReceiptLotId))
                {
                    CswNbtObjClassReceiptLot ReceiptLot = _CswNbtResources.Nodes.GetNode(ReceiptLotId);
                    _CswNbtSdTabsAndProps.saveNodeProps(ReceiptLot.Node, ReceiptLotPropsObj);
                    CswPrimaryKey ContainerId = CswConvert.ToPrimaryKey(Request.ContainerId);
                    if (CswTools.IsPrimaryKey(ContainerId) &&
                        ReceiptLot.ManufacturedDate.DateTimeValue != DateTime.MinValue)
                    {
                        CswNbtObjClassContainer   Container = _CswNbtResources.Nodes.GetNode(ContainerId);
                        CswNbtPropertySetMaterial Material  = _CswNbtResources.Nodes.GetNode(Container.Material.RelatedNodeId);
                        Container.ExpirationDate.DateTimeValue = Material.getDefaultExpirationDate(ReceiptLot.ManufacturedDate.DateTimeValue);
                        Container.postChanges(false);
                        JObject ContainerProps = getContainerAddProps(Container);
                        ReceiveData.ContainerProps = ContainerProps.ToString();
                    }
                }
            }
            return(ReceiveData);
        }
Example #6
0
 private void OnCompanyIdPropChange( CswNbtNodeProp NodeProp, bool Creating )
 {
     if ( false == CswTools.IsValidUsername( CompanyID.Text ) )
     {
         throw new CswDniException( CswEnumErrorType.Warning, "The suppplied CustomerId is not in a valid format.", "CustomerId: {" + CompanyID.Text + "} is not well-formed." );
     }
 }
        /// <summary>
        /// Finalize the new Material
        /// </summary>
        public JObject commitMaterial(string MaterialDefinition)
        {
            JObject RetObj = new JObject();

            JObject MaterialObj = CswConvert.ToJObject(MaterialDefinition);

            if (MaterialObj.HasValues)
            {
                JArray        SizesArray = CswConvert.ToJArray(MaterialObj["sizeNodes"]);
                CswPrimaryKey MaterialId = new CswPrimaryKey();
                MaterialId.FromString(CswConvert.ToString(MaterialObj["materialId"]));
                if (CswTools.IsPrimaryKey(MaterialId))
                {
                    CswNbtNode MaterialNode = _CswNbtResources.Nodes[MaterialId];
                    if (null != MaterialNode)
                    {
                        /* 1. Validate the new material and get its properties */
                        MaterialNode = _commitMaterialNode(MaterialObj);
                        RetObj["createdmaterial"] = true;

                        /* 2. Add the sizes */
                        if (_CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.Containers))
                        {
                            SizesArray = _removeDuplicateSizes(SizesArray);
                            _addMaterialSizes(SizesArray, MaterialNode);
                            RetObj["sizescount"] = SizesArray.Count;
                        }

                        /* 3. Add landingpage data */
                        RetObj["landingpagedata"] = _getLandingPageData(MaterialNode);
                    }
                }
            }
            return(RetObj);
        }
Example #8
0
        private void _updateAvailableWorkUnits()
        {
            //Case 30817 (Case 30843: moved to here from onBeforeCreate)
            if (CswTools.IsPrimaryKey(CurrentWorkUnitId) &&
                false == AvailableWorkUnits.CheckValue(CurrentWorkUnitId.ToString()))
            {
                AvailableWorkUnits.AddValue(CurrentWorkUnitId.ToString());
                CurrentWorkUnitProperty.RelatedNodeId = CurrentWorkUnitId;
                CurrentWorkUnitProperty.SyncGestalt();
            }

            CswNbtView View = _CswNbtResources.ViewSelect.restoreView(CurrentWorkUnitProperty.NodeTypeProp.ViewId);

            View.Clear();
            View.SetVisibility(CswEnumNbtViewVisibility.Property, null, null);

            CswNbtMetaDataObjectClass WorkUnitOC     = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.WorkUnitClass);
            CswNbtViewRelationship    WorkUnitParent = View.AddViewRelationship(WorkUnitOC, false);

            foreach (string WorkUnitNodeId in AvailableWorkUnits.Value)
            {
                CswPrimaryKey pk = CswConvert.ToPrimaryKey(WorkUnitNodeId);
                WorkUnitParent.NodeIdsToFilterIn.Add(pk);
            }

            CurrentWorkUnitProperty.OverrideView(View);
        }
        public static void getReportInfo( ICswResources CswResources, CswNbtWebServiceReport.ReportReturn Return, CswNbtWebServiceReport.ReportData reportParams )
        {
            CswNbtResources NBTResources = (CswNbtResources) CswResources;
            reportParams.ReportNode = NBTResources.Nodes[reportParams.NodeId];
            if( null != reportParams.ReportNode )
            {
                reportParams.doesSupportCrystal = ( false == reportParams.ReportNode.RPTFile.Empty );

                CswNbtNode SourceNode = null;
                if( CswTools.IsPrimaryKey( reportParams.SourceId ) )
                {
                    SourceNode = NBTResources.Nodes[reportParams.SourceId];
                }

                reportParams.reportParams = new Collection<ReportData.ReportParam>();
                foreach( var paramPair in reportParams.ReportNode.ExtractReportParams( NBTResources.Nodes[NBTResources.CurrentNbtUser.UserId], SourceNode ) )
                {
                    ReportData.ReportParam paramObj = new ReportData.ReportParam();
                    paramObj.name = paramPair.Key;
                    paramObj.value = paramPair.Value;
                    reportParams.reportParams.Add( paramObj );
                }
            }
            Return.Data = reportParams;
        }
Example #10
0
 private void onRolePropChange(CswNbtNodeProp NodeProp, bool Creating)
 {
     if (null != _CswNbtResources.CurrentNbtUser &&
         CswTools.IsPrimaryKey(Role.RelatedNodeId) &&
         Role.RelatedNodeId.PrimaryKey != CswConvert.ToInt32(Role.GetOriginalPropRowValue(CswEnumNbtPropColumn.Field1_FK)))
     {
         if (false == _CswNbtResources.CurrentNbtUser.IsAdministrator())
         {
             throw new CswDniException(CswEnumErrorType.Warning, "Only Administrators can change user roles",
                                       "Current user (" + _CswNbtResources.CurrentUser.Username +
                                       ") attempted to edit a user role.");
         }
         if (this.Username != ChemSWAdminUsername &&
             ((CswNbtObjClassRole)_CswNbtResources.Nodes[Role.RelatedNodeId]).Name.Text ==
             CswNbtObjClassRole.ChemSWAdminRoleName)
         {
             throw new CswDniException(CswEnumErrorType.Warning,
                                       "New users may not be assigned to the '" +
                                       CswNbtObjClassRole.ChemSWAdminRoleName + "' role",
                                       "Current user (" + _CswNbtResources.CurrentUser.Username +
                                       ") attempted to assign a new user to the '" +
                                       CswNbtObjClassRole.ChemSWAdminRoleName + "' role.");
         }
     }
 }
Example #11
0
        public void OnCurrentWorkUnitPropertyChange(CswNbtNodeProp Prop, bool Creating)
        {
            CswPrimaryKey UsersCurrentWorkUnitId = CurrentWorkUnitId;

            //Case 30817
            //if( null != UsersWorkUnitId )
            if (false == CswTools.IsPrimaryKey(UsersCurrentWorkUnitId))
            {
                UsersCurrentWorkUnitId = GetFirstAvailableWorkUnitNodeId();
            }

            if (false == AvailableWorkUnits.CheckValue(UsersCurrentWorkUnitId.ToString()))
            {
                if (false == _CswNbtResources.CurrentNbtUser is CswNbtSystemUser &&
                    _CswNbtResources.CurrentNbtUser.Username != ChemSWAdminUsername)
                {
                    throw new CswDniException(CswEnumErrorType.Warning,
                                              CurrentWorkUnitProperty.CachedNodeName +
                                              " is not an available Work Unit for user " + Username,
                                              _CswNbtResources.CurrentNbtUser.Username + " attempted to assign User: "******" to Work Unit: " + UsersCurrentWorkUnitId +
                                              " when Users available Work Units are: " + AvailableWorkUnits.Value);
                }
                // We add the work unit to the list and then check it!
                AvailableWorkUnits.AddValue(UsersCurrentWorkUnitId.ToString());
                CurrentWorkUnitProperty.RelatedNodeId = UsersCurrentWorkUnitId;
                CurrentWorkUnitProperty.SyncGestalt();

                _updateAvailableWorkUnits();
            }
        }
Example #12
0
        public static bool IsUserNameUnique(CswNbtResources Resources, string UserName)
        {
            CswNbtObjClassUser ExistingUserNode = Resources.Nodes.makeUserNodeFromUsername(UserName);

            return(null == ExistingUserNode ||
                   false == CswTools.IsPrimaryKey(ExistingUserNode.NodeId));
        }
Example #13
0
        public void onBeforeWriteDesignNode(CswNbtObjClassDesignNodeTypeProp DesignNTPNode)
        {
            // Copy value of 'Add To Template' to the Template
            CswNbtNodePropText         TemplateProp      = DesignNTPNode.AttributeProperty[AttributeName.Template].AsText;
            CswNbtNodePropRelationship AddToTemplateProp = DesignNTPNode.AttributeProperty[AttributeName.AddToTemplate].AsRelationship;

            if (CswTools.IsPrimaryKey(AddToTemplateProp.RelatedNodeId))
            {
                CswNbtObjClassDesignNodeTypeProp SelectedProp = _CswNbtFieldResources.CswNbtResources.Nodes[AddToTemplateProp.RelatedNodeId];
                if (null != SelectedProp)
                {
                    string newTemplate = TemplateProp.Text;
                    if (false == string.IsNullOrEmpty(newTemplate))
                    {
                        newTemplate += " ";
                    }
                    newTemplate      += CswNbtMetaData.MakeTemplateEntry(SelectedProp.RelationalNodeTypeProp.FirstPropVersionId.ToString());
                    TemplateProp.Text = newTemplate;

                    // Clear the selected value
                    AddToTemplateProp.RelatedNodeId  = null;
                    AddToTemplateProp.CachedNodeName = string.Empty;
                    AddToTemplateProp.PendingUpdate  = false;
                } // if( null != SelectedProp )
            }     // if( CswTools.IsPrimaryKey( AddToTemplateProp.RelatedNodeId ) )
        }
Example #14
0
 protected override void beforeWriteNodeLogic(bool Creating, bool OverrideUniqueValidation)
 {
     if (CswEnumTristate.False == this.QuantityEditable.Checked && false == CswTools.IsDouble(this.InitialQuantity.Quantity))
     {
         throw new CswDniException(CswEnumErrorType.Warning, "Cannot have a null Initial Quantity if Quantity Editable is unchecked.", "Cannot have a null Initial Quantity if Quantity Editable is unchecked.");
     }
 }//beforeWriteNode()
 private void OnOwnerPropChange( CswNbtNodeProp NodeProp, bool Creating )
 {
     if( CswTools.IsPrimaryKey( Owner.RelatedNodeId ) )
     {
         archiveMatchingDocs();
     }
 }
        } // LoadReport()


        private static string _saveCrystalReport( CswNbtResources CswNbtResources, string ReportTempFileName, string ReportName, DataTable ReportTable )
        {
            CswTempFile TempFile = new CswTempFile( CswNbtResources );
            string DestinationFileName = DateTime.Now.Ticks + "_" + CswTools.SafeFileName( ReportName ) + ".pdf";
            string DestFilePath, DestWebPath;
            TempFile.getFullTempFilePath( DestinationFileName, out DestFilePath, out DestWebPath );

            DiskFileDestinationOptions dFileDOpts = new DiskFileDestinationOptions();
            dFileDOpts.DiskFileName = DestFilePath;

            ReportDocument oRD = new ReportDocument();
            oRD.Load( ReportTempFileName );
            oRD.SetDataSource( ReportTable );

            ExportOptions eOpts = new ExportOptions();
            eOpts = oRD.ExportOptions;
            eOpts.ExportDestinationType = ExportDestinationType.DiskFile;
            eOpts.ExportFormatType = ExportFormatType.PortableDocFormat;
            eOpts.DestinationOptions = dFileDOpts;

            oRD.Export();
            oRD.Close();

            return DestWebPath;
        }
Example #17
0
        public CswNbtNodePropViewReference(CswNbtResources CswNbtResources, CswNbtNodePropData CswNbtNodePropData, CswNbtMetaDataNodeTypeProp CswNbtMetaDataNodeTypeProp, CswNbtNode Node)
            : base(CswNbtResources, CswNbtNodePropData, CswNbtMetaDataNodeTypeProp, Node)
        {
            _ViewIdSubField         = ((CswNbtFieldTypeRuleViewReference)_FieldTypeRule).ViewIdSubField;
            _CachedViewNameSubField = ((CswNbtFieldTypeRuleViewReference)_FieldTypeRule).CachedViewNameSubField;


            // Associate subfields with methods on this object, for SetSubFieldValue()
            _SubFieldMethods.Add(_ViewIdSubField.Name, new Tuple <Func <dynamic>, Action <dynamic> >(() => ViewId,
                                                                                                     x =>
            {
                if (CswTools.IsInteger(x))
                {
                    ViewId = new CswNbtViewId(CswConvert.ToInt32(x));
                }
                else if (x is CswNbtViewId)
                {
                    ViewId = x;
                }
                else if (string.IsNullOrEmpty(x))
                {
                    ViewId = null;
                }
                else
                {
                    throw new CswDniException(CswEnumErrorType.Error, "Invalid parameter", "CswNbtNodePropViewReference got an invalid parameter for setting ViewId: " + x.ToString());
                }
            }));
            _SubFieldMethods.Add(_CachedViewNameSubField.Name, new Tuple <Func <dynamic>, Action <dynamic> >(() => CachedViewName, x => CachedViewName = CswConvert.ToString(x)));
        }
 public override void ReadDataRow(DataRow PropRow, Dictionary <string, Int32> NodeMap, Dictionary <Int32, Int32> NodeTypeMap)
 {
     if (PropRow.Table.Columns.Contains(_LowerSubField.ToXmlNodeName()))
     {
         string Val = CswTools.XmlRealAttributeName(PropRow[_LowerSubField.ToXmlNodeName()].ToString());
         if (Val != string.Empty)
         {
             Lower = Convert.ToDouble(PropRow[_LowerSubField.ToXmlNodeName()].ToString());
         }
     }
     if (PropRow.Table.Columns.Contains(_TargetSubField.ToXmlNodeName()))
     {
         string Val = CswTools.XmlRealAttributeName(PropRow[_TargetSubField.ToXmlNodeName()].ToString());
         if (Val != string.Empty)
         {
             Target = Convert.ToDouble(PropRow[_TargetSubField.ToXmlNodeName()].ToString());
         }
     }
     if (PropRow.Table.Columns.Contains(_UpperSubField.ToXmlNodeName()))
     {
         string Val = CswTools.XmlRealAttributeName(PropRow[_UpperSubField.ToXmlNodeName()].ToString());
         if (Val != string.Empty)
         {
             Upper = Convert.ToDouble(PropRow[_UpperSubField.ToXmlNodeName()].ToString());
         }
     }
     if (PropRow.Table.Columns.Contains(_LowerInclusiveSubField.ToXmlNodeName()))
     {
         LowerInclusive = CswConvert.ToBoolean(CswTools.XmlRealAttributeName(PropRow[_LowerInclusiveSubField.ToXmlNodeName()].ToString()));
     }
     if (PropRow.Table.Columns.Contains(_UpperInclusiveSubField.ToXmlNodeName()))
     {
         UpperInclusive = CswConvert.ToBoolean(CswTools.XmlRealAttributeName(PropRow[_UpperInclusiveSubField.ToXmlNodeName()].ToString()));
     }
 }
        /// <summary>
        /// Makes a temporary node of the Chemical nodetype. The reason we can't use createMaterial()
        /// is because we don't have the any properties to provide to the method and tradename,
        /// material type, and supplier are required.
        /// </summary>
        /// <param name="NodeId"></param>
        /// <returns></returns>
        public CswPrimaryKey makeTemp(string NodeId)
        {
            CswPrimaryKey Ret = new CswPrimaryKey();

            CswPrimaryKey NodePk = CswConvert.ToPrimaryKey(NodeId);

            if (false == CswTools.IsPrimaryKey(NodePk))    //node doesn't exist
            {
                CswNbtMetaDataObjectClass ChemicalOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ChemicalClass);
                CswNbtMetaDataNodeType    ChemicalNT = ChemicalOC.FirstNodeType;
                if (null != ChemicalNT)
                {
                    CswNbtPropertySetMaterial NewMaterialTempNode = _CswNbtResources.Nodes.makeNodeFromNodeTypeId(ChemicalNT.NodeTypeId, IsTemp: true);
                    if (null != NewMaterialTempNode)
                    {
                        Ret = NewMaterialTempNode.Node.NodeId;
                    }
                }
            }
            else //node exists
            {
                Ret = NodePk;
            }

            return(Ret);
        }
Example #20
0
        public override void update()
        {
            // This fixes what CswUpdateSchema_02G_Case30473 failed to do correctly

            CswNbtMetaDataObjectClass GhsOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.GHSClass );
            foreach( CswNbtMetaDataNodeType GhsNT in GhsOC.getNodeTypes() )
            {
                foreach( CswNbtObjClassGHS GhsNode in GhsNT.getNodes( false, true ) )
                {
                    CswDelimitedString oldVals = GhsNode.Pictograms.Value;
                    CswDelimitedString newVals = new CswDelimitedString( CswNbtNodePropImageList.Delimiter );
                    foreach( string oldVal in oldVals )
                    {
                        if( oldVal.IndexOf( "/ghs/" ) >= 0 )
                        {
                            char testChar = oldVal[( oldVal.IndexOf( "/ghs/" ) + "/ghs/".Length )];
                            string newVal;
                            if( CswTools.IsNumeric( testChar ) )
                            {
                                newVal = oldVal.Replace( "/ghs/600/", "/ghs/512/" );
                            }
                            else
                            {
                                newVal = oldVal.Replace( "/ghs/", "/ghs/512/" );
                            }
                            newVals.Add( newVal );
                        }
                    }
                    GhsNode.Pictograms.Value = newVals;
                    GhsNode.postChanges( false );
                } // foreach( CswNbtObjClassGHS GhsNode in GhsNT.getNodes( false, true ) )
            } // foreach( CswNbtMetaDataNodeType GhsNT in GhsOC.getNodeTypes() )

        } // update()
Example #21
0
        protected override void afterPromoteNodeLogic()
        {
            // ------------------------------------------------------------
            // This logic from makeNewTab in CswNbtMetaData.cs
            // ------------------------------------------------------------
            if (CswTools.IsPrimaryKey(RelationalId))
            {
                Int32 TabId = RelationalId.PrimaryKey;

                //CswTableUpdate TabsUpdate = _CswNbtResources.makeCswTableUpdate( "DesignNodeTypeTab_afterCreateNode_TabsUpdate", "nodetype_tabset" );
                //DataTable TabsTable = TabsUpdate.getTable( "nodetypetabsetid", TabId );
                //if( TabsTable.Rows.Count > 0 )
                //{

                // Version, if necessary
                //NodeType = CheckVersioning( NodeType );

                //DataRow Row = TabsTable.Rows[0];
                DataRow Row = RelationalNodeTypeTab._DataRow;
                if (null != Row)
                {
                    Row["firsttabversionid"] = CswConvert.ToDbVal(TabId);
                    //TabsUpdate.update( TabsTable );
                }

                CswNbtMetaDataNodeTypeProp SaveNtp = NodeType.getNodeTypeProp(CswNbtObjClass.PropertyName.Save);
                if (null != SaveNtp)  //Case 29181 - Save prop on new tabs
                {
                    //Note - when first creating a new NodeType and creating its first tab this will be null, which is expected
                    SaveNtp.updateLayout(CswEnumNbtLayoutType.Edit, false, TabId: TabId, DisplayColumn: 1, DisplayRow: Int32.MaxValue);
                }
                //} // if( TabsTable.Rows.Count > 0 )
            } // if( CswTools.IsPrimaryKey( RelationalId ) )
        }     // afterPromoteNode()
        public override void update()
        {
            // Fix existing barcode values
            CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.LocationClass );
            foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() )
            {
                foreach( CswNbtObjClassLocation LocationNode in LocationNT.getNodes( false, false ) )
                {
                    if( false == LocationNode.Barcode.Barcode.StartsWith( "LS" ) )
                    {
                        LocationNode.Barcode.setBarcodeValue( OverrideExisting: true );
                    }
                    if( LocationNode.Barcode.SequenceNumber == Int32.MinValue )
                    {
                        LocationNode.Barcode.resetSequenceNumber();
                    }
                    if( LocationNode.Barcode.Barcode.Length < 8 )
                    {
                        string NewBarcodeValue = "LS" + CswTools.PadInt( CswConvert.ToInt32( LocationNode.Barcode.SequenceNumber ), 6 );
                        LocationNode.Barcode.setBarcodeValueOverride( NewBarcodeValue, false );
                    }
                    LocationNode.postChanges( false );
                } // foreach( CswNbtObjClassLocation LocationNode in LocationNT.getNodes( false, false ) )
            } // foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() )

        } //Update()
        public override void update()
        {
            CswNbtMetaDataFieldType QuantityFT = _CswNbtSchemaModTrnsctn.MetaData.getFieldType(CswEnumNbtFieldType.Quantity);
            CswTableUpdate          QtyUpdate  = _CswNbtSchemaModTrnsctn.makeCswTableUpdate("QuantityVal_kgLiters_Update", "jct_nodes_props");
            DataTable QtyPropsTable            = QtyUpdate.getTable("where nodetypepropid in (select nodetypepropid from nodetype_props where fieldtypeid = " + QuantityFT.FieldTypeId + ") ");

            foreach (DataRow Row in QtyPropsTable.Rows)
            {
                CswPrimaryKey UnitId = new CswPrimaryKey("nodes", CswConvert.ToInt32(Row["field1_fk"].ToString()));
                CswNbtObjClassUnitOfMeasure CurrentUnit = _CswNbtSchemaModTrnsctn.Nodes[UnitId];
                if (null != CurrentUnit &&
                    (CurrentUnit.UnitType.Value == CswEnumNbtUnitTypes.Weight.ToString() ||
                     CurrentUnit.UnitType.Value == CswEnumNbtUnitTypes.Volume.ToString()))
                {
                    Double Quantity = CswConvert.ToDouble(Row["field1_numeric"].ToString());
                    if (CswTools.IsDouble(Quantity))
                    {
                        CswNbtObjClassUnitOfMeasure kgUnit     = getUnit("kg", "Unit_Weight");
                        CswNbtObjClassUnitOfMeasure LitersUnit = getUnit("Liters", "Unit_Volume");
                        if (null != kgUnit && CurrentUnit.UnitType.Value == kgUnit.UnitType.Value)
                        {
                            Double Val_kg = Quantity * CurrentUnit.ConversionFactor.RealValue / kgUnit.ConversionFactor.RealValue;
                            Row["field2_numeric"] = Val_kg.ToString();
                        }
                        if (null != LitersUnit && CurrentUnit.UnitType.Value == LitersUnit.UnitType.Value)
                        {
                            Double Val_Liters = Quantity * CurrentUnit.ConversionFactor.RealValue / LitersUnit.ConversionFactor.RealValue;
                            Row["field3_numeric"] = Val_Liters.ToString();
                        }
                    }
                }
            }
            QtyUpdate.update(QtyPropsTable);
        }
Example #24
0
        public void _RegulatoryList_OnChange(CswNbtNodeProp Prop, bool Creating)
        {
            if (null != RegulatoryList.RelatedNodeId &&
                RegulatoryList.RelatedNodeId.PrimaryKey != CswConvert.ToInt32(RegulatoryList.GetOriginalPropRowValue(CswNbtFieldTypeRuleRelationship.SubFieldName.NodeID)))
            {
                // case 28303 - set ByUser to current user when regulatory list is modified
                if (false == SetByChemical && false == _CswNbtResources.CurrentNbtUser is CswNbtSystemUser)
                {
                    ByUser.RelatedNodeId = _CswNbtResources.CurrentNbtUser.UserId;

                    // case 28303 - remove list from Chemical's Suppressed list
                    if (CswTools.IsPrimaryKey(Chemical.RelatedNodeId))
                    {
                        CswNbtObjClassChemical ChemicalNode = _CswNbtResources.Nodes[Chemical.RelatedNodeId];
                        if (null != ChemicalNode)
                        {
                            if (ChemicalNode.isRegulatoryListSuppressed(RegulatoryList.RelatedNodeId))    // important to prevent an infinite loop
                            {
                                ChemicalNode.removeSuppressedRegulatoryList(RegulatoryList.RelatedNodeId);
                                ChemicalNode.postChanges(false);
                            }
                        }
                    }
                }
            }
        } // _RegulatoryList_OnChange()
Example #25
0
 public override void ReadDataRow(DataRow PropRow, Dictionary <string, Int32> NodeMap, Dictionary <Int32, Int32> NodeTypeMap)
 {
     Red    = CswTools.XmlRealAttributeName(PropRow[_RedSubField.ToXmlNodeName()].ToString());
     Yellow = CswTools.XmlRealAttributeName(PropRow[_YellowSubField.ToXmlNodeName()].ToString());
     Blue   = CswTools.XmlRealAttributeName(PropRow[_BlueSubField.ToXmlNodeName()].ToString());
     White  = CswTools.XmlRealAttributeName(PropRow[_WhiteSubField.ToXmlNodeName()].ToString());
 }
        /// <summary>
        /// Determines if a set of values are valid for unit conversion.
        /// </summary>
        private void _validateValuesForConversion(Double ValueToConvert, Double OldConversionFactor, Double NewConversionFactor, Double SpecificGravity)
        {
            string ErrorMessage = String.Empty;

            if (false == CswTools.IsDouble(ValueToConvert))
            {
                ErrorMessage = "Value to convert is undefined: " + ValueToConvert;
            }
            else if (false == CswTools.IsDouble(OldConversionFactor) || OldConversionFactor <= 0)
            {
                ErrorMessage = "Current unit's conversion factor is invalid: " + OldConversionFactor;
            }
            else if (false == CswTools.IsDouble(NewConversionFactor) || NewConversionFactor <= 0)
            {
                ErrorMessage = "New unit's conversion factor is invalid: " + NewConversionFactor;
            }
            else if (false == CswTools.IsDouble(SpecificGravity) || SpecificGravity <= 0)
            {
                ErrorMessage = "Material's specific gravity is invalid: " + SpecificGravity;
            }
            if (false == String.IsNullOrEmpty(ErrorMessage))
            {
                throw new CswDniException(CswEnumErrorType.Warning, ErrorMessage, "Unit conversion failed.");
            }
        }
Example #27
0
 public void saveContainerActions(ContainerData.ReconciliationRequest Request)
 {
     if (null != Request.ContainerActions)
     {
         foreach (ContainerData.ReconciliationActions Action in Request.ContainerActions)
         {
             if (Action.Action == CswEnumNbtContainerLocationActionOptions.MarkMissing.ToString())
             {
                 _createNotScannedContainerLocation(Action, CswEnumNbtContainerLocationTypeOptions.Missing);
             }
             else
             {
                 CswPrimaryKey ContLocNodeId = CswConvert.ToPrimaryKey(Action.ContainerLocationId);
                 if (CswTools.IsPrimaryKey(ContLocNodeId))
                 {
                     CswNbtObjClassContainerLocation ContLocNode = _CswNbtResources.Nodes.GetNode(ContLocNodeId);
                     ContLocNode.Action.Value = Action.Action;
                     ContLocNode.ActionByUser.RelatedNodeId = _CswNbtResources.CurrentNbtUser.UserId;
                     ContLocNode.postChanges(false);
                 }
                 else if (Action.Action == CswEnumNbtContainerLocationActionOptions.Ignore.ToString())
                 {
                     _createNotScannedContainerLocation(Action, CswEnumNbtContainerLocationTypeOptions.Ignore);
                 }
             }
         }
     }
 }
        }                 // ToJSON()

        public override void ReadDataRow(DataRow PropRow, Dictionary <string, Int32> NodeMap, Dictionary <Int32, Int32> NodeTypeMap)
        {
            CswCommaDelimitedString NewValue = new CswCommaDelimitedString();

            NewValue.FromString(CswTools.XmlRealAttributeName(PropRow[_ValueSubField.ToXmlNodeName()].ToString()));
            Value = NewValue;
        }
 private void onQuantityPropChange(CswNbtNodeProp Prop)
 {
     if (CswTools.IsPrimaryKey(Quantity.UnitId) && TotalDispensed.UnitId != Quantity.UnitId)
     {
         TotalDispensed.UnitId = Quantity.UnitId;
     }
 }
        //mark any property references to this property on other nodes as pending update
        private void _markExternalPropRefsDirty(CswNbtNodePropWrapper CurrentProp)
        {
            if (CswTools.IsPrimaryKey(CurrentProp.NodeId))
            {
                CswNbtFieldTypeRulePropertyReference PropRefFTR = (CswNbtFieldTypeRulePropertyReference)_CswNbtResources.MetaData.getFieldTypeRule(CswEnumNbtFieldType.PropertyReference);
                CswEnumNbtPropColumn PropRefColumn = PropRefFTR.CachedValueSubField.Column;

                string SQL = @"update jct_nodes_props 
                            set pendingupdate = '" + CswConvert.ToDbVal(true) + @"',
                                " + PropRefColumn.ToString() + @" = ''
                        where jctnodepropid in (select j.jctnodepropid
                                                    from jct_nodes_props j
                                                    join nodes n on n.nodeid = j.nodeid
                                                    join nodetype_props p on p.nodetypepropid = j.nodetypepropid
                                                    join field_types f on p.fieldtypeid = f.fieldtypeid
                                                    left outer join jct_nodes_props jntp on (jntp.nodetypepropid = p.fkvalue
                                                                                        and jntp.nodeid = n.nodeid
                                                                                        and jntp.field1_fk = " + CurrentProp.NodeId.PrimaryKey.ToString() + @")
                                                    left outer join (select jx.jctnodepropid, ox.objectclasspropid, jx.nodeid
                                                                        from jct_nodes_props jx
                                                                        join nodetype_props px on jx.nodetypepropid = px.nodetypepropid
                                                                        join object_class_props ox on px.objectclasspropid = ox.objectclasspropid
                                                                    where jx.field1_fk = " + CurrentProp.NodeId.PrimaryKey.ToString() + @") jocp 
                                                                                        on (jocp.objectclasspropid = p.fkvalue 
                                                                                        and jocp.nodeid = n.nodeid)
                                                    where f.fieldtype = 'PropertyReference'
                                                    and ((lower(p.fktype) = 'nodetypepropid' and jntp.jctnodepropid is not null)
                                                        or (lower(p.fktype) = 'objectclasspropid' and jocp.jctnodepropid is not null))
                                                    and ((lower(p.valueproptype) = 'nodetypepropid' and p.valuepropid = " + CurrentProp.NodeTypePropId.ToString() + @") 
                                                        or (lower(p.valueproptype) = 'objectclasspropid' and p.valuepropid = " + CurrentProp.ObjectClassPropId + @")))";
                // We're not doing this in a CswTableUpdate because it might be a large operation,
                // and we don't care about auditing for this change.
                _CswNbtResources.execArbitraryPlatformNeutralSql(SQL);
            }
        }