public static ResultadoTransaccion Modificar(CotizacionDirecta cotizacionDirecta) { var Res = new ResultadoTransaccion(); SqlTransaction trans = null; var cotizacionDB = ObtieneCotizacionDirecta(cotizacionDirecta.Id32).ObjetoTransaccion as CotizacionDirecta; //Abrir Conexion var conn = BaseDatos.Conexion(); try { SqlCommand command = new SqlCommand("SP_A_COTIZACION_SOLICITUD_COTIZACIONES", conn); command.Transaction = conn.BeginTransaction(); trans = command.Transaction; command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@id", cotizacionDirecta.Id32); command.Parameters.AddWithValue("@Producto", cotizacionDirecta.Producto); command.Parameters.AddWithValue("@idUsuario", cotizacionDirecta.Usuario.Id32); command.Parameters.AddWithValue("@idCliente", cotizacionDirecta.Cliente.Id32); command.Parameters.AddWithValue("@nombreCliente", cotizacionDirecta.NombreCliente); command.Parameters.AddWithValue("@fechaSolicitud", cotizacionDirecta.FechaSolicitud); command.Parameters.AddWithValue("@idIncoterms", cotizacionDirecta.IncoTerm.Id32); command.Parameters.AddWithValue("@commodity", cotizacionDirecta.Commodity); command.Parameters.AddWithValue("@puertoEmbarque", ""); command.Parameters.AddWithValue("@navieraReferencia", ""); command.Parameters.AddWithValue("@tarifaReferencia", ""); command.Parameters.AddWithValue("@Observaciones", cotizacionDirecta.Observaciones); command.Parameters.AddWithValue("@mercaderia", ""); command.Parameters.AddWithValue("@gastosLocales", cotizacionDirecta.GastosLocales); command.Parameters.AddWithValue("@proveedorCarga", ""); command.Parameters.AddWithValue("@credito", ""); command.Parameters.AddWithValue("@fechaEstimadaEmbarque", ""); command.Parameters.AddWithValue("@conAgenciamento", false); command.CommandType = CommandType.StoredProcedure; command.ExecuteScalar(); ModificarOpciones(cotizacionDirecta, command); //Marcamos las opciones que el usuario marco para borrar. foreach (var opcion in cotizacionDB.Opciones) { var op = cotizacionDirecta.Opciones.Find(foo => foo.Id32 == opcion.Id32); if (op == null) { EliminaOpcion(opcion, command); } } ClsGastosLocalesDao.Eliminar(cotizacionDirecta, command); ClsGastosLocalesDao.CrearGastosLocales(cotizacionDirecta, command); //Ejecutar transaccion trans.Commit(); Res.Estado = Entidades.Enums.Enums.EstadoTransaccion.Aceptada; Res.Descripcion = "Se modificó la cotización correctamente"; } catch (Exception ex) { if (trans != null) { trans.Rollback(); } Log.EscribirLog(ex.Message); Res.Descripcion = ex.Message; Res.ArchivoError = NombreClase; Res.MetodoError = MethodBase.GetCurrentMethod().Name; } finally { conn.Close(); } return(Res); }
public static ResultadoTransaccion Crear(CotizacionDirecta cotizacionDirecta) { ResultadoTransaccion res = new ResultadoTransaccion(); SqlTransaction trans = null; //Abrir Conexion var conn = BaseDatos.Conexion(); try { SqlCommand command = new SqlCommand("SP_N_COTIZACION_SOLICITUD_COTIZACIONES", conn); command.Transaction = conn.BeginTransaction(); trans = command.Transaction; command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@idUsuario", cotizacionDirecta.Usuario.Id32); command.Parameters.AddWithValue("@Producto", cotizacionDirecta.Producto); //command.Parameters.AddWithValue("@Producto", "FCL"); command.Parameters.AddWithValue("@idCliente", cotizacionDirecta.Cliente.Id32); command.Parameters.AddWithValue("@nombreCliente", cotizacionDirecta.NombreCliente); command.Parameters.AddWithValue("@fechaSolicitud", cotizacionDirecta.FechaSolicitud); command.Parameters.AddWithValue("@idIncoterms", cotizacionDirecta.IncoTerm.Id32); command.Parameters.AddWithValue("@gastosLocales", cotizacionDirecta.GastosLocales); command.Parameters.AddWithValue("@ObservacionesFijas", cotizacionDirecta.ObservacionesFijas); command.Parameters.AddWithValue("@Observaciones", cotizacionDirecta.Observaciones); command.Parameters.AddWithValue("@commodity", cotizacionDirecta.Commodity); command.Parameters.AddWithValue("@COTIZACION_TIPOS_id", 1); command.Parameters.AddWithValue("@COTIZACION_Directa_ESTADOS_id", 1); command.Parameters.AddWithValue("@conAgenciamento", false); command.Parameters.AddWithValue("@CopiadoDe", cotizacionDirecta.CopiadoDe); command.CommandType = CommandType.StoredProcedure; var outParam = command.Parameters.Add("@Id", SqlDbType.BigInt); outParam.Direction = ParameterDirection.Output; command.ExecuteScalar(); cotizacionDirecta.Id = Convert.ToInt16(outParam.Value); cotizacionDirecta.Id32 = Convert.ToInt32(outParam.Value); CrearOpcion(cotizacionDirecta, command); ClsGastosLocalesDao.CrearGastosLocales(cotizacionDirecta, command); command.Transaction.Commit(); res.Accion = Entidades.Enums.Enums.AccionTransaccion.Consultar; res.ObjetoTransaccion = cotizacionDirecta; res.Descripcion = "La cotización se guardó Exitosamente"; } catch (Exception ex) { cotizacionDirecta.Id = cotizacionDirecta.Id32 = 0; foreach (var o in cotizacionDirecta.Opciones) { o.Id = o.Id32 = 0; foreach (var d in o.Detalles) { d.Id = d.Id32 = 0; } } if (trans != null) { trans.Rollback(); } Log.EscribirLog(ex.Message); res.Descripcion = ex.Message; res.ArchivoError = NombreClase; res.MetodoError = MethodBase.GetCurrentMethod().Name; } finally { conn.Close(); } return(res); }