OC Es Temporal, PS Actualziar Utimo Costo

This commit is contained in:
rakcsle
2024-12-17 21:20:07 -07:00
parent d4a758b03d
commit 4738cba17d
12 changed files with 419 additions and 26 deletions

View File

@@ -511,8 +511,8 @@
</tr>
<tr id="TrBotonesInvTemporal" runat="server" visible="false">
<td></td>
<td><asp:Button runat="server" ID="BtnInvTempEntrada" Text="Entrada" CssClass="btn btn-primary" OnClick="BtnInvTempEntrada_Click" /> </td>
<td><asp:Button runat="server" ID="BtnInvTempSalida" Text="Salida" CssClass="btn btn-primary" OnClick="BtnInvTempSalida_Click" /> </td>
<td><asp:Button runat="server" ID="BtnInvTempEntrada" Text="Entrada" CssClass="btn btn-primary" OnClick="BtnInvTempEntrada_Click" Visible="false" /> </td>
<td><asp:Button runat="server" ID="BtnInvTempSalida" Text="Salida" CssClass="btn btn-primary" OnClick="BtnInvTempSalida_Click" Visible="false" /> </td>
</tr>
@@ -1561,7 +1561,9 @@
<ContentTemplate>
<asp:UpdatePanel ID="UpAlmacen" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:GridView runat="server" ID="GVInv" AutoGenerateColumns="false" EmptyDataText="Aun no hay registros." ShowHeaderWhenEmpty="True" Width="100%" CssClass="table table-striped table-hover" GridLines="None">
<asp:GridView runat="server" ID="GVInv" AutoGenerateColumns="false" EmptyDataText="Aun no hay registros." ShowHeaderWhenEmpty="True" Width="100%" CssClass="table table-striped table-hover" GridLines="None"
DataKeyNames="CveConcepto"
>
<Columns>
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="15%" />
<asp:BoundField HeaderText="Unidad" DataField="UnidadMedida" ItemStyle-Width="15%" />
@@ -1766,6 +1768,8 @@
<ajax:ValidatorCalloutExtender ID="VCEGrid" runat="server" HighlightCssClass="vco" TargetControlID="RFVGrid" Width="300px"></ajax:ValidatorCalloutExtender>
</ContentTemplate>
</asp:UpdatePanel>
<asp:CheckBox runat="server" ID="ChkEsTemporalRegistro" Text="Registrar Temporal" Visible="false" />
</td>
</tr>

View File

