This commit is contained in:
2023-12-22 18:04:58 -07:00
9 changed files with 300 additions and 78 deletions

View File

@@ -1304,20 +1304,31 @@
<asp:TemplateField>
<HeaderTemplate>Serie</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="TxtSerie" runat="server" Text='<%# Eval("Serie") %>' ></asp:Label>
<asp:Label ID="LblLote" runat="server" Width="50px" Text='<%# Eval("Lote") %>' ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>Lote</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="TxtLote" runat="server" Text='<%# Eval("Lote") %>' ></asp:Label>
<asp:Label ID="LblSerie" runat="server" Width="50px" Text='<%# Eval("Serie") %>' ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>Fecha Cad.</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="TxtFechaCaducidad" runat="server" Text='<%# Eval("FechaCaducidad", "{0:d}") %>'></asp:Label>
</div>
<asp:Label ID="LblFechaCaducidad" runat="server" Width="50px" Text='<%# Eval("FechaCaducidad", "{0:dd/MM/yyyy}") %>' ></asp:Label>
<%--<div runat="server" id="DVFechaCaducidad" visible="false">
<asp:TextBox ID="TxtFechaCaducidad" runat="server" Width="70px" Text='<%# Eval("FechaCaducidad") %>' ></asp:TextBox>
<ajax:MaskedEditExtender ID="METxtFechaCaducidad" runat="server" TargetControlID="TxtFechaCaducidad" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CCTxtFechaCaducidad" TargetControlID="TxtFechaCaducidad" PopupButtonID="TxtFechaCaducidad" PopupPosition="BottomLeft" ></ajax:CalendarExtender>
<asp:CompareValidator ID="CVTxtFechaCaducidad" runat="server" ControlToValidate="TxtFechaCaducidad" Display="None"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Caducidad''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)."
Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpDevolucion">
</asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCTxtFechaCaducidad" runat="server" HighlightCssClass="vco" TargetControlID="CVTxtFechaCaducidad" Width="350px"></ajax:ValidatorCalloutExtender>
</div> --%>
</ItemTemplate>
</asp:TemplateField>

View File

