This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{0C09A792-653F-4B0C-A3BA-ECD2558BB8A5}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>AyaNova.Plugin.RepairTek</RootNamespace>
|
||||
<AssemblyName>AyaNova.Plugin.RepairTek</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SignAssembly>false</SignAssembly>
|
||||
<AssemblyOriginatorKeyFile>
|
||||
</AssemblyOriginatorKeyFile>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<UpgradeBackupLocation />
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\..\WinFormApp\bin\debug\plugins\RepairTek\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\..\..\Installs\RepairTek\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Infragistics4.Documents.Core.v11.2, Version=11.2.20112.2135, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL">
|
||||
<HintPath>C:\Program Files\Infragistics\NetAdvantage 2011.2\Windows Forms\CLR4.0\Bin\Infragistics4.Documents.Core.v11.2.dll</HintPath>
|
||||
<Name>Infragistics4.Documents.Core.v11.2</Name>
|
||||
</Reference>
|
||||
<Reference Include="Infragistics4.Documents.Excel.v11.2, Version=11.2.20112.2135, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files\Infragistics\NetAdvantage 2011.2\Windows Forms\CLR4.0\Bin\Infragistics4.Documents.Excel.v11.2.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.DataSetExtensions">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CopyableMessageBox.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="RepairTek.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\AyaNova.PlugIn\AyaNova.PlugIn.csproj">
|
||||
<Project>{674BC3C9-4F74-4304-91ED-2EAFFFEB09A7}</Project>
|
||||
<Name>AyaNova.PlugIn</Name>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\bizobjects\AyaLib\GZTW.AyaNova.BLL.csproj">
|
||||
<Project>{50B807B6-FC35-4CC3-B54D-91C78426A943}</Project>
|
||||
<Name>GZTW.AyaNova.BLL</Name>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\csla10\CSLA.Core.Bindablebase\CSLA.Core.Bindablebase.csproj">
|
||||
<Project>{C2392355-12A9-4197-A1D3-603C390B1E62}</Project>
|
||||
<Name>CSLA.Core.Bindablebase</Name>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\csla10\CSLA.Server.DataPortal\CSLA.Server.DataPortal.vbproj">
|
||||
<Project>{80828E2C-E9FB-4E73-A27C-7F9CDB96FCDE}</Project>
|
||||
<Name>CSLA.Server.DataPortal</Name>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\csla10\CSLA\CSLA.vbproj">
|
||||
<Project>{1B9A38BB-461A-47A4-AD72-099C694138A0}</Project>
|
||||
<Name>CSLA</Name>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Data\Data\GZTW.Data.csproj">
|
||||
<Project>{701893AA-C042-4FB2-8643-E139372C1117}</Project>
|
||||
<Name>GZTW.Data</Name>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Profile\GZTW.Profile\GZTW.Profile.csproj">
|
||||
<Project>{EDE897E2-E2E6-441D-9F83-0B973AE09670}</Project>
|
||||
<Name>GZTW.Profile</Name>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="CopyableMessageBox.resx">
|
||||
<DependentUpon>CopyableMessageBox.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -0,0 +1,91 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AyaNova.Plugin.RepairTek
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for CopyableMessageBox.
|
||||
/// </summary>
|
||||
public class CopyableMessageBox : System.Windows.Forms.Form
|
||||
{
|
||||
private System.Windows.Forms.TextBox edOut;
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.Container components = null;
|
||||
private string mDisplay="";
|
||||
public CopyableMessageBox(string Display)
|
||||
{
|
||||
//
|
||||
// Required for Windows Form Designer support
|
||||
//
|
||||
InitializeComponent();
|
||||
|
||||
mDisplay=Display;
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
protected override void Dispose( bool disposing )
|
||||
{
|
||||
if( disposing )
|
||||
{
|
||||
if(components != null)
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
}
|
||||
base.Dispose( disposing );
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CopyableMessageBox));
|
||||
this.edOut = new System.Windows.Forms.TextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// edOut
|
||||
//
|
||||
this.edOut.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.edOut.Location = new System.Drawing.Point(0, 0);
|
||||
this.edOut.Multiline = true;
|
||||
this.edOut.Name = "edOut";
|
||||
this.edOut.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.edOut.Size = new System.Drawing.Size(769, 453);
|
||||
this.edOut.TabIndex = 0;
|
||||
//
|
||||
// CopyableMessageBox
|
||||
//
|
||||
this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
|
||||
this.ClientSize = new System.Drawing.Size(769, 453);
|
||||
this.Controls.Add(this.edOut);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "CopyableMessageBox";
|
||||
this.ShowInTaskbar = false;
|
||||
this.Text = "Results";
|
||||
this.Load += new System.EventHandler(this.CopyableMessageBox_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void CopyableMessageBox_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
edOut.Text=mDisplay;
|
||||
}
|
||||
}
|
||||
}
|
||||
197
source/Plugins/AyaNova.Plugin.RepairTek/CopyableMessageBox.resx
Normal file
197
source/Plugins/AyaNova.Plugin.RepairTek/CopyableMessageBox.resx
Normal file
@@ -0,0 +1,197 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABn
|
||||
vzAAZ79QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGe/MABn
|
||||
v48ggM/gX6jf/1+n3/8Pb8CfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ78/AGe/jx94
|
||||
z+BQp9//oNjw/9D3///A7///oNjw/6DX8P8Qd8C/AGe/DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ79PAHDA7x+Q
|
||||
0P9PuOD/f9fw/5/g8P+/6P//wO///7/o//+f2PD/v+j//5DQ8P8feM/QAGe/HwAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
AAH//4AB///AA///8B////n///////////8=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("AyaNova.Plugin.RepairTek")]
|
||||
[assembly: AssemblyDescription("RepairTek plugin for AyaNova")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Ground Zero Tech-Works Inc.")]
|
||||
[assembly: AssemblyProduct("AyaNova.Plugin.RepairTek")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2009-2017 Ground Zero Tech-Works Inc.")]
|
||||
[assembly: AssemblyTrademark("AyaNova is a registered trademark of Ground Zero Tech-Works Inc.")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("06EDD53C-50C5-4eb0-8CE4-1C265CBC04F8")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("7.5.0.0")]
|
||||
[assembly: AssemblyFileVersion("7.5.0.0")]
|
||||
490
source/Plugins/AyaNova.Plugin.RepairTek/RepairTek.cs
Normal file
490
source/Plugins/AyaNova.Plugin.RepairTek/RepairTek.cs
Normal file
@@ -0,0 +1,490 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using AyaNova.PlugIn;
|
||||
using GZTW.AyaNova.BLL;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
using System.Reflection;
|
||||
using System.Data;
|
||||
|
||||
using Infragistics.Documents.Excel;
|
||||
|
||||
namespace AyaNova.Plugin.RepairTek
|
||||
{
|
||||
class RepairTek : IAyaNovaPlugin
|
||||
{
|
||||
//Keep all the object types we want to deal with in a collection
|
||||
//so that we can quickly check it when asked
|
||||
private static List<RootObjectTypes> ObjectsWeCanDealWith = null;
|
||||
//Holds the image resources from AyaNova
|
||||
//so we can display the correct icons in our plugin
|
||||
System.Resources.ResourceManager resman = null;
|
||||
|
||||
//Holds the current logged in user's localized text
|
||||
//lookup object
|
||||
LocalizedTextTable LocaleText = null;
|
||||
|
||||
#region IAyaNovaPlugin Members
|
||||
|
||||
#region interface properties
|
||||
public string PluginName
|
||||
{
|
||||
get { return "RepairTek"; }
|
||||
}
|
||||
|
||||
public string PluginVersion
|
||||
{
|
||||
get { return "7.2.0.0"; }
|
||||
}
|
||||
|
||||
public string About
|
||||
{
|
||||
get
|
||||
{
|
||||
return "AyaNova RepairTek plugin\r\n" +
|
||||
"Copyright 2009-2017 Ground Zero Tech-Works Inc.";
|
||||
}
|
||||
}
|
||||
|
||||
public Guid PluginID
|
||||
{
|
||||
get { return new Guid("{06EDD53C-50C5-4eb0-8CE4-1C265CBC04F8}"); }
|
||||
}
|
||||
|
||||
public System.Drawing.Image PluginSmallIcon
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
public System.Drawing.Image PluginLargeIcon
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
public System.Resources.ResourceManager AyaNovaResourceManager
|
||||
{
|
||||
set { resman = value; }
|
||||
get { return resman; }
|
||||
}
|
||||
#endregion interface properties
|
||||
|
||||
#region Initialization and Close
|
||||
public bool Initialize(Version AyaNovaVersion, LocalizedTextTable localizedText)
|
||||
{
|
||||
LocaleText = localizedText;
|
||||
ObjectsWeCanDealWith = new List<RootObjectTypes>();
|
||||
ObjectsWeCanDealWith.Add(RootObjectTypes.Nothing);
|
||||
return true;
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
;
|
||||
}
|
||||
#endregion Initialization and close
|
||||
|
||||
#region ShowMenu?
|
||||
public bool SingleObjectMenuShow(RootObjectTypes objectType)
|
||||
{
|
||||
return (ObjectsWeCanDealWith.Contains(objectType));
|
||||
}
|
||||
|
||||
public bool MultipleObjectsMenuShow(RootObjectTypes objectType)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
#endregion show menu?
|
||||
|
||||
#region Menu options
|
||||
public List<AyaNovaPluginMenuItem> SingleObjectMenuOptions(RootObjectTypes objectType, object ayaNovaObject)
|
||||
{
|
||||
|
||||
|
||||
if (!ObjectsWeCanDealWith.Contains(objectType)) return null;
|
||||
List<AyaNovaPluginMenuItem> list = new List<AyaNovaPluginMenuItem>();
|
||||
list.Add(new AyaNovaPluginMenuItem("REPAIRTEK", "RepairTek - Update workorders from spreadsheet", null, null));
|
||||
return list;
|
||||
}
|
||||
|
||||
public List<AyaNovaPluginMenuItem> MultipleObjectsMenuOptions(RootObjectTypes objectType)
|
||||
{
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region Menu Commands
|
||||
|
||||
#region LIST OBJECT COMMAND
|
||||
/// <summary>
|
||||
/// LIST OBJECT
|
||||
/// </summary>
|
||||
/// <param name="commandKey"></param>
|
||||
/// <param name="objectType"></param>
|
||||
/// <param name="objectIDList"></param>
|
||||
/// <param name="listObject"></param>
|
||||
/// <returns></returns>
|
||||
public bool CommandSelectedForList(string commandKey, RootObjectTypes objectType, List<Guid> objectIDList, object listObject)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
#endregion list object command
|
||||
|
||||
#region SINGLE OBJECT COMMAND
|
||||
/// <summary>
|
||||
/// SINGLE OBJECT
|
||||
/// </summary>
|
||||
/// <param name="commandKey"></param>
|
||||
/// <param name="objectType"></param>
|
||||
/// <param name="ayaNovaObject"></param>
|
||||
public void CommandSelectedForSingleObject(string commandKey, RootObjectTypes objectType, object ayaNovaObject)
|
||||
{
|
||||
|
||||
switch (commandKey)
|
||||
{
|
||||
|
||||
case "REPAIRTEK":
|
||||
{
|
||||
Update();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
#endregion single object command
|
||||
|
||||
#endregion menu commands
|
||||
|
||||
#endregion
|
||||
|
||||
/*
|
||||
THIS IS THE "REPAIRTEK" PLUGIN - REPAIRTEK2
|
||||
|
||||
*/
|
||||
#region Update workorders from spreadsheet
|
||||
|
||||
/*
|
||||
*
|
||||
* 11:22:54 AM: frank has purchased - #1 - all workorders stated in the xls file to have Onsite unchecked (whether any of the other fields are updated or not)
|
||||
|
||||
#2 - all workorders stated in the xls file to have Workorder Status set to Received - Ready To be Assigned (whether any of the other fields are updated or not)
|
||||
11:22:59 AM: let me know if any questions
|
||||
11:23:37 AM: so that's the *exact* status spelling?
|
||||
11:23:57 AM: yes
|
||||
11:24:00 AM: k
|
||||
11:24:02 AM: Received - Ready To be Assigned
|
||||
* */
|
||||
/// <summary>
|
||||
/// Update workorders
|
||||
/// </summary>
|
||||
private void Update()
|
||||
{
|
||||
//track ops to report upon completion
|
||||
System.Text.StringBuilder sb = new StringBuilder();
|
||||
sb.Append("Results:\r\n");
|
||||
|
||||
#region Open the xls file
|
||||
OpenFileDialog ofd = new OpenFileDialog();
|
||||
ofd.Multiselect = false;
|
||||
ofd.Title = "";
|
||||
ofd.DefaultExt = "xls";
|
||||
ofd.FileName = "*.xls";
|
||||
if (ofd.ShowDialog() != DialogResult.OK) return;
|
||||
Infragistics.Documents.Excel.Workbook workbook;
|
||||
try
|
||||
{
|
||||
workbook = Infragistics.Documents.Excel.Workbook.Load(ofd.FileName);
|
||||
sb.Append("Workbook " + ofd.FileName + " opened for processing\r\n");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Error opening workbook:\r\n" + ex.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
ofd.Dispose();
|
||||
#endregion open the xls
|
||||
|
||||
//fetch priority list
|
||||
PriorityPickList ppl = PriorityPickList.GetList();
|
||||
|
||||
#region check all expected priorities are in ayanova
|
||||
Guid g2DayDepot = GetMatchingPriority(ppl, "2 DAY DEPOT");
|
||||
Guid g5DayDepot = GetMatchingPriority(ppl, "5 DAY DEPOT");
|
||||
Guid g15DayFlat = GetMatchingPriority(ppl, "15 DAY/FLAT RATE");
|
||||
Guid g15DayWarr = GetMatchingPriority(ppl, "15 DAY/WARR");
|
||||
if (g2DayDepot == Guid.Empty)
|
||||
{
|
||||
sb.Append("ERROR: expected priority not found in AyaNova: \"2 DAY DEPOT\". Can not proceed until this priority exists in AyaNova.\r\n");
|
||||
ReportResults(sb);
|
||||
return;
|
||||
}
|
||||
if (g5DayDepot == Guid.Empty)
|
||||
{
|
||||
sb.Append("ERROR: expected priority not found in AyaNova: \"5 DAY DEPOT\". Can not proceed until this priority exists in AyaNova.\r\n");
|
||||
ReportResults(sb);
|
||||
return;
|
||||
}
|
||||
if (g15DayFlat == Guid.Empty)
|
||||
{
|
||||
sb.Append("ERROR: expected priority not found in AyaNova: \"15 DAY/FLAT RATE\". Can not proceed until this priority exists in AyaNova.\r\n");
|
||||
ReportResults(sb);
|
||||
return;
|
||||
}
|
||||
if (g15DayWarr == Guid.Empty)
|
||||
{
|
||||
sb.Append("ERROR: expected priority not found in AyaNova: \"15 DAY/WARR\". Can not proceed until this priority exists in AyaNova.\r\n");
|
||||
ReportResults(sb);
|
||||
return;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region find received status
|
||||
//dec 15th 2009 additional
|
||||
Guid gRecievedStatus = Guid.Empty;
|
||||
WorkorderStatusPickList wsp = WorkorderStatusPickList.GetList();
|
||||
foreach (WorkorderStatusPickList.WorkorderStatusPickListInfo i in wsp)
|
||||
{
|
||||
if (i.Name.Equals("Received - Ready To be Assigned", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
gRecievedStatus = i.ID;
|
||||
break;
|
||||
}
|
||||
}
|
||||
wsp = null;
|
||||
if (gRecievedStatus == Guid.Empty)
|
||||
{
|
||||
sb.Append("ERROR: expected Work order status not found in AyaNova: \"Received - Ready To be Assigned\". Can not proceed until this work order status exists in AyaNova.\r\n");
|
||||
ReportResults(sb);
|
||||
return;
|
||||
}
|
||||
#endregion find received status
|
||||
|
||||
//Iterate the workorders
|
||||
int nRow = 0;
|
||||
foreach (WorksheetRow r in workbook.Worksheets[0].Rows)
|
||||
{
|
||||
nRow++;
|
||||
Workorder w;
|
||||
string sWorkorderNumber = SafeGetCellValue(r, 0);
|
||||
|
||||
#region fetch workorder
|
||||
//skip over empty rows
|
||||
if (string.IsNullOrEmpty(sWorkorderNumber))
|
||||
{
|
||||
sb.Append("[Row " + nRow.ToString() + "] skipped empty row \r\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
//skip over the title row
|
||||
if(sWorkorderNumber.StartsWith("AyaNova"))
|
||||
{
|
||||
sb.Append("[Row " + nRow.ToString() + "] skipped title row \"" + sWorkorderNumber + "\"\r\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
int nWo = 0;
|
||||
if (!System.Int32.TryParse(sWorkorderNumber, out nWo))
|
||||
{
|
||||
sb.Append("[Row "+nRow.ToString() + "] Workorder number not found in value \"" + sWorkorderNumber + "\"\r\n");
|
||||
continue;
|
||||
}
|
||||
Guid woID = WorkorderInternalIDFetcher.GetItem(nWo.ToString(), WorkorderTypes.Service);
|
||||
if (woID == Guid.Empty)
|
||||
{
|
||||
sb.Append("[Row "+nRow.ToString() +"] Error: workorder with number \"" + sWorkorderNumber + "\" not found in AyaNova\r\n");
|
||||
continue;
|
||||
}
|
||||
w = Workorder.GetItem(woID);
|
||||
#endregion get workorder
|
||||
|
||||
#region get spreadsheet values
|
||||
|
||||
#region Priority and service days
|
||||
string sPriority = SafeGetCellValue(r, 6);
|
||||
if (string.IsNullOrEmpty(sPriority))
|
||||
{
|
||||
sb.Append("[Row " + nRow.ToString() + "] Priority in spreadsheet is empty for workorder \"" + sWorkorderNumber + "\" using default \"5 DAY DEPOT\"\r\n");
|
||||
sPriority="5 DAY DEPOT";
|
||||
}
|
||||
|
||||
//confirm priority is one of the values we expect
|
||||
//and get the days to add value
|
||||
int nDaysToServiceDate = 5;
|
||||
Guid gSetPriority = Guid.Empty;
|
||||
if (sPriority.Equals("2 DAY DEPOT", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
gSetPriority = g2DayDepot;
|
||||
nDaysToServiceDate = 2;
|
||||
}
|
||||
else if (sPriority.Equals("5 DAY DEPOT", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
gSetPriority = g5DayDepot;
|
||||
nDaysToServiceDate = 5;
|
||||
}
|
||||
else if (sPriority.Equals("15 DAY/FLAT RATE", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
gSetPriority = g15DayFlat;
|
||||
nDaysToServiceDate = 15;
|
||||
}
|
||||
else if (sPriority.Equals("15 DAY/WARR", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
gSetPriority = g15DayWarr;
|
||||
nDaysToServiceDate = 15;
|
||||
}
|
||||
else //default
|
||||
{
|
||||
//Is it possible to set the priority as a default to 5 DAY DEPOT (I highlighted in yellow in attached) for each workorder when created, just as a safety. This is the priority over 95% of the time. The plug –in would overwrite this field if different. Or will this create possible errors.
|
||||
sb.Append("[Row " + nRow.ToString() + "] workorder \"" + sWorkorderNumber + "\" priority:\"" + sPriority + "\" unexpected. Using default \"5 DAY DEPOT\" \r\n");
|
||||
gSetPriority = g5DayDepot;
|
||||
nDaysToServiceDate = 5;
|
||||
}
|
||||
|
||||
#endregion priority
|
||||
|
||||
string sIntRef = SafeGetCellValue(r, 7);
|
||||
if (string.IsNullOrEmpty(sIntRef))
|
||||
{
|
||||
sb.Append("[Row " + nRow.ToString() + "] Skipping Workorder \"" + sWorkorderNumber + "\" Internal Reference in spreadsheet is empty!\r\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
string sSummary = SafeGetCellValue(r, 8);
|
||||
if (string.IsNullOrEmpty(sSummary))
|
||||
{
|
||||
sb.Append("[Row " + nRow.ToString() + "] Skipping Workorder \"" + sWorkorderNumber + "\" Summary in spreadsheet is empty!\r\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
#endregion get spreadsheet values
|
||||
|
||||
#region Can / should workorder be updated?
|
||||
|
||||
//Has the workorder already been updated?
|
||||
if (!string.IsNullOrEmpty(w.InternalReferenceNumber))
|
||||
{
|
||||
if (w.InternalReferenceNumber == sIntRef)
|
||||
{
|
||||
sb.Append("[Row " + nRow.ToString() + "] Skipping Workorder \"" + sWorkorderNumber + "\" was previously updated in AyaNova (matching int. ref#).\r\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.Append("[Row " + nRow.ToString() + "] Skipping Workorder \"" + sWorkorderNumber + "\" has int. ref# (\"" + w.InternalReferenceNumber + "\") however it doesn't match the one in the spreadsheet(\"" + sIntRef + "\")!\r\n");
|
||||
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
//can the workorder be updated?
|
||||
if (!w.IsEditable)
|
||||
{
|
||||
sb.Append("[Row " + nRow.ToString() + "] Skipping Workorder \"" + sWorkorderNumber + "\" - Workorder is not editable (closed, service completed or insufficient rights)!\r\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
#endregion can / should workorder be updated
|
||||
|
||||
|
||||
//Ok, we have all the data we need, the workorder is updateable so get updatin'...
|
||||
//Judging by info provided these workorders will have only one workorder item but to be safe
|
||||
//will iterate in case...
|
||||
foreach (WorkorderItem wi in w.WorkorderItems)
|
||||
{
|
||||
wi.Summary = sSummary;
|
||||
wi.PriorityID = gSetPriority;
|
||||
}
|
||||
w.InternalReferenceNumber = sIntRef;
|
||||
|
||||
#region Set service date
|
||||
DateTime dtService = DateTime.Parse(w.Created);
|
||||
dtService = AddXBusinessDays(dtService,nDaysToServiceDate);
|
||||
|
||||
|
||||
w.WorkorderService.ServiceDate = dtService;
|
||||
#endregion set service date
|
||||
|
||||
//Additional Dec 15 2009
|
||||
w.Onsite = false;
|
||||
w.WorkorderService.WorkorderStatusID = gRecievedStatus;
|
||||
|
||||
if (w.IsSavable)
|
||||
{
|
||||
w.Save();
|
||||
sb.Append("[Row " + nRow.ToString() + "] Workorder \"" + sWorkorderNumber + "\" updated in AyaNova\r\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.Append("[Row " + nRow.ToString() + "] Workorder \"" + sWorkorderNumber + "\" couldn't be saved due to broken rules, error was:\r\n----------------------------------\r\n" + w.BrokenRulesText + "\r\n----------------------------------\r\n");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sb.Append("All rows in spreadsheet processed!");
|
||||
//Report results
|
||||
ReportResults(sb);
|
||||
}
|
||||
|
||||
|
||||
//Note: assumption that workorders are never created on weekends
|
||||
private DateTime AddXBusinessDays(DateTime dateToIncrement, int days)
|
||||
{
|
||||
DateTime dt = dateToIncrement;
|
||||
for (int x = 0; x < days; x++)
|
||||
{
|
||||
do
|
||||
{
|
||||
dt = dt.AddDays(1.0);
|
||||
}
|
||||
while (dt.DayOfWeek == DayOfWeek.Saturday || dt.DayOfWeek == DayOfWeek.Sunday);
|
||||
}
|
||||
return dt;
|
||||
}
|
||||
|
||||
private void ReportResults(StringBuilder sb)
|
||||
{
|
||||
CopyableMessageBox dlgCMB = new CopyableMessageBox(sb.ToString());
|
||||
dlgCMB.ShowDialog();
|
||||
|
||||
}
|
||||
|
||||
//safe get cell value
|
||||
private string SafeGetCellValue(WorksheetRow r, int nColumn)
|
||||
{
|
||||
object o=r.Cells[nColumn].Value;
|
||||
if (o == null) return "";
|
||||
else
|
||||
return o.ToString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Attempt to match priority from text in spreadsheet
|
||||
/// if no match return guid empty
|
||||
/// </summary>
|
||||
/// <param name="ppl"></param>
|
||||
/// <param name="sToMatch"></param>
|
||||
/// <returns></returns>
|
||||
Guid GetMatchingPriority(PriorityPickList ppl, string sToMatch)
|
||||
{
|
||||
foreach (PriorityPickList.PriorityPickListInfo i in ppl)
|
||||
{
|
||||
if(i.Name.Equals(sToMatch, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return i.ID;
|
||||
}
|
||||
}
|
||||
|
||||
return Guid.Empty;
|
||||
}
|
||||
|
||||
#endregion update
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user