This commit is contained in:
2024-03-22 09:56:01 -07:00
25 changed files with 3619 additions and 2940 deletions

View File

@@ -171,7 +171,7 @@ Partial Class Ventas_FacturacionGlobal
SbRemisiones.Remove(SbRemisiones.Length - 1, 1)
Dim DtRemisionesPS As New DataTable()
Dim DtPagos As New DataTable()
Dim DtPagosFacturaGlobal As New DataTable()
Dim ObjClientes As New ClsClientes
If ObjClientes.GetVentasRemisionesTotales(CveCliente, SbRemisiones.ToString(), 1) Then
@@ -179,7 +179,7 @@ Partial Class Ventas_FacturacionGlobal
End If
If ObjClientes.GetVentasRemisionesPagos(CveCliente, SbRemisiones.ToString()) Then
DtPagos = ObjClientes.DtResultados.Copy()
DtPagosFacturaGlobal = ObjClientes.DtResultados.Copy()
End If
ObjClientes.Dispose()
@@ -188,7 +188,7 @@ Partial Class Ventas_FacturacionGlobal
Exit Sub
End If
If DtPagos Is Nothing OrElse DtPagos.Rows.Count = 0 Then
If DtPagosFacturaGlobal Is Nothing OrElse DtPagosFacturaGlobal.Rows.Count = 0 Then
Alert("No se pudieron cargar los pagos", TipoMensaje.MsgError)
Exit Sub
End If
@@ -211,7 +211,7 @@ Partial Class Ventas_FacturacionGlobal
ObjFactura.RemisionesLista = RemisionesLista
ObjFactura.DtRemisionesPS = DtRemisionesPS
ObjFactura.DtRemisiones = DtRemisiones.FiltraParametros($"CveVenta IN ({SbRemisiones.ToString()})")
ObjFactura.DtPagos = DtPagos
ObjFactura.DtPagosFacturaGlobal = DtPagosFacturaGlobal
For Each Dr As DataRow In DtRemisionesPS.Rows
ObjFactura.AgregarPS(Dr("CvePS").ToString().ToEntero(), Dr("Cantidad").ToString().ToDecimal(), Dr("PU").ToString().ToDecimal(), Dr("Descuento").ToString().ToDecimal, Dr("Obs").ToString(), CveUM:=Dr("CveUM").ToString().ToEntero(),
@@ -221,7 +221,7 @@ Partial Class Ventas_FacturacionGlobal
ObjFactura.CalculaTotales()
ObjFactura.PreparaTimbre()
If ObjFactura.Total <> DtPagos.SUMD("Importe") Then
If ObjFactura.Total <> DtPagosFacturaGlobal.SUMD("Importe") Then
Alert("Los pagos no coinciden con el total de la factura", TipoMensaje.MsgError)
Exit Sub
End If

View File

@@ -813,6 +813,11 @@
function impresionDirecta(urlPDF) {
printJS({ printable: urlPDF, type: 'pdf', showModal: true });
}
function impresionBase64(pdfBase64) {
printJS({ printable: pdfBase64, type: 'pdf', showModal: true, base64: true });
}
function CalculaTotalPagoContado() {
debugger;
var totalEfectivo = ToDouble($get("TxtImporteEfectivo").value);

View File

@@ -2,6 +2,7 @@
Option Strict On
Imports System.Data
Imports System.IO
Imports Extensiones
Partial Class Ventas_PVCobranza
@@ -548,13 +549,13 @@ Partial Class Ventas_PVCobranza
Dim ExistePDF As Boolean = False
Dim ArchivoPDF As String = String.Format("{0}/PDF/{1}/{2}.pdf", UsuarioActual.Empresa.Ruta, ObjFactura.TipoDocto, ObjFactura.SerieFolio)
If ObjFactura.TipoDocto = "Rem" AndAlso System.IO.File.Exists(ArchivoPDF) Then
If File.Exists(ArchivoPDF) AndAlso ObjFactura.TipoDocto = "Rem" Then
ExistePDF = True
Else
'REGENERAR EL PDF
Try
GenerarPDFVenta(CveVenta, AplicaPagare:="1", GuardarPDF:=True, RegenerarPDF:=True, DescargarArchivo:=False, EsTicket:=True)
If System.IO.File.Exists(ArchivoPDF) Then
If File.Exists(ArchivoPDF) Then
ExistePDF = True
End If
Catch ex As Exception
@@ -563,8 +564,24 @@ Partial Class Ventas_PVCobranza
End If
If ExistePDF Then
Dim urlPDF As String = $"/Ashx/SIGDesc.ashx?metodo=descargarPDFVenta&CveVenta={CveVenta}"
RegistraScript($"impresionDirecta('{urlPDF}');", "Imprimir")
Dim pdf64 As String = ""
'DUPLICA EL PDF
Using ms As New MemoryStream
Using pdfdoc As New iText.Kernel.Pdf.PdfDocument(New iText.Kernel.Pdf.PdfWriter(ms))
pdfdoc.InitializeOutlines()
Dim reporteByte As New MemoryStream(System.IO.File.ReadAllBytes(ArchivoPDF))
Dim docPDF As New iText.Kernel.Pdf.PdfDocument(New iText.Kernel.Pdf.PdfReader(reporteByte))
docPDF.CopyPagesTo(1, docPDF.GetNumberOfPages(), pdfdoc)
docPDF.CopyPagesTo(1, docPDF.GetNumberOfPages(), pdfdoc)
docPDF.Close()
pdfdoc.Close()
End Using
pdf64 = Convert.ToBase64String(ms.ToArray())
End Using
RegistraScript($"impresionBase64('{pdf64}');", "Imprimir")
Else
Alert("No se pudo imprimir el pdf directamente. favor de descargar manualmente el pdf.", TipoMensaje.MsgAdvertencia)
End If

File diff suppressed because it is too large Load Diff

View File

@@ -132,6 +132,15 @@ Partial Class ProductosyServicios
ViewState("GeneraServicioAF") = value
End Set
End Property
Public Property Imagen As String
Get
Return IfNull(ViewState("Imagen"), "", ViewState("Imagen")).ToString()
End Get
Set(value As String)
ViewState("Imagen") = value
End Set
End Property
#End Region
Private ReadOnly Property PermiteClasificacion2 As Boolean
@@ -952,6 +961,17 @@ Partial Class ProductosyServicios
DdlTipoFactor.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTipoFactor").ToString)
Me.Imagen = ObjProductosServicios.DtResultados.Rows(0)("Imagen").ToString
If Not String.IsNullOrEmpty(Me.Imagen) Then
imgImagen.Attributes.Add("src", String.Format("/ashx/SIGWeb.ashx?Metodo=GetImg&r={0}", Extensiones.Encripta(Me.Imagen)))
hplImagen.Attributes.Add("href", String.Format("/ashx/SIGWeb.ashx?Metodo=GetImg&r={0}", Extensiones.Encripta(Me.Imagen)))
End If
DivImagen.Visible = True
upGaleria.Update()
RegistraScript("clickgaleria();", "CG")
If ObjProductosServicios.DtResultados.Rows(0)("CveTipoFactor").ToString.Contiene("1", "2") Then
LIva.Visible = True
DdlIVA.Visible = True
@@ -2482,83 +2502,83 @@ Partial Class ProductosyServicios
#Region " ECOMMERCE "
Private Sub InicializaEcommerce()
AplicaEcommerce = False
'AplicaEcommerce = False
If UsuarioActual.Empresa.Funcionalidad(700).ToEntero = 1 And CvePS > 0 Then
'If UsuarioActual.Empresa.Funcionalidad(700).ToEntero = 1 And CvePS > 0 Then
TabEcommerce.Visible = True
LBBitacoraEcommerce.Visible = True
' 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 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 INSIGNIAS
' CargaPSInsigniasEcommerce()
'INICIALIZA PRODUCTOS IMAGENES
CargarGaleriaImagenesEcommerce()
' 'INICIALIZA PRODUCTOS IMAGENES
' CargarGaleriaImagenesEcommerce()
'INICIALIZA PRODUCTOS RELACIONADOS
DdlEcommercePSRelacionado.setEsWebService(True)
CargaPSRelacionadosEcommerce()
' 'INICIALIZA PRODUCTOS RELACIONADOS
' DdlEcommercePSRelacionado.setEsWebService(True)
' CargaPSRelacionadosEcommerce()
UpEcommerce.Update()
' UpEcommerce.Update()
End If
'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()
'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
'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()
' TxtEcommerceDescripcion.Text = DrEcommerce("Descripcion").ToString
' TxtEcommercePrecioBase.Text = DrEcommerce("PrecioBase").ToString.FormatoNumero
' TxtEcommercePrecioPromocion.Text = DrEcommerce("PrecioPromocion").ToString.FormatoNumero
' ChkEcommerceDisponible.Checked = CBool(DrEcommerce("Disponible").ToString)
'End If
'GvEcommercePSRealacionados.DataBind()
'UpEcommercePSRelacionados.Update()
End Sub
Private Function GuardaEcommerce() As Boolean
Dim TieneError As Boolean = False
If UsuarioActual.Empresa.Funcionalidad(700) = "1" Then
'SI NO SE HA GUARDADO EN ECOMMERCE Y NO TIENE NINGUN VALOR OMITE
If Not AplicaEcommerce And Not ChkEcommerceDisponible.Checked And TxtEcommerceDescripcion.Text.Length = 0 And TxtEcommercePrecioBase.Text.Length = 0 And TxtEcommercePrecioPromocion.Text.Length = 0 Then
Return False
End If
''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
'If ChkEcommerceDisponible.Checked Then
' If Not ValidaGuardarEcommerce() Then
' Return True
' End If
'End If
Dim Descripcion As String = TxtEcommerceDescripcion.Text.Trim
Dim PrecioBase As Double = TxtEcommercePrecioBase.Text.Trim.ToDouble
Dim PrecioPromocion As Double = TxtEcommercePrecioPromocion.Text.Trim.ToDouble
Dim Disponible As Boolean = ChkEcommerceDisponible.Checked
'Dim Descripcion As String = TxtEcommerceDescripcion.Text.Trim
'Dim PrecioBase As Double = TxtEcommercePrecioBase.Text.Trim.ToDouble
'Dim PrecioPromocion As Double = TxtEcommercePrecioPromocion.Text.Trim.ToDouble
'Dim Disponible As Boolean = ChkEcommerceDisponible.Checked
Dim ObjEcommerce As New ClsECommerce
If Not ObjEcommerce.ProductosAddUpdate(CvePS, Descripcion, PrecioBase, PrecioPromocion, Disponible, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
TieneError = True
End If
ObjEcommerce.Dispose()
'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
@@ -2569,28 +2589,28 @@ Partial Class ProductosyServicios
Dim Mensaje As New StringBuilder
'DESCRIPCION
Dim Descripcion As String = TxtEcommerceDescripcion.Text.Trim
If Descripcion.Length = 0 Then
Mensaje.Append("- El campo <b>Descripción</b> es obligatorio. Por favor introduzcalo y vuelva a intentar. <br>")
End If
If Descripcion.Length > 255 Then
Mensaje.Append("- El campo <b>Descripción</b> admite maximo 255 caracteres. Por favor verifique y vuelva a intentar. <br>")
End If
'Dim Descripcion As String = TxtEcommerceDescripcion.Text.Trim
'If Descripcion.Length = 0 Then
' Mensaje.Append("- El campo <b>Descripción</b> es obligatorio. Por favor introduzcalo y vuelva a intentar. <br>")
'End If
'If Descripcion.Length > 255 Then
' Mensaje.Append("- El campo <b>Descripción</b> admite maximo 255 caracteres. Por favor verifique y vuelva a intentar. <br>")
'End If
'PRECIO BASE
Dim PrecioBase As Double = TxtEcommercePrecioBase.Text.Trim.ToDouble
If PrecioBase = 0 Then
Mensaje.Append("- El campo <b>Precio</b> es obligatorio. Por favor verifique y vuelva a intentar. <br>")
End If
If PrecioBase < 0 Then
Mensaje.Append("- El campo <b>Precio</b> no puede ser negativo. Por favor verifique y vuelva a intentar. <br>")
End If
''PRECIO BASE
'Dim PrecioBase As Double = TxtEcommercePrecioBase.Text.Trim.ToDouble
'If PrecioBase = 0 Then
' Mensaje.Append("- El campo <b>Precio</b> es obligatorio. Por favor verifique y vuelva a intentar. <br>")
'End If
'If PrecioBase < 0 Then
' Mensaje.Append("- El campo <b>Precio</b> no puede ser negativo. Por favor verifique y vuelva a intentar. <br>")
'End If
'PRECIO FINAL
Dim PrecioPromocion As Double = TxtEcommercePrecioPromocion.Text.Trim.ToDouble
If PrecioPromocion < 0 Then
Mensaje.Append("- El campo <b>Precio Final</b> no puede ser negativo. Por favor verifique y vuelva a intentar. <br>")
End If
''PRECIO FINAL
'Dim PrecioPromocion As Double = TxtEcommercePrecioPromocion.Text.Trim.ToDouble
'If PrecioPromocion < 0 Then
' Mensaje.Append("- El campo <b>Precio Final</b> no puede ser negativo. Por favor verifique y vuelva a intentar. <br>")
'End If
'VALIDACION
@@ -2606,225 +2626,225 @@ Partial Class ProductosyServicios
#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()
'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()
'GvEcommercePSInsignias.DataBind()
'UpEcommerceInsignias.Update()
End Sub
Protected Sub BtnEcommerceInsignias_Click(sender As Object, e As EventArgs)
If Not ValidaAgregarProductosInsigniasEcommerce() Then
Exit Sub
End If
'If Not ValidaAgregarProductosInsigniasEcommerce() Then
' Exit Sub
'End If
Dim TieneError As Boolean = False
Dim CveInsignia As Integer = DdlEcommerceInsignia.SelectedValue.ToEntero
'Dim TieneError As Boolean = False
'Dim CveInsignia As Integer = DdlEcommerceInsignia.SelectedValue.ToEntero
'AGREGAR
Dim ObjEcommerce As New ClsECommerce
If ObjEcommerce.ProductosInsigniasAdd(Me.CvePS, CveInsignia, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
Alert("La Insignia se agregó correctamente.", TipoMensaje.MsgInformacion)
Else
TieneError = True
End If
ObjEcommerce.Dispose()
''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
'If Not TieneError Then
' DdlEcommerceInsignia.SelectedValueExist(-1)
' CargaPSInsigniasEcommerce()
'End If
End Sub
Private Function ValidaAgregarProductosInsigniasEcommerce() As Boolean
Dim Retorno As Boolean = True
Dim Mensaje As New StringBuilder
'Dim Mensaje As New StringBuilder
'INSIGNIA
Dim CveInsignia As Integer = DdlEcommerceInsignia.SelectedValue.ToEntero
If CveInsignia = 0 Then
Mensaje.Append("- El campo <b>Insignia</b> es obligatorio. Por favor introduzcalo y vuelva a intentar. <br>")
End If
For Each GvRow As GridViewRow In GvEcommercePSInsignias.Rows
If GvRow.DataKey("CveInsignia").ToString.ToEntero = CveInsignia Then
Mensaje.Append($"- La Insignia <b>{DdlEcommerceInsignia.SelectedItem.Text}</b> ya es parte del producto y no se puede duplicar. Por favor verifique y vuelva a intentar. <br>")
Exit For
End If
Next
''INSIGNIA
'Dim CveInsignia As Integer = DdlEcommerceInsignia.SelectedValue.ToEntero
'If CveInsignia = 0 Then
' Mensaje.Append("- El campo <b>Insignia</b> es obligatorio. Por favor introduzcalo y vuelva a intentar. <br>")
'End If
'For Each GvRow As GridViewRow In GvEcommercePSInsignias.Rows
' If GvRow.DataKey("CveInsignia").ToString.ToEntero = CveInsignia Then
' Mensaje.Append($"- La Insignia <b>{DdlEcommerceInsignia.SelectedItem.Text}</b> ya es parte del producto y no se puede duplicar. Por favor verifique y vuelva a intentar. <br>")
' Exit For
' End If
'Next
'VALIDACION
If Mensaje.ToString.Length > 0 Then
Retorno = False
Alert(Mensaje.ToString, TipoMensaje.MsgAdvertencia)
End If
''VALIDACION
'If Mensaje.ToString.Length > 0 Then
' Retorno = False
' Alert(Mensaje.ToString, TipoMensaje.MsgAdvertencia)
'End If
Return Retorno
End Function
Protected Sub GvEcommercePSInsignias_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEcommercePSInsignias.RowDeleting
Dim TieneError As Boolean = False
Dim GvRow As GridViewRow = GvEcommercePSInsignias.Rows(e.RowIndex)
'Protected Sub GvEcommercePSInsignias_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEcommercePSInsignias.RowDeleting
' Dim TieneError As Boolean = False
' Dim GvRow As GridViewRow = GvEcommercePSInsignias.Rows(e.RowIndex)
Dim ObjEcommerce As New ClsECommerce
If ObjEcommerce.ProductosInsigniasRemove(GvRow.DataKey("CvePS").ToString.ToEntero, GvRow.DataKey("CveInsignia").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
Alert("La Insignia se eliminó correctamente.", TipoMensaje.MsgInformacion)
Else
TieneError = True
End If
ObjEcommerce.Dispose()
' 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
' If Not TieneError Then
' CargaPSInsigniasEcommerce()
' End If
'End Sub
#End Region
#Region " PRODUCTOS IMAGENES "
Private Sub CargarGaleriaImagenesEcommerce()
Dim TmpDT As DataTable = Nothing
'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()
' 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
' RptFotos.DataSource = TmpDT
' RptFotos.DataBind()
' UpEcommerceGaleriaImagenes.Update()
'End Sub
Protected Sub BtnEcommerceImagenes_Click(sender As Object, e As EventArgs)
Dim FilesGral As List(Of Archivo) = TxtEcommerceImagenes.getfiles().Archivos
Dim FileMove As String = ""
Dim Archivo As String = ""
Dim DirectorioTemporal As String = ""
'Dim FilesGral As List(Of Archivo) = TxtEcommerceImagenes.getfiles().Archivos
'Dim FileMove As String = ""
'Dim Archivo As String = ""
'Dim DirectorioTemporal As String = ""
Dim DirectorioDestino As String = $"{UsuarioActual.Empresa.Ruta}\Ecommerce\Productos\Imagenes\"
If Not Directory.Exists(DirectorioDestino) Then
Directory.CreateDirectory(DirectorioDestino)
End If
'Dim DirectorioDestino As String = $"{UsuarioActual.Empresa.Ruta}\Ecommerce\Productos\Imagenes\"
'If Not Directory.Exists(DirectorioDestino) Then
' Directory.CreateDirectory(DirectorioDestino)
'End If
Dim ObjEcommerce As New ClsECommerce
For Each FileItem As Archivo In FilesGral
Archivo = NowADS().Ticks.ToString
Try
FileMove = FileItem.filename
DirectorioTemporal = $"{AppDomain.CurrentDomain.BaseDirectory}Temp\{FileMove}"
'Dim ObjEcommerce As New ClsECommerce
'For Each FileItem As Archivo In FilesGral
' Archivo = NowADS().Ticks.ToString
' Try
' FileMove = FileItem.filename
' DirectorioTemporal = $"{AppDomain.CurrentDomain.BaseDirectory}Temp\{FileMove}"
Archivo = $"{Archivo}{IO.Path.GetExtension(DirectorioTemporal)}"
DirectorioDestino += Archivo
If ObjEcommerce.ProductosImagenesAdd(CvePS, $"Ecommerce\Productos\Imagenes\{Archivo}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
CargarGaleriaImagenesEcommerce()
My.Computer.FileSystem.MoveFile(DirectorioTemporal, DirectorioDestino)
End If
Catch ex As Exception
End Try
Next
ObjEcommerce.Dispose()
' 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()
'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)
'Dim CveImagenActivoFijo As Integer = 0
'CveImagenActivoFijo = Integer.Parse(DirectCast(sender, Button).CommandArgument)
If (CveImagenActivoFijo > 0) Then
Dim ObjEcommerce As New ClsECommerce
If ObjEcommerce.ProductosImagenesRemove(CveImagenActivoFijo, UsuarioActual.CveEmpresa) Then
File.Delete(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, ObjEcommerce.DtResultados.Rows(0)("URL")))
CargarGaleriaImagenesEcommerce()
RegistraScript("initcarusel();")
End If
ObjEcommerce.Dispose()
End If
'If (CveImagenActivoFijo > 0) Then
' Dim ObjEcommerce As New ClsECommerce
' If ObjEcommerce.ProductosImagenesRemove(CveImagenActivoFijo, UsuarioActual.CveEmpresa) Then
' File.Delete(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, ObjEcommerce.DtResultados.Rows(0)("URL")))
' CargarGaleriaImagenesEcommerce()
' RegistraScript("initcarusel();")
' End If
' ObjEcommerce.Dispose()
'End If
End Sub
#End Region
#Region " PRODUCTOS RELACIONADOS "
Private Sub CargaPSRelacionadosEcommerce()
Dim ObjEcommerce As New ClsECommerce
If ObjEcommerce.ProductosRelacionadosGet(CvePS, UsuarioActual.CveEmpresa) Then
GvEcommercePSRealacionados.DataSource = ObjEcommerce.DtResultados
Else
GvEcommercePSRealacionados.DataSource = Nothing
End If
ObjEcommerce.Dispose()
'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()
'GvEcommercePSRealacionados.DataBind()
'UpEcommercePSRelacionados.Update()
End Sub
Protected Sub BtnEcommercePSRelacionados_Click(sender As Object, e As EventArgs)
If Not ValidaAgregarProductosRelacionadosEcommerce() Then
Exit Sub
End If
'If Not ValidaAgregarProductosRelacionadosEcommerce() Then
' Exit Sub
'End If
Dim TieneError As Boolean = False
Dim CvePS As Integer = DdlEcommercePSRelacionado.SelectedValue.ToEntero
'Dim TieneError As Boolean = False
'Dim CvePS As Integer = DdlEcommercePSRelacionado.SelectedValue.ToEntero
'AGREGAR
Dim ObjEcommerce As New ClsECommerce
If ObjEcommerce.ProductosRelacionadosAdd(Me.CvePS, CvePS, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
Alert("La relación se agregó correctamente.", TipoMensaje.MsgInformacion)
Else
TieneError = True
End If
ObjEcommerce.Dispose()
''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
'If Not TieneError Then
' DdlEcommercePSRelacionado.SelectedValue = "-1"
' DdlEcommercePSRelacionado.SelectedText = ""
' CargaPSRelacionadosEcommerce()
'End If
End Sub
Private Function ValidaAgregarProductosRelacionadosEcommerce() As Boolean
Dim Retorno As Boolean = True
Dim Mensaje As New StringBuilder
'Dim Retorno As Boolean = True
'Dim Mensaje As New StringBuilder
'PS
Dim CvePS As Integer = DdlEcommercePSRelacionado.SelectedValue.ToEntero
If CvePS = 0 Then
Mensaje.Append("- El campo <b>Producto</b> es obligatorio. Por favor introduzcalo y vuelva a intentar. <br>")
End If
For Each GvRow As GridViewRow In GvEcommercePSRealacionados.Rows
If GvRow.DataKey("CvePS").ToString.ToEntero = CvePS Then
Mensaje.Append($"- El producto <b>{DdlEcommercePSRelacionado.SelectedText}</b> ya esta relacionado y no se puede duplicar. Por favor verifique y vuelva a intentar. <br>")
Exit For
End If
Next
''PS
'Dim CvePS As Integer = DdlEcommercePSRelacionado.SelectedValue.ToEntero
'If CvePS = 0 Then
' Mensaje.Append("- El campo <b>Producto</b> es obligatorio. Por favor introduzcalo y vuelva a intentar. <br>")
'End If
'For Each GvRow As GridViewRow In GvEcommercePSRealacionados.Rows
' If GvRow.DataKey("CvePS").ToString.ToEntero = CvePS Then
' Mensaje.Append($"- El producto <b>{DdlEcommercePSRelacionado.SelectedText}</b> ya esta relacionado y no se puede duplicar. Por favor verifique y vuelva a intentar. <br>")
' Exit For
' End If
'Next
'VALIDACION
If Mensaje.ToString.Length > 0 Then
Retorno = False
Alert(Mensaje.ToString, TipoMensaje.MsgAdvertencia)
End If
''VALIDACION
'If Mensaje.ToString.Length > 0 Then
' Retorno = False
' Alert(Mensaje.ToString, TipoMensaje.MsgAdvertencia)
'End If
Return Retorno
'Return Retorno
End Function
Protected Sub GvEcommercePSRealacionados_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEcommercePSRealacionados.RowDeleting
Dim TieneError As Boolean = False
Dim GvRow As GridViewRow = GvEcommercePSRealacionados.Rows(e.RowIndex)
'Protected Sub GvEcommercePSRealacionados_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEcommercePSRealacionados.RowDeleting
' 'Dim TieneError As Boolean = False
' 'Dim GvRow As GridViewRow = GvEcommercePSRealacionados.Rows(e.RowIndex)
Dim ObjEcommerce As New ClsECommerce
If ObjEcommerce.ProductosRelacionadosRemove(GvRow.DataKey("CvePS1").ToString.ToEntero, GvRow.DataKey("CvePS2").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
Alert("La relación se eliminó correctamente.", TipoMensaje.MsgInformacion)
Else
TieneError = True
End If
ObjEcommerce.Dispose()
' '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
' 'If Not TieneError Then
' ' CargaPSRelacionadosEcommerce()
' 'End If
'End Sub
#End Region
@@ -3599,4 +3619,64 @@ Partial Class ProductosyServicios
End If
End Sub
Private Sub BtnUpFotos_Click(sender As Object, e As EventArgs) Handles BtnUpFotos.Click
Dim FilesGral As List(Of Archivo) = TxtUpFotos.getfiles().Archivos
Dim FileMove As String = ""
Dim NewName As String
For Each FileItem As Archivo In FilesGral
NewName = NowADS().Ticks.ToString
Dim ObjPS As New ClsProductosServicios
Try
FileMove = FileItem.filename
Dim DirectorioOld As New StringBuilder
Dim DirectorioNew As New StringBuilder
DirectorioOld.AppendFormat("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, FileMove)
DirectorioNew.AppendFormat("{0}PS\", UsuarioActual.Empresa.Ruta)
If Not Directory.Exists(DirectorioNew.ToString) Then
Directory.CreateDirectory(DirectorioNew.ToString)
End If
NewName = String.Format("{0}{1}", NewName, IO.Path.GetExtension(DirectorioOld.ToString()))
DirectorioNew.Append(NewName)
Me.Imagen = String.Format("PS/{0}", NewName)
If ObjPS.UpdatePSImagen(Me.CvePS, Me.Imagen) Then
My.Computer.FileSystem.MoveFile(DirectorioOld.ToString, DirectorioNew.ToString)
End If
imgImagen.Attributes.Add("src", String.Format("/ashx/SIGWeb.ashx?Metodo=GetImg&r={0}", Extensiones.Encripta(Me.Imagen)))
hplImagen.Attributes.Add("href", String.Format("/ashx/SIGWeb.ashx?Metodo=GetImg&r={0}", Extensiones.Encripta(Me.Imagen)))
upGaleria.Update()
Catch ex As Exception
OnError("Ocurrió un error al guardar la imagen", ex)
End Try
ObjPS.Dispose()
RegistraScript("$(""#Modalupfotos"").modal(""hide"");initcarusel();")
TxtUpFotos.Text = "[]"
UpUpFotos.Update()
Next
End Sub
Protected Sub BtnEliminarFoto_Click(sender As Object, e As System.EventArgs)
If (Me.CvePS > 0) Then
Dim ObjPS As New ClsProductosServicios
If ObjPS.UpdatePSImagen(Me.CvePS, "") Then
File.Delete(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Me.Imagen))
Me.Imagen = ""
imgImagen.Attributes.Add("src", "")
hplImagen.Attributes.Add("href", "")
RegistraScript("initcarusel();")
End If
ObjPS.Dispose()
upGaleria.Update()
End If
End Sub
End Class

View File

@@ -979,6 +979,41 @@
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpImagen" runat="server" UpdateMode="Conditional" class="portlet light xspadding bordered whitoutcol" style="margin-left: auto" Visible="false">
<ContentTemplate>
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Imagen del producto</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body form-horizontal form-row-sepe formnombottom" style="padding-top: 0px; margin-top: -5px;">
<div class="portfolio-content portfolio-1">
<div id="js-filters-juicy-projects" class="cbp-l-filters-button">
</div>
<div id="js-grid-juicy-projects" class="cbp">
<div class="cbp-item graphic">
<div class="cbp-caption">
<div class="cbp-caption-defaultWrap">
<img runat="server" id="imgImagen" style="max-height:250px !important; max-width:250px !important;">
</div>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:UpdatePanel ID="Updatetabs" runat="server" UpdateMode="Conditional">
@@ -7617,7 +7652,7 @@
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="PU" DataField="PU" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
<%-- <asp:TemplateField HeaderText="PU Editado" Visible="false">
<%-- <asp:TemplateField HeaderText="PU Editado" Visible="false">
<ItemTemplate>
<asp:TextBox ID="TxtPrecioEditado" runat="server" Text='<%#Eval("PU").ToString%>' MaxLength="12" Width="50%" Height="24px" CssClass="ImporteDevolucion"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumeros1Editado" runat="server" TargetControlID="TxtPrecioEditado" FilterType="Custom, Numbers" ValidChars=".," />
@@ -8035,8 +8070,7 @@
</div>
<div id="DivFormaCliente" runat="server" visible="false" class="row" style="padding-left: 16px;">
<div class="form-group form-md-line-input input-iconright col-xs-6">
<asp:DropDownList ID="DdlMetodoCliente" runat="server" CssClass=" form-control input-sm select2me" AutoPostBack="true" AppendDataBoundItems="true" CausesValidation="true" DataTextField="MetodoPagoSAT" DataValueField="CveMetodoPago" Width="100%">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
<asp:DropDownList ID="DdlMetodoCliente" runat="server" CssClass=" form-control input-sm select2me" AutoPostBack="true" CausesValidation="true" DataTextField="MetodoPagoSAT" DataValueField="CveMetodoPago" Width="100%">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="DdlMetodoCliente" InitialValue="-1" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Método Pago''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarCliente"></asp:RequiredFieldValidator>
<label for="<%= DdlMetodoCliente.ClientID.ToString()%>">Método Pago:</label>
@@ -8806,7 +8840,7 @@
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpModalAddMedico" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content" style="background-color: rgba(255, 255, 255, 0.0);width: 100vw!important;height: 100vh;" >
<div class="modal-content" style="background-color: rgba(255, 255, 255, 0.0); width: 100vw!important; height: 100vh;">
<UserControl:AddMedico runat="server" ID="AddMedicoControl" />
</div>
<asp:Button ID="BtnRecargaMedicos" Style="display: none;" ClientIDMode="Static" runat="server" OnClick="BtnRecargaMedicos_Click" />
@@ -8820,7 +8854,7 @@
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpModalAddProcedimiento" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content" style="background-color: rgba(255, 255, 255, 0.0);width: 100vw!important;height: 100vh;" >
<div class="modal-content" style="background-color: rgba(255, 255, 255, 0.0); width: 100vw!important; height: 100vh;">
<UserControl:AddProcedimiento runat="server" ID="AddProcedimientoControl" />
</div>
<asp:Button ID="BtnRecargaProcedimientos" Style="display: none;" ClientIDMode="Static" runat="server" OnClick="BtnRecargaProcedimientos_Click" />
@@ -8843,6 +8877,10 @@
printJS({printable:urlPDF, type:'pdf', showModal:true});
}
function impresionBase64(pdfBase64) {
printJS({printable:pdfBase64, type:'pdf', showModal:true, base64: true});
}
function abrirDdlPS(){
$(document).ready(function() {
$('#C_Tab_TabGenerales_DdlPS > select').select2('open').next().find(':input.select2-search__field').focus();
@@ -10825,6 +10863,78 @@
$('#BtnRecargaProcedimientos').click();
}
function clickgaleria() {
initcarusel();
initcarusel2 = function () { };
}
var initcarusel = function () {
'use strict';
if ($('#js-grid-juicy-projects').data('hascube') != '1') {
$('#js-grid-juicy-projects').cubeportfolio({
filters: '#js-filters-juicy-projects',
loadMore: '#js-loadMore-juicy-projects',
loadMoreAction: 'click',
layoutMode: 'grid',
defaultFilter: '*',
animationType: 'quicksand',
gapHorizontal: 35,
gapVertical: 30,
gridAdjustment: 'responsive',
mediaQueries: [{
width: 1500,
cols: 5
}, {
width: 1100,
cols: 4
}, {
width: 800,
cols: 3
}, {
width: 480,
cols: 2
}, {
width: 320,
cols: 1
}],
caption: 'overlayBottomReveal',
displayType: 'sequentially',
displayTypeSpeed: 80,
// lightbox
lightboxDelegate: '.cbp-lightbox',
lightboxGallery: true,
lightboxTitleSrc: 'data-title',
lightboxCounter: '<div class="cbp-popup-lightbox-counter">{{current}} of {{total}}</div>',
// singlePage popup
singlePageDelegate: '.cbp-singlePage',
singlePageDeeplinking: true,
singlePageStickyNavigation: true,
singlePageCounter: '<div class="cbp-popup-singlePage-counter">{{current}} of {{total}}</div>',
singlePageCallback: function (url, element) {
// to update singlePage content use the following method: this.updateSinglePage(yourContent)
var t = this;
$.ajax({
url: url,
type: 'GET',
dataType: 'html',
timeout: 10000
})
.done(function (result) {
t.updateSinglePage(result);
})
.fail(function () {
t.updateSinglePage('AJAX Error! Please refresh the page!');
});
},
});
$('#js-grid-juicy-projects').data('hascube', '1')
}
}
var initcarusel2 = initcarusel;
</script>
</asp:Content>

View File

@@ -3171,6 +3171,11 @@ Partial Class Ventas
DivNumTurnos.Visible = True
End If
If CveVenta <= 0 AndAlso UsuarioActual.Empresa.Funcionalidad(716) = "1" Then
UpImagen.Visible = True
UpImagen.Update()
End If
'SELECCIONA VENDEDOR DEL USUARIO CUANDO SEA VENTA NUEVA Y SIN CLIENTE
'If UsuarioActual.CveVendedor > 0 Then
' If CveVenta = -1 AndAlso Not DdlVendedor.SelectedValue.ToEntero() > 0 Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
@@ -6405,6 +6410,7 @@ Partial Class Ventas
DdlMetodoCliente.DataSource = GlobalDTVtaMetodoPago
DdlMetodoCliente.DataBind()
DdlMetodoCliente.Items.Insert(0, New ListItem("Seleccione", "-1"))
If UsuarioActual.CveRol = 1 AndAlso CveMetodoPago = 1 AndAlso DdlTipoComprobante.SelectedValue = "Cot" AndAlso UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso TbDescuentosAdicionales.Visible Then
If TmpDT.SUMD("Descuento") > 0 Then
@@ -6827,6 +6833,10 @@ Partial Class Ventas
DdlUsoCFDI.Enabled = False
RegimenFiscalCliente = "616"
ClienteCodigoRegimenFiscal = "616"
Else
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
DdlUsoCFDI.Enabled = True
End If
End If
End If
@@ -7911,6 +7921,10 @@ Partial Class Ventas
DdlUsoCFDI.Enabled = False
RegimenFiscalCliente = "616"
ClienteCodigoRegimenFiscal = "616"
Else
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
DdlUsoCFDI.Enabled = True
End If
End If
End If
@@ -7953,6 +7967,10 @@ Partial Class Ventas
DdlUsoCFDI.Enabled = False
RegimenFiscalCliente = "616"
ClienteCodigoRegimenFiscal = "616"
Else
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
DdlUsoCFDI.Enabled = True
End If
End If
End If
@@ -12440,6 +12458,36 @@ Partial Class Ventas
ObjFactura.DtMercancias = DtMercancias
ObjFactura.DtImpuestosLocales = TmpDTImpuestos
'TRASPASAR PAGOS DE REMISIONES A LA FACTURA NUEVA
If UsuarioActual.Empresa.Funcionalidad(109) = "1" AndAlso ObjFactura.TipoDocto = "Ing" Then
Dim DtRemisionesPagos As DataTable = Nothing
If Me.CveVenta > 0 AndAlso TipoDoctoViejo = "Rem" Then
Dim ObjClientes As New ClsClientes
If ObjClientes.GetVentasRemisionesPagos(CveCliente, Me.CveVenta.ToString()) Then
DtRemisionesPagos = ObjClientes.DtResultados.Copy()
End If
ObjClientes.Dispose()
ElseIf Me.RemisionesLista IsNot Nothing AndAlso Me.RemisionesLista.Count > 0 Then
Dim sb As New StringBuilder
For Each CveRemision As Integer In RemisionesLista
sb.Append($"{CveRemision},")
Next
sb.Remove(sb.Length - 1, 1)
Dim ObjClientes As New ClsClientes
If ObjClientes.GetVentasRemisionesPagos(CveCliente, sb.ToString()) Then
DtRemisionesPagos = ObjClientes.DtResultados.Copy()
End If
ObjClientes.Dispose()
End If
If DtRemisionesPagos IsNot Nothing Then
ObjFactura.DtPagosFacturaGlobal = DtRemisionesPagos
End If
End If
End Sub
Private Sub CreaObjetosVentaDevolucion()
@@ -15433,6 +15481,49 @@ Partial Class Ventas
ErrorPrepoliza = True
ErrorList.Add("No se pueden facturar las remisiones, con ese tipo de comprobante seleccionado")
Else
'CANCELACION DE PAGOS DE REMISIONES
If ObjFactura.DtPagosFacturaGlobal IsNot Nothing Then
For Each DrPago As DataRow In ObjFactura.DtPagosFacturaGlobal.Rows
Dim ventaRef As ClsPaginas.Venta = Nothing
Using ObjFacturaRef As New Modelos.Factura(UsuarioActual, DrPago("CveVenta").ToString().ToEntero(), UsuarioActual.CveEmpresa, CargaDTDetalle:=False, VerificaAlmacen:=False, CargaDatosCliente:=False, CargaDatosRelacionados:=False)
ventaRef = New ClsPaginas.Venta(ObjFacturaRef, UsuarioActual)
End Using
If ventaRef IsNot Nothing Then
Dim Importe As Decimal = DrPago("Importe").ToString().ToDecimal() * -1
Dim Pago As New ClsPaginas.VentaPago
Pago.Fecha = Now
Pago.FechaDocumentoRelacionado = DrPago("FechaDocumento").ToString().ToDate
Pago.ImportePagoVenta = Importe
Pago.ImportePago = Importe
Pago.CveIE = DrPago("CveIE").ToString().ToEntero()
Pago.CveMonedaPago = DrPago("CveMoneda").ToString().ToEntero()
Pago.TCPago = DrPago("TipoCambio").ToString().ToDecimal()
Pago.AplicaTraslado = False
Pago.Referencia = DrPago("Folio").ToString()
Pago.CveVentaAmortizacion = -1
If DrPago("TipoPago").ToString() = "NC" Then
Pago.TipoPago = "NC"
Else
Pago.TipoPago = "B"
End If
ErrorPrepoliza = ClsPaginas.AplicaPrePolizaPagoVenta(ventaRef, Pago, ObjFactura.CvePrePoliza, ObjConta, AplicarConceptoAplicacion:=False)
Else
ErrorPrepoliza = True
End If
If ErrorPrepoliza Then
Exit For
End If
Next
End If
For Each CveRemision As Integer In RemisionesLista
If Not ObjConta.TraspasarSaldosRemision(CveRemision, ObjFactura.CvePrePoliza, ObjFactura.CveVenta) Then
@@ -15458,6 +15549,41 @@ Partial Class Ventas
ErrorPrepoliza = True
End If
Next
'TRASPASO DE PAGOS DE REMISIONES A FACTURA GLOBAL
If ObjFactura.DtPagosFacturaGlobal IsNot Nothing Then
Dim VentaActual As New ClsPaginas.Venta(ObjFactura, UsuarioActual)
For Each DrPago As DataRow In ObjFactura.DtPagosFacturaGlobal.Rows
Dim Importe As Decimal = DrPago("Importe").ToString().ToDecimal()
Dim Pago As New ClsPaginas.VentaPago
Pago.Fecha = Now
Pago.FechaDocumentoRelacionado = DrPago("FechaDocumento").ToString().ToDate
Pago.ImportePagoVenta = Importe
Pago.ImportePago = Importe
Pago.CveIE = DrPago("CveIE").ToString().ToEntero()
Pago.CveMonedaPago = DrPago("CveMoneda").ToString().ToEntero()
Pago.TCPago = DrPago("TipoCambio").ToString().ToDecimal()
Pago.AplicaTraslado = False
Pago.Referencia = DrPago("Folio").ToString()
Pago.CveVentaAmortizacion = DrPago("CveVenta").ToString().ToEntero()
If DrPago("TipoPago").ToString() = "NC" Then
Pago.TipoPago = "NC"
Else
Pago.TipoPago = "B"
End If
ErrorPrepoliza = ClsPaginas.AplicaPrePolizaPagoVenta(VentaActual, Pago, ObjFactura.CvePrePoliza, ObjConta, AplicarConceptoAplicacion:=False)
If ErrorPrepoliza Then
Exit For
End If
Next
End If
End If
End If
@@ -17347,6 +17473,29 @@ Partial Class Ventas
End If
If UsuarioActual.Empresa.Funcionalidad(716) = "1" Then
Dim Imagen = drPS("Imagen").ToString
Dim URLImagen As String = ""
If Not String.IsNullOrEmpty(Imagen) Then
URLImagen = String.Format("/ashx/SIGWeb.ashx?Metodo=GetImg&r={0}", Extensiones.Encripta(Imagen))
End If
If imgImagen.Attributes.Item("src") Is Nothing Then
imgImagen.Attributes.Add("src", URLImagen)
Else
imgImagen.Attributes.Item("src") = URLImagen
End If
UpImagen.Update()
If Not String.IsNullOrEmpty(Imagen) Then
RegistraScript("initcarusel();", "I1")
End If
End If
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
AgregarPS()
End If
@@ -29067,9 +29216,8 @@ Partial Class Ventas
End If
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
If TxtAtencionA.Text.Trim.Length = 0 Then
TxtAtencionA.Enabled = True
End If
TxtAtencionA.Enabled = True
UpCliente.Update()
End If
Catch ex As Exception
@@ -30132,12 +30280,6 @@ Partial Class Ventas
Exit Sub
End If
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
If TxtAtencionA.Text.Trim.Length = 0 Then
TxtAtencionA.Enabled = True
End If
End If
AplicaDevolucion = True
SaldoVentaDevolucion = HplSaldoAuxiliar.Text.ToDecimal
CveVentaDevolucion = CveVenta
@@ -30210,6 +30352,11 @@ Partial Class Ventas
CargaNC(CveVenta)
CalculaTotalesVenta()
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
TxtAtencionA.Enabled = True
UpCliente.Update()
End If
RegistraScript("$('#DivAplicaDevolucion').modal('hide')")
End Sub
@@ -37506,8 +37653,24 @@ Partial Class Ventas
End If
If ExistePDF Then
Dim urlPDF As String = $"/Ashx/SIGDesc.ashx?metodo=descargarPDFVenta&CveVenta={CveVenta}"
RegistraScript($"impresionDirecta('{urlPDF}');", "Imprimir")
Dim pdf64 As String = ""
'DUPLICA EL PDF
Using ms As New MemoryStream
Using pdfdoc As New iText.Kernel.Pdf.PdfDocument(New iText.Kernel.Pdf.PdfWriter(ms))
pdfdoc.InitializeOutlines()
Dim reporteByte As New MemoryStream(System.IO.File.ReadAllBytes(ArchivoPDF))
Dim docPDF As New iText.Kernel.Pdf.PdfDocument(New iText.Kernel.Pdf.PdfReader(reporteByte))
docPDF.CopyPagesTo(1, docPDF.GetNumberOfPages(), pdfdoc)
docPDF.CopyPagesTo(1, docPDF.GetNumberOfPages(), pdfdoc)
docPDF.Close()
pdfdoc.Close()
End Using
pdf64 = Convert.ToBase64String(ms.ToArray())
End Using
RegistraScript($"impresionBase64('{pdf64}');", "Imprimir")
Else
Alert("No se pudo imprimir el pdf directamente. favor de descargar manualmente el pdf.", TipoMensaje.MsgAdvertencia)
End If
@@ -37706,14 +37869,13 @@ Partial Class Ventas
LimpiaDocumentoDEV()
CambiaTipoDocto()
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
If TxtAtencionA.Text.Trim.Length = 0 Then
TxtAtencionA.Enabled = True
End If
End If
CalculaTotalesVenta()
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
TxtAtencionA.Enabled = True
UpCliente.Update()
End If
UpParametros.Update()
AplicaDevolucion = True