This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2025-01-06 03:59:50 -07:00
30 changed files with 8036 additions and 1364 deletions

View File

@@ -137,6 +137,7 @@ Partial Class Acumuladores_Tamaños
UpGral.Update()
Alert("Tamaño Agregado Correctamente", TipoMensaje.MsgInformacion)
GlobalDTAcumTamaños(UsuarioActual.CveEmpresa) = Nothing
Else
Alert("Ocurrio un error al guardar el Tamaño", TipoMensaje.MsgError)
End If
@@ -156,6 +157,7 @@ Partial Class Acumuladores_Tamaños
UpGral.Update()
Alert("Tamaño Actualizado Correctamente", TipoMensaje.MsgInformacion)
GlobalDTAcumTamaños(UsuarioActual.CveEmpresa) = Nothing
Else
Alert("Ocurrio un error al Actualizar el Tamaño", TipoMensaje.MsgError)
End If

View File

@@ -1631,7 +1631,7 @@ Public Class ClsVentas
Return Retorno
End Function
Public Function UpdateVentaDetalleRemision(CveVenta As Integer, CvePS As Integer, Cantidad As Decimal, PU As Decimal, IEPS As Decimal, PorcentajeIEPS As Decimal, IVA As Decimal, PorcentajeIVA As Decimal, Descuento As Decimal, Observaciones As String, Optional CveUsuarioModifico As Integer = -1) As Boolean
Public Function UpdateVentaDetalleRemision(CveVenta As Integer, CvePS As Integer, Cantidad As Decimal, PU As Decimal, IEPS As Decimal, PorcentajeIEPS As Decimal, IVA As Decimal, PorcentajeIVA As Decimal, Descuento As Decimal, Observaciones As String, Optional CveUsuarioModifico As Integer = -1, Optional CvePromocionDetalle As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_VentasDetalleRemisionUpdate")
@@ -1647,6 +1647,7 @@ Public Class ClsVentas
.Add("@Descuento", SqlDbType.Decimal).Value = Descuento
.Add("@Observaciones", SqlDbType.VarChar).Value = Observaciones
.Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico
.Add("@CvePromocionDetalle", SqlDbType.Int).Value = CvePromocionDetalle
End With
Try

View File

@@ -846,7 +846,7 @@ Namespace Extensiones
Dim buttonParameters As Newtonsoft.Json.Linq.JArray = New Newtonsoft.Json.Linq.JArray(
New Newtonsoft.Json.Linq.JObject(
New Newtonsoft.Json.Linq.JProperty("type", "text"),
New Newtonsoft.Json.Linq.JProperty("text", "https://sig.adssistemas.mx.com/Clientes/Clientes.aspx?CveCliente=1")
New Newtonsoft.Json.Linq.JProperty("text", LigaBoton)
)
)
' Crear el componente "button"

View File

@@ -180,7 +180,7 @@
<label style="width: 100px;">Forma de Pago:</label>
</div>
<div class="col-md-1" runat="server" id="divTipoPago" >
<asp:DropDownList ID="DdlTipoDeposito" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="NumCuentaMoneda" AutoPostBack="true" DataValueField="CveCuenta" OnSelectedIndexChanged="DdlTipoPago_SelectedIndexChanged" Class="table-group-action-input form-control input-inline input-small input-sm select2me" >
<asp:DropDownList ID="DdlTipoDeposito" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="NumCuentaMoneda" DataValueField="CveCuenta" Class="table-group-action-input form-control input-inline input-small input-sm select2me" >
<asp:ListItem Value="-1" Text="Seleccione" Selected="True"></asp:ListItem>
<asp:ListItem Value="13" Text="Efectivo"></asp:ListItem>
<asp:ListItem Value="3" Text="Cheque"></asp:ListItem>

View File

@@ -234,6 +234,12 @@ Partial Class Bancos_DepositosCaja
TotalImporte = TotalImporte - TxtComisionIntermediario.Text.ToDecimal - IVA
End If
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso TotalImportePrePoliza = 0 Then
Alert("No se ha especificado un importe a depositar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim OcurrioError As Boolean = False
Dim NuevaCvePrePoliza As Integer
@@ -621,6 +627,8 @@ Partial Class Bancos_DepositosCaja
DDlMesesSinIntereses.Visible = False
End If
DDlMesesSinIntereses.SelectedValue = "-1"
UPPFiltros.Update()
End Sub
Private Function ImpresionDirectaPDF(CveIEOrigen As Integer, CvePrePoliza As Integer) As String

View File

@@ -113,11 +113,11 @@ Partial Class Bancos_RepCortes
End If
Else
If UsuarioActual.CveRol = 1 Then
If e.Row.DBCampo("VentasCorte").ToDecimal.RoundSQL <> e.Row.DBCampo("VentaTotalIngreso").ToDecimal + e.Row.DBCampo("VentaTotalRemision").ToDecimal.RoundSQL Then
If e.Row.DBCampo("VentasCorte").ToDecimal <> e.Row.DBCampo("VentaTotalIngreso").ToDecimal + e.Row.DBCampo("VentaTotalRemision").ToDecimal Then
e.Row.Cells(2).ForeColor = Drawing.Color.Red
e.Row.Cells(2).ToolTip = (e.Row.DBCampo("VentasCorte").ToDecimal - (e.Row.DBCampo("VentaTotalIngreso").ToDecimal + e.Row.DBCampo("VentaTotalRemision").ToDecimal)).ToString
End If
If e.Row.DBCampo("VentasCorte").ToDecimal.RoundSQL <> e.Row.DBCampo("VentasContado").ToDecimal + e.Row.DBCampo("VentasCredito").ToDecimal.RoundSQL Then
If e.Row.DBCampo("VentasCorte").ToDecimal <> e.Row.DBCampo("VentasContado").ToDecimal + e.Row.DBCampo("VentasCredito").ToDecimal Then
e.Row.Cells(6).ForeColor = Drawing.Color.Red
e.Row.Cells(6).ToolTip = (e.Row.DBCampo("VentasCorte").ToDecimal - (e.Row.DBCampo("VentasContado").ToDecimal + e.Row.DBCampo("VentasCredito").ToDecimal)).ToString
End If
@@ -280,18 +280,29 @@ Partial Class Bancos_RepCortes
GvP.DataBind()
GvDep.DataBind()
GvPorIVA.DataBind()
GvIngresosRetiros.DataBind()
GvIngresosRetiros.DataBind()
If UsuarioActual.CveEmpresa.Contiene(189, 193, 195, 196, 197) Then
DivAnexo.Visible = True
Dim CveCuenta As Integer = 0
CveCuenta = If(UsuarioActual.CveEmpresa = 193, 186367, 0)
If DdlSubProyectos.SelectedValue = "12756" Then 'nav
CveCuenta = 188796
End If
If DdlSubProyectos.SelectedValue = "12755" Then 'hillo
CveCuenta = 188795
'obtener relación contable
Dim objC As New ClsContabilidad
If objC.GetCuentasAsignaciones(UsuarioActual.CveEmpresa, 30) Then
'obtengo la cvecuentabancaria
Dim tCveBancoCuenta As Integer = GlobalDTBancosCuentasGral(UsuarioActual.CveEmpresa, Estatus:=-1, CveTipoCuenta:=1).FiltroPrimeroValor("CveCuenta", $"CveSubProyecto = {DdlSubProyectos.SelectedValue}").ToEntero
CveCuenta = objC.DtResultados.FiltroPrimeroValor("CveCuenta", $"CveBancoCuenta = {tCveBancoCuenta}").ToEntero
End If
objC.Dispose()
DivAnexo.Visible = True
'CveCuenta = If(UsuarioActual.CveEmpresa = 193, 186367, 0)
'If DdlSubProyectos.SelectedValue = "12756" Then 'nav
' CveCuenta = 188796
'End If
'If DdlSubProyectos.SelectedValue = "12755" Then 'hillo
' CveCuenta = 188795
'End If
'obtener la cuen
Using ObjConta As New ClsContabilidad
If ObjConta.GetAnexoCatalogo(CveCuenta, Fecha.ToDate(), Fecha.ToDate(), -1, -1, -1, UsuarioActual.CveEmpresa, 1) Then

View File

@@ -5585,6 +5585,9 @@ Partial Class Compras_Compras
Dim listalmacenes As List(Of Integer) = (From cvealmacen In DtInv.AsEnumerable() Where cvealmacen.Field(Of Integer)("cvealmacen") > 0 Select cvealmacen.Field(Of Integer)("cvealmacen")).Distinct().ToList
For Each tcvealmacen As Integer In listalmacenes
Dim ObsGDiaz As String = If(EsGrupoDiaz, TxtObsFact.Text, "")
If GvInv.Rows(indice).FCDropDownList("ddlrecibirinv").SelectedValue = "1" Then
Continue For
End If
@@ -5594,7 +5597,7 @@ Partial Class Compras_Compras
If Not UsuarioActual.Empresa.UsaAC Then fecha = NowADS()
folio = ObjInventario.GetFolioSiguiente(2, UsuarioActual.CveEmpresa)
cvemovimientoentrada = ObjInventario.AddMovimiento(tcvealmacen, 2, 1, fecha, folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero = 1, -1, TipoCambioGuardar), Modulo:="Comp/G4")
cvemovimientoentrada = ObjInventario.AddMovimiento(tcvealmacen, 2, 1, fecha, folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero = 1, -1, TipoCambioGuardar), Modulo:="Comp/G4", Observaciones:=ObsGDiaz)
If cvemovimientoentrada <= 0 Then
ErrorMovInv = True
Exit For
@@ -5618,7 +5621,7 @@ Partial Class Compras_Compras
'agregamos la salida
folio = ObjInventario.GetFolioSiguiente(3, UsuarioActual.CveEmpresa)
cvemovimientosalidagasto = ObjInventario.AddMovimiento(tcvealmacen, 3, DdlMoneda.SelectedValue.ToEntero, fecha.AddSeconds(1), folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, Modulo:="Comp/G3")
cvemovimientosalidagasto = ObjInventario.AddMovimiento(tcvealmacen, 3, DdlMoneda.SelectedValue.ToEntero, fecha.AddSeconds(1), folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, Modulo:="Comp/G3", Observaciones:=ObsGDiaz)
If cvemovimientosalidagasto <= 0 Then
ErrorMovInv = True
Exit For
@@ -5684,6 +5687,8 @@ Partial Class Compras_Compras
If (DdlTipoComprobante.SelectedValue = "Fac" AndAlso CveCompraRefacturacion <= 0) OrElse CveConceptoMovimiento = 13 Then
Dim ObsGDiaz As String = If(EsGrupoDiaz, TxtObsFact.Text, "")
For Each tCveAlmacen As Integer In ListAlmacenes
If GvInv.Rows(indice).FCDropDownList("DdlRecibirInv").SelectedValue = "1" Then
Continue For
@@ -5693,7 +5698,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", CveEntregaAlmacen:=tCveEntregaAlmacen)
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, Observaciones:=ObsGDiaz)
If CveMovimientoInventario <= 0 Then
ErrorMovInv = True

View File

@@ -1599,7 +1599,7 @@ Partial Class PopUpVerFactura
Dim Fecha As String = "", Nombre As String = ""
Dim OpcionDetallado As Integer = 1
If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa = 197 Then OpcionDetallado = 2
If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa.Contiene(197, 189) Then OpcionDetallado = 2
Dim ConsultaPorSucursal As Boolean = UsuarioActual.Empresa.Funcionalidad(382) = "1"
@@ -1628,7 +1628,6 @@ Partial Class PopUpVerFactura
End If
End If
If DtCortesVentas.Rows.Count > 0 Then
Dim RowInfo As DataRow = DtCortesVentas.FiltroPrimero("CveVenta > 0")
@@ -1639,7 +1638,7 @@ Partial Class PopUpVerFactura
End If
If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa = 197 Then
If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa.Contiene(189, 197) Then
If ConsultaPorSucursal Then
If ObjVenta.GetVta_ReporteCortes(UsuarioActual.CveEmpresa, FechaConsulta, FechaConsulta, CveSubProyecto) Then
DtReporteCorte = ObjVenta.DtResultados.FiltraParametros("FechaInicial IS NOT NULL")
@@ -1693,7 +1692,7 @@ Partial Class PopUpVerFactura
params.Add(New ReportParameter("AgrupoPor", $"{FechaCorte}{Usuario}"))
params.Add(New ReportParameter("LogoPath", RutaImagenLogo))
If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa = 197 Then
If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa.Contiene(189, 197) Then
If DtReporteCorte IsNot Nothing Then
Dim dtDatos = DtReporteCorte.Clone()
dtDatos.ImportRow(DtReporteCorte.Rows(0))
@@ -1839,21 +1838,29 @@ Partial Class PopUpVerFactura
lrds.Add(rds5)
If UsuarioActual.CveEmpresa.Contiene(197, 193) Then
If UsuarioActual.CveEmpresa.Contiene(197, 193, 189) Then
Dim CveCuenta As Integer = -1
If UsuarioActual.CveEmpresa = 193 Then
CveCuenta = 186367
Else
CveCuenta = 0
If CveSubProyecto = 12756 Then 'nav
CveCuenta = 188796
End If
If CveSubProyecto = 12755 Then 'hillo
CveCuenta = 188795
End If
'obtener relación contable
Dim objC As New ClsContabilidad
If objC.GetCuentasAsignaciones(UsuarioActual.CveEmpresa, 30) Then
'obtengo la cvecuentabancaria
Dim tCveBancoCuenta As Integer = GlobalDTBancosCuentasGral(UsuarioActual.CveEmpresa, Estatus:=-1, CveTipoCuenta:=1).FiltroPrimeroValor("CveCuenta", $"CveSubProyecto = {CveSubProyecto}").ToEntero
CveCuenta = objC.DtResultados.FiltroPrimeroValor("CveCuenta", $"CveBancoCuenta = {tCveBancoCuenta}").ToEntero
End If
objC.Dispose()
'If UsuarioActual.CveEmpresa = 193 Then
' CveCuenta = 186367
'Else
' CveCuenta = 0
' If CveSubProyecto = 12756 Then 'nav
' CveCuenta = 188796
' End If
' If CveSubProyecto = 12755 Then 'hillo
' CveCuenta = 188795
' End If
'End If
If CveCuenta >= 0 Then
Using ObjConta As New ClsContabilidad
@@ -1868,7 +1875,6 @@ Partial Class PopUpVerFactura
Dim rdsDepositos As New ReportDataSource With {.Name = "DsDepositos", .Value = DtDepositos}
lrds.Add(rdsDepositos)
End If
End If
'params.Add(New ReportParameter("VentasCorte", RowCorte("VentasCorte").ToString()))
@@ -1885,7 +1891,6 @@ Partial Class PopUpVerFactura
Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = DtCortesVentas}
lrds.Add(rds2)
ImprimirPDF(DirFormato, lrds, params, "ReporteCortes", Formato)
End If
@@ -3092,11 +3097,9 @@ Partial Class PopUpVerFactura
params.Add(New ReportParameter("Folio", Folio))
params.Add(New ReportParameter("FacturaProveedor", If(CveCompra > 0, dr("SerieFolio").ToString, "")))
If UsuarioActual.CveEmpresa.Contiene(72, 80) Then
params.Add(New ReportParameter("Fecha", String.Format("{0} {1}", FechaHora.ToDate.ToString("yyyy-MM-dd"), FechaHora.ToDateTime.ToString("HH:mm:ss"))))
Else
params.Add(New ReportParameter("Fecha", Fecha))
End If
params.Add(New ReportParameter("Fecha", String.Format("{0} {1}", FechaHora.ToDate.ToString("dd/MM/yyyy"), FechaHora.ToDateTime.ToString("HH:mm:ss"))))
If UsuarioActual.CveEmpresa = 72 Then
params.Add(New ReportParameter("CveTipoAlmacen", CveTipoAlmacen.ToString()))
@@ -3120,13 +3123,24 @@ Partial Class PopUpVerFactura
params.Add(New ReportParameter("TelefonoProveedor", If(CveCompra > 0, dr("Telefono").ToString, "")))
params.Add(New ReportParameter("ContactoProveedor", If(CveCompra > 0, dr("ContactoNombre").ToString, "")))
params.Add(New ReportParameter("ImporteLetra", String.Format("({0})", DtMovimientos.SUM("Total").ToString.ToDecimal.Texto2Letras(CveMoneda).ToUpper)))
params.Add(New ReportParameter("SubTotal", If(CveCompra > 0, (dr("SubTotal").ToString.ToDouble).FormatoNumero, "")))
params.Add(New ReportParameter("SubTotal", If(CveCompra > 0, (dr("SubTotal").ToString.ToDouble - dr("Descuentos").ToString.ToDouble).FormatoNumero(2), "")))
params.Add(New ReportParameter("Descuentos", If(CveCompra > 0, (dr("Descuentos").ToString.ToDouble).FormatoNumero(2), "")))
params.Add(New ReportParameter("IVA", If(CveCompra > 0, (dr("IVA").ToString.ToDouble).FormatoNumero, "")))
params.Add(New ReportParameter("Total", If(CveCompra > 0, (dr("Total").ToString.ToDouble).FormatoNumero, "")))
params.Add(New ReportParameter("FechaFactura", If(CveCompra > 0, dr("Fecha").ToString.ToDate().ToString("dd/MM/yyyy"), "")))
params.Add(New ReportParameter("SerieFolio", If(CveCompra > 0, dr("SerieFolio").ToString, "")))
params.Add(New ReportParameter("Moneda", If(CveCompra > 0, dr("Moneda").ToString, "")))
params.Add(New ReportParameter("Condicion", If(CveCompra > 0, (((dr("FechaVencimiento").ToString.ToDate - dr("Fecha").ToString.ToDate)).TotalDays).ToString, "")))
params.Add(New ReportParameter("Saldo", If(CveCompra > 0, dr("Saldo").ToString.ToDouble.FormatoNumero(2), "")))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
params.Add(New ReportParameter("NombreEntrego", String.Format("REVISÓ ALMACÉN{0}{1}", vbCrLf, Recibio)))
params.Add(New ReportParameter("NombreRecibio", String.Format("RECIBIÓ ALMACÉN{0}{1}", vbCrLf, Recibio)))
params.Add(New ReportParameter("FechaVencimiento", If(CveCompra > 0, dr("FechaVencimiento").ToString.ToDate().ToString("dd/MM/yyyy"), "")))
params.Add(New ReportParameter("NombreCapturo", If(CveCompra > 0, dr("NombreCapturo").ToString, "")))
Else
params.Add(New ReportParameter("NombreRecibio", String.Format(Recibio)))
params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo)))

View File

@@ -302,138 +302,154 @@
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" data-sort="true" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" GridLines="None" AutoGenerateColumns="False" EmptyDataText="No se encontraron Ventas con los filtros especificados" ToolTip="Listado de Compras">
<Columns>
<%--0--%>
<asp:TemplateField ItemStyle-Width="60">
<HeaderTemplate>
Fecha
Fecha
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlFecha" runat="server" Text='<%# Eval("Fecha", "{0:d}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--1--%>
<asp:TemplateField ItemStyle-Width="100">
<HeaderTemplate>
Serie/Folio
Serie/Folio
</HeaderTemplate>
<ItemTemplate>
<asp:HyperLink ID="HplSerieFolio" runat="server" Text='<%# Eval("SerieFolio") %>' CssClass="Texto" NavigateUrl='<%# Eval("CveCompra", "/Compras/Compras.aspx?CveCompra={0}") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<%--2--%>
<asp:TemplateField ItemStyle-Width="100" Visible="False">
<HeaderTemplate>
Folio Fiscal
Folio Fiscal
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlFolioFiscal" runat="server" Text='<%# Eval("FolioFiscal") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--3--%>
<asp:TemplateField ItemStyle-Width="20">
<HeaderTemplate>
Cant.
Cant.
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlCant" runat="server" Text='<%# Eval("Cantidad", "{0:N0}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--4--%>
<asp:TemplateField ItemStyle-Width="80">
<HeaderTemplate>
SubTotal
SubTotal
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlSubTotal" runat="server" Text='<%# Eval("SubTotal", "{0:N2}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--5--%>
<asp:TemplateField ItemStyle-Width="80">
<HeaderTemplate>
IVA
IVA
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlIVA" runat="server" Text='<%# Eval("IVA", "{0:N2}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--6--%>
<asp:TemplateField ItemStyle-Width="80">
<HeaderTemplate>
IEPS
IEPS
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlIEPS" runat="server" Text='<%# Eval("IEPS", "{0:N2}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--7--%>
<asp:TemplateField ItemStyle-Width="80">
<HeaderTemplate>
Descuentos
Descuentos
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlDescuentos" runat="server" Text='<%# Eval("Descuento", "{0:N2}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--8--%>
<asp:BoundField DataField="RetIVA" HeaderText="Ret IVA" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
<%--9--%>
<asp:BoundField DataField="RetISR" HeaderText="Ret ISR" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
<%--10--%>
<asp:TemplateField ItemStyle-Width="80">
<HeaderTemplate>
Total
Total
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlTotal" runat="server" Text='<%# Eval("Total", "{0:N2}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--11--%>
<asp:TemplateField ItemStyle-Width="60">
<HeaderTemplate>
Moneda
Moneda
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlUM" runat="server" Text='<%# Eval("Abreviatura")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--12--%>
<asp:TemplateField ItemStyle-Width="200">
<HeaderTemplate>
Proveedor
Proveedor
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlProveedor" runat="server" Text='<%# Eval("RazonSocial") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--13--%>
<asp:TemplateField ItemStyle-Width="30">
<HeaderTemplate>
Folio Inv
Folio Inv
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlFolioInv" runat="server" Text='<%# Eval("FolioInv") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--14--%>
<asp:TemplateField ItemStyle-Width="60">
<HeaderTemplate>
Fecha Movimiento
Fecha Movimiento
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlFechaInv" runat="server" Text='<%# Eval("FechaInv", "{0:d}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--15--%>
<asp:TemplateField ItemStyle-Width="60">
<HeaderTemplate>
Observaciones
Observaciones
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlObs" runat="server" Text='<%# Eval("Observaciones") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Descripcion" ItemStyle-Width="100px" HeaderText="Descripción" />
<%--16--%>
<asp:TemplateField Visible="false">
<HeaderTemplate>
Descripción
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlDescripcion" runat="server" Text='<%# Eval("Descripcion") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--17--%>
<asp:TemplateField Visible="false">
<HeaderTemplate>
Almacén
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlAlamcen" runat="server" Text='<%# Eval("Almacen") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
@@ -521,7 +537,9 @@
<asp:CheckBox ID="ChkFolioInv" runat="server" Text="Folio Inv" /></td>
<td>
<asp:CheckBox ID="ChkFecha" runat="server" Text="Fecha Movimiento" /></td>
<td></td>
<td>
<asp:CheckBox ID="ChkAlmacen" runat="server" Text="Almacén" /></td>
</td>
</tr>
<tr>
<td>

