From b41614dadadb00ba4e327fee816949fe2a094d22 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 5 Jan 2024 08:24:56 -0700 Subject: [PATCH] =?UTF-8?q?--=20mejoras=20-=20registro=20de=20prep=C3=B3li?= =?UTF-8?q?za?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OS/OrdenesServicios.aspx | 2 +- OS/OrdenesServicios.aspx.vb | 191 +++++++----------------------------- 2 files changed, 37 insertions(+), 156 deletions(-) diff --git a/OS/OrdenesServicios.aspx b/OS/OrdenesServicios.aspx index e6ad88e15..cf474873f 100644 --- a/OS/OrdenesServicios.aspx +++ b/OS/OrdenesServicios.aspx @@ -1291,7 +1291,7 @@ Utilizado - + diff --git a/OS/OrdenesServicios.aspx.vb b/OS/OrdenesServicios.aspx.vb index 14d2968e4..9171efa98 100644 --- a/OS/OrdenesServicios.aspx.vb +++ b/OS/OrdenesServicios.aspx.vb @@ -7,6 +7,7 @@ Imports System.Data Imports Telerik.Web.UI Imports System.Data.SqlClient Imports Stimulsoft.Report.StiOptions.Export +Imports Modelos Partial Class OS_OrdenesServicios Inherits ClsPaginas @@ -889,8 +890,6 @@ Partial Class OS_OrdenesServicios Dim Row As DataRow = Nothing Row = TmpDTMaterialesDetalle.NewRow() - - Row("CveConsecutivo") = Consecutivo Row("CveConsecutivoDetalle") = CveConsecutivoDetalle Row("CveOSDetalle") = CveOsDetalle @@ -2728,17 +2727,14 @@ Partial Class OS_OrdenesServicios 'AGREGAMOS LA ENTRADA Movto 1 If Not TieneError Then AlmacenEntrada = CveAlmacenOrigen - - CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveAlmacenDestino:=CveAlmacenDestino, CveMovimientoRelacionado:=CveMovimientoSalida, CveOS:=CveOS) + CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveAlmacenDestino:=CveAlmacenDestino, CveMovimientoRelacionado:=CveMovimientoSalida, CveOS:=CveOS, Modulo:="OS/MatUtil") FolioEntrada = ObjInventario.Folio If CveMovimientoEntrada <= 0 Then TextoError = "No se pudo generar el movimiento de entrada correctamente" TieneError = True Else - If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then - For Each Dr As DataRow In ObjInventario.DtResultados.Rows If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, -1) Then TieneError = True @@ -2746,26 +2742,20 @@ Partial Class OS_OrdenesServicios Exit For End If Next - End If - End If End If 'AGREGAMOS LA ENTRADA Movto 2 If Not TieneError Then AlmacenEntrada = CveAlmacenDestino - - CveMovimientoEntrada2 = ObjInventario.AddMovimiento(AlmacenEntrada, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveAlmacenDestino:=-1, CveMovimientoRelacionado:=CveMovimientoEntrada, CveOS:=CveOS) + CveMovimientoEntrada2 = ObjInventario.AddMovimiento(AlmacenEntrada, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveAlmacenDestino:=-1, CveMovimientoRelacionado:=CveMovimientoEntrada, CveOS:=CveOS, Modulo:="OS/MatUtil2") FolioEntrada = ObjInventario.Folio - If CveMovimientoEntrada2 <= 0 Then TextoError = "No se pudo generar el movimiento de entrada correctamente" TieneError = True Else - If ObjInventario.GetMovimientosDetalle(CveMovimientoEntrada, UsuarioActual.CveEmpresa) Then - For Each Dr As DataRow In ObjInventario.DtResultados.Rows If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada2, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, -1) Then TieneError = True @@ -2773,13 +2763,10 @@ Partial Class OS_OrdenesServicios Exit For End If Next - End If - End If End If - If Not TieneError Then If ObjMateriales.RemoveDetalleMateriales(CveMaterial, CveOSDetalle) Then GvMaterialesModal.EditIndex = -1 @@ -2791,10 +2778,8 @@ Partial Class OS_OrdenesServicios Alert(TextoError, TipoMensaje.MsgError) RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')") End If - End If End If - End If If Not TieneError Then @@ -2875,127 +2860,6 @@ Partial Class OS_OrdenesServicios Objeto.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) End Sub - 'Private Sub LbGuardaSolicitarMaterial_Click(sender As Object, e As EventArgs) Handles LbGuardaSolicitarMaterial.Click - ' 'VALIDA ALMACEN ORIGEN Y DESTINO - ' If DdlAlmacenOrigen.SelectedValue = DdlAlmacenDestino.SelectedValue Then - ' Alert("No se puede realizar un traspaso entre el mismo almacén.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - - ' If GvSolicitarMaterial.Rows.Count > 0 Then - ' Dim ObjInventario As New ClsInventarios - - ' Dim CveMovimientoSalida = 0 - ' Dim CveMovimientoEntrada = 0 - ' Dim IDPoliza As Integer = 0 - ' Dim FolioSalida = 0 - ' Dim FolioEntrada = 0 - ' Dim AlmacenEntrada = -1 - - ' Dim ErrorMovInv As Boolean = False - ' Dim ErrorAC As Boolean = False - ' Dim ErrorExistencia = False - - ' Dim TextoError = "" - ' Dim TextoExistencia As StringBuilder = New StringBuilder - - ' 'VALIDA LA EXISTENCIA DEL ALMACEN DE ORIGEN - ' Dim Existencia As Double - ' TextoExistencia.Append("Los siguiente productos se ajustaron por falta de exitencia:
") - - - ' For Each dr As DataRow In TmpDTSolicitarMaterial.Rows - ' Existencia = ObjInventario.GetExistenciasPS(dr("CvePS").ToString.ToEntero, dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, -1, TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), "-1") - ' Existencia -= TmpDTSolicitarMaterial.SUM("Cantidad", $"CvePS = {dr("CvePS").ToString.ToEntero} AND CveUM = {dr("CveUM").ToString.ToEntero} ") - - ' If Existencia < 0 Then - ' ErrorExistencia = True - ' dr("Cantidad") = Existencia - ' TextoExistencia.AppendFormat("- #{0}
", dr("PS").ToString) - ' End If - ' Next - - ' 'REGISTRA LA SALIDA Y ENTRADA (TRASPASO) - ' If Not ErrorExistencia Then - ' ObjInventario.IniciaTransacSQL() 'Inicia la transacción - ' Dim Fecha As Date = TxtFecha.Text.ToDate - - ' 'AGREGAMOS LA SALIDA DEL ALMACEN ORIGEN - ' CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenOrigen.SelectedValue.ToEntero, 8, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero, CveOS:=CveOS) - ' FolioSalida = ObjInventario.Folio - - ' If CveMovimientoSalida <= 0 Then - ' TextoError = "No se pudo generar el movimiento de salida correctamente" - ' ErrorMovInv = True - ' Else - - ' For Each Dr As DataRow In TmpDTSolicitarMaterial.Rows - ' If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, -1) Then - ' ErrorMovInv = True - ' TextoError = "Ocurrió un error al guardar los movimientos de salida" - ' Exit For - ' End If - ' Next - ' End If - - ' 'AGREGAMOS LA ENTRADA - ' If Not ErrorMovInv Then - ' AlmacenEntrada = DdlAlmacenDestino.SelectedValue.ToEntero - - ' CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, 9, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveAlmacenDestino:=-1, CveMovimientoRelacionado:=CveMovimientoSalida, CveOS:=CveOS) - ' FolioEntrada = ObjInventario.Folio - - ' If CveMovimientoEntrada <= 0 Then - ' TextoError = "No se pudo generar el movimiento de entrada correctamente" - ' ErrorMovInv = True - ' Else - - ' If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then - - ' For Each Dr As DataRow In ObjInventario.DtResultados.Rows - ' If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, -1, -1) Then - ' ErrorMovInv = True - ' TextoError = "Ocurrió un error al guardar los movimientos de entrada" - ' Exit For - ' End If - ' Next - - ' End If - - ' End If - ' End If - - - ' If Not ErrorMovInv Then - ' ObjInventario.Commit() - ' Dim Mensaje As StringBuilder = New StringBuilder - - ' Mensaje.Append("Se realizó con éxito el traspaso.") - - ' Mensaje.AppendFormat("
Folio de Salida: {0}", FolioSalida, CveMovimientoSalida) - ' Mensaje.AppendFormat("
Imprimir Reporte", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoSalida))) - - ' LimpiaMovimiento() - ' Alert(Mensaje.ToString, TipoMensaje.MsgInformacion) - ' Else - ' ObjInventario.RollBack() - ' Alert(TextoError, TipoMensaje.MsgError) - ' RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')") - ' End If - ' Else - ' Alert(TextoExistencia.ToString, TipoMensaje.MsgError) - ' RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')") - ' End If - - - ' 'SI OCURRIO UN ERROR EN LA EXISTENCIA RECARGAMOS EL GRID PARA COLOREAR LOS DETALLES CON ERROR - ' If ErrorExistencia Then - ' Alert("Ocurrió un error en la existencia", TipoMensaje.MsgError) - ' End If - - ' ObjInventario.Dispose() - ' End If - 'End Sub Private Sub LimpiaMovimiento() CargaAlmacen() TxtFecha.Text = NowADS().ToShortDateString @@ -3140,8 +3004,8 @@ Partial Class OS_OrdenesServicios Dim ProcesoOK As Boolean = True Dim ObjV As New ClsVentas Dim ClsOS As New ClsOS(ObjV.IniciaTransacSQL()) - - + Dim ObjInventario As New ClsInventarios(ObjV.IniciaTransacSQL()) + Dim ObjConta As New ClsContabilidad(ObjV.IniciaTransacSQL()) If ProcesoOK Then Dim AplicaDevolucion As Boolean = False @@ -3162,8 +3026,11 @@ Partial Class OS_OrdenesServicios End If End If End If - Dim Respuesta As New RespuestaFacturacion() + Dim Respuesta As New RespuestaFacturacion() Dim DtVentaDetalle As New DataTable + Dim CveMovimientoSalida, CveMovimientoEntrada As Integer + Dim ImporteAlmacen As Decimal + Dim Fecha As DateTime = ClsPaginas.NowADS() If ProcesoOK Then Respuesta = GeneraRemision(CveVentaPedido, ObjV.IniciaTransacSQL()) @@ -3181,12 +3048,10 @@ Partial Class OS_OrdenesServicios 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, Respuesta.CveVenta, CveSubProyectoPedido, -1, CveOS:=CveOS, CveAlmacenDestino:=CveAlmacenDestino) + CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacenActual, 8, CveMoneda, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, Respuesta.CveVenta, CveSubProyectoPedido, -1, CveOS:=CveOS, CveAlmacenDestino:=CveAlmacenDestino, Modulo:="OS/MatUtil") Dim Folio As Integer = ObjInventario.Folio - If CveMovimiento > 0 Then + If CveMovimientoSalida > 0 Then Dim IndexMov1 As Integer = 0 For Each GvRow As GridViewRow In GvMU.Rows @@ -3204,7 +3069,7 @@ Partial Class OS_OrdenesServicios Dim Serie As String = GvRow.DataKey("Serie") Dim Lote As String = GvRow.DataKey("Lote") Dim FechaCaducidad As DateTime = GvRow.DataKey("FechaCaducidad").ToDate - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, CantidadRegistro, CveUM, CvePS, PU, CveVentaDetalle:=CveVentaDetalle, CveMovimientoDetalleEntrada:=CveMovimientoDetalle, Lote:=Lote, Serie:=Serie, FechaCaducidad:=FechaCaducidad) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadRegistro, CveUM, CvePS, PU, CveVentaDetalle:=CveVentaDetalle, CveMovimientoDetalleEntrada:=CveMovimientoDetalle, Lote:=Lote, Serie:=Serie, FechaCaducidad:=FechaCaducidad) Then Alert("Error al agregar detalle de movimiento.", TipoMensaje.MsgAdvertencia) ProcesoOK = False Exit For @@ -3215,10 +3080,10 @@ Partial Class OS_OrdenesServicios If ProcesoOK Then - 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 + CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenDestino, 9, CveMoneda, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, Respuesta.CveVenta, CveSubProyectoPedido, -1, CveOS:=CveOS, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="OS/MatUtil2") + If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then + ImporteAlmacen = ObjInventario.DtResultados.SUM("Total") Dim IndexMov2 As Integer = 0 For Each dRow As DataRow In ObjInventario.DtResultados.Rows @@ -3226,14 +3091,14 @@ Partial Class OS_OrdenesServicios Dim CvePS As Integer = dRow("CvePS").ToString.ToEntero Dim CveUM As Integer = dRow("CveUM").ToString.ToEntero Dim PU As Decimal = dRow("PU").ToString.ToDecimal - Dim CveVentaDetalle As Integer = DtVentaDetalle.Rows(IndexMov2)("CveVentaDetalle").ToString.ToEntero + Dim CveVentaDetalle As Integer = dRow("CveVentaDetalle").ToString.ToEntero Dim CveMovimientoDetalle As Integer = dRow("CveMovimientoDetalle").ToString.ToEntero Dim Lote As String = dRow("Lote").ToString Dim Serie As String = dRow("Serie").ToString Dim FechaCaducidad As DateTime = dRow("FechaCaducidad").ToString.ToDateTime - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUM, CvePS, PU, CveVentaDetalle:=CveVentaDetalle, CveMovimientoDetalleEntrada:=CveMovimientoDetalle, Lote:=Lote, Serie:=Serie, FechaCaducidad:=FechaCaducidad) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Cantidad, CveUM, CvePS, PU, CveVentaDetalle:=CveVentaDetalle, CveMovimientoDetalleEntrada:=CveMovimientoDetalle, Lote:=Lote, Serie:=Serie, FechaCaducidad:=FechaCaducidad) Then Alert("Error al agregar detalle de movimiento.", TipoMensaje.MsgAdvertencia) ProcesoOK = False Exit For @@ -3242,7 +3107,7 @@ Partial Class OS_OrdenesServicios Next If ProcesoOK Then Dim ObjEventos As New ClsOIEventos(ObjInventario.IniciaTransacSQL) - Dim LigaVenta As String = String.Format("Venta {2} en Folio: {1}", CveMovimiento, Folio, "Material utilizado") + Dim LigaVenta As String = String.Format("Venta {2} en Folio: {1}", CveMovimientoEntrada, Folio, "Material utilizado") If Not ObjEventos.AddEventoBitacora(LigaVenta, "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=Respuesta.CveVenta, CveOS:=CveOS) Then ProcesoOK = False @@ -3257,6 +3122,22 @@ Partial Class OS_OrdenesServicios ProcesoOK = False End If End If + If ProcesoOK Then + Dim Contabilizable As Boolean = False + Dim Concepto As String = "Material utilizado" + Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OS-MatUtil", 53, 0, 0, 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + If CveMovimientoSalida > 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteAlmacen, ImporteAlmacen, 68, "", Concepto, CveMovimientoAlmacen:=CveMovimientoSalida, Contabilizable:=Contabilizable) Then + ProcesoOK = False + End If + End If + If CveMovimientoEntrada > 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteAlmacen, ImporteAlmacen, 68, "", Concepto, CveMovimientoAlmacen:=CveMovimientoEntrada, Contabilizable:=Contabilizable) Then + ProcesoOK = False + End If + End If + + End If Else ProcesoOK = False End If @@ -3269,6 +3150,7 @@ Partial Class OS_OrdenesServicios RegistraScript("$('#DivModalMaterialUtilizado').modal('hide');") Else ObjV.RollBack() + Alert("El material utilizado no se guardó correctamente", TipoMensaje.MsgAdvertencia) End If ObjV.Dispose() @@ -3278,7 +3160,7 @@ Partial Class OS_OrdenesServicios Private Function GeneraRemision(CveVentaPedido As Integer, ByRef TransaccionSQL As SqlTransaction) As RespuestaFacturacion Dim Respuesta As New RespuestaFacturacion() - Dim CveRemiocionGenerada As Integer = -1 + Dim CveRemisionGenerada As Integer = -1 Dim ObjVentas As New ClsVentas(TransaccionSQL) Dim ProcesoOK As Boolean = True Dim CveSubProyectoPedido As Integer = -1 @@ -3313,7 +3195,6 @@ Partial Class OS_OrdenesServicios Exit For End If End If - Next If ProcesoOK Then