set QR code for purchaseOrderSeq and PartnerSeq
This commit is contained in:
@@ -62,6 +62,7 @@ public class PartnerBaseRepository extends PartnerRepository {
|
|||||||
|
|
||||||
copy.setPartnerSeq(null);
|
copy.setPartnerSeq(null);
|
||||||
copy.setEmailAddress(null);
|
copy.setEmailAddress(null);
|
||||||
|
copy.setBarCodeSeq(null);
|
||||||
|
|
||||||
PartnerAddressRepository partnerAddressRepository = Beans.get(PartnerAddressRepository.class);
|
PartnerAddressRepository partnerAddressRepository = Beans.get(PartnerAddressRepository.class);
|
||||||
|
|
||||||
|
|||||||
@@ -142,4 +142,6 @@ public interface PartnerService {
|
|||||||
String computeCompanyStr(Partner partner);
|
String computeCompanyStr(Partner partner);
|
||||||
|
|
||||||
String getPartnerDomain(Partner partner);
|
String getPartnerDomain(Partner partner);
|
||||||
|
|
||||||
|
void setPartnerBarCodeSeq(Partner partner);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import com.axelor.apps.base.db.repo.SequenceRepository;
|
|||||||
import com.axelor.apps.base.exceptions.IExceptionMessage;
|
import com.axelor.apps.base.exceptions.IExceptionMessage;
|
||||||
import com.axelor.apps.base.service.administration.SequenceService;
|
import com.axelor.apps.base.service.administration.SequenceService;
|
||||||
import com.axelor.apps.base.service.app.AppBaseService;
|
import com.axelor.apps.base.service.app.AppBaseService;
|
||||||
|
import com.axelor.apps.base.service.BarcodeGeneratorService;
|
||||||
import com.axelor.apps.message.db.EmailAddress;
|
import com.axelor.apps.message.db.EmailAddress;
|
||||||
import com.axelor.common.StringUtils;
|
import com.axelor.common.StringUtils;
|
||||||
import com.axelor.db.JPA;
|
import com.axelor.db.JPA;
|
||||||
@@ -45,6 +46,11 @@ import com.google.common.base.Preconditions;
|
|||||||
import com.google.common.base.Strings;
|
import com.google.common.base.Strings;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.persist.Transactional;
|
import com.google.inject.persist.Transactional;
|
||||||
|
import com.axelor.meta.MetaFiles;
|
||||||
|
import com.axelor.meta.db.MetaFile;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import javax.validation.ValidationException;
|
||||||
import java.lang.invoke.MethodHandles;
|
import java.lang.invoke.MethodHandles;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -66,6 +72,9 @@ public class PartnerServiceImpl implements PartnerService {
|
|||||||
protected PartnerRepository partnerRepo;
|
protected PartnerRepository partnerRepo;
|
||||||
protected AppBaseService appBaseService;
|
protected AppBaseService appBaseService;
|
||||||
|
|
||||||
|
@Inject protected BarcodeGeneratorService barcodeGeneratorService;
|
||||||
|
@Inject private MetaFiles metaFiles;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public PartnerServiceImpl(PartnerRepository partnerRepo, AppBaseService appBaseService) {
|
public PartnerServiceImpl(PartnerRepository partnerRepo, AppBaseService appBaseService) {
|
||||||
this.partnerRepo = partnerRepo;
|
this.partnerRepo = partnerRepo;
|
||||||
@@ -162,6 +171,7 @@ public class PartnerServiceImpl implements PartnerService {
|
|||||||
|
|
||||||
this.setPartnerFullName(partner);
|
this.setPartnerFullName(partner);
|
||||||
this.setCompanyStr(partner);
|
this.setCompanyStr(partner);
|
||||||
|
this.setPartnerBarCodeSeq(partner);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -699,4 +709,30 @@ public class PartnerServiceImpl implements PartnerService {
|
|||||||
}
|
}
|
||||||
return partnerQuery.fetchOne();
|
return partnerQuery.fetchOne();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setPartnerBarCodeSeq(Partner partner) {
|
||||||
|
if (partner.getBarCodeSeq() == null) {
|
||||||
|
try {
|
||||||
|
boolean addPadding = false;
|
||||||
|
InputStream inStream = null;
|
||||||
|
|
||||||
|
inStream =
|
||||||
|
barcodeGeneratorService.createBarCode(
|
||||||
|
partner.getPartnerSeq(),
|
||||||
|
appBaseService.getAppBase().getBarcodeTypeConfigPartnerSeq(),
|
||||||
|
addPadding);
|
||||||
|
|
||||||
|
if (inStream != null) {
|
||||||
|
MetaFile barcodeFile =
|
||||||
|
metaFiles.upload(inStream, String.format("PartnerBarCodeSeq%d.png",partner.getId()));
|
||||||
|
partner.setBarCodeSeq(barcodeFile);
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (AxelorException e) {
|
||||||
|
throw new ValidationException(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,9 @@
|
|||||||
<many-to-one name="barcodeTypeConfig" title="Barcode Type" ref="com.axelor.apps.base.db.BarcodeTypeConfig" default="EAN_13"/>
|
<many-to-one name="barcodeTypeConfig" title="Barcode Type" ref="com.axelor.apps.base.db.BarcodeTypeConfig" default="EAN_13"/>
|
||||||
<boolean name="generateProductSequence" title="Generate sequence for products" default="false"/>
|
<boolean name="generateProductSequence" title="Generate sequence for products" default="false"/>
|
||||||
|
|
||||||
|
<many-to-one name="barcodeTypeConfigPurchaseOrderSeq" title="Barcode Type for Purchase Order Seq" ref="com.axelor.apps.base.db.BarcodeTypeConfig"/>
|
||||||
|
<many-to-one name="barcodeTypeConfigPartnerSeq" title="Barcode Type for Partner Seq" ref="com.axelor.apps.base.db.BarcodeTypeConfig"/>
|
||||||
|
|
||||||
<boolean name="generatePartnerSequence" title="Generate sequence for partners" default="true"/>
|
<boolean name="generatePartnerSequence" title="Generate sequence for partners" default="true"/>
|
||||||
|
|
||||||
<boolean name="manageMultiBanks" title="Manage multi banks"/>
|
<boolean name="manageMultiBanks" title="Manage multi banks"/>
|
||||||
|
|||||||
@@ -97,6 +97,8 @@
|
|||||||
|
|
||||||
<string name="proformaComments" title="Comment to display on proforma" large="true"/>
|
<string name="proformaComments" title="Comment to display on proforma" large="true"/>
|
||||||
|
|
||||||
|
<many-to-one name="barCodeSeq" title="Barcode" ref="com.axelor.meta.db.MetaFile" />
|
||||||
|
|
||||||
<finder-method name="findByUser" using="user"/>
|
<finder-method name="findByUser" using="user"/>
|
||||||
|
|
||||||
<extra-code>
|
<extra-code>
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ public class PurchaseOrderManagementRepository extends PurchaseOrderRepository {
|
|||||||
copy.setDeliveryDate(null);
|
copy.setDeliveryDate(null);
|
||||||
copy.setValidatedByUser(null);
|
copy.setValidatedByUser(null);
|
||||||
copy.setValidationDate(null);
|
copy.setValidationDate(null);
|
||||||
|
copy.setBarCodeSeq(null);
|
||||||
for (PurchaseOrderLine purchaseOrderLine : copy.getPurchaseOrderLineList()) {
|
for (PurchaseOrderLine purchaseOrderLine : copy.getPurchaseOrderLineList()) {
|
||||||
purchaseOrderLine.setDesiredDelivDate(null);
|
purchaseOrderLine.setDesiredDelivDate(null);
|
||||||
purchaseOrderLine.setEstimatedDelivDate(null);
|
purchaseOrderLine.setEstimatedDelivDate(null);
|
||||||
@@ -49,6 +50,7 @@ public class PurchaseOrderManagementRepository extends PurchaseOrderRepository {
|
|||||||
try {
|
try {
|
||||||
purchaseOrder = super.save(purchaseOrder);
|
purchaseOrder = super.save(purchaseOrder);
|
||||||
Beans.get(PurchaseOrderService.class).setDraftSequence(purchaseOrder);
|
Beans.get(PurchaseOrderService.class).setDraftSequence(purchaseOrder);
|
||||||
|
Beans.get(PurchaseOrderService.class).setPurchaseOrderBarCodeSeq(purchaseOrder);
|
||||||
return purchaseOrder;
|
return purchaseOrder;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new PersistenceException(e.getLocalizedMessage());
|
throw new PersistenceException(e.getLocalizedMessage());
|
||||||
|
|||||||
@@ -117,4 +117,8 @@ public interface PurchaseOrderService {
|
|||||||
public void cancelReasonPurchaseOrder(PurchaseOrder purchaseOrder, CancelReason cancelReason, String cancelReasonStr);
|
public void cancelReasonPurchaseOrder(PurchaseOrder purchaseOrder, CancelReason cancelReason, String cancelReasonStr);
|
||||||
|
|
||||||
public void calculateSum(List<PurchaseOrder> purchaseOrders,ImportationFolder importationFolder) throws AxelorException;
|
public void calculateSum(List<PurchaseOrder> purchaseOrders,ImportationFolder importationFolder) throws AxelorException;
|
||||||
|
|
||||||
|
void setPurchaseOrderBarCodeSeq(PurchaseOrder purchaseOrder) throws AxelorException;
|
||||||
|
|
||||||
|
void createPurchaseOrderBarCodeSeq(PurchaseOrder purchaseOrder) throws AxelorException;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import com.axelor.apps.base.service.ShippingCoefService;
|
|||||||
import com.axelor.apps.base.service.TradingNameService;
|
import com.axelor.apps.base.service.TradingNameService;
|
||||||
import com.axelor.apps.base.service.UnitConversionService;
|
import com.axelor.apps.base.service.UnitConversionService;
|
||||||
import com.axelor.apps.base.service.administration.SequenceService;
|
import com.axelor.apps.base.service.administration.SequenceService;
|
||||||
|
import com.axelor.apps.base.service.BarcodeGeneratorService;
|
||||||
import com.axelor.apps.purchase.db.ImportationFolder;
|
import com.axelor.apps.purchase.db.ImportationFolder;
|
||||||
import com.axelor.apps.purchase.db.PurchaseOrder;
|
import com.axelor.apps.purchase.db.PurchaseOrder;
|
||||||
import com.axelor.apps.purchase.db.PurchaseOrderLine;
|
import com.axelor.apps.purchase.db.PurchaseOrderLine;
|
||||||
@@ -48,6 +49,7 @@ import com.axelor.apps.purchase.db.repo.PurchaseOrderLineRepository;
|
|||||||
import com.axelor.apps.purchase.exception.IExceptionMessage;
|
import com.axelor.apps.purchase.exception.IExceptionMessage;
|
||||||
import com.axelor.apps.purchase.report.IReport;
|
import com.axelor.apps.purchase.report.IReport;
|
||||||
import com.axelor.apps.purchase.service.app.AppPurchaseService;
|
import com.axelor.apps.purchase.service.app.AppPurchaseService;
|
||||||
|
import com.axelor.apps.base.service.app.AppBaseService;
|
||||||
import com.axelor.apps.report.engine.ReportSettings;
|
import com.axelor.apps.report.engine.ReportSettings;
|
||||||
import com.axelor.auth.AuthUtils;
|
import com.axelor.auth.AuthUtils;
|
||||||
import com.axelor.auth.db.User;
|
import com.axelor.auth.db.User;
|
||||||
@@ -55,6 +57,8 @@ import com.axelor.exception.AxelorException;
|
|||||||
import com.axelor.exception.db.repo.TraceBackRepository;
|
import com.axelor.exception.db.repo.TraceBackRepository;
|
||||||
import com.axelor.i18n.I18n;
|
import com.axelor.i18n.I18n;
|
||||||
import com.axelor.inject.Beans;
|
import com.axelor.inject.Beans;
|
||||||
|
import com.axelor.meta.MetaFiles;
|
||||||
|
import com.axelor.meta.db.MetaFile;
|
||||||
import com.google.common.base.Strings;
|
import com.google.common.base.Strings;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.persist.Transactional;
|
import com.google.inject.persist.Transactional;
|
||||||
@@ -69,6 +73,9 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import javax.validation.ValidationException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@@ -87,6 +94,10 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
@Inject protected PurchaseOrderRepository purchaseOrderRepo;
|
@Inject protected PurchaseOrderRepository purchaseOrderRepo;
|
||||||
@Inject protected ImportationFolderRepository importationFolderRepo;
|
@Inject protected ImportationFolderRepository importationFolderRepo;
|
||||||
|
|
||||||
|
@Inject protected BarcodeGeneratorService barcodeGeneratorService;
|
||||||
|
@Inject protected AppBaseService appBaseService;
|
||||||
|
@Inject private MetaFiles metaFiles;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PurchaseOrder _computePurchaseOrderLines(PurchaseOrder purchaseOrder)
|
public PurchaseOrder _computePurchaseOrderLines(PurchaseOrder purchaseOrder)
|
||||||
throws AxelorException {
|
throws AxelorException {
|
||||||
@@ -650,4 +661,40 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
return importationFolder;
|
return importationFolder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public void setPurchaseOrderBarCodeSeq(PurchaseOrder purchaseOrder) throws AxelorException{
|
||||||
|
|
||||||
|
if (purchaseOrder.getBarCodeSeq() == null
|
||||||
|
&& purchaseOrder.getStatusSelect() != PurchaseOrderRepository.STATUS_DRAFT) {
|
||||||
|
try {
|
||||||
|
boolean addPadding = false;
|
||||||
|
InputStream inStream = null;
|
||||||
|
|
||||||
|
inStream =
|
||||||
|
barcodeGeneratorService.createBarCode(
|
||||||
|
purchaseOrder.getPurchaseOrderSeq(),
|
||||||
|
appBaseService.getAppBase().getBarcodeTypeConfigPurchaseOrderSeq(),
|
||||||
|
addPadding);
|
||||||
|
|
||||||
|
if (inStream != null) {
|
||||||
|
MetaFile barcodeFile =
|
||||||
|
metaFiles.upload(inStream, String.format("PurchaseOrderSeqBarCode%d.png",purchaseOrder.getId()));
|
||||||
|
purchaseOrder.setBarCodeSeq(barcodeFile);
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (AxelorException e) {
|
||||||
|
throw new ValidationException(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public void createPurchaseOrderBarCodeSeq(PurchaseOrder purchaseOrder) throws AxelorException{
|
||||||
|
this.setPurchaseOrderBarCodeSeq(purchaseOrder);
|
||||||
|
purchaseOrderRepo.save(purchaseOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -622,4 +622,15 @@ public class PurchaseOrderController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void createPurchaseOrderBarCodeSeq(ActionRequest request, ActionResponse response){
|
||||||
|
try {
|
||||||
|
PurchaseOrder purchaseOrder = request.getContext().asType(PurchaseOrder.class);
|
||||||
|
purchaseOrder = Beans.get(PurchaseOrderRepository.class).find(purchaseOrder.getId());
|
||||||
|
Beans.get(PurchaseOrderService.class).createPurchaseOrderBarCodeSeq(purchaseOrder);
|
||||||
|
response.setReload(true);
|
||||||
|
} catch (Exception e) {
|
||||||
|
TraceBackService.trace(response, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,6 +83,8 @@
|
|||||||
<decimal name="stamp" title="stamp" scale="2" precision="20" />
|
<decimal name="stamp" title="stamp" scale="2" precision="20" />
|
||||||
<decimal name="fixTax" title="fix Tax" scale="2" precision="20" />
|
<decimal name="fixTax" title="fix Tax" scale="2" precision="20" />
|
||||||
|
|
||||||
|
<many-to-one name="barCodeSeq" title="Barcode" ref="com.axelor.meta.db.MetaFile" />
|
||||||
|
|
||||||
<unique-constraint columns="purchaseOrderSeq,company"/>
|
<unique-constraint columns="purchaseOrderSeq,company"/>
|
||||||
|
|
||||||
<extra-code>
|
<extra-code>
|
||||||
|
|||||||
Reference in New Issue
Block a user