//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //Event: Open Cash Drawer private void eventBoxImageLogo_ButtonPressEvent(object o, ButtonPressEventArgs args) { if (GlobalFramework.LoggedTerminal.Printer != null && GlobalFramework.LoggedTerminal.Printer.PrinterType.ThermalPrinter) { PrintRouter.OpenDoor(GlobalFramework.LoggedTerminal.Printer); } }
void buttonCash_Clicked(object sender, EventArgs e) { if (GlobalFramework.LoggedTerminal.Printer != null) { PrintRouter.OpenDoor(GlobalFramework.LoggedTerminal.Printer); } }
public static bool OpenDoor(sys_configurationprinters pPrinter) { return(PrintRouter.OpenDoor(pPrinter)); }
public static bool PrintFinanceDocument(Window pSourceWindow, sys_configurationprinters pPrinter, fin_documentfinancemaster pDocumentFinanceMaster) { bool result = false; bool openDrawer = false; PosDocumentFinancePrintDialog.PrintDialogResponse response; if (!LicenceManagement.IsLicensed || !LicenceManagement.CanPrint) { Utils.ShowMessageTouchErrorUnlicencedFunctionDisabled(pSourceWindow, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_printing_function_disabled")); return(false); } //TK016249 - Impressoras - Diferenciação entre Tipos //Deteta janela de origem de forma a escolher qual impressora usar - TicketList -> ThermalPrinter | PosDocumentFinanceDialog -> Printer sys_configurationprinters printer; sys_configurationprinters printerDoc; if (GlobalFramework.UsingThermalPrinter) { //Both printer can be the same, if not Defined in DocumentType //Printer for Drawer and Document, if not defined in DocumentType printer = (pPrinter != null) ? pPrinter : GlobalFramework.LoggedTerminal.ThermalPrinter; printerDoc = (pDocumentFinanceMaster.DocumentType.Printer != null) ? pDocumentFinanceMaster.DocumentType.Printer : printer; } else { //Both printer can be the same, if not Defined in DocumentType //Printer for Drawer and Document, if not defined in DocumentType printer = (pPrinter != null) ? pPrinter : GlobalFramework.LoggedTerminal.Printer; printerDoc = (pDocumentFinanceMaster.DocumentType.Printer != null) ? pDocumentFinanceMaster.DocumentType.Printer : printer; } try { //Overload Management if (printerDoc == null) { //Notification : Show Message TouchTerminalWithoutAssociatedPrinter and Store user input, to Show Next Time(Yes) or Not (No) if (printerDoc == null) { Utils.ShowMessageTouchTerminalWithoutAssociatedPrinter(pSourceWindow, resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], pDocumentFinanceMaster.DocumentType.ResourceString)); } else { response = PosDocumentFinancePrintDialog.GetDocumentFinancePrintProperties(pSourceWindow, pDocumentFinanceMaster); //Print with default DocumentFinanceYearSerieTerminal Template if (response.Response == ResponseType.Ok) { result = PrintRouter.PrintFinanceDocument(pDocumentFinanceMaster); } } } else { bool validFiles = true; string extraMessage = string.Format(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "dialog_message_error_protected_files_invalid_files_detected_print_document_ignored"), pDocumentFinanceMaster.DocumentNumber); //Printer Drawer : Set openDrawer switch (PrintRouter.GetPrinterToken(printer.PrinterType.Token)) { //ThermalPrinter : Ticket Files case "THERMAL_PRINTER_WINDOWS": case "THERMAL_PRINTER_LINUX": case "THERMAL_PRINTER_SOCKET": openDrawer = true; break; } //Printer Document : Set Valid Files switch (PrintRouter.GetPrinterToken(printerDoc.PrinterType.Token)) { //ThermalPrinter : Ticket Files case "THERMAL_PRINTER_WINDOWS": case "THERMAL_PRINTER_LINUX": case "THERMAL_PRINTER_SOCKET": //validFiles = IsValidProtectedFile(FrameworkUtils.OSSlash(template.FileTemplate), extraMessage); break; //FastReport : Report Files case "GENERIC_PRINTER_WINDOWS": case "REPORT_EXPORT_PDF": //Required both Template Files ReportDocumentFinance and ReportDocumentFinanceWayBill //validFiles = ( // IsValidProtectedFile(FrameworkUtils.OSSlash(@"Resources/Reports/UserReports/ReportDocumentFinance.frx"), extraMessage) && // IsValidProtectedFile(FrameworkUtils.OSSlash(@"Resources/Reports/UserReports/ReportDocumentFinanceWayBill.frx"), extraMessage) //); break; case "VIRTUAL_SCREEN": break; } //ProtectedFiles Protection if (!validFiles) { return(false); } //Call Print Document : Receives ResponseType.Ok without user Confirmation, if Document was never Printer response = PosDocumentFinancePrintDialog.GetDocumentFinancePrintProperties(pSourceWindow, pDocumentFinanceMaster); //Print with Parameters Printer and Template if (response.Response == ResponseType.Ok) { //Print Document use Printer Document result = PrintRouter.PrintFinanceDocument(printerDoc, pDocumentFinanceMaster, response.CopyNames, response.SecondCopy, response.Motive); //OpenDoor use Printer Drawer if (openDrawer && pDocumentFinanceMaster.DocumentType.PrintOpenDrawer && !response.SecondCopy) { PrintRouter.OpenDoor(printer); } } } } catch (Exception ex) { Utils.ShowMessageTouchErrorPrintingTicket(pSourceWindow, printer, ex); } return(result); }
void _touchButtonCashDrawer_Clicked(object sender, EventArgs e) { bool result; //ProcessWorkSessionPeriod.GetSessionPeriodMovementTotalDebug(GlobalFramework.WorkSessionPeriodTerminal, true ); PosCashDrawerDialog dialogCashDrawer = new PosCashDrawerDialog(this, DialogFlags.DestroyWithParent); int response = dialogCashDrawer.Run(); if (response == (int)ResponseType.Ok) { //Get Fresh XPO Objects, Prevent Deleted Object Bug POS_WorkSessionPeriod workSessionPeriodDay = GlobalFramework.SessionXpo.GetObjectByKey <POS_WorkSessionPeriod>(GlobalFramework.WorkSessionPeriodDay.Oid); POS_WorkSessionPeriod workSessionPeriodTerminal; switch (dialogCashDrawer.MovementType.Token) { case "CASHDRAWER_OPEN": //Start Terminal Period result = ProcessWorkSessionPeriod.SessionPeriodOpen(WorkSessionPeriodType.Terminal, dialogCashDrawer.MovementDescription); if (result) { //Update UI GlobalApp.WindowPos.UpdateWorkSessionUI(); GlobalApp.WindowPos.TicketList.UpdateOrderStatusBar(); //Here we already have GlobalFramework.WorkSessionPeriodTerminal, assigned on ProcessWorkSessionPeriod.SessionPeriodStart //Get Fresh XPO Objects, Prevent Deleted Object Bug workSessionPeriodTerminal = GlobalFramework.SessionXpo.GetObjectByKey <POS_WorkSessionPeriod>(GlobalFramework.WorkSessionPeriodTerminal.Oid); result = ProcessWorkSessionMovement.PersistWorkSessionMovement( workSessionPeriodTerminal, dialogCashDrawer.MovementType, GlobalFramework.LoggedUser, GlobalFramework.LoggedTerminal, FrameworkUtils.CurrentDateTimeAtomic(), dialogCashDrawer.MovementAmountMoney, dialogCashDrawer.MovementDescription ); } if (result) { //PrintWorkSessionMovement FrameworkCalls.PrintCashDrawerOpenAndMoneyInOut(dialogCashDrawer, GlobalFramework.LoggedTerminal.Printer, Resx.ticket_title_worksession_terminal_open, 0.0m, dialogCashDrawer.TotalAmountInCashDrawer, dialogCashDrawer.MovementDescription); //Enable UI Buttons When Have Open Session GlobalApp.WindowPos.TouchButtonPosToolbarNewFinanceDocument.Sensitive = true; //Open CashDrawer Utils.ShowMessageTouch(dialogCashDrawer, DialogFlags.Modal, new Size(500, 280), MessageType.Info, ButtonsType.Close, Resx.global_information, Resx.dialog_message_cashdrawer_open_successfully); } else { Utils.ShowMessageTouch(dialogCashDrawer, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, Resx.global_error, Resx.app_error_contact_support); } break; case "CASHDRAWER_CLOSE": //Stop Terminal Period result = ProcessWorkSessionPeriod.SessionPeriodClose(GlobalFramework.WorkSessionPeriodTerminal); if (result) { //Update UI GlobalApp.WindowPos.UpdateWorkSessionUI(); GlobalApp.WindowPos.LabelCurrentTable.Text = Resx.status_message_open_cashdrawer; //Get Fresh XPO Objects, Prevent Deleted Object Bug workSessionPeriodTerminal = GlobalFramework.SessionXpo.GetObjectByKey <POS_WorkSessionPeriod>(GlobalFramework.WorkSessionPeriodTerminal.Oid); //Add CASHDRAWER_CLOSE Movement to Day Period result = ProcessWorkSessionMovement.PersistWorkSessionMovement( workSessionPeriodTerminal, dialogCashDrawer.MovementType, GlobalFramework.LoggedUser, GlobalFramework.LoggedTerminal, FrameworkUtils.CurrentDateTimeAtomic(), dialogCashDrawer.MovementAmountMoney, dialogCashDrawer.MovementDescription ); //PrintWorkSessionMovement FrameworkCalls.PrintWorkSessionMovement(dialogCashDrawer, GlobalFramework.LoggedTerminal.Printer, GlobalFramework.WorkSessionPeriodTerminal); //Enable UI Buttons When Have Open Session GlobalApp.WindowPos.TouchButtonPosToolbarNewFinanceDocument.Sensitive = false; //Show ClosePeriodMessage ShowClosePeriodMessage(dialogCashDrawer, GlobalFramework.WorkSessionPeriodTerminal); } break; case "CASHDRAWER_IN": dialogCashDrawer.TotalAmountInCashDrawer += dialogCashDrawer.MovementAmountMoney; workSessionPeriodTerminal = GlobalFramework.SessionXpo.GetObjectByKey <POS_WorkSessionPeriod>(GlobalFramework.WorkSessionPeriodTerminal.Oid); result = ProcessWorkSessionMovement.PersistWorkSessionMovement( workSessionPeriodTerminal, dialogCashDrawer.MovementType, GlobalFramework.LoggedUser, GlobalFramework.LoggedTerminal, FrameworkUtils.CurrentDateTimeAtomic(), dialogCashDrawer.MovementAmountMoney, dialogCashDrawer.MovementDescription ); if (result) { //PrintCashDrawerOpenAndMoneyInOut FrameworkCalls.PrintCashDrawerOpenAndMoneyInOut(dialogCashDrawer, GlobalFramework.LoggedTerminal.Printer, Resx.ticket_title_worksession_money_in, dialogCashDrawer.MovementAmountMoney, dialogCashDrawer.TotalAmountInCashDrawer, dialogCashDrawer.MovementDescription); //Open CashDrawer PrintRouter.OpenDoor(GlobalFramework.LoggedTerminal.Printer); //Audit FrameworkUtils.Audit("CASHDRAWER_IN", string.Format( Resx.audit_message_cashdrawer_in, FrameworkUtils.DecimalToStringCurrency(dialogCashDrawer.MovementAmountMoney), dialogCashDrawer.MovementDescription) ); //ShowMessage Utils.ShowMessageTouch(dialogCashDrawer, DialogFlags.Modal, new Size(500, 300), MessageType.Info, ButtonsType.Close, Resx.global_information, Resx.dialog_message_operation_successfully); } else { Utils.ShowMessageTouch(dialogCashDrawer, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, Resx.global_error, Resx.app_error_contact_support); } break; //Work with Terminal Session case "CASHDRAWER_OUT": dialogCashDrawer.TotalAmountInCashDrawer -= dialogCashDrawer.MovementAmountMoney; workSessionPeriodTerminal = GlobalFramework.SessionXpo.GetObjectByKey <POS_WorkSessionPeriod>(GlobalFramework.WorkSessionPeriodTerminal.Oid); //In Period Terminal result = ProcessWorkSessionMovement.PersistWorkSessionMovement( workSessionPeriodTerminal, dialogCashDrawer.MovementType, GlobalFramework.LoggedUser, GlobalFramework.LoggedTerminal, FrameworkUtils.CurrentDateTimeAtomic(), -dialogCashDrawer.MovementAmountMoney, dialogCashDrawer.MovementDescription ); if (result) { //PrintCashDrawerOpenAndMoneyInOut FrameworkCalls.PrintCashDrawerOpenAndMoneyInOut(dialogCashDrawer, GlobalFramework.LoggedTerminal.Printer, Resx.ticket_title_worksession_money_out, dialogCashDrawer.MovementAmountMoney, dialogCashDrawer.TotalAmountInCashDrawer, dialogCashDrawer.MovementDescription); //Open CashDrawer PrintRouter.OpenDoor(GlobalFramework.LoggedTerminal.Printer); //Audit FrameworkUtils.Audit("CASHDRAWER_OUT", string.Format( Resx.audit_message_cashdrawer_out, FrameworkUtils.DecimalToStringCurrency(dialogCashDrawer.MovementAmountMoney), dialogCashDrawer.MovementDescription) ); //ShowMessage Utils.ShowMessageTouch(dialogCashDrawer, DialogFlags.Modal, new Size(500, 300), MessageType.Info, ButtonsType.Close, Resx.global_information, Resx.dialog_message_operation_successfully); } else { Utils.ShowMessageTouch(dialogCashDrawer, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, Resx.global_error, Resx.app_error_contact_support); } break; case "CASHDRAWER_MONEY_OUT": break; default: break; } } ; dialogCashDrawer.Destroy(); //TODO: Remove Comments //_log.Debug(string.Format("ProcessWorkSessionPeriod: [{0}]", ProcessWorkSessionPeriod.GetSessionPeriodCashDrawerOpenOrCloseAmount(GlobalFramework.WorkSessionPeriodDay))); //if (GlobalFramework.WorkSessionPeriodDay != null) ProcessWorkSessionPeriod.GetSessionPeriodMovementTotalDebug(GlobalFramework.WorkSessionPeriodDay, true); //if (GlobalFramework.WorkSessionPeriodTerminal != null) ProcessWorkSessionPeriod.GetSessionPeriodMovementTotalDebug(GlobalFramework.WorkSessionPeriodTerminal, true); }
public static bool OpenDoor(SYS_ConfigurationPrinters pPrinter) { return(PrintRouter.OpenDoor(pPrinter)); }