public static void ParseSafetyKeyInput(List <string> parameters, out RacunType invoice, out string[] certificateParams) { invoice = new RacunType(); invoice.BrRac = new BrojRacunaType(); certificateParams = null; for (int i = 0; i < parameters.Count; i++) { switch (i + 1) { case 1: invoice.Oib = parameters[i]; break; case 2: invoice.DatVrijeme = parameters[i]; break; case 3: invoice.BrRac.BrOznRac = parameters[i]; break; case 4: invoice.BrRac.OznPosPr = parameters[i]; break; case 5: invoice.BrRac.OznNapUr = parameters[i]; break; case 6: invoice.IznosUkupno = parameters[i]; break; case 7: certificateParams = (parameters[i] == "1" ? new string[1] : new string[2]); break; case 8: if (!string.IsNullOrEmpty(parameters[i]) && certificateParams.Length == 1) { certificateParams[0] = parameters[i]; } break; case 9: if (!string.IsNullOrEmpty(parameters[i]) && certificateParams.Length == 2) { certificateParams[0] = parameters[i]; } break; case 10: if (!string.IsNullOrEmpty(parameters[i]) && certificateParams.Length == 2) { certificateParams[1] = parameters[i]; } break; } } }
private RacunType GetDefaultInvoice() { var invoice = new RacunType() { BrRac = new BrojRacunaType() { BrOznRac = "1", OznPosPr = "1", OznNapUr = "1" }, DatVrijeme = DateTime.Now.ToString("dd'.'MM'.'yyyy'T'HH':'mm':'ss"), IznosUkupno = 3.ToString("N2", CultureInfo.InvariantCulture), NacinPlac = NacinPlacanjaType.G, NakDost = false, Oib = "07989965722", OibOper = "98642375382", OznSlijed = OznakaSlijednostiType.N, Pdv = new[] { new PorezType { Stopa = 25.ToString("N2", CultureInfo.InvariantCulture), Osnovica = 2.34.ToString("N2", CultureInfo.InvariantCulture), Iznos = .56.ToString("N2", CultureInfo.InvariantCulture) } }, USustPdv = true }; return(invoice); }
private static void GenerateZKI(RacunType invoice) { StringBuilder sb = new StringBuilder(); sb.Append(invoice.Oib); sb.Append(invoice.DatVrijeme); sb.Append(invoice.BrRac.BrOznRac); sb.Append(invoice.BrRac.OznPosPr); sb.Append(invoice.BrRac.OznNapUr); sb.Append(invoice.IznosUkupno); invoice.ZastKod = SignAndHashMD5(sb.ToString()); }
public static void ParseInvoiceInput(List <string> parameters, out RacunType invoice, out string[] certificateParams) { invoice = new RacunType(); invoice.BrRac = new BrojRacunaType(); certificateParams = null; for (int i = 0; i < parameters.Count; i++) { switch (i + 1) { case 1: invoice.Oib = parameters[i]; break; case 2: invoice.USustPdv = (parameters[i] == "1"); break; case 3: invoice.DatVrijeme = parameters[i]; break; case 4: invoice.OznSlijed = (parameters[i] == "N" ? OznakaSlijednostiType.N : OznakaSlijednostiType.P); break; case 5: invoice.BrRac.BrOznRac = parameters[i]; break; case 6: invoice.BrRac.OznPosPr = parameters[i]; break; case 7: invoice.BrRac.OznNapUr = parameters[i]; break; case 8: if (!string.IsNullOrEmpty(parameters[i])) { invoice.Pdv = new List <PorezType>(); string[] fragments = parameters[i].Split(';'); for (int j = 0; j + 2 < fragments.Length; j += 3) { PorezType taxTupple = new PorezType(); taxTupple.Stopa = Settings.CustomParseDecimal(fragments[j]); taxTupple.Osnovica = Settings.CustomParseDecimal(fragments[j + 1]); taxTupple.Iznos = fragments[j + 2]; invoice.Pdv.Add(taxTupple); } } break; case 9: if (!string.IsNullOrEmpty(parameters[i])) { invoice.Pnp = new List <PorezType>(); string[] fragments = parameters[i].Split(';'); for (int j = 0; j + 2 < fragments.Length; j += 3) { PorezType taxTupple = new PorezType(); taxTupple.Stopa = Settings.CustomParseDecimal(fragments[j]); taxTupple.Osnovica = Settings.CustomParseDecimal(fragments[j + 1]); taxTupple.Iznos = fragments[j + 2]; invoice.Pnp.Add(taxTupple); } } break; case 10: if (!string.IsNullOrEmpty(parameters[i])) { invoice.OstaliPor = new List <PorezOstaloType>(); string[] fragments = parameters[i].Split(';'); for (int j = 0; j + 3 < fragments.Length; j += 4) { PorezOstaloType taxTupple = new PorezOstaloType(); taxTupple.Naziv = fragments[j]; taxTupple.Stopa = Settings.CustomParseDecimal(fragments[j + 1]); taxTupple.Osnovica = Settings.CustomParseDecimal(fragments[j + 2]); taxTupple.Iznos = fragments[j + 3]; invoice.OstaliPor.Add(taxTupple); } } break; case 11: if (!string.IsNullOrEmpty(parameters[i])) { invoice.IznosOslobPdvSpecified = true; invoice.IznosOslobPdv = parameters[i]; } break; case 12: if (!string.IsNullOrEmpty(parameters[i])) { invoice.IznosMarzaSpecified = true; invoice.IznosMarza = parameters[i]; } break; case 13: if (!string.IsNullOrEmpty(parameters[i])) { invoice.IznosNePodlOporSpecified = true; invoice.IznosNePodlOpor = parameters[i]; } break; case 14: if (!string.IsNullOrEmpty(parameters[i])) { invoice.Naknade = new List <NaknadaType>(); string[] fragments = parameters[i].Split(';'); for (int j = 0; j + 1 < fragments.Length; j += 2) { NaknadaType costTupple = new NaknadaType(); costTupple.NazivN = fragments[j]; costTupple.IznosN = fragments[j + 1]; invoice.Naknade.Add(costTupple); } } break; case 15: invoice.IznosUkupno = parameters[i]; break; case 16: switch (parameters[i]) { case "G": invoice.NacinPlac = NacinPlacanjaType.G; break; case "K": invoice.NacinPlac = NacinPlacanjaType.K; break; case "C": invoice.NacinPlac = NacinPlacanjaType.C; break; case "T": invoice.NacinPlac = NacinPlacanjaType.T; break; case "O": invoice.NacinPlac = NacinPlacanjaType.O; break; } break; case 17: invoice.OibOper = parameters[i]; break; case 18: invoice.NakDost = (parameters[i] == "1"); break; case 19: if (!string.IsNullOrEmpty(parameters[i])) { invoice.ParagonBrRac = parameters[i]; } break; case 20: certificateParams = (parameters[i] == "1" ? new string[1] : new string[2]); break; case 21: if (!string.IsNullOrEmpty(parameters[i]) && certificateParams.Length == 1) { certificateParams[0] = parameters[i]; } break; case 22: if (!string.IsNullOrEmpty(parameters[i]) && certificateParams.Length == 2) { certificateParams[0] = parameters[i]; } break; case 23: if (!string.IsNullOrEmpty(parameters[i]) && certificateParams.Length == 2) { certificateParams[1] = parameters[i]; } break; } } }