@@ -5,6 +5,8 @@ Imports Extensiones
Imports System.IO
Imports System.Data
Imports Telerik.Web.UI
Imports System.Data.SqlClient
Imports Stimulsoft.Report.StiOptions.Export
Partial Class OS_OrdenesServicios
Inherits ClsPaginas
@@ -838,11 +840,14 @@ Partial Class OS_OrdenesServicios
Dim ObjMateriales As New ClsOS
If ObjMateriales.GetDetalleMateriales(CveOsDetalle, CveOS, -1) Then
For Each RowE As DataRow In ObjMateriales.DtResultados.Rows
Dim Row As DataRow = Nothing
Row = TmpDTMaterialesDetalle.NewRow()
Row("CveConsecutivo") = Consecutivo
Row("CveConsecutivoDetalle") = CveConsecutivoDetalle
Row("CveOSDetalle") = CveOsDetalle
@@ -3084,6 +3089,8 @@ Partial Class OS_OrdenesServicios
Dim CveSubProyectoPedido As Integer = DTSolicitudDev.FiltroPrimeroValor("CveSubProyecto").ToEntero
Dim CveVentaPedido As Integer = DTSolicitudDev.FiltroPrimeroValor("CveVenta").ToEntero
Dim CveAlmacenDestino As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, 10).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto = {CveSubProyectoPedido}").ToEntero
If Not CveAlmacenDestino > 0 Then
@@ -3129,10 +3136,10 @@ Partial Class OS_OrdenesServicios
End If
Next
If SbErroresDev.ToString.Length > 0 Then
Alert($"Se encontraron los siguientes errores: <br> {SbErroresDev.ToString}", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
'If SbErroresDev.ToString.Length > 0 Then
' Alert($"Se encontraron los siguientes errores: <br> {SbErroresDev.ToString}", TipoMensaje.MsgAdvertencia)
' Exit Sub
'End If
Dim ProcesoOK As Boolean = True
Dim ObjV As New ClsVentas
@@ -3157,11 +3164,23 @@ Partial Class OS_OrdenesServicios
Next
End If
Dim Respuesta = New RespuestaFacturacion()
If PropcesoOK Then
Respuesta = GeneraRemision(CveVentaPedido, ObjV.IniciaTransacSQL())
If Not Respuesta.CveVenta > 0 Then
PropcesoOK = False
End If
End If
If ProcesoOK Then
Dim ObjInventario As New ClsInventarios(ObjV.IniciaTransacSQL())
Dim CveMovimiento As Integer = ObjInventario.AddMovimiento(CveAlmacenActual, 8, CveMoneda, ClsPaginas.NowADS(), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaPedido, CveSubProyectoPedido, -1, CveOS:=CveOS, CveAlmacenDestino:=CveAlmacenDestino)
Dim CveMovimiento As Integer = ObjInventario.AddMovimiento(CveAlmacenActual, 8, CveMoneda, ClsPaginas.NowADS(), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, Respuesta.CveVenta, CveSubProyectoPedido, -1, CveOS:=CveOS, CveAlmacenDestino:=CveAlmacenDestino)
Dim Folio As Integer = ObjInventario.Folio
If CveMovimiento > 0 Then
@@ -3191,7 +3210,7 @@ Partial Class OS_OrdenesServicios
If ProcesoOK Then
Dim CveMovimientoSalida As Integer = ObjInventario.AddMovimiento(CveAlmacenDestino, 9, CveMoneda, ClsPaginas.NowADS(), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaPedido, CveSubProyectoPedido, -1, CveOS:=CveOS, CveMovimientoRelacionado:=CveMovimiento)
Dim CveMovimientoSalida As Integer = ObjInventario.AddMovimiento(CveAlmacenDestino, 9, CveMoneda, ClsPaginas.NowADS(), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, Respuesta.CveVenta, CveSubProyectoPedido, -1, CveOS:=CveOS, CveMovimientoRelacionado:=CveMovimiento)
If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then
@@ -3231,11 +3250,11 @@ Partial Class OS_OrdenesServicios
End If
End If
If ProcesoOK Then
'ObjV.RollBack()
If PropcesoOK Then
ObjV.Commit()
Alert("El material utilizado se guardó correctamente")
RegistraScript("$('#DivModalMaterialUtilizado').modal('hide');")
RegistraScript("$('#DVModalSolicitarDevolucion').modal('hide');")
Else
ObjV.RollBack()
End If
@@ -3244,4 +3263,92 @@ Partial Class OS_OrdenesServicios
End Sub
Private Function GeneraRemision(CveVentaPedido As Integer, ByRef TransaccionSQL As SqlTransaction) As RespuestaFacturacion
Dim Respuesta = New RespuestaFacturacion()
Dim CveRemiocionGenerada As Integer = -1
Dim ObjVentas As New ClsVentas(TransaccionSQL)
Dim ProcesoOK As Boolean = True
Dim CveSubProyectoPedido As Integer = -1
Dim CveMoneda As Integer = -1
If ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa, VerificaAlmacen:=False) Then
Dim DbRowVenta As DataRow = ObjVentas.DtResultados.Copy().Rows(0)
CveMoneda = DbRowVenta("CveMoneda").ToString.ToEntero
CveSubProyectoPedido = DbRowVenta("CveSubProyecto").ToString().ToEntero()
End If
Dim ObjFactura = Modelos.Factura.CrearVentaNueva(UsuarioActual, CveSubProyectoPedido, CveCliente, CveMoneda, "Ped")
If ObjFactura IsNot Nothing Then
If ProcesoOK Then
For Each GvRow As GridViewRow In GvSolicitarDevolucion.Rows
Dim CvePS As Integer = GvRow.DataKey("CvePS").ToEntero
Dim Cantidad As Decimal = GvRow.DataKey("Cantidad").ToDecimal
Dim CantidadDev As Decimal = GvRow.FCTextBox("TxtDev").Text.ToDecimal
Dim CantidadRegistro = Cantidad - CantidadDev
Dim PU As Decimal = GvRow.DataKey("PU").ToDecimal
Dim Descuento As Decimal = GvRow.DataKey("Descuento").ToDecimal
Dim Obs As String = GvRow.DataKey("Observaciones")
If Not ObjFactura.AgregarPS(CvePS, CantidadRegistro, PU, Descuento, Obs, CveSubProyecto:=CveSubProyectoPedido) Then
Alert("Error al agregar producto", TipoMensaje.MsgAdvertencia)
ProcesoOK = False
Exit For
End If
Next
If ProcesoOK Then
ObjFactura.CalculaTotales()
Dim Resp As New Modelos.Factura.MMensajeFactura
Resp = ObjFactura.EmitirFactura(False, Transac:=TransaccionSQL)
If Resp.CveVenta > 0 Then
Respuesta.CveVenta = Resp.CveVenta
Respuesta.SerieFolio = Resp.SerieFolio
Else
ProcesoOK = False
End If
End If
End If
Else
ProcesoOK = False
End If
Return Respuesta
End Function
Friend Class RespuestaFacturacion
Public Property CveVenta As Integer = -1
Public Property SerieFolio As String = "-1"
Public Sub New()
End Sub
End Class
End Class