Option Explicit On Option Strict On Imports System.Data Imports System.Data.SqlClient Imports System.IO Imports Extensiones Imports Microsoft.Reporting.WebForms Imports ZXing Partial Class ProductosyServicios Inherits ClsPaginas #Region " Propiedades " Private ReadOnly Property CvePS As Integer Get Return IfNull(ViewState("CvePS"), "-1").ToString.ToEntero End Get End Property Public Property PSAdicionalAnterior As String Get Return ViewState("PSAdicionalAnterior").ToString End Get Set(value As String) ViewState("PSAdicionalAnterior") = value End Set 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 Private Property CveUnidadMedida As Integer Get Return ViewState("CveUnidadMedida").ToString.ToEntero End Get Set(value As Integer) ViewState("CveUnidadMedida") = value End Set End Property Private Property GeneraServicioAF As Integer Get Return IfNull(ViewState("GeneraServicioAF"), "-1", ViewState("GeneraServicioAF")).ToString().ToEntero() End Get Set(value As Integer) ViewState("GeneraServicioAF") = value End Set End Property Public Property Imagen As String Get Return IfNull(ViewState("Imagen"), "", ViewState("Imagen")).ToString() End Get Set(value As String) ViewState("Imagen") = value End Set End Property #End Region Private ReadOnly Property PermiteClasificacion2 As Boolean Get Return (UsuarioActual.CveEmpresa.Contiene(1, 72, 80, 119)) 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 #Region "Material peligroso" Property ValidaMaterialPeligrosoMensaje As Boolean Get If ViewState("ValidaMaterialPeligroso") Is Nothing Then ViewState("ValidaMaterialPeligroso") = False End If Return Boolean.Parse(ViewState("ValidaMaterialPeligroso").ToString) End Get Set(value As Boolean) ViewState("ValidaMaterialPeligroso") = 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") If CargaDatos() Then 'Configuración de Modalidad Update BtnGuardar.Text = "Guardar Cambios" CargarAlias() CargaExistencias() End If CargaDatosCartaPorte() Else 'Configuración de Modalidad Insert RegistraScript("$('#C_Tab_TabPaquetes_tab').css('display' , 'none')") ViewState("CvePS") = -1 ChkEstado.Enabled = False ChkEstado.Checked = True LblFechaCaptura.Text = NowADS().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 If UsuarioActual.Empresa.Funcionalidad(170) <> "" Then ChkSerie.Checked = UsuarioActual.Empresa.Funcionalidad(170).Contains("SERIE") ChkLote.Checked = UsuarioActual.Empresa.Funcionalidad(170).Contains("LOTE") ChkCaducidad.Checked = UsuarioActual.Empresa.Funcionalidad(170).Contains("CADUCIDAD") ChkSeccion.Checked = UsuarioActual.Empresa.Funcionalidad(170).Contains("SECCION") End If If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then DivRegistroRSCO1.Visible = True DivRegistroRSCO2.Visible = True DivRegistroRSCO3.Visible = True TxtRegistroRSCO.Text = "" TxtFechaVigenciaRSCO.Text = "" ChkFechaIndeterminadaRSCO.Checked = False End If If UsuarioActual.CveEmpresa.Contiene(119) Then DdlIVA.Items.Insert(0, New ListItem("Seleccione", "-2")) If CvePS > 0 Then DdlIVA.SelectedValueExist(-2) End If Else DdlIVA.SelectedValueExist(-1) 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() 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.Empresa.Funcionalidad(558) = "1" Then 'DivDatos.Attributes("class") = "col-md-12" DivDdlTipo.Visible = True 'DdlTipoPSDes.Attributes.Add("onChange", "CreaDescripcionPS();") End If If UsuarioActual.CveEmpresa.Contiene(72, 80) Then TxtPS.CssClass = "form-control Mayuscula" End If If UsuarioActual.CveEmpresa.Contiene(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) If Request("GeneraServicioAF") IsNot Nothing AndAlso IsNumeric(Request("GeneraServicioAF")) AndAlso Request("GeneraServicioAF").ToEntero() = 1 Then GeneraServicioAF = 1 TxtPS.Text = "Servicio de facturación de activos fijos" DdlTipoPS.SelectedValueExist("1") DdlTipoPS.Enabled = False ChkAplicaParaVenta.Checked = True Dim DrSAT As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, SATClavePS:="84111506", AplicaParaVenta:=1).FiltroPrimero("") ', SATClavePS:=CveSATNC DdlSATPS.SelectedValue = DrSAT("CveSATPS").ToString() DdlSATPS.SelectedText = DrSAT("SATClaveProductoServicio").ToString() End If 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() CargarMarcas() CargaCombosPSComplementos() 'CargaPSAdicional(DdlPSAdicional) If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then DivPSAdicionalVigencia.Visible = True divLitraje.Visible = True DivClasificacion2.Visible = True CargaPSAdicionalesVigencias() DdlTamanio.DataSource = GlobalDTAcumTamaños(UsuarioActual.CveEmpresa) DdlTamanio.DataBind() LtlNumberParte.Text = "Código CPK" Else LtlNumberParte.Text = "Número de Parte" End If divPrecio.Visible = UsuarioActual.Empresa.Funcionalidad(404) = "" ' si tiene lista de precio, se oculta el precio por ps If UsuarioActual.CveEmpresa = 1 Then divPrecio.Visible = True End If If UsuarioActual.Empresa.Funcionalidad(713) = "1" Then '' empresa deduce IEPS divIEPS.Visible = True End If If UsuarioActual.CveEmpresa.Contiene(1, 13) Then DivPSAdicionalVigencia.Visible = True LtlPSAdicionalVigencia.Text = "Producto Relacionado:" CargaPSAdicionalesVigencias() End If 'Nuevo R: 26/09/2017 CargaProveedores() CargarCompuestos() CargaPS() 'ChangeDdl() CargaDdlSATPS() CargaDdlFraccionArancelaria() CveSATPS = -1 CargaCombosSeccionAlmacen() DdlObjetoImpuesto.DataSource = GlobalDTSATObjetosImpuestos DdlObjetoImpuesto.DataBind() DdlObjetoImpuesto.SelectedValue = "2" 'se sugiere este valor, que sería el más utilizado 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) If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then DivLlantas.Visible = True DivPSAdicionales.Visible = True CargaPanelLlantas() End If If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then DivPSAdicionales.Visible = True DivTipoAdicional.Visible = True End If CvePSAdicional = -1 'Nueva funcionalidad MLopez: 18/11/2022 -- Empresa Citrícola If UsuarioActual.Empresa.Funcionalidad(267) = "1" Then DivCitricos.Visible = True CargaPanelCitricos() End If If UsuarioActual.CveEmpresa = 119 Then DiveCommerce.Visible = True Dim CveCategoria2 As Integer = GlobalDTGralCategorias2(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveCategoria", "Categoria = 'Ecommerce'").ToEntero DdlEcommerceClasificacion.DataSource = GlobalDTClasificaciones2(UsuarioActual.CveEmpresa, CveCategoria2) DdlEcommerceClasificacion.DataBind() End If If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then DVCodigoPSAlterno.Visible = True End If End Sub Private Sub CargaCombosPSComplementos() DdlClaveSectorCOFEPRIS.DataSource = GlobalDT_SAT_CP_SectorCOFEPRIS DdlClaveSectorCOFEPRIS.DataBind() DdlClaveSectorCOFEPRIS.Items.Insert(0, New ListItem("-", "-1")) DdlClaveFormaFarmaceutica.DataSource = GlobalDT_SAT_CP_FormaFarmaceutica DdlClaveFormaFarmaceutica.DataBind() DdlClaveFormaFarmaceutica.Items.Insert(0, New ListItem("-", "-1")) DdlCondicionesEspTransporte.DataSource = GlobalDT_SAT_CP_CondicionesEspeciales DdlCondicionesEspTransporte.DataBind() DdlCondicionesEspTransporte.Items.Insert(0, New ListItem("-", "-1")) DdlTipoMateria.DataSource = GlobalDT_SAT_CP_TipoMateria DdlTipoMateria.DataBind() DdlTipoMateria.Items.Insert(0, New ListItem("-", "-1")) End Sub Private Sub CargaPanelLlantas() Dim ObjGral As New ClsGenerales() If ObjGral.GetModelos(UsuarioActual.CveEmpresa) Then DdlModelo.DataSource = ObjGral.DtResultados.Copy() End If ObjGral.Dispose() DdlMedida.DataSource = GlobalDTPSMedidas(UsuarioActual.CveEmpresa) DdlRin.DataSource = GlobalDTPSRinTamaños(UsuarioActual.CveEmpresa) DdlModelo.DataBind() DdlMedida.DataBind() DdlRin.DataBind() End Sub Private Sub CargaPanelCitricos() DdlEmpacado.DataSource = GlobalDTGralEmpacados(UsuarioActual.CveEmpresa) DdlTipoOrganico.DataSource = GlobalDTGralTipoOrganicos(UsuarioActual.CveEmpresa) DdlEmpacado.DataBind() DdlTipoOrganico.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) = Nothing 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:=DdlUsoClasificacion.SelectedValue.ToEntero).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") Else DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=DdlUsoClasificacion.SelectedValue.ToEntero).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 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 Function CargaDatos() As Boolean Dim Retorno As Boolean = False Dim ObjProductosServicios As New ClsProductosServicios() If ObjProductosServicios.GetPS(CvePS, -1, UsuarioActual.CveEmpresa) Then If ObjProductosServicios.DtResultados.Rows.Count > 0 Then Retorno = True '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.DtResultados.Rows(0)("CvePSAdicionalVigencia").ToString.ToEntero() > 0 Then DdlPSAdicionalVigencia.SelectedValue = ObjProductosServicios.DtResultados.Rows(0)("CvePSAdicionalVigencia").ToString DdlPSAdicionalVigencia.SelectedText = ObjProductosServicios.DtResultados.Rows(0)("CodigoPSVigencia").ToString 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 If ObjProductosServicios.CveMaterialPeligroso > 0 Then DdlMaterialPeligroso.SelectedValue = ObjProductosServicios.CveMaterialPeligroso.ToString DdlMaterialPeligroso.SelectedText = GlobalDTMaterialPeligroso(ObjProductosServicios.CveMaterialPeligroso).FiltroPrimeroValor("ClaveMaterialPeligrosoDescripcion") End If If ObjProductosServicios.CveEmbalaje > 0 Then DdlEmbalaje.SelectedValue = ObjProductosServicios.CveEmbalaje.ToString DdlEmbalaje.SelectedText = GlobalDTEmbalajes(ObjProductosServicios.CveEmbalaje).FiltroPrimeroValor("ClaveEmbalajeDescripcion") End If If ObjProductosServicios.PesoKg > 0 Then TxtPesoKg.Text = ObjProductosServicios.PesoKg.ToString End If TxtDimensiones.Text = ObjProductosServicios.Dimensiones DdlTipoPSDes.SelectedValueExist(ObjProductosServicios.CveClasificacionDetalle.ToString) DdlUnidadMedida.SelectedValue = ObjProductosServicios.CveUnidadMedida.ToString CveUnidadMedida = ObjProductosServicios.CveUnidadMedida.ToString.ToEntero DdlMarca.SelectedValue = ObjProductosServicios.CveMarca.ToString DdlMarcaPSDes.SelectedValue = ObjProductosServicios.CveMarca.ToString TxtCodigo.Text = ObjProductosServicios.Codigo TxtNumeroParte.Text = ObjProductosServicios.NumeroParte TxtCodigoBarras.Text = ObjProductosServicios.CodigoBarras CodigoBarrasCargado = ObjProductosServicios.CodigoBarras TxtLitraje.Text = ObjProductosServicios.DtResultados.Rows(0)("Litraje").ToString 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) Me.Imagen = ObjProductosServicios.DtResultados.Rows(0)("Imagen").ToString If Not String.IsNullOrEmpty(Me.Imagen) Then imgImagen.Attributes.Add("src", String.Format("/ashx/SIGWeb.ashx?Metodo=GetImg&r={0}", Extensiones.Encripta(Me.Imagen))) hplImagen.Attributes.Add("href", String.Format("/ashx/SIGWeb.ashx?Metodo=GetImg&r={0}", Extensiones.Encripta(Me.Imagen))) End If If UsuarioActual.CveRol = 1 Then DivImagen.Visible = True upGaleria.Update() RegistraScript("clickgaleria();", "CG") 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) If UsuarioActual.CveEmpresa.Contiene(119) Then DdlIVA.Items.Insert(0, New ListItem("Seleccione", "-2")) If ObjProductosServicios.DtResultados.Rows(0)("IVACatPS").ToString = "" Then DdlIVA.SelectedValueExist(-2) End If End If 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 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 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) DdlObjetoImpuesto.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveObjetoImpuesto").ToString) DdlEmpacado.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTipoEmpacado").ToString) DdlTipoOrganico.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTipoOrganico").ToString) TxtNombreComercial.Text = ObjProductosServicios.DtResultados.Rows(0)("NombreComercial").ToString ChkActivoEcommerce.Checked = ObjProductosServicios.DtResultados.Rows(0)("ActivoEcommerce").ToString = "True" TxtEcommerceNota.Text = ObjProductosServicios.DtResultados.Rows(0)("NotasAdicionales").ToString TxtEcommerceEtiquetas.Text = ObjProductosServicios.DtResultados.Rows(0)("EcommerceEtiquetas").ToString TxtEcommercePrecio.Text = ObjProductosServicios.DtResultados.Rows(0)("EcommercePrecio").ToString.ToDecimal.ToString("#,###.####") DdlEcommerceClasificacion.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveClasificacionEcommerce").ToString) TxtEcommerceCantidad.Text = ObjProductosServicios.DtResultados.Rows(0)("EcommerceCantidad").ToString.ToDecimal.ToString("#,###.####") Try DdlClasificacion_SelectedIndexChanged(DdlClasificacion, Nothing) DdlTamanio.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTamaño").ToString) If DdlTamanio.SelectedValue.ToEntero() > 0 Then Dim Dr As DataRow = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0) Dim DebeTenerTamanio As Boolean = Boolean.Parse(Dr("EsAcumulador").ToString) 'SI ES MOTOBATERIA If DdlClasificacion.SelectedValue = "20517" Then DebeTenerTamanio = True End If 'VALIDA QUE EL PRODUCTO, NO ES ACUMULADOR QUE NO TENGA TAMAÑO If Not DebeTenerTamanio AndAlso DdlTamanio.SelectedValue.ToEntero() > 0 Then Alert($"Un producto/servicio con la clasificación '{Dr("Clasificacion")}' no debe tener especificado un tamaño.", TipoMensaje.MsgAdvertencia) RfvDdlTamanio.Visible = False CERfvDdlTamanio.Enabled = False End If 'VALIDA QUE EL PRODUCTO, SI ES ACUMULADOR QUE TENGA TAMAÑO If DebeTenerTamanio AndAlso DdlTamanio.SelectedValue.ToEntero() <= 0 Then Alert($"Un producto/servicio con la clasificación '{Dr("Clasificacion")}' debe tener especificado un tamaño.", TipoMensaje.MsgAdvertencia) End If DvTamanio.Visible = True End If 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") ChkSerie.Checked = ObjProductosServicios.AplicaSerie ChkLote.Checked = ObjProductosServicios.AplicaLote ChkCaducidad.Checked = ObjProductosServicios.AplicaCaducidad ChkSeccion.Checked = ObjProductosServicios.AplicaSeccion TxtTiempoCaducidad.Text = ObjProductosServicios.DtResultados.Rows(0)("TiempoCaducidad").ToString() HabilitaAplicaCaducidadTiempo() If ObjProductosServicios.AplicaSeccion Then CargaGvSeccionAlmacen() DivSeccionAlmacen.Visible = True End If CargaCaracteristicas() LnkUnificar.Visible = True ChkPrecioLibre.Checked = ObjProductosServicios.PrecioLibre If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then LnkGenerarEtiqueta.Visible = True End If If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then TxtRegistroRSCO.Text = ObjProductosServicios.DtResultados.Rows(0)("RegistroRSCO").ToString ChkFechaIndeterminadaRSCO.Checked = Boolean.Parse(ObjProductosServicios.DtResultados.Rows(0)("VigenciaIndeterminadaRSCO").ToString) DivRegistroRSCO1.Visible = True DivRegistroRSCO2.Visible = True If ChkFechaIndeterminadaRSCO.Checked Then TxtFechaVigenciaRSCO.Text = "01/01/1900" Else TxtFechaVigenciaRSCO.Text = ObjProductosServicios.DtResultados.Rows(0)("FechaVigenciaRSCO").ToString.ToDate.ToString("dd/MM/yyyy") DivRegistroRSCO3.Visible = True If TxtFechaVigenciaRSCO.Text = "01/01/1900" Then TxtFechaVigenciaRSCO.Text = "" End If End If Else TxtRegistroRSCO.Text = "" TxtFechaVigenciaRSCO.Text = "" ChkFechaIndeterminadaRSCO.Checked = False End If If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then TxtCodigoAlterno.Text = ObjProductosServicios.DtResultados.Rows(0)("CodigoAlterno").ToString TxtPSAlterno.Text = ObjProductosServicios.DtResultados.Rows(0)("PSAlterno").ToString DVCodigoPSAlterno.Visible = True End If If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then DivPSExhibicion.Visible = True ChkPSExhibicion.Checked = CBool(ObjProductosServicios.DtResultados.Rows(0)("ProductoExhibicion").ToString) End If 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() Return Retorno End Function 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.ddlWS.Attributes.Add("data-metodo", "getpssat") End Sub Public Sub CargaPSAdicionalesVigencias() DdlPSAdicionalVigencia.setEsWebService(True) DdlPSAdicionalVigencia.Attributes.Add("data-cvesubproyecto", "-1") DdlPSAdicionalVigencia.ddlWS.Attributes.Add("data-cveclasificacion", "-1") DdlPSAdicionalVigencia.ddlWS.Attributes.Add("data-pagina", "ventas/ventas") DdlPSAdicionalVigencia.ddlWS.Attributes.Add("data-Estatus", "1") End Sub Public Sub CargaDdlFraccionArancelaria() DdlFraccionArancelaria.setEsWebService(True) DdlFraccionArancelaria.Attributes.Add("data-metodo", "getfraccionarancelaria") If UsuarioActual.Empresa.Funcionalidad(161) = "1" Then divCartaPorte.Visible = True DdlMaterialPeligroso.setEsWebService(True) DdlMaterialPeligroso.Attributes.Add("data-metodo", "getsatmatpeligroso") DdlEmbalaje.setEsWebService(True) DdlEmbalaje.Attributes.Add("data-metodo", "getsatembalajes") End If 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 = -1 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 DdlFraccionArancelaria.SelectedValue.ToEntero > 0 AndAlso TxtCodigo.Text.Trim.Length = 0 Then Alert("El campo Numero de Parte / Código es requerido (al seleccionar una Fracción Arancelaria el campo Numero de Parte / Código se vuelve requerido).", TipoMensaje.MsgAdvertencia) Exit Sub End If If DdlSATPS.txtValue.Value.ToEntero > 0 Then If UsuarioActual.Empresa.Funcionalidad(161) = "1" Then ' si tiene activada la carta porte If Not ValidaMaterialPeligrosoMensaje Then ValidaMaterialPeligroso(DdlSATPS.txtValue.Value.ToEntero) Exit Sub End If End If End If If DdlSATPS.SelectedValue.Contiene("46920", "0", "-1") AndAlso UsuarioActual.CveEmpresa.Contiene(119, 158, 72, 80, 145) Then Alert("El Producto Servicio SAT con clave '01010101' no es valido, por favor seleccione otro", TipoMensaje.MsgAdvertencia) Exit Sub End If 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 códigos no pueden ser iguales. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) Return End If If ddlMetodos.SelectedValue = "5" Or ChkSerie.Checked Then If Not (ddlMetodos.SelectedValue = "5" And ChkSerie.Checked) Then Dim Mensaje As String = If(ddlMetodos.SelectedValue = "5", "Si el método de salida del inventario es 'Serie' el producto debe poder aplicar serie", "Si el produco aplica serie el método de inventario debe ser 'SerieLote'") Alert(Mensaje) Exit Sub End If End If If UsuarioActual.Empresa.Funcionalidad(265) = "1" And TxtCodigo.Text = "" Then Alert("El código es requerido.", TipoMensaje.MsgAdvertencia) Return End If If TxtCodigo.Text <> "" AndAlso Not TxtCodigo.Text.Length >= 3 Then Alert("El código tiene que que tener una longitud de al menos 3 digitos.", TipoMensaje.MsgAdvertencia) Return End If If UsuarioActual.CveEmpresa = 119 AndAlso DdlTipoPS.SelectedValue = "2" Then If TxtVentaMinima.Text.ToDecimal <= 0 Then Alert("La cantidad de venta mínima debe de ser especificada (mayor a cero)", TipoMensaje.MsgAdvertencia) Return End If End If Dim CveTamaño As Integer = DdlTamanio.SelectedValue.ToEntero 'VALIDAR TAMAÑOS Y ACUMULADORES If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then Dim Dr As DataRow = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0) Dim DebeTenerTamanio As Boolean = Boolean.Parse(Dr("EsAcumulador").ToString) 'SI ES MOTOBATERIA If DdlClasificacion.SelectedValue = "20517" Then DebeTenerTamanio = True End If 'VALIDA QUE EL PRODUCTO, NO ES ACUMULADOR QUE NO TENGA TAMAÑO If Not DebeTenerTamanio AndAlso CveTamaño > 0 Then Alert($"Un producto/servicio con la clasificación '{Dr("Clasificacion")}' no debe tener especificado un tamaño.", TipoMensaje.MsgAdvertencia) Return End If 'VALIDA QUE EL PRODUCTO, SI ES ACUMULADOR QUE TENGA TAMAÑO If DebeTenerTamanio AndAlso CveTamaño <= 0 Then Alert($"Un producto/servicio con la clasificación '{Dr("Clasificacion")}' debe tener especificado un tamaño.", TipoMensaje.MsgAdvertencia) Return End If End If Dim ObjProductosServicios As New ClsProductosServicios() Dim ObjInv As New ClsInventarios(ObjProductosServicios.IniciaTransacSQL()) Dim ObjEmpresas As New ClsSisEmpresas(ObjProductosServicios.IniciaTransacSQL()) Dim TieneError As Boolean = False Dim AccionJS As String = "" Try 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) And CvePS = -1 Then CveMarca = DdlMarcaPSDes.SelectedValue.ToEntero Else CveMarca = DdlMarca.SelectedValue.ToEntero Dim TiempoCaducidad As Integer = -1 If ChkCaducidad.Checked AndAlso DivTiempoCaducidad.Visible Then If TxtTiempoCaducidad.Text.Length > 0 AndAlso IsNumeric(TxtTiempoCaducidad.Text) Then TiempoCaducidad = TxtTiempoCaducidad.Text.ToEntero() Else Alert("Falta indicar el tiempo de caducidad", TipoMensaje.MsgAdvertencia) Exit Sub End If End If If TxtFechaVigenciaRSCO.Text = "" Then TxtFechaVigenciaRSCO.Text = "01/01/1900" End If 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, TxtNumeroParte.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, 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:=CveTamaño, CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(), CveTipoEmpacado:=DdlEmpacado.SelectedValue.ToEntero(), CveTipoOrganico:=DdlTipoOrganico.SelectedValue.ToEntero(), ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked, TiempoCaducidad:=TiempoCaducidad, CvePSAdicionalVigencia:=DdlPSAdicionalVigencia.SelectedValue.ToEntero(), PrecioLibre:=ChkPrecioLibre.Checked, CveMaterialPeligroso:=DdlMaterialPeligroso.SelectedValue.ToEntero, CveEmbalaje:=DdlEmbalaje.SelectedValue.ToEntero, PesoKg:=TxtPesoKg.Text.ToDecimal, Dimensiones:=TxtDimensiones.Text.Trim, CveObjetoImpuesto:=DdlObjetoImpuesto.SelectedValue.ToEntero, Litraje:=TxtLitraje.Text.ToDecimal, RegistroRSCO:=TxtRegistroRSCO.Text, FechaVigenciaRSCO:=TxtFechaVigenciaRSCO.Text.ToDate, VigenciaIndeterminadaRSCO:=ChkFechaIndeterminadaRSCO.Checked, NombreComercial:=TxtNombreComercial.Text.Trim, NotasAdicionales:=TxtEcommerceNota.Text.Trim, EcommerceEtiquetas:=TxtEcommerceEtiquetas.Text.Trim.Replace(".", ""), EcommercePrecio:=TxtEcommercePrecio.Text.Trim.ToDecimal, CveClasificacionEcommerce:=DdlEcommerceClasificacion.SelectedValue.ToEntero, EcommerceCantidad:=TxtEcommerceCantidad.Text.Trim.ToDecimal, CodigoAlterno:=TxtCodigoAlterno.Text.Trim, PSAlterno:=TxtPSAlterno.Text.Trim, ProductoExhibicion:=ChkPSExhibicion.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 If UsuarioActual.Empresa.Funcionalidad(563) <> "" AndAlso ChkAplicaParaVenta.Checked Then TieneError = GuardarProductoEnFranquicia(ObjProductosServicios, PSS, CveMetodoInv, EsPaquete, True) End If If GeneraServicioAF = 1 Then Dim RowFuncionalidad380 As DataRow = Nothing If ObjEmpresas.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then RowFuncionalidad380 = ObjEmpresas.DtResultados.FiltroPrimero("CveFuncionalidad = 380") Else TieneError = True End If 'SI NO TIENE LA FUNCIONALIDAD 380 GUARDAR LA FUNCIONALIDAD If Not TieneError AndAlso RowFuncionalidad380 Is Nothing Then If Not ObjEmpresas.AddUpdateEmpresaFuncionalidades(UsuarioActual.CveEmpresa, 380, $"{Me.CvePS}") Then TieneError = True End If End If 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 'RMF.2021.07.30, se comentó, por no entender la validaci´n, y nodeja limpiar codigos ' 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, TxtNumeroParte.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, UsuarioActual.CveEmpresa, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim, AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, 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:=CveTamaño, CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(), CveTipoEmpacado:=DdlEmpacado.SelectedValue.ToEntero(), CveTipoOrganico:=DdlTipoOrganico.SelectedValue.ToEntero(), ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked, TiempoCaducidad:=TiempoCaducidad, CvePSAdicionalVigencia:=DdlPSAdicionalVigencia.SelectedValue.ToEntero(), PrecioLibre:=ChkPrecioLibre.Checked, CveMaterialPeligroso:=DdlMaterialPeligroso.SelectedValue.ToEntero, CveEmbalaje:=DdlEmbalaje.SelectedValue.ToEntero, PesoKg:=TxtPesoKg.Text.ToDecimal, Dimensiones:=TxtDimensiones.Text.Trim, CveObjetoImpuesto:=DdlObjetoImpuesto.SelectedValue.ToEntero, Litraje:=TxtLitraje.Text.ToDecimal, RegistroRSCO:=TxtRegistroRSCO.Text, FechaVigenciaRSCO:=TxtFechaVigenciaRSCO.Text.ToDate, VigenciaIndeterminadaRSCO:=ChkFechaIndeterminadaRSCO.Checked, NombreComercial:=TxtNombreComercial.Text.Trim, NotasAdicionales:=TxtEcommerceNota.Text.Trim, EcommerceEtiquetas:=TxtEcommerceEtiquetas.Text.Trim.Replace(".", ""), ActivoEcommerce:=ChkActivoEcommerce.Checked, EcommercePrecio:=TxtEcommercePrecio.Text.Trim.ToDecimal, CveClasificacionEcommerce:=DdlEcommerceClasificacion.SelectedValue.ToEntero, EcommerceCantidad:=TxtEcommerceCantidad.Text.Trim.ToDecimal, CodigoAlterno:=TxtCodigoAlterno.Text.Trim, PSAlterno:=TxtPSAlterno.Text.Trim, ProductoExhibicion:=ChkPSExhibicion.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 If UsuarioActual.Empresa.Funcionalidad(563) <> "" AndAlso ChkAplicaParaVenta.Checked Then TieneError = GuardarProductoEnFranquicia(ObjProductosServicios, PSS, CveMetodoInv, EsPaquete, False) 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 Catch ex As Exception TieneError = True OnError("Ocurrió un error al guardar al guardar el producto/servicio.", ex) End Try If Not TieneError Then If Not GuardaDatosCartPorte(ObjProductosServicios.IniciaTransacSQL) Then TieneError = True End If End If If Not TieneError Then ObjProductosServicios.Commit() Alert("El Producto/Servicio se guardo correctamente." + If(GeneraServicioAF = 1, " Recargue la pagina de ventas para poder utilizar el servicio", ""), 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 As Boolean = False If ObjAliasAdd.AddPSAlias(TxtAlias.Text.ToString, CvePS, False, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) 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 GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, -1, -1) = 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 As Boolean = False If ObjAliasDelete.RemovePSAlias(GVAlias.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero, GVAlias.Rows(e.RowIndex).DataKey("PSAlias").ToString, UsuarioActual.CveUsuario) 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 As Boolean = False Dim CveUM As Integer = GvEquivalencia.Rows(e.RowIndex).DataKey("CveUM").ToEntero Dim UnidadBase As Boolean = GvEquivalencia.Rows(e.RowIndex).DataKey("UnidadBase").ToString = "True" Dim Cantidad As Decimal = 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 As Boolean = False Dim CveUM As Integer = 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 As Boolean = False Dim CvePSAdicional As Integer = GvPSAdicionales.Rows(e.RowIndex).DataKey("CvePSAdicional").ToEntero Dim PSAdicional As String = GvPSAdicionales.Rows(e.RowIndex).DataKey("PS").ToString Dim ObjProductosServicios As New ClsProductosServicios() If Not ObjProductosServicios.RemovePSAdicionales(CvePS, CvePSAdicional) Then TieneError = True Else TieneError = EliminarProductosEquivalenteEnFranquicia(ObjProductosServicios, PSAdicional) End If ObjProductosServicios.Dispose() If Not TieneError Then Alert("El Producto/Servicio Adicional 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 CargaPSAdicional(DdlPSAdicional) 'DdlPSAdicional.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa) 'DdlPSAdicional.DataBind() 'DdlPSAdicional.Items.Add(New ListItem("Seleccione", "-1")) DdlPSAdicional.SelectedValue = "-1" TxtCantidadPSAdicional.Text = "" UpCantidad.Visible = False RBLCantidad.SelectedValue = "1" RblTipoAdicional.SelectedValue = "1" UpAddPSAdicional.Update() RegistraScript("$('#divAddPSAdicional').modal();") End Sub Private Sub CargaPSAdicional(Objeto As ADServerControl.Dropdownlost, Optional AplicaParaVenta As Boolean = True) 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:=If(AplicaParaVenta, 1, -1)) Objeto.ddl.DataBind() Objeto.ddl.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2")) Objeto.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) Else Objeto.SelectedValue = " - 1" Objeto.txtText.Value = "" Objeto.txtValue.Value = "" End If End Sub Private Sub BtnAgregarPSAdicional_Click(sender As Object, e As EventArgs) Handles BtnAgregarPSAdicional.Click If DdlPSAdicional.SelectedValue.ToEntero <= 0 Then Alert("Debe seleccionar un producto", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim ObjProductosServicios As New ClsProductosServicios() ObjProductosServicios.IniciaTransacSQL() Dim TieneError As Boolean = False Dim CodigoAdicional As String = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPSAdicional.SelectedValue.ToEntero).FiltroPrimeroValor("Codigo", "") If CvePSAdicional < 0 Then If Not ObjProductosServicios.AddPSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0), Tipo:=RblTipoAdicional.SelectedValue.ToEntero()) Then TieneError = True Else TieneError = GuardarProductosEquivalenteEnFranquicia(ObjProductosServicios, True, CodigoAdicional) End If Else If Not ObjProductosServicios.UpdatePSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, CvePSAdicional, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0), Tipo:=RblTipoAdicional.SelectedValue.ToEntero()) Then TieneError = True Else TieneError = GuardarProductosEquivalenteEnFranquicia(ObjProductosServicios, False, CodigoAdicional, PSAdicionalAnterior) 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") PSAdicionalAnterior = GvRow.DataKey("PS").ToString RblTipoAdicional.SelectedValue = GvRow.DataKey("Tipo").ToString If TxtCantidadPSAdicional.Text.ToEntero = 0 Then UpCantidad.Visible = False RBLCantidad.SelectedValue = "1" Else UpCantidad.Visible = True RBLCantidad.SelectedValue = "2" End If CvePSAdicional = GvRow.DataKey("CvePSAdicional").ToEntero CargaPSAdicional(DdlPSAdicional) DdlPSAdicional.txtValue.Value = GvRow.DataKey("CvePSAdicional") DdlPSAdicional.txtText.Value = GvRow.DataKey("CodigoPS") DdlPSAdicional.SelectedValue = GvRow.DataKey("CvePSAdicional") DdlPSAdicional.SelectedText = GvRow.DataKey("CodigoPS") UpBodyDireccion.Update() UpAddPSAdicional.Update() 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 DdlMarca.DataSource = GlobalDTGralMarcas(UsuarioActual.CveEmpresa) DdlMarcaPSDes.DataSource = GlobalDTGralMarcas(UsuarioActual.CveEmpresa) 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() divRowRSCO.Visible = True 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, Estatus:=-1) 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 ErrorUnificacion As Boolean = False Dim ObjPS As New ClsProductosServicios ObjPS.IniciaTransacSQL() 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) ErrorUnificacion = True End If If ErrorUnificacion Then ObjPS.RollBack() Else ObjPS.Commit() End If ObjPS.Dispose() If Not ErrorUnificacion Then RecargaGlobal() RegistraScript("$('#DivUnificar').modal('hide');") UpDatos.Update() End If 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, Optional PureBacode As Boolean = False) 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 opciones.PureBarcode = PureBacode 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 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 Me.CvePS <= 0 AndAlso (Not CveSATPS > 0 Or CveSATPS = 46920) Then Dim Dr As DataRow = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0) If Dr IsNot Nothing Then DdlSATPS.SelectedValue = Dr("CveSATPS").ToString DdlSATPS.SelectedText = Dr("SATClaveProductoServicio").ToString End If End If If UsuarioActual.CveEmpresa.Contiene(72, 80) Then VerificaRequiereSerieLote() End If ' CargaClasificacionesDetalles() End If If DdlClasificacion.SelectedValue.ToEntero > 0 Then Try Dim Dr As DataRow = 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 OnError("Ocurrió un error al mostrar los tamaños", ex) End Try End If End Sub Private 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().CopyToDataTable.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 As Boolean = 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 As String = TxtEcommerceDescripcion.Text.Trim 'Dim PrecioBase As Double = TxtEcommercePrecioBase.Text.Trim.ToDouble 'Dim PrecioPromocion As Double = TxtEcommercePrecioPromocion.Text.Trim.ToDouble 'Dim Disponible As Boolean = 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 As Boolean = True Dim Mensaje As New StringBuilder 'DESCRIPCION 'Dim Descripcion As String = 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 As Double = 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 As Double = 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 As Boolean = False 'Dim CveInsignia As Integer = 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 As Boolean = True 'Dim Mensaje As New StringBuilder ''INSIGNIA 'Dim CveInsignia As Integer = 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 As Boolean = False ' Dim GvRow As GridViewRow = 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 As String = "" 'Dim Archivo As String = "" 'Dim DirectorioTemporal As String = "" 'Dim DirectorioDestino As String = $"{UsuarioActual.Empresa.Ruta}\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 = NowADS().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}{1}", UsuarioActual.Empresa.Ruta, 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 As Boolean = False 'Dim CvePS As Integer = 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 As Boolean = True 'Dim Mensaje As New StringBuilder ''PS 'Dim CvePS As Integer = 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 As Boolean = False ' 'Dim GvRow As GridViewRow = 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(UsuarioActual.CveEmpresa) = Nothing '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, UsuarioActual.CveEmpresa) 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() 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 Protected Sub ddlMetodos_SelectedIndexChanged(sender As Object, e As EventArgs) If ddlMetodos.SelectedValue = "5" Then ChkSerie.Checked = True Else ChkSerie.Checked = False End If UpConta.Update() End Sub Protected Sub ChkSerie_CheckedChanged(sender As Object, e As EventArgs) If ElProductoTieneExistencia() Then ChkSerie.Checked = Not ChkSerie.Checked Alert("el producto no se puede cambiar la opcion, porque tiene existencia.", TipoMensaje.MsgAdvertencia) Else If ChkSerie.Checked Then ddlMetodos.SelectedValueExist("5") Else ddlMetodos.SelectedValueExist("-1") End If UpConta.Update() End If End Sub Protected Sub ChkSeccion_CheckedChanged(sender As Object, e As EventArgs) If ElProductoTieneExistencia() Then ChkSeccion.Checked = Not ChkSerie.Checked Alert("el producto no se puede cambiar la opcion, porque tiene existencia.", TipoMensaje.MsgAdvertencia) Else If ChkSeccion.Checked Then DivSeccionAlmacen.Visible = True Else DivSeccionAlmacen.Visible = False End If UpSeccionAlmacen.Update() End If End Sub Protected Sub DdlAlmacen_SelectedIndexChanged(sender As Object, e As EventArgs) DdlSeccionAlmacen.Items.Clear() DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero) DdlSeccionAlmacen.Items.Add(New ListItem("Seleccione", "-1")) DdlSeccionAlmacen.DataBind() UpModalSeccionAlmacen.Update() End Sub Protected Sub DdlUnidadMedida_SelectedIndexChanged(sender As Object, e As EventArgs) If ElProductoTieneExistencia() Then DdlUnidadMedida.SelectedValue = CveUnidadMedida.ToString Alert("el producto no se puede cambiar la opcion, porque tiene existencia.") End If End Sub Private Function ElProductoTieneExistencia() As Boolean Dim Existencia As Decimal = 0 If CvePS > 0 Then Dim ObjInventarios As New ClsInventarios Existencia = ObjInventarios.GetExistenciasPS(CvePS, CveUnidadMedida, UsuarioActual.CveEmpresa, -1) ObjInventarios.Dispose() End If Return Existencia > 0 End Function Protected Sub ChkCaducidad_CheckedChanged(sender As Object, e As EventArgs) HabilitaAplicaCaducidadTiempo() End Sub Private Sub HabilitaAplicaCaducidadTiempo() If UsuarioActual.CveEmpresa.Contiene(119, 158) Then DivTiempoCaducidad.Visible = ChkCaducidad.Checked RfvTxtTiempoCaducidad.Enabled = ChkCaducidad.Checked End If End Sub Private Function GuardarProductoEnFranquicia(ObjPS As ClsProductosServicios, PSS As String, CveMetodoInv As Integer, EsPaquete As Integer, Agregar As Boolean) As Boolean Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563) Dim EmpresasFranquicia As List(Of Integer) = StrEmpresas.Split(","c).ToList().ConvertAll(Function(x) Convert.ToInt32(x)) For Each CveEmpresaFranquicia As Integer In EmpresasFranquicia Dim nombreEmpresa As String = GlobalDTEmpresas(CveEmpresaFranquicia).FiltroPrimeroValor("Empresa") Dim CveClasificacion As Integer = GlobalDTClasificaciones(CveEmpresa:=CveEmpresaFranquicia).FiltroPrimeroValor("CveClasificacion", String.Format("Clasificacion = '{0}'", DdlClasificacion.SelectedItem.Text)).ToEntero Dim CveUnidadMedida As Integer = GlobalDTUnidadesMedida(CveEmpresa:=CveEmpresaFranquicia).FiltroPrimeroValor("CveUnidadMedida", String.Format("UnidadMedida = '{0}'", DdlUnidadMedida.SelectedItem.Text)).ToEntero Dim CveClasificacion2 As Integer = GlobalDTClasificaciones(CveEmpresa:=CveEmpresaFranquicia).FiltroPrimeroValor("CveClasificacion", String.Format("Clasificacion = '{0}'", DdlClasificacion2.SelectedItem.Text)).ToEntero Dim CveTipo As Integer = GlobalDTClasificacionesDetalle(CveEmpresa:=CveEmpresaFranquicia).FiltroPrimeroValor("CveClasificacionDetalle", String.Format("ClasificacionDetalle = '{0}'", DdlTipoPSDes.SelectedItem.Text)).ToEntero Dim CveMarcaFranquicia As Integer = -1 If ObjPS.GetMarcas(CveEmpresaFranquicia) Then CveMarcaFranquicia = ObjPS.DtResultados.FiltroPrimeroValor("CveMarca", String.Format("Marca = '{0}'", DdlMarca.SelectedItem.Text)).ToEntero End If Dim CveModelo As Integer = -1 Dim CveMedida As Integer = -1 Dim CveRin As Integer = -1 Dim ObjGral As New ClsGenerales() If ObjGral.GetModelos(CveEmpresaFranquicia) Then CveModelo = ObjGral.DtResultados.FiltroPrimeroValor("CveModelo", String.Format("Modelo = '{0}'", DdlModelo.SelectedItem.Text)).ToEntero End If CveMedida = GlobalDTPSMedidas(CveEmpresaFranquicia).FiltroPrimeroValor("CveMedida", String.Format("Medida = '{0}'", DdlMedida.SelectedItem.Text)).ToEntero CveRin = GlobalDTPSRinTamaños(CveEmpresaFranquicia).FiltroPrimeroValor("CveRinTamaño", String.Format("RinTamaño = '{0}'", DdlRin.SelectedItem.Text)).ToEntero ObjGral.Dispose() If CveClasificacion <= 0 Then Alert(String.Format("La clasificación indicada no existe en la franquicia: '{0}'", nombreEmpresa), TipoMensaje.MsgAdvertencia) Return True End If If CveUnidadMedida <= 0 Then Alert(String.Format("La unidad de medida indicada no existe en la franquicia: '{0}'", nombreEmpresa), TipoMensaje.MsgAdvertencia) Return True End If If CveTipo <= 0 And DdlTipoPSDes.SelectedValue.ToEntero <> -1 Then Alert(String.Format("El tipo de producto indicado no existe en la franquicia: '{0}'", nombreEmpresa), TipoMensaje.MsgAdvertencia) Return True End If If CveMarcaFranquicia <= 0 And DdlMarca.SelectedValue.ToEntero <> -1 Then Alert(String.Format("La marca indicada no existe en la franquicia: '{0}'", nombreEmpresa), TipoMensaje.MsgAdvertencia) Return True End If If CveModelo <= 0 And DdlModelo.SelectedValue.ToEntero <> -1 Then Alert(String.Format("El modelo indicado no existe en la franquicia: '{0}'", nombreEmpresa), TipoMensaje.MsgAdvertencia) Return True End If If CveMedida <= 0 And DdlMedida.SelectedValue.ToEntero <> -1 Then Alert(String.Format("La medida indicada no existe en la franquicia: '{0}'", nombreEmpresa), TipoMensaje.MsgAdvertencia) Return True End If If CveRin <= 0 And DdlRin.SelectedValue.ToEntero <> -1 Then Alert(String.Format("El rin indicado no existe en la franquicia: '{0}'", nombreEmpresa), TipoMensaje.MsgAdvertencia) Return True End If If Agregar Then If Not ObjPS.AddPS(CveClasificacion, -1, CveUnidadMedida, TxtCodigo.Text.Trim, TxtNumeroParte.Text.Trim, TxtCodigoBarras.Text.Trim, PSS, TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, DdlProveedor.txtValue.Value.ToEntero, True, ChkAplicaParaVenta.Checked, UsuarioActual.CveUsuario, CveEmpresaFranquicia, CveMetodoInv, EsPaquete, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, FuePorXML:=False, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarcaFranquicia, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim, AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, 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:=CveTipo, CveTamaño:=DdlTamanio.SelectedValue.ToEntero, CveModelo:=CveModelo, CveMedida:=CveMedida, CveRinTamaño:=CveRin, ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, CveObjetoImpuesto:=DdlObjetoImpuesto.SelectedValue.ToEntero, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, TiempoCaducidad:=TxtTiempoCaducidad.Text.ToEntero()) > 0 Then 'Alert(String.Format("Error al agregar el nuevo producto en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa"))) Return True End If Else If ObjPS.GetPS(-1, -1, CveEmpresaFranquicia, Codigo:=TxtCodigo.Text.Trim.ToUpper) Then Dim CvePS As Integer = ObjPS.DtResultados.FiltroPrimeroValor("CvePS", String.Format(" Codigo = '{0}'", TxtCodigo.Text.Trim.ToUpper)).ToEntero() If Not ObjPS.UpdatePS(CveClasificacion, -1, CveUnidadMedida, TxtCodigo.Text.Trim, TxtNumeroParte.Text.Trim, TxtCodigoBarras.Text.Trim, PSS, TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, -1, True, ChkAplicaParaVenta.Checked, ChkEstado.Checked, UsuarioActual.CveUsuario, CvePS, CveMetodoInv, EsPaquete, DdlSATPS.SelectedValue.ToEntero, CveEmpresaFranquicia, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarcaFranquicia, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim, AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, 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:=CveTipo, CveTamaño:=DdlTamanio.SelectedValue.ToEntero, CveModelo:=CveModelo, CveMedida:=CveMedida, CveRinTamaño:=CveRin, ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, CveObjetoImpuesto:=DdlObjetoImpuesto.SelectedValue.ToEntero, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked, TiempoCaducidad:=TxtTiempoCaducidad.Text.ToEntero()) Then Return True End If Else Alert(String.Format("El producto no existe en la franquicia: '{0}'", GlobalDTEmpresas(CveEmpresaFranquicia).FiltroPrimeroValor("Empresa")), TipoMensaje.MsgAdvertencia) Return True End If End If GlobalDTPSSimplificado(CveEmpresaFranquicia) = Nothing GlobalDTProductosServiciosEquivalencias(-1, -1, CveEmpresaFranquicia) = Nothing Next Return False End Function Private Function GuardarProductosEquivalenteEnFranquicia(ObjPS As ClsProductosServicios, Agregar As Boolean, CodigoAdicional As String, Optional PSAdicionalAnterior As String = "") As Boolean If UsuarioActual.Empresa.Funcionalidad(563) <> "" Then Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563) Dim EmpresasFranquicia As List(Of Integer) = StrEmpresas.Split(","c).ToList().ConvertAll(Function(x) Convert.ToInt32(x)) For Each Franquicia As Integer In EmpresasFranquicia Dim CvePSPagina As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("Codigo = '{0}'", TxtCodigo.Text.Trim)).ToEntero Dim CvePSAdicional As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("Codigo = '{0}'", CodigoAdicional)).ToEntero If CvePSPagina <= 0 Then Alert(String.Format("El producto de la página no existe en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")), TipoMensaje.MsgAdvertencia) End If If CvePSAdicional <= 0 Then Alert(String.Format("El producto adicional no existe en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")), TipoMensaje.MsgAdvertencia) End If If Agregar Then If Not ObjPS.AddPSAdicionales(CvePSPagina, CvePSAdicional, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0), Tipo:=RblTipoAdicional.SelectedValue.ToEntero()) Then Return True End If Else Dim CvepsAdicionalAnt As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("PS = '{0}'", PSAdicionalAnterior)).ToEntero If CvepsAdicionalAnt <= 0 Then Alert(String.Format("El producto adicional no existe en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")), TipoMensaje.MsgAdvertencia) Else If Not ObjPS.UpdatePSAdicionales(CvePSPagina, CvePSAdicional, CvepsAdicionalAnt, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0), Tipo:=RblTipoAdicional.SelectedValue.ToEntero()) Then Return True End If End If End If Next End If Return False End Function Private Function EliminarProductosEquivalenteEnFranquicia(ObjPS As ClsProductosServicios, PSAdicional As String) As Boolean If UsuarioActual.Empresa.Funcionalidad(563) <> "" Then Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563) Dim EmpresasFranquicia As List(Of Integer) = StrEmpresas.Split(","c).ToList().ConvertAll(Function(x) Convert.ToInt32(x)) For Each Franquicia As Integer In EmpresasFranquicia Dim CvepsAdicional As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("PS = '{0}'", PSAdicional)).ToEntero Dim CvePSPagina As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("Codigo = '{0}'", TxtCodigo.Text.Trim)).ToEntero If Not ObjPS.RemovePSAdicionales(CvePSPagina, CvepsAdicional) Then Return True End If Next End If Return False End Function Sub ValidaMaterialPeligroso(CveSATPS As Integer) Dim EsPeligroso As Boolean = False Dim ObjGrales As New ClsGenerales If ObjGrales.GetSATProductosServicios(CveSATPS:=CveSATPS) Then Dim DTDatos As New DataTable DTDatos = ObjGrales.DtResultados.FiltraParametros($" CveSATPS= {CveSATPS}") 'Es material Peligros If DTDatos.Rows(0)("EsPeligroso").ToString.ToEntero = 1 Then If DdlMaterialPeligroso.txtValue.Value.ToEntero > 0 And DdlEmbalaje.txtValue.Value.ToEntero > 0 And TxtPesoKg.Text.Trim.Length > 0 Then ValidaMaterialPeligrosoMensaje = True Else RegistraScript("$('#DivModalMensaje').modal('show');") ValidaMaterialPeligrosoMensaje = False LblModalMensajeCuerpo.Text = "El producto servicio del SAT seleccionado esta clasificado como material peligroso, favor de llenar los datos de la sección carta porte en la pestaña Contabilidad - Inventarios." UPModalMensaje.Update() End If Else 'No es matgerial peligroso If DdlMaterialPeligroso.txtValue.Value.ToEntero > 0 Or DdlEmbalaje.txtValue.Value.ToEntero > 0 Then RegistraScript("$('#DivModalMensaje').modal('show');") ValidaMaterialPeligrosoMensaje = False LblModalMensajeCuerpo.Text = "El producto servicio del SAT seleccionado no esta clasificado como material peligroso, favor de limpiar los datos de la sección carta porte en la pestaña Contabilidad - Inventarios, el incluir estos datos en un material no peligroso generara errores al timbrar traslados." UPModalMensaje.Update() Else ValidaMaterialPeligrosoMensaje = True End If End If End If If ValidaMaterialPeligrosoMensaje Then End If ObjGrales.Dispose() If ValidaMaterialPeligrosoMensaje Then BtnGuardar_Click(Nothing, Nothing) End If 'Return Respuesta End Sub Protected Sub BtnmodalMensajeOK_Click(sender As Object, e As EventArgs) ValidaMaterialPeligrosoMensaje = True RegistraScript("$('#DivPersonalizar').modal('hide');") BtnGuardar_Click(Nothing, Nothing) End Sub Protected Sub LnkCPLimpiarConfiguracion_Click(sender As Object, e As EventArgs) DdlMaterialPeligroso.txtText.Value = "" DdlMaterialPeligroso.txtValue.Value = "" DdlEmbalaje.txtText.Value = "" DdlEmbalaje.txtValue.Value = "" DdlClaveSectorCOFEPRIS.SelectedValueExist(-1) DdlClaveFormaFarmaceutica.SelectedValueExist(-1) TxtDimensiones.Text = "" TxtPesoKg.Text = "" 'TxtNombreIngredienteActivo.Text = "" 'TxtNomQuimico.Text = "" 'TxtDenominacionGenerica.Text = "" 'TxtDenominacionDistintiva.Text = "" 'TxtFabricante.Text = "" 'TxtCondicionesTransporte.Text = "" 'TxtRegistroSanitarioAutorizacion.Text = "" 'TxtPermisoImportacion.Text = "" 'TxtFolioImportacionVUCEM.Text = "" 'TxtNumCAS.Text = "" 'TxtRazonSocialEmpImportacion.Text = "" 'TxtNumRegistroPlagCOFEPRIS.Text = "" 'TxtDatosFabricante.Text = "" 'TxtDatosFormulador.Text = "" 'TxtDatosMaquilador.Text = "" 'TxtUsoAutorizado.Text = "" MostrarOcultarControlesCCP(LimpiarControles:=True) UpCartaPorte.Update() End Sub Protected Sub ChkFechaIndeterminadaRSCO_CheckedChanged(sender As Object, e As EventArgs) DivRegistroRSCO3.Visible = If(ChkFechaIndeterminadaRSCO.Checked, False, True) If TxtFechaVigenciaRSCO.Text = "01/01/1900" Then TxtFechaVigenciaRSCO.Text = "" End If UpDatos.Update() End Sub Private Sub CargaDatosCartaPorte() Dim ObjPS As New ClsProductosServicios If ObjPS.GetProductosServiciosComplementos(CvePS) AndAlso ObjPS.DtResultados.Rows.Count > 0 Then DdlMaterialPeligroso.txtText.Value = ObjPS.DtResultados.Rows(0)("MaterialPeligroso").ToString DdlMaterialPeligroso.txtValue.Value = ObjPS.DtResultados.Rows(0)("CveMaterialPeligroso").ToString DdlEmbalaje.txtText.Value = ObjPS.DtResultados.Rows(0)("Embalaje").ToString DdlEmbalaje.txtValue.Value = ObjPS.DtResultados.Rows(0)("CveEmbalaje").ToString DdlClaveSectorCOFEPRIS.SelectedValueExist(ObjPS.DtResultados.Rows(0)("CveSectorCOFEPRIS").ToString) DdlClaveFormaFarmaceutica.SelectedValueExist(ObjPS.DtResultados.Rows(0)("CveFormaFarmaceutica").ToString) TxtPesoKg.Text = ObjPS.DtResultados.Rows(0)("PesoKg").ToString TxtDimensiones.Text = ObjPS.DtResultados.Rows(0)("Dimensiones").ToString TxtNombreIngredienteActivo.Text = ObjPS.DtResultados.Rows(0)("NombreIngredienteActivo").ToString TxtNomQuimico.Text = ObjPS.DtResultados.Rows(0)("NomQuimico").ToString TxtDenominacionGenerica.Text = ObjPS.DtResultados.Rows(0)("DenominacionGenerica").ToString TxtDenominacionDistintiva.Text = ObjPS.DtResultados.Rows(0)("DenominacionDistintiva").ToString TxtFabricante.Text = ObjPS.DtResultados.Rows(0)("Fabricante").ToString 'TxtCondicionesTransporte.Text = ObjPS.DtResultados.Rows(0)("CondicionesTransporte").ToString TxtRegistroSanitarioAutorizacion.Text = ObjPS.DtResultados.Rows(0)("RegistroSanitarioAutorizacion").ToString TxtPermisoImportacion.Text = ObjPS.DtResultados.Rows(0)("PermisoImportacion").ToString TxtFolioImportacionVUCEM.Text = ObjPS.DtResultados.Rows(0)("FolioImportacionVUCEM").ToString TxtNumCAS.Text = ObjPS.DtResultados.Rows(0)("NumCAS").ToString TxtRazonSocialEmpImportacion.Text = ObjPS.DtResultados.Rows(0)("RazonSocialEmpImportacion").ToString TxtNumRegistroPlagCOFEPRIS.Text = ObjPS.DtResultados.Rows(0)("NumRegistroPlagCOFEPRIS").ToString TxtDatosFabricante.Text = ObjPS.DtResultados.Rows(0)("DatosFabricante").ToString TxtDatosFormulador.Text = ObjPS.DtResultados.Rows(0)("DatosFormulador").ToString TxtDatosMaquilador.Text = ObjPS.DtResultados.Rows(0)("DatosMaquilador").ToString TxtUsoAutorizado.Text = ObjPS.DtResultados.Rows(0)("UsoAutorizado").ToString DdlCondicionesEspTransporte.SelectedValueExist(ObjPS.DtResultados.Rows(0)("CveCondicionesEspTransporte").ToString) DdlTipoMateria.SelectedValueExist(ObjPS.DtResultados.Rows(0)("CveTipoMateria").ToString) MostrarOcultarControlesCCP(LimpiarControles:=False) End If UpCartaPorte.Update() End Sub Private Sub MostrarOcultarControlesCCP(Optional LimpiarControles As Boolean = False) DVClaveFormaFarmaceutica.Visible = False DVNombreIngredienteActivo.Visible = False DVNomQuimico.Visible = False DVDenominacionGenerica.Visible = False DVDenominacionDistintiva.Visible = False DVFabricante.Visible = False DVCondicionesTransporte.Visible = False DVRegistroSanitarioAutorizacion.Visible = False 'DVPermisoImportacion.Visible = False '-------------- 'DVFolioImportacionVUCEM.Visible = False '----------- DVNumCAS.Visible = False 'DVRazonSocialEmpImportacion.Visible = False '--------- DVNumRegistroPlagCOFEPRIS.Visible = False DVDatosFabricante.Visible = False DVDatosFormulador.Visible = False DVDatosMaquilador.Visible = False DVUsoAutorizado.Visible = False If LimpiarControles Then DdlClaveFormaFarmaceutica.SelectedValueExist(-1) TxtNombreIngredienteActivo.Text = "" TxtNomQuimico.Text = "" TxtDenominacionGenerica.Text = "" TxtDenominacionDistintiva.Text = "" TxtFabricante.Text = "" TxtRegistroSanitarioAutorizacion.Text = "" TxtPermisoImportacion.Text = "" TxtFolioImportacionVUCEM.Text = "" TxtNumCAS.Text = "" TxtRazonSocialEmpImportacion.Text = "" TxtNumRegistroPlagCOFEPRIS.Text = "" TxtDatosFabricante.Text = "" TxtDatosFormulador.Text = "" TxtDatosMaquilador.Text = "" TxtUsoAutorizado.Text = "" End If If DdlClaveSectorCOFEPRIS.SelectedValue.ToEntero = 1 Then ' 1 - Medicamento DVDenominacionGenerica.Visible = True DVDenominacionDistintiva.Visible = True DVFabricante.Visible = True DVClaveFormaFarmaceutica.Visible = True DVCondicionesTransporte.Visible = True DVRegistroSanitarioAutorizacion.Visible = True ElseIf DdlClaveSectorCOFEPRIS.SelectedValue.ToEntero = 2 Then '2 - Precursores y químicos de uso dual DVNombreIngredienteActivo.Visible = True DVNomQuimico.Visible = True DVFabricante.Visible = True DVClaveFormaFarmaceutica.Visible = True DVCondicionesTransporte.Visible = True ElseIf DdlClaveSectorCOFEPRIS.SelectedValue.ToEntero = 3 Then ' 3 - Psicotrópicos y estupefacientes DVDenominacionGenerica.Visible = True DVDenominacionDistintiva.Visible = True DVFabricante.Visible = True DVClaveFormaFarmaceutica.Visible = True DVCondicionesTransporte.Visible = True DVRegistroSanitarioAutorizacion.Visible = True ElseIf DdlClaveSectorCOFEPRIS.SelectedValue.ToEntero = 4 Then ' 4 - Sustancias tóxicas DVNomQuimico.Visible = True DVNumCAS.Visible = True ElseIf DdlClaveSectorCOFEPRIS.SelectedValue.ToEntero = 5 Then ' 5 - Plaguicidas y fertilizantes DVNombreIngredienteActivo.Visible = True DVNumRegistroPlagCOFEPRIS.Visible = True DVDatosFabricante.Visible = True DVDatosFormulador.Visible = True DVDatosMaquilador.Visible = True DVUsoAutorizado.Visible = True End If UpCartaPorte.Update() End Sub Private Function GuardaDatosCartPorte(ByRef transaccionSQL As SqlTransaction) As Boolean Dim Respuesta As Boolean = True Dim CamposStringCCP As String = "" CamposStringCCP = CamposStringCCP + TxtNombreIngredienteActivo.Text.Trim() CamposStringCCP = CamposStringCCP + TxtNomQuimico.Text.Trim() CamposStringCCP = CamposStringCCP + TxtDenominacionGenerica.Text.Trim() CamposStringCCP = CamposStringCCP + TxtDenominacionDistintiva.Text.Trim() CamposStringCCP = CamposStringCCP + TxtFabricante.Text.Trim() ' CamposStringCCP = CamposStringCCP + TxtCondicionesTransporte.Text.Trim() CamposStringCCP = CamposStringCCP + TxtRegistroSanitarioAutorizacion.Text.Trim() CamposStringCCP = CamposStringCCP + TxtPermisoImportacion.Text.Trim() CamposStringCCP = CamposStringCCP + TxtFolioImportacionVUCEM.Text.Trim() CamposStringCCP = CamposStringCCP + TxtNumCAS.Text.Trim() CamposStringCCP = CamposStringCCP + TxtRazonSocialEmpImportacion.Text.Trim() CamposStringCCP = CamposStringCCP + TxtNumRegistroPlagCOFEPRIS.Text.Trim() CamposStringCCP = CamposStringCCP + TxtDatosFabricante.Text.Trim() CamposStringCCP = CamposStringCCP + TxtDatosFormulador.Text.Trim() CamposStringCCP = CamposStringCCP + TxtDatosMaquilador.Text.Trim() CamposStringCCP = CamposStringCCP + TxtUsoAutorizado.Text.Trim() 'If CamposStringCCP.Length > 0 And (DdlMaterialPeligroso.SelectedValue.ToEntero <= 0 Or DdlEmbalaje.SelectedValue.ToEntero <= 0 Or TxtPesoKg.Text = "") Then ' Alert("Para guardar los datos de carta porte los campos Material Peligroso, Embalaje, Peso en Kg son requeridos", TipoMensaje.MsgAdvertencia) ' Respuesta = False 'Else 'If DdlMaterialPeligroso.SelectedValue.ToEntero > 0 And DdlEmbalaje.SelectedValue.ToEntero > 0 And DdlClaveSectorCOFEPRIS.SelectedValue.ToEntero > 0 And CamposStringCCP.Length > 0 Then Dim ObjPS As New ClsProductosServicios(transaccionSQL) If Not ObjPS.AddUpdateProductosServiciosComplementos(CvePS, TxtPesoKg.Text.ToDecimal, DdlMaterialPeligroso.SelectedValue.ToEntero, DdlEmbalaje.SelectedValue.ToEntero, TxtDimensiones.Text, DdlClaveSectorCOFEPRIS.SelectedValue.ToEntero, TxtNombreIngredienteActivo.Text.Trim, TxtNomQuimico.Text.Trim, TxtDenominacionGenerica.Text.Trim, TxtDenominacionDistintiva.Text.Trim, TxtFabricante.Text.Trim, DdlClaveFormaFarmaceutica.SelectedValue.ToEntero, DdlCondicionesEspTransporte.SelectedValue.ToEntero, TxtRegistroSanitarioAutorizacion.Text.Trim, TxtPermisoImportacion.Text.Trim, TxtFolioImportacionVUCEM.Text.Trim, TxtNumCAS.Text.Trim, TxtRazonSocialEmpImportacion.Text, TxtNumRegistroPlagCOFEPRIS.Text.Trim, TxtDatosFabricante.Text.Trim, TxtDatosFormulador.Text.Trim, TxtDatosMaquilador.Text.Trim, TxtUsoAutorizado.Text, DdlTipoMateria.SelectedValue.ToEntero) Then Respuesta = False End If ' End If 'End If Return Respuesta End Function Protected Sub DdlClaveSectorCOFEPRIS_SelectedIndexChanged(sender As Object, e As EventArgs) MostrarOcultarControlesCCP(LimpiarControles:=True) End Sub Protected Sub LnkGenerarEtiqueta_Click(sender As Object, e As EventArgs) Dim CvePrecioListaPredeterminada = GlobalDTPrecioListas(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePrecioLista", "Predeterminada = True").ToEntero() Dim DtPrecios As DataTable = Nothing Dim ObjVentas As New ClsProductosServicios If ObjVentas.GetPSPrecios(CvePrecioListaPredeterminada, Me.CvePS.ToString()) AndAlso ObjVentas.DtResultados IsNot Nothing AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then DtPrecios = ObjVentas.DtResultados.Copy() End If ObjVentas.Dispose() If DtPrecios IsNot Nothing Then DtPrecios.Columns.Add(New DataColumn("CBBase64", GetType(String))) For Each Row As DataRow In DtPrecios.Rows Row("CBBase64") = Convert.ToBase64String(GeneraCodigoQR(Row("CodigoBarras").ToString(), 40, 150, 0, "CODE_39", True)) Next Dim DirectorioArchivo As String = "Empresas/Grales/Formatos/Etiqueta.mrt" If System.IO.File.Exists(UsuarioActual.Empresa.Ruta + "Formatos/Etiqueta.mrt") Then DirectorioArchivo = UsuarioActual.Empresa.Ruta + "Formatos/Etiqueta.mrt" End If Dim params As New List(Of ReportParameter) Dim lrds As New List(Of ReportDataSource) Dim rds As New ReportDataSource rds.Name = "Datos" rds.Value = DtPrecios lrds.Add(rds) Dim bytesPDF = StreamBytesStimul("Facturas", DirectorioArchivo, lrds, params, NombreArchivo:="Precios", Formato:="PDF") Dim pdf64 = Convert.ToBase64String(bytesPDF) RegistraScript($"impresionBase64('{pdf64}');", "Imprimir") 'ImprimirPDFStimul(DirectorioArchivo, DtPrecios, params, "Precios") End If End Sub Private Sub BtnUpFotos_Click(sender As Object, e As EventArgs) Handles BtnUpFotos.Click Dim FilesGral As List(Of Archivo) = TxtUpFotos.getfiles().Archivos Dim FileMove As String = "" Dim NewName As String For Each FileItem As Archivo In FilesGral NewName = NowADS().Ticks.ToString Dim ObjPS As New ClsProductosServicios Try FileMove = FileItem.filename Dim DirectorioOld As New StringBuilder Dim DirectorioNew As New StringBuilder DirectorioOld.AppendFormat("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, FileMove) DirectorioNew.AppendFormat("{0}PS\", UsuarioActual.Empresa.Ruta) If Not Directory.Exists(DirectorioNew.ToString) Then Directory.CreateDirectory(DirectorioNew.ToString) End If NewName = String.Format("{0}{1}", NewName, IO.Path.GetExtension(DirectorioOld.ToString())) DirectorioNew.Append(NewName) Me.Imagen = String.Format("PS/{0}", NewName) If ObjPS.UpdatePSImagen(Me.CvePS, Me.Imagen) Then My.Computer.FileSystem.MoveFile(DirectorioOld.ToString, DirectorioNew.ToString) End If imgImagen.Attributes.Add("src", String.Format("/ashx/SIGWeb.ashx?Metodo=GetImg&r={0}", Extensiones.Encripta(Me.Imagen))) hplImagen.Attributes.Add("href", String.Format("/ashx/SIGWeb.ashx?Metodo=GetImg&r={0}", Extensiones.Encripta(Me.Imagen))) upGaleria.Update() Catch ex As Exception OnError("Ocurrió un error al guardar la imagen", ex) End Try ObjPS.Dispose() RegistraScript("$(""#Modalupfotos"").modal(""hide"");initcarusel();") TxtUpFotos.Text = "[]" UpUpFotos.Update() Next End Sub Protected Sub BtnEliminarFoto_Click(sender As Object, e As System.EventArgs) If (Me.CvePS > 0) Then Dim ObjPS As New ClsProductosServicios If ObjPS.UpdatePSImagen(Me.CvePS, "") Then File.Delete(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Me.Imagen)) Me.Imagen = "" imgImagen.Attributes.Add("src", "") hplImagen.Attributes.Add("href", "") RegistraScript("initcarusel();") End If ObjPS.Dispose() upGaleria.Update() End If End Sub Protected Sub LnkEquivalenciaAdd_Click(sender As Object, e As EventArgs) DdlEquivalenciaUM.Items.Clear() DdlEquivalenciaUM.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa) DdlEquivalenciaUM.DataBind() UPPEquiv.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "divEquivalenciaModal")) End Sub Protected Sub LnkAgregarEquivalencia_Click(sender As Object, e As EventArgs) Dim Ps As New ClsProductosServicios If Ps.AddPSEquivalencias(CvePS, DdlEquivalenciaUM.SelectedValue.ToEntero, TxtCantidadEquivalencia.Text.ToDecimal, False, 0, UsuarioActual.CveUsuario) Then Alert("Equivalencia registrada correctamente.", TipoMensaje.ToastInformacion) CargaEquivalencias() RegistraScript(String.Format("$('#{0}').modal('hide');", "divEquivalenciaModal")) End If Ps.Dispose() End Sub End Class