internal Promotion(String[] saleList, bool isFirstPayment) { String[] lineitems; Decimal quantity; Decimal amount; Int32 pluno; Int32 lineno; this.isFirstPayment = isFirstPayment; soldItems = SoldItem.Initialize(); for (int cntr = 0; cntr < saleList.Length; cntr++) { lineitems = saleList[cntr].Split(','); if (lineitems.Length < 2) { continue; } try { switch (lineitems[3]) { case Message.SAT: case Message.IPT: int quantityLength = lineitems[4].IndexOf('.') + 4; pluno = Int32.Parse(lineitems[4].Substring(quantityLength, 6)); lineno = Int32.Parse(lineitems[1]); quantity = Decimal.Parse(lineitems[4].Substring(0, quantityLength)) / 1000; amount = Decimal.Parse(lineitems[5].Substring(2, 10)) / 100; int sign = lineitems[3] == Message.SAT ? 1 : -1; IProduct p = FindProductByLabel(pluno); if (p == null) { break; } int categoryId = Convert.ToInt32(p.Category); soldItems.Add(pluno, lineno, sign * quantity, sign * amount); break; case Message.NAK: paymentMethod = PaymentMethods.CASH; paymentType = "NAK"; paymentAmount = Decimal.Parse(lineitems[5].Substring(2, 10)) / 100; break; case Message.KRD: paymentMethod = PaymentMethods.CREDIT; paymentType = String.Format("K{0,2}", lineitems[4].Substring(lineitems[4].Length - 2, 2)); paymentAmount = Decimal.Parse(lineitems[5].Substring(2, 10)) / 100; break; case Message.CHK: paymentMethod = PaymentMethods.CHECK; paymentType = "CEK"; paymentAmount = Decimal.Parse(lineitems[5].Substring(2, 10)) / 100; break; case Message.DVZ: paymentMethod = PaymentMethods.FOREIGNCURRENCY; paymentType = String.Format("D{0,2}", lineitems[4].Substring(0, 1)); paymentAmount = Decimal.Parse(lineitems[5].Substring(2, 10)) / 100; break; case Message.TOP: documentTotalAmount = Decimal.Parse(lineitems[5].Substring(2, 10)) / 100; break; case Message.END: if (lineitems[4].Trim() != String.Empty) { promotionRange = PromotionRange.CUSTOMER; } customerCode = lineitems[4].Trim() + lineitems[5].Substring(0, 8).Trim(); break; } } catch (Exception ex) { Settings.Log(String.Format("Hata Olustu! {0}", ex.Message)); } } if (paymentMethod == PaymentMethods.NONE) { paymentAmount = documentTotalAmount; } /*if the no sale line for the void line*/ //foreach (int catId in saleCategories.Keys) //{ // saleCategories[catId].ClearNonconsistentVoids(); //} }
public virtual bool PromotionCoverAll(PromotionRange range) { return(this.range <= range); }