| 1 package com.dotmarketing.cms.product.model; 2 3 import java.util.ArrayList ; 4 import java.util.List ; 5 6 import com.liferay.portal.model.User; 7 import com.dotmarketing.portlets.discountcode.model.DiscountCode; 8 import com.dotmarketing.portlets.product.factories.ProductFormatFactory; 9 import com.dotmarketing.portlets.product.model.ProductFormat; 10 11 public class ShoppingCart { 12 long inode = 0; 13 private User user; 14 private List <Holder> holders; 15 private List <DiscountCode> discountCodes; 16 17 public ShoppingCart() 18 { 19 holders = new ArrayList <Holder>(); 20 discountCodes = new ArrayList <DiscountCode>(); 21 } 22 23 public List <Holder> getHolders() { 24 return holders; 25 } 26 public void setHolders(List <Holder> holders) { 27 this.holders = holders; 28 } 29 public List <DiscountCode> getDiscountCodes() { 30 return discountCodes; 31 } 32 33 public void setDiscountCodes(List <DiscountCode> discountCodes) { 34 this.discountCodes = discountCodes; 35 } 36 37 42 public Holder findHolder(long formatInode) 43 { 44 Holder holder = null; 45 for(Holder holderAux : holders) 46 { 47 if (holderAux.getFormat().getInode() == formatInode) 48 { 49 holder = holderAux; 50 break; 51 } 52 } 53 if (holder == null) 55 { 56 holder = new Holder(); 57 ProductFormat format = ProductFormatFactory.getProductFormat(formatInode); 58 holder.setFormat(format); 59 holders.add(holder); 60 } 61 return holder; 62 } 63 64 private Holder findHolderByHolderInode(long holderInode) 65 { 66 Holder holder = null; 67 for(Holder holderAux : holders) 68 { 69 if (holderAux.getInode() == holderInode) 70 { 71 holder = holderAux; 72 break; 73 } 74 } 75 return holder; 76 } 77 78 83 public void addItem(int quantity,long formatInode) 84 { 85 Holder holder = findHolder(formatInode); 86 int originalquantity = holder.getQuantity(); 87 int newQuantity = originalquantity + quantity; 88 holder.setQuantity(newQuantity); 89 } 90 91 96 public void setQuantityItem(int quantity,long formatInode) 97 { 98 Holder holder = findHolder(formatInode); 99 holder.setQuantity(quantity); 100 } 101 102 public void setQuantityItemByHolderInode(int quantity,long HolderInode) 103 { 104 Holder holder = findHolderByHolderInode(HolderInode); 105 if(holder != null) 106 { 107 holder.setQuantity(quantity); 108 } 109 } 110 111 116 public void deleteItem(int quantity,long formatInode) 117 { 118 Holder holder = findHolder(formatInode); 119 int originalquantity = holder.getQuantity(); 120 int newQuantity = originalquantity - quantity; 121 newQuantity = (newQuantity <= 0 ? 0 : newQuantity); 122 holder.setQuantity(newQuantity); 123 } 124 125 public void removeItem(long formatInode) 126 { 127 for(int i = 0;i < holders.size();i++) 128 { 129 Holder holderAux = holders.get(i); 130 if (holderAux.getFormat().getInode() == formatInode) 131 { 132 holders.remove(i); 133 break; 134 } 135 } 136 } 137 138 141 public void clear() 142 { 143 inode = 0; 144 user = null; 145 holders.clear(); 146 discountCodes.clear(); 147 } 148 149 152 public int numberItems() 153 { 154 int returnValue = 0; 155 for(Holder holder : holders) 156 { 157 returnValue += holder.getQuantity(); 158 } 159 return returnValue; 160 } 161 162 public void addDiscount(DiscountCode discountCode) 163 { 164 if(!discountCodes.contains(discountCode)) 165 { 166 discountCodes.add(discountCode); 167 } 168 } 169 170 public DiscountCode findDiscountCode(String discountId) 171 { 172 DiscountCode returnDiscount = null; 173 for(DiscountCode discountCode : discountCodes) 174 { 175 if (discountCode.getCodeId().equals(discountId)) 176 { 177 returnDiscount = discountCode; 178 break; 179 } 180 } 181 return returnDiscount; 182 } 183 184 public void deleteDiscountCode(String discountId) 185 { 186 for(int i = 0; i < discountCodes.size();i++) 187 { 188 DiscountCode discountCode = discountCodes.get(i); 189 if (discountCode.getCodeId().equals(discountId)) 190 { 191 discountCodes.remove(i); 192 break; 193 } 194 } 195 } 196 197 public User getUser() { 198 return user; 199 } 200 201 public void setUser(User user) { 202 this.user = user; 203 } 204 205 public long getInode() { 206 return inode; 207 } 208 209 public void setInode(long inode) { 210 this.inode = inode; 211 } 212 } | Popular Tags |