Temat: Automatyczne numerowanie zamówienia
Procedura
JL_PobierzFormatNumeracji_Server:
polecenieSQL.CommandText = "JL_PobierzFormatNumeracji_Server";
polecenieSQL.CommandType = CommandType.StoredProcedure;
polecenieSQL.Parameters.Add(new SqlParameter("@id_firmy", SqlDbType.BigInt));
polecenieSQL.Parameters["@id_firmy"].Value = FirmaID;
polecenieSQL.Parameters.Add(new SqlParameter("@dokument", SqlDbType.TinyInt));
polecenieSQL.Parameters["@dokument"].Value = DOMYSLNY_DOKUMENT;
polecenieSQL.Parameters.Add(new SqlParameter("@id_typu", SqlDbType.BigInt));
polecenieSQL.Parameters["@id_typu"].Value = typDokumentuMagazynowegoID;
polecenieSQL.Parameters.Add(new SqlParameter("@id_zasobu", SqlDbType.BigInt));
polecenieSQL.Parameters["@id_zasobu"].Value = magazynID;
polecenieSQL.Parameters.Add(new SqlParameter("@format_num", SqlDbType.VarChar, 50));
polecenieSQL.Parameters["@format_num"].Direction = ParameterDirection.Output;
polecenieSQL.Parameters.Add(new SqlParameter("@okresnumeracji", SqlDbType.TinyInt));
polecenieSQL.Parameters["@okresnumeracji"].Direction = ParameterDirection.Output;
polecenieSQL.Parameters.Add(new SqlParameter("@Parametr1", SqlDbType.TinyInt));
polecenieSQL.Parameters["@Parametr1"].Direction = ParameterDirection.Output;
polecenieSQL.Parameters.Add(new SqlParameter("@Parametr2", SqlDbType.TinyInt));
polecenieSQL.Parameters["@Parametr2"].Direction = ParameterDirection.Output;
polecenieSQL.ExecuteNonQuery();
Parametry wyjściowe przypisuję do zmiennych
formatNumeracji,
okresNumeracji,
parametr1 oraz
parametr2, a następnie wykorzystuję je w procedurze
RM_ZatwierdzZamowienie_Server:
polecenieSQL.Parameters.Clear();
polecenieSQL.CommandText = "RM_ZatwierdzZamowienie_Server";
polecenieSQL.CommandType = CommandType.StoredProcedure;
...
polecenieSQL.Parameters.Add(new SqlParameter("@numer", SqlDbType.VarChar, 30));
polecenieSQL.Parameters["@numer"].Value = "<auto>";
polecenieSQL.Parameters.Add(new SqlParameter("@num_format", SqlDbType.VarChar, 30));
polecenieSQL.Parameters["@num_format"].Value = formatNumeracji;
polecenieSQL.Parameters.Add(new SqlParameter("@num_okresnumeracji", SqlDbType.TinyInt));
polecenieSQL.Parameters["@num_okresnumeracji"].Value = okresNumeracji;
polecenieSQL.Parameters.Add(new SqlParameter("@num_auto", SqlDbType.TinyInt));
polecenieSQL.Parameters["@num_auto"].Value = parametr1;
polecenieSQL.Parameters.Add(new SqlParameter("@num_niezalezny", SqlDbType.TinyInt));
polecenieSQL.Parameters["@num_niezalezny"].Value = parametr2;
...
polecenieSQL.ExecuteNonQuery();
Następnie zatwierdzam dokonane zmiany - całość, tj. utworzenie zamówienia, dodanie pozycji, pobranie formatu numeracji i zatwierdzenie zamówienia zamknąłem w transakcji.