This commit is contained in:
2018-10-14 23:26:09 +02:00
parent 8956813183
commit 4ceb9fcd09
40 changed files with 10331 additions and 64 deletions
@@ -0,0 +1,39 @@
using System;
using DevExpress.Xpo;
using System.ComponentModel;
using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl;
using DevExpress.ExpressApp.Utils;
using DevExpress.ExpressApp.Editors;
namespace SISBusiness.Module
{
[DefaultClassOptions, ImageName("Action_Filter"), NavigationItem(false), CreatableItem(false)]
public class FilteringCriterion : BaseObject
{
public FilteringCriterion(Session session) : base(session) { }
public string Description
{
get { return GetPropertyValue<string>("Description"); }
set { SetPropertyValue<string>("Description", value); }
}
[ValueConverter(typeof(TypeToStringConverter)), ImmediatePostData]
[TypeConverter(typeof(LocalizedClassInfoTypeConverter))]
public Type ObjectType
{
get { return GetPropertyValue<Type>("ObjectType"); }
set
{
SetPropertyValue<Type>("ObjectType", value);
Criterion = String.Empty;
}
}
[CriteriaOptions("ObjectType"), Size(SizeAttribute.Unlimited)]
[EditorAlias(EditorAliases.PopupCriteriaPropertyEditor)]
public string Criterion
{
get { return GetPropertyValue<string>("Criterion"); }
set { SetPropertyValue<string>("Criterion", value); }
}
}
}
@@ -0,0 +1,36 @@
namespace SISBusiness.Module
{
partial class CriteriaController_VC
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component 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()
{
this.components = new System.ComponentModel.Container();
}
#endregion
}
}
@@ -0,0 +1,42 @@
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using DevExpress.ExpressApp.Editors;
using DevExpress.Persistent.Base;
namespace SISBusiness.Module
{
public partial class CriteriaController_VC : ViewController
{
private SingleChoiceAction filteringCriterionAction;
public CriteriaController_VC()
{
filteringCriterionAction = new SingleChoiceAction(
this, "FilteringCriterion", PredefinedCategory.Filters);
filteringCriterionAction.Execute += new DevExpress.ExpressApp.Actions.SingleChoiceActionExecuteEventHandler(this.FilteringCriterionAction_Execute);
TargetViewType = ViewType.ListView;
}
protected override void OnActivated()
{
filteringCriterionAction.Items.Clear();
foreach (FilteringCriterion criterion in ObjectSpace.GetObjects<FilteringCriterion>())
if (criterion.ObjectType.IsAssignableFrom(View.ObjectTypeInfo.Type))
{
filteringCriterionAction.Items.Add(
new ChoiceActionItem(criterion.Description, criterion.Criterion));
}
if (filteringCriterionAction.Items.Count > 0)
filteringCriterionAction.Items.Add(new ChoiceActionItem("All", null));
}
private void FilteringCriterionAction_Execute(
object sender, SingleChoiceActionExecuteEventArgs e)
{
((ListView)View).CollectionSource.BeginUpdateCriteria();
((ListView)View).CollectionSource.Criteria.Clear();
((ListView)View).CollectionSource.Criteria[e.SelectedChoiceActionItem.Caption] =
CriteriaEditorHelper.GetCriteriaOperator(
e.SelectedChoiceActionItem.Data as string, View.ObjectTypeInfo.Type, ObjectSpace);
((ListView)View).CollectionSource.EndUpdateCriteria();
}
}
}
@@ -0,0 +1,56 @@
namespace SISBusiness.Module.Controllers
{
partial class GLAccount_VC
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component 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()
{
this.components = new System.ComponentModel.Container();
this.aExportGLAccountsToFile = new DevExpress.ExpressApp.Actions.SimpleAction(this.components);
//
// aExportGLAccountsToFile
//
this.aExportGLAccountsToFile.Caption = "aExport GLAccounts To File";
this.aExportGLAccountsToFile.ConfirmationMessage = null;
this.aExportGLAccountsToFile.Id = "aExportGLAccountsToFile";
this.aExportGLAccountsToFile.TargetObjectType = typeof(SISBusiness.Module.GLAccounts);
this.aExportGLAccountsToFile.TargetViewNesting = DevExpress.ExpressApp.Nesting.Root;
this.aExportGLAccountsToFile.TargetViewType = DevExpress.ExpressApp.ViewType.ListView;
this.aExportGLAccountsToFile.ToolTip = null;
this.aExportGLAccountsToFile.TypeOfView = typeof(DevExpress.ExpressApp.ListView);
this.aExportGLAccountsToFile.Execute += new DevExpress.ExpressApp.Actions.SimpleActionExecuteEventHandler(this.aExportGLAccountsToFile_Execute);
//
// GLAccount_VC
//
this.Actions.Add(this.aExportGLAccountsToFile);
}
#endregion
private DevExpress.ExpressApp.Actions.SimpleAction aExportGLAccountsToFile;
}
}
@@ -0,0 +1,77 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.Data.Filtering;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using DevExpress.ExpressApp.Editors;
using DevExpress.ExpressApp.Layout;
using DevExpress.ExpressApp.Model.NodeGenerators;
using DevExpress.ExpressApp.SystemModule;
using DevExpress.ExpressApp.Templates;
using DevExpress.ExpressApp.Utils;
using DevExpress.Persistent.Base;
using DevExpress.Persistent.Validation;
namespace SISBusiness.Module.Controllers
{
// For more typical usage scenarios, be sure to check out https://documentation.devexpress.com/eXpressAppFramework/clsDevExpressExpressAppViewControllertopic.aspx.
public partial class GLAccount_VC : ViewController
{
public GLAccount_VC()
{
InitializeComponent();
// Target required Views (via the TargetXXX properties) and create their Actions.
}
protected override void OnActivated()
{
base.OnActivated();
// Perform various tasks depending on the target View.
}
protected override void OnViewControlsCreated()
{
base.OnViewControlsCreated();
// Access and customize the target View control.
}
protected override void OnDeactivated()
{
// Unsubscribe from previously subscribed events and release other references and resources.
base.OnDeactivated();
}
private void aExportGLAccountsToFile_Execute(object sender, SimpleActionExecuteEventArgs e)
{
FolderBrowserDialog _FolderBrowserDialog = new FolderBrowserDialog();
if (_FolderBrowserDialog.ShowDialog() == DialogResult.OK)
{
foreach (GLAccounts _GLAccounts in View.SelectedObjects)
{
if (_GLAccounts.ImportedRegistryHeader != null)
{
if (_GLAccounts.ImportedRegistryHeader.DocumentFile != null)
{
string _Path = _FolderBrowserDialog.SelectedPath + @"\" + _GLAccounts.ImportedRegistryHeader.RegistryNumber + ".pdf";
using (FileStream _FileStream = File.Create(_Path))
{
_GLAccounts.ImportedRegistryHeader.DocumentFile.SaveToStream(_FileStream);
_FileStream.Flush();
_FileStream.Close();
}
}
}
}
}
}
}
}
@@ -0,0 +1,126 @@
<?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>
<metadata name="aExportGLAccountsToFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>
@@ -0,0 +1,36 @@
namespace SISBusiness.Module
{
partial class NAV_Invoice_VC
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component 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()
{
this.components = new System.ComponentModel.Container();
}
#endregion
}
}
@@ -0,0 +1,106 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.Data.Filtering;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using DevExpress.ExpressApp.Editors;
using DevExpress.ExpressApp.Layout;
using DevExpress.ExpressApp.Model.NodeGenerators;
using DevExpress.ExpressApp.SystemModule;
using DevExpress.ExpressApp.Templates;
using DevExpress.ExpressApp.Utils;
using DevExpress.ExpressApp.Xpo;
using DevExpress.Persistent.Base;
using DevExpress.Persistent.Validation;
using Newtonsoft.Json;
using SISBusiness.Module.StaticClass;
namespace SISBusiness.Module
{
// For more typical usage scenarios, be sure to check out https://documentation.devexpress.com/eXpressAppFramework/clsDevExpressExpressAppViewControllertopic.aspx.
public partial class NAV_Invoice_VC : ViewController
{
public NAV_Invoice_VC()
{
InitializeComponent();
// Target required Views (via the TargetXXX properties) and create their Actions.
}
protected override void OnActivated()
{
base.OnActivated();
Frame.GetController<InvoiceVC>().FireNAVmanageInvoiceFinalWork += FireNAVmanageInvoice;
}
private void FireNAVmanageInvoice(InvoiceHeader _InvoiceHeader)
{
XPObjectSpace _ocur =Application.CreateObjectSpace() as XPObjectSpace;
string _operation = "CREATE";
if (_InvoiceHeader.IsStorno)
{
_operation = "STORNO";
}
var _postData = new
{
documentnumber = _InvoiceHeader.DocumentNumber,
customersfrom = _InvoiceHeader.CustomersFrom.Oid.ToString(),
operation = _operation,
technicalAnnulment = false,
softwareId = "123456789123456789",
softwareName = "3C ERP System",
softwareOperation = "ONLINE_SERVICE",
softwareMainVersion = "17.2.3",
softwareDevName = "3C Távközlési Kft.",
softwareDevContact = "http:\\3ctelecom.hu",
softwareDevCountryCode = "HU",
softwareDevTaxNumber = "10644209-2-43"
};
RestAPI.ExecuteRootePOST("onlineinvoice/manageinvoice", true, JsonConvert.SerializeObject(_postData));
var _StatusCode = RestAPI.StatusCode;
var _StatusDescription = RestAPI.StatusMessage;
Tracing.Tracer.LogText(_StatusCode.ToString());
Tracing.Tracer.LogText(_StatusDescription.ToString());
if (_StatusCode == 200)
{
dynamic _ResultJSON = JsonConvert.DeserializeObject(_StatusDescription);
if (_ResultJSON.status.ToString() == "OK")
{
_ocur.Session.ExecuteNonQuery(string.Format("UPDATE InvoiceHeader set NAV_transactionID='{0}' WHERE Oid = '{1}'", _ResultJSON.transactionId["0"].ToString(), _InvoiceHeader.Oid.ToString()));
Application.ShowViewStrategy.ShowMessage("A számla beküldése megtörtént !", InformationType.Success, 2000, InformationPosition.Bottom);
}
if (_ResultJSON.status.ToString() == "ERROR")
{
string _ERROR = "A számla beküldése nem történt meg !";
_ERROR += " [" + _ResultJSON.ToString() + "]";
Application.ShowViewStrategy.ShowMessage(_ERROR, InformationType.Error, 5000, InformationPosition.Bottom);
}
}
else
{
string _ERROR = "A számla beküldése nem történt meg !";
_ERROR += " [" + _StatusDescription + "]";
Application.ShowViewStrategy.ShowMessage(_ERROR, InformationType.Error, 5000, InformationPosition.Bottom);
}
}
protected override void OnViewControlsCreated()
{
base.OnViewControlsCreated();
// Access and customize the target View control.
}
protected override void OnDeactivated()
{
Frame.GetController<InvoiceVC>().FireNAVmanageInvoiceFinalWork -= FireNAVmanageInvoice;
base.OnDeactivated();
}
}
}
@@ -0,0 +1,93 @@
namespace SISBusiness.Module.Controllers
{
partial class NAV_Online_VC
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component 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()
{
this.components = new System.ComponentModel.Container();
this.aNAV_queryInvoiceStatus = new DevExpress.ExpressApp.Actions.SimpleAction(this.components);
this.aNAV_manageInvoice = new DevExpress.ExpressApp.Actions.SimpleAction(this.components);
this.aNAV_queryTaxpayer = new DevExpress.ExpressApp.Actions.SimpleAction(this.components);
this.aNAV_queryInvoiceData = new DevExpress.ExpressApp.Actions.SimpleAction(this.components);
//
// aNAV_queryInvoiceStatus
//
this.aNAV_queryInvoiceStatus.Caption = "aNAV_queryInvoiceStatus";
this.aNAV_queryInvoiceStatus.ConfirmationMessage = null;
this.aNAV_queryInvoiceStatus.Id = "aNAV_queryInvoiceStatus";
this.aNAV_queryInvoiceStatus.SelectionDependencyType = DevExpress.ExpressApp.Actions.SelectionDependencyType.RequireSingleObject;
this.aNAV_queryInvoiceStatus.TargetObjectType = typeof(SISBusiness.Module.InvoiceHeader);
this.aNAV_queryInvoiceStatus.ToolTip = null;
this.aNAV_queryInvoiceStatus.Execute += new DevExpress.ExpressApp.Actions.SimpleActionExecuteEventHandler(this.aNAV_queryInvoiceStatus_Execute);
//
// aNAV_manageInvoice
//
this.aNAV_manageInvoice.Caption = "aNAV_manageInvoice";
this.aNAV_manageInvoice.ConfirmationMessage = null;
this.aNAV_manageInvoice.Id = "aNAV_manageInvoice";
this.aNAV_manageInvoice.SelectionDependencyType = DevExpress.ExpressApp.Actions.SelectionDependencyType.RequireSingleObject;
this.aNAV_manageInvoice.TargetObjectType = typeof(SISBusiness.Module.InvoiceHeader);
this.aNAV_manageInvoice.ToolTip = null;
this.aNAV_manageInvoice.Execute += new DevExpress.ExpressApp.Actions.SimpleActionExecuteEventHandler(this.aNAV_manageInvoice_Execute);
//
// aNAV_queryTaxpayer
//
this.aNAV_queryTaxpayer.Caption = "aNAV_queryTaxpayer";
this.aNAV_queryTaxpayer.ConfirmationMessage = null;
this.aNAV_queryTaxpayer.Id = "aNAV_queryTaxpayer";
this.aNAV_queryTaxpayer.SelectionDependencyType = DevExpress.ExpressApp.Actions.SelectionDependencyType.RequireSingleObject;
this.aNAV_queryTaxpayer.TargetObjectType = typeof(SISBusiness.Module.Customers);
this.aNAV_queryTaxpayer.ToolTip = null;
this.aNAV_queryTaxpayer.Execute += new DevExpress.ExpressApp.Actions.SimpleActionExecuteEventHandler(this.aNAV_queryTaxpayer_Execute);
//
// aNAV_queryInvoiceData
//
this.aNAV_queryInvoiceData.Caption = "aNAV_queryInvoiceData";
this.aNAV_queryInvoiceData.ConfirmationMessage = null;
this.aNAV_queryInvoiceData.Id = "aNAV_queryInvoiceData";
this.aNAV_queryInvoiceData.SelectionDependencyType = DevExpress.ExpressApp.Actions.SelectionDependencyType.RequireSingleObject;
this.aNAV_queryInvoiceData.TargetObjectType = typeof(SISBusiness.Module.InvoiceHeader);
this.aNAV_queryInvoiceData.ToolTip = null;
this.aNAV_queryInvoiceData.Execute += new DevExpress.ExpressApp.Actions.SimpleActionExecuteEventHandler(this.aNAV_queryInvoiceData_Execute);
//
// NAV_Online_VC
//
this.Actions.Add(this.aNAV_queryInvoiceStatus);
this.Actions.Add(this.aNAV_manageInvoice);
this.Actions.Add(this.aNAV_queryTaxpayer);
this.Actions.Add(this.aNAV_queryInvoiceData);
}
#endregion
private DevExpress.ExpressApp.Actions.SimpleAction aNAV_queryInvoiceStatus;
private DevExpress.ExpressApp.Actions.SimpleAction aNAV_manageInvoice;
private DevExpress.ExpressApp.Actions.SimpleAction aNAV_queryTaxpayer;
private DevExpress.ExpressApp.Actions.SimpleAction aNAV_queryInvoiceData;
}
}
@@ -0,0 +1,263 @@
using DevExpress.Data.Filtering;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using DevExpress.ExpressApp.Xpo;
using DevExpress.Persistent.Base;
using Newtonsoft.Json;
using SISBusiness.Module.StaticClass;
namespace SISBusiness.Module.Controllers
{
// For more typical usage scenarios, be sure to check out https://documentation.devexpress.com/eXpressAppFramework/clsDevExpressExpressAppViewControllertopic.aspx.
public partial class NAV_Online_VC : ViewController
{
public NAV_Online_VC()
{
InitializeComponent();
// Target required Views (via the TargetXXX properties) and create their Actions.
}
protected override void OnActivated()
{
base.OnActivated();
// Perform various tasks depending on the target View.
}
protected override void OnViewControlsCreated()
{
base.OnViewControlsCreated();
// Access and customize the target View control.
}
protected override void OnDeactivated()
{
// Unsubscribe from previously subscribed events and release other references and resources.
base.OnDeactivated();
}
/// <summary>
/// Adószám ellenőrzése a kiválasztott ügyfelek alapján
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void aNAV_queryTaxpayer_Execute(object sender, SimpleActionExecuteEventArgs e)
{
XPObjectSpace _ocur = View.ObjectSpace as XPObjectSpace;
Customers _Customers = View.SelectedObjects[0] as Customers;
CustomersFrom _CustomersFrom = _ocur.FindObject<CustomersFrom>(CriteriaOperator.Parse("1=1"));
var _postData = new
{
customersfrom = _CustomersFrom.Oid.ToString(),
taxPayer = _Customers.VATNumber.Substring(0, 8),
softwareId = "123456789123456789",
softwareName = "3C ERP System",
softwareOperation = "ONLINE_SERVICE",
softwareMainVersion = "17.2.3",
softwareDevName = "3C Távközlési Kft.",
softwareDevContact = "http:\\3ctelecom.hu",
softwareDevCountryCode = "HU",
softwareDevTaxNumber = "10644209-2-43"
};
RestAPI.ExecuteRootePOST("onlineinvoice/querytaxpayer", true, JsonConvert.SerializeObject(_postData));
var _StatusCode = RestAPI.StatusCode;
var _StatusDescription = RestAPI.StatusMessage;
Tracing.Tracer.LogText(_StatusCode.ToString());
Tracing.Tracer.LogText(_StatusDescription.ToString());
dynamic _ResultJSON = JsonConvert.DeserializeObject(_StatusDescription);
if (_ResultJSON.status.ToString() == "OK")
{
if (_ResultJSON.taxpayerValidity["0"].ToString() == "false")
{
_ocur.Session.ExecuteNonQuery(string.Format("UPDATE Customers set NAV_valid = 0,NAV_queryDate=NOW() WHERE Oid = '{0}'",
_Customers.Oid.ToString()));
}
if (_ResultJSON.taxpayerValidity["0"].ToString() == "true")
{
_ocur.Session.ExecuteNonQuery(string.Format("UPDATE Customers set NAV_valid = 1,NAV_queryDate=NOW() WHERE Oid = '{0}'",
_Customers.Oid.ToString()));
}
Application.ShowViewStrategy.ShowMessage("Adószám ellenőrzés megtörtént !", InformationType.Success, 2000, InformationPosition.Bottom);
}
if (_ResultJSON.status.ToString() == "ERROR")
{
string _ERROR = "Adószám ellenőrzés nem történt meg !";
_ERROR += " [" + _ResultJSON.xml.result.message.ToString() + "]";
Application.ShowViewStrategy.ShowMessage(_ERROR, InformationType.Error, 5000, InformationPosition.Bottom);
}
}
private void aNAV_manageInvoice_Execute(object sender, SimpleActionExecuteEventArgs e)
{
XPObjectSpace _ocur = View.ObjectSpace as XPObjectSpace;
InvoiceHeader _InvoiceHeader = View.SelectedObjects[0] as InvoiceHeader;
string _operation = "CREATE";
if (_InvoiceHeader.IsStorno)
{
_operation = "STORNO";
}
var _postData = new
{
documentnumber = _InvoiceHeader.DocumentNumber,
customersfrom = _InvoiceHeader.CustomersFrom.Oid.ToString(),
operation = _operation,
technicalAnnulment = false,
softwareId = "123456789123456789",
softwareName = "3C ERP System",
softwareOperation = "ONLINE_SERVICE",
softwareMainVersion = "17.2.3",
softwareDevName = "3C Távközlési Kft.",
softwareDevContact = "http:\\3ctelecom.hu",
softwareDevCountryCode = "HU",
softwareDevTaxNumber = "10644209-2-43"
};
RestAPI.ExecuteRootePOST("onlineinvoice/manageinvoice", true, JsonConvert.SerializeObject(_postData));
var _StatusCode = RestAPI.StatusCode;
var _StatusDescription = RestAPI.StatusMessage;
Tracing.Tracer.LogText(_StatusCode.ToString());
Tracing.Tracer.LogText(_StatusDescription.ToString());
if (_StatusCode == 200)
{
dynamic _ResultJSON = JsonConvert.DeserializeObject(_StatusDescription);
if (_ResultJSON.status.ToString() == "OK")
{
_ocur.Session.ExecuteNonQuery(string.Format("UPDATE InvoiceHeader set NAV_transactionID='{0}' WHERE Oid = '{1}'", _ResultJSON.transactionId["0"].ToString(), _InvoiceHeader.Oid.ToString()));
Application.ShowViewStrategy.ShowMessage("A számla beküldése megtörtént !", InformationType.Success, 2000, InformationPosition.Bottom);
}
if (_ResultJSON.status.ToString() == "ERROR")
{
string _ERROR = "A számla beküldése nem történt meg !";
_ERROR += " [" + _ResultJSON.ToString() + "]";
Application.ShowViewStrategy.ShowMessage(_ERROR, InformationType.Error, 5000, InformationPosition.Bottom);
}
}
else
{
string _ERROR = "A számla beküldése nem történt meg !";
_ERROR += " [" + _StatusDescription + "]";
Application.ShowViewStrategy.ShowMessage(_ERROR, InformationType.Error, 5000, InformationPosition.Bottom);
}
(View as ListView).CollectionSource.Reload();
}
private void aNAV_queryInvoiceStatus_Execute(object sender, SimpleActionExecuteEventArgs e)
{
XPObjectSpace _ocur = View.ObjectSpace as XPObjectSpace;
InvoiceHeader _InvoiceHeader = View.SelectedObjects[0] as InvoiceHeader;
var _postData = new
{
documentnumber = _InvoiceHeader.DocumentNumber,
customersfrom = _InvoiceHeader.CustomersFrom.Oid.ToString(),
transactionId = _InvoiceHeader.NAV_transactionId,
softwareId = "123456789123456789",
softwareName = "3C ERP System",
softwareOperation = "ONLINE_SERVICE",
softwareMainVersion = "17.2.3",
softwareDevName = "3C Távközlési Kft.",
softwareDevContact = "http:\\3ctelecom.hu",
softwareDevCountryCode = "HU",
softwareDevTaxNumber = "10644209-2-43"
};
RestAPI.ExecuteRootePOST("onlineinvoice/queryinvoicestatus", true, JsonConvert.SerializeObject(_postData));
var _StatusCode = RestAPI.StatusCode;
var _StatusDescription = RestAPI.StatusMessage;
Tracing.Tracer.LogText(_StatusCode.ToString());
Tracing.Tracer.LogText(_StatusDescription.ToString());
if (_StatusCode == 200)
{
dynamic _ResultJSON = JsonConvert.DeserializeObject(_StatusDescription);
if (_ResultJSON.status.ToString() == "OK")
{
_ocur.Session.ExecuteNonQuery(string.Format("UPDATE InvoiceHeader set NAV_InvoiceStatus='{0}',NAV_queryDate=NOW() WHERE Oid = '{1}'",
_ResultJSON.processingResults.processingResult.invoiceStatus.ToString(), _InvoiceHeader.Oid.ToString()));
Application.ShowViewStrategy.ShowMessage("A számla státusz lekérdezése megtörtént !", InformationType.Success, 2000, InformationPosition.Bottom);
}
if (_ResultJSON.status.ToString() == "ERROR")
{
}
}
else
{
string _ERROR = "A számla státusz ellenőrzés nem történt meg !";
_ERROR += " [" + _StatusDescription + "]";
Application.ShowViewStrategy.ShowMessage(_ERROR, InformationType.Error, 5000, InformationPosition.Bottom);
}
}
private void aNAV_queryInvoiceData_Execute(object sender, SimpleActionExecuteEventArgs e)
{
InvoiceHeader _InvoiceHeader = View.SelectedObjects[0] as InvoiceHeader;
var _postData = new
{
invoiceNumber = _InvoiceHeader.DocumentNumber,
customersfrom = _InvoiceHeader.CustomersFrom.Oid.ToString(),
softwareId = "123456789123456789",
softwareName = "3C ERP System",
softwareOperation = "ONLINE_SERVICE",
softwareMainVersion = "17.2.3",
softwareDevName = "3C Távközlési Kft.",
softwareDevContact = "http:\\3ctelecom.hu",
softwareDevCountryCode = "HU",
softwareDevTaxNumber = "10644209-2-43"
};
RestAPI.ExecuteRootePOST("onlineinvoice/queryinvoicedata", true, JsonConvert.SerializeObject(_postData));
var _StatusCode = RestAPI.StatusCode;
var _StatusDescription = RestAPI.StatusMessage;
Tracing.Tracer.LogText(_StatusCode.ToString());
Tracing.Tracer.LogText(_StatusDescription.ToString());
if (_StatusCode == 200)
{
dynamic _ResultJSON = JsonConvert.DeserializeObject(_StatusDescription);
if (_ResultJSON.status.ToString() == "OK")
{
if (_ResultJSON.queryResults.availablePage.ToString()=="0")
{
string _ERROR = "A számla adat ellenőrzés megtörtént ! Nincs elérhető adat!";
Application.ShowViewStrategy.ShowMessage(_ERROR, InformationType.Warning, 5000, InformationPosition.Bottom);
}
if (_ResultJSON.queryResults.availablePage.ToString() != "0")
{
string _ERROR = "A számla adat ellenőrzés megtörtént !";
Application.ShowViewStrategy.ShowMessage(_ERROR, InformationType.Success, 5000, InformationPosition.Bottom);
}
}
if (_ResultJSON.status.ToString() == "ERROR")
{
string _ERROR = "A számla adat ellenőrzés nem történt meg !";
_ERROR += " [" + _ResultJSON.technicalValidationMessages.message.ToString() +"]";
Application.ShowViewStrategy.ShowMessage(_ERROR, InformationType.Error, 5000, InformationPosition.Bottom);
}
}
else
{
string _ERROR = "A számla státusz ellenőrzés nem történt meg !";
_ERROR += " [" + _StatusDescription + "]";
Application.ShowViewStrategy.ShowMessage(_ERROR, InformationType.Error, 5000, InformationPosition.Bottom);
}
}
}
}
@@ -0,0 +1,135 @@
<?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>
<metadata name="aNAV_queryInvoiceStatus.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 56</value>
</metadata>
<metadata name="aNAV_manageInvoice.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 95</value>
</metadata>
<metadata name="aNAV_queryTaxpayer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 134</value>
</metadata>
<metadata name="aNAV_queryInvoiceData.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>714, 134</value>
</metadata>
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>
@@ -0,0 +1,29 @@
using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl.PermissionPolicy;
using DevExpress.Xpo;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SISBusiness.Module.Laravel
{
[DefaultClassOptions, Persistent("Users")]
public class Users : XPLiteObject
{
public Users(Session session)
: base(session)
{
}
public override void AfterConstruction()
{
base.AfterConstruction();
}
[Key(true), Persistent("id")] public int id;
[Persistent("name")] public string name;
[Persistent("email")] public string email;
[Persistent("api_token")] public string api_token;
[Persistent("permissionpolicyuser"), NoForeignKey] public PermissionPolicyUser PermissionPolicyUser;
[NonPersistent, VisibleInListView(false), VisibleInLookupListView(false)] public string row_password;
}
}
@@ -9,6 +9,20 @@
</Actions>
</ActionDesign>
<BOModel>
<Class Name="SISBusiness.Module.Customers">
<OwnMembers>
<Member Name="NAV_queryDate" Caption="NAV lekérdezés dátuma" />
<Member Name="NAV_queryTaxpayer" Caption="NAV adózó lekérdezés" />
<Member Name="NAV_valid" Caption="NAV valós?" />
</OwnMembers>
</Class>
<Class Name="SISBusiness.Module.InvoiceHeader">
<OwnMembers>
<Member Name="NAV_InvoiceStatus" Caption="NAV számla státusza" />
<Member Name="NAV_queryDate" Caption="NAV dátum" />
<Member Name="NAV_transactionId" Caption="NAV tranzakció azon." />
</OwnMembers>
</Class>
<Class Name="SISBusiness.Module.NAVInvoiceReport" Caption="Adóhatósági ellenőrzési adatszolgáltatás">
<OwnMembers>
<Member Name="DocumentNumberBegin" Caption="Számlatömb előtag" />
@@ -30,6 +44,23 @@
</Items>
</NavigationItems>
<Views>
<ListView Id="Customers_ListView_Base">
<Variants>
<Variant Id="@Customers_ListView_NAV" Caption="Ügyfelek (belföldi NAV)" />
</Variants>
</ListView>
<DetailView Id="CustomersFrom_DetailView">
<Layout>
<LayoutGroup Id="Main">
<LayoutGroup Id="SimpleEditors">
<LayoutGroup Id="Autod257e2eb-d1ce-4fce-9922-dea39f6d87ed" Caption="Autod257e2eb-d1ce-4fce-9922-dea39f6d87ed(3)" />
</LayoutGroup>
<TabbedGroup Id="Tabs">
<LayoutGroup Id="Item2" Caption="NAV beállítások" />
</TabbedGroup>
</LayoutGroup>
</Layout>
</DetailView>
<DetailView Id="CustomersOrder_DetailView">
<Layout>
<LayoutGroup Id="Main">
@@ -42,6 +73,23 @@
</LayoutGroup>
</Layout>
</DetailView>
<DetailView Id="InvoiceHeader_DetailView_NAV">
<Items>
<ActionContainerViewItem Id="@InvoiceHeader_Description_AC" Caption="@InvoiceHeader_Description_AC(63)" />
<ActionContainerViewItem Id="@InvoiceHeader_Description_AC_Header" Caption="@InvoiceHeader_Description_AC_Header(70)" />
<ActionContainerViewItem Id="@InvoiceRows_AC" Caption="@InvoiceRows_AC(63)" />
<ActionContainerViewItem Id="@InvoiceRows_Cloner_AC" Caption="@InvoiceRows_Cloner_AC(61)" />
<ActionContainerViewItem Id="@InvoiceRows_Products_AC" Caption="@InvoiceRows_Products_AC(78)" />
<ActionContainerViewItem Id="@InvoiceRows_Services_AC" Caption="@InvoiceRows_Services_AC(79)" />
<PropertyEditor Id="OrderInHeader_Collection" Caption="Bejövő megrendelések (termék)" />
</Items>
<Layout>
<LayoutGroup Id="Main">
<LayoutGroup Id="SimpleEditors" Caption="SimpleEditors" />
</LayoutGroup>
</Layout>
</DetailView>
<ListView Id="InvoiceHeader_ListView_NAV" Caption="NAV jel. köt. szlák" />
<DetailView Id="NAVInvoiceReport_DetailView">
<Items>
<ActionContainerViewItem Id="@NAVReport" Caption="@NAVReport(13)" />
File diff suppressed because it is too large Load Diff
@@ -5,6 +5,10 @@
<Action Id="aOpenWindowsExplorer" ImageName="console" Index="0" />
<Action Id="aCreateNAVInvoiceReportXML" ImageName="Action_Export_ToXML" />
<Action Id="aCustomer_SyncBusinessDirectory" ImageName="server_document" />
<Action Id="aNAV_manageInvoice" Caption="NAV számlabeküldés" TargetObjectsCriteria="[TotalVATHUF] &gt;= 100000.0 Or [TotalVATHUF] &lt;= -100000.0" ImageName="BO_Skull" />
<Action Id="aNAV_queryInvoiceData" Caption="NAV számla lekérdezés" ImageName="BO_Skull" />
<Action Id="aNAV_queryInvoiceStatus" Caption="NAV számla státusz" ImageName="BO_Skull" />
<Action Id="aNAV_queryTaxpayer" Caption="NAV adószám ellenőrzés" ImageName="BO_Skull" />
<Action Id="aZoomListView" ImageName="zoom_in" />
</Actions>
<ActionToContainerMapping>
@@ -19,6 +23,14 @@
<Member Name="DocumentPath" PropertyEditorType="MM.Module.Win.Editors.FolderBrowseEditor" />
</OwnMembers>
</Class>
<Class Name="SISBusiness.Module.CustomersFrom">
<OwnMembers>
<Member Name="NAV_exchangeKey" Caption="NAV cserekulcs" />
<Member Name="NAV_login" Caption="NAV felhasználó" />
<Member Name="NAV_password" IsPassword="True" Caption="NEV jelszó" />
<Member Name="NAV_xmlSignkey" Caption="NAV aláírókulcs" />
</OwnMembers>
</Class>
<Class Name="SISBusiness.Module.NAVInvoiceReport" ImageName="BO_Customer" />
<Class Name="SISBusiness.Module.OfferOutHeader">
<OwnMembers>
@@ -33,6 +45,19 @@
</BOModel>
<NavigationItems GenerateRelatedViewVariantsGroup="True">
<Items>
<Item Id="FinancialTransactions">
<Items>
<Item Id="@ID_AccountTransactions">
<Items>
<Item Id="@Invoices">
<Items>
<Item Id="@InvoiceHeader_ListView_NAV" ViewId="InvoiceHeader_ListView_NAV" IsNewNode="True" />
</Items>
</Item>
</Items>
</Item>
</Items>
</Item>
<Item Id="Reports">
<Items>
<Item Id="NAVInvoiceReport_ListView" ImageName="BO_Customer" ViewId="NAVInvoiceReport_DetailView" />
@@ -42,11 +67,11 @@
</NavigationItems>
<Options EnableHtmlFormatting="True" />
<SchemaModules>
<SchemaModule Name="CloneObjectModule" Version="15.2.5.0" IsNewNode="True" />
<SchemaModule Name="SchedulerModuleBase" Version="15.2.5.0" IsNewNode="True" />
<SchemaModule Name="SchedulerWindowsFormsModule" Version="15.2.5.0" IsNewNode="True" />
<SchemaModule Name="SystemModule" Version="15.2.5.0" IsNewNode="True" />
<SchemaModule Name="SystemWindowsFormsModule" Version="15.2.5.0" IsNewNode="True" />
<SchemaModule Name="CloneObjectModule" Version="17.2.3.0" IsNewNode="True" />
<SchemaModule Name="SchedulerModuleBase" Version="17.2.3.0" IsNewNode="True" />
<SchemaModule Name="SchedulerWindowsFormsModule" Version="17.2.3.0" IsNewNode="True" />
<SchemaModule Name="SystemModule" Version="17.2.3.0" IsNewNode="True" />
<SchemaModule Name="SystemWindowsFormsModule" Version="17.2.3.0" IsNewNode="True" />
</SchemaModules>
<Views>
<ListView Id="BusinessDirectory_ListView_Zoom" ClassName="SISBusiness.Module.BusinessDirectory" IsNewNode="True">
@@ -85,6 +110,93 @@
<ColumnInfo Id="Completed" Index="4" Width="49" />
</Columns>
</ListView>
<ListView Id="Customers_ListView_Base">
<Variants>
<Variant Id="@Active" Index="0" />
<Variant Id="@Delete" Index="1" />
<Variant Id="@Customers_ListView_NAV" ViewID="Customers_ListView_NAV" Index="2" IsNewNode="True" />
</Variants>
</ListView>
<ListView Id="Customers_ListView_NAV" ClassName="SISBusiness.Module.Customers" Criteria="[Address1.Country] Is Null Or StartsWith([Address1.Country.ShortName], 'HU')" IsNewNode="True">
<Columns IsNewNode="True">
<ColumnInfo Id="Address1.NumberOfDoor" PropertyName="Address1.NumberOfDoor" Index="-1" IsNewNode="True" />
<ColumnInfo Id="CustomerNumber" PropertyName="CustomerNumber" Index="0" Width="99" IsNewNode="True" />
<ColumnInfo Id="FullName" PropertyName="FullName" Index="1" Width="80" SortIndex="0" SortOrder="Ascending" IsNewNode="True" />
<ColumnInfo Id="Address1.Country" PropertyName="Address1.Country" Index="2" Width="108" IsNewNode="True" />
<ColumnInfo Id="Address1.ZipPostal" PropertyName="Address1.ZipPostal" Index="3" Width="108" IsNewNode="True" />
<ColumnInfo Id="Address1.City" PropertyName="Address1.City" Index="4" Width="84" IsNewNode="True" />
<ColumnInfo Id="Address1.Street" PropertyName="Address1.Street" Index="5" Width="95" IsNewNode="True" />
<ColumnInfo Id="Address1.District" PropertyName="Address1.District" Index="6" IsNewNode="True" />
<ColumnInfo Id="Address1.NameOfStreet" PropertyName="Address1.NameOfStreet" Index="7" IsNewNode="True" />
<ColumnInfo Id="Address1.Building" PropertyName="Address1.Building" Index="8" IsNewNode="True" />
<ColumnInfo Id="Address1.StairCase" PropertyName="Address1.StairCase" Index="9" IsNewNode="True" />
<ColumnInfo Id="Address1.NumberOfStreet" PropertyName="Address1.NumberOfStreet" Index="10" IsNewNode="True" />
<ColumnInfo Id="Address1.TypeOfStreet" PropertyName="Address1.TypeOfStreet" Index="11" IsNewNode="True" />
<ColumnInfo Id="CompanyRegistrationNumber" PropertyName="CompanyRegistrationNumber" Index="12" Width="156" IsNewNode="True" />
<ColumnInfo Id="VATNumber" PropertyName="VATNumber" Index="13" Width="72" IsNewNode="True" />
<ColumnInfo Id="NAV_queryTaxpayer" PropertyName="NAV_queryTaxpayer" Width="120" Index="14" IsNewNode="True" />
<ColumnInfo Id="NAV_valid" PropertyName="NAV_valid" Width="68" Index="15" IsNewNode="True" />
<ColumnInfo Id="NAV_queryDate" PropertyName="NAV_queryDate" Width="97" Index="16" IsNewNode="True" />
</Columns>
</ListView>
<DetailView Id="CustomersFrom_DetailView">
<Layout>
<LayoutGroup Id="Main">
<LayoutGroup Id="SimpleEditors" RelativeSize="29.249617151607964">
<LayoutGroup Id="Autod257e2eb-d1ce-4fce-9922-dea39f6d87ed" RelativeSize="70.157068062827221">
<LayoutGroup Id="Customers_col1" RelativeSize="47.455752212389378">
<LayoutItem Id="CustomerNumber" RelativeSize="23.880597014925375" />
<LayoutItem Id="Name" RelativeSize="17.910447761194028" />
<LayoutItem Id="FullName" RelativeSize="17.910447761194028" />
<LayoutItem Id="CustomersNG" RelativeSize="17.910447761194028" />
<LayoutItem Id="Email" RelativeSize="22.388059701492537" />
</LayoutGroup>
<LayoutGroup Id="Customers_col2" RelativeSize="52.544247787610622">
<LayoutItem Id="IsDefault" RelativeSize="21.64179104477612" />
<LayoutItem Id="VATNumber" RelativeSize="17.910447761194028" />
<LayoutItem Id="VATNumberEU" RelativeSize="17.910447761194028" />
<LayoutItem Id="WebSite" RelativeSize="17.910447761194028" />
<LayoutItem Id="CompanyRegistrationNumber" RelativeSize="24.626865671641792" />
</LayoutGroup>
</LayoutGroup>
<LayoutGroup Id="Party" RelativeSize="29.842931937172775">
<LayoutItem Id="Address1" RelativeSize="47.368421052631582" />
<LayoutItem Id="Address2" RelativeSize="52.631578947368418" />
<LayoutItem Id="Description" Removed="True" />
</LayoutGroup>
</LayoutGroup>
<TabbedGroup Id="Tabs" RelativeSize="70.750382848392036">
<LayoutGroup Id="Item1" TextAlignMode="AlignWithChildren">
<LayoutItem Id="CustomersAddress" TextAlignMode="AutoSize" />
</LayoutGroup>
<LayoutGroup Id="CustomerBankAccounts" TextAlignMode="AlignWithChildren">
<LayoutItem Id="CustomerBankAccounts" TextAlignMode="AutoSize" />
</LayoutGroup>
<LayoutGroup Id="Contacts" TextAlignMode="AlignWithChildren">
<LayoutItem Id="Contacts" TextAlignMode="AutoSize" />
</LayoutGroup>
<LayoutGroup Id="PhoneNumbers" TextAlignMode="AlignWithChildren">
<LayoutItem Id="PhoneNumbers" TextAlignMode="AutoSize" />
</LayoutGroup>
<LayoutGroup Id="Customers_BusinessDirectory" TextAlignMode="AlignWithChildren" Index="4" RelativeSize="100">
<LayoutItem Id="Customers_BusinessDirectory" TextAlignMode="AutoSize" RelativeSize="100" />
</LayoutGroup>
<LayoutGroup Id="Item2" ShowCaption="True" CaptionLocation="Top" Direction="Vertical" Index="5" RelativeSize="100" IsNewNode="True">
<LayoutItem Id="NAV_login" ViewItem="NAV_login" Index="0" RelativeSize="7.6372315035799518" IsNewNode="True" />
<LayoutItem Id="NAV_password" ViewItem="NAV_password" Index="1" RelativeSize="7.6372315035799518" IsNewNode="True" />
<LayoutItem Id="NAV_xmlSignkey" ViewItem="NAV_xmlSignkey" Index="2" RelativeSize="7.6372315035799518" IsNewNode="True" />
<LayoutItem Id="NAV_exchangeKey" ViewItem="NAV_exchangeKey" Index="3" RelativeSize="77.088305489260136" IsNewNode="True" />
</LayoutGroup>
<LayoutGroup Id="OfferOutRows" TextAlignMode="AlignWithChildren" Index="5" RelativeSize="100" Removed="True">
<LayoutItem Id="OfferOutRows" TextAlignMode="AutoSize" RelativeSize="100" />
</LayoutGroup>
<LayoutGroup Id="CustomersFileAttachment" TextAlignMode="AlignWithChildren" Removed="True">
<LayoutItem Id="CustomersFileAttachment" TextAlignMode="AutoSize" />
</LayoutGroup>
</TabbedGroup>
</LayoutGroup>
</Layout>
</DetailView>
<DetailView Id="CustomersOrder_DetailView">
<Layout>
<LayoutGroup Id="Main">
@@ -148,6 +260,156 @@
<ColumnInfo Id="DocumentPath" PropertyName="DocumentPath" Index="6" InLineEdit="True" InLineEditAutoCommit="True" PropertyEditorType="MM.Module.Win.Editors.FolderBrowseEditor" IsNewNode="True" />
</Columns>
</ListView>
<DetailView Id="InvoiceHeader_DetailView_NAV" ClassName="SISBusiness.Module.InvoiceHeader" IsNewNode="True">
<Items IsNewNode="True">
<ActionContainerViewItem Id="@InvoiceHeader_Description_AC" ActionContainer="@InvoiceHeader_Description_AC" Caption="@InvoiceHeader_Description_AC(33)" IsNewNode="True" />
<ActionContainerViewItem Id="@InvoiceHeader_Description_AC_Header" ActionContainer="@InvoiceHeader_Description_AC_Header" IsNewNode="True" />
<ActionContainerViewItem Id="@InvoiceRows_AC" ActionContainer="@InvoiceRows_AC" Caption="@InvoiceRows_AC(66)" IsNewNode="True" />
<ActionContainerViewItem Id="@InvoiceRows_Cloner_AC" ActionContainer="@InvoiceRows_Cloner_AC" Caption="@InvoiceRows_Cloner_AC(42)" IsNewNode="True" />
<ActionContainerViewItem Id="@InvoiceRows_Products_AC" ActionContainer="@InvoiceRows_Products_AC" IsNewNode="True" />
<ActionContainerViewItem Id="@InvoiceRows_Services_AC" ActionContainer="@InvoiceRows_Services_AC" IsNewNode="True" />
<PropertyEditor Id="AssetsHandling_GLMixed" PropertyName="AssetsHandling_GLMixed" IsNewNode="True" />
<PropertyEditor Id="AssetsHandling_Note" PropertyName="AssetsHandling_Note" IsNewNode="True" />
<PropertyEditor Id="AssetsHandlingStatus" PropertyName="AssetsHandlingStatus" IsNewNode="True" />
<PropertyEditor Id="BankInformation" PropertyName="BankInformation" IsNewNode="True" />
<PropertyEditor Id="BookEntryErrorString" PropertyName="BookEntryErrorString" IsNewNode="True" />
<PropertyEditor Id="ConnectInfo" PropertyName="ConnectInfo" IsNewNode="True" />
<PropertyEditor Id="Contact_string" PropertyName="Contact_string" IsNewNode="True" />
<PropertyEditor Id="Contracts_Collection" PropertyName="Contracts_Collection" View="InvoiceHeader_Contracts_Collection_ListView" IsNewNode="True" />
<PropertyEditor Id="CurrencyName" PropertyName="CurrencyName" IsNewNode="True" />
<PropertyEditor Id="CurrencyRate" PropertyName="CurrencyRate" IsNewNode="True" />
<PropertyEditor Id="Customers" PropertyName="Customers" IsNewNode="True" />
<PropertyEditor Id="CustomersFrom" PropertyName="CustomersFrom" IsNewNode="True" />
<PropertyEditor Id="CustomersRefNumber_string" PropertyName="CustomersRefNumber_string" IsNewNode="True" />
<PropertyEditor Id="DateCreated" PropertyName="DateCreated" IsNewNode="True" />
<PropertyEditor Id="DateExecution" PropertyName="DateExecution" IsNewNode="True" />
<PropertyEditor Id="DateExecutionMonth" PropertyName="DateExecutionMonth" IsNewNode="True" />
<PropertyEditor Id="DateExecutionQuarter" PropertyName="DateExecutionQuarter" IsNewNode="True" />
<PropertyEditor Id="DateExecutionWeek" PropertyName="DateExecutionWeek" IsNewNode="True" />
<PropertyEditor Id="DateExecutionYear" PropertyName="DateExecutionYear" IsNewNode="True" />
<PropertyEditor Id="DatePayment" PropertyName="DatePayment" IsNewNode="True" />
<PropertyEditor Id="DatePaymentMode" PropertyName="DatePaymentMode" IsNewNode="True" />
<PropertyEditor Id="Description" PropertyName="Description" IsNewNode="True" />
<PropertyEditor Id="DescriptionHeader" PropertyName="DescriptionHeader" IsNewNode="True" />
<PropertyEditor Id="DisplayName" PropertyName="DisplayName" IsNewNode="True" />
<PropertyEditor Id="DocumentNumber" PropertyName="DocumentNumber" IsNewNode="True" />
<PropertyEditor Id="DocumentNumberProforma" PropertyName="DocumentNumberProforma" IsNewNode="True" />
<PropertyEditor Id="Factoring_PDF_Signed" PropertyName="Factoring_PDF_Signed" IsNewNode="True" />
<PropertyEditor Id="Factoring_Send" PropertyName="Factoring_Send" IsNewNode="True" />
<PropertyEditor Id="Factoring_Send_Date" PropertyName="Factoring_Send_Date" IsNewNode="True" />
<PropertyEditor Id="Factoring_Send_Number" PropertyName="Factoring_Send_Number" IsNewNode="True" />
<PropertyEditor Id="GLAccounts" PropertyName="GLAccounts" IsNewNode="True" />
<PropertyEditor Id="HUNumberToText" PropertyName="HUNumberToText" IsNewNode="True" />
<PropertyEditor Id="InvoiceFactoringBank" PropertyName="InvoiceFactoringBank" IsNewNode="True" />
<PropertyEditor Id="InvoiceFactoringParameter" PropertyName="InvoiceFactoringParameter" IsNewNode="True" />
<PropertyEditor Id="InvoiceFactoringRows" PropertyName="InvoiceFactoringRows" IsNewNode="True" />
<PropertyEditor Id="InvoiceHeader" PropertyName="InvoiceHeader" IsNewNode="True" />
<PropertyEditor Id="InvoiceHold" PropertyName="InvoiceHold" View="InvoiceHeader_InvoiceHold_ListView" IsNewNode="True" />
<PropertyEditor Id="InvoicePeriod" PropertyName="InvoicePeriod" IsNewNode="True" />
<PropertyEditor Id="InvoiceRows" PropertyName="InvoiceRows" View="InvoiceHeader_InvoiceRows_ListView_NAV" IsNewNode="True" />
<PropertyEditor Id="InvoiceType" PropertyName="InvoiceType" IsNewNode="True" />
<PropertyEditor Id="InvoiceVATRows" PropertyName="InvoiceVATRows" View="InvoiceHeader_InvoiceVATRows_ListView" IsNewNode="True" />
<PropertyEditor Id="IsAssetsHandling" PropertyName="IsAssetsHandling" IsNewNode="True" />
<PropertyEditor Id="IsBookEntry" PropertyName="IsBookEntry" IsNewNode="True" />
<PropertyEditor Id="IsCorrigendum" PropertyName="IsCorrigendum" IsNewNode="True" />
<PropertyEditor Id="IsCreditNote" PropertyName="IsCreditNote" IsNewNode="True" />
<PropertyEditor Id="IsEditable" PropertyName="IsEditable" IsNewNode="True" />
<PropertyEditor Id="IsFactoring" PropertyName="IsFactoring" IsNewNode="True" />
<PropertyEditor Id="IsImported" PropertyName="IsImported" IsNewNode="True" />
<PropertyEditor Id="IsLateCharge" PropertyName="IsLateCharge" IsNewNode="True" />
<PropertyEditor Id="IsProforma" PropertyName="IsProforma" IsNewNode="True" />
<PropertyEditor Id="IsStorno" PropertyName="IsStorno" IsNewNode="True" />
<PropertyEditor Id="IsVATClosed" PropertyName="IsVATClosed" IsNewNode="True" />
<PropertyEditor Id="LateChargesBalanceHUF" PropertyName="LateChargesBalanceHUF" IsNewNode="True" />
<PropertyEditor Id="LateChargesCountMode" PropertyName="LateChargesCountMode" IsNewNode="True" />
<PropertyEditor Id="NAV_InvoiceStatus" PropertyName="NAV_InvoiceStatus" IsNewNode="True" />
<PropertyEditor Id="NAV_queryDate" PropertyName="NAV_queryDate" IsNewNode="True" />
<PropertyEditor Id="NAV_transactionId" PropertyName="NAV_transactionId" IsNewNode="True" />
<PropertyEditor Id="NotNeedFinancial" PropertyName="NotNeedFinancial" IsNewNode="True" />
<PropertyEditor Id="Oid" PropertyName="Oid" IsNewNode="True" />
<PropertyEditor Id="OrderInHeader_Collection" PropertyName="OrderInHeader_Collection" View="InvoiceHeader_OrderInHeader_Collection_ListView" IsNewNode="True" />
<PropertyEditor Id="PaymentOption" PropertyName="PaymentOption" IsNewNode="True" />
<PropertyEditor Id="PCIGroup" PropertyName="PCIGroup" IsNewNode="True" />
<PropertyEditor Id="PDF_Copy" PropertyName="PDF_Copy" IsNewNode="True" />
<PropertyEditor Id="PDF_Original" PropertyName="PDF_Original" IsNewNode="True" />
<PropertyEditor Id="PrintCopy" PropertyName="PrintCopy" IsNewNode="True" />
<PropertyEditor Id="QualityOption" PropertyName="QualityOption" IsNewNode="True" />
<PropertyEditor Id="row_Controlling" PropertyName="row_Controlling" IsNewNode="True" />
<PropertyEditor Id="row_CostHolder" PropertyName="row_CostHolder" IsNewNode="True" />
<PropertyEditor Id="row_CostPlace" PropertyName="row_CostPlace" IsNewNode="True" />
<PropertyEditor Id="row_CustomsTariffs" PropertyName="row_CustomsTariffs" IsNewNode="True" />
<PropertyEditor Id="row_Description" PropertyName="row_Description" IsNewNode="True" />
<PropertyEditor Id="row_DiscountPercent" PropertyName="row_DiscountPercent" IsNewNode="True" />
<PropertyEditor Id="row_InvoicePeriod" PropertyName="row_InvoicePeriod" IsNewNode="True" />
<PropertyEditor Id="row_JobNumberObjects" PropertyName="row_JobNumberObjects" IsNewNode="True" />
<PropertyEditor Id="row_ListPriceDEV" PropertyName="row_ListPriceDEV" IsNewNode="True" />
<PropertyEditor Id="row_ListPriceHUF" PropertyName="row_ListPriceHUF" IsNewNode="True" />
<PropertyEditor Id="row_Products" PropertyName="row_Products" IsNewNode="True" />
<PropertyEditor Id="row_QTT" PropertyName="row_QTT" IsNewNode="True" />
<PropertyEditor Id="row_QualityOption" PropertyName="row_QualityOption" IsNewNode="True" />
<PropertyEditor Id="row_Services" PropertyName="row_Services" IsNewNode="True" />
<PropertyEditor Id="row_ShortName" PropertyName="row_ShortName" IsNewNode="True" />
<PropertyEditor Id="row_UniqueObjects" PropertyName="row_UniqueObjects" IsNewNode="True" />
<PropertyEditor Id="row_Units" PropertyName="row_Units" IsNewNode="True" />
<PropertyEditor Id="row_VAT" PropertyName="row_VAT" IsNewNode="True" />
<PropertyEditor Id="ShipmentOption" PropertyName="ShipmentOption" IsNewNode="True" />
<PropertyEditor Id="TotalBruttoDEV" PropertyName="TotalBruttoDEV" IsNewNode="True" />
<PropertyEditor Id="TotalBruttoHUF" PropertyName="TotalBruttoHUF" IsNewNode="True" />
<PropertyEditor Id="TotalNettoDEV" PropertyName="TotalNettoDEV" IsNewNode="True" />
<PropertyEditor Id="TotalNettoHUF" PropertyName="TotalNettoHUF" IsNewNode="True" />
<PropertyEditor Id="TotalVATDEV" PropertyName="TotalVATDEV" IsNewNode="True" />
<PropertyEditor Id="TotalVATHUF" PropertyName="TotalVATHUF" IsNewNode="True" />
<PropertyEditor Id="UserCreated" PropertyName="UserCreated" IsNewNode="True" />
<PropertyEditor Id="VATAvowalType" PropertyName="VATAvowalType" IsNewNode="True" />
<PropertyEditor Id="WorkSheet_Header_Collection" PropertyName="WorkSheet_Header_Collection" View="InvoiceHeader_WorkSheet_Header_Collection_ListView" IsNewNode="True" />
</Items>
<Layout IsNewNode="True">
<LayoutGroup Id="Main" Index="0" ShowCaption="False" RelativeSize="100" IsNewNode="True">
<LayoutGroup Id="SimpleEditors" Index="0" ShowCaption="False" RelativeSize="100" TextAlignMode="AlignWithChildren" IsNewNode="True">
<LayoutItem Id="InvoiceRows" ShowCaption="False" ViewItem="InvoiceRows" Index="0" RelativeSize="100" IsNewNode="True" />
</LayoutGroup>
</LayoutGroup>
</Layout>
</DetailView>
<ListView Id="InvoiceHeader_InvoiceRows_ListView_NAV" ClassName="SISBusiness.Module.InvoiceRows" MasterDetailView="InvoiceRows_DetailView_FIFO" MasterDetailMode="ListViewOnly" IsNewNode="True">
<Columns IsNewNode="True">
<ColumnInfo Id="RowIndex" PropertyName="RowIndex" Index="0" Width="65" IsNewNode="True" />
<ColumnInfo Id="CustomsTariffs" PropertyName="CustomsTariffs" Index="1" Width="90" InLineEdit="True" InLineEditAutoCommit="True" IsNewNode="True" />
<ColumnInfo Id="ShortName" PropertyName="ShortName" Index="2" Width="91" SortIndex="0" SortOrder="Ascending" IsNewNode="True" />
<ColumnInfo Id="Units" PropertyName="Units" Index="3" Width="111" IsNewNode="True" />
<ColumnInfo Id="QTT" PropertyName="QTT" Index="4" Width="71" IsNewNode="True" />
<ColumnInfo Id="VAT" PropertyName="VAT" Index="5" Width="40" IsNewNode="True" />
<ColumnInfo Id="SumPriceHUF" PropertyName="SumPriceHUF" Index="6" Width="115" IsNewNode="True" />
<ColumnInfo Id="SumPriceVATHUF" PropertyName="SumPriceVATHUF" Index="7" Width="99" IsNewNode="True" />
<ColumnInfo Id="SumPriceBruttoHUF" PropertyName="SumPriceBruttoHUF" Index="8" Width="115" IsNewNode="True" />
<ColumnInfo Id="SumPriceDEV" PropertyName="SumPriceDEV" Index="9" Width="114" IsNewNode="True" />
<ColumnInfo Id="SumPriceVATDEV" PropertyName="SumPriceVATDEV" Index="10" Width="98" IsNewNode="True" />
<ColumnInfo Id="SumPriceBruttoDEV" PropertyName="SumPriceBruttoDEV" Index="11" Width="114" IsNewNode="True" />
</Columns>
<SplitLayout Direction="Vertical" IsNewNode="True" />
</ListView>
<ListView Id="InvoiceHeader_ListView_NAV" ClassName="SISBusiness.Module.InvoiceHeader" IsGroupPanelVisible="True" AutoExpandAllGroups="True" Criteria="[IsEditable] = False And [IsProforma] = False And ([TotalVATHUF] &gt;= 100000 Or [TotalVATHUF] &lt;= -100000) And Not IsNullOrEmpty([DocumentNumber]) And [DateCreated] &gt;= #2018-07-01#" AllowDelete="False" AllowLink="False" AllowNew="False" IsListViewProcess="False" MasterDetailMode="ListViewAndDetailView" MasterDetailView="InvoiceHeader_DetailView_NAV" DetailViewID="InvoiceHeader_DetailView_NAV" IsNewNode="True">
<Columns IsNewNode="True">
<ColumnInfo Id="Customers" PropertyName="Customers" Index="0" Width="101" GroupIndex="-1" IsNewNode="True" />
<ColumnInfo Id="CustomersFrom" PropertyName="CustomersFrom" Index="1" Width="125" GroupIndex="0" SortOrder="Ascending" IsNewNode="True" />
<ColumnInfo Id="DocumentNumber" PropertyName="DocumentNumber" Index="2" Width="101" IsNewNode="True" />
<ColumnInfo Id="DateCreated" PropertyName="DateCreated" Index="3" Width="94" IsNewNode="True" />
<ColumnInfo Id="CurrencyName" PropertyName="CurrencyName" Index="4" Width="87" SortOrder="Ascending" GroupIndex="1" IsNewNode="True" />
<ColumnInfo Id="DateExecution" PropertyName="DateExecution" Index="5" Width="104" IsNewNode="True" />
<ColumnInfo Id="DatePayment" PropertyName="DatePayment" Index="6" Width="99" IsNewNode="True" />
<ColumnInfo Id="TotalNettoHUF" PropertyName="TotalNettoHUF" Width="116" Index="7" IsNewNode="True" />
<ColumnInfo Id="TotalVATHUF" PropertyName="TotalVATHUF" Width="124" Index="8" IsNewNode="True" />
<ColumnInfo Id="TotalBruttoHUF" PropertyName="TotalBruttoHUF" Index="9" Width="114" IsNewNode="True" />
<ColumnInfo Id="TotalBruttoDEV" PropertyName="TotalBruttoDEV" Index="10" Width="113" IsNewNode="True" />
<ColumnInfo Id="IsStorno" PropertyName="IsStorno" Index="11" Width="52" IsNewNode="True" />
<ColumnInfo Id="IsCorrigendum" PropertyName="IsCorrigendum" Index="12" Width="70" IsNewNode="True" />
<ColumnInfo Id="IsBookEntry" PropertyName="IsBookEntry" Index="13" Width="70" IsNewNode="True" />
<ColumnInfo Id="NAV_transactionId" PropertyName="NAV_transactionId" Width="122" Index="14" IsNewNode="True" />
<ColumnInfo Id="NAV_InvoiceStatus" PropertyName="NAV_InvoiceStatus" Width="119" Index="15" IsNewNode="True" />
<ColumnInfo Id="NAV_queryDate" PropertyName="NAV_queryDate" Width="73" Index="16" IsNewNode="True" />
</Columns>
<SplitLayout Direction="Vertical" IsNewNode="True" />
</ListView>
<DetailView Id="NAVInvoiceReport_DetailView">
<Items>
<ActionContainerViewItem Id="@NAVReport" ActionContainer="@NAVReport" IsNewNode="True" />
@@ -1 +1,3 @@
DevExpress.ExpressApp.ViewController, DevExpress.ExpressApp.v17.2, Version=17.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.ExpressApp.SystemModule.SystemModule, DevExpress.ExpressApp.v17.2, Version=17.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
@@ -93,7 +93,6 @@
</Reference>
<Reference Include="DevExpress.ExpressApp.Reports.Win.v17.2, Version=17.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.ExpressApp.Security.v17.2, Version=17.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -159,6 +158,7 @@
</Reference>
<Reference Include="DevExpress.XtraPrinting.v17.2, Version=17.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraGrid.v17.2, Version=17.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.8.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
@@ -167,6 +167,7 @@
<Name>System</Name>
<Private>False</Private>
</Reference>
<Reference Include="System.configuration" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
<Private>False</Private>
@@ -186,6 +187,7 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="BusinessObjects\FilteringCriterion.cs" />
<Compile Include="BusinessObjects\NAVInvoiceReport.cs" />
<Compile Include="Controllers\AuditTrailVCC.cs">
<SubType>Component</SubType>
@@ -193,12 +195,24 @@
<Compile Include="Controllers\AuditTrailVCC.Designer.cs">
<DependentUpon>AuditTrailVCC.cs</DependentUpon>
</Compile>
<Compile Include="Controllers\CriteriaController_VC.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controllers\CriteriaController_VC.Designer.cs">
<DependentUpon>CriteriaController_VC.cs</DependentUpon>
</Compile>
<Compile Include="Controllers\CustomersOrderVC.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controllers\CustomersOrderVC.Designer.cs">
<DependentUpon>CustomersOrderVC.cs</DependentUpon>
</Compile>
<Compile Include="Controllers\GLAccount_VC.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controllers\GLAccount_VC.Designer.cs">
<DependentUpon>GLAccount_VC.cs</DependentUpon>
</Compile>
<Compile Include="Controllers\NavigationItemVCC.cs">
<SubType>Component</SubType>
</Compile>
@@ -211,6 +225,18 @@
<Compile Include="Controllers\NavInvoiceReportVC.Designer.cs">
<DependentUpon>NavInvoiceReportVC.cs</DependentUpon>
</Compile>
<Compile Include="Controllers\NAV\NAV_Invoice_VC.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controllers\NAV\NAV_Invoice_VC.Designer.cs">
<DependentUpon>NAV_Invoice_VC.cs</DependentUpon>
</Compile>
<Compile Include="Controllers\NAV\NAV_Online_VC.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controllers\NAV\NAV_Online_VC.Designer.cs">
<DependentUpon>NAV_Online_VC.cs</DependentUpon>
</Compile>
<Compile Include="Controllers\ZoomListViewVC.cs">
<SubType>Component</SubType>
</Compile>
@@ -218,6 +244,7 @@
<DependentUpon>ZoomListViewVC.cs</DependentUpon>
</Compile>
<Compile Include="Editors\FolderBrowseEditor.cs" />
<Compile Include="Laravel\Users.cs" />
<Compile Include="Module.cs">
<SubType>Component</SubType>
</Compile>
@@ -226,6 +253,7 @@
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="DatabaseUpdate\Updater.cs" />
<Compile Include="StaticClass\RestAPI.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Controllers\AuditTrailVCC.resx">
@@ -234,9 +262,15 @@
<EmbeddedResource Include="Controllers\CustomersOrderVC.resx">
<DependentUpon>CustomersOrderVC.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controllers\GLAccount_VC.resx">
<DependentUpon>GLAccount_VC.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controllers\NavInvoiceReportVC.resx">
<DependentUpon>NavInvoiceReportVC.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controllers\NAV\NAV_Online_VC.resx">
<DependentUpon>NAV_Online_VC.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controllers\ZoomListViewVC.resx">
<DependentUpon>ZoomListViewVC.cs</DependentUpon>
</EmbeddedResource>
@@ -0,0 +1,258 @@
using DevExpress.Data.Filtering;
using DevExpress.ExpressApp.Xpo;
using DevExpress.Persistent.Base;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace SISBusiness.Module.StaticClass
{
/// <summary>
/// Laravel RestAPI kezelő osztály
/// </summary>
public static class RestAPI
{
private static string _UriBase;
private static Dictionary<string, string> _LoginInfo;
private static int _StatusCode;
private static string _StatusMessage;
private static string _ResponseMessage;
private static string _API_Token;
private static string _GeocodeAPIKey;
public static int StatusCode
{
get { return _StatusCode; }
}
public static string StatusMessage
{
get { return _StatusMessage; }
}
public static string ResponseMessage
{
get { return _ResponseMessage; }
}
public static void Init(XPObjectSpace _onew)
{
_ResponseMessage = "";
_UriBase = ConfigurationManager.AppSettings["Uri"];
_GeocodeAPIKey = ConfigurationManager.AppSettings["GeocodeAPIKey"];
Laravel.Users _Users = _onew.FindObject<SISBusiness.Module.Laravel.Users>(CriteriaOperator.Parse("email='sysadmin@emango.com'"));
if (_Users != null)
{
if (String.IsNullOrEmpty(_Users.api_token))
{
_LoginInfo = new Dictionary<string, string> { { "email", "sysadmin@emango.com" },
{ "password", "SysAdmin" }};
var json = ExecuteRootePOST("login", false, JsonConvert.SerializeObject(_LoginInfo));
if (_StatusCode == 200)
{
var dd = JsonConvert.DeserializeObject(json);
var dict = JObject.Parse(json).SelectToken("data").ToObject<Dictionary<string, string>>();
_API_Token = dict["api_token"];
Tracing.Tracer.LogText(string.Format("API Token requested : {0}", _API_Token.ToString()));
}
else
{
Tracing.Tracer.LogText("API Token request fail!");
}
}
else
{
_API_Token = _Users.api_token;
Tracing.Tracer.LogText(string.Format("API Token found : {0}", _API_Token.ToString()));
}
}
else
{
Tracing.Tracer.LogText("Laravel user not found!");
}
}
public static string ExecuteRootePOST(string _RooteString, bool _NeedAuthentication, string _postData)
{
_StatusCode = 500;
_StatusMessage = "Not respond ...";
string json = "";
Tracing.Tracer.LogText(_UriBase + _RooteString);
Tracing.Tracer.LogText(_postData);
try
{
var _Uri = new Uri(_UriBase + _RooteString, UriKind.Absolute);
var _WebRequest = WebRequest.Create(_Uri);
HttpWebRequest _HttpWebRequest = (HttpWebRequest)_WebRequest;
_HttpWebRequest.Method = "POST";
byte[] byteArray = Encoding.UTF8.GetBytes(_postData);
if (_NeedAuthentication)
{
_HttpWebRequest.PreAuthenticate = true;
_HttpWebRequest.Headers.Add("Authorization", "Bearer " + _API_Token);
_HttpWebRequest.Headers.Add("cdb", GeneralFunction.GLOBAL_SQLDatabase);
}
_HttpWebRequest.ContentType = "application/json";
_HttpWebRequest.Accept = "application/json";
_HttpWebRequest.ContentLength = byteArray.Length;
Stream _dataStream = _HttpWebRequest.GetRequestStream();
_dataStream.Write(byteArray, 0, byteArray.Length);
_dataStream.Close();
Tracing.Tracer.LogText("Web request initialized !");
try
{
WebResponse _WebResponse = _WebRequest.GetResponse();
_StatusCode = (int)((HttpWebResponse)_WebResponse).StatusCode;
_StatusMessage = ((HttpWebResponse)_WebResponse).StatusDescription;
var _responseStream = _WebResponse.GetResponseStream();
if (_responseStream != null)
{
var _StreamReader = new StreamReader(_responseStream, Encoding.Default);
json = _StreamReader.ReadToEnd();
}
else
{
return json;
}
try
{
_StatusMessage = JsonConvert.DeserializeObject(json).ToString();
}
catch (Exception ex)
{
Tracing.Tracer.LogText(ex.Message);
}
_responseStream.Close();
_WebResponse.Close();
}
catch (WebException ex)
{
Tracing.Tracer.LogText(ex.Message);
if (ex.Status == WebExceptionStatus.ProtocolError)
{
var _WebResponse = (HttpWebResponse)ex.Response;
_StatusCode = (int)_WebResponse.StatusCode;
_StatusMessage = ((HttpWebResponse)_WebResponse).StatusDescription;
}
}
}
catch (Exception ex)
{
Tracing.Tracer.LogText(ex.Message);
}
return json;
}
public static string ExecuteRooteGET(string _RooteString, bool _NeedAuthentication)
{
string json = "";
Tracing.Tracer.LogText(_UriBase + _RooteString);
var _Uri = new Uri(_UriBase + _RooteString, UriKind.Absolute);
var _WebRequest = WebRequest.Create(_Uri);
_WebRequest.Method = "GET";
HttpWebRequest _HttpWebRequest = (HttpWebRequest)_WebRequest;
if (_NeedAuthentication)
{
_HttpWebRequest.PreAuthenticate = true;
_HttpWebRequest.Headers.Add("Authorization", "Bearer " + _API_Token);
_HttpWebRequest.Headers.Add("cdb", GeneralFunction.GLOBAL_SQLDatabase);
}
_HttpWebRequest.Accept = "application/json";
_HttpWebRequest.ContentType = "application/json";
try
{
WebResponse _WebResponse = _WebRequest.GetResponse();
_StatusCode = (int)((HttpWebResponse)_WebResponse).StatusCode;
Stream _responseStream = _WebResponse.GetResponseStream();
if (_responseStream == null) return json;
StreamReader _StreamReader = new StreamReader(_responseStream, Encoding.Default);
json = _StreamReader.ReadToEnd();
_responseStream.Close();
_WebResponse.Close();
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
var _WebResponse = (HttpWebResponse)ex.Response;
_StatusCode = (int)_WebResponse.StatusCode;
}
}
return json;
}
public static string ExecuteGOOGLEMAPSGET(string _RouteString)
{
string json = "";
Tracing.Tracer.LogText(_UriBase + _RouteString);
var _Uri = new Uri("https://maps.googleapis.com/maps/api/geocode/json?address=" + _RouteString + "&key=" + _GeocodeAPIKey, UriKind.Absolute);
var _WebRequest = WebRequest.Create(_Uri);
_WebRequest.Method = "GET";
HttpWebRequest _HttpWebRequest = (HttpWebRequest)_WebRequest;
_HttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";
_HttpWebRequest.ContentType = "application/json";
_HttpWebRequest.Headers.Add("accept-language", "hu-HU,hu;q=0.9,en-US;q=0.8,en;q=0.7,pt;q=0.6");
try
{
WebResponse _WebResponse = _WebRequest.GetResponse();
_StatusCode = (int)((HttpWebResponse)_WebResponse).StatusCode;
Stream _responseStream = _WebResponse.GetResponseStream();
if (_responseStream == null) return json;
StreamReader _StreamReader = new StreamReader(_responseStream, Encoding.Default);
json = _StreamReader.ReadToEnd();
_responseStream.Close();
_WebResponse.Close();
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
var _WebResponse = (HttpWebResponse)ex.Response;
_StatusCode = (int)_WebResponse.StatusCode;
}
}
return json;
}
}
}