View File

@@ -380,7 +380,19 @@ Partial Class Compras_RepComprasDetalle
params.Add(New ReportParameter("FechaImpresion", NowADS().ToString))
params.Add(New ReportParameter("AgrupadoPor", $"<b>Agrupado Por:</b> {Grupo}{Proveedor}{Capturo}{FechaIn}{FechaFn}{FechaCIn}{FechaCFn}{Proyecto}{SubProyecto}{TipoGasto}{TipoProveedor}{TipoDocto}"))
params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
ImprimirPDF("Empresas/Grales/Formatos/RepComprasDetalle.rdlc", DtDatos, params, "ReporteComprasDetalles", Opcion)
Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos\RepComprasDetalle.rdlc", UsuarioActual.Empresa.Ruta))
If Archivo.Exists Then
ImprimirPDF(Archivo.FullName, DtDatos, params, "ReporteComprasDetalles", Opcion)
Else
ImprimirPDF("Empresas/Grales/Formatos/RepComprasDetalle.rdlc", DtDatos, params, "ReporteComprasDetalles", Opcion)
End If
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
@@ -463,6 +475,7 @@ Partial Class Compras_RepComprasDetalle
GvDatos.Columns(14).Visible = ChkFecha.Checked
GvDatos.Columns(15).Visible = ChkObs.Checked
GvDatos.Columns(16).Visible = ChkDescripcion.Checked
GvDatos.Columns(17).Visible = ChkAlmacen.Checked
Personalizo = 1
If Personalizo = 1 Then

View File

@@ -23,9 +23,9 @@
</Paragraphs>
<rd:DefaultName>PS</rd:DefaultName>
<Top>0.14111cm</Top>
<Left>2.48778cm</Left>
<Height>1.1761cm</Height>
<Width>6.93443cm</Width>
<Left>2.49661cm</Left>
<Height>1.11613cm</Height>
<Width>6.06038cm</Width>
<Style>
<Border>
<Style>None</Style>
@@ -186,10 +186,10 @@
<Source>Embedded</Source>
<Value>Logo</Value>
<Sizing>FitProportional</Sizing>
<Top>1.5468cm</Top>
<Left>8.2016cm</Left>
<Top>1.40569cm</Top>
<Left>8.55699cm</Left>
<Height>0.74287cm</Height>
<Width>1.52823cm</Width>
<Width>1.19402cm</Width>
<ZIndex>6</ZIndex>
<Style>
<Border>
@@ -197,6 +197,21 @@
</Border>
</Style>
</Image>
<Image Name="Image1">
<Source>Embedded</Source>
<Value>ImagendeWhatsApp20241231alas090549_f3f7f850</Value>
<Sizing>FitProportional</Sizing>
<Top>0.25428cm</Top>
<Left>8.55699cm</Left>
<Height>1.11613cm</Height>
<Width>1.19402cm</Width>
<ZIndex>7</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
</ReportItems>
<Height>0.92351in</Height>
<Style>
@@ -250,6 +265,183 @@ n5+QzvCe4J7tvEkKhS1mXYZm4hFi0PuGNBlQQyDX7jan0Pa3ES7zUNmCV6S1tdk/JVwAeXGMCFjxd+f+
VO81MNBExHyPQQai25ygCYWWpiH5tK8Uip0PmPTehMs+yDCpjzI9EbOZI6D/TPIq10bIFHWDJYZ4Wrsh/GuLNmnvDd5S+IM8Nt1rd008NHbylX80A+dAOswllTDpMwlXWB/Ji/0uSRcz1x6eVQoX0MohJMosHtNeFS37csGIhi9GRVtMD/SJQBlvTNrXhtQymL2QSBMPDRwjxyOvPXfJ45v++TFg9jUSronwGPGVY6ywODHGfpvREBMcbLv00j57DSjXlOH3H9NeSd4ZIRZ0PK1DV7FXw0MZuDHz21EGqJYPg9Rls4h4xKxUblkQovl8zL5GwgVBmZrDc4Z0X3BQpttXFi5PZP19+N9LV2z+1veRAUDHi3V4DRuWmE7pNvcUxYA2nkEgSKEXJhTekPG8XH6bzxMIoYlwWS8r+PbS2PkFk6eRcAG5VpRtz2OuAdu+aIGYcAGvnqV9ONekXDGUr7QNISpNhMsNxOgA2UvA40S7pXqeXXioTc7fhq7OARHs6xrILiTlSWef9HtwXosQMlJShGuvzmsRQkZKnXAxRCSEjI4q4bLzEN7rb0IIGQVVwgVPa6++RSSEjJiYcDFEJISMlphwhaubCSFkNGhrubQ0QggZDaFIcUKeEDJ6QuHihDwhZPRgYal8uNX/nxBCRo1M0HOFPCFkboBwcfkDIWSuOHbgD9+979ALr3H5AyFkLlhdWruyurR+fXXf+o9X920wTCSEjJ+VpbV7rXAtrb+3vLjBt4mEkPGDpRDHDnztabdJCCHjp+pD1oQQMjrCxaeEEDJ66G0RQuYKeluEkLmD3hYhZK7gKnlCyFzg1mtdxZqt+2954r1jd754k9tFCCHjAyvijWBtu4Wmztamfn2YEEJGw8rS+omyaBXmdhNCyPjwPtZD4SKEzA9GqOz8ltjK4voFt4sQQsbJPTds3GhDxsX186uLa/yWU0IIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQ
QgghhBBCyJ5lYeH/Aev8eE4+mU6OAAAAAElFTkSuQmCC</ImageData>
</EmbeddedImage>
<EmbeddedImage Name="ImagendeWhatsApp20241231alas090549_f3f7f850">
<MIMEType>image/jpeg</MIMEType>
<ImageData>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
hyxTFq1e7ImreSMcjZZKv1JsEXjHGB0ondgsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJMVbyyRyIx0a0a3RJnvcLY1e1V5HN0c/qLS1bVhyETzCqfhLKn0JAY5CtarLEo4G7I50vEDs45NEvy9Xi1WZ4KyE1WbInKJloYjvfCLLtxyWxr9ixRV0txnK6+ojp/ZmAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABw9wqqVikbpCJIlYzECROiRFgAABpNzj4EbooFhi50BMVFWmARy9PMRIx/gdumfNgWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3SIXmsZFa3zw4u0SAAAAhZqKRFMuk5OuQ7zHISABwck0RDdMgPPRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAgADAAAAIfPPPPPPPPPPPPPPPPPPPPPPPPPKNPPOMOPvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPMb59PO0nqvPPPPOctfPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOM/PEV7NvOQNivPPPPOYaNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPON/vLI9PCHflPOGomvPPPP8PLHfO/8AXzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzwQQjzzL/z/Gp7z+7x3zzzzsmBnz0t0zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyFbmny7nzzzzzj7XXHD/AE888w/8jYn889c88888888888888888888888888880888v6sw884755398tf2aJXd3U8888NH+84oek888888888888888888888888888Six88tO838gM
OIMKLwwstBo8CN8Ll88O18yNT+888888888888888888888888888BU8s88znH3ev/e84QjId0sy8iE82n8E088GJ9v88d88888888888888888888/c8897NM87Vtc8+9/3298/jKbS88Z00B48Jl898+d888db8888888888888888889xR88tG8hWurxoELOHGIgU88PfMR8snWoKWtHx8A9c8849Q288888888888888888bet5A889g68ZrXG8PNMO5Z21/tRwxpPy4u55obOH888kpc888888888888888888888SFM818NOWvm98+3z+59sfg5ytD536w8SVIqje8wcc8d888p38888888888888qe884k8tG79Ih8SmoLKHDMxV09/eVtCVaLanjgv8AOmS95fPPPKaHPPPPPPPPPPPPPLz39POavMQPTyt7ilJrfHTv/fPPPPPD3nIy/b/OwY61/POEPFCvfPPPPPPPPPPPPPPLS+vC0tqp07SIPMrHfPPPPPPPPPPPPPLLHfM47gR/faIAkPDPPOM3fPPPPPPPPEGNPPPOPBn/ABc308hyl13zzzzzzzzzzzzzzzzygHZR3mek7r/zXTyoVWH3zzzzzzzmRX/7zM7zwrfsb2xOPzzzzzzzzzzzzzzzzzzzzz1zj9YPB/z7W8TyC6O/zzzzzzzzTCkrPxDru0njztTx93zzzzzzzzzzzzzzzzzzzzzzzsoj7zMSOv8Ac488t888888888tL6f8APONYNew9uymvPPPPPPPPPPPPPPPPPPPPPPPPPLPOtt4ZnfcM/fPOZm/PPPPPPPLLvHWAx8LRqfBPfPPPPPPPPPPPPPPPPPPPNdffPPPOnfbXed6RpmvJiorvPPPPPPPPPMjBH1UNOAuPPPPPPPPPPPPPPPPPEvPPPBTFfPPPPPfPMyhz0qf9VLPPPPPPLOnKQfPPPfIQ9LK7fPPPPPPPPPPPPPPPEnk/PPCgtfPP
PPPLNi9D8lfOU/PPd8fPPPDQnPPAc/AtzdNffPPPPPPPPNHPPPPDVAw20r2LbfPPPPPPPAsTfTKteifK6qWHPPPLGf8AyTQM13z4NHzzzzzzzzzxfzzzzz488888+jzzzzzzzzzzyuNXsDXsP0B3yZbzzzzz/wA88886xpLS8888888888e8884+fu00888o88888888888sjZtK2sCX7fcL88966x86vDHYLHWuc8888888888wn8xfyyy/u088o888888888888AS8D1oCW8sc888I/wDI1eQsU/XGey/PPPPPPPPPOv3PHt3PPHf+vPKPPPPPPPPPPPOAnOY/+CvvPfPPPJlH1vfPPPPOJQ4fPPPPPPPPL1Y/LfnfPPPG/wDzyjzzzzzzzzzzzsBT6Pz6TXzG9f8A9+cHt8poS94+2/8APPPPPPPPPPgg/ffvPPPPPK/LBvPPPPPPPPPPLTXPUnfOnfPC+JcvPPPPEKv+eBTudPPPPPPPPPPLi9ePkfPPPP6/P7dvPPPPPPPPPPDOdJfLEfNe31fPPPPNfHffBUpOTVvPPPPPPPPPPLFvHr0fOPfxfPw7fvPPPPPPPPPPK09qg1vfbPPPPKjiUPM1/wAMTw/JbzzzzzzzzzzxfzyxL+//AL/L0/DH28888888888qiT8kR92+88888eoTV8L8QRdqPf8APPPPPPPPPPPF/PPLPfDTbc1fy9PPPPPPPPPPPLZveC1vIn/jv5vAzl+PNLQ9OUNfNPPPPPPPPPPPP/PPPPPPPPPPO4fPPPPPPPPPPPI3epVnIhnbW3Pv/PPPPPPKFOr1r/fPPPPPPPPPPGwggggggggggjR/PPPPPPPPPPPHP/pX+kXd7fS8DPPPPPPCb/FJ/OvfPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPIaaZ+AitF/LHPPPLV7PfMF/AWvCfvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPCzHfPPP
PPM/PPPKbfDF/CteY1+A1vPPPPPPPPOOfPPPPO8dPPfPPPPPMvPPPPPPPKXu/q5AikvLEf8Azzhn/wD88CcoC3oC2888888884Jvi0888qxd86d88888f88888888rs/nyNvPe88lf288Ou988p88KUpL/8APPPPPPPO/fPoWSNAlN6FfRjurInPPPPPPPLa8PHfPPPPLp1dzPPPPPPPJgvCNvD4+NPPPPPPPV/OV+ElwvhFupZ71f3H/PPPPPPLC0+fC8zV/fPPPPPPPPPPPLe/I6fDQo2dPPPPPKzcSy/tEwtl9uz/APt371HzzzzzzrSjfAvsqy/zzzzzzzzzzzzzwL+kPyg//Vzzzzzzxxx++1/6z527x75829/3zzzzz3N7wgB7zzzTzzzzzzzzzzzzzwoyY4rv/wA44W888888888888888888888888888888F69IjZVzIc88888888888888tivBf99kgvL8888888888888888888888888888geq72tFDxHP8APPPPPPPPPPPPPPPLTfeZ+Suv/OPPPPPPPPPPPPPPPPPPPPPPPPPPPbsvNaNTgHPPPPPPPPPPPPPPPPPPPPfyhwb/AD4U87zzzzzzzzzzzzzzzzzzzzzzzh/y056ubTyrtzzzzzzzzzzzzzzzzzzykMB7zcSO/wDc40888888888888888888888vH/8ATAfFgPHBfPPPPPPPPPPPPPPPPPPPPPMljpdnfeOXafPPPPPPPPPPPPPPPPPPzPORNTyt/g/LPPPPPPPPPPPPPPPPPPPPPPCe9VPfczQnr/JVuPPPPPPPPPPPPPPPKG9uo+/ZMPEu/PPPPPPPPPPPPPPPPPPPPPPLFnPJ8imDvNaSwwoqtOPtfPNtBefOPJ61vMzfb7NOXvPPPPPPPPPPPPPPPPPPPPPPPPK4i5bvM3K5fm4dxg/Ga8fXcYCxwglCI9+xmfG8/PPPPPPPPPPPPPPPPPPP
PPPPPPPLLffPki0g6/7Q1Oqk/Kpt9PLLXH3fIqvPO/PC/vPPPPPPPPPPPPPPPPPPPPPPPPPPPPOCFqblrS2bCM7Oq8/KF3rpd8duCM4o9ugl/PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPDjXPJvGb/GU/PDghtPPGbRjBhq1fSCPDvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHD/bBPI0fNfK44FffPHHnXfPaQr/AHzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzy37zt9Xy3yHn3/ALqazd732tRZCu885888888888888888888888888888888888807888vWd8h8qDK28cbINOGHDcM888lv1888888888888888888888888888888888/wBuOefPPLyvNc37HeffPLbffPNPdOX/AM/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzx79x/vq7zzzzzzzzwy1zzzzzzy33e72W3/AB8888888888888888888888888888884fis328+89fP6088881988Gv78+up3U8s2/088888888888888888888888888888e7c8Z/Yt9++p3+888H2v59/tXq2v8e/88t/V8888888888888888888888888888seOpvV9/wBeP/PF/wDzzn/Tf6jvzfun7T27zzx3zzzzzzzzzzzzzzzzzzzzzzzzzzzzzyzzxYq37z6vzxa/zy39nevn/WjzVfqzrzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyz7Pvz7/Tj+bzyxLL6/j7Tm7S3L73zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzZ//APc8888x++8WuPj888888888888888888888888888888888888888888888888sd9888889yy88sd9888888888888888888888888888888888888888888888
888888888888g88888888888888888888888888888888//aAAwDAQACAAMAAAAQ888888888888888888888888888+88+x4y88888888888888888888888888888888888888888888888888888888pCq38vs8o888888+888888888888888888888888888888888888888888888r488s9b18+I+U888882G888888888888888888888888888888888888888888398svf8oe0c8u5s58888p78c98+y288888888888888888888888888888888888uf488dV8vti988++d8888tqx184eO988888888888888888888888888888888888u04k86B888888y/wBvd+NPPDJ3PPpKXPP2PPPPPPPPPPPPPPPPPPPPPPPPPPPPN/8Azyz+WHzzjrv/AK88ttxWwY9oB8088Kyx84kCm88888888888888888888888888860/88ucc42JNPJdBo16s+mS8AR8c+88sc8twQq888888888888888888888888888Hp9l881HtwcPM8d4Uri3/vl81E8UK8v388Y8zc87f8APPPPPPPPPPPPPPPPPPPOGvPLFDrvL55vPOPu8cvvLIIenrPKIvNmfIqPOfOtPPLGvfPPPPPPPPPPPPPPPPPPwNvPLZPKlb9/ZmIjyxyVicvL0vv/AD91XpDSsrtc/RzzyZcbTzzzzzzzzzzzzzzzzw30rUPzz0drzyLXO+wz46jRBfyy09D8JrsHKqKUDp7zy3p/zzzzzzzzzzzzzzzzzzzzyanzs7x3BzuJXz3n/Hn3ykd3awR3Tkbyu5Aa93z2Dm//AM88y68888888888888ne88ac8soZ8vQ8bBCjPOONgZ0+gdWuItO1fTH4u83SjHO88889H+8888888888888fQf088V8AU9O
F29GTlf8Me9t888888vhpHCjf81IKW88/wAFPJ9PfPPPPPPPPPPPPPPLJr/C2de6ureCPPGt/PPPPPPPPPPPPPLHD/OKrVF/fNYQIPD/ADzqLLzzzzzzzzxFD/zzzu+g/wArg2J6V6dd88888888888888888rLpM89jgiKc84/42p9Y088888889n2K88jd8sk/9C1syd888888888888888888888t/wCNcjsH/PqhhfIPO/dvPPPPPPE7sHEPH2HLbzfDqtrvPPPPPPPPPPPPPPPPPPPPPPPDzT7vO2SsnHOPPDfPPPPPPPPPSrMvPO3PND3VuD9fPPPPPPPPPPPPPPPPPPPPPPPPPLvPZ3OVPfPJPPPPcEPPPPPPPPL7vo9KU/fSr/P/AHzzzzzzzzzzzzzzzzzzzzPP3zzzz1JXRz3IxTjrzoYIzzzzzzzzzzzjyWwSbepZbzzzzzzzzzzzzzzzz+vTzzzBJ7zzzzw//wAt/KDiri9PO888888tZn9l888986ub8dF888888888888888/RIm088yy3888888xlGI+y/wDAGfPOPs/PPL6UBvLQKHQ4q9t7/PPPPPPPPDXffffS0zzxEhm/XPPPPPPPOGGo/PTX6WvPgvR3vPPPPD/PAix7HKa+vPPPPPPPPPP/ADzzzy+4447+yrzzzzzzzzzzyrr7kFerNdbTyH7zzzzwzzzzzjfP2srzzzzzzzzzz7DzziU0xPzzzyrzzzzzzzzzzzyBS2r/ALjd5d/B88424386hC7KCMG5+8888888888AK87/AKvHOntPPKvPPPPPPPPPPPI+fIPbg1vLHPPPMnDBNeA4E/7eJEPPPPPPPPPPIzF+Du3PPL0sfPKvPPPPPPPPPPOCRbQtqy9PNfPPPBZTs/PPPPPO6I//ADzzzzzzzz+Mv+9/fzzzwH7zyrzzzzzzzzzzzwH3q72qRXyZSzXL1kwTx4SVf50j3zzzzzzzzzxsAr6v
tTzzzzu/yiXzzzzzzzzzzyxxznlyRxTzz8h83zzzzzEqXlqvbn3zzzzzzzzzwsH7j/rzzzym/wAoxT88888888888c5Mc8DW897He/8APPPNfLBPM3XfYV/PPPPPPPPPPBfvNbkfOPvtvKK0OvPPPPPPPPPPIs1uA/8Aj27/AM88SIeC8s3+LH84Vc88888888888/c8sNjvu2+n8orLH8888888888nla8EN+1+88888v7Ew8L8cx8kKX888888888888/8888/POttuWonM88888888888wc8hNu4Meu/koy8fju8dqjU5DN8888888888888X88888888888p/wDPPPPPPPPPPPGX+QnPIrHegj/QvPPPPHJUtrC/7/8AzzzzzzzzzzwrLLLLLLLLLLKMfzzzzzzzzzzzxzhLlzhIf+xYyczzzzzzwxXx2jzDDzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzuSkXwa8xfyw9zzpQY3Xxg7yGHwLjzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyL5/zzzzzzfzzzz0bxf/wmbsL68J3zzzzzzzzzz7zzzz3HLTzvfzzzzz7zzzzzzzzbZjHJv9bPzsfzzy0pex/wFy4PyoPTzzzzzzzztC7bzzygr5zy/wB88888e88888888DNADkY/Ma8/Ksw88tf988D28KcuCX888888887l8tnkhBDIjDKRj60aO38888888vitkf8APPPPKpWq9PPPPPPPHB/KS/CgvP8Azzzzzz7bzllmGsOpIeozuhgrx7zzzzzzz4T/AJ7u91jd8888888888884D8WV8ptg+088888rywAM4vuHnS85RewMB8b888888289dwCmuXd88888888888888+d8DYVmDuc888888tsd89dvdMce/esNue//wDPPPPOb0L523vPONPPPPPPPPPPPPPPOJ+DSwtPP43PPPPPPPPPPPPPPPPPPPPP
PPPPPPPPPIJ/XfWjqsfPPPPPPPPPPPPPPPULHR3fKYKLvPPPPPPPPPPPPPPPPPPPPPPPPPPPNPft/rYxqyz/ADzzzzzzzzzzzzzzwp3z3MiQ5zzH7zzzzzzzzzzzzzzzzzzzzzzzzz0jfzATwrZ7zzzzzzzzzzzzzzzzzzz3Usog/wA26n3888888888888888888888888z09087q88ORd888888888888888888qALu8/5KiNc71888888888888888888888rDZ8DV8b+3qF88888888888888888888v81/11U988Rh5888888888888888888jQ8oQ1KF+sLT8c888888888888888888888cAdtc9vVq/c8vs5088888888888888rt17nytAY8MB88888888888888888888888sN/wDMUxsfPMA6hgv0N+NfPPPe+8uNaJy5vB4NuFna3PPPPPPPPPPPPPPPPPPPPPPPPPPfAnrvMsQ27F/byWPPUPtT7pwgwyUPrl7atfOgvPPPPPPPPPPPPPPPPPPPPPPPPPPLHLPOI4zwvdaA3q8c/CqAcfPPvXXPKQXfLkd+nfPPPPPPPPPPPPPPPPPPPPPPPPPPPPOKsWCurLBvL7LA9MvCcljxud9aODBAvqa9PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPDB39qPHePOHfLIDy/vH1AjzRzUZXzO/D3PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPKONaC/POPMvG6Ccc/LPnTnfOYn1vfPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPL1/wCFatLzd30yIoUgbvPTyVivzzzHzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzczzzy7Z+tTz06T7y77mI48fqz7zzy77Xzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzx6jz73Tzz7rwOJbobrzzy3z3zzDvz2frnzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzxmrS+P6rTzzzzzzy/4xzzzzzzyJWY7V+69vzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyjqDz5WjP/AP1mZ08888y184cC18KttWb88bb888888888888888888888888888888t+c8eGTtfeEu298887+u66ue6pIo88M88tna8888888888888888888888888888stdv21q+V/+88t688++0JYvr0hq6fU+/wBPPL/PPPPPPPPPPPPPPPPPPPPPPPPPPPPPLHLGhKt/1L/PFtvPL/k2fu//AHv3XKuevzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyzrbJxmLTh6nzywDLrbzdeu9S8qKbzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzxprprzzzzzd4Xw3d5Hzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzy67zzzzysIHzyw+9zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyDzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz/8QALxEAAgIBBAECBgMBAQADAQEAAQIAEQMQEiExBCAyEyIwQEFRFEJQYVIzQ3EjYP/aAAgBAgEBPwD7rEFA3NGNm9VG40I+Jl5OhxsBf+zjxlzKxpxDiVxawiuNMXvEI3cQrTVMvsPqAufCf9Qiv80cmZcKqtrrgHyx/cZ47c1My0dMPvEzMUqplXdTCZfYfViQIu4z+SbjoMi7v8oYmP4hUr3qnzpCKNaeMeCJmFNPH908g8jTD755H4mB+Npmb2n0oLYCZ2pa0XKyitcOMP3GwMORCCO/8TAg9xjeQb4j5gy1WvjN2szrTaI5Q2Jvx5BzPiIntjMWNnRWKmxHcv3AaNiNlZhR9KHa1zMu9bWJiZjMmPZoBc9i8RcrLHyq69c/4mE2sddrVALj4mQW
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</ImageData>
</EmbeddedImage>
</EmbeddedImages>
<rd:ReportUnitType>Cm</rd:ReportUnitType>
<rd:ReportID>272c4b43-6177-44f5-8699-9e315e3ec44e</rd:ReportID>

