Merge branch 'master' of http://oirigoyen@192.168.10.111:8383/SIG.git
This commit is contained in:
@@ -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
|
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
|
'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
|
If ObjAC.GetPoliza(IdPoliza, -1, -1, -1, -1) AndAlso ObjAC.DtResultados.Rows.Count > 0 Then
|
||||||
dt = ObjAC.DtResultados
|
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,
|
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("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("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,
|
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
|
CveCompraAmortizacion:=dr("CveCompraAmortizacion").ToString.ToEntero) Then
|
||||||
ErrorCancelar = True
|
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,
|
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("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("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
|
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
|
ErrorCancelar = True
|
||||||
Exit For
|
Exit For
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ public partial class Contabilidad_RepIVA : ClsPaginas
|
|||||||
|
|
||||||
DdlCuenta.DataSource = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:UsuarioActual.CveEmpresa, CveTipoCuenta:2);
|
DdlCuenta.DataSource = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:UsuarioActual.CveEmpresa, CveTipoCuenta:2);
|
||||||
DdlCuenta.DataBind();
|
DdlCuenta.DataBind();
|
||||||
|
DdlCuenta.Items.Insert(0, new ListItem("Todos", "-1"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Consulta()
|
public void Consulta()
|
||||||
|
|||||||
@@ -1237,14 +1237,15 @@ Partial Class General_SaldosIniciales
|
|||||||
Dim TipoDocto As String = Row("Tipo Documento").ToString
|
Dim TipoDocto As String = Row("Tipo Documento").ToString
|
||||||
Dim CveProveedor As Integer = DtProveedores.FiltroPrimeroValor("CveProveedor", $"RFC = '{RFC}'").ToString.ToEntero
|
Dim CveProveedor As Integer = DtProveedores.FiltroPrimeroValor("CveProveedor", $"RFC = '{RFC}'").ToString.ToEntero
|
||||||
GuardaLog(Sucursal + " - " + Row("Sucursal").ToString)
|
GuardaLog(Sucursal + " - " + Row("Sucursal").ToString)
|
||||||
Dim RetIVA As Double = Row("Ret IVA").ToString.ToDouble
|
Dim RetIVA As Decimal = Row("Ret IVA").ToString.ToDecimal
|
||||||
Dim RetISR As Double = Row("Ret ISR").ToString.ToDouble
|
Dim RetISR As Decimal = Row("Ret ISR").ToString.ToDecimal
|
||||||
Dim IEPS As Decimal = Row("IEPS").ToString.ToDecimal
|
Dim IEPS As Decimal = Row("IEPS").ToString.ToDecimal
|
||||||
Dim Moneda As String = Row("Moneda").ToString
|
Dim Moneda As String = Row("Moneda").ToString
|
||||||
Dim TipoCambio As String = Row("Tipo Cambio").ToString
|
Dim TipoCambio As String = Row("Tipo Cambio").ToString
|
||||||
Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString.ToDate
|
Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString.ToDate
|
||||||
Dim CveMoneda As Integer = 1
|
Dim CveMoneda As Integer = 1
|
||||||
Dim CveProveedorSucursal As Integer = Row("CveProveedorSucursal").ToString.ToEntero
|
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
|
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 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
|
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
|
'Temporalmente SE BORRARA
|
||||||
@@ -1261,9 +1262,9 @@ Partial Class General_SaldosIniciales
|
|||||||
Dim CodProvee As String = "" 'Row("CodProvee2").ToString
|
Dim CodProvee As String = "" 'Row("CodProvee2").ToString
|
||||||
|
|
||||||
'Moneda
|
'Moneda
|
||||||
If Moneda = "Pesos" Then
|
If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then
|
||||||
CveMoneda = 1
|
CveMoneda = 1
|
||||||
ElseIf Moneda = "Dólares" Then
|
ElseIf Moneda.ToUpper.Contiene("DOLARES", "DOLAR", "USD", "DÓLARES") Then
|
||||||
CveMoneda = 2
|
CveMoneda = 2
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -1287,7 +1288,7 @@ Partial Class General_SaldosIniciales
|
|||||||
'Compra
|
'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,
|
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,
|
False, CodProvee, 1, CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveProveedorSucursal:=CveProveedorSucursal,
|
||||||
NumeroReembolso:=Transaccion, PorcentajeIVA:=0.16) Then
|
NumeroReembolso:=Transaccion, PorcentajeIVA:=PorcentajeIVA.ToDecimal) Then
|
||||||
ErrorCompras = True
|
ErrorCompras = True
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
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 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
|
'Saldo
|
||||||
If Saldo < Total Then
|
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
|
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
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
<asp:BoundField HeaderText="Producto" DataField="PS" />
|
<asp:BoundField HeaderText="Producto" DataField="PS" />
|
||||||
<asp:BoundField HeaderText="Serie" DataField="Serie" ItemStyle-Width="5%" />
|
<asp:BoundField HeaderText="Serie" DataField="Serie" ItemStyle-Width="5%" />
|
||||||
<asp:BoundField HeaderText="Lote" DataField="Lote" ItemStyle-Width="5%" />
|
<asp:BoundField HeaderText="Lote" DataField="Lote" ItemStyle-Width="5%" />
|
||||||
<asp:BoundField HeaderText="FechaCaducidad" DataField="FechaCaducidad" ItemStyle-Width="5%" />
|
<asp:BoundField HeaderText="FechaCaducidad" DataField="FechaCaducidad" DataFormatString="{0:d}" ItemStyle-Width="5%" />
|
||||||
<asp:BoundField HeaderText="Sección Actual" DataField="SeccionAlmacen" ItemStyle-Width="15%" />
|
<asp:BoundField HeaderText="Sección Actual" DataField="SeccionAlmacen" ItemStyle-Width="15%" />
|
||||||
<%--<asp:BoundField HeaderText="Existencia" DataField="Existencia" DataFormatString="{0:#,###.##}" ItemStyle-Width="5%" />--%>
|
<%--<asp:BoundField HeaderText="Existencia" DataField="Existencia" DataFormatString="{0:#,###.##}" ItemStyle-Width="5%" />--%>
|
||||||
<asp:TemplateField ItemStyle-Width="7%">
|
<asp:TemplateField ItemStyle-Width="7%">
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:TemplateField HeaderText="Nuevo Lote" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
|
<asp:TemplateField HeaderText="Nuevo Lote" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:TextBox runat="server" ID="TxtLote" Text='<%# Eval("Lote").ToString()%>' CssClass="form-control" ClientIDMode="Static" />
|
<asp:TextBox runat="server" ID="TxtLote" Text='<%# Eval("Lote").ToString()%>' CssClass="form-control input-sm" ClientIDMode="Static" />
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
|
|
||||||
@@ -102,8 +102,8 @@
|
|||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:TemplateField HeaderText="Nueva Fecha Cad." ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
|
<asp:TemplateField HeaderText="Nueva Fecha Cad." ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 138px !important; padding: 0px; margin-bottom: -10px;">
|
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 113px !important; padding: 0px; margin-bottom: -10px;">
|
||||||
<asp:TextBox runat="server" ID="TxtFechaCadNueva" Text='<%# Eval("FechaCaducidad").ToString()%>' CssClass="form-control" ClientIDMode="Static" />
|
<asp:TextBox runat="server" ID="TxtFechaCadNueva" Text='<%# Eval("FechaCaducidad", "{0:d}").ToString()%>' CssClass="form-control input-sm" ClientIDMode="Static" />
|
||||||
<span class="input-group-btn ">
|
<span class="input-group-btn ">
|
||||||
<asp:LinkButton runat="server" ID="ImgFecha" class="btn default"> <i class="fa fa-calendar"></i> </asp:LinkButton>
|
<asp:LinkButton runat="server" ID="ImgFecha" class="btn default"> <i class="fa fa-calendar"></i> </asp:LinkButton>
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -595,9 +595,9 @@ Partial Class Inventarios_Consignaciones
|
|||||||
|
|
||||||
Dim CveSeccionAlmacen As Integer = DdlSeccionAlmacen.SelectedValue.ToEntero
|
Dim CveSeccionAlmacen As Integer = DdlSeccionAlmacen.SelectedValue.ToEntero
|
||||||
Dim SeccionAlmacen As String = DdlSeccionAlmacen.SelectedItem.Text
|
Dim SeccionAlmacen As String = DdlSeccionAlmacen.SelectedItem.Text
|
||||||
Dim Serie As String = If(TxtSerie.Text = "", "-1", TxtSerie.Text)
|
Dim Serie As String = If(TxtSerie.Text = "", "", TxtSerie.Text)
|
||||||
Dim Lote As String = If(TxtLote.Text = "", "-1", TxtLote.Text)
|
Dim Lote As String = If(TxtLote.Text = "", "", TxtLote.Text)
|
||||||
Dim Caducidad As String = If(TxtCaducidad.Text = "", "-1", TxtCaducidad.Text)
|
Dim Caducidad As String = If(TxtCaducidad.Text = "", MinFecha.ToShortDateString, TxtCaducidad.Text)
|
||||||
|
|
||||||
Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=PSSelected).FiltroPrimero("")
|
Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=PSSelected).FiltroPrimero("")
|
||||||
|
|
||||||
@@ -634,6 +634,15 @@ Partial Class Inventarios_Consignaciones
|
|||||||
GvDatos.DataSource = DtMovimientos
|
GvDatos.DataSource = DtMovimientos
|
||||||
GvDatos.DataBind()
|
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 = ""
|
TxtCantidad.Text = ""
|
||||||
TxtPU.Text = ""
|
TxtPU.Text = ""
|
||||||
LbTotal.Text = ""
|
LbTotal.Text = ""
|
||||||
|
|||||||
@@ -1259,6 +1259,13 @@ Partial Class Inventarios_EntradasSalidas
|
|||||||
Alert("El producto requiere Serie", TipoMensaje.MsgAdvertencia)
|
Alert("El producto requiere Serie", TipoMensaje.MsgAdvertencia)
|
||||||
End If
|
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
|
'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
|
If Valido AndAlso DdlConcepto.SelectedValue.Contiene({"3", "5", "7", "8", "11", "12", "13", "15", "16", "17", "20", "21", "30", "31"}) Then ' salida de almacen
|
||||||
|
|
||||||
|
|||||||
@@ -516,7 +516,7 @@
|
|||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:TemplateField HeaderText="Lote" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="7.5%" Visible="false">
|
<asp:TemplateField HeaderText="Lote" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="7.5%" Visible="false">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:TextBox ID="TxtLote" CssClass="form-control input-sm" runat="server" Visible="false"></asp:TextBox>
|
<asp:TextBox ID="TxtLote" CssClass="form-control input-sm" runat="server" Visible="false" Text='<%# Eval("Lote") %>'></asp:TextBox>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:TemplateField HeaderText="F.Caducidad" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="5%" Visible="false">
|
<asp:TemplateField HeaderText="F.Caducidad" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="5%" Visible="false">
|
||||||
|
|||||||
@@ -851,6 +851,7 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
If AplicaCaducidad Then GvDatos.Columns(9).Visible = True
|
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")
|
GvDatos.Columns(9).HeaderText = If(UsuarioActual.Empresa.Funcionalidad(147) = "Fecha Elaboración", "Fecha Elaboración", "Fecha Caducidad")
|
||||||
|
|
||||||
|
SugerirFechaLote()
|
||||||
End If
|
End If
|
||||||
GvDatos.DataSource = DtDatos
|
GvDatos.DataSource = DtDatos
|
||||||
|
|
||||||
@@ -3819,5 +3820,85 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#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
|
End Class
|
||||||
|
|||||||
@@ -4,6 +4,11 @@
|
|||||||
</asp:Content>
|
</asp:Content>
|
||||||
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
|
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
|
||||||
<style>
|
<style>
|
||||||
|
.select2-selection__rendered {
|
||||||
|
margin-top: 0px;
|
||||||
|
height: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
.dataTables_scrollBody table th {
|
.dataTables_scrollBody table th {
|
||||||
padding: 0px !important;
|
padding: 0px !important;
|
||||||
padding-right: 4px !important;
|
padding-right: 4px !important;
|
||||||
@@ -119,10 +124,10 @@
|
|||||||
<asp:UpdatePanel runat="server" ID="UpAcciones" UpdateMode="Conditional" >
|
<asp:UpdatePanel runat="server" ID="UpAcciones" UpdateMode="Conditional" >
|
||||||
<ContentTemplate>
|
<ContentTemplate>
|
||||||
<li>
|
<li>
|
||||||
<asp:LinkButton ID="ImgImprimir" runat="server"><i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
|
<asp:LinkButton ID="ImgImprimir" runat="server"><i class="fa fa-file-pdf-o" style="font-weight:bold;"></i> PDF</asp:LinkButton>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Generar Excel</asp:LinkButton>
|
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-file-excel-o" style="font-weight:bold;"></i> Excel</asp:LinkButton>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<asp:LinkButton ID="LnkSeries" Visible="false" runat="server"><i class="fa fa-list"></i> Series Disponibles</asp:LinkButton>
|
<asp:LinkButton ID="LnkSeries" Visible="false" runat="server"><i class="fa fa-list"></i> Series Disponibles</asp:LinkButton>
|
||||||
@@ -131,7 +136,10 @@
|
|||||||
<asp:LinkButton ID="LnkCaducidad" Visible="false" runat="server"><i class="fa fa-list"></i> Caducidad de producto</asp:LinkButton>
|
<asp:LinkButton ID="LnkCaducidad" Visible="false" runat="server"><i class="fa fa-list"></i> Caducidad de producto</asp:LinkButton>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a target="_blank" class="ayuda" href="../Documentacion/DocumentacionInventarios.aspx#Kardex"> </a>
|
<asp:HyperLink runat="server" ID="HlAyuda" NavigateUrl="/Documentacion/DocumentacionInventarios.aspx#Kardex"><i class="fa fa-question-circle"></i> Ayuda</asp:HyperLink>
|
||||||
|
<%--<div>
|
||||||
|
<a target="_blank" class="ayuda" href="../Documentacion/DocumentacionInventarios.aspx#Kardex"> </a>
|
||||||
|
</div>--%>
|
||||||
</li>
|
</li>
|
||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
<Triggers>
|
<Triggers>
|
||||||
@@ -165,8 +173,7 @@
|
|||||||
<label class="col-md-1 truncate" style="max-width: 80px;">Almacén:</label>
|
<label class="col-md-1 truncate" style="max-width: 80px;">Almacén:</label>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<%--<asp:DropDownList ID="ddlAlmacen" runat="server" CssClass="select2me " Style="width: 175px !important;" DataTextField="Almacen" DataValueField="CveAlmacen"></asp:DropDownList>--%>
|
<%--<asp:DropDownList ID="ddlAlmacen" runat="server" CssClass="select2me " Style="width: 175px !important;" DataTextField="Almacen" DataValueField="CveAlmacen"></asp:DropDownList>--%>
|
||||||
<asp:ListBox ID="ddlAlmacen" SelectionMode="Multiple" data-text="Todos" CssClass="form-control ddlFiltros input-sm select2me Widthall" Style="width: 100%;" runat="server"
|
<asp:ListBox ID="ddlAlmacen" SelectionMode="Multiple" data-text="Todos" AppendDataBoundItems="true" CssClass="ddlFiltros input-sm select2me Widthall" Style="width: 100%;" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen"></asp:ListBox>
|
||||||
DataTextField="Almacen" DataValueField="CveAlmacen"></asp:ListBox>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -376,7 +383,7 @@
|
|||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:BoundField DataField="Concepto" ItemStyle-Width="170px" HeaderText="Movimiento" ItemStyle-HorizontalAlign="Left" />
|
<asp:BoundField DataField="Concepto" ItemStyle-Width="170px" HeaderText="Movimiento" ItemStyle-HorizontalAlign="Left" />
|
||||||
<asp:BoundField DataField="Almacen" ItemStyle-Width="140px" HeaderText="Almacen" ItemStyle-HorizontalAlign="Left" />
|
<asp:BoundField DataField="Almacen" ItemStyle-Width="140px" HeaderText="Almacén" ItemStyle-HorizontalAlign="Left" />
|
||||||
<asp:TemplateField ItemStyle-Width="70px" HeaderText="Folio">
|
<asp:TemplateField ItemStyle-Width="70px" HeaderText="Folio">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:HyperLink ID="hlFolio" runat="server" Text='<%# Eval("Folio")%>' CssClass="Texto" NavigateUrl='<%# Eval("CveMovimiento", "/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}")%>' Target="_blank" />
|
<asp:HyperLink ID="hlFolio" runat="server" Text='<%# Eval("Folio")%>' CssClass="Texto" NavigateUrl='<%# Eval("CveMovimiento", "/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}")%>' Target="_blank" />
|
||||||
|
|||||||
@@ -236,10 +236,10 @@ Partial Class Inventarios_Kardex
|
|||||||
LtIndicador_UCPesos.Text = Dr("UltimoCosto").ToString.FormatoNumero()
|
LtIndicador_UCPesos.Text = Dr("UltimoCosto").ToString.FormatoNumero()
|
||||||
LtIndicador_UCDolares.Text = Dr("UltimoCostoUSD").ToString.FormatoNumero()
|
LtIndicador_UCDolares.Text = Dr("UltimoCostoUSD").ToString.FormatoNumero()
|
||||||
|
|
||||||
LtIndicador_Mensaje.Text = $"* Importes calculados con el tipo de cambio del dia <b> $ {TC.FormatoNumero(4)} </b>"
|
LtIndicador_Mensaje.Text = $"* Importes calculados con el tipo de cambio del día <b> $ {TC.FormatoNumero(4)} </b>"
|
||||||
|
|
||||||
If TxtSerie.Text <> "" Then
|
If TxtSerie.Text <> "" Then
|
||||||
LtIndicador_MensajeSerie.Text = $"* Existencia y costos calculada por numero de serie: <b> {TxtSerie.Text} </b>"
|
LtIndicador_MensajeSerie.Text = $"* Existencia y costos calculada por número de serie: <b> {TxtSerie.Text} </b>"
|
||||||
Else
|
Else
|
||||||
LtIndicador_MensajeSerie.Text = ""
|
LtIndicador_MensajeSerie.Text = ""
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -2612,7 +2612,13 @@ Partial Class Inventarios_RecepcionAlmacen
|
|||||||
MovtosSalidaDirecta.Add(MovSalidaExA.CveMovimiento)
|
MovtosSalidaDirecta.Add(MovSalidaExA.CveMovimiento)
|
||||||
FoliosSalidaDirecta.Add(MovSalidaExA.Folio)
|
FoliosSalidaDirecta.Add(MovSalidaExA.Folio)
|
||||||
|
|
||||||
Dim MovEntradaExA = GenerarMovimientoAlmacenVenta(ObjFactura.CveAlmacenTraspasoDestino, 9, ObjFactura.CveVenta, MovSalidaExA.CveMovimiento, DtDetalleMovimiento, ObjInventario, ObjConta, ObjContaContPAQ, False, "RA/G2R2")
|
Dim dttexa As DataTable = DtDetalleMovimiento.Copy
|
||||||
|
'se limpia la seccion, para que lo tome automaticamente
|
||||||
|
For Each drr As DataRow In dttexa.Rows
|
||||||
|
drr("CveSeccionAlmacen") = -3
|
||||||
|
Next
|
||||||
|
|
||||||
|
Dim MovEntradaExA = GenerarMovimientoAlmacenVenta(ObjFactura.CveAlmacenTraspasoDestino, 9, ObjFactura.CveVenta, MovSalidaExA.CveMovimiento, dttexa, ObjInventario, ObjConta, ObjContaContPAQ, False, "RA/G2R2")
|
||||||
|
|
||||||
ErrorMovInv = MovEntradaExA.CveMovimiento <= 0
|
ErrorMovInv = MovEntradaExA.CveMovimiento <= 0
|
||||||
|
|
||||||
|
|||||||
@@ -3764,7 +3764,7 @@ Partial Class OC
|
|||||||
GvD.EditIndex = e.NewEditIndex
|
GvD.EditIndex = e.NewEditIndex
|
||||||
CargaDatosDetalles()
|
CargaDatosDetalles()
|
||||||
Dim EditingRow As GridViewRow = GvD.Rows(e.NewEditIndex)
|
Dim EditingRow As GridViewRow = GvD.Rows(e.NewEditIndex)
|
||||||
If Not EsCreaApartirDe Then
|
If Not EsCreaApartirDe AndAlso Not UsuarioActual.TienePermisoProceso(131) Then 'si tiene el proce 131, e va a permitir, sino que lo bloquee
|
||||||
If EditingRow.DataKey("TipoDato").ToEntero = 2 Or EditingRow.DataKey("CantidadNoEditable").ToDecimal > 0 Then
|
If EditingRow.DataKey("TipoDato").ToEntero = 2 Or EditingRow.DataKey("CantidadNoEditable").ToDecimal > 0 Then
|
||||||
EditingRow.FCDropDownList("DdlClasificacion").Enabled = False
|
EditingRow.FCDropDownList("DdlClasificacion").Enabled = False
|
||||||
EditingRow.FCDropDownList("DdlPS").Enabled = False
|
EditingRow.FCDropDownList("DdlPS").Enabled = False
|
||||||
|
|||||||
@@ -1238,7 +1238,7 @@ Partial Class ProductosyServicios
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
If UsuarioActual.CveEmpresa = 141 Then
|
If UsuarioActual.Empresa.Funcionalidad(563) <> "" Then
|
||||||
TieneError = GuardarProductoEnFranquicia(ObjProductosServicios, PSS, CveMetodoInv, EsPaquete, True)
|
TieneError = GuardarProductoEnFranquicia(ObjProductosServicios, PSS, CveMetodoInv, EsPaquete, True)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -1304,7 +1304,7 @@ Partial Class ProductosyServicios
|
|||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If UsuarioActual.CveEmpresa = 141 Then
|
If UsuarioActual.Empresa.Funcionalidad(563) <> "" Then
|
||||||
TieneError = GuardarProductoEnFranquicia(ObjProductosServicios, PSS, CveMetodoInv, EsPaquete, False)
|
TieneError = GuardarProductoEnFranquicia(ObjProductosServicios, PSS, CveMetodoInv, EsPaquete, False)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -2763,7 +2763,8 @@ Partial Class ProductosyServicios
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Function GuardarProductoEnFranquicia(ObjPS As ClsProductosServicios, PSS As String, CveMetodoInv As Integer, EsPaquete As Integer, Agregar As Boolean) As Boolean
|
Private Function GuardarProductoEnFranquicia(ObjPS As ClsProductosServicios, PSS As String, CveMetodoInv As Integer, EsPaquete As Integer, Agregar As Boolean) As Boolean
|
||||||
Dim EmpresasFranquicia = New Integer() {152}
|
Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563)
|
||||||
|
Dim EmpresasFranquicia As List(Of Integer) = StrEmpresas.Split(","c).ToList().ConvertAll(Function(x) Convert.ToInt32(x))
|
||||||
For Each Franquicia As Integer In EmpresasFranquicia
|
For Each Franquicia As Integer In EmpresasFranquicia
|
||||||
Dim nombreEmpresa As String = GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")
|
Dim nombreEmpresa As String = GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")
|
||||||
Dim CveClasificacion As Integer = GlobalDTClasificaciones(CveEmpresa:=Franquicia).FiltroPrimeroValor("CveClasificacion", String.Format("Clasificacion = '{0}'", DdlClasificacion.SelectedItem.Text)).ToEntero
|
Dim CveClasificacion As Integer = GlobalDTClasificaciones(CveEmpresa:=Franquicia).FiltroPrimeroValor("CveClasificacion", String.Format("Clasificacion = '{0}'", DdlClasificacion.SelectedItem.Text)).ToEntero
|
||||||
|
|||||||
@@ -130,6 +130,10 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user