3078 lines
150 KiB
VB.net
3078 lines
150 KiB
VB.net
Option Explicit On
|
|
Option Strict On
|
|
|
|
Imports Extensiones
|
|
Imports System.Data
|
|
Imports System.IO
|
|
Imports System.Xml
|
|
Imports System.IO.Compression
|
|
Imports System.Net
|
|
Imports Microsoft.Reporting.WebForms
|
|
|
|
Partial Class Ventas_PortalCliente
|
|
Inherits ClsPaginas
|
|
|
|
Const TopRegistros = 20
|
|
|
|
|
|
#Region " PROPIEDADES "
|
|
Private Property CveCliente As Integer
|
|
Get
|
|
Return ViewState("CveCliente").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveCliente") = value
|
|
End Set
|
|
End Property
|
|
|
|
Private Property Destino As String
|
|
Set(value As String)
|
|
ViewState("Destino") = value
|
|
End Set
|
|
Get
|
|
Return ViewState("Destino").ToString
|
|
End Get
|
|
End Property
|
|
|
|
Private Property DTHistorialVentas As DataTable
|
|
Get
|
|
Return CType(ViewState("DTHistorialVentas"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DTHistorialVentas") = value
|
|
End Set
|
|
End Property
|
|
|
|
Private Property DTCxC As DataTable
|
|
Get
|
|
Return CType(ViewState("DTCxC"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DTCxC") = value
|
|
End Set
|
|
End Property
|
|
|
|
Private Property DTCxCHistorial As DataTable
|
|
Get
|
|
Return CType(ViewState("DTCxCHistorial"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DTCxCHistorial") = value
|
|
End Set
|
|
End Property
|
|
|
|
Private Property CveVenta As Integer
|
|
Get
|
|
Return ViewState("CveVenta").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveVenta") = value
|
|
End Set
|
|
End Property
|
|
Private Property CvePago As Integer
|
|
Get
|
|
Return ViewState("CvePago").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CvePago") = value
|
|
End Set
|
|
End Property
|
|
Private Property DtPagos As DataTable
|
|
Get
|
|
Return CType(ViewState("DtPagos"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DtPagos") = value
|
|
End Set
|
|
End Property
|
|
Private Property TmpDT As DataTable
|
|
Get
|
|
Return If(IsNothing(ViewState("TmpDT")), Nothing, CType(ViewState("TmpDT"), DataTable))
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("TmpDT") = value
|
|
End Set
|
|
End Property
|
|
|
|
Private Property CveSubProyecto As Integer
|
|
Get
|
|
Return ViewState("CveSubProyecto").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveSubProyecto") = value
|
|
End Set
|
|
End Property
|
|
|
|
Private Property Modalidad As String
|
|
Get
|
|
Return ViewState("Modalidad").ToString
|
|
End Get
|
|
Set(value As String)
|
|
ViewState("Modalidad") = value
|
|
End Set
|
|
End Property
|
|
Private Property Index As Integer
|
|
Get
|
|
Return ViewState("Index").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("Index") = value
|
|
End Set
|
|
End Property
|
|
Private Property SubProyectoPorcentajeIVA As Double
|
|
Get
|
|
Return ViewState("SubProyectoPorcentajeIVA").ToString.ToDouble
|
|
End Get
|
|
Set(value As Double)
|
|
ViewState("SubProyectoPorcentajeIVA") = value
|
|
End Set
|
|
End Property
|
|
|
|
Private Property Folio As Integer
|
|
Get
|
|
Return ViewState("Folio").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("Folio") = value
|
|
End Set
|
|
End Property
|
|
|
|
Private Property Serie As String
|
|
Get
|
|
Return ViewState("Serie").ToString
|
|
End Get
|
|
Set(value As String)
|
|
ViewState("Serie") = value
|
|
End Set
|
|
End Property
|
|
Private Property SubProyecto As String
|
|
Get
|
|
Return ViewState("SubProyecto").ToString
|
|
End Get
|
|
Set(value As String)
|
|
ViewState("SubProyecto") = value
|
|
End Set
|
|
End Property
|
|
|
|
Private Property ErrorList As List(Of String)
|
|
Get
|
|
Return CType(ViewState("ErrorList"), List(Of String))
|
|
End Get
|
|
Set(value As List(Of String))
|
|
ViewState("ErrorList") = value
|
|
End Set
|
|
End Property
|
|
Private Property MensajeAlert As StringBuilder
|
|
Get
|
|
Return CType(ViewState("MensajeAlert"), StringBuilder)
|
|
End Get
|
|
Set(value As StringBuilder)
|
|
ViewState("MensajeAlert") = value
|
|
End Set
|
|
End Property
|
|
Private Property ObjFactura As Modelos.Factura
|
|
Get
|
|
Return CType(ViewState("ObjFactura"), Modelos.Factura)
|
|
End Get
|
|
Set(value As Modelos.Factura)
|
|
ViewState("ObjFactura") = 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
|
|
Destino = String.Format("{0}\Compras\", UsuarioActual.Empresa.Ruta)
|
|
Session("FileUpload") = ""
|
|
ViewState("Orden") = ""
|
|
RegistraScript("CargaHeader();")
|
|
CvePago = -1
|
|
Modalidad = ""
|
|
Index = -1
|
|
CveSubProyecto = -1
|
|
SubProyectoPorcentajeIVA = 0
|
|
Folio = -1
|
|
Serie = ""
|
|
SubProyecto = ""
|
|
|
|
CveCliente = UsuarioActual.CveCliente
|
|
CargaDatosCliente()
|
|
|
|
'CARGAN PESTANIAS SEGUN PERMISOS
|
|
If UsuarioActual.TienePermisoProceso(229) Then ' CARGA TAB HISTORIAL DE COMPRAS
|
|
TabHistorialCompras.Visible = True
|
|
BtnDescargarPDF.Visible = True
|
|
BtnDescargarXML.Visible = True
|
|
CargaHistorial()
|
|
End If
|
|
If UsuarioActual.TienePermisoProceso(230) Then ' CARGA TAB CUENTAS X PAGAR
|
|
TabCxP.Visible = True
|
|
CargaCxP()
|
|
End If
|
|
If UsuarioActual.TienePermisoProceso(231) Then ' CARGA TAB ANTICIPOS
|
|
TabAnticipos.Visible = True
|
|
CargaAnticipos()
|
|
End If
|
|
If UsuarioActual.TienePermisoProceso(232) Then ' CARGA TAB ORDENES DE SERVICIO
|
|
TabOS.Visible = True
|
|
End If
|
|
If UsuarioActual.TienePermisoProceso(233) Then ' CARGA TAB RH BUZON DE CALIDAD
|
|
TabBuzonCalidad.Visible = True
|
|
CargarTipoBuzon()
|
|
CargarClienteSucursal()
|
|
End If
|
|
|
|
'??ESTE TAB VA DESAPARECER - PARA QUE SOLO LA EMPRESA GESTIONE A LOS USUARIOS POR CLIENTE??
|
|
If UsuarioActual.TienePermisoProceso(234) Then ' CARGA TAB SISTEMA
|
|
TabSistema.Visible = False
|
|
'CargaUsuariosPortal()
|
|
End If
|
|
|
|
'CARGA TAB CONTRASENIA PARA TODOS LOS USUARIOS
|
|
If UsuarioActual.CvePlataforma = 6 Then TabContraseña.Visible = True
|
|
|
|
If Request("Opt") IsNot Nothing AndAlso IsNumeric(Request("Opt")) Then Tab.ActiveTabIndex = Request("Opt").ToEntero
|
|
|
|
ChkPermiso4.Enabled = False
|
|
ChkPermiso5.Enabled = False
|
|
ChkPermiso6.Enabled = False
|
|
|
|
InicializaProsepago()
|
|
CargaProsePago()
|
|
|
|
'TAB PEDIDOS
|
|
InicializaTabPedido()
|
|
|
|
End If
|
|
End Sub
|
|
|
|
#Region "DATOS DEL CLIENTE"
|
|
Private Sub CargaDatosCliente()
|
|
LtlTitulo.Text = "Portal del Cliente:"
|
|
|
|
Dim ObjClientes As New ClsClientes()
|
|
If ObjClientes.GetClientes(UsuarioActual.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then
|
|
If ObjClientes.DtResultados.Rows.Count > 0 Then
|
|
'Campos para Modificación
|
|
LtlCliente.Text = ObjClientes.Nombre
|
|
Else
|
|
Alert("El Cliente Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
End If
|
|
ObjClientes.Dispose()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "TAB HISTORIAL DE VENTAS"
|
|
|
|
Private Sub CargaHistorial(Optional SelectTop As Integer = 21, Optional CveClienteSucursal As Integer = -1)
|
|
Dim ObjClientes As New ClsClientes()
|
|
If ObjClientes.GetHistorialVentas(CveCliente, SelectTop, CveClienteSucursal:=CveClienteSucursal) Then
|
|
If ObjClientes.DtResultados.Rows.Count > 0 Then
|
|
'Carga Generales
|
|
LtlCantidad.Text = ObjClientes.DtResultados.Rows(0)("CountTotal").ToString.FormatoNumero(0)
|
|
LtlTotalVendido.Text = ObjClientes.DtResultados.Rows(0)("Total").ToString.FormatoNumero(2)
|
|
LtlMinima.Text = ObjClientes.DtResultados.Rows(0)("MIN_Total").ToString.FormatoNumero(2)
|
|
LtlPromedio.Text = ObjClientes.DtResultados.Rows(0)("AVG_Total").ToString.FormatoNumero(2)
|
|
LtlMaxima.Text = ObjClientes.DtResultados.Rows(0)("MAX_Total").ToString.FormatoNumero(2)
|
|
'Carga Grid
|
|
DTHistorialVentas = ObjClientes.DtResultados
|
|
GVHistorial.DataSource = ObjClientes.DtResultados
|
|
Else
|
|
GVHistorial.DataSource = Nothing
|
|
End If
|
|
Else
|
|
GVHistorial.DataSource = Nothing
|
|
End If
|
|
ObjClientes.Dispose()
|
|
GVHistorial.DataBind()
|
|
End Sub
|
|
|
|
Protected Sub GVHistorial_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVHistorial.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
e.Row.FCHyperLink("HlPDF").NavigateUrl = $"/Compras/PopUpVerFactura.aspx?P={ Encripta($"OP=VTA&CVEVENTA={e.Row.DataKey("CveVenta")}")}"
|
|
e.Row.FCHyperLink("HlXML").NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=FactVta&CVEVENTA={0}&EXT={1}&SERIEFOLIO={2}&TIPODOCTO={3}", e.Row.DataKey("CveVenta"), "XML", e.Row.DBCampo("SerieFolio"), e.Row.DBCampo("TipoDocto"))))
|
|
|
|
If e.Row.RowIndex = 0 Then
|
|
e.Row.BackColor = Drawing.Color.LightGray
|
|
|
|
e.Row.FCHyperLink("HlPDF").Visible = False
|
|
e.Row.FCHyperLink("HlXML").Visible = False
|
|
End If
|
|
|
|
|
|
If Not (e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5) Then
|
|
If e.Row.DBCampo("EstatusFactura") <> "Emitida" Then
|
|
e.Row.FCLabel("LtlEstatus").ForeColor = Drawing.Color.Red
|
|
End If
|
|
End If
|
|
|
|
|
|
e.Row.FCLiteral("LtlFactura").Text = e.Row.DBCampo("Folio")
|
|
e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Right
|
|
' DirectCast(e.Row.FindControl("HLSendMail"), HtmlAnchor).HRef = "javascript:$get('HdnCveVenta').value='" & e.Row.DBCampo("CveVenta") & "';$get('HdnFolioVenta').value='" & e.Row.DBCampo("folio") & "';$('#DivMail').show(1000);PosicionaObjeto('" & DirectCast(e.Row.FindControl("HLSendMail"), HtmlAnchor).ClientID & "', 'DivMail');"
|
|
|
|
End If
|
|
End Sub
|
|
Protected Sub RblTipo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipo.SelectedIndexChanged
|
|
If DTHistorialVentas IsNot Nothing AndAlso RblTipo.SelectedValue <> "-1" Then
|
|
|
|
Dim tmp As DataTable = DTHistorialVentas.FiltraParametros($"TipoDocto = '{RblTipo.SelectedValue}'")
|
|
If tmp.Rows.Count > 0 Then
|
|
Dim Totales As DataRow = tmp.NewRow
|
|
Totales("SubTotal") = tmp.SUM("SubTotal")
|
|
Totales("Total") = tmp.SUM("Total")
|
|
Totales("Descuento") = tmp.SUM("Descuento")
|
|
Totales("Amortizacion") = tmp.SUM("Amortizacion")
|
|
Totales("MAX_Total") = tmp.MAX("MAX_Total")
|
|
Totales("AVG_Total") = tmp.AVG("AVG_Total")
|
|
Totales("MIN_Total") = tmp.MIN("MIN_Total")
|
|
Totales("CountTotal") = tmp.COUNT("CountTotal")
|
|
tmp.Rows.InsertAt(Totales, 0)
|
|
End If
|
|
GVHistorial.DataSource = tmp
|
|
ElseIf DTHistorialVentas IsNot Nothing AndAlso RblTipo.SelectedValue = "-1" Then
|
|
GVHistorial.DataSource = DTHistorialVentas
|
|
End If
|
|
GVHistorial.DataBind()
|
|
End Sub
|
|
|
|
Protected Sub BtnVerMasVentas_Click(sender As Object, e As EventArgs)
|
|
If BtnVerMasVentas.Text = "Ver Más" Then
|
|
CargaHistorial(-1)
|
|
BtnVerMasVentas.Text = "Ver Menos"
|
|
Else
|
|
CargaHistorial(21)
|
|
BtnVerMasVentas.Text = "Ver Más"
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub BtnSendMail_Click(sender As Object, e As System.EventArgs) Handles BtnSendMail.Click
|
|
Try
|
|
|
|
If HdnCveVenta.Value <> "-1" AndAlso HdnFolioVenta.Value <> "-1" Then
|
|
'Dim ObjEmprea As New ClsEmpresas()
|
|
'If ObjEmprea.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then
|
|
Dim ObjMail As New ClsSisMail()
|
|
Dim Ruta As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\"
|
|
|
|
If File.Exists(Ruta & "PDF\" & HdnFolioVenta.Value & ".pdf") AndAlso File.Exists(Ruta & "XML\" & HdnFolioVenta.Value & ".xml") Then
|
|
Dim PDF As String = Ruta & "PDF\" & HdnFolioVenta.Value & ".pdf"
|
|
Dim XML As String = Ruta & "XML\" & HdnFolioVenta.Value & ".xml"
|
|
|
|
Dim ResultadoMail As Integer = 0
|
|
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
|
|
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = PDF})
|
|
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = XML})
|
|
|
|
'If ObjMail.SendMail(UsuarioActual.Empresa, TxtParaMail.Text.Trim, "Entrega de Factura", PDF, XML, ArrayCC, TxtBody.Text.Trim) Then
|
|
If ObjMail.SendMail(UsuarioActual.Empresa, TxtParaMail.Text.Trim, "Entrega de Factura", TxtBody.Text.Trim, TxtCC.Text.Trim, LSRutasMail) Then
|
|
ResultadoMail = 1
|
|
TxtCC.Text = ""
|
|
TxtBody.Text = ""
|
|
Alert("El correo se envió correctamente", TipoMensaje.MsgInformacion)
|
|
CargaHistorial()
|
|
UpnHistorial.Update()
|
|
Else
|
|
ResultadoMail = 3
|
|
End If
|
|
|
|
Dim ObjVentas As New ClsVentas
|
|
ObjVentas.UpdateVentaMail(ResultadoMail, HdnCveVenta.Value.ToEntero)
|
|
ObjVentas.Dispose()
|
|
Else
|
|
Alert("No se pudo adjuntar el correo electrónico.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
'End If
|
|
'ObjEmprea.Dispose()
|
|
Else
|
|
Alert("No se seleccionó ninguna factura para envíar.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
Catch ex As Exception
|
|
OnError("Ocurrió error al mandar MAIL", ex)
|
|
Dim ObjVentas As New ClsVentas
|
|
ObjVentas.UpdateVentaMail(3, HdnCveVenta.Value.ToEntero)
|
|
ObjVentas.Dispose()
|
|
End Try
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "TAB CUENTAS X PAGAR"
|
|
Private Sub CargaCxP(Optional VerMas As Integer = -1)
|
|
If TabCxP.Visible = True Then
|
|
Dim ObjMovtos As New ClsMovimientos()
|
|
'CxC Activas
|
|
If ObjMovtos.GetCxCClienteDetalle(UsuarioActual.CveCliente, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa, -1) Then
|
|
GvCxC.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'")
|
|
DTCxC = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'")
|
|
GvCxCHistorial.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Hist'")
|
|
DTCxCHistorial = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Hist'")
|
|
Else
|
|
GvCxC.DataSource = Nothing
|
|
GvCxCHistorial.DataSource = Nothing
|
|
End If
|
|
|
|
ObjMovtos.Dispose()
|
|
GvCxC.DataBind()
|
|
GvCxCHistorial.DataBind()
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub GvCxCHistorial_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCxCHistorial.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
If e.Row.RowIndex = 0 Then
|
|
e.Row.Cells(0).ColumnSpan = 4
|
|
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.FCLiteral("LtlFactura").Text = "Total" & " "
|
|
e.Row.Cells(1).Visible = False
|
|
e.Row.Cells(2).Visible = False
|
|
e.Row.Cells(3).Visible = False
|
|
'e.Row.Cells(9).ColumnSpan = 2
|
|
'e.Row.Cells(10).Visible = False
|
|
e.Row.BackColor = Drawing.Color.LightGray
|
|
End If
|
|
If e.Row.RowIndex = 1 Then
|
|
e.Row.Cells(0).Width = Unit.Pixel(60)
|
|
e.Row.Cells(1).Width = Unit.Pixel(70)
|
|
e.Row.Cells(2).Width = Unit.Pixel(80)
|
|
e.Row.Cells(3).Width = Unit.Pixel(80)
|
|
e.Row.Cells(4).Width = Unit.Pixel(90)
|
|
e.Row.Cells(5).Width = Unit.Pixel(90)
|
|
e.Row.Cells(6).Width = Unit.Pixel(105)
|
|
e.Row.Cells(7).Width = Unit.Pixel(90)
|
|
e.Row.Cells(8).Width = Unit.Pixel(105)
|
|
End If
|
|
|
|
e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.Cells(7).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.Cells(8).HorizontalAlign = HorizontalAlign.Right
|
|
|
|
If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(5).ForeColor = Drawing.Color.Red
|
|
If e.Row.DBCampo("DiasVencidos").ToDouble > 0 AndAlso CType(sender, GridView).ID = "GvCxC" Then e.Row.Cells(3).ForeColor = Drawing.Color.Red
|
|
If e.Row.DBCampo("Original").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlSaldoOriginal"), Literal).Text = ""
|
|
If e.Row.DBCampo("Abonado").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlAbonado"), Literal).Text = ""
|
|
If e.Row.DBCampo("PorRecuperado").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlPorRecuperado"), Literal).Text = ""
|
|
If e.Row.DBCampo("Saldo").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlSaldo"), Literal).Text = ""
|
|
If e.Row.DBCampo("PorXRecuperar").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlPorXRecuperar"), Literal).Text = ""
|
|
|
|
e.Row.FCLiteral("LtlFactura").Text = e.Row.DBCampo("Folio")
|
|
If CType(sender, GridView).ID = "GvCxCHistorial" Then
|
|
DirectCast(e.Row.FindControl("LtlDiasVencido"), Literal).Text = ""
|
|
Else
|
|
e.Row.Cells(7).Font.Bold = True
|
|
e.Row.Cells(8).Font.Bold = True
|
|
End If
|
|
End If
|
|
End Sub
|
|
Protected Sub GvCxC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCxC.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
e.Row.FCLinkButton("HlVerMas").CommandArgument = e.Row.DataKey("CveVenta")
|
|
'e.Row.FCLinkButton("LBPagar").CommandArgument = $"{e.Row.DBCampo("CveVenta")}°{e.Row.DBCampo("Folio")}°{e.Row.DBCampo("Fecha")}°{e.Row.DBCampo("Original")}°{e.Row.DBCampo("Abonado")}°{e.Row.DBCampo("PorRecuperado")}°{e.Row.DBCampo("Saldo")}°{e.Row.DBCampo("PorXRecuperar")}"
|
|
|
|
If e.Row.RowIndex = 0 Then
|
|
e.Row.Cells(0).ColumnSpan = 4
|
|
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.FCLiteral("LtlFactura").Text = "Total" & " "
|
|
e.Row.Cells(1).Visible = False
|
|
e.Row.Cells(2).Visible = False
|
|
e.Row.Cells(3).Visible = False
|
|
'e.Row.Cells(9).ColumnSpan = 2
|
|
'e.Row.Cells(10).Visible = False
|
|
e.Row.BackColor = Drawing.Color.LightGray
|
|
e.Row.FCCheckBox("ChkPagar").Visible = False
|
|
End If
|
|
If e.Row.RowIndex = 1 Then
|
|
e.Row.Cells(0).Width = Unit.Pixel(60)
|
|
e.Row.Cells(1).Width = Unit.Pixel(70)
|
|
e.Row.Cells(2).Width = Unit.Pixel(80)
|
|
e.Row.Cells(3).Width = Unit.Pixel(80)
|
|
e.Row.Cells(4).Width = Unit.Pixel(90)
|
|
e.Row.Cells(5).Width = Unit.Pixel(90)
|
|
e.Row.Cells(6).Width = Unit.Pixel(105)
|
|
e.Row.Cells(7).Width = Unit.Pixel(90)
|
|
e.Row.Cells(8).Width = Unit.Pixel(105)
|
|
End If
|
|
|
|
e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.Cells(7).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.Cells(8).HorizontalAlign = HorizontalAlign.Right
|
|
|
|
If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(5).ForeColor = Drawing.Color.Red
|
|
If e.Row.DBCampo("DiasVencidos").ToDouble > 0 AndAlso CType(sender, GridView).ID = "GvCxC" Then e.Row.Cells(4).ForeColor = Drawing.Color.Red
|
|
If e.Row.DBCampo("Original").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlSaldoOriginal"), Literal).Text = ""
|
|
If e.Row.DBCampo("Abonado").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlAbonado"), Literal).Text = ""
|
|
If e.Row.DBCampo("PorRecuperado").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlPorRecuperado"), Literal).Text = ""
|
|
If e.Row.DBCampo("Saldo").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlSaldo"), Literal).Text = ""
|
|
If e.Row.DBCampo("PorXRecuperar").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlPorXRecuperar"), Literal).Text = ""
|
|
|
|
e.Row.FCLiteral("LtlFactura").Text = e.Row.DBCampo("Folio")
|
|
If CType(sender, GridView).ID = "GvCxCHistorial" Then
|
|
DirectCast(e.Row.FindControl("LtlDiasVencido"), Literal).Text = ""
|
|
Else
|
|
e.Row.Cells(7).Font.Bold = True
|
|
e.Row.Cells(8).Font.Bold = True
|
|
End If
|
|
End If
|
|
End Sub
|
|
Protected Sub HlVerMas_Click(sender As Object, e As EventArgs)
|
|
Dim CveVenta = CType(sender, LinkButton).CommandArgument.ToEntero
|
|
RegistraScript("$('#ModalBitacora').modal()")
|
|
CargaEventoBitacora(CveVenta)
|
|
End Sub
|
|
Private Sub CargaEventoBitacora(CveVenta As Integer)
|
|
Dim ObjEventoBitacora As New ClsOIEventos()
|
|
If ObjEventoBitacora.GetAgendaBitacora(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveVenta) Then
|
|
GvEB.DataSource = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2").ToString
|
|
Else
|
|
GvEB.DataSource = Nothing
|
|
End If
|
|
ObjEventoBitacora.Dispose()
|
|
UPAddEventoBitacora.Update()
|
|
End Sub
|
|
|
|
#Region " PAGO PROSEPAGO "
|
|
Private Sub InicializaProsepago()
|
|
If Not UsuarioActual.CveEmpresa.Contiene(1, 4, 7, 11, 12, 145) Then
|
|
GvCxC.Columns(10).Visible = False
|
|
LBPagar.Visible = False
|
|
End If
|
|
End Sub
|
|
Protected Sub LBPagar_Click(sender As Object, e As EventArgs)
|
|
|
|
DtPagos = New DataTable
|
|
DtPagos.TableName = "PagoPortalCliente"
|
|
DtPagos.Columns.Add("CveCliente", GetType(Integer))
|
|
DtPagos.Columns.Add("CveVenta", GetType(Integer))
|
|
DtPagos.Columns.Add("Factura", GetType(String))
|
|
DtPagos.Columns.Add("CveSubProyecto", GetType(Integer))
|
|
DtPagos.Columns.Add("CveMoneda", GetType(Integer))
|
|
DtPagos.Columns.Add("TCVenta", GetType(Decimal))
|
|
DtPagos.Columns.Add("ImporteVenta", GetType(Decimal))
|
|
DtPagos.Columns.Add("IVA", GetType(Decimal))
|
|
DtPagos.Columns.Add("RetIVA", GetType(Decimal))
|
|
DtPagos.Columns.Add("RetISR", GetType(Decimal))
|
|
DtPagos.Columns.Add("IEPS", GetType(Decimal))
|
|
DtPagos.Columns.Add("TCPago", GetType(Decimal))
|
|
DtPagos.Columns.Add("ImportePago", GetType(Decimal))
|
|
DtPagos.Columns.Add("ImportePagoMX", GetType(Decimal))
|
|
|
|
Dim Facturas = ""
|
|
Dim TCPago = GlobalTipoCambio(Now)
|
|
|
|
For Each Gvr As GridViewRow In GvCxC.Rows
|
|
If Gvr.FCCheckBox("ChkPagar").Checked Then
|
|
Dim Dr = DtPagos.NewRow
|
|
Dr("CveCliente") = CveCliente
|
|
Dr("CveVenta") = Gvr.DataKey("CveVenta").ToEntero
|
|
Dr("Factura") = Gvr.DataKey("Folio")
|
|
Dr("CveSubProyecto") = Gvr.DataKey("CveSubProyecto").ToEntero
|
|
Dr("CveMoneda") = Gvr.DataKey("CveMoneda").ToEntero
|
|
Dr("TCVenta") = Gvr.DataKey("TipoCambio").ToDecimal
|
|
Dr("ImporteVenta") = Gvr.DataKey("Original").ToDecimal
|
|
Dr("IVA") = Gvr.DataKey("IVA").ToDecimal
|
|
Dr("RetIVA") = Gvr.DataKey("RetIVA").ToDecimal
|
|
Dr("RetISR") = Gvr.DataKey("RetISR").ToDecimal
|
|
Dr("IEPS") = Gvr.DataKey("IEPS").ToDecimal
|
|
|
|
Dr("TCPago") = If(Gvr.DataKey("CveMoneda").ToEntero = 1, 1, TCPago)
|
|
Dr("ImportePago") = Gvr.DataKey("Saldo").ToDecimal
|
|
If Gvr.DataKey("CveMoneda").ToEntero > 1 Then
|
|
Dr("ImportePagoMX") = (Gvr.DataKey("Saldo").ToDecimal * TCPago).RoundAD()
|
|
Else
|
|
Dr("ImportePagoMX") = Gvr.DataKey("Saldo").ToDecimal
|
|
End If
|
|
|
|
DtPagos.Rows.Add(Dr)
|
|
Facturas += $"{Gvr.DataKey("Folio")},"
|
|
End If
|
|
Next
|
|
|
|
'SIN REGISTROS SELECCIONADOS
|
|
If Facturas = "" Then
|
|
Alert("No se seleccionó ningun documento para pagar. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
If DtPagos.MAX("CveMoneda").ToEntero > 1 Then
|
|
DivPagoDolares.Visible = True
|
|
LtTC.Text = TCPago.FormatoNumero(4)
|
|
Else
|
|
DivPagoDolares.Visible = False
|
|
End If
|
|
|
|
LbFactura.Text = Facturas.Substring(0, Facturas.Length - 2)
|
|
TxtImporte.Text = DtPagos.SUM("ImportePagoMX").FormatoNumero(2)
|
|
RVTxtImporte.MaximumValue = DtPagos.SUM("ImportePagoMX").FormatoNumero(2)
|
|
|
|
RegistraScript("$('#ModalProsePago').modal()")
|
|
|
|
UpProsePago.Update()
|
|
End Sub
|
|
|
|
|
|
Protected Sub BtnProsePago_Click(sender As Object, e As EventArgs)
|
|
Dim ClavePago = $"{UsuarioActual.CveUsuario}-{Now.Ticks}"
|
|
|
|
Dim Carpeta = $"{AppDomain.CurrentDomain.BaseDirectory}/PortalCliente/ePagos/{CveCliente}"
|
|
Carpeta.DirectoryExistsCreate
|
|
DtPagos.WriteXml($"{Carpeta}/{ClavePago}.xml", XmlWriteMode.WriteSchema)
|
|
|
|
Dim Parametro = Encripta($"Cve={ClavePago}&CveCliente={CveCliente}")
|
|
|
|
Dim uriString = ""
|
|
Select Case UsuarioActual.CveEmpresa
|
|
Case 1, 4, 7, 11, 12, 145
|
|
uriString = "https://www.prosepago.com/tvirtual/tvds.aspx?ppost=1&t=123" ' VSH SEGURIDAD
|
|
Case Else
|
|
Alert("Sin terminal de pago configurada. Por favor comuniquese con su proveedor para verificar.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End Select
|
|
|
|
Dim myNameValueCollection As New NameValueCollection()
|
|
Dim Nombre = LimpiaTextoSoloLetras(LtlCliente.Text)
|
|
Dim Facturas = LimpiaTextoSoloLetrasNumeros(LbFactura.Text.Replace(",", " "))
|
|
myNameValueCollection.Add("nom", Nombre.Substring(0, If(Nombre.Length > 200, 200, Nombre.Length)))
|
|
myNameValueCollection.Add("con", $"Pago de facturas {Facturas.Substring(0, If(Facturas.Length > 180, 180, Facturas.Length))}")
|
|
myNameValueCollection.Add("ref", CveCliente.ToString)
|
|
myNameValueCollection.Add("imp", TxtImporte.Text)
|
|
myNameValueCollection.Add("ema", UsuarioActual.Usuario) '
|
|
myNameValueCollection.Add("urlOk", $"{Request.Url.GetLeftPart(UriPartial.Authority)}/PortalCliente/PortalCliente.aspx?okpp=1&p={Parametro}")
|
|
myNameValueCollection.Add("urlKo", $"{Request.Url.GetLeftPart(UriPartial.Authority)}/PortalCliente/PortalCliente.aspx?okpp=0&p={Parametro}")
|
|
myNameValueCollection.Add("autoBack", "1")
|
|
myNameValueCollection.Add("datbloq", "1")
|
|
|
|
''PARA SIMULAR RESPUESTA
|
|
'Dim Liga = $"{Request.Url.GetLeftPart(UriPartial.Authority)}/PortalCliente/PortalCliente.aspx?okpp=1&p={Parametro}"
|
|
'Alert(Liga, TipoMensaje.MsgInformacion)
|
|
'Exit Sub
|
|
|
|
Response.RedirectWithData(uriString, myNameValueCollection)
|
|
|
|
End Sub
|
|
|
|
Private Function LimpiaTextoSoloLetras(Texto As String) As String
|
|
Dim pattern As String = "[^A-Za-z\s]"
|
|
Dim replacement As String = ""
|
|
Return Regex.Replace(Texto, pattern, replacement)
|
|
End Function
|
|
Private Function LimpiaTextoSoloLetrasNumeros(Texto As String) As String
|
|
Dim pattern As String = "[^A-Za-z0-9\s]"
|
|
Dim replacement As String = ""
|
|
Return Regex.Replace(Texto, pattern, replacement)
|
|
End Function
|
|
|
|
Private Sub CargaProsePago()
|
|
Dim TieneError = False
|
|
Dim MensajeError As New StringBuilder
|
|
|
|
Dim EstatusPagoProsepago = -1
|
|
If Request("okpp") IsNot Nothing AndAlso IsNumeric(Request("okpp")) Then
|
|
EstatusPagoProsepago = Request("okpp").ToEntero
|
|
End If
|
|
|
|
If EstatusPagoProsepago < 0 Then
|
|
Exit Sub
|
|
End If
|
|
|
|
If EstatusPagoProsepago = 0 Then
|
|
Alert("Ocurrió un error al procesar el pago, no se a realizadó ningun cargo. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
If EstatusPagoProsepago = 1 Then
|
|
Dim ParametrosTexto As String = Decripta(Request("p"))
|
|
|
|
If ParametrosTexto <> "" Then
|
|
CargaParametros(ParametrosTexto)
|
|
|
|
Dim ClavePago = UrlParametros("CVE").ToString
|
|
Dim CveCliente = UrlParametros("CVECLIENTE").ToString.ToEntero
|
|
Dim Carpeta = $"{AppDomain.CurrentDomain.BaseDirectory}/PortalCliente/ePagos/{CveCliente}"
|
|
Dim Archivo = $"{Carpeta}/{ClavePago}.xml"
|
|
Dim CveProveedorIntermediario = -1
|
|
Dim ImporteComision = 0.0D
|
|
|
|
If File.Exists(Archivo) Then
|
|
DtPagos = New DataTable
|
|
DtPagos.ReadXml(Archivo)
|
|
|
|
If DtPagos.Rows.Count > 0 Then
|
|
|
|
Dim MensajeAlert As New StringBuilder
|
|
Dim ObjConta As New ClsContabilidad
|
|
Dim ObjCliente As New ClsClientes(ObjConta.IniciaTransacSQL)
|
|
|
|
Dim CveCuentacliente = -1
|
|
Dim IdCuentaCliente = -1
|
|
Dim IdCtaContMonedaExtranjera = -1
|
|
Dim CveCuentaComplementaria = -1
|
|
Dim CveCuentaMonedaExtranjera = -1
|
|
Dim IdCtaContRetIVA = -1
|
|
Dim IdCtaContRetISR = -1
|
|
Dim CveCuentaRetIVA = -1
|
|
Dim CveCuentaRetISR = -1
|
|
|
|
If ObjCliente.GetClientes(CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1) AndAlso ObjCliente.DtResultados.Rows.Count > 0 Then
|
|
IdCuentaCliente = ObjCliente.IdCtaContClientes
|
|
CveCuentacliente = ObjCliente.CveCuentaClientes
|
|
IdCtaContMonedaExtranjera = ObjCliente.IdCtaContMonedaExtranjera
|
|
CveCuentaMonedaExtranjera = ObjCliente.CveCuentaMonedaExtranjera
|
|
CveCuentaComplementaria = ObjCliente.CveCuentaComplementaria
|
|
IdCtaContRetIVA = ObjCliente.IdCtaContRetIVA
|
|
IdCtaContRetISR = ObjCliente.IdCtaContRetISR
|
|
CveCuentaRetIVA = ObjCliente.CveCuentaRetIVA
|
|
CveCuentaRetISR = ObjCliente.CveCuentaRetISR
|
|
Else
|
|
TieneError = True
|
|
MensajeError.Append("Ocurrió un error al cargar la información contable del cliente. Por favor vuelva a intentar<br>")
|
|
End If
|
|
|
|
|
|
' PREPOLIZA
|
|
Dim CvePlantillaPoliza = 11
|
|
Dim FechaMovimiento As Date = Now
|
|
Dim Concepto = ""
|
|
Dim DtConceptos As New DataTable
|
|
Dim CveMonedaPago = 1
|
|
|
|
' DETALLES
|
|
Dim ConceptoContable = -1
|
|
Dim TipoMovimiento = False
|
|
Dim ImporteMovimiento = 0.0D
|
|
Dim importeMX = 0.0D
|
|
Dim IdCtaContable = 0
|
|
Dim CveCuenta = 0
|
|
Dim ConceptoMovimiento = ""
|
|
Dim Referencia = ""
|
|
Dim CveSubProyecto = -1
|
|
Dim CveVenta = -1
|
|
Dim CveMonedaVenta = 1
|
|
Dim TCVenta = 0.0D
|
|
Dim IVAVenta = 0.0D
|
|
Dim RetIVAVenta = 0.0D
|
|
Dim RetISRVenta = 0.0D
|
|
Dim IEPSVenta = 0.0D
|
|
Dim TCPago = 0.0D
|
|
Dim PorcentajePago = 0.0D
|
|
Dim ImportePago = 0.0D
|
|
Dim ImportePagoMX = 0.0D
|
|
Dim TCGeneral = 0.0D
|
|
Dim TCFluctuacion = 0.0D
|
|
Dim CveProveedorContabilizar = -1
|
|
|
|
Dim CvePrePoliza = ObjConta.AddPrePolizas("PortalCliente/Pago-Prosepago", CvePlantillaPoliza, TxtImporte.Text.Trim.ToDecimal, TxtImporte.Text.Trim.ToDecimal, CveMonedaPago, FechaMovimiento, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
|
|
|
|
If CvePrePoliza > 0 Then
|
|
If ObjConta.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPoliza) Then
|
|
DtConceptos = ObjConta.DtResultados
|
|
End If
|
|
End If
|
|
|
|
If DtConceptos IsNot Nothing AndAlso DtConceptos.Rows.Count > 0 Then
|
|
For Each DrPago As DataRow In DtPagos.Rows
|
|
For Each DrConcepto As DataRow In DtConceptos.Rows
|
|
|
|
'REINICIALIZA VALORES
|
|
ConceptoContable = DrConcepto("CveConcepto").ToString.ToEntero
|
|
TipoMovimiento = If(DrConcepto("TipoMovto").ToString = "True", True, False)
|
|
ImporteMovimiento = 0
|
|
importeMX = 0
|
|
IdCtaContable = 0
|
|
CveCuenta = 0
|
|
ConceptoMovimiento = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, ConceptoContable, LtlCliente.Text, DrPago("Factura").ToString, DrPago("Factura").ToString)
|
|
'VALORES DE LA VENTA
|
|
Referencia = DrPago("Factura").ToString
|
|
CveSubProyecto = DrPago("CveSubProyecto").ToString.ToEntero
|
|
CveVenta = DrPago("CveVenta").ToString.ToEntero
|
|
CveMonedaVenta = DrPago("CveMoneda").ToString.ToEntero
|
|
TCVenta = DrPago("TCVenta").ToString.ToDecimal
|
|
IVAVenta = DrPago("IVA").ToString.ToDecimal
|
|
RetIVAVenta = DrPago("RetIVA").ToString.ToDecimal
|
|
RetISRVenta = DrPago("RetISR").ToString.ToDecimal
|
|
IEPSVenta = DrPago("IEPS").ToString.ToDecimal
|
|
TCPago = DrPago("TCPago").ToString.ToDecimal
|
|
ImportePago = DrPago("ImportePago").ToString.ToDecimal
|
|
ImportePagoMX = DrPago("ImportePagoMX").ToString.ToDecimal
|
|
PorcentajePago = DrPago("ImportePago").ToString.ToDecimal / DrPago("ImporteVenta").ToString.ToDecimal 'EL IMPORTE PAGO ES EL IMPORTE QUE SE PAGÓ EN LA MONEDA ORIGINAL DE LA VENTA
|
|
TCFluctuacion = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", TCVenta, TCPago)
|
|
|
|
|
|
'CONFIGURACION POR CONCEPTO DE PREPOLIZA
|
|
Select Case ConceptoContable
|
|
Case 2 'PAGO CLIENTE
|
|
ImporteMovimiento = ImportePago.RoundSQL()
|
|
importeMX = ImportePagoMX.RoundSQL()
|
|
TCGeneral = TCVenta
|
|
|
|
If CveMonedaVenta = 1 Then
|
|
IdCtaContable = IdCuentaCliente
|
|
CveCuenta = CveCuentacliente
|
|
Else
|
|
IdCtaContable = IdCtaContMonedaExtranjera
|
|
CveCuenta = CveCuentaComplementaria
|
|
ConceptoMovimiento += $" TC:{TCPago} ${ImporteMovimiento.FormatoNumero(2)}"
|
|
|
|
If ImporteMovimiento <> 0 AndAlso IdCtaContable > 0 Then
|
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, Referencia, 207, ConceptoMovimiento, FechaMovimiento, IdCtaContable, -1, -1, CveVenta, -1, CveSubProyecto, CveCliente, ImporteMX:=(importeMX - ImporteMovimiento).RoundSQL(), ImporteME:=ImporteMovimiento, CveCuenta:=CveCuenta, TipoCambio:=TCVenta) Then
|
|
TieneError = True
|
|
MensajeError.Append("No se pudo insertar el detalle de pago de la póliza<br>")
|
|
Exit For
|
|
End If
|
|
End If
|
|
|
|
IdCtaContable = IdCtaContMonedaExtranjera
|
|
CveCuenta = CveCuentaMonedaExtranjera
|
|
End If
|
|
|
|
Case 134 'PAGO INTERMEDIARIO
|
|
ImporteMovimiento = ImportePago.RoundSQL()
|
|
importeMX = ImportePagoMX.RoundSQL()
|
|
CveProveedorContabilizar = CveProveedorIntermediario
|
|
If TCVenta > 1 Then ConceptoMovimiento += $" TC:{TCVenta} ${ImporteMovimiento.FormatoNumero(2)}"
|
|
|
|
Case 13 'IVA X TRASLADAR
|
|
If CveMonedaVenta = 1 Then
|
|
ImporteMovimiento = IVAVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento
|
|
ElseIf CveMonedaVenta = 2 Then
|
|
ImporteMovimiento = IVAVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento * TCVenta
|
|
End If
|
|
|
|
ImporteMovimiento = ImporteMovimiento.RoundSQL()
|
|
importeMX = importeMX.RoundSQL()
|
|
TCGeneral = TCVenta
|
|
|
|
IdCtaContable = UsuarioActual.Empresa.IdCuentaIVAxTrasladar
|
|
CveCuenta = UsuarioActual.Empresa.CveCuentaIVAxTrasladar
|
|
If TCVenta > 1 Then ConceptoMovimiento += $" TC:{TCVenta} ${ImporteMovimiento.FormatoNumero(2)}"
|
|
|
|
Case 61 'IVA TRASLADADO
|
|
If CveMonedaVenta = 1 Then
|
|
ImporteMovimiento = IVAVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento
|
|
ElseIf CveMonedaVenta = 2 Then
|
|
ImporteMovimiento = IVAVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento * TCFluctuacion
|
|
End If
|
|
|
|
ImporteMovimiento = ImporteMovimiento.RoundSQL()
|
|
importeMX = importeMX.RoundSQL()
|
|
TCGeneral = TCFluctuacion
|
|
|
|
IdCtaContable = UsuarioActual.Empresa.IdCuentaIVATrasladado
|
|
CveCuenta = UsuarioActual.Empresa.CveCuentaIVATrasladado
|
|
If TCFluctuacion > 1 Then ConceptoMovimiento += $" TC:{TCFluctuacion} ${ImporteMovimiento.FormatoNumero(2)}"
|
|
|
|
Case 8 'RETIVA X TRASLADAR
|
|
If CveMonedaVenta = 1 Then
|
|
ImporteMovimiento = RetIVAVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento
|
|
ElseIf CveMonedaVenta = 2 Then
|
|
ImporteMovimiento = RetIVAVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento * TCVenta
|
|
End If
|
|
|
|
ImporteMovimiento = ImporteMovimiento.RoundSQL()
|
|
importeMX = importeMX.RoundSQL()
|
|
TCGeneral = TCVenta
|
|
|
|
If TCVenta > 1 Then ConceptoMovimiento += $" TC:{TCVenta} ${ImporteMovimiento.FormatoNumero(2)}"
|
|
|
|
'Conta ContPAQ
|
|
If IdCtaContRetIVA <> 0 Then
|
|
IdCtaContable = IdCtaContRetIVA
|
|
Else
|
|
If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
IdCtaContable = ObjConta.DtResultados.FiltroPrimeroValor("IdCuentaRetIVACirculacion").ToEntero
|
|
End If
|
|
End If
|
|
|
|
'Conta SIG
|
|
If CveCuentaRetIVA <> 0 Then
|
|
CveCuenta = CveCuentaRetIVA
|
|
Else
|
|
If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
CveCuenta = ObjConta.DtResultados.FiltroPrimeroValor("IdCuentaRetIVACirculacionSIG").ToEntero
|
|
End If
|
|
End If
|
|
Case 62 'RETIVA TRASLADADO
|
|
If CveMonedaVenta = 1 Then
|
|
ImporteMovimiento = RetIVAVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento
|
|
ElseIf CveMonedaVenta = 2 Then
|
|
ImporteMovimiento = RetIVAVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento * TCFluctuacion
|
|
End If
|
|
|
|
ImporteMovimiento = ImporteMovimiento.RoundSQL()
|
|
importeMX = importeMX.RoundSQL()
|
|
TCGeneral = TCFluctuacion
|
|
|
|
If TCFluctuacion > 1 Then ConceptoMovimiento += $" TC:{TCFluctuacion} ${ImporteMovimiento.FormatoNumero(2)}"
|
|
|
|
'Conta ContPAQ
|
|
If IdCtaContRetIVA <> 0 Then
|
|
IdCtaContable = IdCtaContRetIVA
|
|
Else
|
|
If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
IdCtaContable = ObjConta.DtResultados.FiltroPrimeroValor("IdCuentaRetIVACirculacion").ToEntero
|
|
End If
|
|
End If
|
|
|
|
'Conta SIG
|
|
If CveCuentaRetIVA <> 0 Then
|
|
CveCuenta = CveCuentaRetIVA
|
|
Else
|
|
If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
CveCuenta = ObjConta.DtResultados.FiltroPrimeroValor("IdCuentaRetIVACirculacionSIG").ToEntero
|
|
End If
|
|
End If
|
|
|
|
Case 9 'RETISR X TRASLADAR
|
|
If CveMonedaVenta = 1 Then
|
|
ImporteMovimiento = RetISRVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento
|
|
ElseIf CveMonedaVenta = 2 Then
|
|
ImporteMovimiento = RetISRVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento * TCVenta
|
|
End If
|
|
|
|
ImporteMovimiento = ImporteMovimiento.RoundSQL()
|
|
importeMX = importeMX.RoundSQL()
|
|
TCGeneral = TCVenta
|
|
|
|
If TCVenta > 1 Then ConceptoMovimiento += $" TC:{TCVenta} ${ImporteMovimiento.FormatoNumero(2)}"
|
|
|
|
'Conta ContPAQ
|
|
If IdCtaContRetISR <> 0 Then
|
|
IdCtaContable = IdCtaContRetISR
|
|
Else
|
|
If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
IdCtaContable = ObjConta.DtResultados.FiltroPrimeroValor("IdCuentaRetISRCirculacion").ToEntero
|
|
End If
|
|
End If
|
|
|
|
'Conta SIG
|
|
If CveCuentaRetISR <> 0 Then
|
|
CveCuenta = CveCuentaRetISR
|
|
Else
|
|
If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
CveCuenta = ObjConta.DtResultados.FiltroPrimeroValor("IdCuentaRetISRCirculacionSIG").ToEntero
|
|
End If
|
|
End If
|
|
|
|
Case 63 'RETISR TRASLADADO
|
|
If CveMonedaVenta = 1 Then
|
|
ImporteMovimiento = RetIVAVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento
|
|
ElseIf CveMonedaVenta = 2 Then
|
|
ImporteMovimiento = RetIVAVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento * TCFluctuacion
|
|
End If
|
|
|
|
ImporteMovimiento = ImporteMovimiento.RoundSQL()
|
|
importeMX = importeMX.RoundSQL()
|
|
TCGeneral = TCFluctuacion
|
|
|
|
If TCFluctuacion > 1 Then ConceptoMovimiento += $" TC:{TCFluctuacion} ${ImporteMovimiento.FormatoNumero(2)}"
|
|
|
|
'Conta ContPAQ
|
|
If IdCtaContRetISR <> 0 Then
|
|
IdCtaContable = IdCtaContRetISR
|
|
Else
|
|
If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
IdCtaContable = ObjConta.DtResultados.FiltroPrimeroValor("IdCuentaRetISRCirculacion").ToEntero
|
|
End If
|
|
End If
|
|
|
|
'Conta SIG
|
|
If CveCuentaRetISR <> 0 Then
|
|
CveCuenta = CveCuentaRetISR
|
|
Else
|
|
If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
CveCuenta = ObjConta.DtResultados.FiltroPrimeroValor("IdCuentaRetISRCirculacionSIG").ToEntero
|
|
End If
|
|
End If
|
|
|
|
Case 38 'IEPS X TRASLADAR
|
|
If CveMonedaVenta = 1 Then
|
|
ImporteMovimiento = IEPSVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento
|
|
ElseIf CveMonedaVenta = 2 Then
|
|
ImporteMovimiento = IEPSVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento * TCVenta
|
|
End If
|
|
|
|
ImporteMovimiento = ImporteMovimiento.RoundSQL()
|
|
importeMX = importeMX.RoundSQL()
|
|
TCGeneral = TCVenta
|
|
|
|
IdCtaContable = UsuarioActual.Empresa.IdCuentaIEPSxTrasladar
|
|
CveCuenta = UsuarioActual.Empresa.CveCuentaIEPSxTrasladar
|
|
If TCVenta > 1 Then ConceptoMovimiento += $" TC:{TCVenta} ${ImporteMovimiento.FormatoNumero(2)}"
|
|
|
|
Case 39 'IEPS TRASLADADO
|
|
If CveMonedaVenta = 1 Then
|
|
ImporteMovimiento = IEPSVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento
|
|
ElseIf CveMonedaVenta = 2 Then
|
|
ImporteMovimiento = IEPSVenta * PorcentajePago
|
|
importeMX = ImporteMovimiento * TCFluctuacion
|
|
End If
|
|
|
|
ImporteMovimiento = ImporteMovimiento.RoundSQL()
|
|
importeMX = importeMX.RoundSQL()
|
|
TCGeneral = TCFluctuacion
|
|
|
|
IdCtaContable = UsuarioActual.Empresa.IdCuentaIEPSTrasladado
|
|
CveCuenta = UsuarioActual.Empresa.CveCuentaIEPSTrasladado
|
|
If TCFluctuacion > 1 Then ConceptoMovimiento += $" TC:{TCFluctuacion} ${ImporteMovimiento.FormatoNumero(2)}"
|
|
|
|
Case 64 'GANANCIA
|
|
Continue For 'SKIPEA
|
|
If CveMonedaVenta <> 1 Then
|
|
IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria
|
|
CveCuenta = UsuarioActual.Empresa.CveCuentaGananciaCambiaria
|
|
If TCPago > TCVenta AndAlso CveMonedaVenta = 2 Then
|
|
ImporteMovimiento = (ImportePago * TCPago) - (ImportePago * TCVenta)
|
|
ImporteMovimiento -= ((IVAVenta * PorcentajePago) * TCFluctuacion) - ((IVAVenta * PorcentajePago) * TCVenta)
|
|
ImporteMovimiento += ((RetIVAVenta * PorcentajePago) * TCFluctuacion) - ((RetIVAVenta * PorcentajePago) * TCVenta)
|
|
ImporteMovimiento += ((RetISRVenta * PorcentajePago) * TCFluctuacion) - ((RetISRVenta * PorcentajePago) * TCVenta)
|
|
ImporteMovimiento -= ((IEPSVenta * PorcentajePago) * TCFluctuacion) - ((IEPSVenta * PorcentajePago) * TCVenta)
|
|
ImporteMovimiento = ImporteMovimiento.RoundSQL().Abs()
|
|
importeMX = ImporteMovimiento
|
|
End If
|
|
End If
|
|
|
|
Case 65 'PERDIDA
|
|
Continue For 'SKIPEA
|
|
If CveMonedaVenta <> 1 Then
|
|
IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria
|
|
CveCuenta = UsuarioActual.Empresa.CveCuentaPerdidaCambiaria
|
|
If TCPago < TCVenta AndAlso CveMonedaVenta = 2 Then
|
|
ImporteMovimiento = (ImportePago * TCPago) - (ImportePago * TCVenta)
|
|
ImporteMovimiento -= ((IVAVenta * PorcentajePago) * TCFluctuacion) - ((IVAVenta * PorcentajePago) * TCVenta)
|
|
ImporteMovimiento += ((RetIVAVenta * PorcentajePago) * TCFluctuacion) - ((RetIVAVenta * PorcentajePago) * TCVenta)
|
|
ImporteMovimiento += ((RetISRVenta * PorcentajePago) * TCFluctuacion) - ((RetISRVenta * PorcentajePago) * TCVenta)
|
|
ImporteMovimiento -= ((IEPSVenta * PorcentajePago) * TCFluctuacion) - ((IEPSVenta * PorcentajePago) * TCVenta)
|
|
ImporteMovimiento = ImporteMovimiento.RoundSQL().Abs()
|
|
importeMX = ImporteMovimiento
|
|
End If
|
|
End If
|
|
|
|
End Select
|
|
|
|
'AGREGA PREPOLIZA DETALLE
|
|
If ImporteMovimiento <> 0 Then
|
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, Referencia, ConceptoContable, ConceptoMovimiento, FechaMovimiento, IdCtaContable, -1, -1, CveVenta, -1, CveSubProyecto, CveCliente, CveProveedorContabilizar, ImporteMX:=importeMX, CveCuenta:=CveCuenta, TipoCambio:=TCGeneral) Then
|
|
TieneError = True
|
|
MensajeError.Append("No se pudo insertar el detalle de la póliza<br>")
|
|
Exit For
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
If TieneError Then Exit For
|
|
MensajeAlert.Append($"- Factura: {DrPago("Factura")} Importe: $ {DrPago("ImportePagoMX").ToString.FormatoNumero(2)}<br>")
|
|
|
|
Next
|
|
Else
|
|
TieneError = True
|
|
MensajeError.Append("Ocurrió un error al procesar los conceptos de contabilización. Por favor verifique y vuelva a intentar.<br>")
|
|
End If
|
|
|
|
|
|
|
|
If Not TieneError Then
|
|
ObjConta.Commit()
|
|
Alert($"Se realizó el pago exitoso de las siguientes facturas:<br><br> {MensajeAlert.ToString}", TipoMensaje.MsgInformacion)
|
|
Else
|
|
ObjConta.RollBack()
|
|
Alert(MensajeError.ToString, TipoMensaje.MsgError)
|
|
End If
|
|
ObjConta.Dispose()
|
|
|
|
Else
|
|
TieneError = True
|
|
MensajeError.Append("Ocurrió un error al obtener la información de los documentos pagados. Por favor comuniquese con su proveedor para verificar.")
|
|
End If
|
|
Else
|
|
TieneError = True
|
|
MensajeError.Append("Ocurrió un error al obtener la información desde el emisor de pago. Por favor comuniquese con su proveedor para verificar.")
|
|
End If
|
|
Else
|
|
TieneError = True
|
|
MensajeError.Append("Ocurrió un error al obtener los parametros desde el emisor de pago. Por favor comuniquese con su proveedor para verificar.")
|
|
End If
|
|
|
|
'SI EL PAGO SE PROCESO BIEN RECARGA CXP
|
|
If Not TieneError Then
|
|
MandaCorreoNotificacionPago()
|
|
CargaCxP()
|
|
End If
|
|
|
|
If TieneError Then
|
|
Alert(MensajeError.ToString, TipoMensaje.MsgError)
|
|
MandaCorreoERROR(MensajeError.ToString)
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub MandaCorreoNotificacionPago()
|
|
'CABECERA CORREO
|
|
Dim CorreoDestino = UsuarioActual.Usuario
|
|
Dim CorreoCC = "rene.molina@adssistemas.mx;israel.pina@adssistemas.mx"
|
|
Dim Asunto = $"Notificación de pago - {UsuarioActual.Empresa.Empresa}"
|
|
|
|
'CUERPO CORREO
|
|
Dim strBody As New StringBuilder
|
|
strBody.Append("<html xmlns=""http: //www.w3.org/1999/xhtml""> ")
|
|
strBody.Append("<head> ")
|
|
strBody.Append(" <style type=""text/css""> ")
|
|
strBody.Append(" * {")
|
|
strBody.Append(" font-family: Calibri; ")
|
|
strBody.Append(" }")
|
|
strBody.Append(" body { ")
|
|
strBody.Append(" padding: 0px;")
|
|
strBody.Append(" margin: 0px; ")
|
|
strBody.Append(" } ")
|
|
strBody.Append(" p {")
|
|
strBody.Append(" font-size: 14px;")
|
|
strBody.Append(" }")
|
|
strBody.Append(" /*ESTILOS ESTANDAR DE TABLA*/")
|
|
strBody.Append(" table {")
|
|
strBody.Append(" font-size: 14px;")
|
|
strBody.Append(" }")
|
|
strBody.Append(" table tr{")
|
|
strBody.Append(" height:20px;")
|
|
strBody.Append(" }")
|
|
strBody.Append(" table .thead{")
|
|
strBody.Append(" background-color:#dddddd;")
|
|
strBody.Append(" text-align:center;")
|
|
strBody.Append(" vertical-align:middle;")
|
|
strBody.Append(" }")
|
|
strBody.Append(" table .tbody{")
|
|
strBody.Append(" background-color:#F7F6F3; ")
|
|
strBody.Append(" }")
|
|
strBody.Append(" </style> ")
|
|
strBody.Append("</head> ")
|
|
strBody.Append("<body>")
|
|
|
|
strBody.Append($" <h2> {UsuarioActual.Empresa.Empresa} </h2>")
|
|
strBody.Append(" <h3> Notificación de pago </h3>")
|
|
strBody.Append(" <p>")
|
|
strBody.Append($" Se le informa estimado cliente <b>{LtlCliente.Text}</b> que hemos recibido <b>exitósamente</b> su pago mediante nuestro portal de cliente SIG.")
|
|
strBody.Append(" </p>")
|
|
|
|
strBody.Append(" <h4> Informacion de pago </h4>")
|
|
strBody.Append(" <table width=""270px"">")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <td style='width: 120px;'>Importe pagado</td>")
|
|
strBody.Append($" <td style='width: 150px; text-align: right;'>$ {DtPagos.SUM("ImportePagoMX").FormatoNumero()}</td>")
|
|
strBody.Append(" </tr>")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <td style='width: 120px;'>Fecha</td>")
|
|
strBody.Append($" <td style='width: 150px; text-align: right;'>{Now.ToString("dd/MM/yyyy HH:ss")}</td>")
|
|
strBody.Append(" </tr>")
|
|
strBody.Append(" </table>")
|
|
|
|
strBody.Append(" <h4> Facturas abonadas </h4>")
|
|
|
|
strBody.Append(" <table width=""270px"">")
|
|
strBody.Append(" <tr class=""thead"">")
|
|
strBody.Append(" <th style='width: 120px;'>Factura</th>")
|
|
strBody.Append(" <th style='width: 150px;'>Importe pagado</th>")
|
|
strBody.Append(" </tr>")
|
|
|
|
For Each DrPago As DataRow In DtPagos.Rows
|
|
strBody.Append(" <tr class=""tbody"">")
|
|
strBody.Append($" <td style='width: 120px; text-align: center;'>{DrPago("Factura")}</td>")
|
|
strBody.Append($" <td style='width: 150px; text-align: right;'>$ {DrPago("ImportePagoMX").ToString.FormatoNumero()}</td>")
|
|
strBody.Append(" </tr>")
|
|
Next
|
|
|
|
strBody.Append(" </table>")
|
|
|
|
strBody.Append(" <p> Agradecemos su preferencia. Gracias por su pago. </p>")
|
|
|
|
strBody.Append("</body>")
|
|
strBody.Append("</html>")
|
|
|
|
'ENVIO CORREO
|
|
Dim Mail As New ClsSisMail()
|
|
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, CorreoDestino, Asunto, strBody.ToString, CorreoCC)
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub MandaCorreoERROR(MensajeError As String)
|
|
|
|
'CABECERA CORREO
|
|
Dim CorreoDestino = "rene.molina@adssistemas.mx;israel.pina@adssistemas.mx"
|
|
Dim Asunto = $"ERROR PROCESO DE PAGO PROSEPAGO - EMPRESA:{UsuarioActual.Empresa.CveEmpresa} CLIENTE:{CveCliente}"
|
|
Dim Body = $"PARAMETROS LIGA: {Request("p")} <br> ERROR: {MensajeError}"
|
|
|
|
'ENVIO CORREO
|
|
Dim Mail As New ClsSisMail()
|
|
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, CorreoDestino, Asunto, Body)
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "TAB ANTICIPOS"
|
|
Private Sub CargaAnticipos(Optional SelectTop As Integer = 21, Optional CveClienteSucursal As Integer = -1)
|
|
Dim ObjMovtos As New ClsMovimientos()
|
|
If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveClienteSucursal:=CveClienteSucursal) Then
|
|
GVAnticipos.DataSource = ObjMovtos.DtResultados.FiltraParametros("Saldo >0 AND SaldoSubtotal > 0")
|
|
GVAnticiposHistorial.DataSource = ObjMovtos.DtResultados.FiltraParametros("SaldoSubtotal <=0")
|
|
Else
|
|
GVAnticipos.DataSource = Nothing
|
|
GVAnticiposHistorial.DataSource = Nothing
|
|
End If
|
|
ObjMovtos.Dispose()
|
|
GVAnticipos.DataBind()
|
|
GVAnticiposHistorial.DataBind()
|
|
End Sub
|
|
|
|
Protected Sub GVAnticipos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVAnticipos.RowDataBound, GVAnticiposHistorial.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
If e.Row.RowIndex = 0 Then
|
|
e.Row.Cells(0).ColumnSpan = 2
|
|
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.FCLiteral("LtlFactura").Text = "Total" & " "
|
|
e.Row.BackColor = Drawing.Color.LightGray
|
|
e.Row.Cells(1).Visible = False
|
|
End If
|
|
If e.Row.RowIndex = 1 Then
|
|
e.Row.Cells(0).Width = Unit.Pixel(60)
|
|
e.Row.Cells(1).Width = Unit.Pixel(100)
|
|
e.Row.Cells(2).Width = Unit.Pixel(80)
|
|
End If
|
|
|
|
e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Right
|
|
|
|
'If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(2).ForeColor = Drawing.Color.Red
|
|
'If e.Row.DBCampo("Saldo").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlAnticipos"), Literal).Text = ""
|
|
|
|
If e.Row.RowIndex > 0 Then
|
|
e.Row.FCLiteral("LtlFactura").Text = e.Row.DBCampo("Folio")
|
|
End If
|
|
|
|
If CType(sender, GridView).ID = "GVAnticipos" Then
|
|
e.Row.Cells(2).Font.Bold = True
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub BtnVerMasAnticipos_Click(sender As Object, e As EventArgs)
|
|
If BtnVerMasAnticipos.Text = "Ver Más" Then
|
|
CargaAnticipos(-1)
|
|
BtnVerMasAnticipos.Text = "Ver Menos"
|
|
Else
|
|
CargaAnticipos(21)
|
|
BtnVerMasAnticipos.Text = "Ver Más"
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "TAB BUZON DE CALIDAD"
|
|
Private Sub CargarTipoBuzon()
|
|
If TabBuzonCalidad.Visible = True Then
|
|
DdlTipoBuzon.DataSource = GlobalDTTipoBuzon
|
|
DdlTipoBuzon.DataBind()
|
|
End If
|
|
End Sub
|
|
Private Sub CargarClienteSucursal()
|
|
Dim ObjClienteSucursal As New ClsClientes
|
|
If ObjClienteSucursal.GetSucursales(UsuarioActual.CveCliente) Then
|
|
DdlClienteSucursal.DataSource = ObjClienteSucursal.DtResultados
|
|
Else
|
|
DdlClienteSucursal.DataSource = Nothing
|
|
End If
|
|
ObjClienteSucursal.Dispose()
|
|
DdlClienteSucursal.DataBind()
|
|
End Sub
|
|
Private Sub CargaRHPersonal()
|
|
Dim ObjRHPersonal As New ClsRH
|
|
If ObjRHPersonal.GetPersonal(-1, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveCliente, TxtHora.PostedTime & ":00", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) Then
|
|
ViewState("DTRHPersonal") = ObjRHPersonal.DtResultados
|
|
Else
|
|
Me.GvRHPersonal.DataSource = Nothing
|
|
End If
|
|
|
|
ObjRHPersonal.Dispose()
|
|
CargaGridRHPersonal("")
|
|
|
|
End Sub
|
|
|
|
Protected Sub GvRHPersonal_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvRHPersonal.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
If e.Row.RowIndex >= 0 Then
|
|
e.Row.Cells(0).Width = Unit.Pixel(100)
|
|
'CARGAR IMAGENES DE PERSONAL
|
|
If File.Exists(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\RH\Personal\" & e.Row.DBCampo("URL") & ".png") Then
|
|
e.Row.FCImage("ImgPersonal").ImageUrl = "/Empresas/" & UsuarioActual.CveEmpresa & "/RH/Personal/" & e.Row.DBCampo("URL") & ".png"
|
|
End If
|
|
|
|
'If File.Exists(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\RH\Personal\" & e.Row.DBCampo("URL")) Then
|
|
'e.Row.FCLiteral("LtlImgPersonal").Text = "<img src='/Empresas/" & UsuarioActual.CveEmpresa & "/RH/Personal/" & e.Row.DBCampo("URL") & " ' width='75px' heigth='75px'/>"
|
|
'Else
|
|
'e.Row.FCLiteral("LtlImgPersonal").Text = "<img src='/Imagenes/SinImagen.jpg' width='50px' heigth='50px'/>"
|
|
'End If
|
|
'FIN CARGAR IMAGENES DE PERSONAL
|
|
|
|
e.Row.Cells(1).Width = Unit.Pixel(250)
|
|
|
|
End If
|
|
e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center
|
|
|
|
End If
|
|
End Sub
|
|
Private Sub CargaGridRHPersonal(Orden As String)
|
|
If Orden <> String.Empty Then
|
|
Dim DV As New DataView(CType(ViewState("DTRHPersonal"), DataTable), "", Orden, DataViewRowState.CurrentRows)
|
|
GvRHPersonal.DataSource = DV.ToTable()
|
|
DV.Dispose()
|
|
Else
|
|
GvRHPersonal.DataSource = CType(ViewState("DTRHPersonal"), DataTable)
|
|
End If
|
|
GvRHPersonal.DataBind()
|
|
End Sub
|
|
|
|
Protected Sub BtnConsultarPersonal_Click(sender As Object, e As System.EventArgs) Handles BtnConsultarPersonal.Click
|
|
CargaRHPersonal()
|
|
End Sub
|
|
|
|
Protected Sub BtnEnviar_Click(sender As Object, e As System.EventArgs) Handles BtnEnviar.Click
|
|
'GvRHPersonal
|
|
Dim ObjQueja As New ClsRH
|
|
For Each Row As GridViewRow In GvRHPersonal.Rows
|
|
If Row.FCCheckBox("ChbSeleccionado").Checked Then
|
|
|
|
If ObjQueja.AddBuzonCalidad(GvRHPersonal.DataKeys(Row.RowIndex).Value.ToString.ToEntero, UsuarioActual.CveCliente, DdlClienteSucursal.SelectedValue.ToEntero, DdlTipoBuzon.SelectedValue.ToEntero, TxtFechaQueja.Text.ToDate(), TxtDescripcion.Text, TxtNombreReporto.Text, TxtTelefonoReporto.Text, TxtMailReporto.Text, TxtObservaciones.Text, UsuarioActual.CveEmpresa, -1) Then
|
|
Alert("Se Envió Correctamente", TipoMensaje.MsgInformacion)
|
|
End If
|
|
'Si está seleccionado el check del GridView quiere decir que lo seleccionaron. Hay que hacer el insert
|
|
'La clave personal se saca de:
|
|
'(string)this.grid.DataKeys[rowIndex]["myKey"];
|
|
'GvRHPersonal.DataKeys(Row.RowIndex)("CvePersonal").ToString
|
|
|
|
End If
|
|
Next
|
|
ObjQueja.Dispose()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "TAB SISTEMA"
|
|
Private Sub CargaUsuariosPortal()
|
|
Dim ObjUsuario As New ClsSisUsuarios()
|
|
If ObjUsuario.GetUsuariosPortal(-1, CveCliente, -1) Then
|
|
Dim dtUsr As DataTable = ObjUsuario.DtResultados
|
|
'Dim dr As DataRow = dtUsr.FiltroPrimero("CveUsuario = " & UsuarioActual.CveUsuario)
|
|
|
|
'If dr IsNot Nothing Then
|
|
' If True Then TabHistorialCompras.Visible = True 'Compras 'dr("Permiso1").ToString = "True"
|
|
' If True Then TabCxP.Visible = True 'Cuentas por pagar
|
|
' If True Then TabAnticipos.Visible = True 'Anticipos
|
|
' If True Then TabOS.Visible = True 'Ordenes de Servicio
|
|
' If True Then TabBuzonCalidad.Visible = True 'Buzón Calidad
|
|
' 'If dr("Permiso6").ToString = "True" Then TabCotizaciones.Visible = True 'Cotizaciones
|
|
' If True Then TabSistema.Visible = True 'Sistemas
|
|
'End If
|
|
dtUsr = dtUsr.FiltraParametros("Nombre <> 'Admin' AND CveUsuario <> " & UsuarioActual.CveUsuario)
|
|
ViewState("OrdenUsuarios") = ""
|
|
''busco la clave del admin, si es que existe
|
|
'Dim dr As DataRow = dtUsr.FiltroPrimero("Usuario = 'Admin'")
|
|
|
|
'If dr IsNot Nothing Then
|
|
' HdnCveUsuarioPortalAdmin.Value = dr("CveUsuarioPortal").ToString
|
|
|
|
' If dr("Estatus").ToString = "1" Then
|
|
' HdnCveUsuarioPortalActivado.Value = "1"
|
|
' End If
|
|
|
|
'End If
|
|
|
|
'If HdnCveUsuarioPortalActivado.Value.ToEntero > 0 Then
|
|
' trEnviarActivacion.Visible = False
|
|
' trRecuperacionContraseña.Visible = True
|
|
'End If
|
|
|
|
GvUsuariosPortal.DataSource = dtUsr
|
|
ViewState("DTUsuariosCliente") = dtUsr
|
|
Else
|
|
GvUsuariosPortal.DataSource = Nothing
|
|
ViewState("DTUsuariosCliente") = Nothing
|
|
End If
|
|
ObjUsuario.Dispose()
|
|
GvUsuariosPortal.DataBind()
|
|
End Sub
|
|
|
|
|
|
#Region "GESTION DE USUARIOS DEL PORTAL"
|
|
|
|
Protected Sub LnkAgregarUsuario_Click(sender As Object, e As EventArgs) Handles LnkAgregarUsuario.Click
|
|
Dim ObjParametro As SisParametro = GlobalDTParametros(SisParametros.URL)
|
|
Dim ObjUsuario As New ClsSisUsuarios
|
|
Dim CveUsuario As Integer = -1
|
|
|
|
Dim Liga As String = $"{ObjParametro.Cadena1}LogIn.aspx"
|
|
Dim CvePlataforma As Integer = 6
|
|
|
|
If UsuarioActual.CveEmpresa = 43 Then
|
|
Liga = ObjParametro.Cadena1 & "AIMMGM/Portal.aspx"
|
|
End If
|
|
|
|
ObjUsuario.IniciaTransacSQL()
|
|
CveUsuario = ObjUsuario.AddUsuarioPortal(TxtCorreoPortal.Text, ContraseñaPredeterminadaEncriptada, TxtNombrePortal.Text, TxtCorreoPortal.Text, CveCliente, -1, CvePlataforma, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
|
|
If CveUsuario > 0 Then
|
|
If ObjUsuario.UpdateUsuariosModulos(CveUsuario, 1101, True, UsuarioActual.CveUsuario) Then
|
|
ObjUsuario.GetUsuariosPortal(-1, CveCliente, -1)
|
|
ViewState("DTUsuariosCliente") = ObjUsuario.DtResultados.FiltraParametros("Nombre <> 'Admin' AND CveUsuario <> " & UsuarioActual.CveUsuario)
|
|
|
|
TxtNombrePortal.Text = ""
|
|
TxtCorreoPortal.Text = ""
|
|
EnviaCorreo(Liga)
|
|
Alert("Usuario Creado.<br>El usuario accesará con la contraseña '" & ContraseñaPredeterminada & "'", TipoMensaje.MsgInformacion)
|
|
|
|
ObjUsuario.Commit()
|
|
Else
|
|
ObjUsuario.RollBack()
|
|
End If
|
|
Else
|
|
ObjUsuario.RollBack()
|
|
End If
|
|
|
|
ObjUsuario.Dispose()
|
|
|
|
If ViewState("OrdenUsuarios").ToString() <> String.Empty Then
|
|
CargaGridUsuarios(ViewState("OrdenUsuarios").ToString())
|
|
Else
|
|
CargaGridUsuarios("")
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub GvUsuariosPortal_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvUsuariosPortal.RowCommand
|
|
If e.CommandName = "RestablecerContraseña" Then
|
|
Dim cveUsuarioPortal As Integer = e.CommandArgument.ToString.ToEntero
|
|
Dim Usuario As New ClsSisUsuarios
|
|
If Usuario.GetUsuariosPortal(cveUsuarioPortal, -1, -1) Then
|
|
Dim dr As DataRow = Usuario.DtResultados.FiltroPrimero("")
|
|
|
|
If Usuario.UpdateUsuarioPortal(dr("Correo").ToString, dr("Nombre").ToString, dr("Correo").ToString, CType(dr("Estatus"), Boolean), ContraseñaPredeterminadaEncriptada, CveCliente, -1, cveUsuarioPortal, UsuarioActual.CveUsuario) Then
|
|
GvUsuariosPortal.EditIndex = -1
|
|
ViewState("DTUsuariosCliente") = Usuario.DtResultados.FiltraParametros("Usuario <> 'Admin' AND CveUsuario <> " & UsuarioActual.CveUsuario)
|
|
Alert($"Contraseña Restablecida.<br> La nueva contraseña es: <b>{ContraseñaPredeterminada}<b/>", TipoMensaje.MsgInformacion)
|
|
End If
|
|
|
|
End If
|
|
|
|
Usuario.Dispose()
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub GvUsuariosPortal_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvUsuariosPortal.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
e.Row.Cells(0).Width = Unit.Pixel(80)
|
|
e.Row.Cells(1).Width = Unit.Pixel(141)
|
|
e.Row.Cells(2).Width = Unit.Pixel(50)
|
|
e.Row.Cells(3).Width = Unit.Pixel(50)
|
|
e.Row.Cells(4).Width = Unit.Pixel(55)
|
|
e.Row.Cells(5).Width = Unit.Pixel(50)
|
|
e.Row.Cells(6).Width = Unit.Pixel(50)
|
|
e.Row.Cells(7).Width = Unit.Pixel(50)
|
|
e.Row.Cells(8).Width = Unit.Pixel(50)
|
|
e.Row.Cells(9).Width = Unit.Pixel(50)
|
|
e.Row.Cells(10).Width = Unit.Pixel(50)
|
|
e.Row.Cells(11).Width = Unit.Pixel(50)
|
|
e.Row.Cells(12).Width = Unit.Pixel(45)
|
|
e.Row.Cells(13).Width = Unit.Pixel(68)
|
|
e.Row.Cells(14).Width = Unit.Pixel(100)
|
|
e.Row.Cells(15).Width = Unit.Pixel(140)
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub GvUsuariosPortal_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles GvUsuariosPortal.RowEditing
|
|
|
|
GvUsuariosPortal.EditIndex = e.NewEditIndex
|
|
|
|
If ViewState("OrdenUsuarios").ToString() <> String.Empty Then
|
|
CargaGridUsuarios(ViewState("OrdenUsuarios").ToString())
|
|
Else
|
|
CargaGridUsuarios("")
|
|
End If
|
|
'CargaUsuariosPortal()
|
|
|
|
End Sub
|
|
|
|
Protected Sub GvUsuariosPortal_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) Handles GvUsuariosPortal.RowUpdating
|
|
|
|
Dim Usuarios As New ClsSisUsuarios
|
|
|
|
Dim Correo, Nombre As String
|
|
Dim Estatus As Boolean
|
|
|
|
Dim gvr As GridViewRow = GvUsuariosPortal.Rows(e.RowIndex)
|
|
Correo = gvr.FCLiteral("LtlCorreo").Text.Trim
|
|
Nombre = gvr.FCTextBox("TxtUsuarioPortalEdit").Text.Trim
|
|
'Rol = GvDatos.Rows(e.RowIndex).FCDropDownList("CbxA").SelectedValue.ToEntero
|
|
Estatus = gvr.FCCheckBox("ChkEstatus").Checked
|
|
Dim CveUsuarioPortal As Integer = gvr.DataKey("CveUsuario").ToEntero
|
|
Dim pCveCliente As Integer = gvr.DataKey("CveClientePlataforma").ToEntero
|
|
|
|
''Correo = GvDatos.Rows(e.RowIndex).FCTextBox("TxtCorreo").Text.Trim
|
|
''CveSupervisa = GvDatos.Rows(e.RowIndex).FCDropDownList("CboSupervisa").SelectedValue.ToEntero
|
|
''CveAutoriza = GvDatos.Rows(e.RowIndex).FCDropDownList("CboAutoriza").SelectedValue.ToEntero
|
|
''CveEmpresa = GvDatos.Rows(e.RowIndex).FCDropDownList("CboEmpresa").SelectedValue.ToEntero
|
|
|
|
If Usuarios.UpdateUsuarioPortal(Correo, Nombre, Correo, Estatus, "-1", pCveCliente, -1, CveUsuarioPortal, UsuarioActual.CveUsuario) Then
|
|
GvUsuariosPortal.EditIndex = -1
|
|
ViewState("DTUsuariosCliente") = Usuarios.DtResultados.FiltraParametros("Nombre <> 'Admin' AND CveUsuario <> " & UsuarioActual.CveUsuario)
|
|
End If
|
|
|
|
Usuarios.Dispose()
|
|
|
|
If ViewState("OrdenUsuarios").ToString() <> String.Empty Then
|
|
CargaGridUsuarios(ViewState("OrdenUsuarios").ToString())
|
|
Else
|
|
CargaGridUsuarios("")
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Protected Sub GvUsuariosPortal_RowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs) Handles GvUsuariosPortal.RowDeleting
|
|
|
|
Dim Usuario As New ClsSisUsuarios
|
|
If Usuario.RemoveUsuarioPortal(GvUsuariosPortal.DataKeys(e.RowIndex).Value.ToString().ToEntero()) Then
|
|
GvUsuariosPortal.EditIndex = -1
|
|
ViewState("DTUsuariosCliente") = Usuario.DtResultados
|
|
End If
|
|
|
|
Usuario.Dispose()
|
|
|
|
If ViewState("OrdenUsuarios").ToString() <> String.Empty Then
|
|
CargaGridUsuarios(ViewState("OrdenUsuarios").ToString())
|
|
Else
|
|
CargaGridUsuarios("")
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Protected Sub GvUsuariosPortal_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs) Handles GvUsuariosPortal.RowCancelingEdit
|
|
|
|
GvUsuariosPortal.EditIndex = -1
|
|
|
|
If ViewState("OrdenUsuarios").ToString() <> String.Empty Then
|
|
CargaGridUsuarios(ViewState("OrdenUsuarios").ToString())
|
|
Else
|
|
CargaGridUsuarios("")
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub CargaGridUsuarios(Orden As String)
|
|
If CType(ViewState("DTUsuariosCliente"), DataTable).Rows.Count > 0 Then
|
|
If Orden <> String.Empty Then
|
|
Dim DV As New DataView(CType(ViewState("DTUsuariosCliente"), DataTable), "", Orden, DataViewRowState.CurrentRows)
|
|
GvUsuariosPortal.DataSource = DV.ToTable()
|
|
DV.Dispose()
|
|
Else
|
|
GvUsuariosPortal.DataSource = CType(ViewState("DTUsuariosCliente"), DataTable)
|
|
End If
|
|
|
|
End If
|
|
GvUsuariosPortal.DataBind()
|
|
UPPUsuarios.Update()
|
|
End Sub
|
|
|
|
Private Sub EnviaCorreo(Liga As String)
|
|
|
|
Try
|
|
Dim Para = TxtCorreoPortal.Text.Trim
|
|
Dim Asunto = "ACTIVACIÓN DEL PORTAL DE CLIENTE"
|
|
Dim SBBody As New StringBuilder
|
|
'Linia de estilos
|
|
SBBody.Append("<style> .mailbody{ background-color:#EEF1F5; padding:15px; font-family :'Open Sans', sans-serif; } .mailcontent{ background-color:#fff; font-size: 14px; color: #333; padding:0px 15px ; } .mailtitle{padding:8px;color:#32C5D2; font-size: 18px;font-weight: 700!important;border-bottom:2px solid #EEF1F5;text-transform: uppercase;}.marco{border: 1px solid #869ab3;border-top: 0;background-color: #67809F; margin: 10px 15px 25px 15px;color: #fff;}.marco-title{padding: 10px 10px;text-transform: uppercase;font-weight: 700!important;}.marco-body{color:#333;background-color:#fff;}.nota{background: #E5E5E5;padding:15px;color:#333;} .logo { font-size:12px; font-style:italic; text-align:right; } .col1{width:180px;font-weight: 700!important;display:inline-block;} .col2{min-width:260px;display:inline-block;} </style>")
|
|
'incio Cuerpo del correo
|
|
SBBody.Append("<div Class='mailbody'>")
|
|
SBBody.Append("<div Class='mailcontent'>")
|
|
SBBody.Append("<div Class='mailtitle'>")
|
|
SBBody.Append("ALTA DE CUENTA")
|
|
SBBody.Append("</div>")
|
|
SBBody.Append("<br/>")
|
|
SBBody.AppendFormat("<b> Estimado {0}:</b><br/>", TxtNombrePortal.Text.ToUpper)
|
|
SBBody.AppendFormat("El presente correo es para informarle que se le han asignado los siguientes datos para el acceso al Portal del Cliente de: <b>{0}</b><br/><br/>", UsuarioActual.Empresa.Empresa)
|
|
SBBody.Append("<div Class='marco'>")
|
|
SBBody.Append("<div Class='marco-title'>Datos de usuario</div>")
|
|
SBBody.Append("<div Class='marco-body'>")
|
|
|
|
SBBody.Append("<div>")
|
|
SBBody.Append("<div class='col1'> Dirección de Acceso</div>")
|
|
SBBody.AppendFormat("<div class='col2'><a href='{0}'target='_blank'>Portal del Cliente</a></div>", Liga)
|
|
SBBody.Append("</div>")
|
|
|
|
SBBody.Append("<div>")
|
|
SBBody.Append("<div class='col1'> Clave</div>")
|
|
SBBody.AppendFormat("<div class='col2'>{0}</div>", CveCliente)
|
|
SBBody.Append("</div>")
|
|
|
|
SBBody.Append("<div>")
|
|
SBBody.Append("<div class='col1'> Usuario</div>")
|
|
SBBody.AppendFormat("<div class='col2'>{0}</div>", TxtCorreoPortal.Text)
|
|
SBBody.Append("</div>")
|
|
|
|
SBBody.Append("<div>")
|
|
SBBody.Append("<div class='col1'> Contraseña</div>")
|
|
SBBody.AppendFormat("<div class='col2'>{0}</div>", ContraseñaPredeterminada + "oficial")
|
|
SBBody.Append("</div>")
|
|
|
|
|
|
SBBody.Append("</div>")
|
|
SBBody.Append("</div>")
|
|
SBBody.Append("<br/>")
|
|
'SBBody.Append("Para Activar su cuenta debera cambiar su contraseña.<br/><br/>")
|
|
SBBody.Append("<div Class='nota'>")
|
|
SBBody.Append("Nota Favor de NO responder este correo. ")
|
|
SBBody.Append("</div><br/><br/>")
|
|
SBBody.AppendFormat("<div class='logo'><img src='{0}Imagenes/LogoSinFondo.png' style='width:30px;'/>ADSistemas </div>", UrlSitio)
|
|
SBBody.Append("</div>")
|
|
SBBody.Append("</div>")
|
|
'Termino Cuerpo del correo
|
|
|
|
Dim Hilo As New System.Threading.Thread(Sub() MandaCorreo(Asunto, Para, SBBody.ToString))
|
|
Hilo.Start()
|
|
Alert("El correo se ha enviado correctamente a: " + TxtCorreoPortal.Text + ".", TipoMensaje.MsgInformacion)
|
|
Catch ex As Exception
|
|
OnError("Ocurrió error al mandar MAIL", ex)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
Private Sub MandaCorreo(Asunto As String, Para As String, Body As String)
|
|
Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para)
|
|
a.GuardaLog()
|
|
Dim Mail As New ClsSisMail()
|
|
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body)
|
|
End Sub
|
|
#End Region
|
|
|
|
#End Region
|
|
|
|
#Region "TAB CONTRASENIA"
|
|
|
|
Protected Sub BtnGuardarContraseña_Click(sender As Object, e As EventArgs) Handles BtnGuardarContraseña.Click
|
|
|
|
If Decripta(UsuarioActual.Contraseña) = TxtContraseniaActual.Text Then
|
|
|
|
Dim ObjUsuario As New ClsSisUsuarios
|
|
Dim Usuario As Usuario = Nothing
|
|
If ObjUsuario.GetUsuariosPortal(UsuarioActual.CveUsuario, -1, -1) Then
|
|
|
|
Dim dr As DataRow = ObjUsuario.DtResultados.FiltroPrimero("")
|
|
|
|
If ObjUsuario.UpdateUsuarioPortal(dr("Usuario").ToString, dr("Nombre").ToString, dr("Correo").ToString, True, Encripta(TxtContrasenia1.Text), dr("CveCliente").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveUsuario) Then
|
|
UsuarioActual.Contraseña = Encripta(TxtContrasenia1.Text)
|
|
Alert("Contraseña Modificada.", TipoMensaje.MsgInformacion)
|
|
|
|
End If
|
|
End If
|
|
|
|
ObjUsuario.Dispose()
|
|
Else
|
|
Alert("La Contraseña Actual es incorrecta.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
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("<i class='fa fa-sort-asc' style='color:#999' ></i>")
|
|
Else
|
|
ViewState(String.Format("O{0}", Campo, gvi)) = String.Format("{0} DESC", Campo)
|
|
Literal.Text = String.Format("<i class='fa fa-sort-desc' style='color:#999' ></i>")
|
|
End If
|
|
Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo, gvi)).ToString
|
|
ViewState("Orden") = Orden
|
|
CargaGrid(Orden, gvi)
|
|
|
|
|
|
End Sub
|
|
Private Sub CargaGrid(Orden As String, gvi As Integer)
|
|
If gvi = 0 Then
|
|
CargaRHPersonal()
|
|
ElseIf gvi = 1 Then
|
|
CargaGridUsuarios(Orden)
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "DESCARGA Todos los Archivos"
|
|
|
|
|
|
Private Sub BtnDescargarPDF_Click(sender As Object, e As EventArgs) Handles BtnDescargarPDF.Click
|
|
|
|
If Not Directory.Exists(AppDomain.CurrentDomain.BaseDirectory & "Temp") Then Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory & "Temp")
|
|
If Directory.Exists(AppDomain.CurrentDomain.BaseDirectory & "Temp\" & UsuarioActual.CveUsuario.ToString & "\") Then Directory.Delete(AppDomain.CurrentDomain.BaseDirectory & "Temp\" & UsuarioActual.CveUsuario.ToString & "\", True)
|
|
If Not Directory.Exists(AppDomain.CurrentDomain.BaseDirectory & "Temp\" & UsuarioActual.CveUsuario.ToString & "\") Then Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory & "Temp\" & UsuarioActual.CveUsuario.ToString & "\")
|
|
|
|
Dim RutaArchivo As String = AppDomain.CurrentDomain.BaseDirectory & "Temp\" & UsuarioActual.CveUsuario & ".zip"
|
|
Dim Archivo As String = String.Empty
|
|
Dim HuboInexistentes As Boolean = False
|
|
Dim SBInexistentes As New StringBuilder : SBInexistentes.Append("No se pudieron anexar los siguientes archivos:<br />")
|
|
Dim RutaDestino As String = AppDomain.CurrentDomain.BaseDirectory & "Temp\" & UsuarioActual.CveUsuario.ToString & "\"
|
|
|
|
'Ciclo para notificar si hay archivos que no existen.
|
|
For Each Row As GridViewRow In GVHistorial.Rows
|
|
If Row.FCHiddenField("HdnTipo").Value.Trim <> String.Empty Then
|
|
Archivo = UsuarioActual.Empresa.Ruta & "PDF\" & Row.FCHiddenField("HdnTipo").Value & "\" & Row.FCHiddenField("HdnFolio").Value & ".pdf"
|
|
If File.Exists(Archivo) Then
|
|
File.Copy(Archivo, RutaDestino & Row.FCHiddenField("HdnTipo").Value & "_" & Row.FCHiddenField("HdnFolio").Value & ".pdf")
|
|
Else
|
|
HuboInexistentes = True
|
|
SBInexistentes.AppendFormat("Tipo {0}, Folio {1}<br />", Row.FCHiddenField("HdnTipo").Value, Row.FCHiddenField("HdnFolio").Value)
|
|
End If
|
|
End If
|
|
Next
|
|
If File.Exists(RutaArchivo) Then File.Delete(RutaArchivo)
|
|
ZipFile.CreateFromDirectory(RutaDestino, RutaArchivo)
|
|
|
|
If HuboInexistentes Then
|
|
Alert(SBInexistentes.ToString, TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
SBInexistentes.Clear()
|
|
|
|
Dim Script As String = String.Format("window.open(""data:application/zip;base64,"" + encodeURIComponent(""{0}""));", RutaArchivo.SetFileToBase64String())
|
|
RegistraScript(Script, "tickdownload")
|
|
'Descargar
|
|
'Memorystream
|
|
'Elimine el .zip que se genero
|
|
|
|
If File.Exists(RutaArchivo) Then File.Delete(RutaArchivo)
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub BtnDescargarXML_Click(sender As Object, e As EventArgs) Handles BtnDescargarXML.Click
|
|
|
|
If Not Directory.Exists(AppDomain.CurrentDomain.BaseDirectory & "Temp") Then Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory & "Temp")
|
|
If Directory.Exists(AppDomain.CurrentDomain.BaseDirectory & "Temp\" & UsuarioActual.CveUsuario.ToString & "\") Then Directory.Delete(AppDomain.CurrentDomain.BaseDirectory & "Temp\" & UsuarioActual.CveUsuario.ToString & "\", True)
|
|
If Not Directory.Exists(AppDomain.CurrentDomain.BaseDirectory & "Temp\" & UsuarioActual.CveUsuario.ToString & "\") Then Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory & "Temp\" & UsuarioActual.CveUsuario.ToString & "\")
|
|
|
|
Dim RutaArchivo As String = AppDomain.CurrentDomain.BaseDirectory & "Temp\" & UsuarioActual.CveUsuario & ".zip"
|
|
Dim Archivo As String = String.Empty
|
|
Dim HuboInexistentes As Boolean = False
|
|
Dim SBInexistentes As New StringBuilder : SBInexistentes.Append("No se pudieron anexar los siguientes archivos:<br />")
|
|
Dim RutaDestino As String = AppDomain.CurrentDomain.BaseDirectory & "Temp\" & UsuarioActual.CveUsuario.ToString & "\"
|
|
|
|
'Ciclo para notificar si hay archivos que no existen.
|
|
For Each Row As GridViewRow In GVHistorial.Rows
|
|
If Row.FCHiddenField("HdnTipo").Value.Trim <> String.Empty Then
|
|
Archivo = UsuarioActual.Empresa.Ruta & "XML\" & Row.FCHiddenField("HdnTipo").Value & "\" & Row.FCHiddenField("HdnFolio").Value & ".xml"
|
|
If File.Exists(Archivo) Then
|
|
File.Copy(Archivo, RutaDestino & Row.FCHiddenField("HdnTipo").Value & "_" & Row.FCHiddenField("HdnFolio").Value & ".xml")
|
|
Else
|
|
HuboInexistentes = True
|
|
SBInexistentes.AppendFormat("Tipo {0}, Folio {1}<br />", Row.FCHiddenField("HdnTipo").Value, Row.FCHiddenField("HdnFolio").Value)
|
|
End If
|
|
End If
|
|
Next
|
|
If File.Exists(RutaArchivo) Then File.Delete(RutaArchivo)
|
|
ZipFile.CreateFromDirectory(RutaDestino, RutaArchivo)
|
|
|
|
If HuboInexistentes Then
|
|
Alert(SBInexistentes.ToString, TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
SBInexistentes.Clear()
|
|
|
|
Dim Script As String = String.Format("window.open(""data:application/zip;base64,"" + encodeURIComponent(""{0}""));", RutaArchivo.SetFileToBase64String())
|
|
RegistraScript(Script, "tickdownload")
|
|
'Descargar
|
|
'Memorystream
|
|
'Elimine el .zip que se genero
|
|
|
|
If File.Exists(RutaArchivo) Then File.Delete(RutaArchivo)
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
#Region "IMPRIMIR GVHistorial"
|
|
|
|
|
|
Protected Sub BtnExcelHistorial_Click(sender As Object, e As EventArgs)
|
|
Dim retorno As Byte() = Nothing
|
|
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)
|
|
|
|
|
|
'OBTENEMOS LOS DATOS
|
|
'Dim DTHistorial As DataTable
|
|
'If ObjClientes.GetHistorialVentas(UsuarioActual.CveCliente, TopRegistros) Then
|
|
' DTHistorial = ObjClientes.DtResultados
|
|
'Else
|
|
' DTHistorial = Nothing
|
|
'End If
|
|
|
|
If DTHistorialVentas.Rows.Count > 0 Then
|
|
Dim dr As DataRow = DTHistorialVentas.Rows(0)
|
|
|
|
Dim params As New List(Of ReportParameter)
|
|
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
|
|
params.Add(New ReportParameter("DireccionEmpresa", UsuarioActual.Empresa.Direccion))
|
|
params.Add(New ReportParameter("TelefonoEmpresa", UsuarioActual.Empresa.Telefono))
|
|
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
|
|
If Imagen.Exists Then
|
|
params.Add(New ReportParameter("LogoPath", logouri))
|
|
Else
|
|
params.Add(New ReportParameter("LogoPath", ""))
|
|
End If
|
|
|
|
ImprimirPDF("Empresas/Grales/Formatos/ClienteHistorial.rdlc", DTHistorialVentas, params, "Reporte de Historial", "Excel")
|
|
Else
|
|
Alert("Ocurrió un error.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Protected Sub BtnPDFHistorial_Click(sender As Object, e As EventArgs)
|
|
Dim retorno As Byte() = ImprimirReporteHistorial()
|
|
If retorno IsNot Nothing Then
|
|
ImprimirbytesPDF(retorno, "Reporte de Historial", Descarga:=True)
|
|
End If
|
|
End Sub
|
|
|
|
Protected Function ImprimirReporteHistorial() As Byte()
|
|
Dim retorno As Byte() = Nothing
|
|
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 ObjClientes As New ClsClientes()
|
|
|
|
'OBTENEMOS LOS DATOS
|
|
'Dim DTHistorial As DataTable
|
|
'If ObjClientes.GetHistorialVentas(UsuarioActual.CveCliente, TopRegistros) Then
|
|
' DTHistorial = ObjClientes.DtResultados
|
|
'Else
|
|
' DTHistorial = Nothing
|
|
'End If
|
|
|
|
If DTHistorialVentas.Rows.Count > 0 Then
|
|
Dim dr As DataRow = DTHistorialVentas.Rows(0)
|
|
|
|
Dim params As New List(Of ReportParameter)
|
|
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
|
|
params.Add(New ReportParameter("DireccionEmpresa", UsuarioActual.Empresa.Direccion))
|
|
params.Add(New ReportParameter("TelefonoEmpresa", UsuarioActual.Empresa.Telefono))
|
|
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
|
|
If Imagen.Exists Then
|
|
params.Add(New ReportParameter("LogoPath", logouri))
|
|
Else
|
|
params.Add(New ReportParameter("LogoPath", ""))
|
|
End If
|
|
|
|
retorno = StreamPDF("Empresas/Grales/Formatos/ClienteHistorial.rdlc", DTHistorialVentas, params, "Reporte de Historial")
|
|
Else
|
|
Alert("Ocurrió un error.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
ObjClientes.Dispose()
|
|
|
|
Return retorno
|
|
End Function
|
|
|
|
|
|
#End Region
|
|
|
|
|
|
#Region "IMPRIMIR CxC Activas"
|
|
Protected Sub LbExcelCxCActivas_Click(sender As Object, e As EventArgs)
|
|
Dim retorno As Byte() = Nothing
|
|
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)
|
|
|
|
|
|
|
|
If DTCxC.Rows.Count > 0 Then
|
|
Dim dr As DataRow = DTCxC.Rows(0)
|
|
|
|
Dim params As New List(Of ReportParameter)
|
|
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
|
|
params.Add(New ReportParameter("DireccionEmpresa", UsuarioActual.Empresa.Direccion))
|
|
params.Add(New ReportParameter("TelefonoEmpresa", UsuarioActual.Empresa.Telefono))
|
|
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
|
|
If Imagen.Exists Then
|
|
params.Add(New ReportParameter("LogoPath", logouri))
|
|
Else
|
|
params.Add(New ReportParameter("LogoPath", ""))
|
|
End If
|
|
|
|
ImprimirPDF("Empresas/Grales/Formatos/ClienteCxC.rdlc", DTCxC, params, "Reporte de CxC Activas", "Excel")
|
|
Else
|
|
Alert("Ocurrió un error.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Protected Sub LbPDFCxCActivas_Click(sender As Object, e As EventArgs)
|
|
Dim retorno As Byte() = ImprimirReporteCxCActivas()
|
|
If retorno IsNot Nothing Then
|
|
ImprimirbytesPDF(retorno, "Reporte de CxC Activas", Descarga:=True)
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Protected Function ImprimirReporteCxCActivas() As Byte()
|
|
Dim retorno As Byte() = Nothing
|
|
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 ObjMovtos As New ClsMovimientos()
|
|
|
|
|
|
If DTCxC.Rows.Count > 0 Then
|
|
Dim dr As DataRow = DTCxC.Rows(0)
|
|
|
|
Dim params As New List(Of ReportParameter)
|
|
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
|
|
params.Add(New ReportParameter("DireccionEmpresa", UsuarioActual.Empresa.Direccion))
|
|
params.Add(New ReportParameter("TelefonoEmpresa", UsuarioActual.Empresa.Telefono))
|
|
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
|
|
If Imagen.Exists Then
|
|
params.Add(New ReportParameter("LogoPath", logouri))
|
|
Else
|
|
params.Add(New ReportParameter("LogoPath", ""))
|
|
End If
|
|
|
|
retorno = StreamPDF("Empresas/Grales/Formatos/ClienteCxC.rdlc", DTCxC, params, "Reporte de CxC Activas")
|
|
Else
|
|
Alert("Ocurrió un error.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
ObjMovtos.Dispose()
|
|
Return retorno
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
|
|
#Region "IMPRIMIR CxCHistorial"
|
|
|
|
Protected Sub LbExcelCxCHistorial_Click(sender As Object, e As EventArgs)
|
|
Dim retorno As Byte() = Nothing
|
|
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)
|
|
|
|
|
|
|
|
If DTCxCHistorial.Rows.Count > 0 Then
|
|
Dim dr As DataRow = DTCxCHistorial.Rows(0)
|
|
|
|
Dim params As New List(Of ReportParameter)
|
|
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
|
|
params.Add(New ReportParameter("DireccionEmpresa", UsuarioActual.Empresa.Direccion))
|
|
params.Add(New ReportParameter("TelefonoEmpresa", UsuarioActual.Empresa.Telefono))
|
|
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
|
|
If Imagen.Exists Then
|
|
params.Add(New ReportParameter("LogoPath", logouri))
|
|
Else
|
|
params.Add(New ReportParameter("LogoPath", ""))
|
|
End If
|
|
|
|
ImprimirPDF("Empresas/Grales/Formatos/ClienteCxC.rdlc", DTCxCHistorial, params, "Reporte de CxC Historial", "Excel")
|
|
Else
|
|
Alert("Ocurrió un error.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Protected Sub LbPDFCxCHistorial_Click(sender As Object, e As EventArgs)
|
|
Dim retorno As Byte() = ImprimirReporteCxCHistorial()
|
|
If retorno IsNot Nothing Then
|
|
ImprimirbytesPDF(retorno, "Reporte de CxC Historial", Descarga:=True)
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Protected Function ImprimirReporteCxCHistorial() As Byte()
|
|
Dim retorno As Byte() = Nothing
|
|
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 ObjMovtos As New ClsMovimientos()
|
|
|
|
|
|
If DTCxCHistorial.Rows.Count > 0 Then
|
|
Dim dr As DataRow = DTCxCHistorial.Rows(0)
|
|
|
|
Dim params As New List(Of ReportParameter)
|
|
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
|
|
params.Add(New ReportParameter("DireccionEmpresa", UsuarioActual.Empresa.Direccion))
|
|
params.Add(New ReportParameter("TelefonoEmpresa", UsuarioActual.Empresa.Telefono))
|
|
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
|
|
If Imagen.Exists Then
|
|
params.Add(New ReportParameter("LogoPath", logouri))
|
|
Else
|
|
params.Add(New ReportParameter("LogoPath", ""))
|
|
End If
|
|
|
|
retorno = StreamPDF("Empresas/Grales/Formatos/ClienteCxC.rdlc", DTCxCHistorial, params, "Reporte de CxC Historial")
|
|
Else
|
|
Alert("Ocurrió un error.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
ObjMovtos.Dispose()
|
|
Return retorno
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
'Protected Sub BtnCxPActivas_Click(sender As Object, e As EventArgs)
|
|
' If BtnCxPActivas.Text = "Ver Más <i class='fa fa-angle-double-down'></i>" Then
|
|
' BtnCxPActivas.Text = "Ver Menos <i class='fa fa-angle-double-up'></i>"
|
|
' CargaCxP()
|
|
' Else
|
|
' BtnCxPActivas.Text = "Ver Más <i class='fa fa-angle-double-down'></i>"
|
|
' CargaCxP(1)
|
|
' End If
|
|
'End Sub
|
|
|
|
'Protected Sub BtnHistorialCxP_Click(sender As Object, e As EventArgs)
|
|
' If BtnHistorialCxP.Text = "Ver Más <i class='fa fa-angle-double-down'></i>" Then
|
|
' BtnHistorialCxP.Text = "Ver Menos <i class='fa fa-angle-double-up'></i>"
|
|
' CargaCxP(2)
|
|
' Else
|
|
' BtnHistorialCxP.Text = "Ver Más <i class='fa fa-angle-double-down'></i>"
|
|
' CargaCxP(2)
|
|
' End If
|
|
'End Sub
|
|
|
|
#Region "TAB PEDIDO"
|
|
|
|
#Region "CARGAS"
|
|
|
|
Private Sub CargaFolios()
|
|
|
|
If CveSubProyecto <= 0 Then
|
|
Alert("No se tienen asignadas sucursales", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim ObjFolios As New ClsGralFolios()
|
|
If ObjFolios.GetFolios("Pd2", UsuarioActual.CveEmpresa) Then
|
|
Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros(String.Format("CveSubProyecto = {0} And Estado = 'Activo'", CveSubProyecto))
|
|
If DT.Rows.Count > 0 Then
|
|
ViewState("CveFolio") = DT.Rows(0)("CveFolio").ToString.ToEntero
|
|
ViewState("FolioActual") = DT.Rows(0)("FActual").ToString
|
|
Serie = DT.Rows(0)("Serie").ToString
|
|
Folio = DT.Rows(0)("FActual").ToString.ToEntero
|
|
BtnGuardar.Enabled = True
|
|
UpOpciones.Update()
|
|
Else
|
|
Alert($"No tiene registrados Folios para Pedido2 en esta sucursal: <b>{SubProyecto}</b>.", TipoMensaje.MsgAdvertencia)
|
|
BtnGuardar.Enabled = False
|
|
UpOpciones.Update()
|
|
End If
|
|
DT.Dispose()
|
|
End If
|
|
ObjFolios.Dispose()
|
|
|
|
End Sub
|
|
|
|
Private Sub InicializaTabPedido()
|
|
|
|
'SE ASIGNA EL SUBPROYECTO MATRIZ, EN CASO DE NO ENCONTRARSE SE LE ASIGNA CUALQUIERA
|
|
Dim Dr As DataRow = Nothing
|
|
If GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("TipoSucursal = 1").Rows.Count > 0 Then
|
|
Dr = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("TipoSucursal = 1").Rows(0)
|
|
ElseIf GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).Rows.Count > 0 Then
|
|
Dr = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).Rows(0)
|
|
End If
|
|
|
|
DdlMoneda.DataSource = GlobalDTMonedas
|
|
DdlMoneda.DataBind()
|
|
|
|
If Dr IsNot Nothing Then
|
|
CveSubProyecto = Dr("CveSubProyecto").ToString.ToEntero
|
|
SubProyectoPorcentajeIVA = Dr("IVA").ToString.ToDouble
|
|
SubProyecto = Dr("SubProyecto").ToString
|
|
End If
|
|
|
|
CreaDTVentas()
|
|
|
|
If UsuarioActual.Empresa.UsaAC Then
|
|
DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=1).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion")
|
|
Else
|
|
DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=1).FiltraParametros("Estado = 1", Orderby:="Clasificacion")
|
|
End If
|
|
DdlClasificacion.DataBind()
|
|
|
|
CargaPS(-1, DdlPS)
|
|
|
|
TxtPrecio.Attributes.Add("onKeyUp ", "Recalcula();")
|
|
TxtCantidad.Attributes.Add("onKeyUp ", "Recalcula();")
|
|
|
|
CargaFolios()
|
|
|
|
Dim Dt = New DataSet
|
|
Dt.Tables.Add("Datos")
|
|
Dt.Tables("Datos").Columns.Add("")
|
|
GvPS.DataSource = Dt.Tables("Datos")
|
|
GvPS.DataBind()
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub CargaPS(CveClasificacion As Integer, Objeto As ADServerControl.Dropdownlost)
|
|
DdlPS.setEsWebService(If(UsuarioActual.Empresa.Funcionalidad(141).ToString = "1", True, False))
|
|
If Not UsuarioActual.Empresa.Funcionalidad(141).ToString = "1" Then
|
|
Objeto.ddl.Items.Clear()
|
|
Objeto.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, AplicaParaVenta:=1, Estatus:=1)
|
|
Objeto.ddl.DataBind()
|
|
Objeto.ddl.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
|
|
Objeto.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
|
|
Else
|
|
DdlPS.Attributes.Add("data-cvesubproyecto", CveSubProyecto.ToString)
|
|
End If
|
|
End Sub
|
|
|
|
'Private Sub CargaTipoCentroCosto()
|
|
' If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then
|
|
' divProyecto.Visible = False
|
|
' LblSubProyecto.InnerText = "Sucursal"
|
|
|
|
' DdlSubProyecto.Items.Clear()
|
|
' DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1)
|
|
' DdlSubProyecto.DataBind()
|
|
' DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
|
|
' ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
|
|
' divProyecto.Visible = False
|
|
' LblSubProyecto.InnerText = "Proyecto"
|
|
|
|
' DdlSubProyecto.Items.Clear()
|
|
' DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1)
|
|
' DdlSubProyecto.DataBind()
|
|
' DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
|
|
' ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then
|
|
' LblProyecto.InnerText = "Sucursal"
|
|
' LblSubProyecto.InnerText = "Proyecto"
|
|
|
|
' ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then
|
|
' LblProyecto.InnerText = "Proyecto"
|
|
' LblSubProyecto.InnerText = "Sucursal"
|
|
|
|
' End If
|
|
'End Sub
|
|
|
|
Private Sub CreaDTVentas()
|
|
TmpDT = New DataTable
|
|
TmpDT.Columns.Add("CveVenta", GetType(Integer))
|
|
TmpDT.Columns.Add("Consec", GetType(Integer))
|
|
TmpDT.Columns.Add("Cantidad", GetType(Decimal))
|
|
TmpDT.Columns.Add("Codigo", GetType(String))
|
|
TmpDT.Columns.Add("CveUM", GetType(Integer))
|
|
TmpDT.Columns.Add("UM", GetType(String))
|
|
TmpDT.Columns.Add("SATClaveUM", GetType(String))
|
|
TmpDT.Columns.Add("CveClasificacion", GetType(Integer))
|
|
TmpDT.Columns.Add("Clasificacion", GetType(String))
|
|
TmpDT.Columns.Add("CvePS", GetType(Integer))
|
|
TmpDT.Columns.Add("PS", GetType(String))
|
|
TmpDT.Columns.Add("CodigoPS", GetType(String))
|
|
TmpDT.Columns.Add("SATClaveProdServ", GetType(String))
|
|
TmpDT.Columns.Add("NoIdentificacion", GetType(String))
|
|
TmpDT.Columns.Add("CveTipoPS", GetType(Integer))
|
|
TmpDT.Columns.Add("CveTipoInvPS", GetType(Integer))
|
|
TmpDT.Columns.Add("SerieLote", GetType(String))
|
|
TmpDT.Columns.Add("CuentaPredial", GetType(String))
|
|
TmpDT.Columns.Add("Obs", GetType(String))
|
|
TmpDT.Columns.Add("TiempoEntrega", GetType(String))
|
|
TmpDT.Columns.Add("PU", GetType(Decimal))
|
|
TmpDT.Columns.Add("IVA", GetType(Decimal))
|
|
TmpDT.Columns.Add("ImporteIVA", GetType(Decimal))
|
|
TmpDT.Columns.Add("PorcentajeIVA", GetType(Decimal))
|
|
TmpDT.Columns.Add("ImporteRetIVA", GetType(Decimal))
|
|
TmpDT.Columns.Add("ImporteRetISR", GetType(Decimal))
|
|
TmpDT.Columns.Add("PorcentajeRetIVA", GetType(Decimal))
|
|
TmpDT.Columns.Add("PorcentajeRetISR", GetType(Decimal))
|
|
TmpDT.Columns.Add("ImporteIEPS", GetType(Decimal))
|
|
TmpDT.Columns.Add("IEPS", GetType(Decimal))
|
|
TmpDT.Columns.Add("PorcentajeIEPS", GetType(Decimal))
|
|
TmpDT.Columns.Add("Descuento", GetType(Decimal))
|
|
TmpDT.Columns.Add("TipoDescuento", GetType(Integer))
|
|
TmpDT.Columns.Add("TotalImporte", GetType(Decimal))
|
|
TmpDT.Columns.Add("Total", GetType(Decimal))
|
|
'Para uso del módulo contable
|
|
TmpDT.Columns.Add("AsientoContableVentas", GetType(Integer))
|
|
TmpDT.Columns.Add("IdCtaContVentas", GetType(Integer))
|
|
TmpDT.Columns.Add("AplicaParaConcepto", GetType(Boolean))
|
|
TmpDT.Columns.Add("CveProyecto", GetType(Integer))
|
|
TmpDT.Columns.Add("Proyecto", GetType(String))
|
|
TmpDT.Columns.Add("CveSubProyecto", GetType(Integer))
|
|
TmpDT.Columns.Add("SubProyecto", GetType(String))
|
|
'TipoDescuento: 1 = Descuento * PU; 2 = Descuento por Total del concepto
|
|
TmpDT.Columns.Add("CvePresupuestoIngreso", GetType(Integer))
|
|
TmpDT.Columns.Add("CveFuenteRecaudacion", GetType(Integer))
|
|
'Contratos
|
|
TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer))
|
|
'Remisiones a Facturas
|
|
TmpDT.Columns.Add("CveVentaDetalle", GetType(Integer))
|
|
TmpDT.Columns.Add("CveVentaDetalleRemision", GetType(Integer))
|
|
TmpDT.Columns.Add("CveVentaDetalleCotizacion", GetType(Integer))
|
|
|
|
'Pedido2 a Facturas
|
|
TmpDT.Columns.Add("CveVentaDetallePedido2", GetType(Integer))
|
|
|
|
TmpDT.Columns.Add("Origen", GetType(Integer))
|
|
'Ordenes Servicio
|
|
TmpDT.Columns.Add("CveOS", GetType(Integer))
|
|
TmpDT.Columns.Add("CveOSDetalle", GetType(Integer))
|
|
TmpDT.Columns.Add("SeFacturara", GetType(Integer))
|
|
TmpDT.Columns.Add("Folio", GetType(Integer))
|
|
TmpDT.Columns.Add("Estatus", GetType(String))
|
|
'Ordenamiento
|
|
TmpDT.Columns.Add("Orden", GetType(Integer))
|
|
TmpDT.Columns.Add("TipoDocto", GetType(String))
|
|
'OC
|
|
TmpDT.Columns.Add("CveOrdenCompraDetalle", GetType(Integer))
|
|
TmpDT.Columns.Add("EntregaDirecta", GetType(Integer))
|
|
|
|
TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer))
|
|
TmpDT.Columns.Add("CantidadFacturadaRem", GetType(Decimal))
|
|
TmpDT.Columns.Add("CantidadFacturadaCot", GetType(Decimal))
|
|
TmpDT.Columns.Add("CantidadInventario", GetType(Decimal))
|
|
|
|
TmpDT.Columns.Add("ClaveSATFraccionArancelaria", GetType(String))
|
|
TmpDT.Columns.Add("ClaveSATUnidadAduana", GetType(String))
|
|
TmpDT.Columns.Add("ClaveSATFraccionArancelariaDescripcion", GetType(String))
|
|
TmpDT.Columns.Add("ClaveSATUnidadAduanaDescripcion", GetType(String))
|
|
|
|
End Sub
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "SELECTED INDEX CHANGE"
|
|
Protected Sub DdlMoneda_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
TrConversionTipoCambio.Visible = False
|
|
Select Case DdlMoneda.SelectedValue
|
|
Case "1"
|
|
TxtTipoCambio.Text = "1"
|
|
Case "2"
|
|
TxtTipoCambio.Text = GlobalTipoCambio(Now).ToString
|
|
TrConversionTipoCambio.Visible = True
|
|
Case Else
|
|
TxtTipoCambio.Text = GlobalTipoCambio(Now).ToString
|
|
TrConversionTipoCambio.Visible = True
|
|
End Select
|
|
UpTabPedidos.Update()
|
|
End Sub
|
|
|
|
Protected Sub DdlPS_selectedindexchange(sender As Object, e As EventArgs)
|
|
DdlPSIndexChange()
|
|
End Sub
|
|
|
|
Private Sub DdlPSIndexChange()
|
|
If CveCliente > 0 OrElse DdlPS.SelectedValue = "-2" Then
|
|
If DdlPS.SelectedValue IsNot Nothing AndAlso DdlPS.SelectedValue.ToEntero > 0 Then
|
|
Dim drPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("")
|
|
|
|
If drPS IsNot Nothing Then
|
|
DdlUM.Items.Clear()
|
|
If UsuarioActual.Empresa.UsaInventarios Then
|
|
DdlUM.DataSource = GlobalDTProductosServiciosEquivalencias(DdlPS.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa)
|
|
Else
|
|
DdlUM.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa)
|
|
End If
|
|
DdlUM.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
DdlUM.SelectedValue = "-1"
|
|
DdlUM.DataBind()
|
|
DdlUM.SelectedValueExist(drPS("CveUnidadMedida").ToString)
|
|
|
|
TxtPrecio.Text = drPS("Precio").ToString.FormatoNumero(2).Replace(","c, "")
|
|
|
|
If UsuarioActual.CveEmpresa = 80 Then
|
|
'busca el precio de la sucursal
|
|
Dim ObjPS As New ClsProductosServicios
|
|
If ObjPS.GetPSSucursales(DdlPS.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, CveSubProyecto) Then
|
|
Dim dtt As DataTable = ObjPS.DtResultados
|
|
Dim drPrecio As DataRow = dtt.FiltroPrimero("")
|
|
|
|
If drPrecio IsNot Nothing Then
|
|
TxtPrecio.Text = drPrecio("Importe").ToString.ToDouble.ToString("N4")
|
|
End If
|
|
dtt.Dispose()
|
|
End If
|
|
|
|
ObjPS.Dispose()
|
|
End If
|
|
|
|
If DdlClasificacion.SelectedIndex = 0 Then
|
|
If drPS("CveClasificacion").ToString IsNot Nothing Then
|
|
DdlClasificacion.SelectedValueExist(drPS("CveClasificacion").ToString)
|
|
Else
|
|
Alert("El Productos/Servicio no tiene asignada una Clasificación.")
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
ElseIf DdlPS.SelectedValue = "-2" Then
|
|
CargaPS(-1, DdlPS)
|
|
End If
|
|
Else
|
|
Alert("Es necesario seleccionar el cliente al cual se le va a facturar.", TipoMensaje.MsgAdvertencia, "AbrirVentana(""/Ventas/PopUpBuscarClientes.aspx?Opt=Fact"", 800, 547, ""N"", ""PopUpBuscar"")")
|
|
End If
|
|
RegistraScript("Recalcula();")
|
|
UpVenta.Update()
|
|
|
|
End Sub
|
|
|
|
|
|
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
CargaPS(DdlClasificacion.SelectedValue.ToEntero, DdlPS)
|
|
UpClasificacion.Update()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "AGREGAR/EDITAR/ELIMINAR"
|
|
Protected Sub LnkAddVenta_Click(sender As Object, e As EventArgs)
|
|
|
|
Modalidad = "A"
|
|
LnkAgregar.Text = "Agregar"
|
|
TxtCantidad.Text = ""
|
|
TxtObs.Text = ""
|
|
TxtPrecio.Text = "0.00"
|
|
LblTotal.Text = "0.00"
|
|
If Not UsuarioActual.Empresa.Funcionalidad(141).ToString = "1" Then
|
|
DdlPS.SelectedValue = "-1"
|
|
Else
|
|
DdlPS.SelectedValue = ""
|
|
DdlPS.SelectedText = ""
|
|
End If
|
|
DdlClasificacion.SelectedIndex = -1
|
|
DdlUM.Items.Clear()
|
|
ChkAgregar.Checked = True
|
|
UpVenta.Update()
|
|
RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddVenta"))
|
|
|
|
End Sub
|
|
Protected Sub LnkEditar_Click(sender As Object, e As EventArgs)
|
|
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
|
|
Modalidad = "U"
|
|
Index = GvRow.DataKey("Consec").ToEntero
|
|
LnkAgregar.Text = "Actualizar"
|
|
DdlClasificacion.SelectedValueExist(GvRow.DataKey("CveClasificacion"))
|
|
CargaPS(DdlClasificacion.SelectedValue.ToEntero, DdlPS)
|
|
UpClasificacion.Update()
|
|
If Not UsuarioActual.Empresa.Funcionalidad(141).ToString = "1" Then
|
|
DdlPS.SelectedValue = GvRow.DataKey("CvePS")
|
|
Else
|
|
DdlPS.SelectedValue = GvRow.DataKey("CvePS")
|
|
DdlPS.SelectedText = GvRow.DataKey("PS")
|
|
End If
|
|
DdlPSIndexChange()
|
|
DdlUM.SelectedValueExist(GvRow.DataKey("CveUM"))
|
|
TxtCantidad.Text = GvRow.DataKey("Cantidad")
|
|
TxtObs.Text = GvRow.DataKey("Obs")
|
|
TxtPrecio.Text = GvRow.DataKey("PU")
|
|
LblTotal.Text = GvRow.DataKey("Total")
|
|
ChkAgregar.Checked = False
|
|
UpVenta.Update()
|
|
RegistraScript(String.Format("$('#{0}').modal('show');", "DivAddVenta"), "EdicionVenta")
|
|
End Sub
|
|
Protected Sub LnkEliminar_Click(sender As Object, e As EventArgs)
|
|
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
|
|
Dim DbRow As DataRow = Nothing
|
|
DbRow = TmpDT.Rows(GvRow.RowIndex)
|
|
TmpDT.Rows.Remove(DbRow)
|
|
GvPS.DataSource = TmpDT
|
|
GvPS.DataBind()
|
|
CalculaTotalesVenta()
|
|
Alert("Eliminado Correctamente.", TipoMensaje.MsgInformacion)
|
|
End Sub
|
|
|
|
Protected Sub LnkAgregar_Click(sender As Object, e As EventArgs)
|
|
AgregarPS()
|
|
|
|
If ChkAgregar.Checked = True And Modalidad = "A" Then
|
|
LnkAgregar.Text = "Agregar"
|
|
TxtCantidad.Text = ""
|
|
TxtObs.Text = ""
|
|
TxtPrecio.Text = "0.00"
|
|
LblTotal.Text = "0.00"
|
|
If Not UsuarioActual.Empresa.Funcionalidad(141).ToString = "1" Then
|
|
DdlPS.SelectedValue = "-1"
|
|
Else
|
|
DdlPS.SelectedValue = ""
|
|
DdlPS.SelectedText = ""
|
|
End If
|
|
DdlClasificacion.SelectedIndex = -1
|
|
DdlUM.Items.Clear()
|
|
UpVenta.Update()
|
|
Else
|
|
RegistraScript("ClosePopup();", "AddUpdatePS")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub AgregarPS()
|
|
If Modalidad = "A" Then
|
|
AgregarProductoServicio(TxtCantidad.Text.ToDecimal, DdlUM.SelectedValue.ToEntero, DdlUM.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text,
|
|
DdlPS.SelectedValue.ToEntero, DdlPS.SelectedText, TxtObs.Text, TxtPrecio.Text.ToDecimal, 0, -1, "", CveSubProyecto, "")
|
|
|
|
CalculaTotalesVenta()
|
|
|
|
|
|
|
|
ElseIf Modalidad = "U" Then
|
|
|
|
Dim ErrorEdit As Boolean = True
|
|
Dim Contador As Integer = 0
|
|
For Each row As DataRow In TmpDT.Rows
|
|
If row("Consec").ToString.ToEntero = Index Then
|
|
ErrorEdit = False
|
|
Exit For
|
|
End If
|
|
Contador = Contador + 1
|
|
Next
|
|
If ErrorEdit = True Then
|
|
Exit Sub
|
|
Else
|
|
TmpDT.AcceptChanges()
|
|
TmpDT.Rows.RemoveAt(Contador)
|
|
TmpDT.AcceptChanges()
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Function AgregarProductoServicio(Cantidad As Decimal, CveUM As Integer, UM As String, CveClasificacion As Integer, Clasificacion As String, CvePS As Integer, PS As String, Obs As String,
|
|
PU As Decimal, Descuento As Decimal,
|
|
CveProyecto As Integer, Proyecto As String, CveSubProyecto As Integer, SubProyecto As String,
|
|
Optional SerieLote As String = "", Optional TiempoEntrega As String = "", Optional EntregaDirecta As Integer = 0,
|
|
Optional CveContratoDetalle As Integer = 0, Optional CveVentaDetalle As Integer = 0, Optional CveMovimientoDetallePedido As Integer = 0,
|
|
Optional CveOrdenCompraDetalle As Integer = 0, Optional CveVentaDetalleRemision As Integer = 0, Optional CveVentaDetalleCotizacion As Integer = 0,
|
|
Optional CuentaPredial As String = "", Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0) As Boolean
|
|
|
|
Dim Retorno As Boolean = False
|
|
If Not CvePS > 0 Then
|
|
Alert("Ocurrió un error al cargar la información del producto a agregar. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Return False
|
|
End If
|
|
|
|
'VALIDA CONCEPTOS EN CERO - YA SE VALIDA ANTES CON FUNCIONALIDAD - A MIRAS DE ELIMINAR - IPP 28 AGOSTO 2017
|
|
If UsuarioActual.CveEmpresa.Contiene(72, 80) AndAlso CveOrdenCompraDetalle = 0 Then ' si viene de una oc, se permiten valores en cero
|
|
If Cantidad * PU <= 0 Then
|
|
Alert("El importe del concepto debe ser mayor a cero. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Return False
|
|
End If
|
|
End If
|
|
|
|
Dim Row As DataRow = Nothing
|
|
Dim TotalCalculableImpuestos As Decimal = 0
|
|
PU = Math.Round(PU, 6) ' el precio unitario puede llevar hasta 6 decimales permitidos
|
|
|
|
Row = TmpDT.NewRow()
|
|
Row("CveProyecto") = CveProyecto
|
|
Row("Proyecto") = Proyecto
|
|
Row("CveSubProyecto") = CveSubProyecto
|
|
Row("SubProyecto") = SubProyecto
|
|
Row("SerieLote") = SerieLote
|
|
Row("TiempoEntrega") = TiempoEntrega
|
|
Row("Orden") = TmpDT.Rows.Count + 1
|
|
Row("Cantidad") = Cantidad
|
|
Row("CveUM") = CveUM
|
|
Row("UM") = UM
|
|
Row("CveClasificacion") = CveClasificacion
|
|
Row("Clasificacion") = Clasificacion
|
|
Row("CvePS") = CvePS
|
|
Row("Obs") = Obs
|
|
|
|
|
|
Dim DrPS As DataRow = Nothing
|
|
|
|
DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
|
|
|
|
If DrPS Is Nothing Then
|
|
Alert("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Return False
|
|
End If
|
|
|
|
'verifica si tiene ventaminima
|
|
If Cantidad > 0 AndAlso DrPS("VentaMinima").ToString.ToDecimal > 0 Then
|
|
'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15...
|
|
If Cantidad Mod DrPS("VentaMinima").ToString.ToDecimal <> 0 Then
|
|
Alert(String.Format("El producto se vende solo en cantidades de {0}", DrPS("VentaMinima").ToString))
|
|
Return False
|
|
End If
|
|
End If
|
|
|
|
TotalCalculableImpuestos = (Cantidad * (PU)) - Descuento
|
|
|
|
Row("PU") = PU
|
|
Row("Codigo") = DrPS("Codigo")
|
|
Row("NoIdentificacion") = DrPS("Codigo")
|
|
Row("ClaveSATFraccionArancelaria") = DrPS("ClaveSATFraccionArancelaria")
|
|
Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana")
|
|
Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion")
|
|
Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion")
|
|
If Modalidad = "U" Then
|
|
Row("Consec") = Index
|
|
Else
|
|
Row("Consec") = TmpDT.Rows.Count + 1
|
|
End If
|
|
|
|
Row("PS") = DrPS("PS")
|
|
Row("CodigoPS") = DrPS("PSCodigo").ToString
|
|
Row("CveTipoPS") = DrPS("CveTipoPS")
|
|
Row("CveTipoInvPS") = DrPS("Inv_CveMetodoInventario")
|
|
|
|
If CveClasificacion <= 0 Then Row("CveClasificacion") = DrPS("CveClasificacion")
|
|
If Clasificacion = "" Then Row("Clasificacion") = DrPS("Clasificacion")
|
|
|
|
If DrPS("IVA").ToString.Contiene("-1", "") Then
|
|
Row("PorcentajeIVA") = SubProyectoPorcentajeIVA
|
|
Else
|
|
Row("PorcentajeIVA") = DrPS("IVA")
|
|
End If
|
|
|
|
Row("IVA") = Row("PorcentajeIVA")
|
|
Row("ImporteIVA") = Math.Round(Row("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestos, 2)
|
|
|
|
Row("Total") = (Cantidad * PU)
|
|
Row("TotalImporte") = Math.Round(Cantidad * PU, 2)
|
|
|
|
Row("SATClaveProdServ") = DrPS("SATClavePS")
|
|
Row("SATClaveUM") = DrPS("SATClaveUnidadMedida")
|
|
|
|
Row("EntregaDirecta") = EntregaDirecta
|
|
'Contratos
|
|
Row("CveContratoDetalle") = CveContratoDetalle
|
|
Row("CveVentaDetalle") = CveVentaDetalle
|
|
Row("CveMovimientoDetallePedido") = CveVentaDetalle
|
|
Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
|
|
Row("CveVentaDetalleRemision") = CveVentaDetalleRemision
|
|
Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
|
|
Row("CveVentaDetallePedido2") = CveVentaDetallePedido2
|
|
Row("CuentaPredial") = CuentaPredial
|
|
|
|
'RECARGAR GV
|
|
TmpDT.Rows.Add(Row)
|
|
|
|
Retorno = True
|
|
Return Retorno
|
|
End Function
|
|
|
|
Private Sub CalculaTotalesVenta()
|
|
|
|
Dim TotalSubTotal As Decimal = TmpDT.SUM("TotalImporte").ToDecimal
|
|
Dim TotalDescuentos As Decimal = TmpDT.SUM("Descuento").ToDecimal
|
|
Dim TotalIVA As Decimal = TmpDT.SUM("ImporteIVA").ToDecimal
|
|
Dim TotalIEPS As Decimal = TmpDT.SUM("ImporteIEPS").ToDecimal
|
|
Dim TotalRetIVA As Decimal = TmpDT.SUM("ImporteRetIVA").ToDecimal
|
|
Dim TotalRetISR As Decimal = TmpDT.SUM("ImporteRetISR").ToDecimal
|
|
Dim Total As Decimal = 0
|
|
|
|
Total = (TotalSubTotal - TotalDescuentos + TotalIVA + TotalIEPS - TotalRetIVA - TotalRetISR)
|
|
TxtSubTotal.Text = TotalSubTotal.FormatoNumero(2)
|
|
TxtIVA.Text = TotalIVA.FormatoNumero
|
|
TxtTotal.Text = Total.FormatoNumero
|
|
|
|
Dim view As DataView = New DataView(TmpDT)
|
|
view.Sort = "Consec"
|
|
GvPS.DataSource = view
|
|
GvPS.DataBind()
|
|
|
|
UpTabPedidos.Update()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "GUARDAR VENTA"
|
|
|
|
Private Sub CreaObjetosVenta(Optional VistaPrevia As Boolean = False)
|
|
ObjFactura = New Modelos.Factura
|
|
ObjFactura.Version = "3.3"
|
|
ObjFactura.CveUsuario = UsuarioActual.CveUsuario
|
|
ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa
|
|
ObjFactura.TipoCambio = 0
|
|
ObjFactura.ConvertirPesos = False
|
|
ObjFactura.TipoCambio = TxtTipoCambio.Text.Trim.ToDecimal
|
|
ObjFactura.CveMoneda = DdlMoneda.SelectedValue.ToEntero
|
|
ObjFactura.Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $"CveMoneda = {ObjFactura.CveMoneda} ")
|
|
ObjFactura.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", "CveMoneda = 1")
|
|
ObjFactura.TipoDocto = "Pd2"
|
|
ObjFactura.RefDocto = ""
|
|
ObjFactura.Folio = Folio.ToEntero
|
|
ObjFactura.Serie = Serie
|
|
ObjFactura.CveMesa = -1
|
|
ObjFactura.Fecha = Now
|
|
ObjFactura.CvePrePoliza = -1
|
|
ObjFactura.FechaPago = Now
|
|
ObjFactura.MotivoDescuento = ""
|
|
ObjFactura.Observaciones = ""
|
|
ObjFactura.FechaEjecucion = Now
|
|
ObjFactura.UsuarioCreo = UsuarioActual.Usuario
|
|
ObjFactura.CveCondicionEntrega = -1
|
|
ObjFactura.CondicionEntrega = ""
|
|
ObjFactura.NumeroCuenta = ""
|
|
ObjFactura.CondicionesPago = 0
|
|
ObjFactura.FormaPago = 0
|
|
ObjFactura.PedidoContrato = ""
|
|
ObjFactura.NumeroContrato = ""
|
|
ObjFactura.DescripcionContrato = ""
|
|
ObjFactura.CveCorte = -1
|
|
ObjFactura.TipoDocumento = "Pedido2"
|
|
ObjFactura.Alfa1 = ""
|
|
ObjFactura.Alfa2 = ""
|
|
ObjFactura.Alfa3 = ""
|
|
ObjFactura.Descuento = 0
|
|
ObjFactura.Amortizacion = 0
|
|
ObjFactura.CveContrato = 0
|
|
ObjFactura.CveSubProyecto = CveSubProyecto
|
|
ObjFactura.CveSubProyectoCobranza = CveSubProyecto
|
|
ObjFactura.CveSubProyectoEjecucion = CveSubProyecto
|
|
|
|
ObjFactura.SubTotal = TxtSubTotal.Text.ToDecimal
|
|
ObjFactura.Descuento = 0
|
|
ObjFactura.Amortizacion = 0
|
|
ObjFactura.IVA = TxtIVA.Text.ToDecimal
|
|
ObjFactura.RetIVA = 0
|
|
ObjFactura.RetISR = 0
|
|
ObjFactura.IEPS = 0
|
|
ObjFactura.Total = TxtTotal.Text.ToDecimal
|
|
|
|
'DETALLES
|
|
ObjFactura.DtDetalle = TmpDT
|
|
|
|
'CLIENTE
|
|
ObjFactura.CveCliente = CveCliente
|
|
ObjFactura.SetCliente()
|
|
|
|
Dim ObjCliente As New ClsClientes
|
|
If ObjCliente.GetClientes(CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1, TipoCliente:=-1) Then
|
|
If ObjCliente.DtResultados.Rows.Count > 0 Then
|
|
ObjFactura.CveFormaPago33 = ObjCliente.CveFormaPago33
|
|
ObjFactura.FormaPago33 = GlobalDTVtaFormaPago.FiltroPrimeroValor("FormaPago", $"CveFormaPago = {ObjCliente.CveFormaPago33}")
|
|
ObjFactura.FormaPagoSAT33 = GlobalDTVtaFormaPago.FiltroPrimeroValor("ClaveFormaPagoSAT", $"CveFormaPago = {ObjCliente.CveFormaPago33}")
|
|
|
|
ObjFactura.CveMetodoPago33 = ObjCliente.CveMetodoPago33
|
|
ObjFactura.MetodoPago33 = GlobalDTVtaMetodoPago.FiltroPrimeroValor("MetodoPago", $"CveMetodoPago = {ObjCliente.CveMetodoPago33}")
|
|
ObjFactura.ClaveMetodoPagoSAT = GlobalDTVtaMetodoPago.FiltroPrimeroValor("ClaveMetodoPagoSAT", $"CveMetodoPago = {ObjCliente.CveMetodoPago33}")
|
|
|
|
ObjFactura.CveUsoCFDI = ObjCliente.CveUsoCFDI
|
|
ObjFactura.UsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("Descripcion", $"CveUsoCFDI = {ObjCliente.CveUsoCFDI}")
|
|
ObjFactura.ClaveUsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("UsoCFDI", $"CveUsoCFDI = {ObjCliente.CveUsoCFDI}")
|
|
|
|
ObjFactura.CveMetodoPago = ObjCliente.CveMetodoPago
|
|
If GlobalDTMetodosPago.FiltraParametros($"CveMetodoPago = {ObjCliente.CveMetodoPago}").Rows.Count > 0 Then
|
|
ObjFactura.MetodoPago = GlobalDTMetodosPago.FiltraParametros($"CveMetodoPago = {ObjCliente.CveMetodoPago}").Rows(0)("MetodoPago").ToString
|
|
Else
|
|
ObjFactura.CveMetodoPago = 1
|
|
ObjFactura.MetodoPago = "Efectivo"
|
|
End If
|
|
|
|
ViewState("IdCtaContRetIVA") = ObjCliente.IdCtaContRetIVA
|
|
ViewState("CveCuentaRetIVA") = ObjCliente.CveCuentaRetIVA
|
|
ViewState("IdCtaContRetISR") = ObjCliente.IdCtaContRetISR
|
|
ViewState("CveCuentaRetISR") = ObjCliente.CveCuentaRetISR
|
|
End If
|
|
End If
|
|
ObjCliente.Dispose()
|
|
|
|
'SUBPROYECTO
|
|
ObjFactura.SetSubProyectoMatriz(Me)
|
|
ObjFactura.SetSubProyecto(Me)
|
|
|
|
ObjFactura.Timbre = PreParaTimbre(ObjFactura)
|
|
|
|
End Sub
|
|
Private Function PreParaTimbre(Obj As Modelos.Factura) As CFDITimbre
|
|
Dim Timbre As New CFDITimbre
|
|
Timbre.Comprobante.TipoComprobante = If(Obj.TipoDocto.Contiene("Ing", "Ant"), "I", If(Obj.TipoDocto.Contiene("Egs", "Dev"), "E", ""))
|
|
Timbre.Comprobante.Folio = Obj.Folio.ToString
|
|
Timbre.Comprobante.Serie = Obj.Serie
|
|
Timbre.Comprobante.Fecha = Obj.Fecha
|
|
Timbre.Comprobante.FormadePago = Obj.FormaPagoSAT33
|
|
Timbre.Comprobante.CondicionesdePago = Obj.FormaPago33
|
|
Timbre.Comprobante.MetodoPago = Obj.ClaveMetodoPagoSAT
|
|
Timbre.Comprobante.Subtotal = Obj.SubTotal
|
|
Timbre.Comprobante.Descuentos = Obj.Descuento
|
|
Timbre.Comprobante.Moneda = Obj.MonedaSAT
|
|
Timbre.Comprobante.TipoCambio = If(Obj.CveMoneda = 1, "1", Obj.TipoCambio.ToString)
|
|
Timbre.Comprobante.Total = Obj.Total
|
|
|
|
Timbre.Comprobante.LugarExpedicion = Obj.SubProyecto.CP
|
|
Timbre.Comprobante.Confirmacion = ""
|
|
|
|
Timbre.Receptor.RFC = Obj.Cliente.RFC
|
|
Timbre.Receptor.Nombre = Obj.Cliente.Nombre
|
|
Timbre.Receptor.ResidenciaFiscal = ""
|
|
Timbre.Receptor.NumeroRegistroTributario = ""
|
|
Timbre.Receptor.UsoCFDI = Obj.ClaveUsoCFDI
|
|
|
|
|
|
If Obj.CveTipoRelacion > 0 Then
|
|
Select Case Obj.CveTipoRelacion
|
|
Case 1
|
|
Timbre.CFDIRelacionados.TipoRelacion = "01"
|
|
Timbre.CFDIRelacionados.TipoRelacionTexto = "01-Nota de Crédito aplicada a Ingreso"
|
|
Case 2
|
|
Timbre.CFDIRelacionados.TipoRelacion = "02"
|
|
Timbre.CFDIRelacionados.TipoRelacionTexto = "02-Nota de débito de los documentos relacionados"
|
|
Case 3
|
|
Timbre.CFDIRelacionados.TipoRelacion = "03"
|
|
Timbre.CFDIRelacionados.TipoRelacionTexto = "03-Devolución aplicada a Ingreso"
|
|
Case 4
|
|
Timbre.CFDIRelacionados.TipoRelacion = "04"
|
|
Timbre.CFDIRelacionados.TipoRelacionTexto = "04-Refacturación de Ingreso"
|
|
Case 7
|
|
Timbre.CFDIRelacionados.TipoRelacion = "07"
|
|
Timbre.CFDIRelacionados.TipoRelacionTexto = "07-CFDI por aplicación de anticipo"
|
|
Case 8
|
|
Timbre.CFDIRelacionados.TipoRelacion = "08"
|
|
Timbre.CFDIRelacionados.TipoRelacionTexto = "08-Factura generada por pagos en parcialidades "
|
|
Case 9
|
|
Timbre.CFDIRelacionados.TipoRelacion = "09"
|
|
Timbre.CFDIRelacionados.TipoRelacionTexto = "09-Factura generada por pagos diferidos"
|
|
|
|
End Select
|
|
|
|
End If
|
|
|
|
|
|
Dim totSubTotal As Decimal = Obj.SubTotal
|
|
Dim totIVA As Decimal = Obj.IVA
|
|
Dim totRetIVA As Decimal = Obj.RetIVA
|
|
Dim totRetISR As Decimal = Obj.RetISR
|
|
Dim i As Integer = 1
|
|
|
|
'DETALLES
|
|
Dim tPS As String = ""
|
|
|
|
For Each drr As DataRow In Obj.DtDetalle.Rows
|
|
If drr("PS").ToString.Length = 1 Then
|
|
tPS = drr("Obs").ToString
|
|
Else
|
|
If drr("PS").ToString.Length = 0 Then
|
|
tPS = ""
|
|
Else
|
|
tPS = String.Format("{0} {1}", drr("PS"), drr("Obs"))
|
|
End If
|
|
End If
|
|
|
|
'CONDICIONANTE, ESPECIAL
|
|
If UsuarioActual.CveEmpresa = 15 Then drr("UM") = "" 'LES COMENTAN QUE NO DEBE IR LA ETIQUETA DE LA UNIDAD EN EL PRODUCTO
|
|
|
|
Dim concepto As New CFDIConceptos With {.Cantidad = drr("Cantidad").ToString.ToDecimal,
|
|
.Descripcion = tPS,
|
|
.ValorUnitario = drr("PU").ToString.ToDecimal,
|
|
.Importe = drr("TotalImporte").ToString.ToDecimal,
|
|
.Descuento = drr("Descuento").ToString.ToDecimal,
|
|
.Unidad = drr("UM").ToString,
|
|
.ClaveUnidad = drr("SATClaveUM").ToString,
|
|
.ClaveProdServ = drr("SATClaveProdServ").ToString,
|
|
.Noidentificacion = drr("Noidentificacion").ToString,
|
|
.CuentaPredial = drr("CuentaPredial").ToString}
|
|
'VERIFICA SUMA SUBTOTALES
|
|
If i = Obj.DtDetalle.Rows.Count AndAlso totSubTotal <> concepto.Importe Then 'PROCESO DE AJUSTA DE DECIMALES
|
|
concepto.Importe = totSubTotal
|
|
End If
|
|
totSubTotal = totSubTotal - concepto.Importe
|
|
|
|
'SIEMPRE ESTAMOS AGREGANDO EL IVA
|
|
concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeIVA").ToString.ToDecimal, .Impuesto = "002", .Importe = drr("ImporteIVA").ToString.ToDecimal})
|
|
|
|
If drr("ImporteIEPS").ToString.ToDouble > 0 Then
|
|
concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeIEPS").ToString.ToDecimal, .Impuesto = "003", .Importe = drr("ImporteIEPS").ToString.ToDecimal})
|
|
End If
|
|
|
|
If drr("ImporteRetIVA").ToString.ToDouble > 0 Then 'si hay retenciones
|
|
concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "R", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeRetIVA").ToString.ToDecimal, .Impuesto = "002", .Importe = drr("ImporteRetIVA").ToString.ToDecimal})
|
|
End If
|
|
|
|
If drr("ImporteRetISR").ToString.ToDouble > 0 Then 'retención de ISR
|
|
concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "R", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeRetISR").ToString.ToDecimal, .Impuesto = "001", .Importe = drr("ImporteRetISR").ToString.ToDecimal})
|
|
End If
|
|
|
|
Timbre.Conceptos.Add(concepto)
|
|
i += 1
|
|
Next
|
|
Return Timbre
|
|
End Function
|
|
|
|
|
|
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs)
|
|
|
|
If TmpDT Is Nothing OrElse TmpDT.Rows.Count = 0 Then
|
|
Alert("Es necesario tener al menos un concepto registrado.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
'Subproyecto Obligatorio
|
|
If UsuarioActual.Empresa.Funcionalidad(120) = "1" AndAlso TmpDT.FiltraParametros("ISNULL(CveSubProyecto,0) <= 0").Rows.Count > 0 Then
|
|
Alert("El Subproyecto de los conceptos es obligatorio, Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
CreaObjetosVenta()
|
|
|
|
If ObjFactura Is Nothing Or ObjFactura.Cliente Is Nothing Then
|
|
Alert("Ocurrió un error al procesar los datos de la Venta.", TipoMensaje.MsgError)
|
|
ObjFactura = Nothing
|
|
Exit Sub
|
|
End If
|
|
|
|
'VALIDA CUENTAS CONTABLES DE AC
|
|
If UsuarioActual.Empresa.UsaAC Then
|
|
If ObjFactura.Cliente.IdCtaContClientes <= 0 Then
|
|
Alert("El Cliente no tiene registrado la cuenta contable", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
|
|
If ObjFactura.SubTotal <= 0 Then
|
|
Alert("Es necesario especificar el importe en los conceptos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
End If
|
|
|
|
If ObjFactura.CveCliente > 0 Then
|
|
If TmpDT.Rows.Count > 0 Then
|
|
|
|
Dim ObjVentas As New ClsVentas()
|
|
Dim ObjConta As New ClsContabilidad(ObjVentas.IniciaTransacSQL())
|
|
Dim ObjInventario As New ClsInventarios(ObjVentas.IniciaTransacSQL())
|
|
Dim ObjContr As New ClsContratos(ObjVentas.IniciaTransacSQL())
|
|
Dim ObjOS As New ClsOS(ObjVentas.IniciaTransacSQL())
|
|
Dim ObjBancos As New ClsBancos(ObjVentas.IniciaTransacSQL())
|
|
Dim ObjClientes As New ClsClientes(ObjVentas.IniciaTransacSQL())
|
|
Dim ObjEventos As New ClsOIEventos(ObjVentas.IniciaTransacSQL())
|
|
Dim ObjCGame As New ClsCGame(ObjVentas.IniciaTransacSQL())
|
|
Dim ObjDocCliente As New ClsEdocumentacion(ObjVentas.IniciaTransacSQL())
|
|
Dim ObjContPaq As ClsContPAQi = Nothing
|
|
ErrorList = New List(Of String)
|
|
MensajeAlert = New StringBuilder
|
|
|
|
|
|
'CONTABILIDAD AUTOMATICA Y AC
|
|
If UsuarioActual.Empresa.UsaAC OrElse UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
|
|
ObjContPaq = New ClsContPAQi(UsuarioActual.Empresa)
|
|
End If
|
|
|
|
GuardarVenta(ObjVentas, ObjConta, ObjInventario, ObjContr, ObjFactura, TmpDT, ObjFactura.CveNCaVincular, ObjContPaq, ObjBancos, ObjOS, ObjEventos, ObjCGame, ObjClientes)
|
|
|
|
If ObjFactura.CveVenta > 0 AndAlso ErrorList.Count = 0 Then
|
|
|
|
'Marcamos las ventas anteriores a febrero como surtidas - Ajuste Compu
|
|
If ErrorList.Count = 0 Then
|
|
If Not ObjVentas.MarcarRemisionesSinSurtir(ObjVentas.CveVenta) Then
|
|
ErrorList.Add("Ocurrió un Error al marcar la factura")
|
|
End If
|
|
End If
|
|
|
|
If ObjFactura.CveVenta > 0 AndAlso ErrorList.Count = 0 AndAlso (ObjFactura.TipoDocto.Contiene("Ped", "Cot", "DPe", "PeC", "PA", "Pd2")) Then
|
|
ObjVentas.Commit()
|
|
'ObjVentas.RollBack()
|
|
If ObjContPaq IsNot Nothing Then ObjContPaq.Commit()
|
|
'If ObjContPaq IsNot Nothing Then ObjContPaq.RollBack()
|
|
|
|
ViewState("CveVenta") = ObjFactura.CveVenta
|
|
|
|
'MENSAJE PRINCIPAL
|
|
MensajeAlert.AppendFormat(String.Format("<br/>El {0}: <b>{1}</b> se generó correctamente.<br/><br/>", ObjFactura.TipoDocumento, ObjFactura.SerieFolio))
|
|
|
|
'MUESTA ALERT OK
|
|
Alert(MensajeAlert.ToString, TipoMensaje.MsgInformacion)
|
|
|
|
Else
|
|
ObjVentas.RollBack()
|
|
If ObjContPaq IsNot Nothing Then ObjContPaq.RollBack()
|
|
|
|
For Each ErrorItem In ErrorList
|
|
Alert(ErrorItem, TipoMensaje.MsgAdvertencia)
|
|
Next
|
|
|
|
'MUESTA ALERT ERROR
|
|
Alert("Ocurrió un error al procesar los datos. Por favor rectifique y vuelta a intentar.", TipoMensaje.MsgError)
|
|
End If
|
|
|
|
ObjVentas.Dispose()
|
|
ObjConta.Dispose()
|
|
ObjInventario.Dispose()
|
|
ObjCGame.Dispose()
|
|
ObjContr.Dispose()
|
|
ObjDocCliente.Dispose()
|
|
ObjClientes.Dispose()
|
|
'ObjFolios.Dispose()
|
|
ErrorList = Nothing
|
|
MensajeAlert = Nothing
|
|
If ObjContPaq IsNot Nothing Then ObjContPaq.Dispose()
|
|
LimpiaTabPedido()
|
|
Else
|
|
ObjVentas.RollBack()
|
|
If ObjContPaq IsNot Nothing Then ObjContPaq.RollBack()
|
|
|
|
For Each ErrorItem In ErrorList
|
|
Alert(ErrorItem, TipoMensaje.MsgAdvertencia)
|
|
Next
|
|
|
|
'MUESTA ALERT ERROR
|
|
Alert("Ocurrió un error al procesar los datos. Por favor rectifique y vuelta a intentar.", TipoMensaje.MsgError)
|
|
ObjVentas.Dispose()
|
|
ObjConta.Dispose()
|
|
ObjInventario.Dispose()
|
|
ObjCGame.Dispose()
|
|
ObjContr.Dispose()
|
|
ObjDocCliente.Dispose()
|
|
ObjClientes.Dispose()
|
|
'ObjFolios.Dispose()
|
|
ErrorList = Nothing
|
|
MensajeAlert = Nothing
|
|
If ObjContPaq IsNot Nothing Then ObjContPaq.Dispose()
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub GuardarVenta(ByRef ObjVentas As ClsVentas, ByRef ObjConta As ClsContabilidad, ByRef ObjInventario As ClsInventarios, ByRef ObjContr As ClsContratos, factura As Modelos.Factura, TmpDTDetalle As DataTable, CveNCaVincular As Integer, ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, Optional ByRef ObjOS As ClsOS = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing, ByRef Optional ObjCGame As ClsCGame = Nothing, ByRef Optional ObjCliente As ClsClientes = Nothing)
|
|
|
|
Dim CveAlmacenTraspasoOrigen As Integer = -1
|
|
Dim CveAlmacenTraspasoDestino As Integer = -1
|
|
Dim EsDevolucionVenta = -1
|
|
Dim TotalImpuestoLocal As Double = 0
|
|
|
|
factura.CvePrePoliza = ObjConta.AddPrePolizas("Ventas/GuardarVenta", factura.CvePlantillaPoliza, factura.Total, factura.Total, factura.CveMoneda, factura.Fecha, factura.Cliente.Nombre, factura.CveUsuario, factura.CveEmpresa)
|
|
If Not ObjVentas.AddVenta(factura.TipoDocto, factura.Folio, factura.CveCliente, factura.CveClienteSucursal, factura.SubTotalTC, factura.DescuentoTC,
|
|
factura.AmortizacionTC, factura.IVATC, factura.RetIVATC, factura.RetISRTC,
|
|
factura.TotalTC, factura.CveMoneda, factura.TipoCambio, factura.CveMetodoPago, factura.CondicionesPago, factura.FormaPago, factura.FechaPago, factura.Fecha, factura.MotivoDescuento,
|
|
factura.Observaciones, factura.FechaEjecucion, factura.CveVendedor,
|
|
factura.Alfa1, factura.Alfa2, factura.Alfa3, factura.Num1, factura.Num2, factura.Num3,
|
|
factura.Fech1, factura.Fech2, factura.Fech3, factura.CveCorte, factura.CveMesa, factura.NumeroPersonas, factura.CvePrePoliza, factura.CveUsuario, factura.CveEmpresa,
|
|
AtencionA:=factura.AtencionA, CveContrato:=factura.CveContrato, Det_FechaOrdenCompra:=factura.Det_FechaOrdenCompra, Det_OrdenCompra:=factura.Det_OrdenCompra, otros:=factura.Otros,
|
|
CveAlmacenTraspasoDestino:=CveAlmacenTraspasoDestino, CveAlmacenTraspasoOrigen:=CveAlmacenTraspasoOrigen, IEPS:=factura.IEPSTC, Serie:=factura.Serie,
|
|
CveSubProyecto:=factura.CveSubProyecto, CveSubProyectoCobranza:=factura.CveSubProyectoCobranza, CveSubProyectoEjecucion:=factura.CveSubProyectoEjecucion, CveFormaPago33:=factura.CveFormaPago33,
|
|
CveMetodoPago33:=factura.CveMetodoPago33, CveUsoCFDI:=factura.CveUsoCFDI, CveTipoRelacion:=factura.CveTipoRelacion, ImpuestoLocal:=TotalImpuestoLocal,
|
|
CveVentaRelacion:=(If(factura.CveVentaRelacion.ToEntero > 0, factura.CveVentaRelacion, -1)), ImporteRelacion:=(If(factura.ImporteRelacion <> Nothing, factura.ImporteRelacion, -1)),
|
|
CveTipoAmortizacionAnticipo:=factura.CveTipoAmortizacionAnticipo) Then
|
|
|
|
ErrorList.Add("Ocurrió un error al Generar la Venta.<br />Revise su factura y cualquier detalle comuníquese a Soporte Técnico")
|
|
End If
|
|
|
|
|
|
If ErrorList.Count = 0 AndAlso ObjVentas.CveVenta > 0 Then
|
|
|
|
factura.CveVenta = ObjVentas.CveVenta
|
|
factura.Serie = ObjVentas.Serie
|
|
factura.Folio = ObjVentas.Folio
|
|
ViewState("VentaFolio") = ObjVentas.SerieFolio
|
|
factura.Timbre.Comprobante.Serie = ObjVentas.Serie
|
|
factura.Timbre.Comprobante.Folio = ObjVentas.Folio.ToString
|
|
|
|
|
|
'Se agregan los PS
|
|
For Each Row As DataRow In TmpDTDetalle.Rows
|
|
If Not ObjVentas.AddVentaDetalle(ObjVentas.CveVenta, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("CveUM").ToString.ToEntero,
|
|
Row("PU").ToString.ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Row("IVA").ToString.ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Math.Round((Row("Total").ToString.ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)) * (1 + Row("IVA").ToString.ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)))), 6),
|
|
Row("Obs").ToString, Row("Descuento").ToString.ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Row("TipoDescuento").ToString.ToEntero, Row("CveSubProyecto").ToString.ToEntero, Row("CvePresupuestoIngreso").ToString.ToEntero,
|
|
TiempoEntrega:=Row("TiempoEntrega").ToString, CveVentaDetallePadre:=Row("CveVentaDetalle").ToString.ToEntero, CveContratoDetalle:=Row("CveContratoDetalle").ToString.ToEntero,
|
|
IEPS:=Row("ImporteIEPS").ToString.ToDouble, CveMovimientoDetallePedido:=Row("CveMovimientoDetallePedido").ToString.ToEntero,
|
|
ImporteRetIVA:=Row("ImporteRetIVA").ToString.ToDouble, ImporteRetISR:=Row("ImporteRetISR").ToString.ToDouble,
|
|
PorcentajeIEPS:=Row("PorcentajeIEPS").ToString.ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString.ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString.ToDouble, CuentaPredial:=Row("CuentaPredial").ToString) Then
|
|
ErrorList.Add("Ocurrió un error al agregar un Producto o Servicio a la Factura.<br />Revise su factura y cualquier detalle comuníquese a Soporte Técnico")
|
|
Exit For
|
|
Else
|
|
|
|
Dim TmpDr As DataRow = TmpDT.Select($"Consec = {Row("Consec").ToString}")(0)
|
|
TmpDr("CveVentaDetalle") = ObjVentas.CveVentaDetalle
|
|
|
|
End If
|
|
Next
|
|
|
|
End If
|
|
|
|
|
|
|
|
'If ErrorList.Count = 0 Then
|
|
' 'prepoliza
|
|
' GuardarVentaPrePolizas(ObjConta, factura, TmpDTDetalle, CveNCaVincular, objContPaqi, ObjBancos, ObjVentas, ObjEventos:=ObjEventos)
|
|
' If ErrorList.Count = 0 Then
|
|
' 'inventarios
|
|
' If GuardarVentaInventarios(ObjInventario, ObjConta, factura) Then
|
|
' ErrorList.Add("Ocurrio un error al Guardar Inventario")
|
|
' End If
|
|
' If ErrorList.Count = 0 Then
|
|
' 'estimaciones
|
|
' GuardarVentaEstimaciones(ObjContr, factura)
|
|
' If ErrorList.Count = 0 Then
|
|
' 'armonizaccionContable
|
|
' GuardarVentaAC(ObjVentas, factura, Msgok, objContPaqi)
|
|
' If ErrorList.Count = 0 Then
|
|
' 'Impuestos Locales
|
|
' If GuardarVentaImpuestosLocales(ObjVentas, ObjConta, factura) Then
|
|
' ErrorList.Add("Ocurrio un error al Guardar Impuestos Locales")
|
|
' End If
|
|
' End If
|
|
' End If
|
|
' End If
|
|
' End If
|
|
'End If
|
|
|
|
End Sub
|
|
|
|
Private Sub LimpiaTabPedido()
|
|
CargaFolios()
|
|
TmpDT.Rows.Clear()
|
|
Dim Dt = New DataSet
|
|
Dt.Tables.Add("Datos")
|
|
Dt.Tables("Datos").Columns.Add("")
|
|
GvPS.DataSource = Dt.Tables("Datos")
|
|
GvPS.DataBind()
|
|
TxtObs.Text = ""
|
|
CalculaTotalesVenta()
|
|
UpTabPedidos.Update()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#End Region
|
|
|
|
|
|
End Class
|