internal bool Actualizar(Database database) { try { SqlCommand command = new SqlCommand { Connection = database.Connection, CommandType = CommandType.StoredProcedure }; SqlParameter parameterIDMovimiento_Cereal = new SqlParameter("IDMovimiento_Cereal", SqlDbType.Int); if (IsNew) { IsNew = true; command.CommandText = "usp_Movimiento_Cereal_Add"; parameterIDMovimiento_Cereal.Direction = ParameterDirection.Output; command.Parameters.Add(parameterIDMovimiento_Cereal); command.Parameters.Add("Tipo", SqlDbType.Char).Value = Tipo; } else { IsNew = false; command.CommandText = "usp_Movimiento_Cereal_Update"; parameterIDMovimiento_Cereal.Value = IDMovimiento_Cereal; command.Parameters.Add(parameterIDMovimiento_Cereal); } command.Parameters.Add("ComprobanteNumero", SqlDbType.Char).Value = ComprobanteNumero; command.Parameters.Add("IDCartaPorte_Talonario", SqlDbType.Int).Value = DBNull.Value; command.Parameters.Add("CTGNumero", SqlDbType.BigInt).Value = CTGNumero; command.Parameters.Add("FechaCarga", SqlDbType.Date).Value = FechaCarga; command.Parameters.Add("IDEntidad_Titular", SqlDbType.Int).Value = IDEntidad_Titular; command.Parameters.Add("IDEntidad_Intermediario", SqlDbType.Int).Value = SqlServerValues.SetValue(IDEntidad_Intermediario); command.Parameters.Add("IDEntidad_RemitenteComercial", SqlDbType.Int).Value = SqlServerValues.SetValue(IDEntidad_RemitenteComercial); command.Parameters.Add("IDEntidad_Corredor", SqlDbType.Int).Value = SqlServerValues.SetValue(IDEntidad_Corredor); command.Parameters.Add("IDEntidad_Entregador", SqlDbType.Int).Value = SqlServerValues.SetValue(IDEntidad_Entregador); command.Parameters.Add("IDEntidad_Destinatario", SqlDbType.Int).Value = SqlServerValues.SetValue(IDEntidad_Destinatario); command.Parameters.Add("IDEntidad_Destino", SqlDbType.Int).Value = SqlServerValues.SetValue(IDEntidad_Destino); command.Parameters.Add("IDEntidad_Transportista", SqlDbType.Int).Value = SqlServerValues.SetValue(IDEntidad_Transportista); command.Parameters.Add("IDEntidad_Chofer", SqlDbType.Int).Value = SqlServerValues.SetValue(IDEntidad_Chofer); command.Parameters.Add("IDCosecha", SqlDbType.TinyInt).Value = IDCosecha; command.Parameters.Add("IDCereal", SqlDbType.TinyInt).Value = IDCereal; command.Parameters.Add("IDContrato", SqlDbType.Int).Value = DBNull.Value; command.Parameters.Add("PesoBruto", SqlDbType.Int).Value = PesoBruto; command.Parameters.Add("PesoTara", SqlDbType.Int).Value = PesoTara; command.Parameters.Add("PesoNeto", SqlDbType.Int).Value = PesoNeto; command.Parameters.Add("Volatil", SqlDbType.Decimal).Value = SqlServerValues.SetValue(Volatil); command.Parameters.Add("Humedad", SqlDbType.Decimal).Value = DBNull.Value; command.Parameters.Add("Zaranda", SqlDbType.Decimal).Value = DBNull.Value; command.Parameters.Add("IDOrigenDestino_Origen", SqlDbType.SmallInt).Value = SqlServerValues.SetValue(IDOrigenDestino_Origen); command.Parameters.Add("IDOrigenDestino_Destino", SqlDbType.SmallInt).Value = SqlServerValues.SetValue(IDOrigenDestino_Destino); command.Parameters.Add("CTGCancelacion", SqlDbType.Int).Value = DBNull.Value; command.Parameters.Add("TransporteDominioCamion", SqlDbType.VarChar).Value = SqlServerValues.SetValue(TransporteDominioCamion); command.Parameters.Add("TransporteDominioAcoplado", SqlDbType.VarChar).Value = SqlServerValues.SetValue(TransporteDominioAcoplado); command.Parameters.Add("TransporteKilometro", SqlDbType.SmallInt).Value = SqlServerValues.SetValue(TransporteKilometro); command.Parameters.Add("TransporteTarifaReferencia", SqlDbType.Money).Value = SqlServerValues.SetValue(TransporteTarifaReferencia); command.Parameters.Add("TransporteTarifa", SqlDbType.Money).Value = SqlServerValues.SetValue(TransporteTarifa); command.Parameters.Add("FechaHoraArribo", SqlDbType.SmallDateTime).Value = SqlServerValues.SetValue(FechaHoraArribo); command.Parameters.Add("FechaHoraDescarga", SqlDbType.SmallDateTime).Value = SqlServerValues.SetValue(FechaHoraDescarga); command.Parameters.Add("DeclaraIPRO", SqlDbType.Bit).Value = false; command.Parameters.Add("IDCartaPorte_MotivoAnulacion", SqlDbType.TinyInt).Value = SqlServerValues.SetValue(IDCartaPorte_MotivoAnulacion); command.Parameters.Add("Notas", SqlDbType.VarChar).Value = SqlServerValues.SetValue(Notas); command.Parameters.Add("Calculo_TarifaIndice", SqlDbType.SmallInt).Value = DBNull.Value; command.Parameters.Add("IDUsuario", SqlDbType.TinyInt).Value = Properties.Settings.Default.IdUsuarioImportador; if (Tipo == Constantes.MovimientoTipoEntrada) { command.Parameters.Add("Certificado", SqlDbType.Bit).Value = SqlServerValues.SetValue(Certificado); } else { command.Parameters.Add("Certificado", SqlDbType.Bit).Value = DBNull.Value; } command.Parameters.Add("StringListOfIDPesadaCompleta", SqlDbType.VarChar).Value = DBNull.Value; command.ExecuteNonQuery(); if (IsNew) { IDMovimiento_Cereal = (int)parameterIDMovimiento_Cereal.Value; } IsNew = false; command = null; return(true); } catch (Exception ex) { Cursor.Current = Cursors.Default; if (ex.Message.Contains("FK__Entidad_OrigenDestino__Movimiento__Origen")) { MessageBox.Show($"La entidad titular de la carta de porte no tiene especificado un origen. Carta de porte nº {ComprobanteNumero}.", "CS-Importador de cartas de porte", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show($"Error al actualizar los datos de la carta de porte nº {ComprobanteNumero} en la base de datos.\n\nError: {ex.Message}", "CS-Importador de cartas de porte", MessageBoxButtons.OK, MessageBoxIcon.Error); } return(false); } }