private void btnGetSerial_Click(object sender, EventArgs e) { IFiscalPrinter fp = PrinterFactory.Create(Model); try { txtSerial.Text = fp.GetSerial(ComPort, Baud); if (txtSerial.Text.Length < 3 && !string.IsNullOrEmpty(txtSerial.Text)) { fp.getError(Convert.ToInt32(txtSerial.Text)); } else { savePrinterSettings(); } } catch (Exception x) { MessageBox.Show(x.Message); } finally { fp.Dispose(); } }
private void btnCheckKey_Click(object sender, EventArgs e) { savePrinterSettings(); loadPrinterSettings(); IFiscalPrinter fp = PrinterFactory.Create(Model); try { int answer = fp.OpenPort(Model, Key, ComPort, Baud); if (answer == 1) { MessageBox.Show("Key Registered Sucessfully"); savePrinterSettings(); } else { //MessageBox.Show(getError(answer), "Kujdes!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); MessageBox.Show(fp.getError(answer), "Cant Connect"); } } catch { } finally { fp.Dispose(); } }
private void testInv() { int length = 2; //nr rreshtave test qe duam te printojme si test loadPrinterSettings(); //nese nuk po punojme me active keyboard, checkstatus nuk ka kuptim if (!activeKeyb) { checkStatus = false; } IFiscalPrinter fp = PrinterFactory.Create(Model, checkStatus, activeKeyb); try { if (string.IsNullOrEmpty(txtKey.Text)) { MessageBox.Show("Ju lutemi te vendosni numrin e licences!", "Kujdes!"); return; } int answer = fp.OpenPort(Model, Key, ComPort, Baud); //nese ku ka lidhje me kasen kjo then NULL dhe nuk kemi fare objekt fiskal if (answer == 1) { try { string[] inv = { }; //read if (!File.Exists("sample.txt")) { MessageBox.Show("Mungon file me komandat"); return; } inv = File.ReadAllLines("sample.txt"); // check the length of the file if (inv.Length == 0) { MessageBox.Show("Mungon sample.txt file qe ka komenadat e kases"); return; } //print string line, nextline = ""; for (int i = 0; i < inv.Length; i++) { line = inv[i]; //check if next line is discount if (i < inv.Length - 1) //nese ka akoma rreshta { nextline = inv[i + 1]; } //nese kemi hapur nje fature jotatimore me komanden J atehere duhet mbyllyr me cript dhe jo tek per tek //pra e mira eshte nese kemi file me info jotatimore i gjithe file te excecutohet si nje script dhe jo tek per tek if (inv[0].StartsWith(("J,1,______,_,__;"))) { fp.ExecuteScript(inv); return; } //nese rreshti dyte eshte me C qe nenkupton zbritje dergo te dy rreshtat bashke qe te aplikohet zbritja if (nextline.StartsWith("C,1,______,_,__;", StringComparison.Ordinal)) { fp.ExecuteScript(new string[] { line, nextline }); i++; //i should be increased as two lines have been printed by the script } else if (fp.WriteLine(inv[i]) == 0) { Console.WriteLine("err: " + inv[i]); MessageBox.Show($"Gabim kominikim me kasen!\rRreshti: {inv[i]}" , "Konfirmo!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); return; } //end check if next line is discount } //end loop } //end try catch (Exception err) { Console.WriteLine(err.Message); } finally { //fp.stopReading = true; Console.WriteLine("Port disconnected!"); } } else { //MessageBox.Show(getError(answer), "Kujdes!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); MessageBox.Show(fp.getError(answer), "Cant Connect"); return; } } catch (Exception ex) { MessageBox.Show("Nuk ka lidhje me kasen. Ose kasa fikur ose COM port jo i rregullt. Err: " + ex.ToString()); } //ne kete rast FP nuk eshte inicaizluar fare si objekt se nuk ka patur lidhje me kasen dhe kthen null error finally { fp.Dispose(); } }