317 lines
10 KiB
C#
317 lines
10 KiB
C#
///////////////////////////////////////////////////////////
|
|
// Bool.cs
|
|
// Implementation of Class PartInventoryAdjustmentDetailedReportData
|
|
// CSLA type: Read-only object
|
|
// Created on: 30-Dec-2005
|
|
// Object design: John
|
|
// Coded: 30-Dec-2005
|
|
///////////////////////////////////////////////////////////
|
|
|
|
using System;
|
|
using System.Data;
|
|
using CSLA.Data;
|
|
using GZTW.Data;
|
|
using CSLA;
|
|
using System.Threading;
|
|
using CSLA.Security;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
namespace GZTW.AyaNova.BLL
|
|
{
|
|
/// <summary>
|
|
/// List of detailed adjustment items objects used in detailed report
|
|
/// </summary>
|
|
[Serializable]
|
|
public class PartInventoryAdjustmentDetailedReportData : ReadOnlyBase
|
|
{
|
|
|
|
#region Attributes
|
|
private ReportDataSet ds;
|
|
|
|
#endregion
|
|
|
|
#region Constructor
|
|
|
|
/// <summary>
|
|
/// Private constructor to prevent direct instantiation
|
|
/// </summary>
|
|
private PartInventoryAdjustmentDetailedReportData()
|
|
{
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region Static methods
|
|
/// <summary>
|
|
/// Returns the report key which is a property of
|
|
/// reports used to link all reports that can be used
|
|
/// with a particular data source.
|
|
/// </summary>
|
|
public static string ReportKey
|
|
{
|
|
get
|
|
{
|
|
return "PartInventoryAdjustmentDetailed";
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Get list based on filter and sort criteria
|
|
/// </summary>
|
|
/// <param name="xmlCriteria">Use AyaNova UI to easily build xmlCriteria and Ctrl-Alt-g keyboard command to display it for use in your code</param>
|
|
/// <returns>ReportDataSet</returns>
|
|
public static ReportDataSet GetItems(string xmlCriteria)
|
|
{
|
|
|
|
return ((PartInventoryAdjustmentDetailedReportData)DataPortal.Fetch(new Criteria(xmlCriteria, null, -1))).ds;
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Takes a single ID and returns a "list" of one object
|
|
/// </summary>
|
|
/// <param name="PartInventoryAdjustmentID">ID of PartInventoryAdjustment object</param>
|
|
/// <returns>ReportDataSet</returns>
|
|
public static ReportDataSet GetItem(Guid PartInventoryAdjustmentID)
|
|
{
|
|
List<Guid> l = new List<Guid>();
|
|
l.Add(PartInventoryAdjustmentID);
|
|
return ((PartInventoryAdjustmentDetailedReportData)DataPortal.Fetch(new Criteria("", l, -1))).ds;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Internal method used by list factory
|
|
/// </summary>
|
|
internal static ReportDataSet Get(string Filter, int MaxRecords, List<Guid> IDList)
|
|
{
|
|
return ((PartInventoryAdjustmentDetailedReportData)DataPortal.Fetch(new Criteria(Filter, IDList, MaxRecords))).ds;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Get list by items indicated in IDList
|
|
/// </summary>
|
|
/// <param name="IDList">Generic list of Guid's</param>
|
|
/// <returns>list of <see cref="ReportDataSet"/> objects</returns>
|
|
public static ReportDataSet GetListFromIDList(List<Guid> IDList)
|
|
{
|
|
//case 556
|
|
//Handle empty list
|
|
if (IDList.Count == 0)
|
|
return new PartInventoryAdjustmentDetailedReportData().ds;
|
|
return ((PartInventoryAdjustmentDetailedReportData)DataPortal.Fetch(new Criteria("", IDList, -1))).ds;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Initialize data set
|
|
|
|
private void InitDS()
|
|
{
|
|
ds=new ReportDataSet();
|
|
|
|
System.IO.Stream s=Assembly.GetExecutingAssembly().GetManifestResourceStream("GZTW.AyaNova.BLL.PartInventoryAdjustmentDetailedSchema.xsd");
|
|
ds.ReadXmlSchema(s);
|
|
ds.ShowOnlyStartingWith="PartInventoryAdjustment";
|
|
|
|
}
|
|
|
|
#endregion initalize data set
|
|
|
|
#region DAL DATA ACCESS
|
|
///
|
|
/// <param name="Criteria"></param>
|
|
protected override void DataPortal_Fetch(object Criteria)
|
|
{
|
|
|
|
InitDS();
|
|
|
|
|
|
|
|
Criteria crit = (Criteria)Criteria;
|
|
|
|
SafeDataReader dr = null;
|
|
try
|
|
{
|
|
#region Cached objects
|
|
|
|
//Users
|
|
UserPickList users=UserPickList.GetList(false);
|
|
|
|
|
|
|
|
#endregion cached objects
|
|
|
|
DBCommandWrapper cm = null;
|
|
|
|
#region Query
|
|
string q =
|
|
//************************************************************
|
|
"SELECT ~MAXRECS~ aPartInventoryAdjustment.aID, aPartInventoryAdjustment.aCreator, " +
|
|
"aPartInventoryAdjustment.aDateAdjusted, " +
|
|
"aPartInventoryAdjustment.AADJUSTMENTNUMBER, " +
|
|
"aPartInventoryAdjustment.aReasonForAdjustment " +
|
|
"FROM aPartInventoryAdjustment " ;
|
|
|
|
//***********************************************************************************************************
|
|
;
|
|
|
|
|
|
if (crit.MaxRecords > 0)
|
|
q = q.Replace("~MAXRECS~", "TOP " + crit.MaxRecords.ToString());
|
|
else
|
|
q = q.Replace("~MAXRECS~", "");
|
|
|
|
if (crit.IDList != null)
|
|
{
|
|
//Case 556
|
|
System.Text.StringBuilder sbIN = new System.Text.StringBuilder();
|
|
sbIN.Append(" WHERE (aPartInventoryAdjustment.aID in (");
|
|
foreach (Guid gItem in crit.IDList)
|
|
{
|
|
sbIN.Append("'");
|
|
sbIN.Append("{");
|
|
sbIN.Append(gItem.ToString().ToUpperInvariant());
|
|
sbIN.Append("}");
|
|
sbIN.Append("',");
|
|
}
|
|
sbIN.Length = sbIN.Length - 1;
|
|
sbIN.Append(")) ");
|
|
|
|
|
|
cm = DBUtil.DB.GetSqlStringCommandWrapper(q + sbIN.ToString() + " " +
|
|
AyaBizUtils.GetGridSortOrderColumns(crit.CriteriaXML));
|
|
|
|
}
|
|
else
|
|
{
|
|
//string strCrit=AyaBizUtils.GetGridColumnCriteria(crit.CriteriaXML,false);
|
|
//Grid criteria
|
|
cm = DBUtil.DB.GetSqlStringCommandWrapper(q +
|
|
AyaBizUtils.GetGridColumnCriteria(crit.CriteriaXML,true) + " " +
|
|
AyaBizUtils.GetGridSortOrderColumns(crit.CriteriaXML) );
|
|
}
|
|
|
|
#endregion query
|
|
|
|
dr=new SafeDataReader(DBUtil.DB.ExecuteReader(cm));
|
|
|
|
DataRow r=null;
|
|
while(dr.Read())
|
|
{
|
|
//*******************************************
|
|
|
|
#region PartInventoryAdjustment level
|
|
|
|
r=ds.Tables["PartInventoryAdjustment"].NewRow();
|
|
r["ID"]=dr.GetGuid("aID");
|
|
r["LT_Common_Label_Creator"]=users[dr.GetGuid("aCreator")];
|
|
r["LT_PartInventoryAdjustment_Label_DateAdjusted"]=DBUtil.ToLocal(dr.GetSmartDate("aDateAdjusted")).Date;
|
|
r["LT_PartInventoryAdjustment_Label_AdjustmentNumber"]=dr.GetInt32("AADJUSTMENTNUMBER").ToString();
|
|
r["LT_PartInventoryAdjustment_Label_ReasonForAdjustment"]=dr.GetString("aReasonForAdjustment");
|
|
|
|
|
|
ds.Tables["PartInventoryAdjustment"].Rows.Add(r);
|
|
|
|
#endregion purchase order receipt level
|
|
|
|
#region Item Level
|
|
SafeDataReader dritems=DBUtil.GetReaderFromSQLString(
|
|
"SELECT aPartWarehouse.aName AS aPartWarehouseName, " +
|
|
" aVendor.aName AS aMANUFACTURERNAME, aPart.aName, " +
|
|
" aPart.aPartNumber, aPart.aUPC, " +
|
|
"aPartCategory.aName AS aPARTCATEGORYNAME, aPartAssembly.aName " +
|
|
"AS aPARTASSEMBLYNAME, aPartInventoryAdjustmentItem.aID, " +
|
|
" aPartInventoryAdjustmentItem.aQuantityAdjustment " +
|
|
"FROM aPartInventoryAdjustmentItem " +
|
|
"LEFT JOIN aPart ON aPartInventoryAdjustmentItem.aPartID " +
|
|
"= aPart.aID " +
|
|
"LEFT JOIN aPartWarehouse ON aPartInventoryAdjustmentItem.aPartWarehouseID " +
|
|
"= aPartWarehouse.aID " +
|
|
"LEFT OUTER JOIN aPartAssembly ON aPart.aPartAssemblyID " +
|
|
"= aPartAssembly.aID LEFT " +
|
|
"OUTER JOIN aVendor ON aPart.aManufacturerID " +
|
|
"= aVendor.aID LEFT OUTER JOIN aPartCategory " +
|
|
"ON aPart.aPartCategoryID = aPartCategory.aID " +
|
|
"WHERE (aPartInventoryAdjustmentItem.aPartInventoryAdjustmentID " +
|
|
"= @ID)" ,dr.GetGuid("aID"));
|
|
|
|
|
|
while(dritems.Read())
|
|
{
|
|
r=ds.Tables["Item"].NewRow();
|
|
r["ItemID"]=dritems.GetGuid("aID");
|
|
r["LT_O_PartWarehouse"]=dritems.GetString("aPartWarehouseName");
|
|
r["LT_O_Part"]=Part.PartDisplayFormatter(
|
|
dritems.GetString("aName"),
|
|
dritems.GetString("aPARTNUMBER"),
|
|
dritems.GetString("aUPC"),
|
|
dritems.GetString("aMANUFACTURERNAME"),
|
|
dritems.GetString("aPARTCATEGORYNAME"),
|
|
dritems.GetString("aPARTASSEMBLYNAME"),
|
|
AyaBizUtils.GlobalSettings.DefaultPartDisplayFormat);
|
|
r["LT_PartInventoryAdjustmentItem_Label_QuantityAdjustment"]=dritems.GetDecimal("aQuantityAdjustment");
|
|
r["ParentID"]=dr.GetGuid("aID");
|
|
ds.Tables["Item"].Rows.Add(r);
|
|
|
|
#region Serial numbers Level
|
|
//AADJUSTMENTID
|
|
SafeDataReader drsn=DBUtil.GetReaderFromSQLString(
|
|
"SELECT aSerialNumber FROM " +
|
|
"aPartSerial WHERE (AADJUSTMENTID " +
|
|
"= @ID)" ,dritems.GetGuid("aID"));
|
|
|
|
|
|
while(drsn.Read())
|
|
{
|
|
r=ds.Tables["SN"].NewRow();
|
|
r["ParentItemID"]=dritems.GetGuid("aID");
|
|
r["LT_Common_Label_SerialNumber"]=drsn.GetString("aSerialNumber");
|
|
|
|
ds.Tables["SN"].Rows.Add(r);
|
|
}
|
|
drsn.Close();
|
|
#endregion Serial number level fields
|
|
|
|
}
|
|
dritems.Close();
|
|
#endregion item level fields
|
|
|
|
//*******************************************
|
|
}
|
|
}
|
|
finally
|
|
{
|
|
if(dr!=null) dr.Close();
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region criteria
|
|
/// <summary>
|
|
/// Criteria for identifying existing object
|
|
/// </summary>
|
|
[Serializable]
|
|
private class Criteria
|
|
{
|
|
public List<Guid> IDList;
|
|
public string CriteriaXML;
|
|
public int MaxRecords;
|
|
public Criteria(string _CriteriaXML, List<Guid> _IDList, int _MaxRecords)
|
|
{
|
|
CriteriaXML = _CriteriaXML;
|
|
IDList = _IDList;
|
|
MaxRecords = _MaxRecords;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
}//end Bool
|
|
|
|
}//end Boolspace GZTW.AyaNova.BLL |