示例#1
0
        public static ResultadoTransaccion GuardarFollowUps(CotizacionDirecta cotizacionDirecta)
        {
            var followDataBqse = clsClienteMasterADO.ObtenerFollowUpClientePorIDCotizacion(cotizacionDirecta.Id32);
               // return ClsCotizacionDirectaDao.GuardarFollowups(followDataBqse, cotizacionDirecta);

            return ClsCotizacionDirectaDao.GuardarFollowUps(followDataBqse,cotizacionDirecta);
        }
示例#2
0
        public static void CrearGastosLocales(CotizacionDirecta cotizacionDirecta, SqlCommand command)
        {
            try {
                if (cotizacionDirecta.GastosLocalesList == null)
                    cotizacionDirecta.GastosLocalesList = new List<GastoLocal>();

                foreach (var o in cotizacionDirecta.GastosLocalesList) {
                    var com = command.Connection.CreateCommand();
                    com.Transaction = command.Transaction;

                    com.CommandText = "SP_N_COTIZACION_DIRECTA_GASTOS_LOCALES";

                    com.CommandType = CommandType.StoredProcedure;
                    com.Parameters.AddWithValue("@IdCotizacion", cotizacionDirecta.Id32);
                    if (!String.IsNullOrEmpty(o.Descripcion))
                        com.Parameters.AddWithValue("@descripcion", o.Descripcion);
                    else
                        com.Parameters.AddWithValue("@descripcion", DBNull.Value);

                    com.Parameters.AddWithValue("@monto", o.Monto);

                    var outParam = com.Parameters.Add("@Id", SqlDbType.BigInt);
                    outParam.Direction = ParameterDirection.Output;
                    com.ExecuteScalar();

                    o.Id = Convert.ToInt16(outParam.Value);
                    o.Id32 = Convert.ToInt32(outParam.Value);
                }
                return;
            } catch (Exception e) {
                throw e;
            }
        }
示例#3
0
 private static LogCotizacionesDirecta CreaLog(CotizacionDirecta cotizacionDirecta, EnumTipoLogCotizacionDirecta tipo)
 {
     var logCot = new LogCotizacionesDirecta {
         CotizacionDirecta = cotizacionDirecta,
         Usuario = Base.Usuario.UsuarioConectado.Usuario,
         Fecha = DateTime.Now,
         Tipo = tipo
     };
     return logCot;
 }
示例#4
0
        public static ResultadoTransaccion Eliminar(CotizacionDirecta cotizacionDirecta, SqlCommand command)
        {
            try {
                var com = command.Connection.CreateCommand();
                com.Transaction = command.Transaction;

                com.CommandText = "SP_E_COTIZACION_DIRECTA_GASTOS_LOCALES_POR_ID_COTIZACION";

                com.CommandType = CommandType.StoredProcedure;
                com.Parameters.AddWithValue("@IdCotizacion", cotizacionDirecta.Id32);
                com.CommandType = CommandType.StoredProcedure;

                com.ExecuteNonQuery();

                return new ResultadoTransaccion();
            } catch (Exception e) {
                throw e;
            }
        }
示例#5
0
 public static ResultadoTransaccion Modificar(CotizacionDirecta cotizacionDirecta)
 {
     var resultado = ClsCotizacionDirectaDao.Modificar(cotizacionDirecta);
     var log = CreaLog(cotizacionDirecta, EnumTipoLogCotizacionDirecta.Modificacion);
     return resultado;
 }
示例#6
0
        private void CargarCotizacionDirecta()
        {
            if (mode != "borrador") {
                CotizacionDirecta =
                    ClsCotizacionDirecta.ObtieneCotizacionDirecta(CotizacionDirecta.Id32).ObjetoTransaccion as
                    CotizacionDirecta;
                Text = "Ingreso de cotización ";
            } else {
                Text = "Copia de cotización ";
                LblEstado.Visible = labelControl11.Visible = false;
            }
            txtEjecutivo.Text = CotizacionDirecta.Usuario.NombreCompleto;
            TxtFecha.DateTime = CotizacionDirecta.FechaSolicitud;

            var encontrado_cliente = _clientes.Find(foo => CotizacionDirecta.Cliente.Id32 == foo.Id32);
            if (encontrado_cliente == null) {
                _clientes.Add(CotizacionDirecta.Cliente);
                CboCliente.Properties.Items.Add(CotizacionDirecta.Cliente);
            }

            CboCliente.SelectedItem = CotizacionDirecta.Cliente;

            txtCommodity.Text = CotizacionDirecta.Commodity;
            TxtObservaciones.Text = CotizacionDirecta.Observaciones;
            LblEstado.Text = CotizacionDirecta.EstadoDescripcion;
            GridGastosLocales.DataSource = CotizacionDirecta.GastosLocalesList;

            if (mode != "borrador")
                if (CotizacionDirecta.Estado.Id32 == (Int32)Enums.EstadosCotizacion.Cerrado ||
                    CotizacionDirecta.Estado.Id32 == (Int32)Enums.EstadosCotizacion.PerdidoOtros ||
                    CotizacionDirecta.Estado.Id32 == (Int32)Enums.EstadosCotizacion.PerdidoTarifa ||
                    CotizacionDirecta.Estado.Id32 == (Int32)Enums.EstadosCotizacion.CerradoLCL) {
                    toolStripButton1.Enabled = false;
                    toolStripButton1.ToolTipText = "Imposible modificar cotización en el Estado actual";
                }
            if (CotizacionDirecta.Estado.Id32 == (Int32)Enums.EstadosCotizacion.Eliminado) {
                toolStripButton1.Enabled = false;
                toolStripButton1.ToolTipText = "Imposible modificar cotización en el Estado actual";

            }
        }
