demandes achat

quand le DG clic sur le bouton accepter (TCO) ,le programme prendre la valeur du Prix unitaire accepté et mettre dans le champs Prix unitaire remisé
This commit is contained in:
walid seghier
2022-05-04 15:45:17 +01:00
parent 4b0bac742d
commit 45e9b25726
5 changed files with 72 additions and 148 deletions

View File

@@ -81,6 +81,8 @@ import com.axelor.apps.base.service.ProductMultipleQtyService;
import com.axelor.apps.base.service.ProductMultipleQtyServiceImpl;
import com.axelor.apps.base.service.ProductService;
import com.axelor.apps.base.service.ProductServiceImpl;
import com.axelor.apps.base.service.SophalService;
import com.axelor.apps.base.service.SophalServiceImpl;
import com.axelor.apps.base.service.TeamTaskService;
import com.axelor.apps.base.service.TeamTaskServiceImpl;
import com.axelor.apps.base.service.TradingNameService;
@@ -127,14 +129,11 @@ import com.axelor.base.service.ical.ICalendarEventService;
import com.axelor.base.service.ical.ICalendarEventServiceImpl;
import com.axelor.team.db.repo.TeamTaskRepository;
import com.axelor.apps.base.service.SophalService;
import com.axelor.apps.base.service.SophalServiceImpl;
public class BaseModule extends AxelorModule {
@Override
protected void configure() {
bind(SophalService.class).to(SophalServiceImpl.class);
bind(SophalService.class).to(SophalServiceImpl.class);
bind(AddressService.class).to(AddressServiceImpl.class);
bind(AdvancedExportService.class).to(AdvancedExportServiceImpl.class);
bind(UserService.class).to(UserServiceImpl.class);

View File

@@ -18,16 +18,8 @@
package com.axelor.apps.base.service;
import com.axelor.apps.base.db.Product;
import com.axelor.apps.base.db.ProductVariant;
import com.axelor.apps.base.db.ProductVariantConfig;
import com.axelor.apps.base.db.ProductVariantValue;
import com.axelor.exception.AxelorException;
import com.google.inject.persist.Transactional;
public interface SophalService {
String GenerateCode(Product product) ;
}
String GenerateCode(Product product);
}

View File

@@ -17,109 +17,71 @@
*/
package com.axelor.apps.base.service;
import com.axelor.apps.base.db.Product;
import com.axelor.apps.base.db.repo.PartnerAddressRepository;
import com.axelor.apps.base.db.repo.PartnerRepository;
import com.axelor.apps.base.db.repo.SequenceRepository;
import com.axelor.apps.base.exceptions.IExceptionMessage;
import com.axelor.apps.base.service.administration.SequenceService;
import com.axelor.apps.base.service.app.AppBaseService;
import com.axelor.apps.message.db.EmailAddress;
import com.axelor.common.StringUtils;
import com.axelor.db.JPA;
import com.axelor.exception.AxelorException;
import com.axelor.exception.db.repo.TraceBackRepository;
import com.axelor.i18n.I18n;
import com.axelor.inject.Beans;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.inject.Inject;
import com.google.inject.persist.Transactional;
import java.lang.invoke.MethodHandles;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;
import javax.inject.Singleton;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.inject.servlet.RequestScoped;
import javax.persistence.Query;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@RequestScoped
public class SophalServiceImpl implements SophalService {
protected Logger log = LoggerFactory.getLogger(getClass());
protected Logger log = LoggerFactory.getLogger(getClass());
@Override
public String GenerateCode(Product product) {
String num;
String result;
String var;
if( product.getUnitCodeSelect() != null){
var=product.getFamilleProduit().getCode()+product.getSousFamilleProduit().getCode()+product.getUnitCodeSelect();
}else{
var=product.getFamilleProduit().getCode()+product.getSousFamilleProduit().getCode()+"00";
}
if( product.getCode() == null){
Query q =
JPA.em()
.createQuery("select self.code FROM Product as self WHERE self.codeCreated = ?1 AND self.code LIKE ?2 ORDER BY self.code DESC",
String.class);
q.setParameter(1,true);
q.setParameter(2, var+"%");
if(q.getResultList().size() == 0){
result = null;
}else{
result = (String) q.getResultList().get(0);
}
if (result != null){
String arr[]=result.split(var);
String nbrString=arr[1];
int nbrInt=Integer.parseInt(nbrString);
nbrInt=nbrInt+1;
num=Integer.toString(nbrInt);
String padding = "000".substring(num.length())+ num;
result=var+padding;
}else{
result=var+"001";
}
}else{
result=product.getCode();
}
return result;
String num;
String result;
String var;
if (product.getUnitCodeSelect() != null) {
var =
product.getFamilleProduit().getCode()
+ product.getSousFamilleProduit().getCode()
+ product.getUnitCodeSelect();
} else {
var =
product.getFamilleProduit().getCode() + product.getSousFamilleProduit().getCode() + "00";
}
if (product.getCode() == null) {
Query q =
JPA.em()
.createQuery(
"select self.code FROM Product as self WHERE self.codeCreated = ?1 AND self.code LIKE ?2 ORDER BY self.code DESC",
String.class);
q.setParameter(1, true);
q.setParameter(2, var + "%");
if (q.getResultList().size() == 0) {
result = null;
} else {
result = (String) q.getResultList().get(0);
}
if (result != null) {
String arr[] = result.split(var);
String nbrString = arr[1];
int nbrInt = Integer.parseInt(nbrString);
nbrInt = nbrInt + 1;
num = Integer.toString(nbrInt);
String padding = "000".substring(num.length()) + num;
result = var + padding;
} else {
result = var + "001";
}
} else {
result = product.getCode();
}
return result;
}
}
}