@@ -4,6 +4,7 @@ Option Strict On
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Imports DocumentFormat.OpenXml.Drawing.Diagrams
Imports Extensiones
Imports GemBox.Spreadsheet
Imports Newtonsoft.Json
@@ -1056,6 +1057,12 @@ Partial Class OC_OC
TrDescuentoEscalonado.Visible = True
TrDescuentoProntoPago.Visible = True
TrBotonesInvTemporal.Visible = True
If TipoOC = "OC" AndAlso UsuarioActual.TienePermisoProceso(401) AndAlso EsNuevo Then
ChkEsTemporalRegistro.Visible = True
End If
End If
If UsuarioActual.Empresa.CveEmpresa = 189 AndAlso CveOrdenCompra <> Nothing AndAlso CveOrdenCompra > 0 Then
@@ -1550,7 +1557,7 @@ Partial Class OC_OC
ChkEsTemporal.Checked = Boolean.Parse(objOC.DtResultados.Rows(0)("EsTemporal").ToString)
'PROMOCIONES
TxtPromocion.Text = objOC.Promocion
@@ -2055,6 +2062,35 @@ Partial Class OC_OC
InicializaMovtosAlmacen()
End If
If EsGrupoDiaz And TipoOC = "OC" And ChkEsTemporal.Checked Then
Dim TieneEntrada As Boolean = False
Dim TieneSalida As Boolean = False
For Each gvRow As GridViewRow In GVInv.Rows
If gvRow.DataKey("CveConcepto").ToEntero = 33 Then
TieneEntrada = True
End If
If gvRow.DataKey("CveConcepto").ToEntero = 35 Then
TieneSalida = True
End If
Next
If UsuarioActual.TienePermisoProceso(401) Then
If Not TieneEntrada Then
BtnInvTempEntrada.Visible = True
End If
If TieneEntrada AndAlso Not TieneSalida Then
BtnInvTempSalida.Visible = True
End If
End If
End If
If UsuarioActual.Empresa.Funcionalidad(565) = "1" And pCveOrdenCompra > 0 And TipoOC.ToUpper() = "REQ" Then
'LAS COTIZACIONES RAPIDAS SOLO DEBE APARECER SI EL PROVEEDOR ES DEDICADO
If CveConfianzaProveedor = 1 Then
@@ -3072,14 +3108,18 @@ Partial Class OC_OC
If Not TieneError AndAlso TipoOC = "OC" Then
If Not GeneraPrePolizaPresupuesto(CveOrdenCompra, OC.IniciaTransacSQL) Then
TieneError = True
End If
End If
If EsGrupoDiaz AndAlso EsNuevo AndAlso CveOrdenCompra > 0 AndAlso TipoOC = "OC" AndAlso ChkEsTemporalRegistro.Checked Then
If Not RegistroInventarioTemporal(OC.IniciaTransacSQL, CveOrdenCompra, 1, False) Then
TieneError = True
End If
End If
If Not TieneError Then
If Conta IsNot Nothing Then Conta.Commit()
@@ -9727,9 +9767,9 @@ Partial Class OC_OC
FileExcel.Save(Response, $"OC_{CveOrdenCompra}.xlsx", SaveOptions.XlsxDefault)
End Sub
Function RegistroInventarioTemporal(ByRef transaccion As SqlTransaction, CveOCInv As Integer, CveConceptoInv As Integer) As Boolean
Function RegistroInventarioTemporal(ByRef transaccion As SqlTransaction, CveOCInv As Integer, OpcionOrigen As Integer, Recargar As Boolean) As Boolean
Dim CveConceptoInv As Integer = If(OpcionOrigen = 1, 33, 35) 'Conceptos 33 Entrada Manual 35 Salida Manual
Dim Respuesta As Boolean = True
@@ -9781,6 +9821,7 @@ Partial Class OC_OC
If CveMovimiento <= 0 OrElse CvePrePoliza <= 0 Then
Alert("No se pudo almacenar el movimiento correctamente", TipoMensaje.MsgError)
ObjInventario.RollBack() 'deshace lo insertado
Respuesta = False
Else
Dim Mensaje As String = ""
@@ -9927,7 +9968,12 @@ Partial Class OC_OC
End If
If Respuesta Then
Alert($"Movimiento Guardado Correctamente Folio:{FolioMto} CveMovmiento: {CveMovimiento}")
If Recargar Then
Alert($"Movimiento Guardado Correctamente Folio:{FolioMto} CveMovmiento: {CveMovimiento}", TipoMensaje.MsgInformacion, "window.location.reload();")
Else
Alert($"Movimiento Guardado Correctamente Folio:{FolioMto} CveMovmiento: {CveMovimiento}", TipoMensaje.MsgInformacion)
End If
End If
Return Respuesta
@@ -9940,7 +9986,7 @@ Partial Class OC_OC
Dim ObjOC As New ClsOC
Try
If RegistroInventarioTemporal(ObjOC.IniciaTransacSQL(), CveOrdenCompra, 2) Then
If RegistroInventarioTemporal(ObjOC.IniciaTransacSQL(), CveOrdenCompra, 1, True) Then
ObjOC.Commit()
Else
ObjOC.RollBack()
@@ -9956,7 +10002,7 @@ Partial Class OC_OC
Protected Sub BtnInvTempSalida_Click(sender As Object, e As EventArgs)
Dim ObjOC As New ClsOC
Try
If RegistroInventarioTemporal(ObjOC.IniciaTransacSQL(), CveOrdenCompra, 3) Then
If RegistroInventarioTemporal(ObjOC.IniciaTransacSQL(), CveOrdenCompra, 0, True) Then
ObjOC.Commit()
Else
ObjOC.RollBack()

View File

@@ -201,6 +201,9 @@
<asp:DropDownList ID="DdlMoneda" runat="server" CssClass="form-control input-sm select2me" DataTextField="Moneda" DataValueField="CveMoneda" Style="width: 95px; height: 30px; display: inline-block;">
</asp:DropDownList>
</div>
<div class="colf-1" runat="server" id="DVEsTemporal" visible="false">
<asp:CheckBox runat="server" ID="ChkEsTempral" Text="Es Temporal" />
</div>
</div>
<div class="row rownomargin">
@@ -251,6 +254,8 @@
<asp:ListItem Text="No" Value="0"/>
</asp:DropDownList>
</div>
</div>
<div class="row rownomargin">
<label class="colf-1 truncate">Proveedor</label>

View File