File diff suppressed because it is too large Load Diff

View File

@@ -179,22 +179,22 @@
<TablixBody>
<TablixColumns>
<TablixColumn>
<Width>1.24394cm</Width>
<Width>1.0835cm</Width>
</TablixColumn>
<TablixColumn>
<Width>1.60503cm</Width>
<Width>1.53251cm</Width>
</TablixColumn>
<TablixColumn>
<Width>1.69753cm</Width>
<Width>1.40148cm</Width>
</TablixColumn>
<TablixColumn>
<Width>8.73517cm</Width>
<Width>11.05821cm</Width>
</TablixColumn>
<TablixColumn>
<Width>2.34799cm</Width>
<Width>2.33994cm</Width>
</TablixColumn>
<TablixColumn>
<Width>1.57581cm</Width>
<Width>1.86685cm</Width>
</TablixColumn>
<TablixColumn>
<Width>1.96383cm</Width>
@@ -846,9 +846,9 @@
</TablixRowHierarchy>
<DataSetName>DsInventarios</DataSetName>
<Top>0.17639cm</Top>
<Left>0.12931cm</Left>
<Left>0.09756cm</Left>
<Height>0.74125cm</Height>
<Width>19.1693cm</Width>
<Width>21.24632cm</Width>
<Style>
<Border>
<Style>None</Style>
@@ -857,9 +857,9 @@
</Tablix>
<Line Name="Line3">
<Top>1.53162cm</Top>
<Left>0.17882cm</Left>
<Left>0.14707cm</Left>
<Height>0cm</Height>
<Width>19.11979cm</Width>
<Width>21.07279cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
@@ -967,7 +967,7 @@
</TablixRowHierarchy>
<DataSetName>DsInventarios</DataSetName>
<Top>1.63745cm</Top>
<Left>15.70179cm</Left>
<Left>17.67029cm</Left>
<Height>0.46771cm</Height>
<Width>3.572cm</Width>
<ZIndex>2</ZIndex>
@@ -996,9 +996,9 @@
</Paragraphs>
<rd:DefaultName>Textbox8</rd:DefaultName>
<Top>4.50934cm</Top>
<Left>0.16513cm</Left>
<Left>0.13338cm</Left>
<Height>0.97952cm</Height>
<Width>19.04079cm</Width>
<Width>21.08648cm</Width>
<ZIndex>3</ZIndex>
<Style>
<Border>
@@ -1030,7 +1030,7 @@
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Top>3.79469cm</Top>
<Left>0.16513cm</Left>
<Left>0.13338cm</Left>
<Height>0.60882cm</Height>
<Width>3.98167cm</Width>
<ZIndex>4</ZIndex>
@@ -1048,16 +1048,16 @@
<TablixBody>
<TablixColumns>
<TablixColumn>
<Width>1.96503cm</Width>
<Width>1.87234cm</Width>
</TablixColumn>
<TablixColumn>
<Width>5.43562cm</Width>
<Width>5.22297cm</Width>
</TablixColumn>
<TablixColumn>
<Width>7.7925cm</Width>
<Width>9.86336cm</Width>
</TablixColumn>
<TablixColumn>
<Width>1.85371cm</Width>
<Width>2.16521cm</Width>
</TablixColumn>
<TablixColumn>
<Width>2.07009cm</Width>
@@ -1413,11 +1413,15 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!Cargo.Value</Value>
<Value>=IIf(
Fields!Cargo.Value = 0,
"",
Format(Fields!Cargo.Value, "###,###,###.00")
)</Value>
<Style>
<FontFamily>MYRIAd Pro</FontFamily>
<FontSize>6.5pt</FontSize>
<Format>###,###,###.##</Format>
<Format>###,###,###.00</Format>
</Style>
</TextRun>
</TextRuns>
@@ -1445,11 +1449,15 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!Abono.Value</Value>
<Value>=IIf(
Fields!Abono.Value = 0,
"",
Format(Fields!Abono.Value, "###,###,###.00")
)</Value>
<Style>
<FontFamily>MYRIAd Pro</FontFamily>
<FontSize>6.5pt</FontSize>
<Format>###,###,###.##</Format>
<Format>###,###,###.00</Format>
</Style>
</TextRun>
</TextRuns>
@@ -1540,14 +1548,17 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value />
<Value>Total </Value>
<Style>
<FontFamily>MYRIAd Pro</FontFamily>
<FontSize>7.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox30</rd:DefaultName>
@@ -1569,12 +1580,16 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Sum(Fields!Cargo.Value)</Value>
<Value>=IIf(
Sum(Fields!Cargo.Value) = 0,
"",
Format(Sum(Fields!Cargo.Value), "###,###,###.00")
)</Value>
<Style>
<FontFamily>MYRIAd Pro</FontFamily>
<FontSize>7.5pt</FontSize>
<FontWeight>Bold</FontWeight>
<Format>###,###,###.##</Format>
<Format>###,###,###.00</Format>
</Style>
</TextRun>
</TextRuns>
@@ -1602,12 +1617,16 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Sum(Fields!Abono.Value)</Value>
<Value>=IIf(
Sum(Fields!Abono.Value) = 0,
"",
Format(Sum(Fields!Abono.Value), "###,###,###.00")
)</Value>
<Style>
<FontFamily>MYRIAd Pro</FontFamily>
<FontSize>7.5pt</FontSize>
<FontWeight>Bold</FontWeight>
<Format>###,###,###.##</Format>
<Format>###,###,###.00</Format>
</Style>
</TextRun>
</TextRuns>
@@ -1654,9 +1673,9 @@
</TablixRowHierarchy>
<DataSetName>DsPrePoliza</DataSetName>
<Top>2.33687cm</Top>
<Left>0.18166cm</Left>
<Left>0.14991cm</Left>
<Height>1.17898cm</Height>
<Width>19.11695cm</Width>
<Width>21.19397cm</Width>
<ZIndex>5</ZIndex>
<Style>
<Border>
@@ -1668,10 +1687,10 @@
<Height>2.16097in</Height>
<Style />
</Body>
<Width>7.60322in</Width>
<Width>8.4031in</Width>
<Page>
<PageHeader>
<Height>4.51267cm</Height>
<Height>5.22528cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
@@ -1697,7 +1716,7 @@
</Paragraphs>
<rd:DefaultName>Textbox34</rd:DefaultName>
<Top>0.07056cm</Top>
<Left>9.3683cm</Left>
<Left>11.4003cm</Left>
<Height>0.6cm</Height>
<Width>9.85131cm</Width>
<Style>
@@ -1781,6 +1800,114 @@
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha de Factura:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
<TextRun>
<Value>=Parameters!FechaFactura.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Folio:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
<TextRun>
<Value>=Parameters!SerieFolio.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Moneda:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
<TextRun>
<Value>=Parameters!Moneda.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Orden de Compra:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
<TextRun>
<Value>=Parameters!OCVinculada.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
@@ -1837,9 +1964,9 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox2</rd:DefaultName>
<Top>2.5527cm</Top>
<Top>1.9177cm</Top>
<Left>0.18166cm</Left>
<Height>1.87883cm</Height>
<Height>3.30758cm</Height>
<Width>10.47411cm</Width>
<ZIndex>1</ZIndex>
<Visibility>
@@ -1865,7 +1992,6 @@
<Value>Folio</Value>
<Style>
<FontFamily>Myriad Pro Light</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
@@ -1873,7 +1999,6 @@
<Value>: </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
@@ -1881,7 +2006,6 @@
<Value>=Parameters!Folio.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
<Color>Red</Color>
</Style>
@@ -1916,7 +2040,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha: </Value>
<Value>Capturo:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
@@ -1924,33 +2048,11 @@
</Style>
</TextRun>
<TextRun>
<Value>=Parameters!Fecha.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<Format>d</Format>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Folio Factura del Proveedor: </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value>=Parameters!FacturaProveedor.Value</Value>
<Value>=Parameters!NombreCapturo.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Normal</FontWeight>
</Style>
</TextRun>
</TextRuns>
@@ -1961,8 +2063,8 @@
</Paragraphs>
<rd:DefaultName>Textbox50</rd:DefaultName>
<Top>0.74112cm</Top>
<Left>4.57254cm</Left>
<Height>1.70222cm</Height>
<Left>6.60454cm</Left>
<Height>1.25419cm</Height>
<Width>14.64707cm</Width>
<ZIndex>2</ZIndex>
<Style>
@@ -1979,10 +2081,10 @@
<Source>Embedded</Source>
<Value>Logo2</Value>
<Sizing>FitProportional</Sizing>
<Top>0.04187cm</Top>
<Left>0.05091in</Left>
<Height>0.91907in</Height>
<Width>1.74231in</Width>
<Top>0.07056cm</Top>
<Left>0.25918in</Left>
<Height>0.72671in</Height>
<Width>1.56919in</Width>
<ZIndex>3</ZIndex>
<Style>
<Border>
@@ -1990,6 +2092,251 @@
</Border>
</Style>
</Image>
<Textbox Name="Textbox4">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha de Entrada:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha Vencimiento:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Condición:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Importe:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>IVA:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Total:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Saldo:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox2</rd:DefaultName>
<Top>2.13642cm</Top>
<Left>14.8163cm</Left>
<Height>2.87013cm</Height>
<Width>3.38481cm</Width>
<ZIndex>4</ZIndex>
<Visibility>
<Hidden>=Parameters!CveTipoAlmacen.Value = "19"</Hidden>
</Visibility>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox10">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!Fecha.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<Format>d</Format>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!FechaVencimiento.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!Condicion.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!SubTotal.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!IVA.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!Total.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!Saldo.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox2</rd:DefaultName>
<Top>2.13642cm</Top>
<Left>18.06883cm</Left>
<Height>2.87013cm</Height>
<Width>3.15103cm</Width>
<ZIndex>5</ZIndex>
<Visibility>
<Hidden>=Parameters!CveTipoAlmacen.Value = "19"</Hidden>
</Visibility>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
@@ -1998,7 +2345,7 @@
</Style>
</PageHeader>
<PageFooter>
<Height>2.08167cm</Height>
<Height>2.34625cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
@@ -2006,7 +2353,7 @@
<Top>1.1404cm</Top>
<Left>0.05012cm</Left>
<Height>0cm</Height>
<Width>19.16949cm</Width>
<Width>21.20149cm</Width>
<Style>
<Border>
<Color>#0e2455</Color>
@@ -2041,10 +2388,6 @@
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox18">
@@ -2076,10 +2419,6 @@
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox20">
@@ -2101,7 +2440,7 @@
</Paragraphs>
<rd:DefaultName>Textbox12</rd:DefaultName>
<Top>1.22061cm</Top>
<Left>7.7587cm</Left>
<Left>8.7112cm</Left>
<Height>0.44125cm</Height>
<Width>2.68521cm</Width>
<ZIndex>3</ZIndex>
@@ -2137,7 +2476,7 @@
</Paragraphs>
<rd:DefaultName>Textbox18</rd:DefaultName>
<Top>1.22061cm</Top>
<Left>10.44391cm</Left>
<Left>11.39641cm</Left>
<Height>0.44125cm</Height>
<Width>3.44953cm</Width>
<ZIndex>4</ZIndex>
@@ -2172,7 +2511,7 @@
</Paragraphs>
<rd:DefaultName>Textbox3</rd:DefaultName>
<Top>1.22061cm</Top>
<Left>15.59511cm</Left>
<Left>17.50011cm</Left>
<Height>0.38981cm</Height>
<Width>3.61081cm</Width>
<ZIndex>5</ZIndex>
@@ -2205,7 +2544,7 @@
</Paragraphs>
<rd:DefaultName>Textbox29</rd:DefaultName>
<Top>1.66186cm</Top>
<Left>0.12912cm</Left>
<Left>0.14991cm</Left>
<Height>0.41981cm</Height>
<Width>5.78083cm</Width>
<ZIndex>6</ZIndex>
@@ -2213,17 +2552,13 @@
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Rectangle Name="Rectangle1">
<ReportItems>
<Line Name="Line6">
<Top>0.18344cm</Top>
<Left>1.19476cm</Left>
<Left>1.53738cm</Left>
<Height>0cm</Height>
<Width>5.13525cm</Width>
<Style>
@@ -2253,7 +2588,7 @@
</Paragraphs>
<rd:DefaultName>Textbox31</rd:DefaultName>
<Top>0.28984cm</Top>
<Left>0.77992cm</Left>
<Left>1.12254cm</Left>
<Height>0.56472cm</Height>
<Width>5.95755cm</Width>
<ZIndex>1</ZIndex>
@@ -2269,7 +2604,7 @@
</Textbox>
<Line Name="Line7">
<Top>0.18344cm</Top>
<Left>13.20536cm</Left>
<Left>13.54798cm</Left>
<Height>0cm</Height>
<Width>5.24108cm</Width>
<ZIndex>2</ZIndex>
@@ -2300,7 +2635,7 @@
</Paragraphs>
<rd:DefaultName>Textbox31</rd:DefaultName>
<Top>0.25456cm</Top>
<Left>12.80849cm</Left>
<Left>13.15111cm</Left>
<Height>0.6cm</Height>
<Width>5.95755cm</Width>
<ZIndex>3</ZIndex>
@@ -2317,9 +2652,9 @@
</ReportItems>
<KeepTogether>true</KeepTogether>
<Top>0.17639cm</Top>
<Left>0.05012cm</Left>
<Left>0.16513cm</Left>
<Height>0.85456cm</Height>
<Width>19.22367cm</Width>
<Width>21.08648cm</Width>
<ZIndex>7</ZIndex>
<Visibility>
<Hidden>=IIf( Globals.PageNumber = Globals.TotalPages, False, True)</Hidden>
@@ -2523,6 +2858,54 @@
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="FechaFactura">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="SerieFolio">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="Moneda">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="OCVinculada">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="Saldo">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="Condicion">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="FechaVencimiento">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="NombreCapturo">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters>
<EmbeddedImages>
<EmbeddedImage Name="Logo">

View File