View File

@@ -17,52 +17,23 @@
*/
package com.axelor.apps.base.web;
import com.axelor.apps.base.db.Product;
import com.axelor.apps.base.db.repo.ProductRepository;
import com.axelor.apps.base.exceptions.IExceptionMessage;
import com.axelor.apps.base.report.IReport;
import com.axelor.apps.base.service.ProductService;
import com.axelor.apps.base.service.app.AppBaseService;
import com.axelor.apps.base.service.user.UserService;
import com.axelor.apps.report.engine.ReportSettings;
import com.axelor.auth.db.User;
import com.axelor.exception.AxelorException;
import com.axelor.exception.db.repo.TraceBackRepository;
import com.axelor.exception.service.TraceBackService;
import com.axelor.i18n.I18n;
import com.axelor.inject.Beans;
import com.axelor.meta.schema.actions.ActionView;
import com.axelor.rpc.ActionRequest;
import com.axelor.rpc.ActionResponse;
import com.google.common.base.Joiner;
import com.google.inject.Singleton;
import java.lang.invoke.MethodHandles;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.inject.servlet.RequestScoped;
import com.axelor.apps.base.db.Product;
import com.axelor.apps.base.service.SophalService;
import com.axelor.rpc.ActionRequest;
import com.axelor.rpc.ActionResponse;
import com.google.inject.servlet.RequestScoped;
import javax.inject.Inject;
import com.axelor.rpc.Response;
@RequestScoped
@RequestScoped
public class SophalController {
@Inject private SophalService service;
@Inject private SophalService service;
public void GenerateCode(ActionRequest request, ActionResponse response) {
public void GenerateCode(ActionRequest request, ActionResponse response) {
Product product = request.getContext().asType(Product.class);
String Code = service.GenerateCode(product);
Product product = request.getContext().asType(Product.class);
String Code = service.GenerateCode(product);
response.setValue("code",Code);
response.setValue("code", Code);
}
}
}

View File

@@ -61,7 +61,7 @@ public class PurchaseOrderSupplierLineService {
purchaseOrderLine.setExTaxTotal(
PurchaseOrderLineServiceImpl.computeAmount(
purchaseOrderLine.getQty(), purchaseOrderLine.getPrice()));
purchaseOrderLine.setPriceDiscounted(purchaseOrderSupplierLine.getPrice());//sophal
purchaseOrderSupplierLine.setStateSelect(PurchaseOrderSupplierLineRepository.STATE_ACCEPTED);
poSupplierLineRepo.save(purchaseOrderSupplierLine);