private string GetPrintString(string rekapitulacijaRacuna) { TextOutput output = new TextOutput(40); // OTVARANJE LADICE output.NewLine(); output.Add(new TextItem(0, (char)27 + "" + 'p' + "" + (char)0 + "" + (char)100 + "" + (char)250, TextAlignment.Left)); output.CommitLine(); #region Header string nazivUstanove = Global.Instance.Konfiguracija["NazivUstanove"]; string adresaUstanove = Global.Instance.Konfiguracija["AdresaUstanove"]; string pdvBroj = Global.Instance.Konfiguracija["PDVBroj"]; string nazivApoteke = Global.Instance.Konfiguracija["NazivApoteke"]; string adresaApoteke = Global.Instance.Konfiguracija["AdresaApoteke"]; output.Add(new TextItem(0, nazivUstanove, TextAlignment.Left)); output.Add(new TextItem(40, "PDV:" + pdvBroj, TextAlignment.Right)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, adresaUstanove, TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, nazivApoteke, TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, adresaApoteke, TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, Racun.GetByID(this.ID).VrijemeKreiranja.ToString(), TextAlignment.Left)); output.CommitLine(); #endregion output.AddBlankLine(); output.AddBlankLine(); #region Racun Header if (rekapitulacijaRacuna == "rekapitulacija") { output.NewLine(); output.Add(new TextItem(3, "Rekapitulacija naplačenog iznosa za: ", TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(9, "Fiskalni račun br: " + this.BrojFisk.ToString(), TextAlignment.Left)); output.CommitLine(); } output.NewLine(); output.Add(new TextItem(13, "Račun br: " + this.ID.ToString(), TextAlignment.Left)); output.CommitLine(); output.AddBlankLine(); #endregion output.AddSplitLine(); #region Column Names output.NewLine(); output.Add(new TextItem(0, "Šifra - Naziv", TextAlignment.Left)); output.CommitLine(); output.NewLine(); TextItem itemRCP = new TextItem(27, "RCP%", TextAlignment.Left); TextItem itemKolicina = new TextItem(7, "Količina", TextAlignment.Left); TextItem itemCijena = new TextItem(18, "Cijena", TextAlignment.Left); TextItem itemIznos = new TextItem(35, "Iznos", TextAlignment.Left); TextItem itemPdvIznos = new TextItem(0, "T PDV%", TextAlignment.Left); output.Add(itemRCP, itemCijena, itemIznos, itemKolicina, itemPdvIznos); output.CommitLine(); #endregion output.AddSplitLine(); #region Stavke Dictionary <string, TBR_Rekapitulacija> rekapitulacija = new Dictionary <string, TBR_Rekapitulacija>(); decimal ukupnaVrijednostTakse = 0; decimal ukupanIznosTakse = 0; //decimal ukupnaVrijednost = 0; //decimal ukupanIznos = 0; Decimal iznosPop = 0; foreach (RacunStavka stavka in this.Stavke) { if (stavka == null) { continue; } output.NewLine(); output.Add(new TextItem(0, stavka.Roba.Sifra, TextAlignment.Left), new TextItem(6, stavka.Roba.Naziv, TextAlignment.Left)); output.CommitLine(); string tbr = stavka.Roba.PDVStopa.TBR; iznosPop = stavka.IznosKupac - stavka.IznosPopusta; output.NewLine(); TextItem itemIznosValue = new TextItem(40, String.Format("{0:0.00}", stavka.IznosKupac), TextAlignment.Right); TextItem itemCijenaValue = null; if (stavka.Participacija == 0) { itemCijenaValue = new TextItem(24, String.Format("{0:0.00}", stavka.Cijena), TextAlignment.Right); } else { decimal refCijena = Math.Round(stavka.ReferalnaCijena + stavka.ReferalnaCijena * stavka.PDVStopa / 100, 2); itemCijenaValue = new TextItem(24, String.Format("{0:0.00}", refCijena), TextAlignment.Right); } TextItem itemKolicinaValue = new TextItem(15, String.Format("{0:0.00}", stavka.Kolicina), TextAlignment.Right); TextItem itemRCPValue = new TextItem(27, stavka.Participacija + "%", TextAlignment.Left); TextItem itemPDVValue = new TextItem(0, tbr + " " + String.Format("{0:0}", stavka.Roba.PDVStopa.Stopa) + "%", TextAlignment.Left); output.Add(itemIznosValue, itemCijenaValue, itemKolicinaValue, itemPDVValue, itemRCPValue); output.CommitLine(); // Ispis popusta na racunu ukoliko postoji ******************************************************** Int16 popustInt; String popustInt1; if (stavka.Popust > 0) { popustInt = Convert.ToInt16(stavka.Popust); popustInt1 = String.Format("{0:0}", stavka.Popust); output.NewLine(); output.Add(new TextItem(0, "Iznos popusta", TextAlignment.Left)); output.CommitLine(); output.NewLine(); TextItem itemIznosPopustaValue = new TextItem(40, String.Format("{0:0.00}", -stavka.IznosPopusta), TextAlignment.Right); // Iznos popusta //TextItem itemTaksaCijenaValue = new TextItem(24, String.Format("{0:0.00}", stavka.IznosTakse), TextAlignment.Right); // TextItem itemTaksaKolicinaValue = new TextItem(15, String.Format("{0:0.00}", Decimal.One), TextAlignment.Right); // Treba TextItem itemPopustValue = new TextItem(26, popustInt + "%", TextAlignment.Left); // Popust TextItem itemTaksaPDVValue = new TextItem(0, tbr + " " + String.Format("{0:0}", stavka.Roba.PDVStopa.Stopa) + "%", TextAlignment.Left); // Treba output.Add(itemIznosPopustaValue, itemTaksaPDVValue, itemPopustValue); output.CommitLine(); //ukupnaVrijednostTakse += stavka.IznosTakse - (Math.Round(stavka.IznosTakse * stavka.Roba.PDVStopa.Stopa / (100 + stavka.Roba.PDVStopa.Stopa), 2)); //ukupanIznosTakse += stavka.IznosTakse; } Int16 doplataInt; String doplataInt1; if (stavka.DoplataSaPDV != 0) { doplataInt = Convert.ToInt16(stavka.DoplataBezPDV); doplataInt1 = String.Format("{0:0}", stavka.DoplataBezPDV); output.NewLine(); output.Add(new TextItem(0, "Doplata do proizvođačke cijene", TextAlignment.Left)); output.CommitLine(); output.NewLine(); TextItem itemIznosDoplateValue = new TextItem(40, String.Format("{0:0.00}", stavka.DoplataSaPDV), TextAlignment.Right); // Iznos popusta //TextItem itemTaksaCijenaValue = new TextItem(24, String.Format("{0:0.00}", stavka.IznosTakse), TextAlignment.Right); // TextItem itemTaksaKolicinaValue = new TextItem(15, String.Format("{0:0.00}", Decimal.One), TextAlignment.Right); // Treba //TextItem itemDoplataValue = new TextItem(26, doplataInt + "%", TextAlignment.Left); // Popust TextItem itemKolicina1Value = new TextItem(15, String.Format("{0:0.00}", stavka.Kolicina), TextAlignment.Right); TextItem DoplataCijenaValue = new TextItem(24, String.Format("{0:0.00}", Math.Round(Decimal.Divide(stavka.DoplataSaPDV, stavka.Kolicina), 2)), TextAlignment.Right); //TextItem itemTaksaPDVValue = new TextItem(0, tbr + " " + // String.Format("{0:0}", stavka.Roba.PDVStopa.Stopa) + "%", TextAlignment.Left); // Treba output.Add(itemIznosDoplateValue, itemKolicina1Value, DoplataCijenaValue); output.CommitLine(); //ukupnaVrijednostTakse += stavka.IznosTakse - (Math.Round(stavka.IznosTakse * stavka.Roba.PDVStopa.Stopa / (100 + stavka.Roba.PDVStopa.Stopa), 2)); //ukupanIznosTakse += stavka.IznosTakse; } //************************************************************************************************* if (stavka.IznosTakse != 0) { output.NewLine(); output.Add(new TextItem(0, "Taksa za otapanje sirupa", TextAlignment.Left)); output.CommitLine(); output.NewLine(); TextItem itemTaksaIznosValue = new TextItem(40, String.Format("{0:0.00}", stavka.IznosTakse), TextAlignment.Right); TextItem itemTaksaCijenaValue = new TextItem(24, String.Format("{0:0.00}", stavka.IznosTakse), TextAlignment.Right); TextItem itemTaksaKolicinaValue = new TextItem(15, String.Format("{0:0.00}", Decimal.One), TextAlignment.Right); TextItem itemTaksaRCPValue = new TextItem(27, stavka.Participacija + "%", TextAlignment.Left); TextItem itemTaksaPDVValue = new TextItem(0, tbr + " " + String.Format("{0:0}", stavka.Roba.PDVStopa.Stopa) + "%", TextAlignment.Left); output.Add(itemTaksaIznosValue, itemTaksaCijenaValue, itemTaksaKolicinaValue, itemTaksaPDVValue, itemTaksaRCPValue); output.CommitLine(); ukupnaVrijednostTakse += stavka.IznosTakse - (Math.Round(stavka.IznosTakse * stavka.Roba.PDVStopa.Stopa / (100 + stavka.Roba.PDVStopa.Stopa), 2)); ukupanIznosTakse += stavka.IznosTakse; } //ukupnaVrijednost += stavka.Vrijednost; //ukupanIznos += stavka.Iznos; if (stavka.Pausal != 0) { output.NewLine(); output.Add(new TextItem(0, "Paušal sa recepta", TextAlignment.Left), new TextItem(40, String.Format("{0:0.00}", stavka.Pausal), TextAlignment.Right)); output.CommitLine(); output.NewLine(); } // RACUNANJE REKAPITULACIJE if (stavka.Roba != null && stavka.Roba.PDVStopa != null && !rekapitulacija.Keys.Contains(tbr)) { rekapitulacija.Add(tbr, new TBR_Rekapitulacija(tbr, stavka.Roba.PDVStopa.Stopa)); } if (stavka.Roba != null && stavka.Roba.PDVStopa != null && rekapitulacija.Keys.Contains(tbr)) { rekapitulacija[tbr].UkupnoBezPDV += iznosPop + stavka.DoplataSaPDV; //- (stavka.Iznos - Global.Instance.Zaokruzenje(stavka.Iznos)); //rekapitulacija[tbr].UkupnoBezPDV += stavka.Vrijednost; // ako ovako onda se izgubi svaki put 0.01 ili 0.02 // zato sto se svaki iznos pojedino zaokruzuje //rekapitulacija[tbr].UkupnoSaPDV += Global.Instance.Zaokruzenje(stavka.Iznos); rekapitulacija[tbr].UkupnoSaPDV += iznosPop + stavka.IznosTakse + stavka.Pausal + stavka.DoplataSaPDV; //rekapitulacija[tbr].UkupnoSaPDV += stavka.IznosKupac + stavka.IznosTakse + stavka.Pausal; rekapitulacija[tbr].IznosPDV += iznosPop + stavka.DoplataSaPDV - stavka.Vrijednost; //rekapitulacija[tbr].IznosPDV += stavka.IznosKupac - stavka.Vrijednost; //rekapitulacija[tbr].IznosTaksi += stavka.IznosTakse; } } #endregion if (this.Zaokruzenje != Decimal.Zero) { output.NewLine(); output.Add(new TextItem(0, "zaokruženje računa :", TextAlignment.Left), new TextItem(output.LineLenght, String.Format("{0:0.00}", this.Zaokruzenje), TextAlignment.Right)); output.CommitLine(); } output.AddSplitLine(); #region Footer output.NewLine(); Racun racNew = Racun.GetByID(this.ID); output.Add(new TextItem(0, "UKUPNO ZA PLAĆANJE:", TextAlignment.Left), new TextItem(output.LineLenght, "KM= " + String.Format("{0:0.00}", racNew.Iznos + racNew.Zaokruzenje - racNew.IznosPopusta + racNew.DoplataSaPDV), TextAlignment.Right)); output.CommitLine(); output.AddSplitLine(); #region Rekapitulacija #region Zaglavlje output.NewLine(); output.Add(new TextItem(3, "ukupno", TextAlignment.Left)); output.Add(new TextItem(22, "iznos", TextAlignment.Left)); output.Add(new TextItem(32, "ukupno", TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(2, "baz pdv", TextAlignment.Left)); output.Add(new TextItem(10, "ts", TextAlignment.Left)); output.Add(new TextItem(16, "%", TextAlignment.Left)); output.Add(new TextItem(24, "pdv", TextAlignment.Left)); output.Add(new TextItem(32, "sa_pdv", TextAlignment.Left)); output.CommitLine(); #endregion foreach (string tbr in rekapitulacija.Keys) { //decimal pdv_temp = // Global.Instance.Zaokruzenje(rekapitulacija[tbr].UkupnoSaPDV) * 17 / 117; decimal pdv_temp = Global.Instance.Zaokruzenje(rekapitulacija[tbr].UkupnoSaPDV) * rekapitulacija[tbr].Stopa / (100 + rekapitulacija[tbr].Stopa); output.NewLine(); output.Add(new TextItem(9, String.Format("{0:0.00}", //rekapitulacija[tbr].UkupnoBezPDV Global.Instance.Zaokruzenje(rekapitulacija[tbr].UkupnoSaPDV) - pdv_temp ), TextAlignment.Right)); output.Add(new TextItem(10, rekapitulacija[tbr].TBR, TextAlignment.Left)); output.Add(new TextItem(17, String.Format("{0:0.}", rekapitulacija[tbr].Stopa) + "%", TextAlignment.Right)); output.Add(new TextItem(27, String.Format("{0:0.00}", //rekapitulacija[tbr].IznosPDV pdv_temp ), TextAlignment.Right)); output.Add(new TextItem(38, String.Format("{0:0.00}", //dodao ovdje zaokruzenje Global.Instance.Zaokruzenje(rekapitulacija[tbr].UkupnoSaPDV)), TextAlignment.Right)); output.CommitLine(); } #endregion output.AddSplitLine(); output.NewLine(); output.Add(new TextItem(12, "* Hvala na posjeti !*", TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(13, DateTime.Now.ToString(), TextAlignment.Left)); output.CommitLine(); output.AddBlankLine(); output.AddBlankLine(); output.AddBlankLine(); output.AddBlankLine(); output.AddBlankLine(); output.AddBlankLine(); output.AddBlankLine(); output.AddBlankLine(); // CUT COMMAND output.NewLine(); output.Add(new TextItem(0, (char)29 + "" + (char)86 + "" + (char)1, TextAlignment.Left)); output.CommitLine(); //CUT za Star SP600 //if (Global.Instance.BrojPoslovnice == 92) //{ // output.NewLine(); // output.Add(new TextItem(0, "1B 64 74", TextAlignment.Left)); // output.CommitLine(); //} #endregion return(output.GetOutput()); }
public string GetPrintStringRekapitulacije() { Dictionary <string, decimal> Rekapitulacija = GetRekapitulacijuSmjene(); TextOutput output = new TextOutput(40); #region Header string nazivUstanove = Global.Instance.Konfiguracija["NazivUstanove"]; string adresaUstanove = Global.Instance.Konfiguracija["AdresaUstanove"]; string pdvBroj = Global.Instance.Konfiguracija["PDVBroj"]; string nazivApoteke = Global.Instance.Konfiguracija["NazivApoteke"]; string adresaApoteke = Global.Instance.Konfiguracija["AdresaApoteke"]; output.Add(new TextItem(0, nazivUstanove, TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, adresaUstanove, TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, pdvBroj, TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, nazivApoteke, TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, adresaApoteke, TextAlignment.Left)); output.CommitLine(); #endregion output.AddSplitLine(); #region Smjena Header output.NewLine(); output.Add(new TextItem(0, "Datum smjene:" + this.VrijemeZatvaranja.ToString("dd.MM.yyyy"), TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, "Broj smjene:" + this.Broj.ToString(), TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, "Odgovorno lice: " + this.OdgovornoLice.Ime + " " + this.OdgovornoLice.Prezime, TextAlignment.Left)); output.CommitLine(); #endregion output.AddSplitLine(); #region Smjena output.NewLine(); output.Add(new TextItem(0, "Ukupni PDV: " + Rekapitulacija["PDV"].ToString(), TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, "Ukupni iznos bez PDV-a: " + (Rekapitulacija["Iznos"] - Rekapitulacija["PDV"]).ToString(), TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, "Ukupni iznos: " + Rekapitulacija["Iznos"].ToString(), TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, "Ukupno zaokruzenje: " + Rekapitulacija["Zaokruzenje"].ToString(), TextAlignment.Left)); output.CommitLine(); output.NewLine(); output.Add(new TextItem(0, "Ukupno iznos taksi: " + Rekapitulacija["IznosTaksi"].ToString(), TextAlignment.Left)); output.CommitLine(); #endregion #region Footer output.AddBlankLine(); output.AddBlankLine(); output.AddBlankLine(); output.AddBlankLine(); output.AddBlankLine(); output.AddBlankLine(); output.AddBlankLine(); output.AddBlankLine(); // CUT COMMAND output.NewLine(); output.Add(new TextItem(0, (char)29 + "" + (char)86 + "" + (char)1, TextAlignment.Left)); output.CommitLine(); #endregion return(output.GetOutput()); }