@@ -2,6 +2,7 @@
Option Explicit On
Imports System.Data
Imports System.Math
Imports ADSNetLibrary.SIGAPI.Models.OC.Response
Imports ClosedXML.Excel
Imports DocumentFormat.OpenXml.Drawing.Diagrams
Imports Extensiones
@@ -346,27 +347,36 @@ Partial Class General_SaldosIniciales
End If
If RblFormato.SelectedValue = "17" Then
If Not dt.Columns(17).ColumnName = "Cantidad" Then
Alert("El nombre de la Decimoctava columna debe ser 'Cantidad'. Favor de corregirlo", TipoMensaje.MsgError)
If Not dt.Columns(17).ColumnName = "Vendedor" Then
Alert("El nombre de la Decimoctava columna debe ser 'Vendedor'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(18).ColumnName = "Codigo" Then
Alert("El nombre de la Decimonovena columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError)
If Not dt.Columns(18).ColumnName = "Cantidad" Then
Alert("El nombre de la Decimonovena columna debe ser 'Cantidad'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(19).ColumnName = "PU" Then
Alert("El nombre de la Vigésima columna debe ser 'PU'. Favor de corregirlo", TipoMensaje.MsgError)
If Not dt.Columns(19).ColumnName = "Codigo" Then
Alert("El nombre de la Vigésima columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(20).ColumnName = "IVADetalle" Then
Alert("El nombre de la Vigésimo primera columna debe ser 'IVADetalle'. Favor de corregirlo", TipoMensaje.MsgError)
If Not dt.Columns(20).ColumnName = "PU" Then
Alert("El nombre de la Vigésimo primera columna debe ser 'PU'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(21).ColumnName = "IEPS" Then
Alert("El nombre de la Vigésimo segunda columna debe ser 'IEPS'. Favor de corregirlo", TipoMensaje.MsgError)
If Not dt.Columns(21).ColumnName = "IVADetalle" Then
Alert("El nombre de la Vigésimo segunda columna debe ser 'IVADetalle'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(22).ColumnName = "IEPS" Then
Alert("El nombre de la Vigésimo tercera columna debe ser 'IEPS'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
End If
End If
@@ -2444,6 +2454,8 @@ Partial Class General_SaldosIniciales
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
Else
'ANTICIPOS
Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1,
@@ -2479,6 +2491,7 @@ Partial Class General_SaldosIniciales
ElseIf RblFormato.SelectedValue = "17" Then
Dim NoEncontrados As Integer = 0
Dim VentasAgregadas As Integer = 0
Dim Encontrados As Integer = 0
Dim StrRFCNoencontrados As New StringBuilder
Dim drr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero("AplicaParaVenta = 1")
@@ -2519,343 +2532,640 @@ Partial Class General_SaldosIniciales
Dim CountRow As Integer = 1
Dim LastSerieFolioTipoDoc As String = String.Empty
Dim EsDetalle As Boolean = False
For Each Row As DataRow In dt.FiltraParametros("RFC <> ''").Rows
Dim Sucursal As String = dtsubp.FiltroPrimeroValor("CveSubProyecto", $"SubProyecto = '{Row("Sucursal").ToString()}'")
Dim TipoDocto As String = Row("Tipo Documento").ToString().Trim
Dim RFC As String = Row("RFC").ToString().Trim.Replace("-", "").Replace(" ", "")
Dim Serie As String = Row("Serie").ToString().Trim
Dim Folio As Integer = Row("Folio").ToString().ToEntero()
Dim Fecha As Date = Row("Fecha").ToString().ToDate
Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString().ToDate
Dim ImpuestoLocal As Decimal = If(dt.Columns.Contains("ImpuestoLocal"), Row("ImpuestoLocal").ToString().ToDecimal, 0D)
Dim Amortizacion As Decimal = If(dt.Columns.Contains("Amort.Ant"), Row("Amort.Ant").ToString().ToDecimal, 0)
Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString().ToEntero()
If LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}" AndAlso UsuarioActual.CveEmpresa = 189 Then
EsDetalle = True
Else
LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}"
EsDetalle = False
End If
If UsuarioActual.CveEmpresa = 189 Then
Dim DTFoliosFiscales As DataTable = dt.FiltraParametros("", "", {"Folio Fiscal"})
For Each drFolioFiscal As DataRow In DTFoliosFiscales.Rows
Dim FolioFiscalActual As String = drFolioFiscal("Folio Fiscal").ToString
Dim DRVentaActual As DataRow = dt.FiltroPrimero($"[Folio Fiscal] = '{FolioFiscalActual}'")
Dim Sucursal As String = dtsubp.FiltroPrimeroValor("CveSubProyecto", $"SubProyecto = '{DRVentaActual("Sucursal").ToString()}'")
Dim TipoDocto As String = DRVentaActual("Tipo Documento").ToString().Trim
Dim RFC As String = DRVentaActual("RFC").ToString().Trim.Replace("-", "").Replace(" ", "")
Dim Serie As String = DRVentaActual("Serie").ToString().Trim
Dim Folio As Integer = DRVentaActual("Folio").ToString().ToEntero()
Dim Fecha As Date = DRVentaActual("Fecha").ToString().ToDate
Dim FechaVencimiento As Date = DRVentaActual("Fecha Vencimiento").ToString().ToDate
Dim ImpuestoLocal As Decimal = If(dt.Columns.Contains("ImpuestoLocal"), DRVentaActual("ImpuestoLocal").ToString().ToDecimal, 0D)
Dim Amortizacion As Decimal = If(dt.Columns.Contains("Amort.Ant"), DRVentaActual("Amort.Ant").ToString().ToDecimal, 0)
Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString().ToEntero()
If LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}" AndAlso UsuarioActual.CveEmpresa = 189 Then
EsDetalle = True
Else
LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}"
EsDetalle = False
End If
Dim SubTotal As Decimal = 0
Dim IVA As Decimal = 0
Dim Total As Decimal = 0
Dim Saldo As Decimal = 0
Dim RetIVA As Decimal = 0
Dim RetISR As Decimal = 0
Dim IEPS As Decimal = 0
SubTotal = DRVentaActual("SubTotal").ToString().ToDecimal
IVA = DRVentaActual("IVA").ToString().ToDecimal
Total = DRVentaActual("Total").ToString().ToDecimal
Saldo = DRVentaActual("Saldo").ToString().ToDecimal
RetIVA = DRVentaActual("Ret IVA").ToString().ToDecimal
RetISR = DRVentaActual("Ret ISR").ToString().ToDecimal
IEPS = DRVentaActual("IEPS").ToString().ToDecimal
Dim Moneda As String = DRVentaActual("Moneda").ToString()
Dim TipoCambio As String = DRVentaActual("Tipo Cambio").ToString()
Dim CveMoneda As Integer = 1
Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), DRVentaActual("Vendedor").ToString(), "")
Dim CveVendedor As Integer = 0
Dim CveClienteSucursal As Integer = 0 'Row("CveClienteSucursal").ToString().ToEntero()
'Dim FolioFiscal As String = If(dt.Columns.Contains("Folio Fiscal"), DRVentaActual("Folio Fiscal").ToString(), "")
Dim PorcentajeIVA As Decimal = If(dt.Columns.Contains("PorcentajeIVA"), Round(DRVentaActual("PorcentajeIVA").ToString().ToDecimal, 2), 0)
Dim PorcentajeRetIVA As Decimal = If(dt.Columns.Contains("PorcentajeRetIVA"), Round(DRVentaActual("PorcentajeRetIVA").ToString().ToDecimal, 4), 0)
Dim PorcentajeRetISR As Decimal = If(dt.Columns.Contains("PorcentajeRetISR"), Round(DRVentaActual("PorcentajeRetISR").ToString().ToDecimal, 4), 0)
Dim PedidoContrato As String = If(dt.Columns.Contains("Pedido"), DRVentaActual("Pedido").ToString(), "")
GuardaLog(Sucursal + "-" + DRVentaActual("Folio").ToString())
'Temporalmente SE BORRARA
Dim Transaccion As String = "" ' Row("Transaccion2").ToString()
Dim Folio2 As String = "" ' Row("Folio2").ToString()
Dim CodCliente As String = "" 'Row("CodCliente2").ToString()
TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESO", "INGRESOS", "ING", "FACTURA", "FACTURAS"), "Ing", IIf(TipoDocto.ToUpper.Contiene("EGRESO", "EGRESOS", "EGS"), "Egs", "Rem")).ToString()
'Dim CantidadDetalle As Decimal = 0
'Dim PUDetalle As Decimal = 0
'Dim IVADetalle As Decimal = 0
Dim PorcentajeIEPS As Decimal = 0
Dim SubTotal As Decimal = 0
Dim IVA As Decimal = 0
Dim Total As Decimal = 0
Dim Saldo As Decimal = 0
Dim RetIVA As Decimal = 0
Dim RetISR As Decimal = 0
Dim IEPS As Decimal = 0
If UsuarioActual.CveEmpresa = 189 AndAlso Not EsDetalle Then
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
SubTotal += item("SubTotal").ToString().ToDecimal
IVA += item("IVA").ToString().ToDecimal
Total += item("Total").ToString().ToDecimal
Saldo += item("Saldo").ToString().ToDecimal
RetIVA += item("Ret IVA").ToString().ToDecimal
RetISR += item("Ret ISR").ToString().ToDecimal
IEPS += item("IEPS").ToString().ToDecimal
Dim TotalDetalles As Decimal = 0
For Each dRowDetalle As DataRow In dt.FiltraParametros($"[Folio Fiscal]='{FolioFiscalActual}'").Rows
Dim CantidadDetalle As Decimal = dRowDetalle("Cantidad").ToString.ToDecimal 'digo PU IVADetalle
Dim PuDetalle As Decimal = dRowDetalle("PU").ToString.ToDecimal
Dim IVADetalle As Decimal = dRowDetalle("IVADetalle").ToString.ToDecimal
Dim IEPSDetalle As Decimal = dRowDetalle("IEPS").ToString.ToDecimal
TotalDetalles += (CantidadDetalle * PuDetalle) + IVADetalle + IEPSDetalle
Next
Else
SubTotal = Row("SubTotal").ToString().ToDecimal
IVA = Row("IVA").ToString().ToDecimal
Total = Row("Total").ToString().ToDecimal
Saldo = Row("Saldo").ToString().ToDecimal
RetIVA = Row("Ret IVA").ToString().ToDecimal
RetISR = Row("Ret ISR").ToString().ToDecimal
IEPS = Row("IEPS").ToString().ToDecimal
End If
Dim Moneda As String = Row("Moneda").ToString()
Dim TipoCambio As String = Row("Tipo Cambio").ToString()
Dim CveMoneda As Integer = 1
Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), Row("Vendedor").ToString(), "")
Dim CveVendedor As Integer = 0
Dim CveClienteSucursal As Integer = 0 'Row("CveClienteSucursal").ToString().ToEntero()
Dim FolioFiscal As String = If(dt.Columns.Contains("Folio Fiscal"), Row("Folio Fiscal").ToString(), "")
Dim PorcentajeIVA As Decimal = If(dt.Columns.Contains("PorcentajeIVA"), Round(Row("PorcentajeIVA").ToString().ToDecimal, 2), 0)
Dim PorcentajeRetIVA As Decimal = If(dt.Columns.Contains("PorcentajeRetIVA"), Round(Row("PorcentajeRetIVA").ToString().ToDecimal, 4), 0)
Dim PorcentajeRetISR As Decimal = If(dt.Columns.Contains("PorcentajeRetISR"), Round(Row("PorcentajeRetISR").ToString().ToDecimal, 4), 0)
Dim PedidoContrato As String = If(dt.Columns.Contains("Pedido"), Row("Pedido").ToString(), "")
If IEPS > 0 Then
PorcentajeIEPS = If(dt.Columns.Contains("PorcentajeIEPS"), Round(DRVentaActual("PorcentajeIEPS").ToString().ToDecimal, 4), 0)
End If
GuardaLog(Sucursal + "-" + Row("Folio").ToString())
'Temporalmente SE BORRARA
Dim Transaccion As String = "" ' Row("Transaccion2").ToString()
Dim Folio2 As String = "" ' Row("Folio2").ToString()
Dim CodCliente As String = "" 'Row("CodCliente2").ToString()
If Math.Abs(TotalDetalles - Total) > 0.01 Then
ErrorVentas = True
Alert($"Registro {CountRow} El total no coincide con el acumulado de los detalles, total: {Total.ToString("###,###,###.00")} detatalle: {TotalDetalles.ToString("###,###,###.00")}", TipoMensaje.MsgAdvertencia)
Exit For
End If
Dim IEPSDetalle As Decimal = 0
Dim CantidadDetalle As Decimal = 0
Dim PUDetalle As Decimal = 0
Dim IVADetalle As Decimal = 0
Dim PorcentajeIEPS As Decimal = 0
If IEPS > 0 Then
PorcentajeIEPS = If(dt.Columns.Contains("PorcentajeIEPS"), Round(Row("PorcentajeIEPS").ToString().ToDecimal, 4), 0)
End If
If Vendedor <> "" Then
CveVendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltroPrimeroValor("CveVendedor", $"Vendedor = '{Vendedor}'").ToString().ToEntero()
If Not CveVendedor > 0 Then CveVendedor = 0
Else
CveVendedor = 0
End If
If RblFormato.SelectedValue = "17" Then
If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then
CveMoneda = 1
TipoCambio = "1"
ElseIf Moneda.ToUpper.Contiene("DÓLAR", "DÓLARES", "DOLARES", "USD") Then
CveMoneda = 2
Dim CodigoDetalle As String = Row("Codigo").ToString
If CodigoDetalle.Trim.Length > 0 Then
Dim DrDetalles As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"Codigo = '{CodigoDetalle}'")
If TipoCambio.Trim.ToDecimal < 10 Then
If DrDetalles IsNot Nothing Then
CvePS = DrDetalles("CvePS").ToString().ToEntero()
CveUnidadMedida = DrDetalles("CveUnidadMedida").ToString().ToEntero()
CveClasificacion = DrDetalles("CveClasificacion").ToString().ToEntero()
Else
Alert($"El código del producto no se encontro, error en registro {CountRow}")
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
TipoCambio = GlobalTipoCambio(Fecha.AddDays(-1)).ToString()
Else
TipoCambio = GlobalTipoCambio(Fecha).ToString()
End If
End If
End If
If TipoCambio = "" Then TipoCambio = "1"
If Not CveClienteSucursal > 0 Then CveClienteSucursal = -1
If FechaVencimiento = "".ToDate Or FechaVencimiento < "1900/01/01".ToDate Then
FechaVencimiento = Fecha
End If
If Not ErrorVentas Then
CvePrePoliza = ObjConta.AddPrePolizas("Venta/SaldoInicial", 1, Total, Total, CveMoneda, Fecha, String.Format("{0}-{1}", Serie, Folio), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If Not CvePrePoliza > 0 Then
ErrorVentas = True
End If
Else
Alert($"El código es requerido, error en registro {CountRow}")
ErrorVentas = True
End If
IEPSDetalle = Row("IEPS").ToString.ToDecimal
CantidadDetalle = Row("Cantidad").ToString.ToDecimal
PUDetalle = Row("PU").ToString.ToDecimal
IVADetalle = Row("IVA").ToString.ToDecimal
If CantidadDetalle = 0 Then
Alert($"No se especifico la cantidad, error en registro {CountRow}")
ErrorVentas = True
End If
End If
If dt.Columns.Contains("Cliente Sucursal") AndAlso Row("Cliente Sucursal").ToString() <> "" Then
Dim ObjCliente As New ClsClientes
If ObjCliente.GetSucursales(CveCliente) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
CveClienteSucursal = ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "SucursalCliente = '" & Row("Cliente Sucursal").ToString().Trim & "'").ToEntero
End If
End If
ObjCliente.Dispose()
End If
If Not ErrorVentas Then
'Venta
If CveCliente > 0 Then
'If Not CveCliente > 0 Then Alert(String.Format("No se encontró el cliente con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorVentas = True : RFC.GuardaLog : Exit For
TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESO", "INGRESOS", "ING", "FACTURA", "FACTURAS"), "Ing", IIf(TipoDocto.ToUpper.Contiene("EGRESO", "EGRESOS", "EGS"), "Egs", "Rem")).ToString()
'PrePóliza
If Not EsDetalle Then
CvePrePoliza = ObjConta.AddPrePolizas("Venta/SaldoInicial", 1, Total, Total, 1, Fecha, String.Format("{0}-{1}", Serie, Folio), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
End If
If TipoDocto.Contiene("Ing", "Egs", "Rem") Then
GuardaLog(Serie & "-" & Folio)
If Not EsDetalle Then
If Not ObjVentas.AddVenta(TipoDocto, Folio, CveCliente.ToEntero(), CveClienteSucursal, SubTotal, 0, Amortizacion, IVA, RetIVA, RetISR, Total, CveMoneda, TipoCambio.ToDecimal,
0, 0, 0, FechaVencimiento, Fecha, "", "", Fecha, CveVendedor, Folio2, "", "", 0, 0, 0, "-1".ToDate, "-1".ToDate, "-1".ToDate, -1, 0, CvePrePoliza,
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Serie:=Serie, CveSubProyecto:=Sucursal.ToEntero(), CveSubProyectoEjecucion:=Sucursal.ToEntero(),
CveSubProyectoCobranza:=Sucursal.ToEntero(), IEPS:=IEPS, ObservacionesAlmacen:=Transaccion, Entrega:=CodCliente, ImpuestoLocal:=ImpuestoLocal,
PedidoContrato:=PedidoContrato, CveMetodoPago33:=3) Then
ErrorVentas = True
Exit For
Else
VentasAgregadas += 1
End If
CveVenta = ObjVentas.CveVenta
End If
If Vendedor <> "" Then
CveVendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltroPrimeroValor("CveVendedor", $"Vendedor = '{Vendedor}'").ToString().ToEntero()
If Not CveVendedor > 0 Then CveVendedor = 0
Else
CveVendedor = 0
End If
'Moneda
If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then
CveMoneda = 1
TipoCambio = "1"
ElseIf Moneda.ToUpper.Contiene("DÓLAR", "DÓLARES", "DOLARES", "USD") Then
CveMoneda = 2
For Each dRowDetalle As DataRow In dt.FiltraParametros($"[Folio Fiscal]='{FolioFiscalActual}'").Rows
If TipoCambio.Trim.ToDecimal < 10 Then
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
TipoCambio = GlobalTipoCambio(Fecha.AddDays(-1)).ToString()
Dim CantidadDetalle As Decimal = dRowDetalle("Cantidad").ToString.ToDecimal 'digo PU IVADetalle
Dim PuDetalle As Decimal = dRowDetalle("PU").ToString.ToDecimal
Dim IVADetalle As Decimal = dRowDetalle("IVADetalle").ToString.ToDecimal
Dim IEPSDetalle As Decimal = dRowDetalle("IEPS").ToString.ToDecimal
Dim PorcentajeIEPSDetalle = dRowDetalle("PorcentajeIEPS").ToString.ToDecimal
Dim CodigoDetalle As String = dRowDetalle("Codigo").ToString
If CodigoDetalle.Trim.Length > 0 Then
Dim DrDetalles As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"Codigo = '{CodigoDetalle}'")
If DrDetalles IsNot Nothing Then
CvePS = DrDetalles("CvePS").ToString().ToEntero()
CveUnidadMedida = DrDetalles("CveUnidadMedida").ToString().ToEntero()
CveClasificacion = DrDetalles("CveClasificacion").ToString().ToEntero()
Else
Alert($"El código del producto no se encontro, error en registro {CountRow}")
ErrorVentas = True
End If
Else
Alert($"El código es requerido, error en registro {CountRow}")
ErrorVentas = True
End If
If Not ErrorVentas Then
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, CantidadDetalle, CveUnidadMedida, PuDetalle, IVADetalle, TotalDetalles, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0,
PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=0, IEPS:=IEPSDetalle, PorcentajeRetISR:=0, PorcentajeIEPS:=PorcentajeIEPSDetalle) Then
ErrorVentas = True
Exit For
End If
End If
Next
Dim ConceptoContable As Integer = 1
Dim ConceptoContablePago As Integer = 2
If TipoDocto = "Egs" Then
ConceptoContable = 12
ConceptoContablePago = 91
End If
If FolioFiscalActual <> "" Then
If Not ObjVentas.UpdateVentaFolioFiscal(FolioFiscalActual, CveVenta, UsuarioActual.CveEmpresa) Then
ErrorVentas = True
Exit For
End If
End If
Dim UsaComplementaria As Boolean = False
If UsuarioActual.CveEmpresa.Contiene(119, 158) Then UsaComplementaria = True
'PrePólizaDetalle
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, SubTotal, 4, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, CveSubProyecto:=Sucursal.ToEntero(), PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, ConceptoContable, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
If IVA > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, IVA, 13, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If IEPS > 0 Then
'AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, Folio, 38, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteMX:=IEPS)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, IEPS, 38, Folio.ToString, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If RetIVA > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 8, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If RetISR > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 9, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If ImpuestoLocal > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImpuestoLocal, ImpuestoLocal, 27, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If UsaComplementaria Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total * TipoCambio.ToDecimal - Total, Total * TipoCambio.ToDecimal - Total, 203, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteME:=Total, TipoCambio:=TipoCambio.ToDecimal, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
'Saldo
If Saldo < Total Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Total - Saldo, ConceptoContablePago, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, CveVentaAmortizacion:=CveVenta, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If Not ErrorVentas Then
VentasAgregadas += VentasAgregadas
End If
Else
'ANTICIPOS
Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1, 1, "Anticipo Cliente", "", False, False, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, 30, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Total, 66, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
'_______________________________________________________________
Else
TipoCambio = GlobalTipoCambio(Fecha).ToString()
NoEncontrados = NoEncontrados + 1
StrRFCNoencontrados.AppendFormat("{0}<br/>", RFC)
'ErrorVentas = True
'Exit For
End If
End If
Next
Else
For Each Row As DataRow In dt.FiltraParametros("RFC <> ''").Rows
Dim Sucursal As String = dtsubp.FiltroPrimeroValor("CveSubProyecto", $"SubProyecto = '{Row("Sucursal").ToString()}'")
Dim TipoDocto As String = Row("Tipo Documento").ToString().Trim
Dim RFC As String = Row("RFC").ToString().Trim.Replace("-", "").Replace(" ", "")
Dim Serie As String = Row("Serie").ToString().Trim
Dim Folio As Integer = Row("Folio").ToString().ToEntero()
Dim Fecha As Date = Row("Fecha").ToString().ToDate
Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString().ToDate
Dim ImpuestoLocal As Decimal = If(dt.Columns.Contains("ImpuestoLocal"), Row("ImpuestoLocal").ToString().ToDecimal, 0D)
Dim Amortizacion As Decimal = If(dt.Columns.Contains("Amort.Ant"), Row("Amort.Ant").ToString().ToDecimal, 0)
Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString().ToEntero()
If LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}" AndAlso UsuarioActual.CveEmpresa = 189 Then
EsDetalle = True
Else
LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}"
EsDetalle = False
End If
Dim SubTotal As Decimal = 0
Dim IVA As Decimal = 0
Dim Total As Decimal = 0
Dim Saldo As Decimal = 0
Dim RetIVA As Decimal = 0
Dim RetISR As Decimal = 0
Dim IEPS As Decimal = 0
If UsuarioActual.CveEmpresa = 189 AndAlso Not EsDetalle Then
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
SubTotal += item("SubTotal").ToString().ToDecimal
IVA += item("IVA").ToString().ToDecimal
Total += item("Total").ToString().ToDecimal
Saldo += item("Saldo").ToString().ToDecimal
RetIVA += item("Ret IVA").ToString().ToDecimal
RetISR += item("Ret ISR").ToString().ToDecimal
IEPS += item("IEPS").ToString().ToDecimal
Next
Else
SubTotal = Row("SubTotal").ToString().ToDecimal
IVA = Row("IVA").ToString().ToDecimal
Total = Row("Total").ToString().ToDecimal
Saldo = Row("Saldo").ToString().ToDecimal
RetIVA = Row("Ret IVA").ToString().ToDecimal
RetISR = Row("Ret ISR").ToString().ToDecimal
IEPS = Row("IEPS").ToString().ToDecimal
End If
Dim Moneda As String = Row("Moneda").ToString()
Dim TipoCambio As String = Row("Tipo Cambio").ToString()
Dim CveMoneda As Integer = 1
Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), Row("Vendedor").ToString(), "")
Dim CveVendedor As Integer = 0
Dim CveClienteSucursal As Integer = 0 'Row("CveClienteSucursal").ToString().ToEntero()
Dim FolioFiscal As String = If(dt.Columns.Contains("Folio Fiscal"), Row("Folio Fiscal").ToString(), "")
Dim PorcentajeIVA As Decimal = If(dt.Columns.Contains("PorcentajeIVA"), Round(Row("PorcentajeIVA").ToString().ToDecimal, 2), 0)
Dim PorcentajeRetIVA As Decimal = If(dt.Columns.Contains("PorcentajeRetIVA"), Round(Row("PorcentajeRetIVA").ToString().ToDecimal, 4), 0)
Dim PorcentajeRetISR As Decimal = If(dt.Columns.Contains("PorcentajeRetISR"), Round(Row("PorcentajeRetISR").ToString().ToDecimal, 4), 0)
Dim PedidoContrato As String = If(dt.Columns.Contains("Pedido"), Row("Pedido").ToString(), "")
GuardaLog(Sucursal + "-" + Row("Folio").ToString())
'Temporalmente SE BORRARA
Dim Transaccion As String = "" ' Row("Transaccion2").ToString()
Dim Folio2 As String = "" ' Row("Folio2").ToString()
Dim CodCliente As String = "" 'Row("CodCliente2").ToString()
Dim IEPSDetalle As Decimal = 0
Dim CantidadDetalle As Decimal = 0
Dim PUDetalle As Decimal = 0
Dim IVADetalle As Decimal = 0
Dim PorcentajeIEPS As Decimal = 0
If IEPS > 0 Then
PorcentajeIEPS = If(dt.Columns.Contains("PorcentajeIEPS"), Round(Row("PorcentajeIEPS").ToString().ToDecimal, 4), 0)
End If
If RblFormato.SelectedValue = "17" Then
Dim CodigoDetalle As String = Row("Codigo").ToString
If CodigoDetalle.Trim.Length > 0 Then
Dim DrDetalles As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"Codigo = '{CodigoDetalle}'")
If DrDetalles IsNot Nothing Then
CvePS = DrDetalles("CvePS").ToString().ToEntero()
CveUnidadMedida = DrDetalles("CveUnidadMedida").ToString().ToEntero()
CveClasificacion = DrDetalles("CveClasificacion").ToString().ToEntero()
Else
Alert($"El código del producto no se encontro, error en registro {CountRow}")
ErrorVentas = True
End If
Else
Alert($"El código es requerido, error en registro {CountRow}")
ErrorVentas = True
End If
IEPSDetalle = Row("IEPS").ToString.ToDecimal
CantidadDetalle = Row("Cantidad").ToString.ToDecimal
PUDetalle = Row("PU").ToString.ToDecimal
IVADetalle = Row("IVA").ToString.ToDecimal
If CantidadDetalle = 0 Then
Alert($"No se especifico la cantidad, error en registro {CountRow}")
ErrorVentas = True
End If
End If
End If
If dt.Columns.Contains("Cliente Sucursal") AndAlso Row("Cliente Sucursal").ToString() <> "" Then
'Si no se especifica TC, se manda como pesos.
If TipoCambio = "" Then TipoCambio = "1"
If Not CveClienteSucursal > 0 Then CveClienteSucursal = -1
If FechaVencimiento = "".ToDate Or FechaVencimiento < "1900/01/01".ToDate Then
FechaVencimiento = Fecha
End If
'Venta
If CveCliente > 0 Then
If TipoDocto.Contiene("Ing", "Egs", "Rem") Then
GuardaLog(Serie & "-" & Folio)
If Not EsDetalle Then
If Not ObjVentas.AddVenta(TipoDocto, Folio, CveCliente.ToEntero(), CveClienteSucursal, SubTotal, 0, Amortizacion, IVA, RetIVA, RetISR, Total, CveMoneda, TipoCambio.ToDecimal,
0, 0, 0, FechaVencimiento, Fecha, "", "", Fecha, CveVendedor, Folio2, "", "", 0, 0, 0, "-1".ToDate, "-1".ToDate, "-1".ToDate, -1, 0, CvePrePoliza,
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Serie:=Serie, CveSubProyecto:=Sucursal.ToEntero(), CveSubProyectoEjecucion:=Sucursal.ToEntero(),
CveSubProyectoCobranza:=Sucursal.ToEntero(), IEPS:=IEPS, ObservacionesAlmacen:=Transaccion, Entrega:=CodCliente, ImpuestoLocal:=ImpuestoLocal,
PedidoContrato:=PedidoContrato, CveMetodoPago33:=3) Then
ErrorVentas = True
Exit For
Dim ObjCliente As New ClsClientes
If ObjCliente.GetSucursales(CveCliente) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
CveClienteSucursal = ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "SucursalCliente = '" & Row("Cliente Sucursal").ToString().Trim & "'").ToEntero
End If
CveVenta = ObjVentas.CveVenta
End If
If Not EsDetalle Then
SubTotal = Row("SubTotal").ToString().ToDecimal
IVA = Row("IVA").ToString().ToDecimal
Total = Row("Total").ToString().ToDecimal
Saldo = Row("Saldo").ToString().ToDecimal
RetIVA = Row("Ret IVA").ToString().ToDecimal
RetISR = Row("Ret ISR").ToString().ToDecimal
IEPS = Row("IEPS").ToString().ToDecimal
ObjCliente.Dispose()
End If
'If Not CveCliente > 0 Then Alert(String.Format("No se encontró el cliente con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorVentas = True : RFC.GuardaLog : Exit For
TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESO", "INGRESOS", "ING", "FACTURA", "FACTURAS"), "Ing", IIf(TipoDocto.ToUpper.Contiene("EGRESO", "EGRESOS", "EGS"), "Egs", "Rem")).ToString()
'PrePóliza
If Not EsDetalle Then
CvePrePoliza = ObjConta.AddPrePolizas("Venta/SaldoInicial", 1, Total, Total, 1, Fecha, String.Format("{0}-{1}", Serie, Folio), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
End If
If Vendedor <> "" Then
CveVendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltroPrimeroValor("CveVendedor", $"Vendedor = '{Vendedor}'").ToString().ToEntero()
If Not CveVendedor > 0 Then CveVendedor = 0
Else
CveVendedor = 0
End If
'Moneda
If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then
CveMoneda = 1
TipoCambio = "1"
ElseIf Moneda.ToUpper.Contiene("DÓLAR", "DÓLARES", "DOLARES", "USD") Then
CveMoneda = 2
If TipoCambio.Trim.ToDecimal < 10 Then
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
TipoCambio = GlobalTipoCambio(Fecha.AddDays(-1)).ToString()
Else
TipoCambio = GlobalTipoCambio(Fecha).ToString()
End If
End If
If RblFormato.SelectedValue = "17" Then
End If
Dim TotalDetalles As Decimal = SubTotal
If PUDetalle > 0 Then
TotalDetalles = (CantidadDetalle * PUDetalle) + IVA - RetIVA - RetISR + IEPSDetalle
'Si no se especifica TC, se manda como pesos.
If TipoCambio = "" Then TipoCambio = "1"
If Not CveClienteSucursal > 0 Then CveClienteSucursal = -1
If FechaVencimiento = "".ToDate Or FechaVencimiento < "1900/01/01".ToDate Then
FechaVencimiento = Fecha
End If
'Venta
If CveCliente > 0 Then
If TipoDocto.Contiene("Ing", "Egs", "Rem") Then
GuardaLog(Serie & "-" & Folio)
If Not EsDetalle Then
If Not ObjVentas.AddVenta(TipoDocto, Folio, CveCliente.ToEntero(), CveClienteSucursal, SubTotal, 0, Amortizacion, IVA, RetIVA, RetISR, Total, CveMoneda, TipoCambio.ToDecimal,
0, 0, 0, FechaVencimiento, Fecha, "", "", Fecha, CveVendedor, Folio2, "", "", 0, 0, 0, "-1".ToDate, "-1".ToDate, "-1".ToDate, -1, 0, CvePrePoliza,
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Serie:=Serie, CveSubProyecto:=Sucursal.ToEntero(), CveSubProyectoEjecucion:=Sucursal.ToEntero(),
CveSubProyectoCobranza:=Sucursal.ToEntero(), IEPS:=IEPS, ObservacionesAlmacen:=Transaccion, Entrega:=CodCliente, ImpuestoLocal:=ImpuestoLocal,
PedidoContrato:=PedidoContrato, CveMetodoPago33:=3) Then
ErrorVentas = True
Exit For
Else
VentasAgregadas += 1
End If
CveVenta = ObjVentas.CveVenta
End If
If Math.Abs(TotalDetalles - Total) > 0.01 Then
ErrorVentas = True
Alert($"Registro {CountRow} El total no councide con el calculo de los detalles, total: {Total.ToString("###,###,###.00")} calculo detatalles: {TotalDetalles.ToString("###,###,###.00")}", TipoMensaje.MsgAdvertencia)
Exit For
If Not EsDetalle Then
SubTotal = Row("SubTotal").ToString().ToDecimal
IVA = Row("IVA").ToString().ToDecimal
Total = Row("Total").ToString().ToDecimal
Saldo = Row("Saldo").ToString().ToDecimal
RetIVA = Row("Ret IVA").ToString().ToDecimal
RetISR = Row("Ret ISR").ToString().ToDecimal
IEPS = Row("IEPS").ToString().ToDecimal
End If
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, CantidadDetalle, CveUnidadMedida, PUDetalle, IVADetalle, TotalDetalles, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0,
PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=IEPSDetalle, PorcentajeRetISR:=PorcentajeRetISR, PorcentajeIEPS:=PorcentajeIEPS) Then
ErrorVentas = True
Exit For
If RblFormato.SelectedValue = "17" Then
Dim TotalDetalles As Decimal = SubTotal
If PUDetalle > 0 Then
TotalDetalles = (CantidadDetalle * PUDetalle) + IVA - RetIVA - RetISR + IEPSDetalle
End If
If Math.Abs(TotalDetalles - Total) > 0.01 Then
ErrorVentas = True
Alert($"Registro {CountRow} El total no coincide con el acumulado de los detalles, total: {Total.ToString("###,###,###.00")} detatalle: {TotalDetalles.ToString("###,###,###.00")}", TipoMensaje.MsgAdvertencia)
Exit For
End If
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, CantidadDetalle, CveUnidadMedida, PUDetalle, IVADetalle, TotalDetalles, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0,
PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=IEPSDetalle, PorcentajeRetISR:=PorcentajeRetISR, PorcentajeIEPS:=PorcentajeIEPS) Then
ErrorVentas = True
Exit For
End If
Else
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, 1, CveUnidadMedida, SubTotal, IVA, SubTotal * PorcentajeIVA, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=0) Then
ErrorVentas = True
Exit For
End If
End If
Dim ConceptoContable As Integer = 1
Dim ConceptoContablePago As Integer = 2
If TipoDocto = "Egs" Then
ConceptoContable = 12
ConceptoContablePago = 91
End If
If FolioFiscal <> "" Then
If Not ObjVentas.UpdateVentaFolioFiscal(FolioFiscal, CveVenta, UsuarioActual.CveEmpresa) Then
ErrorVentas = True
Exit For
End If
End If
Dim UsaComplementaria As Boolean = False
If UsuarioActual.CveEmpresa.Contiene(119, 158) Then UsaComplementaria = True
If Not EsDetalle Then
SubTotal = 0
IVA = 0
Total = 0
Saldo = 0
RetIVA = 0
RetISR = 0
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
SubTotal += item("SubTotal").ToString().ToDecimal
IVA += item("IVA").ToString().ToDecimal
Total += item("Total").ToString().ToDecimal
Saldo += item("Saldo").ToString().ToDecimal
RetIVA += item("Ret IVA").ToString().ToDecimal
RetISR += item("Ret ISR").ToString().ToDecimal
IEPS += item("IEPS").ToString().ToDecimal
Next
'PrePólizaDetalle
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, SubTotal, 4, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, CveSubProyecto:=Sucursal.ToEntero(), PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, ConceptoContable, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
If IVA > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, IVA, 13, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If IEPS > 0 Then
'AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, Folio, 38, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteMX:=IEPS)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, IEPS, 38, Folio.ToString, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If RetIVA > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 8, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If RetISR > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 9, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If ImpuestoLocal > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImpuestoLocal, ImpuestoLocal, 27, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If UsaComplementaria Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total * TipoCambio.ToDecimal - Total, Total * TipoCambio.ToDecimal - Total, 203, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteME:=Total, TipoCambio:=TipoCambio.ToDecimal, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
'Saldo
If Saldo < Total Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Total - Saldo, ConceptoContablePago, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, CveVentaAmortizacion:=CveVenta, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
End If
Else
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, 1, CveUnidadMedida, SubTotal, IVA, SubTotal * PorcentajeIVA, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=0) Then
ErrorVentas = True
Exit For
End If
End If
Dim ConceptoContable As Integer = 1
Dim ConceptoContablePago As Integer = 2
If TipoDocto = "Egs" Then
ConceptoContable = 12
ConceptoContablePago = 91
End If
If FolioFiscal <> "" Then
If Not ObjVentas.UpdateVentaFolioFiscal(FolioFiscal, CveVenta, UsuarioActual.CveEmpresa) Then
ErrorVentas = True
Exit For
End If
End If
Dim UsaComplementaria As Boolean = False
If UsuarioActual.CveEmpresa.Contiene(119, 158) Then UsaComplementaria = True
If Not EsDetalle Then
SubTotal = 0
IVA = 0
Total = 0
Saldo = 0
RetIVA = 0
RetISR = 0
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
SubTotal += item("SubTotal").ToString().ToDecimal
IVA += item("IVA").ToString().ToDecimal
Total += item("Total").ToString().ToDecimal
Saldo += item("Saldo").ToString().ToDecimal
RetIVA += item("Ret IVA").ToString().ToDecimal
RetISR += item("Ret ISR").ToString().ToDecimal
IEPS += item("IEPS").ToString().ToDecimal
Next
'PrePólizaDetalle
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, SubTotal, 4, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, CveSubProyecto:=Sucursal.ToEntero(), PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, ConceptoContable, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
If IVA > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, IVA, 13, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If IEPS > 0 Then
'AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, Folio, 38, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteMX:=IEPS)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, IEPS, 38, Folio.ToString, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If RetIVA > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 8, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If RetISR > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 9, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If ImpuestoLocal > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImpuestoLocal, ImpuestoLocal, 27, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If UsaComplementaria Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total * TipoCambio.ToDecimal - Total, Total * TipoCambio.ToDecimal - Total, 203, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteME:=Total, TipoCambio:=TipoCambio.ToDecimal, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
'Saldo
If Saldo < Total Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Total - Saldo, ConceptoContablePago, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, CveVentaAmortizacion:=CveVenta, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not EsDetalle Then
SubTotal = 0
IVA = 0
Total = 0
Saldo = 0
RetIVA = 0
RetISR = 0
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
SubTotal += item("SubTotal").ToString().ToDecimal
IVA += item("IVA").ToString().ToDecimal
Total += item("Total").ToString().ToDecimal
Saldo += item("Saldo").ToString().ToDecimal
RetIVA += item("Ret IVA").ToString().ToDecimal
RetISR += item("Ret ISR").ToString().ToDecimal
IEPS += item("IEPS").ToString().ToDecimal
Next
'ANTICIPOS
Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1,
1, "Anticipo Cliente", "", False, False, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, 30, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Total, 66, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
End If
Encontrados = Encontrados + 1
Else
If Not EsDetalle Then
SubTotal = 0
IVA = 0
Total = 0
Saldo = 0
RetIVA = 0
RetISR = 0
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
SubTotal += item("SubTotal").ToString().ToDecimal
IVA += item("IVA").ToString().ToDecimal
Total += item("Total").ToString().ToDecimal
Saldo += item("Saldo").ToString().ToDecimal
RetIVA += item("Ret IVA").ToString().ToDecimal
RetISR += item("Ret ISR").ToString().ToDecimal
IEPS += item("IEPS").ToString().ToDecimal
Next
'ANTICIPOS
Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1,
1, "Anticipo Cliente", "", False, False, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, 30, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Total, 66, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
NoEncontrados = NoEncontrados + 1
StrRFCNoencontrados.AppendFormat("{0}<br/>", RFC)
'ErrorVentas = True
'Exit For
End If
Encontrados = Encontrados + 1
Else
NoEncontrados = NoEncontrados + 1
StrRFCNoencontrados.AppendFormat("{0}<br/>", RFC)
'ErrorVentas = True
'Exit For
End If
CountRow = CountRow + 1
Next
End If
'**********************************************************************************************************************************************************************************
CountRow = CountRow + 1
Next
If Not ErrorVentas Then
Alert(String.Format("Se agregaron: <b>{0}</b> Ventas correctamente. <b>{1} no encontrados</b><br/>{2} ", Encontrados, NoEncontrados, StrRFCNoencontrados), TipoMensaje.MsgInformacion)
If UsuarioActual.CveEmpresa = 189 Then
Alert(String.Format("Se agregaron: <b>{0}</b> Ventas correctamente. <b>{1} no encontrados</b><br/>{2} ", VentasAgregadas, NoEncontrados, StrRFCNoencontrados), TipoMensaje.MsgInformacion)
Else
Alert(String.Format("Se agregaron: <b>{0}</b> Ventas correctamente. <b>{1} no encontrados</b><br/>{2} ", Encontrados, NoEncontrados, StrRFCNoencontrados), TipoMensaje.MsgInformacion)
End If
ObjVentas.Commit()
TxtExcel.Text = ""
UpDatos.Update()

