private bool AmountIsValid() { // because it is already negative double amount = this.cashBack; PosTotal posTotal = new PosTotal(); posTotal.Organization_no = PosSettings.Default.Organization; posTotal.Store_no = PosSettings.Default.Store; posTotal.Pos_no = PosSettings.Default.Station; posTotal.Total_name = (int)TotalName.DAILY_BASE; posTotal.Load(); posTotal.Relations(); foreach (object obj in posTotal.Totals) { EclipsePos.Data.Total tot = obj as EclipsePos.Data.Total; if (tot.Total_type == (int)EclipsePos.Data.TotalType.CASH_IN_DRAWER) { if (tot.Total_amount >= amount) { return(true); } } } return(false); }
private void UpdateTotals(PosTotal posTotal, TotalType end, TotalName totalName) { foreach (object obj in posTotal.Totals) { EclipsePos.Data.Total total = obj as EclipsePos.Data.Total; if ((int)total.Total_type < (int)end) { total.AddToTotalAndCount( PosSettings.Default.Organization, PosContext.Instance.RetailStore.Retail_store_no, PosSettings.Default.Station, (TotalName)((int)posTotal.Total_name + 1), (TotalType)total.Total_type, total.Total_amount, total.Total_count); //total.Delete(); } } posTotal.UpdateEndDate(PosSettings.Default.Organization, PosSettings.Default.Store, PosSettings.Default.Station, (int)totalName); }
/** * Switch on the report type and update displays. */ public override void Engage(int keyValue) { keyValue = (int)PosContext.Instance.PosKeyValue; //MessageBox.Show("*** TerminalReport ***"+keyValue.ToString()); //Check if employee role is authorized to this event if (!PosContext.Instance.Employee.RolesEventNames.Contains("TerminalReports")) { PosError posError = new PosError(PosErrorCode.INSUFFICIENT_USER_AUTHORITY); posError.Engage(0); return; } //Check if employee role is authorized to this event if ((PosContext.Instance.CurrentEj != null) && (PosContext.Instance.CurrentEj.SeqNo > 0)) { PosError posError = new PosError(PosErrorCode.ERROR_EVENT); posError.Engage(0); return; } if (keyValue == 0) { reportType = (XZReportType)this.States().PeekState(); } else { reportType = (XZReportType)keyValue; } posTotal = new PosTotal(); posTotal.Organization_no = PosSettings.Default.Organization; posTotal.Store_no = PosContext.Instance.RetailStore.Retail_store_no; posTotal.Pos_no = PosSettings.Default.Station; switch (reportType) { case XZReportType.Z_DAILY: case XZReportType.X_DAILY: posTotal.Total_name = (int)TotalName.DAILY_BASE; break; case XZReportType.Z_WEEKLY: case XZReportType.X_WEEKLY: posTotal.Total_name = (int)TotalName.WEEKLY_BASE; break; case XZReportType.Z_MONTHLY: case XZReportType.X_MONTHLY: posTotal.Total_name = (int)TotalName.MONTHLY_BASE; break; case XZReportType.Z_YEARLY: case XZReportType.X_YEARLY: posTotal.Total_name = (int)TotalName.MONTHLY_BASE; break; } posTotal.Load(); posTotal.Relations(); if ((reportType == XZReportType.Z_WEEKLY || (reportType == XZReportType.Z_MONTHLY))) { // roll-up totals that migth be left over. switch (reportType) { case XZReportType.Z_DAILY: UpdateTotals(posTotal, TotalType.DAILY_BASE, TotalName.DAILY_BASE); break; case XZReportType.Z_WEEKLY: UpdateTotals(posTotal, TotalType.WEEKLY_BASE, TotalName.WEEKLY_BASE); break; case XZReportType.Z_MONTHLY: UpdateTotals(posTotal, TotalType.MONTHLY_BASE, TotalName.MONTHLY_BASE); break; } // re-read the totals posTotal = new PosTotal(); posTotal.Organization_no = PosSettings.Default.Organization; posTotal.Store_no = PosContext.Instance.RetailStore.Retail_store_no; posTotal.Pos_no = PosSettings.Default.Station; posTotal.Load(); posTotal.Relations(); } // see if there is any total information. if (posTotal.Totals.Count > 0) { PosContext.Instance.Receipt.Update(this); // PosError posError = new PosError(PosErrorCode.TERMINAL_REPORT); // posError.Engage(0); } else { return; } switch (reportType) { case XZReportType.Z_DAILY: UpdateTotals(posTotal, TotalType.WEEKLY_BASE, TotalName.DAILY_BASE); break; case XZReportType.Z_WEEKLY: UpdateTotals(posTotal, TotalType.MONTHLY_BASE, TotalName.WEEKLY_BASE); break; case XZReportType.Z_MONTHLY: UpdateTotals(posTotal, TotalType.YEARLY_BASE, TotalName.MONTHLY_BASE); break; } // pause... //PosContext ().eventStack ().pushEvent (new Pause (context ())); //PosContext.Instance.Operprompt.Update((Pause) context ().eventStack ().event ()); PosContext.Instance.InputLine = ""; PosContext.Instance.PosKeyValue = 0; }
/** * Validate the validity of the input amount. */ private bool AmountIsValid() { if (this.transType == (int)TotalType.PAID_IN) { return(true); } // because it is already negative double amount = PosContext.Instance.PosMath.Mult(transAmount, -1.0); PosTotal posTotal = new PosTotal(); posTotal.Organization_no = PosSettings.Default.Organization; posTotal.Store_no = PosSettings.Default.Store; posTotal.Pos_no = PosSettings.Default.Station; posTotal.Total_name = (int)TotalName.DAILY_BASE; posTotal.Load(); posTotal.Relations(); foreach (object obj in posTotal.Totals) { EclipsePos.Data.Total tot = obj as EclipsePos.Data.Total; if (tot.Total_type == (int)EclipsePos.Data.TotalType.CASH_IN_DRAWER) { if (tot.Total_amount > amount) { return(true); } } } return(false); /* String fetchSpec = PosTotal.getBySiteAndPos (context ().siteID (), context ().posNo ()); * Vector results = Application.dbConnection ().fetch (new PosTotal (), fetchSpec); * * if (results.size () > 0) * { * PosTotal posTotal = (PosTotal) results.elementAt (0); * for (int i=0; i<posTotal.totals ().size (); i++) * { * * Total total = (Total) posTotal.totals ().elementAt (i); * * * if (total.totalType () == Total.CASH_IN_DRAWER) * { * * double mediaTotal = total.totalAmount (); * if (mediaTotal < amount) * { * return false; * } * } * } * } */ //return false; }