-- MEJORA RECOLECCIONES

This commit is contained in:
2024-02-19 20:04:30 -07:00
parent a7c4d1aa2f
commit dcb7fc873f
6 changed files with 151 additions and 111 deletions

View File

@@ -1748,6 +1748,7 @@ Partial Class Compras_Compras
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("DEV"))
DdlTipoCompra.Items.Remove(DdlTipoCompra.Items.FindByValue("6"))
DdlTipoCompra.Items.Remove(DdlTipoCompra.Items.FindByValue("11"))
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then DdlTipoCompra.Items.Add(New ListItem("Recolección", "14"))
Case "E"
DdlTipoComprobante.SelectedValue = "NC"
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Fac"))
@@ -1760,6 +1761,7 @@ Partial Class Compras_Compras
DdlTipoCompra.Items.Add(New ListItem("Apoyo Logístico", "9"))
DdlTipoCompra.Items.Add(New ListItem("NC Por Devolución", "11"))
DdlTipoCompra.Items.Add(New ListItem("Garantía", "12"))
DdlTipoCompra.Items.Add(New ListItem("Recolección", "14"))
Case "T"
DdlTipoCompra.Items.Clear()
DdlTipoCompra.Items.Add(New ListItem("Apoyo Logístico", "9"))
@@ -4344,7 +4346,7 @@ Partial Class Compras_Compras
UM.Dispose()
PSS.Dispose()
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoCompra.SelectedValue = "12" Then 'cuando es garantía, debe de especificar la salida de almacen
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoCompra.SelectedValue.Contiene("12", "14") Then 'cuando es garantía, debe de especificar la salida de almacen
If Not GvInv.HeaderRow.FCCheckBox("cbAll").Checked OrElse GvInv.HeaderRow.FCDropDownList("ddlAlmacen").SelectedValue.ToEntero <= 0 Then
Alert("No ha especificado la salida de almacen en la garantía.", TipoMensaje.MsgAdvertencia)
Exit Sub
@@ -5279,12 +5281,21 @@ Partial Class Compras_Compras
Dim indice As Integer = 0
Dim ImporteConcepto As Decimal = 0
Dim tCveFolioGarantia As Integer = -1
Dim tCveEntregaAlmacen As Integer = -1
Dim CveConceptoMovimiento As Integer = 2
'apoyo logistico/garantia
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") AndAlso DdlTipoCompra.SelectedValue = "12" Then 'garantía
CveConceptoMovimiento = 13
tCveFolioGarantia = DdlFolioGarantia.SelectedValue.ToEntero
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then 'cuando es empresa acumuladora
'apoyo logistico/garantia
If DdlTipoCompra.SelectedValue = "12" Then 'garantía
CveConceptoMovimiento = 13
tCveFolioGarantia = DdlFolioGarantia.SelectedValue.ToEntero
End If
'recolección
If DdlTipoCompra.SelectedValue = "14" Then 'recolección
CveConceptoMovimiento = 42
tCveEntregaAlmacen = DdlRecoleccion.SelectedValue.ToEntero
End If
End If
If (DdlTipoComprobante.SelectedValue = "Fac" AndAlso CveCompraRefacturacion <= 0) OrElse CveConceptoMovimiento = 13 Then
For Each tCveAlmacen As Integer In ListAlmacenes
@@ -5296,7 +5307,7 @@ Partial Class Compras_Compras
Dim fecha As Date = TxtFecha.Text.ToDate
If Not UsuarioActual.Empresa.UsaAC Then fecha = NowADS()
CveMovimientoInventario = ObjInventario.AddMovimiento(tCveAlmacen, CveConceptoMovimiento, 1, fecha, 0, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero = 1, -1, TipoCambioGuardar), CveFolioGarantia:=tCveFolioGarantia, Modulo:="Comp/G2")
CveMovimientoInventario = ObjInventario.AddMovimiento(tCveAlmacen, CveConceptoMovimiento, 1, fecha, 0, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero = 1, -1, TipoCambioGuardar), CveFolioGarantia:=tCveFolioGarantia, Modulo:="Comp/G2", CveEntregaAlmacen:=tCveEntregaAlmacen)
If CveMovimientoInventario <= 0 Then
ErrorMovInv = True
@@ -6311,7 +6322,7 @@ Partial Class Compras_Compras
Dim RegistroCuentaPuente As Boolean = False
'NC CON PRODUCTOS - CUENTA PUENTE
If DdlTipoComprobante.SelectedValue = "NC" And DdlTipoCompra.SelectedValue.Contiene("9", "12") Then
If DdlTipoComprobante.SelectedValue = "NC" And DdlTipoCompra.SelectedValue.Contiene("9", "12", "14") Then
RegistraConcepto225 = True
End If
@@ -6332,7 +6343,7 @@ Partial Class Compras_Compras
CveMovimientoDevolucion = Devolucion.CveMovimiento
End If
'cuando es garantía.
If DdlTipoCompra.SelectedValue = "12" Then
If DdlTipoCompra.SelectedValue.Contiene("12", "14") Then
ConceptoContabilizacionNC = 259
End If
@@ -10217,7 +10228,7 @@ Partial Class Compras_Compras
If UsuarioActual.Empresa.UsaAC Then e.Row.FCCheckBox("cbInv").Enabled = False
Dim StrTipo As String = "CveTipoAlmacen IN (1,2,7,14,19)"
If DdlTipoCompra.SelectedValue.Contiene("9", "12") Then StrTipo = "CveTipoAlmacen IN (21)"
If DdlTipoCompra.SelectedValue.Contiene("9", "12", "14") Then StrTipo = "CveTipoAlmacen IN (21)"
If EsDevolucionApoyoLogistico Then StrTipo = "CveTipoAlmacen = 27"
e.Row.FCDropDownList("ddlEAlmacen").DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(StrTipo)
@@ -15778,6 +15789,7 @@ Partial Class Compras_Compras
End Sub
Private Sub OriginalesVisible(Accion As Boolean)
tdT0.Visible = Accion
trTotalOriginal.Visible = Accion
tdT1.Visible = Accion
tdT2.Visible = Accion
tdT3.Visible = Accion
@@ -15796,7 +15808,7 @@ Partial Class Compras_Compras
'VALIDA IMPORTES
'VALIDA TOTAL CON LOS IMPORTES TOTALES
Dim TempSubTotal, TempDescuentos, TempIVA, TempSubTotal2, TempRetIVA, TempRetISR, TempTotal, DifTotales, TempIEPS As Double
Dim TempSubTotal, TempDescuentos, TempIVA, TempSubTotal2, TempRetIVA, TempRetISR, TempTotal, DifTotales, TempIEPS As Decimal
Dim Amortizacion As Decimal = 0
Dim TieneAmortizacion As Boolean = False
@@ -15813,26 +15825,25 @@ Partial Class Compras_Compras
TxtSubTotal.Text = (TxtSubTotal.Text.ToDouble + Amortizacion).ToString
End If
TempSubTotal = TxtSubTotal.Text.ToDouble
TempSubTotal = TxtSubTotal.Text.ToDecimal
SubTotalOriginal = TxtSubTotal.Text.ToDecimal
SubTotal2Original = TxtSubTotal2.Text.ToDecimal
TempDescuentos = TxtDescuento.Text.Trim.ToDouble + Amortizacion
TempDescuentos = TxtDescuento.Text.Trim.ToDecimal + Amortizacion
TempSubTotal2 = TempSubTotal - TempDescuentos
TempIVA = TxtIVA.Text.ToDouble
TempIEPS = TxtIEPS.Text.ToDouble
TempRetIVA = TxtRetIVA.Text.ToDouble
TempRetISR = TxtRetISR.Text.ToDouble
TempTotal = Math.Round(TempSubTotal2 + TempIVA + TempIEPS - TempRetIVA - TempRetISR + TxtOtrosImpuestos.Text.ToDouble - Amortizacion, 2)
DifTotales = TxtTotal.Text.ToDouble - TempTotal
TempIVA = TxtIVA.Text.ToDecimal
TempIEPS = TxtIEPS.Text.ToDecimal
TempRetIVA = TxtRetIVA.Text.ToDecimal
TempRetISR = TxtRetISR.Text.ToDecimal
TempTotal = Math.Round(TempSubTotal2 + TempIVA + TempIEPS - TempRetIVA - TempRetISR + TxtOtrosImpuestos.Text.ToDecimal - Amortizacion, 2)
DifTotales = TxtTotal.Text.ToDecimal - TempTotal
Dim DiferenciaPermitida As Decimal = 0.6D
If Math.Abs(DifTotales) > DiferenciaPermitida Then
Alert(String.Format("Los importes de los conceptos (Productos/Servicios) no cuadran con el total. Por favor verifique y vuelva a intentar.[{0}]", Math.Abs(DifTotales) - DiferenciaPermitida), TipoMensaje.MsgAdvertencia)
EsValido = False
ElseIf DifTotales <> 0 Then
TxtSubTotal2.Text = (TxtSubTotal2.Text.ToDouble + DifTotales).ToString
TxtSubTotal.Text = (TxtSubTotal.Text.ToDouble + DifTotales).ToString
TxtSubTotal2.Text = (TxtSubTotal2.Text.ToDecimal + DifTotales).ToString
TxtSubTotal.Text = (TxtSubTotal.Text.ToDecimal + DifTotales).ToString
SubTotalOriginal = TxtSubTotal.Text.ToDecimal
SubTotal2Original = TxtSubTotal2.Text.ToDecimal
End If
@@ -16691,7 +16702,7 @@ Partial Class Compras_Compras
If DrPS IsNot Nothing Then
Row("PSCodigo") = If(PSCodigo = "", DrPS("PSCodigo").ToString, PSCodigo)
Row("CveMetodoInventario") = DrPS("Inv_CveMetodoInventario").ToString.ToEntero
If DdlTipoCompra.SelectedValue = "12" AndAlso DrPS("AplicaSerie").ToString = "True" Then
If Not DdlTipoCompra.SelectedValue.Contiene("12", "14") AndAlso DrPS("AplicaSerie").ToString = "True" Then
Row("CveMetodoInventario") = "1"
End If
Else
@@ -18911,23 +18922,40 @@ Partial Class Compras_Compras
Protected Sub DdlTipoCompra_SelectedIndexChanged(sender As Object, e As EventArgs)
If DdlTipoCompra.SelectedValue.ToEntero.Contiene(9, 10, 12) Then 'Al seleccionar apoyo logístico se cargan los amancenes de devoculcion proveedor para dar entrada
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then 'cuando es emp acumuladora
If DdlTipoCompra.SelectedValue.Contiene("9", "10", "12") Then 'Al seleccionar apoyo logístico se cargan los amancenes de devoculcion proveedor para dar entrada
If DdlTipoCompra.SelectedValue = "12" AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then 'cuando es emp acumuladora
divFolioGarantia.Visible = True
Using objAcum As New ClsAcumuladores
If objAcum.FoliosGarantiaGet(-1, UsuarioActual.Empresa.CveEmpresa, Estatus:=2, TipoFolio:="-1", Area:=-1, CveSubProyecto:=-1) Then
DdlFolioGarantia.DataSource = objAcum.DtResultados.FiltraParametros("", "FechaIng DESC")
DdlFolioGarantia.DataBind()
End If
End Using
If DdlTipoCompra.SelectedValue = "12" Then 'cuando es emp acumuladora
divFolioGarantia.Visible = True
Using objAcum As New ClsAcumuladores
If objAcum.FoliosGarantiaGet(-1, UsuarioActual.Empresa.CveEmpresa, Estatus:=2, TipoFolio:="-1", Area:=-1, CveSubProyecto:=-1) Then
DdlFolioGarantia.DataSource = objAcum.DtResultados.FiltraParametros("", "FechaIng DESC")
DdlFolioGarantia.DataBind()
End If
End Using
End If
'cambia si hay ps con uso de serie
For Each dr As DataRow In TmpDT.Rows
dr("CveMetodoInventario") = 1
Next
CargaGvInv()
Else
If DdlTipoCompra.SelectedValue.Contiene("14") Then 'Recolección
divRecoleccion.Visible = True
Using objAcum As New ClsGenerales
If objAcum.GetInvEntregaAlmacenRuta(-1, MinFecha, MaxFecha, UsuarioActual.Empresa.CveEmpresa, 2, Estatus:=0) Then
DdlRecoleccion.DataSource = objAcum.DtResultados.FiltraParametros("", "Referencia DESC")
DdlRecoleccion.DataBind()
End If
End Using
'cambia si hay ps con uso de serie
For Each dr As DataRow In TmpDT.Rows
dr("CveMetodoInventario") = 1
Next
CargaGvInv()
End If
End If
'cambia si hay ps con uso de serie
For Each dr As DataRow In TmpDT.Rows
dr("CveMetodoInventario") = 1
Next
CargaGvInv()
End If
End Sub
@@ -19524,11 +19552,7 @@ Partial Class Compras_Compras
Dim ProcesoError As Boolean = True
If FechaCompraOriginal <> TxtFecha.Text.ToDate Then
Dim ObjCompra As New ClsCompras
ObjCompra.IniciaTransacSQL()
Dim ObjEventos As New ClsOIEventos(ObjCompra.IniciaTransacSQL())
If ObjEventos.AddEventoBitacora($"Cambio de Fecha de compra de { FechaCompraOriginal.ToString("dd/MM/yyyy")} a {TxtFecha.Text}", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra:=CveCompra) Then
@@ -19543,7 +19567,6 @@ Partial Class Compras_Compras
ProcesoError = True
End If
If Not ProcesoError Then
ObjCompra.Commit()
FechaCompraOriginal = TxtFecha.Text.ToDate
@@ -19558,11 +19581,8 @@ Partial Class Compras_Compras
CargaEventoBitacora()
UPEventoBitacora.Update()
End If
End If
End Sub
@@ -20040,6 +20060,29 @@ Partial Class Compras_Compras
DdlRefacturacionFacturas.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
Protected Sub BtnRecolecciónAplicar_Click(sender As Object, e As EventArgs)
Using ObjAcum As New ClsGenerales
If ObjAcum.GetEntregaAlmacenRutaDetalle(DdlRecoleccion.SelectedValue.ToEntero) Then
'Dim dtt As DataTable = ObjAcum.DtResultados.FiltraParametros("CantidadDisponible > 0")
'Dim Porcentaje As Decimal = TmpDT.MAX("IVAPorcentaje").ToDecimal
'Dim tCveSub As Integer = TmpDT.MAX("CveSubProyecto").ToEntero
'Dim tCveTipoGasto As Integer = TmpDT.MAX("CveTipoGasto").ToEntero
'Dim Total As Decimal = TmpDT.SUMD("Total")
'For Each drr As DataRow In TmpDT.Rows
' ClavesBorradas.Add(drr("CveCompraDetalle").ToString)
'Next
TmpDT.Clear()
'For Each dr As DataRow In dtt.Rows
' Dim pu As Decimal = Total / dtt.SUMD("CantidadDisponible")
' Dim cantidad As Decimal = dr("CantidadDisponible").ToString.ToDecimal
' AddPS(cantidad, dr("CveUM").ToString.ToEntero, "", dr("CveClasificacion").ToString.ToEntero, "", dr("CvePS").ToString.ToEntero, dr("PS").ToString, 2, tCveSub.ToString, "SE", "SE", "", "", pu, Total, Porcentaje, 0, 0, 0, 0, 0, PorcentajeIVA:=Porcentaje, TCalculaTotales:=True, CveTipoGasto:=tCveTipoGasto)
'Next
'AddPS2()
End If
End Using
End Sub
End Class