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