@@ -81,7 +81,9 @@ Partial Class RepOC
txtFechaISemanal.Text = NowADS().FirstDayOfMonth.ToShortDateString
txtFechaFSemanal.Text = NowADS().ToShortDateString
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
DVEsTemporal.Visible = True
End If
End If
@@ -220,10 +222,12 @@ Partial Class RepOC
End Sub
Private Sub CargaPendientes()
Dim EsTemporal As Integer = If(ChkEsTempral.Checked, 1, -1)
Dim OC As New ClsOC
If OC.GetOrdenesPendientes(DdlTipo.SelectedValue.ToString, 0, UsuarioActual.CveEmpresa, DdlProyectos.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero,
DdlEstatus.SelectedValue.ToEntero, UsuarioActual.CveUsuario, ddlcliente.SelectedValue.ToEntero, SoloSubProyectosConPermiso:=If(UsuarioActual.Empresa.Funcionalidad(530) = "1", True, False),
CveUsuarioAsignado:=DdlUsuarioAsignado.SelectedValue.ToEntero(), EntregaDirecta:=DdlEntregaDirecta.SelectedValue.ToEntero()) Then
CveUsuarioAsignado:=DdlUsuarioAsignado.SelectedValue.ToEntero(), EntregaDirecta:=DdlEntregaDirecta.SelectedValue.ToEntero(), TieneAnticipo:=DdlTieneAnticipo.SelectedValue.ToEntero, EsTemporal:=EsTemporal) Then
DtPorAtender = OC.DtResultados
GvPorAtender.DataSource = DtPorAtender 'OC.DtResultados
@@ -252,7 +256,7 @@ Partial Class RepOC
If OC.GetOrdenesPendientes(DdlTipo.SelectedValue.ToString, 1, UsuarioActual.CveEmpresa, DdlProyectos.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero,
DdlEstatus.SelectedValue.ToEntero, UsuarioActual.CveUsuario, ddlcliente.SelectedValue.ToEntero, SoloSubProyectosConPermiso:=If(UsuarioActual.Empresa.Funcionalidad(530) = "1", True, False),
CveUsuarioAsignado:=DdlUsuarioAsignado.SelectedValue.ToEntero(), EntregaDirecta:=DdlEntregaDirecta.SelectedValue.ToEntero()) Then
CveUsuarioAsignado:=DdlUsuarioAsignado.SelectedValue.ToEntero(), EntregaDirecta:=DdlEntregaDirecta.SelectedValue.ToEntero(), TieneAnticipo:=DdlTieneAnticipo.SelectedValue.ToEntero, EsTemporal:=EsTemporal) Then
GvPendientes.DataSource = OC.DtResultados
DtPendiente = OC.DtResultados
GvPendientes.DataBind()
@@ -368,6 +372,10 @@ Partial Class RepOC
#Region " CONSULTAR "
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles btnConsultar.Click
Dim EsTemporal As Integer = If(ChkEsTempral.Checked, 1, -1)
LbPorAtenderPDF.Visible = False
LbPorAtender.Visible = False
LbPendientes.Visible = False
@@ -388,7 +396,7 @@ Partial Class RepOC
If(CheckNoCompleta.Checked, -1, UsuarioActual.CveUsuario), UsuarioActual.Empresa.CveEmpresa, If(DDlPS.SelectedValue = "", -1, DDlPS.SelectedValue.ToEntero), If(CheckNoCompleta.Checked, True, False),
ddlcliente.SelectedValue.ToEntero, CveActivoFijo:=DdlActivoFijo.SelectedValue.ToEntero, SoloSubProyectosConPermiso:=If(UsuarioActual.Empresa.Funcionalidad(530) = "1", True, False),
CveUsuarioAutorizo:=DdlUsuarioAutorizo.SelectedValue.ToEntero(), CveUsuarioAsignado:=DdlUsuarioAsignado.SelectedValue.ToEntero(), EntregaDirecta:=DdlEntregaDirecta.SelectedValue.ToEntero(),
CveMoneda:=DdlMoneda.SelectedValue.ToEntero(), MetodoPago:=DdlMetodoPago.SelectedValue.ToEntero, TieneAnticipo:=DdlTieneAnticipo.SelectedValue.ToEntero) Then
CveMoneda:=DdlMoneda.SelectedValue.ToEntero(), MetodoPago:=DdlMetodoPago.SelectedValue.ToEntero, TieneAnticipo:=DdlTieneAnticipo.SelectedValue.ToEntero, EsTemporal:=EsTemporal) Then
GvConsultar.DataSource = OC.DtResultados
DtOC = OC.DtResultados
@@ -545,8 +553,7 @@ Partial Class RepOC
Dim Completa As String = If(CheckNoCompleta.Checked = False, "", $"&emsp;, <b>No completa</b>&nbsp;")
Dim Proveedor = If(DdlProveedores.SelectedValue = "-1", "", $"&emsp;<b>Proveedor:</b>&nbsp;{DdlProveedores.txtText.Value }")
Dim Cliente = If(ddlcliente.SelectedValue = "-1", "", $"&emsp;<b>Cliente:</b>&nbsp;{ddlcliente.SelectedItem.Text}")
Dim TieneAnticipo As String = If(DdlTieneAnticipo.SelectedValue.ToEntero = -1, "", $"&emsp;<b>Anticpo:</b>&nbsp;{DdlTieneAnticipo.SelectedItem.Text}")
@@ -561,7 +568,7 @@ Partial Class RepOC
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("AgrupadoPor", $"{Folio}{Tipo}{Proyecto}{SubProyecto}{Estatus}{AF}{Usuario}{FI}{FF}{Clasificacion}{Producto}{Completa}{Proveedor}{Cliente}"))
params.Add(New ReportParameter("AgrupadoPor", $"{Folio}{Tipo}{Proyecto}{SubProyecto}{Estatus}{AF}{Usuario}{FI}{FF}{Clasificacion}{Producto}{Completa}{Proveedor}{Cliente}{TieneAnticipo}"))
params.Add(New ReportParameter("SubProyectoHeader", LblSubProyecto.Text))
params.Add(New ReportParameter("Titulo", "REPORTE DE ORDENES DE COMPRA POR ATENDER"))