Files
2017-03-08 11:21:27 +01:00

542 lines
34 KiB
C#

using System;
using System.Linq;
using DevExpress.Data.Filtering;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using DevExpress.ExpressApp.SystemModule;
using DevExpress.ExpressApp.Utils;
using DevExpress.ExpressApp.Xpo;
using Nuvolar.Module.BusinessObjects.Popup;
using DevExpress.Xpo;
using DevExpress.Persistent.BaseImpl;
using System.Collections;
//using System.Windows.Forms;
namespace Nuvolar.Module.Controllers
{
// For more typical usage scenarios, be sure to check out https://documentation.devexpress.com/eXpressAppFramework/clsDevExpressExpressAppViewControllertopic.aspx.
public partial class OrderIn_VC : ViewController
{
public OrderIn_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 aMoveOrderIn_Execute(object sender, PopupWindowShowActionExecuteEventArgs e)
{
//XPObjectSpace _onew = (XPObjectSpace)Application.CreateObjectSpace();
XPObjectSpace _onew = View.ObjectSpace as XPObjectSpace;
OrderInMovePopup _OrderInMovePopup = (OrderInMovePopup)e.PopupWindow.View.SelectedObjects[0];
Guid _GUID=Guid.Empty;
if (_OrderInMovePopup.OrderInHeaderTo == null)
{
return;
}
foreach (StorageOutRowsInRows _StorageOutRowsInRows in _OrderInMovePopup.StorageOutRowsInRows)
{
if (_StorageOutRowsInRows.QTT_Will > 0 && _StorageOutRowsInRows.QTT_Will<=_StorageOutRowsInRows.QTT)
{
if (_StorageOutRowsInRows.StorageOutRows.OrderInRows.DividedOriginal == 0)
{
_StorageOutRowsInRows.StorageOutRows.OrderInRows.DividedOriginal = 1;
_GUID = Guid.NewGuid();
_StorageOutRowsInRows.StorageOutRows.OrderInRows.DividedGUID = _GUID;
}
else
{
_GUID = _StorageOutRowsInRows.StorageOutRows.OrderInRows.DividedGUID;
}
_StorageOutRowsInRows.StorageOutRows.OrderInRows.QTT-= _StorageOutRowsInRows.QTT_Will;
_StorageOutRowsInRows.StorageOutRows.OrderInRows.QTT_DeliveryNoted-= _StorageOutRowsInRows.QTT_Will;
_StorageOutRowsInRows.StorageOutRows.OrderInRows.QTT_Storaged-= _StorageOutRowsInRows.QTT_Will;
_StorageOutRowsInRows.QTT -= _StorageOutRowsInRows.QTT_Will;
_StorageOutRowsInRows.QTT_To_DeliveryOut -= _StorageOutRowsInRows.QTT_Will;
_StorageOutRowsInRows.DividedGUID = _GUID;
if (_StorageOutRowsInRows.DividedOriginal==0) {_StorageOutRowsInRows.DividedOriginal = 1; _StorageOutRowsInRows.DividedGUID = _GUID; }
if (_StorageOutRowsInRows.StorageOutRows.DividedOriginal == 0) { _StorageOutRowsInRows.StorageOutRows.DividedOriginal = 1; _StorageOutRowsInRows.StorageOutRows.DividedGUID = _GUID; }
OrderInRows _OrderInRows = _onew.GetObject(_StorageOutRowsInRows.StorageOutRows.OrderInRows);
OrderInRows _OrderInRowsNew = _onew.CreateObject<OrderInRows>();
_OrderInRowsNew.DividedOriginal = 2;
_OrderInRowsNew.DividedGUID = _GUID;
_OrderInRowsNew.APCSheetByProducts = _OrderInRows.APCSheetByProducts;
_OrderInRowsNew.Description = _OrderInRows.Description;
_OrderInRowsNew.DescriptionPrivate = _OrderInRows.DescriptionPrivate;
_OrderInRowsNew.DiscountPriceDEV = _OrderInRows.DiscountPriceDEV;
_OrderInRowsNew.DiscountPriceHUF = _OrderInRows.DiscountPriceHUF;
_OrderInRowsNew.ListPriceDEV = _OrderInRows.ListPriceDEV;
_OrderInRowsNew.ListPriceHUF = _OrderInRows.ListPriceHUF;
_OrderInRowsNew.ListPriceOriginalHUF = _OrderInRows.ListPriceOriginalHUF;
_OrderInRowsNew.OrderInHeader = _onew.GetObject(_OrderInMovePopup.OrderInHeaderTo);
_OrderInRowsNew.Products = _OrderInRows.Products;
_OrderInRowsNew.QTT = _StorageOutRowsInRows.QTT_Will;
_OrderInRowsNew.QTT_DeliveryNoted = _StorageOutRowsInRows.QTT_Will;
_OrderInRowsNew.QTT_Invoiced = 0;
_OrderInRowsNew.QTT_Process = 0;
_OrderInRowsNew.QTT_Storaged = _StorageOutRowsInRows.QTT_Will;
_OrderInRowsNew.QTT_To = 0;
_OrderInRowsNew.QualityOption = _OrderInRows.QualityOption;
_OrderInRowsNew.RowGroup1 = _OrderInRows.RowGroup1;
_OrderInRowsNew.RowGroup2 = _OrderInRows.RowGroup2;
_OrderInRowsNew.RowIndex = 0;
_OrderInRowsNew.VAT = _OrderInRows.VAT;
StorageOutRows _StorageOutRows = _onew.GetObject(_StorageOutRowsInRows.StorageOutRows);
StorageOutRows _StorageOutRowsNew = _onew.CreateObject<StorageOutRows>();
_StorageOutRowsNew.StorageOutHeader = _StorageOutRows.StorageOutHeader;
_StorageOutRowsNew.OrderInRows = _OrderInRowsNew;
_StorageOutRowsNew.Products = _StorageOutRows.Products;
_StorageOutRowsNew.QTT = _StorageOutRowsInRows.QTT_Will;
_StorageOutRowsNew.QTT_To_DeliveryOut = _StorageOutRowsInRows.QTT_Will;
_StorageOutRowsNew.QTT_Will = 0;
_StorageOutRowsNew.RowIndex = 0;
_StorageOutRowsNew.StorageComputed = _StorageOutRows.StorageComputed;
_StorageOutRowsNew.StorageOutHeader = _StorageOutRows.StorageOutHeader;
_StorageOutRowsNew.DividedGUID = _GUID;
_StorageOutRowsNew.DividedOriginal = 2;
StorageOutRowsInRows _StorageOutRowsInRowsNew = _onew.CreateObject<StorageOutRowsInRows>();
_StorageOutRowsInRowsNew.StorageOutRows = _StorageOutRowsNew;
_StorageOutRowsInRowsNew.QTT = _StorageOutRowsInRows.QTT_Will;
_StorageOutRowsInRowsNew.QTT_To_DeliveryOut = _StorageOutRowsInRows.QTT_Will;
_StorageOutRowsInRowsNew.QTT_Will = 0;
_StorageOutRowsInRowsNew.RowIndex = 0;
_StorageOutRowsInRowsNew.StorageInRows = _onew.GetObject(_StorageOutRowsInRows.StorageInRows);
_StorageOutRowsInRowsNew.DividedGUID = _GUID;
_StorageOutRowsInRowsNew.DividedOriginal = 2;
DeliveryNoteOutRows _DeliveryNoteOutRows = _onew.FindObject<DeliveryNoteOutRows>(CriteriaOperator.Parse("StorageOutRowsInRows.Oid=?",_StorageOutRowsInRows.Oid));
if (_DeliveryNoteOutRows!=null)
{
if (_DeliveryNoteOutRows.DividedOriginal == 0) { _DeliveryNoteOutRows.DividedOriginal = 1; _DeliveryNoteOutRows.DividedGUID = _GUID; }
_DeliveryNoteOutRows.QTT -= _StorageOutRowsInRows.QTT_Will;
DeliveryNoteOutRows _DeliveryNoteOutRowsNew = _onew.CreateObject<DeliveryNoteOutRows>();
_DeliveryNoteOutRowsNew.DeliveryNoteOutHeader = _onew.GetObject(_DeliveryNoteOutRows.DeliveryNoteOutHeader);
_DeliveryNoteOutRowsNew.Note = "";
_DeliveryNoteOutRowsNew.QTT = _StorageOutRowsInRows.QTT_Will;
_DeliveryNoteOutRowsNew.QTT_Invoiced = 0;
_DeliveryNoteOutRowsNew.QTT_Will = 0;
_DeliveryNoteOutRowsNew.RowIndex = 0;
_DeliveryNoteOutRowsNew.StorageOutRowsInRows = _StorageOutRowsInRowsNew;
_DeliveryNoteOutRowsNew.DividedGUID = _GUID;
_DeliveryNoteOutRowsNew.DividedOriginal = 2;
}
_onew.CommitChanges();
}
}
//Frame.GetController<RefreshController>().RefreshAction.DoExecute();
//View.Refresh();
}
private void aMoveOrderIn_CustomizePopupWindowParams(object sender, CustomizePopupWindowParamsEventArgs e)
{
XPObjectSpace _ocur = (XPObjectSpace)View.ObjectSpace;
XPObjectSpace _onew = (XPObjectSpace)Application.CreateObjectSpace();
OrderInHeader _OrderInHeader = (OrderInHeader)View.SelectedObjects[0];
OrderInMovePopup _OrderInMovePopup = _onew.CreateObject<OrderInMovePopup>();
_onew.Session.ExecuteNonQuery("UPDATE StorageOutRowsInRows set DividedOriginal=0 WHERE DividedOriginal IS NULL");
_OrderInMovePopup.OrderInHeader = _onew.GetObject<OrderInHeader>(_OrderInHeader);
e.View = Application.CreateDetailView(_onew, "OrderInMovePopup_DetailView", true, _OrderInMovePopup);
}
private void aOrderInStorageOut_Execute(object sender, PopupWindowShowActionExecuteEventArgs e)
{
XPObjectSpace _onew = (XPObjectSpace)Application.CreateObjectSpace();
UnitOfWork _uow_lock = new UnitOfWork(_onew.Session.DataLayer);
User _User = _onew.GetObject(SecuritySystem.CurrentUser as User);
StorageComputed _StorageComputed;
try
{
//--==Ellenőrzések==--
//____________________________________________________________________________________________________________________
OrderInHeader _OrderInHeader = _onew.GetObjectByKey<OrderInHeader>((View.SelectedObjects[0] as OrderInHeader).Oid);
StorageSelectPopup _StorageSelectPopup = _onew.GetObject(e.PopupWindow.View.SelectedObjects[0] as StorageSelectPopup);
if (_OrderInHeader.OrderInRows.Count <= 0)
{
throw new Exception(string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions\\OrderInRows", "NoRowsInOrder"),
string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions", "MsgBoxCheckItAgain"))));
}
ArrayList _OrderInRows_Collection = new ArrayList();
foreach (OrderInRows _OrderInRows in _OrderInHeader.OrderInRows)
{
if (_OrderInRows.QTT_Process > 0)
{
if (_OrderInRows.QTT_Process + _OrderInRows.QTT_Storaged + _OrderInRows.QTT_Storaged_Will > _OrderInRows.QTT)
{
//// Ha meghaladja a kitárolás a rendelteket
throw new Exception(string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions\\OrderInRows", "TooMutchQuantityInOrderIn"),
_OrderInRows.RowIndex.ToString() + string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions", "MsgBoxCheckItAgain"))));
}
if (_OrderInRows.QTT_Process + _OrderInRows.QTT_DeliveryNoted > _OrderInRows.QTT)
{
//// Ha meghaladja a kiszállítás a rendelteket
throw new Exception(string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions\\OrderInRows", "TooMutchQuantityInOrderIn"),
_OrderInRows.RowIndex.ToString() + string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions", "MsgBoxCheckItAgain"))));
}
//// Szabad készlet ellenőrzése
_StorageComputed = _onew.FindObject<StorageComputed>(CriteriaOperator.Parse("Storage.Oid=? AND Products.Oid=?", _StorageSelectPopup.Storage.Oid,
_OrderInRows.Products.Oid));
if (_StorageComputed == null)
{
throw new Exception(string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions\\StorageComputed", "NoProductsInStorage"),
_OrderInRows.RowIndex, _OrderInRows.Products.ShortName, _StorageSelectPopup.Storage.ShortName) + "\n" +
string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions", "MsgBoxCheckItAgain")));
}
if ((_StorageComputed.QTTFree < _OrderInRows.QTT_Process))
{
throw new Exception(string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions\\StorageComputed", "NoProductsInStorage"),
_OrderInRows.RowIndex, _OrderInRows.Products.ShortName, _StorageSelectPopup.Storage.ShortName) + "\n" +
string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions", "MsgBoxCheckItAgain")));
}
if (_StorageComputed != null)
{
//// Mimimum ár ellenőrzés
if ((Application.Model.Options as IModelOptionsExtender).RequreMinimumPriceCheck)
{
if (_StorageComputed.MimumumPriceOutHUF < _OrderInRows.FinalPriceHUF)
{
throw new Exception(string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions\\StorageComputed", "BadMinimumPrice"),
_OrderInRows.RowIndex, _OrderInRows.Products.ShortName, _StorageComputed.MimumumPriceOutHUF, _OrderInRows.FinalPriceHUF) + "\n" +
string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions", "MsgBoxCheckItAgain")));
}
}
}
_OrderInRows_Collection.Add(_onew.GetObjectByKey<OrderInRows>(_OrderInRows.Oid));
}
}
if (_OrderInRows_Collection.Count == 0)
throw new Exception(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions\\OrderInRows", "NoSelectionforStorageOutandDeliveryNoteOut") + "\n" +
string.Format(CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions", "MsgBoxCheckItAgain")));
//--==Zárolás==--
//____________________________________________________________________________________________________________________
if (!LockingModule.LockObject(_uow_lock, typeof(StorageComputed), "-", _User))
{
LockingObject _LockingObject = _onew.FindObject<LockingObject>(CriteriaOperator.Parse("TableName=?", typeof(StorageComputed).Name + "-" + "-"));
string _Prompt = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\\NuvolarExceptions\\StorageComputed", "CanNotStorageInByLocking");
throw new Exception(string.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated));
return;
}
else
{
//--==Kitárolás==--
//____________________________________________________________________________________________________________________
StorageOutHeader _StorageOutHeader = new StorageOutHeader(_onew.Session);
_StorageOutHeader.Active = true;
_StorageOutHeader.CustomersFrom = _onew.GetObjectByKey<CustomersFrom>(_OrderInHeader.CustomersFrom.Oid);
_StorageOutHeader.Customers = _onew.GetObjectByKey<Customers>(_OrderInHeader.Customers.Oid);
_StorageOutHeader.StorageMoveType = _onew.GetObjectByKey<StorageMoveType>(_StorageSelectPopup.StorageMoveType.Oid);
_StorageOutHeader.Storage = _onew.GetObjectByKey<Storage>(_StorageSelectPopup.Storage.Oid);
foreach (OrderInRows _OrderInRows in _OrderInRows_Collection)
{
double _QTT_Mod = 0;
double _QTT_Free = 0;
double _QTT_ReservedOut = 0;
double _QTT_Will_Out = 0;
StorageOutRows _StorageOutRows = new StorageOutRows(_onew.Session);
_StorageOutRows.StorageOutHeader = _StorageOutHeader;
_StorageOutRows.Products = _onew.GetObjectByKey<Products>(_OrderInRows.Products.Oid);
_StorageOutRows.OrderInRows = _onew.GetObjectByKey<OrderInRows>(_OrderInRows.Oid);
XPCollection<StorageInRows> _StorageInRows_Collection = new XPCollection<StorageInRows>(PersistentCriteriaEvaluationBehavior.InTransaction,
_onew.Session, CriteriaOperator.Parse("StorageInHeader.Storage=? and StorageInHeader.IsEditable=False and StorageInHeader.IsStorno=False and Products=?",
_StorageOutHeader.Storage, _onew.GetObjectByKey<Products>(_OrderInRows.Products.Oid)));
_StorageInRows_Collection.Sorting.Add(new SortProperty("StorageInHeader.CreateDate", DevExpress.Xpo.DB.SortingDirection.Ascending));
_QTT_Mod = _OrderInRows.QTT_Process;
foreach (StorageInRows _StorageInRows in _StorageInRows_Collection)
{
_QTT_Free = _StorageInRows.QTT - _StorageInRows.QTT_Out - _StorageInRows.QTT_Out_Will;
if (_QTT_Free > 0)
{
if (_QTT_Free < _QTT_Mod)
{
_StorageInRows.QTT_Out_Will += _QTT_Free;
_StorageOutRows.QTT_Will += _QTT_Free;
_QTT_Mod -= _QTT_Free;
//------- FIFO sor beszúrása
StorageOutRowsInRows _StorageOutRowsInRows = _onew.FindObject<StorageOutRowsInRows>(CriteriaOperator.Parse("StorageInRows=? and StorageOutRows=?", _StorageInRows, _StorageOutRows), true);
if (_StorageOutRowsInRows != null)
{
_StorageOutRowsInRows.QTT += _QTT_Free;
}
else
{
_StorageOutRowsInRows = new StorageOutRowsInRows(_onew.Session);
_StorageOutRowsInRows.StorageInRows = _StorageInRows;
_StorageOutRowsInRows.StorageOutRows = _StorageOutRows;
_StorageOutRowsInRows.QTT = _QTT_Free;
}
}
else
{
_StorageInRows.QTT_Out_Will += _QTT_Mod;
_StorageOutRows.QTT_Will += _QTT_Mod;
//------- FIFO sor beszúrása
StorageOutRowsInRows _StorageOutRowsInRows = _onew.FindObject<StorageOutRowsInRows>(CriteriaOperator.Parse("StorageInRows=? and StorageOutRows=?", _StorageInRows, _StorageOutRows), true);
if (_StorageOutRowsInRows != null)
{
_StorageOutRowsInRows.QTT += _QTT_Mod;
}
else
{
_StorageOutRowsInRows = new StorageOutRowsInRows(_onew.Session);
_StorageOutRowsInRows.StorageInRows = _StorageInRows;
_StorageOutRowsInRows.StorageOutRows = _StorageOutRows;
_StorageOutRowsInRows.QTT = _QTT_Mod;
}
break; // TODO: might not be correct. Was : Exit For
}
}
}
_StorageOutRows.RowIndex = _StorageOutHeader.StorageOutRows.Count;
_StorageComputed = _onew.FindObject<StorageComputed>(CriteriaOperator.Parse("Storage=? and Products=?", _StorageOutHeader.Storage,
_onew.GetObjectByKey<Products>(_OrderInRows.Products.Oid)), true);
_QTT_ReservedOut = _StorageComputed.QTTReservedOut;
XPCollection<StorageOutRows> _StorageOutRows_Collection_R = new XPCollection<StorageOutRows>(PersistentCriteriaEvaluationBehavior.InTransaction,
_onew.Session, CriteriaOperator.Parse("QTT_Will>0 and StorageOutHeader.Storage=? and Products=?", _StorageOutHeader.Storage,
_onew.GetObjectByKey<Products>(_OrderInRows.Products.Oid)));
foreach (StorageOutRows _StorageOutRows_R in _StorageOutRows_Collection_R)
{
_QTT_Will_Out += _StorageOutRows_R.QTT_Will;
}
_StorageComputed.QTTFree = _StorageComputed.QTTFree - (_QTT_Will_Out - _QTT_ReservedOut);
_StorageComputed.QTTReservedOut = _QTT_Will_Out;
}
//--Kitárolás véglegesítése--
//____________________________________________________________________________________________________________________
foreach (StorageOutRows _StorageOutRows in _StorageOutHeader.StorageOutRows)
{
XPCollection<StorageOutRowsInRows> _StorageOutRowsInRows_Collection = new XPCollection<StorageOutRowsInRows>(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, CriteriaOperator.Parse("StorageOutRows=?", _StorageOutRows));
foreach (StorageOutRowsInRows _StorageOutRowsInRows in _StorageOutRowsInRows_Collection)
{
if (_StorageOutRowsInRows.QTT > 0)
{
XPCollection<StorageMoveEvents> _StorageMoveEvents_Collection = new XPCollection<StorageMoveEvents>(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, CriteriaOperator.Parse("StorageInRows=?", _StorageOutRowsInRows.StorageInRows));
_StorageMoveEvents_Collection.Sorting.Add(new SortProperty("ObjectCreated", DevExpress.Xpo.DB.SortingDirection.Descending));
_StorageOutRowsInRows.StorageInRows.QTT_Out += _StorageOutRowsInRows.QTT;
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will -= _StorageOutRowsInRows.QTT;
StorageMoveEvents _StorageMoveEvents = new StorageMoveEvents(_onew.Session);
_StorageMoveEvents.StorageInRows = _StorageOutRowsInRows.StorageInRows;
_StorageMoveEvents.StorageOutRows = _StorageOutRowsInRows.StorageOutRows;
if (_StorageMoveEvents_Collection.Count > 0)
{
_StorageMoveEvents.QTT_Free_Before = _StorageMoveEvents_Collection[0].QTT_Free_After;
}
else
{
_StorageMoveEvents.QTT_Free_Before = 0;
}
_StorageMoveEvents.QTT = (-1) * _StorageOutRowsInRows.QTT;
_StorageMoveEvents.QTT_Free_After = _StorageMoveEvents.QTT_Free_Before + _StorageMoveEvents.QTT;
_StorageMoveEvents.MoveEventsType = eMoveEventsType.StorageOutFinal;
_StorageMoveEvents.ExecutionDate = _StorageOutRowsInRows.StorageOutRows.StorageOutHeader.CreateDate;
}
}
_StorageOutRows.QTT += _StorageOutRows.QTT_Will;
if (_StorageOutRows.OrderInRows != null)
{
double _QTT_WillOrug = _StorageOutRows.QTT_Will;
OrderInRows _OrderInRows = _onew.GetObjectByKey<OrderInRows>(_StorageOutRows.OrderInRows.Oid);
_OrderInRows.QTT_Storaged += _StorageOutRows.QTT_Will;
_OrderInRows.QTT_Process = 0;
}
_StorageComputed = _onew.FindObject<StorageComputed>(CriteriaOperator.Parse("Products=? and Storage=?", _StorageOutRows.Products, _StorageOutRows.StorageOutHeader.Storage), true);
_StorageComputed.QTTReservedOut -= _StorageOutRows.QTT_Will;
_StorageOutRows.QTT_Will = 0;
}
_StorageOutHeader.IsEditable = false;
_StorageOutHeader.IsFinalized = true;
_onew.CommitChanges();
Frame.GetController<RefreshController>().RefreshAction.DoExecute();
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
LockingModule.UnLockObject(_uow_lock, typeof(StorageComputed), "-", _User);
}
}
private void aOrderInStorageOut_CustomizePopupWindowParams(object sender, CustomizePopupWindowParamsEventArgs e)
{
XPObjectSpace _onew = (XPObjectSpace)Application.CreateObjectSpace();
OrderInHeader _OrderInHeader = View.SelectedObjects[0] as OrderInHeader;
StorageSelectPopup _StorageSelectPopup = _onew.CreateObject<StorageSelectPopup>();
e.View = Application.CreateDetailView(_onew, "StorageSelectPopup_DetailView", false, _StorageSelectPopup);
}
private void aMoveOrderInBack_Execute(object sender, SimpleActionExecuteEventArgs e)
{
XPObjectSpace _onew = (XPObjectSpace)Application.CreateObjectSpace();
OrderInRows _OrderInRows = View.SelectedObjects[0] as OrderInRows;
UnitOfWork _uow = new UnitOfWork(_onew.Session.DataLayer);
if (_OrderInRows!=null && _OrderInRows.DividedOriginal==1)
{
Guid _GUID = _OrderInRows.DividedGUID;
double _QTT = _OrderInRows.QTT;
string _SQL = "";
// s.ExecuteNonQuery("UPDATE Products SET ProductName='a_'+ProductName WHERE UnitPrice>@price AND ProductName LIKE 'A%'", new string[] { "@price" }, new object[] { 10 });
// StorageOutRowsInRows
try
{
string[] _stringparam = null;
object[] _objectparam = null;
_uow.ExplicitBeginTransaction();
XPQuery<StorageOutRowsInRows> _StorageOutRowsInRows_Q = new XPQuery<StorageOutRowsInRows>(_uow, true);
var query = from q in _StorageOutRowsInRows_Q
where q.DividedGUID == _GUID
group q by q.StorageInRows into g
select new { a = g.Key.Oid, s = g.Sum(x => x.QTT) };
foreach (var item in query)
{
_SQL = "UPDATE StorageOutRowsInRows set QTT=@QTT,QTT_To_DeliveryOut=@QTT WHERE StorageInRows=@StorageInRows AND DividedGUID=@DividedGUID AND DividedOriginal=1";
_stringparam = new string[] { "@QTT", "@StorageInRows", "@DividedGUID" };
_objectparam = new object[] { item.s, item.a, _GUID };
_uow.ExecuteNonQuery(_SQL, _stringparam, _objectparam);
}
XPQuery<StorageOutRows> _StorageOutRows_Q = new XPQuery<StorageOutRows>(_uow, true);
var query2 = from q in _StorageOutRows_Q
where q.DividedGUID == _GUID
group q by q.DividedGUID into g
select new { a = g.Key, s = g.Sum(x => x.QTT) };
foreach (var item in query2)
{
_SQL = "UPDATE StorageOutRows set QTT=@QTT WHERE DividedGUID=@DividedGUID AND DividedOriginal=1";
_stringparam = new string[] { "@QTT", "@DividedGUID" };
_objectparam = new object[] { item.s, _GUID };
_uow.ExecuteNonQuery(_SQL, _stringparam, _objectparam);
}
XPQuery<StorageOutRowsInRows> _StorageOutRowsInRows_QD = new XPQuery<StorageOutRowsInRows>(_uow, true);
var query3 = from q in _StorageOutRowsInRows_QD
where q.DividedGUID == _GUID && q.DividedOriginal == 1
group q by q.Oid into g
select new { a = g.Key, s = g.Sum(x => x.QTT) };
foreach (var item in query3)
{
_SQL = "UPDATE DeliveryNoteOutRows set QTT=@QTT WHERE StorageOutRowsInRows=@StorageOutRowsInRows AND DividedGUID=@DividedGUID AND DividedOriginal=1";
_stringparam = new string[] { "@QTT", "@StorageOutRowsInRows", "@DividedGUID" };
_objectparam = new object[] { item.s, item.a, _GUID };
_uow.ExecuteNonQuery(_SQL, _stringparam, _objectparam);
}
XPQuery<OrderInRows> _OrderInRows_Q = new XPQuery<OrderInRows>(_uow, true);
var query4 = from q in _OrderInRows_Q
where q.DividedGUID == _GUID
group q by q.DividedGUID into g
select new { a = g.Key, s = g.Sum(x => x.QTT) };
foreach (var item in query4)
{
_SQL = "UPDATE OrderInRows set QTT=@QTT,QTT_DeliveryNoted=@QTT,QTT_Storaged=@QTT WHERE DividedGUID=@DividedGUID AND DividedOriginal=1";
_stringparam = new string[] { "@QTT", "@DividedGUID" };
_objectparam = new object[] { item.s, _GUID };
_uow.ExecuteNonQuery(_SQL, _stringparam, _objectparam);
}
// -------========= Törlések ==========-------------
_SQL = "DELETE FROM DeliveryNoteOutRows WHERE DividedGUID=@DividedGUID AND DividedOriginal=2";
_stringparam = new string[] { "@DividedGUID" };
_objectparam = new object[] { _GUID };
_uow.ExecuteNonQuery(_SQL, _stringparam, _objectparam);
_SQL = "DELETE FROM StorageOutRowsInRows WHERE DividedGUID=@DividedGUID AND DividedOriginal=2";
_stringparam = new string[] { "@DividedGUID" };
_objectparam = new object[] { _GUID };
_uow.ExecuteNonQuery(_SQL, _stringparam, _objectparam);
_SQL = "DELETE FROM StorageOutRows WHERE DividedGUID=@DividedGUID AND DividedOriginal=2";
_stringparam = new string[] { "@DividedGUID" };
_objectparam = new object[] { _GUID };
_uow.ExecuteNonQuery(_SQL, _stringparam, _objectparam);
_SQL = "DELETE FROM OrderInRows WHERE DividedGUID=@DividedGUID AND DividedOriginal=2";
_stringparam = new string[] { "@DividedGUID" };
_objectparam = new object[] { _GUID };
_uow.ExecuteNonQuery(_SQL, _stringparam, _objectparam);
_uow.ExplicitCommitTransaction();
}
catch (Exception _Exception)
{
_uow.ExplicitRollbackTransaction();
throw _Exception;
}
finally
{
_uow.ExplicitRollbackTransaction();
}
}
NestedFrame nestedFrame = Frame as NestedFrame;
if (nestedFrame != null)
{
View parentView = nestedFrame.View as View;
if (parentView != null)
parentView.ObjectSpace.Refresh();
}
}
private void aDeliveryNoteOutPrint_Divided_Execute(object sender, SimpleActionExecuteEventArgs e)
{
XPObjectSpace _ocur = View.ObjectSpace as XPObjectSpace;
DeliveryNoteOutRows _DeliveryNoteOutRows = View.SelectedObjects[0] as DeliveryNoteOutRows;
if (_DeliveryNoteOutRows !=null)
{
XAFPrintHelper _XAFPrintHelper = new XAFPrintHelper(_ocur, Frame, _DeliveryNoteOutRows.DeliveryNoteOutHeader.DeliveryNoteOutType.ReportDataV2, CriteriaOperator.Parse("Oid=?",_DeliveryNoteOutRows.Oid));
_XAFPrintHelper.ShowPreviewV2();
}
}
}
}