示例#7
0
 private static ResultadoTransaccion Guardar(CotizacionDirecta cotizacionDirecta, Comentario comentario)
 {
     return ClsComentarioDao.Guardar(cotizacionDirecta, comentario);
 }
示例#8
0
        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;
        }
示例#9
0
 public static ResultadoTransaccion Guardar(CotizacionDirecta cotizacionDirecta, Comentario comentario)
 {
     return Guardar("SP_N_COTIZACION_COMENTARIOS", cotizacionDirecta.Id32, comentario);
 }
示例#10
0
        private ITableable CreaPadreDesdeUnHijo(List<ITableableOpcion> op, ITableable padre)
        {
            //ListCotizacionesSeleccionadas.Add(padre);
            var papa = new CotizacionDirecta();
            papa.Id = papa.Id32 = padre.Id32;
            papa.Usuario = padre.Usuario;
            papa.Producto = padre.Producto;
            papa.Cliente = padre.Cliente;
            papa.FechaSolicitud = padre.FechaSolicitud;
            papa.IncoTerm = padre.IncoTerm;
            papa.Estado = padre.Estado;
            papa.Seleccionado = padre.Seleccionado;

            foreach (var tableableOpcion in op) {
                papa.Opciones.Add((Opcion)tableableOpcion);
            }
            return papa;
        }
示例#11
0
        private static void ModificarOpcion(CotizacionDirecta cotizacionDirecta, Opcion o, SqlCommand command)
        {
            var com = command.Connection.CreateCommand();
            com.Transaction = command.Transaction;

            com.CommandText = "SP_A_COTIZACION_DIRECTA_OPCIONES";

            com.CommandType = CommandType.StoredProcedure;
            com.Parameters.AddWithValue("@id", o.Id32);
            com.Parameters.AddWithValue("@numero", o.Numero);
            com.Parameters.AddWithValue("@fechaValidezInicio", o.FechaValidezInicio);
            com.Parameters.AddWithValue("@fechaValidezFin", o.FechaValidezFin);
            com.Parameters.AddWithValue("@Naviera", o.Naviera.Id32);
            com.Parameters.AddWithValue("@TiempoTransito", o.TiempoTransito);
            com.Parameters.AddWithValue("@idUsuario", o.Usuario.Id32);
            com.Parameters.AddWithValue("@idTipoServicio", o.TiposServicio.Id32);
            if (o.TipoVia != null)
                com.Parameters.AddWithValue("@idTipoVia", o.TipoVia.Id32);
            else
                com.Parameters.AddWithValue("@idTipoVia", DBNull.Value);

            com.CommandType = CommandType.StoredProcedure;

            com.ExecuteScalar();
            ModificarDetalle(o, command);
            ModificarRelacionPuertos(o, command);
        }
