public static ResultadoTransaccion GuardarCuenta(clsCuenta cuenta) { resTransaccion = new ResultadoTransaccion(); Int64 idMaster = 0; Int64 idCuenta = 0; try { //Abrir Conexion conn = BaseDatos.Conexion(); //Crear Transaccion transaction = conn.BeginTransaction(); //Registrar Direcciones resTransaccion = clsDireccionADO.GuardarDirecciones(cuenta.ClienteMaster.DireccionInfo, conn, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) { throw new Exception(resTransaccion.Descripcion); } cuenta.ClienteMaster.DireccionInfo = (clsDireccionInfo)resTransaccion.ObjetoTransaccion; //Registrar Cliente Master resTransaccion = clsClienteMasterADO.GuardarClienteMaster(cuenta.ClienteMaster, conn, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); idMaster = (Int64)resTransaccion.ObjetoTransaccion; //Registrar Cuenta objParams = SqlHelperParameterCache.GetSpParameterSet(conn, "SP_N_CLIENTES_CUENTA"); objParams[0].Value = idMaster; if (cuenta.VendedorAsignado != null) objParams[1].Value = cuenta.VendedorAsignado.Id; else objParams[1].Value = -1; //if (cuenta.CustomerAsignado != null) // objParams[2].Value = cuenta.CustomerAsignado.Id; //else // objParams[2].Value = -1; objParams[2].Value = cuenta.Telefono; objParams[3].Value = cuenta.CuentaSkype; objParams[4].Value = cuenta.SitioWeb; objParams[5].Value = cuenta.Email; objParams[6].Value = cuenta.Estado; if (cuenta.ZonaVentas == null) objParams[7].Value = -1; else objParams[7].Value = cuenta.ZonaVentas.Id; if (cuenta.CategoriaCliente == null) objParams[8].Value = -1; else objParams[8].Value = cuenta.CategoriaCliente.Id; objParams[9].Value = cuenta.Observacion; if (cuenta.SectorEconomico != null) objParams[10].Value = cuenta.SectorEconomico.Id; else objParams[10].Value = -1; if (cuenta.TipoMonedaVtaEstimada != null) objParams[11].Value = cuenta.TipoMonedaVtaEstimada.Id; else objParams[11].Value = -1; objParams[12].Value = cuenta.MontoVentaEstimada; objParams[13].Value = cuenta.NumEmpleados; if (cuenta.UMMovimientoEstimado != null) objParams[14].Value = cuenta.UMMovimientoEstimado.Id; else objParams[14].Value = -1; objParams[15].Value = cuenta.MontoMovimientoEstimado; if (cuenta.FormaContactoPreferida != null) objParams[16].Value = cuenta.FormaContactoPreferida.Id; else objParams[16].Value = -1; objParams[17].Value = cuenta.PermiteTelOficina; objParams[18].Value = cuenta.PermiteTelParticular; objParams[19].Value = cuenta.PermiteTelCelular; objParams[20].Value = cuenta.PermiteSkype; objParams[21].Value = cuenta.PermiteEmail; objParams[22].Value = cuenta.PermiteEmailMasivo; if (cuenta.DiaPreferido == null) objParams[23].Value = -1; else objParams[23].Value = cuenta.DiaPreferido.Id; if (cuenta.JornadaPreferida == null) objParams[24].Value = -1; else objParams[24].Value = cuenta.JornadaPreferida.Id; objParams[25].Value = cuenta.AutorizadoAduana; if (cuenta.Clasificacion == null) objParams[26].Value = -1; else objParams[26].Value = cuenta.Clasificacion.Id; SqlCommand command2 = new SqlCommand("SP_N_CLIENTES_CUENTA", conn); command2.Transaction = transaction; command2.Parameters.AddRange(objParams); command2.CommandType = CommandType.StoredProcedure; idCuenta = Convert.ToInt64(command2.ExecuteScalar()); cuenta.Id = idCuenta; if (idMaster > 0) { //Productos preferidos //clsClienteMasterADO.BorrarProductos(idTarget, transaction,conn); foreach (var producto in cuenta.ClienteMaster.ProductosPreferidos) { clsClienteMasterADO.AsignarTipoProducto(producto, idMaster, transaction, conn); } //Tipos Relacion //clsClienteMasterADO.BorrarTipoRelacion(idMaster, transaction, conn); foreach (var relacion in cuenta.ClienteMaster.TiposRelaciones) { clsClienteMasterADO.AsignarTipoRelacion(relacion, idMaster, transaction, conn); } } //Ejecutar transaccion transaction.Commit(); resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada; resTransaccion.Descripcion = "Se Creo Cuenta con Id " + idMaster.ToString(); //Registrar Actividad LogActividadUsuarios log = new LogActividadUsuarios(cuenta.GetType().ToString(), cuenta.Id, Enums.TipoActividadUsuario.Creo, Base.Usuario.UsuarioConectado.Usuario); LogActividades.clsLogActividadUsuariosADO.GuardaActividad(log); } catch (Exception ex) { transaction.Rollback(); Log.EscribirLog(ex.Message); resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada; resTransaccion.Descripcion = ex.Message; resTransaccion.ArchivoError = "clsCuentaADO"; resTransaccion.MetodoError = MethodBase.GetCurrentMethod().Name; } finally { conn.Close(); resTransaccion.Accion = Enums.AccionTransaccion.Insertar; cuenta.Id = idCuenta; cuenta.ClienteMaster.Id = idMaster; resTransaccion.ObjetoTransaccion = cuenta; } return resTransaccion; }
public static ResultadoTransaccion ActualizarCuenta(clsCuenta cuenta) { resTransaccion = new ResultadoTransaccion(); try { //Abrir Conexion conn = BaseDatos.Conexion(); //Crear Transaccion transaction = conn.BeginTransaction(); //Registrar Direcciones resTransaccion = clsDireccionADO.GuardarDirecciones(cuenta.ClienteMaster.DireccionInfo, conn, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); cuenta.ClienteMaster.DireccionInfo = (clsDireccionInfo)resTransaccion.ObjetoTransaccion; //Actualizar Master resTransaccion = clsClienteMasterADO.ActualizarClienteMaster(cuenta.ClienteMaster, conn, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); //Actualizar Cuenta objParams = SqlHelperParameterCache.GetSpParameterSet(conn, "SP_A_CLIENTES_MASTER"); objParams[0].Value = cuenta.Id; objParams[1].Value = cuenta.ClienteMaster.Id; if (cuenta.VendedorAsignado != null) objParams[2].Value = cuenta.VendedorAsignado.Id; else objParams[2].Value = -1; //if (cuenta.CustomerAsignado != null) // objParams[3].Value = cuenta.CustomerAsignado.Id; //else // objParams[3].Value = -1; objParams[3].Value = cuenta.Telefono; objParams[4].Value = cuenta.CuentaSkype; objParams[5].Value = cuenta.SitioWeb; objParams[6].Value = cuenta.Email; objParams[7].Value = cuenta.Estado; if (cuenta.ZonaVentas != null) objParams[8].Value = cuenta.ZonaVentas.Id; else objParams[8].Value = -1; if (cuenta.CategoriaCliente != null) objParams[9].Value = cuenta.CategoriaCliente.Id; else objParams[9].Value = -1; objParams[10].Value = cuenta.Observacion; if (cuenta.SectorEconomico != null) objParams[11].Value = cuenta.SectorEconomico.Id; else objParams[11].Value = -1; if (cuenta.TipoMonedaVtaEstimada != null) objParams[12].Value = cuenta.TipoMonedaVtaEstimada.Id; else objParams[12].Value = -1; objParams[13].Value = cuenta.MontoVentaEstimada; objParams[14].Value = cuenta.NumEmpleados; if (cuenta.UMMovimientoEstimado != null) objParams[15].Value = cuenta.UMMovimientoEstimado.Id; else objParams[15].Value = -1; objParams[16].Value = cuenta.MontoMovimientoEstimado; if (cuenta.FormaContactoPreferida != null) objParams[17].Value = cuenta.FormaContactoPreferida.Id; else objParams[17].Value = -1; objParams[18].Value = cuenta.PermiteTelOficina; objParams[19].Value = cuenta.PermiteTelParticular; objParams[20].Value = cuenta.PermiteTelCelular; objParams[21].Value = cuenta.PermiteSkype; objParams[22].Value = cuenta.PermiteEmail; objParams[23].Value = cuenta.PermiteEmailMasivo; if (cuenta.DiaPreferido == null) objParams[24].Value = -1; else objParams[24].Value = cuenta.DiaPreferido.Id; if (cuenta.JornadaPreferida == null) objParams[25].Value = -1; else objParams[25].Value = cuenta.JornadaPreferida.Id; objParams[26].Value = cuenta.AutorizadoAduana; if (cuenta.Clasificacion == null) objParams[27].Value = -1; else objParams[27].Value = cuenta.Clasificacion.Id; objParams[28].Value = cuenta.TipoReciboAperturaEmbarcador; SqlCommand command2 = new SqlCommand("SP_A_CLIENTES_MASTER", conn, transaction); command2.Parameters.AddRange(objParams); command2.CommandType = CommandType.StoredProcedure; command2.ExecuteNonQuery(); //Productos preferidos foreach (var producto in cuenta.ClienteMaster.ProductosPreferidos) { if (producto.IsNew && !producto.IsDeleted) clsClienteMasterADO.AsignarTipoProducto(producto, cuenta.ClienteMaster.Id, transaction, conn); else if (!producto.IsNew && !producto.IsDeleted) clsClienteMasterADO.ActualizarTipoProducto(producto, transaction, conn); else if (producto.IsDeleted) clsClienteMasterADO.BorrarProductosPorId(producto.Id,transaction,conn); } //resTransaccion = clsClienteMasterADO.BorrarProductos(cuenta.ClienteMaster.Id, transaction, conn); //if (resTransaccion.Estado == Enums.EstadoTransaccion.Aceptada) //{ // foreach (var producto in cuenta.ClienteMaster.ProductosPreferidos) // { // clsClienteMasterADO.AsignarTipoProducto(producto, cuenta.ClienteMaster.Id, transaction, conn); // } //} //else // throw new Exception(resTransaccion.Descripcion); //Tipos Relacion resTransaccion = clsClienteMasterADO.BorrarTipoRelacion(cuenta.ClienteMaster.Id, transaction, conn); if (resTransaccion.Estado == Enums.EstadoTransaccion.Aceptada) { foreach (var relacion in cuenta.ClienteMaster.TiposRelaciones) { clsClienteMasterADO.AsignarTipoRelacion(relacion, cuenta.ClienteMaster.Id, transaction, conn); } } else throw new Exception(resTransaccion.Descripcion); //Condiciones comerciales //resTransaccion = clsCondicionComercialDAO.GuardaCondicionComercialCliente(cuenta.ClienteMaster, conn, // transaction); //if(resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) // throw new Exception(resTransaccion.Descripcion); //Ejecutar transaccion transaction.Commit(); resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada; resTransaccion.Descripcion = "Se actualizo Cuenta con Id " + cuenta.Id.ToString(); //Registrar Actividad LogActividadUsuarios log = new LogActividadUsuarios(cuenta.GetType().ToString(), cuenta.Id, Enums.TipoActividadUsuario.Edito, Base.Usuario.UsuarioConectado.Usuario); LogActividades.clsLogActividadUsuariosADO.GuardaActividad(log); } catch (Exception ex) { transaction.Rollback(); Log.EscribirLog(ex.Message); resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada; resTransaccion.Descripcion = ex.Message; } finally { conn.Close(); resTransaccion.Accion = Enums.AccionTransaccion.Actualizar; resTransaccion.ObjetoTransaccion = cuenta; } return resTransaccion; }
public static ResultadoTransaccion EliminarCuenta(clsCuenta cuenta) { ResultadoTransaccion resTransaccion = new ResultadoTransaccion(); try { transaction = BaseDatos.Conexion().BeginTransaction(); //Eliminar Direcciones if (cuenta.ClienteMaster.DireccionInfo != null) { foreach (var direccion in cuenta.ClienteMaster.DireccionInfo.Items) { resTransaccion = new ResultadoTransaccion(); resTransaccion = clsDireccionADO.EliminarDireccion(direccion, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); } resTransaccion = new ResultadoTransaccion(); resTransaccion = clsDireccionADO.EliminarDireccionInfo(cuenta.ClienteMaster.DireccionInfo.IdInfo, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); } //Eliminar Tipos de Relacion resTransaccion = new ResultadoTransaccion(); resTransaccion = clsClienteMasterADO.BorrarTipoRelacion(cuenta.ClienteMaster.Id, transaction, conn); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); //Eliminar Tipos de Carga resTransaccion = new ResultadoTransaccion(); resTransaccion = clsClienteMasterADO.BorrarProductos(cuenta.ClienteMaster.Id, transaction, conn); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); //Eliminar Cliente Master resTransaccion = new ResultadoTransaccion(); resTransaccion = clsClienteMasterADO.EliminarClienteMaster(cuenta.ClienteMaster, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); //Eliminar Contactos IList<clsContacto> listContactos = new List<clsContacto>(); listContactos = clsClienteMasterADO.ListarContactos(cuenta.ClienteMaster); foreach (var contacto in listContactos) { resTransaccion = new ResultadoTransaccion(); resTransaccion = clsContactoADO.EliminarContacto(contacto, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); } //Eliminar Cuenta objParams = SqlHelperParameterCache.GetSpParameterSet(BaseDatos.Conexion(), "SP_E_CLIENTES_CUENTA"); objParams[0].Value = cuenta.Id; SqlCommand command = new SqlCommand("SP_E_CLIENTES_CUENTA", BaseDatos.Conexion()); command.Parameters.AddRange(objParams); command.CommandType = CommandType.StoredProcedure; command.Transaction = transaction; command.ExecuteNonQuery(); resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada; transaction.Commit(); //Registrar Actividad LogActividadUsuarios log = new LogActividadUsuarios(cuenta.GetType().ToString(), cuenta.Id, Enums.TipoActividadUsuario.Elimino, Base.Usuario.UsuarioConectado.Usuario); LogActividades.clsLogActividadUsuariosADO.GuardaActividad(log); } catch (Exception ex) { transaction.Rollback(); resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada; resTransaccion.Descripcion = ex.Message; Log.EscribirLog(ex.Message); } finally { BaseDatos.CerrarConexion(); } return resTransaccion; }