View File

@@ -175,14 +175,20 @@
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate>
<asp:GridView ID="GvDatos" Width="100%" runat="server" ShowHeader="true" EmptyDataText="No hay registros." AutoGenerateColumns="False" AllowPaging="False"
ShowFooter="True" ShowHeaderWhenEmpty="True" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" GridLines="None" DataKeyNames="CveMovimiento,FechaMovto">
<asp:GridView ID="GvDatos" Width="100%" runat="server" ShowHeader="true" EmptyDataText="No hay registros." AutoGenerateColumns="False" AllowPaging="False" OnRowDataBound="GvDatos_RowDataBound"
ShowFooter="True" ShowHeaderWhenEmpty="True" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" GridLines="None" DataKeyNames="CveMovimiento,FechaMovto,CveVenta,CveCompra,FolioDocto">
<Columns>
<asp:BoundField DataField="FechaMovto" DataFormatString="{0:dd/MM/yyyy HH:mm:ss}" ItemStyle-Width="90px" HeaderText="Fecha" />
<asp:BoundField DataField="Almacen" HeaderText="Almacén" ItemStyle-Width="150px" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Concepto" HeaderText="Movimiento" ItemStyle-Width="150px" ItemStyle-HorizontalAlign="Left" />
<asp:HyperLinkField DataTextField="CodigoPS" DataNavigateUrlFields="CvePS" DataNavigateUrlFormatString="/Ventas/ProductosServicios.aspx?CvePS={0}" HeaderText="Descripción" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="TipoMovimiento" HeaderText="Tipo" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="FolioDocto" HeaderText="Referencia" ItemStyle-Width="70px" ItemStyle-HorizontalAlign="Left" />
<%--<asp:TemplateField ItemStyle-Width="70px" HeaderText="Referencia">
<ItemTemplate>
<asp:HyperLink ID="hlFolio" runat="server" Text='<%# Eval("Folio")%>' CssClass="Texto" NavigateUrl='<%# Eval("CveMovimiento", "/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}")%>' Target="_blank" />
</ItemTemplate>
</asp:TemplateField>--%>
<asp:TemplateField ItemStyle-Width="70px" HeaderText="Folio">
<ItemTemplate>
<asp:HyperLink ID="hlFolio" runat="server" Text='<%# Eval("Folio")%>' CssClass="Texto" NavigateUrl='<%# Eval("CveMovimiento", "/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}")%>' Target="_blank" />

View File

@@ -72,4 +72,22 @@ Partial Class Inventarios_RepResumenMovimientosDiario
Protected Sub LnkImprimir_Click(sender As Object, e As EventArgs)
GenerarPDF("PDF")
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
'veVenta,CveCompra,FolioDocto
Dim CveVenta As Integer = e.Row.DataKey("CveVenta").ToEntero
Dim CveCompra As Integer = e.Row.DataKey("CveCompra").ToEntero
Dim FolioDocto As String = e.Row.DataKey("FolioDocto")
If CveVenta > 0 Then
e.Row.Cells(5).Text = $"<a href='../Ventas/Ventas.aspx?CveVenta={CveVenta}' class='Texto' target='_blank' >{FolioDocto}<a>"
ElseIf CveCompra > 0 Then
e.Row.Cells(5).Text = $"<a href='../Compras/Compras.aspx?CveCompra={CveCompra}' class='Texto' target='_blank' >{FolioDocto}<a>"
End If
End If
End Sub
End Class

View File

@@ -869,7 +869,7 @@
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList>
<ADS:Dropdownlost runat="server" ID="DdlP2" CssClassDdl="select2me" CssStyle="width: 100%;" DataTextField="PSCodigo" DataValueField="CvePS" data-estatus="1" />
<ADS:Dropdownlost runat="server" ID="DdlP2" IncluyeTodos="false" CssClassDdl="select2me" CssStyle="width: 100%;" DataTextField="PSCodigo" DataValueField="CvePS" data-estatus="1" />
</td>
<td>
<asp:DropDownList ID="CboUnidadMedida" CssClass="form-control input-sm " runat="server" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" Style="width: 100%; max-width: 150px;"></asp:DropDownList>

View File

@@ -3148,7 +3148,10 @@ Partial Class OC_OC
ViewState("LigaOCs") = If(CveEstatusNuevo <> CboE.SelectedValue.ToEntero, String.Format("<a href='/OC/OC.aspx?OC={0}'>{1}</a>", CveOrdenCompra, SerieFolio), "")
If CveOrdenCompra > 0 Then
Dim ImprimirOC As String = String.Format("<a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Orden de Compra</a> ", Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra)))
Dim ImprimirOC As String = String.Format("<a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir {1}</a> ", Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra)), If(TipoOC = "OC", "Orden de Compra", "Requisición"))
Dim Msg As New StringBuilder
'Cuando Estatus = "Autorizada"
@@ -3164,11 +3167,24 @@ Partial Class OC_OC
End If
If LigaOCs = "" Then
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>.<br/> Ha sido guardada correctamente <br/> {2}", TipoLargo, SerieFolio, If(TipoOC = "OC", ImprimirOC, ""))
If TipoOC.ToUpper = "REQ" Then
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>.<br/> Ha sido guardada correctamente <br/> {2}", TipoLargo, SerieFolio, ImprimirOC)
Else
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>.<br/> Ha sido guardada correctamente <br/> {2}", TipoLargo, SerieFolio, If(TipoOC = "OC", ImprimirOC, ""))
End If
Else
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>.<br/> Ha sido guardada correctamente<br><br>Orden de Compra:{2} <br/> {3}", TipoLargo, SerieFolio, LigaOCs, If(TipoOC = "OC", ImprimirOC, ""))
If TipoOC.ToUpper = "REQ" Then
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>.<br/> Ha sido guardada correctamente<br><br>Orden de Compra:{2} <br/> {3}", TipoLargo, SerieFolio, LigaOCs, ImprimirOC)
Else
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>.<br/> Ha sido guardada correctamente<br><br>Orden de Compra:{2} <br/> {3}", TipoLargo, SerieFolio, LigaOCs, If(TipoOC = "OC", ImprimirOC, ""))
End If
End If
'IMPRIME LIGA A POLIZAS
If IDPolizasGeneradas.Count > 0 Then
Msg.Append("<br/><br/> <b>Polizas generadas:</b>")

View File

@@ -50,6 +50,11 @@
<div class="portlet-body">
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" Width="100%"

View File

@@ -88,7 +88,7 @@ Partial Class CatSubProyectos
CargaPrecioLista()
CargaDatos()
If UsuarioActual.Empresa.UsaContabilidad Then
If UsuarioActual.Empresa.UsaContabilidad And UsuarioActual.Empresa.TipoContabilidad = 2 Then
GvDatos.Columns(1).Visible = True
DivSegmentoNegocio.Visible = True
End If

View File

@@ -1427,6 +1427,7 @@
<div class="modal-body">
<ul>
<li>{"FolioFactura"}</li>
<li>{"TipoDocumento"}</li>
<li>{"ImporteFactura"}</li>
<li>{"FechaFactura"}</li>
<li>{"FechaVencimiento"}</li>

View File

@@ -770,7 +770,16 @@ Partial Class Clientes
HplAddVenta.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveCliente={0}", CveCliente)
HplAddCotizacion.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveCliente={0}&Op=Cot", CveCliente)
'ImgAddObs.Attributes.Add("onclick", "javascript:PosicionaObjeto(this.id,'DivEventoBitacora',null,-250,-250); $('#DivEventoBitacora').show(1000); ")
If Request("Opt") IsNot Nothing AndAlso IsNumeric(Request("Opt")) Then Tab.ActiveTabIndex = Request("Opt").ToEntero()
If Request("Opt") IsNot Nothing AndAlso IsNumeric(Request("Opt")) Then
Tab.ActiveTabIndex = Request("Opt").ToEntero()
'CARGA LOS DATOS DEL TAB QUE SELECCIONO
Select Case Tab.ActiveTabIndex
Case 2 'Historial de ventas
BtnHistorialVentas_Click(Nothing, EventArgs.Empty)
End Select
End If
CargaDireccionesEnvio()
CargaAFAsignados()
@@ -2259,20 +2268,17 @@ Partial Class Clientes
Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Cuerpo = Cuerpo.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante)
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", HdnSerieFolio.Value.ToString())
Cuerpo = Cuerpo.Replace("{""FolioFactura""}", HdnSerieFolio.Value.ToString())
If Dr IsNot Nothing Then
Cuerpo = Cuerpo.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero())
Cuerpo = Cuerpo.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
Cuerpo = Cuerpo.Replace("{""Sucursal""}", Dr("SubProyecto").ToString())
Cuerpo = Cuerpo.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
End If
End If
If UsuarioActual.Empresa.AsuntoPlantillaMailVentaCotizacion.Trim.Length > 0 Then
@@ -2280,17 +2286,16 @@ Partial Class Clientes
Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Asunto = Asunto.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante)
Asunto = Asunto.Replace("{""SerieFolio""}", HdnSerieFolio.Value.ToString())
Asunto = Asunto.Replace("{""FolioFactura""}", HdnSerieFolio.Value.ToString())
If Dr IsNot Nothing Then
Asunto = Asunto.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero())
Asunto = Asunto.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Asunto = Asunto.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
Asunto = Asunto.Replace("{""Sucursal""}", Dr("SubProyecto").ToString())
Asunto = Asunto.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString())
Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
End If
End If
@@ -2302,16 +2307,15 @@ Partial Class Clientes
Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Cuerpo = Cuerpo.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante)
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", HdnSerieFolio.Value.ToString())
Cuerpo = Cuerpo.Replace("{""FolioFactura""}", HdnSerieFolio.Value.ToString())
If Dr IsNot Nothing Then
Cuerpo = Cuerpo.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero())
Cuerpo = Cuerpo.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
Cuerpo = Cuerpo.Replace("{""Sucursal""}", Dr("SubProyecto").ToString())
Cuerpo = Cuerpo.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
End If
End If
@@ -2320,16 +2324,15 @@ Partial Class Clientes
Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Asunto = Asunto.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante)
Asunto = Asunto.Replace("{""SerieFolio""}", HdnSerieFolio.Value.ToString())
Asunto = Asunto.Replace("{""FolioFactura""}", HdnSerieFolio.Value.ToString())
If Dr IsNot Nothing Then
Asunto = Asunto.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero())
Asunto = Asunto.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Asunto = Asunto.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
Asunto = Asunto.Replace("{""Sucursal""}", Dr("SubProyecto").ToString())
Asunto = Asunto.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString())
Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
End If
End If
@@ -4417,7 +4420,7 @@ Partial Class Clientes
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = File, .NombreArchivo = "EstadoDeCuenta.pdf"})
Dim Envio As Boolean = Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail)
Dim Envio As Boolean = Mail.SendMail(UsuarioActual.Empresa, Para, Asunto, Body, Archivos:=LSRutasMail)
If Envio AndAlso GuardarBitacora Then
Using ObjBitacora As New ClsOIEventos(UsuarioActual:=UsuarioActual)
@@ -5751,7 +5754,6 @@ Partial Class Clientes
If HdnTipoDocto2.Value.ToString() = "Cot" Then TipoComprobante = "Cotización"
If HdnTipoDocto2.Value.ToString() = "Ant" Then TipoComprobante = "Anticipo"
Dim ObjVenta As New ClsVentas
Dim Dr As DataRow = Nothing
If ObjVenta.GetVenta(HdnCveVenta2.Value.ToEntero(), UsuarioActual.CveEmpresa) Then
@@ -5761,7 +5763,6 @@ Partial Class Clientes
End If
ObjVenta.Dispose()
If HdnTipoDocto2.Value.ToString() = "Cot" Then
If UsuarioActual.Empresa.PlantillaMailVentaCotizacion.Trim.Length > 0 Then
@@ -5769,32 +5770,28 @@ Partial Class Clientes
Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Cuerpo = Cuerpo.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante)
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", HdnSerieFolio2.Value.ToString())
Cuerpo = Cuerpo.Replace("{""FolioFactura""}", HdnSerieFolio2.Value.ToString())
If Dr IsNot Nothing Then
Cuerpo = Cuerpo.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero())
Cuerpo = Cuerpo.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
Cuerpo = Cuerpo.Replace("{""Sucursal""}", Dr("SubProyecto").ToString())
Cuerpo = Cuerpo.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
End If
End If
If UsuarioActual.Empresa.AsuntoPlantillaMailVentaCotizacion.Trim.Length > 0 Then
Asunto = UsuarioActual.Empresa.AsuntoPlantillaMailVentaCotizacion
Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Asunto = Asunto.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante)
Asunto = Asunto.Replace("{""SerieFolio""}", HdnSerieFolio2.Value.ToString())
Asunto = Asunto.Replace("{""FolioFactura""}", HdnSerieFolio2.Value.ToString())
If Dr IsNot Nothing Then
Asunto = Asunto.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero())
Asunto = Asunto.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Asunto = Asunto.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
@@ -5811,10 +5808,10 @@ Partial Class Clientes
Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Cuerpo = Cuerpo.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante)
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", HdnSerieFolio2.Value.ToString())
Cuerpo = Cuerpo.Replace("{""FolioFactura""}", HdnSerieFolio2.Value.ToString())
If Dr IsNot Nothing Then
Cuerpo = Cuerpo.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero())
Cuerpo = Cuerpo.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
@@ -5830,10 +5827,10 @@ Partial Class Clientes
Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Asunto = Asunto.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante)
Asunto = Asunto.Replace("{""SerieFolio""}", HdnSerieFolio2.Value.ToString())
Asunto = Asunto.Replace("{""FolioFactura""}", HdnSerieFolio2.Value.ToString())
If Dr IsNot Nothing Then
Asunto = Asunto.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero())
Asunto = Asunto.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Asunto = Asunto.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString())