示例#12
0
        private static CotizacionDirecta GetFromDataReader(IDataRecord reader)
        {
            try {
                var i = new CotizacionDirecta();
                i.Id = i.Id32 = Convert.ToInt32(reader["CSC_ID"]); //num solicitud
                i.FechaSolicitud = Convert.ToDateTime(reader["fechasolicitud"]); //fecha solicitud
                //traer la clase cliente completa
                i.Cliente = GetClienteFromDataReader(reader);
                //i.Cliente = clsClienteMasterADO.ObtenerClienteMasterPorId(Convert.ToInt64(reader["idcliente"]));

                i.IncoTerm = new clsIncoTerm();
                if (!string.IsNullOrEmpty(reader["proveedorCarga"].ToString()))
                    i.ProveedorCarga = reader["proveedorCarga"].ToString();

                //i.//Tipo
                i.Estado = new Estado();
                i.Estado.Id = Convert.ToInt32(reader["cotizacion_directa_estados_id"]); //Estado
                i.Opciones = new List<Opcion>();

                i.Usuario = new clsUsuario();
                i.Usuario.Id = i.Usuario.Id32 = Convert.ToInt32(reader["usuario_id"]);
                i.Usuario.Nombre = reader["usuario_nombres"].ToString();
                i.Usuario.ApellidoPaterno = reader["usuario_ApellidoPaterno"].ToString();
                i.Usuario.ApellidoMaterno = reader["usuario_ApellidoMaterno"].ToString();
                i.Usuario.NombreUsuario = reader["usuario_NombreUsuario"].ToString();
                if (!String.IsNullOrEmpty(reader["NextFollowUp"].ToString()))
                    i.NextFollowup = Convert.ToDateTime(reader["NextFollowUp"]);

                foreach (var estado in estados) {
                    if (estado.Id.Equals(i.Estado.Id)) {
                        i.Estado.Nombre = estado.Nombre;
                        i.Estado.Activo = estado.Activo;
                    }
                }

                return i;
            } catch (Exception ex) {
                Log.EscribirLog(ex.Message);
                //throw;
                return null;
            }
        }
示例#13
0
        private static CotizacionDirecta GetFromComnpleteDataReader(IDataRecord reader)
        {
            try {
                var cot = new CotizacionDirecta();
                cot.Id = cot.Id32 = Convert.ToInt32(reader["id"]);
                cot.Producto = reader["producto"].ToString();

                cot.Usuario =
                    Usuarios.clsUsuarioADO.ObtenerTransaccionUsuarioPorId(Convert.ToInt32(reader["idUsuario"])).
                        ObjetoTransaccion as clsUsuario;

                cot.Cliente = new clsClienteMaster(true);
                cot.Cliente = clsClienteMasterADO.ObtenerClienteMasterPorId(Convert.ToInt64(reader["idcliente"]));

                cot.NombreCliente = reader["nombreCliente"].ToString();
                cot.FechaSolicitud = Convert.ToDateTime(reader["fechaSolicitud"]); //fecha solicitud

                cot.IncoTerm = new clsIncoTerm();
                cot.IncoTerm =
                    Parametros.clsParametrosClientesDAO.ObtenerIncoTermPorId(Convert.ToInt16(reader["idincoterms"]));

                cot.Commodity = reader["commodity"].ToString();
                cot.GastosLocales = 0;

                if (!String.IsNullOrEmpty(reader["gastosLocales"].ToString()))
                    cot.GastosLocales = Convert.ToDecimal(reader["gastosLocales"]);

                cot.Observaciones = reader["Observaciones"].ToString();
                cot.ObservacionesFijas = reader["ObservacionesFijas"].ToString();

                if (!string.IsNullOrEmpty(reader["copiadode"].ToString()))
                    cot.CopiadoDe = Convert.ToInt32(reader["copiadode"]);

                var listEstados =
                    (List<Estado>)ClsCotizacionDirectaEstadoDao.ListarEstadosCotizacionDirecta().ObjetoTransaccion;
                cot.Estado =
                    listEstados.Find(estado => estado.Id == Convert.ToInt32(reader["COTIZACION_Directa_ESTADOS_id"]));

                cot.GastosLocalesList =
                    ClsGastosLocalesDao.ObtieneGastosLocales(cot.Id32).ObjetoTransaccion as List<GastoLocal>;

                cot.Opciones = ClsOpcionDao.ObtieneOpciones(cot.Id32).ObjetoTransaccion as List<Opcion>;

                return cot;
            } catch (Exception ex) {
                Log.EscribirLog(ex.Message);
                //throw;
                return null;
            }
        }
