private static List <ORM_ORD_CUO_Position_CustomerOrganizationalUnitDistribution> Search(Query query, string connectionString, DbConnection connection, DbTransaction transaction) { CSV2Core.Core.Interfaces.IManagedConnection managedConnection = new CSV2Core_MySQL.MySQLManagedConnection(); List <ORM_ORD_CUO_Position_CustomerOrganizationalUnitDistribution> items; try { managedConnection.set(connectionString, connection, transaction); var loader = new CSV2Core_MySQL.Dictionaries.MultiTable.Loader.DictionaryLoader(managedConnection.getConnection(), managedConnection.getTransaction()); DbCommand command = managedConnection.manage(query.CreateSelectQuery(TableName)); query.SetParameters(command); items = new List <ORM_ORD_CUO_Position_CustomerOrganizationalUnitDistribution>(); var reader = new CSV2Core_MySQL.Support.DBSQLReader(command.ExecuteReader()); reader.SetOrdinals(new string[] { "ORD_CUO_Position_CustomerOrganizationalUnitDistributionID", "Quantity", "CMN_BPT_CTM_OrganizationalUnit_RefID", "ORD_CUO_CustomerOrder_Position_RefID", "Creation_Timestamp", "Tenant_RefID", "IsDeleted" }); while (reader.Read()) { ORM_ORD_CUO_Position_CustomerOrganizationalUnitDistribution item = new ORM_ORD_CUO_Position_CustomerOrganizationalUnitDistribution(); //0:Parameter ORD_CUO_Position_CustomerOrganizationalUnitDistributionID of type Guid item.ORD_CUO_Position_CustomerOrganizationalUnitDistributionID = reader.GetGuid(0); //1:Parameter Quantity of type Double item.Quantity = reader.GetDouble(1); //2:Parameter CMN_BPT_CTM_OrganizationalUnit_RefID of type Guid item.CMN_BPT_CTM_OrganizationalUnit_RefID = reader.GetGuid(2); //3:Parameter ORD_CUO_CustomerOrder_Position_RefID of type Guid item.ORD_CUO_CustomerOrder_Position_RefID = reader.GetGuid(3); //4:Parameter Creation_Timestamp of type DateTime item.Creation_Timestamp = reader.GetDate(4); //5:Parameter Tenant_RefID of type Guid item.Tenant_RefID = reader.GetGuid(5); //6:Parameter IsDeleted of type Boolean item.IsDeleted = reader.GetBoolean(6); item.Status_IsAlreadySaved = true; item.Status_IsDirty = false; items.Add(item); } reader.Close(); loader.Load(); managedConnection.commit(); } catch (Exception ex) { managedConnection.rollback(); throw; } return(items); }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5CO_SCORP_1459 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); foreach (var position in Parameter.Positions) { #region Create Position ORM_ORD_CUO_CustomerOrderReturn_Position customerOrderReturnPosition = null; if (position.CustomerOrderReturnPositionId == Guid.Empty) { #region Load referenced data var product = CL1_CMN_PRO.ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, new CL1_CMN_PRO.ORM_CMN_PRO_Product.Query { CMN_PRO_ProductID = position.ArticleID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); var packageInfo = CL1_CMN_PRO_PAC.ORM_CMN_PRO_PAC_PackageInfo.Query.Search(Connection, Transaction, new CL1_CMN_PRO_PAC.ORM_CMN_PRO_PAC_PackageInfo.Query { CMN_PRO_PAC_PackageInfoID = product.PackageInfo_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); var unitID = packageInfo.PackageContent_MeasuredInUnit_RefID; #endregion customerOrderReturnPosition = new ORM_ORD_CUO_CustomerOrderReturn_Position { ORD_CUO_CustomerOrderReturn_PositionID = Guid.NewGuid(), Creation_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID, CustomerOrderReturnHeader_RefID = Parameter.CustomerOrderReturnHeaderID, CMN_PRO_Product_RefID = position.ArticleID, Position_Comment = string.Empty, Position_Unit_RefID = unitID, Position_Description = string.Empty, CorrespondingReceiptPosition_RefID = position.CorrespondingReceiptPosition_RefID }; // if org. unit is selected on parameter creation, create org unit distribution if (Parameter.OrganizationalUnitID != Guid.Empty) { var positionOrgUnitDist = new CL1_ORD_CUO.ORM_ORD_CUO_Position_CustomerOrganizationalUnitDistribution { ORD_CUO_Position_CustomerOrganizationalUnitDistributionID = Guid.NewGuid(), CMN_BPT_CTM_OrganizationalUnit_RefID = Parameter.OrganizationalUnitID, ORD_CUO_CustomerOrder_Position_RefID = customerOrderReturnPosition.ORD_CUO_CustomerOrderReturn_PositionID, Quantity = position.Quantity, Creation_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID }; positionOrgUnitDist.Save(Connection, Transaction); } } else { customerOrderReturnPosition = ORM_ORD_CUO_CustomerOrderReturn_Position.Query.Search(Connection, Transaction, new ORM_ORD_CUO_CustomerOrderReturn_Position.Query { ORD_CUO_CustomerOrderReturn_PositionID = position.CustomerOrderReturnPositionId, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); var positionOrgUnitDist = CL1_ORD_CUO.ORM_ORD_CUO_Position_CustomerOrganizationalUnitDistribution.Query.Search(Connection, Transaction, new CL1_ORD_CUO.ORM_ORD_CUO_Position_CustomerOrganizationalUnitDistribution.Query { ORD_CUO_CustomerOrder_Position_RefID = customerOrderReturnPosition.ORD_CUO_CustomerOrderReturn_PositionID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); // if ORD_CUO_Position_CustomerOrganizationalUnitDistribution entry exists, update organizational unit and quantity. if (positionOrgUnitDist != default(CL1_ORD_CUO.ORM_ORD_CUO_Position_CustomerOrganizationalUnitDistribution)) { positionOrgUnitDist.ORD_CUO_Position_CustomerOrganizationalUnitDistributionID = Parameter.OrganizationalUnitID; positionOrgUnitDist.Quantity = position.Quantity; positionOrgUnitDist.Save(Connection, Transaction); } // if ORD_CUO_Position_CustomerOrganizationalUnitDistribution entry does not exists create new else { positionOrgUnitDist = new CL1_ORD_CUO.ORM_ORD_CUO_Position_CustomerOrganizationalUnitDistribution { ORD_CUO_Position_CustomerOrganizationalUnitDistributionID = Guid.NewGuid(), CMN_BPT_CTM_OrganizationalUnit_RefID = Parameter.OrganizationalUnitID, ORD_CUO_CustomerOrder_Position_RefID = customerOrderReturnPosition.ORD_CUO_CustomerOrderReturn_PositionID, Quantity = position.Quantity, Creation_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID }; positionOrgUnitDist.Save(Connection, Transaction); } } customerOrderReturnPosition.Position_Quantity = (float)position.Quantity; customerOrderReturnPosition.Position_ValuePerUnit = position.OrderPrice; customerOrderReturnPosition.Position_ValueTotal = (customerOrderReturnPosition.Position_ValuePerUnit * (decimal)customerOrderReturnPosition.Position_Quantity); customerOrderReturnPosition.Save(Connection, Transaction); #endregion } return(returnValue); #endregion UserCode }