Beispiel #1
0
        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;
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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;
        }