View File

@@ -105,7 +105,7 @@ Partial Class Ventas_PVCobranza
If Not Page.IsPostBack Then
Dim Arr As New ArrayList
'Dim Arr As New ArrayList
'Arr.Add("autorizada")
'If EnviarNotificacionWhatsApp("526621430964", "solicitud_autorizacion_anticipo_respuesta", Arr) Then
' Alert("bien")
@@ -339,9 +339,12 @@ Partial Class Ventas_PVCobranza
Private Sub MuestraNoTimbradasCentroCosto()
Dim ObjSub As New ClsSubProyectos
If ObjSub.GetNoTimbradasCentroCosto(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then
If ObjSub.GetNoTimbradasCentroCosto(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, DdlSubProyecto.SelectedValue.ToEntero) Then
If ObjSub.DtResultados.Rows.Count > 0 Then
GvPendientesTimbrar.DataSource = ObjSub.DtResultados.FiltraParametros($"Fecha = '{Now.ToString("dd/MM/yyyy")}'")
Dim miFecha As DateTime = Now
Dim fechaSiguiente As DateTime = miFecha.AddDays(1)
Dim filtro As String = String.Format("Fecha >= #{0}# AND Fecha < #{1}#", miFecha.ToString("MM/dd/yyyy"), fechaSiguiente.ToString("MM/dd/yyyy"))
GvPendientesTimbrar.DataSource = ObjSub.DtResultados.FiltraParametros(filtro)
End If
End If
ObjSub.Dispose()
@@ -574,8 +577,12 @@ Partial Class Ventas_PVCobranza
VentaActual.PorcentajeIVA = DbRowVenta("PorcentajeIVA").ToString.ToDecimal
VentaActual.UsuarioActual = UsuarioActual
VentaActual.CveSubProyecto = DbRowVenta("CveSubProyecto").ToString.ToEntero
Dim CveVendedor As Integer = DbRowVenta("CveVendedor").ToString.ToEntero
Dim ObservacionesAlmacen = DbRowVenta("ObservacionesAlmacen").ToString()
Dim Observaciones = DbRowVenta("Observaciones").ToString()
Dim PedidoContrato = DbRowVenta("PedidoContrato").ToString()
Dim OrdenCompra = DbRowVenta("OrdenCompra").ToString()
If tCveCorte <= 0 AndAlso DbRowVenta("CveCorte").ToString.ToEntero > 0 Then tCveCorte = DbRowVenta("CveCorte").ToString.ToEntero
@@ -602,7 +609,7 @@ Partial Class Ventas_PVCobranza
CveVentaRemision = HdnCveVenta.Value.ToEntero
respFactura = GenerarFactura(CveVendedor, VentaActual, ObjVentas2, ObjClientes, ObservacionesAlmacen, VentaContado, PlazoCobranza)
respFactura = GenerarFactura(CveVendedor, VentaActual, ObjVentas2, ObjClientes, ObservacionesAlmacen, VentaContado, PlazoCobranza, Observaciones, PedidoContrato, OrdenCompra)
If respFactura Is Nothing Then
MsgError = "Ocurrió un error al generar la factura"
@@ -751,7 +758,7 @@ Partial Class Ventas_PVCobranza
Dim msBuild As New StringBuilder()
Dim MsgTimbrado As String = ""
Dim DebeTimbrar As Boolean = False
Dim DebeTimbrar As Boolean = True
'SI SE GENERO FACTURA DE INGRESO, TIMBRARLA DESPUES DE REALIZAR EL PAGO
If DebeTimbrar AndAlso respFactura IsNot Nothing Then
@@ -850,7 +857,7 @@ Partial Class Ventas_PVCobranza
UpL.Update()
End Sub
Private Function GenerarFactura(CveVendedor As Integer, ByRef VentaRemision As Venta, ByRef ObjVentas As ClsVentas, ByRef ObjClientes As ClsClientes, ObservacionesAlmacen As String, VentaConta As Boolean, PlazoCobranza As Integer) As Modelos.Factura.MMensajeFactura
Private Function GenerarFactura(CveVendedor As Integer, ByRef VentaRemision As Venta, ByRef ObjVentas As ClsVentas, ByRef ObjClientes As ClsClientes, ObservacionesAlmacen As String, VentaConta As Boolean, PlazoCobranza As Integer, Observaciones As String, PedidoContrato As String, OrdenCompra As String) As Modelos.Factura.MMensajeFactura
Dim Retorno As Modelos.Factura.MMensajeFactura = Nothing
Dim SbAlert As New StringBuilder()
@@ -893,6 +900,19 @@ Partial Class Ventas_PVCobranza
If TxtImporteEfectivo.Text.ToDecimal > 0 Then DtPagos.Rows.Add({1, TxtImporteEfectivo.Text.ToDecimal})
If TxtNCDev.Text.ToDecimal > 0 Then DtPagos.Rows.Add({21, TxtNCDev.Text.ToDecimal})
If TxtImporteOtrosContado.Text.ToDecimal() > 0 Then
Select Case DdlOtroFormaPago.SelectedValue
Case "1" 'Debito
DtPagos.Rows.Add({18, TxtImporteOtrosContado.Text.ToDecimal})
Case "2" 'Crédito
DtPagos.Rows.Add({4, TxtImporteOtrosContado.Text.ToDecimal})
Case "3" 'Transferencia
DtPagos.Rows.Add({3, TxtImporteOtrosContado.Text.ToDecimal})
End Select
End If
Dim PagoMaximo = DtPagos.MAX("Importe")
Dim CveFormaPago As Integer = DtPagos.FiltroPrimeroValor("CveFormaPago", $"Importe = {PagoMaximo}").ToEntero()
If CveFormaPago > 0 Then
@@ -966,6 +986,11 @@ Partial Class Ventas_PVCobranza
ObjFactura.CveVendedor = CveVendedor
ObjFactura.ObservacionesAlmacen = ObservacionesAlmacen
ObjFactura.Observaciones = Observaciones
ObjFactura.PedidoContrato = PedidoContrato
ObjFactura.OrdenCompra = OrdenCompra
Retorno = ObjFactura.EmitirFactura(False, Transac:=ObjVentas.IniciaTransacSQL(), Modulo:="Cobranza/GuardarVenta", MostrarURL:=True)
Retorno.Factura = ObjFactura
@@ -1294,7 +1319,7 @@ Partial Class Ventas_PVCobranza
If ObjPVenta.GetVta_MetodosPago(CveCorte) Then
If ObjPVenta.DtResultados.Rows.Count > 0 Then
GvMetodosPago.DataSource = ObjPVenta.DtResultados
GvMetodosPago.DataSource = ObjPVenta.DtResultados.FiltraParametros(" CveTipoTransaccion <> 2")
GvMetodosPago.DataBind()
UpMetodosPago.Update()
End If
@@ -1876,11 +1901,12 @@ Partial Class Ventas_PVCobranza
'falta sacar a los usuarios a notificar.
Dim gvr As GridViewRow = DirectCast(DirectCast(sender, LinkButton).BindingContainer, GridViewRow)
Dim Folio As String = gvr.DataKey("Folio")
Dim Importe As Decimal = gvr.FCTextBox(String.Format("TxtAnticipo{0}", gvr.RowIndex)).Text.ToDecimal
Dim dtt As DataTable = Nothing
Dim ObjProceso As New ClsSisProcesos
If ObjProceso.GetUsuariosconProceso(379, UsuarioActual.CveEmpresa) Then 'proceso para autorizar
dtt = ObjProceso.DtResultados.FiltraParametros("", DistinctColumns:={"CveUsuario", "Celular"})
dtt = ObjProceso.DtResultados.FiltraParametros("Celular <> ''", DistinctColumns:={"CveUsuario", "Celular"})
End If
ObjProceso.Dispose()
@@ -1893,20 +1919,27 @@ Partial Class Ventas_PVCobranza
If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 Then
For Each dr As DataRow In dtt.Rows
Dim NumeroTelefono = ""
Dim NumeroTelefono = "526621430964"
If EsProduccion Then
NumeroTelefono = String.Format("52{0}", dr("Celular").ToString())
End If
EnvioMsg = ModExtensiones.EnviarNotificacionWhatsApp2(NumeroTelefono, "", $"Solicitud de activación de anticipo.\\nFolio: {Folio}.\\nCliente: {NombreCliente}.")
Dim Arr As New ArrayList
Arr.Add(DdlSucursalCorte.SelectedItem.Text)
Arr.Add(NombreCliente)
Arr.Add(Folio)
Arr.Add($"$ {Importe}")
EnvioMsg = EnviarNotificacionWhatsAppPlantilla(NumeroTelefono, "solicitud_autorizacion_anticipo", Arr, $"https://grupodiaz.adssistemas.mx.com/Clientes/Clientes.aspx?CveCliente={CveCliente}")
'EnvioMsg = ModExtensiones.EnviarNotificacionWhatsApp2(NumeroTelefono, "", $"Solicitud de activación de anticipo.\\nFolio: {Folio}.\\nCliente: {NombreCliente}.")
ClsSisNotificaciones.EnviarAlerta("Solicitud de Anticipo", $"Solicitud de activación de anticipo Folio: {Folio} <br/><a href='/Ventas/Clientes.aspx?CveCliente={CveCliente}&op=ant'>Ir Activar</a>", dr("CveUsuario").ToString, Tipo:=TipoNotificacion.ToastInformacionB)
Next
If EnvioMsg Then
Alert("Se envió una solicitud de autorización", TipoMensaje.ToastInformacion)
'Else
' Alert("No se envió la solicitud de autorización", TipoMensaje.MsgAdvertencia)
End If
End If
If EnvioMsg Then
Alert("Se envió una solicitud de autorización")
Else
Alert("No se envió la solicitud de autorización", TipoMensaje.MsgAdvertencia)
End If
UpAnticipos.Update()
End Sub

View File

@@ -69,18 +69,29 @@
<td class="text-right"><b>Nombre del Cliente:</b></td>
<td style="width: 250px;">
<ADS:Dropdownlost ID="DdlNombre" runat="server" CssStyle="width: 95%;" DataTextField="NombreComercial" Onselectedindexchange="DdlNombre_selectedindexchange" DataValueField="CveCliente"></ADS:Dropdownlost>
<asp:DropDownList ID="DdlSucursalCliente" runat="server" Visible="false" AppendDataBoundItems="true" DataTextField="SucursalCliente" DataValueField="CveClienteSucursal" Class="table-group-action-input form-control input-inline input-sm select2me" Width="230px">
<asp:ListItem Selected="True" Text=" - " Value="-1"></asp:ListItem>
</asp:DropDownList>
<%--<asp:DropDownList ID="DdlNombre" runat="server" CssClass="select2me" DataTextField="CodigoNombre" AutoPostBack="true" DataValueField="CveCliente" Width="230px"></asp:DropDownList>--%>
</td>
<td class="text-right"><b>Vendedor:</b></td>
<td>
<asp:DropDownList ID="DdlVendedor" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" DataTextField="Vendedor" DataValueField="CveVendedor" Width="228px" >
<asp:ListItem Selected="true" Text="Todos" Value="-1" ></asp:ListItem>
</asp:DropDownList>
</td>
<td align="left" class="text-right"><b>
<%--<td align="left" class="text-right"><b>
<asp:Literal ID="LitSucursalCliente" runat="server" Visible="false">Sucursal del Cliente:</asp:Literal></b>
<td style="width: 250px;">
<asp:DropDownList ID="DdlSucursalCliente" runat="server" Visible="false" AppendDataBoundItems="true" DataTextField="SucursalCliente" DataValueField="CveClienteSucursal" Class="table-group-action-input form-control input-inline input-sm select2me" Width="230px">
<asp:ListItem Selected="True" Text=" - " Value="-1"></asp:ListItem>
</asp:DropDownList>
</td>
</td>
</td>--%>
<%-- <td class="text-right"><b>Código del Cliente:</b></td>
@@ -165,12 +176,7 @@
</td>
</tr>
<tr align="left" runat="server" id="TRVendedores" >
<td class="text-right"><b>Vendedor:</b></td>
<td>
<asp:DropDownList ID="DdlVendedor" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" DataTextField="Vendedor" DataValueField="CveVendedor" Width="228px" >
<asp:ListItem Selected="true" Text="Todos" Value="-1" ></asp:ListItem>
</asp:DropDownList>
</td>
<td class="text-right"></td>
<td>

View File

@@ -244,15 +244,15 @@ Partial Class PopUpBuscarFolio
If ObjCliente.GetSucursales(DdlNombre.SelectedValue.ToEntero) Then
DdlSucursalCliente.DataSource = ObjCliente.DtResultados
If ObjCliente.DtResultados.Rows.Count > 0 Then
LitSucursalCliente.Visible = True
'LitSucursalCliente.Visible = True
DdlSucursalCliente.Visible = True
Else
LitSucursalCliente.Visible = False
'LitSucursalCliente.Visible = False
DdlSucursalCliente.Visible = False
End If
Else
DdlSucursalCliente.DataSource = Nothing
LitSucursalCliente.Visible = False
'LitSucursalCliente.Visible = False
DdlSucursalCliente.Visible = False
End If
ObjCliente.Dispose()

View File

@@ -165,10 +165,23 @@
<div class="row">
<label class="col-md-2 truncate">Estatus:</label>
<div class="col-md-4">
<div class="col-md-2">
<asp:CheckBox ID="ChkEstatus" runat="server" />
</div>
<div class="col-md-1">
Usuario:
</div>
<div class="col-md-4">
<asp:Label runat="server" ID="LblUsuario"></asp:Label>
</div>
<div class="col-md-1">
Fecha:
</div>
<div class="col-md-2">
<asp:Label runat="server" ID="LblFechaIng"></asp:Label>
</div>
</div>
</div>
</div>

View File

@@ -222,7 +222,7 @@ Partial Class Ventas_Promociones
divBitacora.Visible = True
Dim ObjGral As New ClsGenerales()
If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CvePromocion:=CvePromocion) Then
GvBitacora.DataSource = ObjGral.DtResultados
GvBitacora.DataSource = ObjGral.DtResultados.FiltraParametros("", "CveHistorialBitacora DESC")
End If
ObjGral.Dispose()
GvBitacora.DataBind()
@@ -260,12 +260,10 @@ Partial Class Ventas_Promociones
DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
If EmpresaGrupoDiaz AndAlso PermisoAutorizPromocionPorcentaje Then
If PermisoAutorizPromocionPorcentaje Then
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
End If
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa)
DdlVendedor.DataBind()
DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1"))
@@ -433,6 +431,8 @@ Partial Class Ventas_Promociones
TxtFechaF.Text = Dr("FechaFin").ToString.ToDate.ToShortDateString
DdlSubProyecto.SelectedValue = Dr("CveSubProyecto").ToString
DdlMarca.SelectedValue = Dr("CveMarca").ToString
LblUsuario.Text = Dr("Usuario").ToString
LblFechaIng.Text = Dr("FechaIng").ToString.ToDate.ToString("dd/MM/yyyy")
If Dr("CveVendedor").ToString.ToEntero > 0 Then DdlVendedor.SelectedValue = Dr("CveVendedor").ToString
If Dr("CveCliente").ToString.ToEntero > 0 Then
@@ -969,14 +969,20 @@ Partial Class Ventas_Promociones
If Not TieneError And Dr("HoraInicio").ToString <> Dr2("HoraInicio").ToString Then
If Not ObjGral.AddHistorialBitacora(372, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("HoraInicio").ToString, $"{Dr("CodigoPS").ToString} - {Dr2("HoraInicio").ToString}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then
Dim Anterior As String = If(Dr2("HoraInicio").ToString.ToDate.Year = 1900, "", Dr2("HoraInicio").ToString)
If Not ObjGral.AddHistorialBitacora(372, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("HoraInicio").ToString, $"{Dr("CodigoPS").ToString} - { Anterior}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then
TieneError = True
Exit For
End If
End If
If Not TieneError And Dr("HoraFin").ToString <> Dr2("HoraFin").ToString Then
If Not ObjGral.AddHistorialBitacora(373, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("HoraFin").ToString, $"{Dr("CodigoPS").ToString} - {Dr2("HoraFin").ToString}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then
Dim Anterior As String = If(Dr2("HoraFin").ToString.ToDate.Year = 9999, "", Dr2("HoraFin").ToString)
If Not ObjGral.AddHistorialBitacora(373, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("HoraFin").ToString, $"{Dr("CodigoPS").ToString} - {Anterior}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then
TieneError = True
Exit For
End If

View File

@@ -629,15 +629,15 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
var CancelacionPagos = Modelos.OpcionesCancelacionPagos.SinPagos;
if (UsuarioActual.Empresa.Funcionalidad(109) == "1")
if (UsuarioActual.Empresa.Funcionalidad(109) == "1" || UsuarioActual.Empresa.Funcionalidad(382) == "1")
{
CancelacionPagos = Modelos.OpcionesCancelacionPagos.ConPagos_CancelarIE;
}
if (UsuarioActual.Empresa.Funcionalidad(382) == "1")
{
CancelacionPagos = Modelos.OpcionesCancelacionPagos.ConPagos_GenerarIxC;
}
//if (UsuarioActual.Empresa.Funcionalidad(382) == "1")
//{
// CancelacionPagos = Modelos.OpcionesCancelacionPagos.ConPagos_GenerarIxC;
//}
retorno = factura.EjecutarCancelacionPendiente(CveEstatus, CancelacionFecha, CancelacionAcuse, CancelacionPagos: CancelacionPagos);

View File

@@ -407,6 +407,10 @@
<li>
<asp:HyperLink ID="HLFAgregarOS" Target="_blank" runat="server" Visible="false"> <i class="fa fa-plus"></i> Agregar Orden de Servicio</asp:HyperLink>
</li>
<li id="LiCalcularPromociones" runat="server" visible="false">
<asp:LinkButton ID="LnkCalcularPromociones" runat="server" CausesValidation="False" Text="<i class='fa fa-tag'></i> Aplicar promociones" OnClick="LnkCalcularPromociones_Click"
data-toggle="confirmation" data-popout="true" data-original-title="¿Aplicar Promociones?" data-btn-ok-label="si" />
</li>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="LnkImprimir" EventName="Click" />
@@ -1338,7 +1342,7 @@
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:Literal ID="LtlPSEdit" runat="server" Visible="false" Text='<%# Eval("PS") %>'></asp:Literal>
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width: 100%;" CssClass="DdlPS" CssClassDdl="select2me " DataTextField="PSCodigo" DataValueField="CvePS" data-onresult="CargaExistenciaAlmacenes" Onselectedindexchange="DdlPSEdit_SelectedIndexChanged" />
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width: 100%;" CssClass="DdlPS" CssClassDdl="select2me " IncluyeTodos="false" DataTextField="PSCodigo" DataValueField="CvePS" data-onresult="CargaExistenciaAlmacenes" Onselectedindexchange="DdlPSEdit_SelectedIndexChanged" />
<%--<asp:RequiredFieldValidator ID="RFVPS" runat="server" ControlToValidate="DdlPS" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Producto o Servicio''</b> es necesario, por favor seleccione uno." ValidationGroup="GprGV" CssClass="select2me"></asp:RequiredFieldValidator>--%>
<%--<ajax:ValidatorCalloutExtender ID="VCOPS" runat="server" HighlightCssClass="vco" TargetControlID="RFVPS" Width="300px"></ajax:ValidatorCalloutExtender>--%>
</EditItemTemplate>
@@ -8343,7 +8347,7 @@
<div id="DivCorreoCuentaCliente" runat="server" visible="false" class="row" style="padding-left: 16px;">
<div class="form-group form-md-line-input input-iconright col-xs-6">
<asp:TextBox ID="TxtCorreoCliente" CssClass="form-control" runat="server" MaxLength="300" CausesValidation="true"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" CssClass="help-block errorimput" ValidationExpression="(([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)(\s*;\s*|\s*$))*" ControlToValidate="TxtCorreoCliente" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Email''</b> no es válido, por favor ingrése uno correcto." ValidationGroup="GrpGuardarCliente"></asp:RegularExpressionValidator>
<%--<asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" CssClass="help-block errorimput" ValidationExpression="(([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)(\s*;\s*|\s*$))*" ControlToValidate="TxtCorreoCliente" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Email''</b> no es válido, por favor ingrése uno correcto." ValidationGroup="GrpGuardarCliente"></asp:RegularExpressionValidator>--%>
<label for="<%= TxtCorreoCliente.ClientID.ToString()%>">Email: </label>
<i></i>
</div>

View File

@@ -10,6 +10,7 @@ Imports System.Security.Cryptography.X509Certificates
Imports ADSNetLibrary.SIGAPI.Models.CRM.Request
Imports ADSNetLibrary.SIGAPI.Services.CRM
Imports ADSTimbrado
Imports com.itextpdf.text.pdf.languages
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Imports Modelos
@@ -2745,7 +2746,7 @@ Partial Class Ventas
HdnCveCliente.Value = "-1"
'SI TIENE UN CLIENTE POR DEFECTO DEBE CARGARLO AL INICIAR
If UsuarioActual.Empresa.Funcionalidad(714).ToEntero() > 0 Then
If UsuarioActual.Empresa.Funcionalidad(714).ToEntero() > 0 AndAlso (Request("CveVenta") IsNot Nothing AndAlso Request("CveVenta").ToString().ToEntero() <= 0) Then
ViewState("CveCliente") = UsuarioActual.Empresa.Funcionalidad(714).ToEntero()
HdnCveCliente.Value = UsuarioActual.Empresa.Funcionalidad(714)
RBLPago.SelectedValue = "2"
@@ -6892,7 +6893,7 @@ Partial Class Ventas
LnkAgregarCliente.Visible = False
'SI EL CLIENTE ES DIFERENTE DEL PREDETERMINADO Y PERMITE CREDITO, REGRESAR EL METODO DE PAGO A CREDITO
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso UsuarioActual.Empresa.Funcionalidad(714).ToEntero() > 0 AndAlso CveCliente <> UsuarioActual.Empresa.Funcionalidad(714).ToEntero() AndAlso RBLPago.SelectedValue = "2" AndAlso Me.PermiteCredito AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem") Then
If (CveVenta <= 0 AndAlso Not EsCreaApartirDe) AndAlso UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso UsuarioActual.Empresa.Funcionalidad(714).ToEntero() > 0 AndAlso CveCliente <> UsuarioActual.Empresa.Funcionalidad(714).ToEntero() AndAlso RBLPago.SelectedValue = "2" AndAlso Me.PermiteCredito AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem") Then
RBLPago.SelectedValue = "1"
End If
@@ -7385,18 +7386,7 @@ Partial Class Ventas
If (CveVenta <= 0 AndAlso CveCotizacion <= 0) Or EsCreaApartirDe Or NuevaFactura = 1 OrElse ModalidadEdicion Then
'CveMetodoPagoCliente = ObjCliente.CveMetodoPago
If UsuarioActual.Empresa.Funcionalidad(589) = "1" Then
'SI EL METODO DE PAGO ES PUE, SELECCIONA CONTADO
If Me.CveMetodoPago33Cliente = 1 Then
RBLPago.SelectedValue = "2"
ElseIf Me.CveMetodoPago33Cliente = 3 Then
RBLPago.SelectedValue = "1"
'SI ESTA BLOQUEADO EL CREDITO, DEJAR CONTADO
If Not RBLPago.Items(0).Enabled Then
RBLPago.SelectedValue = "2"
End If
End If
RBLPago_SelectedIndexChanged(RBLPago, Nothing)
UPCondicionesPago.Update()
VerificaFormaPago()
Else
DdlMetodoPago33.SelectedValueExist(Me.CveMetodoPago33Cliente)
CambiaMetodoPago33()
@@ -7471,6 +7461,29 @@ Partial Class Ventas
'End If
End Sub
Private Sub VerificaFormaPago()
If UsuarioActual.Empresa.Funcionalidad(589) = "1" Then
'SI EL METODO DEL CLIENTE ES PUE, PERMITE CREDITO Y LO TIENE HABILITADO, EL METODO SE CAMBIARA A PPD
If Me.CveMetodoPago33Cliente = 1 AndAlso Me.PermiteCredito AndAlso RBLPago.Items(0).Enabled AndAlso TieneBloqueoPorCreditoVencimiento = 0 Then
Me.CveMetodoPago33Cliente = 3
End If
'SI EL METODO DE PAGO ES PUE, SELECCIONA CONTADO
If Me.CveMetodoPago33Cliente = 1 Then
RBLPago.SelectedValue = "2"
ElseIf Me.CveMetodoPago33Cliente = 3 Then
RBLPago.SelectedValue = "1"
'SI ESTA BLOQUEADO EL CREDITO, DEJAR CONTADO
If Not RBLPago.Items(0).Enabled Then
RBLPago.SelectedValue = "2"
End If
End If
RBLPago_SelectedIndexChanged(RBLPago, Nothing)
UPCondicionesPago.Update()
End If
End Sub
Private Sub HabilitarRemisionesPublicoGeneral()
If UsuarioActual.Empresa.Funcionalidad(381).Trim() <> "" Then
'SI ESTA BLOQUEADO POR AUTORIZACION, HABILITAR LA OPCION DE REMISION PARA PUBLICO EN GENERAL
@@ -7765,24 +7778,15 @@ Partial Class Ventas
End If
End If
If Not EsFilial AndAlso (((DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso CveVenta <= 0) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso CveVenta > 0)) AndAlso RBLPago.SelectedValue = "1" AndAlso PermiteCredito) Then
Dim tTipoDocto As String = ""
If ValorAutorizacion = "3" Then tTipoDocto = "Rem"
If Not EsFilial AndAlso (((DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso CveVenta <= 0) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Cot", tTipoDocto) AndAlso CveVenta > 0)) AndAlso RBLPago.SelectedValue = "1" AndAlso PermiteCredito) Then
'FUNCIONALIDAD 702 - NO VERIFICAR LIMITE DE CRÉDITO Y CANDADOS DE VENTA
If Not UsuarioActual.Empresa.Funcionalidad(702) = "1" Then
If UsuarioActual.Empresa.Funcionalidad(589) = "1" Then
'SI EL METODO DE PAGO ES PUE, SELECCIONA CONTADO
If Me.CveMetodoPago33Cliente = 1 Then
RBLPago.SelectedValue = "2"
ElseIf Me.CveMetodoPago33Cliente = 3 Then
RBLPago.SelectedValue = "1"
End If
RBLPago_SelectedIndexChanged(RBLPago, Nothing)
UPCondicionesPago.Update()
Else
RBLPago.SelectedValue = "1"
RBLPago_SelectedIndexChanged(RBLPago, Nothing)
UPCondicionesPago.Update()
End If
RBLPago.SelectedValue = "1"
RBLPago_SelectedIndexChanged(RBLPago, Nothing)
UPCondicionesPago.Update()
Dim CreditoDispo As Decimal = GetSaldoCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero())
@@ -7941,6 +7945,16 @@ Partial Class Ventas
End If
End If
'SOLO HABILITAR PARA GENERAR NOTAS DE CREDITO
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
LnkSolicitarCredito.Visible = True
If DdlSolCreditoTipoDocto.Items.FindByValue("Ing") IsNot Nothing Then
DdlSolCreditoTipoDocto.Items.Remove(DdlSolCreditoTipoDocto.Items.FindByValue("Ing"))
End If
End If
End If
@@ -8055,6 +8069,24 @@ Partial Class Ventas
End If
End If
Case "3" ' autorización con vinculación a una venta registrada
Dim Vta As New ClsVentas
Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa)
Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta)
Vta.Dispose()
If Opcion > 0 Then
If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia)
Else
If Alertas Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia)
End If
TrCredito1.Visible = True
ChkSolicitudAutorizacionCredito.Checked = True
LnkSolicitarCredito.Visible = True
divModalidad2.Visible = False
divModalidad3.Visible = True
Me.Bloqueada = True
Case Else 'SI NO TIENE NINGUN TIPO DE AUTORIZACION CONFIGURADO
'VERIFICAR CANDADOS DE VENTA
@@ -8254,6 +8286,16 @@ Partial Class Ventas
End If
End If
'SOLO HABILITAR PARA GENERAR NOTAS DE CREDITO
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso ClienteEsDistribuidor AndAlso Not PermiteCredito AndAlso Not LnkSolicitarCredito.Visible Then
LnkSolicitarCredito.Visible = True
If DdlSolCreditoTipoDocto.Items.FindByValue("Ing") IsNot Nothing Then
DdlSolCreditoTipoDocto.Items.Remove(DdlSolCreditoTipoDocto.Items.FindByValue("Ing"))
End If
End If
If DdlTipoComprobante.SelectedValue.Contiene("Rem", "PeC", "PA", "Ped") Then
'ENVIO DE FACTURA
ChkEnviarFactura.Checked = False
@@ -9139,7 +9181,11 @@ Partial Class Ventas
Dim DrProducto = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePSNuevo).FiltroPrimero("")
If Not ValidaAgregarPS(Cantidad, CvePSNuevo, DdlUM.SelectedValue.ToEntero(), PU, DrProducto("CveTipoPS").ToString().ToEntero(), DdlCla.SelectedValue.ToEntero(), DdlSP.SelectedValue.ToEntero(), ObjDescuento, CantidadOriginal:=CantidadOriginal) Then
Dim CveUMPS As Integer = DrProducto("CveUnidadMedida").ToString().ToEntero()
DdlUM.SelectedValueExist(CveUMPS)
If Not ValidaAgregarPS(Cantidad, CvePSNuevo, DdlUM.SelectedValue.ToEntero(), PU, DrProducto("CveTipoPS").ToString().ToEntero(), DdlCla.SelectedValue.ToEntero(), DdlSubProyectoDatos.SelectedValue.ToEntero(), ObjDescuento, CantidadOriginal:=CantidadOriginal) Then
Exit Sub
End If
@@ -9156,8 +9202,10 @@ Partial Class Ventas
If TmpDT.Rows(e.RowIndex)("CvePS").ToString() <> GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedValue Then
'eliminar y cargar el ps ***
Dim ConsecutivoActual As Integer = TmpDT.Rows(e.RowIndex)("Consec").ToString().ToEntero()
If DtPromociones IsNot Nothing AndAlso DtPromociones.Rows.Count > 0 Then
ObjDescuento = CalcularDescuentos(GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedValue.ToEntero(), Cantidad, PU)
ObjDescuento = CalcularDescuentos(CvePSNuevo, Cantidad, PU)
End If
Dim NumTurnos As Decimal = 0
@@ -9188,13 +9236,32 @@ Partial Class Ventas
End If
End If
Dim SubProyecto As String = ""
Dim CveSubProyecto As Integer = -1
Dim Proyecto As String = ""
Dim CveProyecto As Integer = -1
If GvPS.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedItem IsNot Nothing Then
Proyecto = GvPS.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedItem.Text
CveProyecto = GvPS.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedValue.ToEntero()
End If
If GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedItem IsNot Nothing Then
SubProyecto = GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedItem.Text
CveSubProyecto = GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero()
Else
SubProyecto = DdlSubProyectoDatos.SelectedItem.Text
CveSubProyecto = DdlSubProyectoDatos.SelectedValue.ToEntero()
End If
AgregarProductoServicio(Cantidad, DdlUM.SelectedValue.ToEntero(), DdlUM.SelectedItem.Text, DdlCla.SelectedValue.ToEntero(), DdlCla.SelectedItem.Text,
GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedValue.ToEntero(), GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedText,
GvPS.Rows(e.RowIndex).FCTextBox("TxtObsPS").Text.Trim, PU, ObjDescuento.ImporteDescuento,
GvPS.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedValue.ToEntero(), GvPS.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedItem.Text,
GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero(), GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedItem.Text,
CveProyecto, Proyecto,
CveSubProyecto, SubProyecto,
CuentaPredial:=CuentaPredial, CveVentaDetalle:=GvPS.Rows(e.RowIndex).DataKey("CveVentaDetalle").ToString().ToEntero(), SeActualiza:=True, CvePromocionDetalle:=ObjDescuento.CvePromocionDetalle,
ObjDescuento:=ObjDescuento, NumTurnos:=NumTurnos, CvePrecioLista:=CvePrecioLista, PrecioLista:=PrecioLista)
ObjDescuento:=ObjDescuento, NumTurnos:=NumTurnos, CvePrecioLista:=CvePrecioLista, PrecioLista:=PrecioLista, ConsecutivoManual:=ConsecutivoActual)
' TmpDT.Rows(e.RowIndex)("CveUM") = Ddl.SelectedValue
' TmpDT.Rows(e.RowIndex)("UM") = Ddl.SelectedItem.Text
@@ -9411,7 +9478,7 @@ Partial Class Ventas
Private Sub GvInv_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvInv.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If UsuarioActual.Empresa.Funcionalidad(567) = "1" Then
If UsuarioActual.Empresa.Funcionalidad(567) = "1" OrElse (UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso DdlTipoComprobante.SelectedValue = "Dev") Then
e.Row.FCCheckBox("cbInv").Checked = True
End If
@@ -11079,10 +11146,6 @@ Partial Class Ventas
DebeTimbrar = False
End If
End If
'RMF, codigo temporal
If UsuarioActual.CveEmpresa.Contiene(189) Then
DebeTimbrar = False
End If
'Si es AMORTIZACIÓN ANTICIPO SOBRE FACTURA EN CERO no debe timbrar
If DdlTipoAmortizacionAnticipo.SelectedValue = "3" Then
@@ -16491,7 +16554,7 @@ Partial Class Ventas
Next
End If
If UsuarioActual.Empresa.Funcionalidad(567) = "1" AndAlso factura.TipoDocto.Contiene("Ing", "Dev") AndAlso DivAlmacen.Visible AndAlso GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 Then
If factura.TipoDocto.Contiene("Ing", "Dev") AndAlso DivAlmacen.Visible AndAlso GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 Then
Dim Filtro As String = ""
Select Case factura.TipoDocto
@@ -16579,12 +16642,22 @@ Partial Class Ventas
If drPU IsNot Nothing Then
PU = drPU("PU").ToString.ToDecimal
Else
'sino se encontró valor, manda mensaje
ErrorList.Add("Ocurrió un error al obtener el costo.<br />")
OcurrioError = True
Exit For
'OBTENGO EL ÚLTIMO COSTO
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.GetUltimoCosto(UsuarioActual.CveEmpresa, Dr("CvePS").ToString.ToEntero) Then
Dim drcosto As DataRow = ObjInventarios.DtResultados.FiltroPrimero("")
If drcosto IsNot Nothing Then
PU = drcosto("UltimoCosto").ToString.ToDecimal
End If
End If
ObjInventarios.Dispose()
If PU <= 0 Then
'sino se encontró valor, manda mensaje
ErrorList.Add("Ocurrió un error al obtener el costo.<br />")
OcurrioError = True
Exit For
End If
End If
End If
Dim CveSeccionAlmacen As Integer = -3
'If AplicaSeccion Then CveSeccionAlmacen = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, CveAlmacen, CveProducto).FiltroPrimeroValor("CveSeccionAlmacen", "").ToEntero
@@ -17900,9 +17973,6 @@ Partial Class Ventas
Dim SeTimbro As Boolean = False
Dim DebeTimbrar As Boolean = True
If UsuarioActual.CveEmpresa.Contiene(189) Then
DebeTimbrar = False
End If
Try
If DebeTimbrar Then
@@ -17934,16 +18004,27 @@ Partial Class Ventas
End If
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant", "Egs") Then
'If Not ImprimeAlert Then
Dim ArchivoIng As New System.IO.FileInfo(String.Format("{0}Formatos/Factura.rdlc", UsuarioActual.Empresa.Ruta))
Dim ArchivoRem As New System.IO.FileInfo(String.Format("{0}Formatos/Remision.rdlc", UsuarioActual.Empresa.Ruta))
Dim ArchivoEgs As New System.IO.FileInfo(String.Format("{0}Formatos/NotaCredito.rdlc", UsuarioActual.Empresa.Ruta))
If UsuarioActual.Empresa.Funcionalidad(707) = "1" Then
Dim ArchivoIng As New System.IO.FileInfo(String.Format("{0}Formatos/Factura.mrt", UsuarioActual.Empresa.Ruta))
Dim ArchivoRem As New System.IO.FileInfo(String.Format("{0}Formatos/Remision.mrt", UsuarioActual.Empresa.Ruta))
Dim ArchivoEgs As New System.IO.FileInfo(String.Format("{0}Formatos/NotaCredito.mrt", UsuarioActual.Empresa.Ruta))
If ArchivoIng.Exists Or ArchivoRem.Exists Or ArchivoEgs.Exists Then
MensajeAlert.AppendFormat("<ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar PDF</a></li></ul><br/>", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1", CveVenta)))
If ArchivoIng.Exists Or ArchivoRem.Exists Or ArchivoEgs.Exists Then
MensajeAlert.AppendFormat("<ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar PDF</a></li></ul><br/>", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1", CveVenta)))
Else
MensajeAlert.Append("Ocurrió un error al generar el PDF. Por favor vuelva a entrar a la factura para imprimir el PDF. ")
End If
Else
MensajeAlert.Append("Ocurrió un error al generar el PDF. Por favor vuelva a entrar a la factura para imprimir el PDF. ")
Dim ArchivoIng As New System.IO.FileInfo(String.Format("{0}Formatos/Factura.rdlc", UsuarioActual.Empresa.Ruta))
Dim ArchivoRem As New System.IO.FileInfo(String.Format("{0}Formatos/Remision.rdlc", UsuarioActual.Empresa.Ruta))
Dim ArchivoEgs As New System.IO.FileInfo(String.Format("{0}Formatos/NotaCredito.rdlc", UsuarioActual.Empresa.Ruta))
If ArchivoIng.Exists Or ArchivoRem.Exists Or ArchivoEgs.Exists Then
MensajeAlert.AppendFormat("<ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar PDF</a></li></ul><br/>", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1", CveVenta)))
Else
MensajeAlert.Append("Ocurrió un error al generar el PDF. Por favor vuelva a entrar a la factura para imprimir el PDF. ")
End If
End If
End If
@@ -18590,6 +18671,25 @@ Partial Class Ventas
Dim DdlPrecioListaEdit = GvRow.FCDropDownList("DdlPrecioListaEdit")
If UsuarioActual.CveEmpresa = 189 Then
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Cot", "Ped") AndAlso GvRow.FCHtmlGenericControl("DivPrecioLista").Visible Then
Using ObjVta As New ClsVentas
If ObjVta.GetPreciosListaSPPermitidos(DdlSubProyectoDatos.SelectedValue.ToEntero(), CvePSParametro, UsuarioActual.CveEmpresa) Then
Dim Dt As DataTable = Nothing
If UsuarioActual.TienePermisoProceso(384) Then
Dt = ObjVta.DtResultados.Copy()
Else
Dt = ObjVta.DtResultados.FiltraParametros("Restringuida = 'False'")
End If
GvRow.FCDropDownList("DdlPrecioListaEdit").DataSource = Dt
GvRow.FCDropDownList("DdlPrecioListaEdit").DataBind()
GvRow.FCDropDownList("DdlPrecioListaEdit").SelectedValueExist(GvRow.DataKey("CvePrecioLista"))
End If
End Using
End If
End If
Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSParametro).FiltroPrimero("")
If DrPS IsNot Nothing Then
'SUGIERE PRECIO
@@ -19926,7 +20026,7 @@ Partial Class Ventas
ObjDescuento = ObjDescuentoGral
End If
If ValidaAgregarPS(Cantidad, CvePS, DdlUnidadMedida.SelectedValue.ToEntero(), PU, HdnTipoPS.Value.ToEntero(), DdlClasificacion.SelectedValue.ToEntero(), DdlSubProyecto.SelectedValue.ToEntero(), ObjDescuento) Then
If ValidaAgregarPS(Cantidad, CvePS, DdlUnidadMedida.SelectedValue.ToEntero(), PU, HdnTipoPS.Value.ToEntero(), DdlClasificacion.SelectedValue.ToEntero(), DdlSubProyectoDatos.SelectedValue.ToEntero(), ObjDescuento) Then
If UsuarioActual.Empresa.Funcionalidad(507) = DdlPS.SelectedValue Then
CvePSAmortizacion = DdlPS.SelectedValue.ToEntero().ToEntero()
@@ -20258,7 +20358,7 @@ Partial Class Ventas
Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional SeActualiza As Boolean = False, Optional CvePromocionDetalle As Integer = -1, Optional EsCargo As Boolean = False,
Optional ImporteProntoPago As Decimal = 0, Optional ByRef ObjDescuento As Modelos.VentaDescuentos = Nothing, Optional CvePrecioLista As Integer = -1, Optional PrecioLista As String = "",
Optional CveActivoFijo As Integer = -1, Optional AFDepreciacion As Decimal = 0D, Optional AFValorInicial As Decimal = 0D, Optional NumTurnos As Decimal = 0D, Optional CantidadConversion As Decimal = 0,
Optional Costo As Decimal = 0, Optional PorcentajeIVAFijo As Decimal = -1) As Boolean
Optional Costo As Decimal = 0, Optional PorcentajeIVAFijo As Decimal = -1, Optional ConsecutivoManual As Integer = 0) As Boolean
Dim Retorno As Boolean = False
Try
@@ -20301,16 +20401,22 @@ Partial Class Ventas
Row("SubProyecto") = SubProyecto
Row("Serie") = Serie
Row("TiempoEntrega") = TiempoEntrega
If Modalidad = "U" Then
Row("Orden") = Index
If ConsecutivoManual > 0 Then
Row("Orden") = ConsecutivoManual
Else
Dim ConsecutivoActual As Integer = TmpDT.MAX("Consec").ToEntero()
If ConsecutivoActual < 0 Then
ConsecutivoActual = 0
If Modalidad = "U" Then
Row("Orden") = Index
Else
Dim ConsecutivoActual As Integer = TmpDT.MAX("Consec").ToEntero()
If ConsecutivoActual < 0 Then
ConsecutivoActual = 0
End If
Row("Orden") = ConsecutivoActual + 1
End If
Row("Orden") = ConsecutivoActual + 1
End If
Dim DrPS As DataRow = Nothing
DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
@@ -20415,16 +20521,22 @@ Partial Class Ventas
Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana")
Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion")
Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion")
If Modalidad = "U" Then
Row("Consec") = Index
If ConsecutivoManual > 0 Then
Row("Consec") = ConsecutivoManual
Else
Dim ConsecutivoActual As Integer = TmpDT.MAX("Consec").ToEntero()
If ConsecutivoActual < 0 Then
ConsecutivoActual = 0
If Modalidad = "U" Then
Row("Consec") = Index
Else
Dim ConsecutivoActual As Integer = TmpDT.MAX("Consec").ToEntero()
If ConsecutivoActual < 0 Then
ConsecutivoActual = 0
End If
Row("Consec") = ConsecutivoActual + 1
End If
Row("Consec") = ConsecutivoActual + 1
End If
Row("PS") = DrPS("PS")
Row("CodigoPS") = DrPS("PSCodigo").ToString()
Row("CveTipoPS") = DrPS("CveTipoPS")
@@ -23771,6 +23883,11 @@ Partial Class Ventas
End If
End If
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
LiCalcularPromociones.Visible = True
End If
TxtAtencionA.Enabled = True
UpCliente.Update()
@@ -23778,6 +23895,7 @@ Partial Class Ventas
UpPS.Update()
UpCliente.Update()
UPObservaciones.Update()
UpnTools.Update()
End Sub
Private Sub BtnEditarRemision_Click(sender As Object, e As EventArgs) Handles BtnEditarRemision.Click
@@ -23904,7 +24022,7 @@ Partial Class Ventas
For Each Row As DataRow In TmpDT.Rows
Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString().ToEntero()
If CveVentaDetalle > 0 Then
If Not ObjVentas.UpdateVentaDetalleRemision(Row("CveVentaDetalle").ToString().ToEntero(), Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDecimal, Row("PU").ToString().ToDecimal(), Row("ImporteIEPS").ToString().ToDecimal(), Row("PorcentajeIEPS").ToString().ToDecimal(), Row("ImporteIVA").ToString().ToDecimal(), Row("PorcentajeIVA").ToString().ToDecimal(), Row("Descuento").ToString().ToDecimal(), Row("Obs").ToString(), UsuarioActual.CveUsuario) Then
If Not ObjVentas.UpdateVentaDetalleRemision(Row("CveVentaDetalle").ToString().ToEntero(), Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDecimal, Row("PU").ToString().ToDecimal(), Row("ImporteIEPS").ToString().ToDecimal(), Row("PorcentajeIEPS").ToString().ToDecimal(), Row("ImporteIVA").ToString().ToDecimal(), Row("PorcentajeIVA").ToString().ToDecimal(), Row("Descuento").ToString().ToDecimal(), Row("Obs").ToString(), UsuarioActual.CveUsuario, CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero()) Then
OcurrioError = True
Exit For
End If
@@ -23912,7 +24030,7 @@ Partial Class Ventas
If Not ObjVentas.AddVentaDetalle(CveVenta, Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDecimal, Row("CveUM").ToString().ToEntero(),
Row("PU").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("ImporteIVA").ToString().ToDecimal, Math.Round((Row("Total").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)) * (1 + Row("PorcentajeIVA").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)))), 6),
Row("Obs").ToString(), Row("Descuento").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(), PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, IEPS:=Row("ImporteIEPS").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, TiempoEntrega:=Row("TiempoEntrega").ToString(),
CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=If(DtPromociones IsNot Nothing, DtPromociones.FiltroPrimeroValor("CvePromocionDetalle", $"CvePS={Row("CvePS").ToString()}").ToEntero(), -1),
CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero(),
ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDecimal, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDecimal, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDecimal, CuentaPredial:=Row("CuentaPredial").ToString(), CvePrecioLista:=Row("CvePrecioLista").ToString().ToEntero(), CveActivoFijo:=Row("CveActivoFijo").ToString().ToEntero(), NumTurnos:=Row("NumTurnos").ToString().ToDecimal()) Then
OcurrioError = True
Exit For
@@ -24842,9 +24960,13 @@ Partial Class Ventas
End Sub
Private Sub RBLPago_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RBLPago.SelectedIndexChanged
LimpiaEscondeContado()
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
RecalculaPrecios()
End If
Dim EjecutaRecalculaPrecios As Boolean = False
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then EjecutaRecalculaPrecios = True
If UsuarioActual.CveEmpresa = 189 Then EjecutaRecalculaPrecios = False
If EjecutaRecalculaPrecios Then RecalculaPrecios(False)
End Sub
Private Function ValidaPagosContado(Optional MostrarAlertas As Boolean = True, Optional TipoDoctoViejo As String = "") As Boolean
Dim Retorno As Boolean = False
@@ -25166,14 +25288,14 @@ Partial Class Ventas
Dim ObjCliente As New ClsClientes
If ObjCliente.BuscarClienteRFCNombre(TxtRFCNombre.Text, UsuarioActual.CveEmpresa) Then
If ObjCliente.DtResultados.Rows.Count = 1 AndAlso TxtRFCNombre.Text.Trim() <> "XAXX010101000" Then
If ObjCliente.DtResultados.Rows.Count = 1 AndAlso Not TxtRFCNombre.Text.Trim().Contiene("XAXX010101000", "XEXX010101000") Then
RegistraScript("hideDivEC();")
ViewState("CveCliente") = ObjCliente.DtResultados(0)("CveCliente").ToString().ToEntero()
HdnCveCliente.Value = ObjCliente.DtResultados(0)("CveCliente").ToString()
CargaCliente(CveCliente)
UpCliente.Update()
ElseIf ObjCliente.DtResultados.Rows.Count > 0 AndAlso TxtRFCNombre.Text.Trim() <> "XAXX010101000" Then
ElseIf ObjCliente.DtResultados.Rows.Count > 0 AndAlso Not TxtRFCNombre.Text.Trim().Contiene("XAXX010101000", "XEXX010101000") Then
DivBusquedaCliente.Visible = True
GvBusquedaCliente.DataSource = ObjCliente.DtResultados
GvBusquedaCliente.DataBind()
@@ -25202,7 +25324,7 @@ Partial Class Ventas
Private Sub BtnValidarRFC_Click(sender As Object, e As EventArgs) Handles BtnValidarRFC.Click
If TxtRFCCliente.Text.ToUpper = "XAXX010101000" Then
If TxtRFCCliente.Text.ToUpper.Contiene("XAXX010101000", "XEXX010101000") Then
DivNombreCliente.Visible = True
DivTipoPersona.Visible = True
DivDireccionCliente.Visible = True
@@ -25233,29 +25355,45 @@ Partial Class Ventas
DdlRegimenFiscalCliente.DataBind()
CargaComboCFDICliente()
Else
Dim ObjCliente As New ClsClientes
If ObjCliente.ValidaClienteRFC(TxtRFCCliente.Text, UsuarioActual.CveEmpresa) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
RegistraScript("hideDivEC();")
ViewState("CveCliente") = ObjCliente.DtResultados(0)("CveCliente").ToString().ToEntero()
HdnCveCliente.Value = ObjCliente.DtResultados(0)("CveCliente").ToString()
CargaCliente(CveCliente)
UpCliente.Update()
Else
DivNombreCliente.Visible = True
DivTipoPersona.Visible = True
DivDireccionCliente.Visible = True
DivNumeroCPCliente.Visible = True
'DivColoniaTelefonoCliente.Visible = True
DivCiudadLocalidadCliente.Visible = True
DivEstadoPaisCliente.Visible = True
DivCorreoCuentaCliente.Visible = True
DivBotonesAgregarCliente.Visible = True
DivFormaCliente.Visible = True
divRegimenCliente.Visible = True
If TxtRFCCliente.Text.Trim.Length > 2 Then
Dim ObjCliente As New ClsClientes
If ObjCliente.ValidaClienteRFC(TxtRFCCliente.Text, UsuarioActual.CveEmpresa) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
RegistraScript("hideDivEC();")
ViewState("CveCliente") = ObjCliente.DtResultados(0)("CveCliente").ToString().ToEntero()
HdnCveCliente.Value = ObjCliente.DtResultados(0)("CveCliente").ToString()
CargaCliente(CveCliente)
UpCliente.Update()
Else
DivNombreCliente.Visible = True
DivTipoPersona.Visible = True
DivDireccionCliente.Visible = True
DivNumeroCPCliente.Visible = True
'DivColoniaTelefonoCliente.Visible = True
DivCiudadLocalidadCliente.Visible = True
DivEstadoPaisCliente.Visible = True
DivCorreoCuentaCliente.Visible = True
DivBotonesAgregarCliente.Visible = True
DivFormaCliente.Visible = True
divRegimenCliente.Visible = True
End If
End If
ObjCliente.Dispose()
Else
DivNombreCliente.Visible = True
DivTipoPersona.Visible = True
DivDireccionCliente.Visible = True
DivNumeroCPCliente.Visible = True
'DivColoniaTelefonoCliente.Visible = True
DivCiudadLocalidadCliente.Visible = True
DivEstadoPaisCliente.Visible = True
DivCorreoCuentaCliente.Visible = True
DivBotonesAgregarCliente.Visible = True
DivFormaCliente.Visible = True
divRegimenCliente.Visible = True
End If
ObjCliente.Dispose()
RFVDireccionC.Visible = True
RFVNoEC.Visible = True
@@ -25289,8 +25427,8 @@ Partial Class Ventas
TxtDireccionCliente.Text = DrSP("Calle").ToString()
TxtNumExtCliente.Text = DrSP("NoExt").ToString()
TxtNumIntCliente.Text = DrSP("NoInt").ToString()
TxtCorreoCliente.Text = DrSP("Correo").ToString()
TxtTelefonoCliente.Text = DrSP("Telefono").ToString()
'TxtCorreoCliente.Text = DrSP("Correo").ToString()
'TxtTelefonoCliente.Text = DrSP("Telefono").ToString()
End If
@@ -25375,6 +25513,31 @@ Partial Class Ventas
RegimenFiscalCliente = GlobalDTRegimenesFiscales().FiltroPrimeroValor("CodigoRegimenFiscal", $"CveRegimenFiscal = {CveRegimenFiscal}")
End If
If TxtRFCCliente.Text.Trim().Length < 12 Then
Alert("El RFC no es valido.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If DdlUsoCFDICliente.SelectedValue.ToEntero() <= 0 Then
Alert("El 'Uso CFDI' es requerido.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If DdlRegimenFiscalCliente.SelectedValue.ToEntero() <= 0 Then
Alert("El 'Régimen Fiscal' es requerido.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If DdlMetodoCliente.SelectedValue.ToEntero() <= 0 Then
Alert("El 'Método Pago' es requerido.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If DdlFormaCliente.SelectedValue.ToEntero() <= 0 Then
Alert("El 'Forma Pago' es requerido.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue <> "11" Then
Alert("El Regimen fiscal del cliente debe ser <b>'616 - Sin obligaciones fiscales'</b> cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
Exit Sub
@@ -25419,7 +25582,7 @@ Partial Class Ventas
If ObjCliente.AgregarClienteNoFrecuente(TxtNombreCliente.Text.Trim, TxtDireccionCliente.Text.Trim, TxtNumExtCliente.Text.Trim, TxtNumIntCliente.Text.Trim,
TxtColoniaCliente.Text.Trim, TxtLocalidadCliente.Text.Trim, TxtCiudadCliente.Text.Trim, DdlEstadoSAT.SelectedValue.ToEntero,
TxtRFCCliente.Text.Trim, TxtCPCliente.Text.Trim, TxtTelefonoCliente.Text.Trim, TxtCorreoCliente.Text.Trim,
DdlSubProyectoDatos.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, "", -1, -1, CvePrecioLista:=CvePrecioLista,
DdlSubProyectoDatos.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, "", DdlMetodoCliente.SelectedValue.ToEntero(), DdlFormaCliente.SelectedValue.ToEntero(), CvePrecioLista:=CvePrecioLista,
RegimenSociedad:=TxtRegimenSociedad.Text, TipoPersona:=TipoPersona, CveRegimenFiscal:=CveRegimenFiscal, CveUsoCFDI:=CveUsoCFDI, CveClienteClasificacion:=DdlGiro.SelectedValue.ToEntero()) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
@@ -26260,7 +26423,7 @@ Partial Class Ventas
sb.Append(" EN SU CONTABILIDAD. </font> ")
sb.Append(" <font face=""calibri"" size=""2"">")
sb.Append(" <br /><br /><br /><br /><br />")
sb.Append(" <i>Este correo se generó automaticamente, favor de no responder este mensaje.</i>")
sb.Append(" <i>Este correo se generó automáticamente, favor de no responder este mensaje.</i>")
sb.Append(" </font>")
sb.Append("</body>")
sb.Append("</html>")
@@ -26280,7 +26443,7 @@ Partial Class Ventas
sb.Append(" Le hacemos llegar el acuse de cancelación. </font> ")
sb.Append(" <font face=""calibri"" size=""2"">")
sb.Append(" <br /><br /><br /><br /><br />")
sb.Append(" <i>Este correo se generó automaticamente, favor de no responder este mensaje.</i>")
sb.Append(" <i>Este correo se generó automáticamente, favor de no responder este mensaje.</i>")
sb.Append(" </font>")
sb.Append("</body>")
sb.Append("</html>")
@@ -26311,7 +26474,7 @@ Partial Class Ventas
Dim SbCondiciones As New StringBuilder()
If SaldoAlmacen < 0 AndAlso ChkDevAlm.Checked Then
SbCondiciones.Append("<b>*Se realizará una devolución en automatico al realizar la cancelación.</b>")
SbCondiciones.Append("<b>*Se realizará una devolución en automático al realizar la cancelación.</b>")
End If
If GvRemisiones.Rows.Count > 0 AndAlso Not DivCanRem.Visible AndAlso Not AplicaCancelarRemision Then
@@ -26517,7 +26680,6 @@ Partial Class Ventas
LblCancelarDocumento.Text = sb.ToString()
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
sbExtra.Append("Se generará un saldo a favor con el pago del cliente")
If GvCancelarRemisiones.Rows.Cast(Of GridViewRow).Count(Function(x) x.RowType = DataControlRowType.DataRow) > 0 Then
sbExtra.Append("<br/><b>*Las remisones relacionadas se van a cancelar con la factura</b>")
End If
@@ -26778,16 +26940,16 @@ Partial Class Ventas
Dim CancelacionPagos = OpcionesCancelacionPagos.SinPagos
If UsuarioActual.Empresa.Funcionalidad(109) = "1" AndAlso ObjFacturaCancelacion.TipoDocto.Contiene("Ing", "Rem") AndAlso Not EsRefacturacion AndAlso ObjFacturaCancelacion.Pagado > 0 Then
If (UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(382) = "1") AndAlso ObjFacturaCancelacion.TipoDocto.Contiene("Ing", "Rem") AndAlso Not EsRefacturacion AndAlso ObjFacturaCancelacion.Pagado > 0 Then
CancelacionPagos = OpcionesCancelacionPagos.ConPagos_CancelarIE
End If
'PARA GENERAR LA DEVOLUCION DE ALMACEN SIN ESPERAR LA ACEPTACION DEL SAT
Dim GenerarDevolucionAnticipada As Boolean = False
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso ObjFacturaCancelacion.TipoDocto.Contiene("Ing", "Rem") AndAlso Not EsRefacturacion AndAlso ObjFacturaCancelacion.Pagado > 0 Then
CancelacionPagos = OpcionesCancelacionPagos.ConPagos_GenerarIxC
End If
'If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso ObjFacturaCancelacion.TipoDocto.Contiene("Ing", "Rem") AndAlso Not EsRefacturacion AndAlso ObjFacturaCancelacion.Pagado > 0 Then
' CancelacionPagos = OpcionesCancelacionPagos.ConPagos_GenerarIxC
'End If
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso ObjFacturaCancelacion.TipoDocto.Contiene("Ing", "Rem") AndAlso Not EsRefacturacion Then
@@ -31805,6 +31967,9 @@ Partial Class Ventas
BtnCrearApartirDe.Visible = False
BtnGenerarRemision.Visible = False
BtnPermisoEditarCotizacion.Visible = False
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
LiCalcularPromociones.Visible = False
End If
BtnEditarCotizacion.Visible = False
BtnGenerarOS.Visible = False
@@ -32060,7 +32225,7 @@ Partial Class Ventas
LimpiaDocumentoDEV()
If UsuarioActual.Empresa.Funcionalidad(567) = "1" Then
If UsuarioActual.Empresa.Funcionalidad(567) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
DivAlmacen.Visible = True
LltSalidaAlmacen.Text = "Devolución Almacen"
@@ -32873,12 +33038,16 @@ Partial Class Ventas
End If
End If
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
LiCalcularPromociones.Visible = True
End If
UpPS.Update()
UPPDescuento.Update()
UPObservaciones.Update()
UPCondicionesPago.Update()
UpCliente.Update()
UpnTools.Update()
End Sub
Private Sub BtnEditarCotizacion_Click(sender As Object, e As EventArgs) Handles BtnEditarCotizacion.Click
@@ -33013,7 +33182,7 @@ Partial Class Ventas
Row("PU").ToString().ToDecimal(), Row("ImporteIVA").ToString().ToDecimal, Math.Round((Row("Total").ToString().ToDecimal() * (1 + Row("PorcentajeIVA").ToString().ToDecimal())), 6),
Row("Obs").ToString(), Row("Descuento").ToString().ToDecimal(), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(),
PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, IEPS:=Row("ImporteIEPS").ToString().ToDecimal(), PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDecimal, TiempoEntrega:=Row("TiempoEntrega").ToString(),
PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDecimal, ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDecimal) Then
PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDecimal, ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDecimal, CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero()) Then
MensajeError = "Ocurrió un error al guardar las partidas de la cotización"
OcurrioError = True
Exit For
@@ -34497,6 +34666,9 @@ Partial Class Ventas
'CUANDO ES CREAR APARTIR DE SE LIMPIAN FUNCIONALIDADES DE DOCUMENTOS YA REGISTRADOS
BtnGenerarRemision.Visible = False
BtnEditarRemision.Visible = False
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
LiCalcularPromociones.Visible = False
End If
BtnPermisoEditarRemision.Visible = False
BtnPermisoEditarCotizacion.Visible = False
BtnEditarCotizacion.Visible = False
@@ -37406,7 +37578,26 @@ Partial Class Ventas
Protected Sub BtnSolicitarCredito_Click(sender As Object, e As EventArgs) Handles BtnSolicitarCredito.Click
If UsuarioActual.Empresa.Funcionalidad(595) = "3" Then
RegistraScript("$('#DivModalSolicitarCredito').modal('hide')")
Exit Sub
'si el documento existe generará
If CveVenta > 0 Then
Dim ObjVta As New ClsVentas
If ObjVta.AddAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, DdlVendedor.SelectedValue.ToEntero(), TxtTotal.Text.ToDecimal(), 0, UsuarioActual.CveUsuario, 1, TipoDocumento:="Ing", DiasVencidos:=25, CveVenta:=CveVenta) Then
RegistraScript("$('#DivModalSolicitarCredito').modal('hide')")
Alert("La autorización se agregó correctamente.", TipoMensaje.MsgInformacion)
'signal
Dim mensaje = "<br/> <a target='_blank' href='liga'>La autorización se agregó correctamente.</a>"
ClsSisNotificaciones.EnviarAlerta("Autorización Crédito", mensaje, "100", Tipo:=TipoNotificacion.ToastInformacionB)
End If
ObjVta.Dispose()
Else
'sino existe, solo lo cierra. se crea al guardar.
Exit Sub
End If
End If
Dim DiasVencidos As Integer = 0
@@ -38646,7 +38837,8 @@ Partial Class Ventas
End Using
Dim PuedeAplicarDevolucion As Boolean = False
'código temporal RMF. para devoluciones de facturas cargadas de saldos iniciales.
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso TxtFecha.Text.ToDate.Year < 2025 Then SaldoAlmacen = -1
If SaldoAlmacen < 0 Then
If DevolucionAlmacen = 0 Then
PuedeAplicarDevolucion = True
@@ -39694,7 +39886,7 @@ Partial Class Ventas
RegistraScript("MuestraAnticipos();", "AE")
End Sub
Private Sub RecalculaPrecios()
Private Sub RecalculaPrecios(ByRef RecalculoPromociones As Boolean, Optional ForzarRecalculo As Boolean = False)
Dim PuedeRecalcular As Boolean = False
If CveVenta <= 0 OrElse EsCreaApartirDe OrElse (ModalidadEdicion AndAlso Not DdlTipoComprobante.SelectedValue = "Cot") Then
@@ -39706,6 +39898,10 @@ Partial Class Ventas
PuedeRecalcular = False
End If
If ForzarRecalculo Then
PuedeRecalcular = True
End If
If TmpDT IsNot Nothing AndAlso PuedeRecalcular Then
For Each Row As DataRow In TmpDT.Rows
Dim Cantidad As Decimal = Row("Cantidad").ToString().ToDecimal()
@@ -39733,6 +39929,13 @@ Partial Class Ventas
Row("Total") = (Cantidad * PU)
Row("TotalImporte") = (Cantidad * PU).RoundSQL(NumeroDecimales)
Row("TotalConImpuestos") = (Row("Total").ToString().ToDecimal() - Row("Descuento").ToString().ToDecimal() + Row("ImporteIVA").ToString().ToDecimal()).RoundSQL(2)
Row("CvePromocionDetalle") = ObjDescuento.CvePromocionDetalle
If ObjDescuento.CvePromocionDetalle > 0 Then
RecalculoPromociones = True
End If
End If
Next
@@ -39804,7 +40007,9 @@ Partial Class Ventas
BtnsFacturar.Visible = False
BtnEditarRemision.Visible = False
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
LiCalcularPromociones.Visible = False
End If
LimpiaDocumentoDEV()
CambiaTipoDocto()
@@ -40175,5 +40380,17 @@ Partial Class Ventas
Protected Sub BtnRegresarBusqueda_Click(sender As Object, e As EventArgs)
LimpiarAgregarCliente()
End Sub
Protected Sub LnkCalcularPromociones_Click(sender As Object, e As EventArgs)
Dim Recalculo As Boolean = False
RecalculaPrecios(Recalculo, ForzarRecalculo:=True)
If Recalculo Then
Alert("Se han recalculado los precios y promociones en base a las condiciones actuales")
Else
Alert("No se han encontrado cambios para los precios y promociones")
End If
End Sub
End Class