diff --git a/CRM/RepAcercamientosProcesos.aspx.cs b/CRM/RepAcercamientosProcesos.aspx.cs
index 638ebb44d..420dff2cd 100644
--- a/CRM/RepAcercamientosProcesos.aspx.cs
+++ b/CRM/RepAcercamientosProcesos.aspx.cs
@@ -27,6 +27,32 @@ public partial class CRM_RepAcercamientosProcesos : ClsPaginas
get { return DtDatos = (DataTable)ViewState["DtDatos"]; }
set { ViewState["DtDatos"] = value; }
}
+
+ private DataTable DtMedioCaptacion
+ {
+ get
+ {
+ return (DataTable)ViewState["DtMedioCaptacion"];
+ }
+
+ set
+ {
+ ViewState["DtMedioCaptacion"] = value;
+ }
+ }
+
+ private DataTable DtProbabilidadAcercamiento
+ {
+ get
+ {
+ return (DataTable)ViewState["DtProbabilidadAcercamiento"];
+ }
+
+ set
+ {
+ ViewState["DtProbabilidadAcercamiento"] = value;
+ }
+ }
#endregion
protected void Page_Load(object sender, EventArgs e)
@@ -58,11 +84,14 @@ public partial class CRM_RepAcercamientosProcesos : ClsPaginas
DdlVendedor.DataSource = get_GlobalDTVendedores(UsuarioActual.CveEmpresa);
if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa))
{
+ DdlMedioCaptacion.Items.Clear();
DdlMedioCaptacion.DataSource = ObjCRM.DtResultados;
+ DtMedioCaptacion = ObjCRM.DtResultados;
}
if (ObjCRM.GetProbabilidadAcercamiento(UsuarioActual.CveEmpresa, -1))
{
DdlProbabilidad.DataSource = ObjCRM.DtResultados;
+ DtProbabilidadAcercamiento = ObjCRM.DtResultados;
}
ObjCRM.Dispose();
@@ -73,6 +102,7 @@ public partial class CRM_RepAcercamientosProcesos : ClsPaginas
DdlVendedor.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlProbabilidad.Items.Insert(0, new ListItem("Seleccione ", "-1"));
+ DdlTipoProceso.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlVendedor.SelectedValue = "-1";
DdlMedioCaptacion.SelectedValue = "-1";
DdlProbabilidad.SelectedValue = "-1";
@@ -289,4 +319,19 @@ public partial class CRM_RepAcercamientosProcesos : ClsPaginas
}
UPModalProd.Update();
}
+
+ protected void DdlTipoProceso_Change(object sender, EventArgs e)
+ {
+ DdlMedioCaptacion.Items.Clear();
+ DdlMedioCaptacion.DataSource = DtMedioCaptacion.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
+ DdlMedioCaptacion.DataBind();
+ DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione", "-1"));
+
+ DdlProbabilidad.Items.Clear();
+ DdlProbabilidad.DataSource = DtProbabilidadAcercamiento.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
+ DdlProbabilidad.DataBind();
+ DdlProbabilidad.Items.Insert(0, new ListItem("Seleccione", "-1"));
+
+ upDatosRepA.Update();
+ }
}
\ No newline at end of file
diff --git a/CRM/RepAcercamientosRechazos.aspx b/CRM/RepAcercamientosRechazos.aspx
index 256a90cbb..380159036 100644
--- a/CRM/RepAcercamientosRechazos.aspx
+++ b/CRM/RepAcercamientosRechazos.aspx
@@ -28,6 +28,7 @@
+ Reporte de Rechazos Acercamientos
diff --git a/CRM/RepAcercamientosRechazos.aspx.cs b/CRM/RepAcercamientosRechazos.aspx.cs
index ddb34f196..2556b6ca7 100644
--- a/CRM/RepAcercamientosRechazos.aspx.cs
+++ b/CRM/RepAcercamientosRechazos.aspx.cs
@@ -27,6 +27,32 @@ public partial class CRM_RepAcercamientosRechazos : ClsPaginas
get { return DtDatos = (DataTable)ViewState["DtDatos"]; }
set { ViewState["DtDatos"] = value; }
}
+
+ private DataTable DtMedioCaptacion
+ {
+ get
+ {
+ return (DataTable)ViewState["DtMedioCaptacion"];
+ }
+
+ set
+ {
+ ViewState["DtMedioCaptacion"] = value;
+ }
+ }
+
+ private DataTable DtProbabilidadAcercamiento
+ {
+ get
+ {
+ return (DataTable)ViewState["DtProbabilidadAcercamiento"];
+ }
+
+ set
+ {
+ ViewState["DtProbabilidadAcercamiento"] = value;
+ }
+ }
#endregion
protected void Page_Load(object sender, EventArgs e)
@@ -59,10 +85,12 @@ public partial class CRM_RepAcercamientosRechazos : ClsPaginas
if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa))
{
DdlMedioCaptacion.DataSource = ObjCRM.DtResultados;
+ DtMedioCaptacion = ObjCRM.DtResultados;
}
if (ObjCRM.GetProbabilidadAcercamiento(UsuarioActual.CveEmpresa, -1))
{
DdlProbabilidad.DataSource = ObjCRM.DtResultados;
+ DtProbabilidadAcercamiento = ObjCRM.DtResultados;
}
ObjCRM.Dispose();
@@ -289,4 +317,19 @@ public partial class CRM_RepAcercamientosRechazos : ClsPaginas
}
UPModalProd.Update();
}
+
+ protected void DdlTipoProceso_Change(object sender, EventArgs e)
+ {
+ DdlMedioCaptacion.Items.Clear();
+ DdlMedioCaptacion.DataSource = DtMedioCaptacion.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
+ DdlMedioCaptacion.DataBind();
+ DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione", "-1"));
+
+ DdlProbabilidad.Items.Clear();
+ DdlProbabilidad.DataSource = DtProbabilidadAcercamiento.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
+ DdlProbabilidad.DataBind();
+ DdlProbabilidad.Items.Insert(0, new ListItem("Seleccione", "-1"));
+
+ upDatosRepA.Update();
+ }
}
\ No newline at end of file
diff --git a/Contabilidad2/CatCuentas.aspx.vb b/Contabilidad2/CatCuentas.aspx.vb
index ec0703e44..1f9f6f9d5 100644
--- a/Contabilidad2/CatCuentas.aspx.vb
+++ b/Contabilidad2/CatCuentas.aspx.vb
@@ -295,49 +295,58 @@ Partial Class Contabilidad2_CatCuentas
Dim PorcentajeImpuesto As Decimal = TxtPorcentaje.Text.ToDecimal() / 100
Dim CveBancoCuenta As Integer = ddlBancos.SelectedValue.ToEntero
Dim CveAlmacen As Integer = DdlAlmacen.SelectedValue.ToEntero()
- If ObjConta.UpdateCuenta(IDSelected.ToEntero, Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero, DdlMoneda.SelectedValue.ToEntero, TxtDigAgrup.Text.ToString.ToEntero, DdlAgrupadorSAT.SelectedValue.ToEntero, TxtNomIngles.Text.ToString,
- CveConceptoAdmin:=CveConceptoAdmin, CveProveedor:=CveProveedor, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, PorcentajeImpuesto:=PorcentajeImpuesto, CveBancoCuenta:=CveBancoCuenta, CveAlmacen:=CveAlmacen) Then
- Dim codigo As String = DtDatos.FiltroPrimeroValor("Codigo", $"CveCuenta={IDSelected}")
+ If DdlAgrupadorSAT.SelectedValue.ToEntero > 0 Then
- If UsuarioActual.Empresa.TipoContabilidad <> 1 Then
+ If ObjConta.UpdateCuenta(IDSelected.ToEntero, Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero, DdlMoneda.SelectedValue.ToEntero,
+ TxtDigAgrup.Text.ToString.ToEntero, DdlAgrupadorSAT.SelectedValue.ToEntero, TxtNomIngles.Text.ToString, CveConceptoAdmin:=CveConceptoAdmin,
+ CveProveedor:=CveProveedor, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, PorcentajeImpuesto:=PorcentajeImpuesto,
+ CveBancoCuenta:=CveBancoCuenta, CveAlmacen:=CveAlmacen) Then
- Using ObjConta2 As New ClsContPAQi(UsuarioActual.Empresa)
+ Dim codigo As String = DtDatos.FiltroPrimeroValor("Codigo", $"CveCuenta={IDSelected}")
- If ObjConta2.GetCuentas(-1, "-1", -1) Then
- Dim Id As Integer = ObjConta2.DtResultados.FiltroPrimeroValor("Id", $"Codigo='{codigo}'").ToEntero
- Dim IdAgrupador As Integer
+ If UsuarioActual.Empresa.TipoContabilidad <> 1 Then
- If ObjConta2.GetAgrupadoresSAT() Then
- IdAgrupador = ObjConta2.DtResultados.FiltroPrimeroValor("Id", $"CodigoNombre='{DdlAgrupadorSAT.SelectedItem.Text}'").ToEntero
- End If
- If Id > 0 Then
- If ObjConta2.UpdateCuenta(Id, Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero, DdlMoneda.SelectedValue.ToEntero, IdAgrupador, SubCuentaDe:=Tsubcuenta.Text.Trim) > 0 Then
+ Using ObjConta2 As New ClsContPAQi(UsuarioActual.Empresa)
+
+ If ObjConta2.GetCuentas(-1, "-1", -1) Then
+ Dim Id As Integer = ObjConta2.DtResultados.FiltroPrimeroValor("Id", $"Codigo='{codigo}'").ToEntero
+ Dim IdAgrupador As Integer
+
+ If ObjConta2.GetAgrupadoresSAT() Then
+ IdAgrupador = ObjConta2.DtResultados.FiltroPrimeroValor("Id", $"CodigoNombre='{DdlAgrupadorSAT.SelectedItem.Text}'").ToEntero
+ End If
+ If Id > 0 Then
+ If ObjConta2.UpdateCuenta(Id, Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero, DdlMoneda.SelectedValue.ToEntero, IdAgrupador, SubCuentaDe:=Tsubcuenta.Text.Trim) > 0 Then
+ End If
End If
End If
- End If
- End Using
+ End Using
+ End If
+
+ Dim customerRow As Data.DataRow
+ customerRow = DtDatos.Select(String.Format("CveCuenta = {0}", IDSelected))(0)
+ customerRow("Nombre") = Tnombre.Text
+ DtDatos.AcceptChanges()
+
+ CargaDatos()
+ ArbolCuentas.DataSource = DtDatos
+
+ Dim item As CheckBox = DirectCast(ArbolCuentas.FindControl(String.Format("chk{0}", IDSelected)), CheckBox)
+ item.Text = String.Format("{0} - {1}", customerRow("CuentaFormato").ToString, Tnombre.Text)
+ 'updatos.Visible = False
+ 'Guardar.Visible = False
+ LimpiarCampos()
+ 'RegistraScript("$get('BtnCambiaAgrupadorSAT').click();")
+ updatos.Update()
+
+ Alert("La cuenta se guardo correctamente")
End If
-
- Dim customerRow As Data.DataRow
- customerRow = DtDatos.Select(String.Format("CveCuenta = {0}", IDSelected))(0)
- customerRow("Nombre") = Tnombre.Text
- DtDatos.AcceptChanges()
-
- CargaDatos()
- ArbolCuentas.DataSource = DtDatos
-
- Dim item As CheckBox = DirectCast(ArbolCuentas.FindControl(String.Format("chk{0}", IDSelected)), CheckBox)
- item.Text = String.Format("{0} - {1}", customerRow("CuentaFormato").ToString, Tnombre.Text)
- 'updatos.Visible = False
- 'Guardar.Visible = False
- LimpiarCampos()
- 'RegistraScript("$get('BtnCambiaAgrupadorSAT').click();")
- updatos.Update()
-
- Alert("La cuenta se guardo correctamente")
+ Else
+ Alert("Es necesario agregar el campo 'Agrupador SAT'", TipoMensaje.MsgError)
End If
+
ObjConta.Dispose()
End Sub
@@ -356,17 +365,14 @@ Partial Class Contabilidad2_CatCuentas
Dim CuentaEfectivo As Integer = 0
Dim Afectable As Integer = 1 'If(DcuentaMayor.SelectedValue <> 2, 0, 1) ' cuando sea tipo 2, va a ser afectable
Tcuenta.Text.Replace("-", "")
+ Dim idnew As Integer = 0
- Dim idnew As Integer = ObjConta.AddCuenta(
- IDSelected,
- TxtCuenta.Text.Replace("-", ""),
- Tnombre.Text,
- DTcuenta.SelectedValue.ToString,
- DcuentaMayor.SelectedValue.ToString.ToEntero,
- DdlMoneda.SelectedValue.ToEntero,
- TxtDigAgrup.Text.ToEntero,
- DdlAgrupadorSAT.SelectedValue.ToEntero,
- TxtNomIngles.Text.ToString)
+ If DdlAgrupadorSAT.SelectedValue.ToEntero > 0 Then
+ idnew = ObjConta.AddCuenta(IDSelected, TxtCuenta.Text.Replace("-", ""), Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero,
+ DdlMoneda.SelectedValue.ToEntero, TxtDigAgrup.Text.ToEntero, DdlAgrupadorSAT.SelectedValue.ToEntero, TxtNomIngles.Text.ToString)
+ Else
+ Alert("Es necesario agregar el campo 'Agrupador SAT'", TipoMensaje.MsgError)
+ End If
If idnew > 0 Then
diff --git a/Empresas/Grales/Formatos/RepIVA.rpt b/Empresas/Grales/Formatos/RepIVA.rpt
index 82ef556d2..5b20e8876 100644
Binary files a/Empresas/Grales/Formatos/RepIVA.rpt and b/Empresas/Grales/Formatos/RepIVA.rpt differ
diff --git a/General/CATIEPSxEntidadFed.aspx.cs b/General/CATIEPSxEntidadFed.aspx.cs
index 4636cd002..5d9a71a71 100644
--- a/General/CATIEPSxEntidadFed.aspx.cs
+++ b/General/CATIEPSxEntidadFed.aspx.cs
@@ -106,10 +106,15 @@ public partial class General_CATIEPSxEntidadFed : ClsPaginas
protected void LnkExcel_Click(object sender, EventArgs e)
{
- GVIEPSxEntidadFed.ExportToExcelx("IEPS porEntidad Federativa");
+ Imprimir("Excel");
}
protected void LnkPDF_Click(object sender, EventArgs e)
+ {
+ Imprimir("PDF");
+ }
+
+ private void Imprimir(string formato)
{
string FechaInicio = $" Fecha Inicio: {TxtIEPSfechaInicio.Text}";
string FechaFin = $" Fecha Inicio: {TxtIEPSfechaFin.Text}";
@@ -127,6 +132,6 @@ public partial class General_CATIEPSxEntidadFed : ClsPaginas
paramList.Add(new ReportParameter("Filtros", $"{FechaInicio}{FechaFin}{IEPS}{Estado}{Agrupador}"));
- ImprimirPDF("Empresas/Grales/Formatos/CatIepsEntidadFed.rdlc", DtIEPS, paramList,"IEPS por entidades federativa",RDSName:"DsInventarios");
+ ImprimirPDF("Empresas/Grales/Formatos/CatIepsEntidadFed.rdlc", DtIEPS, paramList, "IEPS por entidades federativa",formato, RDSName: "DsInventarios");
}
}
diff --git a/OI/Circular.aspx b/OI/Circular.aspx
new file mode 100644
index 000000000..1007eefbe
--- /dev/null
+++ b/OI/Circular.aspx
@@ -0,0 +1,82 @@
+<%@ Page Title="OI Circular" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Circular.aspx.vb" Inherits="OI_Circular" %>
+
+<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
+
+
+
+
+
+
+
+ Circular
+
+
+
+
+
+ Agregar Circular
+
+
+ PDF
+
+
+
+
+
+
+
+
+
+
+
+
+
Fecha Inicial:
+
+
Fecha Final:
+
+
Usuario:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OI/Circular.aspx.vb b/OI/Circular.aspx.vb
new file mode 100644
index 000000000..1a0b342f6
--- /dev/null
+++ b/OI/Circular.aspx.vb
@@ -0,0 +1,66 @@
+Imports System.Data
+Imports System.Linq
+Imports Extensiones
+Imports Microsoft.Reporting.WebForms
+
+Partial Class OI_Circular
+ Inherits ClsPaginas
+
+ Private Property DtDatos As DataTable
+ Get
+ DtDatos = DirectCast(ViewState("DtDatos"), DataTable)
+ End Get
+
+ Set(ByVal value As DataTable)
+ ViewState("DtDatos") = value
+ End Set
+ End Property
+
+ Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
+ If Not IsPostBack Then
+ IniciarFiltros()
+ CargaDatos()
+ End If
+ End Sub
+ Private Sub IniciarFiltros()
+ Dim FechaI As DateTime = New DateTime(Today.Year, Today.Month, 1)
+ Dim FechaF As DateTime = New DateTime(Today.Year, Today.Month, 1).AddMonths(1).AddDays(-1)
+ TxtFechaI.Text = FechaI.ToString()
+ TxtFechaF.Text = FechaF.ToString
+
+ DdlUsuario.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
+ DdlUsuario.DataBind()
+ DdlUsuario.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ End Sub
+ Private Sub CargaDatos()
+ Dim ObjOI As New ClsOIEventos
+ If ObjOI.GetCircular(UsuarioActual.CveEmpresa, -1, TxtFechaI.Text, TxtFechaF.Text, DdlUsuario.SelectedValue.ToEntero) Then
+ GvDatos.DataSource = ObjOI.DtResultados
+ DtDatos = ObjOI.DtResultados
+ End If
+ ObjOI.Dispose()
+ GvDatos.DataBind()
+ End Sub
+
+ Protected Sub btConsultar_Click() Handles btConsultar.Click
+ CargaDatos()
+ End Sub
+
+ Protected Sub LnkPDF_Click() Handles LnkPDF.Click
+ Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
+ Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
+
+ Dim params As New List(Of ReportParameter)
+ params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
+ If Imagen.Exists Then
+ params.Add(New ReportParameter("LogoPath", logouri))
+ Else
+ params.Add(New ReportParameter("LogoPath", ""))
+ End If
+ params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
+ params.Add(New ReportParameter("FechaImpresion", Today))
+ params.Add(New ReportParameter("Filtros", String.Format("Fecha Inicial: {0} Fecha Final: {1}", TxtFechaI.Text, TxtFechaF.Text)))
+
+ ImprimirPDF("Empresas/Grales/Formatos/Circulares.rdlc", DtDatos, params, "Circulares", "PDF", RDSName:="DataSet1")
+ End Sub
+End Class
diff --git a/OI/CircularDetalle.aspx b/OI/CircularDetalle.aspx
new file mode 100644
index 000000000..1d9bbdec7
--- /dev/null
+++ b/OI/CircularDetalle.aspx
@@ -0,0 +1,162 @@
+<%@ Page Title="OI Circular" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="CircularDetalle.aspx.vb" Inherits="OI_CircularDetalle" %>
+
+<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
+
+
+
+
+
+
+
+ Circular Detalle
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Rol:
+
+
Sucursales:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OI/CircularDetalle.aspx.vb b/OI/CircularDetalle.aspx.vb
new file mode 100644
index 000000000..c231670a5
--- /dev/null
+++ b/OI/CircularDetalle.aspx.vb
@@ -0,0 +1,208 @@
+Imports System.Data
+Imports System.Linq
+Imports Extensiones
+Imports System.IO
+
+Partial Class OI_CircularDetalle
+ Inherits ClsPaginas
+
+ Private Property DtUsuarios As DataTable
+ Get
+ Return If(IsNothing(ViewState("DtUsuarios")), Nothing, CType(ViewState("DtUsuarios"), DataTable))
+ End Get
+ Set(value As DataTable)
+ ViewState("DtUsuarios") = value
+ End Set
+ End Property
+
+ Private Property CveCircular As Integer
+ Get
+ Return ViewState("CveCircular").ToString.ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CveCircular") = value
+ End Set
+ End Property
+
+ Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
+ If Not IsPostBack Then
+ CargarCve()
+ ConfigurarBotones()
+ CargaDatos()
+ End If
+ End Sub
+
+ Private Sub CargarCve()
+ Dim PreCveCircular As String = Request.Params("CveCircular").ToString
+ If IsNumeric(PreCveCircular) Then
+ CveCircular = PreCveCircular.ToEntero
+ End If
+ End Sub
+
+ Private Sub ConfigurarBotones()
+ If CveCircular > 0 Then
+ BtnGuardar.Text = "Actualizar"
+ BtnEliminar.Visible = True
+ Else
+ BtnGuardar.Text = "Guardar"
+ End If
+ End Sub
+
+ Private Sub CargaDatos()
+ If CveCircular > 0 Then
+ Dim ObjOI As New ClsOIEventos
+ If ObjOI.GetCircular(UsuarioActual.CveEmpresa, CveCircular) Then
+ Dim Circular As DataRow = ObjOI.DtResultados(0)
+
+ TxtAsunto.Text = Circular.Item("Asunto")
+ TxtCorreo.Value = Circular.Item("CorreosInternos")
+ TxtCorreoAdicional.Value = Circular.Item("CorreosExternos")
+ TxtCircular.Value = Circular.Item("Circular")
+
+ UpCliente.Update()
+ End If
+ ObjOI.Dispose()
+ End If
+
+ DdlRolesFiltro.DataSource = GlobalDTRoles(UsuarioActual.CveEmpresa)
+ DdlRolesFiltro.DataBind()
+ DdlRolesFiltro.Items.Insert(0, New ListItem("Todos", "-1"))
+
+ DdlSucursales.DataSource = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa)
+ DdlSucursales.DataBind()
+ DdlSucursales.Items.Insert(0, New ListItem("Todos", "-1"))
+ End Sub
+
+ Private Sub BtnGuardar_Click() Handles BtnGuardar.Click
+ Dim ObjOI As New ClsOIEventos
+ If CveCircular > 0 Then
+ If ObjOI.UpdateCircular(CveCircular, TxtAsunto.Text, TxtCircular.Value, TxtCorreo.Value, TxtCorreoAdicional.Value, UsuarioActual.CveUsuario) Then
+ Alert("Actualizado correctamente")
+ End If
+ Else
+ Dim CorreoExtra As String = If(TxtCorreoAdicional.Value = "", "-1", TxtCorreoAdicional.Value)
+ Dim CircularInsertado As Integer = ObjOI.AddCircular(TxtAsunto.Text, TxtCircular.Value, TxtCorreo.Value, Today.ToString, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CorreoExtra)
+ If CircularInsertado > 0 Then
+ GuardarArchivo(CircularInsertado)
+ Alert("Ingresado correctamente")
+ End If
+ End If
+ End Sub
+
+ Private Sub BtnEliminar_Click() Handles BtnEliminar.Click
+ Dim ObjOI As New ClsOIEventos
+ If ObjOI.DeleteCircular(CveCircular) Then
+ Response.Redirect("~/OI/CircularDetalle.aspx?CveCircular=-1")
+ End If
+ ObjOI.Dispose()
+ End Sub
+
+ Protected Sub LbBuscar_Click(sender As Object, e As EventArgs) Handles LbBuscar.Click
+ LimpiarModal()
+ RegistraScript("$('#ModalDescuento').modal()")
+ End Sub
+
+ Private Sub LimpiarModal()
+ DdlRolesFiltro.SelectedValue = -1
+ DdlSucursales.SelectedValue = -1
+ GvUsuarios.DataSource = Nothing
+ GvUsuarios.DataBind()
+ UpUsuarios.Update()
+ End Sub
+
+ Protected Sub BtnBuscar_Click() Handles BtnBuscar.Click
+ Dim buscadorQuery As New StringBuilder
+ buscadorQuery.Append(If(DdlRolesFiltro.SelectedValue.ToEntero > 0, String.Format("CveRol = {0}", DdlRolesFiltro.SelectedValue), ""))
+ buscadorQuery.Append(If(DdlSucursales.SelectedValue.ToEntero > 0, String.Format("{0} CveSubProyecto = {1}", If(buscadorQuery.Length > 0, "AND", ""), DdlSucursales.SelectedValue), ""))
+ GvUsuarios.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(buscadorQuery.ToString)
+ DtUsuarios = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(buscadorQuery.ToString)
+ GvUsuarios.DataBind()
+ UpUsuarios.Update()
+ RegistraScript("$('#ModalDescuento').modal()")
+ End Sub
+
+ Private Sub BtnAplicarDescG_Click() Handles BtnAplicarDescG.Click
+ Dim UsuariosCorreos As String = ""
+ For Each usuario As DataRow In DtUsuarios.Rows
+ If usuario.Item("Correo").ToString.Length > 0 Then
+ UsuariosCorreos = String.Format("{0}{1}" & Environment.NewLine, UsuariosCorreos, usuario.Item("Correo").ToString)
+ End If
+ Next
+ TxtCorreo.Value = UsuariosCorreos
+ RegistraScript("$('#ModalDescuento').modal('hide')")
+ UpCliente.Update()
+ End Sub
+
+ Private Function GuardarArchivo(CircularInsertado As Integer) As String
+
+ Dim respuesta As String = ""
+
+ Dim FileExtension As String = "-1"
+ Dim Filesgral As List(Of Archivo) = TxtFileDocumentacion.getfiles().Archivos
+ Dim Filename As String = ""
+
+ For Each fileItem As Archivo In Filesgral
+ Try
+ respuesta = fileItem.filenameO
+ FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "")
+ Dim tempArray() As String
+ tempArray = fileItem.filename.ToString().Split("-".ToCharArray())
+
+ Dim rutaDestino As String = UsuarioActual.Empresa.Ruta & "Formatos\" & CircularInsertado & "_" & fileItem.filenameO
+ 'Dim docAnterior As String = UsuarioActual.Empresa.Ruta & "Formatos\" & _CveDocumentacion & "_" & DocumentacionFormato
+
+ 'If DocumentacionFormato.Trim.Length > 0 Then
+ ' If File.Exists(docAnterior) Then
+ ' File.Delete(docAnterior)
+ ' End If
+ 'End If
+
+ If Not Directory.Exists(UsuarioActual.Empresa.Ruta & "\Formatos") Then
+ Directory.CreateDirectory(UsuarioActual.Empresa.Ruta & "\Formatos")
+
+ End If
+
+ If System.IO.File.Exists(rutaDestino) Then
+ System.IO.File.Delete(rutaDestino)
+ End If
+
+ System.IO.File.Move(fileItem.FileUrl, rutaDestino)
+
+ Catch ex As Exception
+ OnError("Error al cargar archivo", ex)
+ End Try
+ TxtFileDocumentacion.Text = ""
+ Next
+
+
+ Return respuesta
+ End Function
+
+ Protected Sub LnkMandarCorreo_Click() Handles LnkMandarCorreo.Click
+ Dim correos() As String
+ correos = TxtCorreo.Value.Split(Environment.NewLine)
+ 'MandaCorreo()
+ End Sub
+
+ Private Sub MandaCorreo(Asunto As String, Para As String, ArrayCC As String, body As String, ArchivoBinario As Byte())
+
+ Dim a As String = String.Format("{0} -- {1} --- {2}", Asunto, Para, ArrayCC)
+ a.GuardaLog()
+
+ Dim Mail As New ClsSisMail()
+ Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
+ Dim itemMail As New ClsSisMail.ArchivoMail
+
+ With itemMail
+ itemMail.ArchivoBinario = ArchivoBinario
+ itemMail.NombreArchivo = "Invitación.pdf"
+
+ End With
+
+ LSRutasMail.Add(itemMail)
+
+
+ Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, body, ArrayCC, LSRutasMail)
+ Mail = Nothing
+ End Sub
+End Class
diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb
index 05560ccb3..6228b0e4d 100644
--- a/RH/Personal.aspx.vb
+++ b/RH/Personal.aspx.vb
@@ -298,11 +298,11 @@ Partial Class RH_Personal
End Set
End Property
- Private Property PU As Double
+ Private Property PU As Decimal
Get
Return CInt(ViewState("PU"))
End Get
- Set(value As Double)
+ Set(value As Decimal)
ViewState("PU") = value
End Set
End Property
@@ -4908,7 +4908,7 @@ Partial Class RH_Personal
CveAlmacenUniforme = rowInfo.Item("CveAlmacen").ToString.ToEntero
DescripcionUniforme = rowInfo.Item("CodigoPS").ToString
- PU = rowInfo.Item("PU").ToString.ToDouble
+ PU = rowInfo.Item("PU").ToString.ToDecimal
CveUM = rowInfo.Item("CveUM").ToString.ToEntero
CvePS = rowInfo.Item("CvePS").ToString.ToEntero
diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb
index 0f6f072f3..27d292fea 100644
--- a/Ventas/ProductosServicios.aspx.vb
+++ b/Ventas/ProductosServicios.aspx.vb
@@ -1,2626 +1,2626 @@
-Option Explicit On
-Option Strict On
-
-Imports Extensiones
-Imports System.IO
-Imports System.Data
-Imports ZXing
-
-Partial Class ProductosyServicios
- Inherits ClsPaginas
-
-#Region " Propiedades "
- Private ReadOnly Property CvePS As Integer
- Get
- Return ViewState("CvePS").ToString.ToEntero
- End Get
- End Property
-
- Private Property CveSATPS As Integer
- Get
- Return ViewState("CveSATPS").ToString.ToEntero
- End Get
- Set(value As Integer)
- ViewState("CveSATPS") = value
- End Set
- End Property
-
- Private Property Ret As String
- Get
- Return ViewState("Ret").ToString
- End Get
- Set(value As String)
- ViewState("Ret") = value
- End Set
- End Property
- Private Property Borrar As Boolean
- Get
- Return CBool(ViewState("Borrar"))
- End Get
- Set(value As Boolean)
- ViewState("Borrar") = value
- End Set
- End Property
- Public Property dtPaqueteDetalles() As DataTable
- Get
- Return CType(ViewState("dtPaqueteDetalles"), DataTable)
- End Get
- Set(value As DataTable)
- ViewState("dtPaqueteDetalles") = value
- End Set
- End Property
- Public Property DtEquivalencias() As DataTable
- Get
- Return CType(ViewState("DtEquivalencias"), DataTable)
- End Get
- Set(value As DataTable)
- ViewState("DtEquivalencias") = value
- End Set
- End Property
- Public Property dtFamily() As DataTable
- Get
- Return CType(ViewState("dtFamily"), DataTable)
- End Get
- Set(value As DataTable)
- ViewState("dtFamily") = value
- End Set
- End Property
-
-
- Property CodigoBarrasCargado As String
- Get
- If ViewState("CodigoBarrasCargado") Is Nothing Then
- Return ""
- Else
- Return ViewState("CodigoBarrasCargado").ToString
- End If
- End Get
- Set(value As String)
- ViewState("CodigoBarrasCargado") = value
- End Set
- End Property
-
- Public Property DtPSAdicionales() As DataTable
- Get
- Return CType(ViewState("DtPSAdicionales"), DataTable)
- End Get
- Set(value As DataTable)
- ViewState("DtPSAdicionales") = value
- End Set
- End Property
-
- Private Property CvePSAdicional As Integer
- Get
- Return ViewState("CvePSAdicional").ToString.ToEntero
- End Get
- Set(value As Integer)
- ViewState("CvePSAdicional") = value
- End Set
- End Property
- Public Property DtSeccionAlmacen() As DataTable
- Get
- Return CType(ViewState("DtSeccionAlmacen"), DataTable)
- End Get
- Set(value As DataTable)
- ViewState("DtSeccionAlmacen") = value
- End Set
- End Property
-
-
-#End Region
-
- Private ReadOnly Property PermiteClasificacion2 As Boolean
- Get
- Return (UsuarioActual.CveEmpresa.Contiene(72, 80))
- End Get
- End Property
-
-
-
-#Region " PROPIEDADES ECOMMERCE "
- '''
- ''' Si es True existe en Eco_Produtcos
- '''
- '''
- Private Property AplicaEcommerce As Boolean
- Get
- Return CBool(ViewState("AplicaEcommerce"))
- End Get
- Set(value As Boolean)
- ViewState("AplicaEcommerce") = value
- End Set
- End Property
-#End Region
-
- Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
- If Not IsPostBack Then
-
- InicializaValores()
- If Request("CvePS") IsNot Nothing AndAlso IsNumeric(Request("CvePS")) AndAlso Request("CvePS").ToEntero > 0 Then
- ViewState("CvePS") = Request("CvePS")
- CargarMarcas()
-
- CargaDatos()
- 'Configuración de Modalidad Update
- BtnGuardar.Text = "Guardar Cambios"
-
- CargarAlias()
- CargaExistencias()
- CargaGvSeccionAlmacen()
- Else
- 'Configuración de Modalidad Insert
- RegistraScript("$('#C_Tab_TabPaquetes_tab').css('display' , 'none')")
-
- ViewState("CvePS") = -1
- CargarMarcas()
-
- ChkEstado.Enabled = False
- ChkEstado.Checked = True
- LblFechaCaptura.Text = Now.ToShortDateString()
- LblUsuarioCapturo.Text = UsuarioActual.Usuario
- BtnEliminar.Visible = False
-
- If UsuarioActual.Empresa.Funcionalidad(543).ToString = "1" Then
- Dim ObjSub As New ClsSubProyectos
- Dim CveSubProyectoMatriz As Integer
-
- If ObjSub.GetSubProyectos() Then
- CveSubProyectoMatriz = ObjSub.DtResultados.FiltroPrimeroValor("CveSubProyecto", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND TipoSucursal = 1").ToEntero
- End If
-
- Dim ObjFolios As New ClsGralFolios()
- If ObjFolios.GetFolios("PS", UsuarioActual.CveEmpresa) Then
-
- Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoMatriz} And Estado = 'Activo'")
- If DT.Rows.Count > 0 Then
- TxtCodigo.Text = DT.Rows(0)("FActual").ToString
- TxtCodigo.Enabled = False
- Else
- Alert("No tiene registrados Folios para la sucursal matriz.", TipoMensaje.MsgAdvertencia)
- End If
- End If
- End If
-
- End If
-
- If Request("Ret") IsNot Nothing AndAlso Request("Ret").ToString <> "" Then
- Ret = Request("Ret")
- End If
-
- 'CargaFamilia(ViewState("CveSubFamilia").ToString.ToEntero)
- CargaSucursaless()
- CargaImpuestosLocales()
- CargaConceptoRelacionado()
-
- If UsuarioActual.TienePermisoProceso(122) Then
- BtnEliminar.Visible = False
- BtnGuardar.Visible = False
- End If
-
- If UsuarioActual.Empresa.Funcionalidad(557) = "1" Then
- DdlIVA.SelectedValueExist("-1")
- DdlIVA.Attributes.Add("disabled", "disabled")
- DdlIVA.Enabled = False
- End If
-
- If CvePS > 0 Then
- CargaEquivalencias()
- CargaPSAdicionales()
- CargaGvBitacora()
- divBitacora.Visible = True
- VerificaRequiereSerieLote()
- End If
-
- If UsuarioActual.Empresa.Funcionalidad(524) <> "" Then
- DivProveedorCompra.Visible = True
- DivMoneda.Visible = True
- End If
-
- UpDatos.Update()
-
- 'DdlClasificacion.AutoPostBack = UsuarioActual.CveEmpresa.Contiene(80, 72)
-
- InicializaEcommerce()
-
- If UsuarioActual.CveEmpresa.Contiene(141) Then
- 'DivDatos.Attributes("class") = "col-md-12"
-
- DivDdlTipo.Visible = True
- 'DdlTipoPSDes.Attributes.Add("onChange", "CreaDescripcionPS();")
-
- End If
-
- If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) And CvePS = -1 Then
- 'DivDatos.Attributes("class") = "col-md-12"
- TxtPS.Enabled = False
- DivDdlTipo.Visible = True
- DivTxtModelo.Visible = True
- DivTxtAdicional.Visible = True
- DdlTipoPSDes.Attributes.Add("onChange", "CreaDescripcionPS();")
- DdlMarcaPSDes.Attributes.Add("onChange", "CreaDescripcionPS();")
- TxtModelo.Attributes.Add("onKeyUp ", "CreaDescripcionPS();")
- TxtAdicional.Attributes.Add("onKeyUp ", "CreaDescripcionPS();")
- End If
-
- If ddlMetodos.SelectedValue.ToEntero = 5 And Not UsuarioActual.TienePermisoProceso(255) Then
- ddlMetodos.Enabled = False
- End If
- Dim posiciontipo As String = If(UsuarioActual.Empresa.Funcionalidad(558).ToString = "1", "$('.DIVCLASIFICACIONCONTABLE').after( $('.DIVTIPO') );", "")
-
- LtlScripts.Text = $""
- If Not CvePS > 0 Then MuestraPanel(True)
-
- End If
- End Sub
-
-#Region " INCIALIZA "
- Private Sub InicializaValores()
- ViewState("OrdenO") = ""
- ViewState("OrdenC") = ""
- ViewState("DTProductosServiciosCaracteristicas") = Nothing
- ViewState("DTProductosServiciosCaracteristicasOpciones") = Nothing
- ViewState("CveSubFamilia") = "-1"
- Ret = "-1"
-
- 'CType(Me.Master, BaseMasterPage).EsPopup = True
- 'CType(Me.Master, BaseMasterPage).PopupWidth = 700
- 'RegistraScript("$get('tdContenido').style.height='350px'")
-
- CargaClasificaciones()
- CargaClasificaciones2()
- CargaClasificacionesDetalles()
- ClasificacionModal()
- CargaTipoProductos()
- CargaUnidadesMedida()
- CargarMetodosInv()
- 'CargaPSAdicional(DdlPSAdicional)
-
- 'Nuevo R: 26/09/2017
- CargaProveedores()
-
- CargarCompuestos()
- CargaPS()
- 'ChangeDdl()
- CargaDdlSATPS()
- CargaDdlFraccionArancelaria()
- CveSATPS = -1
-
- CargaCombosSeccionAlmacen()
- DivSeccionAlmacen.Visible = UsuarioActual.Empresa.Funcionalidad(563).ToString = "1"
- CreaDtSeccionAlmacen()
-
- If UsuarioActual.Empresa.UsaContabilidad Then
- CargaCuentasContables()
- If Not (Request("CvePS") IsNot Nothing AndAlso IsNumeric(Request("CvePS")) AndAlso Request("CvePS").ToEntero > 0) Then DivUsoClasificacion.Visible = True
- End If
-
- 'CargaTipoServicio()
- 'DivTipoServicio.Visible = False
-
- TxtDescripcion.Text = UCase(TxtDescripcion.Text)
-
- Dim objAcum As New ClsAcumuladores
- If objAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
- DdlTamanio.DataSource = objAcum.DtResultados
- Else
- DdlTamanio.DataSource = Nothing
- End If
-
- objAcum.Dispose()
- DdlTamanio.DataBind()
-
- If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then
- DivLlantas.Visible = True
- DivPSAdicionales.Visible = True
- CargaPanelLlantas()
- End If
-
- CvePSAdicional = -1
-
- End Sub
-
- 'Private Sub CargaPSAdicional(Objeto As ADServerControl.Dropdownlost)
- ' Objeto.setEsWebService(UsuarioActual.Empresa.Funcionalidad(141).ToString = "1")
- ' If Not UsuarioActual.Empresa.Funcionalidad(141).ToString = "1" Then
- ' Objeto.ddl.Items.Clear()
- ' Objeto.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=-1, Estatus:=1, AplicaParaVenta:=1)
- ' Objeto.ddl.DataBind()
- ' Objeto.ddl.Items.Insert(0, New ListItem("Seleccione", "-1"))
- ' Else
- ' Objeto.ddlWS.Attributes.Add("data-Estatus", "1")
- ' Objeto.SelectedValue = "-1"
- ' Objeto.SelectedText = "Seleccione"
- ' End If
- 'End Sub
- Private Sub CargaPanelLlantas()
- Dim ObjGral As New ClsGenerales()
- If ObjGral.GetModelos(UsuarioActual.CveEmpresa) Then
- DdlModelo.DataSource = ObjGral.DtResultados.Copy()
- End If
- If ObjGral.GetMedidas(UsuarioActual.CveEmpresa) Then
- DdlMedida.DataSource = ObjGral.DtResultados.Copy()
- End If
- If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then
- DdlRin.DataSource = ObjGral.DtResultados.Copy()
- End If
- ObjGral.Dispose()
-
- DdlModelo.DataBind()
- DdlMedida.DataBind()
- DdlRin.DataBind()
-
- End Sub
-
- Private Sub MuestraPanel(Optional AfterPageLoad As Boolean = False)
- If AfterPageLoad Then
- RegistraScript("window.onload = function MuestraPanel() { document.getElementById(""C_BtnMostrarPanel"").click(); }")
- End If
- End Sub
-
-
- Protected Sub BtnTipoCla_Click(sender As Object, e As EventArgs)
- PresionarBotonPanel("C_BtnCerrarPanel")
- DivUsoClasificacion.Visible = False
- DdlUsoClasificacion.SelectedValueExist(RblTipoClasificación.SelectedValue)
- CargaClasificaciones()
- UpDatos.Update()
- End Sub
-
- Private Sub PresionarBotonPanel(Boton As String)
- Dim Script As String = $"document.getElementById(""{Boton}"").click();"
- Dim Pag As System.Web.UI.Page = CType(System.Web.HttpContext.Current.Handler, System.Web.UI.Page)
- ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), Boton, Script, True)
- Pag = Nothing
- End Sub
-#End Region
-
-#Region "S U C U R S A L E S"
- Private Sub CargaSucursaless()
- 'Dim dtSuc As DataTable = GlobalDTSucursales().FiltraParametros("CveEmpresa = " + UsuarioActual.CveEmpresa.ToString)
- 'dtSuc.AcceptChanges()
-
- 'dtSuc.Columns.Add("Importe")
- 'dtSuc.Columns.Add("Activo")
-
- 'For Each row As DataRow In dtSuc.Rows
- ' row("Activo") = False
- 'Next
- 'dtSuc.AcceptChanges()
-
- 'If Not ViewState("CvePS") Is Nothing Then
- ' Dim ObjPS As New ClsProductosServicios
-
- ' If ObjPS.GetPSSucursales(CvePS) Then
- ' Dim dtSucP As DataTable = ObjPS.DtResultados
-
- ' For Each Row As DataRow In dtSucP.Rows
- ' Dim rowsToUpdate = dtSuc.AsEnumerable().Where(Function(r) r.Field(Of Integer)("CveSucursal") = Row("CveSucursal").ToString.ToEntero AndAlso r!CveSucursal.ToString.ToEntero > 0)
-
- ' For Each roww As DataRow In rowsToUpdate
- ' roww.SetField("Importe", Row("Importe"))
- ' roww.SetField("Activo", True)
- ' Next
-
- ' 'For Each drtt As DataRow In TmpDT.Select(String.Format("PS='{0}' AND CvePS=0", Row("PS")))
- ' ' drtt("CvePS") = tCve
- ' 'Next
-
-
- ' dtSuc.AcceptChanges()
- ' Next
- ' End If
-
- ' ObjPS.Dispose()
- 'End If
-
- 'gvSucursal.DataSource = dtSuc
- 'gvSucursal.DataBind()
-
- Dim ObjPS As New ClsProductosServicios
-
- If ObjPS.GetPSSucursales(CvePS, UsuarioActual.CveEmpresa) Then
- gvSucursal.DataSource = ObjPS.DtResultados
-
- End If
-
- ObjPS.Dispose()
- gvSucursal.DataBind()
- End Sub
-
- Protected Sub gvSucursal_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvSucursal.RowDataBound
- If e.Row.RowType = DataControlRowType.DataRow Then
- If e.Row.RowIndex = 0 Then
- e.Row.Cells(0).Width = Unit.Pixel(50)
- e.Row.Cells(1).Width = Unit.Pixel(100)
- e.Row.Cells(2).Width = Unit.Pixel(100)
- End If
-
- ' If e.Row.FCCheckBox("chkSucursal").Checked = True Then e.Row.Cells(0).BackColor = Drawing.Color.Yellow
- End If
- End Sub
-#End Region
-
-#Region "C A R A C T E R I S T I C A S"
-
- Private Sub CargaCaracteristicas()
- ' CargaDatosC()
- CargaProductosServiciosCaracteristicas()
- CambioProductosServiciosCaracteristicas(DdlCaracteristica.SelectedValue.ToEntero)
- CargaDatosO()
- UpDatos.Update()
- UpDatosO.Update()
- UpTitulosO.Update()
-
- End Sub
- Public Sub CargaDatosO()
- Dim Objeto As New ClsGenerales
- If Objeto.GetCaracteristicasValores(-1, -1, CvePS, -1, -1, -1, 5, UsuarioActual.CveEmpresa, OpcionListado:=1) Then
- GvDatosOpciones.DataSource = Objeto.DtResultados
- End If
- Objeto.Dispose()
- UpDatosO.Update()
- GvDatosOpciones.DataBind()
-
- End Sub
-
-
- Private Sub LbAgregarO_Click(sender As Object, e As EventArgs) Handles LbAgregarO.Click
- Dim Objeto As New ClsGenerales
- Dim Opcion As String = If(TDTxtOpcion.Visible = True, TxtOpcion.Text, DdlOpcion.SelectedItem.Text)
- Dim Opcion2 As Integer = If(TDDdlOpcion.Visible = True, DdlOpcion.SelectedValue.ToEntero, -1)
-
- If Objeto.AddUpdateCaracteristicasValores(DdlCaracteristica.SelectedValue.ToEntero, Opcion2, Opcion, UsuarioActual.CveUsuario, CvePs:=CvePS) Then
- End If
- Objeto.Dispose()
- TxtOpcion.Text = ""
- CargaDatosO()
- UpDatosO.Update()
- UpTitulosO.Update()
- Alert("El valor de la caracteristica se agregó correctamente.", TipoMensaje.MsgInformacion)
- End Sub
-
- Private Sub CargaProductosServiciosCaracteristicas()
- Dim Objeto As New ClsGenerales
- DdlCaracteristica.Items.Clear()
- If Objeto.GetCaracteristicas(-1, 5, UsuarioActual.CveEmpresa) Then
- DdlCaracteristica.DataSource = Objeto.DtResultados
- End If
- Objeto.Dispose()
- DdlCaracteristica.DataBind()
- End Sub
-
- Protected Sub DdlCaracteristica_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCaracteristica.SelectedIndexChanged
- CambioProductosServiciosCaracteristicas(DdlCaracteristica.SelectedValue.ToEntero)
- End Sub
-
- Protected Sub CambioProductosServiciosCaracteristicas(CveCaracteristica As Integer)
- Dim Objeto As New ClsGenerales
- If Objeto.GetCaracteriscasOpciones(CveCaracteristica, UsuarioActual.CveEmpresa) Then
- Dim dr As DataRow = Objeto.DtResultados.FiltroPrimero(String.Format(("CveCaracteristica={0}"), CveCaracteristica))
- If dr IsNot Nothing Then
- If dr("CveCaracteristicaTipo").ToString = "1" Then
- DdlOpcion.Items.Clear()
- DdlOpcion.DataSource = Objeto.DtResultados.FiltraParametros(String.Format(("CveCaracteristica={0}"), CveCaracteristica))
-
- TDDdlOpcion.Visible = True
- TDTxtOpcion.Visible = False
- Else
- TDTxtOpcion.Visible = True
- TDDdlOpcion.Visible = False
- End If
-
- End If
- End If
- Objeto.Dispose()
- DdlOpcion.DataBind()
- End Sub
-
- Protected Sub CambioProductosServiciosCaracteristicasOpciones()
- UpTitulosO.Update()
- End Sub
-#End Region
-
-#Region "G V O P C I O N E S"
- Protected Sub GvDatosOpciones_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatosOpciones.RowDataBound
- If e.Row.RowType = DataControlRowType.DataRow Then
- If e.Row.RowIndex = 0 Then
- e.Row.Cells(0).Width = Unit.Pixel(150)
- e.Row.Cells(1).Width = Unit.Pixel(150)
- e.Row.Cells(2).Width = Unit.Pixel(100)
- e.Row.Cells(3).Width = Unit.Pixel(100)
- e.Row.Cells(4).Width = Unit.Pixel(50)
- End If
- e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
-
- If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
- e.Row.FCDropDownList("DdlCaracteristicaEdit").DataSource = GlobalDTProductosServiciosCaracteristicas(UsuarioActual.CveEmpresa).FiltraParametros("CvePS = " + CvePS.ToString)
- e.Row.FCDropDownList("DdlCaracteristicaEdit").DataBind()
- e.Row.FCDropDownList("DdlCaracteristicaEdit").SelectedValue = e.Row.DBCampo("CvePS")
- End If
- End If
- End Sub
- Protected Sub GvDatosOpciones_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatosOpciones.RowDeleting
- Dim ObjOpciones As New ClsGenerales
- Dim CveCaracteristicaValor As Integer = GvDatosOpciones.Rows(e.RowIndex).DataKey("CveCaracteristicaValor").ToEntero
-
- If ObjOpciones.RemoveCaracteristicasValores(CveCaracteristicaValor, CvePS:=CvePS) Then
- GvDatosOpciones.EditIndex = -1
- CambioProductosServiciosCaracteristicasOpciones()
- CargaDatosO()
- UpDatosO.Update()
- Alert("La Opción para Caracteristica del Producto o Servicio se eliminó correctamente.", TipoMensaje.MsgInformacion)
- End If
-
- ObjOpciones.Dispose()
- End Sub
- Protected Sub GvDatosOpciones_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvDatosOpciones.RowCancelingEdit
- GvDatosOpciones.EditIndex = -1
- End Sub
- Protected Sub GvDatosOpciones_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvDatosOpciones.RowUpdating
- Dim ObjOpciones As New ClsGralProductosServiciosCaracteristicas
- Dim CveCaracteristica As Integer = DirectCast(GvDatosOpciones.Rows(e.RowIndex).FindControl("DdlCaracteristicaEdit"), DropDownList).SelectedValue.ToEntero
- Dim CveOpcion As Integer = GvDatosOpciones.DataKeys(e.RowIndex).Value.ToString.ToEntero
-
- Dim Opcion As String = DirectCast(GvDatosOpciones.Rows(e.RowIndex).FindControl("TxtOpcion"), TextBox).Text.Trim
-
- If ObjOpciones.UpdateProductosServiciosCaracteristicasOpciones(Opcion, CveCaracteristica, CveOpcion) Then
- GvDatosOpciones.EditIndex = -1
- ViewState("DTProductosServiciosCaracteristicasOpciones") = ObjOpciones.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
- GlobalDTProductosServiciosCaracteristicasOpciones(UsuarioActual.CveEmpresa) = ObjOpciones.DtResultados
- Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion)
-
- CambioProductosServiciosCaracteristicasOpciones()
- End If
-
- ObjOpciones.Dispose()
- End Sub
-
- 'Protected Sub GvDatosOpciones_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvDatosOpciones.RowEditing
- ' GvDatosOpciones.EditIndex = e.NewEditIndex
- ' CargaGrid()
- 'End Sub
-#End Region
-
-#Region "O R D E N A M I E N T O"
- Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs)
- Dim Orden As String = ""
- Dim Campo As String = ""
- Dim gvi As Integer = 0
- Dim Literal As Literal = Nothing
- Const OrdenInicial As String = ""
- Dim Arg(2) As String
-
- Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c)
- Campo = Arg(0)
- gvi = Arg(1).ToEntero
- Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(", ", "_")), Literal)
- Campo = Campo.Substring(0, Campo.Length - 1)
-
- If ViewState(String.Format("O{0}", Campo, gvi)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo, gvi)).ToString = String.Format("{0} DESC", Campo) Then
- ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo)
- Literal.Text = String.Format("")
- Else
- ViewState(String.Format("O{0}", Campo, gvi)) = String.Format("{0} DESC", Campo)
- Literal.Text = String.Format("")
- End If
- Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo, gvi)).ToString
- ViewState("Orden") = Orden
- End Sub
-
-
-
- 'Private Sub CargaGrid()
- ' Dim Objeto As New ClsGralProductosServiciosCaracteristicas
- ' If Objeto.GetPSCaracteristicas(UsuarioActual.CveEmpresa) Then
- ' GvDatosCaracteristicas.DataSource = Objeto.DtResultados
- ' End If
- ' GvDatosCaracteristicas.DataBind()
- ' Objeto.Dispose()
- 'End Sub
-
-
-
-#End Region
-
-#Region "C A R G A S"
- Private Sub ClasificacionModal()
- DdlClasificacionModal.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion")
- DdlClasificacionModal.Items.Insert(0, New ListItem("Seleccione", "-1"))
- DdlClasificacionModal.DataBind()
- UpModal.Update()
- End Sub
-
- Private Sub CargaClasificacionesDetalles()
- DdlTipoPSDes.Items.Clear()
- DdlTipoPSDes.DataSource = GlobalDTClasificacionesDetalle(UsuarioActual.CveEmpresa)
- 'If DdlClasificacion.SelectedValue.ToEntero > 0 Then
- 'Dim ObjVenta As New ClsVentas
- ' If ObjVenta.GetClasificacionDetalle(UsuarioActual.CveEmpresa, CveClasificacion:=-1) Then
- ' DdlTipoPSDes.DataSource = ObjVenta.DtResultados
- ' End If
- ' ObjVenta.Dispose()
- 'End If
- DdlTipoPSDes.Items.Insert(0, New ListItem("Seleccione", "-1"))
- DdlTipoPSDes.DataBind()
- End Sub
- Private Sub CargaClasificaciones()
- DdlClasificacion.Items.Clear()
- If UsuarioActual.Empresa.UsaAC Then
- DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, DdlUsoClasificacion.SelectedValue.ToEntero, -1)).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion")
- Else
- DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, DdlUsoClasificacion.SelectedValue.ToEntero, -1)).FiltraParametros("", Orderby:="Clasificacion")
- End If
- DdlClasificacion.Items.Insert(0, New ListItem("Seleccione", "-1"))
- 'BLOQUEA DDL CLASIFICACION
- If UsuarioActual.Empresa.Funcionalidad(121) = "1" Then
- If Not UsuarioActual.TienePermisoProceso(147) Then
- DdlClasificacion.Enabled = False
- End If
- End If
- DdlClasificacion.DataBind()
- End Sub
- Private Sub CargaClasificaciones2()
- DdlClasificacion2.DataSource = GlobalDTClasificaciones2(UsuarioActual.CveEmpresa)
- DdlClasificacion2.DataBind()
- DdlClasificacion2.Items.Insert(0, New ListItem("Sin Clasificacion", "-1"))
- DdlClasificacion2.SelectedValueExist("-1")
-
- 'BLOQUEA DDL CLASIFICACION
- If PermiteClasificacion2 Then
- DivClasificacion2.Visible = True
- End If
-
- End Sub
- Private Sub CargaTipoProductos()
- 'BLOQUEA DDL TIPO PRODUCTO
- If UsuarioActual.Empresa.Funcionalidad(122) = "1" Then
- If Not UsuarioActual.TienePermisoProceso(149) Then
- DdlTipoPS.Enabled = False
- DdlTipoPS.SelectedValueExist("2")
- End If
- End If
- End Sub
- Private Sub CargaConceptoRelacionado()
- DdlConceptoRelacionado.DataSource = GlobalDTContaConceptosContables(-1)
- DdlConceptoRelacionado.DataBind()
- End Sub
- Private Sub CargarMetodosInv()
- ddlMetodos.DataSource = If(UsuarioActual.CveEmpresa.Contiene(72, 80), GlobalDTInvMetodosInventario.FiltraParametros("CveMetodoInventario IN (1,5)"), GlobalDTInvMetodosInventario)
- ddlMetodos.DataBind()
- ddlMetodos.Items.Insert(0, New ListItem("Seleccione", "-1"))
- End Sub
-
- 'Nuevo R: 26/09/207'
- Private Sub CargaProveedores()
- DdlProveedor.setEsWebService(True)
- 'DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
- 'DdlProveedor.DataBind()
- 'DdlProveedor.Items.Insert(0, New ListItem("Seleccione", "-1"))
-
- DdlMoneda.DataSource = GlobalDTMonedas()
- DdlMoneda.DataBind()
- DdlMoneda.Items.Insert(0, New ListItem("Seleccione", "-1"))
-
- End Sub
-
-
-
- Private Sub CargaUnidadesMedida()
- DdlUnidadMedida.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa)
- DdlUnidadMedida.DataBind()
- End Sub
- Private Sub CargaCuentasContables()
- 'Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa.ServerContPAQi, UsuarioActual.Empresa.BDContPAQi, UsuarioActual.Empresa.UsrContPAQi, UsuarioActual.Empresa.PwdContPAQi)
- 'If ObjContabilidad.GetCuentas(-1, "-1", -1) Then
- ' DdlCtaContableVentas.DataSource = ObjContabilidad.DtResultados
- ' DdlCtaContableCompras.DataSource = ObjContabilidad.DtResultados
- ' DdlCtaContableInventarios.DataSource = ObjContabilidad.DtResultados
- 'Else
- ' DdlCtaContableVentas.DataSource = Nothing
- ' DdlCtaContableCompras.DataSource = Nothing
- ' DdlCtaContableInventarios.DataSource = Nothing
- 'End If
- 'DdlCtaContableVentas.DataBind()
- 'DdlCtaContableCompras.DataBind()
- 'DdlCtaContableInventarios.DataBind()
- 'ObjContabilidad.Dispose()
- End Sub
- Private Sub CargaDatos()
- Dim ObjProductosServicios As New ClsProductosServicios()
- If ObjProductosServicios.GetPS(CvePS, -1, UsuarioActual.CveEmpresa) Then
- If ObjProductosServicios.DtResultados.Rows.Count > 0 Then
-
- 'SI NO TIENE VALOR Y NO TIENE EL PROCESO MUESTRA SIN CLASIFICACION
- If ObjProductosServicios.CveClasificacion.ToString.Equals("-1") And Not UsuarioActual.TienePermisoProceso(147) And UsuarioActual.Empresa.Funcionalidad(121) = "1" Then
- DdlClasificacion.SelectedValueExist("0")
- Else
- DdlClasificacion.SelectedValueExist(ObjProductosServicios.CveClasificacion.ToString)
- End If
- CargaClasificacionesDetalles()
- DdlClasificacion2.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveClasificacion2").ToString)
- DdlCompuesto.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveCompuesto").ToString)
- 'SI ES NUEVO TIPO = PRODUCTO Y SI NO TIENE PROCESO NO PUEDO EDITAR
- If ObjProductosServicios.CveTipoPS.ToString.Equals("-1") And Not UsuarioActual.TienePermisoProceso(149) And UsuarioActual.Empresa.Funcionalidad(122) = "1" Then
- DdlTipoPS.SelectedValueExist("2")
- Else
- DdlTipoPS.SelectedValueExist(ObjProductosServicios.CveTipoPS.ToString)
- End If
-
- 'If ObjProductosServicios.CveTipoPS = 1 Then
- ' DivTipoServicio.Visible = True
- ' DdlTipoServicio.SelectedValueExist(ObjProductosServicios.Estado2.ToString)
-
- ' If Not DdlTipoServicio.SelectedValue.ToEntero > 0 Then
- ' DdlTipoServicio.Items.Insert(1, New ListItem(If(ObjProductosServicios.Estado2 = 1, "General", "Maquinaria"), ObjProductosServicios.Estado2.ToString))
- ' DdlTipoServicio.SelectedValueExist(ObjProductosServicios.Estado2.ToString)
- ' End If
- 'End If
- If ObjProductosServicios.CveSATPS.ToString <> Nothing Then
- DdlSATPS.SelectedValue = ObjProductosServicios.CveSATPS.ToString
- DdlSATPS.SelectedText = $"{ObjProductosServicios.SATClavePS} - {ObjProductosServicios.SATDescripcion}"
- CveSATPS = ObjProductosServicios.CveSATPS
- End If
- If ObjProductosServicios.CveFraccionArancelaria.ToString <> Nothing Then
- DdlFraccionArancelaria.SelectedValue = ObjProductosServicios.CveFraccionArancelaria.ToString
- DdlFraccionArancelaria.SelectedText = ObjProductosServicios.ClaveSATFraccionArancelariaDescripcion
- End If
- If ObjProductosServicios.ClaveSATUnidadAduanaDescripcion.ToString <> Nothing Then
- LblUnidadAduana.Text = ObjProductosServicios.ClaveSATUnidadAduanaDescripcion.ToString
- End If
- DdlTipoPSDes.SelectedValueExist(ObjProductosServicios.CveClasificacionDetalle.ToString)
- DdlUnidadMedida.SelectedValue = ObjProductosServicios.CveUnidadMedida.ToString
- DdlMarca.SelectedValue = ObjProductosServicios.CveMarca.ToString
- DdlMarcaPSDes.SelectedValue = ObjProductosServicios.CveMarca.ToString
- TxtCodigo.Text = ObjProductosServicios.Codigo
- 'TxtCodigo2.Text = ObjProductosServicios.Codigo2
- TxtCodigoBarras.Text = ObjProductosServicios.CodigoBarras
- CodigoBarrasCargado = ObjProductosServicios.CodigoBarras
-
- TxtPS.Text = ObjProductosServicios.PS
- TxtPrecio.Text = ObjProductosServicios.Precio.ToString("F4") 'no usa N4, porque pone comma
- TxtPrecioMinimo.Text = ObjProductosServicios.PrecioMinimo.ToString("F4")
-
- DdlTipoFactor.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTipoFactor").ToString)
-
- If ObjProductosServicios.DtResultados.Rows(0)("CveTipoFactor").ToString.Contiene("1", "2") Then
- LIva.Visible = True
- DdlIVA.Visible = True
- DdlIVA.Width = New Unit("163px")
- Else
- DdlIVA.Visible = False
- DdlIVA.Visible = False
- End If
- DdlIVA.SelectedValueExist(ObjProductosServicios.IVA.ToString)
-
-
- LblCostoPromedio.Text = ObjProductosServicios.DtResultados.Rows(0)("CostoPromedio").ToString.FormatoNumero
- LblUltimoCosto.Text = ObjProductosServicios.DtResultados.Rows(0)("UltimoCosto").ToString.FormatoNumero
- LblFechaUltimaCompra.Text = ObjProductosServicios.DtResultados.Rows(0)("FechaUltimaCompra").ToString
- HplKardex.NavigateUrl = $"/Inventarios/Kardex.aspx?CvePS={CvePS}"
-
- TxtRetIVA.Text = (ObjProductosServicios.RetIVA * 100).ToString
- ChkEstado.Checked = ObjProductosServicios.Estado
- LblFechaCaptura.Text = ObjProductosServicios.Fecha.ToShortDateString
- LblUsuarioCapturo.Text = ObjProductosServicios.Usuario
- If ObjProductosServicios.CveUsuarioModifico > 0 Then
- LblFechaModificacion.Text = ObjProductosServicios.FechaUltimaModificacion.ToString
- LblUsuarioModifico.Text = ObjProductosServicios.UsuarioModifico
- End If
- 'ChkAplicaParaConcepto.Checked = ObjProductosServicios.AplicaParaConcepto
- ChkAplicaParaVenta.Checked = ObjProductosServicios.AplicaParaVenta
- lbTitulo.Text = $"{lbTitulo.Text}{ObjProductosServicios.PS}"
- LtProductoUnificar.Text = ObjProductosServicios.PS
- ddlMetodos.SelectedValue = ObjProductosServicios.CveMetodoInventario.ToString
- TxtAlmacenSeccion.Text = ObjProductosServicios.AlmacenSeccion.ToString
- DdlConceptoRelacionado.SelectedValueExist(ObjProductosServicios.CveConceptoContable.ToString)
-
- DdlProveedor.SelectedValue = ObjProductosServicios.CveProveedorCompra.ToString
- DdlProveedor.SelectedText = ObjProductosServicios.ProveedorCompra
-
- DdlProveedor.txtText.Value = ObjProductosServicios.ProveedorCompra
- DdlProveedor.txtValue.Value = ObjProductosServicios.CveProveedorCompra.ToString
-
- ChkInventariable.Checked = ObjProductosServicios.Inventariable
- TxtVentaMinima.Text = ObjProductosServicios.VentaMinima.ToString
- DdlMoneda.SelectedValueExist(ObjProductosServicios.CveMoneda)
- TxtRetISR.Text = (ObjProductosServicios.RetISR * 100).ToString
-
- DdlTamanio.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTamaño").ToString)
-
- DdlModelo.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveModelo").ToString)
- DdlMedida.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveMedida").ToString)
- DdlRin.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveRinTamaño").ToString)
-
- 'If ObjProductosServicios.CvePSAdicional > 0 Then
- ' DdlPSAdicional.SelectedValue = ObjProductosServicios.CvePSAdicional.ToString
- ' DdlPSAdicional.SelectedText = ObjProductosServicios.PSCodigoAdicional
- 'Else
- ' DdlPSAdicional.SelectedValue = "-1"
- ' DdlPSAdicional.SelectedText = "Seleccione"
- 'End If
-
- Try
- DdlClasificacion_SelectedIndexChanged(DdlClasificacion, Nothing)
- Catch ex As Exception
-
- End Try
-
- ChkAplicaIeps.Checked = ObjProductosServicios.AplicaIEPS
- If ObjProductosServicios.AplicaIEPS = True Then
- DdlIEPSPorcentaje.Enabled = True
- DdlIEPSPorcentaje.SelectedValue = ObjProductosServicios.IEPSPorcentaje.ToString("N2")
- ChkIepsIVA.Enabled = True
- ChkIepsIVA.Checked = ObjProductosServicios.IEPSGrabaIVA
- End If
-
- DdlImpTipoProducto.SelectedValueExist(ObjProductosServicios.ClaveImpuestoTipoProducto)
- CargaClaveGenerica(DdlImpTipoProducto.SelectedValue)
- DdlImpEmpaque.SelectedValueExist(ObjProductosServicios.ClaveImpuestoEmpaque)
- DdlImpUM.SelectedValueExist(ObjProductosServicios.ClaveImpuestoUnidadMedida)
- DdlCategoriaToxicidad.SelectedValueExist(ObjProductosServicios.ClaveCategoriaToxicidad)
-
- 'If ObjProductosServicios.CveMetodoInventario = 0 Then ddlMetodos.SelectedValue = UsuarioActual.Empresa.CveMetodoInventario.ToString
-
- ViewState("CveSubFamilia") = ObjProductosServicios.DtResultados.Rows(0)("CveSubFamilia")
-
- CargaCaracteristicas()
-
- LnkUnificar.Visible = True
- ChkEsOutSourcing.Checked = ObjProductosServicios.EsOutSourcing
- Else
- Alert("El Producto o Servicio Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia)
- RegistraScript("$('#C_Tab_TabPaquetes_tab').css('display' , 'none')")
- BtnGuardar.Enabled = False
- End If
- End If
-
- If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then
- gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados
- dtPaqueteDetalles = ObjProductosServicios.DtResultados
-
- End If
- ObjProductosServicios.Dispose()
- gvPaqueteDetalle.DataBind()
- End Sub
- Protected Sub CargarAlias()
- Dim ObjAlias As New ClsProductosServicios
- ObjAlias.GetPSAlias(CvePS, UsuarioActual.CveEmpresa)
- GVAlias.DataSource = ObjAlias.DtResultados
- ObjAlias.Dispose()
- GVAlias.DataBind()
- End Sub
-
- Public Sub CargaDdlSATPS()
- DdlSATPS.setEsWebService(True)
- DdlSATPS.Attributes.Add("data-metodo", "getpssat")
- End Sub
-
- Public Sub CargaDdlFraccionArancelaria()
- DdlFraccionArancelaria.setEsWebService(True)
- DdlFraccionArancelaria.Attributes.Add("data-metodo", "getfraccionarancelaria")
- End Sub
- Private Sub VerificaRequiereSerieLote()
- If UsuarioActual.CveEmpresa.Contiene(80, 72) And DdlClasificacion.SelectedIndex > 0 Then
- Dim RequireSerieLote As Integer = (GlobalDTClasificaciones(UsuarioActual.CveEmpresa, -1).FiltraParametros("CveClasificacion=" & DdlClasificacion.SelectedValue.ToString))(0)("RequiereSerieLote").ToString.ToEntero
- If RequireSerieLote = 1 Then
- RfvddlMetodos.Enabled = True
- Else
- RfvddlMetodos.Enabled = False
- End If
- Else
- RfvddlMetodos.Enabled = False
- End If
- UpMetodos.Update()
- End Sub
-
-#End Region
-
- '#Region "Familias"
- ' Protected Sub DdlFamilia_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlFamilia.SelectedIndexChanged
- ' CargaDdlSubFamilia()
- ' DdlSubFamilia.SelectedValue = "-1"
- ' End Sub
- ' Public Sub CargaFamilia(Optional CveSubFamilia As Integer = 0)
- ' dtFamily = GlobalDTSubFamilias(UsuarioActual.CveEmpresa)
- ' CargaDdlFamilia()
- ' If dtFamily.FiltraParametros(String.Format("CveClasificacion={0}", CveSubFamilia)).Rows.Count > 0 Then
- ' DdlFamilia.SelectedValue = dtFamily.FiltraParametros(String.Format("CveClasificacion={0}", CveSubFamilia)).Rows(0)("CveCategoria").ToString
- ' End If
- ' CargaDdlSubFamilia()
-
- ' If CveSubFamilia > 0 Then
- ' DdlSubFamilia.SelectedValue = CveSubFamilia.ToString
- ' End If
- ' End Sub
- ' Public Sub CargaDdlFamilia()
- ' ' Alert( GlobalDTFamilias(UsuarioActual.CveEmpresa).Rows.Count.ToString())
- ' DdlFamilia.DataSource = GlobalDTFamilias(UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'Activo'")
- ' DdlFamilia.DataBind()
- ' End Sub
- ' Public Sub CargaDdlSubFamilia()
- ' DdlSubFamilia.DataSource = dtFamily.FiltraParametros(String.Format("CveCategoria={0}", DdlFamilia.SelectedValue), "Clasificacion")
- ' DdlSubFamilia.DataBind()
- ' DdlSubFamilia.Items.Insert(0, New ListItem("----", "-1"))
- ' End Sub
- ' Private Function isWhitFamily() As Boolean
- ' Return (UsuarioActual.CveEmpresa = 66)
- ' End Function
- '#End Region
-
-#Region " TIPO SERVICIO "
- 'Public Sub CargaTipoServicio()
-
- ' 'GENERAL
- ' If UsuarioActual.TienePermisoProceso(150) Then
- ' DdlTipoServicio.Items.Insert(1, New ListItem("General", "1"))
- ' DdlTipoServicio.SelectedValueExist(1)
- ' End If
-
- ' 'MAQUINARIA
- ' If UsuarioActual.TienePermisoProceso(151) Then
- ' DdlTipoServicio.Items.Insert(1, New ListItem("Maquinaria", "2"))
- ' DdlTipoServicio.SelectedValueExist(2)
- ' End If
-
- ' If UsuarioActual.TienePermisoProceso(150) And UsuarioActual.TienePermisoProceso(151) Then
- ' DdlTipoServicio.SelectedValueExist(-1)
- ' End If
-
- 'End Sub
- 'Private Sub DdlTipoPS_SelectedIndexChanged(sender As Object, e As EventArgs) ' Handles DdlTipoPS.SelectedIndexChanged
- ' If UsuarioActual.TienePermisoProceso(150) And UsuarioActual.TienePermisoProceso(151) Then
-
- ' If DdlTipoPS.SelectedValue.ToEntero = 1 Then
- ' DivTipoServicio.Visible = True
- ' End If
-
- ' If DdlTipoPS.SelectedValue.ToEntero = 2 Then
- ' DivTipoServicio.Visible = False
- ' End If
- ' End If
-
- ' UPPCostos.Update()
- ' UpDatos.Update()
-
- 'End Sub
-#End Region
-
-#Region " PAQUETES "
-
- Protected Sub BtnCargaPSPaquetes_Click(sender As Object, e As EventArgs)
- If BtnCargaPSPaquetes.CommandArgument.ToEntero > 0 Then
- CargaPS()
- BtnCargaPSPaquetes.CommandArgument = "1"
- End If
- End Sub
- Private Sub CargaPS()
- 'RMF 2017.09.13, ajuste asume siempre que use el webservice
- 'DdlProductows.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
- DdlProductows.setEsWebService(True)
- If Not DdlProductows.UsaWebService AndAlso CType(DdlProductows.DataSource, DataTable) Is Nothing AndAlso GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) IsNot Nothing Then
- DdlProductows.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
- DdlProductows.DataBind()
- End If
-
- ElProductoChange()
- End Sub
- Protected Sub DdlProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlProductows.selectedindexchange
- ElProductoChange()
- End Sub
- Private Sub ElProductoChange()
- ddlUnidad.Items.Clear()
- ddlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProductows.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa)
- ddlUnidad.DataBind()
- UpDatos.Update()
- End Sub
-
-#Region "GV PAQUETE DETALLE"
- Protected Sub gvPaqueteDetalle_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvPaqueteDetalle.RowDataBound
- If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
- e.Row.FCDropDownList("ddlEUnidad").DataSource = GlobalDTUnidadesMedida()
- e.Row.FCDropDownList("ddlEUnidad").SelectedValue = e.Row.DBCampo("CveUnidadMedida")
- e.Row.FCDropDownList("ddlEUnidad").DataBind()
- End If
- End Sub
- Protected Sub gvPaqueteDetalle_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles gvPaqueteDetalle.RowDeleting
- Dim ObjProductosServicios As New ClsProductosServicios
- Dim tipo As Integer = 0
- If dtPaqueteDetalles.Rows.Item(e.RowIndex)("Tipo").ToString = "Paquete" Then
- tipo = 1
- Else
- tipo = 2
- End If
- If ObjProductosServicios.DeletePaqueteDetalle(dtPaqueteDetalles.Rows.Item(e.RowIndex)("CvePSPaquete").ToString.ToEntero,
- dtPaqueteDetalles.Rows.Item(e.RowIndex)("CvePS").ToString.ToEntero,
- dtPaqueteDetalles.Rows.Item(e.RowIndex)("Cantidad").ToString.ToDouble,
- tipo,
- dtPaqueteDetalles.Rows.Item(e.RowIndex)("CveUnidadMedida").ToString.ToEntero) Then
-
- If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then
- gvPaqueteDetalle.EditIndex = -1
- gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados
- dtPaqueteDetalles = ObjProductosServicios.DtResultados
- gvPaqueteDetalle.DataBind()
- End If
- End If
- ObjProductosServicios.Dispose()
- End Sub
- Protected Sub gvPaqueteDetalle_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles gvPaqueteDetalle.RowEditing
- gvPaqueteDetalle.EditIndex = e.NewEditIndex
- gvPaqueteDetalle.DataSource = dtPaqueteDetalles
- gvPaqueteDetalle.DataBind()
- End Sub
- Protected Sub gvPaqueteDetalle_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles gvPaqueteDetalle.RowCancelingEdit
- gvPaqueteDetalle.EditIndex = -1
- gvPaqueteDetalle.DataSource = dtPaqueteDetalles
- gvPaqueteDetalle.DataBind()
- End Sub
- Protected Sub gvPaqueteDetalle_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles gvPaqueteDetalle.RowUpdating
- Dim ObjProductosServicios As New ClsProductosServicios
- If ObjProductosServicios.UpdatePaqueteDetalle(CvePS,
- dtPaqueteDetalles.Rows.Item(e.RowIndex)("CvePS").ToString.ToEntero,
- DirectCast(gvPaqueteDetalle.Rows(e.RowIndex).FindControl("txtECantidad"), TextBox).Text.ToDouble,
- DirectCast(gvPaqueteDetalle.Rows(e.RowIndex).FindControl("ddlETipo"), DropDownList).SelectedValue.ToEntero,
- DirectCast(gvPaqueteDetalle.Rows(e.RowIndex).FindControl("ddlEUnidad"), DropDownList).SelectedValue.ToEntero, UsuarioActual.CveUsuario) Then
- If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then
- gvPaqueteDetalle.EditIndex = -1
- gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados
- dtPaqueteDetalles = ObjProductosServicios.DtResultados
- gvPaqueteDetalle.DataBind()
- End If
- End If
- ObjProductosServicios.Dispose()
- End Sub
-#End Region
-
-#End Region
-
-
-#Region "BTN'S"
- Protected Sub BtnEliminar_Click(sender As Object, e As System.EventArgs) Handles BtnEliminar.Click
- 'Dim CerrarVentana As String = "opener.location.reload();window.close();"
- 'If Request("Popup") IsNot Nothing Then CerrarVentana = "self.parent.tb_remove();self.parent.location.reload();window.close();"
- RegistraScript(String.Format("$('#{0}').modal('show');", "divDescripcion"))
-
- End Sub
- Protected Sub btguardar_Click(sender As Object, e As EventArgs) Handles btguardar.Click
- Dim ObjProductosServicios As New ClsProductosServicios
- If ObjProductosServicios.AddPaqueteDetalle(CvePS, DdlProductows.SelectedValue.ToEntero, txtCantidad.Text.ToDouble, ddlTipo.SelectedValue.ToEntero, ddlUnidad.SelectedValue.ToEntero, UsuarioActual.CveUsuario) Then
-
- If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then
- gvPaqueteDetalle.EditIndex = -1
- gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados
- gvPaqueteDetalle.DataBind()
-
- End If
-
- txtCantidad.Text = ""
- DdlProductows.ddl.SelectedIndex = 0
- ddlUnidad.SelectedIndex = 0
- ddlTipo.SelectedIndex = 0
- End If
- ObjProductosServicios.Dispose()
- UpDatos.Update()
- End Sub
- Protected Sub BtnGuardar_Click(sender As Object, e As System.EventArgs) Handles BtnGuardar.Click
-
-
- If TxtPS.Text.Trim.Length = 0 Or DdlTipoPS.SelectedValue.ToEntero <= 0 Or DdlUnidadMedida.SelectedValue.ToEntero <= 0 Or DdlClasificacion.SelectedValue.ToEntero <= 0 Then
- Alert("Los campos Producto/Servicio, Tipo, Unidad de medida, Clasificación Contable son requeridos por favor ingreselos.", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
-
- Dim CveClasificacion2 As Integer = DdlClasificacion2.SelectedValue.ToEntero
-
- If (TxtCodigo.Text = TxtCodigoBarras.Text AndAlso TxtCodigo.Text <> "") Then
- Alert("Los codigos no pueden ser iguales. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
- Return
- End If
-
- 'If DdlSubFamilia.SelectedValue = "-1" AndAlso UsuarioActual.TienePermisoProceso(138) Then
- ' Alert("Se debe especificar Familia y Subfamilia de Costos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
- ' Exit Sub
- 'End If
-
- If UsuarioActual.Empresa.Funcionalidad(265) = "1" And TxtCodigo.Text = "" Then
- Alert("El codigo es requerido.", TipoMensaje.MsgAdvertencia)
- Return
- End If
-
- If TxtCodigo.Text <> "" AndAlso Not TxtCodigo.Text.Length >= 3 Then
- Alert("El codigo tiene que que tener una longitud de al menos 3 digitos.", TipoMensaje.MsgAdvertencia)
- Return
- End If
-
- Dim ObjProductosServicios As New ClsProductosServicios()
- Dim ObjInv As New ClsInventarios(ObjProductosServicios.IniciaTransacSQL())
-
- Dim TieneError = False
- Dim AccionJS = ""
- Dim EsPaquete As Integer = If(gvPaqueteDetalle.Rows.Count = 0, 0, 1)
- Dim CveMetodoInv As Integer = If(UsuarioActual.Empresa.UsaInventarios, ddlMetodos.SelectedValue.ToEntero, -1)
-
-
- Dim CveProveedor As Integer = -1
- If DdlProveedor.txtValue.Value.ToEntero > 0 Then
- CveProveedor = DdlProveedor.txtValue.Value.ToEntero
- End If
-
- Dim CveMarca As Integer = 0
- If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then CveMarca = DdlMarcaPSDes.SelectedValue.ToEntero Else CveMarca = DdlMarca.SelectedValue.ToEntero
-
- If CvePS = -1 Then
- Dim PSS As String = TxtPS.Text.Trim.Replace("|", "")
- If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper
- If ObjProductosServicios.AddPS(DdlClasificacion.SelectedValue.ToEntero, -1, DdlUnidadMedida.SelectedValue.ToEntero, TxtCodigo.Text.Trim, "", TxtCodigoBarras.Text.Trim, PSS,
- TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True,
- ChkAplicaParaVenta.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveMetodoInv, EsPaquete, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero,
- FuePorXML:=False, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim,
- AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero,
- CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToEntero,
- CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal,
- CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero,
- CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=DdlTamanio.SelectedValue.ToEntero,
- CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(),
- ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString,
- ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked) > 0 Then
- ViewState("CvePS") = ObjProductosServicios.CvePS
- For Each GVR As GridViewRow In GvImpuestosLocales.Rows
- If GVR.FCCheckBox("ChkDeduccion").Checked Then
- ObjProductosServicios.AddPSImpuestosLocales(CvePS, GVR.DataKey("CveImpuestoLocal").ToEntero)
- End If
- Next
- 'Alert("El Producto o Servicio se guardó correctamente.", TipoMensaje.MsgInformacion, "document.location.href= "" / ProductosServicios.aspx?CvePS=" & ObjProductosServcios.CvePS.ToString & """;")
- AccionJS = "document.location.href=""/Ventas/CatPS.aspx"";"
-
-
- If Not TieneError Then
- For Each Dr As DataRow In DtSeccionAlmacen.Rows
- If Dr("CveAlmacen").ToString.ToEntero > 0 Then
- If Not ObjInv.AddProductosServiciosAlmacenSeccion(CvePS, Dr("CveAlmacen").ToString.ToEntero, Dr("CveAlmacenSeccion").ToString.ToEntero) Then
- TieneError = True
- End If
- End If
- Next
- End If
-
- Else
- TieneError = True
- Alert("Ocurrió un Error al agregar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError)
- End If
- Else
-
- If CodigoBarrasCargado.Length > 0 And TxtCodigoBarras.Text.Length = 0 Then
- TxtCodigoBarras.Text = CodigoBarrasCargado
- End If
-
- Dim PSS As String = TxtPS.Text.Trim.Replace("|", "")
- If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper
-
- If ObjProductosServicios.UpdatePS(DdlClasificacion.SelectedValue.ToEntero, -1, DdlUnidadMedida.SelectedValue.ToEntero, TxtCodigo.Text.Trim, "", TxtCodigoBarras.Text.Trim, PSS,
- TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True,
- ChkAplicaParaVenta.Checked, ChkEstado.Checked, UsuarioActual.CveUsuario, CvePS, CveMetodoInv, EsPaquete, DdlSATPS.SelectedValue.ToEntero,
- CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim,
- AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero,
- CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToEntero,
- CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal,
- CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero,
- CveUsuarioModifico:=UsuarioActual.CveUsuario, CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=DdlTamanio.SelectedValue.ToEntero,
- CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(),
- ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString,
- ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked) Then
-
- If Not ObjProductosServicios.LimpiaImpuestosLocales(CvePS) Then
- TieneError = True
- Alert("Ocurrió un Error al regenerar los impuestos locales. Por favor vuelva a intentar.", TipoMensaje.MsgError)
- End If
-
- If Not TieneError Then
- For Each GVR As GridViewRow In GvImpuestosLocales.Rows
- If GVR.FCCheckBox("ChkDeduccion").Checked Then
- If Not ObjProductosServicios.AddPSImpuestosLocales(CvePS, GVR.DataKey("CveImpuestoLocal").ToEntero) Then
- TieneError = True
- Alert("Ocurrió un Error al agregar los impuestos locales. Por favor vuelva a intentar.", TipoMensaje.MsgError)
- Exit For
- End If
- End If
- Next
- End If
-
- AccionJS = If(Ret = "Comp", "ircompras();", "document.location.href=""/Ventas/CatPS.aspx"";")
- 'UpDatos.Update()
- 'Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion, AccionJS)
-
- If Not TieneError Then
- For Each Dr As DataRow In DtSeccionAlmacen.Rows
- If Dr("CveAlmacen").ToString.ToEntero > 0 AndAlso Not Dr("CvePSAlmacenSeccion").ToString.ToEntero > 0 Then
- If Not ObjInv.AddProductosServiciosAlmacenSeccion(CvePS, Dr("CveAlmacen").ToString.ToEntero, Dr("CveAlmacenSeccion").ToString.ToEntero) Then
- TieneError = True
- End If
- ElseIf Not Dr("CveAlmacen").ToString.ToEntero > 0 AndAlso Dr("CvePSAlmacenSeccion").ToString.ToEntero > 0 Then
- If Not ObjInv.RemoveProductosServiciosAlmacenSeccion(Dr("CvePSAlmacenSeccion").ToString.ToEntero) Then
- TieneError = True
- End If
- End If
- Next
- End If
-
-
- Else
- TieneError = True
- Alert("Ocurrió un Error al actualizar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError)
- End If
- ObjProductosServicios.CvePS = CvePS
- End If
-
- If ObjProductosServicios.CvePS > 0 And Not TieneError Then
- For i As Integer = 0 To gvSucursal.Rows.Count - 1
- If gvSucursal.Rows(i).FCCheckBox("chkSucursal").Checked = False Then
- If Not ObjProductosServicios.RemovePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero) Then
- TieneError = True
- Alert("Ocurrió un Error al eliminar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
- Exit For
- End If
- Else
- If gvSucursal.Rows(i).FCHiddenField("hdnEnBD").Value.ToEntero = 1 Then
- 'Actualizarlo
- If Not ObjProductosServicios.UpdatePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMaximo").Text.ToDouble, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal) Then
- TieneError = True
- Alert("Ocurrió un Error al actualizar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
- Exit For
- End If
- 'ObjProductosServicios.UpdatePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCHiddenField("hdnCveSucursal").Value.ToEntero, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, UsuarioActual.CveUsuario)
- Else
- 'Insertarlo
- 'ObjProductosServicios.AddPSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCHiddenField("hdnCveSucursal").Value.ToEntero, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, UsuarioActual.CveUsuario)
- If Not ObjProductosServicios.AddPSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMaximo").Text.ToDouble, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal) Then
- TieneError = True
- Alert("Ocurrió un Error al agregar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
- Exit For
- End If
- End If
- End If
- Next
- End If
-
-
- If ObjProductosServicios.CvePS > 0 And Not TieneError Then
- TieneError = GuardaEcommerce()
- End If
-
-
- If Not TieneError Then
- ObjProductosServicios.Commit()
- Alert("El Producto/Servicio se guardo correctamente.", TipoMensaje.MsgInformacion, AccionJS)
- Else
- ObjProductosServicios.RollBack()
- End If
-
- ObjProductosServicios.Dispose()
-
- RecargaGlobal()
- End Sub
- Protected Sub HFProducto_ValueChanged(sender As Object, e As EventArgs) Handles HFProducto.ValueChanged
- ddlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(HFProducto.Value.ToEntero, -1, UsuarioActual.CveEmpresa)
- ddlUnidad.DataBind()
- End Sub
- Protected Sub LbAgregar_Click(sender As Object, e As System.EventArgs) Handles LbAgregar.Click
- Dim ObjAliasAdd As New ClsProductosServicios
- Dim TieneError = False
-
- If ObjAliasAdd.AddPSAlias(TxtAlias.Text.ToString, CvePS, UsuarioActual.CveUsuario) Then
- CargarAlias()
- UPGVAlias.Update()
- Alert("Alias " + TxtAlias.Text + " agregado.", TipoMensaje.MsgInformacion)
- TxtAlias.Text = ""
- Else
- TieneError = True
- End If
- ObjAliasAdd.Dispose()
-
- If Not TieneError Then
- RecargaGlobal()
- End If
- End Sub
-#End Region
-
-#Region "G L O B L A L"
- Private Sub RecargaGlobal()
- 'Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalDT)
- 'Hilo.Start()
- GeneraGlobalDT()
- End Sub
- Private Sub GeneraGlobalDT()
-
- GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) = Nothing
- GlobalDTProductosServiciosAlias(UsuarioActual.CveEmpresa) = Nothing
- GlobalDTImpuestosLocales(-1, UsuarioActual.CveEmpresa) = Nothing
- GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = Nothing
- GlobalDTPSAdicionales(-1, UsuarioActual.CveEmpresa) = Nothing
-
- 'Dim ObjPS As New ClsProductosServicios
-
- 'If ObjPS.GetPSSimplificado(UsuarioActual.CveEmpresa) Then Application(String.Format("GlobalDTPSSimplificado{0}", UsuarioActual.CveEmpresa)) = ObjPS.DtResultados.AsEnumerable()
-
- ''If ObjPS.GetPSAlias(-1, UsuarioActual.CveEmpresa) Then
- ' GlobalDTProductosServiciosAlias(UsuarioActual.CveEmpresa) = ObjPS.DtResultados
- 'End If
-
- 'If ObjPS.GetPSImpuestosLocales(-1, UsuarioActual.CveEmpresa) Then
- ' GlobalDTImpuestosLocales(-1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados
- 'End If
-
- 'If ObjPS.GetPSEquivalencias(-1, UsuarioActual.CveEmpresa) Then
- ' GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados
- 'End If
-
- 'If ObjPS.GetPSAdicionales(-1, UsuarioActual.CveEmpresa) Then
- ' GlobalDTPSAdicionales(-1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados
- 'End If
-
- 'ObjPS.Dispose()
- End Sub
-
-#End Region
-
-#Region "GV ALIAS"
- Protected Sub GVAlias_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GVAlias.RowDeleting
- Dim ObjAliasDelete As New ClsProductosServicios
- Dim TieneError = False
-
- If ObjAliasDelete.RemovePSAlias(GVAlias.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero, GVAlias.Rows(e.RowIndex).DataKey("PSAlias").ToString) Then
- GVAlias.EditIndex = -1
- CargarAlias()
- UPGVAlias.Update()
- Alert("El Alias ha sido Eliminado", TipoMensaje.MsgInformacion)
- Else
- Alert("Error al Eliminar", TipoMensaje.MsgError)
- TieneError = True
- End If
- ObjAliasDelete.Dispose()
-
- If Not TieneError Then
- RecargaGlobal()
- End If
- End Sub
-#End Region
-
-#Region " EQUIVALENCIAS "
- Private Sub CargaEquivalencias()
-
- DivEquivalencia.Visible = True
-
- Dim ObjProductosServicios As New ClsProductosServicios()
- If ObjProductosServicios.GetPSEquivalencias(CvePS, UsuarioActual.CveEmpresa) Then
- DtEquivalencias = ObjProductosServicios.DtResultados
- Else
- DtEquivalencias = Nothing
- End If
- ObjProductosServicios.Dispose()
-
- CargaGvEquivalencias()
-
- End Sub
- Private Sub RecargaGlobalEquivalencias()
- 'Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalEquivalencias)
- 'Hilo.Start()
- GeneraGlobalEquivalencias()
- End Sub
- Private Sub GeneraGlobalEquivalencias()
- GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = Nothing
- 'Dim ObjPS = New ClsProductosServicios
- 'If ObjPS.GetPSEquivalencias(-1, -1) Then
- ' GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados
- 'End If
- 'ObjPS.Dispose()
- End Sub
- Private Sub CargaGvEquivalencias()
- If DtEquivalencias IsNot Nothing Then
- GvEquivalencia.DataSource = DtEquivalencias
- End If
- GvEquivalencia.DataBind()
- UpEquivalencias.Update()
- End Sub
- Private Sub GvEquivalencia_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEquivalencia.RowDataBound
- If e.Row.RowType = DataControlRowType.DataRow Then
-
- If e.Row.DBCampo("UnidadBase") = "True" Then
- e.Row.FCLinkButton("imgR").Visible = False
- End If
-
- If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
- If e.Row.DBCampo("UnidadBase") = "True" Then
- 'e.Row.FCCheckBox("ChkBase").Checked = True
- End If
- End If
-
- End If
- End Sub
- Protected Sub GvEquivalencia_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvEquivalencia.RowEditing
- GvEquivalencia.EditIndex = e.NewEditIndex
- CargaGvEquivalencias()
- End Sub
- Protected Sub GvEquivalencia_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvEquivalencia.RowCancelingEdit
- GvEquivalencia.EditIndex = -1
- CargaGvEquivalencias()
- End Sub
- Private Sub GvEquivalencia_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvEquivalencia.RowUpdating
- Dim TieneError = False
-
- Dim CveUM = GvEquivalencia.Rows(e.RowIndex).DataKey("CveUM").ToEntero
- Dim UnidadBase = GvEquivalencia.Rows(e.RowIndex).DataKey("UnidadBase").ToString = "True"
- Dim Cantidad = DirectCast(GvEquivalencia.Rows(e.RowIndex).FindControl("TxtCantidadEquivalencia"), TextBox).Text.Trim.ToDecimal
-
- Dim ObjProductosServicios As New ClsProductosServicios()
- If Not ObjProductosServicios.UpdatePSEquivalencias(CvePS, CveUM, Cantidad, UnidadBase, 0, UsuarioActual.CveUsuario) Then
- TieneError = True
- End If
- ObjProductosServicios.Dispose()
-
- If Not TieneError Then
- Alert("La equivalencia se actualizó correctamente.", TipoMensaje.MsgInformacion)
- GvEquivalencia.EditIndex = -1
- CargaEquivalencias()
- CargaGvEquivalencias()
- RecargaGlobalEquivalencias()
- Else
- Alert("ocurrió un error al actualizar la equivalencia.", TipoMensaje.MsgError)
- End If
-
- End Sub
- Private Sub GvEquivalencia_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvEquivalencia.RowDeleting
- Dim TieneError = False
-
- Dim CveUM = GvEquivalencia.Rows(e.RowIndex).DataKey("CveUM").ToEntero
-
- Dim ObjProductosServicios As New ClsProductosServicios()
- If Not ObjProductosServicios.RemovePSEquivalencias(CvePS, CveUM) Then
- TieneError = True
- End If
- ObjProductosServicios.Dispose()
-
- If Not TieneError Then
- Alert("La equivalencia se eliminó correctamente.", TipoMensaje.MsgInformacion)
- CargaEquivalencias()
- CargaGvEquivalencias()
- RecargaGlobalEquivalencias()
- Else
- Alert("ocurrió un error al eliminar la equivalencia.", TipoMensaje.MsgError)
- End If
-
- End Sub
-
-#End Region
-
-#Region "PS ADICIONALES"
-
- Private Sub CargaPSAdicionales()
-
- Dim ObjProductosServicios As New ClsProductosServicios()
- If ObjProductosServicios.GetPSAdicionales(CvePS, UsuarioActual.CveEmpresa) Then
- DtPSAdicionales = ObjProductosServicios.DtResultados
- Else
- DtPSAdicionales = Nothing
- End If
- ObjProductosServicios.Dispose()
-
- CargaGvPSAdicionales()
-
- End Sub
- Private Sub CargaGvPSAdicionales()
- If DtPSAdicionales IsNot Nothing Then
- GvPSAdicionales.DataSource = DtPSAdicionales
- End If
- GvPSAdicionales.DataBind()
- UpPSAdicionales.Update()
- End Sub
- Private Sub GvPSAdicionales_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPSAdicionales.RowDataBound
- If e.Row.RowType = DataControlRowType.DataRow Then
-
- If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
- e.Row.FCDropDownList("DdlPSAdicional").DataSource = GlobalDTPS(UsuarioActual.CveEmpresa) '.FiltraParametros("CvePS = " + CvePS.ToString)
- e.Row.FCDropDownList("DdlPSAdicional").DataBind()
- e.Row.FCDropDownList("DdlPSAdicional").SelectedValue = e.Row.DBCampo("CvePSAdicional")
- End If
-
- End If
- End Sub
- Protected Sub GvPSAdicionales_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvPSAdicionales.RowCancelingEdit
- GvPSAdicionales.EditIndex = -1
- CargaGvPSAdicionales()
- End Sub
- Private Sub GvPSAdicionales_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvPSAdicionales.RowDeleting
- Dim TieneError = False
-
- Dim CvePSAdicional = GvPSAdicionales.Rows(e.RowIndex).DataKey("CvePSAdicional").ToEntero
-
- Dim ObjProductosServicios As New ClsProductosServicios()
- If Not ObjProductosServicios.RemovePSAdicionales(CvePS, CvePSAdicional) Then
- TieneError = True
- End If
- ObjProductosServicios.Dispose()
-
- If Not TieneError Then
- Alert("El Producto/Servicio Adicionala se eliminó correctamente.", TipoMensaje.MsgInformacion)
- CargaPSAdicionales()
- CargaGvPSAdicionales()
- 'RecargaGlobalEquivalencias()
- RecargaGlobal()
- Else
- Alert("ocurrió un error al eliminar el Producto/Servicio Adicional.", TipoMensaje.MsgError)
- End If
-
- End Sub
-
- Private Sub BtnAgregarPSAdicionalesModal_Click(sender As Object, e As EventArgs) Handles BtnAgregarPSAdicionalesModal.Click
- BtnAgregarPSAdicional.Text = "Agregar"
- CvePSAdicional = -1
-
- DdlPSAdicional.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa)
- DdlPSAdicional.DataBind()
- DdlPSAdicional.Items.Add(New ListItem("Seleccione", "-1"))
- UpAddPSAdicional.Update()
-
- DdlPSAdicional.SelectedValue = "-1"
- TxtCantidadPSAdicional.Text = ""
- UpCantidad.Visible = False
- RBLCantidad.SelectedValue = "1"
- RegistraScript("$('#divAddPSAdicional').modal();")
- End Sub
- Private Sub BtnAgregarPSAdicional_Click(sender As Object, e As EventArgs) Handles BtnAgregarPSAdicional.Click
- Dim ObjProductosServicios As New ClsProductosServicios()
- ObjProductosServicios.IniciaTransacSQL()
- Dim TieneError = False
-
- If CvePSAdicional < 0 Then
- If Not ObjProductosServicios.AddPSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0)) Then
- TieneError = True
- End If
- Else
-
- If Not ObjProductosServicios.UpdatePSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, CvePSAdicional, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0)) Then
- TieneError = True
- End If
-
- End If
-
- If TieneError Then
- Alert("Ocurrio un error al agregar/actualizar el Producto/Servicio Adicional.", TipoMensaje.MsgError)
- ObjProductosServicios.RollBack()
- Else
- ObjProductosServicios.Commit()
- RegistraScript("$('#divAddPSAdicional').modal('hide');")
- CvePSAdicional = -1
- CargaPSAdicionales()
- CargaGvPSAdicionales()
- RecargaGlobal()
- End If
- ObjProductosServicios.Dispose()
- End Sub
-
- Protected Sub Edit_Click(sender As Object, e As EventArgs)
- Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
- BtnAgregarPSAdicional.Text = "Guardar"
- TxtCantidadPSAdicional.Text = GvRow.DataKey("Cantidad")
-
- If TxtCantidadPSAdicional.Text.ToEntero = 0 Then
- UpCantidad.Visible = False
- RBLCantidad.SelectedValue = "1"
- Else
- UpCantidad.Visible = True
- RBLCantidad.SelectedValue = "2"
- End If
- UpAddPSAdicional.Update()
-
- DdlPSAdicional.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa)
- DdlPSAdicional.DataBind()
- DdlPSAdicional.Items.Add(New ListItem("Seleccione", "-1"))
- UpAddPSAdicional.Update()
-
- CvePSAdicional = GvRow.DataKey("CvePSAdicional").ToEntero
- DdlPSAdicional.SelectedValue = GvRow.DataKey("CvePSAdicional")
-
- RegistraScript("$('#divAddPSAdicional').modal();")
- End Sub
-
- Protected Sub RBLCantidad_SelectedIndexChanged1(sender As Object, e As EventArgs)
- If RBLCantidad.SelectedValue.ToEntero = 2 Then
- UpCantidad.Visible = True
- Else
- UpCantidad.Visible = False
- End If
- UpAddPSAdicional.Update()
- End Sub
-#End Region
-
-#Region " CARGA MARCA Y COMPUESTOS "
-
- Protected Sub CargarMarcas()
- If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then
- If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) And CvePS = -1 Then
- DivMarcaPSDes.Visible = True
- Else
- DivMarca.Visible = True
- End If
- Dim ObjMarcas As New ClsProductosServicios
- ObjMarcas.GetMarcas(UsuarioActual.CveEmpresa)
- DdlMarca.DataSource = ObjMarcas.DtResultados
- DdlMarcaPSDes.DataSource = ObjMarcas.DtResultados
- ObjMarcas.Dispose()
- DdlMarca.DataBind()
- DdlMarcaPSDes.DataBind()
- End If
- DdlMarca.Items.Insert(0, New ListItem(" - ", "-1"))
- DdlMarcaPSDes.Items.Insert(0, New ListItem(" - ", "-1"))
- End Sub
-
- Protected Sub CargarCompuestos()
- If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then
- DivCompuesto.Visible = True
- Dim PS As New ClsProductosServicios
- PS.GetCompuestosActivos(UsuarioActual.CveEmpresa)
- DdlCompuesto.DataSource = PS.DtResultados
- PS.Dispose()
- DdlCompuesto.DataBind()
- End If
- End Sub
-
-
-#End Region
-
-#Region "IMPUESTOS LOCALES"
- Public Sub CargaImpuestosLocales()
- Dim ObjPS As New ClsProductosServicios
- If ObjPS.GetPSImpuestosLocales(CvePS, UsuarioActual.CveEmpresa) Then
- GvImpuestosLocales.DataSource = ObjPS.DtResultados
- End If
- ObjPS.Dispose()
- GvImpuestosLocales.DataBind()
- End Sub
-
-#End Region
-
-#Region " IEPS "
- Private Sub ChkAplicaIeps_CheckedChanged(sender As Object, e As EventArgs) Handles ChkAplicaIeps.CheckedChanged
- If ChkAplicaIeps.Checked Then
- DdlIEPSPorcentaje.Enabled = True
- ChkIepsIVA.Enabled = True
- Else
- DdlIEPSPorcentaje.SelectedIndex = 0
- DdlIEPSPorcentaje.Enabled = False
- ChkIepsIVA.Enabled = False
- ChkIepsIVA.Checked = False
- End If
- UpDatos.Update()
- End Sub
-#End Region
-
-#Region "UNIFICAR PRODUCTOS"
- Private Sub LnkUnificar_Click(sender As Object, e As EventArgs) Handles LnkUnificar.Click
- CargaPSUnificar()
- RegistraScript("$('#DivUnificar').modal();LimpiaModalUnificar()")
- End Sub
- Public Sub CargaPSUnificar()
- DdlPsUnificar.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
- DdlPsUnificar.DataBind()
- 'DdlPsUnificar.setEsWebService(True)
- 'DdlPsUnificar.ddlWS.Attributes.Add("data-clear", "1")
-
- UpBodyUnificar.Update()
- End Sub
- Private Sub BtnUnificar_Click(sender As Object, e As EventArgs) Handles BtnUnificar.Click
- If DdlPsUnificar.SelectedValue.ToEntero() > 0 Then
- If DdlPsUnificar.SelectedValue.ToEntero() = CvePS Then
- Alert("No se puede seleccionar el mismo producto y/o servicio", TipoMensaje.MsgAdvertencia)
- Else
- Dim ObjPS As New ClsProductosServicios
- If ObjPS.UnificarPS(CvePS, DdlPsUnificar.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
- Alert("Los productos y/o servicios han sido unificados", TipoMensaje.MsgInformacion)
- Else
- Alert("Los productos y/o servicios no han podido ser unificados", TipoMensaje.MsgError)
- End If
- ObjPS.Dispose()
- RecargaGlobal()
- RegistraScript("$('#DivUnificar').modal('hide');")
- UpDatos.Update()
- End If
- Else
- Alert("Es necesario seleccionar un producto y/o servicio", TipoMensaje.MsgAdvertencia)
- End If
-
-
- End Sub
-#End Region
-
-#Region "BITACORA"
-
- Private Sub CargaGvBitacora()
- Dim ObjGral As New ClsGenerales()
- If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, CvePS, -1, -1, UsuarioActual.CveEmpresa) Then
- GvBitacora.DataSource = ObjGral.DtResultados
- GvBitacora.DataBind()
- End If
- ObjGral.Dispose()
- UpDatos.Update()
- End Sub
-
- Private Sub BtnRemove_Click(sender As Object, e As EventArgs) Handles BtnRemove.Click
- If Not TxtDescripcion.Text = "" Then
- Dim ObjProductosServcios As New ClsProductosServicios()
- Dim ObjGral As New ClsGenerales(ObjProductosServcios.IniciaTransacSQL())
-
-
- If ObjProductosServcios.RemovePS(CvePS) Then
- Borrar = True
- Else
- Borrar = False
- End If
-
- If Borrar = True Then
- If ObjGral.AddHistorialBitacora(Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, "", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, TxtDescripcion.Text, "PS", TxtCodigo.Text + " / " + TxtPS.Text) Then
- ObjProductosServcios.Commit()
- RecargaGlobal()
- Alert("El Producto o Servicio se eliminó correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Ventas/CatPS.aspx"";")
- Else
- ObjProductosServcios.RollBack()
- Alert("Ocurrió un Error al actualizar el historial de eliminación.", TipoMensaje.MsgError)
- End If
- Else
- ObjProductosServcios.RollBack()
- Alert("Ocurrió un Error al eliminar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError)
- End If
- ObjProductosServcios.Dispose()
- ObjGral.Dispose()
- Else
- Alert("Tiene que decir el motivo de su eliminacion.", TipoMensaje.MsgInformacion)
- End If
- End Sub
-
-#End Region
-
-#Region "Codigo Barras"
-
- 'Codigo barras/QR se retorna como una imagen bmp
- Private Function GeneraCodigoQR(CodigoBarras As String, Alto As Integer, Largo As Integer, Margen As Integer, Formato As String) As Byte()
-
- Dim barcodeWriter As New BarcodeWriter
- Dim opciones As New ZXing.Common.EncodingOptions
- Dim FormatoBar As New BarcodeFormat
- 'Dim Respuesta As Byte()
-
- opciones.Height = Alto
- opciones.Width = Largo
- opciones.Margin = Margen
-
- barcodeWriter.Options = opciones
-
- Select Case Formato
- Case "All_1D"
- barcodeWriter.Format = BarcodeFormat.All_1D
- Exit Select
- Case "AZTEC"
- barcodeWriter.Format = BarcodeFormat.AZTEC
- Exit Select
- Case "CODABAR"
- barcodeWriter.Format = BarcodeFormat.CODABAR
- Exit Select
- Case "CODE_128"
- barcodeWriter.Format = BarcodeFormat.CODE_128
- Exit Select
- Case "CODE_39"
- barcodeWriter.Format = BarcodeFormat.CODE_39
- Exit Select
- Case "CODE_93"
- barcodeWriter.Format = BarcodeFormat.CODE_93
- Exit Select
- Case "DATA_MATRIX"
- barcodeWriter.Format = BarcodeFormat.DATA_MATRIX
- Exit Select
- Case "EAN_13"
- barcodeWriter.Format = BarcodeFormat.EAN_13
- Exit Select
- Case "EAN_8"
- barcodeWriter.Format = BarcodeFormat.EAN_8
- Exit Select
- Case "IMB"
- barcodeWriter.Format = BarcodeFormat.IMB
- Exit Select
- Case "ITF"
- barcodeWriter.Format = BarcodeFormat.ITF
- Exit Select
- Case "MAXICODE"
- barcodeWriter.Format = BarcodeFormat.MAXICODE
- Exit Select
- Case "MSI"
- barcodeWriter.Format = BarcodeFormat.MSI
- Exit Select
- Case "PDF_417"
- barcodeWriter.Format = BarcodeFormat.PDF_417
- Exit Select
- Case "PLESSEY"
- barcodeWriter.Format = BarcodeFormat.PLESSEY
- Exit Select
- Case "QR_CODE"
- barcodeWriter.Format = BarcodeFormat.QR_CODE
- Exit Select
- Case "RSS_14"
- barcodeWriter.Format = BarcodeFormat.RSS_14
- Exit Select
- Case "RSS_EXPANDED"
- barcodeWriter.Format = BarcodeFormat.RSS_EXPANDED
- Exit Select
- Case "UPC_A"
- barcodeWriter.Format = BarcodeFormat.UPC_A
- Exit Select
- Case "UPC_E"
- barcodeWriter.Format = BarcodeFormat.UPC_E
- Exit Select
- Case "UPC_EAN_EXTENSION"
- barcodeWriter.Format = BarcodeFormat.UPC_EAN_EXTENSION
- Exit Select
-
- End Select
-
- Dim imgCod As Drawing.Bitmap = barcodeWriter.Write(CodigoBarras)
- Dim memoriStream As New System.IO.MemoryStream
- imgCod.Save(memoriStream, Drawing.Imaging.ImageFormat.Bmp)
-
- 'Respuesta = Convert.ToBase64String(memoriStream.ToArray())
-
- Return memoriStream.ToArray()
-
- End Function
-
- Private Sub LnkModalCodigoBarrasQr_Click(sender As Object, e As EventArgs) Handles LnkModalCodigoBarrasQr.Click
-
- LnkDescargaImagen.Enabled = False
- LnkDescargaImpresion.Enabled = False
- UpModalBotonesCodigos.Update()
-
- TxtCodigoBarrasModal.Text = TxtCodigoBarras.Text.Trim
- UpModalUploadCodigoBarras.Update()
- RegistraScript("$('#ModalCodigoBarrasQR').modal({ backdrop: 'static', keyboard: false});")
-
- End Sub
-
-
- Private Sub LnkModalGenerarCodigoBarrasQR_Click(sender As Object, e As EventArgs) Handles LnkModalGenerarCodigoBarrasQR.Click
-
- Dim Alto As Integer = 150
- Dim Ancho As Integer = 150
- Dim Base64Code As String
-
- If TxtAlto.Text.ToEntero > 0 Then Alto = TxtAlto.Text.ToEntero
- If TxtAncho.Text.ToEntero > 0 Then Ancho = TxtAncho.Text.ToEntero
-
- Try
- Base64Code = Convert.ToBase64String(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue))
- ImgModalCodigo.Attributes.Add("src", $"data:image/gif;base64,{Base64Code}")
- ImgModalCodigo.Width = Ancho
- ImgModalCodigo.Height = Alto
- LnkDescargaImagen.Enabled = True
- LnkDescargaImpresion.Enabled = True
- UpModalBotonesCodigos.Update()
- Catch ex As Exception
- ImgModalCodigo.Attributes.Add("src", "")
- ImgModalCodigo.Width = Ancho
- ImgModalCodigo.Height = Alto
- LnkDescargaImagen.Enabled = False
- LnkDescargaImpresion.Enabled = False
- UpModalBotonesCodigos.Update()
- End Try
-
- UpModalUploadCodigoBarras.Update()
-
- End Sub
-
- Private Sub LnkDescargaImagen_Click(sender As Object, e As EventArgs) Handles LnkDescargaImagen.Click
-
- Dim Alto As Integer = 150
- Dim Ancho As Integer = 150
-
-
- If TxtAlto.Text.ToEntero > 0 Then Alto = TxtAlto.Text.ToEntero
- If TxtAncho.Text.ToEntero > 0 Then Ancho = TxtAncho.Text.ToEntero
-
- Try
- Dim memoryStream As New System.IO.MemoryStream(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue))
- Response.Clear()
- Response.ContentType = "application/bmp"
- Response.AddHeader("content-disposition", $"attachment;filename=code_{TxtCodigoBarrasModal.Text.Trim}.bmp")
- Response.Buffer = True
- memoryStream.WriteTo(Response.OutputStream)
- Response.End()
-
- Catch ex As Exception
-
- End Try
- End Sub
-
- Private Sub DDLCodigoFormato_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DDLCodigoFormato.SelectedIndexChanged
- LnkDescargaImagen.Enabled = False
- LnkDescargaImpresion.Enabled = False
- UpModalBotonesCodigos.Update()
- End Sub
- Private Sub LnkDescargaImpresion_Click(sender As Object, e As EventArgs) Handles LnkDescargaImpresion.Click
- Dim Alto As Integer = 150
- Dim Ancho As Integer = 150
-
-
- If TxtAlto.Text.ToEntero > 0 Then Alto = TxtAlto.Text.ToEntero
- If TxtAncho.Text.ToEntero > 0 Then Ancho = TxtAncho.Text.ToEntero
-
- Try
-
-
- Dim Doc As New iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 10.0F, 10.0F, 100.0F, 0F)
- Dim para As New iTextSharp.text.Paragraph
- Dim memoryStreamDoc As New System.IO.MemoryStream
-
- Dim gemBox As New clsGemBoxDocument()
-
- gemBox.AgregarImagen(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue))
- gemBox.GuardarStreamPDF()
-
-
-
- Dim memoryStream As New System.IO.MemoryStream(gemBox.GetBytesDocumento())
- gemBox.Dispose()
- Response.Clear()
- Response.ContentType = "application/pdf"
- Response.AddHeader("content-disposition", $"attachment;filename=code_{TxtCodigoBarrasModal.Text.Trim}.pdf")
- Response.Buffer = True
- memoryStream.WriteTo(Response.OutputStream)
- Response.End()
-
- Catch ex As Exception
-
- End Try
- End Sub
-
-
-
-#End Region
-
-#Region "SELECTED INDEX CHANGE"
- Public Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClasificacion.SelectedIndexChanged
- If DdlClasificacion.SelectedValue.ToEntero > 0 Then
- If Not CveSATPS > 0 Or CveSATPS = 46920 Then
- Dim Dr = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0)
-
- DdlSATPS.SelectedValue = Dr("CveSATPS").ToString
- DdlSATPS.SelectedText = Dr("SATClaveProductoServicio").ToString
-
-
-
- If UsuarioActual.CveEmpresa.Contiene(72, 80) Then
- VerificaRequiereSerieLote()
- End If
- End If
- ' CargaClasificacionesDetalles()
- End If
-
- Try
- Dim Dr = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0)
- If Boolean.Parse(Dr("EsAcumulador").ToString) Then
- MostarOcultarDivTamanio(True)
- Else
- MostarOcultarDivTamanio(False)
- End If
- 'SI ES MOTOBATERIA
+Option Explicit On
+Option Strict On
+
+Imports Extensiones
+Imports System.IO
+Imports System.Data
+Imports ZXing
+
+Partial Class ProductosyServicios
+ Inherits ClsPaginas
+
+#Region " Propiedades "
+ Private ReadOnly Property CvePS As Integer
+ Get
+ Return ViewState("CvePS").ToString.ToEntero
+ End Get
+ End Property
+
+ Private Property CveSATPS As Integer
+ Get
+ Return ViewState("CveSATPS").ToString.ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CveSATPS") = value
+ End Set
+ End Property
+
+ Private Property Ret As String
+ Get
+ Return ViewState("Ret").ToString
+ End Get
+ Set(value As String)
+ ViewState("Ret") = value
+ End Set
+ End Property
+ Private Property Borrar As Boolean
+ Get
+ Return CBool(ViewState("Borrar"))
+ End Get
+ Set(value As Boolean)
+ ViewState("Borrar") = value
+ End Set
+ End Property
+ Public Property dtPaqueteDetalles() As DataTable
+ Get
+ Return CType(ViewState("dtPaqueteDetalles"), DataTable)
+ End Get
+ Set(value As DataTable)
+ ViewState("dtPaqueteDetalles") = value
+ End Set
+ End Property
+ Public Property DtEquivalencias() As DataTable
+ Get
+ Return CType(ViewState("DtEquivalencias"), DataTable)
+ End Get
+ Set(value As DataTable)
+ ViewState("DtEquivalencias") = value
+ End Set
+ End Property
+ Public Property dtFamily() As DataTable
+ Get
+ Return CType(ViewState("dtFamily"), DataTable)
+ End Get
+ Set(value As DataTable)
+ ViewState("dtFamily") = value
+ End Set
+ End Property
+
+
+ Property CodigoBarrasCargado As String
+ Get
+ If ViewState("CodigoBarrasCargado") Is Nothing Then
+ Return ""
+ Else
+ Return ViewState("CodigoBarrasCargado").ToString
+ End If
+ End Get
+ Set(value As String)
+ ViewState("CodigoBarrasCargado") = value
+ End Set
+ End Property
+
+ Public Property DtPSAdicionales() As DataTable
+ Get
+ Return CType(ViewState("DtPSAdicionales"), DataTable)
+ End Get
+ Set(value As DataTable)
+ ViewState("DtPSAdicionales") = value
+ End Set
+ End Property
+
+ Private Property CvePSAdicional As Integer
+ Get
+ Return ViewState("CvePSAdicional").ToString.ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CvePSAdicional") = value
+ End Set
+ End Property
+ Public Property DtSeccionAlmacen() As DataTable
+ Get
+ Return CType(ViewState("DtSeccionAlmacen"), DataTable)
+ End Get
+ Set(value As DataTable)
+ ViewState("DtSeccionAlmacen") = value
+ End Set
+ End Property
+
+
+#End Region
+
+ Private ReadOnly Property PermiteClasificacion2 As Boolean
+ Get
+ Return (UsuarioActual.CveEmpresa.Contiene(72, 80))
+ End Get
+ End Property
+
+
+
+#Region " PROPIEDADES ECOMMERCE "
+ '''
+ ''' Si es True existe en Eco_Produtcos
+ '''
+ '''
+ Private Property AplicaEcommerce As Boolean
+ Get
+ Return CBool(ViewState("AplicaEcommerce"))
+ End Get
+ Set(value As Boolean)
+ ViewState("AplicaEcommerce") = value
+ End Set
+ End Property
+#End Region
+
+ Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
+ If Not IsPostBack Then
+
+ InicializaValores()
+ If Request("CvePS") IsNot Nothing AndAlso IsNumeric(Request("CvePS")) AndAlso Request("CvePS").ToEntero > 0 Then
+ ViewState("CvePS") = Request("CvePS")
+ CargarMarcas()
+
+ CargaDatos()
+ 'Configuración de Modalidad Update
+ BtnGuardar.Text = "Guardar Cambios"
+
+ CargarAlias()
+ CargaExistencias()
+ CargaGvSeccionAlmacen()
+ Else
+ 'Configuración de Modalidad Insert
+ RegistraScript("$('#C_Tab_TabPaquetes_tab').css('display' , 'none')")
+
+ ViewState("CvePS") = -1
+ CargarMarcas()
+
+ ChkEstado.Enabled = False
+ ChkEstado.Checked = True
+ LblFechaCaptura.Text = Now.ToShortDateString()
+ LblUsuarioCapturo.Text = UsuarioActual.Usuario
+ BtnEliminar.Visible = False
+
+ If UsuarioActual.Empresa.Funcionalidad(543).ToString = "1" Then
+ Dim ObjSub As New ClsSubProyectos
+ Dim CveSubProyectoMatriz As Integer
+
+ If ObjSub.GetSubProyectos() Then
+ CveSubProyectoMatriz = ObjSub.DtResultados.FiltroPrimeroValor("CveSubProyecto", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND TipoSucursal = 1").ToEntero
+ End If
+
+ Dim ObjFolios As New ClsGralFolios()
+ If ObjFolios.GetFolios("PS", UsuarioActual.CveEmpresa) Then
+
+ Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoMatriz} And Estado = 'Activo'")
+ If DT.Rows.Count > 0 Then
+ TxtCodigo.Text = DT.Rows(0)("FActual").ToString
+ TxtCodigo.Enabled = False
+ Else
+ Alert("No tiene registrados Folios para la sucursal matriz.", TipoMensaje.MsgAdvertencia)
+ End If
+ End If
+ End If
+
+ End If
+
+ If Request("Ret") IsNot Nothing AndAlso Request("Ret").ToString <> "" Then
+ Ret = Request("Ret")
+ End If
+
+ 'CargaFamilia(ViewState("CveSubFamilia").ToString.ToEntero)
+ CargaSucursaless()
+ CargaImpuestosLocales()
+ CargaConceptoRelacionado()
+
+ If UsuarioActual.TienePermisoProceso(122) Then
+ BtnEliminar.Visible = False
+ BtnGuardar.Visible = False
+ End If
+
+ If UsuarioActual.Empresa.Funcionalidad(557) = "1" Then
+ DdlIVA.SelectedValueExist("-1")
+ DdlIVA.Attributes.Add("disabled", "disabled")
+ DdlIVA.Enabled = False
+ End If
+
+ If CvePS > 0 Then
+ CargaEquivalencias()
+ CargaPSAdicionales()
+ CargaGvBitacora()
+ divBitacora.Visible = True
+ VerificaRequiereSerieLote()
+ End If
+
+ If UsuarioActual.Empresa.Funcionalidad(524) <> "" Then
+ DivProveedorCompra.Visible = True
+ DivMoneda.Visible = True
+ End If
+
+ UpDatos.Update()
+
+ 'DdlClasificacion.AutoPostBack = UsuarioActual.CveEmpresa.Contiene(80, 72)
+
+ InicializaEcommerce()
+
+ If UsuarioActual.CveEmpresa.Contiene(141) Then
+ 'DivDatos.Attributes("class") = "col-md-12"
+
+ DivDdlTipo.Visible = True
+ 'DdlTipoPSDes.Attributes.Add("onChange", "CreaDescripcionPS();")
+
+ End If
+
+ If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) And CvePS = -1 Then
+ 'DivDatos.Attributes("class") = "col-md-12"
+ TxtPS.Enabled = False
+ DivDdlTipo.Visible = True
+ DivTxtModelo.Visible = True
+ DivTxtAdicional.Visible = True
+ DdlTipoPSDes.Attributes.Add("onChange", "CreaDescripcionPS();")
+ DdlMarcaPSDes.Attributes.Add("onChange", "CreaDescripcionPS();")
+ TxtModelo.Attributes.Add("onKeyUp ", "CreaDescripcionPS();")
+ TxtAdicional.Attributes.Add("onKeyUp ", "CreaDescripcionPS();")
+ End If
+
+ If ddlMetodos.SelectedValue.ToEntero = 5 And Not UsuarioActual.TienePermisoProceso(255) Then
+ ddlMetodos.Enabled = False
+ End If
+ Dim posiciontipo As String = If(UsuarioActual.Empresa.Funcionalidad(558).ToString = "1", "$('.DIVCLASIFICACIONCONTABLE').after( $('.DIVTIPO') );", "")
+
+ LtlScripts.Text = $""
+ If Not CvePS > 0 Then MuestraPanel(True)
+
+ End If
+ End Sub
+
+#Region " INCIALIZA "
+ Private Sub InicializaValores()
+ ViewState("OrdenO") = ""
+ ViewState("OrdenC") = ""
+ ViewState("DTProductosServiciosCaracteristicas") = Nothing
+ ViewState("DTProductosServiciosCaracteristicasOpciones") = Nothing
+ ViewState("CveSubFamilia") = "-1"
+ Ret = "-1"
+
+ 'CType(Me.Master, BaseMasterPage).EsPopup = True
+ 'CType(Me.Master, BaseMasterPage).PopupWidth = 700
+ 'RegistraScript("$get('tdContenido').style.height='350px'")
+
+ CargaClasificaciones()
+ CargaClasificaciones2()
+ CargaClasificacionesDetalles()
+ ClasificacionModal()
+ CargaTipoProductos()
+ CargaUnidadesMedida()
+ CargarMetodosInv()
+ 'CargaPSAdicional(DdlPSAdicional)
+
+ 'Nuevo R: 26/09/2017
+ CargaProveedores()
+
+ CargarCompuestos()
+ CargaPS()
+ 'ChangeDdl()
+ CargaDdlSATPS()
+ CargaDdlFraccionArancelaria()
+ CveSATPS = -1
+
+ CargaCombosSeccionAlmacen()
+ DivSeccionAlmacen.Visible = UsuarioActual.Empresa.Funcionalidad(563).ToString = "1"
+ CreaDtSeccionAlmacen()
+
+ If UsuarioActual.Empresa.UsaContabilidad Then
+ CargaCuentasContables()
+ If Not (Request("CvePS") IsNot Nothing AndAlso IsNumeric(Request("CvePS")) AndAlso Request("CvePS").ToEntero > 0) Then DivUsoClasificacion.Visible = True
+ End If
+
+ 'CargaTipoServicio()
+ 'DivTipoServicio.Visible = False
+
+ TxtDescripcion.Text = UCase(TxtDescripcion.Text)
+
+ Dim objAcum As New ClsAcumuladores
+ If objAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
+ DdlTamanio.DataSource = objAcum.DtResultados
+ Else
+ DdlTamanio.DataSource = Nothing
+ End If
+
+ objAcum.Dispose()
+ DdlTamanio.DataBind()
+
+ If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then
+ DivLlantas.Visible = True
+ DivPSAdicionales.Visible = True
+ CargaPanelLlantas()
+ End If
+
+ CvePSAdicional = -1
+
+ End Sub
+
+ 'Private Sub CargaPSAdicional(Objeto As ADServerControl.Dropdownlost)
+ ' Objeto.setEsWebService(UsuarioActual.Empresa.Funcionalidad(141).ToString = "1")
+ ' If Not UsuarioActual.Empresa.Funcionalidad(141).ToString = "1" Then
+ ' Objeto.ddl.Items.Clear()
+ ' Objeto.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=-1, Estatus:=1, AplicaParaVenta:=1)
+ ' Objeto.ddl.DataBind()
+ ' Objeto.ddl.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ ' Else
+ ' Objeto.ddlWS.Attributes.Add("data-Estatus", "1")
+ ' Objeto.SelectedValue = "-1"
+ ' Objeto.SelectedText = "Seleccione"
+ ' End If
+ 'End Sub
+ Private Sub CargaPanelLlantas()
+ Dim ObjGral As New ClsGenerales()
+ If ObjGral.GetModelos(UsuarioActual.CveEmpresa) Then
+ DdlModelo.DataSource = ObjGral.DtResultados.Copy()
+ End If
+ If ObjGral.GetMedidas(UsuarioActual.CveEmpresa) Then
+ DdlMedida.DataSource = ObjGral.DtResultados.Copy()
+ End If
+ If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then
+ DdlRin.DataSource = ObjGral.DtResultados.Copy()
+ End If
+ ObjGral.Dispose()
+
+ DdlModelo.DataBind()
+ DdlMedida.DataBind()
+ DdlRin.DataBind()
+
+ End Sub
+
+ Private Sub MuestraPanel(Optional AfterPageLoad As Boolean = False)
+ If AfterPageLoad Then
+ RegistraScript("window.onload = function MuestraPanel() { document.getElementById(""C_BtnMostrarPanel"").click(); }")
+ End If
+ End Sub
+
+
+ Protected Sub BtnTipoCla_Click(sender As Object, e As EventArgs)
+ PresionarBotonPanel("C_BtnCerrarPanel")
+ DivUsoClasificacion.Visible = False
+ DdlUsoClasificacion.SelectedValueExist(RblTipoClasificación.SelectedValue)
+ CargaClasificaciones()
+ UpDatos.Update()
+ End Sub
+
+ Private Sub PresionarBotonPanel(Boton As String)
+ Dim Script As String = $"document.getElementById(""{Boton}"").click();"
+ Dim Pag As System.Web.UI.Page = CType(System.Web.HttpContext.Current.Handler, System.Web.UI.Page)
+ ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), Boton, Script, True)
+ Pag = Nothing
+ End Sub
+#End Region
+
+#Region "S U C U R S A L E S"
+ Private Sub CargaSucursaless()
+ 'Dim dtSuc As DataTable = GlobalDTSucursales().FiltraParametros("CveEmpresa = " + UsuarioActual.CveEmpresa.ToString)
+ 'dtSuc.AcceptChanges()
+
+ 'dtSuc.Columns.Add("Importe")
+ 'dtSuc.Columns.Add("Activo")
+
+ 'For Each row As DataRow In dtSuc.Rows
+ ' row("Activo") = False
+ 'Next
+ 'dtSuc.AcceptChanges()
+
+ 'If Not ViewState("CvePS") Is Nothing Then
+ ' Dim ObjPS As New ClsProductosServicios
+
+ ' If ObjPS.GetPSSucursales(CvePS) Then
+ ' Dim dtSucP As DataTable = ObjPS.DtResultados
+
+ ' For Each Row As DataRow In dtSucP.Rows
+ ' Dim rowsToUpdate = dtSuc.AsEnumerable().Where(Function(r) r.Field(Of Integer)("CveSucursal") = Row("CveSucursal").ToString.ToEntero AndAlso r!CveSucursal.ToString.ToEntero > 0)
+
+ ' For Each roww As DataRow In rowsToUpdate
+ ' roww.SetField("Importe", Row("Importe"))
+ ' roww.SetField("Activo", True)
+ ' Next
+
+ ' 'For Each drtt As DataRow In TmpDT.Select(String.Format("PS='{0}' AND CvePS=0", Row("PS")))
+ ' ' drtt("CvePS") = tCve
+ ' 'Next
+
+
+ ' dtSuc.AcceptChanges()
+ ' Next
+ ' End If
+
+ ' ObjPS.Dispose()
+ 'End If
+
+ 'gvSucursal.DataSource = dtSuc
+ 'gvSucursal.DataBind()
+
+ Dim ObjPS As New ClsProductosServicios
+
+ If ObjPS.GetPSSucursales(CvePS, UsuarioActual.CveEmpresa) Then
+ gvSucursal.DataSource = ObjPS.DtResultados
+
+ End If
+
+ ObjPS.Dispose()
+ gvSucursal.DataBind()
+ End Sub
+
+ Protected Sub gvSucursal_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvSucursal.RowDataBound
+ If e.Row.RowType = DataControlRowType.DataRow Then
+ If e.Row.RowIndex = 0 Then
+ e.Row.Cells(0).Width = Unit.Pixel(50)
+ e.Row.Cells(1).Width = Unit.Pixel(100)
+ e.Row.Cells(2).Width = Unit.Pixel(100)
+ End If
+
+ ' If e.Row.FCCheckBox("chkSucursal").Checked = True Then e.Row.Cells(0).BackColor = Drawing.Color.Yellow
+ End If
+ End Sub
+#End Region
+
+#Region "C A R A C T E R I S T I C A S"
+
+ Private Sub CargaCaracteristicas()
+ ' CargaDatosC()
+ CargaProductosServiciosCaracteristicas()
+ CambioProductosServiciosCaracteristicas(DdlCaracteristica.SelectedValue.ToEntero)
+ CargaDatosO()
+ UpDatos.Update()
+ UpDatosO.Update()
+ UpTitulosO.Update()
+
+ End Sub
+ Public Sub CargaDatosO()
+ Dim Objeto As New ClsGenerales
+ If Objeto.GetCaracteristicasValores(-1, -1, CvePS, -1, -1, -1, 5, UsuarioActual.CveEmpresa, OpcionListado:=1) Then
+ GvDatosOpciones.DataSource = Objeto.DtResultados
+ End If
+ Objeto.Dispose()
+ UpDatosO.Update()
+ GvDatosOpciones.DataBind()
+
+ End Sub
+
+
+ Private Sub LbAgregarO_Click(sender As Object, e As EventArgs) Handles LbAgregarO.Click
+ Dim Objeto As New ClsGenerales
+ Dim Opcion As String = If(TDTxtOpcion.Visible = True, TxtOpcion.Text, DdlOpcion.SelectedItem.Text)
+ Dim Opcion2 As Integer = If(TDDdlOpcion.Visible = True, DdlOpcion.SelectedValue.ToEntero, -1)
+
+ If Objeto.AddUpdateCaracteristicasValores(DdlCaracteristica.SelectedValue.ToEntero, Opcion2, Opcion, UsuarioActual.CveUsuario, CvePs:=CvePS) Then
+ End If
+ Objeto.Dispose()
+ TxtOpcion.Text = ""
+ CargaDatosO()
+ UpDatosO.Update()
+ UpTitulosO.Update()
+ Alert("El valor de la caracteristica se agregó correctamente.", TipoMensaje.MsgInformacion)
+ End Sub
+
+ Private Sub CargaProductosServiciosCaracteristicas()
+ Dim Objeto As New ClsGenerales
+ DdlCaracteristica.Items.Clear()
+ If Objeto.GetCaracteristicas(-1, 5, UsuarioActual.CveEmpresa) Then
+ DdlCaracteristica.DataSource = Objeto.DtResultados
+ End If
+ Objeto.Dispose()
+ DdlCaracteristica.DataBind()
+ End Sub
+
+ Protected Sub DdlCaracteristica_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCaracteristica.SelectedIndexChanged
+ CambioProductosServiciosCaracteristicas(DdlCaracteristica.SelectedValue.ToEntero)
+ End Sub
+
+ Protected Sub CambioProductosServiciosCaracteristicas(CveCaracteristica As Integer)
+ Dim Objeto As New ClsGenerales
+ If Objeto.GetCaracteriscasOpciones(CveCaracteristica, UsuarioActual.CveEmpresa) Then
+ Dim dr As DataRow = Objeto.DtResultados.FiltroPrimero(String.Format(("CveCaracteristica={0}"), CveCaracteristica))
+ If dr IsNot Nothing Then
+ If dr("CveCaracteristicaTipo").ToString = "1" Then
+ DdlOpcion.Items.Clear()
+ DdlOpcion.DataSource = Objeto.DtResultados.FiltraParametros(String.Format(("CveCaracteristica={0}"), CveCaracteristica))
+
+ TDDdlOpcion.Visible = True
+ TDTxtOpcion.Visible = False
+ Else
+ TDTxtOpcion.Visible = True
+ TDDdlOpcion.Visible = False
+ End If
+
+ End If
+ End If
+ Objeto.Dispose()
+ DdlOpcion.DataBind()
+ End Sub
+
+ Protected Sub CambioProductosServiciosCaracteristicasOpciones()
+ UpTitulosO.Update()
+ End Sub
+#End Region
+
+#Region "G V O P C I O N E S"
+ Protected Sub GvDatosOpciones_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatosOpciones.RowDataBound
+ If e.Row.RowType = DataControlRowType.DataRow Then
+ If e.Row.RowIndex = 0 Then
+ e.Row.Cells(0).Width = Unit.Pixel(150)
+ e.Row.Cells(1).Width = Unit.Pixel(150)
+ e.Row.Cells(2).Width = Unit.Pixel(100)
+ e.Row.Cells(3).Width = Unit.Pixel(100)
+ e.Row.Cells(4).Width = Unit.Pixel(50)
+ End If
+ e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
+
+ If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
+ e.Row.FCDropDownList("DdlCaracteristicaEdit").DataSource = GlobalDTProductosServiciosCaracteristicas(UsuarioActual.CveEmpresa).FiltraParametros("CvePS = " + CvePS.ToString)
+ e.Row.FCDropDownList("DdlCaracteristicaEdit").DataBind()
+ e.Row.FCDropDownList("DdlCaracteristicaEdit").SelectedValue = e.Row.DBCampo("CvePS")
+ End If
+ End If
+ End Sub
+ Protected Sub GvDatosOpciones_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatosOpciones.RowDeleting
+ Dim ObjOpciones As New ClsGenerales
+ Dim CveCaracteristicaValor As Integer = GvDatosOpciones.Rows(e.RowIndex).DataKey("CveCaracteristicaValor").ToEntero
+
+ If ObjOpciones.RemoveCaracteristicasValores(CveCaracteristicaValor, CvePS:=CvePS) Then
+ GvDatosOpciones.EditIndex = -1
+ CambioProductosServiciosCaracteristicasOpciones()
+ CargaDatosO()
+ UpDatosO.Update()
+ Alert("La Opción para Caracteristica del Producto o Servicio se eliminó correctamente.", TipoMensaje.MsgInformacion)
+ End If
+
+ ObjOpciones.Dispose()
+ End Sub
+ Protected Sub GvDatosOpciones_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvDatosOpciones.RowCancelingEdit
+ GvDatosOpciones.EditIndex = -1
+ End Sub
+ Protected Sub GvDatosOpciones_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvDatosOpciones.RowUpdating
+ Dim ObjOpciones As New ClsGralProductosServiciosCaracteristicas
+ Dim CveCaracteristica As Integer = DirectCast(GvDatosOpciones.Rows(e.RowIndex).FindControl("DdlCaracteristicaEdit"), DropDownList).SelectedValue.ToEntero
+ Dim CveOpcion As Integer = GvDatosOpciones.DataKeys(e.RowIndex).Value.ToString.ToEntero
+
+ Dim Opcion As String = DirectCast(GvDatosOpciones.Rows(e.RowIndex).FindControl("TxtOpcion"), TextBox).Text.Trim
+
+ If ObjOpciones.UpdateProductosServiciosCaracteristicasOpciones(Opcion, CveCaracteristica, CveOpcion) Then
+ GvDatosOpciones.EditIndex = -1
+ ViewState("DTProductosServiciosCaracteristicasOpciones") = ObjOpciones.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
+ GlobalDTProductosServiciosCaracteristicasOpciones(UsuarioActual.CveEmpresa) = ObjOpciones.DtResultados
+ Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion)
+
+ CambioProductosServiciosCaracteristicasOpciones()
+ End If
+
+ ObjOpciones.Dispose()
+ End Sub
+
+ 'Protected Sub GvDatosOpciones_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvDatosOpciones.RowEditing
+ ' GvDatosOpciones.EditIndex = e.NewEditIndex
+ ' CargaGrid()
+ 'End Sub
+#End Region
+
+#Region "O R D E N A M I E N T O"
+ Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs)
+ Dim Orden As String = ""
+ Dim Campo As String = ""
+ Dim gvi As Integer = 0
+ Dim Literal As Literal = Nothing
+ Const OrdenInicial As String = ""
+ Dim Arg(2) As String
+
+ Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c)
+ Campo = Arg(0)
+ gvi = Arg(1).ToEntero
+ Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(", ", "_")), Literal)
+ Campo = Campo.Substring(0, Campo.Length - 1)
+
+ If ViewState(String.Format("O{0}", Campo, gvi)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo, gvi)).ToString = String.Format("{0} DESC", Campo) Then
+ ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo)
+ Literal.Text = String.Format("")
+ Else
+ ViewState(String.Format("O{0}", Campo, gvi)) = String.Format("{0} DESC", Campo)
+ Literal.Text = String.Format("")
+ End If
+ Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo, gvi)).ToString
+ ViewState("Orden") = Orden
+ End Sub
+
+
+
+ 'Private Sub CargaGrid()
+ ' Dim Objeto As New ClsGralProductosServiciosCaracteristicas
+ ' If Objeto.GetPSCaracteristicas(UsuarioActual.CveEmpresa) Then
+ ' GvDatosCaracteristicas.DataSource = Objeto.DtResultados
+ ' End If
+ ' GvDatosCaracteristicas.DataBind()
+ ' Objeto.Dispose()
+ 'End Sub
+
+
+
+#End Region
+
+#Region "C A R G A S"
+ Private Sub ClasificacionModal()
+ DdlClasificacionModal.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion")
+ DdlClasificacionModal.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ DdlClasificacionModal.DataBind()
+ UpModal.Update()
+ End Sub
+
+ Private Sub CargaClasificacionesDetalles()
+ DdlTipoPSDes.Items.Clear()
+ DdlTipoPSDes.DataSource = GlobalDTClasificacionesDetalle(UsuarioActual.CveEmpresa)
+ 'If DdlClasificacion.SelectedValue.ToEntero > 0 Then
+ 'Dim ObjVenta As New ClsVentas
+ ' If ObjVenta.GetClasificacionDetalle(UsuarioActual.CveEmpresa, CveClasificacion:=-1) Then
+ ' DdlTipoPSDes.DataSource = ObjVenta.DtResultados
+ ' End If
+ ' ObjVenta.Dispose()
+ 'End If
+ DdlTipoPSDes.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ DdlTipoPSDes.DataBind()
+ End Sub
+ Private Sub CargaClasificaciones()
+ DdlClasificacion.Items.Clear()
+ If UsuarioActual.Empresa.UsaAC Then
+ DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, DdlUsoClasificacion.SelectedValue.ToEntero, -1)).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion")
+ Else
+ DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, DdlUsoClasificacion.SelectedValue.ToEntero, -1)).FiltraParametros("", Orderby:="Clasificacion")
+ End If
+ DdlClasificacion.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ 'BLOQUEA DDL CLASIFICACION
+ If UsuarioActual.Empresa.Funcionalidad(121) = "1" Then
+ If Not UsuarioActual.TienePermisoProceso(147) Then
+ DdlClasificacion.Enabled = False
+ End If
+ End If
+ DdlClasificacion.DataBind()
+ End Sub
+ Private Sub CargaClasificaciones2()
+ DdlClasificacion2.DataSource = GlobalDTClasificaciones2(UsuarioActual.CveEmpresa)
+ DdlClasificacion2.DataBind()
+ DdlClasificacion2.Items.Insert(0, New ListItem("Sin Clasificacion", "-1"))
+ DdlClasificacion2.SelectedValueExist("-1")
+
+ 'BLOQUEA DDL CLASIFICACION
+ If PermiteClasificacion2 Then
+ DivClasificacion2.Visible = True
+ End If
+
+ End Sub
+ Private Sub CargaTipoProductos()
+ 'BLOQUEA DDL TIPO PRODUCTO
+ If UsuarioActual.Empresa.Funcionalidad(122) = "1" Then
+ If Not UsuarioActual.TienePermisoProceso(149) Then
+ DdlTipoPS.Enabled = False
+ DdlTipoPS.SelectedValueExist("2")
+ End If
+ End If
+ End Sub
+ Private Sub CargaConceptoRelacionado()
+ DdlConceptoRelacionado.DataSource = GlobalDTContaConceptosContables(-1)
+ DdlConceptoRelacionado.DataBind()
+ End Sub
+ Private Sub CargarMetodosInv()
+ ddlMetodos.DataSource = If(UsuarioActual.CveEmpresa.Contiene(72, 80), GlobalDTInvMetodosInventario.FiltraParametros("CveMetodoInventario IN (1,5)"), GlobalDTInvMetodosInventario)
+ ddlMetodos.DataBind()
+ ddlMetodos.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ End Sub
+
+ 'Nuevo R: 26/09/207'
+ Private Sub CargaProveedores()
+ DdlProveedor.setEsWebService(True)
+ 'DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
+ 'DdlProveedor.DataBind()
+ 'DdlProveedor.Items.Insert(0, New ListItem("Seleccione", "-1"))
+
+ DdlMoneda.DataSource = GlobalDTMonedas()
+ DdlMoneda.DataBind()
+ DdlMoneda.Items.Insert(0, New ListItem("Seleccione", "-1"))
+
+ End Sub
+
+
+
+ Private Sub CargaUnidadesMedida()
+ DdlUnidadMedida.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa)
+ DdlUnidadMedida.DataBind()
+ End Sub
+ Private Sub CargaCuentasContables()
+ 'Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa.ServerContPAQi, UsuarioActual.Empresa.BDContPAQi, UsuarioActual.Empresa.UsrContPAQi, UsuarioActual.Empresa.PwdContPAQi)
+ 'If ObjContabilidad.GetCuentas(-1, "-1", -1) Then
+ ' DdlCtaContableVentas.DataSource = ObjContabilidad.DtResultados
+ ' DdlCtaContableCompras.DataSource = ObjContabilidad.DtResultados
+ ' DdlCtaContableInventarios.DataSource = ObjContabilidad.DtResultados
+ 'Else
+ ' DdlCtaContableVentas.DataSource = Nothing
+ ' DdlCtaContableCompras.DataSource = Nothing
+ ' DdlCtaContableInventarios.DataSource = Nothing
+ 'End If
+ 'DdlCtaContableVentas.DataBind()
+ 'DdlCtaContableCompras.DataBind()
+ 'DdlCtaContableInventarios.DataBind()
+ 'ObjContabilidad.Dispose()
+ End Sub
+ Private Sub CargaDatos()
+ Dim ObjProductosServicios As New ClsProductosServicios()
+ If ObjProductosServicios.GetPS(CvePS, -1, UsuarioActual.CveEmpresa) Then
+ If ObjProductosServicios.DtResultados.Rows.Count > 0 Then
+
+ 'SI NO TIENE VALOR Y NO TIENE EL PROCESO MUESTRA SIN CLASIFICACION
+ If ObjProductosServicios.CveClasificacion.ToString.Equals("-1") And Not UsuarioActual.TienePermisoProceso(147) And UsuarioActual.Empresa.Funcionalidad(121) = "1" Then
+ DdlClasificacion.SelectedValueExist("0")
+ Else
+ DdlClasificacion.SelectedValueExist(ObjProductosServicios.CveClasificacion.ToString)
+ End If
+ CargaClasificacionesDetalles()
+ DdlClasificacion2.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveClasificacion2").ToString)
+ DdlCompuesto.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveCompuesto").ToString)
+ 'SI ES NUEVO TIPO = PRODUCTO Y SI NO TIENE PROCESO NO PUEDO EDITAR
+ If ObjProductosServicios.CveTipoPS.ToString.Equals("-1") And Not UsuarioActual.TienePermisoProceso(149) And UsuarioActual.Empresa.Funcionalidad(122) = "1" Then
+ DdlTipoPS.SelectedValueExist("2")
+ Else
+ DdlTipoPS.SelectedValueExist(ObjProductosServicios.CveTipoPS.ToString)
+ End If
+
+ 'If ObjProductosServicios.CveTipoPS = 1 Then
+ ' DivTipoServicio.Visible = True
+ ' DdlTipoServicio.SelectedValueExist(ObjProductosServicios.Estado2.ToString)
+
+ ' If Not DdlTipoServicio.SelectedValue.ToEntero > 0 Then
+ ' DdlTipoServicio.Items.Insert(1, New ListItem(If(ObjProductosServicios.Estado2 = 1, "General", "Maquinaria"), ObjProductosServicios.Estado2.ToString))
+ ' DdlTipoServicio.SelectedValueExist(ObjProductosServicios.Estado2.ToString)
+ ' End If
+ 'End If
+ If ObjProductosServicios.CveSATPS.ToString <> Nothing Then
+ DdlSATPS.SelectedValue = ObjProductosServicios.CveSATPS.ToString
+ DdlSATPS.SelectedText = $"{ObjProductosServicios.SATClavePS} - {ObjProductosServicios.SATDescripcion}"
+ CveSATPS = ObjProductosServicios.CveSATPS
+ End If
+ If ObjProductosServicios.CveFraccionArancelaria.ToString <> Nothing Then
+ DdlFraccionArancelaria.SelectedValue = ObjProductosServicios.CveFraccionArancelaria.ToString
+ DdlFraccionArancelaria.SelectedText = ObjProductosServicios.ClaveSATFraccionArancelariaDescripcion
+ End If
+ If ObjProductosServicios.ClaveSATUnidadAduanaDescripcion.ToString <> Nothing Then
+ LblUnidadAduana.Text = ObjProductosServicios.ClaveSATUnidadAduanaDescripcion.ToString
+ End If
+ DdlTipoPSDes.SelectedValueExist(ObjProductosServicios.CveClasificacionDetalle.ToString)
+ DdlUnidadMedida.SelectedValue = ObjProductosServicios.CveUnidadMedida.ToString
+ DdlMarca.SelectedValue = ObjProductosServicios.CveMarca.ToString
+ DdlMarcaPSDes.SelectedValue = ObjProductosServicios.CveMarca.ToString
+ TxtCodigo.Text = ObjProductosServicios.Codigo
+ 'TxtCodigo2.Text = ObjProductosServicios.Codigo2
+ TxtCodigoBarras.Text = ObjProductosServicios.CodigoBarras
+ CodigoBarrasCargado = ObjProductosServicios.CodigoBarras
+
+ TxtPS.Text = ObjProductosServicios.PS
+ TxtPrecio.Text = ObjProductosServicios.Precio.ToString("F4") 'no usa N4, porque pone comma
+ TxtPrecioMinimo.Text = ObjProductosServicios.PrecioMinimo.ToString("F4")
+
+ DdlTipoFactor.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTipoFactor").ToString)
+
+ If ObjProductosServicios.DtResultados.Rows(0)("CveTipoFactor").ToString.Contiene("1", "2") Then
+ LIva.Visible = True
+ DdlIVA.Visible = True
+ DdlIVA.Width = New Unit("163px")
+ Else
+ DdlIVA.Visible = False
+ DdlIVA.Visible = False
+ End If
+ DdlIVA.SelectedValueExist(ObjProductosServicios.IVA.ToString)
+
+
+ LblCostoPromedio.Text = ObjProductosServicios.DtResultados.Rows(0)("CostoPromedio").ToString.FormatoNumero
+ LblUltimoCosto.Text = ObjProductosServicios.DtResultados.Rows(0)("UltimoCosto").ToString.FormatoNumero
+ LblFechaUltimaCompra.Text = ObjProductosServicios.DtResultados.Rows(0)("FechaUltimaCompra").ToString
+ HplKardex.NavigateUrl = $"/Inventarios/Kardex.aspx?CvePS={CvePS}"
+
+ TxtRetIVA.Text = (ObjProductosServicios.RetIVA * 100).ToString
+ ChkEstado.Checked = ObjProductosServicios.Estado
+ LblFechaCaptura.Text = ObjProductosServicios.Fecha.ToShortDateString
+ LblUsuarioCapturo.Text = ObjProductosServicios.Usuario
+ If ObjProductosServicios.CveUsuarioModifico > 0 Then
+ LblFechaModificacion.Text = ObjProductosServicios.FechaUltimaModificacion.ToString
+ LblUsuarioModifico.Text = ObjProductosServicios.UsuarioModifico
+ End If
+ 'ChkAplicaParaConcepto.Checked = ObjProductosServicios.AplicaParaConcepto
+ ChkAplicaParaVenta.Checked = ObjProductosServicios.AplicaParaVenta
+ lbTitulo.Text = $"{lbTitulo.Text}{ObjProductosServicios.PS}"
+ LtProductoUnificar.Text = ObjProductosServicios.PS
+ ddlMetodos.SelectedValue = ObjProductosServicios.CveMetodoInventario.ToString
+ TxtAlmacenSeccion.Text = ObjProductosServicios.AlmacenSeccion.ToString
+ DdlConceptoRelacionado.SelectedValueExist(ObjProductosServicios.CveConceptoContable.ToString)
+
+ DdlProveedor.SelectedValue = ObjProductosServicios.CveProveedorCompra.ToString
+ DdlProveedor.SelectedText = ObjProductosServicios.ProveedorCompra
+
+ DdlProveedor.txtText.Value = ObjProductosServicios.ProveedorCompra
+ DdlProveedor.txtValue.Value = ObjProductosServicios.CveProveedorCompra.ToString
+
+ ChkInventariable.Checked = ObjProductosServicios.Inventariable
+ TxtVentaMinima.Text = ObjProductosServicios.VentaMinima.ToString
+ DdlMoneda.SelectedValueExist(ObjProductosServicios.CveMoneda)
+ TxtRetISR.Text = (ObjProductosServicios.RetISR * 100).ToString
+
+ DdlTamanio.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTamaño").ToString)
+
+ DdlModelo.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveModelo").ToString)
+ DdlMedida.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveMedida").ToString)
+ DdlRin.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveRinTamaño").ToString)
+
+ 'If ObjProductosServicios.CvePSAdicional > 0 Then
+ ' DdlPSAdicional.SelectedValue = ObjProductosServicios.CvePSAdicional.ToString
+ ' DdlPSAdicional.SelectedText = ObjProductosServicios.PSCodigoAdicional
+ 'Else
+ ' DdlPSAdicional.SelectedValue = "-1"
+ ' DdlPSAdicional.SelectedText = "Seleccione"
+ 'End If
+
+ Try
+ DdlClasificacion_SelectedIndexChanged(DdlClasificacion, Nothing)
+ Catch ex As Exception
+
+ End Try
+
+ ChkAplicaIeps.Checked = ObjProductosServicios.AplicaIEPS
+ If ObjProductosServicios.AplicaIEPS = True Then
+ DdlIEPSPorcentaje.Enabled = True
+ DdlIEPSPorcentaje.SelectedValue = ObjProductosServicios.IEPSPorcentaje.ToString("N2")
+ ChkIepsIVA.Enabled = True
+ ChkIepsIVA.Checked = ObjProductosServicios.IEPSGrabaIVA
+ End If
+
+ DdlImpTipoProducto.SelectedValueExist(ObjProductosServicios.ClaveImpuestoTipoProducto)
+ CargaClaveGenerica(DdlImpTipoProducto.SelectedValue)
+ DdlImpEmpaque.SelectedValueExist(ObjProductosServicios.ClaveImpuestoEmpaque)
+ DdlImpUM.SelectedValueExist(ObjProductosServicios.ClaveImpuestoUnidadMedida)
+ DdlCategoriaToxicidad.SelectedValueExist(ObjProductosServicios.ClaveCategoriaToxicidad)
+
+ 'If ObjProductosServicios.CveMetodoInventario = 0 Then ddlMetodos.SelectedValue = UsuarioActual.Empresa.CveMetodoInventario.ToString
+
+ ViewState("CveSubFamilia") = ObjProductosServicios.DtResultados.Rows(0)("CveSubFamilia")
+
+ CargaCaracteristicas()
+
+ LnkUnificar.Visible = True
+ ChkEsOutSourcing.Checked = ObjProductosServicios.EsOutSourcing
+ Else
+ Alert("El Producto o Servicio Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia)
+ RegistraScript("$('#C_Tab_TabPaquetes_tab').css('display' , 'none')")
+ BtnGuardar.Enabled = False
+ End If
+ End If
+
+ If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then
+ gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados
+ dtPaqueteDetalles = ObjProductosServicios.DtResultados
+
+ End If
+ ObjProductosServicios.Dispose()
+ gvPaqueteDetalle.DataBind()
+ End Sub
+ Protected Sub CargarAlias()
+ Dim ObjAlias As New ClsProductosServicios
+ ObjAlias.GetPSAlias(CvePS, UsuarioActual.CveEmpresa)
+ GVAlias.DataSource = ObjAlias.DtResultados
+ ObjAlias.Dispose()
+ GVAlias.DataBind()
+ End Sub
+
+ Public Sub CargaDdlSATPS()
+ DdlSATPS.setEsWebService(True)
+ DdlSATPS.Attributes.Add("data-metodo", "getpssat")
+ End Sub
+
+ Public Sub CargaDdlFraccionArancelaria()
+ DdlFraccionArancelaria.setEsWebService(True)
+ DdlFraccionArancelaria.Attributes.Add("data-metodo", "getfraccionarancelaria")
+ End Sub
+ Private Sub VerificaRequiereSerieLote()
+ If UsuarioActual.CveEmpresa.Contiene(80, 72) And DdlClasificacion.SelectedIndex > 0 Then
+ Dim RequireSerieLote As Integer = (GlobalDTClasificaciones(UsuarioActual.CveEmpresa, -1).FiltraParametros("CveClasificacion=" & DdlClasificacion.SelectedValue.ToString))(0)("RequiereSerieLote").ToString.ToEntero
+ If RequireSerieLote = 1 Then
+ RfvddlMetodos.Enabled = True
+ Else
+ RfvddlMetodos.Enabled = False
+ End If
+ Else
+ RfvddlMetodos.Enabled = False
+ End If
+ UpMetodos.Update()
+ End Sub
+
+#End Region
+
+ '#Region "Familias"
+ ' Protected Sub DdlFamilia_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlFamilia.SelectedIndexChanged
+ ' CargaDdlSubFamilia()
+ ' DdlSubFamilia.SelectedValue = "-1"
+ ' End Sub
+ ' Public Sub CargaFamilia(Optional CveSubFamilia As Integer = 0)
+ ' dtFamily = GlobalDTSubFamilias(UsuarioActual.CveEmpresa)
+ ' CargaDdlFamilia()
+ ' If dtFamily.FiltraParametros(String.Format("CveClasificacion={0}", CveSubFamilia)).Rows.Count > 0 Then
+ ' DdlFamilia.SelectedValue = dtFamily.FiltraParametros(String.Format("CveClasificacion={0}", CveSubFamilia)).Rows(0)("CveCategoria").ToString
+ ' End If
+ ' CargaDdlSubFamilia()
+
+ ' If CveSubFamilia > 0 Then
+ ' DdlSubFamilia.SelectedValue = CveSubFamilia.ToString
+ ' End If
+ ' End Sub
+ ' Public Sub CargaDdlFamilia()
+ ' ' Alert( GlobalDTFamilias(UsuarioActual.CveEmpresa).Rows.Count.ToString())
+ ' DdlFamilia.DataSource = GlobalDTFamilias(UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'Activo'")
+ ' DdlFamilia.DataBind()
+ ' End Sub
+ ' Public Sub CargaDdlSubFamilia()
+ ' DdlSubFamilia.DataSource = dtFamily.FiltraParametros(String.Format("CveCategoria={0}", DdlFamilia.SelectedValue), "Clasificacion")
+ ' DdlSubFamilia.DataBind()
+ ' DdlSubFamilia.Items.Insert(0, New ListItem("----", "-1"))
+ ' End Sub
+ ' Private Function isWhitFamily() As Boolean
+ ' Return (UsuarioActual.CveEmpresa = 66)
+ ' End Function
+ '#End Region
+
+#Region " TIPO SERVICIO "
+ 'Public Sub CargaTipoServicio()
+
+ ' 'GENERAL
+ ' If UsuarioActual.TienePermisoProceso(150) Then
+ ' DdlTipoServicio.Items.Insert(1, New ListItem("General", "1"))
+ ' DdlTipoServicio.SelectedValueExist(1)
+ ' End If
+
+ ' 'MAQUINARIA
+ ' If UsuarioActual.TienePermisoProceso(151) Then
+ ' DdlTipoServicio.Items.Insert(1, New ListItem("Maquinaria", "2"))
+ ' DdlTipoServicio.SelectedValueExist(2)
+ ' End If
+
+ ' If UsuarioActual.TienePermisoProceso(150) And UsuarioActual.TienePermisoProceso(151) Then
+ ' DdlTipoServicio.SelectedValueExist(-1)
+ ' End If
+
+ 'End Sub
+ 'Private Sub DdlTipoPS_SelectedIndexChanged(sender As Object, e As EventArgs) ' Handles DdlTipoPS.SelectedIndexChanged
+ ' If UsuarioActual.TienePermisoProceso(150) And UsuarioActual.TienePermisoProceso(151) Then
+
+ ' If DdlTipoPS.SelectedValue.ToEntero = 1 Then
+ ' DivTipoServicio.Visible = True
+ ' End If
+
+ ' If DdlTipoPS.SelectedValue.ToEntero = 2 Then
+ ' DivTipoServicio.Visible = False
+ ' End If
+ ' End If
+
+ ' UPPCostos.Update()
+ ' UpDatos.Update()
+
+ 'End Sub
+#End Region
+
+#Region " PAQUETES "
+
+ Protected Sub BtnCargaPSPaquetes_Click(sender As Object, e As EventArgs)
+ If BtnCargaPSPaquetes.CommandArgument.ToEntero > 0 Then
+ CargaPS()
+ BtnCargaPSPaquetes.CommandArgument = "1"
+ End If
+ End Sub
+ Private Sub CargaPS()
+ 'RMF 2017.09.13, ajuste asume siempre que use el webservice
+ 'DdlProductows.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
+ DdlProductows.setEsWebService(True)
+ If Not DdlProductows.UsaWebService AndAlso CType(DdlProductows.DataSource, DataTable) Is Nothing AndAlso GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) IsNot Nothing Then
+ DdlProductows.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
+ DdlProductows.DataBind()
+ End If
+
+ ElProductoChange()
+ End Sub
+ Protected Sub DdlProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlProductows.selectedindexchange
+ ElProductoChange()
+ End Sub
+ Private Sub ElProductoChange()
+ ddlUnidad.Items.Clear()
+ ddlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProductows.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa)
+ ddlUnidad.DataBind()
+ UpDatos.Update()
+ End Sub
+
+#Region "GV PAQUETE DETALLE"
+ Protected Sub gvPaqueteDetalle_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvPaqueteDetalle.RowDataBound
+ If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
+ e.Row.FCDropDownList("ddlEUnidad").DataSource = GlobalDTUnidadesMedida()
+ e.Row.FCDropDownList("ddlEUnidad").SelectedValue = e.Row.DBCampo("CveUnidadMedida")
+ e.Row.FCDropDownList("ddlEUnidad").DataBind()
+ End If
+ End Sub
+ Protected Sub gvPaqueteDetalle_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles gvPaqueteDetalle.RowDeleting
+ Dim ObjProductosServicios As New ClsProductosServicios
+ Dim tipo As Integer = 0
+ If dtPaqueteDetalles.Rows.Item(e.RowIndex)("Tipo").ToString = "Paquete" Then
+ tipo = 1
+ Else
+ tipo = 2
+ End If
+ If ObjProductosServicios.DeletePaqueteDetalle(dtPaqueteDetalles.Rows.Item(e.RowIndex)("CvePSPaquete").ToString.ToEntero,
+ dtPaqueteDetalles.Rows.Item(e.RowIndex)("CvePS").ToString.ToEntero,
+ dtPaqueteDetalles.Rows.Item(e.RowIndex)("Cantidad").ToString.ToDouble,
+ tipo,
+ dtPaqueteDetalles.Rows.Item(e.RowIndex)("CveUnidadMedida").ToString.ToEntero) Then
+
+ If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then
+ gvPaqueteDetalle.EditIndex = -1
+ gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados
+ dtPaqueteDetalles = ObjProductosServicios.DtResultados
+ gvPaqueteDetalle.DataBind()
+ End If
+ End If
+ ObjProductosServicios.Dispose()
+ End Sub
+ Protected Sub gvPaqueteDetalle_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles gvPaqueteDetalle.RowEditing
+ gvPaqueteDetalle.EditIndex = e.NewEditIndex
+ gvPaqueteDetalle.DataSource = dtPaqueteDetalles
+ gvPaqueteDetalle.DataBind()
+ End Sub
+ Protected Sub gvPaqueteDetalle_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles gvPaqueteDetalle.RowCancelingEdit
+ gvPaqueteDetalle.EditIndex = -1
+ gvPaqueteDetalle.DataSource = dtPaqueteDetalles
+ gvPaqueteDetalle.DataBind()
+ End Sub
+ Protected Sub gvPaqueteDetalle_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles gvPaqueteDetalle.RowUpdating
+ Dim ObjProductosServicios As New ClsProductosServicios
+ If ObjProductosServicios.UpdatePaqueteDetalle(CvePS,
+ dtPaqueteDetalles.Rows.Item(e.RowIndex)("CvePS").ToString.ToEntero,
+ DirectCast(gvPaqueteDetalle.Rows(e.RowIndex).FindControl("txtECantidad"), TextBox).Text.ToDouble,
+ DirectCast(gvPaqueteDetalle.Rows(e.RowIndex).FindControl("ddlETipo"), DropDownList).SelectedValue.ToEntero,
+ DirectCast(gvPaqueteDetalle.Rows(e.RowIndex).FindControl("ddlEUnidad"), DropDownList).SelectedValue.ToEntero, UsuarioActual.CveUsuario) Then
+ If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then
+ gvPaqueteDetalle.EditIndex = -1
+ gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados
+ dtPaqueteDetalles = ObjProductosServicios.DtResultados
+ gvPaqueteDetalle.DataBind()
+ End If
+ End If
+ ObjProductosServicios.Dispose()
+ End Sub
+#End Region
+
+#End Region
+
+
+#Region "BTN'S"
+ Protected Sub BtnEliminar_Click(sender As Object, e As System.EventArgs) Handles BtnEliminar.Click
+ 'Dim CerrarVentana As String = "opener.location.reload();window.close();"
+ 'If Request("Popup") IsNot Nothing Then CerrarVentana = "self.parent.tb_remove();self.parent.location.reload();window.close();"
+ RegistraScript(String.Format("$('#{0}').modal('show');", "divDescripcion"))
+
+ End Sub
+ Protected Sub btguardar_Click(sender As Object, e As EventArgs) Handles btguardar.Click
+ Dim ObjProductosServicios As New ClsProductosServicios
+ If ObjProductosServicios.AddPaqueteDetalle(CvePS, DdlProductows.SelectedValue.ToEntero, txtCantidad.Text.ToDouble, ddlTipo.SelectedValue.ToEntero, ddlUnidad.SelectedValue.ToEntero, UsuarioActual.CveUsuario) Then
+
+ If ObjProductosServicios.GetPaqueteDetalle(CvePS, UsuarioActual.CveEmpresa) Then
+ gvPaqueteDetalle.EditIndex = -1
+ gvPaqueteDetalle.DataSource = ObjProductosServicios.DtResultados
+ gvPaqueteDetalle.DataBind()
+
+ End If
+
+ txtCantidad.Text = ""
+ DdlProductows.ddl.SelectedIndex = 0
+ ddlUnidad.SelectedIndex = 0
+ ddlTipo.SelectedIndex = 0
+ End If
+ ObjProductosServicios.Dispose()
+ UpDatos.Update()
+ End Sub
+ Protected Sub BtnGuardar_Click(sender As Object, e As System.EventArgs) Handles BtnGuardar.Click
+
+
+ If TxtPS.Text.Trim.Length = 0 Or DdlTipoPS.SelectedValue.ToEntero <= 0 Or DdlUnidadMedida.SelectedValue.ToEntero <= 0 Or DdlClasificacion.SelectedValue.ToEntero <= 0 Then
+ Alert("Los campos Producto/Servicio, Tipo, Unidad de medida, Clasificación Contable son requeridos por favor ingreselos.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ Dim CveClasificacion2 As Integer = DdlClasificacion2.SelectedValue.ToEntero
+
+ If (TxtCodigo.Text = TxtCodigoBarras.Text AndAlso TxtCodigo.Text <> "") Then
+ Alert("Los codigos no pueden ser iguales. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
+ Return
+ End If
+
+ 'If DdlSubFamilia.SelectedValue = "-1" AndAlso UsuarioActual.TienePermisoProceso(138) Then
+ ' Alert("Se debe especificar Familia y Subfamilia de Costos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
+ ' Exit Sub
+ 'End If
+
+ If UsuarioActual.Empresa.Funcionalidad(265) = "1" And TxtCodigo.Text = "" Then
+ Alert("El codigo es requerido.", TipoMensaje.MsgAdvertencia)
+ Return
+ End If
+
+ If TxtCodigo.Text <> "" AndAlso Not TxtCodigo.Text.Length >= 3 Then
+ Alert("El codigo tiene que que tener una longitud de al menos 3 digitos.", TipoMensaje.MsgAdvertencia)
+ Return
+ End If
+
+ Dim ObjProductosServicios As New ClsProductosServicios()
+ Dim ObjInv As New ClsInventarios(ObjProductosServicios.IniciaTransacSQL())
+
+ Dim TieneError = False
+ Dim AccionJS = ""
+ Dim EsPaquete As Integer = If(gvPaqueteDetalle.Rows.Count = 0, 0, 1)
+ Dim CveMetodoInv As Integer = If(UsuarioActual.Empresa.UsaInventarios, ddlMetodos.SelectedValue.ToEntero, -1)
+
+
+ Dim CveProveedor As Integer = -1
+ If DdlProveedor.txtValue.Value.ToEntero > 0 Then
+ CveProveedor = DdlProveedor.txtValue.Value.ToEntero
+ End If
+
+ Dim CveMarca As Integer = 0
+ If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then CveMarca = DdlMarcaPSDes.SelectedValue.ToEntero Else CveMarca = DdlMarca.SelectedValue.ToEntero
+
+ If CvePS = -1 Then
+ Dim PSS As String = TxtPS.Text.Trim.Replace("|", "")
+ If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper
+ If ObjProductosServicios.AddPS(DdlClasificacion.SelectedValue.ToEntero, -1, DdlUnidadMedida.SelectedValue.ToEntero, TxtCodigo.Text.Trim, "", TxtCodigoBarras.Text.Trim, PSS,
+ TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True,
+ ChkAplicaParaVenta.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveMetodoInv, EsPaquete, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero,
+ FuePorXML:=False, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim,
+ AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero,
+ CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToDecimal,
+ CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal,
+ CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero,
+ CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=DdlTamanio.SelectedValue.ToEntero,
+ CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(),
+ ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString,
+ ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked) > 0 Then
+ ViewState("CvePS") = ObjProductosServicios.CvePS
+ For Each GVR As GridViewRow In GvImpuestosLocales.Rows
+ If GVR.FCCheckBox("ChkDeduccion").Checked Then
+ ObjProductosServicios.AddPSImpuestosLocales(CvePS, GVR.DataKey("CveImpuestoLocal").ToEntero)
+ End If
+ Next
+ 'Alert("El Producto o Servicio se guardó correctamente.", TipoMensaje.MsgInformacion, "document.location.href= "" / ProductosServicios.aspx?CvePS=" & ObjProductosServcios.CvePS.ToString & """;")
+ AccionJS = "document.location.href=""/Ventas/CatPS.aspx"";"
+
+
+ If Not TieneError Then
+ For Each Dr As DataRow In DtSeccionAlmacen.Rows
+ If Dr("CveAlmacen").ToString.ToEntero > 0 Then
+ If Not ObjInv.AddProductosServiciosAlmacenSeccion(CvePS, Dr("CveAlmacen").ToString.ToEntero, Dr("CveAlmacenSeccion").ToString.ToEntero) Then
+ TieneError = True
+ End If
+ End If
+ Next
+ End If
+
+ Else
+ TieneError = True
+ Alert("Ocurrió un Error al agregar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError)
+ End If
+ Else
+
+ If CodigoBarrasCargado.Length > 0 And TxtCodigoBarras.Text.Length = 0 Then
+ TxtCodigoBarras.Text = CodigoBarrasCargado
+ End If
+
+ Dim PSS As String = TxtPS.Text.Trim.Replace("|", "")
+ If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper
+
+ If ObjProductosServicios.UpdatePS(DdlClasificacion.SelectedValue.ToEntero, -1, DdlUnidadMedida.SelectedValue.ToEntero, TxtCodigo.Text.Trim, "", TxtCodigoBarras.Text.Trim, PSS,
+ TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True,
+ ChkAplicaParaVenta.Checked, ChkEstado.Checked, UsuarioActual.CveUsuario, CvePS, CveMetodoInv, EsPaquete, DdlSATPS.SelectedValue.ToEntero,
+ CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim,
+ AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero,
+ CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToDecimal,
+ CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal,
+ CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero,
+ CveUsuarioModifico:=UsuarioActual.CveUsuario, CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=DdlTamanio.SelectedValue.ToEntero,
+ CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(),
+ ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString,
+ ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked) Then
+
+ If Not ObjProductosServicios.LimpiaImpuestosLocales(CvePS) Then
+ TieneError = True
+ Alert("Ocurrió un Error al regenerar los impuestos locales. Por favor vuelva a intentar.", TipoMensaje.MsgError)
+ End If
+
+ If Not TieneError Then
+ For Each GVR As GridViewRow In GvImpuestosLocales.Rows
+ If GVR.FCCheckBox("ChkDeduccion").Checked Then
+ If Not ObjProductosServicios.AddPSImpuestosLocales(CvePS, GVR.DataKey("CveImpuestoLocal").ToEntero) Then
+ TieneError = True
+ Alert("Ocurrió un Error al agregar los impuestos locales. Por favor vuelva a intentar.", TipoMensaje.MsgError)
+ Exit For
+ End If
+ End If
+ Next
+ End If
+
+ AccionJS = If(Ret = "Comp", "ircompras();", "document.location.href=""/Ventas/CatPS.aspx"";")
+ 'UpDatos.Update()
+ 'Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion, AccionJS)
+
+ If Not TieneError Then
+ For Each Dr As DataRow In DtSeccionAlmacen.Rows
+ If Dr("CveAlmacen").ToString.ToEntero > 0 AndAlso Not Dr("CvePSAlmacenSeccion").ToString.ToEntero > 0 Then
+ If Not ObjInv.AddProductosServiciosAlmacenSeccion(CvePS, Dr("CveAlmacen").ToString.ToEntero, Dr("CveAlmacenSeccion").ToString.ToEntero) Then
+ TieneError = True
+ End If
+ ElseIf Not Dr("CveAlmacen").ToString.ToEntero > 0 AndAlso Dr("CvePSAlmacenSeccion").ToString.ToEntero > 0 Then
+ If Not ObjInv.RemoveProductosServiciosAlmacenSeccion(Dr("CvePSAlmacenSeccion").ToString.ToEntero) Then
+ TieneError = True
+ End If
+ End If
+ Next
+ End If
+
+
+ Else
+ TieneError = True
+ Alert("Ocurrió un Error al actualizar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError)
+ End If
+ ObjProductosServicios.CvePS = CvePS
+ End If
+
+ If ObjProductosServicios.CvePS > 0 And Not TieneError Then
+ For i As Integer = 0 To gvSucursal.Rows.Count - 1
+ If gvSucursal.Rows(i).FCCheckBox("chkSucursal").Checked = False Then
+ If Not ObjProductosServicios.RemovePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero) Then
+ TieneError = True
+ Alert("Ocurrió un Error al eliminar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
+ Exit For
+ End If
+ Else
+ If gvSucursal.Rows(i).FCHiddenField("hdnEnBD").Value.ToEntero = 1 Then
+ 'Actualizarlo
+ If Not ObjProductosServicios.UpdatePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMaximo").Text.ToDouble, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal) Then
+ TieneError = True
+ Alert("Ocurrió un Error al actualizar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
+ Exit For
+ End If
+ 'ObjProductosServicios.UpdatePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCHiddenField("hdnCveSucursal").Value.ToEntero, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, UsuarioActual.CveUsuario)
+ Else
+ 'Insertarlo
+ 'ObjProductosServicios.AddPSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCHiddenField("hdnCveSucursal").Value.ToEntero, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, UsuarioActual.CveUsuario)
+ If Not ObjProductosServicios.AddPSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMaximo").Text.ToDouble, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal) Then
+ TieneError = True
+ Alert("Ocurrió un Error al agregar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
+ Exit For
+ End If
+ End If
+ End If
+ Next
+ End If
+
+
+ If ObjProductosServicios.CvePS > 0 And Not TieneError Then
+ TieneError = GuardaEcommerce()
+ End If
+
+
+ If Not TieneError Then
+ ObjProductosServicios.Commit()
+ Alert("El Producto/Servicio se guardo correctamente.", TipoMensaje.MsgInformacion, AccionJS)
+ Else
+ ObjProductosServicios.RollBack()
+ End If
+
+ ObjProductosServicios.Dispose()
+
+ RecargaGlobal()
+ End Sub
+ Protected Sub HFProducto_ValueChanged(sender As Object, e As EventArgs) Handles HFProducto.ValueChanged
+ ddlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(HFProducto.Value.ToEntero, -1, UsuarioActual.CveEmpresa)
+ ddlUnidad.DataBind()
+ End Sub
+ Protected Sub LbAgregar_Click(sender As Object, e As System.EventArgs) Handles LbAgregar.Click
+ Dim ObjAliasAdd As New ClsProductosServicios
+ Dim TieneError = False
+
+ If ObjAliasAdd.AddPSAlias(TxtAlias.Text.ToString, CvePS, UsuarioActual.CveUsuario) Then
+ CargarAlias()
+ UPGVAlias.Update()
+ Alert("Alias " + TxtAlias.Text + " agregado.", TipoMensaje.MsgInformacion)
+ TxtAlias.Text = ""
+ Else
+ TieneError = True
+ End If
+ ObjAliasAdd.Dispose()
+
+ If Not TieneError Then
+ RecargaGlobal()
+ End If
+ End Sub
+#End Region
+
+#Region "G L O B L A L"
+ Private Sub RecargaGlobal()
+ 'Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalDT)
+ 'Hilo.Start()
+ GeneraGlobalDT()
+ End Sub
+ Private Sub GeneraGlobalDT()
+
+ GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) = Nothing
+ GlobalDTProductosServiciosAlias(UsuarioActual.CveEmpresa) = Nothing
+ GlobalDTImpuestosLocales(-1, UsuarioActual.CveEmpresa) = Nothing
+ GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = Nothing
+ GlobalDTPSAdicionales(-1, UsuarioActual.CveEmpresa) = Nothing
+
+ 'Dim ObjPS As New ClsProductosServicios
+
+ 'If ObjPS.GetPSSimplificado(UsuarioActual.CveEmpresa) Then Application(String.Format("GlobalDTPSSimplificado{0}", UsuarioActual.CveEmpresa)) = ObjPS.DtResultados.AsEnumerable()
+
+ ''If ObjPS.GetPSAlias(-1, UsuarioActual.CveEmpresa) Then
+ ' GlobalDTProductosServiciosAlias(UsuarioActual.CveEmpresa) = ObjPS.DtResultados
+ 'End If
+
+ 'If ObjPS.GetPSImpuestosLocales(-1, UsuarioActual.CveEmpresa) Then
+ ' GlobalDTImpuestosLocales(-1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados
+ 'End If
+
+ 'If ObjPS.GetPSEquivalencias(-1, UsuarioActual.CveEmpresa) Then
+ ' GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados
+ 'End If
+
+ 'If ObjPS.GetPSAdicionales(-1, UsuarioActual.CveEmpresa) Then
+ ' GlobalDTPSAdicionales(-1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados
+ 'End If
+
+ 'ObjPS.Dispose()
+ End Sub
+
+#End Region
+
+#Region "GV ALIAS"
+ Protected Sub GVAlias_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GVAlias.RowDeleting
+ Dim ObjAliasDelete As New ClsProductosServicios
+ Dim TieneError = False
+
+ If ObjAliasDelete.RemovePSAlias(GVAlias.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero, GVAlias.Rows(e.RowIndex).DataKey("PSAlias").ToString) Then
+ GVAlias.EditIndex = -1
+ CargarAlias()
+ UPGVAlias.Update()
+ Alert("El Alias ha sido Eliminado", TipoMensaje.MsgInformacion)
+ Else
+ Alert("Error al Eliminar", TipoMensaje.MsgError)
+ TieneError = True
+ End If
+ ObjAliasDelete.Dispose()
+
+ If Not TieneError Then
+ RecargaGlobal()
+ End If
+ End Sub
+#End Region
+
+#Region " EQUIVALENCIAS "
+ Private Sub CargaEquivalencias()
+
+ DivEquivalencia.Visible = True
+
+ Dim ObjProductosServicios As New ClsProductosServicios()
+ If ObjProductosServicios.GetPSEquivalencias(CvePS, UsuarioActual.CveEmpresa) Then
+ DtEquivalencias = ObjProductosServicios.DtResultados
+ Else
+ DtEquivalencias = Nothing
+ End If
+ ObjProductosServicios.Dispose()
+
+ CargaGvEquivalencias()
+
+ End Sub
+ Private Sub RecargaGlobalEquivalencias()
+ 'Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalEquivalencias)
+ 'Hilo.Start()
+ GeneraGlobalEquivalencias()
+ End Sub
+ Private Sub GeneraGlobalEquivalencias()
+ GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = Nothing
+ 'Dim ObjPS = New ClsProductosServicios
+ 'If ObjPS.GetPSEquivalencias(-1, -1) Then
+ ' GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados
+ 'End If
+ 'ObjPS.Dispose()
+ End Sub
+ Private Sub CargaGvEquivalencias()
+ If DtEquivalencias IsNot Nothing Then
+ GvEquivalencia.DataSource = DtEquivalencias
+ End If
+ GvEquivalencia.DataBind()
+ UpEquivalencias.Update()
+ End Sub
+ Private Sub GvEquivalencia_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEquivalencia.RowDataBound
+ If e.Row.RowType = DataControlRowType.DataRow Then
+
+ If e.Row.DBCampo("UnidadBase") = "True" Then
+ e.Row.FCLinkButton("imgR").Visible = False
+ End If
+
+ If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
+ If e.Row.DBCampo("UnidadBase") = "True" Then
+ 'e.Row.FCCheckBox("ChkBase").Checked = True
+ End If
+ End If
+
+ End If
+ End Sub
+ Protected Sub GvEquivalencia_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvEquivalencia.RowEditing
+ GvEquivalencia.EditIndex = e.NewEditIndex
+ CargaGvEquivalencias()
+ End Sub
+ Protected Sub GvEquivalencia_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvEquivalencia.RowCancelingEdit
+ GvEquivalencia.EditIndex = -1
+ CargaGvEquivalencias()
+ End Sub
+ Private Sub GvEquivalencia_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvEquivalencia.RowUpdating
+ Dim TieneError = False
+
+ Dim CveUM = GvEquivalencia.Rows(e.RowIndex).DataKey("CveUM").ToEntero
+ Dim UnidadBase = GvEquivalencia.Rows(e.RowIndex).DataKey("UnidadBase").ToString = "True"
+ Dim Cantidad = DirectCast(GvEquivalencia.Rows(e.RowIndex).FindControl("TxtCantidadEquivalencia"), TextBox).Text.Trim.ToDecimal
+
+ Dim ObjProductosServicios As New ClsProductosServicios()
+ If Not ObjProductosServicios.UpdatePSEquivalencias(CvePS, CveUM, Cantidad, UnidadBase, 0, UsuarioActual.CveUsuario) Then
+ TieneError = True
+ End If
+ ObjProductosServicios.Dispose()
+
+ If Not TieneError Then
+ Alert("La equivalencia se actualizó correctamente.", TipoMensaje.MsgInformacion)
+ GvEquivalencia.EditIndex = -1
+ CargaEquivalencias()
+ CargaGvEquivalencias()
+ RecargaGlobalEquivalencias()
+ Else
+ Alert("ocurrió un error al actualizar la equivalencia.", TipoMensaje.MsgError)
+ End If
+
+ End Sub
+ Private Sub GvEquivalencia_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvEquivalencia.RowDeleting
+ Dim TieneError = False
+
+ Dim CveUM = GvEquivalencia.Rows(e.RowIndex).DataKey("CveUM").ToEntero
+
+ Dim ObjProductosServicios As New ClsProductosServicios()
+ If Not ObjProductosServicios.RemovePSEquivalencias(CvePS, CveUM) Then
+ TieneError = True
+ End If
+ ObjProductosServicios.Dispose()
+
+ If Not TieneError Then
+ Alert("La equivalencia se eliminó correctamente.", TipoMensaje.MsgInformacion)
+ CargaEquivalencias()
+ CargaGvEquivalencias()
+ RecargaGlobalEquivalencias()
+ Else
+ Alert("ocurrió un error al eliminar la equivalencia.", TipoMensaje.MsgError)
+ End If
+
+ End Sub
+
+#End Region
+
+#Region "PS ADICIONALES"
+
+ Private Sub CargaPSAdicionales()
+
+ Dim ObjProductosServicios As New ClsProductosServicios()
+ If ObjProductosServicios.GetPSAdicionales(CvePS, UsuarioActual.CveEmpresa) Then
+ DtPSAdicionales = ObjProductosServicios.DtResultados
+ Else
+ DtPSAdicionales = Nothing
+ End If
+ ObjProductosServicios.Dispose()
+
+ CargaGvPSAdicionales()
+
+ End Sub
+ Private Sub CargaGvPSAdicionales()
+ If DtPSAdicionales IsNot Nothing Then
+ GvPSAdicionales.DataSource = DtPSAdicionales
+ End If
+ GvPSAdicionales.DataBind()
+ UpPSAdicionales.Update()
+ End Sub
+ Private Sub GvPSAdicionales_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPSAdicionales.RowDataBound
+ If e.Row.RowType = DataControlRowType.DataRow Then
+
+ If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
+ e.Row.FCDropDownList("DdlPSAdicional").DataSource = GlobalDTPS(UsuarioActual.CveEmpresa) '.FiltraParametros("CvePS = " + CvePS.ToString)
+ e.Row.FCDropDownList("DdlPSAdicional").DataBind()
+ e.Row.FCDropDownList("DdlPSAdicional").SelectedValue = e.Row.DBCampo("CvePSAdicional")
+ End If
+
+ End If
+ End Sub
+ Protected Sub GvPSAdicionales_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvPSAdicionales.RowCancelingEdit
+ GvPSAdicionales.EditIndex = -1
+ CargaGvPSAdicionales()
+ End Sub
+ Private Sub GvPSAdicionales_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvPSAdicionales.RowDeleting
+ Dim TieneError = False
+
+ Dim CvePSAdicional = GvPSAdicionales.Rows(e.RowIndex).DataKey("CvePSAdicional").ToEntero
+
+ Dim ObjProductosServicios As New ClsProductosServicios()
+ If Not ObjProductosServicios.RemovePSAdicionales(CvePS, CvePSAdicional) Then
+ TieneError = True
+ End If
+ ObjProductosServicios.Dispose()
+
+ If Not TieneError Then
+ Alert("El Producto/Servicio Adicionala se eliminó correctamente.", TipoMensaje.MsgInformacion)
+ CargaPSAdicionales()
+ CargaGvPSAdicionales()
+ 'RecargaGlobalEquivalencias()
+ RecargaGlobal()
+ Else
+ Alert("ocurrió un error al eliminar el Producto/Servicio Adicional.", TipoMensaje.MsgError)
+ End If
+
+ End Sub
+
+ Private Sub BtnAgregarPSAdicionalesModal_Click(sender As Object, e As EventArgs) Handles BtnAgregarPSAdicionalesModal.Click
+ BtnAgregarPSAdicional.Text = "Agregar"
+ CvePSAdicional = -1
+
+ DdlPSAdicional.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa)
+ DdlPSAdicional.DataBind()
+ DdlPSAdicional.Items.Add(New ListItem("Seleccione", "-1"))
+ UpAddPSAdicional.Update()
+
+ DdlPSAdicional.SelectedValue = "-1"
+ TxtCantidadPSAdicional.Text = ""
+ UpCantidad.Visible = False
+ RBLCantidad.SelectedValue = "1"
+ RegistraScript("$('#divAddPSAdicional').modal();")
+ End Sub
+ Private Sub BtnAgregarPSAdicional_Click(sender As Object, e As EventArgs) Handles BtnAgregarPSAdicional.Click
+ Dim ObjProductosServicios As New ClsProductosServicios()
+ ObjProductosServicios.IniciaTransacSQL()
+ Dim TieneError = False
+
+ If CvePSAdicional < 0 Then
+ If Not ObjProductosServicios.AddPSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0)) Then
+ TieneError = True
+ End If
+ Else
+
+ If Not ObjProductosServicios.UpdatePSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, CvePSAdicional, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0)) Then
+ TieneError = True
+ End If
+
+ End If
+
+ If TieneError Then
+ Alert("Ocurrio un error al agregar/actualizar el Producto/Servicio Adicional.", TipoMensaje.MsgError)
+ ObjProductosServicios.RollBack()
+ Else
+ ObjProductosServicios.Commit()
+ RegistraScript("$('#divAddPSAdicional').modal('hide');")
+ CvePSAdicional = -1
+ CargaPSAdicionales()
+ CargaGvPSAdicionales()
+ RecargaGlobal()
+ End If
+ ObjProductosServicios.Dispose()
+ End Sub
+
+ Protected Sub Edit_Click(sender As Object, e As EventArgs)
+ Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
+ BtnAgregarPSAdicional.Text = "Guardar"
+ TxtCantidadPSAdicional.Text = GvRow.DataKey("Cantidad")
+
+ If TxtCantidadPSAdicional.Text.ToEntero = 0 Then
+ UpCantidad.Visible = False
+ RBLCantidad.SelectedValue = "1"
+ Else
+ UpCantidad.Visible = True
+ RBLCantidad.SelectedValue = "2"
+ End If
+ UpAddPSAdicional.Update()
+
+ DdlPSAdicional.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa)
+ DdlPSAdicional.DataBind()
+ DdlPSAdicional.Items.Add(New ListItem("Seleccione", "-1"))
+ UpAddPSAdicional.Update()
+
+ CvePSAdicional = GvRow.DataKey("CvePSAdicional").ToEntero
+ DdlPSAdicional.SelectedValue = GvRow.DataKey("CvePSAdicional")
+
+ RegistraScript("$('#divAddPSAdicional').modal();")
+ End Sub
+
+ Protected Sub RBLCantidad_SelectedIndexChanged1(sender As Object, e As EventArgs)
+ If RBLCantidad.SelectedValue.ToEntero = 2 Then
+ UpCantidad.Visible = True
+ Else
+ UpCantidad.Visible = False
+ End If
+ UpAddPSAdicional.Update()
+ End Sub
+#End Region
+
+#Region " CARGA MARCA Y COMPUESTOS "
+
+ Protected Sub CargarMarcas()
+ If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then
+ If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) And CvePS = -1 Then
+ DivMarcaPSDes.Visible = True
+ Else
+ DivMarca.Visible = True
+ End If
+ Dim ObjMarcas As New ClsProductosServicios
+ ObjMarcas.GetMarcas(UsuarioActual.CveEmpresa)
+ DdlMarca.DataSource = ObjMarcas.DtResultados
+ DdlMarcaPSDes.DataSource = ObjMarcas.DtResultados
+ ObjMarcas.Dispose()
+ DdlMarca.DataBind()
+ DdlMarcaPSDes.DataBind()
+ End If
+ DdlMarca.Items.Insert(0, New ListItem(" - ", "-1"))
+ DdlMarcaPSDes.Items.Insert(0, New ListItem(" - ", "-1"))
+ End Sub
+
+ Protected Sub CargarCompuestos()
+ If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then
+ DivCompuesto.Visible = True
+ Dim PS As New ClsProductosServicios
+ PS.GetCompuestosActivos(UsuarioActual.CveEmpresa)
+ DdlCompuesto.DataSource = PS.DtResultados
+ PS.Dispose()
+ DdlCompuesto.DataBind()
+ End If
+ End Sub
+
+
+#End Region
+
+#Region "IMPUESTOS LOCALES"
+ Public Sub CargaImpuestosLocales()
+ Dim ObjPS As New ClsProductosServicios
+ If ObjPS.GetPSImpuestosLocales(CvePS, UsuarioActual.CveEmpresa) Then
+ GvImpuestosLocales.DataSource = ObjPS.DtResultados
+ End If
+ ObjPS.Dispose()
+ GvImpuestosLocales.DataBind()
+ End Sub
+
+#End Region
+
+#Region " IEPS "
+ Private Sub ChkAplicaIeps_CheckedChanged(sender As Object, e As EventArgs) Handles ChkAplicaIeps.CheckedChanged
+ If ChkAplicaIeps.Checked Then
+ DdlIEPSPorcentaje.Enabled = True
+ ChkIepsIVA.Enabled = True
+ Else
+ DdlIEPSPorcentaje.SelectedIndex = 0
+ DdlIEPSPorcentaje.Enabled = False
+ ChkIepsIVA.Enabled = False
+ ChkIepsIVA.Checked = False
+ End If
+ UpDatos.Update()
+ End Sub
+#End Region
+
+#Region "UNIFICAR PRODUCTOS"
+ Private Sub LnkUnificar_Click(sender As Object, e As EventArgs) Handles LnkUnificar.Click
+ CargaPSUnificar()
+ RegistraScript("$('#DivUnificar').modal();LimpiaModalUnificar()")
+ End Sub
+ Public Sub CargaPSUnificar()
+ DdlPsUnificar.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
+ DdlPsUnificar.DataBind()
+ 'DdlPsUnificar.setEsWebService(True)
+ 'DdlPsUnificar.ddlWS.Attributes.Add("data-clear", "1")
+
+ UpBodyUnificar.Update()
+ End Sub
+ Private Sub BtnUnificar_Click(sender As Object, e As EventArgs) Handles BtnUnificar.Click
+ If DdlPsUnificar.SelectedValue.ToEntero() > 0 Then
+ If DdlPsUnificar.SelectedValue.ToEntero() = CvePS Then
+ Alert("No se puede seleccionar el mismo producto y/o servicio", TipoMensaje.MsgAdvertencia)
+ Else
+ Dim ObjPS As New ClsProductosServicios
+ If ObjPS.UnificarPS(CvePS, DdlPsUnificar.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ Alert("Los productos y/o servicios han sido unificados", TipoMensaje.MsgInformacion)
+ Else
+ Alert("Los productos y/o servicios no han podido ser unificados", TipoMensaje.MsgError)
+ End If
+ ObjPS.Dispose()
+ RecargaGlobal()
+ RegistraScript("$('#DivUnificar').modal('hide');")
+ UpDatos.Update()
+ End If
+ Else
+ Alert("Es necesario seleccionar un producto y/o servicio", TipoMensaje.MsgAdvertencia)
+ End If
+
+
+ End Sub
+#End Region
+
+#Region "BITACORA"
+
+ Private Sub CargaGvBitacora()
+ Dim ObjGral As New ClsGenerales()
+ If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, CvePS, -1, -1, UsuarioActual.CveEmpresa) Then
+ GvBitacora.DataSource = ObjGral.DtResultados
+ GvBitacora.DataBind()
+ End If
+ ObjGral.Dispose()
+ UpDatos.Update()
+ End Sub
+
+ Private Sub BtnRemove_Click(sender As Object, e As EventArgs) Handles BtnRemove.Click
+ If Not TxtDescripcion.Text = "" Then
+ Dim ObjProductosServcios As New ClsProductosServicios()
+ Dim ObjGral As New ClsGenerales(ObjProductosServcios.IniciaTransacSQL())
+
+
+ If ObjProductosServcios.RemovePS(CvePS) Then
+ Borrar = True
+ Else
+ Borrar = False
+ End If
+
+ If Borrar = True Then
+ If ObjGral.AddHistorialBitacora(Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, "", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, TxtDescripcion.Text, "PS", TxtCodigo.Text + " / " + TxtPS.Text) Then
+ ObjProductosServcios.Commit()
+ RecargaGlobal()
+ Alert("El Producto o Servicio se eliminó correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Ventas/CatPS.aspx"";")
+ Else
+ ObjProductosServcios.RollBack()
+ Alert("Ocurrió un Error al actualizar el historial de eliminación.", TipoMensaje.MsgError)
+ End If
+ Else
+ ObjProductosServcios.RollBack()
+ Alert("Ocurrió un Error al eliminar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError)
+ End If
+ ObjProductosServcios.Dispose()
+ ObjGral.Dispose()
+ Else
+ Alert("Tiene que decir el motivo de su eliminacion.", TipoMensaje.MsgInformacion)
+ End If
+ End Sub
+
+#End Region
+
+#Region "Codigo Barras"
+
+ 'Codigo barras/QR se retorna como una imagen bmp
+ Private Function GeneraCodigoQR(CodigoBarras As String, Alto As Integer, Largo As Integer, Margen As Integer, Formato As String) As Byte()
+
+ Dim barcodeWriter As New BarcodeWriter
+ Dim opciones As New ZXing.Common.EncodingOptions
+ Dim FormatoBar As New BarcodeFormat
+ 'Dim Respuesta As Byte()
+
+ opciones.Height = Alto
+ opciones.Width = Largo
+ opciones.Margin = Margen
+
+ barcodeWriter.Options = opciones
+
+ Select Case Formato
+ Case "All_1D"
+ barcodeWriter.Format = BarcodeFormat.All_1D
+ Exit Select
+ Case "AZTEC"
+ barcodeWriter.Format = BarcodeFormat.AZTEC
+ Exit Select
+ Case "CODABAR"
+ barcodeWriter.Format = BarcodeFormat.CODABAR
+ Exit Select
+ Case "CODE_128"
+ barcodeWriter.Format = BarcodeFormat.CODE_128
+ Exit Select
+ Case "CODE_39"
+ barcodeWriter.Format = BarcodeFormat.CODE_39
+ Exit Select
+ Case "CODE_93"
+ barcodeWriter.Format = BarcodeFormat.CODE_93
+ Exit Select
+ Case "DATA_MATRIX"
+ barcodeWriter.Format = BarcodeFormat.DATA_MATRIX
+ Exit Select
+ Case "EAN_13"
+ barcodeWriter.Format = BarcodeFormat.EAN_13
+ Exit Select
+ Case "EAN_8"
+ barcodeWriter.Format = BarcodeFormat.EAN_8
+ Exit Select
+ Case "IMB"
+ barcodeWriter.Format = BarcodeFormat.IMB
+ Exit Select
+ Case "ITF"
+ barcodeWriter.Format = BarcodeFormat.ITF
+ Exit Select
+ Case "MAXICODE"
+ barcodeWriter.Format = BarcodeFormat.MAXICODE
+ Exit Select
+ Case "MSI"
+ barcodeWriter.Format = BarcodeFormat.MSI
+ Exit Select
+ Case "PDF_417"
+ barcodeWriter.Format = BarcodeFormat.PDF_417
+ Exit Select
+ Case "PLESSEY"
+ barcodeWriter.Format = BarcodeFormat.PLESSEY
+ Exit Select
+ Case "QR_CODE"
+ barcodeWriter.Format = BarcodeFormat.QR_CODE
+ Exit Select
+ Case "RSS_14"
+ barcodeWriter.Format = BarcodeFormat.RSS_14
+ Exit Select
+ Case "RSS_EXPANDED"
+ barcodeWriter.Format = BarcodeFormat.RSS_EXPANDED
+ Exit Select
+ Case "UPC_A"
+ barcodeWriter.Format = BarcodeFormat.UPC_A
+ Exit Select
+ Case "UPC_E"
+ barcodeWriter.Format = BarcodeFormat.UPC_E
+ Exit Select
+ Case "UPC_EAN_EXTENSION"
+ barcodeWriter.Format = BarcodeFormat.UPC_EAN_EXTENSION
+ Exit Select
+
+ End Select
+
+ Dim imgCod As Drawing.Bitmap = barcodeWriter.Write(CodigoBarras)
+ Dim memoriStream As New System.IO.MemoryStream
+ imgCod.Save(memoriStream, Drawing.Imaging.ImageFormat.Bmp)
+
+ 'Respuesta = Convert.ToBase64String(memoriStream.ToArray())
+
+ Return memoriStream.ToArray()
+
+ End Function
+
+ Private Sub LnkModalCodigoBarrasQr_Click(sender As Object, e As EventArgs) Handles LnkModalCodigoBarrasQr.Click
+
+ LnkDescargaImagen.Enabled = False
+ LnkDescargaImpresion.Enabled = False
+ UpModalBotonesCodigos.Update()
+
+ TxtCodigoBarrasModal.Text = TxtCodigoBarras.Text.Trim
+ UpModalUploadCodigoBarras.Update()
+ RegistraScript("$('#ModalCodigoBarrasQR').modal({ backdrop: 'static', keyboard: false});")
+
+ End Sub
+
+
+ Private Sub LnkModalGenerarCodigoBarrasQR_Click(sender As Object, e As EventArgs) Handles LnkModalGenerarCodigoBarrasQR.Click
+
+ Dim Alto As Integer = 150
+ Dim Ancho As Integer = 150
+ Dim Base64Code As String
+
+ If TxtAlto.Text.ToEntero > 0 Then Alto = TxtAlto.Text.ToEntero
+ If TxtAncho.Text.ToEntero > 0 Then Ancho = TxtAncho.Text.ToEntero
+
+ Try
+ Base64Code = Convert.ToBase64String(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue))
+ ImgModalCodigo.Attributes.Add("src", $"data:image/gif;base64,{Base64Code}")
+ ImgModalCodigo.Width = Ancho
+ ImgModalCodigo.Height = Alto
+ LnkDescargaImagen.Enabled = True
+ LnkDescargaImpresion.Enabled = True
+ UpModalBotonesCodigos.Update()
+ Catch ex As Exception
+ ImgModalCodigo.Attributes.Add("src", "")
+ ImgModalCodigo.Width = Ancho
+ ImgModalCodigo.Height = Alto
+ LnkDescargaImagen.Enabled = False
+ LnkDescargaImpresion.Enabled = False
+ UpModalBotonesCodigos.Update()
+ End Try
+
+ UpModalUploadCodigoBarras.Update()
+
+ End Sub
+
+ Private Sub LnkDescargaImagen_Click(sender As Object, e As EventArgs) Handles LnkDescargaImagen.Click
+
+ Dim Alto As Integer = 150
+ Dim Ancho As Integer = 150
+
+
+ If TxtAlto.Text.ToEntero > 0 Then Alto = TxtAlto.Text.ToEntero
+ If TxtAncho.Text.ToEntero > 0 Then Ancho = TxtAncho.Text.ToEntero
+
+ Try
+ Dim memoryStream As New System.IO.MemoryStream(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue))
+ Response.Clear()
+ Response.ContentType = "application/bmp"
+ Response.AddHeader("content-disposition", $"attachment;filename=code_{TxtCodigoBarrasModal.Text.Trim}.bmp")
+ Response.Buffer = True
+ memoryStream.WriteTo(Response.OutputStream)
+ Response.End()
+
+ Catch ex As Exception
+
+ End Try
+ End Sub
+
+ Private Sub DDLCodigoFormato_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DDLCodigoFormato.SelectedIndexChanged
+ LnkDescargaImagen.Enabled = False
+ LnkDescargaImpresion.Enabled = False
+ UpModalBotonesCodigos.Update()
+ End Sub
+ Private Sub LnkDescargaImpresion_Click(sender As Object, e As EventArgs) Handles LnkDescargaImpresion.Click
+ Dim Alto As Integer = 150
+ Dim Ancho As Integer = 150
+
+
+ If TxtAlto.Text.ToEntero > 0 Then Alto = TxtAlto.Text.ToEntero
+ If TxtAncho.Text.ToEntero > 0 Then Ancho = TxtAncho.Text.ToEntero
+
+ Try
+
+
+ Dim Doc As New iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 10.0F, 10.0F, 100.0F, 0F)
+ Dim para As New iTextSharp.text.Paragraph
+ Dim memoryStreamDoc As New System.IO.MemoryStream
+
+ Dim gemBox As New clsGemBoxDocument()
+
+ gemBox.AgregarImagen(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue))
+ gemBox.GuardarStreamPDF()
+
+
+
+ Dim memoryStream As New System.IO.MemoryStream(gemBox.GetBytesDocumento())
+ gemBox.Dispose()
+ Response.Clear()
+ Response.ContentType = "application/pdf"
+ Response.AddHeader("content-disposition", $"attachment;filename=code_{TxtCodigoBarrasModal.Text.Trim}.pdf")
+ Response.Buffer = True
+ memoryStream.WriteTo(Response.OutputStream)
+ Response.End()
+
+ Catch ex As Exception
+
+ End Try
+ End Sub
+
+
+
+#End Region
+
+#Region "SELECTED INDEX CHANGE"
+ Public Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClasificacion.SelectedIndexChanged
+ If DdlClasificacion.SelectedValue.ToEntero > 0 Then
+ If Not CveSATPS > 0 Or CveSATPS = 46920 Then
+ Dim Dr = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0)
+
+ DdlSATPS.SelectedValue = Dr("CveSATPS").ToString
+ DdlSATPS.SelectedText = Dr("SATClaveProductoServicio").ToString
+
+
+
+ If UsuarioActual.CveEmpresa.Contiene(72, 80) Then
+ VerificaRequiereSerieLote()
+ End If
+ End If
+ ' CargaClasificacionesDetalles()
+ End If
+
+ Try
+ Dim Dr = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0)
+ If Boolean.Parse(Dr("EsAcumulador").ToString) Then
+ MostarOcultarDivTamanio(True)
+ Else
+ MostarOcultarDivTamanio(False)
+ End If
+ 'SI ES MOTOBATERIA
If DdlClasificacion.SelectedValue = "20517" Then
MostarOcultarDivTamanio(True)
- End If
- Catch ex As Exception
-
- End Try
- End Sub
-
- Sub MostarOcultarDivTamanio(Mostrar As Boolean)
-
-
- If Mostrar And UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
- DvTamanio.Visible = True
- Else
- DvTamanio.Visible = False
- DdlTamanio.SelectedValueExist("-1")
- End If
-
-
- UpDatos.Update()
-
- End Sub
-
-
- Private Sub DdlTipoFactor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoFactor.SelectedIndexChanged
- If DdlTipoFactor.SelectedValue.Contiene("1", "2") Then 'tasa
- DdlIVA.Visible = True
- LIva.Visible = True
- Else
- DdlIVA.SelectedValue = "0"
- DdlIVA.Visible = False
- LIva.Visible = False
- End If
- End Sub
- Protected Sub DdlUsoClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs)
- CargaClasificaciones()
- End Sub
-#End Region
-
-#Region "FRACCION ARANCELARIA"
-
- Protected Sub DdlFraccionArancelaria_selectedindexchange(sender As Object, e As EventArgs)
- If DdlFraccionArancelaria.SelectedValue.ToEntero > 0 Then
- LblUnidadAduana.Text = GlobalDTFraccionArancelaria().FiltraParametros($"CveFraccionArancelaria = {DdlFraccionArancelaria.SelectedValue}")(0)("ClaveSATUnidadAduanaDescripcion").ToString
- End If
- End Sub
-
-#End Region
-
-#Region " ECOMMERCE "
- Private Sub InicializaEcommerce()
- AplicaEcommerce = False
-
- If UsuarioActual.Empresa.Funcionalidad(700).ToEntero = 1 And CvePS > 0 Then
-
- TabEcommerce.Visible = True
- LBBitacoraEcommerce.Visible = True
-
- 'INICIALIZA PRODUCTOS ECOMMERCE
- Dim ObjEcommerce As New ClsECommerce
- If ObjEcommerce.InsigniasGet(-1, "", UsuarioActual.CveEmpresa) Then
- DdlEcommerceInsignia.DataSource = ObjEcommerce.DtResultados
- End If
- ObjEcommerce.Dispose()
- DdlEcommerceInsignia.DataBind()
- CargaEcommerce()
-
- 'INICIALIZA PRODUCTOS INSIGNIAS
- CargaPSInsigniasEcommerce()
-
- 'INICIALIZA PRODUCTOS IMAGENES
- CargarGaleriaImagenesEcommerce()
-
- 'INICIALIZA PRODUCTOS RELACIONADOS
- DdlEcommercePSRelacionado.setEsWebService(True)
- CargaPSRelacionadosEcommerce()
-
- UpEcommerce.Update()
-
- End If
- End Sub
-
-#Region " PRODUCTOS ECOMMERCE "
- Private Sub CargaEcommerce()
- Dim DrEcommerce As DataRow = Nothing
- Dim ObjEcommerce As New ClsECommerce
- If ObjEcommerce.ProductosGet(CvePS, -1, -1, -1, UsuarioActual.CveEmpresa) Then
- DrEcommerce = ObjEcommerce.DtResultados.FiltroPrimero("")
- End If
- ObjEcommerce.Dispose()
-
- If DrEcommerce IsNot Nothing Then
- AplicaEcommerce = True
-
- TxtEcommerceDescripcion.Text = DrEcommerce("Descripcion").ToString
- TxtEcommercePrecioBase.Text = DrEcommerce("PrecioBase").ToString.FormatoNumero
- TxtEcommercePrecioPromocion.Text = DrEcommerce("PrecioPromocion").ToString.FormatoNumero
- ChkEcommerceDisponible.Checked = CBool(DrEcommerce("Disponible").ToString)
- End If
- GvEcommercePSRealacionados.DataBind()
- UpEcommercePSRelacionados.Update()
- End Sub
- Private Function GuardaEcommerce() As Boolean
- Dim TieneError = False
-
- If UsuarioActual.Empresa.Funcionalidad(700) = "1" Then
-
- 'SI NO SE HA GUARDADO EN ECOMMERCE Y NO TIENE NINGUN VALOR OMITE
- If Not AplicaEcommerce And Not ChkEcommerceDisponible.Checked And TxtEcommerceDescripcion.Text.Length = 0 And TxtEcommercePrecioBase.Text.Length = 0 And TxtEcommercePrecioPromocion.Text.Length = 0 Then
- Return False
- End If
-
- If ChkEcommerceDisponible.Checked Then
- If Not ValidaGuardarEcommerce() Then
- Return True
- End If
- End If
-
- Dim Descripcion = TxtEcommerceDescripcion.Text.Trim
- Dim PrecioBase = TxtEcommercePrecioBase.Text.Trim.ToDouble
- Dim PrecioPromocion = TxtEcommercePrecioPromocion.Text.Trim.ToDouble
- Dim Disponible = ChkEcommerceDisponible.Checked
-
- Dim ObjEcommerce As New ClsECommerce
- If Not ObjEcommerce.ProductosAddUpdate(CvePS, Descripcion, PrecioBase, PrecioPromocion, Disponible, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
- TieneError = True
- End If
- ObjEcommerce.Dispose()
-
- End If
-
- Return TieneError
- End Function
- Private Function ValidaGuardarEcommerce() As Boolean
- Dim Retorno = True
- Dim Mensaje As New StringBuilder
-
- 'DESCRIPCION
- Dim Descripcion = TxtEcommerceDescripcion.Text.Trim
- If Descripcion.Length = 0 Then
- Mensaje.Append("- El campo Descripción es obligatorio. Por favor introduzcalo y vuelva a intentar.
")
- End If
- If Descripcion.Length > 255 Then
- Mensaje.Append("- El campo Descripción admite maximo 255 caracteres. Por favor verifique y vuelva a intentar.
")
- End If
-
- 'PRECIO BASE
- Dim PrecioBase = TxtEcommercePrecioBase.Text.Trim.ToDouble
- If PrecioBase = 0 Then
- Mensaje.Append("- El campo Precio es obligatorio. Por favor verifique y vuelva a intentar.
")
- End If
- If PrecioBase < 0 Then
- Mensaje.Append("- El campo Precio no puede ser negativo. Por favor verifique y vuelva a intentar.
")
- End If
-
- 'PRECIO FINAL
- Dim PrecioPromocion = TxtEcommercePrecioPromocion.Text.Trim.ToDouble
- If PrecioPromocion < 0 Then
- Mensaje.Append("- El campo Precio Final no puede ser negativo. Por favor verifique y vuelva a intentar.
")
- End If
-
-
- 'VALIDACION
- If Mensaje.ToString.Length > 0 Then
- Retorno = False
- Alert($"Si el producto aplica para Ecommerce es necesarios los siguientes campos:
{Mensaje.ToString}", TipoMensaje.MsgAdvertencia)
- End If
-
- Return Retorno
- End Function
-#End Region
-
-#Region " PRODUCTOS INSIGNIAS "
-
- Private Sub CargaPSInsigniasEcommerce()
- Dim ObjEcommerce As New ClsECommerce
- If ObjEcommerce.ProductosInsigniasGet(CvePS, -1, UsuarioActual.CveEmpresa) Then
- GvEcommercePSInsignias.DataSource = ObjEcommerce.DtResultados
- Else
- GvEcommercePSInsignias.DataSource = Nothing
- End If
- ObjEcommerce.Dispose()
-
- GvEcommercePSInsignias.DataBind()
- UpEcommerceInsignias.Update()
- End Sub
- Protected Sub BtnEcommerceInsignias_Click(sender As Object, e As EventArgs)
- If Not ValidaAgregarProductosInsigniasEcommerce() Then
- Exit Sub
- End If
-
- Dim TieneError = False
- Dim CveInsignia = DdlEcommerceInsignia.SelectedValue.ToEntero
-
- 'AGREGAR
- Dim ObjEcommerce As New ClsECommerce
- If ObjEcommerce.ProductosInsigniasAdd(Me.CvePS, CveInsignia, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
- Alert("La Insignia se agregó correctamente.", TipoMensaje.MsgInformacion)
- Else
- TieneError = True
- End If
- ObjEcommerce.Dispose()
-
- If Not TieneError Then
- DdlEcommerceInsignia.SelectedValueExist(-1)
- CargaPSInsigniasEcommerce()
- End If
- End Sub
- Private Function ValidaAgregarProductosInsigniasEcommerce() As Boolean
- Dim Retorno = True
- Dim Mensaje As New StringBuilder
-
- 'INSIGNIA
- Dim CveInsignia = DdlEcommerceInsignia.SelectedValue.ToEntero
- If CveInsignia = 0 Then
- Mensaje.Append("- El campo Insignia es obligatorio. Por favor introduzcalo y vuelva a intentar.
")
- End If
- For Each GvRow As GridViewRow In GvEcommercePSInsignias.Rows
- If GvRow.DataKey("CveInsignia").ToString.ToEntero = CveInsignia Then
- Mensaje.Append($"- La Insignia {DdlEcommerceInsignia.SelectedItem.Text} ya es parte del producto y no se puede duplicar. Por favor verifique y vuelva a intentar.
")
- Exit For
- End If
- Next
-
- 'VALIDACION
- If Mensaje.ToString.Length > 0 Then
- Retorno = False
- Alert(Mensaje.ToString, TipoMensaje.MsgAdvertencia)
- End If
-
- Return Retorno
- End Function
- Protected Sub GvEcommercePSInsignias_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEcommercePSInsignias.RowDeleting
- Dim TieneError = False
- Dim GvRow = GvEcommercePSInsignias.Rows(e.RowIndex)
-
- Dim ObjEcommerce As New ClsECommerce
- If ObjEcommerce.ProductosInsigniasRemove(GvRow.DataKey("CvePS").ToString.ToEntero, GvRow.DataKey("CveInsignia").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
- Alert("La Insignia se eliminó correctamente.", TipoMensaje.MsgInformacion)
- Else
- TieneError = True
- End If
- ObjEcommerce.Dispose()
-
- If Not TieneError Then
- CargaPSInsigniasEcommerce()
- End If
- End Sub
-#End Region
-
-#Region " PRODUCTOS IMAGENES "
- Private Sub CargarGaleriaImagenesEcommerce()
- Dim TmpDT As DataTable = Nothing
-
- Dim ObjEcommerce As New ClsECommerce
- If ObjEcommerce.ProductosImagenesGet(CvePS, UsuarioActual.CveEmpresa) Then
- TmpDT = ObjEcommerce.DtResultados
- Else
- TmpDT = Nothing
- End If
- ObjEcommerce.Dispose()
-
- RptFotos.DataSource = TmpDT
- RptFotos.DataBind()
- UpEcommerceGaleriaImagenes.Update()
- End Sub
- Protected Sub BtnEcommerceImagenes_Click(sender As Object, e As EventArgs)
-
- Dim FilesGral As List(Of Archivo) = TxtEcommerceImagenes.getfiles().Archivos
- Dim FileMove = ""
- Dim Archivo = ""
- Dim DirectorioTemporal = ""
-
- Dim DirectorioDestino = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\Ecommerce\Productos\Imagenes\"
- If Not Directory.Exists(DirectorioDestino) Then
- Directory.CreateDirectory(DirectorioDestino)
- End If
-
- Dim ObjEcommerce As New ClsECommerce
- For Each FileItem As Archivo In FilesGral
- Archivo = DateTime.Now.Ticks.ToString
- Try
- FileMove = FileItem.filename
- DirectorioTemporal = $"{AppDomain.CurrentDomain.BaseDirectory}Temp\{FileMove}"
-
- Archivo = $"{Archivo}{IO.Path.GetExtension(DirectorioTemporal)}"
- DirectorioDestino += Archivo
- If ObjEcommerce.ProductosImagenesAdd(CvePS, $"Ecommerce\Productos\Imagenes\{Archivo}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
- CargarGaleriaImagenesEcommerce()
- My.Computer.FileSystem.MoveFile(DirectorioTemporal, DirectorioDestino)
- End If
- Catch ex As Exception
- End Try
- Next
- ObjEcommerce.Dispose()
-
- RegistraScript("$(""#Modalupfotos"").modal(""hide"");initcarusel();")
- TxtEcommerceImagenes.Text = "[]"
- UpUpFotos.Update()
-
- End Sub
- Protected Sub BtnEcommerceEliminarImagenes_Click(sender As Object, e As System.EventArgs)
- Dim CveImagenActivoFijo As Integer = 0
- CveImagenActivoFijo = Integer.Parse(DirectCast(sender, Button).CommandArgument)
-
- If (CveImagenActivoFijo > 0) Then
- Dim ObjEcommerce As New ClsECommerce
- If ObjEcommerce.ProductosImagenesRemove(CveImagenActivoFijo, UsuarioActual.CveEmpresa) Then
- File.Delete(String.Format("{0}Empresas\{1}\{2}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, ObjEcommerce.DtResultados.Rows(0)("URL")))
- CargarGaleriaImagenesEcommerce()
- RegistraScript("initcarusel();")
- End If
- ObjEcommerce.Dispose()
- End If
-
- End Sub
-#End Region
-
-#Region " PRODUCTOS RELACIONADOS "
- Private Sub CargaPSRelacionadosEcommerce()
- Dim ObjEcommerce As New ClsECommerce
- If ObjEcommerce.ProductosRelacionadosGet(CvePS, UsuarioActual.CveEmpresa) Then
- GvEcommercePSRealacionados.DataSource = ObjEcommerce.DtResultados
- Else
- GvEcommercePSRealacionados.DataSource = Nothing
- End If
- ObjEcommerce.Dispose()
-
- GvEcommercePSRealacionados.DataBind()
- UpEcommercePSRelacionados.Update()
- End Sub
- Protected Sub BtnEcommercePSRelacionados_Click(sender As Object, e As EventArgs)
- If Not ValidaAgregarProductosRelacionadosEcommerce() Then
- Exit Sub
- End If
-
- Dim TieneError = False
- Dim CvePS = DdlEcommercePSRelacionado.SelectedValue.ToEntero
-
- 'AGREGAR
- Dim ObjEcommerce As New ClsECommerce
- If ObjEcommerce.ProductosRelacionadosAdd(Me.CvePS, CvePS, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
- Alert("La relación se agregó correctamente.", TipoMensaje.MsgInformacion)
- Else
- TieneError = True
- End If
- ObjEcommerce.Dispose()
-
- If Not TieneError Then
- DdlEcommercePSRelacionado.SelectedValue = "-1"
- DdlEcommercePSRelacionado.SelectedText = ""
- CargaPSRelacionadosEcommerce()
- End If
- End Sub
- Private Function ValidaAgregarProductosRelacionadosEcommerce() As Boolean
- Dim Retorno = True
- Dim Mensaje As New StringBuilder
-
- 'PS
- Dim CvePS = DdlEcommercePSRelacionado.SelectedValue.ToEntero
- If CvePS = 0 Then
- Mensaje.Append("- El campo Producto es obligatorio. Por favor introduzcalo y vuelva a intentar.
")
- End If
- For Each GvRow As GridViewRow In GvEcommercePSRealacionados.Rows
- If GvRow.DataKey("CvePS").ToString.ToEntero = CvePS Then
- Mensaje.Append($"- El producto {DdlEcommercePSRelacionado.SelectedText} ya esta relacionado y no se puede duplicar. Por favor verifique y vuelva a intentar.
")
- Exit For
- End If
- Next
-
- 'VALIDACION
- If Mensaje.ToString.Length > 0 Then
- Retorno = False
- Alert(Mensaje.ToString, TipoMensaje.MsgAdvertencia)
- End If
-
- Return Retorno
- End Function
- Protected Sub GvEcommercePSRealacionados_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEcommercePSRealacionados.RowDeleting
- Dim TieneError = False
- Dim GvRow = GvEcommercePSRealacionados.Rows(e.RowIndex)
-
- Dim ObjEcommerce As New ClsECommerce
- If ObjEcommerce.ProductosRelacionadosRemove(GvRow.DataKey("CvePS1").ToString.ToEntero, GvRow.DataKey("CvePS2").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
- Alert("La relación se eliminó correctamente.", TipoMensaje.MsgInformacion)
- Else
- TieneError = True
- End If
- ObjEcommerce.Dispose()
-
- If Not TieneError Then
- CargaPSRelacionadosEcommerce()
- End If
- End Sub
-
-#End Region
-
-#Region " BITACORA "
- Protected Sub LBBitacoraEcommerce_Click(sender As Object, e As EventArgs)
- CargaBitacoraEcommerce()
- End Sub
- Private Sub CargaBitacoraEcommerce()
- Dim ObjEcommerce As New ClsECommerce
- If ObjEcommerce.ProductosGetBitacora(CvePS, UsuarioActual.CveEmpresa) Then
- GvBitacoraEcommerce.DataSource = ObjEcommerce.DtResultados
- End If
- ObjEcommerce.Dispose()
-
- GvBitacoraEcommerce.DataBind()
- UpBitacoraEcommerce.Update()
- RegistraScript("$('#ModalBitacoraEcommerce').modal('show');")
- End Sub
- Protected Sub GvBitacora_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvBitacora.RowDataBound
- If e.Row.RowType = DataControlRowType.DataRow Then
-
- End If
- End Sub
-#End Region
-
-#End Region
-
-#Region "CLASIFICACIONES DETALLES"
-
- Protected Sub BtnAddClasificacionDetalle_Click(sender As Object, e As EventArgs)
- TxtClasificacionDetalle.Text = ""
- DdlClasificacionModal.SelectedValueExist(DdlClasificacion.SelectedValue)
- UpModal.Update()
- RegistraScript(String.Format("$('#{0}').modal('show');", "DModalClasificacion"))
- End Sub
- Protected Sub BtnAddClasificacionDetalleModal_Click(sender As Object, e As EventArgs)
- Dim ObjVentas As New ClsVentas
- If ObjVentas.AddClasificacionDetalle(TxtClasificacionDetalle.Text, DdlClasificacionModal.SelectedValue.ToEntero,
- UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
-
- If ObjVentas.GetClasificacionDetalle(-1, -1, -1, -1) Then
- GlobalDTClasificacionesDetalle = ObjVentas.DtResultados
- End If
- CargaClasificacionesDetalles()
- DdlTipoPSDes.SelectedValueExist(ObjVentas.CveClasificacionDetalle)
- UpDatos.Update()
- RegistraScript(String.Format("$('#{0}').modal('hide');", "DModalClasificacion"), "1")
- RegistraScript("CreaDescripcionPS();", "2")
-
-
- End If
-
- ObjVentas.Dispose()
- End Sub
-
-#End Region
-
-#Region "EXISTENCIAS"
-
- Protected Sub GVExistencias_RowDataBound(sender As Object, e As GridViewRowEventArgs)
- If e.Row.RowType = DataControlRowType.DataRow Then
- If e.Row.DBCampo("CveAlmacen") = "" Then
- e.Row.CssClass = "Totales"
- End If
- If UsuarioActual.CveEmpresa = 119 Then
- GVExistencias.Columns(5).Visible = True
- End If
- End If
- End Sub
-
- Private Sub CargaExistencias()
- Dim ObjInventarios As New ClsInventarios()
- If ObjInventarios.GetExistenciasProducto(CvePS, -1, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), ExcluyeApartados:=-1) Then
- If ObjInventarios.DtResultados.Rows.Count > 0 Then
- GVExistencias.DataSource = ObjInventarios.DtResultados
- Else
- GVExistencias.DataSource = Nothing
- End If
- End If
-
- ObjInventarios.Dispose()
- GVExistencias.DataBind()
- UpDatos.Update()
- End Sub
-
-#End Region
-
- Protected Sub DdlImpTipoProducto_SelectedIndexChanged(sender As Object, e As EventArgs)
-
- CargaClaveGenerica(DdlImpTipoProducto.SelectedValue)
-
- End Sub
-
- Private Sub CargaClaveGenerica(TipoProducto As String)
- DdlCategoriaToxicidad.Items.Clear()
- DdlCategoriaToxicidad.DataBind() 'para que quite el selectedvalue
-
- If TipoProducto = "019" Then
- DdlCategoriaToxicidad.Items.Add(New ListItem("Seleccione", "-1"))
- DdlCategoriaToxicidad.Items.Add(New ListItem("000 - Sin selección", "000"))
- DdlCategoriaToxicidad.Items.Add(New ListItem("001 - Categorías 1 y 2", "001"))
- DdlCategoriaToxicidad.Items.Add(New ListItem("002 - Categoría 3", "002"))
- DdlCategoriaToxicidad.Items.Add(New ListItem("003 - Categoría 4", "003"))
- DdlCategoriaToxicidad.SelectedValue = "000"
-
- ElseIf TipoProducto = "021" Then
- DdlCategoriaToxicidad.Items.Add(New ListItem("Seleccione", "-1"))
- DdlCategoriaToxicidad.Items.Add(New ListItem("000 - Sin selección", "000"))
- DdlCategoriaToxicidad.Items.Add(New ListItem("001 - Gasolina Menor a 92 octanos", "001"))
- DdlCategoriaToxicidad.Items.Add(New ListItem("002 - Gasolina Mayor o igual a 92 octanos", "002"))
- DdlCategoriaToxicidad.Items.Add(New ListItem("003 - Diesel", "003"))
- DdlCategoriaToxicidad.Items.Add(New ListItem("004 - Combustibles no fósiles", "004"))
- DdlCategoriaToxicidad.SelectedValue = "000"
- End If
- End Sub
-
-#Region "SECCION ALMACEN"
-
- Private Sub CreaDtSeccionAlmacen()
- DtSeccionAlmacen = New DataTable
- DtSeccionAlmacen.Columns.Add("CvePSAlmacenSeccion", GetType(Integer))
- DtSeccionAlmacen.Columns.Add("CveAlmacen", GetType(Integer))
- DtSeccionAlmacen.Columns.Add("Almacen", GetType(String))
- DtSeccionAlmacen.Columns.Add("CveAlmacenSeccion", GetType(Integer))
- DtSeccionAlmacen.Columns.Add("AlmacenSeccion", GetType(String))
- End Sub
- Private Sub CargaGvSeccionAlmacen()
- Dim ObjInv As New ClsInventarios
- If ObjInv.GetProductosServiciosAlmacenSeccion(CvePS, -1, -1) Then
- GvSeccionAlmacen.DataSource = ObjInv.DtResultados
- DtSeccionAlmacen = ObjInv.DtResultados
- End If
- ObjInv.Dispose()
- GvSeccionAlmacen.DataBind()
- UpSeccionAlmacen.Update()
- End Sub
-
-
- Private Sub CargaCombosSeccionAlmacen()
- DdlAlmacen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
- DdlAlmacen.Items.Add(New ListItem("Seleccione", "-1"))
- DdlAlmacen.DataBind()
-
- DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa)
- DdlSeccionAlmacen.Items.Add(New ListItem("Seleccione", "-1"))
- DdlSeccionAlmacen.DataBind()
-
- UpModalSeccionAlmacen.Update()
- End Sub
-
- Protected Sub LnkSeccionAlmacenAdd_Click(sender As Object, e As EventArgs)
- DdlAlmacen.SelectedIndex = 0
- DdlSeccionAlmacen.SelectedIndex = 0
- RegistraScript("$('#DivAddSeccionAlmacen').modal();")
- UpModalSeccionAlmacen.Update()
- End Sub
- 'Protected Sub LnkEditarSeccionAlmacen_Click(sender As Object, e As EventArgs)
- ' Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
- ' DdlAlmacen.SelectedValueExist(gvRow.DataKey("CvAlmacen"))
- ' DdlSeccionAlmacen.SelectedValueExist(gvRow.DataKey("CveAlmacenSeccion"))
- ' RegistraScript("$('#DivAddSeccionAlmacen').modal();")
- ' UpModalSeccionAlmacen.Update()
- 'End Sub
- Protected Sub LnkRemoveSeccionAlmacen_Click(sender As Object, e As EventArgs)
- Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
- If gvRow.DataKey("CvePSAlmacenSeccion").ToEntero > 0 Then
- DtSeccionAlmacen.Rows(gvRow.RowIndex)("CveAlmacen") = -1
- Else
- DtSeccionAlmacen.Rows(gvRow.RowIndex.ToEntero).Delete()
- End If
- DtSeccionAlmacen.AcceptChanges()
- GvSeccionAlmacen.DataSource = DtSeccionAlmacen
- GvSeccionAlmacen.DataBind()
- UpSeccionAlmacen.Update()
- End Sub
-
- Protected Sub BtnAddSeccionAlmacen_Click(sender As Object, e As EventArgs)
- If DtSeccionAlmacen.FiltraParametros($"CveAlmacen = {DdlAlmacen.SelectedValue}").Rows.Count > 0 Then
- Alert("No se puede especificar el mismo almacen en dos secciones", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
-
- Dim Row As DataRow = Nothing
- Row = DtSeccionAlmacen.NewRow
- Row("CvePSAlmacenSeccion") = -1
- Row("CveAlmacen") = DdlAlmacen.SelectedValue.ToEntero
- Row("Almacen") = DdlAlmacen.SelectedItem.Text
- Row("CveAlmacenSeccion") = DdlSeccionAlmacen.SelectedValue.ToEntero
- Row("AlmacenSeccion") = DdlSeccionAlmacen.SelectedItem.Text
- DtSeccionAlmacen.Rows.Add(Row)
- DtSeccionAlmacen.AcceptChanges()
- GvSeccionAlmacen.DataSource = DtSeccionAlmacen
- GvSeccionAlmacen.DataBind()
- UpSeccionAlmacen.Update()
-
- RegistraScript("$('#DivAddSeccionAlmacen').modal('hide');")
- End Sub
-
- Protected Sub GvSeccionAlmacen_RowDataBound(sender As Object, e As GridViewRowEventArgs)
- If e.Row.RowType = DataControlRowType.DataRow Then
- If Not e.Row.DBCampo("CveAlmacen").ToEntero > 0 Then
- e.Row.Visible = False
- End If
- End If
- End Sub
-
-#End Region
-
-
- Protected Sub DdlIEPSPorcentaje_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlIEPSPorcentaje.SelectedIndexChanged
- Select Case DdlIEPSPorcentaje.SelectedValue
- Case "0.09"
- DdlCategoriaToxicidad.SelectedValueExist("001")
- Case "0.07"
- DdlCategoriaToxicidad.SelectedValueExist("002")
- Case "0.06"
- DdlCategoriaToxicidad.SelectedValueExist("003")
- Case Else
- DdlCategoriaToxicidad.SelectedValueExist("000")
- End Select
- End Sub
-End Class
+ End If
+ Catch ex As Exception
+
+ End Try
+ End Sub
+
+ Sub MostarOcultarDivTamanio(Mostrar As Boolean)
+
+
+ If Mostrar And UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
+ DvTamanio.Visible = True
+ Else
+ DvTamanio.Visible = False
+ DdlTamanio.SelectedValueExist("-1")
+ End If
+
+
+ UpDatos.Update()
+
+ End Sub
+
+
+ Private Sub DdlTipoFactor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoFactor.SelectedIndexChanged
+ If DdlTipoFactor.SelectedValue.Contiene("1", "2") Then 'tasa
+ DdlIVA.Visible = True
+ LIva.Visible = True
+ Else
+ DdlIVA.SelectedValue = "0"
+ DdlIVA.Visible = False
+ LIva.Visible = False
+ End If
+ End Sub
+ Protected Sub DdlUsoClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs)
+ CargaClasificaciones()
+ End Sub
+#End Region
+
+#Region "FRACCION ARANCELARIA"
+
+ Protected Sub DdlFraccionArancelaria_selectedindexchange(sender As Object, e As EventArgs)
+ If DdlFraccionArancelaria.SelectedValue.ToEntero > 0 Then
+ LblUnidadAduana.Text = GlobalDTFraccionArancelaria().FiltraParametros($"CveFraccionArancelaria = {DdlFraccionArancelaria.SelectedValue}")(0)("ClaveSATUnidadAduanaDescripcion").ToString
+ End If
+ End Sub
+
+#End Region
+
+#Region " ECOMMERCE "
+ Private Sub InicializaEcommerce()
+ AplicaEcommerce = False
+
+ If UsuarioActual.Empresa.Funcionalidad(700).ToEntero = 1 And CvePS > 0 Then
+
+ TabEcommerce.Visible = True
+ LBBitacoraEcommerce.Visible = True
+
+ 'INICIALIZA PRODUCTOS ECOMMERCE
+ Dim ObjEcommerce As New ClsECommerce
+ If ObjEcommerce.InsigniasGet(-1, "", UsuarioActual.CveEmpresa) Then
+ DdlEcommerceInsignia.DataSource = ObjEcommerce.DtResultados
+ End If
+ ObjEcommerce.Dispose()
+ DdlEcommerceInsignia.DataBind()
+ CargaEcommerce()
+
+ 'INICIALIZA PRODUCTOS INSIGNIAS
+ CargaPSInsigniasEcommerce()
+
+ 'INICIALIZA PRODUCTOS IMAGENES
+ CargarGaleriaImagenesEcommerce()
+
+ 'INICIALIZA PRODUCTOS RELACIONADOS
+ DdlEcommercePSRelacionado.setEsWebService(True)
+ CargaPSRelacionadosEcommerce()
+
+ UpEcommerce.Update()
+
+ End If
+ End Sub
+
+#Region " PRODUCTOS ECOMMERCE "
+ Private Sub CargaEcommerce()
+ Dim DrEcommerce As DataRow = Nothing
+ Dim ObjEcommerce As New ClsECommerce
+ If ObjEcommerce.ProductosGet(CvePS, -1, -1, -1, UsuarioActual.CveEmpresa) Then
+ DrEcommerce = ObjEcommerce.DtResultados.FiltroPrimero("")
+ End If
+ ObjEcommerce.Dispose()
+
+ If DrEcommerce IsNot Nothing Then
+ AplicaEcommerce = True
+
+ TxtEcommerceDescripcion.Text = DrEcommerce("Descripcion").ToString
+ TxtEcommercePrecioBase.Text = DrEcommerce("PrecioBase").ToString.FormatoNumero
+ TxtEcommercePrecioPromocion.Text = DrEcommerce("PrecioPromocion").ToString.FormatoNumero
+ ChkEcommerceDisponible.Checked = CBool(DrEcommerce("Disponible").ToString)
+ End If
+ GvEcommercePSRealacionados.DataBind()
+ UpEcommercePSRelacionados.Update()
+ End Sub
+ Private Function GuardaEcommerce() As Boolean
+ Dim TieneError = False
+
+ If UsuarioActual.Empresa.Funcionalidad(700) = "1" Then
+
+ 'SI NO SE HA GUARDADO EN ECOMMERCE Y NO TIENE NINGUN VALOR OMITE
+ If Not AplicaEcommerce And Not ChkEcommerceDisponible.Checked And TxtEcommerceDescripcion.Text.Length = 0 And TxtEcommercePrecioBase.Text.Length = 0 And TxtEcommercePrecioPromocion.Text.Length = 0 Then
+ Return False
+ End If
+
+ If ChkEcommerceDisponible.Checked Then
+ If Not ValidaGuardarEcommerce() Then
+ Return True
+ End If
+ End If
+
+ Dim Descripcion = TxtEcommerceDescripcion.Text.Trim
+ Dim PrecioBase = TxtEcommercePrecioBase.Text.Trim.ToDouble
+ Dim PrecioPromocion = TxtEcommercePrecioPromocion.Text.Trim.ToDouble
+ Dim Disponible = ChkEcommerceDisponible.Checked
+
+ Dim ObjEcommerce As New ClsECommerce
+ If Not ObjEcommerce.ProductosAddUpdate(CvePS, Descripcion, PrecioBase, PrecioPromocion, Disponible, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ TieneError = True
+ End If
+ ObjEcommerce.Dispose()
+
+ End If
+
+ Return TieneError
+ End Function
+ Private Function ValidaGuardarEcommerce() As Boolean
+ Dim Retorno = True
+ Dim Mensaje As New StringBuilder
+
+ 'DESCRIPCION
+ Dim Descripcion = TxtEcommerceDescripcion.Text.Trim
+ If Descripcion.Length = 0 Then
+ Mensaje.Append("- El campo Descripción es obligatorio. Por favor introduzcalo y vuelva a intentar.
")
+ End If
+ If Descripcion.Length > 255 Then
+ Mensaje.Append("- El campo Descripción admite maximo 255 caracteres. Por favor verifique y vuelva a intentar.
")
+ End If
+
+ 'PRECIO BASE
+ Dim PrecioBase = TxtEcommercePrecioBase.Text.Trim.ToDouble
+ If PrecioBase = 0 Then
+ Mensaje.Append("- El campo Precio es obligatorio. Por favor verifique y vuelva a intentar.
")
+ End If
+ If PrecioBase < 0 Then
+ Mensaje.Append("- El campo Precio no puede ser negativo. Por favor verifique y vuelva a intentar.
")
+ End If
+
+ 'PRECIO FINAL
+ Dim PrecioPromocion = TxtEcommercePrecioPromocion.Text.Trim.ToDouble
+ If PrecioPromocion < 0 Then
+ Mensaje.Append("- El campo Precio Final no puede ser negativo. Por favor verifique y vuelva a intentar.
")
+ End If
+
+
+ 'VALIDACION
+ If Mensaje.ToString.Length > 0 Then
+ Retorno = False
+ Alert($"Si el producto aplica para Ecommerce es necesarios los siguientes campos:
{Mensaje.ToString}", TipoMensaje.MsgAdvertencia)
+ End If
+
+ Return Retorno
+ End Function
+#End Region
+
+#Region " PRODUCTOS INSIGNIAS "
+
+ Private Sub CargaPSInsigniasEcommerce()
+ Dim ObjEcommerce As New ClsECommerce
+ If ObjEcommerce.ProductosInsigniasGet(CvePS, -1, UsuarioActual.CveEmpresa) Then
+ GvEcommercePSInsignias.DataSource = ObjEcommerce.DtResultados
+ Else
+ GvEcommercePSInsignias.DataSource = Nothing
+ End If
+ ObjEcommerce.Dispose()
+
+ GvEcommercePSInsignias.DataBind()
+ UpEcommerceInsignias.Update()
+ End Sub
+ Protected Sub BtnEcommerceInsignias_Click(sender As Object, e As EventArgs)
+ If Not ValidaAgregarProductosInsigniasEcommerce() Then
+ Exit Sub
+ End If
+
+ Dim TieneError = False
+ Dim CveInsignia = DdlEcommerceInsignia.SelectedValue.ToEntero
+
+ 'AGREGAR
+ Dim ObjEcommerce As New ClsECommerce
+ If ObjEcommerce.ProductosInsigniasAdd(Me.CvePS, CveInsignia, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ Alert("La Insignia se agregó correctamente.", TipoMensaje.MsgInformacion)
+ Else
+ TieneError = True
+ End If
+ ObjEcommerce.Dispose()
+
+ If Not TieneError Then
+ DdlEcommerceInsignia.SelectedValueExist(-1)
+ CargaPSInsigniasEcommerce()
+ End If
+ End Sub
+ Private Function ValidaAgregarProductosInsigniasEcommerce() As Boolean
+ Dim Retorno = True
+ Dim Mensaje As New StringBuilder
+
+ 'INSIGNIA
+ Dim CveInsignia = DdlEcommerceInsignia.SelectedValue.ToEntero
+ If CveInsignia = 0 Then
+ Mensaje.Append("- El campo Insignia es obligatorio. Por favor introduzcalo y vuelva a intentar.
")
+ End If
+ For Each GvRow As GridViewRow In GvEcommercePSInsignias.Rows
+ If GvRow.DataKey("CveInsignia").ToString.ToEntero = CveInsignia Then
+ Mensaje.Append($"- La Insignia {DdlEcommerceInsignia.SelectedItem.Text} ya es parte del producto y no se puede duplicar. Por favor verifique y vuelva a intentar.
")
+ Exit For
+ End If
+ Next
+
+ 'VALIDACION
+ If Mensaje.ToString.Length > 0 Then
+ Retorno = False
+ Alert(Mensaje.ToString, TipoMensaje.MsgAdvertencia)
+ End If
+
+ Return Retorno
+ End Function
+ Protected Sub GvEcommercePSInsignias_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEcommercePSInsignias.RowDeleting
+ Dim TieneError = False
+ Dim GvRow = GvEcommercePSInsignias.Rows(e.RowIndex)
+
+ Dim ObjEcommerce As New ClsECommerce
+ If ObjEcommerce.ProductosInsigniasRemove(GvRow.DataKey("CvePS").ToString.ToEntero, GvRow.DataKey("CveInsignia").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ Alert("La Insignia se eliminó correctamente.", TipoMensaje.MsgInformacion)
+ Else
+ TieneError = True
+ End If
+ ObjEcommerce.Dispose()
+
+ If Not TieneError Then
+ CargaPSInsigniasEcommerce()
+ End If
+ End Sub
+#End Region
+
+#Region " PRODUCTOS IMAGENES "
+ Private Sub CargarGaleriaImagenesEcommerce()
+ Dim TmpDT As DataTable = Nothing
+
+ Dim ObjEcommerce As New ClsECommerce
+ If ObjEcommerce.ProductosImagenesGet(CvePS, UsuarioActual.CveEmpresa) Then
+ TmpDT = ObjEcommerce.DtResultados
+ Else
+ TmpDT = Nothing
+ End If
+ ObjEcommerce.Dispose()
+
+ RptFotos.DataSource = TmpDT
+ RptFotos.DataBind()
+ UpEcommerceGaleriaImagenes.Update()
+ End Sub
+ Protected Sub BtnEcommerceImagenes_Click(sender As Object, e As EventArgs)
+
+ Dim FilesGral As List(Of Archivo) = TxtEcommerceImagenes.getfiles().Archivos
+ Dim FileMove = ""
+ Dim Archivo = ""
+ Dim DirectorioTemporal = ""
+
+ Dim DirectorioDestino = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\Ecommerce\Productos\Imagenes\"
+ If Not Directory.Exists(DirectorioDestino) Then
+ Directory.CreateDirectory(DirectorioDestino)
+ End If
+
+ Dim ObjEcommerce As New ClsECommerce
+ For Each FileItem As Archivo In FilesGral
+ Archivo = DateTime.Now.Ticks.ToString
+ Try
+ FileMove = FileItem.filename
+ DirectorioTemporal = $"{AppDomain.CurrentDomain.BaseDirectory}Temp\{FileMove}"
+
+ Archivo = $"{Archivo}{IO.Path.GetExtension(DirectorioTemporal)}"
+ DirectorioDestino += Archivo
+ If ObjEcommerce.ProductosImagenesAdd(CvePS, $"Ecommerce\Productos\Imagenes\{Archivo}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ CargarGaleriaImagenesEcommerce()
+ My.Computer.FileSystem.MoveFile(DirectorioTemporal, DirectorioDestino)
+ End If
+ Catch ex As Exception
+ End Try
+ Next
+ ObjEcommerce.Dispose()
+
+ RegistraScript("$(""#Modalupfotos"").modal(""hide"");initcarusel();")
+ TxtEcommerceImagenes.Text = "[]"
+ UpUpFotos.Update()
+
+ End Sub
+ Protected Sub BtnEcommerceEliminarImagenes_Click(sender As Object, e As System.EventArgs)
+ Dim CveImagenActivoFijo As Integer = 0
+ CveImagenActivoFijo = Integer.Parse(DirectCast(sender, Button).CommandArgument)
+
+ If (CveImagenActivoFijo > 0) Then
+ Dim ObjEcommerce As New ClsECommerce
+ If ObjEcommerce.ProductosImagenesRemove(CveImagenActivoFijo, UsuarioActual.CveEmpresa) Then
+ File.Delete(String.Format("{0}Empresas\{1}\{2}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, ObjEcommerce.DtResultados.Rows(0)("URL")))
+ CargarGaleriaImagenesEcommerce()
+ RegistraScript("initcarusel();")
+ End If
+ ObjEcommerce.Dispose()
+ End If
+
+ End Sub
+#End Region
+
+#Region " PRODUCTOS RELACIONADOS "
+ Private Sub CargaPSRelacionadosEcommerce()
+ Dim ObjEcommerce As New ClsECommerce
+ If ObjEcommerce.ProductosRelacionadosGet(CvePS, UsuarioActual.CveEmpresa) Then
+ GvEcommercePSRealacionados.DataSource = ObjEcommerce.DtResultados
+ Else
+ GvEcommercePSRealacionados.DataSource = Nothing
+ End If
+ ObjEcommerce.Dispose()
+
+ GvEcommercePSRealacionados.DataBind()
+ UpEcommercePSRelacionados.Update()
+ End Sub
+ Protected Sub BtnEcommercePSRelacionados_Click(sender As Object, e As EventArgs)
+ If Not ValidaAgregarProductosRelacionadosEcommerce() Then
+ Exit Sub
+ End If
+
+ Dim TieneError = False
+ Dim CvePS = DdlEcommercePSRelacionado.SelectedValue.ToEntero
+
+ 'AGREGAR
+ Dim ObjEcommerce As New ClsECommerce
+ If ObjEcommerce.ProductosRelacionadosAdd(Me.CvePS, CvePS, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ Alert("La relación se agregó correctamente.", TipoMensaje.MsgInformacion)
+ Else
+ TieneError = True
+ End If
+ ObjEcommerce.Dispose()
+
+ If Not TieneError Then
+ DdlEcommercePSRelacionado.SelectedValue = "-1"
+ DdlEcommercePSRelacionado.SelectedText = ""
+ CargaPSRelacionadosEcommerce()
+ End If
+ End Sub
+ Private Function ValidaAgregarProductosRelacionadosEcommerce() As Boolean
+ Dim Retorno = True
+ Dim Mensaje As New StringBuilder
+
+ 'PS
+ Dim CvePS = DdlEcommercePSRelacionado.SelectedValue.ToEntero
+ If CvePS = 0 Then
+ Mensaje.Append("- El campo Producto es obligatorio. Por favor introduzcalo y vuelva a intentar.
")
+ End If
+ For Each GvRow As GridViewRow In GvEcommercePSRealacionados.Rows
+ If GvRow.DataKey("CvePS").ToString.ToEntero = CvePS Then
+ Mensaje.Append($"- El producto {DdlEcommercePSRelacionado.SelectedText} ya esta relacionado y no se puede duplicar. Por favor verifique y vuelva a intentar.
")
+ Exit For
+ End If
+ Next
+
+ 'VALIDACION
+ If Mensaje.ToString.Length > 0 Then
+ Retorno = False
+ Alert(Mensaje.ToString, TipoMensaje.MsgAdvertencia)
+ End If
+
+ Return Retorno
+ End Function
+ Protected Sub GvEcommercePSRealacionados_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEcommercePSRealacionados.RowDeleting
+ Dim TieneError = False
+ Dim GvRow = GvEcommercePSRealacionados.Rows(e.RowIndex)
+
+ Dim ObjEcommerce As New ClsECommerce
+ If ObjEcommerce.ProductosRelacionadosRemove(GvRow.DataKey("CvePS1").ToString.ToEntero, GvRow.DataKey("CvePS2").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ Alert("La relación se eliminó correctamente.", TipoMensaje.MsgInformacion)
+ Else
+ TieneError = True
+ End If
+ ObjEcommerce.Dispose()
+
+ If Not TieneError Then
+ CargaPSRelacionadosEcommerce()
+ End If
+ End Sub
+
+#End Region
+
+#Region " BITACORA "
+ Protected Sub LBBitacoraEcommerce_Click(sender As Object, e As EventArgs)
+ CargaBitacoraEcommerce()
+ End Sub
+ Private Sub CargaBitacoraEcommerce()
+ Dim ObjEcommerce As New ClsECommerce
+ If ObjEcommerce.ProductosGetBitacora(CvePS, UsuarioActual.CveEmpresa) Then
+ GvBitacoraEcommerce.DataSource = ObjEcommerce.DtResultados
+ End If
+ ObjEcommerce.Dispose()
+
+ GvBitacoraEcommerce.DataBind()
+ UpBitacoraEcommerce.Update()
+ RegistraScript("$('#ModalBitacoraEcommerce').modal('show');")
+ End Sub
+ Protected Sub GvBitacora_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvBitacora.RowDataBound
+ If e.Row.RowType = DataControlRowType.DataRow Then
+
+ End If
+ End Sub
+#End Region
+
+#End Region
+
+#Region "CLASIFICACIONES DETALLES"
+
+ Protected Sub BtnAddClasificacionDetalle_Click(sender As Object, e As EventArgs)
+ TxtClasificacionDetalle.Text = ""
+ DdlClasificacionModal.SelectedValueExist(DdlClasificacion.SelectedValue)
+ UpModal.Update()
+ RegistraScript(String.Format("$('#{0}').modal('show');", "DModalClasificacion"))
+ End Sub
+ Protected Sub BtnAddClasificacionDetalleModal_Click(sender As Object, e As EventArgs)
+ Dim ObjVentas As New ClsVentas
+ If ObjVentas.AddClasificacionDetalle(TxtClasificacionDetalle.Text, DdlClasificacionModal.SelectedValue.ToEntero,
+ UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+
+ If ObjVentas.GetClasificacionDetalle(-1, -1, -1, -1) Then
+ GlobalDTClasificacionesDetalle = ObjVentas.DtResultados
+ End If
+ CargaClasificacionesDetalles()
+ DdlTipoPSDes.SelectedValueExist(ObjVentas.CveClasificacionDetalle)
+ UpDatos.Update()
+ RegistraScript(String.Format("$('#{0}').modal('hide');", "DModalClasificacion"), "1")
+ RegistraScript("CreaDescripcionPS();", "2")
+
+
+ End If
+
+ ObjVentas.Dispose()
+ End Sub
+
+#End Region
+
+#Region "EXISTENCIAS"
+
+ Protected Sub GVExistencias_RowDataBound(sender As Object, e As GridViewRowEventArgs)
+ If e.Row.RowType = DataControlRowType.DataRow Then
+ If e.Row.DBCampo("CveAlmacen") = "" Then
+ e.Row.CssClass = "Totales"
+ End If
+ If UsuarioActual.CveEmpresa = 119 Then
+ GVExistencias.Columns(5).Visible = True
+ End If
+ End If
+ End Sub
+
+ Private Sub CargaExistencias()
+ Dim ObjInventarios As New ClsInventarios()
+ If ObjInventarios.GetExistenciasProducto(CvePS, -1, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), ExcluyeApartados:=-1) Then
+ If ObjInventarios.DtResultados.Rows.Count > 0 Then
+ GVExistencias.DataSource = ObjInventarios.DtResultados
+ Else
+ GVExistencias.DataSource = Nothing
+ End If
+ End If
+
+ ObjInventarios.Dispose()
+ GVExistencias.DataBind()
+ UpDatos.Update()
+ End Sub
+
+#End Region
+
+ Protected Sub DdlImpTipoProducto_SelectedIndexChanged(sender As Object, e As EventArgs)
+
+ CargaClaveGenerica(DdlImpTipoProducto.SelectedValue)
+
+ End Sub
+
+ Private Sub CargaClaveGenerica(TipoProducto As String)
+ DdlCategoriaToxicidad.Items.Clear()
+ DdlCategoriaToxicidad.DataBind() 'para que quite el selectedvalue
+
+ If TipoProducto = "019" Then
+ DdlCategoriaToxicidad.Items.Add(New ListItem("Seleccione", "-1"))
+ DdlCategoriaToxicidad.Items.Add(New ListItem("000 - Sin selección", "000"))
+ DdlCategoriaToxicidad.Items.Add(New ListItem("001 - Categorías 1 y 2", "001"))
+ DdlCategoriaToxicidad.Items.Add(New ListItem("002 - Categoría 3", "002"))
+ DdlCategoriaToxicidad.Items.Add(New ListItem("003 - Categoría 4", "003"))
+ DdlCategoriaToxicidad.SelectedValue = "000"
+
+ ElseIf TipoProducto = "021" Then
+ DdlCategoriaToxicidad.Items.Add(New ListItem("Seleccione", "-1"))
+ DdlCategoriaToxicidad.Items.Add(New ListItem("000 - Sin selección", "000"))
+ DdlCategoriaToxicidad.Items.Add(New ListItem("001 - Gasolina Menor a 92 octanos", "001"))
+ DdlCategoriaToxicidad.Items.Add(New ListItem("002 - Gasolina Mayor o igual a 92 octanos", "002"))
+ DdlCategoriaToxicidad.Items.Add(New ListItem("003 - Diesel", "003"))
+ DdlCategoriaToxicidad.Items.Add(New ListItem("004 - Combustibles no fósiles", "004"))
+ DdlCategoriaToxicidad.SelectedValue = "000"
+ End If
+ End Sub
+
+#Region "SECCION ALMACEN"
+
+ Private Sub CreaDtSeccionAlmacen()
+ DtSeccionAlmacen = New DataTable
+ DtSeccionAlmacen.Columns.Add("CvePSAlmacenSeccion", GetType(Integer))
+ DtSeccionAlmacen.Columns.Add("CveAlmacen", GetType(Integer))
+ DtSeccionAlmacen.Columns.Add("Almacen", GetType(String))
+ DtSeccionAlmacen.Columns.Add("CveAlmacenSeccion", GetType(Integer))
+ DtSeccionAlmacen.Columns.Add("AlmacenSeccion", GetType(String))
+ End Sub
+ Private Sub CargaGvSeccionAlmacen()
+ Dim ObjInv As New ClsInventarios
+ If ObjInv.GetProductosServiciosAlmacenSeccion(CvePS, -1, -1) Then
+ GvSeccionAlmacen.DataSource = ObjInv.DtResultados
+ DtSeccionAlmacen = ObjInv.DtResultados
+ End If
+ ObjInv.Dispose()
+ GvSeccionAlmacen.DataBind()
+ UpSeccionAlmacen.Update()
+ End Sub
+
+
+ Private Sub CargaCombosSeccionAlmacen()
+ DdlAlmacen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
+ DdlAlmacen.Items.Add(New ListItem("Seleccione", "-1"))
+ DdlAlmacen.DataBind()
+
+ DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa)
+ DdlSeccionAlmacen.Items.Add(New ListItem("Seleccione", "-1"))
+ DdlSeccionAlmacen.DataBind()
+
+ UpModalSeccionAlmacen.Update()
+ End Sub
+
+ Protected Sub LnkSeccionAlmacenAdd_Click(sender As Object, e As EventArgs)
+ DdlAlmacen.SelectedIndex = 0
+ DdlSeccionAlmacen.SelectedIndex = 0
+ RegistraScript("$('#DivAddSeccionAlmacen').modal();")
+ UpModalSeccionAlmacen.Update()
+ End Sub
+ 'Protected Sub LnkEditarSeccionAlmacen_Click(sender As Object, e As EventArgs)
+ ' Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
+ ' DdlAlmacen.SelectedValueExist(gvRow.DataKey("CvAlmacen"))
+ ' DdlSeccionAlmacen.SelectedValueExist(gvRow.DataKey("CveAlmacenSeccion"))
+ ' RegistraScript("$('#DivAddSeccionAlmacen').modal();")
+ ' UpModalSeccionAlmacen.Update()
+ 'End Sub
+ Protected Sub LnkRemoveSeccionAlmacen_Click(sender As Object, e As EventArgs)
+ Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
+ If gvRow.DataKey("CvePSAlmacenSeccion").ToEntero > 0 Then
+ DtSeccionAlmacen.Rows(gvRow.RowIndex)("CveAlmacen") = -1
+ Else
+ DtSeccionAlmacen.Rows(gvRow.RowIndex.ToEntero).Delete()
+ End If
+ DtSeccionAlmacen.AcceptChanges()
+ GvSeccionAlmacen.DataSource = DtSeccionAlmacen
+ GvSeccionAlmacen.DataBind()
+ UpSeccionAlmacen.Update()
+ End Sub
+
+ Protected Sub BtnAddSeccionAlmacen_Click(sender As Object, e As EventArgs)
+ If DtSeccionAlmacen.FiltraParametros($"CveAlmacen = {DdlAlmacen.SelectedValue}").Rows.Count > 0 Then
+ Alert("No se puede especificar el mismo almacen en dos secciones", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ Dim Row As DataRow = Nothing
+ Row = DtSeccionAlmacen.NewRow
+ Row("CvePSAlmacenSeccion") = -1
+ Row("CveAlmacen") = DdlAlmacen.SelectedValue.ToEntero
+ Row("Almacen") = DdlAlmacen.SelectedItem.Text
+ Row("CveAlmacenSeccion") = DdlSeccionAlmacen.SelectedValue.ToEntero
+ Row("AlmacenSeccion") = DdlSeccionAlmacen.SelectedItem.Text
+ DtSeccionAlmacen.Rows.Add(Row)
+ DtSeccionAlmacen.AcceptChanges()
+ GvSeccionAlmacen.DataSource = DtSeccionAlmacen
+ GvSeccionAlmacen.DataBind()
+ UpSeccionAlmacen.Update()
+
+ RegistraScript("$('#DivAddSeccionAlmacen').modal('hide');")
+ End Sub
+
+ Protected Sub GvSeccionAlmacen_RowDataBound(sender As Object, e As GridViewRowEventArgs)
+ If e.Row.RowType = DataControlRowType.DataRow Then
+ If Not e.Row.DBCampo("CveAlmacen").ToEntero > 0 Then
+ e.Row.Visible = False
+ End If
+ End If
+ End Sub
+
+#End Region
+
+
+ Protected Sub DdlIEPSPorcentaje_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlIEPSPorcentaje.SelectedIndexChanged
+ Select Case DdlIEPSPorcentaje.SelectedValue
+ Case "0.09"
+ DdlCategoriaToxicidad.SelectedValueExist("001")
+ Case "0.07"
+ DdlCategoriaToxicidad.SelectedValueExist("002")
+ Case "0.06"
+ DdlCategoriaToxicidad.SelectedValueExist("003")
+ Case Else
+ DdlCategoriaToxicidad.SelectedValueExist("000")
+ End Select
+ End Sub
+End Class
diff --git a/Ventas/RepConciliacionEmitidosSat.aspx.cs b/Ventas/RepConciliacionEmitidosSat.aspx.cs
index 7acf60a6b..7657eda61 100644
--- a/Ventas/RepConciliacionEmitidosSat.aspx.cs
+++ b/Ventas/RepConciliacionEmitidosSat.aspx.cs
@@ -10,7 +10,7 @@ using System.Xml;
using Extensiones;
using System.Data;
using System.Text;
-using ADSistemaLibrary.SatXml;
+using ADSistemaLibrary2.SatXml;
//using ADS_CFDI_SAT;
@@ -187,7 +187,11 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
{
{
- string ruta = string.Format("{0}\\{1}", UsuarioActual.Empresa.Ruta.Trim(), gvrow.DataKey("RutaXml").Trim()).Replace("/", "\\"); //gvrow.DataKey("RutaXml");
+ string rutaempresa = UsuarioActual.Empresa.Ruta.Trim().Replace("/", "\\");
+ string rutafile = gvrow.DataKey("RutaXml").Trim().Replace("/", "\\");
+ rutaempresa = rutaempresa.Substring(rutaempresa.Length - 1, 1) == "\\" ? rutaempresa.Substring(0, rutaempresa.Length - 1): rutaempresa;
+ rutafile = rutafile.Substring(0, 1) == "\\" ? rutafile.Substring(1): rutafile;
+ string ruta = string.Format("{0}\\{1}", rutaempresa, rutafile); //gvrow.DataKey("RutaXml");
//Alert(ruta);
//return false;
@@ -798,4 +802,953 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
}
//String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=FactVta&CVEVENTA={0}&EXT={1}&SERIEFOLIO={2}&TIPODOCTO={3}", CveVenta, "XML", DbRowVenta("SerieFolio"), DbRowVenta("TipoDocto"))))
}
+}
+namespace ADSistemaLibrary2.SatXml
+{
+ public class XmlSatCFDI
+ {
+ public XmlSatCFDI()
+ {
+ comprobante = new CFDIComprobante();
+ emisor = new CFDIEmisor();
+ receptor = new CFDIReceptor();
+ complemento = new CFDIComplemento();
+ cFDIRelacionados = new List();
+ conceptos = new List();
+ Impuestos = new List();
+ }
+ public CFDIComprobante comprobante;
+ public CFDIEmisor emisor;
+ public CFDIReceptor receptor;
+ public CFDIComplemento complemento;
+ public List cFDIRelacionados;
+ public List conceptos;
+ public List Impuestos;
+ public List GetConceptosforpdf()
+ {
+ List lcon = new List();
+ if (conceptos != null)
+ {
+ int _orden = 0;
+ foreach (CFDIConcepto item in conceptos)
+ {
+ _orden += 1;
+ CFDIConcepto_I con = new CFDIConcepto_I
+ {
+ tipo = 1,
+ orden = _orden,
+ ClaveProdServ = item.ClaveProdServ,
+ NoIdentificacion = item.NoIdentificacion,
+ Cantidad = item.Cantidad,
+ ClaveUnidad = item.ClaveUnidad,
+ Unidad = item.Unidad,
+ ValorUnitario = item.ValorUnitario,
+ Importe = item.Importe,
+ Descuento = item.Descuento,
+ NumeroPedimento = item.NumeroPedimento,
+ CuentaPredial = item.CuentaPredial,
+ Descripcion = item.Descripcion
+ };
+ int index = 0;
+ foreach (CFDIConceptoImpuesto Imp in item.Impuestos)
+ {
+ index++;
+ if (index > 1)
+ {
+ lcon.Add(con);
+ con = new CFDIConcepto_I
+ {
+ tipo = 2,
+ orden = _orden,
+ };
+
+ }
+
+ con.Impuesto = Imp.ImpuestoTexto;
+ con.Impuesto_Tipo = Imp.Tipo;
+ con.Impuesto_Base = Imp.Base;
+ con.Impuesto_TipoFactor = Imp.TipoFactor;
+ con.Impuesto_TasaOCuota = Imp.TasaOCuota;
+ con.Impuesto_Importe = Imp.Importe;
+ }
+ lcon.Add(con);
+ }
+ }
+
+ return lcon;
+ }
+
+ public static XmlSatCFDI readXML(string fileUrl)
+ {
+ XmlSatCFDI xmlCFDI = new XmlSatCFDI();
+ bool canread = true;
+ //keys
+ string keyComprobante = "Comprobante";
+ string keyCfdiRelacionados = "CfdiRelacionados";
+ string keyEmisor = "Emisor";
+ string keyReceptor = "Receptor";
+ string keyConceptos = "Conceptos";
+ string keyImpuestos = "Impuestos";
+ string keyComplemento = "Complemento";
+ //endkeys
+ string[] PrimerNivel = new string[] { keyCfdiRelacionados, keyEmisor, keyReceptor, keyConceptos, keyImpuestos, keyComplemento };
+ //(canread = xtr.Read()) para evitar ciclos infinitos, todos los .Read() los guardo en la variable Canread y en los while reviso primero esta variable
+ if (File.Exists(fileUrl))
+ {
+ XmlReaderSettings settings = new XmlReaderSettings();
+ settings.ConformanceLevel = ConformanceLevel.Fragment;
+ settings.IgnoreWhitespace = true;
+ settings.IgnoreComments = true;
+ using (XmlReader xtr = XmlReader.Create(fileUrl, settings))
+ {
+
+ while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:","") == keyComprobante))
+ {
+ //if (xtr.NodeType != XmlNodeType.Element) { while (xtr.Read() && xtr.NodeType != XmlNodeType.Element) { } }
+ }
+ if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyComprobante)
+ {
+ int Nivel = xtr.Depth;
+ bool cont = xtr.MoveToFirstAttribute();
+ while (cont)
+ {
+
+ switch (xtr.Name.ToUpper())
+ {
+ case "XMLNS:CFDI": xmlCFDI.comprobante.xmlns_cfdi = xtr.Value; break;
+ case "XMLNS:XSI": xmlCFDI.comprobante.xmlns_xsi = xtr.Value; break;
+ case "XSI:SCHEMALOCATION": xmlCFDI.comprobante.xsi_schemaLocation = xtr.Value; break;
+ case "VERSION": xmlCFDI.comprobante.Version = xtr.Value; break;
+ case "SERIE": xmlCFDI.comprobante.Serie = xtr.Value; break;
+ case "FOLIO": xmlCFDI.comprobante.Folio = xtr.Value; break;
+ case "FECHA": xmlCFDI.comprobante.Fecha = xtr.Value; break;
+ case "MONEDA": xmlCFDI.comprobante.Moneda = xtr.Value; break;
+ case "SUBTOTAL": decimal SubTotal = 0; decimal.TryParse(xtr.Value, out SubTotal); xmlCFDI.comprobante.SubTotal = SubTotal; break;
+ case "TOTAL": decimal Total = 0; decimal.TryParse(xtr.Value, out Total); xmlCFDI.comprobante.Total = Total; break;
+ case "DESCUENTO": decimal Descuento = 0; decimal.TryParse(xtr.Value, out Descuento); xmlCFDI.comprobante.Descuento = Descuento; break;
+ case "TIPOCAMBIO": decimal TipoCambio = 0; decimal.TryParse(xtr.Value, out TipoCambio); xmlCFDI.comprobante.TipoCambio = TipoCambio; break;
+ case "TIPODECOMPROBANTE": xmlCFDI.comprobante.TipoDeComprobante = xtr.Value; break;
+ case "FORMAPAGO": xmlCFDI.comprobante.FormaPago = xtr.Value; break;
+ case "FORMADEPAGO": xmlCFDI.comprobante.FormaPago = xtr.Value; break;
+ case "METODOPAGO": xmlCFDI.comprobante.MetodoPago = xtr.Value; break;
+ case "METODODEPAGO": xmlCFDI.comprobante.MetodoPago = xtr.Value; break;
+ case "CONDICIONESDEPAGO": xmlCFDI.comprobante.CondicionesDePago = xtr.Value; break;
+ case "LUGAREXPEDICION": xmlCFDI.comprobante.LugarExpedicion = xtr.Value; break;
+ case "CONFIRMACION": xmlCFDI.comprobante.Confirmacion = xtr.Value; break;
+ case "NOCERTIFICADO": xmlCFDI.comprobante.NoCertificado = xtr.Value; break;
+ case "SELLO": xmlCFDI.comprobante.Sello = xtr.Value; break;
+ case "CERTIFICADO": xmlCFDI.comprobante.Certificado = xtr.Value; break;
+ }
+ cont = xtr.MoveToNextAttribute();
+ }
+ cont = xtr.MoveToFirstAttribute();
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ while (canread && xtr.Depth > Nivel)
+ {
+ if (PrimerNivel.Contains(xtr.Name.Replace("cfdi:", "")))
+ {
+ if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyCfdiRelacionados)
+ {
+ int cDepth = xtr.Depth;
+
+ string TipoRelacion = null;
+ cont = xtr.MoveToFirstAttribute();
+ while (cont)
+ {
+ switch (xtr.Name.ToUpper())
+ {
+ case "TIPORELACION": TipoRelacion = xtr.Value; break;
+ }
+ cont = xtr.MoveToNextAttribute();
+ }
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ while (canread && xtr.Depth > cDepth)
+ {
+ if (xtr.Name.Replace("cfdi:", "") == "CfdiRelacionado")
+ {
+ CFDIRelacionado cfdir = new CFDIRelacionado();
+ cfdir.TipoRelacion = TipoRelacion;
+ cfdir.UUID = xtr.GetAttribute("UUID");
+ xmlCFDI.cFDIRelacionados.Add(cfdir);
+ }
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ }
+
+ }
+ if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyEmisor)
+ {
+
+
+ int curentNivel = xtr.Depth;
+ cont = xtr.MoveToFirstAttribute();
+ while (cont)
+ {
+ switch (xtr.Name.ToUpper())
+ {
+ case "REGIMENFISCAL": xmlCFDI.emisor.RegimenFiscal = xtr.Value; break;
+ case "NOMBRE": xmlCFDI.emisor.Nombre = xtr.Value; break;
+ case "RFC": xmlCFDI.emisor.Rfc = xtr.Value; break;
+ }
+ cont = xtr.MoveToNextAttribute();
+ }
+ while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && curentNivel >= xtr.Depth)) { }//continua hasta que no tenga nodos y (el nodo sea tipo elemnto y ete en el mismo nivel)
+ }
+ if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyReceptor)
+ {
+ int curentNivel = xtr.Depth;
+ cont = xtr.MoveToFirstAttribute();
+ while (cont)
+ {
+ switch (xtr.Name.ToUpper())
+ {
+ case "RFC": xmlCFDI.receptor.Rfc = xtr.Value; break;
+ case "NOMBRE": xmlCFDI.receptor.Nombre = xtr.Value; break;
+ case "RESIDENCIAFISCAL": xmlCFDI.receptor.ResidenciaFiscal = xtr.Value; break;
+ case "NUMREGIDTRIB": xmlCFDI.receptor.NumRegIdTrib = xtr.Value; break;
+ case "USOCFDI": xmlCFDI.receptor.UsoCFDI = xtr.Value; break;
+ }
+ cont = xtr.MoveToNextAttribute();
+ }
+
+ while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && curentNivel >= xtr.Depth)) { }//continua hasta que no tenga nodos y (el nodo sea tipo elemnto y ete en el mismo nivel)
+ }
+ if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyConceptos)
+ {
+ int cDepth = xtr.Depth;
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ while (canread && xtr.Depth > cDepth)
+ {
+ if (xtr.Name.Replace("cfdi:", "") == "Concepto")
+ {
+ int cDepthb = xtr.Depth;
+ CFDIConcepto concepto = new CFDIConcepto();
+
+ cont = xtr.MoveToFirstAttribute();
+ while (cont)
+ {
+ switch (xtr.Name.ToUpper())
+ {
+ case "CLAVEPRODSERV": concepto.ClaveProdServ = xtr.Value; break;
+ case "NOIDENTIFICACION": concepto.NoIdentificacion = xtr.Value; break;
+ case "CANTIDAD": concepto.Cantidad = xtr.Value; break;
+ case "CLAVEUNIDAD": concepto.ClaveUnidad = xtr.Value; break;
+ case "UNIDAD": concepto.Unidad = xtr.Value; break;
+ case "VALORUNITARIO": decimal ValorUnitario = 0; decimal.TryParse(xtr.Value, out ValorUnitario); concepto.ValorUnitario = ValorUnitario; ; break;
+ case "IMPORTE": decimal Importe = 0; decimal.TryParse(xtr.Value, out Importe); concepto.Importe = Importe; ; break;
+ case "DESCUENTO": decimal DDescuento = 0; decimal.TryParse(xtr.Value, out DDescuento); concepto.Descuento = DDescuento; ; break;
+ case "DESCRIPCION": concepto.Descripcion = xtr.Value; break;
+ }
+ cont = xtr.MoveToNextAttribute();
+ }
+ xtr.MoveToFirstAttribute();
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ while (canread && xtr.Depth > cDepthb)
+ {
+ if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == "Impuestos")
+ {
+ int cDepthc = xtr.Depth;
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ while (canread && xtr.Depth > cDepthc)
+ {
+ if (xtr.Name.Replace("cfdi:", "") == "Traslado" || xtr.Name.Replace("cfdi:", "") == "Retencion")
+ {
+ CFDIConceptoImpuesto impuesto = new CFDIConceptoImpuesto();
+ impuesto.Impuesto = xtr.GetAttribute("Impuesto");
+ impuesto.Tipo = xtr.LocalName;
+ decimal Base = 0;
+ decimal.TryParse(xtr.GetAttribute("Base"), out Base);
+ impuesto.Base = Base;
+ impuesto.TipoFactor = xtr.GetAttribute("TipoFactor");
+ decimal tasaOCuota = 0;
+ decimal.TryParse(xtr.GetAttribute("TasaOCuota"), out tasaOCuota);
+ impuesto.TasaOCuota = impuesto.TipoFactor == "Tasa" ? (tasaOCuota * 100).ToString("N4") : xtr.GetAttribute("TasaOCuota");
+ decimal ImImporte = 0;
+ decimal.TryParse(xtr.GetAttribute("Importe"), out ImImporte);
+ impuesto.Importe = ImImporte;
+
+ concepto.Impuestos.Add(impuesto);
+ }
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+
+ }
+ }
+ else
+ {
+ bool rednew = true;
+ if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == "InformacionAduanera")
+ {
+ concepto.NumeroPedimento = xtr.GetAttribute("NumeroPedimento");
+ rednew = false; while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ }
+ if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == "CuentaPredial")
+ {
+ concepto.CuentaPredial = xtr.GetAttribute("CuentaPredial");
+ rednew = false; while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ }
+ if (rednew) { while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } }
+
+ }
+ }
+
+ xmlCFDI.conceptos.Add(concepto);
+ }
+ }
+ }
+ if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyImpuestos)
+ {
+ int cDepth = xtr.Depth;
+
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ while (canread && xtr.Depth > cDepth)
+ {
+ CFDIImpuesto impuest = new CFDIImpuesto();
+ if (xtr.Name.Replace("cfdi:", "") == "Traslado" || xtr.Name.Replace("cfdi:", "") == "Retencion" && xmlCFDI.comprobante.Version != null)
+ {
+ impuest.Tipo = xtr.LocalName == "Traslado" ? "Traslados" : (xtr.LocalName == "Retencion" ? "Retenciones" : "");
+ impuest.Impuesto = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("Impuesto") : xtr.GetAttribute("impuesto");
+ impuest.TipoFactor = xtr.GetAttribute("TipoFactor");
+ impuest.TasaOCuota = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("TasaOCuota") : xtr.GetAttribute("tasa");
+ decimal ImImporte = 0;
+ decimal.TryParse((xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("Importe") : xtr.GetAttribute("importe")), out ImImporte);
+ impuest.Importe = ImImporte;
+ xmlCFDI.Impuestos.Add(impuest);
+ }
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+
+ }
+ }
+ if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyComplemento)
+ {
+ int cDepth = xtr.Depth;
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ while (canread && xtr.Depth > cDepth)
+ {
+ if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "TimbreFiscalDigital" && xmlCFDI.comprobante.Version != null)
+ {
+ xmlCFDI.complemento.xmlns_tfd = xtr.GetAttribute("xmlns:tfd");
+ xmlCFDI.complemento.xsi_schemaLocation = xtr.GetAttribute("xsi:schemaLocation");
+ xmlCFDI.complemento.Version = xtr.GetAttribute("Version");
+ xmlCFDI.complemento.UUID = xtr.GetAttribute("UUID");
+ xmlCFDI.complemento.FechaTimbrado = xtr.GetAttribute("FechaTimbrado");
+ xmlCFDI.complemento.RfcProvCertif = xtr.GetAttribute("RfcProvCertif");
+ xmlCFDI.complemento.SelloCFD = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("SelloCFD") : xtr.GetAttribute("selloCFD");
+ xmlCFDI.complemento.NoCertificadoSAT = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("NoCertificadoSAT") : xtr.GetAttribute("noCertificadoSAT");
+ xmlCFDI.complemento.SelloSAT = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("SelloSAT") : xtr.GetAttribute("selloSAT");
+
+ }
+
+ if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "Pagos" && xmlCFDI.comprobante.Version != null)
+ {
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ xmlCFDI.complemento.Pagos = new CFDIPago();
+ int depthpagos = xtr.Depth;
+ bool conts = xtr.MoveToFirstAttribute();
+ while (conts)
+ {
+
+ decimal Base = 0;
+ switch (xtr.Name.ToUpper())
+ {
+ case "FECHAPAGO": xmlCFDI.complemento.Pagos.FechaPago = xtr.Value; break;
+ case "FORMADEPAGOP": xmlCFDI.complemento.Pagos.FormaDePagoP = xtr.Value; break;
+ case "FORMADEPAGOPTEXT": xmlCFDI.complemento.Pagos.FormaDePagoPText = xtr.Value; break;
+ case "MONEDAP": xmlCFDI.complemento.Pagos.MonedaP = xtr.Value; break;
+ case "MONTO": decimal.TryParse(xtr.Value, out Base); xmlCFDI.complemento.Pagos.Monto = Base; break;
+ case "TIPOCAMBIOP": decimal.TryParse(xtr.Value, out Base); xmlCFDI.complemento.Pagos.TipoCambioP = Base; break;
+ case "NUMOPERACION": xmlCFDI.complemento.Pagos.NumOperacion = xtr.Value; break;
+ case "NOMBANCOORDEXT": xmlCFDI.complemento.Pagos.NomBancoOrdExt = xtr.Value; break;
+ case "RFCEMISORCTAORD": xmlCFDI.complemento.Pagos.RfcEmisorCtaOrd = xtr.Value; break;
+ case "CTAORDENANTE": xmlCFDI.complemento.Pagos.CtaOrdenante = xtr.Value; break;
+ case "RFCEMISORCTABEN": xmlCFDI.complemento.Pagos.RfcEmisorCtaBen = xtr.Value; break;
+ case "CTABENEFICIARIO": xmlCFDI.complemento.Pagos.CtaBeneficiario = xtr.Value; break;
+ }
+ conts = xtr.MoveToNextAttribute();
+ }
+ conts = xtr.MoveToFirstAttribute();
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ while (canread && xtr.Depth > depthpagos)
+ {
+ CFDIPagoDoctoRelacionado objpago = new CFDIPagoDoctoRelacionado();
+ conts = xtr.MoveToFirstAttribute();
+ while (conts)
+ {
+
+ decimal Basep = 0;
+ switch (xtr.Name.ToUpper())
+ {
+ case "IDDOCUMENTO": objpago.IdDocumento = xtr.Value; break;
+ case "SERIE": objpago.Serie = xtr.Value; break;
+ case "FOLIO": objpago.Folio = xtr.Value; break;
+ case "MONEDADR": objpago.MonedaDR = xtr.Value; break;
+ case "METODODEPAGODR": objpago.MetodoDePagoDR = xtr.Value; break;
+ case "NUMPARCIALIDAD": objpago.NumParcialidad = xtr.Value; break;
+ case "IMPSALDOANT": decimal.TryParse(xtr.Value, out Basep); objpago.ImpSaldoAnt = Basep; break;
+ case "IMPPAGADO": decimal.TryParse(xtr.Value, out Basep); objpago.ImpPagado = Basep; break;
+ case "IMPSALDOINSOLUTO": decimal.TryParse(xtr.Value, out Basep); objpago.ImpSaldoInsoluto = Basep; break;
+
+ }
+ conts = xtr.MoveToNextAttribute();
+ }
+ conts = xtr.MoveToFirstAttribute();
+ xmlCFDI.complemento.Pagos.doctosRelacionados.Add(objpago);
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ }
+ }
+ else
+ {
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+
+ }
+ }
+ }
+ }
+ else
+ {
+ //si no entro en ninguna de los anteriores no se debe ciclar
+ while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
+ }
+ }
+ }
+
+ }
+ }
+ if (xmlCFDI.comprobante.Version == "3.3" || xmlCFDI.comprobante.Version == "3.2")
+ {
+ return xmlCFDI;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ public class utilValores
+ {
+ public utilValores(string nombre, string valor)
+ {
+ Nombre = nombre;
+ Valor = valor;
+ }
+ public string Nombre { get; set; }
+ public string Valor { get; set; }
+ }
+ public class utilImage
+ {
+ public utilImage(byte[] imagenByte)
+ {
+ ImagenByte = imagenByte;
+ }
+ public byte[] ImagenByte { get; set; }
+ }
+ }
+
+ public class CFDIComplemento
+ {
+ public string xmlns_tfd { get; set; }
+ public string xsi_schemaLocation { get; set; }
+ public string Version { get; set; }
+ public string UUID { get; set; }
+ public string FechaTimbrado { get; set; }
+ public string RfcProvCertif { get; set; }
+ public string SelloCFD { get; set; }
+ public string NoCertificadoSAT { get; set; }
+ public string SelloSAT { get; set; }
+ public CFDIPago Pagos { get; set; }
+ public string CadenaOriginal
+ {
+ get
+ {
+ return string.Format("||{0}|{1}|{2}|{3}|{4}|{5}||", Version, UUID, FechaTimbrado, RfcProvCertif, SelloCFD, NoCertificadoSAT);
+ }
+ }
+
+ }
+ public class CFDIComprobante
+ {
+ public string xmlns_cfdi { get; set; }
+ public string xmlns_xsi { get; set; }
+ public string xsi_schemaLocation { get; set; }
+ public string Version { get; set; }
+ public string Serie { get; set; }
+ public string Folio { get; set; }
+ public string Fecha { get; set; }
+ public string Moneda { get; set; }
+ public decimal SubTotal { get; set; }
+ public decimal Total { get; set; }
+ public decimal Descuento { get; set; }
+ public decimal TipoCambio { get; set; }
+ public string TipoDeComprobante { get; set; }
+
+ public string TipoDeComprobanteSIG
+ {
+ get
+ {
+ string retorno = "";
+ if (Version == "3.3")
+ {
+ switch (TipoDeComprobante)
+ {
+ case "I":
+ retorno = "Ing";
+ break;
+ case "E":
+ retorno = "Egs";
+ break;
+ case "P":
+ retorno = "PA";
+ break;
+ //case "T":
+ // retorno = "Traslado";
+ // break;
+ //case "N":
+ // retorno = "Nómina";
+ // break;
+
+ default:
+ break;
+ }
+ }
+ else if (Version == "3.2")
+ {
+ switch (TipoDeComprobante)
+ {
+ case "ingreso":
+ retorno = "Ing";
+ break;
+ case "egreso":
+ retorno = "Egs";
+ break;
+ case "P":
+ retorno = "PA";
+ break;
+ //case "T":
+ // retorno = "Traslado";
+ // break;
+ //case "N":
+ // retorno = "Nómina";
+ // break;
+
+ default:
+ break;
+ }
+ }
+ else { retorno = TipoDeComprobante; }
+ return retorno;
+ }
+ }
+ public string TipoDeComprobanteTexto
+ {
+ get
+ {
+ string retorno = "";
+
+ if (Version == "3.3")
+ {
+ switch (TipoDeComprobante)
+ {
+ case "I":
+ retorno = "Ingreso";
+ break;
+ case "E":
+ retorno = "Egreso";
+ break;
+ case "P":
+ retorno = "Pago";
+ break;
+ case "T":
+ retorno = "Traslado";
+ break;
+ case "N":
+ retorno = "Nómina";
+ break;
+
+ default:
+ retorno = TipoDeComprobante;
+ break;
+ }
+ }
+ else if (Version == "3.2")
+ {
+ switch (TipoDeComprobante)
+ {
+ case "ingreso":
+ retorno = "Ing";
+ break;
+ case "egreso":
+ retorno = "Egs";
+ break;
+ case "P":
+ retorno = "PA";
+ break;
+ //case "T":
+ // retorno = "Traslado";
+ // break;
+ //case "N":
+ // retorno = "Nómina";
+ // break;
+
+ default:
+ retorno = TipoDeComprobante;
+ break;
+ }
+ }
+ else { retorno = TipoDeComprobante; }
+ return retorno;
+ }
+ }
+ public string FormaPago { get; set; }
+
+ public string FormaPagoTexto
+ {
+ get
+ {
+ string retorno = "";
+
+ switch (FormaPago)
+ {
+ case "01": retorno = "Efectivo"; break;
+ case "02": retorno = "Cheque nominativo"; break;
+ case "03": retorno = "Transferencia electrónica de fondos"; break;
+ case "04": retorno = "Tarjeta de crédito"; break;
+ case "05": retorno = "Monedero electrónico"; break;
+ case "06": retorno = "Dinero electrónico"; break;
+ case "08": retorno = "Vales de despensa"; break;
+ case "12": retorno = "Dación en pago"; break;
+ case "13": retorno = "Pago por subrogación"; break;
+ case "14": retorno = "Pago por consignación"; break;
+ case "15": retorno = "Condonación"; break;
+ case "17": retorno = "Compensación"; break;
+ case "23": retorno = "Novación"; break;
+ case "24": retorno = "Confusión"; break;
+ case "25": retorno = "Remisión de deuda"; break;
+ case "26": retorno = "Prescripción o caducidad"; break;
+ case "27": retorno = "A satisfacción del acreedor"; break;
+ case "28": retorno = "Tarjeta de débito"; break;
+ case "29": retorno = "Tarjeta de servicios"; break;
+ case "30": retorno = "Aplicación de anticipos"; break;
+ case "31": retorno = "Intermediario pagos"; break;
+ case "99": retorno = "Por definir"; break;
+ default: retorno = FormaPago; break;
+ }
+ return retorno;
+ }
+ }
+ public string MetodoPago { get; set; }
+ public string MetodoPagoTexto
+ {
+ get
+ {
+ string retorno = "";
+
+ switch (MetodoPago)
+ {
+ case "PUE": retorno = "Pago en una sola exhibición"; break;
+ case "PPD": retorno = "Pago en parcialidades o diferido"; break;
+ default: retorno = MetodoPago; break;
+ }
+ return retorno;
+ }
+ }
+ public string CondicionesDePago { get; set; }
+ public string LugarExpedicion { get; set; }
+ public string Confirmacion { get; set; }
+ public string NoCertificado { get; set; }
+ public string Sello { get; set; }
+ public string Certificado { get; set; }
+
+ }
+
+ public class CFDIConcepto
+ {
+ public CFDIConcepto()
+ {
+ Impuestos = new List();
+ }
+ public string ClaveProdServ { get; set; }
+ public string NoIdentificacion { get; set; }
+ public string Cantidad { get; set; }
+ public string ClaveUnidad { get; set; }
+ public string Unidad { get; set; }
+ public decimal ValorUnitario { get; set; }
+ public decimal Importe { get; set; }
+ public decimal Descuento { get; set; }
+ public string NumeroPedimento { get; set; }
+ public string CuentaPredial { get; set; }
+ public string Descripcion { get; set; }
+ public List Impuestos { get; set; }
+ }
+
+ public class CFDIConcepto_I
+ {
+ public int tipo { get; set; }
+ public int orden { get; set; }
+ public string ClaveProdServ { get; set; }
+ public string NoIdentificacion { get; set; }
+ public string Cantidad { get; set; }
+ public string ClaveUnidad { get; set; }
+ public string Unidad { get; set; }
+ public decimal ValorUnitario { get; set; }
+ public decimal Importe { get; set; }
+ public decimal Descuento { get; set; }
+ public string NumeroPedimento { get; set; }
+ public string CuentaPredial { get; set; }
+ public string Descripcion { get; set; }
+
+
+ public string Impuesto { get; set; }
+
+ public string Impuesto_Tipo { get; set; }
+ public decimal Impuesto_Base { get; set; }
+ public string Impuesto_TipoFactor { get; set; }
+ public string Impuesto_TasaOCuota { get; set; }
+ public decimal Impuesto_Importe { get; set; }
+ }
+
+ public class CFDIConceptoImpuesto
+ {
+ public string Impuesto { get; set; }
+ public string ImpuestoTexto
+ {
+ get
+ {
+ string retorno = "";
+
+ switch (Impuesto)
+ {
+ case "001": retorno = "ISR"; break;
+ case "002": retorno = "IVA"; break;
+ case "003": retorno = "IEPS"; break;
+ }
+ return retorno;
+ }
+ }
+ public string Tipo { get; set; }
+ public decimal Base { get; set; }
+ public string TipoFactor { get; set; }
+ public string TasaOCuota { get; set; }
+ public decimal Importe { get; set; }
+
+ }
+
+ public class CFDIEmisor
+ {
+ public string RegimenFiscal { get; set; }
+
+ public string RegimenFiscalTexto
+ {
+ get
+ {
+ string retorno = "";
+
+ switch (RegimenFiscal)
+ {
+ case "601": retorno = "General de Ley Personas Morales"; break;
+ case "603": retorno = "Personas Morales con Fines no Lucrativos"; break;
+ case "605": retorno = "Sueldos y Salarios e Ingresos Asimilados a Salarios"; break;
+ case "606": retorno = "Arrendamiento"; break;
+ case "608": retorno = "Demás ingresos"; break;
+ case "609": retorno = "Consolidación"; break;
+ case "610": retorno = "Residentes en el Extranjero sin Establecimiento Permanente en México"; break;
+ case "611": retorno = "Ingresos por Dividendos (socios y accionistas)"; break;
+ case "612": retorno = "Personas Físicas con Actividades Empresariales y Profesionales"; break;
+ case "614": retorno = "Ingresos por intereses"; break;
+ case "616": retorno = "Sin obligaciones fiscales"; break;
+ case "620": retorno = "Sociedades Cooperativas de Producción que optan por diferir sus ingresos"; break;
+ case "621": retorno = "Incorporación Fiscal"; break;
+ case "622": retorno = "Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras"; break;
+ case "623": retorno = "Opcional para Grupos de Sociedades"; break;
+ case "624": retorno = "Coordinados"; break;
+ case "628": retorno = "Hidrocarburos"; break;
+ case "607": retorno = "Régimen de Enajenación o Adquisición de Bienes"; break;
+ case "629": retorno = "De los Regímenes Fiscales Preferentes y de las Empresas Multinacionales"; break;
+ case "630": retorno = "Enajenación de acciones en bolsa de valores"; break;
+ case "615": retorno = "Régimen de los ingresos por obtención de premios"; break;
+
+ }
+ return retorno;
+ }
+ }
+ public string Nombre { get; set; }
+ public string Rfc { get; set; }
+
+ }
+
+ public class CFDIImpuesto
+ {
+ public string Tipo { get; set; }
+ public string Impuesto { get; set; }
+ public string ImpuestoTexto
+ {
+ get
+ {
+ string retorno = "";
+
+ switch (Impuesto)
+ {
+ case "001": retorno = "ISR"; break;
+ case "002": retorno = "IVA"; break;
+ case "003": retorno = "IEPS"; break;
+ }
+ return retorno;
+ }
+ }
+ public string TipoFactor { get; set; }
+ public string TasaOCuota { get; set; }
+ public decimal Importe { get; set; }
+ }
+
+ public class CFDIPago
+ {
+ public CFDIPago()
+ {
+ doctosRelacionados = new List();
+ }
+ public string FechaPago { get; set; }
+ public string FormaDePagoP { get; set; }
+ public string FormaDePagoPText { get; set; }
+ public string MonedaP { get; set; }
+ public decimal Monto { get; set; }
+ public decimal TipoCambioP { get; set; }
+ public string NumOperacion { get; set; }
+ public string NomBancoOrdExt { get; set; }
+ public string RfcEmisorCtaOrd { get; set; }
+ public string CtaOrdenante { get; set; }
+ public string RfcEmisorCtaBen { get; set; }
+ public string CtaBeneficiario { get; set; }
+ public List doctosRelacionados { get; set; }
+ }
+
+ public class CFDIPagoDoctoRelacionado
+ {
+ public string IdDocumento { get; set; }
+ public string Serie { get; set; }
+ public string Folio { get; set; }
+ public string MonedaDR { get; set; }
+ public string MetodoDePagoDR { get; set; }
+ public string NumParcialidad { get; set; }
+ public decimal ImpSaldoAnt { get; set; }
+ public decimal ImpPagado { get; set; }
+ public decimal ImpSaldoInsoluto { get; set; }
+ }
+
+ public class CFDIReceptor
+ {
+ public string Rfc { get; set; }
+ public string Nombre { get; set; }
+ public string ResidenciaFiscal { get; set; }
+ public string NumRegIdTrib { get; set; }
+ public string UsoCFDI { get; set; }
+ public string UsoCFDITexto
+ {
+ get
+ {
+ string retorno = "N/A";
+
+ switch (UsoCFDI)
+ {
+ case "G01":
+ retorno = "Adquisición de mercancías";
+ break;
+ case "G02":
+ retorno = "Devoluciones, descuentos o bonificaciones";
+ break;
+ case "G03":
+ retorno = "Gastos en general";
+ break;
+ case "I01":
+ retorno = "Construcciones";
+ break;
+ case "I02":
+ retorno = "Mobiliario y equipo de oficina por inversiones";
+ break;
+ case "I03":
+ retorno = "Equipo de transporte";
+ break;
+ case "I04":
+ retorno = "Equipo de cómputo y accesorios";
+ break;
+ case "I05":
+ retorno = "Dados, troqueles, moldes, matrices y herramental";
+ break;
+ case "I06":
+ retorno = "Comunicaciones telefónicas";
+ break;
+ case "I07":
+ retorno = "Comunicaciones satelitales";
+ break;
+ case "I08":
+ retorno = "Otra maquinaria y equipo";
+ break;
+ case "D01":
+ retorno = "Honorarios médicos, dentales y gastos hospitalarios.";
+ break;
+ case "D02":
+ retorno = "Gastos médicos por incapacidad o discapacidad";
+ break;
+ case "D03":
+ retorno = "Gastos funerales.";
+ break;
+ case "D04":
+ retorno = "Donativos.";
+ break;
+ case "D05":
+ retorno = "Intereses reales efectivamente pagados por créditos hipotecarios (casa habitación).";
+ break;
+ case "D06":
+ retorno = "Aportaciones voluntarias al SAR.";
+ break;
+ case "D07":
+ retorno = "Primas por seguros de gastos médicos.";
+ break;
+ case "D08":
+ retorno = "Gastos de transportación escolar obligatoria.";
+ break;
+ case "D09":
+ retorno = "Depósitos en cuentas para el ahorro, primas que tengan como base planes de pensiones.";
+ break;
+ case "D10":
+ retorno = "Pagos por servicios educativos (colegiaturas)";
+ break;
+ case "P01":
+ retorno = "Por definir";
+ break;
+
+ default:
+ break;
+ }
+ return retorno;
+ }
+ }
+
+ }
+
+ public class CFDIRelacionado
+ {
+ public string TipoRelacion { get; set; }
+ public string TipoRelacionTexto
+ {
+
+ get
+ {
+ string retorno;
+
+ switch (TipoRelacion)
+ {
+ case "01": retorno = "Nota de crédito de los documentos relacionados"; break;
+ case "02": retorno = "Nota de débito de los documentos relacionados"; break;
+ case "03": retorno = "Devolución de mercancía sobre facturas o traslados previos"; break;
+ case "04": retorno = "Sustitución de los CFDI previos"; break;
+ case "05": retorno = "Traslados de mercancias facturados previamente"; break;
+ case "06": retorno = "Factura generada por los traslados previos"; break;
+ case "07": retorno = "CFDI por aplicación de anticipo"; break;
+ default:
+ retorno = "Por definir";
+ break;
+ }
+ return retorno;
+ }
+ }
+ public string UUID { get; set; }
+
+ }
}
\ No newline at end of file
diff --git a/Ventas/RepTopClientesVentas.aspx.vb b/Ventas/RepTopClientesVentas.aspx.vb
index 69bfc29ed..c2f37c1ef 100644
--- a/Ventas/RepTopClientesVentas.aspx.vb
+++ b/Ventas/RepTopClientesVentas.aspx.vb
@@ -105,10 +105,12 @@ Partial Class Ventas_RepTopClientesVentas
End Sub
Private Sub CambioGrafica()
+ Dim DtClientesAux As New DataTable
+ DtClientesAux = DtClientes.FiltraParametros("CveCliente > 0")
Dim Dt As New DataTable()
Dt.Columns.Add("Cliente")
Dt.Columns.Add("Importe")
- For Each Dr As DataRow In DtClientes.Rows
+ For Each Dr As DataRow In DtClientesAux.Rows
Dim Row As DataRow = Nothing
Row = Dt.NewRow()
Row("Cliente") = Dr("NombreComercial").ToString
diff --git a/packages.config b/packages.config
index 888b93e1c..0878a2900 100644
--- a/packages.config
+++ b/packages.config
@@ -10,6 +10,10 @@
+
+
+
+
diff --git a/vwd.webinfo b/vwd.webinfo
index c6b051639..c9e193dc4 100644
--- a/vwd.webinfo
+++ b/vwd.webinfo
@@ -48,10 +48,6 @@
-
-
-
-