private void VoidCurrentItem() { ItemList itemList = new ItemList(PosContext.Instance.CurrentEjItem, PosContext.Instance.CurrentEj); for (int i = 0; i < itemList.Count; i++) { Object obj = itemList[i]; EjLine ejLine = (EjLine)obj; switch (ejLine.LineType) { case (int)EjLineType.ITEM: TransItem transItem = (TransItem)ejLine.DataRecord(); if (transItem.State != (int)EjLineStates.VOID_ITEM) { // already voided? transItem.State = (int)EjLineStates.VOID_ITEM; transItem.UpdateState(); PosContext.Instance.Receipt.Update((EjItem)ejLine); } break; case (int)EjLineType.ITEM_LINK: // TransItemLink itemLink = (TransItemLink) line.dataRecord (); // itemLink.setAmount (0.0); break; case (int)EjLineType.PROMOTION: TransPromotion itemPromo = (TransPromotion)ejLine.DataRecord(); if (itemPromo.State != (int)EjLineStates.VOID_ITEM) { // already voided? itemPromo.State = (int)EjLineStates.VOID_ITEM; itemPromo.UpdateState(); PosContext.Instance.Receipt.Update((EjPromotion)ejLine); } // itemPromo.PromotionAmount = 0; break; case (int)EjLineType.TAX: TransTax itemTax = ejLine.DataRecord() as TransTax; itemTax.State = (int)EjLineStates.VOID_ITEM; itemTax.UpdateState(); /// itemTax.TaxAmount = 0.0; // itemTax.TaxableAmount = 0.0; // ejLine.ExtAmount = 0; // ejLine.TaxAmount = 0; // ejLine.Amount = 0; PosContext.Instance.Receipt.Update((EjTax)ejLine); break; case (int)EjLineType.SURCHARGE: TransItem transSurcharge = (TransItem)ejLine.DataRecord(); if (transSurcharge.State != (int)EjLineStates.VOID_ITEM) { // already voided? transSurcharge.State = (int)EjLineStates.VOID_ITEM; transSurcharge.UpdateState(); PosContext.Instance.Receipt.Update((EjSurcharge)ejLine); } break; } } }
public override void SaveState(EjLineStates state) { transTax.State = (int)state; transTax.UpdateState(); }
private void VoidLine(int lineNumber) { ArrayList ejList = PosContext.Instance.CurrentEj.EjArrayList; foreach (object obj in ejList) { EjLine ejLine = obj as EjLine; if (ejLine.LineNo != lineNumber) { continue; } switch (ejLine.LineType) { case (int)EjLineType.ITEM: TransItem transItem = (TransItem)ejLine.DataRecord(); if (transItem.State != (int)EjLineStates.VOID_ITEM) { // already voided? transItem.State = (int)EjLineStates.VOID_ITEM; transItem.UpdateState(); PosContext.Instance.Receipt.Update((EjItem)ejLine); } break; case (int)EjLineType.ITEM_LINK: // TransItemLink itemLink = (TransItemLink) line.dataRecord (); // itemLink.setAmount (0.0); break; case (int)EjLineType.PROMOTION: TransPromotion itemPromo = (TransPromotion)ejLine.DataRecord(); if (itemPromo.State != (int)EjLineStates.VOID_ITEM) { // already voided? itemPromo.State = (int)EjLineStates.VOID_ITEM; itemPromo.UpdateState(); if (itemPromo.PromotionType == (int)EjPromotionTypes.WHOLE_ORDER) { PosContext.Instance.SaleMode = null; } PosContext.Instance.Receipt.Update((EjPromotion)ejLine); } // itemPromo.PromotionAmount = 0; break; case (int)EjLineType.TAX: TransTax itemTax = ejLine.DataRecord() as TransTax; itemTax.State = (int)EjLineStates.VOID_ITEM; itemTax.UpdateState(); /// itemTax.TaxAmount = 0.0; // itemTax.TaxableAmount = 0.0; // ejLine.ExtAmount = 0; // ejLine.TaxAmount = 0; // ejLine.Amount = 0; PosContext.Instance.Receipt.Update((EjTax)ejLine); break; case (int)EjLineType.SURCHARGE: TransItem transSurcharge = (TransItem)ejLine.DataRecord(); if (transSurcharge.State != (int)EjLineStates.VOID_ITEM) { // already voided? transSurcharge.State = (int)EjLineStates.VOID_ITEM; transSurcharge.UpdateState(); PosContext.Instance.Receipt.Update((EjSurcharge)ejLine); } break; } } }