using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace Baza_Reklam
{
class Utils
{
public static object ExecuteQuery(string query)
{
SqlConnection conn = new SqlConnection(ConnString.getConnString().Value);
SqlCommand command = new SqlCommand(query);
command.Connection = conn;
object result = null;
conn.Open();
result = command.ExecuteScalar();
conn.Close();
return result;
}
public static float pobierzSzerModulu(string mod_typ)
{
string query = "select MOD_SZER from dbo.[NAZWY MODUŁÓW] where MOD_TYP='" + mod_typ + "'";
return (float) (ExecuteQuery(query) ?? 0);
}
public static float pobierzWysModulu(string mod_typ)
{
string query = "select MOD_WYS from dbo.[NAZWY MODUŁÓW] where MOD_TYP='" + mod_typ + "'";
return (float)(ExecuteQuery(query) ?? 0);
}
///
/// Zwraca customerId danej reklamy
///
public static int customerId(int reklamaId)
{
string query = "select customerId from Reklama where reklamaId=" + reklamaId;
return (int)(ExecuteQuery(query) ?? 0);
}
///
/// Zwraca Id loga przypisanego do danej reklamy
///
public static int logoId(int reklamaId)
{
string query = "select logoId from Reklama where reklamaId=" + reklamaId;
return (int)(ExecuteQuery(query) ?? 0);
}
///
/// Funkcja sprawdza czy logo jest użyte w ktorejs z reklam.
///
public static bool logoByloWykorzystane(int logoID)
{
string query = "select count(*) from reklama where logoID=" + logoID;
int result = 0;
result = (int)(ExecuteQuery(query) ?? result);
return (result != 0 ? false : true);
}
///
/// Funkcja sprawdza czy handlowiec wystawił jużw danym roku fakturę o danym numerze.
///
public static bool istniejeFaktura(int nr, string kod, int rok)
{
string query = "select count(*) from faktury where NUMER=" + nr + " aND NUMER_ROZ='" + kod + "' AND NUMER_ROK=" + rok;
int result = 0;
result = (int)(ExecuteQuery(query) ?? result);
return (result == 0 ? false : true);
}
///
/// Zwraca nazwę agencji dla danego agenta.
///
public static string nazwaAgencji(string symbolAgenta)
{
string query = "select A2.Symbol from agenci A left outer join Agencje A2 on A.id_agencji=A2.id_agencji where A.Symbol ='" + symbolAgenta +"'";
return (string)(ExecuteQuery(query) ?? "?");
}
///
/// Zwraca id agencji dla danego agenta.
///
public static int idAgencji(string symbolAgenta)
{
string query = "select id_Agencji from agenci where Symbol ='" + symbolAgenta +"'";
return (int)(ExecuteQuery(query) ?? 2);
}
///
/// Zwraca id agencji dla danego agenta.
///
public static int idAgencjiWgKoduAgenta(string kodAgenta)
{
string query = "select id_Agencji from agenci where F_ROZ ='" + kodAgenta + "'";
return (int)(ExecuteQuery(query) ?? 2);
}
///
/// Sprawdza czy istnieje już w bazie dany kod rozliczeniowy.
///
public static bool tagAgentaUnikalny(string tagAgenta, string symbolAgenta)
{
string query = "select count(*) from agenci where F_ROZ = '" + tagAgenta +"' and symbol <> '" + symbolAgenta + "'";
int result = (int)ExecuteQuery(query);
return (result == 0 ? true : false);
}
///
/// VIES ma wartości w bazie: -1,0,1,NULL...
///
public static bool czyKlientMaNrVIES(int customerID)
{
string query = "select VIES from klienci where customerId=" + customerID + " and VIES is not null ";
short result = (short)(ExecuteQuery(query) ?? Convert.ToInt16(0));
result = Math.Abs(result);
if (result > 0) return true;
return false;
}
public static string mailKlienta(int customerID)
{
string query = "select Email from klienci where customerId=" + customerID + " and email is not null ";
string result = (string)(ExecuteQuery(query) ?? "");
return result;
}
///
/// Zwraca kod rozliczeniowy agenta (tag Agenta).
///
public static string tagAgenta(string symbolAgenta)
{
string query = "select F_ROZ from agenci where Symbol ='" + symbolAgenta + "'";
return (string)(ExecuteQuery(query) ?? "?");
}
///
/// Zwraca numer następnej faktury danego agenta.
///
public static int numerNowejFaktury(string tagAgenta, int year)
{
string query = "select count(*) from faktury where korekta = 0 and [numer_roz]='" + tagAgenta + "' AND [numer_rok]=" + year;
int nr = (int)ExecuteQuery(query);
return (nr + 1);
}
///
/// Zwraca numer nowego reklamy. W try - catch z powoodu bzdurnych danych w bazie.
///
public static int numerNowejReklamy(string symbolAgenta, string tagAgenta)
{
SqlConnection conn = new SqlConnection(
ConnString.getConnString().Value);
SqlCommand command = new SqlCommand();
command.CommandType = CommandType.Text;
// command.CommandText = "select distinct [id reklamy] from reklama where [symbol akwizytora]=@symbolAgenta";
// command.Parameters.AddWithValue("@symbolAgenta", symbolAgenta);
command.CommandText = "select distinct [id reklamy] from reklama where [id reklamy] like '%' + @tagAgenta + '%'";
command.Parameters.AddWithValue("@tagAgenta", tagAgenta);
command.Connection = conn;
conn.Open();
SqlDataReader reader = command.ExecuteReader();
int max = 0;
int nr = 0;
while (reader.Read())
{
if ((reader.GetValue(0).ToString()).Substring(0, tagAgenta.Length) == tagAgenta)
{
// Int32.TryParse((reader.GetValue(0).ToString()).Substring(tagAgenta.Length, 3), out nr);
//W try - catch z powoodu bzdurnych danych w bazie.
try
{
nr = Int32.Parse((reader.GetValue(0).ToString()).Substring(tagAgenta.Length, 3));
}
catch (Exception e1)
{
}
if (nr > max)
{
max = nr;
}
}
}
conn.Close();
return max + 1;
}
///
/// Zwraca ilość kontaktów z poprzedniego miesiąca
///
public static int iloscKontaktowAgenta(string login)
{
string query = "select count(*) from dbo.KONTAKTY where symbol_agenta ='" +
login + "' and year(data)=" + DateTime.Today.AddMonths(-1).Year +" and month(data)=" + DateTime.Today.AddMonths(-1).Month;
int ilosc = (int)ExecuteQuery(query);
return ilosc;
}
///
/// Zwraca numer nowego zamówienia
///
public static int numerNowegoZamowienia(int idKlienta, int year)
{
string query = "select count(*) from zamowienia where idKlienta=" + idKlienta + " AND rokZamowienia=" + year;
int nr = (int)ExecuteQuery(query);
return (nr + 1);
}
///
/// Zwraca numer następnej faktury korekty dla danego agenta.
///
public static int numerNowejFakturyKorekty(string tagAgenta, int year)
{
string query = "select count(*) from faktury where korekta=1 AND [numer_rok]=" + year;
int nr = (int)ExecuteQuery(query);
return (nr + 1);
}
///
/// Sprawdza czy istnieje już w bazie dany kod rozliczeniowy.
///
public static bool kodKlientaUnikalny(string kodKlienta, string symbolAgenta, int customerId)
{
string query = "select count(*) from klienci where kodKlienta = '" + kodKlienta + "' and username = '" + symbolAgenta + "'" +
" and customerId <> " + customerId;
int result = (int)ExecuteQuery(query);
return (result == 0 ? true : false);
}
}
}