Merge branch 'master' of http://192.168.10.111:8383/SIG
This commit is contained in:
@@ -8,6 +8,9 @@
|
||||
<li>
|
||||
<asp:LinkButton ID="ImgAddPromocion" PostBackUrl="/Ventas/Promociones.aspx" CommandArgument="-1" runat="server"><i class="fa fa-plus-circle"></i>Nueva Promoción</asp:LinkButton>
|
||||
</li>
|
||||
<li>
|
||||
<asp:LinkButton ID="LnkAccInactivar" runat="server" OnClick="LnkAccInactivar_Click" Visible="false"><i class="fa fa-times" aria-hidden="true"></i>Inactivar</asp:LinkButton>
|
||||
</li>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</asp:Content>
|
||||
@@ -90,16 +93,47 @@
|
||||
|
||||
|
||||
<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 class="col-md-8">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
|
||||
<asp:UpdatePanel runat="server" ID="UpInactivar" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<asp:LinkButton runat="server" ID="LnkInactivar" CssClass="btn btn-primary" OnClick="LnkInactivar_Click" Visible="false"
|
||||
data-toggle="confirmation" data-popout="true" data-original-title="¿Inactivar selección?" data-btn-ok-label="si" ><i class="fa fa-times" aria-hidden="true"></i> Inactivar</asp:LinkButton>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<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>
|
||||
|
||||
|
||||
|
||||
|
||||
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
|
||||
<asp:GridView ID="GvDatos" CssClass="table table-striped table-hover Widthall ScrollAD" data-sort="true" runat="server" AutoGenerateColumns="False" GridLines="None">
|
||||
<asp:GridView ID="GvDatos" CssClass="table table-striped table-hover Widthall ScrollAD" data-sort="true" runat="server" AutoGenerateColumns="False" GridLines="None"
|
||||
DataKeyNames="CvePromocion"
|
||||
>
|
||||
<Columns>
|
||||
<asp:TemplateField HeaderText="" ItemStyle-HorizontalAlign="Left" Visible="false" >
|
||||
<HeaderTemplate>
|
||||
<input type="checkbox" id="chkSelectAll" onclick="checkAll()" />
|
||||
</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox runat="server" ID="chk" CssClass="selChk" />
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Promoción" ItemStyle-HorizontalAlign="Left">
|
||||
<ItemTemplate>
|
||||
<asp:HyperLink runat="server" ID="HLPromocion" Text='<%# Eval("Promocion").ToString %>' NavigateUrl ='<%# Eval("CvePromocion", "/Ventas/Promociones.aspx?CvePromocion={0}") %>' CssClass="Texto"></asp:HyperLink>
|
||||
@@ -128,5 +162,18 @@
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content6" ContentPlaceHolderID="JS" runat="Server">
|
||||
|
||||
<script>
|
||||
|
||||
function checkAll() {
|
||||
|
||||
var isChecked = $('#chkSelectAll').prop('checked');
|
||||
|
||||
$('#<%= GvDatos.ClientID %> input[type="checkbox"][id*=chk]').each(function () {
|
||||
$(this).prop('checked', isChecked);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</asp:Content>
|
||||
|
||||
@@ -22,18 +22,25 @@ Partial Class Ventas_CatPromociones
|
||||
|
||||
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
If Not Page.IsPostBack Then
|
||||
|
||||
If UsuarioActual.TienePermisoProceso(386) Then
|
||||
LnkAccInactivar.Visible = True
|
||||
End If
|
||||
|
||||
InicializaControles()
|
||||
OcultarMostrarInactivar(True)
|
||||
CargaDatos()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub InicializaControles()
|
||||
|
||||
|
||||
|
||||
CargarCentrosDeCosto(Nothing, Nothing, Nothing, LblSubProyecto)
|
||||
|
||||
GvDatos.Columns(6).HeaderText = LblSubProyecto.Text
|
||||
GvDatos.Columns(7).HeaderText = LblSubProyecto.Text
|
||||
|
||||
DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa)
|
||||
DdlSubProyecto.DataBind()
|
||||
@@ -95,4 +102,50 @@ Partial Class Ventas_CatPromociones
|
||||
CargaDatos()
|
||||
End Sub
|
||||
|
||||
|
||||
Protected Sub LnkAccInactivar_Click(sender As Object, e As EventArgs)
|
||||
OcultarMostrarInactivar(True)
|
||||
End Sub
|
||||
|
||||
Private Sub OcultarMostrarInactivar(Mostrar As Boolean)
|
||||
|
||||
GvDatos.Columns(0).Visible = Mostrar
|
||||
LnkInactivar.Visible = Mostrar
|
||||
UpInactivar.Update()
|
||||
UpDatos.Update()
|
||||
End Sub
|
||||
Protected Sub LnkInactivar_Click(sender As Object, e As EventArgs)
|
||||
Dim ObjVentas As New ClsVentas
|
||||
ObjVentas.IniciaTransacSQL()
|
||||
Dim ErrorProceo As Boolean = False
|
||||
|
||||
Dim ContInactivadas As Integer = 0
|
||||
For Each GvRow As GridViewRow In GvDatos.Rows
|
||||
Dim Chk As CheckBox = GvRow.FCCheckBox("chk")
|
||||
Dim CvePromocion As Integer = GvRow.DataKey("CvePromocion").ToEntero
|
||||
|
||||
If Chk.Checked Then
|
||||
If ObjVentas.UpdatePromocionEstatus(CvePromocion, False, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
|
||||
ContInactivadas = ContInactivadas + 1
|
||||
Else
|
||||
ErrorProceo = True
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
If ErrorProceo Then
|
||||
ObjVentas.RollBack()
|
||||
Else
|
||||
ObjVentas.Commit()
|
||||
Alert($"Se inactivaron {ContInactivadas} promociones.")
|
||||
OcultarMostrarInactivar(False)
|
||||
End If
|
||||
|
||||
|
||||
|
||||
ObjVentas.Dispose()
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -216,13 +216,13 @@
|
||||
</div>
|
||||
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontró ninguna remisión pendiente por facturar" DataKeyNames="CveVenta"
|
||||
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontró ninguna remisión pendiente por facturar" DataKeyNames="CveVenta,Fecha"
|
||||
ToolTip="Remisiones sin Facturar"
|
||||
CssClass="table table-striped table-advance table-hover Widthall ScrollAD"
|
||||
data-sort="true" GridLines="None">
|
||||
<Columns>
|
||||
<asp:HyperLinkField HeaderText="Folio" ItemStyle-Width="100px" DataTextField ="Folio" DataNavigateUrlFormatString="/Ventas/RepRemisionesDetalle.aspx?CveVenta={0}" DataNavigateUrlFields="CveVenta" Target="_blank" />
|
||||
<asp:HyperLinkField HeaderText="Fecha" ItemStyle-Width="100px" DataTextField ="Fecha" DataTextFormatString="{0:d}" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" DataNavigateUrlFields="CveVenta" />
|
||||
<asp:HyperLinkField HeaderText="Fecha" ItemStyle-Width="150px" DataTextField ="Fecha" DataTextFormatString="{0:d}" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" DataNavigateUrlFields="CveVenta" />
|
||||
<asp:BoundField HeaderText="Vencimiento" DataField="FechaVencimiento" DataFormatString="{0:d}" />
|
||||
<asp:BoundField HeaderText="Cliente" DataField="Cliente" />
|
||||
<asp:BoundField HeaderText="Contrato" DataField="TieneContrato" Visible="false" />
|
||||
@@ -230,6 +230,7 @@
|
||||
<asp:BoundField HeaderText="Procedimiento" DataField="Procedimiento" Visible="false" />
|
||||
<asp:BoundField HeaderText="Folio Rem" DataField="Alfa1" Visible="false" />
|
||||
<asp:BoundField HeaderText="Vendedor" DataField="Vendedor" />
|
||||
<asp:BoundField HeaderText="Producto" DataField="PrimerCodigoPS" Visible="false" />
|
||||
<asp:BoundField DataField="PorcentajeAvance" HeaderText="Facturado" DataFormatString="{0:F}%" HtmlEncode="false" />
|
||||
<asp:BoundField DataField="SubTotal" HeaderText="SubTotal" DataFormatString="{0:N2}" Visible="false" ItemStyle-HorizontalAlign="Right" />
|
||||
<asp:BoundField DataField="Descuento" HeaderText="Descuento" DataFormatString="{0:N2}" Visible="false" ItemStyle-HorizontalAlign="Right" />
|
||||
|
||||
@@ -67,7 +67,12 @@ Partial Class RepRemisiones
|
||||
|
||||
#End Region
|
||||
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
||||
If Not Page.IsPostBack Then
|
||||
If Not Page.IsPostBack Then
|
||||
|
||||
If UsuarioActual.CveEmpresa.Contiene(189) Then
|
||||
GvDatos.Columns(9).Visible = True
|
||||
End If
|
||||
|
||||
CargaSucursales()
|
||||
CargaCliente()
|
||||
CargaContrato()
|
||||
@@ -89,18 +94,19 @@ Partial Class RepRemisiones
|
||||
|
||||
Sucursales = IIf(DdlSubProyectos.GetSelectedValuesM = "", "-1", DdlSubProyectos.GetSelectedValuesM).ToString
|
||||
Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString
|
||||
Dim PrimerProducto As Boolean = If(UsuarioActual.CveEmpresa.Contiene(189), True, False)
|
||||
|
||||
Dim ObjVentas As New ClsVentas
|
||||
If ObjVentas.GetRepRemisionesSinFacturar(FechaI, FechaF, FechaV, Sucursales, CveCliente, CveContrato, Vendedores, UsuarioActual.CveEmpresa, CveUsuarioConsulta:=UsuarioActual.CveUsuario, ConsultaInventario:=chkInv.Checked) Then
|
||||
If ObjVentas.GetRepRemisionesSinFacturar(FechaI, FechaF, FechaV, Sucursales, CveCliente, CveContrato, Vendedores, UsuarioActual.CveEmpresa, CveUsuarioConsulta:=UsuarioActual.CveUsuario, ConsultaInventario:=chkInv.Checked, PrimerProducto:=PrimerProducto) Then
|
||||
DtVentas = ObjVentas.DtResultados.Copy()
|
||||
GvDatos.DataSource = DtVentas
|
||||
End If
|
||||
|
||||
If DtVentas IsNot Nothing Then
|
||||
GvDatos.Columns(11).Visible = DtVentas.SUMD("Descuento") > 0
|
||||
GvDatos.Columns(12).Visible = DtVentas.SUMD("Descuento") > 0
|
||||
End If
|
||||
|
||||
GvDatos.Columns(14).Visible = chkInv.Checked 'solo se visualiza si está selccionada
|
||||
GvDatos.Columns(15).Visible = chkInv.Checked 'solo se visualiza si está selccionada
|
||||
ObjVentas.Dispose()
|
||||
|
||||
GvDatos.DataBind()
|
||||
@@ -124,7 +130,10 @@ Partial Class RepRemisiones
|
||||
e.Row.Cells(2).ForeColor = Drawing.Color.Red
|
||||
End If
|
||||
|
||||
e.Row.Cells(1).Text = $"<a href='./Ventas.aspx?CveVenta={e.Row.DataKey("CveVenta")}' targen='_blank'>{e.Row.DataKey("Fecha").ToDate().ToString("dd/MM/yyyy HH:mm:ss")}</a>"
|
||||
|
||||
End If
|
||||
|
||||
e.Row.FCLiteral("LtlTotal").Text = "<a class=""Texto"" target=""_blank"" href=""/Ventas/RepRemisionesDetalle.aspx?CveVenta=" & e.Row.DBCampo("CveVenta") & "&FechaI=" & FechaI & "&FechaF=" & FechaF & "&FechaV=" & FechaV & "&CveCliente=" & If(e.Row.DBCampo("CveCliente").ToString().ToEntero() > 0, e.Row.DBCampo("CveCliente").ToString(), DdlClientes.SelectedValue) & "&CveContrato=" & CveContrato & "&CveSubProyecto=" & Sucursales & "&CveMoneda=" & e.Row.DBCampo("CveMoneda") & """>" & e.Row.FCLiteral("LtlTotal").Text & "</a>"
|
||||
|
||||
End If
|
||||
|
||||
@@ -5703,6 +5703,7 @@ Partial Class Ventas
|
||||
VentaActual.PorcentajeIVA = DbRowVenta("PorcentajeIVA").ToString.ToDecimal
|
||||
VentaActual.UsuarioActual = UsuarioActual
|
||||
VentaActual.CveSubProyecto = DbRowVenta("CveSubProyecto").ToString.ToEntero
|
||||
VentaActual.CveUsoCFDI = DbRowVenta("CveUsoCFDI").ToString.ToEntero
|
||||
|
||||
HdnAmortizacion.Value = LblAmort.Text.ToDouble.ToString()
|
||||
HdnSubTotalDescuestos.Value = (TxtSubTotal.Text.Replace(",", "").ToDouble - LblDescuentos.Text.Replace(",", "").ToDouble - LblAmortizacion.Text.Trim.Replace(",", "").ToDouble - TxtRetISR.Text.Replace(",", "").ToDouble).FormatoNumero(2)
|
||||
@@ -8328,7 +8329,7 @@ Partial Class Ventas
|
||||
End If
|
||||
|
||||
'SOLO HABILITAR PARA GENERAR NOTAS DE CREDITO
|
||||
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso Not PermiteCredito AndAlso Not LnkSolicitarCredito.Visible Then
|
||||
If UsuarioActual.Empresa.Funcionalidad(595) = "2" AndAlso Not LnkSolicitarCredito.Visible Then
|
||||
LnkSolicitarCredito.Visible = True
|
||||
|
||||
If DdlSolCreditoTipoDocto.Items.FindByValue("Ing") IsNot Nothing Then
|
||||
@@ -17525,6 +17526,123 @@ Partial Class Ventas
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function GenerarNC(ImporteTotal As Decimal, CveVendedor As Integer, ByRef Venta As Venta, GvRowAnticipo As GridViewRow, ByRef ObjVentas As ClsVentas) As Modelos.Factura.MMensajeFactura
|
||||
Dim Retorno As Modelos.Factura.MMensajeFactura = Nothing
|
||||
Dim SbAlert As New StringBuilder()
|
||||
|
||||
Try
|
||||
Dim ObjNC = Modelos.Factura.CrearVentaNueva(UsuarioActual, Venta.CveSubProyecto, Venta.CveCliente, Venta.CveMoneda, "Egs")
|
||||
ObjNC.CveMoneda = Venta.CveMoneda
|
||||
If ObjNC.CveMoneda = 2 Then
|
||||
ObjNC.TipoCambio = GlobalTipoCambio(Now).ToString().ToDecimal()
|
||||
Else
|
||||
ObjNC.TipoCambio = 1
|
||||
End If
|
||||
|
||||
Dim Total As Decimal = ImporteTotal
|
||||
Dim subTotal As Decimal = (Total / (1D + Venta.PorcentajeIVA))
|
||||
'Dim IVA = (subTotal * Factura.PorcentajeIVA).RoundSQL(2)
|
||||
Dim PU As Decimal = subTotal
|
||||
Dim Cantidad As Decimal = 1D
|
||||
Dim Descuento As Decimal = 0
|
||||
Dim Obs = ""
|
||||
|
||||
Dim CvePSAnticipo As Integer = 1
|
||||
Dim DatarowPS = GlobalDTPS(UsuarioActual.CveEmpresa, SATClavePS:="84111506").FiltroPrimero("CodigoPS LIKE '%ANTICIPO%' OR CodigoPS LIKE '%anticipo%' OR CodigoPS LIKE '%Anticipo%'")
|
||||
If DatarowPS IsNot Nothing Then
|
||||
CvePSAnticipo = DatarowPS("CvePS").ToString().ToEntero()
|
||||
End If
|
||||
|
||||
ObjNC.AgregarPS(CvePSAnticipo, Cantidad, PU, Descuento, Obs, CveSubProyecto:=Venta.CveSubProyecto, PorcentajeIVA:=Venta.PorcentajeIVA)
|
||||
ObjNC.CalculaTotales()
|
||||
|
||||
Dim DtVentasNC = New DataTable
|
||||
DtVentasNC.Columns.Add("CveVenta", GetType(Integer))
|
||||
DtVentasNC.Columns.Add("Importe", GetType(Decimal))
|
||||
DtVentasNC.Columns.Add("FolioFiscal", GetType(String))
|
||||
DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "TC", .DataType = GetType(Decimal), .DefaultValue = 1})
|
||||
DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "TCCambioValuacion", .DataType = GetType(Decimal), .DefaultValue = 1})
|
||||
DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "CveEstatusFactura", .DataType = GetType(Integer), .DefaultValue = -1})
|
||||
DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "Folio", .DataType = GetType(String), .DefaultValue = ""})
|
||||
|
||||
DtVentasNC.Rows.Add(Venta.CveVenta, Total, "")
|
||||
|
||||
ObjNC.DtVentasNC = DtVentasNC
|
||||
|
||||
Dim DtVentasRelacionadas As New DataTable()
|
||||
DtVentasRelacionadas.Columns.Add("CveVenta", GetType(Integer))
|
||||
DtVentasRelacionadas.Rows.Add(Venta.CveVenta)
|
||||
|
||||
ObjNC.DtVentasRelacionadas = DtVentasRelacionadas
|
||||
|
||||
Dim DtAnticipos As New DataTable()
|
||||
DtAnticipos.Columns.Add("CveVenta", GetType(Integer))
|
||||
DtAnticipos.Columns.Add("Importe", GetType(Decimal))
|
||||
DtAnticipos.Columns.Add("CveConceptoContable", GetType(Integer))
|
||||
DtAnticipos.Columns.Add("CveIE", GetType(Integer))
|
||||
DtAnticipos.Columns.Add("FolioFiscal", GetType(String))
|
||||
DtAnticipos.Columns.Add("Descuentos", GetType(Decimal))
|
||||
DtAnticipos.Columns.Add("TotalAnticipo", GetType(Decimal))
|
||||
DtAnticipos.Columns.Add("SubTotalAnticipo", GetType(Decimal))
|
||||
DtAnticipos.Columns.Add("CveMoneda", GetType(Decimal))
|
||||
DtAnticipos.Columns.Add("Fecha", GetType(DateTime))
|
||||
DtAnticipos.Columns.Add("TipoCambioPago", GetType(Decimal))
|
||||
DtAnticipos.Columns.Add("Folio", GetType(String))
|
||||
DtAnticipos.Columns.Add("Tipo", GetType(String))
|
||||
|
||||
If GvRowAnticipo IsNot Nothing Then
|
||||
Dim CveVenta = GvRowAnticipo.DataKey("CveVenta").ToEntero()
|
||||
Dim Importe = GvRowAnticipo.FCTextBox(String.Format("TxtAnticipo{0}", GvRowAnticipo.RowIndex)).Text.ToDecimal()
|
||||
Dim CveConceptoContable = GvRowAnticipo.DataKey("CveConceptoContable").ToEntero()
|
||||
Dim CveIE = GvRowAnticipo.DataKey("CveIE").ToEntero()
|
||||
|
||||
Dim FolioFiscal = GvRowAnticipo.DataKey("FolioFiscal")
|
||||
Dim Descuentos As Decimal = GvRowAnticipo.DataKey("Descuentos").ToDecimal()
|
||||
Dim TotalAnticipo As Decimal = GvRowAnticipo.DataKey("TotalAnticipo").ToDecimal()
|
||||
Dim SubTotalAnticipo As Decimal = GvRowAnticipo.DataKey("SubTotalAnticipo").ToDecimal()
|
||||
Dim CveMoneda As Integer = GvRowAnticipo.DataKey("CveMoneda").ToEntero()
|
||||
Dim Fecha As DateTime = GvRowAnticipo.DataKey("Fecha").ToDateTime()
|
||||
Dim TipoCambioPago As Decimal = GvRowAnticipo.DataKey("TipoCambioPago").ToDecimal()
|
||||
Dim Folio = GvRowAnticipo.DataKey("Folio")
|
||||
Dim Tipo = GvRowAnticipo.DataKey("Tipo")
|
||||
|
||||
|
||||
DtAnticipos.Rows.Add(CveVenta, Importe, CveConceptoContable, CveIE, FolioFiscal, Descuentos, TotalAnticipo, SubTotalAnticipo, CveMoneda, Fecha, TipoCambioPago, Folio, Tipo)
|
||||
End If
|
||||
|
||||
ObjNC.EsNCAmortizacion = True
|
||||
ObjNC.CveTipoAmortizacionAnticipo = 2
|
||||
ObjNC.DtAnticiposAplicados = DtAnticipos
|
||||
|
||||
ObjNC.CveFormaPago = 21 'Aplicación de anticipos
|
||||
ObjNC.CveMetodoPago = 1
|
||||
ObjNC.CveUsoCFDI = Venta.CveUsoCFDI
|
||||
ObjNC.CveVendedor = CveVendedor
|
||||
ObjNC.CveTipoRelacion = 7
|
||||
|
||||
ObjNC.PreparaTimbre()
|
||||
AjustarTimbreNC(ObjNC)
|
||||
|
||||
Retorno = ObjNC.EmitirFactura(False, Transac:=ObjVentas.IniciaTransacSQL(), Modulo:="Cobranza/GuardarVenta", MostrarURL:=True)
|
||||
Retorno.Factura = ObjNC
|
||||
|
||||
If Retorno IsNot Nothing AndAlso Retorno.CveVenta > 0 Then
|
||||
For Each msg In Retorno.Mensajes
|
||||
SbAlert.AppendFormat("{0} <br/>", msg)
|
||||
Next
|
||||
|
||||
SbAlert.AppendFormat("<ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar PDF Factura</a></li></ul><br/>", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1&GUARDAR=1", Retorno.CveVenta)))
|
||||
Else
|
||||
SbAlert.Append("Ocurrió un error al generar la nota de crédito")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
SbAlert.Append("Ocurrió un error al generar el documento")
|
||||
GuardaLog(ex.ToString())
|
||||
End Try
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Protected Sub BtnAceptarAnticipos_Click(sender As Object, e As System.EventArgs) Handles BtnAceptarAnticipos.Click
|
||||
AplicaAnticipos()
|
||||
End Sub
|
||||
@@ -17554,6 +17672,8 @@ Partial Class Ventas
|
||||
Dim CveIEAnticipo As Integer
|
||||
Dim CvePlantillaPoliza As Integer = 10
|
||||
|
||||
Dim ListaNC As New List(Of Modelos.Factura.MMensajeFactura)
|
||||
|
||||
Try
|
||||
CvePrePoliza = ObjConta.AddPrePolizas("Ventas/Anticipos", CvePlantillaPoliza, TxtTotal.Text.ToDecimal, TxtTotal.Text.ToDecimal, DdlMoneda.SelectedValue.ToEntero(), TxtFechaAnticipoCliente.Text.ToDate, String.Format("{0} {1} {2}-{3}", If(EsAnticipo2017Jam, "Aplicación Anticipo 2017", ""), NombreCliente, Serie, TxtFolio.Text), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
|
||||
@@ -17616,27 +17736,46 @@ Partial Class Ventas
|
||||
|
||||
Select Case gvr.DataKey("CveConceptoContable").ToString()
|
||||
Case "3", "295"
|
||||
importeMovimiento = gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal - ((gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal / gvr.DataKey("TotalAnticipo").ToDecimal) * gvr.DataKey("IVAAnticipo").ToDecimal)
|
||||
|
||||
importeMN = gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal
|
||||
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso DdlMoneda.SelectedValue.ToEntero() = 1 Then
|
||||
Dim ImporteNC As Decimal = gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal
|
||||
|
||||
If importeMovimiento <> 0 Then
|
||||
Dim RespNC = GenerarNC(ImporteNC, DdlVendedor.SelectedValue.ToEntero(), Me.VentaActual, gvr, ObjVenta)
|
||||
|
||||
Dim Pago As New VentaPago
|
||||
Pago.ImportePagoVenta = importeMN
|
||||
Pago.ImportePago = importeMovimiento
|
||||
Pago.CveIE = CveIEAnticipo
|
||||
Pago.CveMonedaPago = gvr.DataKey("CveMoneda").ToEntero()
|
||||
Pago.TipoPago = "A"
|
||||
Pago.Fecha = TxtFechaAnticipoCliente.Text.ToDate 'TCPago = gvr.DataKey("TipoCambio").todecimal
|
||||
Pago.CveVentaAmortizacion = gvr.DataKey("CveVenta").ToEntero()
|
||||
Pago.TCPago = gvr.DataKey("TipoCambio").ToDecimal
|
||||
Pago.AplicaTraslado = gvr.DataKey("RegresarImpuesto") = "1"
|
||||
Pago.Referencia = gvr.DataKey("Folio")
|
||||
Pago.AplicaConceptoImpuestoPendiente = (Not gvr.DataKey("RegresarImpuesto") = "1") AndAlso (VentaActual.IVA > 0 OrElse VentaActual.IEPS > 0)
|
||||
If RespNC IsNot Nothing Then
|
||||
If RespNC.TieneError Then
|
||||
ErrorConta = True
|
||||
Exit For
|
||||
Else
|
||||
ListaNC.Add(RespNC)
|
||||
End If
|
||||
Else
|
||||
ErrorConta = True
|
||||
End If
|
||||
|
||||
ErrorConta = AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjConta)
|
||||
Else
|
||||
importeMovimiento = gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal - ((gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal / gvr.DataKey("TotalAnticipo").ToDecimal) * gvr.DataKey("IVAAnticipo").ToDecimal)
|
||||
|
||||
importeMN = gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal
|
||||
|
||||
If importeMovimiento <> 0 Then
|
||||
|
||||
Dim Pago As New VentaPago
|
||||
Pago.ImportePagoVenta = importeMN
|
||||
Pago.ImportePago = importeMovimiento
|
||||
Pago.CveIE = CveIEAnticipo
|
||||
Pago.CveMonedaPago = gvr.DataKey("CveMoneda").ToEntero()
|
||||
Pago.TipoPago = "A"
|
||||
Pago.Fecha = TxtFechaAnticipoCliente.Text.ToDate 'TCPago = gvr.DataKey("TipoCambio").todecimal
|
||||
Pago.CveVentaAmortizacion = gvr.DataKey("CveVenta").ToEntero()
|
||||
Pago.TCPago = gvr.DataKey("TipoCambio").ToDecimal
|
||||
Pago.AplicaTraslado = gvr.DataKey("RegresarImpuesto") = "1"
|
||||
Pago.Referencia = gvr.DataKey("Folio")
|
||||
Pago.AplicaConceptoImpuestoPendiente = (Not gvr.DataKey("RegresarImpuesto") = "1") AndAlso (VentaActual.IVA > 0 OrElse VentaActual.IEPS > 0)
|
||||
|
||||
ErrorConta = AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjConta)
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
Case "12"
|
||||
@@ -17743,26 +17882,69 @@ Partial Class Ventas
|
||||
If ErrorConta Then
|
||||
Alert("Ocurrió un error al amortizar el documento. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgError)
|
||||
ObjConta.RollBack()
|
||||
|
||||
ObjConta.Dispose()
|
||||
ObjVenta.Dispose()
|
||||
ObjIE.Dispose()
|
||||
ObjCliente.Dispose()
|
||||
|
||||
Else
|
||||
Dim Msg As New StringBuilder
|
||||
Msg.Append("Se ha amortizado correctamente")
|
||||
Msg.Append("Se ha amortizado correctamente. <br/>")
|
||||
|
||||
'AJUSTA POLIZA
|
||||
If ObjConta.ContaFolio > 0 Then
|
||||
Msg.AppendFormat("<br/><br/><a class=""Texto"" target='_blank' href=""/Contabilidad/RegPrePolizas.aspx?CvePrePoliza={0}"">Ver Póliza</a>", CvePrePoliza)
|
||||
End If
|
||||
|
||||
ObjConta.Commit()
|
||||
|
||||
ObjConta.Dispose()
|
||||
ObjVenta.Dispose()
|
||||
ObjIE.Dispose()
|
||||
ObjCliente.Dispose()
|
||||
|
||||
Dim MsgTimbrado As String = ""
|
||||
|
||||
Try
|
||||
If ListaNC.Count > 0 Then
|
||||
For Each respNC In ListaNC
|
||||
Msg.AppendFormat("<span style=""font-size:14px;""> La nota de crédito <a class=""Texto"" target=""_blank"" style=""font-size:18px;font-weight:bold;"" href=""/Ventas/Ventas.aspx?CveVenta={0}"">{1}</a> se genero correctamente.</span> <br/>", respNC.CveVenta, respNC.SerieFolio)
|
||||
|
||||
Dim SeTimbroNC As Boolean = False
|
||||
|
||||
If LblSeTimbro.Text = "Si" Then
|
||||
MsgTimbrado = TimbrarNC(respNC.Factura, SeTimbroNC)
|
||||
Else
|
||||
MsgTimbrado = "No se pudo timbrar porque la factura de ingreso no ha sido timbrada previamente"
|
||||
End If
|
||||
|
||||
If Not String.IsNullOrEmpty(MsgTimbrado) Then
|
||||
Dim StrEr As String = $"<br/><div id = 'DivTipoCambioAdvertencia' class='alert alert-danger' style='padding: 5px; margin-bottom: 5px; padding-right: 25px;'><strong style = 'font-size: 20px; margin-right: 25px;' > Comprobante no emitido : </strong><br/> {MsgTimbrado}<br/>Por favor inténtelo de nuevo a través del botón 'Emitir' en ventas.</div>"
|
||||
MsgTimbrado = StrEr
|
||||
End If
|
||||
|
||||
If SeTimbroNC Then
|
||||
Dim xml = String.Format("<ul><li><a class=""Texto"" target=""_blank"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar XML</a></li></ul>", Encripta(String.Format("OP=FactVta&CVEVENTA={0}&EXT={1}&SERIEFOLIO={2}&TIPODOCTO={3}", respNC.CveVenta, "XML", respNC.SerieFolio, respNC.Factura.TipoDocto)))
|
||||
Msg.AppendFormat("{0}", xml)
|
||||
End If
|
||||
|
||||
Dim pdfNC = String.Format("<ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar PDF</a></li></ul>", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1", respNC.CveVenta)))
|
||||
Msg.AppendFormat("{0}", pdfNC)
|
||||
|
||||
If Not String.IsNullOrEmpty(MsgTimbrado) Then
|
||||
Msg.AppendFormat("{0}", MsgTimbrado)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
Catch ex As Exception
|
||||
GuardaLogAD(ex.ToString())
|
||||
Msg.AppendFormat("<br/>{0}<br/>", MsgTimbrado)
|
||||
End Try
|
||||
BtnAceptarAnticipos.Enabled = False
|
||||
|
||||
Alert(Msg.ToString(), TipoMensaje.MsgInformacion, JSBtnAceptar:="BtnRefrescarPagina();", ShowCloseButton:=False)
|
||||
End If
|
||||
|
||||
ObjConta.Dispose()
|
||||
ObjVenta.Dispose()
|
||||
ObjIE.Dispose()
|
||||
ObjCliente.Dispose()
|
||||
|
||||
Else
|
||||
|
||||
'cuando no se ha registrado la venta
|
||||
@@ -17970,6 +18152,47 @@ Partial Class Ventas
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub AjustarTimbreNC(ByRef ObjNC As Modelos.Factura)
|
||||
If LblSeTimbro.Text = "Si" Then
|
||||
ObjNC.Timbre.CFDIRelacionados.UUID.Clear()
|
||||
ObjNC.Timbre.CFDIRelacionados.UUID.Add(LblFolioFiscal.Text.Trim())
|
||||
ObjNC.Timbre.CFDIRelacionados.TipoRelacion = "07"
|
||||
ObjNC.Timbre.CFDIRelacionados.TipoRelacionTexto = "07-CFDI por aplicación de anticipo"
|
||||
End If
|
||||
|
||||
ObjNC.Timbre.Comprobante.MetodoPago = GlobalDTVtaMetodoPago.FiltroPrimeroValor("ClaveMetodoPagoSAT", $"CveMetodoPago = {ObjNC.CveMetodoPago}") ' Obj.ClaveMetodoPagoSAT
|
||||
ObjNC.Timbre.Comprobante.FormadePago = GlobalDTVtaFormaPago.FiltroPrimeroValor("ClaveFormaPagoSAT", $"CveFormaPago = {ObjNC.CveFormaPago}") 'Obj.ClaveFormaPagoSAT
|
||||
ObjNC.Timbre.Receptor.UsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("UsoCFDI", $"CveUsoCFDI = {ObjNC.CveUsoCFDI}")
|
||||
End Sub
|
||||
|
||||
Private Function TimbrarNC(ByRef ObjNC As Modelos.Factura, ByRef SeTimbroNC As Boolean) As String
|
||||
Dim MsgErrorTimbrado As String = ""
|
||||
'Dim SeTimbro As Boolean = False
|
||||
'Dim TimbroNC As Boolean = False
|
||||
|
||||
Dim ObjTimbrado As New Timbrado
|
||||
Try
|
||||
If ObjNC.Timbre IsNot Nothing Then
|
||||
Dim ObjTimbradoNC As New Timbrado
|
||||
SeTimbroNC = ObjTimbradoNC.TimbrarFactura(UsuarioActual, ObjNC)
|
||||
|
||||
If Not SeTimbroNC Then
|
||||
MsgErrorTimbrado = $"{MsgErrorTimbrado} {ObjTimbradoNC.MensajeErrorCFDI}"
|
||||
End If
|
||||
ObjTimbradoNC = Nothing
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al generar el timbrado", ex)
|
||||
End Try
|
||||
|
||||
If Not String.IsNullOrEmpty(MsgErrorTimbrado) Then
|
||||
GuardaLogAD(MsgErrorTimbrado, Archivo:="LogTimbrado")
|
||||
End If
|
||||
|
||||
Return MsgErrorTimbrado
|
||||
End Function
|
||||
Private Function AgregarPrePolizasXTrasladar(ObjConta As ClsContabilidad, CvePrePoliza As Integer, PorcentajeAmortizacion As Decimal, TipoCambio As Decimal, ByRef CuentasContablesInvalidas As StringBuilder, ByRef CveCuentaContabilizacion As Integer, Importe13 As Decimal, Importe8 As Decimal, Importe9 As Decimal) As Boolean
|
||||
Dim ImporteMovimiento As Decimal
|
||||
Dim ImporteMX As Decimal
|
||||
@@ -18793,7 +19016,7 @@ Partial Class Ventas
|
||||
Dim ActualizarPrecios As Boolean = False
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
|
||||
ActualizarPrecios = true
|
||||
ActualizarPrecios = True
|
||||
End If
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then
|
||||
|
||||
Reference in New Issue
Block a user