Subversion Repositories SmartDukaan

Rev

Rev 35477 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
34055 ranu 1
package com.spice.profitmandi.dao.model;
2
 
3
import javax.persistence.*;
4
import java.util.Objects;
5
 
6
 
7
@Entity
8
@NamedNativeQueries({
9
        @NamedNativeQuery(name = "Aging.15DaysOurStock",
35476 amit 10
                query = "SELECT " +
11
                        "    SUM(CASE WHEN cc.status = 'SLOWMOVING' THEN tl.selling_price ELSE 0 END) AS SLOWMOVING, " +
12
                        "    SUM(CASE WHEN cc.status = 'RUNNING' THEN tl.selling_price ELSE 0 END) AS RUNNING, " +
13
                        "    SUM(CASE WHEN cc.status = 'FASTMOVING' THEN tl.selling_price ELSE 0 END) AS FASTMOVING, " +
14
                        "    SUM(CASE WHEN cc.status = 'HID' THEN tl.selling_price ELSE 0 END) AS HID, " +
15
                        "    SUM(CASE WHEN cc.status IS NULL THEN tl.selling_price ELSE 0 END) AS Other, " +
16
                        "    SUM(tl.selling_price) AS Total " +
17
                        "FROM warehouse.invoice inv " +
18
                        "JOIN warehouse.supplier su ON su.id = inv.supplierId AND su.internal = 0 " +
19
                        "JOIN warehouse.purchase p ON p.invoice_id = inv.id " +
20
                        "JOIN warehouse.purchaseorder po ON po.id = p.purchaseOrder_id " +
35478 amit 21
                        "    AND po.supplierId = inv.supplierId " +
35476 amit 22
                        "JOIN warehouse.inventoryItem ii2 ON ii2.purchaseId = p.id " +
23
                        "    AND ii2.lastScanType != 'PURCHASE_RETURN' AND ii2.physicalWarehouseId = po.warehouseId " +
24
                        "JOIN warehouse.inventoryItem ii ON ii.serialNumber = ii2.serialNumber " +
25
                        "    AND ii.currentQuantity = 1 " +
26
                        "    AND ii.lastScanType NOT IN ('DOA_IN', 'DOA_OUT', 'SALE_RET_UNUSABLE') " +
27
                        "    AND ii.created > '2018-01-01' " +
28
                        "JOIN warehouse.scanNew s ON s.inventoryItemId = ii.id AND s.type = 'PURCHASE' " +
29
                        "JOIN catalog.item i ON i.id = ii.itemId AND i.category = 10006 " +
30
                        "JOIN catalog.tag_listing tl ON tl.item_id = i.id " +
31
                        "LEFT JOIN catalog.catagoriesd_catalog cc ON cc.catalog_id = i.catalog_item_id AND cc.end_date IS NULL " +
32
                        "WHERE inv.invoiceDate < DATE_SUB(CURDATE(), INTERVAL 15 DAY)",
34055 ranu 33
                resultSetMapping = "Our15DaysAging"),
34
 
35
})
36
 
37
@SqlResultSetMappings({
38
 
39
        @SqlResultSetMapping(name = "Our15DaysAging",
40
                classes = {@ConstructorResult(targetClass = Our15DaysOldAgingStock.class,
41
                        columns = {
34098 ranu 42
                                @ColumnResult(name = "SLOWMOVING", type = Long.class),
43
                                @ColumnResult(name = "RUNNING", type = Long.class),
35477 amit 44
                                @ColumnResult(name = "FASTMOVING", type = Long.class),
34055 ranu 45
                                @ColumnResult(name = "HID", type = Long.class),
46
                                @ColumnResult(name = "Other", type = Long.class),
47
                                @ColumnResult(name = "Total", type = Long.class),
48
                        }
49
                )}
50
        )
51
 
52
})
53
 
54
public class Our15DaysOldAgingStock {
34098 ranu 55
    long slowmovingAgingStock;
34055 ranu 56
    long runningAgingStock;
57
    long fastmovingAgingStock;
58
    long hidAgingStock;
59
    long otherAgingStock;
60
    long total;
61
 
62
    // Synthetic primary key to satisfy JPA's requirement
63
    @Id
64
    @GeneratedValue(strategy = GenerationType.IDENTITY)
65
    private Long id; // This will not be used in the query but satisfies JPA.
66
 
34098 ranu 67
    public Our15DaysOldAgingStock(long slowmovingAgingStock, long runningAgingStock, long fastmovingAgingStock, long hidAgingStock, long otherAgingStock, long total) {
68
        this.slowmovingAgingStock = slowmovingAgingStock;
34055 ranu 69
        this.runningAgingStock = runningAgingStock;
70
        this.fastmovingAgingStock = fastmovingAgingStock;
71
        this.hidAgingStock = hidAgingStock;
72
        this.otherAgingStock = otherAgingStock;
73
        this.total = total;
74
    }
75
 
34098 ranu 76
    public long getSlomovingAgingStock() {
77
        return slowmovingAgingStock;
34055 ranu 78
    }
79
 
34098 ranu 80
    public void setSlowmovingAgingStock(long slowmovingAgingStock) {
81
        this.slowmovingAgingStock = slowmovingAgingStock;
34055 ranu 82
    }
83
 
84
    public long getRunningAgingStock() {
85
        return runningAgingStock;
86
    }
87
 
88
    public void setRunningAgingStock(long runningAgingStock) {
89
        this.runningAgingStock = runningAgingStock;
90
    }
91
 
92
    public long getFastmovingAgingStock() {
93
        return fastmovingAgingStock;
94
    }
95
 
96
    public void setFastmovingAgingStock(long fastmovingAgingStock) {
97
        this.fastmovingAgingStock = fastmovingAgingStock;
98
    }
99
 
100
    public long getHidAgingStock() {
101
        return hidAgingStock;
102
    }
103
 
104
    public void setHidAgingStock(long hidAgingStock) {
105
        this.hidAgingStock = hidAgingStock;
106
    }
107
 
108
    public long getOtherAgingStock() {
109
        return otherAgingStock;
110
    }
111
 
112
    public void setOtherAgingStock(long otherAgingStock) {
113
        this.otherAgingStock = otherAgingStock;
114
    }
115
 
116
    public long getTotal() {
117
        return total;
118
    }
119
 
120
    public void setTotal(long total) {
121
        this.total = total;
122
    }
123
 
124
    @Override
125
    public boolean equals(Object o) {
126
        if (this == o) return true;
127
        if (o == null || getClass() != o.getClass()) return false;
128
        Our15DaysOldAgingStock that = (Our15DaysOldAgingStock) o;
34098 ranu 129
        return slowmovingAgingStock == that.slowmovingAgingStock && runningAgingStock == that.runningAgingStock && fastmovingAgingStock == that.fastmovingAgingStock && hidAgingStock == that.hidAgingStock && otherAgingStock == that.otherAgingStock && total == that.total;
34055 ranu 130
    }
131
 
132
    @Override
133
    public int hashCode() {
34098 ranu 134
        return Objects.hash(slowmovingAgingStock, runningAgingStock, fastmovingAgingStock, hidAgingStock, otherAgingStock, total);
34055 ranu 135
    }
136
}
137