示例#1
0
        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);
            }
        }