Do objednávek přidána suma za fakturu.

closes #152
multitenant
František Přibyl 10 years ago
parent 49f921847d
commit a06b2cbb14

@ -2,8 +2,13 @@ package info.bukova.isspst;
import java.math.BigDecimal; import java.math.BigDecimal;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class BigDecimalUtils public class BigDecimalUtils
{ {
private final static Logger log = LoggerFactory.getLogger(BigDecimalUtils.class.getName());
public static boolean isEqualByDecimalForFilter(BigDecimal value, BigDecimal search) public static boolean isEqualByDecimalForFilter(BigDecimal value, BigDecimal search)
{ {
if (search == null) if (search == null)
@ -11,14 +16,18 @@ public class BigDecimalUtils
return true; return true;
} }
else if (value != null) if (value == null)
{ {
value = BigDecimal.ZERO;
}
String valueS = value.toPlainString(); String valueS = value.toPlainString();
String searchS = search.toPlainString(); String searchS = search.toPlainString();
return valueS.startsWith(searchS); boolean result = (valueS.compareTo(searchS) == 0);
// return (value.compareTo(search) == 0);
} String s = "search='" + searchS + "', value='" + valueS + "', equal=" + (result ? "true" : "false");
log.info(s);
return false; return result;
} }
} }

@ -19,7 +19,8 @@ import org.hibernate.annotations.LazyCollectionOption;
@Entity @Entity
@Table(name = "ORDERS") @Table(name = "ORDERS")
public class Order extends BaseData { public class Order extends BaseData
{
@Column(name = "NUMSER") @Column(name = "NUMSER")
private String numser; private String numser;
@ -43,8 +44,7 @@ public class Order extends BaseData {
@AttributeOverride(name = "state", column = @Column(name = "SUPPLIER_STATE")), @AttributeOverride(name = "state", column = @Column(name = "SUPPLIER_STATE")),
@AttributeOverride(name = "street", column = @Column(name = "SUPPLIER_STREET")), @AttributeOverride(name = "street", column = @Column(name = "SUPPLIER_STREET")),
@AttributeOverride(name = "web", column = @Column(name = "SUPPLIER_WEB")), @AttributeOverride(name = "web", column = @Column(name = "SUPPLIER_WEB")),
@AttributeOverride(name = "zipCode", column = @Column(name = "SUPPLIER_ZIP_CODE")) @AttributeOverride(name = "zipCode", column = @Column(name = "SUPPLIER_ZIP_CODE")) })
})
private AddressEmb suplier; private AddressEmb suplier;
@Embedded @Embedded
@ -63,8 +63,7 @@ public class Order extends BaseData {
@AttributeOverride(name = "state", column = @Column(name = "INVOICE_STATE")), @AttributeOverride(name = "state", column = @Column(name = "INVOICE_STATE")),
@AttributeOverride(name = "street", column = @Column(name = "INVOICE_STREET")), @AttributeOverride(name = "street", column = @Column(name = "INVOICE_STREET")),
@AttributeOverride(name = "web", column = @Column(name = "INVOICE_WEB")), @AttributeOverride(name = "web", column = @Column(name = "INVOICE_WEB")),
@AttributeOverride(name = "zipCode", column = @Column(name = "INVOICE_ZIP_CODE")) @AttributeOverride(name = "zipCode", column = @Column(name = "INVOICE_ZIP_CODE")) })
})
private AddressEmb address; private AddressEmb address;
@Embedded @Embedded
@ -83,8 +82,7 @@ public class Order extends BaseData {
@AttributeOverride(name = "state", column = @Column(name = "DELIVERY_STATE")), @AttributeOverride(name = "state", column = @Column(name = "DELIVERY_STATE")),
@AttributeOverride(name = "street", column = @Column(name = "DELIVERY_STREET")), @AttributeOverride(name = "street", column = @Column(name = "DELIVERY_STREET")),
@AttributeOverride(name = "web", column = @Column(name = "DELIVERY_WEB")), @AttributeOverride(name = "web", column = @Column(name = "DELIVERY_WEB")),
@AttributeOverride(name = "zipCode", column = @Column(name = "DELIVERY_ZIP_CODE")) @AttributeOverride(name = "zipCode", column = @Column(name = "DELIVERY_ZIP_CODE")) })
})
private AddressEmb deliveryAddress; private AddressEmb deliveryAddress;
@Column(name = "DELIVERY_DATE") @Column(name = "DELIVERY_DATE")
@ -103,7 +101,7 @@ public class Order extends BaseData {
@LazyCollection(LazyCollectionOption.TRUE) @LazyCollection(LazyCollectionOption.TRUE)
private List<OrderItem> items; private List<OrderItem> items;
@Column(name = "TOTAL", precision=15, scale=4) @Column(name = "TOTAL", precision = 15, scale = 4)
private BigDecimal total; private BigDecimal total;
@Column(name = "ORDERED") @Column(name = "ORDERED")
@ -118,133 +116,180 @@ public class Order extends BaseData {
@Column(name = "INVOICE_NUMBER") @Column(name = "INVOICE_NUMBER")
private String invoiceNumber; private String invoiceNumber;
public Order() { @Column(name = "INVOICE_TOTAL", precision = 15, scale = 4)
items = new ArrayList<OrderItem>(); private BigDecimal invoiceTotal;
public Order()
{
this.items = new ArrayList<OrderItem>();
this.total = BigDecimal.ZERO;
this.invoiceTotal = BigDecimal.ZERO;
} }
public String getNumser() { public String getNumser()
{
return numser; return numser;
} }
public void setNumser(String numser) { public void setNumser(String numser)
{
this.numser = numser; this.numser = numser;
} }
public AddressEmb getSuplier() { public AddressEmb getSuplier()
{
return suplier; return suplier;
} }
public void setSuplier(AddressEmb suplier) { public void setSuplier(AddressEmb suplier)
{
this.suplier = suplier; this.suplier = suplier;
} }
public AddressEmb getAddress() { public AddressEmb getAddress()
{
return address; return address;
} }
public void setAddress(AddressEmb address) { public void setAddress(AddressEmb address)
{
this.address = address; this.address = address;
} }
public Date getDeliveryDate() { public Date getDeliveryDate()
{
return deliveryDate; return deliveryDate;
} }
public void setDeliveryDate(Date deliveryDate) { public void setDeliveryDate(Date deliveryDate)
{
this.deliveryDate = deliveryDate; this.deliveryDate = deliveryDate;
} }
public String getDeliveryType() { public String getDeliveryType()
{
return deliveryType; return deliveryType;
} }
public void setDeliveryType(String deliveryType) { public void setDeliveryType(String deliveryType)
{
this.deliveryType = deliveryType; this.deliveryType = deliveryType;
} }
public String getDescription() { public String getDescription()
{
return description; return description;
} }
public void setDescription(String description) { public void setDescription(String description)
{
this.description = description; this.description = description;
} }
public AddressEmb getDeliveryAddress() { public AddressEmb getDeliveryAddress()
{
return deliveryAddress; return deliveryAddress;
} }
public void setDeliveryAddress(AddressEmb deliveryAddress) { public void setDeliveryAddress(AddressEmb deliveryAddress)
{
this.deliveryAddress = deliveryAddress; this.deliveryAddress = deliveryAddress;
} }
public Date getDeliveredDate() { public Date getDeliveredDate()
{
return deliveredDate; return deliveredDate;
} }
public void setDeliveredDate(Date deliveredDate) { public void setDeliveredDate(Date deliveredDate)
{
this.deliveredDate = deliveredDate; this.deliveredDate = deliveredDate;
} }
public List<OrderItem> getItems() { public List<OrderItem> getItems()
{
return items; return items;
} }
public void addItem(OrderItem item) { public void addItem(OrderItem item)
{
item.setOrder(this); item.setOrder(this);
items.add(item); items.add(item);
} }
public void setItems(List<OrderItem> items) { public void setItems(List<OrderItem> items)
{
this.items = items; this.items = items;
} }
public boolean isDelivered() { public boolean isDelivered()
{
return delivered; return delivered;
} }
public void setDelivered(boolean delivered) { public void setDelivered(boolean delivered)
{
this.delivered = delivered; this.delivered = delivered;
} }
public boolean isInvoiced() { public boolean isInvoiced()
{
return invoiced; return invoiced;
} }
public void setInvoiced(boolean invoiced) { public void setInvoiced(boolean invoiced)
{
this.invoiced = invoiced; this.invoiced = invoiced;
} }
public String getInvoiceNumber() { public String getInvoiceNumber()
{
return invoiceNumber; return invoiceNumber;
} }
public void setInvoiceNumber(String invoiceNumber) { public void setInvoiceNumber(String invoiceNumber)
{
this.invoiceNumber = invoiceNumber; this.invoiceNumber = invoiceNumber;
} }
public boolean isOrdered() { public boolean isOrdered()
{
return ordered; return ordered;
} }
public void setOrdered(boolean ordered) { public void setOrdered(boolean ordered)
{
this.ordered = ordered; this.ordered = ordered;
} }
public Date getOrderDate() { public Date getOrderDate()
{
return orderDate; return orderDate;
} }
public void setOrderDate(Date orderDate) { public void setOrderDate(Date orderDate)
{
this.orderDate = orderDate; this.orderDate = orderDate;
} }
public BigDecimal getTotal() { public BigDecimal getTotal()
{
return total; return total;
} }
public void setTotal(BigDecimal total) { public void setTotal(BigDecimal total)
{
this.total = total; this.total = total;
} }
public BigDecimal getInvoiceTotal()
{
return invoiceTotal;
}
public void setInvoiceTotal(BigDecimal invoiceTotal)
{
this.invoiceTotal = invoiceTotal;
}
} }

