diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb index 0f6f072f3..27d292fea 100644 --- a/Ventas/ProductosServicios.aspx.vb +++ b/Ventas/ProductosServicios.aspx.vb @@ -1,2626 +1,2626 @@ -Option Explicit On -Option Strict On - -Imports Extensiones -Imports System.IO -Imports System.Data -Imports ZXing - -Partial Class ProductosyServicios - Inherits ClsPaginas - -#Region " Propiedades " - Private ReadOnly Property CvePS As Integer - Get - Return ViewState("CvePS").ToString.ToEntero - End Get - End Property - - Private Property CveSATPS As Integer - Get - Return ViewState("CveSATPS").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveSATPS") = value - End Set - End Property - - Private Property Ret As String - Get - Return ViewState("Ret").ToString - End Get - Set(value As String) - ViewState("Ret") = value - End Set - End Property - Private Property Borrar As Boolean - Get - Return CBool(ViewState("Borrar")) - End Get - Set(value As Boolean) - ViewState("Borrar") = value - End Set - End Property - Public Property dtPaqueteDetalles() As DataTable - Get - Return CType(ViewState("dtPaqueteDetalles"), DataTable) - End Get - Set(value As DataTable) - ViewState("dtPaqueteDetalles") = value - End Set - End Property - Public Property DtEquivalencias() As DataTable - Get - Return CType(ViewState("DtEquivalencias"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtEquivalencias") = value - End Set - End Property - Public Property dtFamily() As DataTable - Get - Return CType(ViewState("dtFamily"), DataTable) - End Get - Set(value As DataTable) - ViewState("dtFamily") = value - End Set - End Property - - - Property CodigoBarrasCargado As String - Get - If ViewState("CodigoBarrasCargado") Is Nothing Then - Return "" - Else - Return ViewState("CodigoBarrasCargado").ToString - End If - End Get - Set(value As String) - ViewState("CodigoBarrasCargado") = value - End Set - End Property - - Public Property DtPSAdicionales() As DataTable - Get - Return CType(ViewState("DtPSAdicionales"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtPSAdicionales") = value - End Set - End Property - - Private Property CvePSAdicional As Integer - Get - Return ViewState("CvePSAdicional").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CvePSAdicional") = value - End Set - End Property - Public Property DtSeccionAlmacen() As DataTable - Get - Return CType(ViewState("DtSeccionAlmacen"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtSeccionAlmacen") = value - End Set - End Property - - -#End Region - - Private ReadOnly Property PermiteClasificacion2 As Boolean - Get - Return (UsuarioActual.CveEmpresa.Contiene(72, 80)) - End Get - End Property - - - -#Region " PROPIEDADES ECOMMERCE " - ''' - ''' Si es True existe en Eco_Produtcos - ''' - ''' - Private Property AplicaEcommerce As Boolean - Get - Return CBool(ViewState("AplicaEcommerce")) - End Get - Set(value As Boolean) - ViewState("AplicaEcommerce") = value - End Set - End Property -#End Region - - Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load - If Not IsPostBack Then - - InicializaValores() - If Request("CvePS") IsNot Nothing AndAlso IsNumeric(Request("CvePS")) AndAlso Request("CvePS").ToEntero > 0 Then - ViewState("CvePS") = Request("CvePS") - CargarMarcas() - - CargaDatos() - 'Configuración de Modalidad Update - BtnGuardar.Text = "Guardar Cambios" - - CargarAlias() - CargaExistencias() - CargaGvSeccionAlmacen() - Else - 'Configuración de Modalidad Insert - RegistraScript("$('#C_Tab_TabPaquetes_tab').css('display' , 'none')") - - ViewState("CvePS") = -1 - CargarMarcas() - - ChkEstado.Enabled = False - ChkEstado.Checked = True - LblFechaCaptura.Text = Now.ToShortDateString() - LblUsuarioCapturo.Text = UsuarioActual.Usuario - BtnEliminar.Visible = False - - If UsuarioActual.Empresa.Funcionalidad(543).ToString = "1" Then - Dim ObjSub As New ClsSubProyectos - Dim CveSubProyectoMatriz As Integer - - If ObjSub.GetSubProyectos() Then - CveSubProyectoMatriz = ObjSub.DtResultados.FiltroPrimeroValor("CveSubProyecto", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND TipoSucursal = 1").ToEntero - End If - - Dim ObjFolios As New ClsGralFolios() - If ObjFolios.GetFolios("PS", UsuarioActual.CveEmpresa) Then - - Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoMatriz} And Estado = 'Activo'") - If DT.Rows.Count > 0 Then - TxtCodigo.Text = DT.Rows(0)("FActual").ToString - TxtCodigo.Enabled = False - Else - Alert("No tiene registrados Folios para la sucursal matriz.", TipoMensaje.MsgAdvertencia) - End If - End If - End If - - End If - - If Request("Ret") IsNot Nothing AndAlso Request("Ret").ToString <> "" Then - Ret = Request("Ret") - End If - - 'CargaFamilia(ViewState("CveSubFamilia").ToString.ToEntero) - CargaSucursaless() - CargaImpuestosLocales() - CargaConceptoRelacionado() - - If UsuarioActual.TienePermisoProceso(122) Then - BtnEliminar.Visible = False - BtnGuardar.Visible = False - End If - - If UsuarioActual.Empresa.Funcionalidad(557) = "1" Then - DdlIVA.SelectedValueExist("-1") - DdlIVA.Attributes.Add("disabled", "disabled") - DdlIVA.Enabled = False - End If - - If CvePS > 0 Then - CargaEquivalencias() - CargaPSAdicionales() - CargaGvBitacora() - divBitacora.Visible = True - VerificaRequiereSerieLote() - End If - - If UsuarioActual.Empresa.Funcionalidad(524) <> "" Then - DivProveedorCompra.Visible = True - DivMoneda.Visible = True - End If - - UpDatos.Update() - - 'DdlClasificacion.AutoPostBack = UsuarioActual.CveEmpresa.Contiene(80, 72) - - InicializaEcommerce() - - If UsuarioActual.CveEmpresa.Contiene(141) Then - 'DivDatos.Attributes("class") = "col-md-12" - - DivDdlTipo.Visible = True - 'DdlTipoPSDes.Attributes.Add("onChange", "CreaDescripcionPS();") - - End If - - If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) And CvePS = -1 Then - 'DivDatos.Attributes("class") = "col-md-12" - TxtPS.Enabled = False - DivDdlTipo.Visible = True - DivTxtModelo.Visible = True - DivTxtAdicional.Visible = True - DdlTipoPSDes.Attributes.Add("onChange", "CreaDescripcionPS();") - DdlMarcaPSDes.Attributes.Add("onChange", "CreaDescripcionPS();") - TxtModelo.Attributes.Add("onKeyUp ", "CreaDescripcionPS();") - TxtAdicional.Attributes.Add("onKeyUp ", "CreaDescripcionPS();") - End If - - If ddlMetodos.SelectedValue.ToEntero = 5 And Not UsuarioActual.TienePermisoProceso(255) Then - ddlMetodos.Enabled = False - End If - Dim posiciontipo As String = If(UsuarioActual.Empresa.Funcionalidad(558).ToString = "1", "$('.DIVCLASIFICACIONCONTABLE').after( $('.DIVTIPO') );", "") - - LtlScripts.Text = $"" - If Not CvePS > 0 Then MuestraPanel(True) - - End If - End Sub - -#Region " INCIALIZA " - Private Sub InicializaValores() - ViewState("OrdenO") = "" - ViewState("OrdenC") = "" - ViewState("DTProductosServiciosCaracteristicas") = Nothing - ViewState("DTProductosServiciosCaracteristicasOpciones") = Nothing - ViewState("CveSubFamilia") = "-1" - Ret = "-1" - - 'CType(Me.Master, BaseMasterPage).EsPopup = True - 'CType(Me.Master, BaseMasterPage).PopupWidth = 700 - 'RegistraScript("$get('tdContenido').style.height='350px'") - - CargaClasificaciones() - CargaClasificaciones2() - CargaClasificacionesDetalles() - ClasificacionModal() - CargaTipoProductos() - CargaUnidadesMedida() - CargarMetodosInv() - 'CargaPSAdicional(DdlPSAdicional) - - 'Nuevo R: 26/09/2017 - CargaProveedores() - - CargarCompuestos() - CargaPS() - 'ChangeDdl() - CargaDdlSATPS() - CargaDdlFraccionArancelaria() - CveSATPS = -1 - - CargaCombosSeccionAlmacen() - DivSeccionAlmacen.Visible = UsuarioActual.Empresa.Funcionalidad(563).ToString = "1" - CreaDtSeccionAlmacen() - - If UsuarioActual.Empresa.UsaContabilidad Then - CargaCuentasContables() - If Not (Request("CvePS") IsNot Nothing AndAlso IsNumeric(Request("CvePS")) AndAlso Request("CvePS").ToEntero > 0) Then DivUsoClasificacion.Visible = True - End If - - 'CargaTipoServicio() - 'DivTipoServicio.Visible = False - - TxtDescripcion.Text = UCase(TxtDescripcion.Text) - - Dim objAcum As New ClsAcumuladores - If objAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then - DdlTamanio.DataSource = objAcum.DtResultados - Else - DdlTamanio.DataSource = Nothing - End If - - objAcum.Dispose() - DdlTamanio.DataBind() - - If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then - DivLlantas.Visible = True - DivPSAdicionales.Visible = True - CargaPanelLlantas() - End If - - CvePSAdicional = -1 - - End Sub - - 'Private Sub CargaPSAdicional(Objeto As ADServerControl.Dropdownlost) - ' Objeto.setEsWebService(UsuarioActual.Empresa.Funcionalidad(141).ToString = "1") - ' If Not UsuarioActual.Empresa.Funcionalidad(141).ToString = "1" Then - ' Objeto.ddl.Items.Clear() - ' Objeto.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=-1, Estatus:=1, AplicaParaVenta:=1) - ' Objeto.ddl.DataBind() - ' Objeto.ddl.Items.Insert(0, New ListItem("Seleccione", "-1")) - ' Else - ' Objeto.ddlWS.Attributes.Add("data-Estatus", "1") - ' Objeto.SelectedValue = "-1" - ' Objeto.SelectedText = "Seleccione" - ' End If - 'End Sub - Private Sub CargaPanelLlantas() - Dim ObjGral As New ClsGenerales() - If ObjGral.GetModelos(UsuarioActual.CveEmpresa) Then - DdlModelo.DataSource = ObjGral.DtResultados.Copy() - End If - If ObjGral.GetMedidas(UsuarioActual.CveEmpresa) Then - DdlMedida.DataSource = ObjGral.DtResultados.Copy() - End If - If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then - DdlRin.DataSource = ObjGral.DtResultados.Copy() - End If - ObjGral.Dispose() - - DdlModelo.DataBind() - DdlMedida.DataBind() - DdlRin.DataBind() - - End Sub - - Private Sub MuestraPanel(Optional AfterPageLoad As Boolean = False) - If AfterPageLoad Then - RegistraScript("window.onload = function MuestraPanel() { document.getElementById(""C_BtnMostrarPanel"").click(); }") - End If - End Sub - - - Protected Sub BtnTipoCla_Click(sender As Object, e As EventArgs) - PresionarBotonPanel("C_BtnCerrarPanel") - DivUsoClasificacion.Visible = False - DdlUsoClasificacion.SelectedValueExist(RblTipoClasificación.SelectedValue) - CargaClasificaciones() - UpDatos.Update() - End Sub - - Private Sub PresionarBotonPanel(Boton As String) - Dim Script As String = $"document.getElementById(""{Boton}"").click();" - Dim Pag As System.Web.UI.Page = CType(System.Web.HttpContext.Current.Handler, System.Web.UI.Page) - ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), Boton, Script, True) - Pag = Nothing - End Sub -#End Region - -#Region "S U C U R S A L E S" - Private Sub CargaSucursaless() - 'Dim dtSuc As DataTable = GlobalDTSucursales().FiltraParametros("CveEmpresa = " + UsuarioActual.CveEmpresa.ToString) - 'dtSuc.AcceptChanges() - - 'dtSuc.Columns.Add("Importe") - 'dtSuc.Columns.Add("Activo") - - 'For Each row As DataRow In dtSuc.Rows - ' row("Activo") = False - 'Next - 'dtSuc.AcceptChanges() - - 'If Not ViewState("CvePS") Is Nothing Then - ' Dim ObjPS As New ClsProductosServicios - - ' If ObjPS.GetPSSucursales(CvePS) Then - ' Dim dtSucP As DataTable = ObjPS.DtResultados - - ' For Each Row As DataRow In dtSucP.Rows - ' Dim rowsToUpdate = dtSuc.AsEnumerable().Where(Function(r) r.Field(Of Integer)("CveSucursal") = Row("CveSucursal").ToString.ToEntero AndAlso r!CveSucursal.ToString.ToEntero > 0) - - ' For Each roww As DataRow In rowsToUpdate - ' roww.SetField("Importe", Row("Importe")) - ' roww.SetField("Activo", True) - ' Next - - ' 'For Each drtt As DataRow In TmpDT.Select(String.Format("PS='{0}' AND CvePS=0", Row("PS"))) - ' ' drtt("CvePS") = tCve - ' 'Next - - - ' dtSuc.AcceptChanges() - ' Next - ' End If - - ' ObjPS.Dispose() - 'End If - - 'gvSucursal.DataSource = dtSuc - 'gvSucursal.DataBind() - - Dim ObjPS As New ClsProductosServicios - - If ObjPS.GetPSSucursales(CvePS, UsuarioActual.CveEmpresa) Then - gvSucursal.DataSource = ObjPS.DtResultados - - End If - - ObjPS.Dispose() - gvSucursal.DataBind() - End Sub - - Protected Sub gvSucursal_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvSucursal.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.RowIndex = 0 Then - e.Row.Cells(0).Width = Unit.Pixel(50) - e.Row.Cells(1).Width = Unit.Pixel(100) - e.Row.Cells(2).Width = Unit.Pixel(100) - End If - - ' If e.Row.FCCheckBox("chkSucursal").Checked = True Then e.Row.Cells(0).BackColor = Drawing.Color.Yellow - End If - End Sub -#End Region - -#Region "C A R A C T E R I S T I C A S" - - Private Sub CargaCaracteristicas() - ' CargaDatosC() - CargaProductosServiciosCaracteristicas() - CambioProductosServiciosCaracteristicas(DdlCaracteristica.SelectedValue.ToEntero) - CargaDatosO() - UpDatos.Update() - UpDatosO.Update() - UpTitulosO.Update() - - End Sub - Public Sub CargaDatosO() - Dim Objeto As New ClsGenerales - If Objeto.GetCaracteristicasValores(-1, -1, CvePS, -1, -1, -1, 5, UsuarioActual.CveEmpresa, OpcionListado:=1) Then - GvDatosOpciones.DataSource = Objeto.DtResultados - End If - Objeto.Dispose() - UpDatosO.Update() - GvDatosOpciones.DataBind() - - End Sub - - - Private Sub LbAgregarO_Click(sender As Object, e As EventArgs) Handles LbAgregarO.Click - Dim Objeto As New ClsGenerales - Dim Opcion As String = If(TDTxtOpcion.Visible = True, TxtOpcion.Text, DdlOpcion.SelectedItem.Text) - Dim Opcion2 As Integer = If(TDDdlOpcion.Visible = True, DdlOpcion.SelectedValue.ToEntero, -1) - - If Objeto.AddUpdateCaracteristicasValores(DdlCaracteristica.SelectedValue.ToEntero, Opcion2, Opcion, UsuarioActual.CveUsuario, CvePs:=CvePS) Then - End If - Objeto.Dispose() - TxtOpcion.Text = "" - CargaDatosO() - UpDatosO.Update() - UpTitulosO.Update() - Alert("El valor de la caracteristica se agregó correctamente.", TipoMensaje.MsgInformacion) - End Sub - - Private Sub CargaProductosServiciosCaracteristicas() - Dim Objeto As New ClsGenerales - DdlCaracteristica.Items.Clear() - If Objeto.GetCaracteristicas(-1, 5, UsuarioActual.CveEmpresa) Then - DdlCaracteristica.DataSource = Objeto.DtResultados - End If - Objeto.Dispose() - DdlCaracteristica.DataBind() - End Sub - - Protected Sub DdlCaracteristica_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCaracteristica.SelectedIndexChanged - CambioProductosServiciosCaracteristicas(DdlCaracteristica.SelectedValue.ToEntero) - End Sub - - Protected Sub CambioProductosServiciosCaracteristicas(CveCaracteristica As Integer) - Dim Objeto As New ClsGenerales - If Objeto.GetCaracteriscasOpciones(CveCaracteristica, UsuarioActual.CveEmpresa) Then - Dim dr As DataRow = Objeto.DtResultados.FiltroPrimero(String.Format(("CveCaracteristica={0}"), CveCaracteristica)) - If dr IsNot Nothing Then - If dr("CveCaracteristicaTipo").ToString = "1" Then - DdlOpcion.Items.Clear() - DdlOpcion.DataSource = Objeto.DtResultados.FiltraParametros(String.Format(("CveCaracteristica={0}"), CveCaracteristica)) - - TDDdlOpcion.Visible = True - TDTxtOpcion.Visible = False - Else - TDTxtOpcion.Visible = True - TDDdlOpcion.Visible = False - End If - - End If - End If - Objeto.Dispose() - DdlOpcion.DataBind() - End Sub - - Protected Sub CambioProductosServiciosCaracteristicasOpciones() - UpTitulosO.Update() - End Sub -#End Region - -#Region "G V O P C I O N E S" - Protected Sub GvDatosOpciones_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatosOpciones.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.RowIndex = 0 Then - e.Row.Cells(0).Width = Unit.Pixel(150) - e.Row.Cells(1).Width = Unit.Pixel(150) - e.Row.Cells(2).Width = Unit.Pixel(100) - e.Row.Cells(3).Width = Unit.Pixel(100) - e.Row.Cells(4).Width = Unit.Pixel(50) - End If - e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left - - If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then - e.Row.FCDropDownList("DdlCaracteristicaEdit").DataSource = GlobalDTProductosServiciosCaracteristicas(UsuarioActual.CveEmpresa).FiltraParametros("CvePS = " + CvePS.ToString) - e.Row.FCDropDownList("DdlCaracteristicaEdit").DataBind() - e.Row.FCDropDownList("DdlCaracteristicaEdit").SelectedValue = e.Row.DBCampo("CvePS") - End If - End If - End Sub - Protected Sub GvDatosOpciones_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatosOpciones.RowDeleting - Dim ObjOpciones As New ClsGenerales - Dim CveCaracteristicaValor As Integer = GvDatosOpciones.Rows(e.RowIndex).DataKey("CveCaracteristicaValor").ToEntero - - If ObjOpciones.RemoveCaracteristicasValores(CveCaracteristicaValor, CvePS:=CvePS) Then - GvDatosOpciones.EditIndex = -1 - CambioProductosServiciosCaracteristicasOpciones() - CargaDatosO() - UpDatosO.Update() - Alert("La Opción para Caracteristica del Producto o Servicio se eliminó correctamente.", TipoMensaje.MsgInformacion) - End If - - ObjOpciones.Dispose() - End Sub - Protected Sub GvDatosOpciones_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvDatosOpciones.RowCancelingEdit - GvDatosOpciones.EditIndex = -1 - End Sub - Protected Sub GvDatosOpciones_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvDatosOpciones.RowUpdating - Dim ObjOpciones As New ClsGralProductosServiciosCaracteristicas - Dim CveCaracteristica As Integer = DirectCast(GvDatosOpciones.Rows(e.RowIndex).FindControl("DdlCaracteristicaEdit"), DropDownList).SelectedValue.ToEntero - Dim CveOpcion As Integer = GvDatosOpciones.DataKeys(e.RowIndex).Value.ToString.ToEntero - - Dim Opcion As String = DirectCast(GvDatosOpciones.Rows(e.RowIndex).FindControl("TxtOpcion"), TextBox).Text.Trim - - If ObjOpciones.UpdateProductosServiciosCaracteristicasOpciones(Opcion, CveCaracteristica, CveOpcion) Then - GvDatosOpciones.EditIndex = -1 - ViewState("DTProductosServiciosCaracteristicasOpciones") = ObjOpciones.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) - GlobalDTProductosServiciosCaracteristicasOpciones(UsuarioActual.CveEmpresa) = ObjOpciones.DtResultados - Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) - - CambioProductosServiciosCaracteristicasOpciones() - End If - - ObjOpciones.Dispose() - End Sub - - 'Protected Sub GvDatosOpciones_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvDatosOpciones.RowEditing - ' GvDatosOpciones.EditIndex = e.NewEditIndex - ' CargaGrid() - 'End Sub -#End Region - -#Region "O R D E N A M I E N T O" - Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) - Dim Orden As String = "" - Dim Campo As String = "" - Dim gvi As Integer = 0 - Dim Literal As Literal = Nothing - Const OrdenInicial As String = "" - Dim Arg(2) As String - - Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c) - Campo = Arg(0) - gvi = Arg(1).ToEntero - Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(", ", "_")), Literal) - Campo = Campo.Substring(0, Campo.Length - 1) - - If ViewState(String.Format("O{0}", Campo, gvi)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo, gvi)).ToString = String.Format("{0} DESC", Campo) Then - ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) - Literal.Text = String.Format("") - Else - ViewState(String.Format("O{0}", Campo, gvi)) = String.Format("{0} DESC", Campo) - Literal.Text = String.Format("") - End If - Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo, gvi)).ToString - ViewState("Orden") = Orden - End Sub - - - - 'Private Sub CargaGrid() - ' Dim Objeto As New ClsGralProductosServiciosCaracteristicas - ' If Objeto.GetPSCaracteristicas(UsuarioActual.CveEmpresa) Then - ' GvDatosCaracteristicas.DataSource = Objeto.DtResultados - ' End If - ' GvDatosCaracteristicas.DataBind() - ' Objeto.Dispose() - 'End Sub - - - -#End Region - -#Region "C A R G A S" - Private Sub ClasificacionModal() - DdlClasificacionModal.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion") - DdlClasificacionModal.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlClasificacionModal.DataBind() - UpModal.Update() - End Sub - - Private Sub CargaClasificacionesDetalles() - DdlTipoPSDes.Items.Clear() - DdlTipoPSDes.DataSource = GlobalDTClasificacionesDetalle(UsuarioActual.CveEmpresa) - 'If DdlClasificacion.SelectedValue.ToEntero > 0 Then - 'Dim ObjVenta As New ClsVentas - ' If ObjVenta.GetClasificacionDetalle(UsuarioActual.CveEmpresa, CveClasificacion:=-1) Then - ' DdlTipoPSDes.DataSource = ObjVenta.DtResultados - ' End If - ' ObjVenta.Dispose() - 'End If - DdlTipoPSDes.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlTipoPSDes.DataBind() - End Sub - Private Sub CargaClasificaciones() - DdlClasificacion.Items.Clear() - If UsuarioActual.Empresa.UsaAC Then - DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, DdlUsoClasificacion.SelectedValue.ToEntero, -1)).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") - Else - DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, DdlUsoClasificacion.SelectedValue.ToEntero, -1)).FiltraParametros("", Orderby:="Clasificacion") - End If - DdlClasificacion.Items.Insert(0, New ListItem("Seleccione", "-1")) - 'BLOQUEA DDL CLASIFICACION - If UsuarioActual.Empresa.Funcionalidad(121) = "1" Then - If Not UsuarioActual.TienePermisoProceso(147) Then - DdlClasificacion.Enabled = False - End If - End If - DdlClasificacion.DataBind() - End Sub - Private Sub CargaClasificaciones2() - DdlClasificacion2.DataSource = GlobalDTClasificaciones2(UsuarioActual.CveEmpresa) - DdlClasificacion2.DataBind() - DdlClasificacion2.Items.Insert(0, New ListItem("Sin Clasificacion", "-1")) - DdlClasificacion2.SelectedValueExist("-1") - - 'BLOQUEA DDL CLASIFICACION - If PermiteClasificacion2 Then - DivClasificacion2.Visible = True - End If - - End Sub - Private Sub CargaTipoProductos() - 'BLOQUEA DDL TIPO PRODUCTO - If UsuarioActual.Empresa.Funcionalidad(122) = "1" Then - If Not UsuarioActual.TienePermisoProceso(149) Then - DdlTipoPS.Enabled = False - DdlTipoPS.SelectedValueExist("2") - End If - End If - End Sub - Private Sub CargaConceptoRelacionado() - DdlConceptoRelacionado.DataSource = GlobalDTContaConceptosContables(-1) - DdlConceptoRelacionado.DataBind() - End Sub - Private Sub CargarMetodosInv() - ddlMetodos.DataSource = If(UsuarioActual.CveEmpresa.Contiene(72, 80), GlobalDTInvMetodosInventario.FiltraParametros("CveMetodoInventario IN (1,5)"), GlobalDTInvMetodosInventario) - ddlMetodos.DataBind() - ddlMetodos.Items.Insert(0, New ListItem("Seleccione", "-1")) - End Sub - - 'Nuevo R: 26/09/207' - Private Sub CargaProveedores() - DdlProveedor.setEsWebService(True) - 'DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) - 'DdlProveedor.DataBind() - 'DdlProveedor.Items.Insert(0, New ListItem("Seleccione", "-1")) - - DdlMoneda.DataSource = GlobalDTMonedas() - DdlMoneda.DataBind() - DdlMoneda.Items.Insert(0, New ListItem("Seleccione", "-1")) - - End Sub - - - - Private Sub CargaUnidadesMedida() - DdlUnidadMedida.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa) - DdlUnidadMedida.DataBind() - End Sub - Private Sub CargaCuentasContables() - 'Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa.ServerContPAQi, UsuarioActual.Empresa.BDContPAQi, UsuarioActual.Empresa.UsrContPAQi, UsuarioActual.Empresa.PwdContPAQi) - 'If ObjContabilidad.GetCuentas(-1, "-1", -1) Then - ' DdlCtaContableVentas.DataSource = ObjContabilidad.DtResultados - ' DdlCtaContableCompras.DataSource = ObjContabilidad.DtResultados - ' DdlCtaContableInventarios.DataSource = ObjContabilidad.DtResultados - 'Else - ' DdlCtaContableVentas.DataSource = Nothing - ' DdlCtaContableCompras.DataSource = Nothing - ' DdlCtaContableInventarios.DataSource = Nothing - 'End If - 'DdlCtaContableVentas.DataBind() - 'DdlCtaContableCompras.DataBind() - 'DdlCtaContableInventarios.DataBind() - 'ObjContabilidad.Dispose() - End Sub - Private Sub CargaDatos() - Dim ObjProductosServicios As New ClsProductosServicios() - If ObjProductosServicios.GetPS(CvePS, -1, UsuarioActual.CveEmpresa) Then - If ObjProductosServicios.DtResultados.Rows.Count > 0 Then - - 'SI NO TIENE VALOR Y NO TIENE EL PROCESO MUESTRA SIN CLASIFICACION - If ObjProductosServicios.CveClasificacion.ToString.Equals("-1") And Not UsuarioActual.TienePermisoProceso(147) And UsuarioActual.Empresa.Funcionalidad(121) = "1" Then - DdlClasificacion.SelectedValueExist("0") - Else - DdlClasificacion.SelectedValueExist(ObjProductosServicios.CveClasificacion.ToString) - End If - CargaClasificacionesDetalles() - DdlClasificacion2.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveClasificacion2").ToString) - DdlCompuesto.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveCompuesto").ToString) - 'SI ES NUEVO TIPO = PRODUCTO Y SI NO TIENE PROCESO NO PUEDO EDITAR - If ObjProductosServicios.CveTipoPS.ToString.Equals("-1") And Not UsuarioActual.TienePermisoProceso(149) And UsuarioActual.Empresa.Funcionalidad(122) = "1" Then - DdlTipoPS.SelectedValueExist("2") - Else - DdlTipoPS.SelectedValueExist(ObjProductosServicios.CveTipoPS.ToString) - End If - - 'If ObjProductosServicios.CveTipoPS = 1 Then - ' DivTipoServicio.Visible = True - ' DdlTipoServicio.SelectedValueExist(ObjProductosServicios.Estado2.ToString) - - ' If Not DdlTipoServicio.SelectedValue.ToEntero > 0 Then - ' DdlTipoServicio.Items.Insert(1, New ListItem(If(ObjProductosServicios.Estado2 = 1, "General", "Maquinaria"), ObjProductosServicios.Estado2.ToString)) - ' DdlTipoServicio.SelectedValueExist(ObjProductosServicios.Estado2.ToString) - ' End If - 'End If - If ObjProductosServicios.CveSATPS.ToString <> Nothing Then - DdlSATPS.SelectedValue = ObjProductosServicios.CveSATPS.ToString - DdlSATPS.SelectedText = $"{ObjProductosServicios.SATClavePS} - {ObjProductosServicios.SATDescripcion}" - CveSATPS = ObjProductosServicios.CveSATPS - End If - If ObjProductosServicios.CveFraccionArancelaria.ToString <> Nothing Then - DdlFraccionArancelaria.SelectedValue = ObjProductosServicios.CveFraccionArancelaria.ToString - DdlFraccionArancelaria.SelectedText = ObjProductosServicios.ClaveSATFraccionArancelariaDescripcion - End If - If ObjProductosServicios.ClaveSATUnidadAduanaDescripcion.ToString <> Nothing Then - LblUnidadAduana.Text = ObjProductosServicios.ClaveSATUnidadAduanaDescripcion.ToString - End If - DdlTipoPSDes.SelectedValueExist(ObjProductosServicios.CveClasificacionDetalle.ToString) - DdlUnidadMedida.SelectedValue = ObjProductosServicios.CveUnidadMedida.ToString - DdlMarca.SelectedValue = ObjProductosServicios.CveMarca.ToString - DdlMarcaPSDes.SelectedValue = ObjProductosServicios.CveMarca.ToString - TxtCodigo.Text = ObjProductosServicios.Codigo - 'TxtCodigo2.Text = ObjProductosServicios.Codigo2 - TxtCodigoBarras.Text = ObjProductosServicios.CodigoBarras - CodigoBarrasCargado = ObjProductosServicios.CodigoBarras - - TxtPS.Text = ObjProductosServicios.PS - TxtPrecio.Text = ObjProductosServicios.Precio.ToString("F4") 'no usa N4, porque pone comma - TxtPrecioMinimo.Text = ObjProductosServicios.PrecioMinimo.ToString("F4") - - DdlTipoFactor.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTipoFactor").ToString) - - If ObjProductosServicios.DtResultados.Rows(0)("CveTipoFactor").ToString.Contiene("1", "2") Then - LIva.Visible = True - DdlIVA.Visible = True - DdlIVA.Width = New Unit("163px") - Else - DdlIVA.Visible = False - DdlIVA.Visible = False - End If - DdlIVA.SelectedValueExist(ObjProductosServicios.IVA.ToString) - - - LblCostoPromedio.Text = ObjProductosServicios.DtResultados.Rows(0)("CostoPromedio").ToString.FormatoNumero - LblUltimoCosto.Text = ObjProductosServicios.DtResultados.Rows(0)("UltimoCosto").ToString.FormatoNumero - LblFechaUltimaCompra.Text = ObjProductosServicios.DtResultados.Rows(0)("FechaUltimaCompra").ToString - HplKardex.NavigateUrl = $"/Inventarios/Kardex.aspx?CvePS={CvePS}" - - TxtRetIVA.Text = (ObjProductosServicios.RetIVA * 100).ToString - ChkEstado.Checked = ObjProductosServicios.Estado - LblFechaCaptura.Text = ObjProductosServicios.Fecha.ToShortDateString - LblUsuarioCapturo.Text = ObjProductosServicios.Usuario - If ObjProductosServicios.CveUsuarioModifico > 0 Then - LblFechaModificacion.Text = ObjProductosServicios.FechaUltimaModificacion.ToString - LblUsuarioModifico.Text = ObjProductosServicios.UsuarioModifico - End If - 'ChkAplicaParaConcepto.Checked = ObjProductosServicios.AplicaParaConcepto - ChkAplicaParaVenta.Checked = ObjProductosServicios.AplicaParaVenta - lbTitulo.Text = $"{lbTitulo.Text}{ObjProductosServicios.PS}" - LtProductoUnificar.Text = ObjProductosServicios.PS - ddlMetodos.SelectedValue = ObjProductosServicios.CveMetodoInventario.ToString - TxtAlmacenSeccion.Text = ObjProductosServicios.AlmacenSeccion.ToString - DdlConceptoRelacionado.SelectedValueExist(ObjProductosServicios.CveConceptoContable.ToString) - - DdlProveedor.SelectedValue = ObjProductosServicios.CveProveedorCompra.ToString - DdlProveedor.SelectedText = ObjProductosServicios.ProveedorCompra - - DdlProveedor.txtText.Value = ObjProductosServicios.ProveedorCompra - DdlProveedor.txtValue.Value = ObjProductosServicios.CveProveedorCompra.ToString - - ChkInventariable.Checked = ObjProductosServicios.Inventariable - TxtVentaMinima.Text = ObjProductosServicios.VentaMinima.ToString - DdlMoneda.SelectedValueExist(ObjProductosServicios.CveMoneda) - TxtRetISR.Text = (ObjProductosServicios.RetISR * 100).ToString - - DdlTamanio.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTamaño").ToString) - - DdlModelo.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveModelo").ToString) - DdlMedida.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveMedida").ToString) - DdlRin.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveRinTamaño").ToString) - - 'If ObjProductosServicios.CvePSAdicional > 0 Then - ' DdlPSAdicional.SelectedValue = ObjProductosServicios.CvePSAdicional.ToString - ' DdlPSAdicional.SelectedText = ObjProductosServicios.PSCodigoAdicional - 'Else - ' DdlPSAdicional.SelectedValue = "-1" - ' DdlPSAdicional.SelectedText = "Seleccione" - 'End If - - Try - DdlClasificacion_SelectedIndexChanged(DdlClasificacion, Nothing) - Catch ex As Exception - - End Try - - ChkAplicaIeps.Checked = ObjProductosServicios.AplicaIEPS - If ObjProductosServicios.AplicaIEPS = True Then - DdlIEPSPorcentaje.Enabled = True - DdlIEPSPorcentaje.SelectedValue = ObjProductosServicios.IEPSPorcentaje.ToString("N2") - ChkIepsIVA.Enabled = True - ChkIepsIVA.Checked = ObjProductosServicios.IEPSGrabaIVA - End If - - DdlImpTipoProducto.SelectedValueExist(ObjProductosServicios.ClaveImpuestoTipoProducto) - CargaClaveGenerica(DdlImpTipoProducto.SelectedValue) - DdlImpEmpaque.SelectedValueExist(ObjProductosServicios.ClaveImpuestoEmpaque) - DdlImpUM.SelectedValueExist(ObjProductosServicios.ClaveImpuestoUnidadMedida) - DdlCategoriaToxicidad.SelectedValueExist(ObjProductosServicios.ClaveCategoriaToxicidad) - - 'If ObjProductosServicios.CveMetodoInventario = 0 Then ddlMetodos.SelectedValue = UsuarioActual.Empresa.CveMetodoInventario.ToString - - ViewState("CveSubFamilia") = ObjProductosServicios.DtResultados.Rows(0)("CveSubFamilia") - - CargaCaracteristicas() - - LnkUnificar.Visible = True - ChkEsOutSourcing.Checked = ObjProductosServicios.EsOutSourcing - Else - Alert("El Producto o Servicio Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) - RegistraScript("$('#C_Tab_TabPaquetes_tab').css('display' , 'none')") - BtnGuardar.Enabled = False - End If - End If - - If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then - gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados - dtPaqueteDetalles = ObjProductosServicios.DtResultados - - End If - ObjProductosServicios.Dispose() - gvPaqueteDetalle.DataBind() - End Sub - Protected Sub CargarAlias() - Dim ObjAlias As New ClsProductosServicios - ObjAlias.GetPSAlias(CvePS, UsuarioActual.CveEmpresa) - GVAlias.DataSource = ObjAlias.DtResultados - ObjAlias.Dispose() - GVAlias.DataBind() - End Sub - - Public Sub CargaDdlSATPS() - DdlSATPS.setEsWebService(True) - DdlSATPS.Attributes.Add("data-metodo", "getpssat") - End Sub - - Public Sub CargaDdlFraccionArancelaria() - DdlFraccionArancelaria.setEsWebService(True) - DdlFraccionArancelaria.Attributes.Add("data-metodo", "getfraccionarancelaria") - End Sub - Private Sub VerificaRequiereSerieLote() - If UsuarioActual.CveEmpresa.Contiene(80, 72) And DdlClasificacion.SelectedIndex > 0 Then - Dim RequireSerieLote As Integer = (GlobalDTClasificaciones(UsuarioActual.CveEmpresa, -1).FiltraParametros("CveClasificacion=" & DdlClasificacion.SelectedValue.ToString))(0)("RequiereSerieLote").ToString.ToEntero - If RequireSerieLote = 1 Then - RfvddlMetodos.Enabled = True - Else - RfvddlMetodos.Enabled = False - End If - Else - RfvddlMetodos.Enabled = False - End If - UpMetodos.Update() - End Sub - -#End Region - - '#Region "Familias" - ' Protected Sub DdlFamilia_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlFamilia.SelectedIndexChanged - ' CargaDdlSubFamilia() - ' DdlSubFamilia.SelectedValue = "-1" - ' End Sub - ' Public Sub CargaFamilia(Optional CveSubFamilia As Integer = 0) - ' dtFamily = GlobalDTSubFamilias(UsuarioActual.CveEmpresa) - ' CargaDdlFamilia() - ' If dtFamily.FiltraParametros(String.Format("CveClasificacion={0}", CveSubFamilia)).Rows.Count > 0 Then - ' DdlFamilia.SelectedValue = dtFamily.FiltraParametros(String.Format("CveClasificacion={0}", CveSubFamilia)).Rows(0)("CveCategoria").ToString - ' End If - ' CargaDdlSubFamilia() - - ' If CveSubFamilia > 0 Then - ' DdlSubFamilia.SelectedValue = CveSubFamilia.ToString - ' End If - ' End Sub - ' Public Sub CargaDdlFamilia() - ' ' Alert( GlobalDTFamilias(UsuarioActual.CveEmpresa).Rows.Count.ToString()) - ' DdlFamilia.DataSource = GlobalDTFamilias(UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'Activo'") - ' DdlFamilia.DataBind() - ' End Sub - ' Public Sub CargaDdlSubFamilia() - ' DdlSubFamilia.DataSource = dtFamily.FiltraParametros(String.Format("CveCategoria={0}", DdlFamilia.SelectedValue), "Clasificacion") - ' DdlSubFamilia.DataBind() - ' DdlSubFamilia.Items.Insert(0, New ListItem("----", "-1")) - ' End Sub - ' Private Function isWhitFamily() As Boolean - ' Return (UsuarioActual.CveEmpresa = 66) - ' End Function - '#End Region - -#Region " TIPO SERVICIO " - 'Public Sub CargaTipoServicio() - - ' 'GENERAL - ' If UsuarioActual.TienePermisoProceso(150) Then - ' DdlTipoServicio.Items.Insert(1, New ListItem("General", "1")) - ' DdlTipoServicio.SelectedValueExist(1) - ' End If - - ' 'MAQUINARIA - ' If UsuarioActual.TienePermisoProceso(151) Then - ' DdlTipoServicio.Items.Insert(1, New ListItem("Maquinaria", "2")) - ' DdlTipoServicio.SelectedValueExist(2) - ' End If - - ' If UsuarioActual.TienePermisoProceso(150) And UsuarioActual.TienePermisoProceso(151) Then - ' DdlTipoServicio.SelectedValueExist(-1) - ' End If - - 'End Sub - 'Private Sub DdlTipoPS_SelectedIndexChanged(sender As Object, e As EventArgs) ' Handles DdlTipoPS.SelectedIndexChanged - ' If UsuarioActual.TienePermisoProceso(150) And UsuarioActual.TienePermisoProceso(151) Then - - ' If DdlTipoPS.SelectedValue.ToEntero = 1 Then - ' DivTipoServicio.Visible = True - ' End If - - ' If DdlTipoPS.SelectedValue.ToEntero = 2 Then - ' DivTipoServicio.Visible = False - ' End If - ' End If - - ' UPPCostos.Update() - ' UpDatos.Update() - - 'End Sub -#End Region - -#Region " PAQUETES " - - Protected Sub BtnCargaPSPaquetes_Click(sender As Object, e As EventArgs) - If BtnCargaPSPaquetes.CommandArgument.ToEntero > 0 Then - CargaPS() - BtnCargaPSPaquetes.CommandArgument = "1" - End If - End Sub - Private Sub CargaPS() - 'RMF 2017.09.13, ajuste asume siempre que use el webservice - 'DdlProductows.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") - DdlProductows.setEsWebService(True) - If Not DdlProductows.UsaWebService AndAlso CType(DdlProductows.DataSource, DataTable) Is Nothing AndAlso GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) IsNot Nothing Then - DdlProductows.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) - DdlProductows.DataBind() - End If - - ElProductoChange() - End Sub - Protected Sub DdlProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlProductows.selectedindexchange - ElProductoChange() - End Sub - Private Sub ElProductoChange() - ddlUnidad.Items.Clear() - ddlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProductows.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) - ddlUnidad.DataBind() - UpDatos.Update() - End Sub - -#Region "GV PAQUETE DETALLE" - Protected Sub gvPaqueteDetalle_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvPaqueteDetalle.RowDataBound - If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then - e.Row.FCDropDownList("ddlEUnidad").DataSource = GlobalDTUnidadesMedida() - e.Row.FCDropDownList("ddlEUnidad").SelectedValue = e.Row.DBCampo("CveUnidadMedida") - e.Row.FCDropDownList("ddlEUnidad").DataBind() - End If - End Sub - Protected Sub gvPaqueteDetalle_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles gvPaqueteDetalle.RowDeleting - Dim ObjProductosServicios As New ClsProductosServicios - Dim tipo As Integer = 0 - If dtPaqueteDetalles.Rows.Item(e.RowIndex)("Tipo").ToString = "Paquete" Then - tipo = 1 - Else - tipo = 2 - End If - If ObjProductosServicios.DeletePaqueteDetalle(dtPaqueteDetalles.Rows.Item(e.RowIndex)("CvePSPaquete").ToString.ToEntero, - dtPaqueteDetalles.Rows.Item(e.RowIndex)("CvePS").ToString.ToEntero, - dtPaqueteDetalles.Rows.Item(e.RowIndex)("Cantidad").ToString.ToDouble, - tipo, - dtPaqueteDetalles.Rows.Item(e.RowIndex)("CveUnidadMedida").ToString.ToEntero) Then - - If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then - gvPaqueteDetalle.EditIndex = -1 - gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados - dtPaqueteDetalles = ObjProductosServicios.DtResultados - gvPaqueteDetalle.DataBind() - End If - End If - ObjProductosServicios.Dispose() - End Sub - Protected Sub gvPaqueteDetalle_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles gvPaqueteDetalle.RowEditing - gvPaqueteDetalle.EditIndex = e.NewEditIndex - gvPaqueteDetalle.DataSource = dtPaqueteDetalles - gvPaqueteDetalle.DataBind() - End Sub - Protected Sub gvPaqueteDetalle_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles gvPaqueteDetalle.RowCancelingEdit - gvPaqueteDetalle.EditIndex = -1 - gvPaqueteDetalle.DataSource = dtPaqueteDetalles - gvPaqueteDetalle.DataBind() - End Sub - Protected Sub gvPaqueteDetalle_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles gvPaqueteDetalle.RowUpdating - Dim ObjProductosServicios As New ClsProductosServicios - If ObjProductosServicios.UpdatePaqueteDetalle(CvePS, - dtPaqueteDetalles.Rows.Item(e.RowIndex)("CvePS").ToString.ToEntero, - DirectCast(gvPaqueteDetalle.Rows(e.RowIndex).FindControl("txtECantidad"), TextBox).Text.ToDouble, - DirectCast(gvPaqueteDetalle.Rows(e.RowIndex).FindControl("ddlETipo"), DropDownList).SelectedValue.ToEntero, - DirectCast(gvPaqueteDetalle.Rows(e.RowIndex).FindControl("ddlEUnidad"), DropDownList).SelectedValue.ToEntero, UsuarioActual.CveUsuario) Then - If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then - gvPaqueteDetalle.EditIndex = -1 - gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados - dtPaqueteDetalles = ObjProductosServicios.DtResultados - gvPaqueteDetalle.DataBind() - End If - End If - ObjProductosServicios.Dispose() - End Sub -#End Region - -#End Region - - -#Region "BTN'S" - Protected Sub BtnEliminar_Click(sender As Object, e As System.EventArgs) Handles BtnEliminar.Click - 'Dim CerrarVentana As String = "opener.location.reload();window.close();" - 'If Request("Popup") IsNot Nothing Then CerrarVentana = "self.parent.tb_remove();self.parent.location.reload();window.close();" - RegistraScript(String.Format("$('#{0}').modal('show');", "divDescripcion")) - - End Sub - Protected Sub btguardar_Click(sender As Object, e As EventArgs) Handles btguardar.Click - Dim ObjProductosServicios As New ClsProductosServicios - If ObjProductosServicios.AddPaqueteDetalle(CvePS, DdlProductows.SelectedValue.ToEntero, txtCantidad.Text.ToDouble, ddlTipo.SelectedValue.ToEntero, ddlUnidad.SelectedValue.ToEntero, UsuarioActual.CveUsuario) Then - - If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then - gvPaqueteDetalle.EditIndex = -1 - gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados - gvPaqueteDetalle.DataBind() - - End If - - txtCantidad.Text = "" - DdlProductows.ddl.SelectedIndex = 0 - ddlUnidad.SelectedIndex = 0 - ddlTipo.SelectedIndex = 0 - End If - ObjProductosServicios.Dispose() - UpDatos.Update() - End Sub - Protected Sub BtnGuardar_Click(sender As Object, e As System.EventArgs) Handles BtnGuardar.Click - - - If TxtPS.Text.Trim.Length = 0 Or DdlTipoPS.SelectedValue.ToEntero <= 0 Or DdlUnidadMedida.SelectedValue.ToEntero <= 0 Or DdlClasificacion.SelectedValue.ToEntero <= 0 Then - Alert("Los campos Producto/Servicio, Tipo, Unidad de medida, Clasificación Contable son requeridos por favor ingreselos.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - Dim CveClasificacion2 As Integer = DdlClasificacion2.SelectedValue.ToEntero - - If (TxtCodigo.Text = TxtCodigoBarras.Text AndAlso TxtCodigo.Text <> "") Then - Alert("Los codigos no pueden ser iguales. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Return - End If - - 'If DdlSubFamilia.SelectedValue = "-1" AndAlso UsuarioActual.TienePermisoProceso(138) Then - ' Alert("Se debe especificar Familia y Subfamilia de Costos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - 'End If - - If UsuarioActual.Empresa.Funcionalidad(265) = "1" And TxtCodigo.Text = "" Then - Alert("El codigo es requerido.", TipoMensaje.MsgAdvertencia) - Return - End If - - If TxtCodigo.Text <> "" AndAlso Not TxtCodigo.Text.Length >= 3 Then - Alert("El codigo tiene que que tener una longitud de al menos 3 digitos.", TipoMensaje.MsgAdvertencia) - Return - End If - - Dim ObjProductosServicios As New ClsProductosServicios() - Dim ObjInv As New ClsInventarios(ObjProductosServicios.IniciaTransacSQL()) - - Dim TieneError = False - Dim AccionJS = "" - Dim EsPaquete As Integer = If(gvPaqueteDetalle.Rows.Count = 0, 0, 1) - Dim CveMetodoInv As Integer = If(UsuarioActual.Empresa.UsaInventarios, ddlMetodos.SelectedValue.ToEntero, -1) - - - Dim CveProveedor As Integer = -1 - If DdlProveedor.txtValue.Value.ToEntero > 0 Then - CveProveedor = DdlProveedor.txtValue.Value.ToEntero - End If - - Dim CveMarca As Integer = 0 - If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then CveMarca = DdlMarcaPSDes.SelectedValue.ToEntero Else CveMarca = DdlMarca.SelectedValue.ToEntero - - If CvePS = -1 Then - Dim PSS As String = TxtPS.Text.Trim.Replace("|", "") - If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper - If ObjProductosServicios.AddPS(DdlClasificacion.SelectedValue.ToEntero, -1, DdlUnidadMedida.SelectedValue.ToEntero, TxtCodigo.Text.Trim, "", TxtCodigoBarras.Text.Trim, PSS, - TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True, - ChkAplicaParaVenta.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveMetodoInv, EsPaquete, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, - FuePorXML:=False, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim, - AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero, - CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToEntero, - CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal, - CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero, - CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=DdlTamanio.SelectedValue.ToEntero, - CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(), - ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, - ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked) > 0 Then - ViewState("CvePS") = ObjProductosServicios.CvePS - For Each GVR As GridViewRow In GvImpuestosLocales.Rows - If GVR.FCCheckBox("ChkDeduccion").Checked Then - ObjProductosServicios.AddPSImpuestosLocales(CvePS, GVR.DataKey("CveImpuestoLocal").ToEntero) - End If - Next - 'Alert("El Producto o Servicio se guardó correctamente.", TipoMensaje.MsgInformacion, "document.location.href= "" / ProductosServicios.aspx?CvePS=" & ObjProductosServcios.CvePS.ToString & """;") - AccionJS = "document.location.href=""/Ventas/CatPS.aspx"";" - - - If Not TieneError Then - For Each Dr As DataRow In DtSeccionAlmacen.Rows - If Dr("CveAlmacen").ToString.ToEntero > 0 Then - If Not ObjInv.AddProductosServiciosAlmacenSeccion(CvePS, Dr("CveAlmacen").ToString.ToEntero, Dr("CveAlmacenSeccion").ToString.ToEntero) Then - TieneError = True - End If - End If - Next - End If - - Else - TieneError = True - Alert("Ocurrió un Error al agregar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - Else - - If CodigoBarrasCargado.Length > 0 And TxtCodigoBarras.Text.Length = 0 Then - TxtCodigoBarras.Text = CodigoBarrasCargado - End If - - Dim PSS As String = TxtPS.Text.Trim.Replace("|", "") - If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper - - If ObjProductosServicios.UpdatePS(DdlClasificacion.SelectedValue.ToEntero, -1, DdlUnidadMedida.SelectedValue.ToEntero, TxtCodigo.Text.Trim, "", TxtCodigoBarras.Text.Trim, PSS, - TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True, - ChkAplicaParaVenta.Checked, ChkEstado.Checked, UsuarioActual.CveUsuario, CvePS, CveMetodoInv, EsPaquete, DdlSATPS.SelectedValue.ToEntero, - CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim, - AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero, - CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToEntero, - CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal, - CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero, - CveUsuarioModifico:=UsuarioActual.CveUsuario, CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=DdlTamanio.SelectedValue.ToEntero, - CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(), - ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, - ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked) Then - - If Not ObjProductosServicios.LimpiaImpuestosLocales(CvePS) Then - TieneError = True - Alert("Ocurrió un Error al regenerar los impuestos locales. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - - If Not TieneError Then - For Each GVR As GridViewRow In GvImpuestosLocales.Rows - If GVR.FCCheckBox("ChkDeduccion").Checked Then - If Not ObjProductosServicios.AddPSImpuestosLocales(CvePS, GVR.DataKey("CveImpuestoLocal").ToEntero) Then - TieneError = True - Alert("Ocurrió un Error al agregar los impuestos locales. Por favor vuelva a intentar.", TipoMensaje.MsgError) - Exit For - End If - End If - Next - End If - - AccionJS = If(Ret = "Comp", "ircompras();", "document.location.href=""/Ventas/CatPS.aspx"";") - 'UpDatos.Update() - 'Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion, AccionJS) - - If Not TieneError Then - For Each Dr As DataRow In DtSeccionAlmacen.Rows - If Dr("CveAlmacen").ToString.ToEntero > 0 AndAlso Not Dr("CvePSAlmacenSeccion").ToString.ToEntero > 0 Then - If Not ObjInv.AddProductosServiciosAlmacenSeccion(CvePS, Dr("CveAlmacen").ToString.ToEntero, Dr("CveAlmacenSeccion").ToString.ToEntero) Then - TieneError = True - End If - ElseIf Not Dr("CveAlmacen").ToString.ToEntero > 0 AndAlso Dr("CvePSAlmacenSeccion").ToString.ToEntero > 0 Then - If Not ObjInv.RemoveProductosServiciosAlmacenSeccion(Dr("CvePSAlmacenSeccion").ToString.ToEntero) Then - TieneError = True - End If - End If - Next - End If - - - Else - TieneError = True - Alert("Ocurrió un Error al actualizar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - ObjProductosServicios.CvePS = CvePS - End If - - If ObjProductosServicios.CvePS > 0 And Not TieneError Then - For i As Integer = 0 To gvSucursal.Rows.Count - 1 - If gvSucursal.Rows(i).FCCheckBox("chkSucursal").Checked = False Then - If Not ObjProductosServicios.RemovePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero) Then - TieneError = True - Alert("Ocurrió un Error al eliminar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError) - Exit For - End If - Else - If gvSucursal.Rows(i).FCHiddenField("hdnEnBD").Value.ToEntero = 1 Then - 'Actualizarlo - If Not ObjProductosServicios.UpdatePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMaximo").Text.ToDouble, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal) Then - TieneError = True - Alert("Ocurrió un Error al actualizar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError) - Exit For - End If - 'ObjProductosServicios.UpdatePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCHiddenField("hdnCveSucursal").Value.ToEntero, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, UsuarioActual.CveUsuario) - Else - 'Insertarlo - 'ObjProductosServicios.AddPSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCHiddenField("hdnCveSucursal").Value.ToEntero, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, UsuarioActual.CveUsuario) - If Not ObjProductosServicios.AddPSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMaximo").Text.ToDouble, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal) Then - TieneError = True - Alert("Ocurrió un Error al agregar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError) - Exit For - End If - End If - End If - Next - End If - - - If ObjProductosServicios.CvePS > 0 And Not TieneError Then - TieneError = GuardaEcommerce() - End If - - - If Not TieneError Then - ObjProductosServicios.Commit() - Alert("El Producto/Servicio se guardo correctamente.", TipoMensaje.MsgInformacion, AccionJS) - Else - ObjProductosServicios.RollBack() - End If - - ObjProductosServicios.Dispose() - - RecargaGlobal() - End Sub - Protected Sub HFProducto_ValueChanged(sender As Object, e As EventArgs) Handles HFProducto.ValueChanged - ddlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(HFProducto.Value.ToEntero, -1, UsuarioActual.CveEmpresa) - ddlUnidad.DataBind() - End Sub - Protected Sub LbAgregar_Click(sender As Object, e As System.EventArgs) Handles LbAgregar.Click - Dim ObjAliasAdd As New ClsProductosServicios - Dim TieneError = False - - If ObjAliasAdd.AddPSAlias(TxtAlias.Text.ToString, CvePS, UsuarioActual.CveUsuario) Then - CargarAlias() - UPGVAlias.Update() - Alert("Alias " + TxtAlias.Text + " agregado.", TipoMensaje.MsgInformacion) - TxtAlias.Text = "" - Else - TieneError = True - End If - ObjAliasAdd.Dispose() - - If Not TieneError Then - RecargaGlobal() - End If - End Sub -#End Region - -#Region "G L O B L A L" - Private Sub RecargaGlobal() - 'Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalDT) - 'Hilo.Start() - GeneraGlobalDT() - End Sub - Private Sub GeneraGlobalDT() - - GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) = Nothing - GlobalDTProductosServiciosAlias(UsuarioActual.CveEmpresa) = Nothing - GlobalDTImpuestosLocales(-1, UsuarioActual.CveEmpresa) = Nothing - GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = Nothing - GlobalDTPSAdicionales(-1, UsuarioActual.CveEmpresa) = Nothing - - 'Dim ObjPS As New ClsProductosServicios - - 'If ObjPS.GetPSSimplificado(UsuarioActual.CveEmpresa) Then Application(String.Format("GlobalDTPSSimplificado{0}", UsuarioActual.CveEmpresa)) = ObjPS.DtResultados.AsEnumerable() - - ''If ObjPS.GetPSAlias(-1, UsuarioActual.CveEmpresa) Then - ' GlobalDTProductosServiciosAlias(UsuarioActual.CveEmpresa) = ObjPS.DtResultados - 'End If - - 'If ObjPS.GetPSImpuestosLocales(-1, UsuarioActual.CveEmpresa) Then - ' GlobalDTImpuestosLocales(-1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados - 'End If - - 'If ObjPS.GetPSEquivalencias(-1, UsuarioActual.CveEmpresa) Then - ' GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados - 'End If - - 'If ObjPS.GetPSAdicionales(-1, UsuarioActual.CveEmpresa) Then - ' GlobalDTPSAdicionales(-1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados - 'End If - - 'ObjPS.Dispose() - End Sub - -#End Region - -#Region "GV ALIAS" - Protected Sub GVAlias_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GVAlias.RowDeleting - Dim ObjAliasDelete As New ClsProductosServicios - Dim TieneError = False - - If ObjAliasDelete.RemovePSAlias(GVAlias.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero, GVAlias.Rows(e.RowIndex).DataKey("PSAlias").ToString) Then - GVAlias.EditIndex = -1 - CargarAlias() - UPGVAlias.Update() - Alert("El Alias ha sido Eliminado", TipoMensaje.MsgInformacion) - Else - Alert("Error al Eliminar", TipoMensaje.MsgError) - TieneError = True - End If - ObjAliasDelete.Dispose() - - If Not TieneError Then - RecargaGlobal() - End If - End Sub -#End Region - -#Region " EQUIVALENCIAS " - Private Sub CargaEquivalencias() - - DivEquivalencia.Visible = True - - Dim ObjProductosServicios As New ClsProductosServicios() - If ObjProductosServicios.GetPSEquivalencias(CvePS, UsuarioActual.CveEmpresa) Then - DtEquivalencias = ObjProductosServicios.DtResultados - Else - DtEquivalencias = Nothing - End If - ObjProductosServicios.Dispose() - - CargaGvEquivalencias() - - End Sub - Private Sub RecargaGlobalEquivalencias() - 'Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalEquivalencias) - 'Hilo.Start() - GeneraGlobalEquivalencias() - End Sub - Private Sub GeneraGlobalEquivalencias() - GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = Nothing - 'Dim ObjPS = New ClsProductosServicios - 'If ObjPS.GetPSEquivalencias(-1, -1) Then - ' GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados - 'End If - 'ObjPS.Dispose() - End Sub - Private Sub CargaGvEquivalencias() - If DtEquivalencias IsNot Nothing Then - GvEquivalencia.DataSource = DtEquivalencias - End If - GvEquivalencia.DataBind() - UpEquivalencias.Update() - End Sub - Private Sub GvEquivalencia_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEquivalencia.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - - If e.Row.DBCampo("UnidadBase") = "True" Then - e.Row.FCLinkButton("imgR").Visible = False - End If - - If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then - If e.Row.DBCampo("UnidadBase") = "True" Then - 'e.Row.FCCheckBox("ChkBase").Checked = True - End If - End If - - End If - End Sub - Protected Sub GvEquivalencia_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvEquivalencia.RowEditing - GvEquivalencia.EditIndex = e.NewEditIndex - CargaGvEquivalencias() - End Sub - Protected Sub GvEquivalencia_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvEquivalencia.RowCancelingEdit - GvEquivalencia.EditIndex = -1 - CargaGvEquivalencias() - End Sub - Private Sub GvEquivalencia_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvEquivalencia.RowUpdating - Dim TieneError = False - - Dim CveUM = GvEquivalencia.Rows(e.RowIndex).DataKey("CveUM").ToEntero - Dim UnidadBase = GvEquivalencia.Rows(e.RowIndex).DataKey("UnidadBase").ToString = "True" - Dim Cantidad = DirectCast(GvEquivalencia.Rows(e.RowIndex).FindControl("TxtCantidadEquivalencia"), TextBox).Text.Trim.ToDecimal - - Dim ObjProductosServicios As New ClsProductosServicios() - If Not ObjProductosServicios.UpdatePSEquivalencias(CvePS, CveUM, Cantidad, UnidadBase, 0, UsuarioActual.CveUsuario) Then - TieneError = True - End If - ObjProductosServicios.Dispose() - - If Not TieneError Then - Alert("La equivalencia se actualizó correctamente.", TipoMensaje.MsgInformacion) - GvEquivalencia.EditIndex = -1 - CargaEquivalencias() - CargaGvEquivalencias() - RecargaGlobalEquivalencias() - Else - Alert("ocurrió un error al actualizar la equivalencia.", TipoMensaje.MsgError) - End If - - End Sub - Private Sub GvEquivalencia_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvEquivalencia.RowDeleting - Dim TieneError = False - - Dim CveUM = GvEquivalencia.Rows(e.RowIndex).DataKey("CveUM").ToEntero - - Dim ObjProductosServicios As New ClsProductosServicios() - If Not ObjProductosServicios.RemovePSEquivalencias(CvePS, CveUM) Then - TieneError = True - End If - ObjProductosServicios.Dispose() - - If Not TieneError Then - Alert("La equivalencia se eliminó correctamente.", TipoMensaje.MsgInformacion) - CargaEquivalencias() - CargaGvEquivalencias() - RecargaGlobalEquivalencias() - Else - Alert("ocurrió un error al eliminar la equivalencia.", TipoMensaje.MsgError) - End If - - End Sub - -#End Region - -#Region "PS ADICIONALES" - - Private Sub CargaPSAdicionales() - - Dim ObjProductosServicios As New ClsProductosServicios() - If ObjProductosServicios.GetPSAdicionales(CvePS, UsuarioActual.CveEmpresa) Then - DtPSAdicionales = ObjProductosServicios.DtResultados - Else - DtPSAdicionales = Nothing - End If - ObjProductosServicios.Dispose() - - CargaGvPSAdicionales() - - End Sub - Private Sub CargaGvPSAdicionales() - If DtPSAdicionales IsNot Nothing Then - GvPSAdicionales.DataSource = DtPSAdicionales - End If - GvPSAdicionales.DataBind() - UpPSAdicionales.Update() - End Sub - Private Sub GvPSAdicionales_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPSAdicionales.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - - If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then - e.Row.FCDropDownList("DdlPSAdicional").DataSource = GlobalDTPS(UsuarioActual.CveEmpresa) '.FiltraParametros("CvePS = " + CvePS.ToString) - e.Row.FCDropDownList("DdlPSAdicional").DataBind() - e.Row.FCDropDownList("DdlPSAdicional").SelectedValue = e.Row.DBCampo("CvePSAdicional") - End If - - End If - End Sub - Protected Sub GvPSAdicionales_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvPSAdicionales.RowCancelingEdit - GvPSAdicionales.EditIndex = -1 - CargaGvPSAdicionales() - End Sub - Private Sub GvPSAdicionales_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvPSAdicionales.RowDeleting - Dim TieneError = False - - Dim CvePSAdicional = GvPSAdicionales.Rows(e.RowIndex).DataKey("CvePSAdicional").ToEntero - - Dim ObjProductosServicios As New ClsProductosServicios() - If Not ObjProductosServicios.RemovePSAdicionales(CvePS, CvePSAdicional) Then - TieneError = True - End If - ObjProductosServicios.Dispose() - - If Not TieneError Then - Alert("El Producto/Servicio Adicionala se eliminó correctamente.", TipoMensaje.MsgInformacion) - CargaPSAdicionales() - CargaGvPSAdicionales() - 'RecargaGlobalEquivalencias() - RecargaGlobal() - Else - Alert("ocurrió un error al eliminar el Producto/Servicio Adicional.", TipoMensaje.MsgError) - End If - - End Sub - - Private Sub BtnAgregarPSAdicionalesModal_Click(sender As Object, e As EventArgs) Handles BtnAgregarPSAdicionalesModal.Click - BtnAgregarPSAdicional.Text = "Agregar" - CvePSAdicional = -1 - - DdlPSAdicional.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa) - DdlPSAdicional.DataBind() - DdlPSAdicional.Items.Add(New ListItem("Seleccione", "-1")) - UpAddPSAdicional.Update() - - DdlPSAdicional.SelectedValue = "-1" - TxtCantidadPSAdicional.Text = "" - UpCantidad.Visible = False - RBLCantidad.SelectedValue = "1" - RegistraScript("$('#divAddPSAdicional').modal();") - End Sub - Private Sub BtnAgregarPSAdicional_Click(sender As Object, e As EventArgs) Handles BtnAgregarPSAdicional.Click - Dim ObjProductosServicios As New ClsProductosServicios() - ObjProductosServicios.IniciaTransacSQL() - Dim TieneError = False - - If CvePSAdicional < 0 Then - If Not ObjProductosServicios.AddPSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0)) Then - TieneError = True - End If - Else - - If Not ObjProductosServicios.UpdatePSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, CvePSAdicional, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0)) Then - TieneError = True - End If - - End If - - If TieneError Then - Alert("Ocurrio un error al agregar/actualizar el Producto/Servicio Adicional.", TipoMensaje.MsgError) - ObjProductosServicios.RollBack() - Else - ObjProductosServicios.Commit() - RegistraScript("$('#divAddPSAdicional').modal('hide');") - CvePSAdicional = -1 - CargaPSAdicionales() - CargaGvPSAdicionales() - RecargaGlobal() - End If - ObjProductosServicios.Dispose() - End Sub - - Protected Sub Edit_Click(sender As Object, e As EventArgs) - Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) - BtnAgregarPSAdicional.Text = "Guardar" - TxtCantidadPSAdicional.Text = GvRow.DataKey("Cantidad") - - If TxtCantidadPSAdicional.Text.ToEntero = 0 Then - UpCantidad.Visible = False - RBLCantidad.SelectedValue = "1" - Else - UpCantidad.Visible = True - RBLCantidad.SelectedValue = "2" - End If - UpAddPSAdicional.Update() - - DdlPSAdicional.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa) - DdlPSAdicional.DataBind() - DdlPSAdicional.Items.Add(New ListItem("Seleccione", "-1")) - UpAddPSAdicional.Update() - - CvePSAdicional = GvRow.DataKey("CvePSAdicional").ToEntero - DdlPSAdicional.SelectedValue = GvRow.DataKey("CvePSAdicional") - - RegistraScript("$('#divAddPSAdicional').modal();") - End Sub - - Protected Sub RBLCantidad_SelectedIndexChanged1(sender As Object, e As EventArgs) - If RBLCantidad.SelectedValue.ToEntero = 2 Then - UpCantidad.Visible = True - Else - UpCantidad.Visible = False - End If - UpAddPSAdicional.Update() - End Sub -#End Region - -#Region " CARGA MARCA Y COMPUESTOS " - - Protected Sub CargarMarcas() - If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then - If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) And CvePS = -1 Then - DivMarcaPSDes.Visible = True - Else - DivMarca.Visible = True - End If - Dim ObjMarcas As New ClsProductosServicios - ObjMarcas.GetMarcas(UsuarioActual.CveEmpresa) - DdlMarca.DataSource = ObjMarcas.DtResultados - DdlMarcaPSDes.DataSource = ObjMarcas.DtResultados - ObjMarcas.Dispose() - DdlMarca.DataBind() - DdlMarcaPSDes.DataBind() - End If - DdlMarca.Items.Insert(0, New ListItem(" - ", "-1")) - DdlMarcaPSDes.Items.Insert(0, New ListItem(" - ", "-1")) - End Sub - - Protected Sub CargarCompuestos() - If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then - DivCompuesto.Visible = True - Dim PS As New ClsProductosServicios - PS.GetCompuestosActivos(UsuarioActual.CveEmpresa) - DdlCompuesto.DataSource = PS.DtResultados - PS.Dispose() - DdlCompuesto.DataBind() - End If - End Sub - - -#End Region - -#Region "IMPUESTOS LOCALES" - Public Sub CargaImpuestosLocales() - Dim ObjPS As New ClsProductosServicios - If ObjPS.GetPSImpuestosLocales(CvePS, UsuarioActual.CveEmpresa) Then - GvImpuestosLocales.DataSource = ObjPS.DtResultados - End If - ObjPS.Dispose() - GvImpuestosLocales.DataBind() - End Sub - -#End Region - -#Region " IEPS " - Private Sub ChkAplicaIeps_CheckedChanged(sender As Object, e As EventArgs) Handles ChkAplicaIeps.CheckedChanged - If ChkAplicaIeps.Checked Then - DdlIEPSPorcentaje.Enabled = True - ChkIepsIVA.Enabled = True - Else - DdlIEPSPorcentaje.SelectedIndex = 0 - DdlIEPSPorcentaje.Enabled = False - ChkIepsIVA.Enabled = False - ChkIepsIVA.Checked = False - End If - UpDatos.Update() - End Sub -#End Region - -#Region "UNIFICAR PRODUCTOS" - Private Sub LnkUnificar_Click(sender As Object, e As EventArgs) Handles LnkUnificar.Click - CargaPSUnificar() - RegistraScript("$('#DivUnificar').modal();LimpiaModalUnificar()") - End Sub - Public Sub CargaPSUnificar() - DdlPsUnificar.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) - DdlPsUnificar.DataBind() - 'DdlPsUnificar.setEsWebService(True) - 'DdlPsUnificar.ddlWS.Attributes.Add("data-clear", "1") - - UpBodyUnificar.Update() - End Sub - Private Sub BtnUnificar_Click(sender As Object, e As EventArgs) Handles BtnUnificar.Click - If DdlPsUnificar.SelectedValue.ToEntero() > 0 Then - If DdlPsUnificar.SelectedValue.ToEntero() = CvePS Then - Alert("No se puede seleccionar el mismo producto y/o servicio", TipoMensaje.MsgAdvertencia) - Else - Dim ObjPS As New ClsProductosServicios - If ObjPS.UnificarPS(CvePS, DdlPsUnificar.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then - Alert("Los productos y/o servicios han sido unificados", TipoMensaje.MsgInformacion) - Else - Alert("Los productos y/o servicios no han podido ser unificados", TipoMensaje.MsgError) - End If - ObjPS.Dispose() - RecargaGlobal() - RegistraScript("$('#DivUnificar').modal('hide');") - UpDatos.Update() - End If - Else - Alert("Es necesario seleccionar un producto y/o servicio", TipoMensaje.MsgAdvertencia) - End If - - - End Sub -#End Region - -#Region "BITACORA" - - Private Sub CargaGvBitacora() - Dim ObjGral As New ClsGenerales() - If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, CvePS, -1, -1, UsuarioActual.CveEmpresa) Then - GvBitacora.DataSource = ObjGral.DtResultados - GvBitacora.DataBind() - End If - ObjGral.Dispose() - UpDatos.Update() - End Sub - - Private Sub BtnRemove_Click(sender As Object, e As EventArgs) Handles BtnRemove.Click - If Not TxtDescripcion.Text = "" Then - Dim ObjProductosServcios As New ClsProductosServicios() - Dim ObjGral As New ClsGenerales(ObjProductosServcios.IniciaTransacSQL()) - - - If ObjProductosServcios.RemovePS(CvePS) Then - Borrar = True - Else - Borrar = False - End If - - If Borrar = True Then - If ObjGral.AddHistorialBitacora(Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, "", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, TxtDescripcion.Text, "PS", TxtCodigo.Text + " / " + TxtPS.Text) Then - ObjProductosServcios.Commit() - RecargaGlobal() - Alert("El Producto o Servicio se eliminó correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Ventas/CatPS.aspx"";") - Else - ObjProductosServcios.RollBack() - Alert("Ocurrió un Error al actualizar el historial de eliminación.", TipoMensaje.MsgError) - End If - Else - ObjProductosServcios.RollBack() - Alert("Ocurrió un Error al eliminar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - ObjProductosServcios.Dispose() - ObjGral.Dispose() - Else - Alert("Tiene que decir el motivo de su eliminacion.", TipoMensaje.MsgInformacion) - End If - End Sub - -#End Region - -#Region "Codigo Barras" - - 'Codigo barras/QR se retorna como una imagen bmp - Private Function GeneraCodigoQR(CodigoBarras As String, Alto As Integer, Largo As Integer, Margen As Integer, Formato As String) As Byte() - - Dim barcodeWriter As New BarcodeWriter - Dim opciones As New ZXing.Common.EncodingOptions - Dim FormatoBar As New BarcodeFormat - 'Dim Respuesta As Byte() - - opciones.Height = Alto - opciones.Width = Largo - opciones.Margin = Margen - - barcodeWriter.Options = opciones - - Select Case Formato - Case "All_1D" - barcodeWriter.Format = BarcodeFormat.All_1D - Exit Select - Case "AZTEC" - barcodeWriter.Format = BarcodeFormat.AZTEC - Exit Select - Case "CODABAR" - barcodeWriter.Format = BarcodeFormat.CODABAR - Exit Select - Case "CODE_128" - barcodeWriter.Format = BarcodeFormat.CODE_128 - Exit Select - Case "CODE_39" - barcodeWriter.Format = BarcodeFormat.CODE_39 - Exit Select - Case "CODE_93" - barcodeWriter.Format = BarcodeFormat.CODE_93 - Exit Select - Case "DATA_MATRIX" - barcodeWriter.Format = BarcodeFormat.DATA_MATRIX - Exit Select - Case "EAN_13" - barcodeWriter.Format = BarcodeFormat.EAN_13 - Exit Select - Case "EAN_8" - barcodeWriter.Format = BarcodeFormat.EAN_8 - Exit Select - Case "IMB" - barcodeWriter.Format = BarcodeFormat.IMB - Exit Select - Case "ITF" - barcodeWriter.Format = BarcodeFormat.ITF - Exit Select - Case "MAXICODE" - barcodeWriter.Format = BarcodeFormat.MAXICODE - Exit Select - Case "MSI" - barcodeWriter.Format = BarcodeFormat.MSI - Exit Select - Case "PDF_417" - barcodeWriter.Format = BarcodeFormat.PDF_417 - Exit Select - Case "PLESSEY" - barcodeWriter.Format = BarcodeFormat.PLESSEY - Exit Select - Case "QR_CODE" - barcodeWriter.Format = BarcodeFormat.QR_CODE - Exit Select - Case "RSS_14" - barcodeWriter.Format = BarcodeFormat.RSS_14 - Exit Select - Case "RSS_EXPANDED" - barcodeWriter.Format = BarcodeFormat.RSS_EXPANDED - Exit Select - Case "UPC_A" - barcodeWriter.Format = BarcodeFormat.UPC_A - Exit Select - Case "UPC_E" - barcodeWriter.Format = BarcodeFormat.UPC_E - Exit Select - Case "UPC_EAN_EXTENSION" - barcodeWriter.Format = BarcodeFormat.UPC_EAN_EXTENSION - Exit Select - - End Select - - Dim imgCod As Drawing.Bitmap = barcodeWriter.Write(CodigoBarras) - Dim memoriStream As New System.IO.MemoryStream - imgCod.Save(memoriStream, Drawing.Imaging.ImageFormat.Bmp) - - 'Respuesta = Convert.ToBase64String(memoriStream.ToArray()) - - Return memoriStream.ToArray() - - End Function - - Private Sub LnkModalCodigoBarrasQr_Click(sender As Object, e As EventArgs) Handles LnkModalCodigoBarrasQr.Click - - LnkDescargaImagen.Enabled = False - LnkDescargaImpresion.Enabled = False - UpModalBotonesCodigos.Update() - - TxtCodigoBarrasModal.Text = TxtCodigoBarras.Text.Trim - UpModalUploadCodigoBarras.Update() - RegistraScript("$('#ModalCodigoBarrasQR').modal({ backdrop: 'static', keyboard: false});") - - End Sub - - - Private Sub LnkModalGenerarCodigoBarrasQR_Click(sender As Object, e As EventArgs) Handles LnkModalGenerarCodigoBarrasQR.Click - - Dim Alto As Integer = 150 - Dim Ancho As Integer = 150 - Dim Base64Code As String - - If TxtAlto.Text.ToEntero > 0 Then Alto = TxtAlto.Text.ToEntero - If TxtAncho.Text.ToEntero > 0 Then Ancho = TxtAncho.Text.ToEntero - - Try - Base64Code = Convert.ToBase64String(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue)) - ImgModalCodigo.Attributes.Add("src", $"data:image/gif;base64,{Base64Code}") - ImgModalCodigo.Width = Ancho - ImgModalCodigo.Height = Alto - LnkDescargaImagen.Enabled = True - LnkDescargaImpresion.Enabled = True - UpModalBotonesCodigos.Update() - Catch ex As Exception - ImgModalCodigo.Attributes.Add("src", "") - ImgModalCodigo.Width = Ancho - ImgModalCodigo.Height = Alto - LnkDescargaImagen.Enabled = False - LnkDescargaImpresion.Enabled = False - UpModalBotonesCodigos.Update() - End Try - - UpModalUploadCodigoBarras.Update() - - End Sub - - Private Sub LnkDescargaImagen_Click(sender As Object, e As EventArgs) Handles LnkDescargaImagen.Click - - Dim Alto As Integer = 150 - Dim Ancho As Integer = 150 - - - If TxtAlto.Text.ToEntero > 0 Then Alto = TxtAlto.Text.ToEntero - If TxtAncho.Text.ToEntero > 0 Then Ancho = TxtAncho.Text.ToEntero - - Try - Dim memoryStream As New System.IO.MemoryStream(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue)) - Response.Clear() - Response.ContentType = "application/bmp" - Response.AddHeader("content-disposition", $"attachment;filename=code_{TxtCodigoBarrasModal.Text.Trim}.bmp") - Response.Buffer = True - memoryStream.WriteTo(Response.OutputStream) - Response.End() - - Catch ex As Exception - - End Try - End Sub - - Private Sub DDLCodigoFormato_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DDLCodigoFormato.SelectedIndexChanged - LnkDescargaImagen.Enabled = False - LnkDescargaImpresion.Enabled = False - UpModalBotonesCodigos.Update() - End Sub - Private Sub LnkDescargaImpresion_Click(sender As Object, e As EventArgs) Handles LnkDescargaImpresion.Click - Dim Alto As Integer = 150 - Dim Ancho As Integer = 150 - - - If TxtAlto.Text.ToEntero > 0 Then Alto = TxtAlto.Text.ToEntero - If TxtAncho.Text.ToEntero > 0 Then Ancho = TxtAncho.Text.ToEntero - - Try - - - Dim Doc As New iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 10.0F, 10.0F, 100.0F, 0F) - Dim para As New iTextSharp.text.Paragraph - Dim memoryStreamDoc As New System.IO.MemoryStream - - Dim gemBox As New clsGemBoxDocument() - - gemBox.AgregarImagen(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue)) - gemBox.GuardarStreamPDF() - - - - Dim memoryStream As New System.IO.MemoryStream(gemBox.GetBytesDocumento()) - gemBox.Dispose() - Response.Clear() - Response.ContentType = "application/pdf" - Response.AddHeader("content-disposition", $"attachment;filename=code_{TxtCodigoBarrasModal.Text.Trim}.pdf") - Response.Buffer = True - memoryStream.WriteTo(Response.OutputStream) - Response.End() - - Catch ex As Exception - - End Try - End Sub - - - -#End Region - -#Region "SELECTED INDEX CHANGE" - Public Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClasificacion.SelectedIndexChanged - If DdlClasificacion.SelectedValue.ToEntero > 0 Then - If Not CveSATPS > 0 Or CveSATPS = 46920 Then - Dim Dr = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0) - - DdlSATPS.SelectedValue = Dr("CveSATPS").ToString - DdlSATPS.SelectedText = Dr("SATClaveProductoServicio").ToString - - - - If UsuarioActual.CveEmpresa.Contiene(72, 80) Then - VerificaRequiereSerieLote() - End If - End If - ' CargaClasificacionesDetalles() - End If - - Try - Dim Dr = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0) - If Boolean.Parse(Dr("EsAcumulador").ToString) Then - MostarOcultarDivTamanio(True) - Else - MostarOcultarDivTamanio(False) - End If - 'SI ES MOTOBATERIA +Option Explicit On +Option Strict On + +Imports Extensiones +Imports System.IO +Imports System.Data +Imports ZXing + +Partial Class ProductosyServicios + Inherits ClsPaginas + +#Region " Propiedades " + Private ReadOnly Property CvePS As Integer + Get + Return ViewState("CvePS").ToString.ToEntero + End Get + End Property + + Private Property CveSATPS As Integer + Get + Return ViewState("CveSATPS").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveSATPS") = value + End Set + End Property + + Private Property Ret As String + Get + Return ViewState("Ret").ToString + End Get + Set(value As String) + ViewState("Ret") = value + End Set + End Property + Private Property Borrar As Boolean + Get + Return CBool(ViewState("Borrar")) + End Get + Set(value As Boolean) + ViewState("Borrar") = value + End Set + End Property + Public Property dtPaqueteDetalles() As DataTable + Get + Return CType(ViewState("dtPaqueteDetalles"), DataTable) + End Get + Set(value As DataTable) + ViewState("dtPaqueteDetalles") = value + End Set + End Property + Public Property DtEquivalencias() As DataTable + Get + Return CType(ViewState("DtEquivalencias"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtEquivalencias") = value + End Set + End Property + Public Property dtFamily() As DataTable + Get + Return CType(ViewState("dtFamily"), DataTable) + End Get + Set(value As DataTable) + ViewState("dtFamily") = value + End Set + End Property + + + Property CodigoBarrasCargado As String + Get + If ViewState("CodigoBarrasCargado") Is Nothing Then + Return "" + Else + Return ViewState("CodigoBarrasCargado").ToString + End If + End Get + Set(value As String) + ViewState("CodigoBarrasCargado") = value + End Set + End Property + + Public Property DtPSAdicionales() As DataTable + Get + Return CType(ViewState("DtPSAdicionales"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtPSAdicionales") = value + End Set + End Property + + Private Property CvePSAdicional As Integer + Get + Return ViewState("CvePSAdicional").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CvePSAdicional") = value + End Set + End Property + Public Property DtSeccionAlmacen() As DataTable + Get + Return CType(ViewState("DtSeccionAlmacen"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtSeccionAlmacen") = value + End Set + End Property + + +#End Region + + Private ReadOnly Property PermiteClasificacion2 As Boolean + Get + Return (UsuarioActual.CveEmpresa.Contiene(72, 80)) + End Get + End Property + + + +#Region " PROPIEDADES ECOMMERCE " + ''' + ''' Si es True existe en Eco_Produtcos + ''' + ''' + Private Property AplicaEcommerce As Boolean + Get + Return CBool(ViewState("AplicaEcommerce")) + End Get + Set(value As Boolean) + ViewState("AplicaEcommerce") = value + End Set + End Property +#End Region + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not IsPostBack Then + + InicializaValores() + If Request("CvePS") IsNot Nothing AndAlso IsNumeric(Request("CvePS")) AndAlso Request("CvePS").ToEntero > 0 Then + ViewState("CvePS") = Request("CvePS") + CargarMarcas() + + CargaDatos() + 'Configuración de Modalidad Update + BtnGuardar.Text = "Guardar Cambios" + + CargarAlias() + CargaExistencias() + CargaGvSeccionAlmacen() + Else + 'Configuración de Modalidad Insert + RegistraScript("$('#C_Tab_TabPaquetes_tab').css('display' , 'none')") + + ViewState("CvePS") = -1 + CargarMarcas() + + ChkEstado.Enabled = False + ChkEstado.Checked = True + LblFechaCaptura.Text = Now.ToShortDateString() + LblUsuarioCapturo.Text = UsuarioActual.Usuario + BtnEliminar.Visible = False + + If UsuarioActual.Empresa.Funcionalidad(543).ToString = "1" Then + Dim ObjSub As New ClsSubProyectos + Dim CveSubProyectoMatriz As Integer + + If ObjSub.GetSubProyectos() Then + CveSubProyectoMatriz = ObjSub.DtResultados.FiltroPrimeroValor("CveSubProyecto", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND TipoSucursal = 1").ToEntero + End If + + Dim ObjFolios As New ClsGralFolios() + If ObjFolios.GetFolios("PS", UsuarioActual.CveEmpresa) Then + + Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoMatriz} And Estado = 'Activo'") + If DT.Rows.Count > 0 Then + TxtCodigo.Text = DT.Rows(0)("FActual").ToString + TxtCodigo.Enabled = False + Else + Alert("No tiene registrados Folios para la sucursal matriz.", TipoMensaje.MsgAdvertencia) + End If + End If + End If + + End If + + If Request("Ret") IsNot Nothing AndAlso Request("Ret").ToString <> "" Then + Ret = Request("Ret") + End If + + 'CargaFamilia(ViewState("CveSubFamilia").ToString.ToEntero) + CargaSucursaless() + CargaImpuestosLocales() + CargaConceptoRelacionado() + + If UsuarioActual.TienePermisoProceso(122) Then + BtnEliminar.Visible = False + BtnGuardar.Visible = False + End If + + If UsuarioActual.Empresa.Funcionalidad(557) = "1" Then + DdlIVA.SelectedValueExist("-1") + DdlIVA.Attributes.Add("disabled", "disabled") + DdlIVA.Enabled = False + End If + + If CvePS > 0 Then + CargaEquivalencias() + CargaPSAdicionales() + CargaGvBitacora() + divBitacora.Visible = True + VerificaRequiereSerieLote() + End If + + If UsuarioActual.Empresa.Funcionalidad(524) <> "" Then + DivProveedorCompra.Visible = True + DivMoneda.Visible = True + End If + + UpDatos.Update() + + 'DdlClasificacion.AutoPostBack = UsuarioActual.CveEmpresa.Contiene(80, 72) + + InicializaEcommerce() + + If UsuarioActual.CveEmpresa.Contiene(141) Then + 'DivDatos.Attributes("class") = "col-md-12" + + DivDdlTipo.Visible = True + 'DdlTipoPSDes.Attributes.Add("onChange", "CreaDescripcionPS();") + + End If + + If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) And CvePS = -1 Then + 'DivDatos.Attributes("class") = "col-md-12" + TxtPS.Enabled = False + DivDdlTipo.Visible = True + DivTxtModelo.Visible = True + DivTxtAdicional.Visible = True + DdlTipoPSDes.Attributes.Add("onChange", "CreaDescripcionPS();") + DdlMarcaPSDes.Attributes.Add("onChange", "CreaDescripcionPS();") + TxtModelo.Attributes.Add("onKeyUp ", "CreaDescripcionPS();") + TxtAdicional.Attributes.Add("onKeyUp ", "CreaDescripcionPS();") + End If + + If ddlMetodos.SelectedValue.ToEntero = 5 And Not UsuarioActual.TienePermisoProceso(255) Then + ddlMetodos.Enabled = False + End If + Dim posiciontipo As String = If(UsuarioActual.Empresa.Funcionalidad(558).ToString = "1", "$('.DIVCLASIFICACIONCONTABLE').after( $('.DIVTIPO') );", "") + + LtlScripts.Text = $"" + If Not CvePS > 0 Then MuestraPanel(True) + + End If + End Sub + +#Region " INCIALIZA " + Private Sub InicializaValores() + ViewState("OrdenO") = "" + ViewState("OrdenC") = "" + ViewState("DTProductosServiciosCaracteristicas") = Nothing + ViewState("DTProductosServiciosCaracteristicasOpciones") = Nothing + ViewState("CveSubFamilia") = "-1" + Ret = "-1" + + 'CType(Me.Master, BaseMasterPage).EsPopup = True + 'CType(Me.Master, BaseMasterPage).PopupWidth = 700 + 'RegistraScript("$get('tdContenido').style.height='350px'") + + CargaClasificaciones() + CargaClasificaciones2() + CargaClasificacionesDetalles() + ClasificacionModal() + CargaTipoProductos() + CargaUnidadesMedida() + CargarMetodosInv() + 'CargaPSAdicional(DdlPSAdicional) + + 'Nuevo R: 26/09/2017 + CargaProveedores() + + CargarCompuestos() + CargaPS() + 'ChangeDdl() + CargaDdlSATPS() + CargaDdlFraccionArancelaria() + CveSATPS = -1 + + CargaCombosSeccionAlmacen() + DivSeccionAlmacen.Visible = UsuarioActual.Empresa.Funcionalidad(563).ToString = "1" + CreaDtSeccionAlmacen() + + If UsuarioActual.Empresa.UsaContabilidad Then + CargaCuentasContables() + If Not (Request("CvePS") IsNot Nothing AndAlso IsNumeric(Request("CvePS")) AndAlso Request("CvePS").ToEntero > 0) Then DivUsoClasificacion.Visible = True + End If + + 'CargaTipoServicio() + 'DivTipoServicio.Visible = False + + TxtDescripcion.Text = UCase(TxtDescripcion.Text) + + Dim objAcum As New ClsAcumuladores + If objAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then + DdlTamanio.DataSource = objAcum.DtResultados + Else + DdlTamanio.DataSource = Nothing + End If + + objAcum.Dispose() + DdlTamanio.DataBind() + + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then + DivLlantas.Visible = True + DivPSAdicionales.Visible = True + CargaPanelLlantas() + End If + + CvePSAdicional = -1 + + End Sub + + 'Private Sub CargaPSAdicional(Objeto As ADServerControl.Dropdownlost) + ' Objeto.setEsWebService(UsuarioActual.Empresa.Funcionalidad(141).ToString = "1") + ' If Not UsuarioActual.Empresa.Funcionalidad(141).ToString = "1" Then + ' Objeto.ddl.Items.Clear() + ' Objeto.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=-1, Estatus:=1, AplicaParaVenta:=1) + ' Objeto.ddl.DataBind() + ' Objeto.ddl.Items.Insert(0, New ListItem("Seleccione", "-1")) + ' Else + ' Objeto.ddlWS.Attributes.Add("data-Estatus", "1") + ' Objeto.SelectedValue = "-1" + ' Objeto.SelectedText = "Seleccione" + ' End If + 'End Sub + Private Sub CargaPanelLlantas() + Dim ObjGral As New ClsGenerales() + If ObjGral.GetModelos(UsuarioActual.CveEmpresa) Then + DdlModelo.DataSource = ObjGral.DtResultados.Copy() + End If + If ObjGral.GetMedidas(UsuarioActual.CveEmpresa) Then + DdlMedida.DataSource = ObjGral.DtResultados.Copy() + End If + If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then + DdlRin.DataSource = ObjGral.DtResultados.Copy() + End If + ObjGral.Dispose() + + DdlModelo.DataBind() + DdlMedida.DataBind() + DdlRin.DataBind() + + End Sub + + Private Sub MuestraPanel(Optional AfterPageLoad As Boolean = False) + If AfterPageLoad Then + RegistraScript("window.onload = function MuestraPanel() { document.getElementById(""C_BtnMostrarPanel"").click(); }") + End If + End Sub + + + Protected Sub BtnTipoCla_Click(sender As Object, e As EventArgs) + PresionarBotonPanel("C_BtnCerrarPanel") + DivUsoClasificacion.Visible = False + DdlUsoClasificacion.SelectedValueExist(RblTipoClasificación.SelectedValue) + CargaClasificaciones() + UpDatos.Update() + End Sub + + Private Sub PresionarBotonPanel(Boton As String) + Dim Script As String = $"document.getElementById(""{Boton}"").click();" + Dim Pag As System.Web.UI.Page = CType(System.Web.HttpContext.Current.Handler, System.Web.UI.Page) + ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), Boton, Script, True) + Pag = Nothing + End Sub +#End Region + +#Region "S U C U R S A L E S" + Private Sub CargaSucursaless() + 'Dim dtSuc As DataTable = GlobalDTSucursales().FiltraParametros("CveEmpresa = " + UsuarioActual.CveEmpresa.ToString) + 'dtSuc.AcceptChanges() + + 'dtSuc.Columns.Add("Importe") + 'dtSuc.Columns.Add("Activo") + + 'For Each row As DataRow In dtSuc.Rows + ' row("Activo") = False + 'Next + 'dtSuc.AcceptChanges() + + 'If Not ViewState("CvePS") Is Nothing Then + ' Dim ObjPS As New ClsProductosServicios + + ' If ObjPS.GetPSSucursales(CvePS) Then + ' Dim dtSucP As DataTable = ObjPS.DtResultados + + ' For Each Row As DataRow In dtSucP.Rows + ' Dim rowsToUpdate = dtSuc.AsEnumerable().Where(Function(r) r.Field(Of Integer)("CveSucursal") = Row("CveSucursal").ToString.ToEntero AndAlso r!CveSucursal.ToString.ToEntero > 0) + + ' For Each roww As DataRow In rowsToUpdate + ' roww.SetField("Importe", Row("Importe")) + ' roww.SetField("Activo", True) + ' Next + + ' 'For Each drtt As DataRow In TmpDT.Select(String.Format("PS='{0}' AND CvePS=0", Row("PS"))) + ' ' drtt("CvePS") = tCve + ' 'Next + + + ' dtSuc.AcceptChanges() + ' Next + ' End If + + ' ObjPS.Dispose() + 'End If + + 'gvSucursal.DataSource = dtSuc + 'gvSucursal.DataBind() + + Dim ObjPS As New ClsProductosServicios + + If ObjPS.GetPSSucursales(CvePS, UsuarioActual.CveEmpresa) Then + gvSucursal.DataSource = ObjPS.DtResultados + + End If + + ObjPS.Dispose() + gvSucursal.DataBind() + End Sub + + Protected Sub gvSucursal_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvSucursal.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.RowIndex = 0 Then + e.Row.Cells(0).Width = Unit.Pixel(50) + e.Row.Cells(1).Width = Unit.Pixel(100) + e.Row.Cells(2).Width = Unit.Pixel(100) + End If + + ' If e.Row.FCCheckBox("chkSucursal").Checked = True Then e.Row.Cells(0).BackColor = Drawing.Color.Yellow + End If + End Sub +#End Region + +#Region "C A R A C T E R I S T I C A S" + + Private Sub CargaCaracteristicas() + ' CargaDatosC() + CargaProductosServiciosCaracteristicas() + CambioProductosServiciosCaracteristicas(DdlCaracteristica.SelectedValue.ToEntero) + CargaDatosO() + UpDatos.Update() + UpDatosO.Update() + UpTitulosO.Update() + + End Sub + Public Sub CargaDatosO() + Dim Objeto As New ClsGenerales + If Objeto.GetCaracteristicasValores(-1, -1, CvePS, -1, -1, -1, 5, UsuarioActual.CveEmpresa, OpcionListado:=1) Then + GvDatosOpciones.DataSource = Objeto.DtResultados + End If + Objeto.Dispose() + UpDatosO.Update() + GvDatosOpciones.DataBind() + + End Sub + + + Private Sub LbAgregarO_Click(sender As Object, e As EventArgs) Handles LbAgregarO.Click + Dim Objeto As New ClsGenerales + Dim Opcion As String = If(TDTxtOpcion.Visible = True, TxtOpcion.Text, DdlOpcion.SelectedItem.Text) + Dim Opcion2 As Integer = If(TDDdlOpcion.Visible = True, DdlOpcion.SelectedValue.ToEntero, -1) + + If Objeto.AddUpdateCaracteristicasValores(DdlCaracteristica.SelectedValue.ToEntero, Opcion2, Opcion, UsuarioActual.CveUsuario, CvePs:=CvePS) Then + End If + Objeto.Dispose() + TxtOpcion.Text = "" + CargaDatosO() + UpDatosO.Update() + UpTitulosO.Update() + Alert("El valor de la caracteristica se agregó correctamente.", TipoMensaje.MsgInformacion) + End Sub + + Private Sub CargaProductosServiciosCaracteristicas() + Dim Objeto As New ClsGenerales + DdlCaracteristica.Items.Clear() + If Objeto.GetCaracteristicas(-1, 5, UsuarioActual.CveEmpresa) Then + DdlCaracteristica.DataSource = Objeto.DtResultados + End If + Objeto.Dispose() + DdlCaracteristica.DataBind() + End Sub + + Protected Sub DdlCaracteristica_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCaracteristica.SelectedIndexChanged + CambioProductosServiciosCaracteristicas(DdlCaracteristica.SelectedValue.ToEntero) + End Sub + + Protected Sub CambioProductosServiciosCaracteristicas(CveCaracteristica As Integer) + Dim Objeto As New ClsGenerales + If Objeto.GetCaracteriscasOpciones(CveCaracteristica, UsuarioActual.CveEmpresa) Then + Dim dr As DataRow = Objeto.DtResultados.FiltroPrimero(String.Format(("CveCaracteristica={0}"), CveCaracteristica)) + If dr IsNot Nothing Then + If dr("CveCaracteristicaTipo").ToString = "1" Then + DdlOpcion.Items.Clear() + DdlOpcion.DataSource = Objeto.DtResultados.FiltraParametros(String.Format(("CveCaracteristica={0}"), CveCaracteristica)) + + TDDdlOpcion.Visible = True + TDTxtOpcion.Visible = False + Else + TDTxtOpcion.Visible = True + TDDdlOpcion.Visible = False + End If + + End If + End If + Objeto.Dispose() + DdlOpcion.DataBind() + End Sub + + Protected Sub CambioProductosServiciosCaracteristicasOpciones() + UpTitulosO.Update() + End Sub +#End Region + +#Region "G V O P C I O N E S" + Protected Sub GvDatosOpciones_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatosOpciones.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.RowIndex = 0 Then + e.Row.Cells(0).Width = Unit.Pixel(150) + e.Row.Cells(1).Width = Unit.Pixel(150) + e.Row.Cells(2).Width = Unit.Pixel(100) + e.Row.Cells(3).Width = Unit.Pixel(100) + e.Row.Cells(4).Width = Unit.Pixel(50) + End If + e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left + + If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then + e.Row.FCDropDownList("DdlCaracteristicaEdit").DataSource = GlobalDTProductosServiciosCaracteristicas(UsuarioActual.CveEmpresa).FiltraParametros("CvePS = " + CvePS.ToString) + e.Row.FCDropDownList("DdlCaracteristicaEdit").DataBind() + e.Row.FCDropDownList("DdlCaracteristicaEdit").SelectedValue = e.Row.DBCampo("CvePS") + End If + End If + End Sub + Protected Sub GvDatosOpciones_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatosOpciones.RowDeleting + Dim ObjOpciones As New ClsGenerales + Dim CveCaracteristicaValor As Integer = GvDatosOpciones.Rows(e.RowIndex).DataKey("CveCaracteristicaValor").ToEntero + + If ObjOpciones.RemoveCaracteristicasValores(CveCaracteristicaValor, CvePS:=CvePS) Then + GvDatosOpciones.EditIndex = -1 + CambioProductosServiciosCaracteristicasOpciones() + CargaDatosO() + UpDatosO.Update() + Alert("La Opción para Caracteristica del Producto o Servicio se eliminó correctamente.", TipoMensaje.MsgInformacion) + End If + + ObjOpciones.Dispose() + End Sub + Protected Sub GvDatosOpciones_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvDatosOpciones.RowCancelingEdit + GvDatosOpciones.EditIndex = -1 + End Sub + Protected Sub GvDatosOpciones_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvDatosOpciones.RowUpdating + Dim ObjOpciones As New ClsGralProductosServiciosCaracteristicas + Dim CveCaracteristica As Integer = DirectCast(GvDatosOpciones.Rows(e.RowIndex).FindControl("DdlCaracteristicaEdit"), DropDownList).SelectedValue.ToEntero + Dim CveOpcion As Integer = GvDatosOpciones.DataKeys(e.RowIndex).Value.ToString.ToEntero + + Dim Opcion As String = DirectCast(GvDatosOpciones.Rows(e.RowIndex).FindControl("TxtOpcion"), TextBox).Text.Trim + + If ObjOpciones.UpdateProductosServiciosCaracteristicasOpciones(Opcion, CveCaracteristica, CveOpcion) Then + GvDatosOpciones.EditIndex = -1 + ViewState("DTProductosServiciosCaracteristicasOpciones") = ObjOpciones.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) + GlobalDTProductosServiciosCaracteristicasOpciones(UsuarioActual.CveEmpresa) = ObjOpciones.DtResultados + Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) + + CambioProductosServiciosCaracteristicasOpciones() + End If + + ObjOpciones.Dispose() + End Sub + + 'Protected Sub GvDatosOpciones_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvDatosOpciones.RowEditing + ' GvDatosOpciones.EditIndex = e.NewEditIndex + ' CargaGrid() + 'End Sub +#End Region + +#Region "O R D E N A M I E N T O" + Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) + Dim Orden As String = "" + Dim Campo As String = "" + Dim gvi As Integer = 0 + Dim Literal As Literal = Nothing + Const OrdenInicial As String = "" + Dim Arg(2) As String + + Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c) + Campo = Arg(0) + gvi = Arg(1).ToEntero + Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(", ", "_")), Literal) + Campo = Campo.Substring(0, Campo.Length - 1) + + If ViewState(String.Format("O{0}", Campo, gvi)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo, gvi)).ToString = String.Format("{0} DESC", Campo) Then + ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) + Literal.Text = String.Format("") + Else + ViewState(String.Format("O{0}", Campo, gvi)) = String.Format("{0} DESC", Campo) + Literal.Text = String.Format("") + End If + Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo, gvi)).ToString + ViewState("Orden") = Orden + End Sub + + + + 'Private Sub CargaGrid() + ' Dim Objeto As New ClsGralProductosServiciosCaracteristicas + ' If Objeto.GetPSCaracteristicas(UsuarioActual.CveEmpresa) Then + ' GvDatosCaracteristicas.DataSource = Objeto.DtResultados + ' End If + ' GvDatosCaracteristicas.DataBind() + ' Objeto.Dispose() + 'End Sub + + + +#End Region + +#Region "C A R G A S" + Private Sub ClasificacionModal() + DdlClasificacionModal.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion") + DdlClasificacionModal.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlClasificacionModal.DataBind() + UpModal.Update() + End Sub + + Private Sub CargaClasificacionesDetalles() + DdlTipoPSDes.Items.Clear() + DdlTipoPSDes.DataSource = GlobalDTClasificacionesDetalle(UsuarioActual.CveEmpresa) + 'If DdlClasificacion.SelectedValue.ToEntero > 0 Then + 'Dim ObjVenta As New ClsVentas + ' If ObjVenta.GetClasificacionDetalle(UsuarioActual.CveEmpresa, CveClasificacion:=-1) Then + ' DdlTipoPSDes.DataSource = ObjVenta.DtResultados + ' End If + ' ObjVenta.Dispose() + 'End If + DdlTipoPSDes.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlTipoPSDes.DataBind() + End Sub + Private Sub CargaClasificaciones() + DdlClasificacion.Items.Clear() + If UsuarioActual.Empresa.UsaAC Then + DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, DdlUsoClasificacion.SelectedValue.ToEntero, -1)).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") + Else + DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, DdlUsoClasificacion.SelectedValue.ToEntero, -1)).FiltraParametros("", Orderby:="Clasificacion") + End If + DdlClasificacion.Items.Insert(0, New ListItem("Seleccione", "-1")) + 'BLOQUEA DDL CLASIFICACION + If UsuarioActual.Empresa.Funcionalidad(121) = "1" Then + If Not UsuarioActual.TienePermisoProceso(147) Then + DdlClasificacion.Enabled = False + End If + End If + DdlClasificacion.DataBind() + End Sub + Private Sub CargaClasificaciones2() + DdlClasificacion2.DataSource = GlobalDTClasificaciones2(UsuarioActual.CveEmpresa) + DdlClasificacion2.DataBind() + DdlClasificacion2.Items.Insert(0, New ListItem("Sin Clasificacion", "-1")) + DdlClasificacion2.SelectedValueExist("-1") + + 'BLOQUEA DDL CLASIFICACION + If PermiteClasificacion2 Then + DivClasificacion2.Visible = True + End If + + End Sub + Private Sub CargaTipoProductos() + 'BLOQUEA DDL TIPO PRODUCTO + If UsuarioActual.Empresa.Funcionalidad(122) = "1" Then + If Not UsuarioActual.TienePermisoProceso(149) Then + DdlTipoPS.Enabled = False + DdlTipoPS.SelectedValueExist("2") + End If + End If + End Sub + Private Sub CargaConceptoRelacionado() + DdlConceptoRelacionado.DataSource = GlobalDTContaConceptosContables(-1) + DdlConceptoRelacionado.DataBind() + End Sub + Private Sub CargarMetodosInv() + ddlMetodos.DataSource = If(UsuarioActual.CveEmpresa.Contiene(72, 80), GlobalDTInvMetodosInventario.FiltraParametros("CveMetodoInventario IN (1,5)"), GlobalDTInvMetodosInventario) + ddlMetodos.DataBind() + ddlMetodos.Items.Insert(0, New ListItem("Seleccione", "-1")) + End Sub + + 'Nuevo R: 26/09/207' + Private Sub CargaProveedores() + DdlProveedor.setEsWebService(True) + 'DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) + 'DdlProveedor.DataBind() + 'DdlProveedor.Items.Insert(0, New ListItem("Seleccione", "-1")) + + DdlMoneda.DataSource = GlobalDTMonedas() + DdlMoneda.DataBind() + DdlMoneda.Items.Insert(0, New ListItem("Seleccione", "-1")) + + End Sub + + + + Private Sub CargaUnidadesMedida() + DdlUnidadMedida.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa) + DdlUnidadMedida.DataBind() + End Sub + Private Sub CargaCuentasContables() + 'Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa.ServerContPAQi, UsuarioActual.Empresa.BDContPAQi, UsuarioActual.Empresa.UsrContPAQi, UsuarioActual.Empresa.PwdContPAQi) + 'If ObjContabilidad.GetCuentas(-1, "-1", -1) Then + ' DdlCtaContableVentas.DataSource = ObjContabilidad.DtResultados + ' DdlCtaContableCompras.DataSource = ObjContabilidad.DtResultados + ' DdlCtaContableInventarios.DataSource = ObjContabilidad.DtResultados + 'Else + ' DdlCtaContableVentas.DataSource = Nothing + ' DdlCtaContableCompras.DataSource = Nothing + ' DdlCtaContableInventarios.DataSource = Nothing + 'End If + 'DdlCtaContableVentas.DataBind() + 'DdlCtaContableCompras.DataBind() + 'DdlCtaContableInventarios.DataBind() + 'ObjContabilidad.Dispose() + End Sub + Private Sub CargaDatos() + Dim ObjProductosServicios As New ClsProductosServicios() + If ObjProductosServicios.GetPS(CvePS, -1, UsuarioActual.CveEmpresa) Then + If ObjProductosServicios.DtResultados.Rows.Count > 0 Then + + 'SI NO TIENE VALOR Y NO TIENE EL PROCESO MUESTRA SIN CLASIFICACION + If ObjProductosServicios.CveClasificacion.ToString.Equals("-1") And Not UsuarioActual.TienePermisoProceso(147) And UsuarioActual.Empresa.Funcionalidad(121) = "1" Then + DdlClasificacion.SelectedValueExist("0") + Else + DdlClasificacion.SelectedValueExist(ObjProductosServicios.CveClasificacion.ToString) + End If + CargaClasificacionesDetalles() + DdlClasificacion2.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveClasificacion2").ToString) + DdlCompuesto.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveCompuesto").ToString) + 'SI ES NUEVO TIPO = PRODUCTO Y SI NO TIENE PROCESO NO PUEDO EDITAR + If ObjProductosServicios.CveTipoPS.ToString.Equals("-1") And Not UsuarioActual.TienePermisoProceso(149) And UsuarioActual.Empresa.Funcionalidad(122) = "1" Then + DdlTipoPS.SelectedValueExist("2") + Else + DdlTipoPS.SelectedValueExist(ObjProductosServicios.CveTipoPS.ToString) + End If + + 'If ObjProductosServicios.CveTipoPS = 1 Then + ' DivTipoServicio.Visible = True + ' DdlTipoServicio.SelectedValueExist(ObjProductosServicios.Estado2.ToString) + + ' If Not DdlTipoServicio.SelectedValue.ToEntero > 0 Then + ' DdlTipoServicio.Items.Insert(1, New ListItem(If(ObjProductosServicios.Estado2 = 1, "General", "Maquinaria"), ObjProductosServicios.Estado2.ToString)) + ' DdlTipoServicio.SelectedValueExist(ObjProductosServicios.Estado2.ToString) + ' End If + 'End If + If ObjProductosServicios.CveSATPS.ToString <> Nothing Then + DdlSATPS.SelectedValue = ObjProductosServicios.CveSATPS.ToString + DdlSATPS.SelectedText = $"{ObjProductosServicios.SATClavePS} - {ObjProductosServicios.SATDescripcion}" + CveSATPS = ObjProductosServicios.CveSATPS + End If + If ObjProductosServicios.CveFraccionArancelaria.ToString <> Nothing Then + DdlFraccionArancelaria.SelectedValue = ObjProductosServicios.CveFraccionArancelaria.ToString + DdlFraccionArancelaria.SelectedText = ObjProductosServicios.ClaveSATFraccionArancelariaDescripcion + End If + If ObjProductosServicios.ClaveSATUnidadAduanaDescripcion.ToString <> Nothing Then + LblUnidadAduana.Text = ObjProductosServicios.ClaveSATUnidadAduanaDescripcion.ToString + End If + DdlTipoPSDes.SelectedValueExist(ObjProductosServicios.CveClasificacionDetalle.ToString) + DdlUnidadMedida.SelectedValue = ObjProductosServicios.CveUnidadMedida.ToString + DdlMarca.SelectedValue = ObjProductosServicios.CveMarca.ToString + DdlMarcaPSDes.SelectedValue = ObjProductosServicios.CveMarca.ToString + TxtCodigo.Text = ObjProductosServicios.Codigo + 'TxtCodigo2.Text = ObjProductosServicios.Codigo2 + TxtCodigoBarras.Text = ObjProductosServicios.CodigoBarras + CodigoBarrasCargado = ObjProductosServicios.CodigoBarras + + TxtPS.Text = ObjProductosServicios.PS + TxtPrecio.Text = ObjProductosServicios.Precio.ToString("F4") 'no usa N4, porque pone comma + TxtPrecioMinimo.Text = ObjProductosServicios.PrecioMinimo.ToString("F4") + + DdlTipoFactor.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTipoFactor").ToString) + + If ObjProductosServicios.DtResultados.Rows(0)("CveTipoFactor").ToString.Contiene("1", "2") Then + LIva.Visible = True + DdlIVA.Visible = True + DdlIVA.Width = New Unit("163px") + Else + DdlIVA.Visible = False + DdlIVA.Visible = False + End If + DdlIVA.SelectedValueExist(ObjProductosServicios.IVA.ToString) + + + LblCostoPromedio.Text = ObjProductosServicios.DtResultados.Rows(0)("CostoPromedio").ToString.FormatoNumero + LblUltimoCosto.Text = ObjProductosServicios.DtResultados.Rows(0)("UltimoCosto").ToString.FormatoNumero + LblFechaUltimaCompra.Text = ObjProductosServicios.DtResultados.Rows(0)("FechaUltimaCompra").ToString + HplKardex.NavigateUrl = $"/Inventarios/Kardex.aspx?CvePS={CvePS}" + + TxtRetIVA.Text = (ObjProductosServicios.RetIVA * 100).ToString + ChkEstado.Checked = ObjProductosServicios.Estado + LblFechaCaptura.Text = ObjProductosServicios.Fecha.ToShortDateString + LblUsuarioCapturo.Text = ObjProductosServicios.Usuario + If ObjProductosServicios.CveUsuarioModifico > 0 Then + LblFechaModificacion.Text = ObjProductosServicios.FechaUltimaModificacion.ToString + LblUsuarioModifico.Text = ObjProductosServicios.UsuarioModifico + End If + 'ChkAplicaParaConcepto.Checked = ObjProductosServicios.AplicaParaConcepto + ChkAplicaParaVenta.Checked = ObjProductosServicios.AplicaParaVenta + lbTitulo.Text = $"{lbTitulo.Text}{ObjProductosServicios.PS}" + LtProductoUnificar.Text = ObjProductosServicios.PS + ddlMetodos.SelectedValue = ObjProductosServicios.CveMetodoInventario.ToString + TxtAlmacenSeccion.Text = ObjProductosServicios.AlmacenSeccion.ToString + DdlConceptoRelacionado.SelectedValueExist(ObjProductosServicios.CveConceptoContable.ToString) + + DdlProveedor.SelectedValue = ObjProductosServicios.CveProveedorCompra.ToString + DdlProveedor.SelectedText = ObjProductosServicios.ProveedorCompra + + DdlProveedor.txtText.Value = ObjProductosServicios.ProveedorCompra + DdlProveedor.txtValue.Value = ObjProductosServicios.CveProveedorCompra.ToString + + ChkInventariable.Checked = ObjProductosServicios.Inventariable + TxtVentaMinima.Text = ObjProductosServicios.VentaMinima.ToString + DdlMoneda.SelectedValueExist(ObjProductosServicios.CveMoneda) + TxtRetISR.Text = (ObjProductosServicios.RetISR * 100).ToString + + DdlTamanio.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTamaño").ToString) + + DdlModelo.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveModelo").ToString) + DdlMedida.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveMedida").ToString) + DdlRin.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveRinTamaño").ToString) + + 'If ObjProductosServicios.CvePSAdicional > 0 Then + ' DdlPSAdicional.SelectedValue = ObjProductosServicios.CvePSAdicional.ToString + ' DdlPSAdicional.SelectedText = ObjProductosServicios.PSCodigoAdicional + 'Else + ' DdlPSAdicional.SelectedValue = "-1" + ' DdlPSAdicional.SelectedText = "Seleccione" + 'End If + + Try + DdlClasificacion_SelectedIndexChanged(DdlClasificacion, Nothing) + Catch ex As Exception + + End Try + + ChkAplicaIeps.Checked = ObjProductosServicios.AplicaIEPS + If ObjProductosServicios.AplicaIEPS = True Then + DdlIEPSPorcentaje.Enabled = True + DdlIEPSPorcentaje.SelectedValue = ObjProductosServicios.IEPSPorcentaje.ToString("N2") + ChkIepsIVA.Enabled = True + ChkIepsIVA.Checked = ObjProductosServicios.IEPSGrabaIVA + End If + + DdlImpTipoProducto.SelectedValueExist(ObjProductosServicios.ClaveImpuestoTipoProducto) + CargaClaveGenerica(DdlImpTipoProducto.SelectedValue) + DdlImpEmpaque.SelectedValueExist(ObjProductosServicios.ClaveImpuestoEmpaque) + DdlImpUM.SelectedValueExist(ObjProductosServicios.ClaveImpuestoUnidadMedida) + DdlCategoriaToxicidad.SelectedValueExist(ObjProductosServicios.ClaveCategoriaToxicidad) + + 'If ObjProductosServicios.CveMetodoInventario = 0 Then ddlMetodos.SelectedValue = UsuarioActual.Empresa.CveMetodoInventario.ToString + + ViewState("CveSubFamilia") = ObjProductosServicios.DtResultados.Rows(0)("CveSubFamilia") + + CargaCaracteristicas() + + LnkUnificar.Visible = True + ChkEsOutSourcing.Checked = ObjProductosServicios.EsOutSourcing + Else + Alert("El Producto o Servicio Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) + RegistraScript("$('#C_Tab_TabPaquetes_tab').css('display' , 'none')") + BtnGuardar.Enabled = False + End If + End If + + If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then + gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados + dtPaqueteDetalles = ObjProductosServicios.DtResultados + + End If + ObjProductosServicios.Dispose() + gvPaqueteDetalle.DataBind() + End Sub + Protected Sub CargarAlias() + Dim ObjAlias As New ClsProductosServicios + ObjAlias.GetPSAlias(CvePS, UsuarioActual.CveEmpresa) + GVAlias.DataSource = ObjAlias.DtResultados + ObjAlias.Dispose() + GVAlias.DataBind() + End Sub + + Public Sub CargaDdlSATPS() + DdlSATPS.setEsWebService(True) + DdlSATPS.Attributes.Add("data-metodo", "getpssat") + End Sub + + Public Sub CargaDdlFraccionArancelaria() + DdlFraccionArancelaria.setEsWebService(True) + DdlFraccionArancelaria.Attributes.Add("data-metodo", "getfraccionarancelaria") + End Sub + Private Sub VerificaRequiereSerieLote() + If UsuarioActual.CveEmpresa.Contiene(80, 72) And DdlClasificacion.SelectedIndex > 0 Then + Dim RequireSerieLote As Integer = (GlobalDTClasificaciones(UsuarioActual.CveEmpresa, -1).FiltraParametros("CveClasificacion=" & DdlClasificacion.SelectedValue.ToString))(0)("RequiereSerieLote").ToString.ToEntero + If RequireSerieLote = 1 Then + RfvddlMetodos.Enabled = True + Else + RfvddlMetodos.Enabled = False + End If + Else + RfvddlMetodos.Enabled = False + End If + UpMetodos.Update() + End Sub + +#End Region + + '#Region "Familias" + ' Protected Sub DdlFamilia_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlFamilia.SelectedIndexChanged + ' CargaDdlSubFamilia() + ' DdlSubFamilia.SelectedValue = "-1" + ' End Sub + ' Public Sub CargaFamilia(Optional CveSubFamilia As Integer = 0) + ' dtFamily = GlobalDTSubFamilias(UsuarioActual.CveEmpresa) + ' CargaDdlFamilia() + ' If dtFamily.FiltraParametros(String.Format("CveClasificacion={0}", CveSubFamilia)).Rows.Count > 0 Then + ' DdlFamilia.SelectedValue = dtFamily.FiltraParametros(String.Format("CveClasificacion={0}", CveSubFamilia)).Rows(0)("CveCategoria").ToString + ' End If + ' CargaDdlSubFamilia() + + ' If CveSubFamilia > 0 Then + ' DdlSubFamilia.SelectedValue = CveSubFamilia.ToString + ' End If + ' End Sub + ' Public Sub CargaDdlFamilia() + ' ' Alert( GlobalDTFamilias(UsuarioActual.CveEmpresa).Rows.Count.ToString()) + ' DdlFamilia.DataSource = GlobalDTFamilias(UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'Activo'") + ' DdlFamilia.DataBind() + ' End Sub + ' Public Sub CargaDdlSubFamilia() + ' DdlSubFamilia.DataSource = dtFamily.FiltraParametros(String.Format("CveCategoria={0}", DdlFamilia.SelectedValue), "Clasificacion") + ' DdlSubFamilia.DataBind() + ' DdlSubFamilia.Items.Insert(0, New ListItem("----", "-1")) + ' End Sub + ' Private Function isWhitFamily() As Boolean + ' Return (UsuarioActual.CveEmpresa = 66) + ' End Function + '#End Region + +#Region " TIPO SERVICIO " + 'Public Sub CargaTipoServicio() + + ' 'GENERAL + ' If UsuarioActual.TienePermisoProceso(150) Then + ' DdlTipoServicio.Items.Insert(1, New ListItem("General", "1")) + ' DdlTipoServicio.SelectedValueExist(1) + ' End If + + ' 'MAQUINARIA + ' If UsuarioActual.TienePermisoProceso(151) Then + ' DdlTipoServicio.Items.Insert(1, New ListItem("Maquinaria", "2")) + ' DdlTipoServicio.SelectedValueExist(2) + ' End If + + ' If UsuarioActual.TienePermisoProceso(150) And UsuarioActual.TienePermisoProceso(151) Then + ' DdlTipoServicio.SelectedValueExist(-1) + ' End If + + 'End Sub + 'Private Sub DdlTipoPS_SelectedIndexChanged(sender As Object, e As EventArgs) ' Handles DdlTipoPS.SelectedIndexChanged + ' If UsuarioActual.TienePermisoProceso(150) And UsuarioActual.TienePermisoProceso(151) Then + + ' If DdlTipoPS.SelectedValue.ToEntero = 1 Then + ' DivTipoServicio.Visible = True + ' End If + + ' If DdlTipoPS.SelectedValue.ToEntero = 2 Then + ' DivTipoServicio.Visible = False + ' End If + ' End If + + ' UPPCostos.Update() + ' UpDatos.Update() + + 'End Sub +#End Region + +#Region " PAQUETES " + + Protected Sub BtnCargaPSPaquetes_Click(sender As Object, e As EventArgs) + If BtnCargaPSPaquetes.CommandArgument.ToEntero > 0 Then + CargaPS() + BtnCargaPSPaquetes.CommandArgument = "1" + End If + End Sub + Private Sub CargaPS() + 'RMF 2017.09.13, ajuste asume siempre que use el webservice + 'DdlProductows.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + DdlProductows.setEsWebService(True) + If Not DdlProductows.UsaWebService AndAlso CType(DdlProductows.DataSource, DataTable) Is Nothing AndAlso GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) IsNot Nothing Then + DdlProductows.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) + DdlProductows.DataBind() + End If + + ElProductoChange() + End Sub + Protected Sub DdlProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlProductows.selectedindexchange + ElProductoChange() + End Sub + Private Sub ElProductoChange() + ddlUnidad.Items.Clear() + ddlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProductows.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) + ddlUnidad.DataBind() + UpDatos.Update() + End Sub + +#Region "GV PAQUETE DETALLE" + Protected Sub gvPaqueteDetalle_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvPaqueteDetalle.RowDataBound + If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then + e.Row.FCDropDownList("ddlEUnidad").DataSource = GlobalDTUnidadesMedida() + e.Row.FCDropDownList("ddlEUnidad").SelectedValue = e.Row.DBCampo("CveUnidadMedida") + e.Row.FCDropDownList("ddlEUnidad").DataBind() + End If + End Sub + Protected Sub gvPaqueteDetalle_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles gvPaqueteDetalle.RowDeleting + Dim ObjProductosServicios As New ClsProductosServicios + Dim tipo As Integer = 0 + If dtPaqueteDetalles.Rows.Item(e.RowIndex)("Tipo").ToString = "Paquete" Then + tipo = 1 + Else + tipo = 2 + End If + If ObjProductosServicios.DeletePaqueteDetalle(dtPaqueteDetalles.Rows.Item(e.RowIndex)("CvePSPaquete").ToString.ToEntero, + dtPaqueteDetalles.Rows.Item(e.RowIndex)("CvePS").ToString.ToEntero, + dtPaqueteDetalles.Rows.Item(e.RowIndex)("Cantidad").ToString.ToDouble, + tipo, + dtPaqueteDetalles.Rows.Item(e.RowIndex)("CveUnidadMedida").ToString.ToEntero) Then + + If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then + gvPaqueteDetalle.EditIndex = -1 + gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados + dtPaqueteDetalles = ObjProductosServicios.DtResultados + gvPaqueteDetalle.DataBind() + End If + End If + ObjProductosServicios.Dispose() + End Sub + Protected Sub gvPaqueteDetalle_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles gvPaqueteDetalle.RowEditing + gvPaqueteDetalle.EditIndex = e.NewEditIndex + gvPaqueteDetalle.DataSource = dtPaqueteDetalles + gvPaqueteDetalle.DataBind() + End Sub + Protected Sub gvPaqueteDetalle_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles gvPaqueteDetalle.RowCancelingEdit + gvPaqueteDetalle.EditIndex = -1 + gvPaqueteDetalle.DataSource = dtPaqueteDetalles + gvPaqueteDetalle.DataBind() + End Sub + Protected Sub gvPaqueteDetalle_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles gvPaqueteDetalle.RowUpdating + Dim ObjProductosServicios As New ClsProductosServicios + If ObjProductosServicios.UpdatePaqueteDetalle(CvePS, + dtPaqueteDetalles.Rows.Item(e.RowIndex)("CvePS").ToString.ToEntero, + DirectCast(gvPaqueteDetalle.Rows(e.RowIndex).FindControl("txtECantidad"), TextBox).Text.ToDouble, + DirectCast(gvPaqueteDetalle.Rows(e.RowIndex).FindControl("ddlETipo"), DropDownList).SelectedValue.ToEntero, + DirectCast(gvPaqueteDetalle.Rows(e.RowIndex).FindControl("ddlEUnidad"), DropDownList).SelectedValue.ToEntero, UsuarioActual.CveUsuario) Then + If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then + gvPaqueteDetalle.EditIndex = -1 + gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados + dtPaqueteDetalles = ObjProductosServicios.DtResultados + gvPaqueteDetalle.DataBind() + End If + End If + ObjProductosServicios.Dispose() + End Sub +#End Region + +#End Region + + +#Region "BTN'S" + Protected Sub BtnEliminar_Click(sender As Object, e As System.EventArgs) Handles BtnEliminar.Click + 'Dim CerrarVentana As String = "opener.location.reload();window.close();" + 'If Request("Popup") IsNot Nothing Then CerrarVentana = "self.parent.tb_remove();self.parent.location.reload();window.close();" + RegistraScript(String.Format("$('#{0}').modal('show');", "divDescripcion")) + + End Sub + Protected Sub btguardar_Click(sender As Object, e As EventArgs) Handles btguardar.Click + Dim ObjProductosServicios As New ClsProductosServicios + If ObjProductosServicios.AddPaqueteDetalle(CvePS, DdlProductows.SelectedValue.ToEntero, txtCantidad.Text.ToDouble, ddlTipo.SelectedValue.ToEntero, ddlUnidad.SelectedValue.ToEntero, UsuarioActual.CveUsuario) Then + + If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then + gvPaqueteDetalle.EditIndex = -1 + gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados + gvPaqueteDetalle.DataBind() + + End If + + txtCantidad.Text = "" + DdlProductows.ddl.SelectedIndex = 0 + ddlUnidad.SelectedIndex = 0 + ddlTipo.SelectedIndex = 0 + End If + ObjProductosServicios.Dispose() + UpDatos.Update() + End Sub + Protected Sub BtnGuardar_Click(sender As Object, e As System.EventArgs) Handles BtnGuardar.Click + + + If TxtPS.Text.Trim.Length = 0 Or DdlTipoPS.SelectedValue.ToEntero <= 0 Or DdlUnidadMedida.SelectedValue.ToEntero <= 0 Or DdlClasificacion.SelectedValue.ToEntero <= 0 Then + Alert("Los campos Producto/Servicio, Tipo, Unidad de medida, Clasificación Contable son requeridos por favor ingreselos.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim CveClasificacion2 As Integer = DdlClasificacion2.SelectedValue.ToEntero + + If (TxtCodigo.Text = TxtCodigoBarras.Text AndAlso TxtCodigo.Text <> "") Then + Alert("Los codigos no pueden ser iguales. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Return + End If + + 'If DdlSubFamilia.SelectedValue = "-1" AndAlso UsuarioActual.TienePermisoProceso(138) Then + ' Alert("Se debe especificar Familia y Subfamilia de Costos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + 'End If + + If UsuarioActual.Empresa.Funcionalidad(265) = "1" And TxtCodigo.Text = "" Then + Alert("El codigo es requerido.", TipoMensaje.MsgAdvertencia) + Return + End If + + If TxtCodigo.Text <> "" AndAlso Not TxtCodigo.Text.Length >= 3 Then + Alert("El codigo tiene que que tener una longitud de al menos 3 digitos.", TipoMensaje.MsgAdvertencia) + Return + End If + + Dim ObjProductosServicios As New ClsProductosServicios() + Dim ObjInv As New ClsInventarios(ObjProductosServicios.IniciaTransacSQL()) + + Dim TieneError = False + Dim AccionJS = "" + Dim EsPaquete As Integer = If(gvPaqueteDetalle.Rows.Count = 0, 0, 1) + Dim CveMetodoInv As Integer = If(UsuarioActual.Empresa.UsaInventarios, ddlMetodos.SelectedValue.ToEntero, -1) + + + Dim CveProveedor As Integer = -1 + If DdlProveedor.txtValue.Value.ToEntero > 0 Then + CveProveedor = DdlProveedor.txtValue.Value.ToEntero + End If + + Dim CveMarca As Integer = 0 + If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then CveMarca = DdlMarcaPSDes.SelectedValue.ToEntero Else CveMarca = DdlMarca.SelectedValue.ToEntero + + If CvePS = -1 Then + Dim PSS As String = TxtPS.Text.Trim.Replace("|", "") + If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper + If ObjProductosServicios.AddPS(DdlClasificacion.SelectedValue.ToEntero, -1, DdlUnidadMedida.SelectedValue.ToEntero, TxtCodigo.Text.Trim, "", TxtCodigoBarras.Text.Trim, PSS, + TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True, + ChkAplicaParaVenta.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveMetodoInv, EsPaquete, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, + FuePorXML:=False, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim, + AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero, + CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToDecimal, + CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal, + CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero, + CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=DdlTamanio.SelectedValue.ToEntero, + CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(), + ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, + ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked) > 0 Then + ViewState("CvePS") = ObjProductosServicios.CvePS + For Each GVR As GridViewRow In GvImpuestosLocales.Rows + If GVR.FCCheckBox("ChkDeduccion").Checked Then + ObjProductosServicios.AddPSImpuestosLocales(CvePS, GVR.DataKey("CveImpuestoLocal").ToEntero) + End If + Next + 'Alert("El Producto o Servicio se guardó correctamente.", TipoMensaje.MsgInformacion, "document.location.href= "" / ProductosServicios.aspx?CvePS=" & ObjProductosServcios.CvePS.ToString & """;") + AccionJS = "document.location.href=""/Ventas/CatPS.aspx"";" + + + If Not TieneError Then + For Each Dr As DataRow In DtSeccionAlmacen.Rows + If Dr("CveAlmacen").ToString.ToEntero > 0 Then + If Not ObjInv.AddProductosServiciosAlmacenSeccion(CvePS, Dr("CveAlmacen").ToString.ToEntero, Dr("CveAlmacenSeccion").ToString.ToEntero) Then + TieneError = True + End If + End If + Next + End If + + Else + TieneError = True + Alert("Ocurrió un Error al agregar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + Else + + If CodigoBarrasCargado.Length > 0 And TxtCodigoBarras.Text.Length = 0 Then + TxtCodigoBarras.Text = CodigoBarrasCargado + End If + + Dim PSS As String = TxtPS.Text.Trim.Replace("|", "") + If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper + + If ObjProductosServicios.UpdatePS(DdlClasificacion.SelectedValue.ToEntero, -1, DdlUnidadMedida.SelectedValue.ToEntero, TxtCodigo.Text.Trim, "", TxtCodigoBarras.Text.Trim, PSS, + TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True, + ChkAplicaParaVenta.Checked, ChkEstado.Checked, UsuarioActual.CveUsuario, CvePS, CveMetodoInv, EsPaquete, DdlSATPS.SelectedValue.ToEntero, + CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim, + AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero, + CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToDecimal, + CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal, + CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero, + CveUsuarioModifico:=UsuarioActual.CveUsuario, CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=DdlTamanio.SelectedValue.ToEntero, + CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(), + ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, + ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked) Then + + If Not ObjProductosServicios.LimpiaImpuestosLocales(CvePS) Then + TieneError = True + Alert("Ocurrió un Error al regenerar los impuestos locales. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + + If Not TieneError Then + For Each GVR As GridViewRow In GvImpuestosLocales.Rows + If GVR.FCCheckBox("ChkDeduccion").Checked Then + If Not ObjProductosServicios.AddPSImpuestosLocales(CvePS, GVR.DataKey("CveImpuestoLocal").ToEntero) Then + TieneError = True + Alert("Ocurrió un Error al agregar los impuestos locales. Por favor vuelva a intentar.", TipoMensaje.MsgError) + Exit For + End If + End If + Next + End If + + AccionJS = If(Ret = "Comp", "ircompras();", "document.location.href=""/Ventas/CatPS.aspx"";") + 'UpDatos.Update() + 'Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion, AccionJS) + + If Not TieneError Then + For Each Dr As DataRow In DtSeccionAlmacen.Rows + If Dr("CveAlmacen").ToString.ToEntero > 0 AndAlso Not Dr("CvePSAlmacenSeccion").ToString.ToEntero > 0 Then + If Not ObjInv.AddProductosServiciosAlmacenSeccion(CvePS, Dr("CveAlmacen").ToString.ToEntero, Dr("CveAlmacenSeccion").ToString.ToEntero) Then + TieneError = True + End If + ElseIf Not Dr("CveAlmacen").ToString.ToEntero > 0 AndAlso Dr("CvePSAlmacenSeccion").ToString.ToEntero > 0 Then + If Not ObjInv.RemoveProductosServiciosAlmacenSeccion(Dr("CvePSAlmacenSeccion").ToString.ToEntero) Then + TieneError = True + End If + End If + Next + End If + + + Else + TieneError = True + Alert("Ocurrió un Error al actualizar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + ObjProductosServicios.CvePS = CvePS + End If + + If ObjProductosServicios.CvePS > 0 And Not TieneError Then + For i As Integer = 0 To gvSucursal.Rows.Count - 1 + If gvSucursal.Rows(i).FCCheckBox("chkSucursal").Checked = False Then + If Not ObjProductosServicios.RemovePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero) Then + TieneError = True + Alert("Ocurrió un Error al eliminar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError) + Exit For + End If + Else + If gvSucursal.Rows(i).FCHiddenField("hdnEnBD").Value.ToEntero = 1 Then + 'Actualizarlo + If Not ObjProductosServicios.UpdatePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMaximo").Text.ToDouble, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal) Then + TieneError = True + Alert("Ocurrió un Error al actualizar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError) + Exit For + End If + 'ObjProductosServicios.UpdatePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCHiddenField("hdnCveSucursal").Value.ToEntero, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, UsuarioActual.CveUsuario) + Else + 'Insertarlo + 'ObjProductosServicios.AddPSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCHiddenField("hdnCveSucursal").Value.ToEntero, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, UsuarioActual.CveUsuario) + If Not ObjProductosServicios.AddPSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMaximo").Text.ToDouble, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal) Then + TieneError = True + Alert("Ocurrió un Error al agregar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError) + Exit For + End If + End If + End If + Next + End If + + + If ObjProductosServicios.CvePS > 0 And Not TieneError Then + TieneError = GuardaEcommerce() + End If + + + If Not TieneError Then + ObjProductosServicios.Commit() + Alert("El Producto/Servicio se guardo correctamente.", TipoMensaje.MsgInformacion, AccionJS) + Else + ObjProductosServicios.RollBack() + End If + + ObjProductosServicios.Dispose() + + RecargaGlobal() + End Sub + Protected Sub HFProducto_ValueChanged(sender As Object, e As EventArgs) Handles HFProducto.ValueChanged + ddlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(HFProducto.Value.ToEntero, -1, UsuarioActual.CveEmpresa) + ddlUnidad.DataBind() + End Sub + Protected Sub LbAgregar_Click(sender As Object, e As System.EventArgs) Handles LbAgregar.Click + Dim ObjAliasAdd As New ClsProductosServicios + Dim TieneError = False + + If ObjAliasAdd.AddPSAlias(TxtAlias.Text.ToString, CvePS, UsuarioActual.CveUsuario) Then + CargarAlias() + UPGVAlias.Update() + Alert("Alias " + TxtAlias.Text + " agregado.", TipoMensaje.MsgInformacion) + TxtAlias.Text = "" + Else + TieneError = True + End If + ObjAliasAdd.Dispose() + + If Not TieneError Then + RecargaGlobal() + End If + End Sub +#End Region + +#Region "G L O B L A L" + Private Sub RecargaGlobal() + 'Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalDT) + 'Hilo.Start() + GeneraGlobalDT() + End Sub + Private Sub GeneraGlobalDT() + + GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) = Nothing + GlobalDTProductosServiciosAlias(UsuarioActual.CveEmpresa) = Nothing + GlobalDTImpuestosLocales(-1, UsuarioActual.CveEmpresa) = Nothing + GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = Nothing + GlobalDTPSAdicionales(-1, UsuarioActual.CveEmpresa) = Nothing + + 'Dim ObjPS As New ClsProductosServicios + + 'If ObjPS.GetPSSimplificado(UsuarioActual.CveEmpresa) Then Application(String.Format("GlobalDTPSSimplificado{0}", UsuarioActual.CveEmpresa)) = ObjPS.DtResultados.AsEnumerable() + + ''If ObjPS.GetPSAlias(-1, UsuarioActual.CveEmpresa) Then + ' GlobalDTProductosServiciosAlias(UsuarioActual.CveEmpresa) = ObjPS.DtResultados + 'End If + + 'If ObjPS.GetPSImpuestosLocales(-1, UsuarioActual.CveEmpresa) Then + ' GlobalDTImpuestosLocales(-1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados + 'End If + + 'If ObjPS.GetPSEquivalencias(-1, UsuarioActual.CveEmpresa) Then + ' GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados + 'End If + + 'If ObjPS.GetPSAdicionales(-1, UsuarioActual.CveEmpresa) Then + ' GlobalDTPSAdicionales(-1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados + 'End If + + 'ObjPS.Dispose() + End Sub + +#End Region + +#Region "GV ALIAS" + Protected Sub GVAlias_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GVAlias.RowDeleting + Dim ObjAliasDelete As New ClsProductosServicios + Dim TieneError = False + + If ObjAliasDelete.RemovePSAlias(GVAlias.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero, GVAlias.Rows(e.RowIndex).DataKey("PSAlias").ToString) Then + GVAlias.EditIndex = -1 + CargarAlias() + UPGVAlias.Update() + Alert("El Alias ha sido Eliminado", TipoMensaje.MsgInformacion) + Else + Alert("Error al Eliminar", TipoMensaje.MsgError) + TieneError = True + End If + ObjAliasDelete.Dispose() + + If Not TieneError Then + RecargaGlobal() + End If + End Sub +#End Region + +#Region " EQUIVALENCIAS " + Private Sub CargaEquivalencias() + + DivEquivalencia.Visible = True + + Dim ObjProductosServicios As New ClsProductosServicios() + If ObjProductosServicios.GetPSEquivalencias(CvePS, UsuarioActual.CveEmpresa) Then + DtEquivalencias = ObjProductosServicios.DtResultados + Else + DtEquivalencias = Nothing + End If + ObjProductosServicios.Dispose() + + CargaGvEquivalencias() + + End Sub + Private Sub RecargaGlobalEquivalencias() + 'Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalEquivalencias) + 'Hilo.Start() + GeneraGlobalEquivalencias() + End Sub + Private Sub GeneraGlobalEquivalencias() + GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = Nothing + 'Dim ObjPS = New ClsProductosServicios + 'If ObjPS.GetPSEquivalencias(-1, -1) Then + ' GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados + 'End If + 'ObjPS.Dispose() + End Sub + Private Sub CargaGvEquivalencias() + If DtEquivalencias IsNot Nothing Then + GvEquivalencia.DataSource = DtEquivalencias + End If + GvEquivalencia.DataBind() + UpEquivalencias.Update() + End Sub + Private Sub GvEquivalencia_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEquivalencia.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + + If e.Row.DBCampo("UnidadBase") = "True" Then + e.Row.FCLinkButton("imgR").Visible = False + End If + + If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then + If e.Row.DBCampo("UnidadBase") = "True" Then + 'e.Row.FCCheckBox("ChkBase").Checked = True + End If + End If + + End If + End Sub + Protected Sub GvEquivalencia_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvEquivalencia.RowEditing + GvEquivalencia.EditIndex = e.NewEditIndex + CargaGvEquivalencias() + End Sub + Protected Sub GvEquivalencia_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvEquivalencia.RowCancelingEdit + GvEquivalencia.EditIndex = -1 + CargaGvEquivalencias() + End Sub + Private Sub GvEquivalencia_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvEquivalencia.RowUpdating + Dim TieneError = False + + Dim CveUM = GvEquivalencia.Rows(e.RowIndex).DataKey("CveUM").ToEntero + Dim UnidadBase = GvEquivalencia.Rows(e.RowIndex).DataKey("UnidadBase").ToString = "True" + Dim Cantidad = DirectCast(GvEquivalencia.Rows(e.RowIndex).FindControl("TxtCantidadEquivalencia"), TextBox).Text.Trim.ToDecimal + + Dim ObjProductosServicios As New ClsProductosServicios() + If Not ObjProductosServicios.UpdatePSEquivalencias(CvePS, CveUM, Cantidad, UnidadBase, 0, UsuarioActual.CveUsuario) Then + TieneError = True + End If + ObjProductosServicios.Dispose() + + If Not TieneError Then + Alert("La equivalencia se actualizó correctamente.", TipoMensaje.MsgInformacion) + GvEquivalencia.EditIndex = -1 + CargaEquivalencias() + CargaGvEquivalencias() + RecargaGlobalEquivalencias() + Else + Alert("ocurrió un error al actualizar la equivalencia.", TipoMensaje.MsgError) + End If + + End Sub + Private Sub GvEquivalencia_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvEquivalencia.RowDeleting + Dim TieneError = False + + Dim CveUM = GvEquivalencia.Rows(e.RowIndex).DataKey("CveUM").ToEntero + + Dim ObjProductosServicios As New ClsProductosServicios() + If Not ObjProductosServicios.RemovePSEquivalencias(CvePS, CveUM) Then + TieneError = True + End If + ObjProductosServicios.Dispose() + + If Not TieneError Then + Alert("La equivalencia se eliminó correctamente.", TipoMensaje.MsgInformacion) + CargaEquivalencias() + CargaGvEquivalencias() + RecargaGlobalEquivalencias() + Else + Alert("ocurrió un error al eliminar la equivalencia.", TipoMensaje.MsgError) + End If + + End Sub + +#End Region + +#Region "PS ADICIONALES" + + Private Sub CargaPSAdicionales() + + Dim ObjProductosServicios As New ClsProductosServicios() + If ObjProductosServicios.GetPSAdicionales(CvePS, UsuarioActual.CveEmpresa) Then + DtPSAdicionales = ObjProductosServicios.DtResultados + Else + DtPSAdicionales = Nothing + End If + ObjProductosServicios.Dispose() + + CargaGvPSAdicionales() + + End Sub + Private Sub CargaGvPSAdicionales() + If DtPSAdicionales IsNot Nothing Then + GvPSAdicionales.DataSource = DtPSAdicionales + End If + GvPSAdicionales.DataBind() + UpPSAdicionales.Update() + End Sub + Private Sub GvPSAdicionales_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPSAdicionales.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + + If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then + e.Row.FCDropDownList("DdlPSAdicional").DataSource = GlobalDTPS(UsuarioActual.CveEmpresa) '.FiltraParametros("CvePS = " + CvePS.ToString) + e.Row.FCDropDownList("DdlPSAdicional").DataBind() + e.Row.FCDropDownList("DdlPSAdicional").SelectedValue = e.Row.DBCampo("CvePSAdicional") + End If + + End If + End Sub + Protected Sub GvPSAdicionales_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvPSAdicionales.RowCancelingEdit + GvPSAdicionales.EditIndex = -1 + CargaGvPSAdicionales() + End Sub + Private Sub GvPSAdicionales_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvPSAdicionales.RowDeleting + Dim TieneError = False + + Dim CvePSAdicional = GvPSAdicionales.Rows(e.RowIndex).DataKey("CvePSAdicional").ToEntero + + Dim ObjProductosServicios As New ClsProductosServicios() + If Not ObjProductosServicios.RemovePSAdicionales(CvePS, CvePSAdicional) Then + TieneError = True + End If + ObjProductosServicios.Dispose() + + If Not TieneError Then + Alert("El Producto/Servicio Adicionala se eliminó correctamente.", TipoMensaje.MsgInformacion) + CargaPSAdicionales() + CargaGvPSAdicionales() + 'RecargaGlobalEquivalencias() + RecargaGlobal() + Else + Alert("ocurrió un error al eliminar el Producto/Servicio Adicional.", TipoMensaje.MsgError) + End If + + End Sub + + Private Sub BtnAgregarPSAdicionalesModal_Click(sender As Object, e As EventArgs) Handles BtnAgregarPSAdicionalesModal.Click + BtnAgregarPSAdicional.Text = "Agregar" + CvePSAdicional = -1 + + DdlPSAdicional.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa) + DdlPSAdicional.DataBind() + DdlPSAdicional.Items.Add(New ListItem("Seleccione", "-1")) + UpAddPSAdicional.Update() + + DdlPSAdicional.SelectedValue = "-1" + TxtCantidadPSAdicional.Text = "" + UpCantidad.Visible = False + RBLCantidad.SelectedValue = "1" + RegistraScript("$('#divAddPSAdicional').modal();") + End Sub + Private Sub BtnAgregarPSAdicional_Click(sender As Object, e As EventArgs) Handles BtnAgregarPSAdicional.Click + Dim ObjProductosServicios As New ClsProductosServicios() + ObjProductosServicios.IniciaTransacSQL() + Dim TieneError = False + + If CvePSAdicional < 0 Then + If Not ObjProductosServicios.AddPSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0)) Then + TieneError = True + End If + Else + + If Not ObjProductosServicios.UpdatePSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, CvePSAdicional, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0)) Then + TieneError = True + End If + + End If + + If TieneError Then + Alert("Ocurrio un error al agregar/actualizar el Producto/Servicio Adicional.", TipoMensaje.MsgError) + ObjProductosServicios.RollBack() + Else + ObjProductosServicios.Commit() + RegistraScript("$('#divAddPSAdicional').modal('hide');") + CvePSAdicional = -1 + CargaPSAdicionales() + CargaGvPSAdicionales() + RecargaGlobal() + End If + ObjProductosServicios.Dispose() + End Sub + + Protected Sub Edit_Click(sender As Object, e As EventArgs) + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + BtnAgregarPSAdicional.Text = "Guardar" + TxtCantidadPSAdicional.Text = GvRow.DataKey("Cantidad") + + If TxtCantidadPSAdicional.Text.ToEntero = 0 Then + UpCantidad.Visible = False + RBLCantidad.SelectedValue = "1" + Else + UpCantidad.Visible = True + RBLCantidad.SelectedValue = "2" + End If + UpAddPSAdicional.Update() + + DdlPSAdicional.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa) + DdlPSAdicional.DataBind() + DdlPSAdicional.Items.Add(New ListItem("Seleccione", "-1")) + UpAddPSAdicional.Update() + + CvePSAdicional = GvRow.DataKey("CvePSAdicional").ToEntero + DdlPSAdicional.SelectedValue = GvRow.DataKey("CvePSAdicional") + + RegistraScript("$('#divAddPSAdicional').modal();") + End Sub + + Protected Sub RBLCantidad_SelectedIndexChanged1(sender As Object, e As EventArgs) + If RBLCantidad.SelectedValue.ToEntero = 2 Then + UpCantidad.Visible = True + Else + UpCantidad.Visible = False + End If + UpAddPSAdicional.Update() + End Sub +#End Region + +#Region " CARGA MARCA Y COMPUESTOS " + + Protected Sub CargarMarcas() + If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then + If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) And CvePS = -1 Then + DivMarcaPSDes.Visible = True + Else + DivMarca.Visible = True + End If + Dim ObjMarcas As New ClsProductosServicios + ObjMarcas.GetMarcas(UsuarioActual.CveEmpresa) + DdlMarca.DataSource = ObjMarcas.DtResultados + DdlMarcaPSDes.DataSource = ObjMarcas.DtResultados + ObjMarcas.Dispose() + DdlMarca.DataBind() + DdlMarcaPSDes.DataBind() + End If + DdlMarca.Items.Insert(0, New ListItem(" - ", "-1")) + DdlMarcaPSDes.Items.Insert(0, New ListItem(" - ", "-1")) + End Sub + + Protected Sub CargarCompuestos() + If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then + DivCompuesto.Visible = True + Dim PS As New ClsProductosServicios + PS.GetCompuestosActivos(UsuarioActual.CveEmpresa) + DdlCompuesto.DataSource = PS.DtResultados + PS.Dispose() + DdlCompuesto.DataBind() + End If + End Sub + + +#End Region + +#Region "IMPUESTOS LOCALES" + Public Sub CargaImpuestosLocales() + Dim ObjPS As New ClsProductosServicios + If ObjPS.GetPSImpuestosLocales(CvePS, UsuarioActual.CveEmpresa) Then + GvImpuestosLocales.DataSource = ObjPS.DtResultados + End If + ObjPS.Dispose() + GvImpuestosLocales.DataBind() + End Sub + +#End Region + +#Region " IEPS " + Private Sub ChkAplicaIeps_CheckedChanged(sender As Object, e As EventArgs) Handles ChkAplicaIeps.CheckedChanged + If ChkAplicaIeps.Checked Then + DdlIEPSPorcentaje.Enabled = True + ChkIepsIVA.Enabled = True + Else + DdlIEPSPorcentaje.SelectedIndex = 0 + DdlIEPSPorcentaje.Enabled = False + ChkIepsIVA.Enabled = False + ChkIepsIVA.Checked = False + End If + UpDatos.Update() + End Sub +#End Region + +#Region "UNIFICAR PRODUCTOS" + Private Sub LnkUnificar_Click(sender As Object, e As EventArgs) Handles LnkUnificar.Click + CargaPSUnificar() + RegistraScript("$('#DivUnificar').modal();LimpiaModalUnificar()") + End Sub + Public Sub CargaPSUnificar() + DdlPsUnificar.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) + DdlPsUnificar.DataBind() + 'DdlPsUnificar.setEsWebService(True) + 'DdlPsUnificar.ddlWS.Attributes.Add("data-clear", "1") + + UpBodyUnificar.Update() + End Sub + Private Sub BtnUnificar_Click(sender As Object, e As EventArgs) Handles BtnUnificar.Click + If DdlPsUnificar.SelectedValue.ToEntero() > 0 Then + If DdlPsUnificar.SelectedValue.ToEntero() = CvePS Then + Alert("No se puede seleccionar el mismo producto y/o servicio", TipoMensaje.MsgAdvertencia) + Else + Dim ObjPS As New ClsProductosServicios + If ObjPS.UnificarPS(CvePS, DdlPsUnificar.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + Alert("Los productos y/o servicios han sido unificados", TipoMensaje.MsgInformacion) + Else + Alert("Los productos y/o servicios no han podido ser unificados", TipoMensaje.MsgError) + End If + ObjPS.Dispose() + RecargaGlobal() + RegistraScript("$('#DivUnificar').modal('hide');") + UpDatos.Update() + End If + Else + Alert("Es necesario seleccionar un producto y/o servicio", TipoMensaje.MsgAdvertencia) + End If + + + End Sub +#End Region + +#Region "BITACORA" + + Private Sub CargaGvBitacora() + Dim ObjGral As New ClsGenerales() + If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, CvePS, -1, -1, UsuarioActual.CveEmpresa) Then + GvBitacora.DataSource = ObjGral.DtResultados + GvBitacora.DataBind() + End If + ObjGral.Dispose() + UpDatos.Update() + End Sub + + Private Sub BtnRemove_Click(sender As Object, e As EventArgs) Handles BtnRemove.Click + If Not TxtDescripcion.Text = "" Then + Dim ObjProductosServcios As New ClsProductosServicios() + Dim ObjGral As New ClsGenerales(ObjProductosServcios.IniciaTransacSQL()) + + + If ObjProductosServcios.RemovePS(CvePS) Then + Borrar = True + Else + Borrar = False + End If + + If Borrar = True Then + If ObjGral.AddHistorialBitacora(Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, "", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, TxtDescripcion.Text, "PS", TxtCodigo.Text + " / " + TxtPS.Text) Then + ObjProductosServcios.Commit() + RecargaGlobal() + Alert("El Producto o Servicio se eliminó correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Ventas/CatPS.aspx"";") + Else + ObjProductosServcios.RollBack() + Alert("Ocurrió un Error al actualizar el historial de eliminación.", TipoMensaje.MsgError) + End If + Else + ObjProductosServcios.RollBack() + Alert("Ocurrió un Error al eliminar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + ObjProductosServcios.Dispose() + ObjGral.Dispose() + Else + Alert("Tiene que decir el motivo de su eliminacion.", TipoMensaje.MsgInformacion) + End If + End Sub + +#End Region + +#Region "Codigo Barras" + + 'Codigo barras/QR se retorna como una imagen bmp + Private Function GeneraCodigoQR(CodigoBarras As String, Alto As Integer, Largo As Integer, Margen As Integer, Formato As String) As Byte() + + Dim barcodeWriter As New BarcodeWriter + Dim opciones As New ZXing.Common.EncodingOptions + Dim FormatoBar As New BarcodeFormat + 'Dim Respuesta As Byte() + + opciones.Height = Alto + opciones.Width = Largo + opciones.Margin = Margen + + barcodeWriter.Options = opciones + + Select Case Formato + Case "All_1D" + barcodeWriter.Format = BarcodeFormat.All_1D + Exit Select + Case "AZTEC" + barcodeWriter.Format = BarcodeFormat.AZTEC + Exit Select + Case "CODABAR" + barcodeWriter.Format = BarcodeFormat.CODABAR + Exit Select + Case "CODE_128" + barcodeWriter.Format = BarcodeFormat.CODE_128 + Exit Select + Case "CODE_39" + barcodeWriter.Format = BarcodeFormat.CODE_39 + Exit Select + Case "CODE_93" + barcodeWriter.Format = BarcodeFormat.CODE_93 + Exit Select + Case "DATA_MATRIX" + barcodeWriter.Format = BarcodeFormat.DATA_MATRIX + Exit Select + Case "EAN_13" + barcodeWriter.Format = BarcodeFormat.EAN_13 + Exit Select + Case "EAN_8" + barcodeWriter.Format = BarcodeFormat.EAN_8 + Exit Select + Case "IMB" + barcodeWriter.Format = BarcodeFormat.IMB + Exit Select + Case "ITF" + barcodeWriter.Format = BarcodeFormat.ITF + Exit Select + Case "MAXICODE" + barcodeWriter.Format = BarcodeFormat.MAXICODE + Exit Select + Case "MSI" + barcodeWriter.Format = BarcodeFormat.MSI + Exit Select + Case "PDF_417" + barcodeWriter.Format = BarcodeFormat.PDF_417 + Exit Select + Case "PLESSEY" + barcodeWriter.Format = BarcodeFormat.PLESSEY + Exit Select + Case "QR_CODE" + barcodeWriter.Format = BarcodeFormat.QR_CODE + Exit Select + Case "RSS_14" + barcodeWriter.Format = BarcodeFormat.RSS_14 + Exit Select + Case "RSS_EXPANDED" + barcodeWriter.Format = BarcodeFormat.RSS_EXPANDED + Exit Select + Case "UPC_A" + barcodeWriter.Format = BarcodeFormat.UPC_A + Exit Select + Case "UPC_E" + barcodeWriter.Format = BarcodeFormat.UPC_E + Exit Select + Case "UPC_EAN_EXTENSION" + barcodeWriter.Format = BarcodeFormat.UPC_EAN_EXTENSION + Exit Select + + End Select + + Dim imgCod As Drawing.Bitmap = barcodeWriter.Write(CodigoBarras) + Dim memoriStream As New System.IO.MemoryStream + imgCod.Save(memoriStream, Drawing.Imaging.ImageFormat.Bmp) + + 'Respuesta = Convert.ToBase64String(memoriStream.ToArray()) + + Return memoriStream.ToArray() + + End Function + + Private Sub LnkModalCodigoBarrasQr_Click(sender As Object, e As EventArgs) Handles LnkModalCodigoBarrasQr.Click + + LnkDescargaImagen.Enabled = False + LnkDescargaImpresion.Enabled = False + UpModalBotonesCodigos.Update() + + TxtCodigoBarrasModal.Text = TxtCodigoBarras.Text.Trim + UpModalUploadCodigoBarras.Update() + RegistraScript("$('#ModalCodigoBarrasQR').modal({ backdrop: 'static', keyboard: false});") + + End Sub + + + Private Sub LnkModalGenerarCodigoBarrasQR_Click(sender As Object, e As EventArgs) Handles LnkModalGenerarCodigoBarrasQR.Click + + Dim Alto As Integer = 150 + Dim Ancho As Integer = 150 + Dim Base64Code As String + + If TxtAlto.Text.ToEntero > 0 Then Alto = TxtAlto.Text.ToEntero + If TxtAncho.Text.ToEntero > 0 Then Ancho = TxtAncho.Text.ToEntero + + Try + Base64Code = Convert.ToBase64String(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue)) + ImgModalCodigo.Attributes.Add("src", $"data:image/gif;base64,{Base64Code}") + ImgModalCodigo.Width = Ancho + ImgModalCodigo.Height = Alto + LnkDescargaImagen.Enabled = True + LnkDescargaImpresion.Enabled = True + UpModalBotonesCodigos.Update() + Catch ex As Exception + ImgModalCodigo.Attributes.Add("src", "") + ImgModalCodigo.Width = Ancho + ImgModalCodigo.Height = Alto + LnkDescargaImagen.Enabled = False + LnkDescargaImpresion.Enabled = False + UpModalBotonesCodigos.Update() + End Try + + UpModalUploadCodigoBarras.Update() + + End Sub + + Private Sub LnkDescargaImagen_Click(sender As Object, e As EventArgs) Handles LnkDescargaImagen.Click + + Dim Alto As Integer = 150 + Dim Ancho As Integer = 150 + + + If TxtAlto.Text.ToEntero > 0 Then Alto = TxtAlto.Text.ToEntero + If TxtAncho.Text.ToEntero > 0 Then Ancho = TxtAncho.Text.ToEntero + + Try + Dim memoryStream As New System.IO.MemoryStream(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue)) + Response.Clear() + Response.ContentType = "application/bmp" + Response.AddHeader("content-disposition", $"attachment;filename=code_{TxtCodigoBarrasModal.Text.Trim}.bmp") + Response.Buffer = True + memoryStream.WriteTo(Response.OutputStream) + Response.End() + + Catch ex As Exception + + End Try + End Sub + + Private Sub DDLCodigoFormato_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DDLCodigoFormato.SelectedIndexChanged + LnkDescargaImagen.Enabled = False + LnkDescargaImpresion.Enabled = False + UpModalBotonesCodigos.Update() + End Sub + Private Sub LnkDescargaImpresion_Click(sender As Object, e As EventArgs) Handles LnkDescargaImpresion.Click + Dim Alto As Integer = 150 + Dim Ancho As Integer = 150 + + + If TxtAlto.Text.ToEntero > 0 Then Alto = TxtAlto.Text.ToEntero + If TxtAncho.Text.ToEntero > 0 Then Ancho = TxtAncho.Text.ToEntero + + Try + + + Dim Doc As New iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 10.0F, 10.0F, 100.0F, 0F) + Dim para As New iTextSharp.text.Paragraph + Dim memoryStreamDoc As New System.IO.MemoryStream + + Dim gemBox As New clsGemBoxDocument() + + gemBox.AgregarImagen(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue)) + gemBox.GuardarStreamPDF() + + + + Dim memoryStream As New System.IO.MemoryStream(gemBox.GetBytesDocumento()) + gemBox.Dispose() + Response.Clear() + Response.ContentType = "application/pdf" + Response.AddHeader("content-disposition", $"attachment;filename=code_{TxtCodigoBarrasModal.Text.Trim}.pdf") + Response.Buffer = True + memoryStream.WriteTo(Response.OutputStream) + Response.End() + + Catch ex As Exception + + End Try + End Sub + + + +#End Region + +#Region "SELECTED INDEX CHANGE" + Public Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClasificacion.SelectedIndexChanged + If DdlClasificacion.SelectedValue.ToEntero > 0 Then + If Not CveSATPS > 0 Or CveSATPS = 46920 Then + Dim Dr = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0) + + DdlSATPS.SelectedValue = Dr("CveSATPS").ToString + DdlSATPS.SelectedText = Dr("SATClaveProductoServicio").ToString + + + + If UsuarioActual.CveEmpresa.Contiene(72, 80) Then + VerificaRequiereSerieLote() + End If + End If + ' CargaClasificacionesDetalles() + End If + + Try + Dim Dr = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0) + If Boolean.Parse(Dr("EsAcumulador").ToString) Then + MostarOcultarDivTamanio(True) + Else + MostarOcultarDivTamanio(False) + End If + 'SI ES MOTOBATERIA If DdlClasificacion.SelectedValue = "20517" Then MostarOcultarDivTamanio(True) - End If - Catch ex As Exception - - End Try - End Sub - - Sub MostarOcultarDivTamanio(Mostrar As Boolean) - - - If Mostrar And UsuarioActual.Empresa.Funcionalidad(531) = "1" Then - DvTamanio.Visible = True - Else - DvTamanio.Visible = False - DdlTamanio.SelectedValueExist("-1") - End If - - - UpDatos.Update() - - End Sub - - - Private Sub DdlTipoFactor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoFactor.SelectedIndexChanged - If DdlTipoFactor.SelectedValue.Contiene("1", "2") Then 'tasa - DdlIVA.Visible = True - LIva.Visible = True - Else - DdlIVA.SelectedValue = "0" - DdlIVA.Visible = False - LIva.Visible = False - End If - End Sub - Protected Sub DdlUsoClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) - CargaClasificaciones() - End Sub -#End Region - -#Region "FRACCION ARANCELARIA" - - Protected Sub DdlFraccionArancelaria_selectedindexchange(sender As Object, e As EventArgs) - If DdlFraccionArancelaria.SelectedValue.ToEntero > 0 Then - LblUnidadAduana.Text = GlobalDTFraccionArancelaria().FiltraParametros($"CveFraccionArancelaria = {DdlFraccionArancelaria.SelectedValue}")(0)("ClaveSATUnidadAduanaDescripcion").ToString - End If - End Sub - -#End Region - -#Region " ECOMMERCE " - Private Sub InicializaEcommerce() - AplicaEcommerce = False - - If UsuarioActual.Empresa.Funcionalidad(700).ToEntero = 1 And CvePS > 0 Then - - TabEcommerce.Visible = True - LBBitacoraEcommerce.Visible = True - - 'INICIALIZA PRODUCTOS ECOMMERCE - Dim ObjEcommerce As New ClsECommerce - If ObjEcommerce.InsigniasGet(-1, "", UsuarioActual.CveEmpresa) Then - DdlEcommerceInsignia.DataSource = ObjEcommerce.DtResultados - End If - ObjEcommerce.Dispose() - DdlEcommerceInsignia.DataBind() - CargaEcommerce() - - 'INICIALIZA PRODUCTOS INSIGNIAS - CargaPSInsigniasEcommerce() - - 'INICIALIZA PRODUCTOS IMAGENES - CargarGaleriaImagenesEcommerce() - - 'INICIALIZA PRODUCTOS RELACIONADOS - DdlEcommercePSRelacionado.setEsWebService(True) - CargaPSRelacionadosEcommerce() - - UpEcommerce.Update() - - End If - End Sub - -#Region " PRODUCTOS ECOMMERCE " - Private Sub CargaEcommerce() - Dim DrEcommerce As DataRow = Nothing - Dim ObjEcommerce As New ClsECommerce - If ObjEcommerce.ProductosGet(CvePS, -1, -1, -1, UsuarioActual.CveEmpresa) Then - DrEcommerce = ObjEcommerce.DtResultados.FiltroPrimero("") - End If - ObjEcommerce.Dispose() - - If DrEcommerce IsNot Nothing Then - AplicaEcommerce = True - - TxtEcommerceDescripcion.Text = DrEcommerce("Descripcion").ToString - TxtEcommercePrecioBase.Text = DrEcommerce("PrecioBase").ToString.FormatoNumero - TxtEcommercePrecioPromocion.Text = DrEcommerce("PrecioPromocion").ToString.FormatoNumero - ChkEcommerceDisponible.Checked = CBool(DrEcommerce("Disponible").ToString) - End If - GvEcommercePSRealacionados.DataBind() - UpEcommercePSRelacionados.Update() - End Sub - Private Function GuardaEcommerce() As Boolean - Dim TieneError = False - - If UsuarioActual.Empresa.Funcionalidad(700) = "1" Then - - 'SI NO SE HA GUARDADO EN ECOMMERCE Y NO TIENE NINGUN VALOR OMITE - If Not AplicaEcommerce And Not ChkEcommerceDisponible.Checked And TxtEcommerceDescripcion.Text.Length = 0 And TxtEcommercePrecioBase.Text.Length = 0 And TxtEcommercePrecioPromocion.Text.Length = 0 Then - Return False - End If - - If ChkEcommerceDisponible.Checked Then - If Not ValidaGuardarEcommerce() Then - Return True - End If - End If - - Dim Descripcion = TxtEcommerceDescripcion.Text.Trim - Dim PrecioBase = TxtEcommercePrecioBase.Text.Trim.ToDouble - Dim PrecioPromocion = TxtEcommercePrecioPromocion.Text.Trim.ToDouble - Dim Disponible = ChkEcommerceDisponible.Checked - - Dim ObjEcommerce As New ClsECommerce - If Not ObjEcommerce.ProductosAddUpdate(CvePS, Descripcion, PrecioBase, PrecioPromocion, Disponible, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then - TieneError = True - End If - ObjEcommerce.Dispose() - - End If - - Return TieneError - End Function - Private Function ValidaGuardarEcommerce() As Boolean - Dim Retorno = True - Dim Mensaje As New StringBuilder - - 'DESCRIPCION - Dim Descripcion = TxtEcommerceDescripcion.Text.Trim - If Descripcion.Length = 0 Then - Mensaje.Append("- El campo Descripción es obligatorio. Por favor introduzcalo y vuelva a intentar.
") - End If - If Descripcion.Length > 255 Then - Mensaje.Append("- El campo Descripción admite maximo 255 caracteres. Por favor verifique y vuelva a intentar.
") - End If - - 'PRECIO BASE - Dim PrecioBase = TxtEcommercePrecioBase.Text.Trim.ToDouble - If PrecioBase = 0 Then - Mensaje.Append("- El campo Precio es obligatorio. Por favor verifique y vuelva a intentar.
") - End If - If PrecioBase < 0 Then - Mensaje.Append("- El campo Precio no puede ser negativo. Por favor verifique y vuelva a intentar.
") - End If - - 'PRECIO FINAL - Dim PrecioPromocion = TxtEcommercePrecioPromocion.Text.Trim.ToDouble - If PrecioPromocion < 0 Then - Mensaje.Append("- El campo Precio Final no puede ser negativo. Por favor verifique y vuelva a intentar.
") - End If - - - 'VALIDACION - If Mensaje.ToString.Length > 0 Then - Retorno = False - Alert($"Si el producto aplica para Ecommerce es necesarios los siguientes campos:
{Mensaje.ToString}", TipoMensaje.MsgAdvertencia) - End If - - Return Retorno - End Function -#End Region - -#Region " PRODUCTOS INSIGNIAS " - - Private Sub CargaPSInsigniasEcommerce() - Dim ObjEcommerce As New ClsECommerce - If ObjEcommerce.ProductosInsigniasGet(CvePS, -1, UsuarioActual.CveEmpresa) Then - GvEcommercePSInsignias.DataSource = ObjEcommerce.DtResultados - Else - GvEcommercePSInsignias.DataSource = Nothing - End If - ObjEcommerce.Dispose() - - GvEcommercePSInsignias.DataBind() - UpEcommerceInsignias.Update() - End Sub - Protected Sub BtnEcommerceInsignias_Click(sender As Object, e As EventArgs) - If Not ValidaAgregarProductosInsigniasEcommerce() Then - Exit Sub - End If - - Dim TieneError = False - Dim CveInsignia = DdlEcommerceInsignia.SelectedValue.ToEntero - - 'AGREGAR - Dim ObjEcommerce As New ClsECommerce - If ObjEcommerce.ProductosInsigniasAdd(Me.CvePS, CveInsignia, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then - Alert("La Insignia se agregó correctamente.", TipoMensaje.MsgInformacion) - Else - TieneError = True - End If - ObjEcommerce.Dispose() - - If Not TieneError Then - DdlEcommerceInsignia.SelectedValueExist(-1) - CargaPSInsigniasEcommerce() - End If - End Sub - Private Function ValidaAgregarProductosInsigniasEcommerce() As Boolean - Dim Retorno = True - Dim Mensaje As New StringBuilder - - 'INSIGNIA - Dim CveInsignia = DdlEcommerceInsignia.SelectedValue.ToEntero - If CveInsignia = 0 Then - Mensaje.Append("- El campo Insignia es obligatorio. Por favor introduzcalo y vuelva a intentar.
") - End If - For Each GvRow As GridViewRow In GvEcommercePSInsignias.Rows - If GvRow.DataKey("CveInsignia").ToString.ToEntero = CveInsignia Then - Mensaje.Append($"- La Insignia {DdlEcommerceInsignia.SelectedItem.Text} ya es parte del producto y no se puede duplicar. Por favor verifique y vuelva a intentar.
") - Exit For - End If - Next - - 'VALIDACION - If Mensaje.ToString.Length > 0 Then - Retorno = False - Alert(Mensaje.ToString, TipoMensaje.MsgAdvertencia) - End If - - Return Retorno - End Function - Protected Sub GvEcommercePSInsignias_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEcommercePSInsignias.RowDeleting - Dim TieneError = False - Dim GvRow = GvEcommercePSInsignias.Rows(e.RowIndex) - - Dim ObjEcommerce As New ClsECommerce - If ObjEcommerce.ProductosInsigniasRemove(GvRow.DataKey("CvePS").ToString.ToEntero, GvRow.DataKey("CveInsignia").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then - Alert("La Insignia se eliminó correctamente.", TipoMensaje.MsgInformacion) - Else - TieneError = True - End If - ObjEcommerce.Dispose() - - If Not TieneError Then - CargaPSInsigniasEcommerce() - End If - End Sub -#End Region - -#Region " PRODUCTOS IMAGENES " - Private Sub CargarGaleriaImagenesEcommerce() - Dim TmpDT As DataTable = Nothing - - Dim ObjEcommerce As New ClsECommerce - If ObjEcommerce.ProductosImagenesGet(CvePS, UsuarioActual.CveEmpresa) Then - TmpDT = ObjEcommerce.DtResultados - Else - TmpDT = Nothing - End If - ObjEcommerce.Dispose() - - RptFotos.DataSource = TmpDT - RptFotos.DataBind() - UpEcommerceGaleriaImagenes.Update() - End Sub - Protected Sub BtnEcommerceImagenes_Click(sender As Object, e As EventArgs) - - Dim FilesGral As List(Of Archivo) = TxtEcommerceImagenes.getfiles().Archivos - Dim FileMove = "" - Dim Archivo = "" - Dim DirectorioTemporal = "" - - Dim DirectorioDestino = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\Ecommerce\Productos\Imagenes\" - If Not Directory.Exists(DirectorioDestino) Then - Directory.CreateDirectory(DirectorioDestino) - End If - - Dim ObjEcommerce As New ClsECommerce - For Each FileItem As Archivo In FilesGral - Archivo = DateTime.Now.Ticks.ToString - Try - FileMove = FileItem.filename - DirectorioTemporal = $"{AppDomain.CurrentDomain.BaseDirectory}Temp\{FileMove}" - - Archivo = $"{Archivo}{IO.Path.GetExtension(DirectorioTemporal)}" - DirectorioDestino += Archivo - If ObjEcommerce.ProductosImagenesAdd(CvePS, $"Ecommerce\Productos\Imagenes\{Archivo}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then - CargarGaleriaImagenesEcommerce() - My.Computer.FileSystem.MoveFile(DirectorioTemporal, DirectorioDestino) - End If - Catch ex As Exception - End Try - Next - ObjEcommerce.Dispose() - - RegistraScript("$(""#Modalupfotos"").modal(""hide"");initcarusel();") - TxtEcommerceImagenes.Text = "[]" - UpUpFotos.Update() - - End Sub - Protected Sub BtnEcommerceEliminarImagenes_Click(sender As Object, e As System.EventArgs) - Dim CveImagenActivoFijo As Integer = 0 - CveImagenActivoFijo = Integer.Parse(DirectCast(sender, Button).CommandArgument) - - If (CveImagenActivoFijo > 0) Then - Dim ObjEcommerce As New ClsECommerce - If ObjEcommerce.ProductosImagenesRemove(CveImagenActivoFijo, UsuarioActual.CveEmpresa) Then - File.Delete(String.Format("{0}Empresas\{1}\{2}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, ObjEcommerce.DtResultados.Rows(0)("URL"))) - CargarGaleriaImagenesEcommerce() - RegistraScript("initcarusel();") - End If - ObjEcommerce.Dispose() - End If - - End Sub -#End Region - -#Region " PRODUCTOS RELACIONADOS " - Private Sub CargaPSRelacionadosEcommerce() - Dim ObjEcommerce As New ClsECommerce - If ObjEcommerce.ProductosRelacionadosGet(CvePS, UsuarioActual.CveEmpresa) Then - GvEcommercePSRealacionados.DataSource = ObjEcommerce.DtResultados - Else - GvEcommercePSRealacionados.DataSource = Nothing - End If - ObjEcommerce.Dispose() - - GvEcommercePSRealacionados.DataBind() - UpEcommercePSRelacionados.Update() - End Sub - Protected Sub BtnEcommercePSRelacionados_Click(sender As Object, e As EventArgs) - If Not ValidaAgregarProductosRelacionadosEcommerce() Then - Exit Sub - End If - - Dim TieneError = False - Dim CvePS = DdlEcommercePSRelacionado.SelectedValue.ToEntero - - 'AGREGAR - Dim ObjEcommerce As New ClsECommerce - If ObjEcommerce.ProductosRelacionadosAdd(Me.CvePS, CvePS, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then - Alert("La relación se agregó correctamente.", TipoMensaje.MsgInformacion) - Else - TieneError = True - End If - ObjEcommerce.Dispose() - - If Not TieneError Then - DdlEcommercePSRelacionado.SelectedValue = "-1" - DdlEcommercePSRelacionado.SelectedText = "" - CargaPSRelacionadosEcommerce() - End If - End Sub - Private Function ValidaAgregarProductosRelacionadosEcommerce() As Boolean - Dim Retorno = True - Dim Mensaje As New StringBuilder - - 'PS - Dim CvePS = DdlEcommercePSRelacionado.SelectedValue.ToEntero - If CvePS = 0 Then - Mensaje.Append("- El campo Producto es obligatorio. Por favor introduzcalo y vuelva a intentar.
") - End If - For Each GvRow As GridViewRow In GvEcommercePSRealacionados.Rows - If GvRow.DataKey("CvePS").ToString.ToEntero = CvePS Then - Mensaje.Append($"- El producto {DdlEcommercePSRelacionado.SelectedText} ya esta relacionado y no se puede duplicar. Por favor verifique y vuelva a intentar.
") - Exit For - End If - Next - - 'VALIDACION - If Mensaje.ToString.Length > 0 Then - Retorno = False - Alert(Mensaje.ToString, TipoMensaje.MsgAdvertencia) - End If - - Return Retorno - End Function - Protected Sub GvEcommercePSRealacionados_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEcommercePSRealacionados.RowDeleting - Dim TieneError = False - Dim GvRow = GvEcommercePSRealacionados.Rows(e.RowIndex) - - Dim ObjEcommerce As New ClsECommerce - If ObjEcommerce.ProductosRelacionadosRemove(GvRow.DataKey("CvePS1").ToString.ToEntero, GvRow.DataKey("CvePS2").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then - Alert("La relación se eliminó correctamente.", TipoMensaje.MsgInformacion) - Else - TieneError = True - End If - ObjEcommerce.Dispose() - - If Not TieneError Then - CargaPSRelacionadosEcommerce() - End If - End Sub - -#End Region - -#Region " BITACORA " - Protected Sub LBBitacoraEcommerce_Click(sender As Object, e As EventArgs) - CargaBitacoraEcommerce() - End Sub - Private Sub CargaBitacoraEcommerce() - Dim ObjEcommerce As New ClsECommerce - If ObjEcommerce.ProductosGetBitacora(CvePS, UsuarioActual.CveEmpresa) Then - GvBitacoraEcommerce.DataSource = ObjEcommerce.DtResultados - End If - ObjEcommerce.Dispose() - - GvBitacoraEcommerce.DataBind() - UpBitacoraEcommerce.Update() - RegistraScript("$('#ModalBitacoraEcommerce').modal('show');") - End Sub - Protected Sub GvBitacora_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvBitacora.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - - End If - End Sub -#End Region - -#End Region - -#Region "CLASIFICACIONES DETALLES" - - Protected Sub BtnAddClasificacionDetalle_Click(sender As Object, e As EventArgs) - TxtClasificacionDetalle.Text = "" - DdlClasificacionModal.SelectedValueExist(DdlClasificacion.SelectedValue) - UpModal.Update() - RegistraScript(String.Format("$('#{0}').modal('show');", "DModalClasificacion")) - End Sub - Protected Sub BtnAddClasificacionDetalleModal_Click(sender As Object, e As EventArgs) - Dim ObjVentas As New ClsVentas - If ObjVentas.AddClasificacionDetalle(TxtClasificacionDetalle.Text, DdlClasificacionModal.SelectedValue.ToEntero, - UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then - - If ObjVentas.GetClasificacionDetalle(-1, -1, -1, -1) Then - GlobalDTClasificacionesDetalle = ObjVentas.DtResultados - End If - CargaClasificacionesDetalles() - DdlTipoPSDes.SelectedValueExist(ObjVentas.CveClasificacionDetalle) - UpDatos.Update() - RegistraScript(String.Format("$('#{0}').modal('hide');", "DModalClasificacion"), "1") - RegistraScript("CreaDescripcionPS();", "2") - - - End If - - ObjVentas.Dispose() - End Sub - -#End Region - -#Region "EXISTENCIAS" - - Protected Sub GVExistencias_RowDataBound(sender As Object, e As GridViewRowEventArgs) - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.DBCampo("CveAlmacen") = "" Then - e.Row.CssClass = "Totales" - End If - If UsuarioActual.CveEmpresa = 119 Then - GVExistencias.Columns(5).Visible = True - End If - End If - End Sub - - Private Sub CargaExistencias() - Dim ObjInventarios As New ClsInventarios() - If ObjInventarios.GetExistenciasProducto(CvePS, -1, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), ExcluyeApartados:=-1) Then - If ObjInventarios.DtResultados.Rows.Count > 0 Then - GVExistencias.DataSource = ObjInventarios.DtResultados - Else - GVExistencias.DataSource = Nothing - End If - End If - - ObjInventarios.Dispose() - GVExistencias.DataBind() - UpDatos.Update() - End Sub - -#End Region - - Protected Sub DdlImpTipoProducto_SelectedIndexChanged(sender As Object, e As EventArgs) - - CargaClaveGenerica(DdlImpTipoProducto.SelectedValue) - - End Sub - - Private Sub CargaClaveGenerica(TipoProducto As String) - DdlCategoriaToxicidad.Items.Clear() - DdlCategoriaToxicidad.DataBind() 'para que quite el selectedvalue - - If TipoProducto = "019" Then - DdlCategoriaToxicidad.Items.Add(New ListItem("Seleccione", "-1")) - DdlCategoriaToxicidad.Items.Add(New ListItem("000 - Sin selección", "000")) - DdlCategoriaToxicidad.Items.Add(New ListItem("001 - Categorías 1 y 2", "001")) - DdlCategoriaToxicidad.Items.Add(New ListItem("002 - Categoría 3", "002")) - DdlCategoriaToxicidad.Items.Add(New ListItem("003 - Categoría 4", "003")) - DdlCategoriaToxicidad.SelectedValue = "000" - - ElseIf TipoProducto = "021" Then - DdlCategoriaToxicidad.Items.Add(New ListItem("Seleccione", "-1")) - DdlCategoriaToxicidad.Items.Add(New ListItem("000 - Sin selección", "000")) - DdlCategoriaToxicidad.Items.Add(New ListItem("001 - Gasolina Menor a 92 octanos", "001")) - DdlCategoriaToxicidad.Items.Add(New ListItem("002 - Gasolina Mayor o igual a 92 octanos", "002")) - DdlCategoriaToxicidad.Items.Add(New ListItem("003 - Diesel", "003")) - DdlCategoriaToxicidad.Items.Add(New ListItem("004 - Combustibles no fósiles", "004")) - DdlCategoriaToxicidad.SelectedValue = "000" - End If - End Sub - -#Region "SECCION ALMACEN" - - Private Sub CreaDtSeccionAlmacen() - DtSeccionAlmacen = New DataTable - DtSeccionAlmacen.Columns.Add("CvePSAlmacenSeccion", GetType(Integer)) - DtSeccionAlmacen.Columns.Add("CveAlmacen", GetType(Integer)) - DtSeccionAlmacen.Columns.Add("Almacen", GetType(String)) - DtSeccionAlmacen.Columns.Add("CveAlmacenSeccion", GetType(Integer)) - DtSeccionAlmacen.Columns.Add("AlmacenSeccion", GetType(String)) - End Sub - Private Sub CargaGvSeccionAlmacen() - Dim ObjInv As New ClsInventarios - If ObjInv.GetProductosServiciosAlmacenSeccion(CvePS, -1, -1) Then - GvSeccionAlmacen.DataSource = ObjInv.DtResultados - DtSeccionAlmacen = ObjInv.DtResultados - End If - ObjInv.Dispose() - GvSeccionAlmacen.DataBind() - UpSeccionAlmacen.Update() - End Sub - - - Private Sub CargaCombosSeccionAlmacen() - DdlAlmacen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa) - DdlAlmacen.Items.Add(New ListItem("Seleccione", "-1")) - DdlAlmacen.DataBind() - - DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa) - DdlSeccionAlmacen.Items.Add(New ListItem("Seleccione", "-1")) - DdlSeccionAlmacen.DataBind() - - UpModalSeccionAlmacen.Update() - End Sub - - Protected Sub LnkSeccionAlmacenAdd_Click(sender As Object, e As EventArgs) - DdlAlmacen.SelectedIndex = 0 - DdlSeccionAlmacen.SelectedIndex = 0 - RegistraScript("$('#DivAddSeccionAlmacen').modal();") - UpModalSeccionAlmacen.Update() - End Sub - 'Protected Sub LnkEditarSeccionAlmacen_Click(sender As Object, e As EventArgs) - ' Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) - ' DdlAlmacen.SelectedValueExist(gvRow.DataKey("CvAlmacen")) - ' DdlSeccionAlmacen.SelectedValueExist(gvRow.DataKey("CveAlmacenSeccion")) - ' RegistraScript("$('#DivAddSeccionAlmacen').modal();") - ' UpModalSeccionAlmacen.Update() - 'End Sub - Protected Sub LnkRemoveSeccionAlmacen_Click(sender As Object, e As EventArgs) - Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) - If gvRow.DataKey("CvePSAlmacenSeccion").ToEntero > 0 Then - DtSeccionAlmacen.Rows(gvRow.RowIndex)("CveAlmacen") = -1 - Else - DtSeccionAlmacen.Rows(gvRow.RowIndex.ToEntero).Delete() - End If - DtSeccionAlmacen.AcceptChanges() - GvSeccionAlmacen.DataSource = DtSeccionAlmacen - GvSeccionAlmacen.DataBind() - UpSeccionAlmacen.Update() - End Sub - - Protected Sub BtnAddSeccionAlmacen_Click(sender As Object, e As EventArgs) - If DtSeccionAlmacen.FiltraParametros($"CveAlmacen = {DdlAlmacen.SelectedValue}").Rows.Count > 0 Then - Alert("No se puede especificar el mismo almacen en dos secciones", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - Dim Row As DataRow = Nothing - Row = DtSeccionAlmacen.NewRow - Row("CvePSAlmacenSeccion") = -1 - Row("CveAlmacen") = DdlAlmacen.SelectedValue.ToEntero - Row("Almacen") = DdlAlmacen.SelectedItem.Text - Row("CveAlmacenSeccion") = DdlSeccionAlmacen.SelectedValue.ToEntero - Row("AlmacenSeccion") = DdlSeccionAlmacen.SelectedItem.Text - DtSeccionAlmacen.Rows.Add(Row) - DtSeccionAlmacen.AcceptChanges() - GvSeccionAlmacen.DataSource = DtSeccionAlmacen - GvSeccionAlmacen.DataBind() - UpSeccionAlmacen.Update() - - RegistraScript("$('#DivAddSeccionAlmacen').modal('hide');") - End Sub - - Protected Sub GvSeccionAlmacen_RowDataBound(sender As Object, e As GridViewRowEventArgs) - If e.Row.RowType = DataControlRowType.DataRow Then - If Not e.Row.DBCampo("CveAlmacen").ToEntero > 0 Then - e.Row.Visible = False - End If - End If - End Sub - -#End Region - - - Protected Sub DdlIEPSPorcentaje_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlIEPSPorcentaje.SelectedIndexChanged - Select Case DdlIEPSPorcentaje.SelectedValue - Case "0.09" - DdlCategoriaToxicidad.SelectedValueExist("001") - Case "0.07" - DdlCategoriaToxicidad.SelectedValueExist("002") - Case "0.06" - DdlCategoriaToxicidad.SelectedValueExist("003") - Case Else - DdlCategoriaToxicidad.SelectedValueExist("000") - End Select - End Sub -End Class + End If + Catch ex As Exception + + End Try + End Sub + + Sub MostarOcultarDivTamanio(Mostrar As Boolean) + + + If Mostrar And UsuarioActual.Empresa.Funcionalidad(531) = "1" Then + DvTamanio.Visible = True + Else + DvTamanio.Visible = False + DdlTamanio.SelectedValueExist("-1") + End If + + + UpDatos.Update() + + End Sub + + + Private Sub DdlTipoFactor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoFactor.SelectedIndexChanged + If DdlTipoFactor.SelectedValue.Contiene("1", "2") Then 'tasa + DdlIVA.Visible = True + LIva.Visible = True + Else + DdlIVA.SelectedValue = "0" + DdlIVA.Visible = False + LIva.Visible = False + End If + End Sub + Protected Sub DdlUsoClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) + CargaClasificaciones() + End Sub +#End Region + +#Region "FRACCION ARANCELARIA" + + Protected Sub DdlFraccionArancelaria_selectedindexchange(sender As Object, e As EventArgs) + If DdlFraccionArancelaria.SelectedValue.ToEntero > 0 Then + LblUnidadAduana.Text = GlobalDTFraccionArancelaria().FiltraParametros($"CveFraccionArancelaria = {DdlFraccionArancelaria.SelectedValue}")(0)("ClaveSATUnidadAduanaDescripcion").ToString + End If + End Sub + +#End Region + +#Region " ECOMMERCE " + Private Sub InicializaEcommerce() + AplicaEcommerce = False + + If UsuarioActual.Empresa.Funcionalidad(700).ToEntero = 1 And CvePS > 0 Then + + TabEcommerce.Visible = True + LBBitacoraEcommerce.Visible = True + + 'INICIALIZA PRODUCTOS ECOMMERCE + Dim ObjEcommerce As New ClsECommerce + If ObjEcommerce.InsigniasGet(-1, "", UsuarioActual.CveEmpresa) Then + DdlEcommerceInsignia.DataSource = ObjEcommerce.DtResultados + End If + ObjEcommerce.Dispose() + DdlEcommerceInsignia.DataBind() + CargaEcommerce() + + 'INICIALIZA PRODUCTOS INSIGNIAS + CargaPSInsigniasEcommerce() + + 'INICIALIZA PRODUCTOS IMAGENES + CargarGaleriaImagenesEcommerce() + + 'INICIALIZA PRODUCTOS RELACIONADOS + DdlEcommercePSRelacionado.setEsWebService(True) + CargaPSRelacionadosEcommerce() + + UpEcommerce.Update() + + End If + End Sub + +#Region " PRODUCTOS ECOMMERCE " + Private Sub CargaEcommerce() + Dim DrEcommerce As DataRow = Nothing + Dim ObjEcommerce As New ClsECommerce + If ObjEcommerce.ProductosGet(CvePS, -1, -1, -1, UsuarioActual.CveEmpresa) Then + DrEcommerce = ObjEcommerce.DtResultados.FiltroPrimero("") + End If + ObjEcommerce.Dispose() + + If DrEcommerce IsNot Nothing Then + AplicaEcommerce = True + + TxtEcommerceDescripcion.Text = DrEcommerce("Descripcion").ToString + TxtEcommercePrecioBase.Text = DrEcommerce("PrecioBase").ToString.FormatoNumero + TxtEcommercePrecioPromocion.Text = DrEcommerce("PrecioPromocion").ToString.FormatoNumero + ChkEcommerceDisponible.Checked = CBool(DrEcommerce("Disponible").ToString) + End If + GvEcommercePSRealacionados.DataBind() + UpEcommercePSRelacionados.Update() + End Sub + Private Function GuardaEcommerce() As Boolean + Dim TieneError = False + + If UsuarioActual.Empresa.Funcionalidad(700) = "1" Then + + 'SI NO SE HA GUARDADO EN ECOMMERCE Y NO TIENE NINGUN VALOR OMITE + If Not AplicaEcommerce And Not ChkEcommerceDisponible.Checked And TxtEcommerceDescripcion.Text.Length = 0 And TxtEcommercePrecioBase.Text.Length = 0 And TxtEcommercePrecioPromocion.Text.Length = 0 Then + Return False + End If + + If ChkEcommerceDisponible.Checked Then + If Not ValidaGuardarEcommerce() Then + Return True + End If + End If + + Dim Descripcion = TxtEcommerceDescripcion.Text.Trim + Dim PrecioBase = TxtEcommercePrecioBase.Text.Trim.ToDouble + Dim PrecioPromocion = TxtEcommercePrecioPromocion.Text.Trim.ToDouble + Dim Disponible = ChkEcommerceDisponible.Checked + + Dim ObjEcommerce As New ClsECommerce + If Not ObjEcommerce.ProductosAddUpdate(CvePS, Descripcion, PrecioBase, PrecioPromocion, Disponible, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + TieneError = True + End If + ObjEcommerce.Dispose() + + End If + + Return TieneError + End Function + Private Function ValidaGuardarEcommerce() As Boolean + Dim Retorno = True + Dim Mensaje As New StringBuilder + + 'DESCRIPCION + Dim Descripcion = TxtEcommerceDescripcion.Text.Trim + If Descripcion.Length = 0 Then + Mensaje.Append("- El campo Descripción es obligatorio. Por favor introduzcalo y vuelva a intentar.
") + End If + If Descripcion.Length > 255 Then + Mensaje.Append("- El campo Descripción admite maximo 255 caracteres. Por favor verifique y vuelva a intentar.
") + End If + + 'PRECIO BASE + Dim PrecioBase = TxtEcommercePrecioBase.Text.Trim.ToDouble + If PrecioBase = 0 Then + Mensaje.Append("- El campo Precio es obligatorio. Por favor verifique y vuelva a intentar.
") + End If + If PrecioBase < 0 Then + Mensaje.Append("- El campo Precio no puede ser negativo. Por favor verifique y vuelva a intentar.
") + End If + + 'PRECIO FINAL + Dim PrecioPromocion = TxtEcommercePrecioPromocion.Text.Trim.ToDouble + If PrecioPromocion < 0 Then + Mensaje.Append("- El campo Precio Final no puede ser negativo. Por favor verifique y vuelva a intentar.
") + End If + + + 'VALIDACION + If Mensaje.ToString.Length > 0 Then + Retorno = False + Alert($"Si el producto aplica para Ecommerce es necesarios los siguientes campos:
{Mensaje.ToString}", TipoMensaje.MsgAdvertencia) + End If + + Return Retorno + End Function +#End Region + +#Region " PRODUCTOS INSIGNIAS " + + Private Sub CargaPSInsigniasEcommerce() + Dim ObjEcommerce As New ClsECommerce + If ObjEcommerce.ProductosInsigniasGet(CvePS, -1, UsuarioActual.CveEmpresa) Then + GvEcommercePSInsignias.DataSource = ObjEcommerce.DtResultados + Else + GvEcommercePSInsignias.DataSource = Nothing + End If + ObjEcommerce.Dispose() + + GvEcommercePSInsignias.DataBind() + UpEcommerceInsignias.Update() + End Sub + Protected Sub BtnEcommerceInsignias_Click(sender As Object, e As EventArgs) + If Not ValidaAgregarProductosInsigniasEcommerce() Then + Exit Sub + End If + + Dim TieneError = False + Dim CveInsignia = DdlEcommerceInsignia.SelectedValue.ToEntero + + 'AGREGAR + Dim ObjEcommerce As New ClsECommerce + If ObjEcommerce.ProductosInsigniasAdd(Me.CvePS, CveInsignia, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + Alert("La Insignia se agregó correctamente.", TipoMensaje.MsgInformacion) + Else + TieneError = True + End If + ObjEcommerce.Dispose() + + If Not TieneError Then + DdlEcommerceInsignia.SelectedValueExist(-1) + CargaPSInsigniasEcommerce() + End If + End Sub + Private Function ValidaAgregarProductosInsigniasEcommerce() As Boolean + Dim Retorno = True + Dim Mensaje As New StringBuilder + + 'INSIGNIA + Dim CveInsignia = DdlEcommerceInsignia.SelectedValue.ToEntero + If CveInsignia = 0 Then + Mensaje.Append("- El campo Insignia es obligatorio. Por favor introduzcalo y vuelva a intentar.
") + End If + For Each GvRow As GridViewRow In GvEcommercePSInsignias.Rows + If GvRow.DataKey("CveInsignia").ToString.ToEntero = CveInsignia Then + Mensaje.Append($"- La Insignia {DdlEcommerceInsignia.SelectedItem.Text} ya es parte del producto y no se puede duplicar. Por favor verifique y vuelva a intentar.
") + Exit For + End If + Next + + 'VALIDACION + If Mensaje.ToString.Length > 0 Then + Retorno = False + Alert(Mensaje.ToString, TipoMensaje.MsgAdvertencia) + End If + + Return Retorno + End Function + Protected Sub GvEcommercePSInsignias_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEcommercePSInsignias.RowDeleting + Dim TieneError = False + Dim GvRow = GvEcommercePSInsignias.Rows(e.RowIndex) + + Dim ObjEcommerce As New ClsECommerce + If ObjEcommerce.ProductosInsigniasRemove(GvRow.DataKey("CvePS").ToString.ToEntero, GvRow.DataKey("CveInsignia").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + Alert("La Insignia se eliminó correctamente.", TipoMensaje.MsgInformacion) + Else + TieneError = True + End If + ObjEcommerce.Dispose() + + If Not TieneError Then + CargaPSInsigniasEcommerce() + End If + End Sub +#End Region + +#Region " PRODUCTOS IMAGENES " + Private Sub CargarGaleriaImagenesEcommerce() + Dim TmpDT As DataTable = Nothing + + Dim ObjEcommerce As New ClsECommerce + If ObjEcommerce.ProductosImagenesGet(CvePS, UsuarioActual.CveEmpresa) Then + TmpDT = ObjEcommerce.DtResultados + Else + TmpDT = Nothing + End If + ObjEcommerce.Dispose() + + RptFotos.DataSource = TmpDT + RptFotos.DataBind() + UpEcommerceGaleriaImagenes.Update() + End Sub + Protected Sub BtnEcommerceImagenes_Click(sender As Object, e As EventArgs) + + Dim FilesGral As List(Of Archivo) = TxtEcommerceImagenes.getfiles().Archivos + Dim FileMove = "" + Dim Archivo = "" + Dim DirectorioTemporal = "" + + Dim DirectorioDestino = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\Ecommerce\Productos\Imagenes\" + If Not Directory.Exists(DirectorioDestino) Then + Directory.CreateDirectory(DirectorioDestino) + End If + + Dim ObjEcommerce As New ClsECommerce + For Each FileItem As Archivo In FilesGral + Archivo = DateTime.Now.Ticks.ToString + Try + FileMove = FileItem.filename + DirectorioTemporal = $"{AppDomain.CurrentDomain.BaseDirectory}Temp\{FileMove}" + + Archivo = $"{Archivo}{IO.Path.GetExtension(DirectorioTemporal)}" + DirectorioDestino += Archivo + If ObjEcommerce.ProductosImagenesAdd(CvePS, $"Ecommerce\Productos\Imagenes\{Archivo}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + CargarGaleriaImagenesEcommerce() + My.Computer.FileSystem.MoveFile(DirectorioTemporal, DirectorioDestino) + End If + Catch ex As Exception + End Try + Next + ObjEcommerce.Dispose() + + RegistraScript("$(""#Modalupfotos"").modal(""hide"");initcarusel();") + TxtEcommerceImagenes.Text = "[]" + UpUpFotos.Update() + + End Sub + Protected Sub BtnEcommerceEliminarImagenes_Click(sender As Object, e As System.EventArgs) + Dim CveImagenActivoFijo As Integer = 0 + CveImagenActivoFijo = Integer.Parse(DirectCast(sender, Button).CommandArgument) + + If (CveImagenActivoFijo > 0) Then + Dim ObjEcommerce As New ClsECommerce + If ObjEcommerce.ProductosImagenesRemove(CveImagenActivoFijo, UsuarioActual.CveEmpresa) Then + File.Delete(String.Format("{0}Empresas\{1}\{2}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, ObjEcommerce.DtResultados.Rows(0)("URL"))) + CargarGaleriaImagenesEcommerce() + RegistraScript("initcarusel();") + End If + ObjEcommerce.Dispose() + End If + + End Sub +#End Region + +#Region " PRODUCTOS RELACIONADOS " + Private Sub CargaPSRelacionadosEcommerce() + Dim ObjEcommerce As New ClsECommerce + If ObjEcommerce.ProductosRelacionadosGet(CvePS, UsuarioActual.CveEmpresa) Then + GvEcommercePSRealacionados.DataSource = ObjEcommerce.DtResultados + Else + GvEcommercePSRealacionados.DataSource = Nothing + End If + ObjEcommerce.Dispose() + + GvEcommercePSRealacionados.DataBind() + UpEcommercePSRelacionados.Update() + End Sub + Protected Sub BtnEcommercePSRelacionados_Click(sender As Object, e As EventArgs) + If Not ValidaAgregarProductosRelacionadosEcommerce() Then + Exit Sub + End If + + Dim TieneError = False + Dim CvePS = DdlEcommercePSRelacionado.SelectedValue.ToEntero + + 'AGREGAR + Dim ObjEcommerce As New ClsECommerce + If ObjEcommerce.ProductosRelacionadosAdd(Me.CvePS, CvePS, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + Alert("La relación se agregó correctamente.", TipoMensaje.MsgInformacion) + Else + TieneError = True + End If + ObjEcommerce.Dispose() + + If Not TieneError Then + DdlEcommercePSRelacionado.SelectedValue = "-1" + DdlEcommercePSRelacionado.SelectedText = "" + CargaPSRelacionadosEcommerce() + End If + End Sub + Private Function ValidaAgregarProductosRelacionadosEcommerce() As Boolean + Dim Retorno = True + Dim Mensaje As New StringBuilder + + 'PS + Dim CvePS = DdlEcommercePSRelacionado.SelectedValue.ToEntero + If CvePS = 0 Then + Mensaje.Append("- El campo Producto es obligatorio. Por favor introduzcalo y vuelva a intentar.
") + End If + For Each GvRow As GridViewRow In GvEcommercePSRealacionados.Rows + If GvRow.DataKey("CvePS").ToString.ToEntero = CvePS Then + Mensaje.Append($"- El producto {DdlEcommercePSRelacionado.SelectedText} ya esta relacionado y no se puede duplicar. Por favor verifique y vuelva a intentar.
") + Exit For + End If + Next + + 'VALIDACION + If Mensaje.ToString.Length > 0 Then + Retorno = False + Alert(Mensaje.ToString, TipoMensaje.MsgAdvertencia) + End If + + Return Retorno + End Function + Protected Sub GvEcommercePSRealacionados_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEcommercePSRealacionados.RowDeleting + Dim TieneError = False + Dim GvRow = GvEcommercePSRealacionados.Rows(e.RowIndex) + + Dim ObjEcommerce As New ClsECommerce + If ObjEcommerce.ProductosRelacionadosRemove(GvRow.DataKey("CvePS1").ToString.ToEntero, GvRow.DataKey("CvePS2").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + Alert("La relación se eliminó correctamente.", TipoMensaje.MsgInformacion) + Else + TieneError = True + End If + ObjEcommerce.Dispose() + + If Not TieneError Then + CargaPSRelacionadosEcommerce() + End If + End Sub + +#End Region + +#Region " BITACORA " + Protected Sub LBBitacoraEcommerce_Click(sender As Object, e As EventArgs) + CargaBitacoraEcommerce() + End Sub + Private Sub CargaBitacoraEcommerce() + Dim ObjEcommerce As New ClsECommerce + If ObjEcommerce.ProductosGetBitacora(CvePS, UsuarioActual.CveEmpresa) Then + GvBitacoraEcommerce.DataSource = ObjEcommerce.DtResultados + End If + ObjEcommerce.Dispose() + + GvBitacoraEcommerce.DataBind() + UpBitacoraEcommerce.Update() + RegistraScript("$('#ModalBitacoraEcommerce').modal('show');") + End Sub + Protected Sub GvBitacora_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvBitacora.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + + End If + End Sub +#End Region + +#End Region + +#Region "CLASIFICACIONES DETALLES" + + Protected Sub BtnAddClasificacionDetalle_Click(sender As Object, e As EventArgs) + TxtClasificacionDetalle.Text = "" + DdlClasificacionModal.SelectedValueExist(DdlClasificacion.SelectedValue) + UpModal.Update() + RegistraScript(String.Format("$('#{0}').modal('show');", "DModalClasificacion")) + End Sub + Protected Sub BtnAddClasificacionDetalleModal_Click(sender As Object, e As EventArgs) + Dim ObjVentas As New ClsVentas + If ObjVentas.AddClasificacionDetalle(TxtClasificacionDetalle.Text, DdlClasificacionModal.SelectedValue.ToEntero, + UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + + If ObjVentas.GetClasificacionDetalle(-1, -1, -1, -1) Then + GlobalDTClasificacionesDetalle = ObjVentas.DtResultados + End If + CargaClasificacionesDetalles() + DdlTipoPSDes.SelectedValueExist(ObjVentas.CveClasificacionDetalle) + UpDatos.Update() + RegistraScript(String.Format("$('#{0}').modal('hide');", "DModalClasificacion"), "1") + RegistraScript("CreaDescripcionPS();", "2") + + + End If + + ObjVentas.Dispose() + End Sub + +#End Region + +#Region "EXISTENCIAS" + + Protected Sub GVExistencias_RowDataBound(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.DBCampo("CveAlmacen") = "" Then + e.Row.CssClass = "Totales" + End If + If UsuarioActual.CveEmpresa = 119 Then + GVExistencias.Columns(5).Visible = True + End If + End If + End Sub + + Private Sub CargaExistencias() + Dim ObjInventarios As New ClsInventarios() + If ObjInventarios.GetExistenciasProducto(CvePS, -1, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), ExcluyeApartados:=-1) Then + If ObjInventarios.DtResultados.Rows.Count > 0 Then + GVExistencias.DataSource = ObjInventarios.DtResultados + Else + GVExistencias.DataSource = Nothing + End If + End If + + ObjInventarios.Dispose() + GVExistencias.DataBind() + UpDatos.Update() + End Sub + +#End Region + + Protected Sub DdlImpTipoProducto_SelectedIndexChanged(sender As Object, e As EventArgs) + + CargaClaveGenerica(DdlImpTipoProducto.SelectedValue) + + End Sub + + Private Sub CargaClaveGenerica(TipoProducto As String) + DdlCategoriaToxicidad.Items.Clear() + DdlCategoriaToxicidad.DataBind() 'para que quite el selectedvalue + + If TipoProducto = "019" Then + DdlCategoriaToxicidad.Items.Add(New ListItem("Seleccione", "-1")) + DdlCategoriaToxicidad.Items.Add(New ListItem("000 - Sin selección", "000")) + DdlCategoriaToxicidad.Items.Add(New ListItem("001 - Categorías 1 y 2", "001")) + DdlCategoriaToxicidad.Items.Add(New ListItem("002 - Categoría 3", "002")) + DdlCategoriaToxicidad.Items.Add(New ListItem("003 - Categoría 4", "003")) + DdlCategoriaToxicidad.SelectedValue = "000" + + ElseIf TipoProducto = "021" Then + DdlCategoriaToxicidad.Items.Add(New ListItem("Seleccione", "-1")) + DdlCategoriaToxicidad.Items.Add(New ListItem("000 - Sin selección", "000")) + DdlCategoriaToxicidad.Items.Add(New ListItem("001 - Gasolina Menor a 92 octanos", "001")) + DdlCategoriaToxicidad.Items.Add(New ListItem("002 - Gasolina Mayor o igual a 92 octanos", "002")) + DdlCategoriaToxicidad.Items.Add(New ListItem("003 - Diesel", "003")) + DdlCategoriaToxicidad.Items.Add(New ListItem("004 - Combustibles no fósiles", "004")) + DdlCategoriaToxicidad.SelectedValue = "000" + End If + End Sub + +#Region "SECCION ALMACEN" + + Private Sub CreaDtSeccionAlmacen() + DtSeccionAlmacen = New DataTable + DtSeccionAlmacen.Columns.Add("CvePSAlmacenSeccion", GetType(Integer)) + DtSeccionAlmacen.Columns.Add("CveAlmacen", GetType(Integer)) + DtSeccionAlmacen.Columns.Add("Almacen", GetType(String)) + DtSeccionAlmacen.Columns.Add("CveAlmacenSeccion", GetType(Integer)) + DtSeccionAlmacen.Columns.Add("AlmacenSeccion", GetType(String)) + End Sub + Private Sub CargaGvSeccionAlmacen() + Dim ObjInv As New ClsInventarios + If ObjInv.GetProductosServiciosAlmacenSeccion(CvePS, -1, -1) Then + GvSeccionAlmacen.DataSource = ObjInv.DtResultados + DtSeccionAlmacen = ObjInv.DtResultados + End If + ObjInv.Dispose() + GvSeccionAlmacen.DataBind() + UpSeccionAlmacen.Update() + End Sub + + + Private Sub CargaCombosSeccionAlmacen() + DdlAlmacen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa) + DdlAlmacen.Items.Add(New ListItem("Seleccione", "-1")) + DdlAlmacen.DataBind() + + DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa) + DdlSeccionAlmacen.Items.Add(New ListItem("Seleccione", "-1")) + DdlSeccionAlmacen.DataBind() + + UpModalSeccionAlmacen.Update() + End Sub + + Protected Sub LnkSeccionAlmacenAdd_Click(sender As Object, e As EventArgs) + DdlAlmacen.SelectedIndex = 0 + DdlSeccionAlmacen.SelectedIndex = 0 + RegistraScript("$('#DivAddSeccionAlmacen').modal();") + UpModalSeccionAlmacen.Update() + End Sub + 'Protected Sub LnkEditarSeccionAlmacen_Click(sender As Object, e As EventArgs) + ' Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) + ' DdlAlmacen.SelectedValueExist(gvRow.DataKey("CvAlmacen")) + ' DdlSeccionAlmacen.SelectedValueExist(gvRow.DataKey("CveAlmacenSeccion")) + ' RegistraScript("$('#DivAddSeccionAlmacen').modal();") + ' UpModalSeccionAlmacen.Update() + 'End Sub + Protected Sub LnkRemoveSeccionAlmacen_Click(sender As Object, e As EventArgs) + Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) + If gvRow.DataKey("CvePSAlmacenSeccion").ToEntero > 0 Then + DtSeccionAlmacen.Rows(gvRow.RowIndex)("CveAlmacen") = -1 + Else + DtSeccionAlmacen.Rows(gvRow.RowIndex.ToEntero).Delete() + End If + DtSeccionAlmacen.AcceptChanges() + GvSeccionAlmacen.DataSource = DtSeccionAlmacen + GvSeccionAlmacen.DataBind() + UpSeccionAlmacen.Update() + End Sub + + Protected Sub BtnAddSeccionAlmacen_Click(sender As Object, e As EventArgs) + If DtSeccionAlmacen.FiltraParametros($"CveAlmacen = {DdlAlmacen.SelectedValue}").Rows.Count > 0 Then + Alert("No se puede especificar el mismo almacen en dos secciones", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim Row As DataRow = Nothing + Row = DtSeccionAlmacen.NewRow + Row("CvePSAlmacenSeccion") = -1 + Row("CveAlmacen") = DdlAlmacen.SelectedValue.ToEntero + Row("Almacen") = DdlAlmacen.SelectedItem.Text + Row("CveAlmacenSeccion") = DdlSeccionAlmacen.SelectedValue.ToEntero + Row("AlmacenSeccion") = DdlSeccionAlmacen.SelectedItem.Text + DtSeccionAlmacen.Rows.Add(Row) + DtSeccionAlmacen.AcceptChanges() + GvSeccionAlmacen.DataSource = DtSeccionAlmacen + GvSeccionAlmacen.DataBind() + UpSeccionAlmacen.Update() + + RegistraScript("$('#DivAddSeccionAlmacen').modal('hide');") + End Sub + + Protected Sub GvSeccionAlmacen_RowDataBound(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.DataRow Then + If Not e.Row.DBCampo("CveAlmacen").ToEntero > 0 Then + e.Row.Visible = False + End If + End If + End Sub + +#End Region + + + Protected Sub DdlIEPSPorcentaje_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlIEPSPorcentaje.SelectedIndexChanged + Select Case DdlIEPSPorcentaje.SelectedValue + Case "0.09" + DdlCategoriaToxicidad.SelectedValueExist("001") + Case "0.07" + DdlCategoriaToxicidad.SelectedValueExist("002") + Case "0.06" + DdlCategoriaToxicidad.SelectedValueExist("003") + Case Else + DdlCategoriaToxicidad.SelectedValueExist("000") + End Select + End Sub +End Class