public static TransporteDAO getInstance() { if (transporteDao == null) { transporteDao = new TransporteDAO(); } return(transporteDao); }
public bool eliminarCliente(Cliente cliente, string schema) { bool retorno = false; NpgsqlConnection conexion = null; NpgsqlCommand cmd = null; NpgsqlTransaction tran = null; try { conexion = Conexion.getInstance().ConexionDB(); cmd = new NpgsqlCommand("logueo.speliminarcliente", conexion); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("parm_id", cliente.id); cmd.Parameters.AddWithValue("parm_schema", schema); conexion.Open(); tran = conexion.BeginTransaction(); cmd.ExecuteNonQuery(); foreach (Telefono telefono in cliente.telefonos) { bool retTel = false; retTel = TelefonoDAO.getInstance().eliminarTelefono(telefono.id, schema, conexion); if (!retTel) { retorno = false; return(retorno); } } foreach (Transporte transporte in cliente.transportes) { bool retTel = false; retTel = TransporteDAO.getInstance().eliminarTransporteCliente(transporte.id, cliente.id, schema, conexion); if (!retTel) { retorno = false; return(retorno); } } foreach (Direccion direccion in cliente.direcciones) { bool retTel = false; retTel = DireccionDAO.getInstance().eliminarDireccion(direccion.id, schema, conexion); if (!retTel) { retorno = false; return(retorno); } } } catch (Exception e) { tran.Rollback(); throw e; } finally { } tran.Commit(); conexion.Close(); retorno = true; return(retorno); }
public List <Cliente> listaClientes(string schema) { DataTable dt = new DataTable(); List <Cliente> listaClientes = new List <Cliente>(); NpgsqlConnection conexion = null; NpgsqlCommand cmd = null; NpgsqlTransaction tran = null; NpgsqlDataReader dr = null; try { conexion = Conexion.getInstance().ConexionDB(); cmd = new NpgsqlCommand("logueo.spgetclientes", conexion); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("parm_schema", schema); conexion.Open(); tran = conexion.BeginTransaction(); dr = cmd.ExecuteReader(); if (dr != null) { dt.Load(dr); dr.Close(); } foreach (DataRow row in dt.Rows) { Cliente cliente = new Cliente(); cliente.id = Convert.ToInt32(row.ItemArray[0]); cliente.razon_social = row.ItemArray[1].ToString(); cliente.nombre = row.ItemArray[2].ToString(); cliente.cuit = row.ItemArray[3].ToString(); cliente.fecha_ingreso = Convert.ToDateTime(row.ItemArray[4].ToString()); cliente.email = row.ItemArray[5].ToString(); cliente.id_categoriaTributaria = Convert.ToInt32(row.ItemArray[6].ToString()); cliente.id_categoriaPrecios = Convert.ToInt32(row.ItemArray[7].ToString()); cliente.es_activo = Convert.ToBoolean(row.ItemArray[8].ToString()); List <Telefono> listaTelefonos = TelefonoDAO.getInstance().listaTelefonos(cliente.id, schema, conexion); cliente.telefonos = listaTelefonos; List <Transporte> listaTransportes = TransporteDAO.getInstance().listaTransportesCliente(cliente.id, schema, conexion); cliente.transportes = listaTransportes; List <Direccion> listaDirecciones = DireccionDAO.getInstance().listaDireccionesCliente(cliente.id, schema, conexion); cliente.direcciones = listaDirecciones; List <CategoriaTributaria> listaCategoriasTributarias = AdminDAO.getInstance().listaCategoriasTributarias(schema, conexion); foreach (CategoriaTributaria categoriaTributaria in listaCategoriasTributarias) { if (cliente.id_categoriaTributaria == categoriaTributaria.id) { cliente.categoriaTributaria = categoriaTributaria; break; } } List <CategoriaPrecios> listaCategoriasPrecios = CategoriasPreciosDAO.getInstance().listaCategoriasPrecios(schema, conexion); foreach (CategoriaPrecios categoriaPrecios in listaCategoriasPrecios) { if (cliente.id_categoriaPrecios == categoriaPrecios.id) { cliente.categoriaPrecios = categoriaPrecios; break; } } listaClientes.Add(cliente); } dr.Close(); } catch (Exception e) { listaClientes = null; tran.Rollback(); conexion.Close(); throw (e); } finally { } tran.Commit(); conexion.Close(); return(listaClientes); }
public string nuevoCliente(Cliente cliente, string schema) { string retorno = null; NpgsqlTransaction tran = null; List <Cliente> list = listaClientes(schema); bool existe = validarObjetoExistente(list, cliente.nombre, cliente.cuit); if (existe) { retorno = "El cliente ya existe"; return(retorno); } NpgsqlConnection conexion = null; NpgsqlCommand cmd = null; try { conexion = Conexion.getInstance().ConexionDB(); cmd = new NpgsqlCommand("logueo.spnuevocliente", conexion); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("parm_razonsocial", cliente.razon_social); cmd.Parameters.AddWithValue("parm_nombre", cliente.nombre); cmd.Parameters.AddWithValue("parm_cuit", cliente.cuit); cmd.Parameters.AddWithValue("parm_fecha", cliente.fecha_ingreso); cmd.Parameters.AddWithValue("parm_email", cliente.email); cmd.Parameters.AddWithValue("parm_categoriatributaria", cliente.id_categoriaTributaria); cmd.Parameters.AddWithValue("parm_catlistaprecio", cliente.id_categoriaPrecios); cmd.Parameters.AddWithValue("parm_schema", schema); conexion.Open(); tran = conexion.BeginTransaction(); Object id_cliente = cmd.ExecuteScalar(); cliente.id = Convert.ToInt32(id_cliente); foreach (Telefono telefono in cliente.telefonos) { bool retTel = false; retTel = TelefonoDAO.getInstance().nuevoTelefono(cliente.id, telefono.telefono, telefono.descripcion, cliente.fecha_ingreso, schema, conexion); if (!retTel) { retorno = "El teléfono " + telefono.telefono + " ya existe para este cliente"; return(retorno); } } foreach (Transporte transporte in cliente.transportes) { bool retTrans = false; retTrans = TransporteDAO.getInstance().nuevoTransporteCliente(cliente.id, transporte, schema, conexion); if (!retTrans) { retorno = "El transporte " + transporte.nombre + " ya existe para este cliente"; return(retorno); } } foreach (Direccion direccion in cliente.direcciones) { bool retDir = false; retDir = DireccionDAO.getInstance().nuevaDireccion(cliente.id, direccion, schema, conexion); if (!retDir) { retorno = "La direccion " + direccion.calle + " " + direccion.altura + " ya existe para este cliente"; return(retorno); } } } catch (Exception e) { tran.Rollback(); throw e; } finally { tran.Commit(); conexion.Close(); } retorno = "Nuevo cliente añadido correctamente"; return(retorno); }