diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb
index c628638aa..8f1c3a848 100644
--- a/Compras/Compras.aspx.vb
+++ b/Compras/Compras.aspx.vb
@@ -14703,7 +14703,7 @@ Partial Class Compras_Compras
If TxtFecha.Text.ToDate.Month < TxtFechaCancelacion.Text.ToDate.Month Or TxtFecha.Text.ToDate.Year < TxtFechaCancelacion.Text.ToDate.Year Or DdlTipoComprobante.SelectedValue.Contiene("NC") Then
'CREA POLIZA NEGATIVA
- If IdPoliza > 0 AndAlso ObjAC IsNot Nothing Then
+ If IdPoliza > 0 AndAlso ObjAC IsNot Nothing AndAlso UsuarioActual.Empresa.UsaAC Then
If ObjAC.GetPoliza(IdPoliza, -1, -1, -1, -1) AndAlso ObjAC.DtResultados.Rows.Count > 0 Then
dt = ObjAC.DtResultados
@@ -14741,7 +14741,7 @@ Partial Class Compras_Compras
If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePolizaNueva, CBool(dr("TipoMovto").ToString), dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, dr("CveConceptoContable").ToString.ToEntero,
dr("Concepto").ToString, TxtFechaCancelacion.Text.ToDate, dr("IdCtaContable").ToString.ToEntero, dr("IdSegmentoNegocio").ToString.ToEntero, dr("CveIE").ToString.ToEntero,
dr("CveVenta").ToString.ToEntero, dr("CveCompra").ToString.ToEntero, dr("CveSubProyecto").ToString.ToEntero, dr("CveCliente").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero,
- dr("CveMovimientoAlmacen").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, dr("CveAcreedor").ToString.ToEntero, dr("CveColectiva").ToString.ToEntero, dr("CveCreditoDetalle").ToString.ToEntero, CveCuenta:=dr("CveCuenta").ToString.ToEntero,
+ dr("CveMovimientoAlmacen").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, -1, -1, dr("CveCreditoDetalle").ToString.ToEntero, CveCuenta:=dr("CveCuenta").ToString.ToEntero,
ImporteMX:=dr("Importe").ToString.ToDecimal * -1, ImporteME:=dr("Importe").ToString.ToDecimal * -1, CveTipoGasto:=dr("CveTipoGasto").ToString.ToEntero, CveClasificacion:=dr("CveClasificacion").ToString.ToEntero, CveOCDetalle:=dr("CveOCDetalle").ToString.ToEntero,
CveCompraAmortizacion:=dr("CveCompraAmortizacion").ToString.ToEntero) Then
ErrorCancelar = True
@@ -14765,7 +14765,7 @@ Partial Class Compras_Compras
If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePolizaNueva, CBool(dr("TipoMovto").ToString), dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, dr("CveConceptoContable").ToString.ToEntero,
dr("Concepto").ToString, TxtFechaCancelacion.Text.ToDate, dr("IdCtaContable").ToString.ToEntero, dr("IdSegmentoNegocio").ToString.ToEntero, dr("CveIE").ToString.ToEntero,
dr("CveVenta").ToString.ToEntero, dr("CveCompra").ToString.ToEntero, dr("CveSubProyecto").ToString.ToEntero, dr("CveCliente").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero,
- dr("CveMovimientoAlmacen").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, dr("CveAcreedor").ToString.ToEntero, dr("CveColectiva").ToString.ToEntero, dr("CveCreditoDetalle").ToString.ToEntero, CveCuenta:=dr("CveCuenta").ToString.ToEntero,
+ dr("CveMovimientoAlmacen").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, -1, -1, dr("CveCreditoDetalle").ToString.ToEntero, CveCuenta:=dr("CveCuenta").ToString.ToEntero,
ImporteMX:=dr("Importe").ToString.ToDecimal * -1, ImporteME:=dr("Importe").ToString.ToDecimal * -1, CveTipoGasto:=dr("CveTipoGasto").ToString.ToEntero, CveClasificacion:=dr("CveClasificacion").ToString.ToEntero, CveOCDetalle:=dr("CveOCDetalle").ToString.ToEntero) Then
ErrorCancelar = True
Exit For
diff --git a/Contabilidad/RepIVA.aspx.cs b/Contabilidad/RepIVA.aspx.cs
index 6d37128bf..ff5467b8a 100644
--- a/Contabilidad/RepIVA.aspx.cs
+++ b/Contabilidad/RepIVA.aspx.cs
@@ -68,6 +68,7 @@ public partial class Contabilidad_RepIVA : ClsPaginas
DdlCuenta.DataSource = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:UsuarioActual.CveEmpresa, CveTipoCuenta:2);
DdlCuenta.DataBind();
+ DdlCuenta.Items.Insert(0, new ListItem("Todos", "-1"));
}
public void Consulta()
diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb
index 245310417..8e68f2b23 100644
--- a/General/SaldosIniciales.aspx.vb
+++ b/General/SaldosIniciales.aspx.vb
@@ -1237,14 +1237,15 @@ Partial Class General_SaldosIniciales
Dim TipoDocto As String = Row("Tipo Documento").ToString
Dim CveProveedor As Integer = DtProveedores.FiltroPrimeroValor("CveProveedor", $"RFC = '{RFC}'").ToString.ToEntero
GuardaLog(Sucursal + " - " + Row("Sucursal").ToString)
- Dim RetIVA As Double = Row("Ret IVA").ToString.ToDouble
- Dim RetISR As Double = Row("Ret ISR").ToString.ToDouble
+ Dim RetIVA As Decimal = Row("Ret IVA").ToString.ToDecimal
+ Dim RetISR As Decimal = Row("Ret ISR").ToString.ToDecimal
Dim IEPS As Decimal = Row("IEPS").ToString.ToDecimal
Dim Moneda As String = Row("Moneda").ToString
Dim TipoCambio As String = Row("Tipo Cambio").ToString
Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString.ToDate
Dim CveMoneda As Integer = 1
Dim CveProveedorSucursal As Integer = Row("CveProveedorSucursal").ToString.ToEntero
+ Dim PorcentajeIVA As String = Row("PorcentajeIVA").ToString
If Not CvePS > 0 Then Alert(String.Format("No se encontró el Producto Servicio"), TipoMensaje.MsgError) : ErrorCompras = True
@@ -1252,7 +1253,7 @@ Partial Class General_SaldosIniciales
If Not CveProveedor > 0 Then Alert(String.Format("No se encontró el Proveedor con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorCompras = True : Exit For
If Not CveProveedorSucursal > 0 Then CveProveedorSucursal = -1
- TipoDocto = IIf(TipoDocto.ToUpper = "INGRESOS", "Fac", "NC").ToString
+ TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESOS", "INGRESO", "ING"), "Fac", "NC").ToString
'Temporalmente SE BORRARA
@@ -1261,9 +1262,9 @@ Partial Class General_SaldosIniciales
Dim CodProvee As String = "" 'Row("CodProvee2").ToString
'Moneda
- If Moneda = "Pesos" Then
+ If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then
CveMoneda = 1
- ElseIf Moneda = "Dólares" Then
+ ElseIf Moneda.ToUpper.Contiene("DOLARES", "DOLAR", "USD", "DÓLARES") Then
CveMoneda = 2
End If
@@ -1287,7 +1288,7 @@ Partial Class General_SaldosIniciales
'Compra
If Not ObjCompras.AddCompra(TipoDocto, "", Serie, Folio, Folio2, CveProveedor.ToEntero, SubTotal, 0, 0, IVA, RetIVA, RetISR, IEPS, 0, 0, Total, Fecha, CveMoneda, TipoCambio.ToDouble, FechaVencimiento,
False, CodProvee, 1, CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveProveedorSucursal:=CveProveedorSucursal,
- NumeroReembolso:=Transaccion, PorcentajeIVA:=0.16) Then
+ NumeroReembolso:=Transaccion, PorcentajeIVA:=PorcentajeIVA.ToDecimal) Then
ErrorCompras = True
Exit For
End If
@@ -1308,6 +1309,10 @@ Partial Class General_SaldosIniciales
If IEPS > 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, IEPS, Folio, 25, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=IEPS, CveSubProyecto:=Sucursal.ToEntero) Then ErrorCompras = True : Exit For
+ If RetIVA > 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetIVA, Folio, 15, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=RetIVA, CveSubProyecto:=Sucursal.ToEntero) Then ErrorCompras = True : Exit For
+ If RetISR > 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, Folio, 16, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=RetISR, CveSubProyecto:=Sucursal.ToEntero) Then ErrorCompras = True : Exit For
+
+
'Saldo
If Saldo < Total Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Folio, 17, Folio, Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Total - Saldo) Then ErrorCompras = True : Exit For
diff --git a/Inventarios/AjustesSeccionAlmacen.aspx b/Inventarios/AjustesSeccionAlmacen.aspx
index ea8e354af..3e8855dea 100644
--- a/Inventarios/AjustesSeccionAlmacen.aspx
+++ b/Inventarios/AjustesSeccionAlmacen.aspx
@@ -73,7 +73,7 @@
-
+
<%----%>
@@ -91,7 +91,7 @@
-
+
@@ -102,8 +102,8 @@
-
-
+
+
diff --git a/Inventarios/Consignaciones.aspx.vb b/Inventarios/Consignaciones.aspx.vb
index a98290c76..8da1e3b5e 100644
--- a/Inventarios/Consignaciones.aspx.vb
+++ b/Inventarios/Consignaciones.aspx.vb
@@ -595,9 +595,9 @@ Partial Class Inventarios_Consignaciones
Dim CveSeccionAlmacen As Integer = DdlSeccionAlmacen.SelectedValue.ToEntero
Dim SeccionAlmacen As String = DdlSeccionAlmacen.SelectedItem.Text
- Dim Serie As String = If(TxtSerie.Text = "", "-1", TxtSerie.Text)
- Dim Lote As String = If(TxtLote.Text = "", "-1", TxtLote.Text)
- Dim Caducidad As String = If(TxtCaducidad.Text = "", "-1", TxtCaducidad.Text)
+ Dim Serie As String = If(TxtSerie.Text = "", "", TxtSerie.Text)
+ Dim Lote As String = If(TxtLote.Text = "", "", TxtLote.Text)
+ Dim Caducidad As String = If(TxtCaducidad.Text = "", MinFecha.ToShortDateString, TxtCaducidad.Text)
Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=PSSelected).FiltroPrimero("")
@@ -634,6 +634,15 @@ Partial Class Inventarios_Consignaciones
GvDatos.DataSource = DtMovimientos
GvDatos.DataBind()
+
+ If DtMovimientos IsNot Nothing AndAlso DtMovimientos.Rows.Count > 0 Then
+ GvDatos.Columns(7).Visible = DtMovimientos.MAX("CveSeccionAlmacen").ToEntero > 0
+ GvDatos.Columns(8).Visible = DtMovimientos.MAX("Serie") <> ""
+ GvDatos.Columns(9).Visible = DtMovimientos.MAX("Lote") <> ""
+ GvDatos.Columns(10).Visible = DtMovimientos.MAX("FechaCaducidad").ToDate > MinFecha
+
+ End If
+
TxtCantidad.Text = ""
TxtPU.Text = ""
LbTotal.Text = ""
diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb
index 7dd85fdfa..20e6e8e4e 100644
--- a/Inventarios/EntradasSalidas.aspx.vb
+++ b/Inventarios/EntradasSalidas.aspx.vb
@@ -1259,6 +1259,13 @@ Partial Class Inventarios_EntradasSalidas
Alert("El producto requiere Serie", TipoMensaje.MsgAdvertencia)
End If
+ If RowPS("VentaMinima").ToString.ToDecimal > 0 Then
+ If Cantidad Mod RowPS("VentaMinima").ToString().ToDecimal <> 0 Then
+ Alert(String.Format("El producto se vende solo en cantidades de {0}", RowPS("VentaMinima").ToString()))
+ Valido = False
+ End If
+ End If
+
'salida
If Valido AndAlso DdlConcepto.SelectedValue.Contiene({"3", "5", "7", "8", "11", "12", "13", "15", "16", "17", "20", "21", "30", "31"}) Then ' salida de almacen
diff --git a/Inventarios/EntregaAlmacen.aspx b/Inventarios/EntregaAlmacen.aspx
index 7b0398fbb..2bbd9cffe 100644
--- a/Inventarios/EntregaAlmacen.aspx
+++ b/Inventarios/EntregaAlmacen.aspx
@@ -516,7 +516,7 @@
-
+
diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb
index e21187015..499598d68 100644
--- a/Inventarios/EntregaAlmacen.aspx.vb
+++ b/Inventarios/EntregaAlmacen.aspx.vb
@@ -851,6 +851,7 @@ Partial Class Inventarios_EntregaAlmacen
If AplicaCaducidad Then GvDatos.Columns(9).Visible = True
GvDatos.Columns(9).HeaderText = If(UsuarioActual.Empresa.Funcionalidad(147) = "Fecha Elaboración", "Fecha Elaboración", "Fecha Caducidad")
+ SugerirFechaLote()
End If
GvDatos.DataSource = DtDatos
@@ -3819,5 +3820,85 @@ Partial Class Inventarios_EntregaAlmacen
End Sub
#End Region
+#Region "sugerir caducidad"
+ Private Sub SugerirFechaLote()
+ Dim ObjInventarios As New ClsInventarios()
+ Dim FechasExcluidas As New List(Of String)
+ FechasExcluidas.Add(MinFecha.ToDate.ToString)
+ Dim MaxRows As Integer = DtDatos.Rows.Count - 1
+ For contador As Integer = 0 To MaxRows
+ Dim DtRow As DataRow = DtDatos.Rows(contador)
+ Dim AplicaCaducidad As Boolean = DtRow.Item("AplicaCaducidad").ToString = "True"
+ Dim AplicaLote As Boolean = DtRow.Item("AplicaLote").ToString = "True"
+ Dim Cantidad As Integer = DtRow.Item("CantidadC").ToString.ToEntero
+ Dim FechasExcluidasFiltro As String = String.Format("FechaCaducidad NOT IN('{0}')", String.Join("','", FechasExcluidas))
+ If AplicaCaducidad Or AplicaLote Then
+ Dim CvePS As Integer = DtRow.Item("CvePS").ToString.ToEntero
+ If ObjInventarios.GetExistenciasCaducidad(CvePS, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ If ObjInventarios.DtResultados.Rows.Count > 0 Then
+ Dim MinimumRow As DataRow = ObjInventarios.DtResultados.FiltroPrimero(FechasExcluidasFiltro, "FechaCaducidad")
+ DtRow.Item("FechaCaducidad") = MinimumRow.Item("FechaCaducidad").ToString
+ DtRow.Item("Lote") = MinimumRow.Item("Lote").ToString
+ Dim CantidadDisponible As Integer = MinimumRow.Item("Cantidad").ToString.ToEntero
+ DtRow.Item("CantidadF") = CantidadDisponible
+ DtRow.Item("CantidadS") = CantidadDisponible
+
+ If Cantidad > CantidadDisponible Then
+ Dim RowFaltante As DataRow = DtDatos.NewRow()
+ Dim CantidadFaltante As Integer = (Cantidad - CantidadDisponible)
+ RowFaltante.Item("CantidadC") = CantidadFaltante
+ RowFaltante.Item("CantidadF") = CantidadFaltante
+ RowFaltante.Item("CantidadS") = CantidadFaltante
+ DtRow.Item("CantidadC") = CantidadDisponible
+ For Each Column As DataColumn In DtDatos.Columns
+ If Not Column.ColumnName.Contiene("CantidadC", "CantidadF", "CantidadS") Then
+ RowFaltante.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName)
+ End If
+ Next
+ FechasExcluidas.Add(MinimumRow.Item("FechaCaducidad").ToString)
+ DtDatos.Rows.Add(RowFaltante)
+ MaxRows += 1
+ Else
+ DtRow.Item("CantidadF") = Cantidad
+ End If
+ End If
+ End If
+ End If
+ Next
+
+ 'For Each DtRow As DataRow In DtDatos.Rows
+ ' Dim AplicaCaducidad As Boolean = DtRow.Item("AplicaCaducidad").ToString = "True"
+ ' Dim AplicaLote As Boolean = DtRow.Item("AplicaLote").ToString = "True"
+ ' Dim Cantidad As Integer = DtRow.Item("CantidadC").ToString.ToEntero
+ ' Dim FechasExcluidasFiltro As String = String.Format("FechaCaducidad NOT IN('{0}')", String.Join("','", FechasExcluidas))
+ ' If AplicaCaducidad Or AplicaLote Then
+ ' Dim CvePS As Integer = DtRow.Item("CvePS").ToString.ToEntero
+ ' If ObjInventarios.GetExistenciasCaducidad(CvePS, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ ' Dim MinimumRow As DataRow = ObjInventarios.DtResultados.FiltroPrimero(FechasExcluidasFiltro, "FechaCaducidad")
+ ' DtRow.Item("FechaCaducidad") = MinimumRow.Item("FechaCaducidad").ToString
+ ' DtRow.Item("Lote") = MinimumRow.Item("Lote").ToString
+ ' Dim CantidadDisponible As Integer = MinimumRow.Item("Cantidad").ToString.ToEntero
+ ' DtRow.Item("CantidadF") = CantidadDisponible
+
+ ' If Cantidad > CantidadDisponible Then
+ ' Dim RowFaltante As DataRow = DtDatos.NewRow()
+ ' RowFaltante.Item("CantidadC") = (Cantidad - CantidadDisponible)
+ ' RowFaltante.Item("CantidadF") = (Cantidad - CantidadDisponible)
+ ' RowFaltante.Item("CantidadS") = (Cantidad - CantidadDisponible)
+ ' For Each Column As DataColumn In DtDatos.Columns
+ ' If Not Column.ColumnName.Contiene("CantidadC", "CantidadF", "CantidadS") Then
+ ' RowFaltante.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName)
+ ' End If
+ ' Next
+
+ ' DtDatos.Rows.Add(RowFaltante)
+ ' End If
+ ' End If
+ ' End If
+ 'Next
+ ObjInventarios.Dispose()
+ End Sub
+
+#End Region
End Class
diff --git a/Inventarios/Kardex.aspx b/Inventarios/Kardex.aspx
index d5fdfdc19..4b82deae4 100644
--- a/Inventarios/Kardex.aspx
+++ b/Inventarios/Kardex.aspx
@@ -4,6 +4,11 @@