@ -1,6 +1,5 @@
package info.bukova.isspst.filters; package info.bukova.isspst.filters;
import info.bukova.isspst.BigDecimalUtils;
import info.bukova.isspst.StringUtils; import info.bukova.isspst.StringUtils;
import info.bukova.isspst.data.JoinedItem; import info.bukova.isspst.data.JoinedItem;
import info.bukova.isspst.data.MUnitEmb; import info.bukova.isspst.data.MUnitEmb;
@ -46,10 +45,13 @@ public class JoinedItemFilter implements Filter<JoinedItem>
boolean foundCode = StringUtils.isEqualForFilter(item.getCode(), condition.getCode()); boolean foundCode = StringUtils.isEqualForFilter(item.getCode(), condition.getCode());
boolean foundName = StringUtils.isEqualForFilter(item.getName(), condition.getName()); boolean foundName = StringUtils.isEqualForFilter(item.getName(), condition.getName());
boolean foundTextItem = StringUtils.isEqualForFilter(item.getTextItem(), condition.getTextItem()); boolean foundTextItem = StringUtils.isEqualForFilter(item.getTextItem(), condition.getTextItem());
boolean foundQuantity = BigDecimalUtils.isEqualByDecimalForFilter(item.getQuantity(), condition.getQuantity()); boolean foundQuantity = true;// BigDecimalUtils.isEqualByDecimalForFilter(item.getQuantity(),
boolean foundUnitPrice = BigDecimalUtils.isEqualByDecimalForFilter(item.getUnitPrice(), condition.getUnitPrice()); // condition.getQuantity());
boolean foundUnitPrice = true; // BigDecimalUtils.isEqualByDecimalForFilter(item.getUnitPrice(),
// condition.getUnitPrice());
boolean foundMUnit = MUnitEmb.isEqualMUnitEmbForFilter(item.getMunit(), condition.getMunit()); boolean foundMUnit = MUnitEmb.isEqualMUnitEmbForFilter(item.getMunit(), condition.getMunit());
boolean foundTotal = BigDecimalUtils.isEqualByDecimalForFilter(item.getTotal(), condition.getTotal()); boolean foundTotal = true;// BigDecimalUtils.isEqualByDecimalForFilter(item.getTotal(),
// condition.getTotal());
boolean foundWorkgroup = Workgroup.isEqualByWorkgroupForFilter(item.getWorkgroup(), condition.getWorkgroup()); boolean foundWorkgroup = Workgroup.isEqualByWorkgroupForFilter(item.getWorkgroup(), condition.getWorkgroup());
boolean foundCenter = Workgroup.isEqualByWorkgroupForFilter(item.getCentre(), condition.getCentre()); boolean foundCenter = Workgroup.isEqualByWorkgroupForFilter(item.getCentre(), condition.getCentre());
boolean foundOwner = User.isEqualByUserForFilter(item.getOwnedBy(), condition.getOwnedBy()); boolean foundOwner = User.isEqualByUserForFilter(item.getOwnedBy(), condition.getOwnedBy());

