Relacion manual de documentos

This commit is contained in:
2020-12-05 18:19:13 -07:00
parent 5912949dd5
commit fb928057a4
3 changed files with 493 additions and 230 deletions

View File

@@ -1893,6 +1893,26 @@ Partial Class Ventas
ViewState("AplicaRNCXDetalle") = value
End Set
End Property
Private Property AplicaRelacionManual As Boolean
Get
Return CBool(IfNull(ViewState("AplicaRelacionManual"), "False", ViewState("AplicaRelacionManual")))
End Get
Set(value As Boolean)
ViewState("AplicaRelacionManual") = value
End Set
End Property
Private Property TmpDTFacturasRelacionadas As DataTable
Get
If ViewState("TmpDTFacturasRelacionadas") IsNot Nothing Then
Return CType(ViewState("TmpDTFacturasRelacionadas"), DataTable)
Else
Return Nothing
End If
End Get
Set(value As DataTable)
ViewState("TmpDTFacturasRelacionadas") = value
End Set
End Property
#End Region
@@ -2253,6 +2273,10 @@ Partial Class Ventas
CargaOrdenProduccion()
End If
'MUESTRA EL MODAL PARA PODER RELACIONAR FACTURAS
If UsuarioActual.Empresa.Funcionalidad(592) = "1" Then
HlFacturasRelaciondas.Visible = True
End If
'Carga Venta
@@ -2260,6 +2284,9 @@ Partial Class Ventas
ViewState("CveVenta") = Request("CveVenta")
If CargaVenta() Then
If UsuarioActual.Empresa.Funcionalidad(592) = "1" Then
CargaRelacionadasPendientes()
End If
'DdlSucursal.Enabled = False
DdlSubProyectoDatos.Enabled = False
@@ -4136,6 +4163,8 @@ Partial Class Ventas
End If
DdlTipoRelacionARelacionar.SelectedValueExist(DbRowVenta("CveTipoRelacion").ToString())
'contado 0, credito 1, terminal 2
If DbRowVenta("CondicionesPago").ToString().ToEntero() = 1 Then
RBLPago.SelectedValue = "1"
@@ -5096,8 +5125,13 @@ Partial Class Ventas
End Sub
Private Sub CargaTiposRelacion()
DdlTiposRelacion.DataSource = GlobalDTVtaTiposRelacion
DdlTipoRelacionARelacionar.DataSource = GlobalDTVtaTiposRelacion
DdlTiposRelacion.DataBind()
DdlTipoRelacionARelacionar.DataBind()
DdlTiposRelacion.Items.Insert(0, New ListItem("-", "-1"))
DdlTipoRelacionARelacionar.Items.Insert(0, New ListItem("-", "-1"))
End Sub
Private Sub CargaFormaEntrega()
TrFormaEntrega.Visible = True
@@ -5141,44 +5175,44 @@ Partial Class Ventas
End Function
Private Sub CargarAlmacenes()
If (CveVenta > 0 And DdlTipoComprobante.SelectedValue <> "Cot") AndAlso Not (UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso EsCreaApartirDe) Then
DivAlmacen.Visible = False
Else
Dim DTAlmacen As DataTable
ddlAlmacen.Items.Clear()
DTAlmacen = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa).FiltraParametros($"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue.ToEntero()}")
ddlAlmacen.DataSource = DTAlmacen
If DTAlmacen Is Nothing Or DTAlmacen.Rows.Count = 0 Then
ddlAlmacen.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
ddlAlmacen.SelectedValue = "-1"
If UsuarioActual.Empresa.UsaInventarios Then
If (CveVenta > 0 And DdlTipoComprobante.SelectedValue <> "Cot") AndAlso Not (UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso EsCreaApartirDe) Then
DivAlmacen.Visible = False
Else
Dim DTAlmacen As DataTable
ddlAlmacen.Items.Clear()
DTAlmacen = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa).FiltraParametros($"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue.ToEntero()}")
ddlAlmacen.DataSource = DTAlmacen
If DTAlmacen Is Nothing Or DTAlmacen.Rows.Count = 0 Then
ddlAlmacen.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
ddlAlmacen.SelectedValue = "-1"
End If
ddlAlmacen.DataBind()
If GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa).FiltraParametros($"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue.ToEntero()}").Rows.Count > 0 Then
ddlAlmacen.SelectedValueExist(UsuarioActual.CveAlmacen)
End If
End If
'SI TIENE CONTRATO NO SE MUEVE
If Not CveContrato > 0 Then
DdlAlmacenAsignado.Items.Clear()
DdlAlmacenAsignado.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=-1).FiltraParametros($"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue.ToEntero()} AND CveTipoAlmacen IN (4,10)")
DdlAlmacenAsignado.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
DdlAlmacenAsignado.SelectedValue = "-1"
DdlAlmacenAsignado.DataBind()
DdlAlmacenAsignado.SelectedValueExist(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen = 10 AND CveSubProyecto = {DdlSubProyectoDatos.SelectedValue.ToEntero()}").ToString().ToEntero())
End If
If CveContrato > 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ped", "PeC") Then
DdlAlmacenAsignado.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=-1).FiltraParametros($"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue.ToEntero()}")
DdlAlmacenAsignado.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
DdlAlmacenAsignado.SelectedValue = "-1"
DdlAlmacenAsignado.DataBind()
DdlAlmacenAsignado.SelectedValueExist(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue}").ToString().ToEntero())
End If
Else
ddlAlmacen.DataSource = Nothing
ddlAlmacen.DataBind()
If GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa).FiltraParametros($"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue.ToEntero()}").Rows.Count > 0 Then
ddlAlmacen.SelectedValueExist(UsuarioActual.CveAlmacen)
End If
End If
'SI TIENE CONTRATO NO SE MUEVE
If Not CveContrato > 0 Then
DdlAlmacenAsignado.Items.Clear()
DdlAlmacenAsignado.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=-1).FiltraParametros($"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue.ToEntero()} AND CveTipoAlmacen IN (4,10)")
DdlAlmacenAsignado.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
DdlAlmacenAsignado.SelectedValue = "-1"
DdlAlmacenAsignado.DataBind()
DdlAlmacenAsignado.SelectedValueExist(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen = 10 AND CveSubProyecto = {DdlSubProyectoDatos.SelectedValue.ToEntero()}").ToString().ToEntero())
End If
If CveContrato > 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ped", "PeC") Then
DdlAlmacenAsignado.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=-1).FiltraParametros($"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue.ToEntero()}")
DdlAlmacenAsignado.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
DdlAlmacenAsignado.SelectedValue = "-1"
DdlAlmacenAsignado.DataBind()
DdlAlmacenAsignado.SelectedValueExist(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue}").ToString().ToEntero())
End If
Else
ddlAlmacen.DataSource = Nothing
ddlAlmacen.DataBind()
End If
UpINV.Update()
@@ -5629,6 +5663,8 @@ Partial Class Ventas
CargaPorcentajeMarcas()
End If
CargaFacturasARelacionar()
UpFacturar.Update()
UpEstatus.Update()
UpPS.Update()
@@ -5666,6 +5702,8 @@ Partial Class Ventas
UpModalRemisionesNC.Update()
End If
CargaFacturasARelacionar()
If RequiereOC Then
Dim Documentacion As String = ""
'RegistraScript("$('#DivDocsCliente').modal({ backdrop: 'static', keyboard: false });", "ModalArchivos")
@@ -5697,6 +5735,138 @@ Partial Class Ventas
DeshabilitarAplicarNotaDeCredito(LblRFC.Text)
End Sub
Private Sub CargaRelacionadasPendientes()
If CveVenta > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(592) = "1" Then
Me.TmpDTFacturasRelacionadas = New DataTable()
Me.TmpDTFacturasRelacionadas.Columns.Add(New DataColumn("CveVenta", GetType(Integer)))
Me.TmpDTFacturasRelacionadas.Columns.Add(New DataColumn("SerieFolio", GetType(String)))
Me.TmpDTFacturasRelacionadas.Columns.Add(New DataColumn("FolioFiscal", GetType(String)))
Using ObjVentas As New ClsVentas
If ObjVentas.GetVentasRelacionadas(CveVenta, UsuarioActual.CveEmpresa) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then
'SI LA FACTURA NO SE TIMBRO QUE VUELVA A INTENTAR FACTURAR
If LblSeTimbro.Text = "No" Then
Me.AplicaRelacionManual = True
End If
For Each RowRelacionada As DataRow In ObjVentas.DtResultados.Rows
Dim Row As DataRow = TmpDTFacturasRelacionadas.NewRow()
Row("CveVenta") = RowRelacionada("CveVentaRelacionada").ToString().ToEntero()
Row("SerieFolio") = RowRelacionada("SerieFolio").ToString()
Row("FolioFiscal") = RowRelacionada("FolioFiscal").ToString()
Me.TmpDTFacturasRelacionadas.Rows.Add(Row)
Next
End If
End Using
DivDdlFacturaRela.Visible = False
BtnAgregarFacturasRelaciondas.Visible = False
DdlTipoRelacionARelacionar.Enabled = False
GvFacturasRelacionadas.Columns(2).Visible = False
GvFacturasRelacionadas.DataSource = Me.TmpDTFacturasRelacionadas
GvFacturasRelacionadas.DataBind()
UpFacturasRelacionadas.Update()
End If
End Sub
Private Sub CargaFacturasARelacionar()
Using ObjClientes As New ClsClientes
If ObjClientes.GetHistorialVentas(Me.CveCliente, TipoDocto:="Ing") Then
DdlFacturaARelacionar.DataSource = ObjClientes.DtResultados
End If
End Using
DdlFacturaARelacionar.DataBind()
If Not DdlFacturaARelacionar.Items.Contains(New ListItem("Seleccione", "-1")) Then
DdlFacturaARelacionar.Items.Insert(0, New ListItem("Seleccione", "-1"))
End If
UpFacturasRelacionadas.Update()
End Sub
Protected Sub CreaTmpFacturasRelacionadas()
If CveVenta <= 0 Then
Me.TmpDTFacturasRelacionadas = New DataTable()
Me.TmpDTFacturasRelacionadas.Columns.Add(New DataColumn("CveVenta", GetType(Integer)))
Me.TmpDTFacturasRelacionadas.Columns.Add(New DataColumn("SerieFolio", GetType(String)))
Me.TmpDTFacturasRelacionadas.Columns.Add(New DataColumn("FolioFiscal", GetType(String)))
End If
End Sub
Protected Sub LnkAgregarFacturaRelacionada_Click(sender As Object, e As EventArgs)
If CveVenta <= 0 Then
If Me.TmpDTFacturasRelacionadas Is Nothing Then
CreaTmpFacturasRelacionadas()
End If
If TmpDTFacturasRelacionadas.COUNT("CveVenta", $"CveVenta ={DdlFacturaARelacionar.SelectedValue.ToEntero()}") > 0 Then
Alert("La factura ya fue agregada", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim Row As DataRow = TmpDTFacturasRelacionadas.NewRow()
Row("CveVenta") = DdlFacturaARelacionar.SelectedValue.ToEntero()
Using ObjVentas As New ClsVentas
If ObjVentas.GetVenta(DdlFacturaARelacionar.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then
Row("SerieFolio") = ObjVentas.DtResultados(0)("SerieFolio").ToString()
Row("FolioFiscal") = ObjVentas.DtResultados(0)("FolioFiscal").ToString()
End If
End Using
Me.TmpDTFacturasRelacionadas.Rows.Add(Row)
GvFacturasRelacionadas.DataSource = Me.TmpDTFacturasRelacionadas
GvFacturasRelacionadas.DataBind()
UpFacturasRelacionadas.Update()
End If
End Sub
Protected Sub BtnAgregarFacturasRelaciondas_Click(sender As Object, e As EventArgs)
If CveVenta <= 0 Then
If Me.TmpDTFacturasRelacionadas Is Nothing OrElse Me.TmpDTFacturasRelacionadas.Rows.Count = 0 Then
Me.AplicaRelacionManual = False
Alert("No hay facturas para relacionar", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If DdlTipoRelacionARelacionar.SelectedValue.ToEntero() <= 0 Then
Me.AplicaRelacionManual = False
Alert("Debe seleccionar un tipo de relación", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Me.AplicaRelacionManual = True
RegistraScript("$('#DivFacturasRelaciondas').modal('hide');", "R1")
Alert("Las facturas seleccionadas se relacionaran con la factura nueva")
End If
UpFacturasRelacionadas.Update()
End Sub
Protected Sub LnkEliminarFacturaRelacionada_Click(sender As Object, e As EventArgs)
Dim lnkRemove As LinkButton = DirectCast(sender, LinkButton)
If Me.TmpDTFacturasRelacionadas.Rows.Count > 0 And lnkRemove.CommandArgument.ToString.Length > 0 Then
Dim CveVenta As Integer = lnkRemove.CommandArgument.ToString.ToEntero
Dim Drs As DataRow() = Me.TmpDTFacturasRelacionadas.Select(String.Format("CveVenta = {0}", CveVenta))
If Drs.Count > 0 Then
Drs(0).Delete()
End If
Me.TmpDTFacturasRelacionadas.AcceptChanges()
End If
GvFacturasRelacionadas.EditIndex = -1
GvFacturasRelacionadas.DataSource = Me.TmpDTFacturasRelacionadas
GvFacturasRelacionadas.DataBind()
UpFacturasRelacionadas.Update()
End Sub
Private Sub CargaRestriccionesCreditoCliente(Optional Alertas As Boolean = False, Optional CveVenta As Integer = -1)
If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso Me.PermiteCredito = False AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1 Then
@@ -9778,16 +9948,11 @@ Partial Class Ventas
Timbre.Comprobante.TipoCambio = If(Obj.CveMoneda = 1, "1", Obj.TipoCambio.ToString())
Timbre.Comprobante.Total = Obj.Total
'Try
'Obj.SetSubProyecto(Me)
Timbre.Comprobante.LugarExpedicion = Obj.SubProyecto.CP
If Timbre.Comprobante.LugarExpedicion = "" Then
Dim aa As String = "no se guardo lugar de expedicion"
aa.GuardaLog()
End If
'Catch ex As Exception
'End Try
Timbre.Comprobante.Confirmacion = ""
@@ -9870,6 +10035,26 @@ Partial Class Ventas
End If
'SI LAS FACTURAS SE RELACIONARAN MANUALMENTE SE AGREGAN
If UsuarioActual.Empresa.Funcionalidad(592) = "1" AndAlso Me.AplicaRelacionManual AndAlso DdlTipoRelacionARelacionar.SelectedValue.ToEntero() > 0 Then
Dim CveTipoRelacion As Integer = DdlTipoRelacionARelacionar.SelectedValue.ToEntero()
Obj.CveTipoRelacion = DdlTipoRelacionARelacionar.SelectedValue.ToEntero()
Dim RowTipoRelacion As DataRow = GlobalDTVtaTiposRelacion().FiltroPrimero($"CveTipoRelacion = {CveTipoRelacion}")
Timbre.CFDIRelacionados.TipoRelacion = RowTipoRelacion("SATClaveTipoRelacion").ToString()
Timbre.CFDIRelacionados.TipoRelacionTexto = RowTipoRelacion("SATTipoRelacion").ToString()
For Each GvRow As GridViewRow In GvFacturasRelacionadas.Rows
If GvRow.RowType = DataControlRowType.DataRow Then
Timbre.CFDIRelacionados.UUID.Add(GvRow.DataKey("FolioFiscal").Replace("test", ""))
End If
Next
End If
Dim totSubTotal As Decimal = Obj.SubTotal
Dim totIVA As Decimal = Obj.IVA
@@ -10465,7 +10650,18 @@ Partial Class Ventas
End If
End If
End If
End If
If UsuarioActual.Empresa.Funcionalidad(592) = "1" AndAlso Me.AplicaRelacionManual Then
For Each GvRow As GridViewRow In GvFacturasRelacionadas.Rows
If GvRow.RowType = DataControlRowType.DataRow Then
If Not ObjVentas.AddVentasRelacionadas(ObjVentas.CveVenta, GvRow.DataKey("CveVenta").ToEntero()) Then
ErrorList.Add("Ocurrió un error al relacionar las ventas entre si comuníquese a Soporte Técnico")
End If
End If
Next
'LO LIMPIA PARA QUE NO VUELVA A APLICAR
Me.AplicaRelacionManual = False
End If
If UsuarioActual.Empresa.Funcionalidad(280) = "1" And RblPaqueteria.SelectedValue = "1" And Not factura.TipoDocto.Contiene("Rem", "Ped") Then
@@ -24023,11 +24219,7 @@ Partial Class Ventas
End Sub
Private Sub BtnAplicaNuevaNC_Click(sender As Object, e As EventArgs) Handles BtnAplicaNuevaNC.Click
If ListaRemisionesNC IsNot Nothing AndAlso ListaRemisionesNC.Count > 0 Then
AplicarNotaCreditoDesdeVenta(AplicaNuevoDocumento:=True)
Else
Alert("No ha seleccionado ninguna remisión de nota de crédito", TipoMensaje.MsgAdvertencia)
End If
AplicarNotaCreditoDesdeVenta(AplicaNuevoDocumento:=True)
End Sub
Private Sub AplicarNotaCreditoDesdeVenta(Optional AplicaNuevoDocumento As Boolean = False)
@@ -28534,4 +28726,7 @@ Partial Class Ventas
Public ImporteBonificacion As Decimal = 0
Public IVABonificacion As Decimal = 0
End Class
End Class