示例#14
0
        private static void CrearOpcion(CotizacionDirecta cotizacionDirecta, Opcion o, SqlCommand command)
        {
            var com = command.Connection.CreateCommand();
            com.Transaction = command.Transaction;

            com.CommandText = "SP_N_COTIZACION_DIRECTA_OPCIONES";

            com.CommandType = CommandType.StoredProcedure;
            com.Parameters.AddWithValue("@numero", o.Numero);
            com.Parameters.AddWithValue("@fechaValidezInicio", o.FechaValidezInicio);
            com.Parameters.AddWithValue("@fechaValidezFin", o.FechaValidezFin);
            com.Parameters.AddWithValue("@Naviera", o.Naviera.Id32);
            com.Parameters.AddWithValue("@TiempoTransito", o.TiempoTransito);
            com.Parameters.AddWithValue("@idUsuario", o.Usuario.Id32);
            com.Parameters.AddWithValue("@COTIZACION_SOLICITUD_COTIZACIONES_id", cotizacionDirecta.Id32);
            com.Parameters.AddWithValue("@idTipoServicio", o.TiposServicio.Id32);
            if (o.TipoVia != null)
                com.Parameters.AddWithValue("@idTipoVia", o.TipoVia.Id32);
            else
                com.Parameters.AddWithValue("@idTipoVia", null);

            com.CommandType = CommandType.StoredProcedure;

            var outParam = com.Parameters.Add("@Id", SqlDbType.BigInt);
            outParam.Direction = ParameterDirection.Output;
            com.ExecuteScalar();

            o.Id = Convert.ToInt16(outParam.Value);
            o.Id32 = Convert.ToInt32(outParam.Value);
            CrearRelacionPuertos(o, com);
            CrearOpcionDetalles(o, com);
        }
示例#15
0
 public static ResultadoTransaccion ModificarOpciones(CotizacionDirecta cotizacionDirecta, SqlCommand command)
 {
     var num = 1;
     try {
         foreach (var o in cotizacionDirecta.Opciones) {
             if (o.IsNew == false) {
                 ModificarOpcion(cotizacionDirecta, o, command);
             } else {
                 o.Numero = String.Format("{0:d4}-{1:d4}", cotizacionDirecta.Id32, num);
                 CrearOpcion(cotizacionDirecta, o, command);
             }
             num++;
         }
         return new ResultadoTransaccion();
     } catch (Exception e) {
         throw e;
     }
 }
示例#16
0
        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;
        }
示例#17
0
 public static ResultadoTransaccion GuardarMensaje(CotizacionDirecta cotizacionDirecta, Comentario comentario)
 {
     comentario.EsHistorial = false;
     return Guardar(cotizacionDirecta, comentario);
 }
示例#18
0
 /// <summary>
 /// Retorna todos los mensajes incluidos los historiales
 /// </summary>
 /// <param name="cotizacionDirecta"></param>
 /// <returns></returns>
 public static ResultadoTransaccion ObtieneTodosLosMensajes(CotizacionDirecta cotizacionDirecta)
 {
     return ClsComentarioDao.ObtieneTodosLosMensajes(cotizacionDirecta);
 }
示例#19
0
 /// <summary>
 /// Retorna todos los mensajes incluidos los historiales
 /// </summary>
 /// <param name="cotizacionDirecta"></param>
 /// <returns></returns>
 public static ResultadoTransaccion ObtieneTodosLosMensajes(CotizacionDirecta cotizacionDirecta)
 {
     return ObtieneTodosLosMensajes("SP_L_COTIZACION_COMENTARIOS", cotizacionDirecta.Id32);
 }
示例#20
0
        public static ResultadoTransaccion GuardarFollowUps(IList<clsClienteFollowUp> followDatabase,
            CotizacionDirecta cotizacionDirecta)
        {
            ResultadoTransaccion resTransaccion = new ResultadoTransaccion();
            var conn = BaseDatos.Conexion();
            try {
                //conn.Open();
                var transaction = BaseDatos.Conexion().BeginTransaction();

                foreach (var followUp in cotizacionDirecta.FollowUps) {
                    if (followUp.IsNew)
                        resTransaccion = clsClienteMasterADO.AgregarFollowUpClienteMaster(followUp, transaction);
                    else
                        resTransaccion = clsClienteMasterADO.ModificarFollowUpClienteMaster(followUp,
                                                                                                     transaction);
                    //Ejecutar transaccion
                    if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                        throw new Exception(resTransaccion.Descripcion);
                }

                if (!cotizacionDirecta.IsNew) {
                    var newlist = cotizacionDirecta.FollowUps.ToList();
                    foreach (var followUp in followDatabase) {
                        var encontrado = newlist.Find(foo => foo.Id32.Equals(followUp.Id32));
                        if (encontrado == null) {
                            resTransaccion = Clientes.clsClienteMasterADO.EliminarLogicoFollowUpClienteMaster(followUp,
                                                                                                              transaction);
                            if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                                throw new Exception(resTransaccion.Descripcion);
                        }
                    }
                }

                resTransaccion.Descripcion = "Se registró los Followup Exitosamente";
                transaction.Commit();

            } catch (Exception e) {
                Log.EscribirLog(e.Message);

            } finally {
                conn.Close();
            }
            return resTransaccion;
        }