--Cancelacion de NC, desde factura de ingreso
This commit is contained in:
@@ -135,7 +135,7 @@
|
|||||||
<asp:TemplateField ItemStyle-CssClass="margenbound" HeaderText="P. Promedio">
|
<asp:TemplateField ItemStyle-CssClass="margenbound" HeaderText="P. Promedio">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<%--TODO: Esto puede tronar si el valor es DBNull --%>
|
<%--TODO: Esto puede tronar si el valor es DBNull --%>
|
||||||
<%# If(Convert.ToDecimal(Eval("Cantidad")) = 0, 0.ToString("C"), (Convert.ToDecimal(Eval("SubTotal")) / Convert.ToInt32(Eval("Cantidad"))).ToString("C")) %>
|
<%# If(Convert.ToDecimal(Eval("Cantidad")) = 0, 0.ToString("C"), (Convert.ToDecimal(Eval("SubTotal")) / Convert.ToDecimal(Eval("Cantidad"))).ToString("C")) %>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
</Columns>
|
</Columns>
|
||||||
|
|||||||
@@ -4330,20 +4330,20 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
Kilometraje
|
Kilometraje
|
||||||
<asp:TextBox ID="TxtKilometraje" runat="server" Width="65px" CssClass="form-control input-sm" MaxLength="6" CausesValidation="true" Text="000000"></asp:TextBox>
|
<asp:TextBox ID="TxtKilometraje" runat="server" Width="65px" CssClass="form-control input-sm" MaxLength="6" CausesValidation="true" Text="000000"></asp:TextBox>
|
||||||
<asp:RegularExpressionValidator ID="REVKilometraje" runat="server" ControlToValidate="TxtKilometraje" ValidationExpression="^\d{4,6}$" ErrorMessage="Debe tener entre 4 y 6 dígitos numéricos." Display="Dynamic" ForeColor="Red" />
|
<asp:RegularExpressionValidator ID="REVKilometraje" runat="server" ControlToValidate="TxtKilometraje" ValidationExpression="^\d{4,6}$" ErrorMessage="Debe tener entre 4 y 6 dígitos numéricos." Display="Dynamic" ForeColor="Red" />
|
||||||
<%--<ajax:MaskedEditExtender ID="MEEKilometraje" runat="server" TargetControlID="TxtKilometraje" ClearMaskOnLostFocus="false" MaskType="Number" Mask="999999" MessageValidatorTip="true" InputDirection="LeftToRight" ErrorTooltipEnabled="True"></ajax:MaskedEditExtender>--%>
|
<%--<ajax:MaskedEditExtender ID="MEEKilometraje" runat="server" TargetControlID="TxtKilometraje" ClearMaskOnLostFocus="false" MaskType="Number" Mask="999999" MessageValidatorTip="true" InputDirection="LeftToRight" ErrorTooltipEnabled="True"></ajax:MaskedEditExtender>--%>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
Próxima Rotación y Balanceo:<br />
|
Próxima Rotación y Balanceo:<br />
|
||||||
<asp:Label runat="server" ID="LblRotacion" Text=""></asp:Label>
|
<asp:Label runat="server" ID="LblRotacion" Text=""></asp:Label>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
Próxima Alineación:<br />
|
Próxima Alineación:<br />
|
||||||
<asp:Label runat="server" ID="LblAlineacion" Text=""></asp:Label>
|
<asp:Label runat="server" ID="LblAlineacion" Text=""></asp:Label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr align="left" id="trCorreoNotif1" runat="server" visible="false">
|
<tr align="left" id="trCorreoNotif1" runat="server" visible="false">
|
||||||
@@ -8226,7 +8226,7 @@
|
|||||||
<label>Descripción:</label>
|
<label>Descripción:</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-10">
|
<div class="col-md-10">
|
||||||
<asp:TextBox ID="TxtMotivoCancelacion" runat="server" Height="100" Width="100%" TextMode="MultiLine" CausesValidation="true" MaxLength="500" Rows="3"></asp:TextBox>
|
<asp:TextBox ID="TxtMotivoCancelacion" runat="server" Width="100%" TextMode="MultiLine" CausesValidation="true" MaxLength="500" Rows="3"></asp:TextBox>
|
||||||
<asp:RequiredFieldValidator ID="RFVDescripcionCancelacion" runat="server" CssClass="help-block errorimput" Display="Dynamic" ControlToValidate="TxtMotivoCancelacion" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripción''</b> es necesario, por favor ingréselo." ValidationGroup="GrpModalCancelarDocumento"></asp:RequiredFieldValidator>
|
<asp:RequiredFieldValidator ID="RFVDescripcionCancelacion" runat="server" CssClass="help-block errorimput" Display="Dynamic" ControlToValidate="TxtMotivoCancelacion" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripción''</b> es necesario, por favor ingréselo." ValidationGroup="GrpModalCancelarDocumento"></asp:RequiredFieldValidator>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -8254,6 +8254,11 @@
|
|||||||
<asp:CheckBox ID="ChkDevAlm" AutoPostBack="true" runat="server" OnCheckedChanged="ChkDevAlm_CheckedChanged" /><asp:Label ID="LblDevAlm" Text="Devolución Almacen" runat="server"></asp:Label>
|
<asp:CheckBox ID="ChkDevAlm" AutoPostBack="true" runat="server" OnCheckedChanged="ChkDevAlm_CheckedChanged" /><asp:Label ID="LblDevAlm" Text="Devolución Almacen" runat="server"></asp:Label>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="DivCancelarEgs" runat="server" visible="false">
|
||||||
|
<h5>
|
||||||
|
<asp:CheckBox ID="ChkCancelarNC" runat="server" Checked="false"/><asp:Label ID="Label4" Text="Cancelar Nota de crédito" runat="server"></asp:Label>
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<asp:UpdatePanel ID="UpFooterCancelarRemision" runat="server" UpdateMode="Conditional">
|
<asp:UpdatePanel ID="UpFooterCancelarRemision" runat="server" UpdateMode="Conditional">
|
||||||
|
|||||||
@@ -17812,7 +17812,7 @@ Partial Class Ventas
|
|||||||
ObjNC.PreparaTimbre()
|
ObjNC.PreparaTimbre()
|
||||||
AjustarTimbreNC(ObjNC)
|
AjustarTimbreNC(ObjNC)
|
||||||
|
|
||||||
Retorno = ObjNC.EmitirFactura(False, Transac:=ObjVentas.IniciaTransacSQL(), Modulo:="Cobranza/GuardarVenta", MostrarURL:=True)
|
Retorno = ObjNC.EmitirFactura(False, Transac:=ObjVentas.IniciaTransacSQL(), Modulo:="Vta/NC/GuardarVenta", MostrarURL:=True)
|
||||||
Retorno.Factura = ObjNC
|
Retorno.Factura = ObjNC
|
||||||
|
|
||||||
If Retorno IsNot Nothing AndAlso Retorno.CveVenta > 0 Then
|
If Retorno IsNot Nothing AndAlso Retorno.CveVenta > 0 Then
|
||||||
@@ -27412,7 +27412,7 @@ Partial Class Ventas
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
If Extra.Trim().Length > 0 Then
|
If Extra.Trim().Length > 0 Then
|
||||||
SbCondiciones.AppendFormat("<br><b>*{0}</b>", Extra)
|
SbCondiciones.AppendFormat("{0}", Extra)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
|
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
|
||||||
@@ -27439,6 +27439,29 @@ Partial Class Ventas
|
|||||||
Private Sub LbCancelarDocumento_Click(sender As Object, e As EventArgs) Handles LbCancelarDocumento.Click
|
Private Sub LbCancelarDocumento_Click(sender As Object, e As EventArgs) Handles LbCancelarDocumento.Click
|
||||||
Dim SaldoAlmacen As Decimal = 0
|
Dim SaldoAlmacen As Decimal = 0
|
||||||
|
|
||||||
|
If DdlTipoComprobante.SelectedValue = "Ing" Then
|
||||||
|
Dim DtNCCancelar As DataTable = Nothing
|
||||||
|
Dim ObjVta As New ClsVentas
|
||||||
|
If ObjVta.GetVentasAntNC(CveVenta, -1) Then
|
||||||
|
DtNCCancelar = (
|
||||||
|
From row In ObjVta.DtResultados.AsEnumerable()
|
||||||
|
Where row("TipoDocto").ToString() = "Egs" AndAlso row("CveTipoRelacion").ToString() = "7"
|
||||||
|
Group row By categoria = row.Field(Of Integer)("CveVenta") Into grupo = Group
|
||||||
|
Select New With {
|
||||||
|
.CveVenta = categoria,
|
||||||
|
.Total = grupo.Sum(Function(r) r.Field(Of Decimal)("Importe"))
|
||||||
|
}
|
||||||
|
).QueryToDataTable(True)
|
||||||
|
|
||||||
|
End If
|
||||||
|
ObjVta.Dispose()
|
||||||
|
|
||||||
|
If DtNCCancelar IsNot Nothing AndAlso DtNCCancelar.FiltraParametros("Total > 0").Rows.Count > 0 Then
|
||||||
|
DivCancelarEgs.Visible = True
|
||||||
|
ChkCancelarNC.Checked = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Dev", "Ped") Then
|
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Dev", "Ped") Then
|
||||||
|
|
||||||
Dim PermiteCancelar As Boolean = True
|
Dim PermiteCancelar As Boolean = True
|
||||||
@@ -27947,8 +27970,81 @@ Partial Class Ventas
|
|||||||
CveEstatusFacturaAsignado = 4
|
CveEstatusFacturaAsignado = 4
|
||||||
End If
|
End If
|
||||||
|
|
||||||
resp = ObjFacturaCancelacion.CancelarFactura(If(ChkDevAlm.Checked, 1, 0), ListaRemisionesCancelar, CveMotivoCancelacion:=DdlMotivoCancelacion.SelectedValue.ToEntero(), Motivo:=TxtMotivoCancelacion.Text.Trim(), CveEstadoCancelacion:=Me.CveEstadoCancelacion, ForzarDevolucion:=GenerarDevolucionAnticipada, CancelacionPagos:=CancelacionPagos, ValidarSAT:=ValidarSAT, CveEstatusFacturaAsignado:=CveEstatusFacturaAsignado)
|
|
||||||
|
Dim SbNC As New StringBuilder
|
||||||
|
Dim ErrorCancelacionNC As Boolean = False
|
||||||
|
Dim SbNCError As New StringBuilder
|
||||||
|
|
||||||
|
If ObjFacturaCancelacion.TipoDocto = "Ing" AndAlso ChkCancelarNC.Checked Then
|
||||||
|
|
||||||
|
'NO CANCELAR EL PAGO EN LA CANCELACION DE LA FACTURA, SI NO DESDE LA CANCELACION DESDE LA NC
|
||||||
|
CancelacionPagos = OpcionesCancelacionPagos.SinPagos
|
||||||
|
|
||||||
|
Dim DtNCCancelar As DataTable = Nothing
|
||||||
|
Dim ObjVta As New ClsVentas
|
||||||
|
If ObjVta.GetVentasAntNC(CveVenta, -1) Then
|
||||||
|
DtNCCancelar = (
|
||||||
|
From row In ObjVta.DtResultados.AsEnumerable()
|
||||||
|
Where row("TipoDocto").ToString() = "Egs" AndAlso row("CveTipoRelacion").ToString() = "7"
|
||||||
|
Group row By categoria = row.Field(Of Integer)("CveVenta") Into grupo = Group
|
||||||
|
Select New With {
|
||||||
|
.CveVenta = categoria,
|
||||||
|
.Total = grupo.Sum(Function(r) r.Field(Of Decimal)("Importe"))
|
||||||
|
}
|
||||||
|
).QueryToDataTable(True)
|
||||||
|
|
||||||
|
End If
|
||||||
|
ObjVta.Dispose()
|
||||||
|
|
||||||
|
If DtNCCancelar IsNot Nothing Then
|
||||||
|
|
||||||
|
For Each RowVta As DataRow In DtNCCancelar.FiltraParametros("Total > 0").Rows
|
||||||
|
Dim ObjNCCancelacion As New Modelos.Factura(UsuarioActual, RowVta("CveVenta").ToString().ToEntero(), UsuarioActual.CveEmpresa, EsCancelacion:=True, VerificaAlmacen:=False)
|
||||||
|
ObjNCCancelacion.CveDevolucion = ObjFacturaCancelacion.CveVenta
|
||||||
|
|
||||||
|
If ObjNCCancelacion IsNot Nothing Then
|
||||||
|
Dim respNC = ObjNCCancelacion.CancelarFactura(RealizarDevolucionAlmacen:=0, ValidarSAT:=ValidarSAT)
|
||||||
|
If respNC IsNot Nothing Then
|
||||||
|
If respNC.HuboError Then
|
||||||
|
SbNCError.Append(respNC.Mensaje)
|
||||||
|
ErrorCancelacionNC = True
|
||||||
|
Exit For
|
||||||
|
Else
|
||||||
|
SbNC.AppendFormat(" - <b>{0}</b>", ObjNCCancelacion.SerieFolio)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
If Not ErrorCancelacionNC Then
|
||||||
|
Using ObjV As New ClsVentas
|
||||||
|
If ObjV.GetVenta(ObjFacturaCancelacion.CveVenta, UsuarioActual.CveEmpresa) Then
|
||||||
|
Dim DbRowVenta As DataRow = ObjV.DtResultados.FiltroPrimero("")
|
||||||
|
If DbRowVenta IsNot Nothing Then
|
||||||
|
ObjFacturaCancelacion.Pagado = DbRowVenta("Pagado").ToString().ToDecimal()
|
||||||
|
ObjFacturaCancelacion.Saldo = DbRowVenta("Saldo").ToString().ToDecimal()
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Using
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not ErrorCancelacionNC Then
|
||||||
|
resp = ObjFacturaCancelacion.CancelarFactura(If(ChkDevAlm.Checked, 1, 0), ListaRemisionesCancelar, CveMotivoCancelacion:=DdlMotivoCancelacion.SelectedValue.ToEntero(), Motivo:=TxtMotivoCancelacion.Text.Trim(), CveEstadoCancelacion:=Me.CveEstadoCancelacion, ForzarDevolucion:=GenerarDevolucionAnticipada, CancelacionPagos:=CancelacionPagos, ValidarSAT:=ValidarSAT, CveEstatusFacturaAsignado:=CveEstatusFacturaAsignado)
|
||||||
|
Else
|
||||||
|
resp = New Modelos.Factura.MCancelacionVentaMensaje()
|
||||||
|
resp.HuboError = True
|
||||||
|
resp.Mensaje = "No se pudo cancelar la factura"
|
||||||
|
End If
|
||||||
|
|
||||||
strMensaje.Append(resp.Mensaje)
|
strMensaje.Append(resp.Mensaje)
|
||||||
|
|
||||||
|
If ChkCancelarNC.Checked Then
|
||||||
|
strMensaje.AppendFormat("<br/>{0}", If(ErrorCancelacionNC, $"Ocurrió un error al cancelar las NC relacionadas. <br/> {SbNCError.ToString()}", $"Se cancelaron las siguientes notas de crédito. <br/> {SbNC.ToString()}"))
|
||||||
|
End If
|
||||||
|
|
||||||
Dim DtBonificaciones As DataTable = Nothing
|
Dim DtBonificaciones As DataTable = Nothing
|
||||||
|
|
||||||
'SI ES RNC DE CARGO DEBE CANCELAR LAS BON
|
'SI ES RNC DE CARGO DEBE CANCELAR LAS BON
|
||||||
|
|||||||
Reference in New Issue
Block a user