@ -1,6 +1,5 @@
package info.bukova.isspst.filters; package info.bukova.isspst.filters;
import info.bukova.isspst.BigDecimalUtils;
import info.bukova.isspst.DateTimeUtils; import info.bukova.isspst.DateTimeUtils;
import info.bukova.isspst.StringUtils; import info.bukova.isspst.StringUtils;
import info.bukova.isspst.data.AddressEmb; import info.bukova.isspst.data.AddressEmb;
@ -45,10 +44,13 @@ public class OrderFilter implements Filter<Order>
{ {
boolean foundNumSer = StringUtils.isEqualForFilter(item.getNumser(), condition.getNumser()); boolean foundNumSer = StringUtils.isEqualForFilter(item.getNumser(), condition.getNumser());
boolean foundOrderDate = DateTimeUtils.isEqualByDateForFilter(item.getOrderDate(), condition.getOrderDate()); boolean foundOrderDate = DateTimeUtils.isEqualByDateForFilter(item.getOrderDate(), condition.getOrderDate());
boolean foundTotal = BigDecimalUtils.isEqualByDecimalForFilter(item.getTotal(), condition.getTotal()); boolean foundTotal = true;// BigDecimalUtils.isEqualByDecimalForFilter(item.getTotal(),
// condition.getTotal());
boolean foundDeliveryDate = DateTimeUtils.isEqualByDateForFilter(item.getDeliveryDate(), condition.getDeliveryDate()); boolean foundDeliveryDate = DateTimeUtils.isEqualByDateForFilter(item.getDeliveryDate(), condition.getDeliveryDate());
boolean foundDeliveredDate = DateTimeUtils.isEqualByDateForFilter(item.getDeliveredDate(), condition.getDeliveredDate()); boolean foundDeliveredDate = DateTimeUtils.isEqualByDateForFilter(item.getDeliveredDate(), condition.getDeliveredDate());
boolean foundInvoiceNumber = StringUtils.isEqualForFilter(item.getInvoiceNumber(), condition.getInvoiceNumber()); boolean foundInvoiceNumber = StringUtils.isEqualForFilter(item.getInvoiceNumber(), condition.getInvoiceNumber());
boolean foundInvoiceTotal = true;// BigDecimalUtils.isEqualByDecimalForFilter(item.getInvoiceTotal(),
// condition.getInvoiceTotal());
boolean foundSupplierAddr = AddressEmb.isEqualByAddressEmbForFilter(item.getSuplier(), condition.getSuplier()); boolean foundSupplierAddr = AddressEmb.isEqualByAddressEmbForFilter(item.getSuplier(), condition.getSuplier());
boolean foundDeliveryAddr = AddressEmb.isEqualByAddressEmbForFilter(item.getDeliveryAddress(), condition.getDeliveryAddress()); boolean foundDeliveryAddr = AddressEmb.isEqualByAddressEmbForFilter(item.getDeliveryAddress(), condition.getDeliveryAddress());
boolean foundInvoiceAddr = AddressEmb.isEqualByAddressEmbForFilter(item.getAddress(), condition.getAddress()); boolean foundInvoiceAddr = AddressEmb.isEqualByAddressEmbForFilter(item.getAddress(), condition.getAddress());
@ -60,6 +62,7 @@ public class OrderFilter implements Filter<Order>
&& foundDeliveryDate && foundDeliveryDate
&& foundDeliveredDate && foundDeliveredDate
&& foundInvoiceNumber && foundInvoiceNumber
&& foundInvoiceTotal
&& foundSupplierAddr && foundSupplierAddr
&& foundDeliveryAddr && foundDeliveryAddr
&& foundInvoiceAddr && foundInvoiceAddr

@ -326,6 +326,7 @@ OrderFormDescription=Popis
OrderFormOrdered=Objednáno OrderFormOrdered=Objednáno
OrderFormDeliveredDate=Dodáno dne OrderFormDeliveredDate=Dodáno dne
OrderFormInvoiceNumber=Číslo faktury OrderFormInvoiceNumber=Číslo faktury
OrderFormInvoiceTotal=Částka faktury
HandleComboKeyFilter=#del HandleComboKeyFilter=#del
HandleComboKey=$#del HandleComboKey=$#del

@ -51,6 +51,11 @@
hflex="10" hflex="10"
sort="auto(invoiceNumber)" sort="auto(invoiceNumber)"
label="${labels.OrderFormInvoiceNumber}" /> label="${labels.OrderFormInvoiceNumber}" />
<listheader
hflex="7"
align="right"
sort="auto(invoiceTotal)"
label="${labels.OrderFormInvoiceTotal}" />
<listheader <listheader
hflex="15" hflex="15"
sort="auto(suplier.company)" sort="auto(suplier.company)"
@ -151,6 +156,7 @@
</div> </div>
</div> </div>
</auxheader> </auxheader>
<auxheader></auxheader>
<auxheader> <auxheader>
<div zclass="find-grid-cell"> <div zclass="find-grid-cell">
<div sclass="find-grid-divtextbox"> <div sclass="find-grid-divtextbox">
@ -251,6 +257,7 @@
<listcell label="@load(each.deliveryDate) @converter('formatedDate', format=labels.DateFormat)" /> <listcell label="@load(each.deliveryDate) @converter('formatedDate', format=labels.DateFormat)" />
<listcell label="@load(each.deliveredDate) @converter('formatedDate', format=labels.DateFormat)" /> <listcell label="@load(each.deliveredDate) @converter('formatedDate', format=labels.DateFormat)" />
<listcell label="@load(each.invoiceNumber)" /> <listcell label="@load(each.invoiceNumber)" />
<listcell label="@load(each.invoiceTotal) @converter(vm.standardBigDecimalConverter)" />
<listcell label="@load(each.suplier)" /> <listcell label="@load(each.suplier)" />
<listcell label="@load(each.deliveryAddress)" /> <listcell label="@load(each.deliveryAddress)" />
<listcell label="@load(each.address)" /> <listcell label="@load(each.address)" />

@ -103,6 +103,15 @@
readonly="@load(empty fx.created)" /> readonly="@load(empty fx.created)" />
</cell> </cell>
</row> </row>
<row>
<cell sclass="row-title">${labels.OrderFormInvoiceTotal} :</cell>
<cell>
<textbox
id="idOrderInvoiceTotal"
width="150px"
value="@bind(fx.invoiceTotal) @converter(vm.standardBigDecimalConverter)" />
</cell>
</row>
<row> <row>
<cell sclass="row-title">${labels.OrderFormDescription} :</cell> <cell sclass="row-title">${labels.OrderFormDescription} :</cell>
<cell> <cell>

Loading…
Cancel
Save