Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/5.134_grave_goldstine'
Browse files Browse the repository at this point in the history
solved Conflicts:
	de.metas.adempiere.adempiere/base/src/main/java/de/metas/document/impl/DocTypeDAO.java
	de.metas.util/src/main/java/de/metas/util/PlainStringLoggable.java
  • Loading branch information
metas-ts committed Apr 6, 2020
2 parents 684b249 + 26a7ad9 commit f1ac905
Show file tree
Hide file tree
Showing 35 changed files with 882 additions and 257 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,7 @@ public CountryId getDefaultShipToLocationCountryIdOrNull(final BPartnerId bpartn
@Override
public CountryId getBPartnerLocationCountryId(@NonNull final BPartnerLocationId bpartnerLocationId)
{
final I_C_BPartner_Location bpLocation = getBPartnerLocationById(bpartnerLocationId);
final I_C_BPartner_Location bpLocation = getBPartnerLocationById(bpartnerLocationId); // TODO retrieve it even if inactive
return CountryId.ofRepoId(bpLocation.getC_Location().getC_Country_ID());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public interface IDocTypeDAO extends ISingletonService
*/
Optional<String> getDocBaseTypeCounter(String docBaseType);

I_C_DocType createDocType(DocTypeCreateRequest request);
DocTypeId createDocType(DocTypeCreateRequest request);

@Value
@Builder
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package de.metas.document.impl;

import static org.adempiere.model.InterfaceWrapperHelper.newInstance;

/*
* #%L
* de.metas.adempiere.adempiere.base
Expand Down Expand Up @@ -34,10 +36,11 @@
import org.adempiere.ad.trx.api.ITrx;
import org.adempiere.exceptions.DocTypeNotFoundException;
import org.adempiere.model.InterfaceWrapperHelper;
import org.adempiere.service.ClientId;
import org.compiere.model.I_AD_Sequence;
import org.compiere.model.I_C_DocBaseType_Counter;
import org.compiere.model.I_C_DocType;
import org.compiere.model.MDocType;
import org.compiere.model.I_GL_Category;
import org.compiere.model.MSequence;
import org.compiere.util.Env;

Expand All @@ -47,6 +50,7 @@
import de.metas.document.DocBaseAndSubType;
import de.metas.document.DocTypeId;
import de.metas.document.DocTypeQuery;
import de.metas.document.IDocTypeBL;
import de.metas.document.IDocTypeDAO;
import de.metas.util.Check;
import de.metas.util.Services;
Expand Down Expand Up @@ -207,7 +211,7 @@ private DocBaseTypeCountersMap retrieveDocBaseTypeCountersMap()
}

@Override
public I_C_DocType createDocType(final DocTypeCreateRequest request)
public DocTypeId createDocType(final DocTypeCreateRequest request)
{
final Properties ctx = request.getCtx();
final String trxName = ITrx.TRXNAME_ThreadInherited;
Expand All @@ -229,7 +233,14 @@ else if (request.getNewDocNoSequenceStartNo() > 0)
docNoSequenceId = -1;
}

final MDocType dt = new MDocType(ctx, request.getDocBaseType(), name, trxName);
final I_C_DocType dt = newInstance(I_C_DocType.class);
dt.setAD_Org_ID(0);
dt.setDocBaseType(request.getDocBaseType());
dt.setName(name);
dt.setPrintName(name);
dt.setGL_Category_ID(retrieveDefaultGL_Category_ID());

// final MDocType dt = new MDocType(ctx, request.getDocBaseType(), name, trxName);
dt.setEntityType(request.getEntityType());
if (request.getAdOrgId() > 0)
{
Expand Down Expand Up @@ -277,11 +288,28 @@ else if (request.getNewDocNoSequenceStartNo() > 0)
}
else
{
dt.setIsSOTrx();
final IDocTypeBL docTypeBL = Services.get(IDocTypeBL.class);
final boolean isSOTrx = docTypeBL.isSOTrx(request.getDocBaseType());
dt.setIsSOTrx(isSOTrx);
}

InterfaceWrapperHelper.save(dt);
return dt;
return DocTypeId.ofRepoId(dt.getC_DocType_ID());
}

/**
* Set Default GL Category
*/
private int retrieveDefaultGL_Category_ID()
{
return Services.get(IQueryBL.class)
.createQueryBuilder(I_GL_Category.class)
.addOnlyActiveRecordsFilter()
.addEqualsFilter(I_GL_Category.COLUMNNAME_AD_Client_ID, ClientId.METASFRESH.getRepoId())
.orderByDescending(I_GL_Category.COLUMNNAME_IsDefault)
.orderBy(I_GL_Category.COLUMNNAME_GL_Category_ID)
.create()
.firstId();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ public static void setLevel(final Level level)
s_currentLevel = level;
}

public static final boolean setLoggerLevel(final Logger logger, final Level level)
public static boolean setLoggerLevel(final Logger logger, final Level level)
{
if (logger == null)
{
Expand Down Expand Up @@ -198,18 +198,18 @@ public static final boolean setLoggerLevel(final Logger logger, final Level leve
return false;
}

public static final boolean setLoggerLevel(final Logger logger, final String levelStr)
public static boolean setLoggerLevel(final Logger logger, final String levelStr)
{
final Level level = asLogbackLevel(levelStr);
return setLoggerLevel(logger, level);
}

public static final boolean setLoggerLevel(final Class<?> clazz, final Level level)
public static boolean setLoggerLevel(final Class<?> clazz, final Level level)
{
return setLoggerLevel(getLogger(clazz), level);
}

public static final boolean setLoggerLevel(final String loggerName, final Level level)
public static boolean setLoggerLevel(final String loggerName, final Level level)
{
return setLoggerLevel(getLogger(loggerName), level);
}
Expand All @@ -229,25 +229,6 @@ public static String getLoggerLevelName(final Logger logger)
return null;
}

// private static final boolean isOwnLogger(final Logger logger)
// {
// final String loggerName = logger.getName();
// if (loggerName == null || loggerName.isEmpty())
// {
// return false;
// }
//
// for (final String loggerPrefix : OWNLOGGERS_NAME_PREFIXES)
// {
// if (loggerName.startsWith(loggerPrefix))
// {
// return true;
// }
// }
//
// return false;
// }

private static final List<String> OWNLOGGERS_NAME_PREFIXES = ImmutableList.of("de.metas", "org.adempiere", "org.compiere", "org.eevolution");

/**
Expand All @@ -270,7 +251,7 @@ private static void setJDBCDebug(final boolean enable)
/**
* @return current log level or <code>null</code> if not initialized
*/
public static final Level getLevel()
public static Level getLevel()
{
return s_currentLevel;
}
Expand Down Expand Up @@ -336,7 +317,7 @@ public static void shutdown()
// mgr.reset();
} // shutdown

public static final File getActiveLogFile()
public static File getActiveLogFile()
{
return MetasfreshFileLoggerHelper.get().getActiveFileOrNull();
}
Expand All @@ -356,7 +337,7 @@ public static void flushLogFile()
MetasfreshFileLoggerHelper.get().flushActiveLogFile();
}

public static final void rotateLogFile()
public static void rotateLogFile()
{
MetasfreshFileLoggerHelper.get().rotateLogFile();
}
Expand Down Expand Up @@ -403,7 +384,7 @@ public static void skipIssueReportingForLoggerName(final String loggerName)
/**
* @return {@link Level} or null
*/
public static final ch.qos.logback.classic.Level asLogbackLevel(String levelStr)
public static ch.qos.logback.classic.Level asLogbackLevel(String levelStr)
{
if (Check.isEmpty(levelStr, true))
{
Expand Down Expand Up @@ -439,7 +420,7 @@ public static final ch.qos.logback.classic.Level asLogbackLevel(String levelStr)
return null;
}

private static final ch.qos.logback.classic.Level asLogbackLevel(final java.util.logging.Level julLevel)
private static ch.qos.logback.classic.Level asLogbackLevel(final java.util.logging.Level julLevel)
{
if (julLevel == null)
{
Expand Down Expand Up @@ -536,7 +517,7 @@ public static void dumpAllLevelsUpToRoot(final Logger logger)
}
System.out.println(" * " + currentLogger.getName() + "(" + System.identityHashCode(currentLogger) + "): " + currentLoggerInfo);
};

System.out.println("\nDumping all log levels starting from " + logger);
forAllLevelsUpToRoot(logger, dumpLevel);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ private void setupPriceListAndDate(@NonNull final IEditablePricingContext pricin
final PricingSystemId pricingSystemId = bpartnerDAO.retrievePricingSystemIdOrNull(pricingCtx.getBPartnerId(), pricingCtx.getSoTrx());
if (pricingSystemId == null)
{
throw new AdempiereException("BPartner has no assigned pricing system")
throw new AdempiereException("BPartnerId=" + pricingCtx.getBPartnerId().getRepoId() + " has no assigned " + pricingCtx.getSoTrx() + " pricingSystem")
.appendParametersToMessage()
.setParameter("pricingCtx", pricingCtx);
}
Expand Down
130 changes: 130 additions & 0 deletions de.metas.business/src/test/java/de/metas/business/TestInvoice.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
package de.metas.business;

import static de.metas.util.Check.assumeNotNull;
import static de.metas.util.lang.CoalesceUtil.coalesceSuppliers;
import static org.adempiere.model.InterfaceWrapperHelper.newInstance;
import static org.adempiere.model.InterfaceWrapperHelper.saveRecord;

import java.time.LocalDate;

import javax.annotation.Nullable;

import org.compiere.model.I_C_Invoice;
import org.compiere.util.TimeUtil;

import com.google.common.collect.ImmutableList;

import de.metas.bpartner.BPartnerId;
import de.metas.document.DocTypeId;
import de.metas.invoice.InvoiceId;
import de.metas.lang.SOTrx;
import de.metas.money.CurrencyId;
import de.metas.util.time.SystemTime;
import lombok.Builder;
import lombok.Data;
import lombok.NonNull;
import lombok.Singular;

/*
* #%L
* de.metas.contracts
* %%
* Copyright (C) 2020 metas GmbH
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-2.0.html>.
* #L%
*/

@Data
public class TestInvoice
{
private final BPartnerId customerId;

private final LocalDate dateInvoiced;

private final SOTrx soTrx;

private final BPartnerId salesRepPartnerId;

private final DocTypeId docTypeId;

private final CurrencyId currencyId;

private final ImmutableList<TestInvoiceLine> testInvoiceLines;

private I_C_Invoice invoiceRecord;

private InvoiceId invoiceId;

@Builder
private TestInvoice(
@NonNull final SOTrx soTrx,
@NonNull final BPartnerId customerId,
@Nullable final DocTypeId docTypeId,
@Nullable final BPartnerId salesRepPartnerId,
@Nullable final CurrencyId currencyId,
@Nullable final LocalDate dateInvoiced,
@Singular final ImmutableList<TestInvoiceLine> testInvoiceLines)
{
this.soTrx = soTrx;
this.docTypeId = docTypeId;
this.customerId = customerId;
this.salesRepPartnerId = salesRepPartnerId;
this.currencyId = currencyId;
this.dateInvoiced = coalesceSuppliers(() -> dateInvoiced, () -> SystemTime.asLocalDate());
this.testInvoiceLines = testInvoiceLines;
}

public TestInvoice createInvoiceRecord()
{
invoiceRecord = newInstance(I_C_Invoice.class);
invoiceRecord.setIsSOTrx(soTrx.toBoolean());
invoiceRecord.setC_DocType_ID(DocTypeId.toRepoId(docTypeId));
invoiceRecord.setC_BPartner_ID(BPartnerId.toRepoId(customerId));
invoiceRecord.setC_BPartner_SalesRep_ID(BPartnerId.toRepoId(salesRepPartnerId));
invoiceRecord.setDateInvoiced(TimeUtil.asTimestamp(dateInvoiced));
invoiceRecord.setC_Currency_ID(CurrencyId.toRepoId(currencyId));
saveRecord(invoiceRecord);

invoiceId = InvoiceId.ofRepoId(invoiceRecord.getC_Invoice_ID());

for (final TestInvoiceLine testInvoiceLine : testInvoiceLines)
{
testInvoiceLine.createInvoiceLineRecord(invoiceId);
}

return this;
}

public I_C_Invoice getInvoiceRecord()
{
return assumeNotNull(invoiceRecord, "invoice first needs to be created with createInvoiceLineRecord");
}

public InvoiceId getInvoiceLineId()
{
return assumeNotNull(invoiceId, "invoice first needs to be created with createInvoiceLineRecord");
}

public int getRepoId()
{
return getInvoiceLineId().getRepoId();
}

public int getLineRepoId(final int index)
{
return testInvoiceLines.get(index).getInvoiceLineId().getRepoId();
}
}
Loading

0 comments on commit f1ac905

Please sign in to comment.